criu-3.18.0.24-1.vz9 >  H dQ @s F2xoo[T6U>֗rA}^Ruav|2 8?Cf8Kp.޻[a3&sp9? d  A  @Xo    * ,4HT\  u %(8 696:g6FQGpHxIÀRÄXÈYè\(]0^QcRdienfsx|ĂCcriu3.18.0.241.vz9Tool for Checkpoint/Restore in User-spacecriu is the user-space part of Checkpoint/Restore in User-space (CRIU), a project to implement checkpoint/restore functionality for Linux in user-space.dbuilder22.eng.sw.ru1VirtuozzoVirtuozzoGPLv2Virtuozzo (http://www.virtuozzo.com/support/)System Environment/Basecriu-3.18.0.24.tar.bz2http://criu.org/linuxx86_64oVd@dF257f880219ebd151a81016394dcc0c0e8868ccd7491461565f322e337b26487f46f1a4a18517e10166b7c68915ea7a846839d67d4d6e9f191e80bea1e481717f mockbuildmockbuildmockmockcriucriu-develpython3-criucritlibcompellibcompel-develcriu-debuginfocriu-debugsource  asciidoclibcap-devellibnet-devellibnl3-develnftables-develprotobuf-c-develprotobuf-develrpmlib(CompressedFileNames)rpmlib(FileDigests)xmlto3.0.4-14.6.0-1x86_64armv3larmv4barmv4larmv4tlarmv5tlarmv5telarmv5tejlarmv6larmv6hlarmv7larmv7hlarmv7hnlarmv8larmv8hlarmv8hnlarmv8hcnl4.16.1.3dC@d@ddq@dq@ddddw6dp@doMdJcdJcdI@dGdGdGdGdGdGdGdGc@c@cccc@c[@cRcObL@bb=b@bzSby@bgb b8ar@aNa@ap@a@azaaa@a@awaqV@`\`"@VZ Auto Builder 3.18.0.24VZ Auto Builder 3.18.0.22VZ Auto Builder 3.18.0.21VZ Auto Builder 3.18.0.20VZ Auto Builder 3.18.0.19VZ Auto Builder 3.18.0.18VZ Auto Builder 3.18.0.17VZ Auto Builder 3.18.0.16VZ Auto Builder 3.18.0.15VZ Auto Builder 3.18.0.14VZ Auto Builder 3.18.0.13VZ Auto Builder 3.18.0.12VZ Auto Builder 3.18.0.11VZ Auto Builder 3.18.0.10VZ Auto Builder 3.18.0.8VZ Auto Builder 3.18.0.7VZ Auto Builder 3.18.0.6VZ Auto Builder 3.18.0.5VZ Auto Builder 3.18.0.4VZ Auto Builder 3.18.0.3VZ Auto Builder 3.18.0.2VZ Auto Builder 3.18.0.1VZ Auto Builder 3.15.4.17VZ Auto Builder 3.15.5.3VZ Auto Builder 3.15.5.2VZ Auto Builder 3.15.5.1VZ Auto Builder 3.15.4.16VZ Auto Builder 3.15.4.15VZ Auto Builder 3.15.4.14VZ Auto Builder 3.15.4.13VZ Auto Builder 3.15.4.12VZ Auto Builder 3.15.4.11VZ Auto Builder 3.15.4.10VZ Auto Builder 3.15.4.9VZ Auto Builder 3.15.4.8VZ Auto Builder 3.15.4.7VZ Auto Builder 3.15.4.6VZ Auto Builder 3.15.4.5VZ Auto Builder 3.15.4.4VZ Auto Builder 3.15.4.3VZ Auto Builder 3.15.4.2VZ Auto Builder 3.15.4.1VZ Auto Builder 3.15.3.12VZ Auto Builder 3.15.3.11VZ Auto Builder 3.15.3.10VZ Auto Builder 3.15.3.9VZ Auto Builder 3.15.3.8VZ Auto Builder 3.15.3.7VZ Auto Builder 3.15.3.6VZ Auto Builder 3.15.3.5VZ Auto Builder 3.15.3.4VZ Auto Builder 3.15.3.3VZ Auto Builder 3.15.2.5VZ Auto Builder 3.15.2.3- spfs: do not umount original mount (Pavel Tikhomirov ) (#PSBM-147180)- spfs: do mount request from mount namespace of nfs mount (Pavel Tikhomirov ) (#PSBM-147276) - mount-v2: bind dev proc and sysfs for spfs into restored mount namespace (Pavel Tikhomirov ) (#PSBM-147276)- mount: skip source check for autofs mounts in bindmount search (Pavel Tikhomirov ) (#PSBM-148081)- Revert "soccr: do not disable tcp repair when sending unsent data" (Pavel Tikhomirov ) (#PSBM-147346 #PSBM-148050)- sk-unix: ignore closed or non-empty in-flight sockets (Pavel Tikhomirov ) (#PSBM-147983)- soccr: do not disable tcp repair when sending unsent data (Pavel Tikhomirov ) (#PSBM-147346)- filesystems: do binfmt_misc_restore only once (Pavel Tikhomirov ) (#PSBM-147930)- mount-v2: copy flags to wide mount helpers (Pavel Tikhomirov ) (#PSBM-148010) - overlayfs: fix error handling in __overlayfs_mount (Pavel Tikhomirov )- zdtm: add overlayfs_nestedns test (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: do mount in mntns of lower/upper/workdir mounts (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: add remove_plain_mountpoint helper (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: export bind_plain_to_other_mntns helper (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: export create_plain_mountpoint helper (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: replace ret with exit_code in __overlayfs_mount (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: remove cwd recovery in overlayfs_mount (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: call overlayfs_mount in child process (Pavel Tikhomirov ) (#PSBM-147254)- vz7: systemd-autofs-restart.sh: fix error condition check (Pavel Tikhomirov ) (#PSBM-147268)- zdtm: add mount_complex_sharing02 test (Pavel Tikhomirov ) (#PSBM-147120) - mount: add wide mounts for sharing groups where required (Pavel Tikhomirov ) (#PSBM-147120) - mount: search covering mounts for sharing groups (Pavel Tikhomirov ) (#PSBM-147120) - mount: search covering mounts for each superblock (Pavel Tikhomirov ) (#PSBM-147120) - mount: introduce covering mounts functionality (Pavel Tikhomirov ) (#PSBM-147120) - mount-v2: introduce custom detect_is_dir (Pavel Tikhomirov ) (#PSBM-147120) - mount: introduce helper mount types (Pavel Tikhomirov ) (#PSBM-147120) - mount-v2: rework can_mount_now_v2 (Pavel Tikhomirov ) (#PSBM-147120)- zdtm: add scm10 test for scm sent unix sk with closed sender (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: resolve fake queuers vs scm fds in unix sockets fallacy (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: order unixsk sent to other unixsk after it (Pavel Tikhomirov ) (#PSBM-143751)- jenkins/zdtm: dont run tests using zdtmtst cgroup concurrently (Pavel Tikhomirov ) (#PSBM-147000) - cgroupd: unblock SIGTERM as it is needed to stop cgroupd (Pavel Tikhomirov ) (#PSBM-147000) - jenkins/zdtm: use --mntns-compat-mode option without --no- (Pavel Tikhomirov ) (#PSBM-147000) - Revert unnecessary python moodules (Artem Vasiliev )- build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - vz: fix multiple build problems related to python (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- Revert "crit: fix compatibility with Python 3.12" (Pavel Tikhomirov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Add amdgpu help file (Artem Vasiliev ) - Add criu-ns plugin to SPEC (Artem Vasiliev ) - Fix the sources file to point to new source (artem.vasiliev ) - Add python-setuptools to build (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- Revert "crit: fix compatibility with Python 3.12" (Pavel Tikhomirov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Add criu-ns plugin to SPEC (Artem Vasiliev ) - Fix the sources file to point to new source (artem.vasiliev ) - Add python-setuptools to build (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- Revert "crit: fix compatibility with Python 3.12" (Pavel Tikhomirov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Fix the sources file to point to new source (artem.vasiliev ) - Add python-setuptools to build (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - zdtm: bring back scm07 and scm08 (Pavel Tikhomirov )- zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625)- zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261)- test: remove test for LOCK_MAND flock (Adrian Reber ) (#PSBM-144187) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - zdtm/ve_flavor: create cgroup namespace for ve if available (Pavel Tikhomirov ) (#PSBM-144187) - zdtm/ve_flavor: enter nested rdma cgroup if available for vz9 (Pavel Tikhomirov ) (#PSBM-144187) - zdtm/ve_flavor: set ve.iptables_mask only if available (Pavel Tikhomirov ) (#PSBM-144187) - kerndat: check for cgroup kmem limit available (Pavel Tikhomirov ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - vz7/vz9: update version and targets.list for u20 (Pavel Tikhomirov ) - zdtm: bring back scm07 and scm08 (Pavel Tikhomirov )- net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902)- zdtm: Add test for IP_PKTINFO sock option (Pavel Tikhomirov ) (#PSBM-142872) - sk-inet: support of SOL_IP, IP_PKTINFO option (Pavel Tikhomirov ) (#PSBM-142872)- pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov )- cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679)- zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - test: fix test compilation on rawhide (Adrian Reber )- cr-restore: leave veX cgroup on error path (Alexander Mikhalitsyn ) (#PSBM-141122)- zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) (#PSBM-140415) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) (#PSBM-140414)- sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953)- irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177)- action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439)- sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - mount: remove O_DIRECTORY flag for mount opening helpers (Andrey Zhadchenko ) (#PSBM-139948)- sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko )- zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: distinguish cleanup of leftover sockets from early bind (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use ghost approach for connecting to overmounted sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: rename all references to bindmounts to early bind (Andrey Zhadchenko ) (#PSBM-135398) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: separate bind and bindmount stages for unix bindmounted sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: restore unix sockets and bindmounts in correct mntns (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: separate creation and assembling of mount namespaces (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398)- vz9: update targets.list for beta (Pavel Tikhomirov ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) (#PSBM-135201) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - Fix gcc9 build failures (Jeff Law )- net: run iptables-legacy binaries for VZ9 (Alexander Mikhalitsyn ) (#PSBM-137826)- cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - vz7/vz9: update version and targets.list for u19 (Pavel Tikhomirov ) - disable lto (Alexander Mikhalitsyn ) (#PSBM-137826)- mount-v2: fixup resolve_shared_mounts_v2 (Pavel Tikhomirov ) - zdtm: make new overmounted_ tests always run with mount-v2 (Pavel Tikhomirov ) (#PSBM-137789)- zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834)- cgroup: fix wrong mixed paths in info message when preparing properties (Pavel Tikhomirov ) (#PSBM-136411) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: fix cwd path freeing (Yuriy Vasiliev ) - zdtm: fix cgroup_freezer test compiler warnings (Yuriy Vasiliev )- rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408)- zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663)- mount-v2: fix children-parent relative mountpoint checking (Pavel Tikhomirov )- pie/restorer: fix compilation with DEBUG=1 (Andrey Zhadchenko ) (#PSBM-135350) - x86/asm: fix compile error in bitops.h (anatasluo ) (#PSBM-135350) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko )- zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko )- config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480)- targets.list: add vz9 into build targets (Pavel Tikhomirov ) - prctl/start_time: change names in accordance with vz9 kernel change (Pavel Tikhomirov ) - zdtm: fix ve flavor for vz7 (Andrey Zhadchenko ) (#PSBM-134129) - No need in py2 BR (Denis Silakov )- zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354)- zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507)builder22.eng.sw.ru 16871558953.18.0.24-1.vz93.18.0.24-1.vz93.18.0.24-1.vz93.18.0.24-1.vz93.18.0.24-1.vz93.18.0.24-1.vz93.18.0.24-1.vz93.18.0.24-1.vz9criu-3.18.0.24.tar.bz2criu.spechttps://virtuozzo.com/cpiogzip9utf-8e1e55b9764a42504b854494efca397af34388d84d296a267111fdfd28d19f31e0d1d3887de5bfd270e3ba636c374a17763186781d88960ce7a0d73d6bc2a3d22?pUP {p)r ݋Cqwwwww(Z݋[q/ݻs>o2If2L0r0r021/gd2be?ijLM`ߙ = '#3+#'3?͹(UP?~yjԴ<WAu.mAmn,n.s@txQnq?{/00~Zԕϵ󸕧O;@` j>bRށZ[t?Ol.lql(Bl(^0*#Œ(:SgYVH;%;=s xnхӼ|~Ӫ!u+159m=\>w փYLhM-ub.uYj3Acs(;Mj&+{#}J\Zfr5EQhߏ-^WJY/'6ښݵv_z^?v \{-j':xtjh 8;jm1iεV[於ZNhfɉw9yrLlP }c8ji(ykΜ{ ^&\:Džl{^6_Ye_Utnui]ӽHXߺ|pkj+aYrXoɠ{ЫHquëcr6ګU%`+jrMc[i%yhέE%(^wdssrڶʺ]+N®ckQW9{zZ3kĕ]lGffuŕBgBWTVI }m_xut\?KUΚC P tm\Wn:׀c<ϰ&邾.߾scO궻C'q@SKǕ&%gӼaZP{Y2]Yt#W͵:kʣYKtN"?f (Ygm^Y/WT*h >y,񨛛\plg 3[jWY-]򕵖`1mg "MC]Ю(#;HǮ\Z'fȄ:w)i͙K~2Qֆe RRSN: \>*JQ>z@-bz1ct6nk.T0뺨JgϺ!k-+0Oګבז:Á}B[|V)Nia;L ޤI%)UukںJ.~J(-Dڃm!_"#OBȺ3}Uj ˷G@?{.q6g7cwde7 W>nn?Ls~h\/tu96ybI=EZGji1yZu¬K׷Jj!Q7..ϫZ\(o++|8NlV%[,bpm^n?C8Sr'.Y_ojk~*u]u6lwu*o\hl\"ɑ"@??ڄ hNAe lbGU~jQk%QQVdQ[V"1J#%fz.4a,Qslx R> RAR.‚/J 6-fg!d 1: \vjh>ǧ2_x4D&0 $]ؐuH=|pv73_&KQ)=T!,b8gRct< ќLRP0]prBwHE9F_&JO@)wT/rSX/c*ӾtHŴ6) +^6jG- EFfkX(V&¬c"d6]4ן +8Jl",AFaqhdA1Z6`bOdVaXW43xPOZH@ำa iŜiO݆$e.5ĭ3jvy͉ϲSonFC ާ_,]ߵ_a~~Cg!h%꞊1FmtM>*b`}hw4^1evipITq6c¨ty\jZYdNb*Ĥ)EPJ6+z .R$]_ q6&wY qC<p '}w m3kF$D H2⦐! #^ a:ƆUAa QbS;cA\'Lo0<^'󎊷;Z\1˦DzS&x!7%vn)*{:%l[ NHF4\)p6mD[ζ+zfo|{*iړG68YG\G\EZ]muDv@lAy))&6b#%ZJ29ہIx\$`Th0= QMJMKH9?[h}{H2rN> D ,,"q.5(kD.߅Mdb.G@BbG``׉`#N3Ē{ FH&#XfQrBLLLЪЀ1`lthndb q8 *273af2DD$  ,4C &p$UBt٥wNمe0!ZŸ lap8h:@IB7!3r5RI/o=ZIg>`12u! - ;ef`ƮlDZM&Lb80˰`e'&,`ڢRihI8=a ŦjHn#$NfJzfDSFKe'P?xLCʮ\q=%aaa"X,tBR Ҵ@Ra^j3hJȧ%Yb;Of$Y\ QE](AMc2a8Pc$rn *~v?<bKNs47+E4jBLc "GT49D -n)!#η0Ǿlˎ!5N6*NvA95À>S^oTDn'.3J2?>#;TI^Q/?,W+ ?u;<IQGyccy3b,0Izf>n>jʤҝ?ޮ޷w߈F7ٖo?=#QWRSGf - הr835hJI2Cqp")+&`L.|Α,>^Jq܁&Y=1:vӿ76qvMl8v4i9s*[ۙ.fXoYJ-2vk^t$eXxM)PZW)gږSS8{LA6svr,![֬>Go꪿ʲ"Ɇ*jP@|{;(Bgx TQ+٧zƤ-]]us%nE}(~qcl$uMќ#Xo˜F?HK!d4)H88$m!JBRBSƢxRouАptH02tzm25r mf8I 52v:l2".Lf`ő|dZ4069edG!m|aH8tt&R9ua-Ia&"uDiHq>5-$v=8B(5 q"r EqAAp2^P$XR7 ̦UZI(4G/D_Ч*Yz%Cx _P¹p\,g`rs2㜐+v%F<9MܡcSec lHO-tr-9;w.udaƻzfʥi8,BR ^F3B7 9x˹ɻC}EKfXnѦ/ xͦ;j[JKLL^a󜽳o9\v2&4lݙ]`_Pгg?B *bRO`QbTS#0!faГCϝ+8~>~8O/d6J%r ԪǢz=^tppLLWVNW`8ㅞab5˹y۷{8X}y%_$9Yinj;YfEK7y-^̙UVvILRv@HMLLw?;_\Ŧ/" JE4 # I*:~6zaSG%qN&(5+;v~ZT~ q5tnFAF9tKU;?ϏilC29`(@WUE6nSk4KkQQ YRS^QGW| ߷.'ɼ-fShًΗ|Ji_["٫"\]%o]Z4kTZ\V1;KD(*z@5=9mz"L#|*`I.]ȣBX,-B44חmO~\E9mOp7'j7b1nwcyX.[=ϻ#Pq0;`^)ʒ8B>A@|iĊ|dj{!ԣ`"߀8RxƂ{I(5ލI1ݱ{}e<>>*YEb@JjG;Ԣ q{Sb 19bTw+P=c\VVHu#X د5` E@pH@F" m S*/Ѐɰ :)VYMZi120 WR"Rl!Ul1a0dZK,CHR()(I*SK%3dtHSdJb05mԟL˲VR,E& ,YXl. !WV ZK!G&Jh$fXR[XXd'CZ&GIVdWJ YZ-#" h#ȑF pdavŨ{-ЈZ/cmJblD@$p0 IRRJ[ cūKף#ql%3]Fw"ݢp0Yeby&bd*54 _ @IXJIX $Og}JkVRhztr  3\ZD:Dj \&={2?Zs_&V]|-~F%jJ!x&ؓLIm S@Qe1;z)o,wljH9]IƯ\$6 48N3gZUMo]y?\ƠxLN©}Mu9΀bc1D3\EBu'x.#Oao5a6,-2 x 1mvI|7GaB;N{LOEG_&JmV]sڗHh9>"Y?< ^R{Ja9_x+S@GcK(7!$H`~:r6\ }H҈1ݰ`-i`xGשX& r;0.n8Ga3#bLiCxuΌЫ q Hxu%o0ߊ|"O꿊bR/U~ai)9|RF'¢ߵ@8 9.!J >x `o1KJ *J{xK2%n6KʵTfg+ӛ K]ҭr 4_Y+SM/2ʛ-xZ[TNob]S!WάLo"ͱl KR !Au */bPƯU[9!ٮJ/ccL1 w\ vduJzPbVO,`-nC5tx9AVTHE$$_BWכ/_"2X"EUWOng_ٕ'9A6wɸzuV, 8<;yDɐ>CqqYUf(cpdZ\柏&ڟ'2|SA_B^nu V|ٍoZc?%Xz(hjO3e uq6=֙{9)gր]rj##L)6uA󒵿] y*V]Ӽ5r 3o2PffMa"wpqI gCz3z< i$th ǾD׽%r kLݫߏ!'r^itnZp+_}.5"GXWŖ]\ ;\ߣf6 U1 S$4h^]WoTvz[mWlm]f~I, ٧1f1L S+߻Je)'a<"6K~>m˥b Z/`N</o1 v#AEA8[o_ncWekM;웡]i|g/4B,$6!(쑁“X1V,d_Elg{ݞ'xm u"bNs.k@#)(%HL}1yLuRSAV *l.ΖNK%8?,(J&ٗ/^MayAhh<ap"1[jܣ#۬g;jBDe6JT= $.F%i9Oll.nxRba7aHcxAlLj80LׄCzI)byb&Fxqt_8RJ9RD?M&]d48  C"9M@Pk>@`_I#~^qPHJWQuN@ 8ĝόNHe?vr4ɍw{oT_uAe!O L1X5%,)N15ugQɳVb6(d%{7nh9s>=6ѿ> j;9 tz|`cZtQGdnz*g0L.~hcG;A1G0NOg2#/L6'5M`TEK@L&ê"PhH[H a2vV墥&͟_c_` J+q?5D͋GsI,G3Jғmz.jp]gAb ET2[s^oP0'q}I# QM\lW+YZd2N*k{7o" v[~gT|F,Z eK$s b&UяHWnGwBrN!κ7 =,/Q S ͔Ȋ⻎-ʪ *A gsl2 99Xeѹ_iZ&4؊@ߦ&Ve11}\8Z1(kщ VUI=S j _N>ܳá4h! xxrspJLr|ݓl#@3경@"W H dj0'*:FÛ/eUiIx?m9bJٳj ,'i״WGYboJ{M޺jMKl0ثҾA,ʣwm#9vhTfOM[=8]Y|kS@q&č ߙc7֮.fNC Iq A(?CےirtdEnFn }HSCwrlD޲)yN_<\Sόڷ~yZjHAVm'Wzdn3i* E4wE? L\ ?nR1|oE_”~k|Lѡs"S8~({m^M"{?u4DqGriտ'`Iw/^1V[V<~d A|2'/P9TЦтP*ǁ'Hk$/G0pySϷ=S9  M#[$2^״,9\L\Aa*h,,ĻP)X]0Cq=J+va/o7ZX+2++QA'uQ+8c|;H憐+7n1vxDȩ!egߢ<_?ŇSee✐L a5i,oJ4آ\OFϷCs ak"|⹞;}-~uose[ Y7%OZ8-k,.;؏g[$Ғ˯E؏en {hē8ǥ (Iv!^EkU_g&a UŒm &cj*Ʀ6%Hīaɬ`bĘ>gR g#ɢKPt 8V!jO;K~9Ľijv c6h d2=eJuNs_jז2\*58)>>q ~Pw'=,]$D]yhupcKlӞ@s1#B}+=H/,\D0A+ {A?m}f )xMjj`Jwtʉ8t!:! oMqzo{閱Z8] E XIqwRNrCuTZ\v䐭EJ2_fKv2yajN5;چXŠfVi霬ڶ'Vmdܱ7?im4c^K<*WF*)u=- Yz*y|sNne]|,MXY.b1fUUxL''72#;'R's I k] .dWV cl58$Jyl8vcLAeɫ5q8DOvE .'i_Bϝ"_$SҴ,<8W ǰ(FH'Jt^cJSoWMqNPa0Pb0@gcBqL266m/V2Saa0 5>}}ڋ[9,:=; !ۨ #Ck㛀뚶ݬ ]z(?r~Lyq)IQJxK83W+FWדvNN㩆H܈`E>z)_i' E8!m*I,^4-O?R;{Z.7%l-цm"( leI'߶~bR*.kysu|aB}b2̕5utr3x\A&0 ±bqOa`A)qj^f(WS&w-ݩAԙBG3)Hi7NvT_^,uw޲Ap難7f˝Ѭc\b@V_0$%p T+h/S\[:~SϷ8=-aږO;8 }*+齏fZ]ڨ-;\r:)4З)b#S*k95f{l8T _SSƫ"k Rycq\pZgU-E%08ڌpS7|Iv<ղFtyC ԯt= c;D1'']`de%Adz-~޲,'=nƬ`{ު,Z`'NffDX`N4z圷0NM 3ailȾPr$_uCA;@T:-\:c}h#NMDl3(" if6Ć9GL~#m/USywҧh+ص \/\fLw"_Q&%8Ū-FV4(qD9$v} {kY.='xMo͊Fu(s4p/+pyS{~ճ;CDwn4V*S$62A\w QJFK>:r)xVܼ.6 aOOFR[uM%՟SvTjX&[~o?_~,^/*?54c 65W^$Akۭ;`2P:Mwn5QvG l*Q W׶?ox<a#9A5Q oO$@/]wƖ~jL!)U)n/u h> ՟/Ycg d\ F Mޚ ǰL[KwYsao hihԩd_Z"FխMh,HRZ(H=U~]Բ]CגcK3_(XvBI.-#~xwXj7-yʆesCd~~ɧvptt1q]oi; Q*-Y]'ES\ͻ!0!jÉ*tUrw9`bˋ11"*%n .G[dJL$ca-BE$"Ao6ݚ7Fն7K k Sy#P:HђMm~!J\L)Acr͕P4*Kxp?M3 J*8{Źnt,Bc0S8$Ն$b˳ 8e"Jߜ~V"#iRJ&_!bKZ~E"^ןx%])PW~ Wa-+ Č7$}/ۜ?4&99-VFqh]6GX.i" cpdeO"v*y|oW #uJ?0@Ͽl7$xI/nOgрSh ʇ=oҀqhMh"$;B"B=? aR!O-QwczGY okFzk] nFpb ?9}((9$%.c6tyo ~gb?˚>ϛ`r"[&h{9L)3稌zQ~X(Ej͑) }^^]r>}giAfy/Jta~O,9o E׿z zyw36ڵ?F0[nva B1;AX0c0 ![~0!]("!DRnܷ.'?Xonxۖ9-~9^2n.;D*y]쬧O8 Pj}m s{yҪBj84g˦ C>gꏾ)@} _9oyDj25F=W5>h#wwx&u #bgM3 l~IJ1Z(>>AoHEt:qJjEZ쐱Q%/!%@02!8~cN[0*x PhM`j B'3 ,, xm툝X2aD.6VaIj1ڊt/S =>cj4% Rde \KǔFpQ5ZM`0( ~#g?7͌8Ӟdo3g,+]UO|͸taG/d~"tƽfƢ3i@ ߰~P댝 Hu)S2D7PǘK]:9Ƨ@{?S0i[ f?f_o\[->yƖG [V_SL։UpQHPMU9=P 7ccbP&8^X ETřŠf|Ŋ n77=dC@xde߃ûϼ(G!C̗hxO0>9};+lY~{=ƦD: !:w[?gn 0;s;)ZN8BҗB0nэ0?c&4}/H5m>I|ː<_C9Hb˒\/|q)$;# ̇Yua1m|\PY3EY ͵j:tޓs}@xPDzapvszTYqs$*X_UC]2~pA! 98EKҧ`Ɔakjf|fbIC}dނq48MJcKd O^t$-81vY*i8]ngMݐ՗JL5LŖ}&S>˲W6d10p&W[>A|y̺&EXV)3}DӑN^xK άLSI5{1q&窙̛탼އ(!ӯ9>`pKð3=oqն#-p֊֞U4HeNrFo]>K^v k;@_9,@Ղ_Oᬎd먾{;Vk$FyZsOtvpW-K^(AQsY""jO?t@26kHVQCQjRjѡ2jJJ4៝t#Y0?LcAf~搮 tF@Eĩ0'Նv` (hkd\Ԭ4Ac{tW(^i rD"B1o)xg9# Q{9{-EY v&9^8pˆ!c1{d@ ŀ-;sǺ.USnT t5QMlwyJo̱`[}44?]O<,r>zEC ʹ~C_7GX`>nك_t|)-FIB3*;}/ssK噻o"3Z<+=V>9 S6#a^0;ٷC7vtxK7I Ԧ*%A&s8j3hd3@p KoHQrvMggf4|+e!ϴ<`5 C^_NА5kKNH][8^9_F|J̒on ?78 @A'پEreVC^yhom r認OSmߖA#Esy!#P4 qQ5B)z~iSDw US돴ׁ׃ƩP6sMsdxDX͸Wͫ),h(r@~sC5߶`bfΆ"5slC!ZTk#M<<;r^0 hBwf&lϛZ11Jm7FFtӋ~0ő`"qq s;Shǻ͞`~/@:A P A>W!ݣy`HHi0&fJʡ#8/?cg+7739xWOsVqDR"j*nnn<]]T)Y9_5PJ&fVTU[M<]թwf7u=U]R zm_v߇(%zhbV(!TT4Q-YQ^,0*X"gqQ֌r)(gTA$Z1r*!(a%9Nhy *hwbh2h 6DG#5,K w :w0ɒ&b>3nݯϿQ^E0SEDQ2M5EE/u$S4L2n<@`t| nA@F  TmSV X%`IjCWBܪfWST6T]S[8U"B&i/&2#uxؚ ܜx7nPAF33Ų;卷tQ7GÆ_ܐYw$&Qգj*"hhYńϫSOY2X MʨMp\VQ בZĚ!fS?E;-O+U-*8$|uuj W[^U B+WT3^.߾{!~xՋ$8aVV)(-UPQkᇔgD^}q|iDaO=yuvnJhÝٌ;aA'O2I׏1o(t@<ގKBRfCb3d7=#rwY҄&mυ*Yt + ByHC'g<^ meΣӣt+.JzގnI\bkp|ĸJ1ѽqA^}q坣Yj:JFj5Nx6w+QQz1ʔGn~]c 8mߢL)Z[|up˒f`jMzV6 l W;3le 4vn˰ÌD)g4JH̄@+mχ@:n(83 dÁsy%|[㓂]MfB:/v԰ǃE@!2 Foʇ('b"TP"&R ide?>Ҍd^`!;0 7yy_aYpb8٦R9_R/KmhKYL@nmykAzXe_y"~ʨ*GݝS?׋<}hϸh1q)6$n#ZXRԟ> ŵb=[oIܘ9\٫ _iQlDR{pfƨǁdfWDoaRjޭhJ˚hT *1ls?a1NFuv)T3o`Sm#``ͅujE3BO؊7A.+('2E25stcV=Fjy{'y(oH׷2)?k(귈NE?7nݟJjt鿂N :Iۊ0bh/b~^^ԼVV'0 ~YɈ5&?&X9N+9[q+Ř:%E2B&a25D`h9Q+'0(>Hțӹp8O_ga `ZZ*Rj(V t§1Eί\ nJRj*i8CvVL=J$R@֜P?ztf*wP F|WJepuo9.)OV ckm[' A ŷqe_ W )v l 6N{4{'}YUwџ7 ɝ.'Is&@i;.~.`Nx޾+YùF[՞ 0- kN' S_Hópl=L(f0diD8Y{Sj/םK + ج0Bai*`9 əe>, jp#58s뜩GKAFWֈI.bcq>L`t זX#&1B,B#(@ ZBd"%8OGTC%V˫W9h5 {Oq<o#+.kjYΐijN}vUnac#KӅDt/%1gfPfd1it1 !9ѻO3iϯ +.ŝ9i\~XikcMv N׶oCB&R1kx14rnD%E3Z0*XWZ&[Y|㺿U?ĀT! AOOُs}wɿMU3ynSv^z?.=#}^gO /5}Ptly>nY y8dޫh45 [{TC@m+;ߩ~z|0 S6 >J{yٿ7G.}N$B_Bb9ࣚLrvHvUO{6.R~xWӯla[%)}HYOjbil߃>Qoޠ@($LA~f&ڍ6^##E>Y_۫n]  ɊQ߄7d2a{q62f`]˿I)FWDnb捕"6" GNܰ{UcU& IM6(}.NA8<ffnJWP 6umȶY x5NTK*Ќ*}kL 5)_ YV 6.<RCsӴԔ$F31cl$uagf###ZHZ\zn=skekϯR8& Xcړ<ٍ@ml) Ö :fg{0K*պ|ټ@ "='nK@^H'+i&lKCnƱ8MMͳL|GCqYzkyØw5H#2 & 1U5W vjO9Dxr8ؽt͐v.M"תU)XB~K+.c | N8f-B*&Βγ:γ:ΫV'[[[[FVѽקg=X5-}tEI'ӾYѣFl֘,1הLǜp=LU@|& Ey]j Nn۳}|㎳(LИ n~o>?e.JDEjUnV0ƽYt=]iGG$/(饵rf[\/7L۳[-_{6dQr9iCLL-q!v) Wpw+N{"t( KI1N%{c8(fPd]T&iWSKTZТ־O|+ uXgoHpO&u¥>|˭f#lj"h{i)-bFXGݯ?'h\lZh.YD5Q4}͵b_I}J pXa-/D~s=OQ^OB+ 4+pL:V'~]YlJ.GF0Sп<4 !߇J/?[fv~@'τ@toB5:a#uxx&B  0> E ])QkVV#Zlz)|j$٧UtmN$f=ϬӼgMz=qm]˵lԹf6PQIP+f{?е[V ;8'Ic\ĺھM)2rGemC+`Dd Q2lI$!$F֧G <iGI$HY,c mE6PdM =L[dh\T%#a,ʢ\D44`si`CqfVJ}ӫqǟy#wMxbsw.QuNX],< QIGjt[ aW̵ δ33 ١讨z: .l$^iZy|~8j:8~Aa>٩T˜irq1_M&[! _.] Y؂AG5wpG.ˬў7F̴Q xC@Ra[_к}bE82iv8̽AU=&j( ,< ZŎjB]bʼCd$K̟L8 Y4m;xY Oga.#vI$v5 O~{q{(>>}j~70.PNm v2ț/]jn8dBrnq:J1' CxaìLǕwuQ{ۈ 6"M4c-tTJh d~ S5G uyJ;l5ډ F``t2f4/ u>9vE9ԂWW\>'VGl7{;5Nb:  L iN!2ܛL~ M[ .B21TClû&,?׫\[ᒁRJ ~- FZ8kh7w!͈M 4; t6EݻTfN"D|K }ѯIEϑ@_ rPҿ?d[QEA:B((2~H $ E4!%!I wգ&\vt\I9*gH1W} ?"`ڃ\ܵcq\8=Qdiۼ>np (zRyɤnuTA vjΒRI!835I jNC99b&:*[7gYL'aqٿ}9mY1$+ənJ'z;goxlxސQ:Wn#+cn|# Ь<9̒ȝ{ɯi,/8[?$SF"ϓxHyBh ) Ny: Э n=}رB,׈~4=%L𪛶\fu\^Qy]II*o$ = ]Yy,}YRw= tZSq+a\0INPmCCm#gg(ƱQ5K!Aufx`5ԊD'u jtljJۏݿxBÐ?evKS!%>{co&3~b:#g^E67dx{ Yh6M@iUl4y;&F\p ȰFQ_@gaqz"jɗ^oUo@.[f7ȍ˖ΐ^YcbZZH4» x *^-9G 66X_E3 z>Ak 9x`Vlf*o@:s|O 6FS? aßwmC8( y'/J鍭 h  Li  y|ߵ2#? *&4XS8\ Nӣ@sűIv9&x5h&K"H&z⎙,32`S=usLhco#gi>OC]u*"!XYEl|$-.- uD3#k1SCR>xըt$4]G~#3%ofBTeĹ P"ϲ\ٜ.{oGʼn1T a]`;H~l}~6X>\B'A.O8Sx"K#ܸ|\TRMʌ4= MZs:?L2?U]. 5Wi}WF#ό UCg1scaPn'U\W XF}aQ'țjNYƉM uHŜ'}c0=K\~=ecaݎ(T;Y1G}_tWBs{ *Y{8$||2E+xi-Sq½jg hU#?*|m #%nHP6R.45Q*hfp K}Q8s;zhE{~ouNvK>ŏ(_Ndɞg93%>~S2 2?6~ᱥ޹_EyꙪqgȈ>R۪3kQU{+sG>Tc)F/ՙm9O Y2/2[ܙo3Gn4@;َT(?g/^_eWKUfQcjyR[.taآ֩FS.;l8LK-橿.<= k騙PsmUbG5JS #l o>R 1Jٗd] rm2X(c/b1b1b2,JR]ϋ;A.XJM'$]B1W]oj!0nX>l3sUmwׄyT) ~4iѝN v.+l+ g4fլM~V7Lټo7,+p['^žLEeUydLܼVr,FW]q~0\xHQ-8여?fh9/ω|8\L ֲ>P:Z8\~'?0tcf`Ưu$rVժP  Py"gUŦ24R.8¯d豝m&dɚT9f)\78W '݅'$N"8eBLޞRtk-\bEet5GXSpmLr?^Mh xwM{$CZK(q^ b`&jdyɆ&1nVCUNvh >k%yǎ(huqreHN!=wZcZk(i%ڴA"GGr۶vFstYgwzVfn7hc+ںu<܈-bN}MNRkvڵƙhM?=痮 Z,I ,QHZJC*=_*O߫^Z@ [4#Qva 'Fj-jQ\.gR? 3O76졸b M/,j5b'Sq[#gزmqWeN/uuRݼb75U+ !C%gAqPbYq4\tVDe8G8ۢ*:2Nqq՟O}>k~N}1hm!MJ-Y!iRxx_'Qh8i4hf(\i[tFWO4f}T +@F{C7e"3z'%IQ`ـ+0@W_mzְ$#lЄM mXDxۄ\vP.7 ss#Lt&dO6k{%{3d<ԗ [ȓV3ݜd:V "v}rN񸍢ðl8'sbW;ҝETu>v4ڰL:'ZK|NRR{c!%c|xKL3=.B긣v"6B49YRfaH쿒gvEY}bc(~cRXҾ/ݷn7"l!a}^>7Rn< =:ÿk59k<|pMwĝ.`g%zR$5vM44Fkz{7tިZAv#U*rs)uM!w?}W; 7^1>>џ}m,gG7Q8= \ƃ) ꡦPX亜NxN# CQG/QmxJ̒i70En(؞6m, G0TUF'mV]ێBsH?S+iqFQb$CeBzɛ =:c:IhS(Gp23|Kq _.pp8[,]J2xiج&:,e o4 JgL汤TKV!AJv376mIApj\ִºq AZx,.D6T ׭BpYTԸpߺxk=%5^rr 3snFU7Jrf9仄aW:bȀ; OGX67wh8hEI @0f{e9;!}跁ŹߨVzU}}<],׿;u;d',{Ew*wF(>R!76y%G+LV,=E3,z %yK?2[mu&8.\8q]>"]T5<3s7T$Ҽg9EVߺR*UW cQJ̑fD)ܱ$}pt a.}/vkӁ9@S w! teN@"E{ը0FFf4Uɽ'#riY~".Fa(%/o)YvHyhRNVTq}޼ʼnS&lvEL^&"#G@8ң6ovGќW" Q،BQ>_[xvou^˴&瞃DpL LF6P{ҙ}+T}^v\tJ ɚ3=3ż16 {Zǐzce$ }hKhD!A~]]Oէ/ R^ Lg*tJuT'yφ)/{Eb)2Wno2}"e\T u/kt-DNkBQ=6KmOðK.g e&_[JWN' $܂NAr7T^kziIQIS7dmb[E2BH0|Hs#"U]]&l^g–H㝝d^h0._1"]QkM%qQzr_J(5u8SLhr 0akE[ldo}ҫBU/QoWMZ#mN=@HGc>}fw~vr$s#pulk|-JT483nv{>Bbת7^_I0i)9shňuܝ9 *eKP)_Dva|^eUL}8 ] eUC$uμ,Dhvu7h,ˁ_x~ܦB-#s)AKO϶hYto(پ}5sD]2]h)ԾQ1}[/7m тPmzeqn[񩬺"h1|\#GF!g]{n%}bv_ũi?S5B >[iK}gSއ d'mh0NgOOU>J!E{LȎQYH+g\!di'}䔰}MdJa) ԠfM(䉹evIǥ.ymvaQFgk-/k`B<}e]ᑑ{IgyZ%?={h7u3[!buNϝk4G>ll(AѝтIx&IG Tijf/"k{n\dž2lNZ<"~׆U[S%;/|ZfQT|o2>gkΆle-j cKaf*!ehbH܆ݝϪX"$ bR09eDsq?)R% 7nhi}rjfQfIW2Ewp[^>3rSB^{ >Zť 89iE&K>S7\jK}26jP|I,_]w|W }IXM0d;_:DHnpݟd Wy-,cQ~ 3ȍΨnuP<]sre!J8l8lj䅙XwI w#ciruN0ZIFiEn5eW%$ͪ|ebf2aBH0*@Te4 qb IT37M珌I^*qm%!3I}YJY||5qpl,ow bz 30 )gy40Ԉ{#?=3W+晕*x2SEKgk<ElG>E+YLbM$8wbɽK=`vfgxY]ߎɿ-~غ":ܭjGPS)bM>#ik{o5﵌: ?]gU݉I,WߤIfG9Cνn8BuSіs- v̫e{楅}"q~!4ȡΎ"EĜW DQ̚8[Ӭ\ &) :ly4XQD_edq{$lk<YC ::OR?7Ci>w,l 9K^_iWѻח]4{.ejgc1Vp:D}-d%>HUM.@A kG,6:Cj !Ӌ! 2JCM2 sl8;^}sxS\(F3F7d0r;4]ëW8&J -e]] *$ky!lbWPA2'-l`b~?E܇M8Bjs1oT$amЊ\{|ls/≕I'9 !NWY!bȉV:SmߠYBe'ӯ2u5=h6ZArg GF/_>h%$c攴VUbIj7| Żs+T>~,;|y&O9sX%mƞp wj~_@rܢ}[b^7F9@BH>+Oe (ێ QV-(HSbK}lپ.?~^q3-]f1/W"$XJI?%U|VW٫;Jmr\+Q0̔vg'Qo$ 쒭(8;E-^VqS\JRQSǦ*y݊fHESvUwc.(xhj8þKHӧ_ְV.ti>xGv[sMPV::w$)Vyf՟1{~UJ1ݵ9 -x=-KcشALQ\cضD`qx3A'_˷" |1{Ƹ5n?b@T#J.X~Am=TJ|4r :xJpA$K#\>ج(PvɎ sMJ pLlj> aߍ,G'avI ;c-uR~c j5}ߝ&e^`LYy 2i,mrC'dKz /68>9ic^1L8&a=g2C i;H't!2@90z§D.G$% "H$F^Gt]CFbtnA\"0]t9ޛ3̸*3RBG^T}miO|uPY^ K1pz|n&.2xfMr=AF^ 8,VؑbyfЕQꪥM䑛HPg↗2*D׬Q]:ݑ1n.A$_CBٕAL4PSrBDLq{ ,e*〉P2y D =9=%(ykr3.~MU~wvr-,7οϢGRm  jMl%ţ-۫%pknwW_jo ϟ>aAQk 3V^徘=]V…RAK 3 6fnʽyu#d}%|b> 73x28I50.o1G݅w&Tҝʓq8Rh9|mÿڋsw!S mXVhΊGiUo#iJKG0o޿X(U (@ (?7yYk%R" hPSoxe[{a/IN21U&'ߊ,3fs5xFmMĦ0%Kd![?7QTm4e$jJ|ΨrQK=]*+[<~r<76.=9w; &J/FcUO\%6wS${ }ScB&/0d kR~sϸiN i"EkqXSm&F.O+ỏLdon?ė ]+CxPQ[Ihb.'"dBƍyN[qoKN6/p$jD %Άp03xK9CD$g,u59NJD T&ٙ@Li˙dGl)~8"ATಘmz@M`r 0UYdZrufj$ iߞIѣϣͅH#dyS-_f zVNҵv4;^\OM]9wTa=Y"k>2q~ XbhL`dbAU;IH_-:kLjsǀqd4CBB8=#6JȹXqn a%l "n:;7w]{2.or]UK[3D9q/W wǞ0qoE n8~&5&nC,9*2::Jp[㫢|5eCSCFL߉zevfj}+&L-ӐX~-_NSu<έ>fѐݎicC#]kz$V{N Ц\]/Pуϑɝi 3$>\:k}V^/^Us4vNNrRsS5mp χKY4^k6Q0CY2/VN`y0 ݼ< r9 i]gٱKg8Jn5#T[[8:(&j2fd4=NWz[:-{0䮈ko0M2˚_\X'r5CC@+4i}jP= eobrqlrZ?ьNRۣ\"eU ]pm:e]L06ZxrӟŖ쇄I3g|zpd iyYyQRѾ+ дOǞ,)kkǴω Ȅ) k>*'0#JkU7MQ(5qD- QA" r9K::ۈr{תe x/^VnLyDKy a0Qҷç<#gטW{IGl1(z= A(Ċm=8wo.eC9Cل4<RR?=[h ~Y4inK TmwِU|8BkU8H}_~3bv;ўc?})_z/σ jݫCw9 ф>_ , 5%CD Oc 'P&Υa̢˹T/ʩ˜ xgQ1ɝ / *F)f|`Ky&;=`(OM45m #Y19DR#|{_cTߪ yæۅT_f:zl88rO-3ܚxG@iP|GeyZ$SH~y";1~׿1r&QP^px*0ĤIKf},.jM7ޝ-3Sw^RJ[WC+y3ќ3DV@Nvo9ܴ( Ei}p{YS m 7?s  .)enݮX~7^83&n"WH \{2fk0E,qQMB443_iY3K VrI5fF Gi"ǃ@Y?GX6|Wt =ǃn룦ޜLJ,F8!n"js.4ɪ: LW#X^^Jk',$[d~HZХ21W?\hTG6M->XHGԡ:9ȍQٮJPmt3L >;J,ʣhOe G}H׈04;Hy$r\blNK^#n(H0ndA[eщkBf,rJɣ^&Ѽ x4y4՝CF4@Ql`fX. U[J K $55V֘f3H6;4yE3O1 [fL1[Mӳ3Ā\I"ËkӕT9 !m:}C_Ƈ!ʆp*&-gh\|sxPo0෽rgXXɒ_ y9B<.g$kn^ܔ!Gbf(ѫ3 $}ʹc+/۫fnUb, Z2U t`DY|vkLڛlE(=R8 ҺzvFx@˶slcPΚ 9H)`! `rqSYXՁ( P!bd _"*U6ڷ՟Q|eѕak1<Æ>2avo>"g47RQ>ږ r=I:WO]{puOv]}3g 06HFC8ݾ8?Ė =ŏyw*ܬeP LFY1`vlx}L4|%1ѝQvQ=Џ$完>qV;RjQws[;4Kbj5OF`?Wz1+v M*IB8tƒ<|O2D NV1y~1bn*׸s{~%KɏZn);Pg V1 զ'x}Iwz[ VWX>r=weS{dBߡ00tqY$6ݧ0x-dV6ґSD!`Y_(j#gnXHyLܞqqn?~-䜱jv} F>l.qb{Iy#ExzNw}vv(쑡e3.;LI'),I&|%0xrxPg75 >uθܞ뽝=ȧK<2`=FW嬳"dlSZkN4G]δY|َ=#<)8|,<_wH\t\yn!pnzmFeQtwbon|^,܊ B=ylo(+F4d~95Պ$\ΜJuċ;8~SߟIºҙc##Jixj{ר  ܴWjJ]yRw}/F] ]7 Gb!烱M$j8xe|6<;SФ$VFeLs/r:!U}ŵ="C:53U45lªsBRwRՐQHoOqipL0vjR\{%xųq2wbl5Ls/dIsιH~ݤ$ Ch;Lc"d~5;q23NS)E -2Sgd)_U'[/z%3lH༛(<5BK ojaz'GuNꞾwهIe;p1y%_:E ˥ATh_o3Zf 돶yyV<Ɂ. .i=k^I2091rgm9%=kdzsu2;tⵥQ{ЧP/Eb=o's>c;5һˈ8FgNXC:4L4`>Jnj~y=M]G xk,ۜ°lRלܫ&{h˽X=J!њl-uP+ ^(ڡ jPE1 v3nDSsZ3wjٍLN_9=9pZt>lܡ`Y'BGyY5ja!DQ=8ac}R:rB:t)r)9rqܮX@FB.8}Y}q0t}f$1ؠ0fvυ}?/DǹM| J,>|ASh͊\RdɞX!qһ ٶijZ*S&,B5^KHk_.< £Xi,Ldc!'GysS_3~½`fZD1L$qPcḑ[HZ+UmiF 5l_zG/ӅV쩣SYa @> C gnr.N=eS$(taOERl*uǯE/S*V~F=jt1;!ɍħO^e3DLI*=b>ֵ*!0+3{gDݥws8߶naĹGSP"+ c~(LPaRI!B/`s] wy,x DJBH{|U6;QDeώgH٨h{ #%hZ9A/ʿv5[<|%vaR.B`[ -̾bɦ'#*Qr]٦+Mx'ᝪrGf[-p&X|3[?$Jtzgmscm/m;e9^Otz?_~4\`GĊIq'VQy6"Ҫ Xab!9(4pl0Z۟c<1-@kD -1/" qSG&Jfիw |{ID9sO*f1vN׃$azWWT)aFnZY وd+pdHe>9r5b@yc$MHTDD;C 4 qP"@"UZ9ѭ4i %k뤗1jirO(nDCL֣;Hw[%<'Izi۷G' B{DSE3 =#za .D1d +r/`z0Hn]>?gjo4wG-ɵ.2=NW;16.^VHl_؅ߥfg#_("T e:ץY=>yF?Si~'Ì8{}Yr5I'^#3Mԗa?PZ"/$ʜVkcflǔ:@ P"A@`36?+4 J%iYA ?Z8QQW ~OA$ a3?=ޯOʘ RaFZ϶8/ւg q?tƫ=H̻v򧯄omY0Fԙz@c/z`fm=7@Jܝ|SNنaOa?94!CGa>Aʾt(H}7}}o ]I 0vnIc?VTj76PX!C/yi nC=Zo&pTОo 8|橕~r?ڎ4e>Y>λ'ܻbuT46 Wkm06n4_gelUY#orN?1"0(B%ZLЙPS@ A &1ZAF&0o9$Pޮ2=%=dF=E|6KcbZ Έؼrھ/pşIV#F?NBNw8ډ͡RDwqLx }ġ"%Qd2csP]d^?'E{P$>ǫB)m:Xd`旨h e 4kP ^0ώcMy# /rsm[bn++fm.x||?܃?r/+mdj{O\{u7פb3 0:fFDL4B#M~NUh>ZżH=8ޚ&ɰM7{=d ;1:q?p4јA Ȁj2 @ F@R 3 C#^*B(R*/$h|w~ŢB>#<={5нPd-ȳ#:wdtļg&=zة3 A )QH?f$Ƃկa0ل@o2jVb{lUEêЀl,! MGXޛ1B bU ueYfUm֍*R˶SXTHA!nC ޔPw;$bu7k xa@0::W1iQFYƒ`qhv'S@iv53$r`(#ۑ$IG:: ˋ0}B`TV p| eAp!̈8`NҵL.[mi g L&OpfQȠp b/_% 7"Ұx@{MEQE1Tn@ D.@PVNY -[:s!I4@>qyo 4E #"{89@r ݮOa6EV66QlpX }A SAQsJ(J$XA!$ZǣB@;Uƣ%RN ,+m=D56n\L1**D""0OBf3H.R,-,[*m/ޕvRkN?)y I$h=w#6"m̺b";F H$(fJd25D$:8q4Gj.a'2#.:Ǒ5MFf'`{HR &{&^HHus=+ S8C AH%IZ]:eB:iuFCQjC#ə2!k${ q'd/({lP+8ղFXA64~>c,8N.ڤ׽ٍLȷBm?~ m[fjg8f, L#?<t|iPrzqGj)V^'<0?elხGxDj"bfIAAK_Je|G^mbnMj_4!Aw=yw3w$N\i$ 159ֲ ;2Qe.P\U*8`z |d|MTFSM sC*&;l&N mEDJk絺w@١fHDC5 'HǕX{R DC0۟HbB MK'XR"dhcD`1f¬,Ts#h=kLEX6Њ4E@&W1٦4DF|#G`lyKlV_rD8jXӇyg uu殦᪺vZ(0g<8ƴV ڝ;((~(4]AɏLٿ+~bar  1 ݖle p ,@vvp6g4F|D.Q z|,KWQ:!P]xNZg{J*D/r6gLu8~$B$MŲhbHhɎ>Gv?}RgfY/ #&ZCеeo~YVwh|`m)L>&N䋲P|9^= C;ɂ;JhqC)/Q^s\lɑ\8Q }4l@XY$6R|5n9}ǞQC@jX9YM q @tmJ?;J)%xg&NVz?&N&Q ab4( Z}Tϙ=BN+7Y&)Gc!eZK0vi4?`<#'oOuhb\Xr .cDjtь# ·B󍙘*kc`t"$35LcC}c#W2LGvxm)D|HԹ $ L>%5*zu⠖N\GgouM\fv={0NG7NRbDC[N8`w?r4ԓ?ԏFoCѕ;o_:RC5YTK0z0%8?J#٠|?W葼?o~IM&)I?:cS:kjUPb|?\B͸P@yXD,ĂhI% NDMƟ`0 ?E!j׻EJca!mB7d~l\vbV{[·&x|6bލJ&6JY_xtEx'؏L:p ! ߽lcą?M؃3 9rjN& V?3/} 0 9cڠ"6nG<:^(qhCvnX 0Rלxܜ˯_oUNJx:(9[f;+D+`; 3x36%u_etꉙ?#3{KΏqWç%WMFUP+syAID~D@儠8J/wf犹|bh$bA?2-9,M-QIoX|Qb6F9PoAa+21u1zjVp1LXbn51e o "$6?SmQJVҒ&C4]*D&עlzu~8$2Y͜'3(n`^9F՚^38Eqbb;u5Y3ݡ%}HI /`x$sGW6BerURvaMq3M ش"t uE^sԿg۷^SIVu/^ (qxJq!f0a4444QO ! * ~L=_l)Ocݩ6z5t'\drUejXlTD `x^"6s_{IwQgmmc(rs/r%bJbBbs;",YhIv5(J2% ;|<9Y515C-1J"A=_dƛρN}_~Y8~mHA|T_Mrzɼh`]nfi gL$[AO;em6?_UD LrR_n^ A98;)cGi>^.+Z8mbH ̂8v#qkwwg)D8 3qd[Gɼ,Brn.+kGs{&_**kUt~C}8bgj yGUH1`LҼ=֐ `!Uk?|> oGp L_'.$I$r[W} $I$?VV\`VeuWl_-o)u#g\(\>>bYmqP-fFƖ3G/?7w_OiևAJ ^q]pG_tprwUo~t3;|Phͼ:BxzVibˈg_m'ON^wk 65|'|!*Yy HF0Nnr)(_Pt(I8wWXU0=']JVuK/UÙ֪Gy5/sLs>}ӮrvX'!=#/=y]+Bo={IF7 w!֡5wx3<_$ cǚ6x{|RK4$oqz5-OׁvpH})xpE9׏{W`NZ~>F ճQoojd>Ӌ US3wä6#L6w:c0'Kٿe]Fci,#ljl}wcQ!E^Ky Ks(1WqwȚwV‹֖Sh]Ξs]tF<_0,==<>KPe `/@VGpo~[r[,Ucxv=eھ}$3yZUHz08 n#(MHZD"jɟ=6sx.%+r<ۦ?7\si? Fe12CT:qӷ FMta4qX;(<ǂT(1Z$x}#Bmw7k"PShTa1S ϫWy-",x=pW[N})3Gru`wHyW %bL;28FPɀm\ U x0{]sh¹Dp9)TA8o<>No*UUUUUUU[5``̟'Ȼ*=eVh8krYw7%,9˳4~h1z@U{TͬPl }}AQ-rmAy#*.? {^AD,.@ "N^/Uiֹ x"섈cT o~w:a9V2毃zZ,hvWBuC1dc*[dtQ6UR˵L]$IGE} 5q޺ԗIXk L g(?GWNTsemߍ^k UQPG"=^cÃ5ll\;JP:wcyd3s%on KR>V Y;(0H I(e]4Zr]CkÖp7JF}|P>LZ #1q2<A43ƛ8QL#y7G@q ޶tN}5q}umvV Q" ݰ[)~^ml}BȆ6g:bxErtCq )dZ(LHPo+W !  XUU 2!κvV|6ZWx69fpɊ-#E gH(jw29Eדns6O6gӷf{EќvhpVl ۡ0нm9>]8iBd̸XRi::nRxq+ $-c7ݐp|whԿiiPϴB[aaaF6USIQ,x$hNr*Xx3=ښ4ʮr|wsOo)w9[>}2ѷJ6e|Kl_|)Oط0 =*pa#t'uc1àv,jyS`4q pAz0]iR_/aM:3T Oyvf((8*쌊9v+QӫO kۉ 3Fe?$6 g&lHާ*h,KEVA[`tO77wuyG8ϯ{$752bat=j x]*^<#FhJ=cn+|jd &oͅiDqьY_>~F>%^뙅.庇wI~1?abe]l/ /:D"^z}: &*Lq_:3Nwit/kRzѻJ+@ĻE2ܜf' e~`ÅzLތ|<ܚ\2ub5GKA WuLe.q~$We^5b.J^#}ArO(W N Bw%,j~h!0&\&D3ȯ~?gF͠<*(pt-b Q a`xPj6A&e0?8~DW^Lz[  m[L %F?N:¬@UP *RāAICZn.~܏?GZÛ,5$* !&bJ)iBjB'͙50 ~=Ts7g_ěLkO_ׇK67,aMS,RH'R6 hG U(""#3(%"dB**`B  riI)`L20*"V%ĈZ)Be+,d!iIbH"F 0"jb &jh"&)"HR `&P&"J*BJ%ifZZB`B)\̊2LV$z= hS"@8SViZ_֏Ӄ 3p9DX1<"2U3?S(v\+\ÈAc?/nFt֨o-NWˉˠA^voUۊz'v$n@b2!ҁ悖D&ILx™x/oko<=VD􌷳q}ϻE 9-1))?^ԕDE{kk&HAF?BAns0Mgs'e2&Hi!9 kQGK LhGE_ =D퀡oI|ژ}kݿ%x*b"dwcR굅)=T1^Ӈ~X όJRƊ{PP`,B`"A[?#P%!􁐋 ?|m= /DddRqJh+tf"#Z8>Uծ/m/+2JMde;EUܬ+ފxɃ;Rת'7-Ie.e2eφq=T/t@"P*njpl7q bAt1EEE)@<`b)$SR)l4B$u%/4F"D=BA1Ppz1ďV\! 4E\qD=ΰR8sFԺ1sYC{xN3d2Pg1;ִ! ]tl,Q4rͭF00i;#@=e8 $tKM۔e3Xt`.@ځX[*p@@/ +Y'X !gG}AH "N&^!Oo s2A!hu%<qpjuOwsr_ud-eJ~o=Ӻ?a)q'9v~8paW.4s?f|V^q~4"ȍгAy>>nåkAy Q1 vGۍ~Oe|SEaC=;Ro$q͡6(Q1DkmD3 ?Е"=Pq 7CQ"fA:el"{  `>¦v'Pp\Lwp̜wrDŽ(yfzެ/鯇Vm4:s1tx^/0\2B~5lmI; 3t(YqXqQg??BƎ{no*MzŮ^>e0*kiQl*LEU| 51؛eU@4J6!}U xxf7{FFxvd6Z:A4+yQ >,.]<ꮧ5xP9VD )7/zY:}F4 7C5_ TtNWy' 7/fj.Zrё{®X]:[SW2vV^tO2Pgv)oY] F6pnHo:q~~4@?XF my\q#w4¾='ʰ C|kT%8مy,=j˸cpB \ĿeMV7US<ؑꢬe}Q~s"n7 ni8Ȕ,FOج1>d[eⲖc# M(!Ӝ9 H{1-7zzs{A/97G76v$׷u#k{̲p 1w=I7kI§ѩ}e,/vl xZ.vRDZ.DJOh9_G Ve,'3/%Nh$Q#>3t[[ ,'Pģtw*4 7h?Ԅ_!-Ų9aTpZL-C Tvc͹c7W筷Ϟp8P99&~ctާe*%`O+_ɘmP/--LrRƶzw\\(`Ƭ 5\[H0_L'Z\x=J{fYgC$>  QܖJnB;zK!w282G'sYTsБUD\T_0=f⩚.]f4vfeAuX&%rZdjh.95[-176#@gꅗD qi49h|#Xg˖|<ܾ>YA5q>vnf,5e×9Ч1efO5xA Hy>Ɔx'=oLgF}X?g~b䮳4m¾p@P嫒BG~1& 7YULy-j䪰RoaVg /Sd#l?& S1Ya@{Q5:UxɡDIE/|f(I£${ΨX|޼fDZq9fz J[pC3nk.zTLȢlug Ioף9^d-R D=uWDqP.2<<3eyR 6I&j≥ai FYv;7\]b>^Ur$I5ih% A bE`BzKDd慙pon6(I͡զ̌G;\RqP|zW\qjhu+Q֍Q c/;w=I_śGa hw:`q;Õ"tuS0vN: kNw(Fi7;MIBFwǹG*XRʜ j6ʪ> ]j!zy 4I#wbGw!a%0{zFhpTCW+n5նzݻ+.m gf=<rɎa4;t>&:[/q5W<U] +1p0v6d_@{؏`'7q뷑ӒIJD!C-Dֆ؎Ak!u!qÛ|4Gph.6 6fN(jnd94.B?}Zݵ*/aNE1& iA!߱Td;$iGwz՝ԯqƠb(O=F2u3)ڲL '꩒%u;Ci Շ.S'( RY&OO,HN/xُmHb.퉝@~mCIdOFxWVP@/1f кar_sF3n,o{^׶-Skg(`|ZQLy- 0TEɃY1TuW2y|q>F&(+aarVh͗6hBǿ?/ \ڍi`h7zzzY‹~,y?~`$ Iݿ7q“ET> V?z "~AcJڞ 즈 9д$덎u (}s4?1jV4wJHcFi/0!z[7x$9P88G8}BO}}i.#i~F0 ٢_xw=q$ fMN k-o ?¿jhQG@6 _5cOXv\]vT!ώf nY"ʊ!S6^(1DISTրDSGTl>hP> 1rM|A0B_DUq#5p0PAYm>_8>0Q=:;N fnF=G=:P$?=!]43S"l/h`쑪D&<:y^ "[ }r пnL DwYq+;sjs SyV_ə6lytJ!a*y<*!f'7K!kdZ_Nt6rEB#uwa@A9-݉ ewh"?#bɀfu{6,fϜϰk(,Fy&tqeAFͻ0Z,=9dTh*8_?4Fzɣnee=%J"8ܞ6(A Sip(r٩B' 0\de39O,b6H}׫rD4F$ A橭|U /jk1 #D]f-3 Ab`ppRdj̛ehʴӈWDA4 G&i>Xx30㮰=ܱ2/㾺Ren!𞕡o%_$_R\ C)|U_TXz!Lw0q*RucxLx]G5e\aꗊy򎎗sz+U֮2V2:N[I,Yݚt"CEsP̈́bȫEYgUFhUGWr;=wP}qrCq_E9wr_=?ؿp?Qk;T??Ї r=vT}Xg?k8_/?o?^/T>e}nܛ?Osc~OӚ?ZCgAGKGz.ըm>goO/_[/k¹_M?Oo7'svޑ_F_G~??_y_?v?WAP_Zx@>WXaJaUO;mhd@EyiuP]CX |AeV9QUN^ȣG#vN>Ԝ@0+II#m#%.YkL &K<#Й5+wAdhi&di":!)c+e'_]tg[vp7oqvT#j.wf:QЯ-< >1xٰ+0d%YFp>j>>_U;LR>?_xx_Gk=Ɓ=#j&/w7gzncW 쑵ujn6.Dzs_?ێoP-<<WZ=iwSZXsYsd>ā9Mp=@KKe 7>Kʆ!/qJ dQĔcKӖϙMATdrXYO0f]no+F\\Ny}\Ţ`}$wMf( \r!!>{Zq[qQ2>yu3u{qyi/h;8rߑ|;#nN|@E(SVTJ)Y+Z =ܜ 4`$ؖ&AFqZ]GNDq򝊽y]xmK58yQxt/'B)Fu#W aU 2G,1fT(VQ98':v 3,)?oFţɀa1%RK"3 7j32Ibqi. -0ΊIF3M46. 24Xg i#AݕThV\L!\XI&) L®QYs%MJ"H2.uP~8i_Ggwz7*Q-.14=j0kC37Yco_IS lc^_53T-7e '_\s2k@;qM ~ov{yOXgb,Ұv>͌v Q?c9#=N?E?~n=7?? "q% ?7 l_zgfb[-eTsqD15>|dT=q>aI'Vy"[8sPE(TQJ~b GS" guI$  r[[痒C񚠡m888 T81ldE"cwn^&_+Cњwþj`Lfum~J1b5`8oބD3gsLPݟ:a!"U!I 4SSrQ p2JodC.)㌹h5@}a: 4M?.m˶A??.5+\T~N_( ѫ,N:_ 2|rLz~~Ns'PX}!vh>`hڝ2"*.nFp?@Ago>x,J|JyEn{E#?5?G!$aDI&;`AWdI$!$Ԋ$tI8_@9㤊e0S}h@R/bMܐDADI@Qv?gz!exǿgqƚm aRFekff@"0  >"pݹ-S,d?~G~4C? Ga垛L KUf;S17I7mb fYe-mU6l0{ϳ8>zzEEUQUU$L .fam`F84fCVH#Cѭ]as066LcǕO~Ϝ9 'J"+" xQN(k:𾃗X6pvlRmG\3YLNPc?&mwnbR%AHqnD6L!!pF# A㻵4D)UUSUWD[YWW#11".\33 !s3 330̹f\0V/e9Zn齧~Qd M4LFK8eMQ D0M4Q@U54~|Q5#̑ A*# 0|w-(u{،CnwZW79hC-b^34FIf)P?&[1n6mhwkLA:ӷ#9toQ@Op/﯄?Gf;oz7s1\Jmj*mM.-Ywf?w9$Y{/}1&*߰5emnkz7x*inʕf\Jq-ssx]KT]U {/UFh'C?엵1jc#m*߳P|>Cz ŭHG{ |@$RC $:;8H$|^ KU JzBW%"0MOxꌧ$fnӆv;ρ~8{d)`zu`%Ug7ߧ<z<{X쬣Y`c7d1<5hl"n6n4c @LSnw)'(/xTRp1~cbUZɍe!8 @Z}A汒.@Y,8]n&' Y4mB)P "{\7itұJ&JU_g~\l=y]O_צTKVyۂN9[g<}wfn|{8p{y_Ow u[C x*ᷧqr˰1t+n~ x[o[x?LYwuR^5:J((hԦ|T-i׳H"A,JR@-(I~_fEA|hBkRnOoBqҹ_X쬬O 8Omd:: @ȉZDwwCLA f JfbR)(ȧaPX(AheuB)U|Ɔƪ $P tt'|/U'vE6s]IbRdVl}U /#Z/PMST ̘G+e:3a%-H9)!MZ?eP8_.Wwy4 6&9c+T@ 7U>;*.{:@:SADE:Iclymm`#kA LjKywg9wf.y".ׂ_D #;*sb\e׽(FY" F+PdRDc-|FM1KҺH(P/H‡TH(1@j|xs\1LL^.=b1U{h\ܳ33E=UU#5"~a;1Ykxv8#vsj>V#0Tj]Ԫ=w_nJU>2fqy3r: Pv6;@\GIгL?~|x.RGLr[>+f<x ؘI@U8l)lO䏅3R3sSӮS5 2L@3nzvz)mR6V8TjhX쓉=]ܧkN0zRLs8f` q&x({m0v'_ۧY"itMHN!k(/"9P>4 Mh:i$nJO!W9J$R2άk?QH`:{LKGcg HkydYme;fk,9>@cΎ$ r,EI{ǎ;U_N=E|۟__5?򑸅#XAZa욱 B ,Ec of!JGdk:QD*5L&h}"K,؅; G5/[x}Ac3z)/ U{k`kf{zYqsPLf|N&pPUN:6 Yy$nd;`41!r)WPTȝsp;gU wx.9|K{@}CFuO2? vױ5dl\ҧNʓ_c'>.O'}Q8u>V,C׿o{htMFǣv^eP^`ͺ8Y,E'o_v t?E_xH4U[zkj1]nJNgs^ tm jcb'Gٰq i}_UA}ʺ OO5$G@f݀+p8v|)"wxOmt1e# ~ z̆DQvb)䗉Mv+⦦ϵfU^:fn%얖DD qJE =BY8&""o!Naᙚ Ua?GCi+T%M$Q ɨ$Yκoytg Cqal̀K ;gcOJFa1 i !B#ɹD$ups7k癤車{?۷v/l#)QNNoT.bTTZX`=NJbȧr=bQ|CJUac${k?B`N p툋yaV*&4!^9c#-)xi8SȧZJ>5NyaK{$N/3`E?;ùs.5\nR50^Es(M;xBHu%%T#UNwř|,_%L;> ?]t_:L);VcGAaEÈ+^'ۯʑHBBBCNٺ| VQZp{$gGofGbrdK+|4lEҨ>'{W1Oz~6Ϻ$:39ÂCb:FC2G9 j=op!Nɰ4JZpš*wޡ4gE'b6hj#SIo>;*kh/h"'P4FUh%R'o>12 D^7#dB܁Xr'K3I58КhCov?&o\$ xa5B\8KI`XoY(Ax^y>EX3ph ق5۩`=}dQZceKDӧ s x w)ӎЫ˕RQ05#={˘7{=MP^]2fG= Qfn㞪=YhV^QBiD,āTanρp1|nBHd~+oiu\ +f,H>C(v3 ēC|4ޞ% w;i˘cSN8dwߖ\ԋLLE4"@|Tr9m4H~E L$X/D<{kxS_"z=-sE!Nӿ0zmI3 XB.c0>Sؒ<}fkSK2fGf}/|D3 y|TQtx^8Єbd #NQI}9/+=&LQQGl%U-us~~Uakm=*K؊G5^KERM~𚜯|lmҍ *`H18Z~#Ym.}IРpbI}Zq})fMOLĸͩ9"@%Q$1Fsf5EtCd7])u DT&;_Tު=j^e箘< ܸ{vo^U [ir9SJ{QIEB@2/Sa3˝e' pl;(#5DƠڥ[[c#ڤԿƛV3d?eH ܠ,冡US?x")J7HJmaX,( \xB_3ݺvq=qȾp1$IV} _x:yM#-J=S.{?UusW @ /\)˧Fc GcZj֟~T_I˽ڝ'goE_3:玼W}{Y^{8Ϛ m43'8J q:yo7ˡì ;$lO }PB3RPL:H${ӭkE;v\9v3l'b%S |lCxPc1 ʏ85%Ѻ`p.T z=Lf~>Q2NQKA$E=sߙ3LTS~|=>f>.44>YA%ڨx5ZQZJ"׉8!>"_Ϋ^O[=t%ءhXiv~dwj]Z& 9'{v{jxqH=xLOx]1X:*[k*sQ32Rc:M´#(f`fUe'[}z)_= i?tF:x }afbIMdή{h <爖EFa/.-0pbff67 ƊzetΛ749t4iqF#1Jq A˧1)!Id$IFWU-P 랐:O&SDE9/?w3I-ֶ= F'x1OԺwX=?ZєRk2uXĺlFfa|_\Hv=kNf*э.2׉dgítI ^;6S R/jv$I~hntoK㇧P?^44҂ѸDΤpz/6 Z j7M}|39UvM݈;SE%Pbݿjh;M,1}V*fiBt4F>aS&#HԻ~ߚϕ@>{ġ8qR@@|io$Sm(5>#mbX2E&"SEs15 ( O1fˋƟB5:*g Y+. +Ԗ%Sly48ZǞ{sϤeG:@|HBHI$H_ }Bm_"b U+'*p\b&qOJseOYgV7X^M3`qfmb&W]^Qѱ2T˺kʫnH>yЕ|4Lƫt罋^ʝOrTQs=d)$Z=~~#qc΋t a]%qW7M'l׌7sk: D<>V]:`mq3ЍӜI22>'v2nG1MnPUev~w&E4 c:!&r/,զ1C~"r!R8<#.r_|oJnƚL5^+?KH𷉵Xy)Gמ϶' 2;iʦM{8>kFV˄L̝z`:Gh[s G%U_ydEG5䍁 HK5j****>Oϳs O]h\Kex"A`&i !h1"]8syMOp@[>t(;Z9& )m"*I֗ȭY!;hV>i'VS:?,dG|Bp+Գ3333 T J]ЎRZ5D Hsڹi=逸wLbRO,4UjIS8f3 ]Gejau\Iz{PdN]5 'T rWvN\lGe8I331g̾ &mw\$$i"ib.:d5;̘KEܽE|:J,\v3KǏ33FPj|KTb73QW1i꓅ªz Zi.֐A{ ΢ӝP˶!ǗݾiI㋭TӶcn0͜j.͍Tm2ʯ:fe7sT9WAJQY\J1s ,ծwxؒL5Z0^Z'3W2;!GrI$HqxB>;|`_Q騪u= $|V[JFR=T_&a@!Ş,C.xK1Q}$㻐Q'L]_[R8eW[i42p8:r!9<9:-HD nw {^W歡ݛajm꠼@YrJ:N6$MUIA,v3yCX6\/O\15s&d#p1H 2FĪZ%E eLsx`V2-Bpʬj{H&" Ly{)Hn>~M jL; >qK"4iC8dx+V_snLBfkVs|c<h3{aw7oMi7iI$ xh9k}O1P>1c'm1;99/k!  LgT1m F $%IBHڍA1,|VaB uD;&:^pavO-͚IF.~)|g8yd/hiEFkkḌ*.5(dC29Aҥ,tp?==seL$=#S.Ovz?k1;<@Ċ-%Z6pedҵ0%ʥ}s G)XM*o |PoghrV{}VywIOzJ ~Rӫ)`xE&r߆{! 3<07kJ|?sBt ^7vNƯN-g橍0 S V35I9?,LŨ9=jr٦GCD`R$ZۊrqC$-uPtWYT1'6`i}Jן]B|%Q|s3ztBHo?i&r'Ltpj𴦕(I=6as1̃]&PWfe8c[} 'li>@VY'b /-k=*mK LMDXl 5z Eo bs)_՗^~li4|2`@ZޒwHvH-\ϒc@g¾92}k$ ٳC,{sJ"c/wHbEٌKH}+nLqKKE`SG;8rJb:R8xъgM!Аæ5MfQ՚=Gm1eLWr͐iG13?桝2k.pGЉ\%Ka˱>p$C>nL0dmZRyc~xc͢=%<h5 urU9aHV5 ,HYэf&oX'ypݾ[FKKVosms6׿]RU(qD+33W;qqtkZֱkZֵY#_| a@A)lR`m Rs87 QȂ M`7:.#"Ե z $΋A|"-p"ح'k[ϳy4X]]]r~>zS~\c]!v1f4!"f/\ruϲo.k QSĢn3 ɪXARkJEIfLt!Q6t&}v =ꔥ)1)B]R9ęoLr$ި({(^9tr0 &mخӇWnݻvl;pB7f}GGof̺C6;\N7# g+Y94)L^E–ǩ!U@uc*KROusCg6x=p]˛*{k(+ =XkS gV\,4c)ٳ 1/5}d})q3P,XeG , π`yaOjp8p̂Ozb!gXSn}]:Oyy_1X!T垩#3h -#}~g[%}hdM(g!_ aԴ?-HZ6 #m{^niUȳu•zOIs=*n3\ڠ zۣV'$jwu´Px#24K=rXZW IqPȇ-vKB[c 뻠3yMl{wJ-RuջM,sg4> 6h\B3o\Ɍ<њz:Z2yvpгlqAR^r=(HƖ.z$͗^zAY*kUE-,Ѡ^ر)c—xrFr<͂)-mlyYFoأQ=(;e0nij𘟫GX^Y%7=ugvl zA%|nԕUYM=8s6iLq8JP5| d/F MǞox1"~j.L$v\BX-h$3EډY qxN98- uriZ[Jk5QbdMKJv4nAˏeT•L'rJ1}Y'#@*!E8cL z-Y|bl#3Le\:v raM>|wA|}qqߏGAsMyjͮ't:wgxļ+fg؞7{Yw(z1w\*:mǷZbiIsƐ#'h^i WHC]7U⩪V)F=Hke$E6yi 0efDj`f= T*n/=>jC }E罽ܡsD}P7)f̞+1}0d`<] dcHqs2AA[FًNCE`Nּ*B|,204mC#PQH)B&$!f$H`dH1F?I/ؽ>P^vN@z =0+0Wѣl5 I8~xZ "IMB#p3 ke4R12h1\IfD]?ڵvH "jR9L2hG v V%C!"A;楴ᣅ3IXf%*ӌd9bkUqIB#ɘP̌DI2""BB0V&šEoE4J!aRђCCz QHj1x7DrYNIqP׌D1(9!{^&6"HPn2pZxkEX#q!V5FJfL\D!WDW6 tEXXNA&hzIF ,$AQf8k1CH M F><؛as/^xfј2 MO@ʀ$(JM71RH u޻cE#%A9HnFaOp1.ãCkm1ѨlѫJq K7MW`9ayY鼦=v'}=Q__{ϯ_d9)tcyLB2GbXf^iW[jTr,+O8Ov8>Z}UD_:m&n:?NAqO 1>Ui=GޟoЉt!;߅] ^;u*Xҝ 0;1Z$bb}|;%edRr PTa^N4xL*>䋶QF3fSC4eF0d+TыezYXx_CӃy{r {owL::m}ޮc򏈦k 9@ܘL* ɟ;6?'ux8fxDmC7" ?cn>2OhUϑ}QoR@C1D_u#BP qrT ̀Y{lĿQ:_E [>5rph=PiV/0 ^yHNܓ[ ^ރsPo?RGv " !L"4 EHI嘱g"XH"ѵS.Ssy iN=4ų~@ 'ہEy cv06r!c ᐐ<:`m@bb*Xh&~p-1;A=&w #i9C`ri8A:Azw9p[Sa(2 d$H>\DC_I* 9j+rDshĄa++*GʭlIF_ G̔8ql=_|W z&UUmYe6prI$H$mG`ZB\Cr0BC|B5?Oy@]e' fC01%$c蠄 |z`#ܝCi%69&#8^!G$7Z{܅ ug;Ў¾@=كFeCzaa Hzn0Ԏ}5'$p\l'BX8G錇<2֌7MB5OCQܙq=e@z}鯋xn*ȁ! l~|ǰ=`$|9v*ߖD$.:iL@>? ){0{ܳ~0!y%x#3לw*tji2h*=06- EТ(D^6aQ- 6I Gt$ܨj!鏒g,,tqͼ~|oSaKGQ%!Gs>3qwgL:Kz(^Y m5m]ܵ"SN酄ߋ13a>-resQ/xvu9=NIQH--1$q.hc7۶sXw0Yr*KO+& 8̫mu~iɖBE"lƌn - 8A ԅ̙CT1 y93a`-IGgq2KD&kGf<#A JyjHB~M׋= :O"V ]lРQ'@hkD7hyV;x" .=wd)ʽaZ>[hcmt,e$yC9e@/%zðwAJ*8މmM.n; ;~zI$GP9}<?44v2yu| ӼI$I*zI8Fzom`řzbݑ?z:ӭ~>|&;}-o32Mܚ0xy߷<*ԡ{[1R& yQ̈́t>BD>f˻6gbq.x3o"chxFco>@`޻Q [4IeHb!ĄLO)V}nNLϜAWYn@3Hk((菽nba 'F Ӈ*A0r9;0ܡSǨ9>tԉG #Kİu󁟵a  xI*N+MBrlj`=BhH`!4z?vvM1M3=ǹ8:y` jܰ|! ÛH4^'_eZmb#՘#O.va䜑݀L1roGVN_Bbϭ?5WA 'D\`M6l?4z'QuO:]j S̒5ww|2b8>j&`!t|C}D@)|-w 'ӥkOw$,:`}q΋3ҸҮI![-f/HY FL"r<3X:Ob -<Ž:AHdC)a%顖#2# wؘ@raҭbp5.rpb R>Fe5'1AIZbpI2#oG*Ħ1`TU9`g3F.MXQ%|SY!@ =q@>>_٭O<; !6:p* R%H\ŁB8UF'C>~ϸ6D&9IAhWbb$l O* }ck ArɛQ_tq̟W]YQ$l&~1y{DSQ +WRCA%$4l&qW n_E}׭K0&!ᰍŦ\?s4<.&#j!×5ahNwbȁ=݉ %  PsS%^'@aAq8%%u OIND8(bCO&f\Œ!Ŝs"=3 H 3]c']EU4˯w֝ +qBԋCX#blט%?Y eI=.Ђ7G7Y7K?ǰpzN S3,yIBRew ZDN㚎 A8IDŽ;E8k&5Vm*1hbAZT)ʣ0vAԈj8rm8MG!f!:\h(Pƅ52A,HD9=~zPELhpL^q]IKKEPDlaLqEҋ-~_m2m y#/ ^Լi?R$AI$єCdlv9l9q\SV-hWr9/ 2/S8 bylSIrw]vpQ+!xXA-`dM8'i )%%W*D-}Pu?8'ko8.>HzqD)8 (J I(dСWQM0W:BEPJ&n%bb0&?A儤HP=9JV<AXyW^:tZC<%@lJi~{B^iUUUUU?Ol ̉#"r+Λᡲ~I"|89&E aR'Y!<@llw:,ؼTD J|]*.rAAZMC~ùS?OR`2Ȋ ^<|'Hy`@.9b|=}=`|_) vH "ĕ\\2`=QJ nd!?+n"ĭ1Zݙ^~amF(: ANq8wn*f !DgC)hum[Ga  R aC)‡9ۗg" V-Ҷj cBҍ65wqQy-YVsbEFK|L> wkK0E8'pOfTuְ0ar~ 1x~Z9B ?km졟I:1=e60-cwҽ~a-&P% Aw(p<i(`DL,8RO\k H1L[ )#@!!s=˞R7Sh0&AG,- @ /0x4#u"SV&s)"QBD8ߨ˯*.5$'te{hd7H MR(Rgąh2\I#{~ wsUE.ՊEKv yh0"b{ B*Th0Q!s@/A/bo1hi'5L6=C<f7=fJ2wa=aNmߊxK"v`b0Si27ӱWS, x !=a,v%<|!A9u$i92۲ , m)`Ff$Eaxp фG oЃш he1M&@1E3h[bs۾ COQ)CDS4oeu5Ao.vRs}yy] <=L'G;滑5C@D]hv`uEx}*'eˣyZ?!qpרs<@Ua>TP:S4 1}dE 븲y,l.`CJ"a|E̽=wJ k}zٶoZF,"Qj G *h43 H cL!3(}$qܟ_OG@uWp"hB 2A$0`A2FX+'M_uj6%pd2J982ķS Aoik i,Ox KȐ_O_a천(2hxr05q44?Kg0>U (>/D8>~6v!xpğyI@auK)y{oMox+%8>\hb,2B᰹F>2|qr(\+z-ASibpTc0CM"!$@vr =GJA]B1h/Q #1ibv^Vr𠲡uX.&Dv0Ujz.wS:ܢs=5Cܧ5rY4Et"T^]DڀQ@PSI|'8#5LD PCgQE^@ WE5 TTH UȈ rCGt7ѨZ+d~s= kR/ D2 W3\=!HAUB0 N۔{!}êӅ4x66)^ B(f!É&Is4YaAP+`jҮ 7 uq>ҋ:6Qv}=&EGG S3|="#GapNz9~Y2R3m\3 &=?E PO+;@'r!CȡQorI$#{ݬ>!|^mIhz.Q-͸!BT.nn22In,Te/`BBLIJ[!jTp+qv'-4RkB}XA EHwd>؁(֫33O0>|DT h^m1~~`}l I%]=aE{w!kv4ΗZNL΁1yK\rrhmV4ERF]>Wfu~sHƇڜ~ܾ{Gh 3SoW <$_ؚEn,vw=C9w51aj_sr2kM2='9bfИ؀jnOv0,:F 9%wQ}}v6]Wb[S52f+UBInf׾S1)/g|fޯw(?OZ`)AzHcIh&(MjcǑAYO#@6d),vǂ*-LFS#0 aIQgP6f\x翀kX DdPQѬ* ~@7gz}L{ @wګ5ȥGa ! !TSg-iq+.dq$Z :O%;BOyU'D=@rt""JY!ff{3(# 5cB;V`PO2 T_'>@ 35WqD_wQ'y>%o)/.kϬHzsW۩:kH^Xq7 VTaыp!٩Ct8Q; %"]j~;caJLۂwI2 F,Zr3;6wx*vAv@XX~&}+(W46rK|pG LKHO(%~ WPdEOFp= )5A]*Uda9y!$žйCĠn @I ) ł *XIfa;Lm2ADDV#D;ـ4H~C〟?w@~dV<4M: p&q]N ߱=rS)̇w!\x('zxH E մ:|[*9ʋtlX*tC'"5E& *DL塩gUE(>3(]1g8v~gNaƣ[l*$Wr&#CӅ CHZY4cʧZNȎO?aAHqH%CܤZɑ.CcMi5JA!~)b8SwPoKĊQҡ SgI԰ÎIk6grP`jB02vHpCDkP6sp3kɀ:;ᶧFvG/ RJ( hG('tsS}Q߅TUa))?i =eUE^粝>~;8 4HZ\}Gb޴J 8͐0%%,!"I֩`ΗuBFCȏz#>2 %q> l(-a=ucEF!IHm0+uFFdj {4(#Kdhj`x((~oSUz% Jvw?$zfK\a?^I $f: "B푔^ij;D/Vc~S_+@w]ur7bٳ;c~_&É< ?ngzt&3a6&;_aD:y5ݨ RzMkC#A彯vՉPPPA:,(P 'yN;R mfÀ/8cn{#`@JCAsD0$#ݮ[ΟiֈͫCWXk);VcVHj()1wdo2608/ LuQs"h_p̾}VNzSR Cg HLfygu:Qi I!&< ~\u 4SQqR ˾}ZTxeICAc|1p~8}Dԕ;"[;>3rB I$|ck+zk&)wn2Y YɕQj"T^%GI.y?M4&hFxMajUau㮺뮳kYֱkZuẽ7`5ɳŚ$y*{^w~1-cX~/;+K.e};AGζB1~H4 ͱCj8xl:*TOD?8!]cDcoD`;xXg2(~{~?ys_9gJ0@@[0!   CJz:5|G?xm#A~TUr=Д8ɛyƴֵj9o ZֵkZֳֵ98ebgkZֵcZֵkZ֟ZֵgKZֵkֵkZ}޺m6Bڕk%'L*oi'8w/=`6DX^gjZO|m"WOזK4$Wb?c7o0F?CG rIZ?f|=Lr$=&wa 2<, r7j<]r{a!&g77'.s:$>5)lzFcZmKYO8HOtr1uRCb竮D= l)|CohnK4akưjsp"@WGeyߢt!i;=7E[4=>nù)"6ÈP4@-4L6bĽtI9![_tzYd8"f?( 67(ob9՞c@Ѻ y2~nz5KO_#G0:_ Gd}~C=?WP# aGogX'1>SD!hT4b>z Nbf;WO>p%L.$i|ffXŽ^  PLxl- GS\X|yyH9vaic#!w n{;)Xm_H}4ytTf$Z$5F8 = :8)=d9xbDɠ/5-[LM[jPXra 㥴G:B\62@vF?eRYwbG>+,bzIfcuL/A9H;?̜o/n=G[C^bW R)Zov| ݆1p-NAg!&"]~cq]l9/>69PxPݪ.$B;vQm܂ 3 Lc)z9pT'*GR;ɻԤ .xj gi =S{ #$߄(b~ O^ëBMB2li}b]}Y܃@wg+7v 5rБ;% SJFCJ{px Dkr Wޜ]JÞpdžo]#n@c<Q"HQS 0^&>#9  ܦ7p`NQ*PKhڀ,ǵ{+@`mNjZ8 @`,0b$.7E0P $J:t{Ps eEc*ir^G Ӌ01wYqS Cs w؄ZnDL@w mNʁv7ugUzz>̺R5sq} fH`Cs ~Om3_BrDR#DT13NcE慮@? =ӽSkc;nukEȋ?DgåCf!'HAT:D?$Tҡ $+2 @ӤM VH ];0go-56'^jhpoꌨ7 Lk&.}QqhF4h1}[5'fW,W<$L[O@*$m6ZJKӉPՓMfzAeQFV AP.~:ûB YC񖃝㸋|/HVQmA6 τB7clϘn<{xeD %wop~)/Pr_|4"N/M?{<1T'KJem'iɝF<((9.I(B"2]qy BY< 8y/̑#`Qr!: d,#s%n5+䚧]&i n$ sRh~Pj1yzl_!I$-wۊoB ؓ7U$6r;.Ϡ^t,0~)"č$LWfM>ܥBJUZGˇ2b2tu.yE9O5!2u._ӭX);{z]`v`jcatb՜fv^.t d7B/e^ACC)!&԰s;Ru+X˸9Gtv27pY;!dPN\šM&oءoWNk W@z5Ԩ;@S|(H;\kEq#%aE4 nP&( Vg; 9~PB$HەH\0BUUG#(9pNNl>`=Y:;E/Y3 0$w5->IʆU$u ?.$:23[M~Ov+O붶䥤#2ϟlx$wdJ[uHBhLcGxO.}Xϗ~ gv|tO ֱUud)EO&8Il~"aBT.rjf&J_uw @bohes ǽUV%HI<3} SS&_`ӯguv\Rug,+qԈ0c׎7ɥt9=g$k 7^` p|RI$I'[~ yCGHwiy'sn^G-?ndCb?og=}/`CƾNۺ TQv^ qfl+;k;myĶ3ɂsrX4s|r$1mKGY8'$Gm$Ni$6>Uλ'Bщ>?(2]26y7NZC/L̽T!#  {iMaRAqH/5k4HbshjWP*0hOpƊ$y4C I$1g\ t)+STf>%Mk^!S`Uj HKxwE@;dU"q6HYB 4RG<TLq ygZy[ndeEgI푑ěmvk |s~ I=}m %YICQ۵ NQU( <8}̜Er9QUQ&I& 0Ƀ  +Ͷgz>+@cpĝ$Q$se7 u}|~mT3o~&\ Vz#)ijCiuϸ`EOL=.!,ّ;LBMg潡OYIUu<6;)S2ôv3mkih'AJl6+?HEo\כּNe~~ZN&qC{׊5uN8»{Ԍ,=`4Hs(XY`8b$AE&O!=~@d6hjL4E.\lI;2F6az^ek#9#9: G/ ;}'#.27 Byt, uZ Zna#sQfB&F$I$I$,I$I` >DZ d h@:Nu2O/\N &jD׼5@C!!]˱J%EBtѱvj^|S(>\@I ym%IHY650̐g t;zC=' H{hJwʉ)Z1m$sW3m`Ԧ['2E\cm=]s{]LI$NBHOֈ _oOq1$1(3 PNB7DgZrD,:/0莸!lpbD@YK53-͋ ](2 |c*n e䫘p*i!B@#'^VɜaFm\h s߁)b .kYhlɡ)e#e- `ݾ7yI <6S=N pJ"h@uSA;vb/7貼$T&pK:FBr&if)ZwgI! %Mu7qQ6;==HѾG#DT('Hؔ@}4 V_xl}>4 t4EIr5VC9!y2Q*1Vb<`|<$r pꦀ44c}7-aI軇 +r%3ya^Ha)JS"rD +`LK VJ3e9mv8pG=R޺Dlt+P͒YCV,A|ztY۷Zmj;c1._*deM-ż GM={iqth6lpB$!Kڞ;FYDN:eGp9~ 0{1xҝL{S|B@$j4n H'FFDI`{1 K܃NϦE/3?C"n➆ZN\@"eTXvT/>(wR=2rC9B ɯ̆`] ;ެ;R' `IDӸ|<;S;Zrk6o8~g\._=>^rY#25k15OF3b:C)8g.wQYc 󭌊(4b=Phcm NvﺅϬuB۵a_vm=vܺ򈔰"qC ̱M8rXGKI?ԬLP {.Ă#!k(̼QEv J&b/`4(`\CIl[gX ZDz8 (܉hf"\@M %㯃x6Ol5$vU;ds d:v՝pHvRpj'/I[6 `w[w?: ,m 6Atga@pQjNir(!!i;!B: B*~pA!ˢ/eqo(ktI4"c=^)Q i]ƠL?aՍh{|Sȁ Nf{CMЧ6p~Q/( Y OOxm= ^4HIWDP&Ny ZJP٭.UKPlK M)GS tI&,K3GBO_if(}e(7tmI#,0Xa1mm%m}Mxq0h:hI  KABP+)gO3N7pjQi) Ȉ ]—?q>c>XQFHĉJw kğ*M4H NѬ}E!Jf 3 @9,TРmt7Hޟ h:_^[φײ$s)}I|(cN44hjq,pSm \m5oL+5* wtS!dPm/=.8p#hofq&!kTPq ޹|kcBɋ~\#Õ80 ;θ,yȁqCqm&CY \VꌀDa-P ~oC>tr!#n@叝ti3Bbq'8!HtD6>ӧ%~<ϧ 33-]pyIjTʘ6D( g%=֯d&!sXٸ~& FiZqi]czoG@JV iXo%S딮t9)K`yf_;!r^!$dm lD~ 4VD^: =XzT1u"!׬̬kЧ9 zNԒHPHPˤ#5PHCP ;N3/ir:!Yp^+x*!%6#j7}j`RCCRaLB OPjz tfp@m;TU}5h9C-lϟb1j@% {ƄNI_47.ˡ ji¡G2hB&71{5eB1g!\T@ڊ 50 ]289%&+P?'B?=ݐ]^>乒4>~b2iJC=:gEN{YE(.H˒0 @ԗ8$p*3fl̑+=;l+~#KMRЀ*"׷ 'ih r(2i  %u*cQb?x焈#Mxmv7jD!d2w]|-I2`薙оH}ה]՟3>wRe!PkCHI˘ L>nCL%9&:2M40? `scTCQmMD(Rߏ>3o>HB cm\Xyv[3 .N/gRs Co~;KWK>L&KO!m7&-Xj 4؛q"|i~mD o*:~Ԝ=]T|{O=wS̭᧳8 zKNUUDUUUUffw9sT)A4"yB~~ ogڀhi OH Y TJ`Nu !3?E!:ME0gkm%@LQ pfIIM a $"b7]/؇ij2O-J#O\1־1f=u`8=͘$k3$D?1҆m1* B|qWӖ0I Ja!H0=BBLG1e|-:S0zmPjȕ4/g}q69 d2\TX8Q9!M-Kp_ƃ%kogb3sQ% MjШ 2AD]Pt0A!5D&K,,RзW}_V%P%m<3W.öbq8 ݍaLF.M_v|- {HhF0=6z  N=`?d&gpd@Hy0v/G7 4CJVU#'d/NL',~=@ ~M&<>x5C\*(_9|Y9C'xc߁) %YI ")&$aETk+lfbl@J (HB.s9lplri`q( 1Ȉh&RH j*r8 0>s]Ҿ\J'c H}hRc򔳱t:$d rD |73;DN 2jyѤuaQ!#oaZ7atG ߙO On{ͭ҅T:W_ nar+",HVwКg.\`Pٞ~_<9QHRWiZl2/2SQ>xN>G%0C>6mSo.[p.sM#="b%@v$<}M'9h ExpaB&(t6}[Y!oMN hdDm)Fwo6vLat48JI9hQh)"|DtH_&$6 fpڳfCf&g )30u?lxN{y">%%輦:"t0R)A2hWpz; k sH%]VvG9~L]939 ෋@ljWAמW8m6sUNSLt=~'Mrpt+k1T ;{Vޤ,i)|:rj>?'JW$%=D$# ω;5x a*&>l>RP4`fj5DAvҥ d2*v"R-U`'x!˾lw1b|y9X#ӃW`ۭQ|$ĥ48l7S LSc<L" + DJb%rk}Փ2`bIrLJd" h ğ OdL8Nf9-b&PV&XCgG"X(D 2"RjD L!@4~PEqT%- VS~0PlTP|"B^ O}"yԆ7ʕBA=6 ļ$HQ'V?uyOYqMGSct)* * *h oAD?ڃ 4q'(X'WjD?(D, 2ߥzu>[-Nyؼr{`Pa`t"Qm)cp (6dL#1ěibY%jWh)C(텍8M6¢H66w50eJd4:1mXFF+PQ+TUl 0`۵aUXʼK.>tp{ϻLJn &2.s{ c}3jMdQhzYh(( R1Txf=T -Cq:|TUOʺ`{_x[fOfffe@!%*!Q4,iU-ԕ45 i5Z-6:aS5KI12niVU XUDT`&$"TcP$$FАA! GeFeTP6 @Bp@`(+ CE`0 Ai>I$`e@员`ĘC2He@ d4A 4L4Ă 2ɒPM MM^u/"a+0ڝ4㯆y "U-:*坭ƴNh'T9K'Y &1$rt1Av `ǂ@Cگ@RB.f m˘N臦@2+>׾g吖6r! `v#;99P^$j" r!L j%s(' 5EFQY2FjqI2s#,1I XCa L 3+,0e2$\`Y0q2qp"(PT)k"3$AH܊ <Na ]H&(:#.CNDg_%1HOLy& J.OͭD#QdhM,ב +!sc"F">}4$%vM!;Q-D=dD$Q =P_yy%U' & &+,#pTgxAPM6F &sW!OS(W<`vK$S8#?%BgcDEI|^NۢtԶb]!N˚]ħ@ƿ.uǤ9N'2#hI{=Xz`OO)?A$VhҔ!IzJ*^@"Rr?i{zwGPzZh AWXcE=+UZV%˜Eїγ$\m#m&h;74Tץ^vΔ]Ә9 4pn7 .C%i;\QbJRfa:L50LjMr[hzD`cX`5QDJA yBq!P `u)->C MᚃS.[z=ai\] ;OuREE;; hjO$*WpA)}' Exk8cxv([}G3q(|,rYϥO&Qg4R 8Ȧ0omEMS ȁ-!kdXB*}_pod s3$!Be]0ks0*4keCFHr,M#,bKDdzN=΃P w$Y(+LJeIs腡#w!t0]e}'WCrCgZ(aw 2H`c׶bHFMA$~]d)$^^8ƓLPcP=uTu& Ix񪪍HeQTPl 3 b @{bQ";Pl'6 ࡃhWcgyal0xh)#LFwDc56` *^+\Ma9RB>o52;~q&7͘QTu`?A(  Vy{]A1^psk2AN4俚(*7Q=\QRAu£»,:O0DV:lt/I/ Hɐ N99.DZ=3-Y 8e %P+d&9H%|%yB̌20ͬq!BQXRXX0c`- PD+dFdd`KA XC c 60L:RE A1ED0t` Ew5Upa L@KKzu nYeKTA"37F0(5.  &CNaYdd+FH$DVH41Bc&QLvs%mFfd' K$ςO5|Ro,|Al$ H <8iPoxZĥ+N 0I#rA_LL2-iFgA 4ma# 1 x]g-^4rU "AQ 3ߥ4TPoq' Pl*!-(,J?\V |?C@pp D}g>4T_s10J5m.5=2*DJWHIJT1i;Td2}p/piT&.Xi$dXWd0&"b((H&8l<08}fY>t2r1r<[9wTMcOõ]68;M++xgF;.뚞BԺP83IFy)"1EB$bb0cKxqHp`Ԩ"P)3HaaX]"7ʠњo(4D(8+ĽBXx! 58^P0P{="WVä8k@T7_ F$iFU|*5Tn7>% Zr Q^15p 0s!iR(a: ov|4*@&8O0]q:HzAl.K, a;;D 4' >\C4IL i4ke=.[C1 [̪2CZ )H3WxQ=d%$skM>Bq"lmuc1CO"zz5;>fỬUuI5%֓SalY\mT F!MUW9H0\azGacS4E!mq[gL`/CC?ǀgHwjC5*8TPh2RTJPHX n%ADZ-B.>Cplq)!ÀPj$ (֭aPI]%!X#u7[Ȩ[` HH6 $@kt#H  RN>r(|[qZOD`6xx}~<.J@̙t,A xCEKNhy.{|h=&!0XEHX*: JQRS7I"~xD;gE31{$`A`P GJVK3i IV%i@JvA==꠾>yh\S!AF( 2`M!61A-F3FA8Mu,ڡ ?~-no=0} =^i}z;V  +4Y:])r>M 5$Q N‡POC}=q6d(m@BhAyfdJ m(OnF%ظɆC]l`8>M*ܣ,2īU J5sAb!pu2qȏ.nRjF No(R9,\=IH<zKRV!LFXFF8##j Ơ ։^b aN߈!(!@'jYNDH^%Iݏ,j@b8'0}vL!4\ԏv}KBHBH`(!Ah~Q`wSPøWr* ctˇ8#'Ulm-2 euGS&&#Ui.Beʅ.F jx{L'B?)7 ɛBn[ȡ<4@I=X4IxP; 3:A>QIEG p_Δi63D@;1TcʖԄI&0:"5}5 w~0]h!ZMٻֱò H(DbQ$&dF[!1Fj݈*4!H*f:ZG @g)ӎIY$aTDLڄckp]*Cl'bXn2q0x-\C%{j9;.tzvr%;IR]ILu8pCJIW/ʖߔлb"$xS}%q-t@p1 ٤ߕt<8;6pFֲ4U(>]##qZ!3<"j #mJڀ\QkN!zG`2z\1||g{2x-B1 {XvfV3ߎM2Qu ,-k0<5TF(w?s<9W׳jY b5es-)FP0A}zY 9^J8Ϭg+[) ],1l ZHĤ;"IOnEkDu.5t鎜+@&RQFa quh-L4vi! \NnJ6v@L ٷ1w+f 1O\9#cbrJܞFXv5x䒲Ϸ-qR0e;WepZn3Azeg38³` 33f6664.iqqT}gT}X$je Z`b&mw㴌=~[EJ^U l]G}T 4]yޘ!888zT*P,=V@i< Eqy+NJoc1l:`;zx|z 5Fi+,wa m"Zl.˘ #GA:䷒1>Lfvhjp0)F7{2}(4CRnѼQzSJ9nJ;0՗Ĵh9Of&mH㾲[(!ausly' ם*QAdL5駻JzyKb;f #d#~#)ԢbֽShDvcuȞ&#yNrõ#kۚ`^+bMKό4pF(*L`u-{SVh2Wf%]Lʓ H~7ŘN!y\p1e7%۹S>#QO8&LyDŇg Z4Q QN|vl8Y9!ԅT3 9qYp7}J8; es9/HX.ʤLQtg]cf6߽))aq^8 @Mlg0 n796i?b"n#/GI5xusnس qh&j +g[oC5y_lΝzn\*ipϔOS)iԳvC]ě9%~ l6&u,D0oF\cg|M0иw!J!gZ#j7P#ឫv:{]Cmח J W3)>`zƖj'2`aHpў7ȣBR0cY )D0Dh{g<un_[]ó^:x8! H4 vb%0FLƑbfKGqwI l7 iM3b;[#pI&hn_jxk1h8$I\TyL8$0#6|K+,>hDEy~ 4 ҴZ/ܺuZL\d4ΞIt 7]hL0 WGCt3nhY6Ai}:b0ɍ;L rd—f|qӳ7 IӬq5:Vf,CaL94(ZTc YqhY|>5ֲcu%ۢ ʊ qXT<^WΨȑQgId#6W@-IF{Wdp}soQȥfe\| N&=9fGMhk.{uŀ(V=x=o/gׯ0f-?msә|f|׮834]qGC pt 6P;6 4ΎBg ^wםџ;ֽaG)8Fα G^X%3 PFJQzwԨvC^`"0`0̋©17*(\0v!-<î@Fll"+)6NV$`+evc([U/ ם`˅G~|C1bE\6qWɾvxc "tQwBNb3dĻ5bsRvwy!Z@IΞv_uD3yM}ܳ Z9DOf~f9_|1W ;)Ɏ9VpVY.,܎_ƱA[/]x*Nn=j3ӜLғ9h:+*RAc]Y#"jЗT!h6;,i6jE|e6p:%! .E2p+Q/ u$]%yEÊޖRuQ~߄oNQqw9URT~nf5=,®Dp&Q:vdYMjvƯo.t\wцʮ6Јxs]Fb(Kw/ LU1 `a]e9a30y@8 s*1KS''"k#X_. S46.21#\2VMzzR3) .+^`())|=Q>FP)9"H$Pv~.~>=(x0_I0LWE8$lN^"_iA1FI 0B0E5At0!H&/(~X\v;Oϗq;bP'Ix}'ơ9)H#Hus m U΍QfF(lR :R+iWb5RCkgA"2$ެf%tCy4J0{H89{f^\ aJiEa]J>_{;>;0tlXc0H 02ptdf`#Z"OzH(yD@4 ?<tlO_lŢY )s`ɥ6PsGOhdQxg&))^.h\lPշ+10\*`1L86c@?ذ"@V"C$L';GjII#̜w2 ޳9Ys{¢ Tk4r?P'(O x?ߵٞ&\B< W:U:@fB@$2{%0aHio5#͙RsE5u4Lܖd T$%bVDjJa `3ESTIb)[_$ L%!@`Ĥ>Έ{|RPG+c'{ݪ jZ#]`B&m'7&b4 8r@(ci@RҔO~%SpL@&H)((h r'Ǩ`pzgshKTPQU= )8~O|>WDI߹=AYS .pU4p;ƏTLW"%';9,Bj CWhX|6d$Σo\踙-ohQq9w枬%o>`F*Cpq= Pn@;r@#Z8n30+d'HwS`V v(cHPXFrW@ư4!1[|cG>#r}%D%JI/՘pO;h05Z Jǐ#,D xCΝWLo+*w|St'8/-'cHIRv}$hTHy9_x*Wv(/ z!ӠߣQ,SGGϞ'QH\=F*QAJ&÷_`ԣӶLIR2#9},`\T;?=NCQ_?G='.k_2#7PdXLxn|gOPl-b{/;wv\q2L1FySW:.۾<,=t:\i&xy3=wi)61/1h] - sSZg]ӻ2.ٚ))$J Yl4׃ž0ѣUV(7^.]Spάt749M0vIg39 [G7R۩(pλ3~|>N͝ #FI$0ؾڝr=y+5n3CvI3˵팞 Ar(a6ZwY硘 i&BŎJ0f+%ԤP6N =S󮰑31'x"nR(.:5zpҪ )T@;(골K3ynźF}y3 7]ޜ^7>}rsCXkɜjuS;Nc BhnⅭqo:8p\ ̙ur-v:x\N3EWlk<=DMx,>^jӼYhiY\hJ @ $4,E ,"THd.Q7Z!$$byd$!ܢnuaF06sC"JN)^0gb^Sh XC! q&JH` c9֏M#SNF*J%F6Xbfmn iwθ HC ÓYDA TK" #PE1, L@GO}5N ;w:D n~xep)TUWZ#LOPIL)1W">&9U 5UU 5TXiUf Z%# UTDLqUuDDRPL FN@A1E@P(Р+(]}@ESQh@F:{Ԅ>u4}9J@GhR `G<`~Em 6R6e {Oi_z%x̩îQϲ#y"h>y5 2LɏXA2!r\({^˞4?) ˁ ?.lG*z~D  z9 l Iqt4:B91gv"U4p̥`T젩b#͡8*)O;ΐ)dI .Tu%P5&AA͂h؉NsU=M0gCa$ hi  p;"_<>yW ^ 0 ya!/G4&f \`0RkC?b3vOP8F #H3Ne,Bwq hF6C#yGJB4 vT퍠QsH֙otH`i (}T: M&:!#up L1.L#4S]w_=c>83A;=bC1_PG;d CA} XFF^2QGf% XQb$TY ``QH<;hcAx`6N 'w`I|p(@QDL(փQli@78#!yau4K+_! $%ڧ]jJ\7AJ(>t(NA} 2T i:":9H$2OSD҂2fRNҪ;:߾|g*"> ɀiѾB)9G%!zt"kcFyP4mbDY,WbGc{ ]d{q0;OSݼ|DJ@X^䟻!ƀ^gA#H*#Tkzӈq>1?c0y'ZHizt9K>04Hx!"u-y[zT-[Y:p7xvq Baf Qhm qtQl !'M<*:N tgǽO h^}s-3X>S:xeQ<V=U* P~JHBA Rbe a@I9*Ę}de(Gh^}A;) [o5 ބ٩)*$kjqΤ4΋w *P*s22%LA0~D=0E,Wb(bF*!ъP ZH" >y/PTAn07Мp$OuEC~5ᭁ 1vpM0TM: l$R.4ڃ v0*10xp¯3m?əa]C^80'ᵄSQ23y (b׿xj t.1[~ Q=PtƂy=TbO;6UVu@DHDPѪD C>[%pFXLߦѩ\9&h>u%Fliqzaz,"0.fC``)S%^ Q!9~RB,2g[29 )] ԝ$2;P:*iEQ"= ȅד@(b*t M"lλf^aͱ݃q}@Ml EqEW Kc 9-RTĘ\(46y*.aMas$# -$f53t.5J&ljËaM!hj-H@i ) RmʚxC'Ϝ=-ئ" R8 ,FFq"Dbm.ӯl3JjEGB #(Hb ZL2V=<˾WpT`piD~R3Xl -xif8[& r<`3| '!@ P_`{}~sE~C^_7\s?zWTZ%˺ōBRŠ$ 2&r(+,(58ēk0ucSC8U4ChI+)FDyGb\=Xb0byQ֪*lSz8<1#48) hh( *JJqrrddH2@|Jޔ!8 TJ*E16`A(347YPkZ} % md_x{ $Jr9R#Owt8!- $@O'g}ZXI@g[%91`X`ƒb{ ʁĄuX~Ndw ˏtof} Ct=W;y~~;/1O܆ "8HF5yC<ۼD¼v{ O$(XSv<}#^ v*h$Ruw44{*|3dDX @3av0ue % ƕaSM(U6uy<[ ҆Lf9֠prH%Kᤴdp00EpiLBĴ&0BL#CFQ#&ce'XRj(c:ȋ+$'56%r &bX BH*`ڐ#lS B)`$U`7lPHme;ڤ$LpMD0ݻ ĩ16kCO#jJ >  j$)D"nS i=eH SPl\ ~$_Vd(ԗ^./RHҧKg)0$(V0bJ@eUi2 LLKG݃=)C þ1 6c&c1MA5, 6`aQQ;-AU07C kMNf&$'bb10.쉢H)є&"80ʊrwKAH:-ad9t*aA`l #L Sq !xfOPXNEƫm7BS$F+%59/1̻/q ?.,.*L8oCOIJ&=,E  $qoVc<(Ҥ6#pν/4s}#_g~^O‹ˆNf# "'T(ObH'9;"!E'qUEEV(J"” H+USp*`'7/aQ4/1]6^FDoo/:n10/ eqW|9#CrsFc9w$ZmJB1ӳk؆%TA_A (ҭ @I@Y.AJ0@D!(ED(f4-4UP&C)E*E!H$ TBH̫҄BRDD ZDHi.Zf u.QHЅD RR !EДPHM ʳ#@ JBSp΃o9zIuy!Isɔ`U(!"b&H(XIDC@LCQ ([T>PvI^]!}Tadf8ECekA`$Xg<6MiP=Rt&:9 0 MXƉF̰1*4Qf$J*TZ!)VB P(޿ u$ om_wsɇgBI!E'zCe+`<. d =B)2)Dbf*X"I "`( bh&`%e $b *LҩS0DWx$WV) YD #.Ѿ@v^_aw i} ^F3'!H{nMc/hpJ8dQ?šL>R 蝈TQB!`tfSzpC{ߝ){?G}3-EDI3v1єy)}+ \-yxre+'p3v0!A ω᳘xǺ>HK[B$c+pɘ샱2)E'¿;}";"u!2L(7 !3O7gM!N-*@j(?^dC#_ {=¥Bi^'yEU8DCHN {N J<"\; ©ykfX` `Y}@BNzrt@bo!*o0hhhhX*,|d<ʡPev wV&`!j+@iISn.){s<6hI06oEN0o5I >Y\ sâk):A3"(ަ4AUA!APIA33 (Ԩt!'"]ᔳh6ĺ5䌙#Dð48VX%Uԉ2@J,C i_Cb#<1I0Ly!1C(e&)1H<\"wCvoR'O vGsO)p$!řjl"O#zA M P( jDl t (DtbG}?Fw'zWb |00801D0 b @LKM/$~»2"#*EJ{w''gu$2!!"$̨ĉ!@4D4`RH|-CPT4db:(BE2I @L!rPA(R6(e> sUZ12y^\E9a^dуp!'oFmtBI /b&HN\;TcMP RR|HN>8O D<>w(T$4S@fڈ`P2. =1@{`9/68IDn8'D!@ yd3rVY!1;"JWpegP>#I1MQϣz,L L@TH4UUy;LR :P>|ޓ.U2TIJ@צc2 ztaf"](D]0$DJ@os00|8iu{4 S9gR`ك":=fa?q`hL6iC&5h+#, ~&f:Ef .2($ctNjK)o:f|*^OsmډlNSuq&oIhNC&<`(@~-4ռӧ@Ffӌ>qV`̺!, BI,.C3s\As;j3%Xq4gbdK^[uIqX{8G3ƫ&C;gX.D޹0oqcXܚjwySTD{i+8eH8qI6Y;3oNgof okyFbcD;uF] Hَ:t UlMson\=5K%U%=XI2PgLh_ץݶ-{K;^uLoY|=/0yg6x+$[!|VáUAD̩!mu~ ,^ڡߙ|nr3S5WB1'U{ד[x&t=%³ s2nkٙ ,؅Xwt:SyR6bPk_@vQ4|,^׌Fkk`jV.aF5& l[=\JQqua=K0[?bgE5ҾG<68TIDoMXl-AhQcƁR  ;C񢥥']2c,L91o` m#mY 1qz \ޣ=\qm ZB4ٽ__luF}Fσ:.O¶mG,'4q1Kjj~/ sɄkj|xRvX[s Ch\C I:lVu~*Ain2S۱ lR$Jw:"sÉ*nrJ=Vd43⫆Q. }4 K Tֲ;$i1.#wgŠKJ/yt+Nߕ^oE?WR떃Ѣf}2'};cS}^;92޽-,׭debW "zw=W5&b`3( 4^I;-W6Yg4:ɋKO-C(V,⛛'y>1Wan&B})T"cts9cp-`Ed8H/^6sϲ%BġGcdp[޲\!a+]]UwIW؈LȄgQ+P;LрbL"Q'd4ҁ0yUi&:,?hP}M`X/ 6vԂۇ7I!nW\g]4~v4\VbtXSJ>5sݙK:cf YC~f.e5%.ᘪ~3Iգi~^SrrtXylՋ[{ .M%SCr IB6ScϋX/+9#1r^QQ{ĞyyGsϖG&)OUZX;^C9;A-3V7C{=8[%'.bUISj#kNz­ joMvv>F|O^ir2C]]wwˍwA&'9P2uz{_z]']IҬ2ur7\ҢUs MeT_Zjp$R#xYO ݵ *,Nvp;Gf;D@9Uh " MT sgzy8۷ނa*Ê`d*zƉKŕ䪳\#V]3zr+#{0s}BcIb%"td+``) j=ai΍LLPqw\dF:Ҋd0H ]ȴp9%B_^$12Ѩ.g`%G0I_#_!6"SҸ'p?>>-@HJj!*uIgIiWvFwFLg Y7}}/4,mjC#f@e(Dƈo ۾+(ߊ훝7>cV @[kAoC9Q#74ZCΗ}JVz *'MY2\a[8Po^p&ɵ2 3iKǪh0ks1<46&i$T؎$hjw:H}v` ι$pnbGŒ/dsV XnkJ)7 i,ʠ ~m"s2 9[S[|E$?MwUs]n7 vChmͫ3y^\m@߮P@ztl2֌7\e˷񐾳@b/i(BMV'DnA[4o,ipp-\~Cב@e. m->ppyTACy|C\L.ɿ4ҙm tK?*0y‘"Ԕ˳|`#GzW'o58`7ngֵRxtu>MA ^uo}t4y;H84fEu\G3Q^xR}~ 3_Ͻ§1p0=V*:2eݩFQ6Wq(#]AkQ$r,.x!5DLCUV>/a)UqnnEjZe`*|#H*xة]jOTM^qߩZ剡HbwU)d~g:7NVǖց\qfq υ8Jn'?^%𹱚p#qߓpl;>/ŞNiFYn\f֘Hl-q֯Zj}bGy =ni[zw^>YA2 ƚ@JGݡމGCnb!(4cunپFkGo(eN`rB7j8/mkV`mTRsKZksN}<<֢+t,\oQ÷P!񟇈5 #- V71+yCÐ?ͷJ iOLZ uM?Ox0 f |xpoK2$G;D. .zSXX%;3D DŽH8#^˧Ou"x[v>_lڞݱQp=߸8D "i#e @$BlXk#p>+UONg-L=pȊ/ĵP=>CdΗaŃ8ΰ?i5~y`GϰE`nfP(YLIUάjb 8* -{K W ;S/hUrs'4³'Fr直yxL,HϳIE:ՄϞƹ8Ysxl'bZk6WJwnVaNŘmXa<q61 <,(*ED$ ΍q_DxkW4+?Z'}F;Є YT OǢ^pHLs%~]MHx/:ك+0_{+z5/s %ޤZ=[~UhQLb|A_1c*-j(b{ o \wSRt>J@cMd=8ofz9qeYJƇߑZȋ~s8*>~xe*v|4)qyZ)Y1u-@ 1+.C?8ШY?Y@ST^W 5ݭOdܦFp8>i-?Ga$s1+ݥh4Y7`}aELNt3Uf#-3;=BzY7HS8W( ``N2XH2ˠŤ#Mz#L@;̇izCĐsY`.V'm~&'&f7I@oՇO;|&t}kd'Ď QxL'q𐗢c-vW$pG7+ s<^E%hUn}/όW?P12q"uڄq dt)ZrtQCΟ0},}5> Ӛ'"^_կ1{2*!gCsBzi;пeo dwλ\J`T/*C)y޾&:5e g.ej/%{Wg׌q v"a8%o6x3w0K^q-轤|h[&4EZӢ;p:?n;Yk-3,˲>kz1ޣeMZA :X =h qH CCbg>HOX_&ȼ~ޑXce?rEfΕr +rs#{fF`Q˓Kj1rlWgU8 lO&YKf+_ߑ]̗vwiDrU*g>oՉ~,b>áj,M3#2*w,\(44aOg],^o++x_e|{_WE`X U:qM@0^ސp@z74F'L'#(XPd㺽_zʃ %5'b:Lks@.u[sG![M? vjEi}'Eljݱq:P&p} ^ˁ -B~ …28?sNn5&żo6-{; 1!d0wAU9c"`djt_~f}+hf^s?w!#0} }*QB<|RX^iК!m+kKG UFmU*arWGh)3@uͺ" фxx8yc‰w6E1m(qxF`"R|z:Օ*uHMSwPBMg~2E^0 ׮(rT?Gޗ cj( EH86xš) IV" F_?*%&`zx੨ p|YnkC'BX:F x4JBS!TkUbt;:i擼迵+/).'<9tnPk M%8‰nx#0$+:}okXr9yT\\It|~\&tAR`un?UI0/Z礁C^(i9:: O[^FAI#Q.e"ti1Pq2UQTPP Uh_r;J,1Si*ѐ+ڛέk80a ͍f߈/pm$I{tl:tq$Q/#5`* DIgN'){Dg4vZS?GfMl.||߅y5B1E/|ey}a<lʣI(1WHZVP|ɘ"#Z*ce")O)EK«*n2\cFBR&3+f@$#MwDZ+6aEy+0ȎGL2ᮩ]~FL$:=:|^DP|Q=/"?,|X|@νM'4B\xI[9I1lzX<%NP2ӡW!Ɍ1L=س%͋B܊_^To=0.-nD-b*g*s@iUq01?xD 5㟭UGh|ɥ+G%s3WΈ*Z%bОtOHmI#{meGH뢮i+R ?N a9aBW_%^EN+>r̴sXPEoHə]B~'akED,5O1uP0`,b^bk1>xF qxy$YvtY;L^vdTr;$E>`-LfPB]{0xWմ_߉Gȁޔr5|eKxsAS4{ZiGA|ZQqV.%9NY0Έ;N.Z]?b2:sa;HZ{ڬ*=#0JLYa,Iχ&2,>#J;1Q BfE:h$=5 pt?P:"T# nxwSl+R VB(0hFR(A^\ ]d-#@RC8:p*8S"U7/! tbX#S |YXm3o\6|蝻R<|K?dD'%</-ͪ.K2^Ŧ?wbpa|JVN$1pbt *qplŌ}7Bc`HZDْuuAw] Od&FG]ȸr2 U<,uB<1TqAv .QHA,b9g[ؠho ЅX#24דIXـFoפ81QG)y $q_Je,?'F*"?匋?IҾ) ((fz$.53e=/ːpbRh8nH<-N*4Udž@.֊ywG9iklޞ~{T;S1"x'OtW$ w#t,>H@b k2b6W㊆j0{"mJlkZR /cn ~ Vo3pNYi;`=S :k"]ZRI\ qH= 6O x0,A㵶f&ɾp8Xv#r<2eth;E D&#aרn-e2pK)+z`PSs/UEk^ܭv&:N_x*bE9_{-fj"N@/Bϧv\5}WpP#Xg*h_^FT4,/ڧ}r `U':mܸP7Lձ &,v3tkѣoyh7d&8by =fsefg~^p݄=4T(4,H4 ȫ|Y0)yI}fq0wH o &Xkޯ ͡[pᾷ, +卒;ThO*qOGDrK1P@$"o]]E͹XAX ζ^ՕwR?C jQL )B0R;|+!c% ߶?`.g3kbttR9.V82S'uJeDmHj1RBȩ_nYԬaa>ãUhsI#O2LEu"HUe[o];z c[[3y_H;:!rG1*![䜸~%SQeb51q5Q &GӚ=`l:A&F"F %LEpR2Y"A!΅f9JR\֭5 7!PR"y,\Z^_Ii蘪142NfB*lag ;ގPG )_썕eG:z@<,Ju wL|lL%ɋB<`;8RWYnaXփJe6lvu1ʘJ6~ÀDf_/Բ b><̭\oz- F# GԎ; uC<.+^wY-Y%^+fǻ9.g|P#Pţ> ؁]oJv5.}ș8)$QNAG:fU"%Aup|USTNtaYScplŧe8 ГnopIeM|TjW2N plXg߳zVѻR 2@0#^i'+<W>< 0rS ȹۥ_jō&WI8f#gqTqc80}pk;|L%9>!J}LԥHQmGWvJvt#ZX07 rou08=Cz)Wc,[^8!<˲4sN/)< Ku)bW8 ,tëCOg*{E_iW< &Uל111R~Obtiל~zwh=.|,,=Y35 -Fc꺘=M>523c٠<sfgiE|2L &BW)1 \sh3OA)G4G|ܨ H/IYsE3Pfv k z?^8 STK6'6=Іmijsle8mǁx(sU 53="u#T˞}T@[z7?#5Z\.gQfѓб닱O#Ϡp~ QpY$$Jwְ]\qaHH>fvʣZRVDۙDL)3Y eP#7.jS K*B pi]T3Rځm =DnCsY-O˧"1i6ϧ[8@A \?kkO5#6y|fڛԤq(ÈJ|ldj(15SDOK_`Б<%;p8R=P:2(wuђK;(ս!G ް(4?'Dfy8y'}}7D~Pov"i !eK'I}p C@{'R;d[$xOFքz1bO$>F鐪'Mo"UNo=`5fOOgNukC2̝'ռ78)kycFH8ǣ FZqΑ~2;h7AxqS rWV6G,L2(cFߔ?Wa' 9[b-n>|f~;UOgk0kTw nmZu~+(m^*!:i}rwfQ婪H׎kmTT~zucƶ W7lSrhIB£ebt ǙwW4ė9]ENI:_t} Cg=4RmkwF}S/&zG|h^!_33NI|T<>_so7G>-NU^R[ G@HD>^,#NTW^gP@=L5O=﷡DWY_h^ў[B;M* 00qtSY҃96)!U>8r4ph"^}+/WTۇoqqe?؏:R$ To{`êtM'0uD7ҶݻPWX3ueLzܙ ZyW4Ja<%|;0}1 9\<6^gOL S[xuWj|`^╣SduM&t:zHS-ŪѩZ_pbA i6 SbZA{b!pNbLb,֏{vܼ6W1)aYC"~@؇^{`iC m,5wuCEn| aKI"LreϤ#QO_xXXF̮`E-^W-(Qs}p*( IeML,O1>h@>V$KKJq _ˈT)4y uŁ R ꯮j~nzWi䛵`ݕhҔ uPW@pGLhVSQ\Wvnp\R:)@mXUFZI 9ݵ_z@{J_F%lU}@>ƫ2o(]T/6;<>:̸]$a  v'pިxoZ3qT,}]sURvs5HFid#8{겊q6 K/KK] ,) ]Jws19j?Uq2zEqxn v,2TzaddE~N(+)VYtsab/- 6r'7`DY[mr6)-c;pLbZS)!=MvSox0,I0?/=2cI]l^X%$[',7yXSv1]qWJw2XiA2FW`_-wwRF-c\oc-9AQL6Uv$Ebi[tXM 3Bc)acҝdîy[r0tr,J`?ݿP'$NT= .Y.RbVQǔ[ 棐i<S"ca?Oנ} 0c3@@?xP;fY=e>Z0ߙwwڟ>OS:*[ U-c[#H1f=rSE/N-Kj%fAD.BkWvZP_GIʫ4}!̎8mgUz}Q\Q^ђ4OÈ ӖVc%E\-#@453-9^s/b(-{%CdԌDdcuڷRc'aIW2 ֊)SO2HkY|3]WctHk^i!oY@cGb&AMu8)Ȩ AU8/ ?Toywt!x"a 4gk2])^ǗY q3`mrfEҵ`+E%%1yesb̉ "ַQ>'~odo9ؔY@R2ELB`q]@L셾l{h:$=dVypG$F٫RZ5/hAtWME n5'Ñ X$bCe shu:Z+ßJH90DF,x'WY"D" K+~J*: j\_O'|AR d}.`W0-IǏў#d_?[xR`3$j,}wwAG+5q_w e9v^d#^b~1V]b(_*x}A?->=HuڻN2­;O:,W /R7vszeGb JRm&2 nU:叠V+6qs5j~p)Vm3g >+آBW-( qA͟d&+D9ߑ&[Zf|!,S<{âO%SD*xb)6)9GĎnR%lI%{^~qܒ=jahh¶6ͥ@< f3g ;yWGbhT*MQj>3 Pb!-)/9KǪmFǿE㓲JWsqy> J-ER71 hm(FgN2WF,%mÈ5Mx`iI*'NIۆ)XŔfkE/iK˼*z Uԩ=F_kRw4/'A8O'0MAl㕅WB(ӊXnz1/%dc9יYuU@pߋU{f32$QL0ba J/#$ǔC93PdeaO$ZP&9DFihiítZ $<q̿mG4POlYۊVkTx֞c%J,S ̞ߕrDֺ"A+J*.zz0B@&߻HOge. 1O^# MYt]A ZD_8}IN\JoK.e'M4xC.yuP߶{I)0'cGEzү?CmAF92X#FI924霏22z(8\GFVmc]&a\ф3_?dkS&RVtGAVxj[uGo60Kqo`řl7lo/wY; rΞʑ#B)3HY8U0}YA%u6_O' b<~a? N-_݃2Hj518!"粔JTb$XvƣYEU͚rnmm2ލ;P$CjhLvmX}3ݙ# pwk2\RF0rx>R@R , L0L jh]1wNJGVLy]H N7m,a1Y0ґԾ9oR=󓑡鄹ko1ml:2=t:`~-N26Q=.ߠ~Jso78ٜ/ǹ1a&><@+@)g~9Y\bS~Aٻ, ! oM-'3@uF<|سmԥ:mf#j@BԽ0 ,< drA(W}_ tu58˗ (/!geG-l$ӳ|vrL0R:DNlcO*s$~2VSˑڨc$$sBf(t<>$9RƁlQY\vxMͤ$yr%72L`?%S K.*UAk9[Mbаqfpn,JiVҘ1Ϙ-٘N%϶IUzep/?[(KP,CŲ >i(:~I`"=>UQã=9ÊUg!gis ]h.F rgb-ƑԽ+! MMd$d E1W([1\8%H!1-e~܅GIooF(E_`j3m~9/ŒWB2SQzUnmE$hFypKZ{Q>?Y$n2k*io{=b4 1՘ڿ1G{T \'0 XaO*G\B3~ H(ccSl:(&$ Z~X0mCơW=hئ|#0cG"8رV@b*4nHCD$̟Td(l PW4nUWI^{ ^4XDl=!0V` ghL^5=L:N6bZqmj`=(3f & f .*.5yL=Q# TP2ySS!MS<ڮ`zoOD*tCZ?H"}'@V/jNLςe,!Zl6ug*-iAO 1TU 4X$a򲷖+T9PW<ˤeE]jP/NrM1?R_yؾۓuڅCQ!s$)z@m_4W-{.k@mj|5kpE-z$ʑJwR`BF@H2v㙙}4bt*U=|6^؄rڢ/LKc\w!pr1pʂ.3Οr~8Qx} + SJ ã>׃K)<o]$w&N!7*"prqh;0Uď#ua,edd Cf%-bΟ5Eȏʀ ⌥vwm$uIVXIP#sƫ,7ai%Z1;Ų W$s8KĩI=x͊T+# n̈6ݜLQ{EX5M+XLʅXl9: r=UA.BlbkJEdLwucbޢ~n%5nT/wL󕎌bhn"ZKk';UO{NZQsǸftitHYSӖc^O}0 =_ 6I5B3бw ]6MFۖ0C1TzլV?xdmQ.g7։M!{I(Ǔłb#!HA"c2ߦ0=KEf򧹸M0t%R0son$k唚}Pp7oQ3\f!XVm+N eL.gWl3Et(vhCC8q/:Crg[˗ 6=qWtԭ M.3|U?ן ra[ 06EyoV@+kd%Y#Ar(J2qzu bk.]{4˘ 9@s~)KaKe( aa j{b.f6Řq*fTPewĐdq^ie Bf㪕5W|=f{'|mTN5[jL-q&tgsV]V֜ѐ ,q=?/+l)vEbQ"I%(ơ],c ŀeŒtPTo9sIsdӆzc*<:EcT`ęJrJCĥ8ߛޥ=콋X(^hN w2*U +z}%U CH0%rtjJdW8PbdPY+&2W͇+*,ZD("wۑ&S0X2E%~ 8~YY(E0jϗwiY`NPDR6]qi~E~! (%M>j$[#5|zŻDq-idM7)Q<&l((4ah2ň ; L0[At I>46/{Ye:Fj぀b9aGZ&{*,YWjtYw!> [QM(Gڊd b&M/ut}r>?Wl%H+]8 ב'p/B1mz Cs?h'"!-#˽)"1j̇!Oĝ#g \ԡ <]-}&w he:Ϡޡ)m' se˧aWRT?!>h adݱ+=YGM3(gBj'5zkNqm6OHnRz/ʓ(i\5HpRsv̌tCGl'3#ɮ$ǚu_XXɈt@GӌʐmVt֜4t\SƳc1PGL7۩8ÝxOAPy|=~Wа咩(*IečEWvhkVTOr\"]Qi$^O9;Ծv#u΋aB̲F 4 a>U-!'ՌCxT'&6J"i`PT:HЪTVh1r??ܒO37xS hOzM}NI0k<Ǻ!!:K Y?QYkcu/Y2kt:f3ݛ&浱c ӌwYZ{ŗ؃P .{Ԗ=ʲx{4U'W=Y|Ӵshdv*uB=TKM];tgnB,<I`Ͷ_j89 xqr`2mJt|~怈uU`U%,S6z\=G20dJ7i!f@wp8wHJ)WDV:k~v^ ;g>#Gax#^1hC,_QUR%;|0+ ZrTWN}[,Fњd_ݷ1Z$zd=yN8iENw`R<4ԴE_jy5}h'n X|?QyH(K}52uHgx\J)]'?PVJɼ.L{xIUغ?{m=߁=7 "KoBď;@1Ac4}CBW#MɽO;TfS.ObeRD}vzU%{Q')qT&6tX,҉TQG]s}851h" Xrɪ$cG[g[;?:a #Z=C!LpkSX5nşws8/R{f[KU"~b@̌Z\/"4/=t's5e|%C}7Gt󢇎(N:Zml v#j©O[_\bE+r.%nC;'a#\śst[I>O%ow ε?j ̿3gk]}d}M3g-7w5x!!#x,t[0 &7VJ C40\:ĕ$1yzX66⨸n^3'EA\fU%2#ړXٽɕ"ls<_ I1mArn%c{U_0^r;@_p=v)/:Gӯ]gEe'%CU@yKOE,Ys,uN,yǧ2_4B^ߧc}Tno:AI6= 䳤 vbƇ1BTc,,+#iXWP~DucJ`r*jZ؂p0`z*FAON 5I"5z[;,{ᒶ 0[[. p}40?e_sLIM{9+я%W.GB>H >I-JW#?74/OvsʺY{fj^o)͡)VVp'e&/qQZق0E@>Bfl_e||E &\iXqiΝǬSubiorl; AP8L'8-#:Cb>jՊ>j H$-ku8~"/4/%oḸ>>[[3uhu v^1iyYypox=ZA 3OBIES'Sje{^gW0V6;b?`5R0rwF ^*@ w^6\sCxZ$[F]Y7͠X7)rYX咯z;W~_hVIgL u2ÊIՅ✉>8.y:EYv~pPttk&~UWbm%MW'RPdd "g}[X,!7M#%FjV%Bx!3DFZ,?vJ *ṗWA6)~T8*NN~ \\-4,fJQxEj?r[lV;W#־Z;i]7g-=lwIJ%(=FFL} M<1&&7EfTHݴ?& Z\vsdW̯R+%=&]ת *Mn+;CMIXSn7a [P b&'?Dsru5ɬSd;i2YKu@T_W} TD\Yݬ+v49SVteXV\sUSݦt(h1OQ!phofКYA ̉RAeG!.4qEbfz$|Mm4 Ehe}Љm+DAALQ>ft?T;8B7vWk=EF4 ՏI8=-Cv wKQ 'i~m@hC}mMVG7W$VRHw+_NoϒU; ,~-$/F}T4D!">; "!dk\ʕr~^f3`:[Rw䕩бyև Dyع% :n0ZRs$<ܡ[}h-H;l#Wq뛁NghR1 q_.ĮI=4 Zsd#gLҳdD#etyMDf0`#$ R15qD”l'XmiҞdp8IqW|[HRF RxA;R9G첯M)%H`fw'2@b Xz)6?0naϡNwΠ8> XE6 iQ I`ǰʂ@騍Z:vuamx'n=*!ͫF6N*A4 _EA̚Qg$c/W$֞3ֺMu`SYfS mz;>EMwb{;?(X(%8n2_}s0͉k rY ԤU\3mNNzGTY)fVkǨ1(NT2KG>N"DJ\a=gK'՜Y4.0>g E-!ʪ)}nXV7:gfZ)PgMthm2a"yo߻Nv.f@Kwȕ#y؎'(Gk̯^~S^LFz]%O "&4UX1ŅZ& g*'rcؕtu}(Kntc* 9ůNV(  K`Fb`fƙYdt^>̍>%HQlP?/UEF ǡ5v;~xd ·0ԃJW%Ъ@}8ܝ1108tfb6GxIudc%D|' v-/Uc5"(`>#mLn&~áz>l8hd {⛦ $85W? F?t@30Q1%_!1]ǠӅwNg*dj}D,202$RRO'+h/pn|Yc3&(9~'+ZTb\Qf&VJF`! ܓR0qBO:ӪyGHO0@ga/#.uF ކVᅵ5\0^'jMGwW"F w2^O GhX,(9x~#H%FZ"Vr Ծr4*7v+جeSi$'."R n} zh+1?lACJ91g5W pdIM[ T\Z I!1hLҸʔf--o| =EMz̈)(kh-`&7\[uR#ek*ILrAϓ-BPfOq  ݂=nmm)`)aq~EI05j;mgb,^ccEhG䢆Vmy rTς.>L/VMbRX'oeaHlEh ^<$ 5#E1;pn:,FdR*#鵞 c~Kⷡ $p/O,!7‚s,R"yx9 J&IfSaZf횻(5}w-H \YoKY$f`hbޜ7(5{_\3lbQ6$3m||5-BJwQ^pE%br*Œ>QJ$4: UQu&,X"t`}ٯXC4XWo8 g(hK UFX'p[+iI) F Y^)gҋER`(V~OgR2I?I@U:'"$hƀǕgO÷l}M:Q"`Uh'RQ"7_ʎLjU}--z.+K$U`GS/3eg? _[H_o ߏ-`$w oG*b "6H]܋Sb/׶{5n 9s\nKx#]LG4"|ZHGA{r%ӫ8g\`DJm&4vk89$:)4$g[1;L1܆Cۢ˃*x|g++АG~P$Wჸ-D>00tma5*X >L%P[_'Ŋ2ϜGtD"RRJɵN>d`GcdJ۱s~%ZOND_`) B$/y.YrFcVq3Dfqu0/Sc;?{}Vr&y0ZzçXf @g'VP[@W"j8 FbuȅdFCCpjVdNj3\6A[3W Qd&e&X w]d֙Yf;hoNbR? A0% l /2Sجgxq>]QN{_2^|6\UY7J W2 x9a`Ѧvf,$Io^ z{0s[Js>ig%9]w/iȍ: ,sx:>DyGjj~Ţ1IEG~5R SiˏL|ʞF >ƪ'D_J0 +rJpoQG`f# G;VۖٴlG7z12d{k &OZ z^g5M#4X~V) 1R)KJpL>h[@qƖSahڐQRmvbn}.٥t&X`hByOUP+Ch[R9kE+`w#bzmQQ/(P ^7h[q"<0nu " `v@Ґ@jN +r,֓[SSTlCુTz<~x;kf/#} ?Qu< ̮Wz]?叙bo>OC`j >y+g VoX籖#xc,Kě H0'&J:]]ְG[+;?AӦ ƋOe^(uWETuռF_y mR0wb =쐭D2MFGwS&Y2&H.[RƇ#Qщ֖rxQL[@0rh;Kr{d9O"6Qvd-3]f5-L~ $Oǂ A:RvWc3uGEh h%X,B|.EPx䣬9ֱmi.mZmP5b-f%pr!t 'Xdj_7##mןw/=z;ADgUM>thBl_Ֆ]"+KٯGxHsԊ:[벣1(-Ίq>FYnܤjts/es2ˮ9 ђag_+Y,rʼnOSi* }])i"khRYt'RuEcڑ)E%}UPHxxK8Ɔ+Dg1,1GAg:aY~9$ƞԑC|̓o$69Y%+n3yp_K L5 w "Af">LYoP8y r)W5L=yrpQ-~¡]1: gAu/NG!6Ih hPƀѬ9ɭЙ7f1yi&pmZ%߅Τ:q>&zRmEAG^f4(R8#~u9l}i`tD/䒽:GaSgqbtkdF98rՄUs/ Y;MtovԊy2"{UGk<|iuFR.dқϥ&b,ʋWhr`v]£Ug]uWr ^n H[#)6n8,dUX9ThPNϳڳ;<S=.}IP >&OD_QCP{y攺޿-:;ZVd9kYƮEQZ֠!&V/ǁ=\buS|܁00 U0?,>ƥCK#|1D+nL2~(3IQYt 2eVcߊP!wO$F}F|;GX9r|ڬKs49y qC[SH`bEVGu58pNAJ TA)!R)z(JQi!޻(B-)"z齩HG}{7s?;l}0{fma{ű._Uhv=(]Eӳ0^3{.vܑ҇U+\AtWLR>eil Źlj1pCfqyPd-0cL|O&IzQu\\?s_d)?*ºQbPC{](."- ,_Mo'nSRK/mOzg:QQ|u* N|O!q)߲y`mJ\⳴'޷\5RƪH_q B.^ 7@lcہ8'RdBIc쮌,Vɲ,{6MZ] pD&um\Ui1eԞ:\q*l8y(kr`\.޶#]~}i$u3[6A 7H6p(RP}RlPcIX&g=gO,cj"6yU8[^q< # ݂4/<{-<;F4C vا2A&G)ȉ@ ɝVtsPޏ'K3&2MOrJC0yH=HSsHti-gEi9k!A%rVn>Rn>|YOAip=@HklTrV iP oGO.77M? Lb<IQ&w7]/0YmS'~jS.X+ J-&g"ٻc2PyN;2>,u@pSo+/Fh/a=/9kjjї,AaUw)w:is4b M}``ۍ34VwXtsR:cm%&5+u!ew.BT#5KJSdk ",i)~(&4Ș)(|`1kp1~bҝꔖЬcAeoNsMc+h!N淄e<+a@"-fڂdiw Ў#E!Q򵓞^b;Adr"7%{c=ύ)a]damr'+HW&ڤ7/L"3)AzƒkvO47e 7ŷ"R7{`".xgkcHT̴,$RhQkqP[FlCWu0z=1n}W6 oqq4PQ Jo"xn?_&-O3rn2.ՓYx!-Q6'ӣ Y_df/ci-AseM r&RI Bh!ҿ~Skm9nUxrK(&>(we Y|\qyktO_}F{8twj F_,GQ%Y)[~r?W?"ݒJ)8pϪt+?! C#r<&L=E#Yuq]ӹo87??&buR\ TIw%y\o-3 ,oM aИRq7oN(DpSXo+@շ} F#6C&$g㰇aa0g J1UlZճ)f\\~ӑ 11߲=8K#w`/*MNˏ4N>)O=䜩O*~NeǢl~tj,H@(?_I0r(C`SW?XP9Pu:ˀe`j£x Zh<` `"~R"-dF~m@ ~)<,Śt<{m$zUlS*qN ("7aWm8wv[Թ"RŷOEH tOFC!ȃĄ8CxjQzսZnaX@u 3z]STOl1b w2SRJSp/Rh-CĊS[O{Yy)ŏqtZkJNΖod?UFhO&9]݃P:H\8W&P-6BTNr''Qw߸%Q*x4E/_m{<[˪OMӧ] q1%6i^WOrm-?ĬWq}1ڦ@63JqS^-KW9owaaK޿n3 ]H7tp23":.Ǭznq:Hr7T(} 䱬Mau:N[F?,GLdyFz$w@mLU"l:}a/:jIJwZ`GПPᚪ{X=iiZѺc]ghALRoh$HC2=%+v.-t5>$Y ]c@%N 7/Ӂ Ro7C,A8^#ci9 Kq/˛:NќFeS8Edܲ n Axi^hmh JZt\YnݐqqiPL7kWe 6bj[{>j㜂6U,]KԷE?H$ʲ@:&Tz':=n*YļQXS]#oĂͶץH73 j7E=1M~g}~=`_iHijf\O x`[(W$)#a)ѠlKZ;׷$F'0D$"5~S ȷnwn\12us9eoO].(E440iM'7 iY+̱dGEM}?Y^45U~Ҧ>I.iYu_X +Fiݻhڽ 4O,YB1FN-EăUTȬc3W(ye԰46@ gy/KCCj@(\sO~^E0RIM!ƟZ1X.dCuT[Xe=8뗊u&>z6U.SZ(o8;N&&:°=gF?ý+ˣc->z6NӾ: YվN _}bkzvijğJKk#dT%րiŮj:x[E_#@jmA[%}v؂t.#s`@U y;1zHF|R0ϴ.9zH`.3\39Gi2[O4D7.nkwekXeFwܟԍtr 6 4(<vOܷ l(!߽>$&NJAwNSi 2p Rۀ6]b`ۿG;5RݒLb$ZBiA _}h*YF6F7 /Hgׇ9eX!ш$ɟ+9>,ݺ'EAsya'TXrij.X[$"!: ?5 yi;;[@+0~4 L%wc];AD= ?~>B _.7p?8AvU әҒSQ$`fi\j^|GO]cCMM-grʂČpX׎7-:H#h:]؇5Yt-QqA %*Y_Fܹ%Ђ>^'礓f}=kZ< p,LI:)Y<5[[57/KS2:("iћ|v.qJ񕽟ƺ?g=_}y.ul#D Q2Dhzsh-Y mCqo9Y+T71 Q(o[PvfA s5mrۊuTIϧ6V1& ~d&/V(a׿ysfWg`(PíO$bٜ@X0o*gQκr^!T`@/tçӴ:˖JvݶH ͐r0ǻ]z4p@a֯7vq̆4dBv1Peo-rDm-SMF|>gU:n'&djЇ31 keɣ#.Yw?GNڂx2toyH&Х>und)Jb;drO#E T#Xa̻EЅbfq>Q"RfKs)!2w lV bt Jm'n}ўRTi8?n"wwk={>[?U[yo{X%k4u^J4='RV܀krFm0FEoU,<# L38 qZvu$09ł:5ck+o=lxVQBN+Ӄ/MlF3#rzY2zE{(Gs8|߳Tޏ46} e"Fˡ^mmyޕ::`,kV;!}=I$kSqVV"ۈ+qgԴӊJ7/s 4S`@Mzc![kB.+-v|GXq /c; ܨzU{bLFj]|#y'G?%Dhp ;[Phf8 y2D1>oqW5@e-G=\t9o:BV} `m}LjMNjRZ\4,#7ےT|+58DܵDX'Qh$"#!?bS*E4|- CٖuSvtDu yIab"DfAHEKϲ8>K^EyrI/J"xc@n\4@v0?E3*i3bap Oj}ckO-A}7^ M}nobb;8Zq׏:vlX \߁>})-p\q;@8*2a\YM q&/xѧ03 ꎴv2V Hӓoʌu, X ~!T3"vL|<\w' uazKCZʦkǏޭ+9Wny\q71M Zn޴RYd缊NqHH>js(nErx[zi4Y"2H%]P%ZbWR[TTPVt.ŧ;[kdХdnnֿ s0z~7?/VYd@@<IG}N_  #(ewKV련GoY.t 53Wm])_vcȃW¿ޘƄHno8jYU~7rOKWN aao+eYrb̦qg|gEHe6Ng}tgOe|SMMqO曛M˛RB-yӡaU`eφMh[ю yyJn{?w犟[4b$);rܴ㘥)y9"Ɋzm'e`o|U{|#}@#FNdH20}a lŇ*[? H&%16hlqjտ[?P˪GF'jq% `Sq}z.> C~&@b#0DgNdf޶2G*N}u[0^l0X0\TQ7U,7IפuwV}6/=yNw2mNpmv+1JAŎShҙ1sd?Emp0tZs͘{}.v&c·БB#.bc "WSutWq wپ xe1z#@KҖ)}ߔRI֢Qxtlaݑyˆ8ȍ7/#EZ;ciorWoHz?˷fԜ!9?^Z 3m68y@hIEtkaM:װ;u2))Kv߈&LTz ME$,YcSe×^v7`yhKt-R ᜳwMk ˩:J`hQM!.Vb o>yN4-̒H"g_yWVoˡs RC\є'JӴ׿btҘP1JsNwy,\o\M"6Oʀ^YN. /.ҿ}B4XpP%Q+~a eE3uy27BXm0%s=#Ml㞅 K-fEB f|Y=n[փ, ߾V>zvtRye2큔b6USENBZ8Zubc'l3d SAyRm` (F@̴Y\Ŷnχt}'!F(#e!"pdfY}&ڮ4 |u#\# #Q Վ* 6i>I>por,:jl3ζ01ksa\EԅH Ƨz0oZL [%pJ*/dD 2:4ޛ5w~ՑP8`)#' 7i{;9AzH{Hڨ z9gN?R͛c)n-ʝ:72r(.7p_M)Ϳf~trb۩uMKB%^彣p+m!_ypUS+ ׌Qkq9߻&q"oIXՌOoJJ#6aT {lrwTK>-mdbwV:G*^ ,IIϦZ:enl"D$ҬE iDSD[#E3"yMHzs Ah%}_32_5I|bn5ci Zriv_;|'gjHӐ\7>7Gp_scTaZpa [ _3wyxR7<[0.W[y!sP[Hmh¾mJ;> th?kkm+r#TxT Fڐ*> ^}yw4PeIvloz SĨIFNKvNE'[>Vq|盄0K:mXgf1W9MO&MpLj3Wi؅~Տi|t2FJK35ՏH{mF17|FAF+*AS 1]1aT53ޜtTubS'\V[[k&haMq'>4yvճW]9dSֹ(q,|EaF H*C&aF+Jո/+<~Δ:PrIk~'6o&:߾WV^ȓi6uKSTzBB8pDGs`2ekb5s~Jd8AnmRgо ֶ _F HBcvWy`sl;\}<3M(y0ࢮ= $viȪDs{)dq" @P4vPV؇ 'J])>,%P4P Jj84ko?eP_ +[co ρS`zN-O.IwƅU٩s Ir|J{~n~]QwJLi45p[7({[pSG ;t[mD1NJ9-C u?@6bT(3hs44|szBo-.V ]j_2RYV q]q۶}u=dxo9s蹒'«wZs,KnO4Z?́"5i:_ nP}M#Ȁf Ý} vf n xX'%&pؕ8_WQhjU۟ rXvէriaz|է-|b?uaZ~@6e9(Nż2*`=;W?DTϼj&'CJ]JSs?w&J> Q> ֵ{5qoeu)KŠkE.F7nj[g߄}MCẋ FfejB~IiU+~  ]|Zu4lZK.~Ϟz<{`<i uW6䗂Tr? ^J{g6ЧEr\]ڪt"moSȗV}4Y%"6pkKc7**}j7p6AjߔKNs) &&$%y\)*|K:Z X-GϬuD8,s݋}m2hOT"szr9|wyYJxuWb8r`W飃⚦F@WwUC[!rX+ݯkrBTf NT,@͑~t m͵j |]96s.1^zgY u^jV)}+f|!qKTզ֖ˋw8@gMՇ!KKWmMn7 /rm_m_$vdzt邇c}BVZiɵ>>%v^FOY>k6N&wk[8bAsEʪY)3Y L_BTC\ŒuVd5ߝp]PiV^fm;P -!j 0T 1`(8Lw //,}9[xv ^ba89dyN5PA;ArD,U4wV %6MJ yR=c[ @8rzpl ̺%g)|7PuiiwE"2oX|gKX[$CJARuQSV@;~{w[Yj[wt~w8/( @:5@XL7bMbyRxqq 2zxADD HQAFƪ20S(M`Ă #dOE*)Abp40}EƱS6jd*:v"5]EFspYFym*jI73P !؋:9< Hg& *w< <^P@h Ӌ; 3Ax /uE)Wf6g\ABsD9l2Ziq4w*C<Yw6GSN8="P8rT=" Qi ;Nq8Tc~wŸ =#\vne7 Z"GwnC񓫙_z1S{;tתdY‘Bܢݴ2n;ԪPRԩ(éV*>5MYaXACWEWʘ x`!x!7'ѱWa\CޙUOUi;׊ktbrUgBuLҢpԔIڴ$N.ܤ/ ("Z־C't>8ߕ " 9 &ܿ0EG!)9,g}dƞP16k̵;HhIZ֙'!YQ  YAkk`D -J:]ġq>ԵIxqX޶R_}ՁGQ Iqj@ K4h7IoBsOjhRS3d0r)ݒlXYSZ)wѸܹ)d/)!˲?2Ix!hКI R}h^;ʬxIt <o7r2KI Ңd]h]IΤAV'#Smu3pdEՀs]yՇ!v:L69jfZ‹Y@չĤeK\<& &8O!DJ!%Bf4=?_*=(A+Enzp 2|~ JʮuIæSe@^!. XY\=]GR0;O>ɋO M0sA:HN|!GHDJ#-EQ9Z49p`R3Xbωg!#(RJԣ|_ԏd"&Q̑rLMnvY^$koJd`OFOgk$Ƴ>NZ<K8D9VS'q&!=nNZtSIg~N-M.X#t|4!c&]>y1v-(&vg9A_?!]j5MY_xFaջԞwعZr1)A1¡YrFA!5N[SjmŪQ94J.M޺~O`P/,yaX͛zNPJV({ [圃%DEtzMF &yYE~f.} h69LSbH*PJ!Lp]"FirRR*.Q}jᄌ]L4l'HV}IPB˽p~`ddKp4ƾuٮx{Gq7]'R d$-ˎJEj6d@.]RgؖV-ix4{M8*D$cȜxתpo0pBU]MqAG̒ܳM=Ik47*-QjY^&e`ߠ#'@QMfDf G¦L% H2HB1Tή^XG2c( hp`Hjˉg$D#z "^'":_Ǚ喚]BLHG=I@&U1s{JXsѮ-'g@Ѣ{lTj~I r:e<H.kVFWvzX^TZ#no2p Ӗ$qʋ0M䤸& n_Jx<Ϡ7Q''8 #)0d@tBtkN__o,)K@῵)TZmja*-ejUfT!)hMI hDhFE\E%4fi&QmPM2@f b%.\mFR`M'lhBKf dkh bW4`e-)1hMhF4lXLIDԔRd)!uRiY-0iXF)/?kXih2bIcBQR-ڱVcmرFj-d"ZJ1M,S&DHd4TPM)Bhe4cf)ƫU%Z٦B |bK~Wwn$DDDDIdh]{56 FU,M&5!6K "B#D)I&%(͊II"ka(42#Rff h&#6Q1 ZaL5$TLª  $E,JVaQ`[(R03fB& 6Դh*JE1"QTl ,eUDid6H 0Fd66L,m1XdJQSuڔb,ƖFKBiM5L ,QRA&)J1kbk5"eգThԕF,j6ԑYmdY,j"$dQ$mZeei 2t1`1 Hեe fHi7si*5%b4%K7wSXֈTl5I& Sl&k,SL&D&ѰmPc)$1L%! 4E6bJ a"0kFj)5& Eh0limTk "%(@0!FUhdɲ K5LBZeYCa~1Ls+4m!Z]QvRhq}3&je2[!*|H>c?>_okt RZ T sT1SƯtnp#P:FH\ :00AE.Ȇ"i(Ң,?c>yw͹+V$eKgpo+=a5(R5)JV7SAqcT2IAl+|̍4k.5Ia[Cr=kK~may*p]T.W U6]ʂE-PId–k^2Bã T|}_6\1WEPbBٳd` 1G7lagfiԈ`' T ^l5AŪ;NZܔ R hIb*(8a2rqc:l !ޤJiPf$HvbuePT6"9E&MĔlUf"%5"@Wa*XMX< 882;֦\$ZCٙzIs$BT$\tXWwn )|5VBWq@:m,1rn0NUig.qtt\!Tga x2B.fBs@e˃0GD)sPJt<ق"I!SD9ywUsVȝN#tCA!)rIѴ-:0E`:i p6C1эj=kR2JjvƄRqC[(![_)e# c.J63xمU05Be"ZUTFS;?DI-PxMuu#2Daa=<>__yŠI_ XF2,~_SE᫪w}~qri|ZL5eX8a ?C`vj ,Be3ԠEZ*\UY|z2xZdWpES0jt3奬5.[ MP-lâ촎("+k{/-CsK@W2nLSأD?GO몍qPǢr@E֍F[%Jx"5]0Y%rBJI6܎˫2Qc3&$@WH[͋fqX15̢(UvI-S պ2)lj]8DUR-2Var .,pI'$*Qh!f.ecqZ!k8.kFW1Ky LU-#C`Kuv]b|L5m,X,@`)`uR"<"J%v:hZ#l2ҵTQJ^Ԭ̸ˈWwWq4 !&3*IP_'|ĸ̼!FwL%D%[QWZe 0A-H,d/]F],CIPĞF5>ʝcȬӅ kUٛ*85qA"XMb!4䦩 G){4fS ՅA HRdUt#7̏0eT1 j)0;TwdV(5K7!YG(c4efZH  Kd#33%t!re)w)) 1QQUeͭVcZfZJi7aCiPhVj"Tb/ui$u0KmEMlIǖ<183Yv[idB;\(xa93(D m+%}(Jp9DR k/6Pbyc5!8TR%T@S",h_};F߿2s96KBbͭX+PP-3]B#=vgR9LbEր؉8K / "2`$i!3!vްJ-ݜ0mgHjm|p7#>Tp1%nΤwAx^r|)ʴ;ZfjՓ_:1;#v!e E Ѓ)J ՜NV/d$R2D9|HZa}Mm!Ԟ+ZhcB }ʀ #AAO|?,PKOS_) rd (I"Dam87hC DVlvxn@t BC2Sa8Yȡ2U&j%d,r3KTuȷ1o]Esj}"LXUBuf\K*4!W1ǚKE XiI4`b(.FoYώqO=O8@pa &AӅ۵ٻ|ņ)b{mѶJ'AKE&HǴYfy}zEƱ"C&(.Hޥ?4IBU!蜻Qs Q`/C):MW9}]љsu&T"&Z/o @~܅d4'kM"˱O+mDEKW)hZѦ\D +KmE%3&$Q^q* )5%vffݎ YBˋf.c*fضܸ6iJKsb&6l^|℗w׺/vLݥj)1w ]홉Hinh)]踳HQ3Nu߳ VH dҗQ֮AyB\1BPujb*,C};'47(VZɳ2Rb2ҡ*T4fRi(M2f6664]wׯrAӲSs>|8J4M3}8Ԓ1s\ϝ;_X#SLȕ2Q#BӁ9N'YtC6w9Ndœyֺ{ޛ$[ 2eLb ,fRlсPZE`ۈiGm`TRSK-1R5ip@F:3&XMVj-nZFTږoeM"a]SYAeVTAffLMafP2ٮMmL$"cbS.b(*)EJV: ZhdPci,J8$0ݚ@ .\bm ]SHRdLq&&h"W1Ѝ0ڦ:ښj1ar@P1δ&"UiHb61*rC\Qb GvanR]) htWrcTcC=11JƲ\6Ϟ{Egm X>線6VԺe&JKj1Ԫ5qdiVheua$lASVT_lX.3ˣPQEC`!#iΨР CEGuKw{܍t4&$h2Z6BdZ2A(űy"32SXJ&5{*E&4l<&oN"(K1r+rjj&ZQA(6UU-+awKhXt83[8)CKZ+yRiTh۶Xy] Dd4s_n|܎f.}SM#*CR2e%HT+[W-ڌWƹ@=ѰZm=מd7PӶhIZ0417u &)r9xhk ID-s)X,UbnJ$Gu|f rܬ\pܸ_:4ݮ12"g/\oؑHiBʙV+#g&]vQyI8Mh SYbS2W j1C Q]fMD0V*1fRZ1G3#Ii%+;2w:vnQ5;':.o|]Fo()n$]s%Iabm*:p1% QiRe̾t5}O*TҪr1E'8(&cT~wHl&C|P4EJh13dм49™`PYrc ы-l۽]A2zr%GIF$Pwws #DN.4KזZQehV+-M=5Gŧb$>_]t"J,E?v3&\)jUk`O|mErWLE׼\wmQ$׏m_;fJ# eJfR.[!Ű3EHwd-]ĨQƎL %,Xq\2-:ԣF!r "=&`cm~QFFLh*JE2h֌&جV2h"mYlIF+ki6HTcY13TX)&hcDhCH-~B|W6h뻜#tl|2r\)a2i,ڑa~sy}ѢH/r \ 4A_wB`m#DB&QcF" HX9vX& &$Q\ ؂1lIF`bL c$W,IfFpXlI@ŊB,Th!";h2lRhiKdQ*GҊ!H{]ݱ;@QAn]5FI ʵ›N!B|r#itJ@#A6 $;Ƥ2# &c2QbKm&4эW-]%a Q`Ry12 &t2'L 55dL&f4IEcWC&3#% E,QDe2N%@ƈ Tbi8,ȣ d^rBEFІw\6RɈiba\9.B]cDAm0_Mr*kLF5bبPiݴd 4cDk'\&awkw]MR[24F ms 3\ !Ē!1f&5bJ@Н55%~\ 61\R$Sne$PKjIBDf6$0eb Nr&}u"D2es7a 0M`S#lI I$DJBhH D[s`ѻKFrcF2HdDAA%7{&.2?]֍)IƔjSw %ol6i_Zc.LgM$Y6GsdW[qˁ90Wx<38z͝;]^"E\ٝ6$BʯG&| *t̡Ss)_⒤] x5#}Ī5,z*Z"N0A'kOwEamg/>{ݧ( "* #abtHD*dCs"QzZP!TT^Yy}Y)L4Q.g|'bv*$>7xiU;pPЩ/њ2!*2eu@oI}! %DnѰ0kVj,b eQЇ/C7!&8dBh+?)1?8mniN,ZT)Kq53T/`%K+gkL?VqKmh[Z*oPsl&ôtޯ/QZAg*QiJRiIs)_{?{2@x a*Z=ꏯaIÂibp[$PEO׺[qơ⤂ 3f=\mQ+/89Sףgi96(, ³0͓\﯏S@=:뷢uycx'HDE)>eMƿ<~G8bE!`6K,g$R(4!r!w]]24&ܵILeo*5ͨ+[ M-DaFUh.ƱY3[TSIrJŤUnlm%K01 fYeiX iJEF%ur F o3}_<~VDx(SP 8"'_~JR))JRJR)J]0 Ā $Cu(5ȌaB$^\Xe֮j{ CIS4PZLw!tN N뚷XW7H&C-%\E\Mʼ?[Rybe٘USU~np4ŏh+ 5η>Gݚ5Inĵ2Z@ hi_8uؤR|mmr*h6ũ$DQEI~NV{\6NJPj$zjq D8k۾6aWK0a NԹjZn%TE Sr~ 1&$)R9XVi(PJ)G䥣EXTQD?7")~d&%ƔQ1+$I-oq d}.)v1_(JH5 0zߧ'雧6 @Ntه^\9i6ԡ|7[: g~v7ZO-*6 !p}yrw/:;#̡Bpzo ӯd~@v U}"z1(rK&]x~{fͷ=rì9bjW)Hb?5Dܱo8YyLwv<ŬߑPƘX<Ÿ]8 ',?&E @,&D^C'HV>̕fdQxCa$jϋj{"m& h#F)ˊB0.`nESm>CﲣiH>pUdE0?L/Ъ{%}%0Q^$F^ }GNoGQl"@,$[8+L2P:8q(%&r .0 s-)CiTNa?f4jqD1'[ݸD. ǼJ8]kVt^&PLL4lNA`PHVЪE̱YQEFp~>_f¨ (c5ܿ1]DLvz@wQyݠELp( @H5 *Mſ JZT" 3CE͇,:|:_=l8`'| ӕH2'5CePUa UT5;G $9t̊岚:-3XL/Ʉ,Il݄H,=&i5'7bgYf3B`a66¡#D)66 khGOMhՄm1ԡdeiRT%.R ئlQ mQ(0R$qŚ!f~n*O&!!Hf sʥHlB&*7 X 3`̐lT̓^=(+AWp/>ThvJ _gRb"gއA3Opu~GE *b )4~7?_˓#'5ߋ,PBIx|%+}]T>h+lkӆLQTVdJ1}{kFL4Ub:T'Q8Cc tW3s 졃 xf, ' :5ΆHu;~pS‹3/5>z:X[K׬h>fRnP-|, 6Qv)-Ѥ,$DyPYȊ_zoLuDXw ^ x H _<[rT1T4[Dw yXJ8iHņ<Y>,d)0 ނrV$n#XrX^p;`%q 27Z娵'!F|BBβPNA!N 2>#?#ӤOi/=سPxx΋3qԏlt)C5({xwyҪ=4h ^^yR_ Q\*BC| 2 l>1׬C8t|S /21!BUn^mrv`Ͽi}w)}.VZTh5G!FJ^ %ᤰ?@)\ ʻ\|(*@B%*e;6Ԛ&ERU&RdFEg&fUXRUW3(1 (.'b69XD nV.ɭ ,oq)?JJ@aH5K=:Dm WT0ʒN0Z={u97٥Eh@*VVa/鎯( v_>hsx'Eu(FDB@@߇n~ہRitQzdZO|O|'> oY$PwADTy*2!"QO$0E g//ǧ>l|9,F<(6xyfq'C x"ycTN "]!i "{((`ksSFBĪ3+` SCL ۓ {)gP톔zzay!^bt}>rz ٹT&ud{AR* _Cbx?.9!BGh_48˹ş-hƠzu :):Jxs/d'!p~Gѐ3{2IMu qK`l:78!݆p;xhė2/z;>#Z[0=g0žda؃C?b+԰\Ht(M@>sDBT j۠įOb)|~#퀏SBP >p@ja";>\Tz_Nv I%ſMPBdxQ/͝4;)yϷCzqN=6T%d4N4~2s" )a;ͩv%q(u"b&s{ B wz8hAlڷ2dJE"V5I%9ܿR>).l wN&B)I(߯1(BbʮihɦlcssEEBAJi6(M &)Bf%tD)@l#j4IX) S@pDܸ$2(&uQhB6f cQQhA_O_7:Zo](H(QٹEb7Ϋ|TEIS9+2KG# MDy McIFDhJ Ej<##P),-K?(T~HC? dP L~hbJLбTsDnnSI+P9TT/4QfI 68kSF[OœOM8`nl1 0Ra(̟ Q5O+ }&!`kϕԔE27F8=;Dpq7 n_[5;͛Qs:cnN:>:?!1QQ*0R3EBi(0(LTLNR، 3)2'%|Yu(ȈxK8qsk8gx~ur٤+Iғ::G 8wP5pTb4>?G׮k_F?.|..DX^Cd+72;S77S zO3iO ׺0,3b'LM9PE[:Aǩ\7?VP*Fw$Tx ?}VAcD*)tq\}qy]O;7GF9|*?vhh=N~2d(ԖI2LcG#ii{Moz sbZqղz 횇#6UQG?D*<.)䠌B&7Q ~&a[]gA[:{/m0SƊu]Қ!Ҳ8{}6i,-.St󔅁V`fzXlrQV=¶ȍ-RW^9)pw|^8S>(ٺkeb8ܔ}%ٕj܏jW:u ̐v=֤S$ w^ե4:Tl B4sKA'Td.NȔ8WiE\>^ꩠTsOİC$( yC2F- pNS1lH`DPDMҝQK1z>|_ד7| *B?+Bq<qz @~=9z4NPױ;,?G:65LDCێ3 C⪤8n6[)@ט `LT((ABM COLOjѯ2Ř,F|ZFRJRR`i@m /x1 L11铪K3!BwR *r@2g SwiGie3a;;9ӊ $~1ߗ &;PoZT8yoerqiUϜ^TkAF~3.$ך2mt#+W2o?IP:~ > -CA!,D%iJjmED1KDIX IFZP%ҤUEmƈ) hME1lA5m![Z?( BA]}K04vu;AAٮxܩ(A$3(9E ?5U wk$Lj陷vcL LTLaY=CCR<6$?QvbŽGEMO+JM°E, |yEuATEK^?}{|zs?L&2y ;^ oI_yc"(?H@ 5ӵB}? ~_SP;e!؞'9~\+D`VZ60nIesh,C5B,:*#!% _u857|5NDR`lCxPO;Bh0J ?eH+&ۻ?K~~19p- /O 8ۧ1 VYs䵼7 4D0_wSGK\wm8 maAeէo9r JHZuEWѯp Cb ޯ.O]&Lb8ZhOpZ%KC$C[K`ܣXw? yKRms-D2ANjUf:׊*o֢RoM%hdlezزqwv+B#~dz͔bk!E`:O'Kӕκ?FN< 9! O:/,ÂPIK@C `*ߙJWϥaQ<ǹ󖒞j/ϹEOŠ}snJuu`W?)[㶇O 蒷';߹&W4 `..,Ef pp+3-1DGǫZ_xS e^l`.{f2$ $ē3![@aƉB6^ b"Vɨsݽg:eP7cGf-Koel׎²q=[IREI(*R80aCI#N9 O EQG/4lc}v9$2nuF3e-,%/"ɥ, 1`BȀ,U fрx6\?S^ai<{ulIܩ3{1p<]%X!7qA.sӫDT1D{-͕NnYAKQs;[UȾ %X* cN= (<ߪOb9l~],ꪪzӽ+`A|8T"^ $vݝi5=OmWyg8Cy|):>5bz- ȵ]Ӄ{婖`[h0#ټ4gN"l> YALX;ШO,aHtz*08e[x{id2ДYۿt>n'Rj$bBUy^M6k,!jˌfM8A(9h -\4  a (nʢΤs KzFA-Gu0xAd>U*3{1n='&O7dʼJ*lQ x$#t` ϛk5KJYg^]L_WGNKR4E`M:n#'ǞU=3rW-'@AqXC%Q($hzzb9i^ (j꠽^4Śj@N1Gr7{qMUg5d$!-o؟dӨDbq:\ԆBB ipD U GB̳ gfQCGGBP\{%FlZ^ =0~mäSZM TPa@ h_my{*my笇St z¹~J|='F̐\doAEYQqsv' 逨 !dA4+#ͩ$ŭy@ r_ګeǁDRѾ3qdHCvy?.|HWTH|l- 9U'$#jYZ'<+zk7LBi3䉫TgDK#c;@? ɧr+P9 ˆdXP"$DD8eONuTUU{ "Rx=aA/"@xKE%@9)Yg#~A @VgcT㊴+C.!wl(6`)Ze3ArJ EAEo]ןn6({I=Ntbbi~ڮyy2lpܴQ)R DB-|*;IvaÃzL^+iB[D&~m"[o(P1kA}1& (( QJ@Alw^H,Wﵐk9)'Rw'$ΉW~-xYB#I7HNhaQaFHb,8P W{ <֪. Cp"U$sjcȉ:tp Ig" ʠ ɊnҐPRj#; %M SAuv.ecGC\w-y("u];' 4-z4a:Vy`#N羜+d Kr%϶`HAS{a$D:{FU-rrΣ>N}ˎOvUyO= TYtX½t1?ʮBN:q"1\掅1$uyd&қHr2|/xj 9>^ jǃ G %W%;.C '%'>KUlZ{׬}c!=?QZ[;1GI%-xe^da4jœIY~q` ڢNv_kªWߵP˹t|~A/y }I*X(PCn1 o]z9nSrfW<:56eiP SfgdYӂt"ĈoEl.`!@v>ې]<*`+/rH2*DSjhR6SH ($p$SVD_7hlE'P *`Q<=O A[e- ih̘*+[Qwm*~O" goO}_vnf5xi@֭Y@?`jbQS~]SMC7 ԚI P DF$f.wEP1(4?לsu>&fs1$cn'׏%^ zSr!s?><|_-j)*Ewn T2&Uv.Pm6ߎ|m_ދ9Whk_>n:홗'ׁl:ŝCRqC'%p)˰B*JHIy Zu0Ԓ=}8F y\{L3_Nko6M4qѪ=w D J'(P1#ԩwhZT"),űD$M1` kuo;F-(őblp$n@pcs;[- *zQT܄tlj2\ u/ausKoG8ۈۮkڕ J eP盷s Go]ȫ?u~=gB>kW ߧjMφ M>|D RءCM |;E -F ($<(woXKZ_Oc|?}?@% oaYPMRdC.,f=Մtk" gCQKKaeBvV:AQQn?UwD9< p)dQ +CQE ^]߳Ȧ<ʤ)=EڊrF&nRwO>Cؒ|;\I#Nr\F{0]^u$o,Դ~7]/ H,7eQEni]|n'ŹEYAGZu)dSI1TA=;G{PMm'1R]~g_XuN/`o<p¡hHedȆWG٘O|OPR}pb L.S -#/ 2#XAdn=#vu?Oϗ}~q'lQV2mUUlV1c,-jmҢӸ+\2y!HLYUTg{G[Ƕ5h!/b< (aIrd\Bo*!./WmO2/[!#ߥAG"H'٘U+}%e7<~/q %u}3g!EIvs}BΚgKChv;s{CSUg ',h ! g7 NN Ju|—{ QAU֓aRy!<4lCJ0%# Ȑ2A( uʎ0rHЩ Grcg)` @$]q2!7&\ÅcIvpʀa@SK6ͪX٢;@j.Qg);,bWpk )%?p}Y7,F54xE٠)VY1*!Y~Ahr%5;O=Zw)h^G6F?.'j T#}XΛZX:skEcA:LO R`S m:]A ST(=+3GMg9!'T V0q%AD] 56d:N<05'aE+9XEW+U[I~^D?އ1O.~?= 5\}|ti'AeeZ !)Ҿ4O_ L`= -S-&>7Njc V@FZta*_Fh08֠G sа{- aXwI$HJ[[;emCy)ciM[6-F/C-g &QuRiT-,x75axѱF&Pc T" tTP)Ҕ,()x?v6.X]Qzy>&{SԎ,vG*(6[ ,CU(0p\Wg,!Gpsj?FcYnVr@A) *M-DA&B ^|A +bw5MZUz|ȫDhIfj<-j]cGHD]Zڍi,714&XwI1jiZƖy)rbPWeyzh<[MVOlGZiXo:]!dhIU"?[ڛ|1BkqK"Ypþa¢%`F"ECuKKN>;:=h Mېc~3U]z@PxcT aD= !cK-m2 zxd,%~[iGMA8EPI&w2"#D tUD-d0"XrTH e0(DE(#L^GW\DŽ:57 . JjG`" Cr.O2u;~ J1B7QKHn*:Ke6Qq0(q˷ao Օ.I@qN2}nW:hEx 8!U/0* !( P9" VR[ (ux|M+~}Ym*Ο"-$JbṚG0u2B{t8a0өEH^%aɱ}q8r>₰Hn^vDI"lu"r0,@}22Ll+ӫ$^35<_ Q~/hŰE J\8$kNjPq*;>{ P[޿=VWҹ/zB~ "}t#n$f0p\cW4$NӨ#;( qʪ˃bèJgۅ6}3 j} >ud CۋA*lFh1睛hh0Ěc,f554|yAnڻv1RI,_ )/̇z;֛_|ahѯmҪ+VAh6j u[KEU칋B1mU̪^vov@ޞ6\~:?ɪ'$P@f TB^*:]pN  >oq{$D]T Zb~}yƁ#^SS*ٚ'p*J3寛z/[[bFpi d9ײF܌-T25@7*? (ƱcepgAbqMeNz0 _5qL C|1w8a у#;KKwob E(knߺP 8=#2{1\I$U)-3iF.F$ A a6!8, >EMSH"a T9y0=NmK:n+c)eZ~9&2LUaH8风ڈM#h>PM~dLhM_5i0 m*X Y\|=E>Vc @_ ^W;b#aӌ2<p`OcF^rPh%Ti 1{91/k҈&nv,(f3[oQ?Sa9 4Ve˘dQFTxKrھ'6zuJZL2@:Tf gB'7 .{xʙPU)" 'R4UuS:ՈT~dǣGuLK NF,EF'!h O(9K6xQapFb qBBlEFY5x :8Z4˻[%~dtA4| :]ߔ ߞXOr, "Je2 HoYh՞ 6ͤ BVo(o}as 1UB %,dYzڲK~y?{Oizxteiv3=_߶zrz x _{1ܡPwgbWԿ(0=Dmq..[n(&}]UXLJ$+ '7RBLD1|u镡&R4@`W @QE@"C^1Oho+H}|phb(J8)s`W!|Crz&LB<.ƌx%.%o  ZR% .QY {?zȵap,L' ^sLMxYAbX(FUƴY ] Ѕ9T<=X,s{UO5!GjnX@1bQUl8wV.CyJ4"6n!865*o PW1SЪ⦧9ML)A"Vp@_uie$ȫGJF0X1o^B> #Ym* 80#qrV3/m^Ip2\) B$3]EDe+gADIFp@t'5}mP4ݾ5HW Mwr2)YJj}092 7Bz&(y1TI k`}5ZUBA%kA@\F)>Ti®TB!~g80+ZP ",bp:)^p㭱c/63Xu]cG{Dr7``J5sgJ Qvl]%ĺPbpU,6$Mme-? xa&y 眷~T80,>Z5A.3nZmWZ‘6wz12@+]tt0Eu N)4z3{wYA$bkpUu 1oI%ED4%r\đEu2D[ѐf}w@vSA+yrxeEy+qݜ:٤0SS%⁜T׷UxEaI;I%lGhdK(#Ybr7z[Ĉ~2 *' 3{tm>PC]cC-SM֜y77Mb 5'a+< TT*K3 sNsyiOhRW޵!1P ]Nh`B)%k}Kn _ wh!UApM C+( TIZU5hq91Mlu.UʿU6~첷ꢛ_y+h/[i%oXNnZOĊؖzhyP CWGtQ?I/x4Dz ~l|2Q+=ce6A6kѻG-gkLdtWw~]֐PʼnfԂ\T;zbw&ׄ6ՄB -BZzpؖXzga Y2[k9aK2"90NHD<8[ encw6a O=k7Fu}Dflu^Aޮ %;ݱ/H ql%'~VXm"D$T^] 7i|"Âk)]cƋ69zӾy]/Ȱy*9 ׹_zF]Ii2.tYq딢I1eoӿ}6wShMlHd wAqGe2eef{p9A(<]aOT2H``X~cnc}|CfnqO ~ &;ܼ̒F+Dl =d6)]kWo-XfY7X+*0(>_v!/]+!ermgqE^DJAB_< {rL҂D3s^7n G D 8*,0dWwbh4 .bd uڝz Jx$RbAFe(HfB1 f:uuWFR{VM˒\Z8 @A!˕2K^LW(F\wdC"d}durAAWYش*;~*c滒ä>?wV!ꡯ 1@wu&#pJ swHQOn;# p\\.]^p2|v:d?XLU52/ tWc#C&pƒ]` IɃBf 2a5hUn+|GĨ%}ܙ$FA!%~_λΞLVC*<{ZdiprHFV] @`>qi7@X~l!j_[:Η܍u}LM~^of qx~nKȈ1 siǭO+tP3X( XV˿1g`7^ WWt1B1]{5ӎNRKAGM@hBOŒAl9qᶣ018{Vo/*믅u~pF)/{sc}+p*s;Da)Fz "˷vHņjj3<gTl;fT3z"&`((V,BhI~+ўw/Ga:a(v_ ƅ{$)³*; { $yf0㑁@H*!7!Ntx;4,/'O>K8cKmqMe]yjYljS) a\$@pQs{vC訫/ɵ}s%+'X^Nzp ) _ *d?! "~Xdvx{6z_s~|gJ0QO~Xlt+Ҏ.߉2zm`x!,$A}޲"kU|kϊ.h8eCRTvƍu[uDU#aPp2V" Ik#Z&D큵I!F$QeVKpe t9 *xbq ZΜʋ<  o6"6t?fVVB7Ll L"k2,H(kxhqps@hʙ `A,ip[jRZU0 D1u:C4HGtA%)kqSZ M]h{&><vuaaWV!+o[7Π( Z%br׷N3a+1*(ϗ"!418)xv8G@#?Og+`"#Uԍ)[Deb\_-U^Xƀ͙-=lHyZE_Ϧj1|}G|tCvlD. Ln<;o`k jM&B%]&"e*_D2uI.-R.pz`DJ>Qe 98rx֑\-z'5O"X&0xn0fF7h. ~C#Mr2d|D+ 2}GIJ9L;"NF[ݫ@b0 >AXɨ-^N-l':ʝf[qA{dA'_7CpeRp)nA* w,^ 7KA/hlU*w&zbl^%4~_м!)'8>9\mw{zmK&wۈyCm5B8<@ m""3|xn}.d5? !OB)oL{{3Y @Fs ')Eݍ$T=_ڟS80fQ2r3 lxU SdžohHv?+ѱm*[aR;dgc{Ypa}0yO '%I #R7<<"p.Zje'_צYBI؁B C?`ERa!EW|2Kn3\b^G@,v(ZDBXhXɴF"( (eI 3a2 ݏǩ+gE}'Tjp0_`:v >qL=}%y %+0|ejQ8Rve5 #/Nfr_MazBrdPP2F%oKP7r4IPwd 7-Xc#K`B޸EBäJF<5q[6L\g~e@܇1(~x "/(CG'>*'P.D2]3c#u?AMiۦ8u45]FZPM ͔fA*"'ǯ| ~7:)|ۑP6ש}'`BM8c(m' L"1 Q__8MaMٺ,gx%HFELS(C@,* qӶ b{nN~;׿sF%tFb;|~pѯA9MJn0xh n5J>3Z>} nCQ"q^6Ff$YdFI6#27 M@*]5'<٧k6s!4^o+ b+6c{G$(z6|ǪD3sTV׃ˆ@&q 4 G;L-߶uNI ~)ٝkc#( M} An@u(P|)I;7žw $O <Ӆ ^MgСϏE==J"|v_b /\D$!J饪BTt**,i CT!WiB/dőXX A*ĖuX6D؝"FU}kФ:U1-ZLgɴ԰_KZtt%jX! ^*aǮ@8,A0>^PhTBkw1"ga[V]@¼Êm#Q|~J&+(3 Rro![I^4h7DjP3YQYCBKEJw*M[YXa/#Pq?rƔӝ陨$+S,rچr<)(XD@FqOB B2QM ߲NFWEL\31> E^ahCB =4wYمp4porR^0Ebe;2<,^<[t&&ζy޾ftzij4:pHKGiJOC<[ UA?I:Jf)@HxEwfaG QWu ."6j$Tz`dW42x+{ijS;ԏmR֠p:[1Q;aȍ0l,ߚg)wZD LR%u{qa[Jc*P'o;|x>;Lte-=>9ed _xxww>7݂(`bhݯU$:!N,Dxx("lcDo& :*"r=AsFJ`e v_m5h)D:+He`&udV)|Zq2=3~xmLmu")Ũܯjy}ɮǧ_>`d mTRq\'OSoulPH"?>5l{ ;L[%ctPQ$C F}lz:%&D lFr침p}DU .jjZQEjhU'>ch/ݳEr/)mM8=VB`F4O ȵ=ER0(OyOUqӪ\"gGWxn@;|4(zU Dt>z/fϠjT;ΕXW#~VNLV ]`Z%N=WpY*TÌq5l,B/M0) .)bD~0['&p~a@@FޱW9g!7>ڻw`=EQ@P}Be*vl +u¢Λ=taVdzsg$[Gq'#%6IYlW_uR>n"3[>/y-hNEk/Yn[޽kߦW@88'jZZդȢ(j_ L;vo7>T}ht(VK+nQ!» cRFy8uj)@FQ2QmPu"_wkL(g5|\B9q =X"i[nybQSkG2P1it9nxcoYbm]*0ЍFc$IHB I4[NʊY""S>hi'L H!ayLVTf88:P4CQ Y54 Rl+ I2'Nb@è a9xb`:sgs;O()z@] Aƫ%gǀ5L nհ`4f$H`f/}lS0b 3vwӝz^sѱ>| UU;iM&!_ՔL̙6r )=$^1Dm .;ۺ dh7Řlط tY޽e£dт,W]Hm `@ D B_"D VY!~ؼaH41 7l5߇l\ч>kҤ{dQT{)ƴcX`܋Hq|bÅ|a rrNΩOti.LKzJ"0iNJuPJLXS}}!04+/ej !hH[¾"Ҫ$―t9_\!^?2T͘ab'* "6'[_<#_Cuֵ3g|)6G| iii() èngʯ֩o՘ai#05`T²!y~WZ]E1#ZDÎK>svh{jUUC勈?o{}MWW>+:.bfbҎ)ӄ*`m{K*oӣnhXq0q&d:d=:!\IM֫mH,bf~t{njrULL%HzĔ ¬iMNFV!`Ѭ#aW6LBkE1~m }ZO+M`ҫZn*EJ\XHS#YQ's~`…7NkG{ol/E\6m>H8P>Ns=,_3vR"l;~.3wu o5M+:ґHaR#[M O3nPT60=Fa, I"e˷)H $j6F]l[UkdC>t^)cI;}uFw%Bͪt)-: pX_*Z}QBG@]]vu U Djx< -;afņDAU,r Թ7g%۝qWSr5×veٻ3~z'ZԄQ~G>Cj}a0 *BB"~0`]706,9zb#θZT&R_#a6W[,`ĩK[l^|<4RQS'XphP%ɽ6Nn+MqVvW m!I˜U@1X]fp?V ֞ ʎyN1:F҄Gd/-N,7^(wZeoIs73Gּ1u0g]j,ȒqxaMe*R,NC7 lJUTT+2sy/ۍ#Ž⋆KL!$s;o'8uqg/:y1LP|qrl{h(u̸X?BHfa&tbfX.QjUUPs"D#鷓F\,ARXGXHBYLAa>Ng93^5SY8\]|=̳6?]H J&n`Ti Ŧ[@ ^" ΏlU}0PwЀX o;Y&-5*(;1hbb&]شEVUݽ)\aTgeGC; R,Y-B)CW:M!$d r`b+O|87i > {gg^PآIP 3vv0r)pXJB{ /UdlV.<ϞEMRP#vA'%Q5U[q!$uXo{ǻI #~n}M!T ITRh+FQC\ xEj @0 .I@UVmmAHhZvw27Wz땆Q[r5[\hEVMș q#%r S Q)iQ9;FWG!ʗr:WS~~LO{F0Ԯ1yj[Wa v:l4_k!%j-QNYUmܲQ+^QL8' @a}$ߣ~;*!iNDK#/'2?/1 Gxìׯ=HQ@0QZ4|U-^ƩcB!Mt!#لf!gBc`ۛ!?o/9?$cwG_F(2Vz BZUhcfOj=ǓK0^c2>?` 7 G}8dL2ÙfZ%a$o@Ls18@KPCC`,KNNo}ϯ˟!ԧ_g]tYNE'd=}A~ا/e6#6=?WGǀmrmfi~ MضJ,̞'dE'ǝ"xٿM_/cX/ZO}6E~RP=f >O>,:9taZ@84dXmxPDWZAa3;<^EHIBTH3ÒŇ')Iӽ*N{[3StB}&̐!dzz0!Y UW=^x6_ WYaG()Ih?s]M+=?gCSO<':hrvz@Q)ag#z#OT 4+s)2ed xM| tsBۊ82& T]tyJ<)MGHg(q=]c_S4! DA/t_w_ ~.fX|dWť60Cx=pFD^j6rOM;ާ\zA#~* Րz^W|8UM^SۃmC~?l/zW3jU`H>ć|M+׷]* (O7,B|*|_D<2SUUؔ/Ƙ?w`$EOm<]mNb^لH@{2ٝBohpJE1g{b 2Uq}r5Q'D1+Hs.4ƋeAuЉD/f[jko~ti{޺HvUOU b%S5LU70bJ,aJ>]g>DO$aϧ~{ko<>Dz}GB(*- RG  L3?fcSP.BZ l5VK A0M)\d?aM@F`4 &Ȑg@?;aa.! 47F[A |sWMJI$d8)%? eR* $bo5I a/$m)lvaq P桖i3*Ԍ) Z $DA a#hVV&a7&ы"naMj]\A e@њԮo4b$ΰ5jEt%V1G\rhk ʥ0WM+]ͬQ樫WwFu˶y®V׽wKk/#"7Lq(X֑>ukȎ(i,XF D.֌  llZ4`Ɇ2@QLqjU۪kMݹK@Is0L0¯>7DO@J]L EHBR"H%*0dh&ERmX֤(L)1ty t@޸f`J?8GsDȍ QAOU>H)Ҳg`(X#aI &NĔf_ݠ6fTkVah`*T(h(RΝL EvK4%\qȈj,2 %̒zIyBtu'I]SBΘ @D;"!:}ٞa"4^ݩ)FG'DPpHd]^OO p JBVr@9ֲ™+w1)M "`;މrc 3^Ĵ2zSr o,t 08L#h@cuű'0<4ypjjCrԺRz(mK]tP d=11(W֜k @ UVT& a~$TM)F9E llAġ.CME(ewkdbJ$[[t9$ٮ]R4F!iKd)+pEK~uA4|VlS5uW,c-e5%IIhMHʽ21VI^7754ڌ)Cd6sBRyRk;ŏNI5ufӥKף Hk"~cY~TЄ~$%1W.*ߝR?ӟiDLJq=U>بPZaѻcw)`ci. rř{%8N/{LiD "w޿WorӫQSڪʨC xTo>y3 cوOU&:t g`V_*狱!:t#LU!FS>+?Λ9&3Ͼ0=POoDž@P KTRD9?!T &U rPLdB<~%eb" J e &Nyی `kB,eP5 4HQXǷ IQ#]Vۙa*ld5q%rJ=$Xfpjժ.b̲T6 3.ak&(2LGHUMGVeUR̙"2J@PXHbKȺ2PL#i5eV1_tݠlDʗ-V%TܜQ UܒO r9C89 %Ç VgX#y* Yg(+U|,0TEADؓ؈{sRϏCvy`1bA|Y]c/|"Jc1)Q0i`F SOoZr^txjzգli[T:|3#Y-jBJ+=.@dj#<Wi"7;e?cOOG GYoAOL0V$Q+L:mV`VbA;BEBQ<^tp== ԒZ#YTg6V"0ET# sntB0(Jc }vy(@dCש0 '4:a?UYGaA$@wj`\8$ER{t?8v7ʈ k5(n.F39:O4j*wrnU4iiooC=~A>~˃7աJ/[uW،PCApԜ}xL&} r]spNnI*ATnOiF:& W??&v#I" I|@9l`_4Y(p]t`OD{ք~%Y.3 MӨ%` kB D4t]ޔm>GCw>zȻ@#I7U z?Q {=cf%ˣ=V;T2[~*G n<`R:0ԃwv2y$x`R-1@P <7+Q ,A=:#jP!h3V Bx0DDPH!qUQaz2D`1#D!c$jPs*)3$]DDA oV 8CmL]Xslٙ9Az*<}l>5[tTA0X &›X?V4f{"ÀT@Q4Fy 0E#E!8=,0!IE~[]K"Fg^F{g ׷biD(H>?~_]܆ H' F!ל"<E\ej"$/04z=d;@U)}oGǠ{E\qv2T2.{̈(3w}T5!:+{]~<0``0T` ,iG1[pSf9A#%T_Yz' j\Z fnq׸׶<{f#~$>W8>qu1OH}gyB|vSk^FOĵt pB(wu;A!$P:]!8 р`F5.&Ӗ!v, IgDxP!8Bi!`RvC{B@#`AL7:s]A3 Ţa'Dny2,PG89<{A Eą ;b<VSzɊy>{q+O >~A^Oi\a,ZXOX0oD1ΏsWvCmg EĠ|.(QKӭ[UPNgpp43{dse~ѤQGׅ>v*f0DB`$8zۿADe:sj> (k %QB⸣y gli$61G&5zc "F{: {@FEz@,&Yi!)b(/2y{O',7dـC0nܖfQʠJGWsD~79+GrsEFaԛ$@oqLxbgK FAMNNSQL UPi+%<Նt* L-89be'Z5,& jLqlq_5^A,uRbIeWM,x(n(t6>=7b'xEW-, mZf1QЖӆ,*$4DLiT5dZg=cGvq**&&9b BA@wyteÁۑ 2x2QTR]}>^b yx%ݔf%۫ "rֳ$&wɤLpmA(d Q|FK`;x$G=RILBk`"p%w`UD /ۊNQEYĈ>YxQ9vwsP""ï5UL1 bp:: F7Q:4jeJ*Ia֑5w)3mޱh橒m-S]g}$d B2f# zw5syi Wg?\CeT0r|⚟/cE;l( :J$y/Vcg-,/iOKQy3(Ёy_ 7AA8$iS,ߎ"l?4~-es`x YwuRBG]u8܃/d,[X;x'P_oHSJ_"dD:I& 7!A`D~b-}ͥa~HjŬF"j.1|+vJArX8B T5'e&df XIҡⷂ 2FylfU$=GK4_^GĜֿus.7,zOH=rynWX~~?=|ߞzß>"޶Zkϩ-N?Qwh/}tz<8ϡcX(@gmOĤCoF^VXL=CgZ 8Zqh{Ƨ/ީKzҕ6ώr㽿(a8t Q8xs"DTfQgИ %L9wT~J# ݡ`t>0|ruCs2 ] ¡}6ʳ := f S'4=ûy?oŇD'G#oңOzfAb'R$Ħ)8~#(|X6V0.8NoU \F#1f3` XwHJM'G X|!{/ոA/E Mٻib o_<0=,o"hPsv|t鲊a~q[F[ݑ 5ZDY Y> AL e#7z%DӖ6>8ŐH@Yn˷}Tf-۠吙i*GUA9X: $#;OtyJp*["N5!X@>|7ϔM2eC <*9R~f~Jϋ&[C0gHޢmO<ÆN c;Q @ Is8(GO=^QVs[hDJc=Xi,ѳM:`"s^>9圷ЏV .E**ORzy$wy3.(itB⊃fcWnכ)- ~3RBᓉ:fe nC>ykf|G}Dsr hh;Ҕ/_ E#(ݖ %lc?8ڻ璍L/uM!ƿ&lYA2"胉 b!A0n\Eu4"%G0qSR^]B"/ c)NeㄡA ZԤߞm[~MHHa˃H<φAш ,-T7AX.|d?$&ojtS_Lo^i!5 a~2J VTKZ>Kk.~ gxV.+#[ji /wC5wy]ޞ>,);Fv<; -Ӯ_EqѰ4Hя!೿_3Rs@-1S wbƒ΋$up}U><_Gs+[4cP$l? r~=An[JyO;~ |1H@ V0I -O_Ѱ^Sa!\/6CEu~G!~%׶rLղo ]0Y?'N[=8H|rD:2ǛJj*N߁@{iט |mfoz'ן]TV\mq)'zg5~2U/T7^zl"$9OxH4+Ho'jco:"o7j)wȗef^ZSՎmPнOݚNµxPe[:l` ӲAviU2$>W>ǃ'a_ $G|=!ӊ4NQP@>W]wC_WNܾ=}FnxLP^BS-=:pzw+M2ěnt}e}M={ߡ5)\`n(NQ{CpN۫Wݯfmz-NÄR@iB \\u\ x&|15<:=iRe$G@nqG]>_ENG ˇUi>xjt\|  |"8bOG! 9yM @Eݠ+M낒 8 ]Яѱ}׏Gka߇3РC@+u{ߏa6IzK;=",!۫{jYr.pa/S(s~Œ=p D' lD2m҂b=hD9j4*zQ7mmZ"#mݲy6OaD l ciF=>/u|@?*S$O!0`!NR!8r*%y=ẶZ~,tn٨GRާ Ur)"T$lQ|^ ٜ^k\2[:.ROAd!d\h\X? @ăHe?_7+іgon6To_v}Ċ%( TX=l 28 q|^u@,5:>](C}80?#7]tD8]AY?:ucvńn<2 6!{/|̐U݃DQo>B_X{>ݯI~k;vm+3M}~1ss\w^K_&z{77B!ҜtaZ&%bi24sk3}HsȞI(*v`iM?W*jGi>c&Әy=aǎg+*1^.\UB|Z \?<_a!5QC~YoᖢhrV|=*xQ iG+vhnu5xGOu4w4N[ _o fOF#5% 3}ogCTU F+IoL>zA>;H?wHLҎDff*#qU7ߚT&Nj\"梺B!%'ql9  M)nPI!eΏN _DU ~a;P&l.XD;᫬ n=B")R.7rWO0=[){?kud½Xq"Qy (}p>wu[y>pHsL)g2H* |~^cOߎNih:yR̷HۨMG,HBwa)I庵 ywK駔F݋k6h7t(,ON^R,ø3֘W pqi(] zq vcA0^ߢ㿅a:_hC_wAj\^!ã p ΂a|:ayBeCF8wiyC*RcWb\Ӗ^8N;,̴UE )U%wQ~xգ忎- ۖ\T߰7z{=_3\.oK3ܺnQn ÆIq`H+QGUA~۷Mm \O cO7{\fG~4nFYhכy/{TqqrG揄Ndf%iľVe ?qp6[QFǛ),nw)Byr;YOU93Ǔkَ}<\9'l!>|n8N?a[*x>4/oUtYD|U̢n72{S =\F#3E[f}*aiX0U|g!M޳ҸE ЂsP$zSL _hxWٚ3R\ 4:4RC2CY@k=;n>kZr P{Kn]c?Wq:1] @zճH[G H)>"XGǬc@֚i^3B?}n r7ҋMs[MvּpWcmV]' mRrKSzu_aό *rNziu14.I7,㞱OQ=g5!y` (f?SZZ/XJWG)@f M[gQ  )1$0gPDFavKM 9)Aj8%5"lpk4&3B:wvWkEwua.ʷ)T)iM[ ē`'\I2 Zk4@KHЅ9W )%(u;&RaHnGrou8$FbbrV."mKR!ͼܪDniXhS F#%JP&X4`u*dkMM*dsf0`% pլ XHnR4L2C2c2n?x $i !3 ئL2[n @1sזfwR5d{ѹ)(Wb@"f)~G/ʿy-DMR7&s)y?c^^D —y8Vh`5xW NqF6 ]C2F \W1~O?d}oS(MÂ(_pX~̄Cm c#ɿ19\ke\uOZl8G˟! 4!P);Ϻߓ~54V$}KI Zi iGw}W)&+EP}='Ԭ~[t(@%s8JMnT oQj?c,|GVqE(tH@&lBۘwߏOדt,+U(=5S5}]gQ$R)B Hs ڊ;^b *xu6uS#]2bc0RZ̬Rb/E㍇vcKՙDb4 dԊ Z2l1h*PQ<(xzkh$ญ$@Yv.jxugp!(2`2,Ax=`7 LAØ$ ?QN8ʝ;ŹK+px HU#btQqېd.&Ud-h.өPn(蹧S :1A|:vaଐND&>C+nT{o0@"ۻa4.|ѬYW&ջaJ E>5  p\?ݭDFj> LWײwÚJW$J53K`< כ~\CmW{ #h'[`M18)}c ]띧a)r r0Mm ` ̢wZ[7Y"e IlIu-{;=b<;T5v9q)Wr'p6aE.k"DcG3\脢'NO5R؜ ad03ǎ#@_$H qG}Up,}w|* *jr|~pvWuSud֝#HT3k(K١EWL}%ա;R{gh* *DOPrAAɀ;2C_ȃ-ݧ4@ča]kt5߶ۚHRK'~N`\~EXz.?{OAo–# =jɅ{%~J{TPfFqA =w=SQOӓD)#O6DZ~6fQA1Xmt^:X@\BBJ~#^IzkߎFeԦcz͞Crf}? Ǚ?3uwd㷸GNCn8B|1f,߮jƨ@c;GhMc#!;i>췌bc jWҔ0gXC{E-o합%=@_}I =9,)tb<d!uk$sfFw`*#PՔ9 .y$"jn e#i+,-d]rYfUJyE Vcr8J:xANb0;dd2ig o@,;{{u|}oq !Y ]ƅVrLZ6Ö@l;q^KX]rYяF]HOG qN|YFdXLxD@N8BQ㶛8M#4qH}$2HaObNSھ88|P :rwd uVC%gSt};k:| ?o}:ueu^TFm+px(/'8ќIֳ%Ó4daP$ϺvSØGIrbt20Uݷ"g1>\ Ƣ`t5޹E4Оqb#&"4T1f􈽆3G[zf-0j>^E B$SD5ZN4"<)6Q&$ac`PK}ox|ۭ6z񠈽|s_n=wi!d Ò3xc%H#R t!yq#k(¢\B@=Ct9Im"qQװ~ւ# 겔S"^^\npB9 1 du Eq̷xޫM<{CnpFD (F88:}M9O.>QGxKS훒 J $ d7XC*,*`2?0n8v*pxe | 5ɤ}$A4,c"(X*@`^fJ"u>[તo~"i%@l@PÑmo,w> g|Rai*@@ˡ1CN7D38m]">QH_$(#$w#+y y\ĴBB";D}ST8̖q^D躕V/QA1%ډ LӷPJLjwJpPB&RH;6ݥORy+e0xO/:0jXI 'pzB˖]PCh&D(Z2_#F(q#ZÑx @RŁa"9D2R/KbXy56m,SǪЌ}ꬾm` *T?OXCAԚم]xƜ,+ dlcߔrYhn.&Q&#QĢ c}ίRxyp=ݬD+Oڀve*'mzou̧pWPRD$P8qg}A||7ݕD~jx 3Kkj;>|ĔDX^Y<G__vHN6˫VGu e[(IΨ'm|Ŧ 7XD{2Cʩ{0%b-V#Kk ^}gg6;r2&!Q+ ^Y=ĭePC.T7zܽPTLRzҚ~e퍀! " AVA-G׆ $2g eՓe@/1 "O^p3pQjƔl$P~5~[-R"~}]׮l^Ld3޿&-&aKCk,EDR:@m kW /12yy|d*t0i- `SG.DN9^1|gi^1R- CTaT{R4CtC {GXUxَ/uDDDD8d(=2^W!QpiOjj#H[乢K%2y֌Z.]EanV=)p4`$D* :ݾ:x~}#(SNEEG0T$D)r)2.Sj۾Pį-QwШ 9&Ik ,S&c_wɥ?x: y\RL{ɖ @pDZo} FG<~'R`Ai8~op=%{u!@q ?otQ&P<@gסǔO-EmrCdÛU\],@Ob5%3 /3`終@Vc}E3uBM$ _xOx+ 1Gmsz ȯ4?st$ׯh2=L7E̦: OzsvS Ie H6S9VZx<^Sϟo|93~R<\Sy&X^UZz~1]gl)5U>=ղTT\“A\`55'-u-ؒ1jq](P}LFf0f=}=uzn{ 1W:(ۢM<|nIaЩ0 K|Fb)XtФ ADK!`2jxx CDApa}/*tAP CBT]u+3/+jc"U H_ĕFΙJOU:For:]%BHXK> zWz{lw(^ pP! NPʣmmH-9w8wWֈEDO燩;^ <$)((x@;)} aCב*ݓ2ҙ-etZR a]=9a':bv,;D`K 5G6&ٹFBr@T+M:ɓ[861OڷwWl^E L>ؼD<z,i~;}8 1#A*D(BrI3DYlt\wp4uy^[G3jʈ/Ѡ.[3ĉrCr"|(٘UZK}UOL/@U&9<{^q/^ʣ tx8/Wo>\WU̫%D_N#_2q@D4 2\ &Y3^gvF/eN{loHB|dۢzsj]G{RZz51xh -qO >X$]:EλQ 2mz *ݲ{zC֔%lkԕa:K!y;A{1%#Iwh{߷$d꩎7]hxk~yv3RR8&HĊ[ICK[(`ApE"LTc2{N*񈤻c4 WznZ ]7(?QM͖hlY Iĵ3&ٖeyY iY fМw" dmQ|c7Qw5z^F<?Nt0$#$MSL}nkUU!q=j;b񗹡G 24HhR!ꚳPcʭ0)୲e' "~X3InTGO8)6V ;BlsY<[ )$gF^="7>=&;E ^Pɟn?o톸܎m[zg'/(yz?ʌc=an-%. ! ďR)bR0l~bQXh6'Ag=3y߭SW>?3?W8//_{_go_w?_Wo}'?/_sw=_7O >HHҟ՟ڥ }IO @3aʏu̜fko#C_4v=]>5OXBF+9*Z(…;WhKضSׯ&7:~-+Y`:_}(sW峅Fc(gZh;B.D `:X2/=QC?_':|A,{gZy9?qـaNC'DIΟ̾c7gp V!Ra!;tt B%( ̧:@ܩ IөSkgvsDX@~7CO;V,Sm/w{_=3zkoSכg_CٗIS\}'=Ԕ|)14s: &J\DQ%<`5 uff<| {:0}6~*d;/c:qDxK/~}))!?7;3!Ņg쪇u!dБ A\{Y 69]\ӑ xx'B!C6UUTA  iC+ J_T4A ~at-vP%}J% }av;5)^,<6y~,ʇcM琧M<4L7;Ax}ߠuQG%5U=BM[@|8u ۡ2C,:*'Н(!""u/ӏ?=')}{i~> ,^*+,!z__ZS  T[w^f%[1uAbe#-J $UVmz[[tVKgtԑwbc dDp+ &ㄉ f[8CXQU,5o8]^oW@e% n2ty'@BD7/(" `/|[' w{wt~8{88tF6O\9,Ax/) ^Sdrd [8 #B]<,rIFOGP@eZv+=d|'>Q 8V+|D~|xNM|^O>՝FюGwUUUUU,$v_~,DBDDuFDcU9҇wo\j(@BNO0y}cPz: bs!?&*>t9;K`.9ww;Lv x'P ;|38T+RKSaYT$Prl0g:CArS|=޷3ܰz 8 6WӚ4"a?nBsVi2? K0BM kfAQr"wBQ]DU"vqNRQ daxg*{м1bB3=f &="EF`!RtY: :C򹤄4H>= E'C󞥘u}!x8?up`H@?w{|__k|Kq|xc\~QAV;>o1Vz7zp\4űkϫ(.A8ϝ%.U^D /"  Àn |=~W:@3|rys'YS*_H%C@׎"giH DRABM:2n$DC*Q(Y=*EDP!fo׏V?ퟤ@'#`TU6˔ I(a¤U6I vhQ H9ܝ&a-,LK [dɜ-3B>g)L:d(+ѱG|̚rDxc^xdHj^isqN**(Zٕ x' xeDy.G G10H,% E*8+"  j 3.,TTPPP"fP$-LHJeɂ8܇y)_/sGGSG&@3fTq{wٟ@k_obC%QeM\%/Z1WRDmTkѴ[%XȖ3E; aQ`b%4lcj-5-QV-cmTZ#F%dL[hYAMQcXRkF+hA,XɈH`КTXJ)m_zooGמaMDKE8c,Tbe#tA@.-c"EHh9P"Q|&JkxTӮrr=X? PS!P#rwC{ZbU9tSc< ? R  ;nm\pUӎh@M0D`hk:6ˤc߀qOgC2eJu]Pjz8NໄAO W@bՒf!1_T(J-,|K!DIPP/#yy~I{5ta)[+R$*N !=XK/;8bX@AD(4$#p4 [.X`M@d'HDDqm1Zj EXފ?̣\8(t1ШЩb~ y{H0}HѣDga0ק? *t^M @𸧀jB>"|dZ-Gvꪨִ܁u_an8ޒ>qLm)OHzy.n\ÖKQtAaddnh\a81!P@#@f=Y>}{ UD f/k,@tXS˳޵_yK V0 oz*^DUзiLAD|ne RoS~(R~h*J3?W&"|>},?@~i pP {nMWmQT)#cˑW zBԖĢ"xE)!AQTJF $@ۮM@C) 'U\aMh~#>~.>!Jh*#_}&Te8 dR&x l:]b[;7=6IΖ-!{ Q{H`A@T JgS峥1!GC?I{'jIlS3_'ęeQު?lkD&:G[UD @1D@,0uJlSV0$\?ιT%YOKH*)nw|BȁV0ɱ4}WTH211E M'*YPXw|`~ᗿDͧ7 N@  .J&on01U[kꪨ8U,K<þIv/{TA}!o7i8kYQDFm3k"9JnMq 0}|f|ྺ~{w7^aǴJGrb2H[9Hd pP>/:.|9giE}x|Gi Qa!()+'a7`ٵz; gdC%(APM4~)JR %N?o?2{Z"] z.HA_e$~COWM ׵PE9O7P6GtZUT$t,>ՔK= q({YwG<;io^z_EB=ojg>gNYc4 Qy RtP'\Y-\AAwA 3?y`|{-%5~a?qu ZH>AJP RDq_6K6t=t ѿq~ҿxC{r-EDA@Uh8WC ȿJgٶe erV ˕Tb 1{ 'A~EG,ABXy4n<¹z>%AS x h~3Z=zk_t4MVr^^agBM\_G(>QgxsٻXJYEV+ D=e}Lrߚ`GQm DP8PN/4=H [TTUT]oǢ {GySQI2Cw+Rx/O >IKbqh!F8[ ]鮼RA|3_DST 1hi{H%wd{oj jZa2] xk'WbtqEd9N:@<T&xv,'.B%J"`BHŠ~j= @sqJ 9oW}(x0\5TO!}E%l}KLKzԳ:Xh|ҧ[?n߿@R(sN&SmM vZ}ÇkRe=~+XloiObگTcua[#1^ =Hħh:zqSJ}i_rZk2ٓ HJ]gs\ngw|} 9Iѵ"sn)}uzY֦[}3[ SaQ_ NuØ}ѮsVwƋ $/Cn#jW{ԧM] tj3J,~],NKazҸx%4wS~*Y *\T nc †1u$Ǽ#l^ f;g@& 8q~U=Ez8͵G}7kʰaȏQOV=t@_E#K NDzc=Tڝ3h?oihWE%|>65' %%5V-'Fnx>4YѮ )V"O`fZ@6}Um0]w5A bnW1QLU/o3Oϲ&d۸Kq\*Up:{OyiŔ1 Y6UǑ9Nd"fՆqe@ .^EX(P ڊs})M=FlmTƮ $#:I %[$Ӆz4Hx}scHN"t OHG^ 1vTTk%/?Awb_ GqP_ >PqҠRt5v%9wjn0E)j甍a":Ec |_lգ+Ԥ]~>}Uݯל_{`$!%19ODeKF _.]3#Z|Nq7˩  ~Hnkfi\EKFpV-J[e P# PAU?f 5#]#Y4E&'"GbEaB:/B@?Gw`wbP4T&!*L!"Grp==h~5c&2ye4 tPA6|1hEI*^&"4/A} :1[S<p1,<š4~7^\hDfmc1@j +gb!03-\WQzVCGt8`У8[ Xg8}I]]`2qA Tʎ_+bPVG)'F|_f{p~8g/C9}սxe酺NGîBxB(I6WM(*7ǿGؾt([w-J]@vRuNLnctUPg:V"qpEu䴎љDG0 >:T%zIT~g`U6K`k:u󸃅k.PY )bIX)'բuips5nhT8Gڨ-A 1vxp\8:2HLZŤ^g9tcxgvl+&"PU>{}rkZxG1+ f1K1mz|-֙-GW"DAxWb Ҕ<ױPnU>l M)|/w]XmXH^KҔ7z}. Y7I|vjz~7K]惌#}}6_{D %[)Z!]0}^磢3./ÿ5#`OWO^Vfͨ#A ( vo&d7.Ne b[OEZ(e'XS1'6)Ѭb0uAf 4R{;Q+] 9 y]92<̲H՟Lhi w|3IX2“r!yu<:o Ql/Ub_|X.kjK' IB}lV"dThDJubG4\/n;.hb[\N3~3 DƱQw<5\ѧ Zuaƙw8̘CB7DK!ٶ5&0 a&g}3)CS(Ʋir$Vi$9cZhDQ);߿ܙt&z'10#õ9Jԑ# uI=NbYR(̬kB8NbX.4*s(/[o35;&))Cmx% ( ,pxm_p^?|h.{M5Jb,*ًB)*5]Y犌U*^e ; 1gFwDY0= yvYv5au;#SdoAl':HϥQM;ML1ξ- cJE%N? lc&hn{"bƶүKF {-״gXyuXbP|"‘i>1[cMS aU}m$*2Shf: W 3^XZʩU$%Q0^F}BۨŽ>ylf6EoPR`DkYbUUtw(꣯_>iA8nʉQz0b(Q#%Ąex.?6fm.U ۺmpʪյwȅr!<{ze6]>(ibW\vA4p,a@a:nd3;8:`Mv{3`6 jOQqVU`#+ѐ3XWqqz= Fu,ADlU^T߷3Ƒ Çq1WbKcc)!9[~9uz<]w,{uӱ~.R6/9R p^) ˤDv}f ! AeUMyz>RnaԦY:*noWw5@OT|dټj=sy6{\լJaܩաW;+/ eϟ4:[{^im&z.鹈ۼ˥>ΝD_ri'IHw$hX|WƇC>_ 5ߊ~_b뉡Qqq wzfi8_Ś֕+G)4!ք谨d*8أ#Q1*~Ș(ȕeDZ\"6_\wM#WˈN \fyzg䈾R-q\yo1.혓ZQP~5zR$-$!"Uܑxj6JM;1E-:{K~+ƔLF4$^ZFC@oð=FW:%aɇ<ޞ *OaU\ZcBji,/ưhM_i}/C+䜕v c g Ѧ-kgv%~OQ}HT@y@{Hd@&rhD~]OXo?Js?ד׭#S?AH>TrÄ>|V޲*6weĨ}RN#2A3]CR &,!),϶LB~Фٙ2hѶ(bZJHoGRC@$lWcVĕF֊%tܗ[fշWuЯ&)1毹(@_yMKQBAFaBQ*͈ c_9zkT1 KWY҂ծJ1-bXK ˝';{wn_6ɫA.ut3n#Rd+m{WWwR42Ļ U)8C@p$@eD4#Uv "RQElJJTnG63wq^%+y疺o˹wl9r\eNc1*XX$M{QmFQmֵaGhD)[]8db -*J-1ç),wdABozu(@@:1Pq{! <0BpNb[d`I«"  ,G!S%ZFChu xBnXZU(9!bHPd"D91# NXdAn IS0հXIDDFT!c|6-Eizѹ@@5)4DH6`;@VAV#9d8 J) apFdHn* zhR dK,MqeG1 "qG# :I) Bd(1M0( iB 92=}>?`qgWT|GnRgNR}MS:>P\f [x@ XPO4)Gw ؉ }ICc,r"ba&[nsa@3|0!BSw>d}<SHN~|n@~ztt?2~ʠ)~J9\( I"mNbBq9 E̪3.<T'gaw>k]d!b (l>:9Bu<щ9&P|xE`E Y<~ b][&.UT: hqSq:kߑFUu}F(=XaHOws|Ly!Q;>z^WL̾֯O[DpN֫+NC0pՏ@#k(P~sH@ x2pQBLh0qB4=WWX>Z%Ϲ &cH.ê,{Ш!iˑtKcxyNN>J*[MԌD"&|ʚ(D}c '*Re'dz teHa :iF2x0^ D IΆ\ - m-k<CMPܟSvvVFƃrOD!|4H6;M-*0a'i@ `N 9PL[(RsfikuAݥ圼)gaN=sV,B'ȗh:p'` h ̎ê E `0°)*0/]Wݾ;BP r4-i+!| =3# Zf }]t.KdˮDYX3Lk5M_}}vdi1Pbc8wp0jH~_>܏?AKdtIp&(,7_^5xzaN% I) $R| 9@tВ{ pn_~( .@$T{J Eީ~5gvi (_ FJ7U؅f`XBj=#Ѣ]}9'm̻g:a:=U*ezݬv{Fs0ћܱYc}]&~(Sk*c*uĥdDZ'jEhpͯ^ϫU-T 7懦p,5֩8!]RNG;ط2{oa]VO覆W)\$$K>&:GaHшi1Dzk'U|^ :> }xݡ1?ʌanLhGx =*zC> NJb|z+yxRQt ݇| C=R=]rqiLswpOܯ"*0 I>|٤81$_!M?ߕ-uqD@q6P`hv}; ⺑BRy;Ƴp'Rp=zS9DFvI w>;@dU/w;(ol궛Hh p@Nل|"F/ojMyzxyQ\aDp&M"<=YeŒ;f:pD;…]>kw{WYт(μN=df9)(tq ΓޙI_,N'i|-@^^U}__O|?i>|h>|CԻ&5xTM+ˁIs787 Y.Ղ TN+*2E/Tyx#L9=6gm^8}Cel5UU`i(m0: AAb}YhIP+AuQpDDFa S2֥NGuIp} {'dt2vi8qgt|vc"9!tz FXe3Q@Si4fpR9M胀_2E,h3!=`?闍v7k7+Mߝ&nHt` @Ё_Ce/QSb;.~!b]}\#Q5Jzq $^{65K8$څ*05{¡=fE|M:EҁzC/8 &ESO'hcVaCzh~/غT]5$CCf&T,JH2î=QC}^yu;NMG(~6ox/'tf~wLQir]Y|{9B' *t`J oL9z>omkW; Vޢ롎 8b(:/g@Ҝ7{+x/Yᅁ <[`5e6'S}'Sjmt L?}WD*j8_*Gk7{g{93܀g,wC]Nr*D>@aJ`htD<}Q >[Ԝ1 iWJD$$oPrhU:=Nlx{q}ˌ8`y+CG*wM{4@9cc+, X zJoap3~_z:^jB#|_K !f_G5N=w;9tZ`v 4CC<쇸`;)t!'|F_(cU=LG#hŕ"LP< QD J =!eq }|7Td\&`ۨoC=<} ~~1)~2z5P_'U&FXi`&`8¼Fk7?]a)Rqϐd:Ap=xL|O#? '>w )S˜c@DǍ&{ Q2a!vL y٤xmӕ"3ryO>J3P-(RQ$[:X,(BꁝLH(ƛ <!I5+dL5WC= i7񄟙ZůE3]Cni_Gр|kWIy{:Ha L2#>ɁJuD~^@;noz{NBz502d =&"FZU{zXR!d1t\׽ѭͻ9W1+Ur KMxi/p>K>?"?+ɀba7 kL{դ]&)>{]}8Cfv t3=A=Dlkd@uzS_I]KO?;8:IHv(: o+A6 K5 $Xa`,l= Ҁr~[P T6vQ8Ete }z2Zo%G5eZ )jx?z̬t`t)X3GZ" .8 ;,oCJa(TiN9{<pL4{=3gzHzCI4W琦Qqq&|?hw?fٔ+CszU<jJMHqeH3!R_K6ͰNοODd9"|#\\,$/E|l 1M==C~㎽"<O `a4!Է@+o)>}4~*~X|`|J[jicx5F1+!0рHAH wo4S ߇]WG)QQpf vZ6Q>Y8'ʈj=rJT(оϫe I&gfa]i, /l; 'dH&$ li/cxLoEn:|PfT"N訾si:O P;h{~aU/@$!_/t<<'ʙ ]T< 9aNy  ID0G)aRP;+<|Cp>_=`kȋbO|G?"lDE;w_1ρj CrL'ߒd2Qm6X{)sSTO_e|@4BBuw`j6;Cфa44!C?1z{7zt "vy zayp j/{:{ym={F}XxHo!>݅RCy!JC}͔dlQ1A7:|u?c@İζZ#kH?q3%7'fͿP<PI`SHfR+ݡ|N$i]qH|΁CRC y)$@vzg,)2")aUeUӔ]_h(SEu RP,G֌3 fA4\Ý)ˠ;De&C"}bh&# kMj.I2Bx_%>X?(T[|ܜKˠ*0-oOwU~ҩUht1*NwZfbM5!$N|k6*gG{H*U] Hߤ-"xȂ/ϥKc`<>o?c5JKc_Ͱ  ; |?Bs>^Gp_頕v#Z@a!1HpF21ģ)=vO_}N1gF^Ɠ },&̍At*f!> y *}'"Jlz'Ӏs o`]( Tz^0:Ga=<` 5KC(!&bV&B {0O;b6<OQf(RY_(::Jx;z:ۧ|GտUJV*k_+@迼tJ5ib:dzBL 5ȎՐ?(Uqw4 Oj,f ؈i3?A=<;aM4 0,,T3~ \\_~Q¯nxFiWx+IrצNRF%e+]/r0"aB7f¯&OS" `$!! 8a\q1}]'+<U9<^Az%px!dnDzu PX}֓ 'wD t篿@~G C>|2dȽ}PSG9 8m-'m𢠖` a ֮w@}:kgi<>p;X3A2=Tl{S/ {Ѓh^g=ЋCW8:ߴvY.^OdGB*ՉFơ>Lru;㻔$BӼõQ QK8 d?Ay٤sej4i*]1^6(Bc?NwD^DYTWiCA,4LCrbO_/ӝgJ:rt_3IKPzF^!Ngsd.LfF<qlr ӃЈzzr!:sͬ00g/> @%6wuOt'x=S*xҳ9*p'L RT^F! ڠ`a@0a{f7gC `0I?{*2ݺމS~FNns$JyDZ H\:H&>Kg,0r (2TPB0reTH#gď  0zY;9:3n =S=:D0ht17ހyf~qǿp;P=D@xYLz!0a) nNLpYH7MmlAhڴA4lhUin9fG/!8ÉCw 6=u8@yasF-v$u%&~=$RNd=`ot (d(Ĩ8Ѷ*$OmUwjXe LqC_wDdO_7|D`&d[0=A8iĒTׁGJtGJWő|C0N{{EW8APAQ?3/Oq8n ph8⸝:VLp$yl{O25F-ZZi+ϻxV(懰HB"* c=ϻ)> :kG`{sNOʏQ &A@?}rt6`?t?Z uA D>P?Uܷh8}_kFQq&X`'niy6 ~?p!y:኏7_!/<Nݧq]rU2@?"go"?튚:?{>!!>l{۾.?:ϕ_Wg &$zŲq 5"5ws,knUb &˃l$2ke<:= _?ν`|#nH?C2s353Bߪ8~@ /ҁgt O!74JC.iz!-*Y")yGT ? F$t>;u/Όzo"#\̺4 I!$虨!GmV P}痤%Skf&Yoɧ[7~p6T)D#Cj ͑Ԧw~%ZtqV9WC }:~CESAk"xݰT`DC 7F d?C`Ɛ-')>~tC=p}oq3w~_?n{gfw,.]ݷDٵ\Aa1l2CB:Fƿކ;?oQG 㟴WWW_zrS͙'@-iTIlS5o]Krh?|?~}]Z}dƋ_?{֓:/wB?FH`?+5}hWci{j{]/T/L'Ghb"&@@mCp؏4Ѵ*DA$ Zh"9 c$(("nV*`D{\Qlq//URr`b? ͊sߗ ])aRQ1k !!RkhϗD|=B@GLa6UDУиipkZf[x[E׍D ib֧+'hx&Ӂx/r\jRprZ"RG:bwAL0& 4#ԭZJA@ ^Lq8z8^(2ؚe[w1' sS|KiU1i=7]"`_w uWp| W=ȠS=ùD@/|=6lSXcwz p0kE*ȧ!Q#}Ә?=#p}y,'0@uKM})谙&cP>N?'Il#¼f'2MΜu/|Jy<AwdЫy ?D^=OpIPaEUzzrWUO (\pC7:U*@Ë&!9ͳ{*"=9eH7װnG{'A#gg3/"L#dx <=/L5kg6{PקɅ1 Pg2nsEzjOheܭ2ÏUF|̛RZt0v+%@}*o1y_B{lC$sdtݚRy0ψCi6]Kא|N٣aǸ{O"+ٽ$ǁOW}y^ '2Hp,BDCN-*PU3١Lm'!h$C`dk b7L*H!flD!1SYٍo #)=+]%n>M~ϻzR'$|gp=πCOwQ)R؅0+N ,uy' 1h_A|}ϛc 4'ʕG" S0ȩEzQ#ϡ57 7h+?׻ú} >'t'*Eөh)ugK/ww9() w9}{0x<<OvWW'Gcšq|;sM?1NN>O/ʗݣF[R>rt헁Խ#/OT/)W#y?JC?>/)А>ϧ?$._H#x)pk|}'acX;A8NYIwHH˄֒=qLNZ@:7t.Bѓa&fIe+EM3;LPI! '#)b]lUSB?`5M>q G)?pMoo3ZEqc_+T0Evïp8Tndbd=(ʊ/OӸT;> :yiۣ]hHSuVhH@t +`B\B/ .!>]>n,rS4hI$~Hgz|qI9Y7tE&y'Q!$bpt$'"ň}B,KםRO L;'緽6)P;׎=wBD i0}vRQ^ {ǧAK:|:m5fճr$hpY&";$v/!d/h݆"bA>SJQrgξax0U95XrnT!1S.swI/|n}xEq$v;|3y-qms W5*XUilplsʷ=OG_܏'ó{BvPXN'G|g =CrflF ԨV2>C"YSG6'fClq:qԑ)v~>6g$AՅ4``*X$xOwuy zo Zs۶L' /btO$/Y('G4z}l3q!d>B7Q#L34'{MU]*AFPX,}sۧi-G@fE⍧Cl2Qc$g'0AKh!ć sμ:\<"w|GvaY{Gk5&h56s\'"zC2YnA4GmpiZ,QJrUzkEÎ4T:}L[TlJP pȢt{= ߴ>-|V.F`v>96w.K ~=0xvs9UfG1Q;YntCOI41&PרK-%ƝͶho3PF5,Cj wmIwhJS]P2 xeEˎu‘@|܄ˣ/3"uq2=1t d1b?w8=~>j!Oʓ&;抠l*3Z׋teQJAⰔpNbCvU0vSP{ID=_Ql;$vN .^VPSTiϧaΓP "u젭 Fw @XDROx~zG:-B6F5덜I li#' إ$;%T"Uz c3ֺYn %Zx +ȫqNi=^kjf8\=ID%I! DP<R[h#J TVI 7/?gn;<)1vH⫠rweRJhTة#E7LAPBu+5`UZkBjKw/ >cUmTɔ>`oMoUqOM=YT+*QJIo" ,7hMVffL]%jC*{uITl~{#W<ЍEwZb9qRSh=ƳɛX瑯CwUwբ②^UOJEye+>+^ʸ=qC8tWԹl~*yGFCXyOܓއ$O $i@jWw }eV4y`pZgXG@?=6m'Wtp|:>KV[8^oI0|&߽|Ǩ'u:>4 dn{{(QB|Oٜx{`)A^6֤_Q<Ϛ|4ׇT'˸x&tÍAT#׾m[J"}-" ZZVY\W޻߽}E.sՅ煮^z"OT"GB h(ڤjm*~K<.ȕDQ=GDTH>Qj]LFZ26Z쩣ht8K2RzxXBpگdIM䷽!Ui }9ϩ:kFeSAEzFNyڧOScS(k1ZLnܱ:ئ Ȕ VhJ+yB`Ny8O%9ض/0厗(IŁeN00k~?d`ybн! >޿> Ԅ^T}Qf|5eT Ћ)^SיReZh@((sNq8gǩKT ((2FNC;bXntd@[Wœwd85(MT&kb+Ab2ex|5[(,cle Z1 ז 968>.~>FTah='"/L5z`Cšh 2@@r1ӿKМ}4@y>( 2c/oyt"kQv)d').%KLVxDkTNUEAdxuR*b dNuE؃ q1.\enGgMk Q=̤ HUґGǧĻYR4ȗ27Gclޟ<Q]>uꊞ"Ѥ%Y #i)90UB U\Ut{S1O)T@t {l88,Ù.~UAzŇ*8#}{R5  OdE"N/!K*zuA{sH:m<= 2 '> =8>w:yzSfpLOg yvvWnY9' Nw~<=kTS&IQOȱE65]DTha ewyac/BI\SZڷ,UE޷t/k]f69{N 0„z M ׎΍!ٳg'=NÓ輦CH']LBG(Trm!zimU*'*Utdrp؝jiNG!XeXo&@zĆcy 4zv59Ye%ꫲ!܊Q.Lru 21gY{a8yޥ QWo ^ެLNσEV^2%ź"J%aw$##H& (DLF |e=Dy ]3晪l*|=vKu*Lgu[~ĩ;V*WGR <<UPN3 (`n ή;3ݘhu-YtBQi[j-VhMSY_;χ!n&UUUUUUUWOqUURY? XI=kgA]g0{8tMܓো9DD* ^h89zɖ2bS"4Cp)pspNJg,>3gNoouJ&OguYGyTy ɼщ*][|[rT+k&x\*&aAޫqMա7>s/2'_=:bR#Oi=9iq߉ʻe dAA9wL bڈs~XY *wdk*i|ʰoz\:^/C"S7JdDѿO~9weB×G"쪵[U(m)u <h6TI}Sy/!•ku/U³M^Mʌb!Bٺ ~?9c3S3ѝaT:5eDoaϸ:I= h#KBAX=P"au yA=Qx_ ł@jg|֌Ni3{|XT6 aL^E)H\>j yRr$D F`HW*Am3[ׅ l2z(yǓN鉄LpGA0d*k̃\2B F EIw4 O<J@%&^O)j,e~q;ACwN yN6PG0r@>|S׮6_J|l|u=NB;^(xAFu <5FǻdD4/j&PGW~t+񲮵i:5A[T\f}Vdv@vMT`"u6Atק=xOs=ONg1r.Xz#<$tW7{} rF CUCs\4R MiQUhfЂ)./> '@6cY s0UU}0Q^n#O0866@Xy!0_G׿$z=^ >zqGG! T6?P/}w<}{:TEF>Y!%9Ev_C2B/xx^ Qq<ؙW&4aq )A"& i_2=u45K6!|ANzDBb V Vq:AMS>Oy@)fo3SakXˆ C@. N|SToZ5U2iHXp|C s@^4!>Nn;="T,&Ŋ$&mAb) .;6?)LNlCt_yKBBRt@ L@>SD]q7O{x@8 }l" "P47 Ef E%#by)t2+*ii,iJ ~0}zOTKSƑ214[1 kYfU)/TnYsF :g):"xCb`&E#N.Mg;mStb3'TT}BѦ>RJk?WmyKFSlcjDB҂[ʧ0sABu>6:WuvQw ʢ. /졪 1!sQOt_'z?UWA?өnU A PC$k#ݭkK }G}N΄3,Uӱt "ed8*"\W8cs1Ւe"Nx7L戛J+>ڛ)!iT0n4\AFTZc&3bKyi 8 -g,: o$l (!@g{Ois.l.$-Pd@E*mQQ0M#$u!1S! p^$߯Nk?f4hWo.5nmiYrLSry^U&e&?a I_,2]Ȉ ev&UJ?U> NQTR,oQUSi!(RjZJim/}21 q(–"(1OkNRf[cڋ-6lڴmF2ɨգ%2ͬPT%b!Q T?L*8'pv7!Sﺻ_ g{ 6QVD42k9}j`^r C&*hƶ5HkEmFhj-i%@8tK0f^7nz csnj;(C((PI>r@j|JR%(,F 9 t6B'xXŤ(rc0(eiW!K dSdi/#0DcEnL+ $7B1 lufh2%^(p;zS ؟BH@S#h` Cd}<}ߥXO^tB(DFFid\Z~gfC-b<uK=Zҡnm( .#pF(T1 r˵qv]jcLf5i Nc yJK)2apP2нDhA)" 2D '.u!.F02D? 0TMHŀ\;r;Cp z0Dh {2KhIRj5IdmDmOVvi+YYiJUGko,?~8c#CzGu>>>O007IކM(#p~hKI"g'j}&W)Ue=p&A1R*QRr\;ud%>0ʙ8K{{]ndK"3{ Y!pCЙɒ&pP_u`W2 懭ΡHCCI\7E}߿ | _{DkDWëTux`#LP%D$Z2;]tuv!CP,Nڙ n!㊠$޷俞ēzE)h [UhIaA&4@FPN|16e& Mӛ7L'+ORjKn _x'9HVFVq&uqTΘi!56&6 W2ZY/N<:*NnK5 | YBv]Ꭹ^j޸ Ib86^y S¥ u u}!?QMxfo+ϗШC @|GN3t<uDhYE~[>o#;v_·䓝~9y nfر\C "qTb-*%qݙ~۔_$a?gA$X:Lm9b v$>^ꔧR$&"D4%h TdQ[SQ*&F%"1j0 )9r -"L[N>'F@e_CKѨr2Zw5<49GB'R=Xh1P{Bfylu~R#E2Y QQKwN,}%B?w2eb- 8nl+\w 6(S"HE3b BiƃryI/c xȞǐ/eU)#H܀/PLH:A҉iT8)ٰmTe蒎}= ij|;%1`‡N'`` |:x~3h&c*20B8,UANݼ?fX1pz`x,.A aG}~GDsxw?|R//p ̔IMfθ=rS0\@!*wHU"m!!(s)c9WO^*:kh {!эd٢a[5•ƍ+ T!LB*@y(%v g2I{@ыE! й]uZdpT6oU$⫂ěFRĴO}d?#BɊfeİfZa[aEmѐRѥ*">QQ0*}&tz|+}!Xcx|=̇|vr;⌣zi9!':RN\)dʺ ~ח| ؈A⛐(TԌH~3{-`ޖ]CyNh Ix-F>ng89=]L'̱. 瓎 ˥W༓M-Wo!;H6ߩɇԦ/~D ?Xh(` _$v>R^uT+df_\bBDa6"$h˨^E)A|J845S-ELb"RiLL-2/{םRNɭ"d΃6db+Ș: v#ikm_»C}YI8Te@P8:3, Wϩ&WN~444ˎ*2 jѬ=tʜ$+ƚJUU{x`,/LZf7Zcs}+-R L&Lɥ~5vP"$%ңqQUc#`i[:S]\Wޏ}cj~3Ӎp-tt}oWNegX<Ҭwd6f8}M6 :Tr2UM2:وꪍM lnoaNQT ƹ+U5Sn'TKӔyG($7[`h-e]L"*D5TaaJaq%D; 4TT[Xi%T,2 tsx.J!բI+3dD55P`#!-zZ{{}+_bIeWGY5)Lpwwu;V-)MX8D4aA>8'*֔x> ێB0a!%|PLIN;20$-_h&+*JR6μ2ݱk#n.˪]YN:ؤ% F]UDv\F@]/wBӓLw\uQMFHgSC`{|:hS k\=$39J]Ʈ!:טد{>w(屷9x&CS>af])Mmk|kT($DF PMY 2*o3DF1* Fp #_@_Tg"vIH1D6dnjD4Ť,V314g:jNbKS6T|8b-J+BoS_m}w*|@nm6p+p4t30^;p4OEL5HQ8 SP̌*y`'0lx޶X &= QcX&`Ш~Y^ϋOz~)\ J0)?W`0XU_5n Yu(Da2RJC"YBd 2*,Dm(XGqZw%3QL/O |d ĠyR_?nes |ADt}>.7 >\p"km0,}9d1.VPb?씘Ƿ3s6jhW u5f?,Ǟ3Rky5 ^4-y< 6tmgb#R4hkpt̷bc`vwYrӲW\n1NФ;3qCG/f!i V=9Le0h0Ri>FsWOj+ViAe:9Xq0-m=S@zϏG- 08 tD49Ͷy%{󴉂E(NξwݒTE 75&#}&}])'ҾXb$xr0<10 GGM=#JqTM&sĢQmX%Yd,p6^\;ADS)lsLXZ@n JmVHF_+ ѥ䶱`"Ev봗եMEf2*ɤb(Ÿ]XJhjEʾui""25 HUPm2r DF@UޫRQª6 Πirt]3RY"NCW?L\ihYlLlYlչڪ[@_:pp,l{ i)"m˫Qͻzސʪ7tyEe6Ët%Taa0,"jz%&jDcd`rƭlI%Ȃ""8MCILE0-UnEjL jb EٖJzx+8pҲokġmچkR.RMp$B2r 165`*eʼn;\ۊʄhjSkuhmyul4(-&*iW~/ZZ4R[h(V娝fHY+Tlb-KR1AN)7%- 8f`RTuLhЮ.iƄ[;%,cm׎CY#FͲ 슯TNtbLDRX#LWcD]U%!%,Z3Z:*. U Ü_hȣۨ}wWqbݑ) oAM*L\a̜ k6|w#qE(EI.+4LFDn Qw`k"Ɣ.-59eBY2L(&(XPYm 鄴Q',^ ߜ^6Т@Քp3D'w"YlܛUDQQ%7K**wU'\2I&eͻ nþ`̢ fѰx*"b:LQ2xq8㋫BFeTC:\: ]Z_whkK ҧlPJ,(d T5ICضQ^-olIB@0\00XI>ּulL"z{=!XWZʺ"‡r;j[fgy\Gcaݛ.i^ A?),'ql0a4ʝqmTYLUv}'g8[:T!(4Eto_L13)YD?>Ǐ5I=,}UK@רJ*RmDApVӫ3#뻳GFɟ&+@bQBNz|,ڜx)yO>~CݤOtم2TD?þ™^NCJЫ|p̟ZCd K$@<}&Qܯc>'НUr6wD608Lk+?\t=]~Q=p+!t:$vT˶op>|oF[CZmZt+KW2,c4ߞɧ3c(}uhgAEG0F1:Om~R󺜤`V!d4KB""w'ⷶpWZA萆hqU 3v#/-}'ЄX)I@H0a yHDrW}|d |gqq]^uQxa +QI%SM,Z6^Q'e:xؼflɭE%Dj*TtyzyPk.үkBMfܚ5LQkn1R̆ (3V+(ZX:LԶ&"E{5S+wƊ Ӕh| HȂ %`po]ovjCT*%JYx BģJvC# Rӵ\7s+6ں])bw(}e$ ֜/B>w=5zNv dK{B83>~E54>9"!&6ֻB^"L 9'h= kyear؈f]B[Cך4@83,rJ5-uotns9cjxTj)E! '*CBK1ө&fDh4Mfgrxj\ ^^p@>'K=2Rד D"mJRQtr255H<"^ c;ėq |Wn($NpQ|=)h[!a#ISp 5լm8n;Sw[5xw^7Ir :q <8MwFzנXPc t/91(A.pj0M_y]Z}LٜZ TUμ%@Lhѭ] 6JB|4T6 9_i==BHݶuĚ߳{R%1ꞽ{?]n4ksŊYMߠkՇj_wޟGoYیkgFկPS{"R*=}|N!zXl6wK;z 5=/ x%,֍Nuxx[ǫ-zXҮj>_MMw+45BיBg&ir ׻btt!/kӎE !$xn@;+ WWJ.s'\8xc'Fg7%/^ݔۯ@'H3px8'k EP5" Pu00HL`:G%T(4!2#F0|hyEl( !S<'qT(` 0b3I'sld-se(<]E{ӌ|5i5'K6xK+>Oc;t}aur3|oY|,xA֑{[Rza4P]m Nm D;g: ?+L'=&vPTyͬ1.j}hfoMobx苪=1?]l#i Rb$;u:ZJ[)7z"@I̪,BR\}(;oɥQ$h\vYD8Fg6Z,βp 1 "DFтKd" _WnxVt"A)Fu$.c:J03ֈAcb;n[kp_,wKX[\5, ɣq )U~݈O.;$EQE>1(wPq4 ٮhuA{4ĪTDȮ+4|Y* jKY Q*rl2I|'+!vB r;*0UPw޷'vw)sc gguDty;^",¼)l^UBEBNl_^ ,F@N c <5B]wCVgTN98 ,3;՝|Kp/tmPNi&*7ةubl"+kZeG@23ȉ1-8F"qQeQiMB0PB \[T2*2-L*<! kޡ򚆈 zV15s03}ʔdS Ig6c! J–` ]c871ś!ؑ-J60VZr5}u G}:7=3uv+17:a?AעT;!U| ]ʾRB]콙z(|c'>M~^9jޫ}n*!(*H|"AE&X+: l+4\VX6a(ͦ( /-ƃ Z0me$.KZ0r {` s:^:z۶Uub:Y4+OyZAZ^b\n0 rH;AScwFkY0eXN(Kp|6墌Tb/!(VəuQȸXܵИXi{`BMq#yߧ\9V^=|5zT޻8`:=#t&eHHƯGq L[E냚ޭ%aU,AEDPKgW>lh2l J9YU \]p\T*Ds.T_4i=6sF:؍ِ Vw`&!FD`E^ ġ!Х,Jquώ.ۤ Nv1ShQř_kl@`Fm:iJ ]Eֹ(|VN`A0Kd4A8 YRTV>%fnJ*[fVN{̸P\>Iy#J(3yWZK'ӹW Fo1R͆HNLRv3 lU]udbb́M)vƒ գT0N {t:Cv 9=ݧ hv #8(6_ep>Tk}Q?-Ǽ,݆(u߱Nu"ɒCCHBk}q ,˯2eTeS9:ڙۑ:CgY1>fv۷..$}- a ާybc'99pbO {a2MPq 69#!$$@Lx&k3HzQJ!0=<}O])Y溪"Jb;\ϓhٟxUQR=AS<<=7w9>vd\M& {ȈK許̔XU>ë0\O8Q Mss 'xT5sW]#X EFKuDsz4Dh*hV{ J5%Eeʷ#!S80|wf]w͊Ҝ#e/ZG dƈ,RUcM*APRniNK9qm|*ù$pەǰCb̢2UE[PRujZB)mȧsOm.yP@}klfMB$7 Cp̣knwxL{CÞ޺8}HY[zh:ۼ2+iPiDPM=.%@j ޟ^߲x>AOU" C)YO NcycX> "1&uN%PN/VxTj ^B 0(,2{jl糉׊pvh)dm`ң=_ F/{s^^-uuܙaHQD rREZ5 H|wⷰ噄 C]&tl֕ =ٮž YseC닺H+׋\e*=)w GYo梋GFx2 0IXٖٮ40y1o KQq${:\{P7_3Ӫ|!z+c%xcJ֘ \+4q # nݳe@s<ąw<=Z|dGwtw^=b ÞШ/'kGD&M60&J{lS}<'fMVMgO.PBFRBH% 2:B3TfTmv:;Հag뻋vnϘlGrj3{,:h}WA@En:]Q˭1P{M%10}<v|GG_- U *T?Z/̳-T un$Q㇅Y& "ϩ÷a}%R%Ġ)ðZqSGN㚜4C)8:o{ǔ} C=Ncˀ8xEpx8DBLH'ˬ qQ#J(d020ֳY,h &VCw6$Z$(iT@ 0*T5i`I22`r 0- RhԬoŴ`1"B*Pڒ(̄R! =@40 = )k~%` 6gdXjhTg˴z@tpj&g'؞톎H<=BFAi, 92=Q~C|`SXN௔|Pz_ 4p?.ıڅW+;-D,c&::m:GL!+% 'ɭ@ZL#)F[bޞ*fBd' .%۠)|C87E~Vg?.4f7= \\" ެd2>2!reSzjǞ۾'뵸{tnZAjrAvBu•Jy5U[u; Mb5*E+p >GeCCQ/CT_:1 ҈AW/IA'ZP6T0A ?N8?1P?TA}S!Zs4A1yՀD6- NT8j al%Sj44h1:9!Ġ2@s>fO9~ؚ:pP |+{rƱ7:d5rdJK*E湢HebR[%&b;/3a;Pi琎ٶ^AK&_k՘hc6zw]/3^d+IѨBV5FՊz2^boխs]2&ays-!B&Fz.PQvFh@k&0nDMB;%R_=O;s\(v_F҅:H]4rAaP={a,8M~LU:`8hvN]4ZWܢЕQL,iJDc\}#U ֮Wۆ6P,Df$lfک5(q;n@ZN,oEjrY3uJbHRNm2j5բH`±z!U Y 1Ŷ2XVNq7اHlɩ8&BC@ [ 8a>eH{}˅̽=;E3X~w㼪""'@S~1J[KK.q!ϑÁ.St29*zth"S!\tބ?)H!gӄ>\=N8@)&Ǻ>Ϧ?-CL,ѩ4j{5Q*P tU$jTUcC%f<`V(eDTMJ`ofj-1(@jjW(QӌxnN1ڹ~k0N2Tt2z'E<:p(>$ps1U㞺6tc1\Y%H@bӈ}(fZZ2QUuȈĐmBxUt pX9v@fTF Rב*TI)V%nzYaȁu̬(ƞ'H O@ןgGD01HM|“$<ꧺ}Fc=|c *tUu{3_tQܡ(lO֨TGp : M~ƛRB LdMU]l*)GG8!EHDD% ;G_O.߈_7FmnS~Ӝp4m:{~{.;L!G|!Z^Rd$VtSٕؔvB(uq/Cj pͬ]WLx"\Qph;kFԨ('b"xLFѾ~AugiwfoC3v ŃF!R.aݤi;=K[f\[ ύbXJQ (yc\Eqx^Þ;v·+U!e 98Sٽd,m'M^Tj6Y;[]Z}[C)VRCAuvF=LDGat*ٕJ b-D4ݳ?`[Ll^e-_x.|Wd_N*2LWx!m'ӫ{2ض$$=xަ/F M`^ 9 n$ag콳x幽bt*ZZRnvGe^3Z^9oZ/NB4ޫ'(Be,X+o34"hH HK0GDDv\ixVj,M Nco>e] F*Q CI|g!7mxk[ĸNF6D@a04'뇂< ʚM":>( )'JO $& !#qub Fki PH&{Z%t6{n|4ږ0CPܮ{>;kNuņd(1#<9 y,_Ǒ>D%+M CZ-hQ*"cEVZhQ b"fJ4w]ENOBOIڐi>155Z]25tjEX6YnUtƭ Z0*t¬.2&حnOk%&ɱ-W"Œ1 K `Ce:d&Or.Ԙ !DF6bjU*Ze) ߋC 6)F+%%JK-,lkDhHCiU\-/u~3׹ͧ˫NXX&4A<%*x@sl`d[BҕejHC7d9K"U*VXY &f𚛎II\Y-cchŋ!RPdZi!V0@eQCdă'Pņ`R%d/Ki"V^YR4ѕE&lw=v6zq:8sSh>Eqס?BHYw$y$2 Μ"/9]bK$b+11?7=v2t^ A&j޶4Ȍ K|ꓺQ P%/GJVY Q`Q: ",0ˁpUy9ɪmkRGg^i2NPi3YG'N66252|YURU~y۴O*A5fX<.#1F"dsOYY7>4s}q7kg t>*!4.'ɾs՜Zmˮ}Ta8skW4q)<7&[]H78SQ*vVHb؄%F[=Ƀ7"kLlC,9G{ !3JlP`p䕈B?lz}ux`CN}{f\r:Tdg[+9=@>yLgB"x7C0&2}NrdQA)5/cmsa,o\42ѫxzwaqUZas庢RКx$xJ 'kQ%PX!G?Fh[8wO\oIREL^h2V*UJJ*԰4gf5@Z| XkU]h]|:ki sskhk{͢! fl7*&(Ipm݁%FZnG8+3qz4DGyu؁F҉V]SXspA`z@Xf:9bU{M$9vDhHrP`wPl-ߢ>1OB!$|~)~PdgC Wި8>7[o+}ʹ tȫsQWVhy`E B {8xI Q5>(|z? <ڝEq[̬c@7׍Ć ">TseR;H NԒ2,tgQQ`iղ0X4U}59 T6@: Y!FNY7d&WrR9`>qaii d*2nsr8f dFd]*8Y"96QWuF7QclHJ'<=ySFN$3)N$hS5& abv'BВLSd.9Rw=R@s1U`8CY:U̡6} mRQ {hv;Qfah0yHh;y0Nȉ 7S^* 4ȇ] ,C L!ߛ(KVv  --tZX/,P\[azQ(hߝgG7nOx;^f1]-| j GWw/: ;X[E\=S@Ie(*(g(P ftTC հrl*S,UVB*A4 j9G4Xip~Ge f +`R")Jm(5 d*)2Hf"YNCYsQƓPI?p>MM )۷nL5BC?P3}Y\O@#Yd\g Pӊv9$Qm5?tiS,ڶ$V*RmcV&-QS6-mFQj-leYF%='"ACiD%M!DڄuOXۥ 3iw {6lIISs|6;VjLy&u/=F۵S"H H9 Tq' Oi2f;I/)R:J:i%s][v)  zwEV!S03 ?D-G`|N<6^&Aـg4D'\FMXܺhX07Q*jR +5q +@J3%+E31m7G(Z^}Zhd[r+pUWa'CV=@ N?f':~͚b'|0gV}D u@[4t@("Q6ϐ4զ,%!0%4vڟ^,L==.ʬ:}h:?msQG[;OS$GQ']Vd>[v<! S; >+y,g7_,×_ڨ=;CN6 )l5~gыv<hO{~ (S>~R felFCNJ~9ѻ\'0!pA .#kw(RvPfGc3$WM:uH5qrMH@ pJ^!L!2Cd*4>0?7l.vxD$&QHRAPʄIBjWP1:G`s@:wq0oDRS@hEQ44R5Eɖ-k%5!*TC)p*;,LU5( *ŰƄVEeM*nt\sr@X{2Ԡ2 PTRka-Ժ˻|#[/wh[m&1ǡD*=j*ą) VVĝQ%Rr 41(J]0ぁVWZZ*h8ki")qeqMfjV*LEd'g[@Gkd1LI`H:EXlSIedÍC )<0jFjaoAHGӎS}0p4ŦG@0E`CVI&<`/*h1 t 4*& 9uTvк*Of1= ;+_R6z܀psĪR1 4-ӀDAT&A/2F!F%;Bb@:x% >1NB|hcI"!ljjkoUooǮm`9~^WdJ˝!ΊkE!~y+/!T!)x("~S, GBϙ78OBXPY2EV"D0 R ק)H *3d8(Я.ž}q>G3CuxCeF'`}uRj&>]QjS)W5F:id_/;"M!?y\Ep@9>ۘ |<#1 h ☀C[⤯^z'vhUjM % .a(+JfF#6mFU*/<>nƪU:zjb#$%1 nGF#G|S؟!恁;P}%6L!1,ץs~v-";$GRk05cihQ'TDagFFfgD??{^۰7ZWD)[juK%9`0f9?\X!$.tr BvhލyVn^TBZݫ&w:+.ܥ/^h\Q0Ua66naH2" 4–\r] !p DˁBPJ%#`BԔTJ2b#*AA5* VQd*R̥Yq2"AC&dцg6ۺD;=2e2q,%B$ (F'e Cn#EUb\ DƧ,̳x48@y+BP#Sb1nUzC}'=n; v8t  ާq`e_i?=8p"lxѡ^1q&6xx8PDH\!aC*ʊYeM a1&s|s(D2aHiJ~4M']f`2) iŖI)ݺFjTȸ1NeI0Z"%%,,(QuRjLAD#`;p9G[f)A5*dR;pq#&\C=_Ohܜ@c#0HA - &;xƩsww`B#waQL}2 eY=cNNd꧰66&$!Qs pqr:1LzauA6At(I P$~j`d?``vw(T~|P< 9`~?6*F~.9 !FQ6=1 BOnjO#*$T8M@Z$!<)B[!1zJS<9pDrhi*doKDgں J& ZHv87KDIO,&EU|t,P@R TBF@I6Ѱ(}'d?D?>E00='ӴzJ1HJ# (dJj$[c`QQZ4UQZ(ڍ2ʹk\ bm[EXflPh&TbƊ" 22Bi鮜FF3 Pp'@1hЃgvxm4 6JڄWL_WXPCD kjLXS1,UB,' }4cͱﷳ!|/L)/ޚur;'+d^%̄ RBqEVV"ٗ3*+[h(YJ\U/l1Y(,Yb ;@sMm?GH@]s4҄BTBP |vJBQbpq3bH`,0٘K1IF&+X`* Ν!O{6: _x=@Ó=iW H%'AQJ+&b:W7.[ňЇ! !Q٭?1woH>ҴP,"RbJb#JPu<&>r&c+/!PHJ𜆽h4cLuz}W}U&) #Yd:u|u띴hH2e 8̦} FҊbr:٪ɧeՆ=orxv/ h)SN\Iۨ,Km xNlٻaʔ@Ҽ,Go^Hf;GTQY]UtqTB W6aTQ ] mAk*]V܎Sd;w^#B#KuqW[+lA ЛAݖIPكD#N0=*=5zla;-8{`?׳ rhI:59,K#,nj5Նb8eg,c;]]Kr7HޯXڊ r*-c*]SmLDc40,f⠺m2Dı7pE*`H:BxXhQ530ъ *H&p!š,K]VpAA0_͸+Űc,$`}(r+pѐjS5v#R;jGB!nٺjVHgDL"+>!\aģ|cUJcjqHby*_ jG kb؋jU4u^o{+pFB"qpl:5y:gcYRIQKj ſ.:͹ YX⛦Iv,㬵I]VdF۶ԍ&Jڕ7ĕ}g8, M_ۀ(}R\Lm N6u1C2R6ƴjVww`]M΢I+wRhy B,WĂ?x~CUlhJAR j5"SAPչʹdeS%U-$bZMT1ܭk6jV[hIUk 4@Д4)6k5Wd J2VJU#BʭەZ$h22EJTL9ҷ+\ձk\W+6s^W+yhko-MZIC_c _ϟߗ`r_OS ϑVK]ϿO(`LB{>,0=\C m ?Pao0ԓ2IA P'">g{_QRW!F%$^")y& ݟ!K^\RIPdHVC6cb%BPKf-'35ERҧ8o8`cu׻\&َ<q VoZU+Zjk#?)Y4Fc$z;S=x=$ch_ۤ. 24O*8NJ3frN ԄR8I#U5HR$Jjt.T=~ H)o*=rUPœRY\[vCKƫ5UaV]m@$W;Fwv(HD1+ ,J̤VK*\2YRU%$& <`4M[~,'<Wtp!]\p`sC jeIT c8 (D,J ߧ7?-\흶]cPw[=s85WJZ~6jqڊ%<$G5˓{q/7}Sw E6\)0YZq^${:JKoI}O[V 8Ocn,"0qtY2cX+VY%i17"̵Uㆻ2]m'3[WŐR֓ћ}q<p:yoӞo,6[kmκgnMDI0քb\WC Jb&PxM erb>:_ 3~յ,^촏*f|as[aQHlb~ OY@,8@$ȥDSQ˃>1ߑi"FDP(iSh!)˜uf4æc MYBP,:Wr:MF^wiטHmIibI>˷K|2vn5nҲFLbJD5̺Nrm60!0 p}5u{{ n%dUJ(&LIfI*.]TM+ƹK!, !r굆S2&2R<7 `O1{\~!+&--gx` =hyd G}'Wϩ *ݎ/mty3=%k[*W/\R jd \T=C Qjŵ&ѩ*cQFLplEcc`e1lTFiQbIVŴFUͣb5lBZѴjJ?9>9pQ,>"܏4FC O?Jp{]M㿇ʾsgB0+ ?i&ϩC qZy{/~'o|w.͔r1mJE H8~>%LhT#%ő݇o/oS,l$>TY/ϱ'4ݔyM#IB{p0+h)L-SB%"؀@E6uj*0$ l~j&ɣC-- TLʘ2hTj%L(QKojЃЬl5V™,ȋ'%k0* `~P=>U|֗f~^Gڛ_9~*%J%9%"1((yx~ 䬜q/woYIh[k4f*5Lj6t.UDԝsZ*R]7Mq84;E˰gс!q`P'U3{cC4HP$(c) @Y@SwõPlljLB4/Jj3Aݜvv`JB?bPdڿa5Q;*h7hYxo; #IpDAc%]k,HT%^؁C2Xx끭x-B#Fc6E~g%m6sPr b5٩ɵr&g` C) ?vro X:A68LK*+55%߈d("Gj`t2[WPz j|S`?jͨd(pu>_7uS 1b}#2 FY!Ϭ'!#0y{L3+K )H:% 4আb4rP`Bz|bO4NZ&cߎ bIÈW.! Yx $яFtF<|pfY3DJ{bdD OXO}}'z?Gv ]vs}W_|} b" IɘhS@Cf4W]ȗm  $lZc%T̩t_Z Mi72:ʦj44,.6 #I6KPRd\-դTT4Yee*iKh̬Lpok%WJe+lJt:7EuhVM` ,IrC]%YS.&Y.0(Y kFQ  [Ƀ0@`.crTR"\:#bFSN(r44c84hܐr6H@kMZEaa 8ܩStH{/Q }״-1c PeA*a0сUARC'Xke]dnf\Jv]i|ۯ!1I6=0_f+P7uAPsa<9۬k7-FAxf1R(@KJVZ].SJɨ0ptFfJ.E{{ mY% ]jx=\ ;B,/cr Y1^Ypx<9ğtZ6khʼ IP7K-F=[4#9Y=0t躴ᱻ%U,/LiX2eI &Lb AfEaEEnS"zof)*y*#! ƚ+cmJHP-$2wh뻋IBDU1V*-:[369Bٺo4#eGZMeDmLf mdq)Xbdk0uLR)ff-(R uH4އ8ɲf۝َ,TMa\KS/ Zy`^ȕpbteTz4nUTj p]q0IaI5C5t1$l(QvNXAoYvXe$1JwVqsfصEtIW ! 3C*%H7\' ;2X$' 隸"HuPZ+$t>zJVëeB sR(LeǧXBV[Qc3$ U-]q^n.ml13) eb7d2a`X)m0a)*/?a뉽x= O0;WI*Ge^J}pZ=VM^JMDRp孚 &K5M!FjõTJwPڲmfUA2X %6/O#IF; 7fBS  ж'E1I lDG&iRzup2@F á :H&Q:JNHiB!wCz?Z@G9tDhT7_#i<}u_F4i -)]T_%@h7`r!T৸>IA}'@AH,Dڢ8I_"Pi5< 5Vb! m{BqsWH5&dHĈFb;-Zn@Sl86@ƖApH$%0tPȁ.q9_:OQ._[M5:FRezZ 2C4z液m `"nJ>*^[Hm^X @ƼoCM@p2Qܨ䅘?=i<. ;%sN&d]\Y8M:fBAf;,NǪY!j[!R$L҅'Jo1bCu{y̳tj'(}e0awm!z' PiܗRR؊ۏf6u Asآp<M2DebBaaFA,Ah8atIL 0;'{|"I<|[d+0:d*]\~c+ѓilՆVfQ!r(ʰl,"^v8(4BCۯ"wt{V!]Nߛ`R=!wf:/~w5&DA循>:1*Yƌ:9^n:MX6܆{e!%1$`BFAB:߿ P!\?~`a#@ED6M6dEIY)jJ dbnI>)pHV Źo*)X̦~O:luXDZ3X_gtx0&e+XB}s Ht?WY5$JVT9濢}G?1ف?G (|y樼.Bkm9 -O'@zلd/M!}6z(,I!;hʹ4||;~|UcA2@n=Oq XOvx3Gf{?Y,l b gݕDM4\.3fJK,蚆nq\V<7=c@d!JBTRѤr>߆M\x7" 7DpRY7;6o*>knbYj+Rpܤ*BAذMq`hNfNV=yp;5EfPՇtkpWohd땞FeY"bAfF%#w9[̆"W0I46htA|?HD既Aov]Z:jGn82D1 RG')) aH>OB2/o J/4Lyن%19, b MRQq1v|IGV3E\%`i+/Oc,()d FB̌,.UuY T* DVFN]u[VS6F01A&CzS$b Nc$ޒm5$[mo#3!E RH@ɱ-seT-n2VH~0󏇏"-?!?x > HLsaJ%4Z)t(0?'FR: jJ3ַXFM$VвC*(5zRÓXq2Sq&Muh<3 :^|u u6$?T^?Za@`ٵS=CSAT45jվDZ:2hZ^d|?Eg`Nlzh @5eH#-MP2eH]_z.b4lU\qGf=ƙ'~4:gCzyxzGsQs%6Yi1@P[ȯnZ" K,!ŐVaF7c\Dž.w brDCTL`fM`Nf`@Td|$qBvnwNjDDI9/MtPU %B>=L@8a7ѱx )ȿ!⨊\Pz'h/XOoIh|O=cWirLGN?[߮K}ܧy J ATߐX6- !2;"d3j6mMZ%N5!,˦c+$^ZKj/{6fp`P*$WJUFY ~-\6T8urHX0V ;͕Q!}Of:֕7Y2)ų-&N :"v(a+JmW(neD&ҁS[yP,' H0['җˤQT^:v2pa i7Z~ޙ;i$U["`q}.0v'V-M$<=M "U_myZصyɱạeXRG uI]gRaeeL{: 6b2*PAc9UFgCty6FGIθT3yc.<=*J I=f|37s7yӱiw0QF:!^f]bnɁ=tXm=swhHIvZx@z'{4&gDڗ*AHgA'^g;Y. ZчC)~DD'i<VthnKޭhֳRY ʛ;fj"@{oKƎC_K+b,&D$sLڥ8[= ;eW"cƾ6Yo~o#,!;9R# uwT8 2?l~4V}ѪKk>mKl QmI!#~NrH0_Cwyl0hH)EZ`. T>4{ f;q6n O8wĦ( Kq7'lG퐓7B83]NZʧU^tbpqWfk8Xii($!Z*aGӮ3ySu d'wlޑ$mhz!H! 6 Kw6~<^6wP=$WA#10S G@*FJ/ />:޺tL } ?6~xG6`J~>7VmnIRvC"hhF*Z+R0e&7uOg={5\it*MgYX+%Z>oꮞ~f> y~Z-m)y{iwٽOSBoQRPu}wHaūJ$6ݎW8*ʒ`PUd3.M%i.P1InmݦTe1e‡*im5*a2&<,}y'x3D` (!^ 2 `xe [4R1=Vq'*+"CDMжoUARWIkIX̔&a(܎[X aogMJ!iQI@$sE3ڵٞ:OEP }ExC 7a@" /f0ť4ɲT<'_&~;zUHTJ,3?>G?ξئbf *""}'~<bb?O3I#i=55iAOݫlGGb׃}:jΆ B?GWqy0<ڊ bGЅc_ȈͼXV"\!%2̦U+RM@(2 MhlrdNut8A5 BI Wph">89piuV*/Z_nLAT UHX ?;q弔 I4A|.辶o]d6:u1I"%vU԰@5}ŬՖeST4)h,ҩy=uH2VWqAD'U8BBYz/5ba X -E",ȊUC 88I3Z]6Y6Ki(u>9i̐ÆM|!]`e.ٟ)_AC*"MKF)bYfdߒ˪*ږi8Xl![Q$K/ά- UDvX i{HieO qŘl :L8jun>À~|0ΔL?#bs鴨ǜO@,00A $>.O/8!P)~PVS7HU?$}c$iOoF%#kir ak@4VPx55zi(P8S@w<iѯ찰`܌! 6jW k- E2ItY++1 j-!dFLLC+}w_.-I[ @ Y118 w. kX+2PejXZB"#bJMK1opѺj)-.LY49\X Iۆ!n1BQ0)"Bf  8)69Z8 =Mͪ \Ld 3uJTZVHbI#EI$4g~u F%4ZnmEah&CDP  4u:@~ v!2OVgd2-Ң`hǍ5;'d,M+w}&,DDS^QMAFW_?: ULv2Ns__/Mf/@?RXRM*=EU5U4ueճáM"W J!ۢLz-Z.[;u. Y+kc5WWe:@GShAu>MGMst> bוlD*$RFHٖ6CE0]A{|SI#! T PiP_bouG]?vq@hbBE3Z*~VKjŨ"lIM2يbf*X4hY(ڙa-TfXi"(M*4f0 S*"(1bpC4@ДZB S<%8]Q>P:%5pRSaTw,_WFI P&W[u%4Zѵ5e]j]vսdC6I@&BըKC Gx IHR$N/䞧a5J%F!)'jvX )CVcA$,sQFvn4^utOǍ7Jh+"Gv4kxSuvTH6ʘ755f0Hy# }{Q??Ў't _v T7bD*PQ$Ԅ:8=D٣DDll8ؠ@?d?Tw8b$z|cEnUSUUVzw7KX dD(1CaT (;T#]/)=釐 }tm2@QeX,gm8vm{ʢHMau\ópiɪt4y_QT (]w`.<KeiY`;XbzfDlf3(bլL-0 [$&ZH^(]*HGz0 N6(O)ᾬHOf(rBkeZB6znN7{MTN;+F`!bguzXJ$3/b>~ryCX9d?y/zŘq)OY)]nߜ_.D" louL>+:81҂!(H%H$SH MR2ppmӁ!OP|P<}ܻت!Q%%@#ZJ+1Q)LRUR*2lt(R3whB()6EB+(+$K*!$#$m^{mtڸS䴨d$X&F/*Qׯut.d.mQU8NCrԙ f Ywu]ۙ5Kv˥@,qh ALL2y鬻 crj19vgk^q\Nriw͹i`emMjRE.SBM$DT5 `dpjkL"3 t(;n$ 2ª1uFhLoSܪ&̸ʦ &3&P,20d0%rDC802JN *$"oZ4&#IҔ%xL f)ZAaƳ hhw (RIƻ?]wmk( (2ѝl h9#8;27D'@%@`%6b֒ک͌)#H$L֍e#flSLB,LU}\t{gwQA;`ֵCQnc4Tidb]-*{8LI؃&X#DP;$d &6q`6npP5d>vw?'5[doݔCb3 *T BnDfcA"R.K$8s[ 1 HPML+ɗ#d0>uѻzg::2dyPga; nE 8WhW}Y0g^h1ݸ^59Y Őq9nv9] H뇝ZϷ G{msᶫ-?Eav)$}Ѝ$- ?֎:hi;t-.CL{4CH?Ӱ9La.G)y# U ?1 ؚLkoR$|FdgS&\ЅC^'cum}]f[MMDi bQջ䟘X7!2ANR%+;Qaa ~Tp@R)_t D@f'cnX+S;i4J`CJhWp@X` bˤl a@@=}~ bL]hf`hЮhpd9~W@Pd{&ޞŸ@gQ@#P:rirf @( JAiUCS\a _#-!=T)}s0JILR$ ;0Ru'ow=7-,cb%PԂ2~+ޝ>LPLװ%"#Y"W&XT̊DY(kO.%M9@L$zv؛V#R脤l(fyxрC;P4AL@:M^ݨըL`%Eae NrA41{8"@׷cVaK'%=g5)=c&(b=o$ZN1NSC@PCH-R2@;t P9,PB+5Gl5tr͞p7[;pSYBJdm0OsAxC#_Ep|KBrXm27!N;fpq+& 5ON_ ԕ;%2 X:F,rpEL*p*3NQ ј$X#F-5h1524%ZT[q?ߴ5ҭ uR+-8gRB蹨hZGd]-Avdd-+!BG hK+T30c]c a`K JBb+tLtDS5, /۩dKL*iiڄ2  kXn8ʂz1*`ykWA tKdk'l)O$j CsIUe[**AFR%i× `4(A2E `ɛB2 CI4ST0Ȼ!ScvpO%ZLCr\[nᬚ.(a,8e &`r!h" {88V{7[:0C08#.M-E-ո0M̐r50X hY ke8jShʲMI7sqIOeʸrRH,ahnZ5Ӄ&[RPs0,$HiA# 8PMaL]]oU5ZIm֔ɰ$a4`PC8JCInkͨشj 0v@1? >g_MIyA;C!SOPaQiTH!PS00:'>%wt7̂H"<=.&ޫ^cHuٛRG(;7.7p""S d )@ L`CANa$_u:o2騾{zH QU˜l$CR $Bk1Τ?18+>K1B$%WͯpcxH!e!`|{ׄhG|rxDLSD&%c:i5 PI}J6VFrZ0^!(4J%`(bMr¢Cl^Yц F5V cB= PT%*= "R%U%c"v@T1ƃib}O-E P%cKx2٢. }U2VY RsB}!FMWE-WuIJ#eI"ZWE!!⨚$8@P=ܡHwIi8E!{x~s}1Z>l#Lԉ&HIJmT'ٲ`?:J&PT Y+"vQr"JYHtasÿf})W#Q[#Dmǡ$CVX4:[;X{T,ޠ+&+S׾@5K\ؒ$))Lc\_-"k,;_'lCDCFЬuaD?06>Fhuokd=cH6iKM"p_%!^Ҥea mSOZ cv,bMij1ڪE=n:[e/;}S{ E9D4F>d;\0פ\A!!@1&&c'ǖ1$XBq!|I6ě8#HݗEcSc4ڦJšF7Fᄪ̸p}*BU8tPkYA *IcvB6pt^ FLs1Өc.9YŸW; ww‚&B t[mkײťrDZdrZ1ր10Օ A2Q@ʆHe/?$s !K(X\iae($&i h"J(os!PMdM`ϰw"h:Ot$ o57ؗS~? xk*xU-I>k=nifq4>4"}}U%;NoELKG"t(#Sc)2Qk#ܾl4/_B&]k'8x"l+@C=;/D$6;t_a7mw'qFˆ !e@0\8Rd@w#e->75I%k $,>Ȕh;]iaRCTx׸,6:~Nu^&pȡx%G ʕwcCޮ14V<즹 &ķTAfO$&@nfN>YzP79NV_ӓsC{D/pVus:}Wdj*oC.O*^"0,QC.ZԨ3=Q`AXH+tč{FX`LJ0lHCѝ1{\OuB0CA`KV842oɌ'L,*s) ǰjvy0>II< ?T;r`Nq4q`lC*FYS3GHGlellhC{g ).L@rدĆ 6= rDjB4 ёdϸ墊0<6%TvZpb;DW(kU aƠa.ŇJMdIp jh?v0:U^a?7!~O~3̊~2]o]o?VH>x7)HC8u7[7} _~<LhݠlSgy;}d!F+S_B;ǘ0\Ԛ J28*JBc9 [#BlnYY۵ uNg P7veCvO * w-9J6" Dh-PHjӹO%6I6ל@пu͵ڑAUDZeM\"VQ(驜yrmaCqsGz{Y^Kag1J>"gRǺlJ('[ZJ(U Vdb.AZVt`Et6J[ƫnZp2TBpjCpSffEf]qG`dRS_Tˉ鱮ܚMQwU#kP+ 6!5Uy C6 &ҴMXֱz*z8%tRAKZ5K]k̸ U˅33TLǘI ; CB$]mT)ᒫWi6acPiUcz0 qhe4$JRts'AqdA$'C3v#ZA6x{RC*,%ȏqLr fc2lH)?| )&M@) :: ]"fFU&ӡQ MNdQ+DHH/=8S D_lGP4츊.־wCa@HeMI'_FA(8$w;Dخb4GH`6]Ph;>yNb_!|\ypH1/-ܸUP_9bx:gOE* ( ODy<>o0‰|d*DC&YIg8yHX0IUMR]}q^Ȳҩ;0 RRmA鬆-ϕ/+_A6dVh2SHJ[MVJR*Ii"/9H!փWI6Xa1Ld4 ɾWuuؼisvCS-}P/J4Hٖd>;I^ W[,QńR]s9߷`w+wv#6 ].POѭ5;=w4tN@e\QWQ_DN:NĚ2vLI2^a0? W 0vqvsDzմ-ƴUU04E(^tN1 fFhgr=pf&x|麯aWh>g TFˠtdW@jy~C8U]?K"o?A_™!ɸS0[B% e*u]vrqFMN'6r.#?n:u ܡuX҂zO[^ bz}$5!_j'ȇ<+G Ýw߰K[E1QޞL􄞉sD EGWE~T:h!X%`<9JV"9&?. 4%܆:|<+g}{?D[z9 O&E (xI0T+R>IH%@b@J O:(MB51Zjd haX- GqpzR'FR^F&iǓ"Ojǀ'KT{#AEL~'{gCPM"(a""J!}>D>=8Csk{\̥up֙ 9("r^A@@x>Q)'I|&zT*elv= F+8Jq),8%m "p|)}SIP\vHl+̦/Z XSd8aXTV‘L  @Ѡ 4B#J@96o}#x5IC@408x"=Ii5,=;*Ր ;LBӤ쒄+4_zB{45&Ŵ3~zVkZ!DחX b1qcSFE+a{BL=Q (wiXe)2 0rԆL! M6& M[P,Ԓ33(JRкdƒTuJi W[T3(#26-݋wYuƒ 1S2vQeI+ufbӣ]i從rKҳga97 P9(ر:5K`? 7a "&*"lJɂk (VhZLfB+LV4jKZ62ԱS$3$DbhB*cQQFEFm2TbP0ԡMu']tM#Hctg 7cpjGE4WRSRPBgjcBIU0u- #9P0΄< `aЪ Q>[*GHu|1$"_Aw x#S{vYLW5Jo&)E4>SNwgm1.vIy!xȹhʉҖ'ai`o|Ѽɷx);Ep]bu]{HJe&_u[CC6 WjShAOWv+ f` &^黦VeA -*:ab˭JKf!Т5#jCCr,4Aa+Ҟ ȁ\Ae $^/:Feě4Fӣo&}16Qoj,c~-sn,n01d6|Y-7' x ^Pgtx_J]n`v` R$:PEġad+5EUy5 ݗDUn"5-Sc0mفd:$4$L<[HD4GmfP Dэj\2&G:qvC.J2]G{y8B]!ԕy}`~11*D|.Jm\$/HܭEDX՝Xb1J*V 3=CbmI` itz!pQQ7"AD/1t 6cT6=43TdmO"*qa:+F tt8q^0CX(;]!8L'$;)dtC<8WHrav^{ ¥*( Mws(v4X5L8! T_G`C)C% y@@; )=>lvCпO'0pe/?~qED ^x^HE(ѫ%;u%)OJ>~򶟗?B`^>du+_h>(zf%e )πifO(.[~ϻwIɅ@$-#?If9_D=;t{-jWvʇ';?YӢ \̆7;t_ͮsfMS ͔#W3.Bf8iW-L7)VfY #&%lBM*"(&2ԱzL3MhݫH>;$"ENԌ.&)]Lh5݁ MtH34;6۬c! 3͓s 6*QkX&-پޮDY%v&[Z#j2)?-6m0(' *Oؚ&B)-k2\qw2jVA^ܔ>[4k]"tQ,]5LZJBLFIq-te-]RdZY-`!a1YE?WUL`N&-=}uDYRcθ"(5Vl1 ]hU 8_[ν\t]@$kL&Yh!`^6J! w4GсuP~\ ͕^uk4F<S;fG BCj2 5=L1'~ŠJIA$a[Uָ+FH:PM PA%WBݝ6 -!ݩz3-NNtهQ$sjqgىA232"E,B*4 Zr{~4=GGU$#{No#$jhsi% ƍbi 0*Y_ؕI kn-O o,`g 9mnrLe"J/>`h:+!Lk5Vl/(dE'2瓨ꥭkWRoøfAI! ;X@{h6E.r %UI",˲60ɊvuF_nHjlNB,o6NpuCZF=SC0gtJn:7dnm&McYDlJF Ŷ\ۅeR*6U4(a&HA OCӺ _&~*QPH "jR.iywκr06~I@MPO>34B5w, PZC\"Md=a'TSg{ ! /k'DJ@NzAٟ>P;3H/ܦBLBcZ#f(?LMz4cIRcpܲs"s݉6A0v!gD7ݖMXg' Z*zi.`n!S^MKm-H,0<)ZKIHFQGJ<4=GdC hN8vs*LlLLGSm_YL]HD"bllQ%]$H$IV&L ބԅQjՐJ+IܜMKnRMKF4ze T cI7jbC CCY)Q-%' 5" BԔ@чO\P3zd 4c[!Uk1E(kY- NA # @C"gD&Lrt =n(<1I-L4:E5;!v)Lq& c۲ѹNPEA[>^㞟mӃXn,P2 =84q9ŋnhyR*: Lg8QXո<%PUR' 9Kp|UZ`\90QWRkn~y7MՖ84?~(81o_*fY6>qnKrw^ku^Qe=0C&d kLC(('?tS<쿨ɑ)@Wf.6(Ab:ɦnnjk32me.8&{CQ@+WP5xbQ é(?44JyS ղg!D?"s۩-f II{d[$5j[fdhn#Z9C3{="fe.Է X8 W|O (Gs0=&~e55 a¢<ݧSG׸]sG7MjpWATJ.K&x^s hb*TYH1-b#B RBH)`2(d%, @r<؞48U%ؒ SQEU1 ?~8/cJxlRR Og $0$?BtkFf۷ᩙmqPI bkw̺2.jڦeۤ6``kJ$M&ث?}~=l ]hKCTp5D7!ߒzJHE@ P ">8h }}G} A QH taề<ȋFDXd$ZW ܵ+"$7e2e>N~N@=ꅢa``B@ZTB A&PA(Dz9W[+;!T`86|<,! E M=ԉFOM5°"h+q nIIS%93pҕ]27Q)BB#;(^2=S%FJRO_#ԄB& 탷=8##ZT :kJԩ9tΖ\qmVɬ真rSu6\Xwg Hf@p"t}|e2* Wy;X<$B$!6O3JfgH;I.( ? A瞫PBu" C~cPjUF@BvؖSADV-jg֯}gNJܮf(-p\ȅ31# ) ewf;1PѭLDçSeN6G'NE, vR0sДWbh/'@4lΤiB!>1H.p.͇@<6ZxbLCjC!*Z„t@hNE/>0ԓ(Tr:VKG]M)*͠z.5ʹD52)FXJb.T+d]pnۻTdX-vU%mҁ P!Hau\(' =x)lT*o<Ɩh (az~:O 5k8v)AcK!r,r8-gؼrw+Ik8k_3:ׯYD&:=,[u3v@=G:4$q`DJ Ԁn;HڴGiD`$יDajJ/Tdif86aV5@*`Ph#rCh%6vu\X@)DHlPtzB(\{7aJ}H#8V   MiIYނT$%pj 2b&VTM Id3`%,34<)ΆmMS==pTn$ȼ![%`^x٪lh!8apB8FV^;ʿr΄3 j IaU)7U o=Jq\XCϡ+GERo>ԷOe_>y<5qg5¤E9݃6V||s0^ H'PӌY3 0oRCMY,BELi)%& %usvֵz̔_J@`CI4LU@.^\ gESW`[{/ݓ=cJD:`RD& gЌ]º0iMXTʙjVAG'[%LM4|F+M K.90VSvigEq(aTέP`j͊ф5b 3N g_+BPUC(yy2O\' )Oi1>GRYZ^[D$-}]LpGs)Yv!l.Sb[2V[BKd@0Īߏ/FI”E[,%YI17BXɝl[[ Ixv0Ҫ(TAG<`[y6@`D^E0ܣqXF;6򠦄f5X6Z=%QS"1΄ Ar!A̠H#4U$s sZχWN|n!{6h6" 5DтBWsZEꫲCPˎKvqq;dbPTr)*VLS;d:UmO:!-h׳ݵZ*:HMyX.p}u -">xfwu !l,xLsLu{ݜZJDzaۧH;{}Kb.#-šk%#<RWBή ^my^5R,tZ)$Y\(.)m(9C]lTE݂'z4΄lYق9lQmHYX.clb=/[}Æ[ aoJb^c @7wz9V RU\^WdXuH+?KM]bg*phUixR]̤E}/V-fLND:5'蓃n=7YQY\oM`6+W3ruzbsHK nPmbް)dz(A36S ʂ"&lp7 ˥^4|U5Lz#^f#g5*') 3+X9Ɗeai2.mWOH<-s~8q<߮I,{s8p$vv[~Զ+`>1 |Ώҽ+_M42aϨ SɈ%2r"<9m$7E8MЪVx`6N`1T()KYai. 2!E.\HcZeݞs|4Td pTHP JMR[Et4Fb%z%UFYCM %) ^s0V;CLDN|n{Nt<'WF{[\i]rʪ/ڕ5YR/fqGz^ѥ]$ Ž(ÆRleJ&ه骨}Ai*ۡ*0Q *=3pOa@{IpCp BaF&|]'I\ $$ ;X"]E_ m56;o7I$PT'MKO06k'zϘx#᧬R:4=GMbbPԈpC\:yw2Ѿ  4 j|pӖ&b+(C"ϗf1ɰ(,w]CDhA2 bg=J^Q2 V@D 5Њ*$3k`8j2U#~tDLF]28S&uhd]R$8ҨJ-Vh":cJҮ~cO6O,ͷQ<9;8AB8 Б7v[1&2"pN| O66x<MNMʄCՇ׹\UGD%"ʍ ;puP"x?1̶9O5Y,,^]8zuh?*`O@{r] KG=N̷Sdjx]zcQgZ'gGp{_S+U:׮")v̳Ǵ" 6anQ0e*F\f+#5rkR\1;='q( 6"s5ہhUA yL&;.yntܭXՇyf !c R2=~W_xyĺFG]j+ `5c6lHr_ [rf`rAJσ/̖75H;kdDԇčIN. Jd q 6FR|ߚT01Xi1Z[IkoW*]G+ ۀT>;4ADKQmVJAX@=Ohn'.ܥ'+hNҙC2na pݡQuM o[TO!]y$Xn*Pj dńxB eÝfoEs(1 4mbX^ !Fv<ԺGvPfcf^Pg#M*k)~:f œ%hf|>9&ϳ:Yuib"(Bp TaPywAC4E@*ZYZQbHk >s='۩DsgdaئKԲt ђ8TZ(k;_sECۥ$dRc,E-fL%LpT"1ҲsJ5Ja&MCN4j>2{Z6 K+WI)fZ4ѱ,6P +BQB3DP b_ ݐ?JIwi1(l,ِ}PK󘩄N iC&]ijj;*Lp c>WZָ 7OBOaҝb~^^xr }W:3X@߯ˤʈv=HvB) =dI`\% ,D2n0]`3%$&(ρSu}E3+ֵLBf  ta9:un62%JO9?/KW|rGn ̤]iJ:*bTЯYp $vċKhkZhKJL)xUI@&kzl2ku,cѹ슥T"+b\<{%Q.~}Aw !vppXdd=O#0f nlȭ(a&¯ED@JD6 9c 0xU:,>*tNUU EV[`uB%,B@ž(*uCXt,B #톨lL >:Bs \䝬[J-1 N3䧔'4(Ny5v{_k_x2dDɗ&)n~N۪ћAG1 aAY#$"xa3—jbUc/1*i<76B :5׀RV"ǧ)ļ$KǡU-hk:⮁ }rRViJ$&emrƫ&HCrݷ"P E cHಋ+K?& z\F6C8F@@TC^=T9^LuLLE(^u{[qw]/^ܽd2gyy'S Km+JJA65)r_߇2z'Mf5%۰rÐy T$Z$ZJwQ >c!6by8Jx5 S MU~{^$Ji<瑩bS{UQٍȪah/@bA&InpxdD!K`U(x|̦7fJvy^?2=翲4Jj*7f޳83Bw\el|טrEP.BdA"~~$ ?u1v~#H5>%^}c. WiఏSM!Pm}ń5b!fVJڀ;ن2z'Kr`ʤe vV m/Hu8|<ڪ sFُk'&d#SLq%X8*34aE1*}dRyRt i eW2"QDPĄԎ0$ bՠL'̴ Ȅdݛ{z!ER4妣ZQ({O(ݖ+ҌfN4 Tf~L.y7N[3/XѸ'FX5\eh(DxN S ! }*5͔UH^VpMtCQ1H1&Y0- dЙ?3LPLa_RD"kAoA"\@ |*I&q]S> q%hX-*Lp'r]'矣=^]ODiL‘Tm|*l`?>?2ԼC$E noVᦾiPr}񉎅}B!S\gs-h|O^!G4q islAtdX#dɄr~ׇnKϏ&C笖GDG>k"]x/y ;\=ku{)Ƹ4ySY<n?jz@*nPiC] ~Ըf.H$*_RB=}݊'i>Ml/6ޘ}ӌ2ZΊ?7/$b8|$hQV0}txsA4[1Rφ~7k|}Q%va YӨbgDuU;o9D4 ({=%&qm4|V@ FTtO (ب)3IF]`&ȗs6ro/\AH FV05tхYiRr8+"Ê8SeLdVͻMb}a];gxdk3_zdP˶t(vא́MX*IK??O%fꥐ}ט Eňiuo;6EˋY^ιpt:6V)4C!!ѶBz .y}OO- 7d] O(mX$Q,IzAڍX Gc~"7BqA3K1;kx†×'dZ{)mHv2Z?F$NAŏ׆qI.Ƒhdoed$:4"5aZ8.]{96KT1wG}EaDlnXNVuᇵe?[je F<=:@@.NB K;2@\*.mK<.بs۪`>NcfNRo;#_P*Zܜ~iMT U7(ӫJVU#nX^jxN Ί~;3S9:0"᛬ pؼJPrgT#,.)dhsۊׂn3VΔEN젍=7kTR1\8@T/lӚR5kd(&reQL]%q"9{ U,~ 4&kU2"ס]PA)fU (I(eT&;/9y5٫[a$"D>|K(a"7FS5ݐӑ"2&l!X(FG>~qY]SG+d lQQe~89͐~ՐhKPͬ- aD#QmI<$=>(h(IVҦ|fb>s.]ےDƶnW/4q8BW% !a%jx,B]SteN9Xֵ8]2Z GJWTR!Z:v3b!+'uT~'҉ 4dRԎpӄ>Ɯy2Pв!e/^^O]qu9mnv_k'  g5H\$vThy5q02ŗX+FdDV2Jq 4\8+>2.>kAH)6.z I:hn59 >"CF u?'l_saXi=u=$Oϗ 'WZʆ?1T @}" e553C^ &th8A1ph5$by~gCW]-3qy:2~ e\ Y}sǨeW缫ߊ06w=FoTOVt5G )17l<Ҥ`}Ytn`G  Z+{)/zQ^؞7Vіm:ouˊ:E~b{ɀfvuڏUW[ 5|ݧ(xdkYؐwY3Uj!H"G[!pk&-;߆wh2e6Kq^ qZaXzb$2⦾ȡJRÏ&nz/&HiQѐn&#Wr׻,3D;!k nYb\Fз\wG~g (4,"ޭ5`}b||UyhQ{,.r~jLJpLՔեC_0)V^; k_T|2V)W@V`fS ិƀ%W,dƼ3dgdmbh;uɛ\^U䞿Mq4GOэҬF|^I-dǢec>ӗlzՔ||ʪ;4+罭1(! `i:c1pѭnC LXAg^"^ Y7bڍB u/\y QT K.FzFuaaNfy%$Kc{/~N("W9X@qfv>);ϟa5GjBųb*J#ޢ햁A3)dhA|50ŤnV؏ujdŜKmE`P˯?+6WcQ<>>/*sEћga!SbZr !.Ws64.c6/|A|3q|.1NHc֔ȩ:݇gUX1\ ./gM<,xFI(R!x<|#nQ;N)~`,:54|\zPS(a˶H[F=M!Uákmwva*^Ee(.K::UUE*NGo~{ ;أfZ6?'%[i|h:"N#4ՙ/6Ee'*8HڋHQ`4SVk EйأQ̊a߅XNbʫ-NxDF1QrC˨KZ pSC~ J7b͠ɤs0| tO*`}eKS/<1}jKN\,QY&.ǟtדqRĿx鑐ӔJC"Wyg:"˔;\d1#!<\k]ihm2E :)Pf\%@[yDbj]y6 Y3bb)tv|#fMYpZ'!3'!K+ {JI <q +nB0,b_300\l[Ñ\gp,BGՆ1f>yszQb _NT*Uc.؊!Α:qu@[aj Fl)0OP4~:Pb҉ @ =u3s~`&߼cWH";}}z%DEB!重ͮӕSa&5})E ,'.j,wςE1mPZk@5 VdhP?W"J-, E^ W/F!rA&F@-%03&ᐓjWQ j)M #SbIR 7m'A81OP9PDcmdz{coLd*)ia @mmqÆz(||iUJ~t]|DiL鐘RXq1o d^"kWiM7"Z !FsqϫvℤZMpĉbq0M*Lذ \}`W<˪.T411-aFhj)UٚYEWeg"KVub1il^OMB:-}l]L/pDȠȧ=QO/cv+}k4!>iP;]^Cw1ϝŒ*Ԣ%X"ɴP*ɹ8C&͈e T R;I']8q0hB5 H=2<1.8PE7.T^ګΨ5${LܒRk{ఛ#1m۠v7$"D3uKV}pܟ*Cǀ1'\;;e[m_yWLrN7.G=6%*؍6_]9N+xKp٭8 @|>!EW؆YVH3Xnj¡X¼+QBD[dJy2Uqo#R^mEsߌN/{4$]bΆX2VbS_DRXXi}=js:>⢣o5\O] #D t"уKn> +%*`i0ۡע]yfQpr"2޲Π4-*Far_KE;IA@I$(-X׹v K4bCi!> _uyw<0v²ґMЄo'L)QNs9pGʰȀSnHl4px,/z9=hY N *B0DhR)fn)>H||_2ݺI49}ړ,F(ͶS<uyuDuF,XcBjp591NÎJ`d[],W?1|&Y#Fs)FY$Nqf ⥰>@6B>2eЇ.GۍeĄaA]1sۮaCtԇ2Eb&Dq\ezI *SLbn(^ 3Shih_REfw`;_/s\ ڠ効>.#蔒pu rpKzz|PPO-N"n[pE↌hY C1&"b? U3 qv5H[tr唅u,B3r*O:xKL-7qݫI F2gí"1Z' ^6xŸ?<6}?FTTT|kv7Mǡ6C;{a54;.gOX5Y$.{&{kXѽJb24j f#}L1JkˀRw=g_@6D*ʜ;9l߂Ygye2]YE@ XETWTߎEʼn1#{/)OE_ >xg B4ҫs :%Չ!Dq(HQˈf!&߸ޙ斦G> DB#^NwȡBJoGB?h6QU55-@r7^耫\j{r[z:rŌ!E3"p#6oe t3UPUDF}L>oK%mrZutxvy_@YsF&LL)/a6ZEwkcsg~2ɟW/cu m${r11>[eFu2zii L@Ņ?`rMv!U]X-Y Yԫy҈У}+!ӝ(Rw<漎ߏcC66?/ʍ'Ad<+S*N@m[`l-[5N0JY Bb\i]P+4T <5me۵ՊК}2YDEN~,' kz$X?X=)p^;- դOT~Dq)=M=?`r޵+t\HyJ)3H + }N~awC+-%qպ(=A.HK%C_UNඈ_?% ccZ50yWǥS4!19b͗[?ҝTnH?]\<=I~-7ԟ BZp@fK \E{K OҨZrBE#4",,3C7b["N D%IHA+2}TO:G~FE)/<$wwMxvjP?\_9fD̾&y/7}0F~+5 3*9f ]iYuCܻ%+b*X<ż!$1BLS(. FٷPtЦwDŽWs bm a!igg" ^H-H| FVU#'X #n,yO>V0 l+XeP4{;R0k4N\We)/s+U)0GG"=z;gʁ-B1#s]]NSwێs{v.yᦴ3Vg@D Ks"NV p*AԆ9~X{%(`cy~1I!ܗs-mgDq>A%)IأdT¦ r$1dSNSMr^K?O$e\kI"MjZ@ʫX%Mk/-fSȌ5uz`e#[ǁy4Z& &sTB+0HUBvEߜ+u.3%7F.r7j^8>N:LE;B'nģ:M-$h JpCAg޳бc2=rͰ9FGS[;R1rêj$ 'hdь0?`IY6>i':rwN4j,4}s!1D3౹KC-j)1 J,fFdz)DV%&FwJ=v%G bqH*1.(J=$9Qvp'!/"S$%Ya)B(AfPWDGhorJδwŬ& ш3FtGbE}["RehANIq|Ճ3ٛ4Y?̧$;"/q0+8]6n8d_hqӡ1J&.LX*9ab_ki*zf * $ R,˸1L[g/' JEEE~W)sT'֣CFo8ͧ3R6+b= Otb_kp..L-"fY^wb!<ը!3p--S>n vm٘`U*JGxrSqBOy){@4ZL>2s^L>$ȁ JQ?+7X@+ B\3Sʗ\1I,ArO|q"RSw/tI_Zz5 !]M͔Y3i bx Y?=71bD`fBf˅?!&@ 6{߃ɳ3AYRu ")RQƓabu 7 Jd4ݏ5rޞQ!F1w5v25a#/ +с6GpG),\||<~+uw33_;M34\phTRV@TF#} x}%_j?с!=!7WDC '_gF4LitI2tI]I2.2SSU>M <ݲw3LEO"V9z =A9I҉~LIӹ1B?,lcF_BZ4%.Uq!lb|9PNp+NҢi$8ۭ}wa,j A$rfG*@Kp%׳768d1U_͡9Z5X~7$4Ju͚~0#ͦc>&׷W DBd`,q#j"9lrR\I:AuL! NƋ(X7sʲVZf= D.0`m͊]dwcVFPU#Ul!ec yWAk4)ά;Vf.#$bN$L:+{ߢ1|-.lj40R8 iZК5QS5J,r+d= nXB !WT\Sb3Y9J u x;EM4-Q*wR~oҟa!7!pُo1Mxrq p7.O" 䝥 )A"'p:6`iI%(EA7EQE g+8)ODW%rWىQ> ݅uzփ3$_Eq­mwEEDE,Z#0OC^,t<=b\ǩĉDcRwfRj17wkT`{@Cۘ ^Yk-mMw |.ϭ4av'=؞#1Ef4s*R>IZW HPE @ @SC_@z"?u칂e qv#oЮ z3N}{{fWxҩ9.I@E(>xUݨPhuuXސXD' {YL=h^4u㐭b,M,-x^]\Lz>l[NyصŲaF1Oo5'^EN z<O+G\AA)U$zp xi Ot^l /Crzhc8*Oe~Lm*Vfue?:*`N`лo1NC,_o]4q~Ǻg-* йXg_Vs~>TUزy ?ZPPwD  TU;xಞ疉;wQVB@zO9((xz!sO_$e[_z:5 5]v( )/G{ݞ*|?c>} w\?'pȺysI5PQ`$[0 `@ -\8-f`߳ʱn6w+/v)s<^=-S]ޖݝ.*[zyy SknJMII20ECcϑG?KI \a'{Ue;9nVa֪I&QĈČ#/"I]1Nr~Axʵ⼲E^(#,]q鎕xiK]]]09xOUзm8y:[w5;`Iºz/Z_~f^+/:>.l 'cn|$==y0%oxs"}K4:Jʞ'/ LpI|5ejsbrOmAuNjiՓr*6zoޗOy>vsv9lmBeG+8KF]-g'XV @heZsL{NAo7@ٗsrvްk=2E,B}$6KާxpB*&R0rrz @A#׷kHۂdEX5;aHJ} CV/Æ-- Ҳmx.,RYo}s{yi(t+55eHudk1CWFLgSRq%A7L$q*xYFX(Z`@ ke@1yJ^C--Εbة0R02(`**88.+ TL9WE)^2% 0(,jHt [&ۯOԭsh/=L¨ iSbR2&9 %c?qoկ= ":33(Kx)Cj5˲SG/ :@iGN{.75 HF'6#fZo]ogKFrqE!IB ^{WZ_$|xʥ5_7[@7L@:D@Lj*>dDV|ģԠ=MgOrApQj֯{xzY7g*ih{Wj˸1KIw [ͤQULU\9*b჆X zh'2@i VpmS d,; ds8AH- %sՖE(@ JI0H j^zM^U+;WY6 X"bTERpC׃8tZa7: _[]!j 6IJP?\=rqR@x L"~cC64gy$T5t BE1MF;k\jRhE!XfX-`I5%ELkk IhѬIR`ب cim4b$e ITR~/tDiiYd٭5V66"D%Hdpӳ 4!MRw~ j_15rׄf"e4Ki0)ma&%%AMl%JXbTFԚQ6M㲂 %MQJ4E,m!*5d̚lʍR֛Fѱi*i$JmdMl,a3 $S,ڑM*4cY2IR6RhCEhؠbf*@!FDjK 6L*Ʊ6ѠشI(43& chƃTXbX ie1Qi3j"Dbm4YY)-4lQh"5i-dPLAKeM&4j,F")ABFM,Xœ21hƫE%!c3T*ZUf!ٙ#2M %EIQ&)$ B%RTDm1La%(Z)bAa2,MXF cbj4‚1XIId11i0RhdL&m$5 DҐaM$QFK&aQ0L,i#j*,iffFi%HIQ" 4Q(ILiKIh6%eL[&&cd6`cH22hYZ ,4eJڊ6ђEhbTXBX-j*4lQZ6ʹVS+m*D%bR$[[)jF U,A4lZMDQQ%*I$U)J1hTFH&Y4ɨj &m(LEJTRXhhbamLjfEP#"*Bą(@H@" Or]$ݝP;ӟU 0" ]5 o["j4o5λԛ4~(:ݒT_%x|up>*T)VQ *6QR%$R X(ѩLY- fb ,#`4,  kJY4QIcJj1c$EBi12 F $e&B"XA1(أ3L&2يlFd5$H͛$T˜F"LQ2FI32QL"e 6&&`4XЁ%$ A&ɔ l#K#PYVU5ur;kNjJZU )o {@쇶8QM@ @i`끯:eiU&e6F2,SIRI2dɍoڹHɖ)$I3;-I/=vxҾvt&FO[tlc )"4e2ɕ%W+jElPy dF5cVM$M X2"1٩L`FIdƐ7n䴥DS%IjLdۋ\JK+h6eS1(ڐc+SSd6"4cEhRdebm-"E) -SJVCJd6쁧6I))1I,͔d z4M$LeKbK&4" Z5)DP!)(MbDE`cc1Q7݂c(#1JKګ!I5 @*Yْ@ fhIl#AQ&*2¢SZh RTh2h̍L D04I[KcIQ 6JVD&I a(!d3 K)a,$I *1b2E,14FFDFif@I &KE45XɩLQ13a#B )Bj4Y1 (4c1E6f,jD1F $UJ`P "cR*)Z!)I*UF3M$@fb؋&1X #Yc61# e*XjmYmMaY,&ʲ5ELK!2,di%mTfF3hZM4"$1Q -2Q6fIHBhl6I36fȃ41 Ѡ5QhR1QcZeeJ&Mfh-DXjVj!bEE,&*,2*I"@M@E@Q@i04D% RhlИ͍B DJPje3I)"К,]H‹&LcфA2YK/]Zh$& F%l 4uF#Fd&KIF؊(S#JfdӜR`6TPdR"̂h0Jdk$TJ4E&f bd`F%fJR0QcmJ(1Ƴ " ̖T,ɤ 6қZXղmlRjQEUEJIPXLiFD5-mT԰h*Iie뮽u6mEEũJRQdMhhBJ`(2)0JB# (MdْR2C`ٔ2 Y3Y3iP*2! SB$ BHDʱ-`R4$I-fYfRjjmLScdɦRB$k#̘43)QA"2U,mM٩Jh[ IZl)MRJJ"fhQI2X2/ne"ۨYI4Im6Sh(Z-bf$XԚ&Pѳ,XM5FYUITUX66b4V 4d *6Z15I`ɉ"ćΫF |w˻$4 uMMQlbR&!VS-Z(ETmQQQ6шcb*HTcZdH1@RlMMb'h1b3 A56jل2YIlkmF`PJZ**ѭYm6*1 SkbE,iSe_񝳺n\wwAn`"7#&{!+2iFb R?__/xJqz)#FKe2 `r*ߥ.u)QlЁЈo+ͶLMposZŵeFE9ꛫc͘;_DjSt 8tܸx( nYr1AQ nOzCv&: EGeU1>וG::폺p`.(w"jHRْeQaMysv?50+F~討QH$)sG +iMוdKin`Y |j@2tsg٫HƂXUs)Ejq{ ]M Juݳ[aZ˜P*f+E9adn0ɺdUsyW%֚ȇ;fk30DYBXðVȺ<$_mË*+7|MUCc3]Qnѻ<3'۸"'V,"NF*$U|bR[LٖjVOڹG<<+3^2awUV}њyu6No#>}4A!=ܡ`AUKn>P瓪l #KB 8U3?˚d[eZzS;)|zTV& DE1tu٦qbRqJKrF i1rk-A:UQ% .642Hxs>g];EV̳ipQ4!quX*5Ӹ&cf&.imtjۃ.(Dl\b#[f4953i@`[-`8Z",XCwQbBY)6B4Jv\,MJ&YVREhho@ph#ZR:N- @v3]1phEWN˗~T^m8}}ҹZ)q,PmSqm5f򢤘UACrpvC{ )X~5nN|d}rU|y[~q|Y.O$iHF +F)f7YnH:Tsvn=>q6hNNSz"a\.\i+UG[xDrAe1*xѦZCn՗m"s,CoMC&DoD ÅQ^iJ$V ?) 5JJP'H,7@gHIֈҺaT**jG@x2aYtWIwd$Bc"6d w]Ĕu. 6(b!"n! Hf]^Fb,T UDU\J$-iE4cH"Vj6n(]&)V T 4Պ[ )h+k f24##>=@"Ҽ4Q d9 .Ё SjU~'m|_l/*7$5 FTeh mi` ]y/. BI^6cRbJQD91MLn6\7ApP@ j*އX5QSE-k|bؚkN r9D%r~;D_gk}6эlmQ"j+Io54FH`̍m E JxhB(fJb܉<{ n M{>k$yGR|DQ 2(=FImm6~쮩3q {|JFHfw /YĺRӑ> 4PF ζq2_&앓Ձ2vהBL \/2F%4}9!~T@KQ=x,IVݶwu%OkѭʔI ]j@œBMf`$[βNtHF{HߕM(-xRlDL yjҧJI}iJN-u 5j/e̺[)(Sc%>.cy+(5 qnYa?$BOM>&೫=^|* TPNHK??bQW8:43^1 v~$<3 IGЂP%!Z|e/*mgZQ5M81.Uݬ7Cd;3#M+'7{sB糗bt1Ki Bgi<]y|C}7 ,NErꤒIOh98@S[*U2W*vas.XdҎHeH-]fc#cRb1F1 ?GFP- Rb~r/.9&K 4\N^)f$K `v(w^E;s"&oox8W )kJaQ!.4/¨a{zG" `lrs-GRNJ(K QB@z9PQKϒ^ę tS_,(Eۇrh$19FNwk'&8݈vtG!B;I.wT9DWQIE02ogw`r8 yDy7Wy‡ +yaYNWt=gc#P9I}Jws.[$1t7;6LP 7w;+QW@w9$˴[eRŠh>"S#0>wfB_;1(H5Tr#֭rO&\NSWHK( @ܽ"#ЎW{/UM2͍4UB1FNYGzY !!$&@6ITmVC V(X*i>K W]צr(=|z+n_M)\6;t"MA+TQ׊j~z2 .2y!‚ o3:3/'INSz:$K{'3>N|Me|\ň\7;&)~/p|"`ÈI37WǹENt#P;.\wdѱ6:28b%zCC[܋b[9]>nvVF*yxo/"tc }JCYQ? >08Hq88Q$ΗI; BӥtTy!=\׉hs(JNqs)Q\p)ݣ]-HegmKGnC jB u $fQnI_NA3dR$FI &R؂R)S̚!/;5%(AQ|$O\0Ӻģ /;Hѯ*汷Z7B[kh"cEiR X+?Ř$>c%`ѻ\IݹPuhFK["EbW-[dfTT$4Ib}uWnub  ouP  {c"$$`(ɨ4$(l JBHe 11b+%#1 4`RٮĂ4Eywa1ڹ ʺXkY&ůu#QF-lNKs]dAn?VIq=ݤկ'h5N\4{r?}!sTBV]uiڷ<.07,7tw7u*z:Tׄ*:}eL h4G'%zC<3qg: *Q5Uvߝ<91`"ZR=J?%ƒTYJ,3N7f1hzs{i2U-K6oi-#m1؉T4B\:Sm[}AהNS!YO_WVyCG i\34:*(:U[{9٭v'1X,Qb!}Xifݛmt͟GvDygYSp')]$yw!yXʇ#7xM{fU*_n&b"vCTeJF),X}yCtgt/ ֞ 1zGt4T6 k>ʼ*gʳ5Q E>5y[r,N߃Jܠv̄l^0{_{Hُ2>߫vzkx ?Bw-(I^_j;$caYT~[ic$j )2%h] OF&@;E+Rykuqݰo WLɡi(Jl2A$!bsw:,“MeԆH٪ǁC:e|n6?}5Frf 95FL;%F g]i>P3oǻLuŇ6Lk-_Nڋier.Vy5}Q̫U@r1B3ifG?[["e*PX0L9># _W*>?Y>H)޴gmg(nqI!L(I#ON/{Cx 4+?Jq2FQ7<uǗ{_L34Ow+}Yyv^@q!dwG!xܮ (Ğ|H_O-{n3=_i;5z2ṞjadGpJo}!<F ^ P)P:6z~J~N9kiˀeƱnF& AR;!Ә^ubE8łi*k?$ӟ4Qj%>0pɿEuο4C~^f~xUQ1. =Om?Lup#xc;qʌE'{T6e6bo瘟ꁳ(є7D,?b><}*?>>˫wSei4s CqśTV,5wS4~Oy\ӕ>Xw&ziZT'Wc,4ړl 6Ȇ)-\+/}uoD*^vZstFDh4`^kQbdT'sFٶ5bܹXFѵW;H80{P5J1-Avqyj>tQ1G+~}*XۢUBt^_N;Ѱ%*>$!?w_(OS|ik chxuݭVT9 dm`̜e`rB-Z61E4Y)y0'~=o4Q"C X"<Ԓ'3J$p|\D1 C b,Bw]ݷtDbXQEWq=EȂ 6 J$YKΖu}S 0NWYGϨ%꥜E.ӚƵNw JZhۚ[w:1]3st3QO.aġ 6+K()[n!I\4ܴDUAuO-$ێ}M>pA.Dv)J PȪFDlT,[lU˥t\Bi˄6Z梍Kn_mEb5krNf r79\ԕʍrCyƋ\2"*VB XX$PYi`Pb"w*)NQ\ @|9(PP@u)B)@ ArH9#}PV1 !J@( w u/&g[#{T# EĨe/-˻f-?.ڳ%?~h L 9H~PA*DJ"%@۱;^4[GvYzyq5'!u{`!" If~g_3_$>JQ @WKXn*B2ЀbէTtD0K 1 5a5=?,Z G45?ryF!~ۆI??qH+0f:G0 ˞;?0Ti\ѦESJoYr~Td!BcpCdHpרh1 HC:U?$6f8BI$KyzZYtV 6aǭhg_“64y.w;?O_ &C?e-dh9`?cž"C9g3 ڕQF !2_tqo]ivcn>spDO ^)yTn9Ct~#2Nnz/k_;G60h3??OG{O_detJʀ!7X(]5Q~?QM d?'}GjE谶?dO9(G=_A;ɮ$~d_9fP2(3"ufQ*l[7W`.-m%ⱨ_o^<|y?f z/$F7 M?\[oUvoC}C揸rH\uymYƀX@wt}2Q77R|FAE#5m!|^x 1 b56LxCpIx0L56CB|IߞzsA |!"4ZY(۠o_n]B^8t#"|Q`ugٜlbLO]  ]=۷_!0 ,O`1zc/Nқ\J a" Lˎj_[-k=IolL|}Yx>w10 ? %;et (Z/՜$*oqkS qP_E6 `˾-^BX_\yY|#ݝ7dl& uKy(B몊Uu5/ 4ARcEs/@(/d?#!~0}8`S1)0ظ-9}2 7ffE74e (6!~prpcp"!9p<4 E5GStbmU4^6H0Kii_-.:kՊ*aOWC!1@u۸PbrDJ21Xi0EkHb/oD/zZS' u<{-0W?iāh#K3 taVhi=80#)ZU:WZI*lçk.*""lIbE+ǂ07cZrmG,8`׻F#3Q^g~;qr3/J]To/&i%`LhƬlxz~n6u~<(=n >)9e2&?mS? D(Fak]=S|>d 'Cd1KsaO <|O(@?їSJHP}ϑ6mјzG`lM|Gg8o+xۇAsY8>en4|x){tH;ϋl?qt:a&Os!Svay!N$)829C9+@rPt'pC9RRw]`+'3b!~:t!5)$ANH&B,qx_h_F'@q9 {N9v|`y6y椁Ŀސwy|1$^'|!A @}zmYrCiotlwwá\ ꌡH&%#b^Yx&Tw8>NG~M&҄O v:$v/(Gi/uB*d(vS~n)z8LM8 lyy~u>;O((wȬB&8!ۺ8G$19|xdQGc#;GO!ѫy='Cj,ā=i! )EJ<5iN? _|?'' р `B1+FSTk*oKkJaW˯IX" X{u@kpYC!2 ʌ93✅%2X ,QY A ɦlcRR`KwT!Sb_; Q?O~ڜr TGQ PMh &̒3HX&dBCaHR33PJcC"9\4&,Q(@ؤ$آMDHB("ŀ1uijO9r12X O̷$;W2cJhL$Iyr%&}QBb}J1007Eē3%0;hA8GҪ}Ln|7! 1tI%ɩc~w%*,X22IF7θ MdMǻ.rE*X&ER|R'PasfT5,oPO ٧zKޯCYäP@8T ϸ28ׅ=ɺ;dt:}ssy8 ]~֊R^^W f3y;'hĻ}Ipg@@( w) 7mu|yla H0='>SVZ, ȅhx|20lLᒨV]꟒S/k{a=|ݶܤf dxn$pQ3#@ȃ|T i 2͗@jOy7e[āzz+!>:fR~K|+V2\·&Cv le6+gC=JQ7K52gV2|.8nt5eM+i.)0iqlU6pϳ[Ϋu~a_|JlIP Շ$'+Σ9H͹tNiYBA&)2wEG>gvOf>߇ BGqFߎŤI<$\#&zEʼn$V.zsa!oszP1bF$A'{f @ݔp$: 7U\{vR&!jy4iVn ,73ZΠa)6@ Ac;* Jv!h  kk4.2Z~kd ֌1-~;~Ζo`5Qj!g>P2')|9{ɿ.ΰ)JxK™ܼ 4`AȪǯfo8sO̓a"yi^o o [:E껀{]rح9];rCuvNp|J boN97 ݰæUŃ$FI噚E }t%|F_o(98bwZއ:.GC;vP;`xsۏ!tn BL]9LhEڈ({vS\r#/4Ts?`L~ umn`a r 3N{ M$9+ѓ.3ܳ~-i@.GUK8vt^ɖY+]"wCsb-6%$kbj5@Baƌh5։A!*?YXwk'l<EĶ@Zi'Ury ,Mq྆_˘3JY‚eIRқ@n@)t\:\?꺍A g4 B2Cd+ɶZXLJSm4%lFm)BdڊaG%fQiJP \e FƬTE+Tb%DRrh"VZ)MXK.?{z }G0@S5*Ч5Njo/ Aeӧ耚mn~EE3%V@ `?/ q|^ۻ#郝P^-PA>>4Lӵ;~S?/H~?C!)F:L]7EmfկGg$ȵ#m 2ӖVʵ[ƒA:bw=JiiC>^%Y 舀mM ^IK0pVU峸uX"T )EmB$eRGiLkFp(:MEjV /V,%qq׬}ҕ*RWg[Jb1딢P6r$Z>{Diߊ|J{DzT cM &yyk߻s:׮S4JND $HXiEh&TEx3eyaJ! ʃ-'wb.nĜF6`֍h 6P]ja ̥Am;C8P$<zmJZf^Gmx,T II8CFH265T4̚5%0a&&0Si#QJ)̂+M[[2\L ?iD`~m9'o_vD$SGU&q? cA?W"㻃D0I$H%0@ [5xO|ܹdf݀FM4nnTE-F~t-5)- lοoRta_ ~v)f72;5hcOOm6;%Aj꧳ ̏2hP4@J" #Qd\ T.0?̇Ûy!PPχkGNAO\ぞL6(aɴEmYLmU8˳aS9_M&5Nz5DI#,:jn'O>|ߦAxQ`?d=Pc?X+DI#_uI篫Ȍw"/J<%$?̞W_^&U?7hr>_zaϗ?#aLB 5#cwH69{#&dmtV7mɄEÌl08P5c>>nA܇],VaԥG: pU@pIB?w? ב瞖%p6͓f,{D͒S'ޓ=3;25l8Ժ?B]{{s}UU"R(GiBW9A#MC)ΟEU:gYϖ^?$_}`50ay'WG?4dM$ܓa;hPҾa͆rѥ*\ oʌ767 AĊ>T$\g<;xmsh;ːS)0D#Ĺ;ܢ"#L^%[7fR\_6UN]_C$(.]PYVvԙhiut]f۪($& 0*!@z oUB~_gʃk4إ-CmAnp6rQ5_mTD I0VRU>YP[g}#k\ta%q%Mdb-Z9As,D#Qײ]=!e80χȎY EUv1x6>mެwL}b{<@6=p}@xy$qy53$=MI 4߭R,@* * M@^(4@Qu^{a9 3J7a0k;]_M{r;hr<`ˍ>6RFRixh''ub16D3Ut^n 1EH}U[7>ѦWTu @ANj-9_eXٱ-'Gcvy-;a_2 r`5(CPoj6g8TDTлA!4=)IĐ@ۈ]YQ"CLJMw:L*dVƈB$ȶ!tDMBBm 1rw7im#QAz d:yK9dYF@:d8uk8&t6viUB\sj9ď$ aC3~6O\4<&a5u{yj}>f +(8jFwV{H P}VڿɿOK$[ AITMBvSO7"(" gyڈ& EGW§,ݳ)I2{u/Ռ< uQ%Sqcqf$pVH\zHsHB?eyFٛRA.B%uEl7Wׂ9=hTTW֫2` "T7>@;dMo;Vӗ؂\R)sd p|(}z}kavNGX`oV" Iے,UE(f, ?N.S+<3[Д"ETR,Ygp&f$)NG{*ZhגQDA^3(*HQʙ0>=gPAgYMk͋YYoG꯾4AjEz`Kw=޷[u껕ێ5kvt&0C4=M¶8AmQ 6AqAW~6 Rʓ#9BA.i{77Fq\3Y]%}[0kbOYE"ZԒ%z^* 2 @dʝiUR'ړ2q\ B9N q(-}S:QDiUx|Sg2k^r޺O[\ 9(! (Hg9eM8o5v-iڊ/EpiYA9IT٭l>b*ݰ3Ó|st iNzYL,b6 zUt+u{>85_TRXG|(,Q u!|dy@hN]XoGsC0~~Tkӎe^dnki.fmUN% 9&Ǝ%@RWru:zۧ ]e`6ET9! 4LlZ* Э tzDW5E]mcOݥZHܹ0 \|Zc#e|#'zY&@.%m/ -ADh(bKGOBG08-zþC x̃?3BZ|ܾ3TeTݾMAn.C\Y$H(  #dz_cڄZS lj,Es66TDlACgGL")剣Xa:-#Yy~K =9sQdb*)kg@s^!dbb>ڀuRHTTFʣm|(kX~-8]{:!D1'G)1bPELb1ŎPE=n8KmO[&7B ?FBeUwTSNNOMstkvQѷC;}T@]=^{xӁҔ! 1?*BoO=ZIqe,UpU/NjuOYvZ?#895yTudmIpƢ|{e>^kZ{I s5؞ɥ.۸.WZFy)PF<￶ٌM]m"ӻ(uȦ~dv? ؠvu޿Cuԅpb/{~=6ۻ,^.`> ܌'2H'Iik?I^s:tSnK暞B !ee!! Y"/qYQl2jDKF  ()LV Y;ʫFC6Ȃʤ"+|@%SIke.<}~G(HB9Lf揜DPHdP {IU/Eyi==&߯^U߉[)A )HYHT[;Kmuͻ*x0rOf$bZX'o TMNf7ô!%j #߮(O7KX Bk_ G|.VFp˝\n;쪪kkr `vtM>ۗgt}\`* yM" }{އh t:*PP M I@bN>1n$ɿ#/ûL2{'Bi nP})""ڶ*جt*T+eל0tC=JJ$px/}XE`& |:"GuVD¤tQq؁R$#ΏOW{PCR,ﭤC|!h !ER}}O|BW}IO<|701_z_>yUbrfmj} R@wh,hR_\nD#Lohbp؈&"+gǡ:'nO[5TߣuM ~']UQQ׈U r!A@HOt.KːӾ#K;o|pQX'AR C+"#uL^T`{"Ľ翇JϯiӢq[~9}/1/\Q<R& {*(j:$n+Q-06y#3梾?I *Nmgvb3 L²YbYd0aXg1فFk[饸.F"MqEiZgV7z60ZYP8޵{N, b)[ r!M+l7,1jDep(N'RĘ6iDj8#;o[Q_Ӱg^CgiR.PyD7 wb;' {"X'gN>jkX8J^U8sД[~: R+g.:w?ܜAfwþuy闫-ZY֟"@u%u8ʒeɛ0x1ދ=/yFiV5-'ϖ~N~m OF&#o#./xϞ{= 5o2/j*nM7ozu:sb s28{&[pjLaf֌oE]-@j+&cۆAea"=oxx㆞ޗ:jϽ|fR|TPBy\Ns]E<~x ;a ۽\@^ߡs\2Xr˛~)9XOS3[~Xph) &OQg^5!+V:ajqݨ!QlPC=)wL0-~r  Է0ʯ!,tP& Pp̼qл#sS零͕fZ$.IW$w??au^Wmz'Le#  AF޷^cn[-S[ͥ ^~tRX .Ngƴi ~[AjܰöSKt%ApÓ7n&6ǿ7ٔ}@%}3I'm)fDQ!^TQ̍7_:KaٔD%uP,rpKAϪLnYw8qڮ uV d;Uϓ =YbMk%@%ڤXԢۊ7͂e0iw`&gs:+?ՑA9a 3\Chl g(&Y;EQֶMmu5 >gD{LD nl7PC'XW$BazgCr{QBL<Q3Y Y'*p[cڳ 83~֭Qɀ<}(gLGp5?[7_˚0j84q rUGU{)'ԝj gIoT7_=ۆBZցݟ A+è6|d(||ڣ.}YzH$!!tx]ۖswy畝"U:\ aP'J#?%H\Æ:HY D`iP&(V@Xˆ:\P6vR;T zH4P0QW:wo۝5Y6~Gw rlbm0% zO"vHM"YR?|ߞ/#wZ_㎎>'̿S3^[h NjJL Jϔ+r\m[ڲ4k:8GB̩560O{glWiU* J1%?qh&>kkv_w!jXO*V B[Aѯ2F4!83 &=a~0W#jo` v_?7 `U&2NcfPt<=](b' #{lCZͷRlI3e(˼6v\rZ^J"VUUG{`8_O5ͫk0Ul&m` Rٚi9/A@cVjxJH4@C6/ cYcero*lP BVV[msVKsX+0;sC~WW`N"2`Vadmz( G-kE RrŤUz7Ǫ!BhTe7i}gFoZ QӸE%9y gӳT4Trp`_4zDh:+g8=޺SHd $nTU\ϯKvrl5'$8"{q*Gpa%jXSfYߐ^F1 ƕz+<++Vc4AY%_qkvnpW}RDj"&4tvz?ΎSJC? ZavW|Ѷ2AO/Az"HdҒh]uf@aIUů)+ᄣg^l ڞЩ]?p2J 3!/.߭I_V z\/cU}Ul?=!'L0S>zz0xC&(*Tԓ2ōk?`W/0x]>Q z4.iw׳чHz,M33Y#b o٠yXc( f#(A_F@ܤ(=};fM~\&ad `l(=Bi~к Z}[E%Zu\$KG Yn+q̊E+jfbM )&ؠx 4 ʊ%׾nK<5fjCOFP9q_! 8` XמU{"Y~wj2^=[*Qκc1sF2Hf/^AIo52%T |n|Sݢ157YfrߙjĨ"n`tYDQ/~ G_ u< U%ZծH{BTFIQ"͝0ȩߥ!!|R'7Vw-J)I9e(Y^_F fk p+fJ[b)9Ni6ctnt*%wDEJP.x&+ sSNWfUBA<ܾZ[Q:_xgA? uWϛeۍXN\L!ZZNԼyn˂ms!oH%0𚦸9S?gRzՀv~s[$ꘋg!%l+Bg ;i爿˽Me^ԝ2Ѯ3`QĤcEiEmm7dkۗ9>bɼ{NϷspK./nr^4 "ýLG^}༘-Ftn_n+^3nT^?~ؗY|zp;pstl$+jVlE&%!ΖEH(>I0=@"!p,I3"M0]|Zʪ-$;.A Z9}۩v~$DY)R£*zm*bVL%ܢx0"k̘@(HR@L0] x?ˮ / /[OMf.=(^횾aޣ82 Fz;>U?]kkY0(nNv+k" !CғwVa4)>@ªC?@tfri=mӁ? ;5D2xC:+}myYH=҇PM>=0ڞ R6%-/T2˓_Ojk-Eӝ _TS syM&{Ƌmz`KOirgemfXNLldW=-=UO0NNv_ت>uJgjryr]#^<ü5r}$?!ohaXq>UQ ipavWR9IaRнyOń׌ֵ_;?<]:t]$xL/(Y 9mff :%TmK2Q W2@{~jBK?]PLjr)#]x+*=l*RP*/e_8'|V"%\mlߞ L/z0(v%p$6hiHG:Y h-<_] bcF)!{Ԝb(8y\~eEeQ_^-, xB&\MB-#G=L#rOijtۥ Nvs]yImRDU{ےh&s}ˑǝ[W( JKǶ'cC'c\ܸP=0kǯcl$;yE~iѴKPw A&P8ϹcwGga0q ЈzҠ$G@%BES*{)8r {Ǭp÷<]QhTX:E159 H*)U}9~9י0kf0ڱaX&Eaˬ¬>n+eEJ_4o[kYb/Kf&i80rojsF^BnyY/3.^HC|=y-zv[ID$ 8ŨH 93"c0<{34CqvM>($!ϧ-/7$5I!I1B@_չZ|ĊZ.jSϒқ(ZNpqVHGɢc'x6E`'! I܊N0Mm".+JNҲy@+8u;ηΰs5RZiZi[~{D+MT}TL?  ZNz6×D b6rZUVGlդDH84]peq~Ivg|[A:̫ dlE1*R' k Iv;I(\NDAT\|.zVڤW v"Sw+NvtJU\*ڣI}&"Q"$TäPmG RdrBNǀb$N/_ތw'[Q*B I!ma`yUuHkäw*4#iJQLҪiOT} fX`A3(7%@/F /!ʋ~ICeGuOƨi4a AӪ(HRŊ;`XMcx/W$(r95tY0A (*,k5p{vfW7'yҁ֝Rh=<3DAcʠ%w:vlHz~0C[ +I!{A'S-( 0}'w5"NibŠ(#eCCmT(BTVB'D.Zm[_o!)93lwgvSjTp>A/NI}YvHRMHCD! BA LpzN\VVOuM% =Zus e.gֈRë(hP)ڟd|12(]>lva pા\kR,0t.t[B9ˆdꟉ#;h5-[n#xR6ܰ^"RYۇbæH\*g~\-:wa KUC(_vd{">M1ZDʪN ҍI@NJ&?v&KgY)!9Kgg={' 2TGY)RH]x>pZ< cG̦\E%dvioҖ?ΞED=zOooV *ߢx @?^ 1}*]&̔Il|#a%i4gB#u^b~cԅݷ ocت=NQ­ ARB⃶HJɆ 7 %`蝺?U 5Daywv 'B|-"ZeXl7!%^'X X #9(iH1t DtwO?cNP"39H"*2D N>a'xdl3 op*o-h/HNc=T%hR|Ζ!wsVq[͘A9ꪅRuf\dZ&' (%YNH+]$W,+is 4:gXd"OZb e{ SX]2:˷6LWv3l* !Ӌ$~Z;|z.|U7WcQue}S="ϨKg~c, 騞CL8ݧ4C3mmߢ`וʅ#b.Ҡ* 1.9rxj 6NL/zH$fq!%3C&~˓}ً"SУqʀ}nO GX@B)Qa6\?"2+auOA'3Htg:|.Gxd޿ lGy;q:IA |[98^XMRbg)* <"L: Jܬ"Gp+h 'k+Y5սUL} d?y"?GA֏ j;xxk|CZnooZӤ}ЛA^KQh򅒌,O릕R(!`UX yl`T5>kFQ U{TPIC .[&A .!i87ǐ#ơy<:d,4e;0X¡O"x-UQ RRd0@R1W&Au.&<ֲܻO"$܁^D9>Hg3ܪ} ]BH (gP!]kS*M8jB3"Xe~st2$R8Hdu):CVI \]4%a,8֟:zn=ȍ owYDp"1BI]j3ApܖàzRu;=&]'}oqMX(DkK7f;Fۭ\lZgr,r%Xe&#n8?}_ύG .xSF0m%O:T"RtǞnl` 4{%UN*:pF]'?h3N_ \?TX.)'}s>3n&4A4Oe!C#6c-C_J^:0Ve=y"(1-~ॽg {,o³=QNvNEM*"lhh}24pWzg]V.-cb7 <}v`A`iV0*0w-.TIku J~Yʥ:.j2dD=7,Q]M߫nu1i Z[qEkKiVk]8f/駫b%ȏ5t gvy)#E'7:Ir ΍[KXHB$YY'! rskv&ɍ+&)yb\c&i ,U N`)e#0=e}bMj &s׵o+tL*1vI.=U 8qWpML5DrD $HbaתH}>j FI/E{ zK[}@^ uC9 /8);/;p#KcW+&}iXd=4{v=,_%qX *(ۛZ+ ͜f =>L<͇u3<}z@8 t4/Uo=mi9puWR uWogJSoM;nTMI͡^;Ƅ|`펪_15j?'akǴ^Eӧ5}wnq:vgh (`)" cm|>Np|8cPX[_gnv)Mv; .QmYQRc I/g WG}NhzgJ$qvO!CN1{;7tc0`IH0_/ {%]a O"E^hV;A5-T74q8UlDĠɣ=~9` RUwWa7hiCf*IE1=w-UEYߣ^ZȞVe0%26QrS1Xi}ͧ(w*5!K*) $t^F.6`ane'g,/:S_ߛmhWE 7瀿!+nI6B Qـnjn{?syVJy(-jQ6F$tŞI(R׽.W-] wew-IpKlp$3è)ȩ$SY.[*8(` ֻ[,JꩽYy *o X`7A\D咶\o80BA=8^/Ad1l'ٝJ,N ޸%Mb Y\pj4PS2F8h5;~ˍ'\Tr8\L2x, <5UWdN#y@nP~%$kg  ֋wDK~Lg>U^BJ&S$pz@~}mbGEi!# s:,@U LϴÙܖ!~':%E} ?GF%Dʆ;E tKj()ݘ}AG4ՙJ)B3!fapSD!_ ]?fW|MyСH RD|LY5mJJͨ,Sv$r.O-:UϳrJ:Vqj=j!i6Kf.y_Ybmao kd88h[J4}M0 @ A{ _^<ן#!\*}u8`V dS ;0eXK_}$no $M0$p31ܞ"MW I=Zo]V΃hcz `$sr*R~ lfd'A[˭+*KjV|-EIafh;PtroG>xvhȷ;yށ,%FGvX)/bX;<qe#.=G9I݃G9'(#B?6B섩l0@[%.Y1ȁ]N[l"eA*0BQ߶޹}W a[ Q;2)+9s)|o(C4:#=ZW›8Ú5*Ej^55$]①Mx 8n S9$ .Q*^$>Hv4/4Cԑߘ2Ϩznh # O޹m3ӍN쩌!ꇗ^6>(:Wwsy5+`HEt=tNQPsolF@Ba ?P0 ;~(.0 P)}V@"A(vڴ(AJlç|/:ʮ;>@ 4!lF!4PÂEf.npfF^jdbU'[P3|cQ͹-(@ .MVT;"+ޮr@p@c'?*=cv .v+wIآ7v/{N^n;I1 :nF}1 V'P/ړ y-W|.9={+kkaMR꯬Gq%ڦDEżzl5񇭚Y%ʷgZ\m-g{YS-8Q!i͕W]ՖZ5X.˄t+N7ZkKi*ny>˓Z3ᔲT;:XMTDbf ɤ{zJYY$ R褥H0vka\).W2εU{w}ooوa:֧( e/q4{\9QswU]v9HggrMrįFԻ=&H Vyb3>007A;8 }:R7=OIبs6\Oo%-kjez{ޙˍM߮z4b,2ڮw7z1aIƙWQI5\0g[oz9ɱXH\V+G|ҔYʘBeHat')]w`4&UgH2ɝ=1y<|~66~yγ٣Z4]g;1ª)pbJ2 Qo3MHVARsu; +`,5sJɥK~qڼ$Fr"3'I_;,lض Weo1G.A)%g涜{~l滑ڋx:Iip3ߦZV-!FmK,VYLk)DIh:i.;>k@@Y1 \%EP(.Nu/A=P,v0'bыh`3ͭ޷ɷ"?f7{a2O⫣9Gsԕ;vCq5}|z=5?m6J$&k^+-Dq\$DAXlnTu_;sϻZ(@iaYNC$`#7Q?dۮҤ%%q1UYw?AΖ+TIi4WU[Ӻs]g4(~_W5q뷁VXlZ P:ձv~/XJ5cu9UuNl~}Oͼ>ːmŕhn*gV #!$TQ}g^.Vm³ kw!=?ԍzHjMDH؃]{wÿBJ_K~5AA97kCNRwV!T Ad!7S C8gLn;G<&gj@L2A RE:RIA>Nғ훽.8Q SpfO` h, ^ VOEQ@1F\'[(J̏a1:v[{ "fMgTy1' 1.QЊg\wP0I̾Sm_eE|1232@1ӿc0kYsMnB@Ԡ/Zg:H:\ [3~OhN @I3B"AB$,92 DCӅX#N»dtPD4Paઔ$KS`) [_ɗ4D>v}~?9 i';zMr fF)tr,Ӥg-p~fqY!7dc}tWCsn 9&DE%3d%l IQ 2pm۪7d d:>K.Pʏ9JN}jE,6}H|gn^Nb#X} nX+s6^j ݬPKg7FMgmܭ0i&&%pV7+<Sy p5 ل7Nx/ $cGV"bo)pi Z4֪nr\dGj_~s->;;PʩzWRtFBuz]W8;rZ2UqxBumĐI ~5Ɩz2TheJYC2ܳ/- ǡa'p G&ȗ+̜\tQI]7|cOZ#"3Y P|~Ek vN窚!r5~ja&Qd5/s*LuZ5vN/ZoGD`HUrE?F/j*K.:0ɠ)I_>ňO&YWqY{g}[ok㤶%Her[d9A.m"6@H Th4dSApq*I$9^vĸQ.oSXƗ54]i4PhBpX͍ kՕŠͣs+2D? w+K0ϋ4,@ZA.o.%L5T&FZ5).PF5TlTZ*%ƾו=ަ[ABPrAq &*5(5mJ(mRR*B1kY,(I7W+r׉[$5M CqO~zzmmP,e {ta% ɫ!.KNӡҪGfY3˛p![TGZڂĸѩ[)ƢEMwg"h?=3Lѝ`Z? %DZ p9Hjb;n;hG?>j2̅`> jϞ*9ǯ=wU0,Q8.D"a4Qlbkc68=bK'QQ ?ͳjYv. |`g(=4!$$DOտ˷[aF4Fo]A_,4 ےR gYC;w{k|QP7~){ߓF׎oaM P~mC2D 3k&ō\m[,kd -iJF`**ѵV F[krc)iݔ`HPz|d''sW!<R \T_Ow|98~=_ː'pB@cq>9To*U=_?)(ADFdko[B䜹KyZ‘e\:U3ՐX FDHZaIj B=/禰qkܷnG15YҿQXP-afRA1VS~K `1LƾS.uH5KRL y6F9y?{Ļ\z+'2"W2+"jS}mm)3O*RvHgoWUE<^egX+em}6ttk~To%v;|s^s/[)?qHx=c27`nl)u(g@9R))DvѡQ:A9i{7NGw  ,E!(J Xӂ|Eg__~Һ=NfyD(=yFᑓ1Ɇx0o"iIk*9 @y#Ȍ ֋sIO80,0ONA!:} ˡظQo$*;}pB q\bgkI;a7ffH Yf_k0XPaM;6C ^ =`fFp\[e 鲋?  !¹SC Ve@;B>x!"ʄ̤2ҥblHrcAO@&K(NaDxb4C$y x55NSOkǂ:!!CMmQUiM( AeM"!QI\43%" a4Zh,i4MmAS4[U EbkoWQ9DpXbsL5 FRJkW*,M4VbhUצڏ;E,lRF)iII LƤQ3a[jrJVY-MT"m$flѦtҍWȨb"===L >.5M_ҭ,>>ᘔ#د _}'~9$uj=2Jhʋ[A R+Ik ,g7.M$@VmQ5d[֜!x,nE2ѻd֘ņ+x'2m!#C=]Q=d0METml[Rm61TmhF#%\$$s0@{sDJb?CF7gD0]N+vJ= 4ZMspZM]=$Iqˌ¨< `$i,[YI 234K֓q4+&7pO"! uN{(#H0M`'pQl#rB!F| ,BQsp_,5r#=ID4 j&vtX\!aq7nR pD;?9' !G~~ 7Pǧ\/I;o7 Ʋj#b#& ^O)zĥQDg޲QHޝ`hZ`đxmѵ }ƴpPzlHfe{}XEᄓ*5DCOB$'20`|&mӀz{V~i,P[ǫ?vĠT1 };C($!3j'@;vB0yszv+/68"2"Eau%}.dC0޽~T8M;\uH1׵Ȳ$ ԠGUI /p\C6wfe_(CZ(G9"~P \qs psnTDK҈9ADA 6VLBxTXkkj .,GQkl$0%+wg-]ZQru _wvdAISP!!Eh>(@6řT,B$C`@T"U(Ơ_hMCg%U~_$~$ް`I ]!7kcĸm!Z"u=TW_f  PfMQ ŔLٖBAڡϠuUC=EpߵRoˊ! $I2u[$TNJs(9gQ76ҽӱ<U-ն(ߦ0=FS`=p"a8;56^Oj[UV `[+ mn5xЁ l!u+ëE+0p3 Pp';fBLdvb+Wֈs߇;`w%vy@|R#ќ:( TRy5ݐI=0C$w6_'oz/bQ1AOxIB* ?5zy;4a''[ol3GS oIІ U1KⰏH+qVҴ v| L@9 σ@Tt[uCUh\e=hiH893M᧹ѻ+}7zJ"J @J§~ܟ`|<O$܋aN܏?#s|dY88{xO Xsiꇣ. M%SdL#}U:Q@qߜ JcÅW4":&Oi B;pAe@$3$SP!-?fk:6UM0XUSjgvX\NލB &oתA> -g0I5/%'oۤ(4*Q>߻7ïF$oC~?toIi}{+uAS|G*[twQ Qbtj8T!"(iOEd[~t}g;WyA.0)dܰ67$Q;%!BZ_]Y~9˷<׳x {L:–,aHZc8E~G厽_Y]#%E@GBo_ `x]v v@{SD;8^4I<~GcH'TYS}=]K˄hsۡ/!_4X ];DՁ^`g.AI(!w?9SSݝAs軶"o.1vVkV]7դ-2FBVfp &)3%/V iH_"m3+zu%,{u( 2#,X,~[d--\seSf uٷh\5ƁgtMcӬ^YvdgϨ7aN'yL"u=FDQadSE_W8r#ϒy8J\ `Hb56 )\Exq~&Z8[:_ V>̧:pk:2f Š%'̤.fגNIȨB)b \`DQPvNc`SSE3U[kτ鐹eOQeI8l=KSJQ=ӵ% 89Ď^#VDPt`2e mbMIyQ'Ul ys5Ah2q yEya!a@P l/ǘ: \ rꄼ0+>P[ݭ_˱ԝH}_ ;xfu-zv4qFч]PqʣȪ{kVv(Ak`\I7ܠZrE O{!R1?~=ߞ_`z_i f{>~p혇D}Ԭdѧ}>E?H%,Y'5)m:v7._i%IT\(GPAK7zw)VCM"/;FzȴrZݍBhtĥ y߲qܱl6AZXꠐ_.^ӊ¶<74e6¹!vK1r*,&\ƋY6D:XJtC6:c%r q讛L"Ͼ8IXQc?FC߽Pj,7cH4}#8l㿵+ Vãeq{k0:߆AncIe6D@:n^'ͦRݹ}{p SgQNȭ9OoI>>qf )@nIerp_˃D3`y}Smy=b1Pkz;su02V]L/z߀P2mm<~𶩨jU'pXCKynm8BRF P)Q)qysn =mlxꭢWGgdYkl.Dz|͝"c%F5- Qw]2411)"rq4&y<”j8a3sf$Xwq%6϶bQ0۷̽~{?G{1 ~N3^Ҷnd}㟱!PD#6"3 L񛆺T)+4SzI @Z36 skz>(6~zG{f~_7 u {Oo) baH/ӔK aq 8pÅ?OX`{;uO3/Ggcs`gL*9a?>ϗv܈%~N;V~ ꞇt/ZҊ 3LP b@O}mUyNTWx}{&n=@Q3:D 7ݿ?/|svMaTΚhxaGzH1LPx-XYΥ?qWS61o_w?YOܡhу GROQXVR,&Wr Rx2YCS^6ٛL.Ce7& RIɿ4~[4j)"xXii 'J^:QJޛ!V yO/4'W,G0ikip3[YJM($kȁT]4ԳE!#)j`@U7KjRf Yuo> _*CCECnrkaHɹ:m '@mYhн,:@do/(>?/ߐ3ʒ\7n 6ux\ʠJY6y<4t(-7υZE*PY/Yę,TvDvK.9ph}o)<)y:Q6a;Xn0Hi^BMy&$ }]՞j># Y{Z︫JBuf)y}#;5KU`fC58կon۹D1-ҏ>}6,X8II=E;(c>1#nM?1 :5:i?>V "\~6z|wh?%x#sӓu=_ [I"Xh_#x#u~ON|)r/psO2H\xM>NDaJ2)[Qw t I?f<1GDW`Bwz6)(($z KuwC"rE<=կ\ҽP rF6cz,,ιņd3[E>_*ڇ&X l'/}*UC]%]^u1Y2ȫ)q/נY߷οOm\(5:TŽX+lM7*GRhlʢK]. w5DLab>r*Hn Wl,n"7|nڅtT\w<!e>t@ϽۗDRT5BMT @XыHUT@e#íx=&|A uZ~ ubޣf:Oyvy<rNr۷HОsά{:j')цkƿnE2\񟛆('9w;qiUⳠ:S*r=<8œ/Yv۶ҦZu:uaj&֕ޚzRYzT/Xe8+ظH9cVZ"41˿suP>|=`b;vp=xcws˲q"2Gu#ݘ^\~j嶟v1^?N^58.nN=: j72.?_pyHX 5׻ཝOǗQꍷש[o9[m>[wO[ħ$v}wlW&>ݚ1+W7<;]%TiLbk+Og߱A28EvF&㊈x'#e\e'.w+oy|L? zFΞ=dדv yK/?ǨTe灔;Oնh}E"i;۞BJ e& C09 i|u`v<0&٢9r b7!@@D [53v|$ :z'eDpFzZ0Wf*o:pz͔ I 9}b:O I/ d]>A">C#cx 2w(To9x[.R 3OoDEZyNb)p8>G`SgHi<5>n1YaYbRySU#u;FR^$ώgKEe;.Zi˪<>fy䈪BjϪ1+ķmJF/]~?LsL~=!' nUfFURD]éQ|wrhm|p=zz>u2`=[^ԋLIs#d/ BOF)jѡ 4O`ߋ\(GTm0}/ǔDTc$ja ^nVpعb|Riϭƞt]H,n1$$@5iuud,1?ho˝q'6T姽Dܧk^tDw.yizv~hߢ 9wOc}_ۗ3ꙏ{oy>[t!>2 Y7 8v7'.-=Maɔe[}+o(J pέa#?Ewcڳۮ\=*fK@G`) 睯 ~vafYfΕ1F5!UZU0E evLDc|{oyg3z2QqX2̋npR:o =T4Wr#G6ґӦ"3r :yQ%*7˛2-4'>Y0ӱ5Ξ ۃXfLIJ%8Ȼh\ID*#(-DO.p,3}п&ޯDbKN)KY^`(fD<|>џm픾%<#>O_iet-;d/x,[U{Z$@֝)H)wdF;OBAh4ѷZIn[kߣ\y{l9?\K 5Dp`rJq /O5 f9眑nveۚV|QҼsrh٧lTF~yR9ͼH9=;JYJ$m4bv=1A}6sh}yXxg"9& ױ$fY_+h^PݺowMw|x]MG{]9 :L'bEhSʴϼ0z~9~n}ut+ڧ:{N: SA!u'Vx #˜$Ɵh=R9\n̄\1)W3ׄ|v>Y}utqjz<^"÷ĎKcٜf4Nh'׿Bh{AxGO!uS.hsd%ΛJ%#s7h{tk)ֵ?o&禯S--2J'0o=Z 侷yOM7S<ȩ`%?.]#_sebJ4lzϫLuwmPJ}%ߟ^{n˄ T>G"Ulu CݔE,!V۹uD1Vi1vF2ϦBrGQ%H[%fZFl-?n5ןd;\*wg(χkt++|vun<=clK.WI|{}:Sj^vwUubL#`}Uӭu~ ]sK_V}{=CKb%^o=ݎz_>8=zgN O] u;:JΓf==ggzkqx:^5i[\'>~:ݟKn;rƁANfD,+dTGc>q_HcYヲm5tFtOxq|v0paSyÀgxj4˺ye;e(w^N?^C=>m%wi!G ,.]2o;(Gx='9-xeؓ?7qy݇?r1(#ԴmfS~;-u%]*2v}ZYm ̾ݣ6,O{xRw"8~ 'j(}saXh@DN/@V}k&1S>6ߺ`MFXp:=јe(['WT _eQ??g$)P,<-t"S!xd 솆&EX dRTTUccFm]DPI3 ͷJٶ b*>-ZMQbl™*1IJ7:)BV1F-w]U*Rcbfԭ&ej#EE&%TK% ]-4C FJeF"$3JfQXcaY $Q`,j35 X&FJAHҰ&4AD&cB 3FILR%A F1P$bXhAlBmdT"5PvjS&ɐ "ʒIQkIY3mbLj7m[WMR_ȵD!Z!Me,EbRE%bjm46fV6KF|$$hHIaJ@f%"AZ62a- DIQ*ZZmbciQh5KƵRAG%5RҴ Wq ȱQ_HQ)]Jw8P%UU/i?RЧy 9K-&k B wAln& C rD&=o{Q_\o/"k_ ;uOw7jV\3T@EZOa!(2fLa$F2̌& pWr2OHLyK(p1 ' SO'ZAM PӶĆ < #:SNCŧ۞Liٽr&JC ԚTgEBQ9ώ٥D/kBPe!G' ԩCR+H eJPJ l n)![U jQ f42uH{TpB'*?4j~/Հݻ}>޼t /_e_K/qDı0` 9/Οm{Mv Ox8A~܁(Bgﳯ_7/sQOu A7#t}X鸁8pCX9@;ڔɬ+$y@gTIє!iY"9{-fr2ysH#wi'1VDOXzR_D!ьI=Ym^u-ykj'x'FݤwrfW"YnĂ (<;JB$f 64l3JN>!ݱoW)UDBOׯ}#WF ]1I;}_A]ѥo {zPd@vn8'@ TN%qn7IAK;8N5}h(ᲁj s{Bd}S\^]?uH keI {*h@cqЭI$/$;@(/?x-Yn#/Xn<2c<' 7}㿕2wF@pt/jw{}3vOVS[y3{/{W;oL1Є ÿsnvKXDq}%NUfG1R7@l&^3Di5wn ZXK0qi q 46'lZs֠A)Cw- wp4=ћ&$ͺ{PNCe>/ӫa?Hva 5}޿ԉ%g*uyU>(Ko?L!fMG=`q37U 3l7Y Kyy)7@>hwZ?`:t}?WU < X:@ eG祘Po(u(O@=VHA#Eת%<v] $>⃥J > *{{LglHTJ8\ڲ+5rAy/o~{vm}Q7B-HMVrn|Og.ɦb4Hܺ~bLsܯ)ʠ+ß߹1d]E FZ.A]{~lFݙmeJn=DPF&Py߳dGRSAi#'C:.m|SBW>w FCw`yb }?PG" 9uK{ߋnc/n`wEoSP/JU; SZ]Rix^HB)!Aِ%{hmKn_⟑*Ewx&LĤ :sMMĊZ8誧X@#rnSz(C*mY { y'ڊ?s] koo)L9Lcyӎs~S2qJ-$$0$=!k-K ;c 0CO2oVPEzȿQ暭k9$] MW UJwb=Tҟfq"5,'|& Y^rQqt4}0gh3<1=3:oYa|L퇮x(45`;XDiGR6!G1K퇰.i{ŗWo# }@ȥ(d\_IK.^ňCYg{{5nw#rfv!<{"{;+nn;K~[@Eʫy:L-v;ӚB!La$tÐ#Qk/QY?-ڭ\#3Ur]BՊY"`?1*-N`7BV#WgH/ #1Xx Z(}>eO]CGQzpK s(' 9tOJwS ƻ^՚u|r]Tޏm ɗg9e,>ضJT&-qO9M@!: ?pOh0k %y*|]3 w^vf@%TKyx=|`#@{)`6J=tR'*:am[&jsQ%b$r,! nd1 (Zaal'x\TIEr~2@X-BY <0 Ut&>Q0v%Rq0:5#K$h]$F&6]դ?-g}_ yog=T-Vi=WE6_O~GjH5f7jDv= f T&\ Oӊ$as}oْAqyY?6~U@$Lږ1/]."DU?oSC^ZT] 28՝^aКunXE|qOkT'W˜:B؈؋Uj jԧ#n0s՞N5?f9KH-4V]1$M"y"t]=NCՖ9(TTd9Yp:J`6ogH߸ïEiಬ{qš#Wێ&{: d˥SIRp?d0>U3/b `S%@ϻ7uhu@4$?NR7i(RJ'W^sG"V  D F=}GjyM-j5E1+ @P1L[((A!NN9&<9m~!?=sBGŦZn.WlPv9ӵ *WdDݰ[{} ȊQЃ*vTs)ˁ 9JÛӃ&ʮ9NR{Kx IQ`|oZV@V+z>Xơ@%0Eҍ_c,%@8uXK{ v`rP̂"X7V0GM8{Kcx9J# O5EtTe=. %['9Bϧ_:b):~% ͒C@tLؙ\(I!WKE4=ݯB̎%)k酧Peڳ#'vEAmǡJw:]gpakr`@%p  ߤ.S2N Bm{Å(r8 6`rS %>|bXYViFΨn͔#G+/ǎ]Py`@Q$;Ĩ90 a?x1CZE[?So'NP>~jƍ2AèL]3.])+ B,"B Oӧۇl4}۩oֿ.Jr:Pv,G ?b'"VFd }y1J ?G"qL*h&()GlCro*'8Nv&O}9^7 42A*Mxq$MR(j MV7ڸ:?XF^wY|e66?iT *b*8҆A $WY!;C`4BYꇏ2SkQAEQB^;:MC7)=#Qriz "fS={"_ #~7?>טs!g? [_ <0\ǵ37UaT>x NVs<7}J_ ϯ=XW4$E{f7Ͽ:&ܓ-("9ls8 ; X'E>|jSAz)zzNoi|$ZBb}tB=Jm{X,Ηrss!VSayQQUb+-:- `]Y.m]5/sB,]B$ɲ4zU̱?971 NlhL=# ~2$˫+i`|# H6rdGY5w"7*|gk 7'{n.m ݅@DJ;;"{)XffZBX̕D@E1!x^Ӥݩ*:U\rc$E-yw;1,_?~o?N*IZh-W\Mi5r_*!g<Or;{ry *7=Jմ[&h<szُ:Ǜ[Z0z ~&67&SL x":aAZj*X Nh{س3s;%fqϋY-䝍e$C*֗Dqvgm7m;|1m'`{9'Ó(ѧh +4deFu H̻G-p|ܼ*% 2G5R휯 :=UqETfmΈݯ%027_j%mv !YƬ?]>5tM#Dݰg0xl1!4+4ugtoVލRI5ie0D$ E0Pٺvm&ĄYǭWHbnRIAvxVK9_/gHR{bD֑47#"B@JZEyA.OZD~uwz^A0/?/Wo?y?o????___?gWm??so#3im~Op?_(A?@)cS& teW? F;R0pI@SsS_v;3Sό<|ip?byx`1=yӤO|Eo ߘy< M;O&'[Ɍq9eYh́Yj&k)ToPʬk-+cvmJ4:I5aؖ{pƒ^oKjjR+v-աˆZ**ŝįQEghp:._YƷ.soܗ#2fdr5(Rm0aPӛʱN|t!*CmFŮFj5.Q:Jղg)mb'*W#0\kAj|9#b^1][/O.\˒᜻.W(XBW8Й`Ӈ.q+!`^{ٱf Ꞣ6GOi1ed~󯃲ר2gmϦ\3q8xz*}i:4aWVV1z ꦪ)$"kKUZ!咉EM#ѥ´uݸJW}[S)^b@kSUȬq[ .j\-czY7Jk\|aY̵6e1cCȭ̇]VPεz^ghMs݇aUH^-y`$hH"F){l'n$mO C='b=xTa鶨5LU9Y;))ퟁ`~xGJ.ao;`w8=9 wuiF13{os:[9b"yc̄8@}NCA8S߳?+j|5J 5puz5qi\TsB$@CnGfb9=ǓnΔ _ ғ{DuT-Rk4}BL p6_j*@IҰ3A"rL &HJu MM @aP<u\0G/;;J+:.̠;.;6m<NnOOpJjJ`.:Ādj7H QtDX*_|oQ?<__zg|Ti~I}t1ݓ[)S)DO  @ 3k`d(C@H# |NifS8>!ij¹Av*3^L 3UGHLVOǕёg.:ٜsI$2 J4.x*WO]fy|0DOGՠܝcO-{>B pjRQc숄+XB7] ?o<Ϗma6G 3(쪀8UA5nȣ_5!-uG;VPy?7AHu^JFC!;\C:6r䙛t$Q`ǒ'&y\7f& w`WYmg$5;}Q\ҍ.i0`=`Py0`{9 Od6a ذϝ{8_{#ۂ5oa&?O `Sd}Vj|OoC--;"`mԬ A"'9(UWWD킌2ظf2Y`Pi͎쳂H Njqq#1%xG')vPրb/fTIPJ)dU;X)_㷏|iӐֹ-C%mȃma"L&bU´EbItNMN8?_yQ3˝.d ,ܿf iJ*Gύ/A=9u/d5^&l Rj2ޞ9 NI?W]w A9~ū ly+-=yx֓q go5O@wu #[׮QuQYᥐp3eq6݅2vT`1ᾺvCR^zkQ?2T^O(И ׏]9^'e;(@ ?~ON+""7RI8 ![> I5!k@^k2j4c2ѵEJmQhJ *kE J4 UEQElkM*-sj:m\c Zk5bdƴ@?4Z'-CPQP5AH]oϷ߳!ڨŲj4K2 3NDv{Cf{idNkX£^_m}B:Py!Dr!;i~o zvGqPLq $ِ-6EEH0 Jh+/;kA1pUN 7) C,8GL/jP~H3I&a rBw3]͐YLlm, !qy[+&)L1mn?U':H W{yY%@._x~ʘ~}DO&}(4+bK`3P?txo0甌t H3󉮏&;O6I˝:|mpjf0-LëwCVWeha-{IvٕP.sA1]%P["D:TbzG\{j|uU +XqCiD^ E"$Omܤ@Eƶ]tgUuُ>#&@tMmc>9<ڞSjt0H"8XUpIդR )O;bnyeժ_(%'%5tVykiU@L+* IC(DJ*WRbw E*^֊C#Yaɟ4=>%N~#"}dEjБ >/}zݺ{_7hUU^[52FJ>~rgxG+Xm Sq;IdúZVqFNKnHNw-5-ugUuegaj5!hyýQ2&D5 \.Su (@pYG˸PFtJ'oda 8:Y$9z\uN8|HGİb{C饂t*v&f ȉGXϽِLüыBh*h1PQ|q=ק߷j̷"z}ϔh|TBB~>7Z &B4ջ@`ӾVZ96`(Q沁gB#\=E "Yp"?Giqx0%? H=Rkso;&X#A-{閅ju훇QUJ YLfr~><~/'U{}^B}SM~I~oC>R{[N}{dlR,𲜙[V7 ,,mYA*DgC0"4}f d}WݮťX׮t|Y2.#8UUVk)7o*5h3ZcflWR^DDP@zI8\:FQ+(owύs~.P @,-mN!O#xloCǘ*M wEs]:w-q=)T92Q_pB\K=d8/6g p 6JDjtH[$_~$4=g~o|Dߪ)ň啦NF9+%s{i|6o(_1'?<oU? ?W"VOg~B{i_@G=]hbQ1EU ~j8sY=zߡ['A\s&ni0 [%`B mLe!Y6XMY %TRa}^@Fɢ$cI_sg1ͷQOowkw}__4"cCUR>2K½‰{oS:/ӿk̦h~-֐V YE2o^LD#tY)o{uݏnOϓbO~%SoxĎ;Oo=~TQJ pL LC8Cp C9YW4V+6g{yHJZ9IzìHNF%2 6\" A=&0!Y"0"L R=z kzwn삩,qw v'R65daUE຺߆sdH6SY*j!4'F_c05³@=81s.NYfa%Sz!(HN·\ഩd ϸNz ڐ @8dֹ-m1Q)2|l>.Bkҟn嵇懢t$Y$3_)OooD?' ϤIPozUN ȐjwlZUWui 'rDq3W9tE":ʅ%j&QQSЛ:O˗QlXوwv>b)"n(ʮ/scq?;gHlO7GSiRgg/(w睦TX&#W.#ld`qQY57%}QeNN9/guD-V:LM7qr\9O} RawSIm#uGLvKn-XlkDa )(7W-b+&8rLEMu(G;lZd8ZPRt->G?dzR6R0@d N;$6^<{A'sdv*ʢ3/H|TcյMό\1kAMujtSBU '1y,j-aV(׵7ח@+Zl<QBQ\ͅ\HyO2; xEU.7gޟTfpE n-UBM'f2$ OGՋ܈^^rfu!OH'h^P%|:} Rf_s#o!]؎0n*|e9O"~a@$r# d&ukfC ^^lNzi]|mu19Z?;{m԰5U-{|󦛆Jq|p2s5Z\8^K[8/vw\8M$g-]uLG\򢎀N=-)9}nf[ON\dFl)亖^nfršnuٝcwI3s:Kh#kMn|:H|mW01W:4IOwjɭ 7I:Y=ryŷT^W."7bpYp+ώ-0g[TeP[|(zMKu:z :JLJ>CYw/oǢHSb.)r  i9?B5ir=eLl9lʭC>kAv}&+/1ySWQ}+(ʓ;kAvKP+8?`"j̭|dPoj"wz%.[g5{2wUO01jX^uwkpuRɆ}l;Ap`̬c ,(@@U"c-$16wg~z?{f,6{3;\jupZأֲZ_Dl(EF'(:]eVhzVsERF<$)#E8TZ+ W&Z5*kEhȎtߕUB9<xaµ{.]-w0t|Q/ ~zi3lEN+]/?RPHx}#{2h]d E!RuS8˄tݬ@46e8gZI0%B׷r B#Kx̛ὙKʤlQ[UMۤ9*, ?úȯy| hF "G,ߌXdzX~k:xތ9f!AvI-,7pI~'pR ʨI3x$5zĺK: `֗a.F SG 6EsH}3MkeV?KedMʱ_ yBbcȉiC?nS1_] z-/Ns3* 5t;fO VK;p6`!oNR** CYtg}+9,$>-rޖRvQ'1GZOsSƘgĆ&$ #A%w*7%h }&P=XY93f4׮7e2e-G{#ꇟE~n9D7x +m5.Dml-A).o뉷tbs" 2p궰y c~[JKƴc.vQrbl#ѧtN哦0:Nm qP'[ L^M97w*݋="/}LrܭPt𸿍La軷(ϯj,>/YbJ>7s2y7K4Hu딁,>#g$RM|"R:Fn<‘HRhwR7ʘ5;TDmH4\:]D ʹX['Wm4ϱ$U֏%GQ1&mӐ>M٠q(D-p9s6|ٙW0`뢰UPTwGkރew*fTj՛1maM-3ⶭ,2g&D[/0ܿLvĆhz 86ms;R8k'r= ipHUTL]Od ZuY ]v(Ȋ{X&d5*5L&(:fMB Cf].羙_z,M_vEu]N#% y&|XۄeZ%ɧ}6hqߞSai~Gh6gEuU*C0wh3j`]aJմ9:KJj=P<5}s뜮DfDZxvZ daW$C} כν*j 9<%&CeWܪ[JlR۽[k!60܇~3T . um$J栕N'5 -piX'־d:#{>rˁs1x h;pQ$fa\sk*:l orKoJ!_ߜ՛9 .屽-~z(vS.hpGfV n ;DZs ơK!6 )>*}wוXGWn"O~R{v sƷP=_H&ڤ=唿͹ǜwz[0^ݼtƩկ.RNbkLMqݛ̀9(j܌﷤xqVgS;[}coen<{nߕ'ڛ]Nr;g&]gj0;BL뵏ST ۦtW Pb *46?zqʬE-(71erꅊ5M;t՗fV2ƞL*LCx# RoQ`H|q-Ze JY)gQUfԷ`S-Z{M X/-‚@Qo+wI}nd}>S}gvU|%v߼A [}%"%’vH:*PY?ͿG"}ATW 䲵UHgs%UM_ny*QDB؛[TTX2MPD'C%v E)GeҿM#D@y#H Da0 9i 2Dowwl6bpxh;LB@\(64nUr҃ցq8-lrBW]RqRU+"BLq "wun@s Q ΋)( BȜ\v)x *vFre74+3fi]_m3kجs"Cɼ{{Ҍt؋;$`H!h##iˠ*N ;J ktI-SoUIDoslt0U&IRP`)q_k{j=n5NLn$qYxf$Ӧ1@ 5d6ԏt 689SP)f(D 2mC f2Pc%2!!̂ GD4 q7[`Ao*HBQp#[p(dCI!& rrBvӅ6rNGxQ",P4r6(8RRt\aVV4й #n4)r!R8:wQ!BX"m=JPn{;XT8 ty|'qmqs),)\*8@po;fpNն&9*saư6lց|{1)P2rD$fh&HN!'Q^L)δ#7Ch? X|aOgBt6RY  I@9nS9wgÿnmlDDp!6Y/([.9i9uEwyQPu A׫Q0 fx +ULI ]u'hObǭہj/A2f ~LE& |sbȚj棠et;|EG"f9: ʓ*w4Oްϼev~F.{⑥p& |0>\vɂhE9t{v8~.z/ cmNݾXo85bJ)=&  ؄ 9P!'{l4r_ȜyVN3ȼޛ=HM>l8 5)uSN¢G"r`]Pb(" >,4+/pb7[>s98V|`oDDgyF&Ko}[Hn2dGjMb'p_W~uRd<RTO6nGљYJh1A,ʹw^FB 9 :Yck+_LRhڒQ(OrF4 s_ò?ejLOWrwM ä3$B-kOBRp8I.?-HQYH& 1SQJ2 `u=PpHBUU]US 9J(8ЈE0nF 2m!suO(or&b&1DQDX ~cǡ?ASלy[rY""j,@6"d bRs Hd`%F%gp5=GLt;5Uv> =ѕTU*40@Aicl ݟz1 [E-h5IQI4DEC2Pmf鹙y0;z;=rs?o!(bCswsH|fT}g\U@Q$F*Esk(,IIa%R5ɆfGdro(0Rx V#_`?O~ 8aE(Sz orO~0A$\E)yR7R209\BzcUՈ005܃Zv RFD*@j瘔dv/㓾o*(b}5Jis(Fe|ub r)uxcKd}kuQJqMѓ1CQsPwq]ъފ[4gNP I&PVyElVT ȵCgL;TWo@=u%ٰ$LD3XYmzbndT`>0Rt) ]JQ_s|C:V$ieZ;@R@=IL>H`]:3r-g|xqtpqJJ̋ X+~4[6F٩ȝ\ N=؝ý4@|JыҚ dsy:`)qNg.kK@@yIO9'HC1F2 vzr%+ziCxY1z#?Z D3V #EA{u–hSŧ]eHglgܯd=b0O `ﮦ֊jh@S _b5fDacoDz({8G&!fSuNJh tRBQIrσtnOAtʂe~ vH設^  ) *`()LZgKaݭ%F%zLU&1!D)UQM{ǀ<G( SE M̆=D{G?Qr}<q}ў٫c\Фxnq1yWE0:goPv~Zih/T%H祩EEj>lfW]V(~3= NMXt'Еt_h~ɫ"ׅ(hPv=$?yBN~ $X!K MOGpbP6C83@C7aڜh>'כpRh+n>$zO ї.ͤCTcd^&X~i$Y= ޮ7SdU[#Hie%w4KV,Atx$yHL! rd%ZdO;v1P7P`u6]HCww*bM G2' qv Q󪪪䧯h ?T0LʡQ]#W @T7s M3~7U*(d0癰vhcjȥnKb5D*"mRQŌl%FV 12 o(kMEM<':6>,C G¬ ŵ "(" (n0Ȉ*lcHe$4NgRTh9~N{Q>dDZeרr;,Ԛ1N% XUPZI :Sc0֌_eú0L+W&= $f@3]L.Ne!%QN#`qz6s IUfi͕H7O'C[F{aIG;;i l.6ug ضY'>W!rBH VmQV7`2~iu&MBU NL} @ ^R)@%:]CA?w06BjB9/W%*iR:NJ' Cf{q{u#EȡOs o~yΑ[TR2SJJmln{{AJ&]|JQ0 $6b*!{N􇖔w LԠ ,BC=A4 J{#+,0{E!NХ &H@-ddd*.@$=ȣ<=>(ń=Ax!?gȲ0Ӭ?:8Q`$nJ =4IR Ǡ ÝW % { J 3GߗUr$(e:%i$i˩榨Uq.I6|yHo ?Q߳`aL$Ω¦ڡ&V*'/hxG Q ߭@UC|pNuc_ᢵn48WxvW*@$3LSvXJi/xɼj{x~R3HPHma]'j U=+#Z3yS U8羃lb`-BfL<Ʃ҆&?{Y!#ܴ ) .3b!^ Y!ۄ6gd:aOn@Niy$b ,I!g@Dm p+ }BVtf$lB NAGE&922NICLsF%@ WBSDe'0:H W ||B&2GnOvpx54"'ݹMepo\ǃcp9}`0~{hI;.,{L1?# yD '~>HdɟA4buT9#s?8wZQ{ kK*SopZhcRԱ aCQ y!~*dyi8 =$,P>6C0ÀmMUET5O#gѓUa I*.? | 1D>L.clkrJ,y)83"F5 !&#ௌ<;@E%Kt#O%7Ǔ>x#s#7D烓T"DR$ >@(& HwÃ5˭ֆ$ܵ5}:b 6ڋm?$"T̽ Ubtl|nۖz?Kzu'k?^z,*CF:ct_v0X;nS}MnŰh.xxop &tj"*ö́D~erWw%(&bz:lمFƴ"iC Jέ/34 `4sSG`T2>1AJ&dDm)E_]E(:7;e VwWoS[?#qYc !Щc 2iwTXϡB e6(% t866ZKUL.=gi aE>h(J)4YQR'~|>7FkbA(H xdq%r&Mtɭa}Vr= `j IZ(7ɳ,0"$c>8LL&!PB&L L|9GA^O!'נ7U!#pw0 g>tS%GWz:/Xe^Mb"<^ P0r N:06K ȃۄuT;e\z<9I&hyAҌQyCܼRǐCAJ4:t\#>^ xr&@ 4ܦ4@HlVBBuEЉ@X|;#ef>"%&""W HSj4XH=ΡěHs zFyNNC@$hdiJLhGeFaS@1K+Rl ;ckœrvMcgxy&HM'cOLwxE EnAu(&H7踷pt3Me)Uwqe/DҤƫpCIcӹwaw6;Of˰?%S2aQ*Ҧ!|PdP{klؑC7ͳxjUUUUL$gIf8%2bI2;0(h|&!$ڈRH{ңe??Ix1`'#`<ۑQx# LHYHd,YE>Ϻ2Nv!=~g@ rOv!A4t'4r._7dφ?坡)?E_'X?_q4x0qdH}3&ъ89i=mqc3H g2WyJ:EYDDE}mF2HYaNG^Nh@U|:[Ґx z&|Ңz`{z#qB4DDDXf;)!9z#)`݃Ixinw!$2Z^gp)p03"nhnoROLp!S$6 T9nO):8h5) zlzΈ1 m^?XBK1ٔIۃ4DY(+)ϗq;QP-m)Z+E"KKbj&ڭ]~ZƸ>l>İ2uUVy@q[}t:ګWcAiU^[4bGRT-Z>\F^{drtG‘v#֋DOUך5m.0}x˻bu]*)w  ^ b]FdLUz$mӛ/4<Sw!2_{ӷ' ql;4*HObw*<(H$&P},#΃L X%\򰓖aP!;2_~DwCÛMɠ`|ui€fϢHn"J!~R! R򡩛f@bLCO_R|N~\wbwS_,(Ζ%JNka_7 ( 7}fzVBe];:NAeΙV!e"AiJ H˺I>'291Wu2"եګ} Hik{y"[L`q-YV0Z8hV-)U.v3YGJb=a`D+!<==Ԟ Z[mZ="p=в|9bP0q{,Ȣ&(X(HD8Prdpwu Qqz'COy"pn 7ev{ M<qUzuk0q_~O`@D>UH)PQ<>Og֍<)~%1XeP4"h6WBD!4Oktib!qEG#;ѷ tDI {4=Xw2}A|ӯwbX}_Z"02&Ҋw}]W8}OH`{b Jt;倐|fq9|,"-ʝ,D<"mK$zCZt64P|͓1(0ddBQ984`hsb$eL L72mλ²0‰ \{^8s1_6D"H܀m#]"e|$( Pژ5躙&02.~^Ak4~9UePvBEKВT56f8>Ip)!(hD?$72}ҨdѠlc sC@Nƀ|TOOwT<p'w9V&|#CNҡ  ޿Ft~vdSFc0}?A%"]V&P&PkF1^B%_Îشx !:'F#lՈTPQJ9BK=L<l=K !$C σ{ ' zctg6,<흇 <&a1.B/qûj/x# u= ^aی3CVb}x.FƔ0qq~4)/+F0=rCIG!,eba=yR)|z:{zg > hg09-][g?_t"~w5Z8UOxKE}Wّx =LHm/oPH80/?o}>}77?7f?h/Ƴ~_ca|O[Ÿeqkmoߧ/s?{~~ uypj?0"IJuIw;_;*_?5hX DCzը_`8X߽N.^tUE[WVSo̽"EHЀVCE-16v[PH*UVtzOB?#TKyk!;/ m?ѣ_T_O2j"jPUiyaWwfuzZ<mQ^ 'Rr,DNNbnՉ$BI/!Hq>Κd^5m28pQhVᖜJԃgfv$w:i2TɗoVBn6teh *ʄ8Di+!B$wlL[;AJ.FDQV)vuFu? یL.ui53\r?QTH $%>??P'\ x L+;g6Az?d0Gi@~)dܯ縰U@Hz;vxJACTw6 O!QJs3tqe!?LOWTGʎa: ̍KyV| ({KW{~YZXSS='4Wè@OT$ BEuS?5J~=dS<[{뿧Bh$!GA}0uSw_q[8d\RXk4v'#1~Lj$3'yܣP0Pӵ7|GVTq֢y\,MKJ2'/Om0d-LHUj 7zd+n]XLG,DH+A2djXp՚0vuHd4oD8"8BiU/~߰?>ϖb(GDh Y뱼4)}aS? }C~B5]@~'XƼD9CW!R l|!76퀪zɠmNۛ"):Q I3*- (vyILe3P߾H6B!n C+ΓU ` $$%+ %&f)h@ߢtγhFx7vz>T sC>۲XnG9՗95.ς6NBymv9D;fR\ lzu$4N~Zq'鹏r6N B<;ϐv/PýHl=> 00$Ȣo!im:; pC ;NLbCހhf*7 -)yzglϞ{b2݌nwFs|5"c&K50eUi!eQ;muʘ]9Vخ=6h$fFxS[S<g&sWGEdִEcn'Vi֔C"EO]oX3;MxdO2 {WD* ^3ӗ\,;d68Qڊ#aU#+7]*ϟ  : *La85J\[pmG`gǗJך %=sT&Ώ6sen+Ps+ ňgo4 v6Z>!'Pp]'SB0Cl]DJlvÇꘝ{v4hJ #2G^SqŞl)(^׭6XI/$w=}ݕJ%;6ѓqbrqC(ƗIn !? ρBAitBd~*y7ҠGQ/"Uu_Ð}=GZ+=@O>&aNh'!DHl;ON8ChwS:Q]NX7sXa`!gp#Y 7"6E:T_A L Y+N!C8Qxv;=@!wyuI66@cp@!B $z6F7.LrrDI^P(a5@ E:49Ewg$nOK^-nLpʫ·9{>ྡM׭{hOؿN jJnjmϑ=g{]W6DY ǐVJ^N[;Tz.+^j8"7 e U2P~SܻæFUQUL#q뮀J[;NíywxF0Kp-u%@m<{E08, $s)f2$VCx1ONnWwσ Wl:+Kͷ;Fn#}9l;8^C/|ҽ45vTB\lq % Bh2JT M\v QWG,T~_05D =Pcuׯcя@4h(hˆyys\d(+w> )vN 8fza q)~+Xͺc B4l:DQ\jl+uJT\JWpMf !׋gOQ8&s'Ϛm|xi >`v)= N@vd2gt_-n ԇsXs7F@`Ȥ4+ I萒8BV莜G`M,a3.(&S8kpC%$R|shL_߁A(*KKcm2OW'NR)PD[6Ć7'rUtӿ!Nvy=uf0vh)cs"xHK D'R^KjgWہO`u;i}tv ̛88',Ӗށ=HtUݜ,᭳"9uNǂY25wҏeRε;\ ,3Fqoe;Ct^ߥEwc=.`)%f٩}J1Q(f ӊp62~)fǦPb< Wsk%G" dO`wa0|514M FhB"ATb; %]2 oQc`zU` StڽJF,,nGytMP4G잟b{\`ܣsҠ"z{A*WDbxwFa6 jJ<գ􅀏#+E (stq Ťx+a"ӣiiѐ)d/= s]BDX&^t=kÝk]4röC @ UX/8Ć:e2EzVUw֏]J]lDЦ{3֒Fl!Wlk8\q쇂*U4bC.}8 zU\Q'] Mm1JԠ(JcG:͠׽ B6q 0 I*!eG}{4;I囝3 ɵ!TKc&;M~V_/mgˈv![.4v|L1x]T2XK|=Ǜ~0R_,D\>ÍC_g]YЇaIx㽣~u\{z YH/IfC>rHm=O5 a̓eygI;о ;Jnu wval,pz;Ct=BzL:>3 7*oDh)&l*_gy t= |zx wŐ{rw$>(JvxrWOT]rʪdmbIzV3)5u D8=ēwӃ=ӺH#5|Qj] AoA*a6O;tq* dnm6V6X^ɢ md%#l"j6wc;¾8yDaQFQ9ApJ; `kZVhrֻ8%dۻh7("h~, 4j]dP;]j !]"4!6i6sFU XGˢ;FKCyND#ѿ7X1cBr<=A!f(R`>}BȎ­Vr\mÝB_ RW7?(ȉ0̼<~{u6Ga(H"f]gl U)(oInr efoI'&.PƟ>=N^j3%BR=`M+ ]ozk/Tmry$()I[Jwk§ˈm9\NYn|94s~6'450;( 8"x{ 1QF!{xlyGA;m"yϼEv?a?<*vq#aF;K /fO҇ǵdDD\6d``t _ϐbt  #vNlw >$P!tI'=LT3D񧉊0kdQc^P (2O)2'yDpD8j,=%&^7SmGhӁ&^yƔB0sq7U,l|ug+h޳VUuF`td|_;73!^ q*>ۻ0ɦ2 5c_vJ`ѐlvh4jB^볊U3t!wHߢVI0I11!F ˫,UlC1$$DL73 NI<6O+d4xQ4x!INk60slS5 { =:'>0XE/hKH™tf*y_^~ƫ6sq@uY^x 0MOOpl>dt;cgB(_c zB!T87jJ<&cA2FSb:A9KFjo&IN%~5-EXP!]?}N KƍmvWfbCzɣd-Y!Ua%T IѠw5 3á>& AQ2bdШ^v,Mɉ$`'ҸE+K4DDā0U 4u){kZ֋i5UJx b(9}aă= NSao6l™(I5ejGyf^՜Q̯ ڛ0)k{"ʪMH|x4= F~(cmKǼBwlSNecZkjԗ޷rvA7jS( )mRrKA؇y 4nMOhO;Y+8&Cr{m; {kDH f*(f\3Ҝ'&{7uuHgȤKU/)SlӌEG.[طfgqJ? 9t  ML#-Mynf;ؼMFOI)g#X)Ȟ-Q< W# #9ѿ!Iקo*Te(гi,0>v0v$NOBWoV4$`3w6v}ݒ'boi /E#EZkm߃RqޛXtQ\J)^7zaurBzs8ӹ3/yPnk;KG#YimJlNUMǃV̫TltЇRX44sp@[eJ VTaZ (x."LKȩ ==by/)+SpۙafHd) _$*} HIߋakٽul8:cs*F $4]Bc <MU߃̃s8 (*#* 䓿T NڝPlih)kr"W.$};5IЈbyzy,nhӂ3pNҾ"{i4Pyߟ{zu=HN;wPy1g{r_.7$_:>rC;nxl0^|=^T>M6)fYHH|9:(tDP'bo(M2ri8MMf pp/O,0jF2x!!<9"ceH]>TH U (4@z'A`hO `en -Ҷ3JQj*Gd$B *EDEc]ulXX4 N Es!PKuώR8ntxOEIm^) mx6]bu3|K#y8<Ǩ` 8u+Pyb>0s9;쇹''3na7N*ƏMr;ia"<1|;{8,,!h[AUi{=3*W\va> v:< ztyϿg4!4 q5z{f2BBXq4ɼxۡfT{j^Niěu폏o@lt3$:1E'Z>'I>s@#|xk5@;d80X!Qqt4Z\n% gI&hTgXhT>5W4"MWvl4cVj:^+>\cHI  [F +d#m-Xzq<)L5K"'Ni+8T2]nULTԫm4 F3.uG4B%WbI{+&SF(Y=7 WϾ'xzYׇĘHb>Ҕmax7:7=_nEt47\92>SL-Aa2F*-zeu5uVn( dٳHA,0ytLbE@rsC^biQErK AjzjWU3RZmU/:8UVjNzׁƉ,YI2CĀw/`/U 4&X\LleUGKJX%ϷՇR'f{-76 !٪,a vN^On[>PQ\0=?y'h癢A:M⊙: pKNy5{ph֍PhV[dap߂~6s?5fzr 7Mh|Oq'S!ޜ; ?=i ,?w @ f TꖦZk),bG"Š<!%JZl0مTze4[ Rp1Q_Lߗ(ГԠhEBPB>R4m ¿v`~pSI?sSUQ4"r(p4ImؚѧpE\2"OƇ,$2"HES24?>e9ɹ+T Z  mX/0BKB8CIjwPX@_A'BG}:Utw BȡBSA CjU(IzR+@EHvD6@?jf~;L>LISafV~֧V:*yxIږ ㆆlDXֻƑ"48</g.v7NiME+DףkVr*R{vqlNWNz6;n;"gIiS֨ZCF#i8!u>O[oT ur8M1v@| O Ş9G v#G LN;w݌;x RO>@vχ|G摤>DNp )7T?-SPulFQw6w;zdRX9t؉P%DoVa/8DO@lѾP>$R#Qr]F\"V~:Q`j1$rots%cO07O>[M'rrXCJڲ Hkҟ4?눆6F e|ՎaZ K#_gg%{?RۯwVn;g$U@o-% $yFymbEA:4&Ɣ0>1P4F6TRis?ObI\ObE6(q# O"@I B':&=^x*4;cˈ$$ bNL[vO^xQ2hJĈS /k^j,kAA5PL[Qb EHs̊5I Cޕ8(PIFHFoz~AEœG<,_)J% hri)!ZT'oʻ|pN"Inx]cu͊iI4PE>!3>)ר8_ޖ9gLLӜ 3_HhHf>w'`p!H=*C!&^R#o.}5 婈`Սj-ܥ6ցL@ H1B"-a$\N{{uS'7xaρ5 xoNSعT@;m>OT4\M+dኚLI@>:K-t89Z?5\fЌ3+(pI@0?Pq'&/wܧl F-#M+cN9rNAa'&m-j+!61;M MZG"`;ȑ Jb[sMv*aD)(iXH@1ujC34Hmɪ\$p}\km޿Vp5Eѭ]씒0O&,X1:s]v(q'HҨn-Ep/\:TСf-̙|fuqb3KLƙN[mUm 6LE&Ԩ(pU1%NB" IKEēpMuVV*ڶ]ZEb!f?>?yL=ߒ_L `+?ۖ,Y_ >pg?<}#e\fBS@X0 b|VRT\]cm-DIsU ap,Nu!'aFJViO*c!(|a'.6өLSLNPq%? 8K:bEr(a@?@{Ab 'BvnөKlZ1  ţN{1-7ǐnߦլ? do %X;h$()rvitm.$p. B)!Z|Ɵv^AeM+mSQF?ɃF{8>P:w?u'Ĵ7/\K3)vCĢeɸVha&C5fxm(VYBGvU 1:dXL"*%ATA",44&znpɨچoٓJ0C*;F4jn% u5HsN1CQTepH @ing(NAxtF,qDV ASA |_)-~zeY20bY`Ueff A $O# .wg95tй*JEk\@wä*->%s̜c9z DT@Ui\@-)[ Aҵ5mۺRSL 80N@l :^fR2Qm6 $ R!ioTKZUv_ ˫pD\abᲱPV;7$: c Onwߝ[yl  b>o粼Hdუ.kq,5?@psg,Wym.IZ.4۫B1%ղ+4C2!t~:OqK0g%Gt |f1њpG>]vm34_p{GzsM$$gy! ::?U3d>>:D'l%У0Chmr \ lt}wEC0]#Ea2mYSV (Vd""d8bq(aln盟oQ:'swYC;7C9T\B%YcQ&#Q*"14cQWE!̈́((j_‡<~ x53aq4u3nI!|b$8JJ=g4ꋱjV_#~gi֙),åWe3}~^nIrHi&R8 NޒNl`xғNztx&+LLC_ٵUd恤KIiN X;&a )$]B;v`)b^z.z?M<RU)ĎPA<E O8?TdFBn|@:(;wlpC!?glۏy=S;TAC?ɩ?9S&k& j#p2zAEMֳv dؔYSDoo6M ƥc𰖾Gt~=O x_r:_OHWH GS%%$ -`tB+AM& (&6zWktjCp $ =sF0B50mLta2VS@4W:(!HAMo.1yώe;&ԣgܱdI\/6K#IO) {qݱ}4~))MVz>THRD)FCpzm(65o]~9(O@A!r qܱJnmQ  8JLAeԭrI$62ұF^r R8SBan2^}m *o_O7ԋ}ʋx &7LvS!ryhI'YlQMi)a:To1>st/vmcꨲPYH~5 b$*%ePLE415B25F~KBvRCl]`juCF 91Lw Ü%dXlցMmo8JHNVJuF\mD ܻ؝D ͺK>xgAb ΪԢ?=QK+@rm2\vuY Qr\>d7(& ekB: zsfQWʮ F>b7X6_Y+?@0@@N5=©' 5XC0ӌcr\Jk\UA|Bc(;. Bn̠sfiԬp^ioReTЄz†;z~L4&! L Y05hcC0s?]dظDfvAeЅhjCg&IX6b L9f}.Dxs*2 :eIIBKFeAC\K[BH!AT*Z;y7$􁴖M zʲ$732[LGR #s!bYĦL dt~um)E|)A Re}]k:1!L %R6%~p?pA% Y?YUH|ή lYbQ0OvO~-QQ-THӜpޔDf&feap#j,`BR.C2XHÜQĺYvZFPT-< *rJ?&Iن*[0V9uX LR$~1C$:pgOם>yT4RИ* g ϿUseGح>{Is.ı}=?\uEQ#}u2@Yd.cQ@ǢIŷ^*R:k|O'H ETLRTnP)Km̛Bk Q.Q=9T &ˠӀ 1&3k^aFIrԂFBHk I vy6*ې![qAi9`T\IPA" 6pOC"I!Q^A&AS4d Q!ձ<|TCu㱦Q>fuO^T8,*T2XXY6tOgh b|jW||5HəFhyL'CAHPH23 |c |)|>9%ďNA'^St1; =?yuFisqUKa.9dh% GyؐvꍖvΗt.(64kT8TDgM a @lFCa &6' )cՔҋ(BcpzqøNN^I(Cfa>ف2}#"]@D<=c>7ЎD>_ ч'sa01zBfC-~?"84)՘.0<]i |OJjn# xօ<"9:L1P}8xTF[k7(#h A*%2 U`ɻ]otpp"JFoH6Q `NѼdma5O4U0{ p]8QQ4IW7eW=LNeGXVd>0bؔb΅.Ȏ#d:02x@h?I4Et3AEur(ž4Oĕy;!2)/vF|)5GAUU6eB #Dm[\> y,dJgt~QiCXa?|Um ME->G YNwy {"0 Q+d~tWd1N/T^kp&D,˕ۑv;F~OGIv%|Z 0,K6=#h|Әn,>>XE7^yT|(#y wvB !+,9OMhwG]h62!jz &K"t!x?} XzaZLC;!(aǯ470[b pǃ}BXH3 %U))AB; Di QB$'U:B  ADY7hi_=pJM BpmF8I-h/ 7QpZkH]*gQ(ذxA;'P٨wIn((Hr ܃"{v# JP:6}RQl^㟙DZed k1 B :(I'˪Q!.=*Z  "I%wh|'r@r|Wpg;FlbHm .J]pkj! 1R"WbCKXljۦTwW cJg[l8bY e+٬,fJg;t ~*"^|E2tFXSg(**:ⅱ+UU$ t UXfɚLV3E5DMٗW{uW*1yI4iZuД@]ΗoK hmцJY41$ "!QW)]K2_5"d%VMTD.D2e3(Xý?"~*;z^HoBnNIM ;Cqo<5 y6Ҍ( ܎:M٬>Zx2awCЎ\S'NNV1%$@la)` pcznwԻIdCdSCGJũ 3=)6dSVb絚w=`2 VtJ"NfY,~Ҋ)>Mc,?O 6|l^>+[Nl:ȗnRKOK-V`CUhec|c6a;KTݭ$a;9CyVumt݊iDu JeXޅQ#nˤq jH*2阶i²&Hƌt4W** :E$&0J81m!!'مۈM57Þ|QV21,{=p2q!9Vl;.h6)vhs 8`7d:CVCKPX,WFİaɤ4h*L2 5)~A64ll! bF ws 7Dz[t$sksTgT5E=ND rB9`Xd-vpL )/ni6YMr7er;}7p:E HLϥgAp%4 •cM\ĝWjs䦧 qXo9Ê 3Hlc-hEmyp̑ɦv%쐸;;0)[nl` t{#41C7y UW@4=2J3N7S&pmTē8@cwt6.!v`90aq}0)=ަHzz?HMRJ*M *!2V|z:nnH|x:8캊(2b1U~٩^TY8Jl5q !,IvuRHK)LyOTu0T (- 4E*tEXU0LEPv4FZQQblLrm| DC,,/~ƍz+J)U*U L ґAXl\Gx00~/ +IuV85]5cQ9N*7> ,QlkTkVwu$h<3 (.7M7D/a`pğ6}H?@@ "Q6CC/O#-:~/ 5׼}^^jz>$Pr~q%\ox'gD6BUWrt?)WB:a8au#ƪrrpT9ҡƏ,u*?;q!ӷңgɠvfha<'zP37d5t>vBۛX.6}iBϧqo;/A(V-G|.IG_ȚZwUvbXaeTYx,Nֶ }{6IP>"ߴ'' nE7)j+na~]w΁%/l(e2_WkWHQ$+-CqD0$I71aaĈm'&ԛo 3j"p 㴂 t84TaA swaYJUjYc!8E:a\ u(%aV0+ hP|G߸f/>_>f bb/4U mg#MI~m dֲzRPM ۙ]nuF,{#7z3^De"''%vJ){/u ;袭6mb#^R]]&L+4mN1HN2*ju0"[6xv\GJl6!Fl 8U>P+5Ӹ܍Ptm ey>:\uٝ]s ;#'OPBJIFBEJXm) n2 (Yfs ,Ts̙$STA{@$@Vfag8dȪlLfWQk+kZ(tpk/hGWlfSܣZHЍ){f8u$"qtxɗi'Q8l)F IT.ڑQ; RZUB8" ɕcL DDsLH~r.U4.5ԛ:DAYU"P'҄$qc5d|y* 2:CSt&J0q$pW\"QM)b2t@Wvf4+@`X|fsڟ}9CD[NEx9'sx_czF5 ` EB |]^F4̊|\$@Hn恶lu렽lClODT6o"uu4@9@y`h7NBBr>viay)IJb$%@'D* >~9֧dJ I0HIP Uau4:Ēk qsHBy*ykK-ֵ0>F7W)-ʁJV (h!yblbܚYJNfD-8iԖ* eg!=Įl_CzdOop *#W|^B+z%,]Ӎd,CWߪm#Uh,2$Z`%\+E0Q@20jPHS< 1b$.lI UEYR`F>rԥUB@xJ<򂄨VۜF\ދgapFo'm;naŔ0k:{8^l zj\wrKߟ7ރx\JA/r$Y:O<9Fy(sWT@\Б+i՘I orfe%I6{Y_9,\UxlMC+"Hfbϼ=~J_{o7*ed`sU^e~cHlB]AQ.WYudYtIq~ϗ7:6旽Tx!{1Y:[z֑̾m+.:貜.78/%G zwNnKGl(>W^ 1(e\dZTjtW`aU`fIKaB~IH`krґ:x׏MvNڝz;g{xZ zd9bmq$௞,ctb%v̳:nos~["T,%Z2bG '2Hisy7魭z7HUƻTofϡ/_=H51OKo&QM$1\gdtc8擄 YTb(-M-PqŝxE_pGi1[о(t@"&/\d,+7t{B@RI(2#4I/-V^~"ĮV%+&¢ ֬-9=lPTYbO0QdtqEIdI-YidirgR\3Ccb\ȹ},P͆Ɗ( (2Xg9!0ˡEF\^eGea6bmgG:tGu5e飒/fu 쵊ۤfįP9K:: S%UB3o7PlҮ9:8{Wh|:<ʠ"!Cϔ|Yi3O-x(+Zue R T7;񕝜夬9Ljs<'dPp,tpJu@Ѓ%G7&b#|˖qWzKr*U:_ q6 #+311wM(jRE`E5N3ʬil"P2UD q*Ci] ;OIzsl ; ӍMtś}kE)0UZԔBˣ :M[~//YY7uLCh[$G1{q"›+>bO5cJU.%VSkmbQIIE8uLVp]Q"mnzޜ>,kwn18 &hj jrNS,ijmwܲMeכBT)BJEͣ+јJAZ-UfRb1BCN6AS\wɃo,"܆mi@-Hl2Ԋ L :^J7EjLs .q bh;3! iz4˾NJ=OteQh襣wVκUQ&ӄu} :Wy:GÕy/T /uoV^pپ&fl) 9+U`~SbU"zPzub45ngx"fEKS>an-SYaq5JFJG|WGF| g4Ijne` T`p98[\q--Ư)^3 ,Ɨ6k7-^7-cviMNϛ͕/.)y^oB#Q= 8\ ٮ8UZ"H^FE"@rzOy׭ 0}/2@fmV*m8@[0ed^,emj-UPI)" 3!~LA&wʹA%; ‹~VfRw'X([N;k~2.=\wἼ, (iW#*>`^].憻.s;s A*:KFM80Z!|\b^CWp$!-u$%݊Ӕ2sl^YCdRDY#@wAq NR D(;(q-( uW"v4qT(bkf=F/iQ# ϥXw{/UtW'kEE=y >q~>FOCP#ҫCG;)H3A2)J )D$>֛1N4h!!lc&NhY!DK%'瞔zl';W@ >(bGRܟ4>)秩#qtpqј@MAB -A=A!NYb4vw<O2 lI=tzjsO{&אu@xCG؄k6Xl*3*BDti"if:ܝإ@o|O?#@<yܚ]iH-C& 95&yYdu6<ҋ33dx5foE#P:M1CJ#;C L:M턬n&D=M>8]PJgp] Ls]졧vNRl o7Qh8HW"tֈulgsϿba 0ym4C3õYi !CR!/FC2%_eȽ{P:0?vSۛ `t^d= h ;|GCI,AM-)(~DО%(D7c,CO0%9  Ws<-L~IF6MK@haэ6xMþx5\ĸfh o^J))q "Tq Ёb[p㞦_wo;-Alj_Y {J̖X\mJ(*XUEUW)_,,8)PVmiNmNԧj2J"ѨMIUB^goWi{Ii2W,Ahol+񓌮%JKnvI>pvuu%Ô.'!5Ϟ\<äVr+\ j!)j 3mSziqV4.)LiQG ķɠȍ̢)~(bM^7ahx}^`v|ym.\~zx4 (]·<v\)]`.DAr")#7:5B:i Iqgg]^MTS)`2`2Oqdڪ6<GIYS.$7AqX ;HlR$hIsݥC `,y7xui|"ӡRPIyD:a{+( %)"*Úkp GVmDܺ7P *5݉sr".}/oh|.lŠ$Cv*xa5i;QNYUR0|QaBg ;"/U?I!L\?'POII- `>[ Gfd:2Cq@USu~oӎFKI- 9aLKHYaȄh^i TN GMAf-iQQ`N.6,0p 6D`1Uc&XQG96ik&t 䜡sJ|R&Z2T ̨J ' !9 e+7l'4C )M$IH1(g5tvlm`(vz?w;%`qqqtSMjW_]xʊ"d@IVqJ3moe4MB"y- N   T_u?'QfX! *_.".ynxߣJ H~c*&l'lw}5f_3/6RQ|QQ/*J*k-piRnr4͘o4,)La8K-]2,_row:kpy:XQ4|,X,HY,cQ 4g&"%F|̄M26\!by kwSF|/@w|UI 옭:uTsG!A>$(7⍿{?{oHtƗT[DCŚ<_grx1 NAP>/NZ%NFdߡ~5 (ܧ'l)Xf0Gf#"='7NwWp/wH>]!=PC&K dicm7S2MfS--ZR+F*Qh1;dGDLFstp8TwIhJJũãZh}[XҢYd\s*hr-4uܚճ^}HUMlѝ}7Z8tչysws\!؋|5ƦS wS}/#4 ħQ"UTuQhKm#+*hߛRnA&෯7W ?uܧ﷯xf px֎%ɨDJau(qG @2LAJ4 @q7|g'r{vt`.R w߲`ABH)`)PZ$JJy*݇:엍UkT ^?=~7q@hL@ ) 5'}J[P؂"{'̚א(eroԆd$O'LF?_cOz^ﰿas?`q4~q;MF TX LW[mz:puTtkN%瑠>3dNrP砻YG˦%ubT("hp(҉r1Yiy@CfNuќ,jhHU+!v֌wy䥦UUA P-fwq9+jI3e)g<4ӯaD.H{̛Ts& To3|IVl"SPPi/*2"RT"d֋a^coI(f_iT0ZL55Ӑ*1YӠIDwƉ +x j B8{fgkIEb4YfDK=ӛR[2LrwE( -| 8Nz\*-2fQtZAW925QfxeSR~\É<@'qa A1 j6+$Rs07dx&XLYIP֡kBL*УBJ*R D*@.0pH-~ƥe~,* \jl]j2b Nɜ0UɨTd bY3fٛ"w^;t'ᔜ.Dq5A)WHѭi%Η".@UY'30}q0(&p뻓9 bJ&E,ƄZ+HENISŀp.9:c~4=2T9NɶdA؝ZiZJTh Y$@)w@v1s80@| qCn3 P;b #7X예ƈ䵷p7v"fuۦޗd-p8{A҈".; 5vcчzl&$88ˀ@n w!tUJ /{_kN?pq(S:C!&1)*mb鴫kvZkc0 i(.^ KEf =K M*2 +3HJ- 4zr oϥEG^x} )FCZ)S b!:sg 8Hߝ1afK^Z܇Ju~?;V `V)M6|L(24( N'" wk>ȍb1!7e>hja 0!iq8Nͅrp,Zi"PÖl$5vMhWY3M" nf<=2h3I)l2<֪ny+LB۹G$IȡU@8$w,(xBRA`Ym$N(FFh 7zk2-w'HR W?me ;B|oٝtm!" TT6UhT84ot4;?Ü`bD HP'jb:3ƺH RPR=`ʇ*DK dZ&"ASd&f$Ȃ)hY aLl 1_= 0^@睳5axNhXY,L 1;y1)Xy0Mb 7mYk㪢5-z\hCTh7fR/wtCeJbPq#>~,.M*՚g*؊l 40 g4l÷;hy'mMX=`7[H/Q|pBCVN-{w v;h:1':t4\oW(]pӡNߴMlD=n{>_k=&MnNػ߄0KmPhԼU#{&q!|ۨE[Yxgb5d'z;|art䚟=Lz8dc<ш7cS`s=`uKCT|'cҵ)$zEG|sPDaF[E;7CE,6. L<ʅq 9-/D QLJ#tܺN!PUPʢ_:tI(`i.PD K\:>squp,EٙQDzyUXg@XY@>4--+#/4Tx<AQM%oy釩*)R <^@mxhmp]ScaqEvE.Nܙ4hy?Lj <ɯ?;y@! )&C?fw:2Hr2Q*Pđ;-r앏[kl(I8Naq Eu3z1?EC &#oQJvaG&@@n&iJ<5> gBaZk9IP- ~wxU6RHp]~)-'b=U) Q֠_̎" o؈oj1"D9 . ]C51SƤdF`pW?BDt mfeFNݬtR|ږ`>@x xvjZ-vھ_@pqhH$?8~6A}qf5uR2̭D&ˈR:"мw1ƄhwfhOK\g.B)8EŲB !d$@H;IRodS)D8bRLHo @ hW}b$nH[dR@CQn2 YshxpNPVU('8ja]ZZeV^Xx* a'#&w ?z}.ID\]n"(i6$-FM8GX8 ft=@ Va2MC0#T8hbJ0F[`jQ"R *R5=':t7[Uh(B{Z-lHc((_6Ϻ%IqzPY3ŵ#,*%KW6nIjD̠jFYp$m0q%k CZTnomh6"1qLH4PiB ؇pni1&}(zSDix]8Ð 9Ҧ$d9V þp^K@G1Lb9X@NWOv 2;nQ&ƶ+mȵrԚ\r\V@A&)U[âk!" S}>ɶ ̛}>Q̂T w%u(kޮOsSP oU(* f(BFTJCUAWtvހNH &\uS0>y`e.Y#;B,OѡBR]Xe'|$q|ό#YM#1Ì|AYjPJ% fJC007@bh$p5L +>(P'>0sŌ\(D'Nu9^wܺZxĝuo]+{T)9 -CU p/'d2slzw ⽒ TP?,_1>[? ?o4B@4.Պ5ҷ*1@R߮{V9>WNl Ž $RX,#>ne[JW(5l,`v<^a=0A.qʟ9fnY 49ddDplBN*5?KِF.%v:e{+"zӓW$%`Щͺ)g 8ln{vp1ZRQ,^pi{|s[m){0>bO#[TC0pQ}2٠큈QM*AvWl/C@rc!z 7,B (dv $4BVuI3ۮ)wcE)'vHwcōwN(sr5dGBwnnQE sdXv QoI&PoLGH7zKQIqHE|CBEu&0IݝКa&'i<+͜epsp`CȂ| %^>UHVokŗ! !߃,TU^H-8E,$N% a g9E!-.<,JF$rd6toAEC}qaU#E0cՊˉ}sM6",3 HDdݐx ṗ~AROם?u6ddL(Dt}'\ށD`k x50˓1&iY*3Wq[A%:T%)3"!b+-czFS:o3 Wd!EEW(6XbAdeԹO}2c!_ TEPN,ֻx9eT@c"s_P. p$R)ytM8M7 |-C PP(&&+{ 6`مXi,$#i,K սI}.Gnuiv]K ~NQ+wM;o$ Q*Q{><|=qi/SAzctCHkT:ӜNº-pr= `4K Iz] ؓݛ{_CAU`w6Bk{0c R9]^^nQ1q6-5{Dh ?^\A@7Bxpk 9fΉNCL1)({cUCɒQFQFg(QPS 3iMQJJ#s}{mC Qy^-kPepDi۴zV V._ {r^ 0)2 S"I*rWQ6.O#Ct8?Pg%zu4cxNaL:kO$*(|e jV`%Qt_s]<;=1."('muN57ز@?e?)F.Ipms{y0?8>\~6E28@qD[drUaqhdglNNchzpH}3UW@>4լM#KK߯:tj(tkQX&!dQ(0',h31Hmђ̈jvQT#4v'~kiҒ`SY RH;NZu\.ںbFn'Yjn&6,2@,P(Omh*,WGt4Nd E#Jk6ߟ^|5rG2(lR/,[E S/I] bR .-Sb0b![*Ҭ%cj6=ya־#iNJn*0`oo C}h>8m|T xm Sf(FRU/iϟ|jى$91")*[+ƞ:+^AetQjNmV.Kݜ6b^q Lq2ݖ҇mRTph`G"Lf'rAV4.(ĈXH;v׎95<#Iwi<'T>0\g bLluoC&[h٧LY i]\`1+F.YZʝެԑLSB*(JUB tok&lu*d.YƯ +GɁz{D5)]JBH4 ZZq63F8v4 NѢM2*y^:gC16A9T纝c^H{wJz, )L%wb~@ylbڝ렧Jsבw* 4x??>r Hz4Orm Ol5WpO Iw8D$vI0x }QEQLڝ˸{]4Gc'v%S}B9Cۯ7=K1D|?U|RbۈaϰT{`s.b1b2@|1P*~8Nļf*a"TS3L1]IBq*ՐMS koށG9@|ߧXGQ0 4 ,Pt! hR!Gtp9P?{h  @6x L7VX? bM j@1 m;ASĎa̝"d}zUɩcWWư8zp-a}[#y: !H Ivg f5&<#PA E}Z'sgKBAhrN Rm":%rJEIu?db%V(m C"  TRmg| s!Bj(T#%jKBk̈p2#: 0i,v!H  L0I H>!^%1* <r};CGYDj 66} -+0B5JAI"T$pǻlka$|$?J{s`@>{rf֛{ a"*{h6ٚl676)(][ '{~PM0"* ?a͈Urokqk￞lUҕj1(/)+AijbB"Td`)QCS%gLkoCB=7,\r;1S-v|\!`5 JŞM_MfQ%ZIݬ"xfF٢'LN̢ʁb7N (ъ0 R׉҆q8j0(JRZKwǜ*aEtÅS舡yDt{㶲 ֩kQ e{V`|>>!$N{"w_zƔ6w'0 /e 0}lHB/D1H2,*x;Cؑ !F"sad Ooߎ'oƒ"t${"!у (eQ),!sHOĤ 9iESC)U˸Ǹ۞Iڥ?8?UٺhvoU1ySL{.b \WZ \ z3ce*o nmƍ1s{vgeYPKr$]ݝu~u#p|q\q'G۫$;$3F6,wsuoSLxyAT '󻹷cERF&ٯ8d֊ "u?Gr|ʻGrJA;BmxkPi(t(D*(N-z4p ;(Ko"˵nichJI$dmǹoDf&DP[)9fpvDh0 H;v,j uݐѢEF( j٣b:„aħwchp# ,!Z8Q"*bE1 Ue׽rGޗw3oPr#@":N[z|'QcgRLmi7 j5Fp.Hc@P R9ҟ<*N@9?HP6@&IGe.a^#Xj=S\''!Qȇtek&T eE Ts=/qwg)bYZUEXMf _ 5jʪ,tX7T*l9{ "%)XE4mVk;lp\ѐZW)5p.dJdQDJt;_og3hObe Gsf8%% }t _V&F%6h@pNC, \k{r1A #tR8Є$acCzb)$D/ҟFa** W+ G'ͦCMR 3ST财^TVNMy֌`ue<O+bw>Fe>U|,%4kdvA@ x|b2R}}w<G\baXg`5KX@`\\/rTJ(}0js"!K:Ù)ˑU16VwKd)!pG$q pO3=% =I~·F!J!\P"i(dDM3--#EEfi,K MbISjJV%)JUAM)ISbTF+Fj3 3K),Ҥ!iZb&%'yZOu+Ʒ]Si_'qNQY> "98$@&B4kK0}~_ͨ_<@ڈ׏Tc?fU \VJ@N6GgWߡ; WՃn)kYp:\땟ŀc2.6| Y\ M(|.as,9gx*T6Ug|U؈niN}ß`vC+ d uN[Ra1 2ù3G3jq:Ára듳?H#- `.PJ;atAmTWʉ~N@ih5K\d+l3$ЋpOa_,%NQ5&zD(`ɚ_x=3=!Er(掏fӦg]DkQ !O#y8&;m hHSP62/kX,)"%Іe zd sJf9caRň&AB!㦔sT յDyJp RCH(  6ց؅FG|SI !΁=YfܺbcaR0Ã'? H 2KR>XQ#eˬMRΰ _K_#x#v vB/6$\cy 3Jj@DnګVۦ4*BP#SЃY$HNJ"-i"J./n.$]}U^۫_쇒րQ8G][ן`<^\AUY6QhN,@Ei9\9iL.qT "ZKf)0B!:v(ßM))-zmlmr^_RM2"6܁X.;;aS[f\ `ad, ipxxlzlAGb`DرBXa4xlF,I.GXM$: p7 :rlIJX(\=r):Dt]ˉ!&+yb%Cz8fbIt>eJ5;l)*ԁ?*ůcbtI6,ܫX5kJ&4{ɚz O79FQDZmF#cν"ncnDlDb"W_<@ 2=!ʊ^RPXN՞r]-qZ?& .P3jp5>E?6o$,,eƔlj:XVtKG! Fq* W+p֞ȰKtAd4^|qvމNwqORqӞKza/©db cJ&UN4LQ`Iq*Mp n99NRػ.THYŹ-ߌǷ{u1 JBNxf^Eny?={6$+k6^D%sQTtQKb)FET4m4OI-VI ('(T@l,B Vd*dUHȂجڭ@“yhjdՃaDnhy)ѧ &HJMUae^Vt6Hi9eOהS˜%VA^dŕ,ݱ<Ǹ⇔Kq T ;<6Jqre QYf7 '%QܱTf;^kث(d-̜uy爺>='4%㓲R 1$=:vi.mO5F:qQC8ÓgYpћF80S T 7cʤꁖ 5 *aU ă03Eb߼`7]% 6e ]<`.@v  ayo)Bʱ!1H tª@! >ϧ* Eo@UU/Nr]!S 3{LqvѨW")8u0`g0.x[~4>@&!V:/y Kk/@''8|VU}a;;w]l 1LaY0!º<)>KR{>ۚ B !qP9 ACگŕ1W((n1"!Ts#Erm%`oJ}Lo9X%v12#& s%Ee6A$7VX'MdJGMir'X@"Vf@\pLb)a1fWwMY]Ǟ)7k(#e} $AlIHG&YaCr)_@=Ezt8TEs/vu^_jjY!jP̨YTHӒhB^)[+#{?L泥 9% EjB~Ca_rhF(#uNڦb[3Z#ܽu;ݫJTo_gB(V" ~~8fxQ9,pq[юQ#nآJict*C$:U531 <xDCCV"Y#~}ݕ}.hĔJ{ u ?'>l|>b|L$Uwl(~r@ܞX$AzTpqݸw8 M`) ! `0Ǚ_0y򈀆F7yWljzWTbǻ;HHy% K!أJzs"L6W1DSPwo)xA&pX}aB* >_Cb' <&0:rR'P7 pb|K~Ixwg ,Cq=w}2}AșlDsyvTr&:,rB;<(i珓m|s!Ohe*Oh,?)MW! |>$p$:|oT3}[ 7]4[0zP|&2=5䠸 @_* |q?h( *lMwj"00a C؀62Ui]N1]O.(`G(A#G/6yD-Ƅ"Y_f g! BN$BI#wϢv~@(?Yw#׸NwE.c(_^қ{ mx\Tp xk@k 1na@͓,B$F뺐  (*hsk}>#cbbB9&‚_?LF$cPN0 >o,l)Lt|] LA )2xFOk"VloglKxf͊TPʢqh&="qMrt'^~ޞlԪk6I0!NS͟2m0hT13hCo2/lj*`MUE*e-fCbܐfG Ds@8X07m~lc@*df]2׎al~QQ2A +B t@+m R|]S'Ju'ˍ('Hf o|e/◼Pҥa=e9<(ȥkWLjj `=޷Bs 2- ,Rŧrr$%'{3sL1陌8 JD*UGE=+qdJS9JjǷuӪO?e~d;Z5SbڸUԝd @%枰',.Vf@ )nw<^3#/GA!W.`edaTT0L][MGT4A'W,JӪ= ]F:h&lX]"dEAUE ,Vk4! 0ζW4ix?kء 2u D))wM:s1`I6jcT[ܗ/3kIr%՚CC5ٙ%Ł#1F+KqEpeK#Æm옪و!&xf"ʎL^\;qذѳE _Y*^TU&_zM 2Lp] a%Glk\>~n *nIwgyz .[!S SV䖭]Ӥ,:Ke]$c3uBZLEm`\[cTzM^k0ؾ>EUC#ЬPs=Uϑo H5"U}ݙ%;Zc9XaSHޔ=!\N/w}JPDr)͟q:<4c1GO݆#|8wsq[Q*8A\iњdE%|~YrG!v87&IPF%-b657QC莼^}quyUh !;1{m H j0c*tG` `Q҈wPԜ@)ٵhuyF7d̚;?x Pţt>LWۇbMBR+} Ċ`MPo[`܂(8hj7E]`ľA"@wdL݋!)4OmGqY;&|. }v_!1JdN='hw3^a=@M,]?%O>LBpl{`PuNǼ|Ҵ.}qG~>lsJH,lPh`ʃ[ ,%dtsܬ$G\a:Phb)ƶufڲ&%PR ϴ<Y a۞(g @`I!ØR!fxzEl*bE{s܌ 3T;l$4t=|ʞp/#~#yJJZ8]BtLP;FlhMrb d#F:3 b/31DHg)lgmbjE7wkG !5Nflm]@6BHd$TbIV"*m& dKCt:Dye\$]i#2ARl=+ݲ-R֭\`Q@o`2†[)ykRWVҡur7I!7UYN"DUzM|{]u;Gi6POm-a_f%!_;lɓOuב@QG>hw]niI=G=OMhq{G E$;ߓu65W(y2&P" D}PzS翹w;KJInYM@@ʛĦу:Jreǀ]!'Ȣ"ks%&Ӕ͵dBд,71Qnn{ϲfLd RgmAjh2c4@ldhwmP(,G ",]cC2 L0,D 2#3}kj-WBla`olbEY ƴo3mTL܇ 4Zf염 Az JvIm]܈0ov?E04~a?  5؄|YeA?mkA'|p?WBH43Z֥ $o؀Hq.mJ:P1$nruȞ$rtNL#. ~5&wN=vS) VJȂK;&X pE ha)[ uh)VQT:zJ (XLT805&=vIpbr5fɰ`vΎ 4š>6.JoW`0<^b*MQ OT ۵"q&]H>Ae ~4g`6fD8"7i$eq4~(x$ժh2ݫR HSa6aVC4Vnhْzn_x՜ѥEDm*:23dyOwC)a?4LK k :e Mp|! GKuJ+t봘3bk Bihzv6m,\Q*1NT$EMתWg1(JNLM+,3h2ReoHױcD$Nc0j1%J PSuooupO9MfՒ;`^ v!)JȩJC;B,Ě(. )~qQgaI/\̜o5WSSa`YSLTr<}YI |[,Ic" 'OdZ v*+ZYk%iah* `]*9=TvZșPg0(*TjvYrW2![& nkR Ao*Z鳣؋\vvur8.sZSV(iTL#DT5o$9Ou^o7$g`7*pFKiAwŸֳֵaV[µ5,u5ņ7b-ˢ:T)?Q*d mJ=\o!4A0}yBؖB!ǜ6O;a FG)94kk@X'c,zIuN[kN>R nekFRa% VZ4Kaq#Ab*T"<+5 2rIQ42N.q'1t1I$6L|v$AV*1V*oNFU3.QVu3Z_U\6:1=W*Bɲx`"Et(,>XYPUXq˷p ӣѲ<)@,4c5zRl[;5Ж^tq|~m̀2D-uMP5oA*M+ Xt"Ң 'PutFHٽHWnNڳ&xڸC 6_]aJ`23Ě_{6 Ė(3N ; #" m9)Xlly \ÀˢaUVaA+AFr(NɦѶS)}ݔ6NeRClKrH$`kuFPgۦ5NoS(?EBU:T +rNכRV\‹(Pɴp-c 2ԉ2)}~s|^L=_R}+NCvˮoY{ّB:^LssN5&o]TֲS ?`'-qsD޴!p p/Q.F.XI\2t6Bvtd?ID?a;| A:@?a: fV$ϘJ w?Jw?>!èscvL^AyA;87bI.yӓMIP!p̨ h38pbw3yu&;B;qLK<:$ltF2JZl]VzJ:NCKV6% mΪMR[ `( J7Xc+Ytʅ6)5(JKDP&MF"i5|n %i{v8 `(@@SA f4B]B[fUl՟Ji| YNJ%EPG$9{u sS|5x<()NKϹ- >P*0t (邏D(b@|~)/Z$ $ 38;gI~Hañ9n$FYomc 8,&yQI-52mid1bbn&zbE+AdgɛWnTB}B6> #Ɖ_}   &ꐒ@+t7w*&H܌ gG MFżm c  fv&pS^X&T6OZBCɐ=3Bsi<(dwTU/c9' w/d5 wnKth޻`|O3OH:b0_J$%%! ) Y1TCfl6hPmfEl2HI УL) 1Iғ ce*-63Mfm,TQ&hlY!MbRid bejl65llfT*m\(ؠbmZ伭AX8Y<e=ϙ'g?=Ch?f:dY7m3`π~Jh_T(EԠRDZ *ըƍmdY h(RCy<.G^g "|X?@݅EO&}9ޤ\$I |ad8 C V#ү!z G[zU,DKJ8[fAab.;plbw \ש%7z bֻ k%#06S` AѴR`Úvi$81fz:}Uv0BOj b*֖ +{L B)ov!i $XQf ckT~2O $aE^HV&} 'pkY)6d(t 崀ēk1 l5hFQb=0S{!>sq2 /v .J~ΫܵR)itfx6/?,)ЦRԛ[E :48BjkX3zw0ϥ1 :r"u5z}hBOձ0Eci)v*5B(%JE{z̾()%}v .2ނz]YEA!b>L%[$Ya%:KCc-|fvExLTW A QϞ\VN!Y$ؗ8v=޻'r`$,#2ﳤ:s[OMXd[Jv"iODUcjۧ%pYmS5 @'73RI-8"QE۶od)+_*D\ȱnXM,FsJeA3(V i$ $rZ/Aieiiy,Iԉ)1# :.e]tcB&[+Wxn\A+̀p4Io#;G9{l*&io EU_[nneW R79@H 4R~'E|Wu*I)IfD6"&MfjZYGԦ40FcT߅؏@oFHwh4 'X(m8'1ڥJ;!˝3LcXshjE*LPÄN&].\HFb1 @njitt>AQRycx) T EҀ̪!t] !_GdOoG:P˷4mAf~ S]JSRasSL0]>N&% @>z}azca2# HPr(2|$JSyIz><:jWޖ.:2~ e&:&l){۹C}@$J@|@TDLֿ!:~O)j ?;Z^EM<]YFX2P3%C'MhU!SC_L$!\%mBWi!P?8^ߪ K3^hiR$Ti4|:_6hO@|#Z4<t >HpYh)C{'@}'ET`K!{a)sBu?H*'lA3.4/(FD:J73A#2Iey;[pК`_S]O|`%{Z(q$z2,'es_ZtMAI,ĐwTк$fa&r8A1!0h1vq4Q'";1:.h$5a<7<WN\XrԆsr]Sri\TBj_лmT69DGcOUU` |9 h`;@]ƺEt'ꕓ-+~ǜSq!j|@Nwilz#.Ge%>=!'!$Drr-5F6ƣF(θdҔmO^f(\`Rؤsѕo#Qģx=I#@|A]+Gx/h[ 02;Z2a$΄ &Q?s#ǟwr*5 M@kdC"aIa7\B Jid I1 T@rH/1_Cm|p6ֵ&n3BG'S~eS"fh Q'$ /ߌOu?x"<~']OIBT&YAX"Ba*#H# B~ƨXIKMߴp>LpՉR :>1@:  @,(thS] б]NFgWC"6IѳH&AK~PQ)RHWv/ؤc k0P un'&8OO/载N~}|k"Pbv?W~Yfeq\>mY?__;:۔UqfK4"l *PlWy8jV#Ap?ǷbWkljƲ1`񿸁-fΙv֢Xh_ 7SnEm4/ vD4ڤ7q.&Ppi%-9fc**9, i6&m' %eeڲH0e5Uhne.$." t:'k@J< (!9L?;:?#ep&)xˣȹ/3BH6^F@0dS¶!|s^GqBق-uQ翵ԂPO8 I߰h%!$C,uȠa<`JtRb -ɣ p)UfoO3C^B <J,4F&XFY*aCeВO d`a ,@@h-qBF  a, 37( @Tꬰahg^/גmd}߇8{y;0'J0 kR9jU$ ɘs5hT(NI.Fu_LCa!=dHuQ ZP“ 4eul E 0lc2w`@i!| 2!Cd/(2hhh`f8;5(wF%G-MCД;3 ={7 \-L#NtA|Yq#-j FlP%k(Y~kA7Y'|'yxӵ\wfF #M%QPZ`cCb٨ {Y?фHsIt\MjNYnoa uYt.JĆ6vv( dD!菉zPH%sɎș|!GV0J^0sƱ;yYm1!r%HV ί_7T>4B :C)!7W]-."ݣW9/f&ְ(+GWʲ_H&@+ 1i4]h?ٛ6\ck Ma00l GT^ْ7~ x<$~Vw Dkt8Bݏذt)!)ȗa' JD0FI)`)ص* e7g-v&6+kA$YN$J6P3zKD7=\"1gO[EnTY@OooyMȱ.s&@PIM O5t_Yb;üMxx\793{D< B䔠]`uz &, " K{$S)ʱP1;Cl!^Hn'_d: v"j-Pz z)qPD3k9jXmA6"hNצڵfOr] B)4EFVXE^i h!HЬ,1b̆BI %jIrq|ד^F쪢V EUލ#/2SjNw,/KACIT|M_:@QA01 p&.[ R(%65wiE*].&UŚr_'yv2̙AC)#rhA@]L)/o[#jѥoQd6Eyy*l}W-DEuXX2tP4S鬀Q7ZAu\*/s#ڙR_$sL624RdHrEo>ǂ}ONs E Xf ,ΰ2Cnd3$mѫ5}t ylV(jHh>2h&Q7y?c0P6L7H|P*9rHI[pDH4DbrnN0؞lU۰"lyw$;p$:7#! Wq;v!Yṙ.=r +| 6giؠ1MM06!߸%k ̟= #-ߎݥ-~B;3s3&jEkmޜ΅^s,y(5h7h3kC PX&W=$f Lh?uB(C pÇn|T@}ӐTMZ&ibPV1L_,ERhYԃ9Gהa`N)TzT%`'ϪMGcq[N(ISi;|j$PJg_s:tq\VpP0<LZϲdoOL9uLIw( T^8 >;acY<!cXPYJʕs(~j/22pV]$ɐH8,Ӿ7Ū^;vq"e\-rrɣ^[^hnU%TWzfVZ1Z[!QA&ڎrE_7Zm+c@MSEE˦:Fn$ V-k)cQւA`k}ۚ"FF@&Ph.E6sώ9n?ɕmkI־_NIpKaMA{b.DQ¬(@CCq&0ʢ!Q }b>oLΔe+0QS˦F ?D(,]jGÓ6+Max1 ٓMHnGzm1'[EE l+ B@т8} p96'{GN9 a#! u)= CBq.b;FkF[ĥ)O}o!" 솆gxZ'aG{c'PB_wL !(\|JUl 1|$%LE]]J66ՑHjʼ\Ңu: =tw G" R 4B;X:pFG~#?R\5ymokke)D"XfAay'SPIxwa?Be:t(ϯ~cBZr7D˲!}Sf\ߤ_:-#xsV)m`ymO% dQ$6=7$,<ѥ)KVR5pWt"-7p B #&X{N'vՖ'$uL IA1 UV(mc-1XP㎔yh)4kBh'P`fL%q&32^ l߄mPDJ<(.҇BlPҁk0X@ֵ;`]{dqN֒?apbiɫEY*M!:ڮⳊ5jMܑ:epCN vCCc_Ac ]>C'`,q7j*c5[ؕ$4ȥ*<2*H1de,jf(nQ,j-*L=/"B,D 8n*]6wF"FֈcJ%!Sl6L0mR ""'v#GI$vlW%g]뷯G:߃գn݅ٗbY%غqMՓ, rfIE?o=$eCx9y΁{7yx/ >pLeGa~\ x>>DE;(CC0Aܻ]ۛ+? 3E6foɜiDn-y֜7wü 偻 0UYJ4II$ѥ)dRX#eR"B,clI2RZT Xم3 j$j61EYRd֌1)-I$B1Q"+XכadA&aA:Y0̡ACg:N`',GuW88,an㙣ȻQJ&],tE .Ԣ)4L!D+:.VxVj1go5RlB* tc6J+u\1Coy6 \,&kXi|]#CݘM(Wm+u=jӒHݎ)GjJ:aqŜM_ ^vhR~\֒GJGx t& '$v8pi w&.>:+Os7v6l?x.CH`ے4YŸy<`}WQ<α M^%; MIնHQi(KѺU̞ǩ7>RmV]!r+R?Eͮ8BSI~_ K$JHD0~@|4-ҿi?.D9 d8BgP|{_zۑf]Q~Ǝ&cJAY:$sعbpHMl$,:9d߹^>=R\'w=8'ޛ?SMǮy=݅q~| &H4zFfq&̞x<ܮO<8뗻^!oh@8fhy<rNoPO\N|,dXS?wPI)UM"sp}?1!zKaȘt180LF쨶S63I)"$IZQiؑBJ"`ѤĂzbJr>0pF)*r;N0~@KX R$ G;) FE ġ@0K =l%qiѼR#ämWot<޷D S$Si)c2m@FRZL?Z8uȈ'ɊI"ekbY/o/"u=ǡF|P DU(?.HdrX[)K.F= ¥k1Ɔ u ,Sfi;aR+ԸD! LM=M~IM:*ϛ?LR٢[&,kcYٙRiY3i++ZMSi=maӦN}zHJ Q\=%of!n~miC061>ץmXuߛodʊOEiM]&Ap3)[; ѰyA8uf(qYY&MV3*1fEQ@2(clEN2kd!]2$Hɲ~Q/ J@0``L?3uGe\Q)`N. Ŷ3[&:Cs CC)^k/IE!@=%_?4S8A+DSR0v͛aNOn;,12G·M_$>2 {yJP ZC<øLa,$RA>`kŨ88ӱC!chq rneU/)l<"\0yTgaX.Rd)޺-9!s!/wK(=[[J*]d?z Å0Cg)m"}SboWi) K@ GDd7 j JJ HRF@;@;8Qt!-?0R :TKNU崅m .A?tfnfrc4LD9'HUԫ U;|3X_) ? 3%M@{@69|潭S_3Aǡ'A2 uZ1I>рdKC,ti,L٩L@)!VN$+qC,1V5$z&'^#9~o?ȨxG|4g86]ϧ+J 7#@ x mSHprdҐQ.fY,;"SlͲܨxU|J 9ƽ#%<|uE&d"~dSNaQh{{^6@؀ꄂ1Mk>1(E&Z$Y)hJ@U TB \&%a%P0 #Z#⬨HA}j $"fR%A>!#5"+Jw@u8h9=`W@ OOKa~!=~3-6sfb6?8o\Aavoh?S[xvܓat4Jȶ(%3UJFh2K2*iGq`Ĉ94%U^Q6Sl1`&k|gQE$ s0uL c0B! BxѲ)4l!v6XwNo VY(`qUAA˅ONJpxۘG$d~Pb%}9: z O׊ܓ5*YݨG90̓mN~<@ X;V*VaB!dPJa=)6@I}tlȋOT !S""]2^kVIBRG !c{L2[~i!TM>AeSYC4Y̝NLXQA~7Ai8mvty=yzxƘ:waw8f62zlaJ: [d (ֳ{̜8bgIXw $~.\[nI1lje[D?h߼eW IѪ)UxyOH|$tQlyko F>MFQ@U!1D شb4cl\g%B.O2-ثlBZ˫ETf@(Ҙ+jQqEZ}i(N"hi H|'at^zx4 `A*AhPto!B@W5Rh4j>JF%p6{ aw6u&e k; sSrV[Zbduk{=gAђ-%ۻRA[*@eeMH!a(;ښnf5р4N{ :ZJSHFU,\+"j%x{pS U6Q*5^/X5QPm>;_c({ov,VcZSjw]4N)r2$\+;񋰖/ZYgfp#z~IAXjZr'BŊd"QFEr*Q̀jT,غ+݇gn\9.YiXҩZlq*eG{wR=q[ ᏞPf=xԗazZsh)J/B"pHQ8,ժWISk ]H!(K&٫ϾAuQR.=ޔ r\|y8ϓX5 Rp$ J͝q.mPIVxʲ 7%tfj<|S:%ujdYSge!׶{W㧾`r}/:GP%YzAdពKFx9JcZ"̪u8+V21"`Fa \ m@ʋ)|Ҵ&Xf# 9v6MA z3F˩vژC&G|b#'2̐@xGii3赛(H@9H 0إ /Wwsﯕ?4|OtK-LbQ-]?{P>5k{q|F%!ԭpAtkZtlI4{^h8"Ϋ8XIA+ކT pM: #IlabMJ7U{|ۑlpj.y%V{v,@dZG5_]]w`1눓W9ۻ'iv}߱U*>4nGkD%0SvxEBδ583:]uu4fUmj»q/q>=iiy!2yPq $'k^QY/lѫ[E6f B(_Ɯɴ+36DF$2! 3q)MzeCs~"6 †0/ 1 MKsZ$ ~NyKi:|wɥu[bPګ'o&zs.k,e55Gv:IZULm&>qn78rF Iםg^4ozV: fHٚ&jT:t=Yeu,)Q JVd9=WZrBN/"*$Q _ UA5P a{]2\$Ɂ%A;f9:'tHv#5Dذ)eLLK'L dDa$UP֐ (p Mr |O@|feP ܝ9O)]a?6 .N׍SpF\GM{ }߽Hnazw< OjU IƖU&eM)9́:΃'7(g~3R޸X*2̰QYⲝ+YcLmr bm*R <ާ芪R{'H6Ct#C ,C j&@n<7vTFE͐68M#=^l*q< f'VqεJ뷖A5 $F:JkdzW=b+ iJ em@;~4ID 0{wù18@.4I 5:#XF`C؎![MJ" %,S<`Ӡן_YP" H*sv^tyG[<8(>-VFDPIަDqkdlðZIp"u8nCHMjZaь2ER*ݒLw 55*ҧ3h;xo%X C]fʮ%Zi*:ox" =M04MmF##qp6w׶d f7HxFRg<;ǩ{};ʮmT{GSZ ̧f)iK.Rcxwr{k^8տ70]ᑇӤ~՞ElҡtJeREU 3 sKa-YV+J(#j``$iTrR Q )hY},R%N%^NgǺ^PxgHۚ@Nxi&Մ M5FcoM,6=RT͖E;liu}ƊjMͨPQjԔ5=fR_25|"#Hng8ۤ60lޞBmB/kxDd*UېUhCbj~~aTbb,oj°wm"N7V!.!4AI2"$6% Dpq ek8AY5rN'_lRf>XM kn)Z"F{mE+b fxrZ^ c+k+̮EJ2 fmK tTl|B P T3*'7"%Q^0郷++*v6v < 6%l}'a raCDx;K0<-Nrk bB$ ByI =Dq^oZ$Tܔ5H !TM:P[8vHQb9S6*3W6[aDŽO nSRl DSt(IP~jA9m˻-QmBQdˑFsM~:ώ ŪKlh>L4N-~%jI;+86b冫3(~W>mVb|4u `+l*tC| J쇉>l$hQ%< 6006)g%i ?KwQ }<Ifj(pdS8B99"#;C6SlVneC+DQ6b8l"&˗F%ЈG];'|LȠG=aϨ<R$oVfoG bm3+{8L3$=Y)<Ȯ}3EFa$ r+22<-yNfpUhB|Y@0 4gNuu,,69\ V|;$LA0~RaU&w1đqj}wX\L ;H"P#3<$MCH- I˩MѬzEl,[m"3bvS`u&2P~D./u :"HR,2 P!ZO?|Q~w6~ ₁}X{qw njpw#GGGbp8Ro$RdGnp陭ֲ&fKben Ot?+ܪpgfwy~Eϔz\%d=fgZkșR1xӡc;F##MTtphpBR(NZ~mE_n={89H[b'CxyHfSvfiǩC9$]1 a(ECEpgbCLƎM 4{7h`!E> H9* u&BDN4Ӌt"$Rd" 00Rbfa,{t0?agfNa6{h(a!A)4R)'/bnPJ2j;j`୵S)i~`kIJ&ES$'ufi K\nթ q+ KPfM.uVG杮`3c-OajY:tYGd\%pよ"b{!VAC\ٴ8@ǿAzw-xîń0(MOw6侏:aW),z(pd;-?4!4@rMπ>yJTF rz!NWh#eB4]9 !phԎ/ 6 ߘt8bo8*}DmP 8€0:%m)=@`p!y|ۯթQ/+.;wYaLfՆ271Ǵ6Ⱦ>8hH7들IraTbXDK?LM>d)_FCYH%ħժb&ڜ1LFUZEEJdB;}A5c MG #GNA7E/x}k<JdJd 9$~| Mz, ¸"S$C$(H!@u4xy5I]ݜPRB LT޵XKg?e$YI=CaM<^xH=s^Ҕ$vz'R^C[z3„=̙"6۸9g{.4cۯ^{ٴ2\{bv<}{k.5E(wq\ C$W}sސʪz+J[lF]*櫾{󋞒q:la5TND13.5z$RLI􂜊9=8HyػWgpڍzn^Y-x$=˼"np]vF3 ֖Hb0\B +F#M@B8w(P .⑰IˑV%ܙ q>]W9PH%)DH7$W/qMusMr=YwM}xk8igvC@ӿeB"+j֙9rXs *z{nUKw1TU/NN W}x9tXąwn{Gnx:O#7#ۂhT88+K_VȎ4\4`3(ۘLǁY{">}a&{ݵ_w˒%]SzC~t6h Oe_;'=~6#㩢G NT7U d^yI"Q&#$%cFM SQ4Q5%̞?28ƽ)Zqd[bo)]Yᄢ6j}:1JHD>/4p# O~TT c{ UH*BW-i.ASNaȄz2M8<-!6Í NF숬f:t}ŽUu9ja#:ΌRʺM 3"DE6"Ρd Љ ZOKJf))IB72aCA4\sF_AJƺAuoVm߫;p.혮b3)܌HE8:c{Ya (oz=R,ڥ`l̴E*V)XV߬<mΠBƄNny+P($Nrv5XV9HPRRv*I[bc^qùwusy-RZŬ!*Lڦu6ZI3.#9*HC$C6 I gM,+=Ӏm8tcyR!2BD#D$ ==`z^p:eGe "Q~X*$EΚfddRP !l,@ـ"XyTˆݕ:FVvv4M.MHK r0kBCH ZMpjITqDa]n5ɲ3f]6S%!v`ЖPH`wAM{Ӫ J"T|ANдRRn^Ô۷L!nd)2Ҵ xëv•IۜXaR:ude ƜN\9Le (]9ӥs*1``!G,{ǍNQu2V=sL TG~1 Pw SvTkS}QXBN="@mIAUߒQ6RU@.bJ V60eޔyK:R3%KY,\cquʩkRAB@ f`riwfUn?eV弚ҤUpZF*G~f**o8@;KX.؈Fw&7UL*!Z8؎nm1YWot]`@UFZ20[иÍA!;7 c u"8bVu܉b`XpfwQp( ]J_b.{Qhߋ(L QQwyirj* B_}=6+[ITޛ!tO:'99%"=Z2ԸܩDv#3S2M` MRQH*$DYvk EEaDK[Щ>#Fg1xujkmH%OLK8U.lotC=O3ۓ4ņC=7"Dp<UF pM"ja\*;4*Ie@_~x&7Z[aA,[op7([)Up}@3! A l *RBͲFaOjF OBzR{e׾ܼYMwN*=v/Nu wD;kʄjA\rlf&؍| V]\4m%ay8:UsZK8pv͐tP9Jqr!}ǘG,eu).'}6#qW+>Pڧvlvqе6-vw2նD4 Tz-|:\eNU VQ myY%ҐZQN+Kq !&"po ah憓gg}ƔH }K&t\%%LmoC : 6SUG]s\vu3_J\]pl,6k=vt(:zkՀ4^kzrȬӽ|Lѽ1WbinQQ,J9+Uڞ^CbnPҠ[hgY" vhlM((~qo sn.ٖ!2p cbUvU@vEZݘ؍*o2ˤsKκ:Z$_l "DLUeʑqr= &գTiD ف;!ǻZQ!Kju:ڪNsH "-DީeKEe$IMDmlEY=nm@~{PR2MD t!AsW<t:+ !7O$! lpAL68`NlصH+Ю̆ 8w& 4 |J; Ny{Mml%<{yrҋޏ}QpnJfe@^(c xY9 * hUC\eX, NqԇB!P1xU@|.%,Svq;FMZʘ2ɀ˶6(7>͌؆u/)D0p=2+cfY/jP 1>!Qr{1Q@%($};>ucҘ]fb*f/cJ?dBlBGٜA<ۼDh!ܐԿOM拠u?f wHya!T1^e~7# XQ!i)JWŴoG/[[VIԜ웻iѭvP1 1Ui%($@+*USp@}0D9XWintԻ:Jg¾j&JBM3u$ݥgVF xm{Pذ_ Z%Ú Sh+' )]+~)q*Ld]%Cny'8GN|kKB:Z1 e:1/'F/>;OG>ݲ:vWgyI` L Caxh+'xε  s2 &RR!@Hjp)"pɠ@ { {:'8RY*9~-f2~0j9qLcwa]҂ڤtZ+hX^k^fbj߇zu֋})f`mdjN Qeb[^47nb2%:ޛvP̱4*ٺq:lUa½۹1RZ\^{~= ]\yTЖi%J`HCm)`{}9ٹe>wK)CĞ|7'';31i[L\SLU+vbh;qaw,Q\z"ШA>lޱRB4=3bd4q&1n8soRn;<_ ǰ-$,0A!HPL”x혖(e!Yx_*YIfrLVܽw*E~yE H}=W+SPɭ-4&p^q鳳i("+zua/hC4&AJZ- ==7tD8cCOCTQZeg+@q!b*o Rԡ M!!lN8!E<$Z%AInVnJ=021!r L|  *NI0^G2 :Qnķ!$+)h5 Rƙwz;7okx:n޳huZB *5(pby~G@ArlS*o8'{kGWޯ7IST]zyF, J%xFCfԨ`/<3y~zIGa  32#24 @IRYLIJ$ъi)MZ dTmS3V_}ֈڿRmu%uɅHPJBق`$CPī" B&5Y6SF$pNR0`Hv"PN 5iZ-W$QRQR O(4HHwLuUbFH$I[pAq^Z`9:o\1b i^6^{ I?Z׌([wK=p<i,M _;&=TôF5TH`(O~Ck"y/q>:]~G<ݣ%>\AN\ܩ=KpG1 wW בA ܐA !M5`\C֒`wq`%>̅xI!L֙7#᧏H;v>=x'b+M?e8 Me >;`G>i,_gDU Z;l^Jd4/_2 (?E~P=a2X$o0zCl SE>pϹ^M@]}g#]i gJ¢2 '6qo4so,2nydǧ7/5 LfwlƌX(NޠăB=h-4L,3! ʣjSwFg]QRjoP+pghi4:-0Fӷ&J"Q6fN.4eB풩QLY$88[Ȗ: J݄ @( \lzk79䁁;zcL:uX(Hu{RyȑhFui%| T= n|@NS)øst{R)yfC3ADipD.}|LSq `SPͼa> \~jY^'[bftǥ~ )o+:,\B}'ND4a0B`r{ ;B*(.4c+B}!HNeW &X& 6DQ(RJvH H@f 9]ڧҧ4䔟 'PzE6=7>@G1Qt\m@٩ZI$*DEn*e6hQZ†PhD9oiU|{/abȠhNGWH/`B&2`&(WSU62EѢz=o1o)/bSO*ۗNSLU>6o?t~&q,wPO+r lO<ɷ&Θ.H51 ]d6\}m1%צ6J,<dS-SzU׻Z6mF +w=Px5)_~sH^By C(4 }B@t|6'>}.2 4ӂ2i@jёK?PTFBS ڃ뭩ʥ7Bوtua0g0BLI =wQʤ6ه,.RS$>/OrU?~t537dP$L5=9IJ/)G9pfIO'ZL E>΂j/zCQ?Qh-gPi UJЍ$ :<b2.i.(`b={"(!(-% B|˸A]uCPUt o<͐ HMY>_O_ Ӫ~[8z;F2`"yPD@w̠!&fL ;(b;I:Lh4BPgk GrۍwvN-G*8v[>=AWܐb8ܘoe5]>QfÆv drf0>r(by'87 p>fm$-^4pa2Hj"ACE}t םMF&6\wBf"D_VCH+L\&"KWT@],k -Fg/|&q;ܷ: e{2ӧ;6?ImBёөߘI83U$[W~=G|8z~>C{g쎲sN:`4D|~s ɔjIT뜃n ,.̍L.v2/Z$l:vOX{&/יԓhHI=1C s[}D ?^it9X~fjYEh*J eW F#l TD1p YB b6g-DI͕VfߡEذvٙV2.S6;]% fDRL1YۭF \OvV؃?@|!!-2L~d|H$R0g-RkBG$J<836C &J5V,|dd NJ綽 i(]3)A$T~*.ārZ .?C$9q9W8n8H IlB ]׭G3 B>W:b:XB1ܨ32c&Nt2 =}:LNaQލ*PX(CaX1^7-ኊ('W/ .l]1e84> C"2SӜx.r~lx0DP%gxRJܳŁ4 <٩Jib`II GgmDHFD . WM&㏟ᓴ CB"Rig?AjɌhF>I4}{f%(+/_m]:\]78 hĺ!ci؂E 5Ʊ.k6c2]>̭]O#4.D-jQ`i3 ^|l~ؠR\NCLejCAN4-=77 :èznl~|#qOaHR"HޯĊ|烍 OؑzNs1NIW.y(n?+'qs8~*mK.okde+S+aMkytFF ٟQmQٮpf:f]3"ЁUBƧ7avbj\q˝*; \QʦLUƃG "P7@ rkzQ,DP\"-)k*ĩRcm\!%+ u Bik^(ۨ3LYcmVK46,-hDs{u{v9rʰ&l۸lL4ʔܲ)i *ʒ5uQ ĭsNɄ1r܊DXX6M.T;ͽߙuzN%K΃1d2!+`֎rm G4a$9hեħқkm{~V@~sdYK)̜rpWpUgZ8zFL;w3':hZ$T0/rn3&ݻv&͍Jbn ,E&k=(͙(Y@C TYa^,(ۄ.&p#*i Cd;!daFB'R'= p*zv4U~+J}" ^A|Ceί, ɀR@vSBI@期ʴ!IIHzxsJ'SR/H|eހrQ}@a J04$P(!{`X[',pT 6P>?b<ɜ rA%8:QµTW3./!9#$fd3P"h1ÇNإ`W:Mqc/ 6o!>YYzOGU 1lgj#`O, GnUazoܚYTxfD|w}BA>ے{G QSfx>͞}, /u IZ.$\; 6Xܥl24'NazRP d-@H^  x6ox7$'Jc qumR'7;s}.;և])EM4cs*sYk78c  pqݰyO ?% cØW!Cq n =wM=u)$ "M@z(~!́BvG?יS"Sgs/W[ICzi[ c+0P.{o`!*[QGxa$N|]j SPJ,:?߻$ļ̆PX]Vj-i+e+gȪHF@v8$arr*0MnL&̷\Bm׳~dywԝv0ž79uGǮgl_ͫ{@əa[vXYڗToj[3Oãlۇ`p(^=.ZK Z;%(KP 8jUP(HБ;{& p,䛪]lMhê윏GQ 0G*DA\PnFqn M͛|c ?fӯ)ynC0i$/ww {mFv7^3Ovs"(9"?.{'1vE;LdUsP䆤I$ 6?0!1#a?ID}1F*?z_#<_ܿ@OPV "(!"V8XfΝ+?!z>Ǽ "U!ZRGҦVQ)*i66ؕfjXّF-A ɶ((f6M65Fթ6-iAY0PVM&,%i3C02HmStƿk#1 ?5v_} EK;?_(0@i) V %a!%sAi -W~Nk@:IFTPV(,FVC_C!_3PkX@CuBufr߷D H 4nq.E1] hh%4*(PVIpkaD-407B=Ӓw>(im xAHH- ٠A΢PPP((h}foiӔvfZaPJ=7ӢڔՈwy}omeBݪKw7UT'MT 2P=p>}φDS4Y})7UzwtK]^2(@]َܺ†hh ϼ"Ti-ML}ophro&Zg ޹Z*GB%4*Pd42VwP{sgkxٝ\ HN";t @JϘݽ XSA˨Bh( ;nvCƊm*zA {O@>woxf}j6h7'ۼؓ tVBS}USH_lI#706, P5h@V Hٷ{qMv)vIm6[,osteuJR޼:i#wc[mr ufx7پ&;qٯm s ޽;{מ(j69`[wi:H bT@((P#P@S群Mlnw秨*} GQFا{%{6@7;:(Խݡ}tl(m4TlW> fϧ]AE#ڒ:9Զim|]nܺwtT.@weD(}w;y7RȠ{b]Wnnq˻nek,svey W|zeҹn˲(u`uf۷Qpnr;lʭ2ůqsM6SX:lmTwmM۶lr|_YGfyLGZgKFa-#qHqG{wD{t=έcX5ϻCY.SҜwJ2{34㴾Ls}n/ZjwlHq7-VӽylmYXwJY4ֻ`k$ڀwv}]:J툠BhmhUTJ]Zof"DqAuN VCmmZM׷wlj(.׽Cۦ{l8*ӳ Řx"C75-7>ݺRx%jB, Z mǮ]Q)GVXbt\櫰A{V`;]]Gwt5g6m6:링w9ڍGR=:]zk5k_oR{T3*췳Kv&(rj[ mldW;oTUQG|hnv!::O.GGEsܫ h\U!'f=w:c`}|U3C{71;pݵ{O.&D;iϔcmj;såv,9׽2-ۮo[y{wkfjÌY;kzcxo^r{qN󷹖ѥ.g{7g'8ϴ:WTgPKPP@JY2JqҖ" R(,DE6 RTdodOq~x\>K.]QfxIx/'nݹ4/R·s'-j4ߦoڭLsDknݼ)T }lwKgɲ烴-yܸ.`XOHԑmn_i||a,֙2_#b6􇛞((-+NKZJ^@pL)~s sXٲa,n'gq{3,:|AqZ=ZJaeڼ]b{# dbB3o@"B7JntL] *hHj/%nfG9{z E~;خ$T_š_#Zhh᳆ȗt#X'[ૃG[g3/8p _>3nLu Q!ezhɝס7>_wtThxh}:D5lS]E>'wH W sk"M[Cw|l,'՚ U>BO/oH#ġ6bKϼ4тTQr1`V (m '7f xtV ߫V4#"/ 1wpV<-/0QԓIJ F\-#X yEٯ=%)xp2Z W DPTτg I(g޾w:74Q&L[ezЩJ;۪Չ`{!`wDdIQ9d@{`][hFѲprqhFbkQL0yu6f)әUk` hxi)(Noe dSES6?y~pS8C,֏➫9EA, ]LW?eQUד\{#3yn`БU"*bzW/l~>l^YX>,3ܗ>|8嚩uvs>;ݔz.ݛZ k$<}5T}ľ(^uӬj0w2WL3VeD5uh}޾܅~7Ol<3/h</t.­3A5dF l~NSdy{ۑk􍴌kӈCɂWX4&"ghw̗8Kٍ'܊^4qvs- eSڽSS?w% ?ViJDzrrխ>_7 6:z 5ӳq&)>73=Խ:=ymK(=D cƊӆ~B$ BXVDI^Y)Tu*WT^X')5thYU9*)lE’{VЋ'z [d 42-}O;ycmL>|+#C?+>N2@ /ldzKqK mo!^/TGJVPRH$@*HO.Pf aSkWWZogbo '&5Jjc8UFˊNc$RJ"Ԑ0-&C"ј e1@dH1C _)=\HJSIW 8Xi,ƋKLu!D0 #M+TpBAx P=9j B1(;4s$+x7~cLk\a,EQaԍsNyTg"IQo̟;%[w[ro;Ssv||A ! (g7+xi|$ -T/ S^C2tЁ'xN1;&6<4uHI @uvuRo"3͝7J:'p)o\57N*&rBY@|̎+!V(t8LH"yP#z04N#}fxX7ݔe`2IS$w&Hb^P>y7k"NDKҘVrXYd פHdy TE~ܞ:wu'ڐ, 1F6u>SqzMV舣0CF%w;#m!t*RA%K#n 8ȇ<ŬUqL:hCMW{^~yq fQ(4qOZdsAəBvO=>0LQΈbIBɗ <~vQj^Xi>Nq[X|-CFd B_M 0]uS@'ی묥ݒWDrp=2#I!` ;TlaJ;*HcmU$OSІ ',%=x.abtpyLNnU qE1lMEKLn@1 H]oD.hXJi/ycYa!3]$.Gb(l\OK7jPgk_-a$_ yNϦA0N-ٙ4I jd)ci'5A)+Фڈ (fډ h`~T\z&9KЗd| X>{@ ,/= V=m)8` 2,OJBF"V2U&k7MNiCT]*8l=lѲ8H"-S 2ҳ(vҽP&\aNdED1rDi2==F>s|Ќf,tl31Ƞ%9Jup*Ə<=$VVE['z%98ie6*a72%f%/B45Q&f4t# XD"ZMjdL}pٞ"BY6._ ҋtZYogY-֪"] r[!Jʱ\ΖN;[M8 r$PeqE6wr<9\Q_X[UDr"#4gIj@Y 4QC00>d~A߫;k'=ϥ^rU5M9LiTxs2'Y_XAH-h}Wv MyqtCOt6K燈Z9)_}zXH'U7ziχrh]X^a*[Væ\;* S^Xheei2jU(n Bds9" h RAJq j4Ө`F X"QM̘N^iԆ(KW Jr7TC 8_mtz|J>E-st̶Q63kT$8NItzZ>a$Q *T$*b2 5 Y0wMVR$1H Ί{>z:bl{lŤ' 1^4]M}sjC(Hxf;[O/p20(sXƴ5(M(PP\)* IcIܚd]&,Gf5jmy&* "_[ 'xAJAUjfі?AhIPADtzxYޱ={{Bm4C?[ilmrefA? RJͅ f$ “ K8e48`d*ʡoJlA Wds$ZjAF7f!5WmTqPI5 0Vq3h"~ !I[֐1͚\tƦbtI`HWT#){$=^ǣroE2DȤ*<StFF?>F]L|TpXHFHT.~8ϥ,MLQ\ u㧫 A7Yu2ZYnþISCMBwOMVEŪ_.+Z1t{f vnv> >/Vu/ӬD |zgi3dK s"3z)>7# Y*~e࢈ʵuT&vSP@˙,c |.FTPk34%Wx(USD`T[!ð!Rl9aq)| H9׸S[;Az5Ûs[֭aJ#>i q$erw-{.3(młϞ*W?`\'B>ƹ߿cԜrqHnt7_Q%>a%| fT`zN[ mq4sj$ p0|Xb#'Δg~VrQMkeoy i:tΥ!^}A[M#zޒ$3aך:=I`Ń;,_I.DJ2]&%\ zFV ΖGZR# Zsaw4nEfE՚X97NWE<9}rTKnA+[0Oy&pG+{h"Ze }f9` X`3i^=j(Y ZToJ29W(daù %NŰqTRXk_ fֈ6CU^*Cxj6-(K"p fe CrsUD"'E%Ƥ:;PǥZY>nohUSJod>_oDz@GfzZw&% v07AR6j 5IEyyve e_%m%_נsٞR-;O@ǣzM:vr 3لBf݁˱Z;z f9i3pZBx^ӃWP9f$&Es%Qy*|5^kǟ#xjV>6l|ϕ4ℕrRH!I+*ҳJ॰5y _O#i,J2g$P:)VʶY5}?21eY-zk %3+ꕌ L[UҠsy5ϜY3ԥv@wS+8H=K~؞ ,VY)Rp*Y"Up cxP`|uwía| Kӫ c 8 ] GEKD]=J;FkloZs"\:%bOƌC.p'(1d{!s]ybdy\I]fH}$T>VEvfan藻 ٘>{N)Hk'R/}w-X*2~} .iKio酛>l*RZvq]6GHcp&U 1[_:#9*߷ze.yH=1cK)*yet<LSNeFLOՔDw[>#$ǘ(2͵s ::[+9i(2,WA!6d0'E15~0r}1}7WDyg{6e_}oz&|[ d\aZT^(FբJIW񘭵AΎA_%%uJ?%&Cz4q*FQMG2<W܂-wV[愪8 'Io33FiffJLM>#DL)]1xhvʣĕ /pVmMK&zOKy_Bn!KGMhŕ.[̻VW|X$ "q$[Hci`B^:NÙbzX#AnyU4Qq6 0tP9Gx{!Id4N$IiEŞ4Y-8OJ%i7]nM7M}Rd„U!x<(%B09H,Y$[V'7ҏsG2ƥR oVJQcC<&u٫)/n8 k;0"}qm[븦ROU ώW"&_3{ {߳ i%sMM?4DdD^Nl\މS 7H7};a_pswA~lԻn3 Eߦ]&HOLE伦YInBxKbƩ,}/jlO?CHTXBLevYR~ _&&iԱBDQLU9e5֊nu }mr'ՂZ-^~I* Hf\yz e9;uo<(#`>;j权=P]$l# .c uf:!a}K} AuMM;8L.gNPaC׳%]-jЀ]* .ޓιqB oK鳣Y `4٤~`-7.[YT30SkRvk';㉼*9r}9B켨b|/c@U{u޻=7Rll=qBB~/=رooʼVP6VUʄQ!$ B't^2,sjeWdngKI^Ø8A>ߢ|X-NN!yYt68**b*^*^iV{$HWwD@,G |!ŏJ x-\W!0e \ү؛? %a\OG&U`d{1 }}̟^VBagǣkޫghq5A/Ϲ;#;{m~L$eUw\}/#.![NL˲,dW,nFeq鴕Ql1.luW zbuIqnBAj xm7JQx뤾lVZH5e&L<[#:7mƳ)O[B_of}vFћp eN rw1b C/ژ-Z M|n Žv.^JC>>80BQ-Iaډ DhR=t1K:%v8DEqs277sgI/$'.7$o_&%n t* b{H Y V"Da}INbnM)H\.#j efS]ͼ ӔsK o1T]<43kJ[i /RlKںW@L8GLX\17=x~HPU3,ëWͩUs--zmtiU{Df7)hMe 6e\y8Ҭ=9=--{dlSZ[ jj\*Y,pfdv"?Вޣ#oxj땴,x1 E 840*rk\Qі]Eg "ELeʯJXaڙJ;5>)W{WdŠP(j[lˠ7鸎FY?UMah8ooYRH+]Pگ;zi0곙[T5Y+k+3SW/T0\sר/{]ԫK}se0Wk}xf>Kc/kL՟e*DS@v as+\f`mewk@B6NL|_]֚5i[Ad@HU1g%*KhY ~K#fgq"5E:=kEۭ:8DPM"vdCFM*?farn(JQJ4-YyN2<}&`AI7ʫwr^m6D3tP) D܇RLƨ N~F YzUXp|*Յ y$v9`G#15gmGHNicĔ4C+c j* >R-;<f{ʲVCyNr.ʹ) j-//|oqeVMFhЛߍ.ᤫ~!_8^7E>'z,*wa0Jf7Nj+/?*]ޒPf~}*7{C2|c4'Ra9qj8>\qNfp4`1r@epUkse-Ϻe&e"o ۫8I Jja*B˃ aX'kݴ``o]N:X~wˠ/=)tƣ6&qtۓSɼi}{oLRU(/3ov.Y%:{u5xqI Xi)ۇW@#`=׎.Ǔ+z`<蛭6F}/S tҾ ט{xg;_=w\FfIK:8k2),=HMӲ%JCeg9){Ůjѵ%8OVzq)X/{׬5eĤ G({sv11.tkouC1ۣSBN?qۮD L#n9!Z)s5tyBbAQin$#Nn"B"Îϯ;m>\n|C͓W((SK> Lr*o4-b:±^xPQB͙EB˺W^,\Y_wiWt%Ns*^0Dum%CJӹ/e5wTxHBBIɻg%f1X˅ow -?<h/oKk@{;Ds GR?'-f$?\٬Pa&43yOƍײyBڎHwNit}sWx+O MD_,.~,Eϋٱ7/H> qR-ܘ y)m&Pg>eV\/[3T1d4Vz;9rɎϑ0g2o=tsb( ){nK"\L?!"EL3fYqX'{,%w:x?A{Y9$$rV^g*G[onEú>dZo ?6ĹgOm~2_ P/{u{|zI}z>V@Ej{q43aPze5v{:qpEp/^:[qWϖWxAE-ƅ<gܓ?ơ`‹s2hT1j@۱A\g@W9;C X1K&H%? GW6*jb=WlCع+(P*J]^ g|+Md4 Rarm3{` Â%RfFoƶq岧~«(-t1иhBCu IN|#zΧTY󹨓 + o$$mUwoO?/ZszI$ о1#|YfѠ^ږu18wZ ^T&8MD2n~(~\J~(Ip aO{"?nu9:ʼjJHTW6A8߈h2B46"Zi[0GO^M_jxmT^e7ir%mzw fCmTHFLcoY.:~"ʵʍ3?v̫[ys7N]Cv ^uv'K =~ptgH_>`$̻3^SPYd$S&NS^ɥD3-.2)C~:{)-'O#KS,ѕ %7_[e zo`3&:3ωu?i x%fLYLaFuӵ1 V_ ]l:J/ :j/чj#gM$ѵeNsU^N< r(^Knݞ=F">rc!em۷9ʇ|3T6u<8gc"$ m;4tۮ򅲟߮nB\d\:xXEeLuJE*3ޡ/Θ Bx߉^M0/KeXȩ jBԅ翾|-#@ 63B[o45%@0O(n})\}~MPVr qjK‡W<"'oc1eio쿛^>}Xf_5Q|=T|F#tTY_[EsS, i+6H7(wɺHBD+%1fEGh,~T&0A;dx&uSEs3I.R0ZFj<9z|̂N+ޢI pouJǬёNzf_ v["'\dcS?La^vl|sra'='ta2*aBDE.49{xoN뵡cBr>5N⻿? JHOvwoEe'dZ Ғw,zuUO%5b/_oU1-A5y;Y{;17E|FeanՇm;SD=SttvF^2E|ovmzU/myL~& Fsvm:[5`P?4ӵ|}{pZ/S÷put4iVTb:Nެ}&Mq9vysБܜ֫X;oKd{K lǬOfQםy7駎lr~JƷ*GkdP{WE &eʛZD%àHoCOO10];Zk+DݛG~MWh5:Z8rG̉s7ɋZΎ7G52"[OV\Ax:1  R®&_5@GAyN%fɢ_ V7SJk=h^g>N9AoHUvO?4DuACNr[;8]JR<^1o]10;jzĺ%1cϨkݚs`;; $5wJU";\0j(?" yy3:daӇE KB Δ֤(%8.kr.? :T˦lR6N-nz {t`{I^6qT1Zf*1JA9l*MѼDD6}~et@QpYCn:!c{̌ݜb}o"oy-SJY~yRGSxl/Ϙ;GxqLh)1%KfRfxÂXX?z/ZVRERHy:JN? @ȉ= )8?lG㣔 r2w`TMg%g;CGʐbrf6} _;(p 8. DTMr52:.; $;J'm8Sav H`? v8m1=?fBzLjQpyMW)qM0vaHIw D#ȉR%FA2hByç"wӾn_'ĵxHLCc2\:I|t2B0ҿHr<쒚{yq o1ED8C$3OT/<\u]q w}`HA3{jV6iSo鯶# " T? MVOA]u\Փ2m[_\Q\ˌQ2h'S#Ir>#wvݾvT#ܞU)K1Na2d%? #cIwbdHf*h1*$QRl+IS14ƣ1,2QDoۘ4 5)ɒlE͍bưFf,hĚ>{3AZFӑ%"de c3Evܺ}]:j"ߛ(DA~Jl͆LDhE 2@ߊQŦëТ$Hk_Dփ7cK?;<wC&Z}LC- 2\bkՠ"j GܣKuQsVqF%QDݒ~ >Q'[d00L9e;wgGJyt*oզ?Zoqc~-tHJb$E ()>DR;:m<{x>ӿWQѳU5UyAY,tlg3o ʠ\Yl/:4U<Kr٤,owy] g&P$kb :(5H(Q8XA8$pYIn.<e |;hzT2|<Cy']0K-6ųn^s=[ν/7pIDz ʃD% &@; hs !AM3Qajq-!э\C~ix.vyM' //&IQ_@U{:x-SzwGni,9;Kz3ƍ{2 ?^:#|DMF3 ϗ3!\x;b3!; GAOU"W~jd,hՊK*PWf }Vms 8qSd:nc}Vaݛty '`i.)[$}SGzX| O$ݻ1‚ra/w/uo__̝7e|2oa1=>d_Hcދ(%-(SMm[j*D 5&Q$4"-(1Knpڊ؊Jm!REjВSKlciP<%iw?Ј~`o/PC= IBJnH22*̨H?"2D!J чa?px ӗ?"LwTG,Pv!r}+?6 {B7 ځsCG?h?!!?Q>TVB>ПwT~gV5j> h0PnVu /<=Y|[Hѧ~|8~[ׇXVi@(ILȈ$R-nWH5;n]ګڢ,uU lCیNd %v ,t+-E77nWKH9kwQTVX)ɒܷwj EĤm`$9@'WJ#A-fLArVi7&]ۖͫu hIi,W\FƘba`bdF4b1&PX&2nkţj,qݶۜmW-\Y49nх )"<t~P/= HR]p>T}=0P\!v|$PFr%jxi9pUu1.A-&e+=$kR+$mCHHV:q}?GGGnkO.^;b{xgd '/f~$ IrPĽ '(P||A&?_.&~}O?CI$A33_z{'h?T0{2S$gބWO$?G׿^g.Z/?6~~|~v*(ER(I?d@ @Ö{wy}sN8$Qx Q Y2^CqA4?:r7^arX(.3tHQ1JKʘ?X)D+e?_>4lǗk|#8TPI 2O<8!im1XEp0FdoP93V.|kĦs{0TeƛDkM9ilK;Z͟昰m+9ke q#!ŌyuggR,7|IBXjX1 RXM.hfN 2 -g˦uc3^Cq"%9Q3`?Ģk|!1lwLgLfJGCY2#(Тb-yeH^BPh(ӏ03j}~w`"\ B$)}c%[sҋ<"j>  @"| ӻ\9[W~)1ǘD8,:G]!~c2Wpr<#-5s%,ơ (|eN%)=fDQ /8%0gL`H Qh"-0]fX p3QoEpZ<6 P|K0E!랻H8E ,`~2lpN3pj=NΤÒ_J 9idnhF4$zpRϷ~8dŎv:5,f%\LHy$9J@t{U"TOX}wauv8^FcڙBZ WkBQTE'OaiJJSnFyOs;wxEHTc1:R"T\h+RKU5K "'KvU^Q;ƦJBLDfK=LHly'}g0C[&Z-tw{TBTK n2vVa̖L0`0x ;p;= z٣2YQdԃJ~AV5siejhp6_e rngmS Vr ) RC\.(<, e.ϐɿ5ꨃ3sC k09v9DW E#(YWe>ڨo:J8 cwtT"#O[:kA IFH-Y$Q8iӺzDҼFb}w nVۈ.ByDtP<`4U " qG$Qi5vzM͋cwI/G0#xY.=}5{ ,yU8d!ƒIgg\: ms#H% b{A.]22! PfՄz:J:lTG /9bC֎ίn2|8pUSTsNPB\^)ґ sCT~* B\* jiWy0@F*`$4tʕ$;\iVҠ0`bU=4Hx( ^gTL:tbEJh!V+;Ez}p*fm`aOW% X(q]uӿ=$"t].fLY,t}U(lZUnahCDzɹ#3wb"((:pV 8'EѶ*U0)c7TaWA,z-Hv֒X&oXXVZ=jhYIUU'IipSny1Kp08@ t;U &p}`iCpD Bc eT Grq+RT`a I4ƒ ~M:l-me,^AF%TF K.:cŲq~hu:\ǭ U{CDdc$B0QGQETCi#!"w4 3&ib$_o=籇!î/%=QS((@@h &Zm[: Qj*DD,R.@b2TpM̍= \Z%E1> zQDei"~VH@_t8 !Z3B="ۛ7ӕ.!!2YʴQwUǤyy[=S0]xAԲrDA*BXpmD:!r7 T!U(:[g$,:suWQlF%  c 1ɇou.|hD[ӏh5RDm?HRTj۹MyC6aNePJBHX/B߷ż~GGZg 8̈FׯS1 kxIubEA=Hr`ܪ]d mcnZoonx" V 0#L#pivΫ8Ӥ$zabI%j(B)cqM<~,6wh#dXd?g4 PdHP<"9Gð :)xKq8 eMT Y !(t`"يq-ܘfXjD[h!PL]P#!TDa({+?qGFM{P"|C[l{+"%E[:гL0(E7pOJjF7UUUQC_O(1 CXkNїgwvNcO nADyJ_ԧ}N-h`nYdA@(GUQD=DH @M`gF) T={8rşDi" hdms雃<i|GvCj"c@ fPIB3/2Lp'0b')aCyRϿ潥L'~^U@#^* B-.$9>4wCOlJ$Uߜ0ŀVw:u6)>@PF2\eHeC!YTI-660AdHX)) R>YԒ%tQ2Abϟ~迚bШ;ü0< P)o1;|1 *?@db|;'N!AzŁv 8]ʏ٧a\Q;]W!jڲAA( @#4FeM/ئ@_=ɇy7*ӣs_B : }b Xq)R$$QbNG!y|Dz?yD÷"-`(s_s49w7t_혡+U $ HxtG ܠѫ@Z AC/#{dݴCoޏ/;o98ͣNtbA~% RV"m|v&elmt1F#F/u'{h%[ƨvAƹ"~.()JÌ8{7oͷwVW$T]># }Sµ#|z$1qp5}OYR˔D~8 ɔFeQ3 Y#' `D1׿( @$9LP_~֌`4iu~¤%0?ۻv|S|+UٞX@H'm':iA}#ngc!!y{?_Q@Wڜ;HPD#U~|f͇w@m7ϣ1Pp^Sѯ+>~0gсmm2bV!j/&"*"F )R"EXVڊ`mRy̞hX@4dui} Uϙ `U-l#pI Q@B" 8VdP(Y CRy "gP~b:2pD#!T :$b"/Ј5$$h4p{b$I +c%{`k}a AP~;]y!ĂmQfa0 cߝaexsqFo۷|9윜(EpiyusMؾ\lXCq y{f@VԃguͥBaxvtMWm_u%^Q.~B[358qmZ$) f5 w*Ѓ W7a = (`%׸=oWo㿰Wz5m? X94O aw;g>7/FxIꄡD9FX"^, e{.2(~I wV_їY!PDHzyGWEl](H%PCC$?aLg%(ݏ Oτ"]>F ?5anV}ĉo;#:'|$ qXAQu#3=[}B?tp?90|VAݸ2xE̡'EUzHT?'eF<$!O^>=@&iFqA􃡝瘈BLJfg8%7F'#6,Op(F-& ')1|L>(HR+nPtߏ{*Qc#9Z1eѹd-coi`ȥ~--a/dOZBZ w WMv%\e x{Qۭ"A7UkZC`͊,w.tYeEو]01YcL#8} |Um+2Sr(>eas0&ی]?/aE{H)!5ٿOA鵳L- 4C#-ҏ;q?H2 uG% aQ2u2E (^Л{|Wd_2E­]B|㩠$`립=Ӎ'wHI?^ i_D^8W}0͸FC`.:-ʐ++\l2/T]P&ua\&Rܭ0bv%|Ŧgr!ShACj .C$ʹTe$e^C}Z/C'Tk!A#AìY0n;mjݗ}=>*]e\tTɌ4pR{A_O] G9xf93BTAs- ऊuG+.ROUH?FE E a7Vu#IYDDi$ =ZRaGx\>bY3 ]QT1JS|*&* V)(.?=`cԢN0p*^icG괠jwc}}XQR$ރJK0`f8YaK+,((ӡ~zg3M-=Jw\KKyxuiV*Wt|GA1pYs5Ou |A^>U#fe7GDtˌ0xJ騱b.k~&CU"0zb&,&A7~!ezI 7c̚_ٔ]vF8$-L[3tu /LfGjT0GǏm%㇆3y߆ԝ_>ڊ GٽY߸^c,[ܰ}Ғ#p2bh//oDbGY`:E +\=Yyr,U*y!F;˲:ϝ) U[N:2DbϼW$%Qr!GmdAaVhik]*"$)c<0hE"RECrz=ze ه6_"*H|ŀy2 uy8E@39Xǥ+䷣tWf"z'ʃ{HM›C*]B2G<<#%ƕRH(1B9)YõYn*J܎?ڙ}kF;?ª8p Dgm-Hc)"[*~~)+'uf~wam9L#{5' vd8(I KA_8*&P"lMbah^J"qa?hĮTS@e'ᳲdV.i?/F3sNɟ2zOd:Lˌ0@* QES2F᜝'.ǵsA;MO)!8 (&>Oer}kT,P󐝗vߪ>zs]Jh J}f֟~;E: wbw[Pwץ>G;~&SAX$!JWSCGpHP* EwWa/RRD(G/ cf_?u츳LgGjFf-bz-(|-tgQۨzy~0}_MFvN&P 2v@tT'K 9ۼ[tf/|n#lʉT3;(2[vSz"+2.y1Ɵ=ʲyy)"bX ĬRi,!JK7*Nf@h@I(@Z pP(aJP_aoI@KA6k& cklgߌQPV cϘO@=|:-:o nY WB˓:A͝,GQ`ʉ7/W!ovkQkG>D@fdW9~ ’ +DUXP("ăP_,_EDQP'ހѕO{ A8C:Wy 755U0RD `w 8mc4\0ua|2);L)[ZR]G=;࿓V`/gm:[ciW8E 9;V+8BBn #Vagy,c]?1Nɠ2?#ӝ _F,7 8[^*sݹ)#"`'PUVظ\PPP !:+t{S[ ~A(BBH,# MP}~# Ccɤ#J6bX:'(eE#3E**d G+{yb̵!m Wf 29G>ceZRXF3.l۸( wwPMZ\kPUn BȗTp|ef巾 8 N;(QNj92]8,2R2 qhy񙬴۷kbIB|T_khF|m jK嘈k_||}OCg`R*s`JQe8!ȃ]W^t0]H CMvL Q`T3QZs*Kۈ/p̃em^XjX,w8%ES21 Nۂ_ o|~sҤJcj`Ӈ݂cV _q)&x T"u6["3/[]Ak;drȆӏ&9rTd/3PG_Zw(W=l7WBWۂaf83g`=CXUr4C|f?S:;D=QJ Q4E!X@ |bEcAታ$mR_ Q&%o7Ȼ[)x4B g=|sq|Q釩Z5Zj@,ڭ)_͟ KAFyc! &>ED< F /ȹ\u:>'3;6 Ms./5E% aUTAE5`&0ʵ0o8l0.z+$K;8s4.' <iO> ,Nʣt&xƭןzo =J2Q"FP/ rw߶RJpV_ze hlՐy沊h).=wkC 4K!H$ M9!H ;-³"S}ab"hC8\Ix )ҺjQVm Pъlʙ<«a;[M,FLoQ@B#.vӌB߯QK-oS)b@ِLj҈f(-f7vJg|ؐՇZB h@w B~鷻n n #cMR,YeT d@bBEHR,dDR 2uVЉdDz =i('{ϭzOW]gؽHT@D|R?慪bxˑVAsRrơ.!A(Y3׾M|DrECk+s嫛qv~֮Fύ\$,&>M&21(VT֕"1DPP>~<]=. fַKk/꥟bLV\O9Ud~% QHTR &x@0t.љ& \-%蕄|F8Z]*ίfIke/X;PYZKo"Ъ^ |6c(/vr33EW \5c8IzMZza"?!'rK^&x*3/iΡaih!P;ⵘ<qT{U=Ee:mauƜ{(4K/ {zm^O(,u),3<ʧ?k #Ȑ\浓M{G @}X>CC.eӭ\Z= CH@_02zVm;VSzNk ",?7jsơv3 $CU-3kx<3 Q3pE  halo\D眤sN)n{\QuSV'0G4E9YVMaD aN9_Txsye $Hx[uY*JLzYg8!ӦSӭ&oZ *)E pVKܿ[uG-ȀwR}A;Hlk7Y$.5[y?9`lNceuf=m!,_F|or_$pw[$x,7GCUQb Jj8nj9(i!D8`v@Z9Wnz{4QtkҵY9n &@!0.{V5E$ӆO|i <b$W7(݃G"!a&[JTQXI1ӸpA[BQ^/ a^BCwa`,]]v ߈6_o:7;JWbU7v<:Tiq$zH;3Rwmc =X8h= }+V@V_!bS m$j'zg~XT뵝HhdTSac ȌQACtLDx8t$ov07p[4uGiGqQiC SHS:V|^ I$;\,n}57]^zp!m蹱"r!gnYa &FF5Nlpd|Uh`֖Kix@K9I mo.3z֢ԅH@C* O a:g%չcSFl=?i/<9i2$9/ xK$Қj)^0|Z;6: =oq='2Sh|0(@RMHZm{C,[QS\P dCp H4m-Gnz6:A\z8|ʱ߃0^XNSG| F=\a?-ngHtvžᝑD_'ۭ\  #5$[aO_i2f7e{i^QC @_lݎŨPbdMU Ŧ_0{2iK 12*Ԙ­TG' H4I3ցԾL7JwʚZU hWأTX 3*(<ŽpKz$Sڬe(! H * ٷd>)*tu!Nb4kUj\GPSORyy Ղ0 VE=FȟDP$>νxHӑz89O]X\r* DyR9Z ^A"/l.Nw]~:`@ ]|~XnW)4h*<*bB* liswn%ɓO%L@9eeBT= 4\g[rJy/'FaBC@ĕ,n;hЌ jPC  29S>RKh[93wTI%RN0 4Qs\ r]%Eܩ p㙽zg;ZZy8q iZu7~{4 \^l:{j\|Y j(ϠQ2Lep&}P_86qljsńEeH4`HCT$z8y:~~Kc[}0QڶqlD!aԶ<ԢV3;νd` V9KöTqa ؈hgkZKiXwS3^WVdFyh{ɾ 7n9瀎YI2>#X$=]%oRj`nrΓgqŔ<$Cx}|Gw = GQ9WZ 3 +ua4!0A$8P&-KzJ6Jpd, ' XWh]RE%0wzw숈4f3O9H?p,>vW_NV˙1LO.Gx,s%^LZ\Ol8'vw0P1X!(r;,AYO'EQOUC!7{֎t@䫭MDŽAm1$:"nLf6Y"_c(#7 6 U@H}TaL7@YII DARlҾ'~^'P񲍄,d~#IJZ'~ߘ߃ eIW;@ߜ})6`bzQӢEkVV(Q A. 9>VA yRIPϐSl,TgR)|T>x0f9D P&!˕=O`DcsX ^tďDWWr?[a83_ weNDrlJP`fy8E׺Q8z6JrJ2쮳# .B`ghQhzaPO韈1fK@ ק CVm O~gdW)M^h`Yevb0Gu7^VhX<›kp gR P"pF jOB׹yӒ1|ZQv,,Vdv \@=hTKZ)(3,{mpi:8_7jjE\0 $Y˹hj|u%3^Jcdz듯5m7N/NMeT]2Wx".3eK?2>pa hXS**H7$`a`K"{dI fZ|&`ɩ3J}` yD>r!pUȮ`XfਪI?;9$?RwqX̉Pq 4 qBvf øs(+*EQUjw҆"\ΟTwiܲB2A 7N$7a:BGJ oȉY7_\WP_Gu\M阐A:D! Ѿ:cQ= @%QTrj2.f1)f1OrE%y\uTWV˼ngfojv_oO`nI41h#J@(cSڠ*"KJ8DeؕT.sH=ƲQ}dA }U6 9Ru~&ٳ` Ph(  ɂcBfKZ ⇿lwTmsIFXV!HK[txokc1|̇dRۊ hv&Uj=92)h2wYi1,3B`<b ڿ8$+X"h: iy b@!dx *ˊgj4pʔ,x6kDF6] qS~|wዌ `ahAra\ @A0P7Ey($G2pň#7_ɼׅMor̶/J<FfDž_` '2@ \ j*&\vqL P((=R>L)W%^'a@p"RңKBa!J=SeĘe;C[ <'q*,rA el߳(Q;'-m h\շng:0Ū{3xά/Vi`yKDFX8/Ք7&(VtwV^N;{*|ty-fxkZ% 5b' + THJɲJndhA4pbod[iAX[aR p"b֯-^-MQEe'-RqBXW18RZBL> .FBOYeUU4Rd}nRVtkawŀiz;Pl ((xޠK!<)vqk~-ݻhA(d@SGtDDy$#$E(;ug[,!m{ք'%5AR\"IU*G昛hEE׺?g g=y=-Z H+Hj6./Cﶵ{ #:iv"GTLQC)Rz: h2T ˉL!8P +L{zRTQb4 (8!mW&8i"e׆CN@5@aXUW3+eFA(#Z^1ϴ#*Jq`=0dbE!=|%ȜeS1ET1]o=W$بCi#&CLz3PDJpTFzs4MCСz zFAl#(C`ޑu/tZOKzh6-:Ci+}bA&"p$s ]H 2 \6۷.w˄WҪ~ۈ1N5TGC($e¼2>.fHU`Wܴ!Cf (RߛtF3. qąz4.@dWpa!t 48,xevK9zE5֕,i>nf߯VFNxRS$ B0/_vvk#Oul|"5w* 2mhZ*t=:RhxY!%P8 sa @.F ?d(w(ш0e̵NJ܅Ly؞6?mq-!zgχ /s:@\XL Nj8l " 'ʦJ53iL3Ll0!k:ݾOk2uv@ʐ{4; ejl}УIkwpA9a+]aK2p\#0Z@Nuh@NɣWu”՞B_=1`փ]ݞBZmvfG}ڲg,aeLbTj+N1WPNw2Y3X40g(:e8wwׄloMx&~j?K-HggBݬ|(A QX]&X*Ff]pUn1%U c \F0 ciXa8R¸ v97ZH6fxGfw휜MrPk9 .Z~baMZpªnh3yVmh :[8~{ZM/m;65BifG,Uqa&'h/䢱ч/RgD ߡx[-Ve)ۦќc⯛L kȫ足WUAV#}4XFh 3y8(fr1 4" K+ŜjMakݚ+|gwr#$])hHF=j?g~:x}.8tck&ePܴ]\:C3BJf(!D ;MX) kk%k–cGV>+8f5B)9H4{8aZgE[Zd %!X3P)N-$.\WtD%!)rϮrϬ\E.(qh iGTxzGV Ҹ8ǪaFEJ}.Oaq9uiuT_kCӧ!oζeb"aBT5@A):z[ٖ=pJ0q@PQ֑Qx{ FdzG]'%޸p"VŔׯ<>G9U\-5o4O:4਴hv#fU׉{ JnJ(f@Lc=ȈA&Eb(@@Wj]]{'/D޻d6,e}>3*\>ߟJ\ BAI!;6M^8@wwPUU<]I8czHbXŚT |j)MO *pO?{~]EId# 2M4i* mQ" "XBdl̦)LVlL%mWS_Y$[LmIU1 JS/so?gO\tt01 չHT8w,< i8nebJFDAJAR1_)IR<hea9p=lB&@ dA.B eX0sX{&&NP_>aJ}mrf$蛣+]D}CE^L5|R.6P/FRű믯UU~(֍jU\uxkoB%B=.,i`*pG0Cc+43!\ #s] 4f69=YQgRBJ~axwIapQ()/w֔јy*l:<NuGrѴ_}`P\4d DA\rIVp 5P *ACin2Jɀ J|Ǭ_l^M;N鉞 rR1+1P qpʥi -yH< !,J *\e gR.Q*@!)ٵWe|#[X UDRۇ5gT2<6r4 U `&%7nAlT5ICE`&`"]iwwNSpPP;K%il^{x 2ou@Z80w~G?6.)LՎ`4*ho{ڬ5o)TF[ShLJ'FH泝pR<[E0*## jwj`} )HAX4D,"cI1BX s+VS!d'%Qnvq|%g+Pbk NQWN:Ͱ=I& -.lkÔQjE~y栶G8cE0(j,yAfhv+<h"FTmeSLF ⴖ;C)TjQsUۯBFӼܷA;o!Lws02P*_xryIycd𺅬3bT`9MM\,N#X@7H>Kxq\,f1Ј6oJ!J˥"H>,%HE/ cIG#5Vrl?2(Mr ƨŰZ4Qok Q ت*4[VfjQU>u*ff% P*a%4txয়m8C(_jB-XbXm{(VZ )PGF#Z[S6-b))NOUy(gLPM4DvE O7QFTDĄ;rx]$|먲r`p]1lzx(hŕ`ac jN,!F?-AW3d6EO 4(;4W|PWB>~dDV 4NÈp AI"YTYbBcHDY?<HI)Ԟ^N"PPAB ~(@C:ϟ}v(dL?oJ8襣Yڼ۩v.⪱o#[~gAy1^یYxPfX{j*FNl#e, ֠RĩJ+_g?@!$ q{?y:}TJ}teK~i& @?ÿH%4 lŠ,mmFX5E9ZZՐEDjƊnʼn+)B52pxH/ A`4N1(p! @C(4ۛ0;Nu?֧ڻTBAi1^I4o|Ȳ*+y^n /|âykb/3hmvD{(ÅF9 P5">HxPY /?t&-ȄL ( ),4I6ʿE(#s$O`+]du)>w}(t q"(O?/5Gto-S~|<L=;?G=Ma%%!Të E$ȂT2ع^/~xwK՟q >cS /tp\k?'GAS"Lʔ&17Z:z,XuPCH&^o`VF/k;~}n=ЄooԠe. uėةDP r*aq.ˏ#@r, +ED!2kz-uؠWR8nC ]"GleV8 %BlXL L@;H/'D2qdG$9w>ܾ39 nʉz0 !15CͰfJ8TG(`߼&fG||n8S>bCdܜO"b;C^|17dӪʰA#yg#}" ҹc7~DJS'&VOB+HrH}j?_M# Yȡ?+SC*}I?Aa p!<*/WgV6(ŃGq;Fy ŧem& @A.]TJ&Sf1:OZ%! 1*)x| A]e'38m~6@Ioձsw%HS׿,zr3c4k[`*'b z(-)J' 2?RLUD1PA=-}XŃQ+wn").oZmƙ$ ??-V)HR hGI0mj6Ա&K(X@c }%1dF$ܨWijvKfU@)~? K5<Փ@D`'o)5dѤۨJJI4IX#u&pp J&b@\[ykiXwm{-XQho{,-S=pJ&QVeS֍%^g]\,%TUUX2qRVbUIIuYHx%I`"JA"Y! d܃3w^$`Oc glDcC""9hP6UPȊ%"дD mFlZ-l@PDDZ!b`i5H{찟Za!Պp?4E^&_ZlSِª;,] ?zp") ,A4 0Ɓx F2{&0AGP9:ou(CbQ330CL$`3zN;x6lI?WnG@HaO>[>=IIWSe]Hs*q'X@'.i٣f2KKoZleHpH{VDFNܦpwv<@C01ۦ5%5"jG!ux.$) /rhB#W66&G{ ~D&0Ľ4$iȌf:8l87蟔۝OS "E83q P G&i`xhUMf@J*5,jh:rwSƉ3G368; d^$O\!6>[qֻ0 LJ[G|XC2/DT e˕s@מlGP<ءuXV{}OS B9rdCv},L-~\3;~vaZ/mWWeWsAQF#HcF; o)"DtR6H t)b2X^'D:!Dp@q@ )@Q2z@?iDonM\jG_b+o)UZL4Tvv ꏺK@l>L RDX)mY~͂!([ *ViBk5nꁼIZ AVRV0Fc.X&4lUj Mk1ւ /(1*2*4fu%*RRLSu^ndF`灭2F!ǿFm0 xUb@-i6yWูϺ|'w-Oq؃c-Zt/%tc=LzJL>x盠#΢|C *DʒiF_!T:K ؤinǂH.g"=H\ezհm)sӇYX-LF#8I+| Bm(%R)Z={-p!?;.o@Ge}x.; WakXKcT@D4`sorfw6d3A EGFf-/'H7 ol) P̒Ay0?p'JT'YK6wiM_>nypq)~(BGysM|ަš58v{z 왃 y* ZO⇁?H~TA8`2VUU2R_PhwN{n?FM,ÿ3Qω eNO =>;T::|6D_9C 8:|9FBBA` ?$ g:`U 7q( ITx!cůcuHguy x_2BR>CVr?Y؝4k[&mq)ye-U[v3²(*7~ ?϶+Z72]} 1TDKGeřg(`݂'nKVWy3U 5ęPP"/Q/%UJeQnE |P|f ܁Ƈ3_E3*ܮ]Ugקg {( [,W,rLR+'KBHQ9ae=z&އ#ᖛ|#w%Q_CC[!qΒunY'3 }oR2N֝"f@:T|`|T9C"3~O VV 2cF`{W0ڠ*dB (cW(Ε{ЊG o_to>lz֎ӿf̂d7 '@C0Jقx 9PQ`D/XUڗU 2_V gmKȠpĉkUKEA@E@qG0-&Cp_ĿHb.{+QY=L2˯zCmz%UIQb%Az|.ld89$("1HUE Gث135x\X('[ׁC.T-1Za,q-y_C%?j+g[#ahҬ>;xҍ DDMq:BhD úhtcW]yѵ7ZEp"&׷kX;5unLTM(`aaTSvUፚ%@cV"(¨],rʃYs7` 8!A>X.G;o]Z R?GTmڵp#D־,1H"R0#*6}i=%AB%q W CIܬa+5 I_'& HIȕ>&f) 9##s&0"N=bEz1}x],ow麲øJi`nŝUr|| 蓴a!;nR=?E͍u@8k>lR-5wsM")^rH x5DA(1 JT#A ݓx'bxo$cGAПO'䞉}U>3qF`5<~<ݤU;Ύ|G<ƒ HALڔ|BB!(w{q鮸q}(>B q+uɮE0JIU%Vh: h$|5L/E . ^kU<9[xQR9|k:={f|Ň>upVɔ"n#W o/´@A\P[G<]}[Q8  7}})E=}0;,v7f-wq{]h@b3]1׬Of\'/x5yM2TF0lY6Xo}|:s2M󣮨iB鎢[p)hDJ3E^^׳z:39 0Rso/>ˮ*1RnΚڇϠYQjth,qE%ewU+$}$xQw{BvVrB>ks2 t'˨S;8R2\}xUxwz4=MHv &oih$~6׉5 9+Rd_߄7"^-[NOkH as4SBB[$pdRF"TEo%;ҡAɈP7~( RX>.<勧HmU}Y=E}lt[Woa2 *7& z;H)KbDIBaVH?CYzm}ܫ] N%5(ۙ)~A8\e*@'тQA/|0Tw75)j_4{Z\y=uVIBNqA^suHǟjZchLG6۫δ}_G#ϣ2$DA?TA'fca D(x}~i:P_B0;&R3??D=BɚA芟OYi !RG$'BL<$T\n;g=C|!jxk=t}W(OrÙ9q! ټ&v!R C|c6~rF,;Ώ#_u\4VE榅h)mo%z$+È!"CWd2Y#>lTC,[uQPCyK& ',ߝi)CAe8AVRvqbW^Ļ;lׄٓ복Ӧ$Рja3(KG &[#H= 0QLiEi%wдFuoĴ)Ըהn7Ý)JYOpx'0fNJ ppt\wit2eyTNdqM22k7 :q;;p|k\-7S9ժ7ug|/r.{F}KÿHG{oѮ]!w߄gVFj8 v z9ɛT~'wz&GY>rGw=+-ecOtny\@l5<0zA8Wݞ_p-3O5xb5fۦ|~}RXQ3Uj!0acړ O[ i@ΰz a &apcoGw-Nh$&yt{Fe^}"ayx/Ej\0|#:N_<_]S}"c߀nXHgb(.Fd'L7zst2+` ;aSGPQY!ryP~BM~4/|:~ 9 #AOuFp F4]r7U5r2xXp^fቪ(j/xkiB/=C-TA*kw;AHuT2 >Ha1E%'źv/%gJhQ lz'zG{D†uvn\cQZoD1u8v6%@aOBbP4xw;FQ;C9*5" *{i8kT җzo,GA1*7Ca'OX9i\7ZdlF7و\jF(sY@dՙq"*PzBv}ߧ<Ȇdȯ_m,yVO_JqH)x9u=?WԜ QYDvSkKA~׸Eߗ>mOMFtaN>!H. 0?d_>?LrZo8E?c\>w{?lvnV^u+i 8 C˾x[p0ZLowo{md7=Gfck٧::#_?Nz  Fٺ}3뛈|gXyx=G=p:-{sp$"eFȗa`*5jUftdZ뵦5-/hH1#٤s!kH~'『UcxH&Yu ,\OW;Q-[Do`Iey=ZXUum7tؖ OOq{Aeӷ@4+rgb'Hv$ MF.[eRk1 |HRwmʒj+>e ˏ#?=]\^Mj8]>\~]-z;ruD "Bd I<~שׁ C~/g|D# ;GЀ}ݸxpTjs+Ǘkًul`-A)uuCwo|n>qmDP`QMh=сs hQւ۰9 Aﵽ![$ǴX\ Qo87_]d2+*DLEcц :8tp#\% vv!i>12.X6Icn5 3{HĨvZa2'X"meN9kvZ]"KiYS;yڮ;1󊤿QSoGx3|5pSAݕC8 XjUm5(j~޴DLrV.]a5jYz@!Om4c.!)-ԍ㎋􉿙}ҨM7^>y̱n4QqIr圇aWʗ5UGܶiI4}FA3sz~X+-GH4oNr+&#*2ijӠ2Ausj{fA;p.k2t(MYѺ>Q298B y[ML9Rޠ#QÍc`|G/Esp0lb X^ݺꤍJtl[(kpZG˭j!45ۯ=kiV)lw_ ^<k|ܱΔ̈R<:ה凢n>PIam)jʝ]4?ǫN"Oen~\_}e s{ޭ<|÷BfoYXBZx/;ݦfa\T <$@Σ3J&N +(n,׆@ꩢ "@ F^J@ʘD0Rn - #Q-uV]-zH% QbHXj{-HU%v ËC%ưB &G ]Ng N1S`PE@pΡJն" Dh &u8FfZuҝהtS=PF"_M-OΜB[ أݔDUY m9.0o* Mc,6U*7گT}y_]6GXc흹dN8%UAn W^;/1PGrn.Ҹ#v>S>q'`qj=~xsۋZި)!oG䧟+pGb*Oby=^vwAg䟖j|d6h9Ǯh3zǍoy=2\>=7"<+Gﰷa=|PD&[ i{';cqO̓ùY8`Lm})m•ċevO(ejjpXn06)x3Osb=}`o{c}^ʫ}kDLҕW)ۓFx u:^Í-۪\yhfN}%L'O sfwBiܝז<*dvei&a{[HbS8Ҹ%ޏ%޸se}8>=wqz%H S:P[7{* sdp=A`oRkT=a? GpNDt0! ;6TT܆'emcz٧넲kQGj˄mkF>O.>YpQԯMY1X;w6݌W|VkGa>}!:|{0''⽼c z׏7aWy}5,z7^=ğmJƄ3Yq\QAz(bFVt/Zf˿mh0ƽ[)id>9O.֙7ppy,KP잜#O_-/뗋;L9c۾ۇ2^лGi;x772ë/uz}9ڗ釪 20 *7+spQQZru%{n åg!jGR )CaHbFx;iнzRo>wFqᕖ5e/d>Hsʖ08tgW&uBX] 9w3Sk|&}K?2$]z+g^3^>cW`\t"J ?^[醾57?dˮy+mE@:(95b#Η^Qq?~@s[@٫W^RPI4mxY"IK9?XdB9ϧ.K&,~uBGʌu*U)turD*W陥`yw>ާaPB,Dae|/FZE&nh4oI3uwv4Q5N~߲X1Kbܨh%I)lLMk2E[AXqn2%Fъ E $bFF*:m:'V5EX[$TIVS6ԒCJBʚDi,آM3RR)Dbũ+fl#&jHHSi"f(A%a1*HJb,i YTQE"lF AEF&$ iXETMVVcDXclmguRXm ȒѢ̯k%AQ"؊2fm5}9bJũ1-)ѫ$iIdh)I Ѫ5EYM[Dc%$"j"CVdi6KdmX*#QKQUuEi+X n=$჊9%EdȡBC+ĊE~ H|B{ĴEe"4( [1F (edX@Y. e5s, $abHИC&((s2rWZpB$tNG_JCXP˱n7 \%"Mܒ{޶0Yp1#!%j+ q L,%C*sokA)F%:[mF4B(52 D܃\qi'Mk& *[$״MkT1lRM Me1CrQ6EC%Q*A"RN5a F 71*6^ܶ+U͊~XI~T',5C 'M🤞 5ӡ/m!cV ih? a@.?s,߃}g=)ݨ,7dF*iE$ęlт>׶]@R# !bL2g?*}N qwWPǙAЏea :%:b<| T<1KU&!IjL2U(=rP"QK@lsڮJu1wp?>u~$gMFJf7g`P̀ZF8Am8e@Yd0 [6?PDO*E ukU笘zS҄ƈ [bL>p)1־۝8qIYC'Ox)Uڐ,0:xl^x7 HQ=_gT:{"w`֙U$w 3MV ] >o$h#=b>$d*Oa{+ŐI|!AMHm>+MQʑ~hW0ΈbO80NJ$ ?Sw8$,>bwa]iQPPcMl '@/^6vnlçoInBCuOʝxW>Zd*Xw6ٛvw zG/> Y~DtN9CloʶBn;={T{w.VQbl5ο=R> D$#yN&Ct=cN ޼ j>Hl CwP@!ǨmY@ql&]cF{q,/ہUUNa@씙)!CYB ZRTꩿ4=Y)F^@__Ov n{?ʢ.=1 |aKB c:\ynww^3 TȄa! xT'}A`yۧpq/wq^ 'Qu,<{ЈG L~]8 N}aJJ)a`^qI6[q I^|ART4>~a>{P\`)̉{~l8 MADMsMGp{/R9GZ`s !Q<\V^e5r4d8εwx*OK&we[8%3im#ƒs2\=~ ڭzw^;4>M; 8^*-Wk) q*!Oiq$I]-B Be+q4$ts*xʩ y]8@2(;2lC^ˡtӀ:̬G(wdQLBKW;;q]G2,:Icyͣ xJ=N,=c9B.\xCsra 6wrA6^F5O7] գMAվlqT&O͇]{om߃XvN>Ė]E;9'T(;4e|8e  =|psmmaz?q,dbQXn`ƭ[L_8Ci)ْ֓溈'w /3Acή.73 {$ 5@^oQn`$n@`( oRROg)u @# | 1L.&}2)ݍ 0*GEM1(D[;8|bV{&)xf2e_Z4o/dE ۤ(u*E h '#Ruu_R!!0I#R䠲3 >޶~5eI7Dz3 1L.|4⦎~c_SƝ<_x= aC!^۟L`cqCoaMѺyD'T{%тuU ObKUJu.EHGS@9@36@zļ ?sI 4 2^n(Ȇ ߳jS$'\dRe⪬N.4 EImL@kdTEbJT .:&bqp Sܺim$DOQȫ!Ӧ]9hÌ0VKfvi$Ib }y.BP ,VU97T셪A+V{GZ@:-gTq> :zw'jײi'#r0PFEUx$=:VUK}R>a$[7a '4o-J!l)DɳڽC%!uULP=! ӻH.R F Rg -* d8f4CA5kAxo/sҡLΩ(`#~Jj4Ą9yUp1˖hv8zǯBh2JV괣PϽ G9AF0!L {S̲>(#9ak]c!- oU@ O .zJ(&z9os3lh߽C>0,;fTq ("7bkWL (s2AI4!sL |n 0ˍ1AIc Q}uP,AAEώՐ_2R$T6ɼRS}WR}%QEP.Zӕ7/:0YejҊ'SSi|+簀muI4'($;,vD{sU{4N(ќv"*/LDs4\yz>L"J6-HL&N[HcЂ0pD FiRt Qs!GQpԋLgF>j"5!P  R6UE.$=^W+Om<1zs-ۉx.3$i'vi0u@0o6"lA8to^XsOna;ٛ/=L?dy@P XfN#5yn؂KYdEcSQ\qe ("?$="}sO? (m+kzE_2;]Jbr[dXJS2 eFOb>)~ϗ(t)|(h&})`S>ls(3r   "0p|thHO%!S)\ " h?}z$_h~4_d)w{كO lD`A!/  c{TZ*Ǯɋ) ُ> 6vӢ9Ȉgзaa'cȚG6#| {MLxlY% 9s<ԝ4OCgSwnࡱ6݁OM=AN]Ly@ jCwaqÄ($Y9FC)P4$qoy59;^MOK&:% NF  8pT.R-Qw09$:Ḓ dXNp#^ӏ*{uMrd_,!/R8!) 5%bC ߝ5LW,Z1o'OuP':!&/H AAvxDd@A霆aG+IRfiTTUMCK5 $7΀g!_`(y;zgy\bkأayĪ)/wgSfaSӽO\UDžZ%r}!I0>^xURHib??ޏ 5[:O>i-b q{. )QtGpO C.h$FO=ľG4SVbd;͸#pѥGJ(׎mmU )`^]+c.,wOe^ݚ>10iLڦ<ri#HVCV=ijN$M馱'6&l.vT3p.hrbEg @)sҋvj늣ZUS@ mț5$DFzPyWtҤ4xJh^ʣOvX5~5Gyf%; HhEF\4rUUd$WjC_ gefgPej׉&acZ!DJo'0ąR.~>QWU` B]qx$r<~E=#ĢA29~__rH IE;G Nљ#Dq by*Y0A0=?O[L6'nD dK: O:K_#? x݆e|?r *T]:E6MdžSj [o'9%|w:>yQ.TmP9 :yЅaDe .8!F |@/t?*B&IDTW]S(X$\_R 9 R?M@3πwf0p7C?SJW!If\[ǽ`!z+< \Is?nv tggaQeSʍ0[ U)I ea9RuLYc,&D!jLX5C8pW [P<Ԅ*lIO)Ara{gSoOjh0;Y?,4zhKoOV>*iȋ| +G6efQKL'|Ѣifl/7꥚#/VrIVj) Tk&0GN2m\#La6)]RH Y~ yE⡧Oߵ/ej_ )ֿ񗻟H㚨mYFrߴƔ"%L O{i@ uTzי:Sko~7~|?_O%?>??~߼ߕGP?]O{~_Sy{G~'_Y?<^_+?xa~p~'/pz?/\_CO|HR|$?;Qb067쪢sc]-G5_XsoǏVq|__6Xz\-^ߌ \*ۨ}gxpW~_dMW3hi/ *jg8pN> E5QH5'[F1Bc UYn!FI4`"c#84A%Y*22BlƑYuv.olY23sfW7/.nQǣoG MTQXՒιFK8 _vJZ9W&Frgj'SW}zp׳|&>]͹g;Jȹa?nֻvլXc`*Veeisx]Yn]pMk1혲a63v1!rN2*blkU;ޓ{xa5juA7 ƞ' 0{1 րLm +.ןw]? DPrs _hsiBX79xjͮ2Ô;zBϻ=MJ@q毷)__4?$Z)DN4SMYcy{fW;#h%n|y+5ͨ"vfecKW-cUQ\aY(YLRvtQJ ܷyt+9-e/wuAs>!C}lz?b3;P$ʻbC }faR1P5f!z;=K5H *(%RO?9Yw/utəFk(˚30hֵtPC:1ESj\U "i[:w@tAly&^.sE}9'O ;R^=vHds~vIkDOOh4az8h$g{;c!-+( "cށ@1/6'鞭""G~ioyYZH$ͽx!b MdHlq ME+@B^)νiبS{Ab+>SSRGB3}Oga{n*Zny\6:a:&*~fA@M=: F*W~-ӳ̼Yz#[XB^O* O޸ZE4cII'=w+}qVpuZ<oo?i D`pv_A mUʿMd6oL1 )IXw|zg_0h JT+(пO k'Gwoslu8V- ħN_G}Kf;m+|,Q2/TD55rU!oᖬu~{*m{qtUS3^>: TX*UR0^|z坮\HaUO20*.:c : `wAQ>'"-TС :Ouix_ѧ5B8O*1\P-Xަ3iN bXL@GڦJӡNWUAGp)B86f"X,B*O=R;LI rRꚶ*ܰHXiPtMO֟ σ+QծxKCN[O!ש06|Ӌм۽eYaTSYjdOL٧gߗ~uymo'^ " {j-DA6$  w`'3tJ IO !}@h; #5K9zԂ&)b[(D C9i5'.lVMf>q}?NDN 57? sƽkM $ĽsdW )=h*k?$OЕ Go4%OY9AM2P(t@5"YWȎ`o2.sY4B@*CՆ"3h%!- gMjM/8HeE? #<4o--%!ȸ'\l4W4%^hfd` Xu=)6_o;(,c8aJ51H@}lrl-έsջ/)nbo&UUUC{fkϙһn~#m}v $ yyn (-iL;e!RL+ADDDꈈ6$G7RA;X*Tw u rf2 cah:WT lc82xFPǦT($7Lqޞ]TC2ϹqN~{' Е@-J~Ǩ蔈@<`QW({$ZԺݤJWgܟ'i3v<>4 q_9nw>\4 AD$@}><jQVFUOЊ~Quk0{:;bȢ˷3o?IfB Q LZ _a?FC{zSuOKSW|7UUTcUKte͟+n#m16 A~YFQ<9I!h} i`<$@%8aUSߏn;vΠߎPH8 oM⼗YQENI&"S:8gZ{sCy:$7x5ͨZeL2'f1 UoU_ܮfh ꪡUWe DDU;]K7@5۷wpQ dCvG >D/NSӍ4H *vH#Ao' b̿ck%Eڙ1&#mC6?w?|> Ostm;܃0<ÿˆ{e@<>RPs^\̨iRRTjbRن Ջ==^5/DC?N |wgٍ3QIC{0#ԿGhL A2Q-9-l Oa}Ϊ`H1ׯ=_ouՏ(vulRhs3qLwf ?F1+;?_J<+GCoƍ_b2m2 ( ̇4P]erŘ,70bLxϐnnod@b~ F ؒmPLfi(~vV:#bx_{uPu\;;4YqirfsJ=_13Uruj?SRT%0$=;g-!}@=8a+9ݵ>0b IhY9 8+G,|*oI5G"I ɮ|F\m$%k>{=uQsE֙9Q^h΁'[meU0%kTYb۴wj*?A"d䲒7\S(x-Lb2s ۪!W70о2>D8|k= ),?6?ٓ$ 1:`Xq?4 %$Z-KC =CtIE<]O-a0yOjwajS@ u#(4A|y?p ̀DB^- vn]Ç%@!+Uq'D~Aܽ|6O߸l"D ozK!h0LC Rm?%) i5J?2ODzߔQGWzG8k4ʮ{b5><*`R6ZA)K2[r:jܣRv0d>(xlgXӚ8۳|rsf,6ٿÕ5|u{kRiqS^FnW~l> n#b=$GndqCߜ_3(ߛt˽Q[xnJzrŽLdP.@ 4z:|ZYt(a}{B$ @!P'Rxvif;ն5$6FDj7 @T'Dy/p*y҉H9܇w?ɟE^!|=`:%CexY&9])&' /|0TQ(ȵT%tm i,y7hDloW޺DP'CSFMF_;3Ϟ!DJN`0Ry;XL*6dYQgxzF@+C%J@I!oEG"] ),S@TH,SȔE<O}{T搟FI֟ZA^쾿y9$k@;oǺ\(C3e#ƞ~ (Lt#Ϝ~L8GI;.V "1$6z EA(c'w>oԡs%7kxz<\poN&\s"PQ3,DkI^Mb$hyV5B`gR0+%֣zmRV.p_ܪIu. TAkKAXX3_s${ `.WjejPIX?Y^4x任cgZ1Wwf-__}o5UlW~EZRTr4=[1d'nrߗ9tsN-nV!72'u`ett`)tDdY^DCsv;a\pU6 8h&+ps2i.r+gPDPu{WFř;leKI@JݞU$)16_8N+jS+d>Ǖ#ᷖn17[! #ޘ[IQ9x9D@pDl)a%2 eOȧ Ba!tkDYHGˮ  jğxw=ǁAU)(uSuw:??T(Hl"e:k^.3r7$>l )R1@T( آ|ۗÄ! ~,f}=wy]fc @ߋɐs!hP @p|@ijg WQy^:u^u {g `0NFfvU2g9i (i;g^E7L+ K&L b628ӎ6x^\4⤈ޯ\)7{C.xr77貞0Ef2KX]΋0[٘6W(=' +mX*xmr+y'[MTaRl%“KUV8~G(W~}+_u;ozZY/[Rဤo_DJC% n>뱤YyFK;h*@3B=i|?7K헺+@vkЀ샼Kw(3?s<&^YVTUiU`__`9"z)$$;۴kmϛpx(j 1T OTs0Us ɫgDs /8o9z Ąk—"fpK:VXQ7.KUWZ!fM>y7Φ*!Lz[o bZA \LpӈA]ɭ8=s ]u:Y)ޯ7\:hKG)pݜq:ા,/ui0FN}t%<] :\==JgŽHSĉr䥺C˱bE3TAs[r!FG>қx~A{J]u6O#a5^gZJ7u:b`Pg8b+ Zu_n!Vi,fh vRիP CML*oD>qe;POg3BɕLqp"jv`_BIRRIKn1KRHhrEwu5>XZ6Ӈ#L^5 nrn[K<u3^\%+ϧ7Md84pݙ/BX^Y00Uh 1B<ϳ`#y7Pۤ|%O_!X9xAp)\{0gi6޺\!b&^ ie5>o@:>;9ۈNI l:K{ 1 8sٟv dؾç.EU ,(xtp\^[8Y*kY%1 DFŷ]s׷Z3j[T䲙xMoK7֮t~:1^yg;t@Ń:2ibJ 7ƌG+D[`*˭;_6\)4Rz/t' 8NJ͝:2ՔZ Ɛ6nm zgV)zĊuG@k M|GAlEӣ1m4Svv|H_>ZF@3~hrsŶ`7\;">oc 4JٸChB.R*Z۾wFDb,~ˬ.TX*EZ^e պ:ţ):>葬_^aB|tvn/"TsYTNgel\䶚^f: (L+|G乨 /O\i]<;-B <6fGSw}*)i Gv 3` {9F]}9"dSXAO ^|3zF%ld^bv ,X.<A N a ƒq$jQk(g`5~qmhqw{<Б&2KD4]beDI""[}b<=u>>^Iғ-(AG%&L۫w=~y!χ~vn5]sʳ¢A#ۣ@|6*\BkPxc%Z,TH|#yn] +{w@>^n FwN^i_I䟻/p;XJ%p\5SS9h:w;.0Us!maHv(+|)B-,/1|IBN.6V?f#T P`)2XwUBQUn \S#B/WH ®=%HA32==g˯_Y dW<$nCI\<& 8I%VWx^xRQ𬩹51D{aB:X)̌x<ee򎉱\ijYwk8$% 0 e9n,X1YUr"7(Ѳ`9E@aQ5I `|'$(H;5K$$6מHCwX(`)XK}tݻ3kF*敘֨0P D@$5w^p6xӜ<)$=۱& ]947ssm‡0|?⼮QE[m͓uG9u9}2a{{{#h(^1@c9J[ZSֱJh(-;T}G[**< \yKalٌs>gsҜgQdy K/59GOu5ډK٢ϜKgl{At;}_>يx]jV(zf?ZfІ|c733k箳Yi{.L>JWjzV[MJ5y$Wh|-$0k(/ %9VhXޡ`w=$j4POGMvk܀K2|^ CBTްbhXޥ*=X]TvA SoV/dͰzqj ܩݡ+Dmц}ތG$ڍg&WZ'PEeЫţF.TL WVp.vXňB;^&V5M+{^o޳8Wjq͠S/J{wNyv ?˖$H9(9]PHAR X(8@:W:EW(bL2z=IwYK|юVGiD $ €yo|w#B!"D6m⚿nRS$V6\îqm$߯USI|jlN9OT4|U18X,̅>Հ?}uZlPI lTU&$.v2A_ݹ$f㈇Ť'OݡI$,0% X)J9KA9V.8MYiiZhфL~t|d%& 8)G"$X܆GL+e)Zh0@$XbkKjٮC W2eƀFXr2QĢKflYP4Ca *(@ZV6Ou23K$i*M>@~P)]Z%!D5h]{hu/Z ;T,֋bhvbC(ql NynL,$"& '"(NEI )*X99G$9ubTd @X@ Hv!;\@ᓄKyFcWCi]Q)IOF}:i % DK%"Ql\$"Cn8rN8 !84Dձ'Pj[tJw9q`-*lYdh"HQi,2Ԑh$BkB숦2@D(Ei$gvGQ06)O2SsW0S1=E>5 7 #ؘ G(J \ 3n">Mx4p㠮V܏뜤8x(EJxq7m>Zp n5M˴7$~@Ϛ?_=H&yXCw~O˒Ԣ&d-v `=B($$p_~Bb$"1#u>@v)EDhq{t_؇66pn;|Rvs98?p 2b- : dV ,B; Wp,>;;`?@?3 ")%NI & ⺃Oޝ8Z=M}ROuC/y3Fkp$rQ@f987Q=w0T&p0BxTR!N;ž}t5]FP˷DI< sFc丂)MupqN>g=e:|4QI\ ;6lzm9TF)WD> `EETQ%XS[%Wl d2C 2ƊH}jRF<#5Go}1+6^JܩՏSoJdSt$8C`pX$ t,e֌eNE]2WC&0Ķ*b6 X$\0f3td/fM#tPaͱ|mtLhFrcӵhgW݆pr& ަ? kg>O!h/<(d~z9wK=OOW:%>A$0 La67&^)U_S>0ft=P>*w{ 8K![]RJ ؖ1C6{C^cyM#i3cKY6~!T)E Is46@bdN\KQ;yUƓ~y`Go08|];qo~}K9]d{/7pxI,*#m#^mE z]hߤZT$^$=uVtZz6 Fn}!هԉM"zIv~p|@o01N6jʋ'daNGR_&WY*W_+q5=8JT+_f/mt>mS=eP#':GXӰ'pts%A/w.K=^C>îu'w)$ױgLW=C֢,LPU*jh(Q3}RO&C%UEkS<˛IAG!I(6b#0#GtFV)$<SD}}_~;N<8Wn4uIt?f :ThC9>n> 6O^KTz~Czǧ4raECE;m\]WjOk\L=p6y! z:lyOAT3O]o Ă qWbO 'Wo!e]U3 ;TҾm*i:{cֺ?]0Þ?}̼%n8:h~Goe{w)\̴֣duzYh6PIHvÆ Dy 2 ;hisjLYcyOdH[NՅ r*]r}?>8nn$[qϽ"OįГ˓3"PK6\˷H0ڝJDmtM z&SNsIi+RRw踛?%:s㿎2/,sO_!_ȑ|WJh"x q!Dž f~Y0fP I~9E]9x\C~COGNp @H^6u5M?5xw|a`0d'9M7`p~-8ǾbRu8݂Q wk {z;:H$TvW_oaYQdSYˉoqq |!:HD6#}_,™Wewi0\Qu#`n2y<@& =:NAP DE{jv g>!T^Qlu$ UWYj֩eB֒+*AIO~LĎt_Iaײc'Cy߶\} T{fܤt;ͩSj Ib2)X""N4D :ȩb4`$||p`Cw`C%\CO0@O5fS>=<MB2N~bG{H>hPr8F IZ ='SuҡXJA_mJH pFi}|Z}scg!$< 5&GkQm?wc\:>`wvb~hx(L5p=:1Doi6h0К:42z?!I0 ;*Qsσ(dmLhulֱ.ь!~}kh^Y^٘SZWC,`I@:âPHTCьq8>hQe=8= { ""0c]r!NX|$Az5(u@ֲkDa)΃g*IjK@ x`#kS^[$o"%1-VN`EOYي<7L }tcB92 إ@HU b6atEC7''xІC9vHwmQ4i/(c=Ŗ+3ϕ|O:z:k\*ՕTuYWLd LT<\sK"q(l3z`UH|8*74_+TW->g ;AzC NsC.Y1@' R pWS;#=>;j !(y2?2#L Z||vD3N,Yfd|7,Bއlv=LOPt-+ 2/y:_N1җS(LUFW>.Z |vN6߱&T2(DF{.6IhtWDܢԃӭo@O*,A6e@ՍK&lyn"pޓ #5!<5X[cTTVN%PS!*/EShvq{ȉw{H7cΓuD0UFD(e*u5JJ  1b?qLg۴ JEZLp6bU U@tJBR"$̲"JIgZ0=N_pS1?x/K ?,J~Qt25@qAz OHȨ{ vbt:D4IzvuMD%*L=4/s4 <Uvk!<)+yHlG*Awˢ#;NN00ԇѓl< lR!]= Gb>ntP-.^G~:0siQwUbhtSor߳s & B"q G[CЉɈH*hYM)fH'O?JPl#}~y峜jXVD'N&(aM6^bWW}aWRrQdaNu+ݚ3x,R_Z|.xܔ;׽=M# DA CLֆT6'Gop4hc7RM'w 1}Nmh  IQb'"xD;3t}ˠi}BdϢ+!ň18ICڔb#)>Ma0E]eW!" iy~wp?Gk*3ˑOq9y40> $ 9NbHw>}JQD:gڂִ4(f z; PVC,8Gz^BO4zyW04B>(Alceb~3v1|x;@ħ'E^N|y}ԮE6IY?xa$8Q0qZS i >xQSEx$$ ^bV'I(ø>}9ͦӱ JNrW1+*%Tvv+!؇ǃ<0XϵTb3qsz>Bn!6#=8fߑMb'yuz>F-ӻ ,I!,P=N0h}w89pzdɣs%DU !ގx=)Q__WJ1+>rACIACc)BURR *8;D2(w ]x:沼Ij 7̙ Lb+i@[/۸6m0&B#nFφƛ9koS@ɔ0k*tf *%h P(F@.r3n#ӦKUQ 5U^6LEPݾ:H{Yxt@%$QF-Z+D,pAdҒ+_]in!'U`"]T1qeb1΁a/<grqOX`i6'EV/0xzBf{XL==Qt>f G`Cެȟ6zؠRgO +Q68b \]{ Kk8!wuTa)&RE<[*k*qq@;|i{80Ydĝ(Rn FvMFķw>h&>8Lߘs,I?leZVl̳_3ޢb!-R1D:K v(o)|'91II$ߞej}@tOS~~c%]jPjxgdE~Ru}zyMbbA޾םXvZ? wz8`=xS|҇4Sh=C[/tWzo˧tgJd` >\xȾ%ٻOT#a 'r808WâyyC4ǸVkjbLЉ6"\y9 ϳ~*F*ǝ:Cן\j#cI.S{7'~, q=}:ƥ!d25RvR̅D,2U23.!oMCp7(Nۚ%[@3&/eFQTaߓ3(;P(GG5+.z*.׀]XTpW)x J}x+ȋS8w+chNg@|aϯ%`4=zU֊L-F" [l)m4V:&y_l_Ec^nO|PD|SL*{Ff_|]Ԕ(~!;C?>Rx?J5_<:.J"{d8{'>cblCo I}z86hRi.) v߻0=!9w'S]i菦:.gi#I'uC=6|^0>mv9ׯO!}kΡ{NS%pc-)%QMuu`*RǚɿfoXdpN{=L aħĄ3ީ  $S8`w=g0ye 3*Ү8˼eB>׹'t2BV'v|8< vK3 T Z%QH?a8:B8|Kqa'_ǀ{68&@!C9 5Bn6ϻUIFݯxpl08]%)fLq-"C \N쁵&~pz'uHnWrNM= H0a@|75?''cG%emϓɟfON؟*w'b"G3Ĕ ~_NX^QJcpď 'l9U_ƨfFXfOdU(jY& @"IFͩ=kQtד :NB+6a:cALNE(g2s4HeR5 YyCrq߷E<`xsWBr$ysOr韗UGf-G#޻=[`9 IA-! Cx?o_֟xE' b;oI헇ןvNC/Ã=ɞX)l>0zR1a:!^9m[#>@j ްz˥`Ddd'dpp~3{?v>gzоw?CkzV?8C_xM`S`}_}ͱO!1W7?ͫ@IqM޿zogOG?}2?*{>?9<pe?H߉>/i_M8vyr B@LJO}?yy~?oܽ[o䝃 'WXwnAcf?׿O4q:~Aey_#}c犯}?ogh{7x|2Q}-U?p^)PBI)wk4oPCXZX[xwBO+|y%0(x $N܋_}"$?]Bu-V)(#*({k2ֽv }K&E)fs` P4p]?X8an e>&Pu~Q)l Crdofx0E1sҧNM%J,A^&Mywj0g+o^~T 7Lne{<iĸm}_Y?~sz?EP"*P499џ1RY__svA|z_UVًk ôtT3U1&shU:;GY}:lm=շL# Tzkl{ T8YB2X.k )I݁ "Rk+mx8{qT. I$HXa䏷r?>'a9_e'oC͈R YzT fjE n"s{}Z~%bA\Ym$.' nV!Bt_,PT}̕NO nۗ +B:EHs_㭓qo;d(z`7W)0!dQ raBd8Ctх#7B!!9vxThrU1цNI_OX%"*6[L6j=VXb!xDTrBH/.y$Jm]˳d92\їNpZ B=6B(0=`}o$=dNz ²KBh?BdQ_[MGm\8{1Uyz*?_^b>wmC&uT*퍮_Nq'!nmgܧW|{C۠TV2(\.xXIgo~K6W߀=iE $ p c1$ '4 Tܱ\tPb(* Y.PE8!L@ # Y#_Dy>oo֜ AɒώZrg2@Z`z6w]WSF Khn2:~fOs1"?MW= ӘfǸ'"}xy;#@=8W2'pwU I O\ij+>?W-ćd(|PP={5g)8cbp{{U[p`x>o>orx (1 Cxޔ섍PjcCJ6 E,pX3}uKg?vj %ڧj.h(KtjBa0He^/>e}< :7 )ICLKzYa'SǿƀOHc`cZOR>FwfKv${v&Ibhf,8ɽGH@[b3DH8晗 u=MoD0Rè}x}}>G}o99vv7; M>黳1uOmǖADN_ ,7;XL;p7L{Pu)d*>⃨U3t>}#"~|l~arE'3f<vٛ$)˄LNJXT֌9*P>v"bC" `q93KňxUp%Td')CdۆBa"4AtNP*T8Xd 'S,rw@px^.pO ,+A}BW40ࣱ |z>oL8Ck {}DŽ|^`egby paa[7"hiF׏ezn#aQ|=]c:(v֎RA )8n%FE/T)]25MאN粘{`Auc}W<SoOtU/X磐NBPDuɞN螰v=|h]k%ė8"y.>G^y|0]`bNA|4XyzǻI~Dv$X P"np$$qN"Iu-)Gw>=_kϜ(;uQ>3P*!d)'Dܞ|C|DFV i''ى@\\ w8$OVOSm|Z5L< bMx#x9-7opBE\J#f 3vc xi&Q"wli5 FQKXJו)D 05c ""@gbҚY,(&F\ԕ: y(9!|w~6+ۧKζZ42. MS|O`"tgp A O~ ];} MqEynX?o?<2ƫʖA:;PMxP~J.h%,uG~/J9p/}i}==l'.ZO5glu8y*ΦgOV|̃h]~KBׁH۪W~uHOo՗wy^Ր6ǵ³`|[ "#TB-<q!Rtw8I!|qVzШ~G3Q:;|ÐC}; E"IorT8nrWYV5PevN ܚoPn۠bÓ.>z^^Rx}?0RgG66Ј&ݴq@Jfq.-/ͽVA ݾ>G[KLX-`$.xE\?噞~xm_y| !A6yUuiyc|H:g}Dob  W L8S*>xwN#>V'8 -//Br3O)O}Q;d9O:{@>sc]4 (xgF6{WQ^AvJɕ Z4ް9݁}:A]Nji]y$/b P6"\SZ+#кAeN[{5'+8V8HL鮞n[7\C&K2 KDUJ&k ͞n0`i%fiЄZ \5M8c ^%gNŴ!q[C,yĒէA+L^ӟN[m*oLxT`7ȩ*fHui*9fGõaB HT6<=bG{:L; |*ׇ"> OL!Շ1Ch*0|!:aױ㧱=ޏ5v!)b&֌1G Ō/"MͶM C 뗛]@ U#gL4UB\l3mYpMR)QbZX cӺ{^ǩNޝ{+b$#EFT+(NQPp{_B="x6I!Tfxyx">ypQq 'YaZy:͏YfatT Y'3"CG!Oװt4a3bQ%!WeG{<m$=Rs=qacX4Fc $Ub"tp<|3<= qCL撪qxS{n8i-]=n^(*yBG.g> 171-3k5Z4.k\g!۴DE 6Q{:(VW4 KH& zW_IC~ȋG dMQ+o.N(JzR2Փa979ma4X19fgcxcFF>-~ ipecht>" !ysʙDsܜ}oN=[h&|O`'O)UHU(C]&%>/&Ꝧ;(=|@Γ^EO76x7_?:D>CD!'$02mKf!r !J3@ I D;Ɲa U9zP:t{^3ZV+_v~u~ze}{^_V/Yff_nDۅ:jm{rbaI66>r!׫DfxæX^}!!.FR$# )N4pxK6uI:<)$J-Tn?C&0DUDhq X"(T2h}P/)be{;o9XǿƋ{hpt^wכzwW\H[vw?o$ `07M =oDi }E%5⮸A?zPe3N2$d FL`#g:1ć1!A:8 VtKP3 !7I!uf6lQTՔQP|9tTAsdfyzH"*|ۣӷ1F_04ײTO2X97l*F\ŋHA8,U8EC]\Cz&ɔY8\oPX.Y}PePHF<^7ߢT 0@U!Pӛ]i6g9Dm$EkV^IX]Q3%Q8 D,7Pb_4S(jftW1W$'"OCMӜ]ˈd+ֱJD|')-;sZr:NOSp'0}?w~/[n:.iE>w,{*5o3,Q2'KӬ@8;6_ P'@q cjILCГ]þM LoR{wKI WJ..콟ػEi|;;ۡ=ׯ=@Pק b* s/Oww%;z;a;z虤Ë"J3*UperU*$8 !uONe% '*SYB2Reh!՚)"wO8X "B쏇|sL|"L=S:I~jf_M:HDdCiY͜uXK.%![?s1Tk>@;i;zTUT-Eۭ!@L׌YH;IǙWg诩A6Y^Ou͔*% Q5(&ʩMhPAOUh5fYAGHpK|n] +`^ap#=,k2Q Xؔ#)rWhԮއlqOeC,fgEekiR/6*_)YY*QA%9X;k9Z(t|U sg9 \^Ә²woVkeP g\ai ڪժ{FT\iȔq7% 2Ѕ!q]K'2]2Qm$0#PK0S[0:i4w$ׅa:Co"cP=NMUUw]iq4T>گ/w](1pwlfE~4{j>@˚BQQA*읿|ן]α4+!n  'rIYvT$1&,3LR$g>_5}'؍_}:!QEUhtvD80C}0[p&u='Э$kŊ{;?&޷|usqbCASJ0η!G)wW<6d%>z3Q0>';xـjի!viQ jI h@D*dcj9Y ׉?D;wNkGAT(RF:#j)B * M'v|`e|oN7Hu5TΧHX6lsMӯg侚 3 EcJX# E4&((a4Y8ž(grBm CKĴ8Íh/۠\`6Z2&Y|؏:>|H5p* yOd4#),FXRj28 (hEﲜ"A5@2|)FJb紘69w5`zCEL?aדwuo_БzaCtw͜N{u EHdTO4b_J[>@nj\C.9JEpkuz:60]ִͦYbhMADHP~2ڌ09J+J wϮuQCN㭩mE@e4[ %3e+qpXFԩ~Oʐtp``䨟SJIѤG߳jMXAr:&KCJ H @*!B.^Ļ/H i5Ɏv˜ ֞_ ~lj^O 2q}Pċ5/B}%KFhNPDFlS8(L>E hm4} ?<ݚD #h b8S+lNX,خ!,7Ρe;ኌS &|6YN `,ĉ!8s}+ǜlScͥo2ˍ|MW] ~"^+s0L+φ5 a\eԹ@IeQ;VT%/i~ߘ/OH/ @wQXā9(p/q DQ 3۳LӸ7(pBjIPgf0pPb)~APXs.FFWIT 7~__^VG+38"U&*#feO-0Q7o|ɯBZ\*$~(8KPuTLqN GHQ(796笼cf@?#3A .s3!f0<$e$Dx2BHp2 i t,2ؒX" E+%<[3VD QJ#@] PE4Q-XjVJ%"$7H#8i34v>=U^O-Fdz3 &_Y2}>K>|H|rBAĔ19Z2&| ETncCæ:g 4!fN&v1?6pH6" ͯ22-ME%:E K^U:%ȁ@(RcǽewDrKwn"T\-R"t9.LW JNw 4 fD܋.JIWH)C^-2,/U6!DwzC6N~D2f #CI  *E!m,6kpgnj @&'<%caQ1^4h*>:?α ٬: %eAsfm j;,'*D2ל b \:6srUwYx&\fv 12bb`S 2))a0Ɨ3̊DĔ,!n0mS.^'ޛ kCK P`c\5璠~>=t#@7b&Df?YJ*9`}Dnn$q/zVSAjU5Ҡ EcaVu{|H4cE`$۪h(-ޓT5d ]ˆcd$p)"R[hzAӥ4;\Ѕ (ۣpH4Ʊ9uTIY Zڔ*R/FAou4*]70_ޚV1&l5A\c F5ꊣ ؅raT&OR =ђf,) @d;_ɂq Zebb  3?J_$zwt[~ d(jm;MlρI'C@x6x6??~pGs;vˈ9]ka2NuQ? Oށ]->y~}}7>i? { 6r!lD=L֔>*9؉ (Nj{ R$"q1{m~#ީ'0*>V mۭOd\Nߑ't;~[@"'hi@kҋ{q*B"<ӏGȐ<D`'_Mq:$1b=t@f-HQ s32A ÛOdCak+!K Y2ǒ5hO=aQ0 }0|:*4LGxB<*oG_g>}qلÎ O+hszQ\b;P;5L0x(XA*? 9GrHrxIGsL@Pл?Ϋ]iȊ9𝻚 Nfasm[ b٢ tw8)q"BPxrqӘ_~ouhboY2amE xDUu#9'E ћGJb' GF)c|7'qLfM& MOCkJ%N.@$'Xn!(렟1M,N'<(*UJ!A@;" 9U &4kֵEp*1QX5 H16CN1V jG:y>^i0]kOv-q0嫳nix TGH< EbAE (AWsvHJtʹQ[Оwy__P891l4 %ZQ(2rwY>\z8yB3ܘRpg|Ь7O#M PB.P (D_ҧs0hya"#(`&"3A劦CT%XACwBĩ*H0OpJ Y&d(Pad&́닩A"f/E_88nN)k ߊM1]!^a5_pS_k42"bOB}|Xʨ/2߳+H_<]Am#8[b gJFw9?,P0@-EXf?ID-O?CaŅo_L:ZH-qssu{Vi*XfebXV T2smicmQD5lR+ml>xÕ͒"J4xID">`8U hz=)̂v/v꒨/ILXUL be=#cc@rq>GHo0b3 `Pb”b7(Kfޥ{˷+%1{E߮Bꯠd.:NYqPUVkvn,=?'"uf2pC;@CYvǒP̓#gtS94je7Mg[iպ2ͮA#6qΙv"B74=I(R҇!$kv7v¸J`Šc+ZwG \,vM5Ma(`(.!Sh1a.X{m A?g_o7s q0-҂Am&Z2b%C@4 !U(?Mf*{\z;'+}"~1Fem &Ob--iK!<3HK/;[< G'9]_$N.>'! wu,ƃ\M+Ƙ":c"nSpeۻ 5Kytgu,)YV$,l4{$1wrT,@EƔaTc\L%+h12Y\Rd( Y+bH{k5BJAZVwdjMhƋSTF,E+uг5ت\5vDTV[K&X򻖠ƭA)dHUٳP}T_HZ~ha}|&Dr}lu̙9+$(/:>mKa]aYb*S׬F<$o="BQ8c^a!fwjsc!dI SI b~ ΆPMN;?i\"Ab foy/f! }C7>덾JNߖ~2g+O8tpQ9RCS?*HÅG̩bdfnu<>~c!}w4eƙtQ,Ԇ-׫$E13yPS{&@“:=X1$~$( ɸ>1(s4]09OL4PYGMfbiscfH$Hz:OsbʢMk&.e@Y-ˎYEL!YIMZ%G |OX !'ɭ7v(RPσ  B !%Al-S-hmo:V(9)J$H*D%"4(R"P%(Єf8(Q0!I ,A`T1 DM0?|*U0)4Q1.D2Y@-Ƴ֢9R,pbOk\~h4@(%X*E E:1W:g(aT ݨGd&rzamWzYZW>؇Q8:;InM h/aNu߅CKO^>V&AUa V#++$ _b')_uq?j72oWAt`e7'W T{mwC@;`:CP^ScwY4ZӔ&y|/.:o!F>j|dStJi&@ +eM! [I[ Vmٍ54`Y'!T4[ W$,^I^TV,]EĨ'.:n ayvTA"`0ӎDDJI $cCLc"]U mUm!hj6ŵjF*c+RڅϦbb]B-OZ /'}Jlcxc6DQv5ua%f*豕fTe@qsk)Faf`FA^MqVNPJ*d ]9fCGT7vHl6l-CXDN̋0udC]$hj0)UUm}7D)i%()i˱G#Rp»>9rEcq`,F R*,_g8SU'ë VJ F'fQ+Ѻ0UI$&Cr"]88"bd (tqa =P{0uEL]i^Pc[k)M8&*  %Hz%ZxKgX] Z1ioy!C[heQ8l#&!Z$vب+dU6pK44abiҺ\KYwJiJU*WJ I&""$ӓD6 +Zo-[Y$[ժI & zYRԹ\wM BHA7)j5b"&-hH&?,%i(Vq&n N%Q+G02"BEbm[ pƖޯqnlbZmPjx&$BL} cŽ53TZJj q!2]UV9 !: CWpeəc*2!!Zgдxqbqukm5eAJ§7nȿDr.b+@qE~ɚ!e%V ^1`xiWT SR0;IH&\0)h4S&Ƨ]vQ`gt`"ꮶF M%16n3M4;9E $Q[hL]Hq ޛ[2K+U h$k?~&a%{JC$+coDyT q8+81dYɟM 8;&"jGn Y,jkQXY ]XjZml(́C.LDwTaaYYbMIBq`޵ZѪRČ@р b(dm\]Y)R88M JఙjZE)cy8.-T@#w`n45Ft6fúLP EImiٰ.?7զw4r:L?RFs+4+',$Ԁ0e5-2h5:ĵa/0MvzZ͜Df-J/+̐ D8~nN%f+\7e!!Lt*Tڠ ͭ)jJѳc1&{ tE&ߔ Mf|в۵Ot '5Mpav)YbDbNJt%Sz[458XQE7:l8&2V EI αb 63TLP MӨ ee-J\ i(lAFwq*6KnEHb{Nu$jowPr-[&cOڭv9 Ds1⪵\K]+ +b*1QhQ~pT 3ZS+P7%xEd?GrQÐLT20iJ%NM*Du eLQ5qهTChR$ga ۽vw3$49^,*c,E^*QY7ߓzOP. (0,ĐEAthC^ WXN﷎ކuu^'<#êq}a'3P9sprk]`%xb8'intSVk(lTEچ}ԇ!ݣmE+E E%AN:y;pu0f*vIsjbbr6QW>y;kTf-(GM[nؒ04h_OvY&r{rmuEPq%XD!@ߦЦ[qb)H(MfDcmUTP1eM:SmsHCSjѭZpi)5q1!i4%\>fm:[cA$vCtBMC#Kf;mTH+V . R-\_aF[A\7T4|:gSN4f#QR4aedg6Cfwcԧ0si4rj9@s!ɸ#)l#@ ! 7rl5ǗˈƐ*pi|/Nhyt3aBPe7)-YqMdu*o`:BnwISkc  q<-oQ5,AN 4v'xNM"A1 `I yy#4m-E`94#yt.&9|u}M$xGruz/!:tMf$h,h`+O# `E{)9=AG )I"㣏|x(u#mz3ԿHGt 2`x$c[Rm͛ (Iw6:ҕZ>0[#!Y% rӜhUZÞkI6-;55Q0 ?=/r!W3n}p *CI b($%M * 5+@gL+Ek q $d)[<1a@r`9C$t)J()⒇?GȢ=&ESU+^BzZS^ڕXɞT`pdd !@C^ ƟE@ ]rO1:(R5صFi'DP<_T 6/{ʹShyú*(& ߩUYac0k=Ą.)~hƢ`a߷o K@u:J?$iULUfC$mo \ >.**|`}ןwǙ>}`Q r#-rԙi+gثF[:Y:?~!*cMzC!ǯ8&7_Rg]$ t~dfӫ/˾x+> pKd6:MT/ٿ>NR!\*; T_g}ӧ+OpFoRRIHdPh?A"vSS>:(`aT']oH胂be$-i>Q>9f=%9':+ A_p3r6'! zykOHb ITIhѳWKT[Ve)k≊HR-0 G?:PIrGx/<@h8ܮ(" DfBQZQcZR#EIk?\S⚐dv2e5CiڈimeHH@lĶ-Uf+J+e5N8ԓڼ{f$RVZ#KDfl @CC12X-]Y uLQ1Ɗj:@ loAR*2 m\sou#bp8?ͥ~^jd|Z~}13H_[ܴZ)5'پr`Sy`2}yAï1覅5 11=ESTxA+DQldm;:9j鹅K/2!hTo2fN#  O}SL0%VtRb@COyʡ@H11*}!\f@A0ү~_|b(Hy~PQ :F&ob 'uq.W7'{T*bs9sdİծ8Ϣ|s_9}Pv)/8~y/[;h'<$PDDOUe{\EwseL:PtѮ{uַ5AA S,P͜cŌ֟<:;Ϯlǟn~, awpID t'9aI@DFo\ P9m{{XHP!>& o&fU0[֮ӊ#AX98wFT\FqĖj]mp.S!vT[Uh@@pq%Du3҇h^Ͱ,icu#KLD4Iɲ3 3)0uH1p\ Vr8>SR>>,/F ۹Gz;v\6 Մ$.sOOÃ,<zvb/[1xutհ8@n1 9oƈ EA#є/gcU0;5o9ɘd,kJ[B=]hЗ"{0J,9;h!+\?;|{RݫbsX_:(Vu5iVǍO .Fkf%ؾJG==otFx2[n%1PꞚxv産uquujsrHq. e"]|8ru!2de10|-!5ѵ;'CّyŒ R|S2Q50雛ӕ$QERJy|9Yʼnf5 ߵ1Vi{|緜k\xw1jpw}}hP"G:70FZkkDȢrH<EH 5l dNWD̩W]fqgW\(0LG;#>\.ndK_ְ]gּgZt6#{"hD#k컟ֈ!Mgs\-s 2NNdPj3 yg=IGUL!<2VNj2'8 3F!h78Y1YF1f! 8(q,26X\ !Ec!MB @5FWx %R44pvs+rTP"3Q_YC>l ~}~ KtCxЖ^z.sVIߎ剃OsZ\#YO_GkJN Pl@NjzdFȻbo;h >7 mן0`X-.ڜX4NaGm.v)lFzCMמwvn1-5֫Բfr6]fo‹ڤH=!W#-k̯1q'mnDMf@!DFωW穓v{n 8mcsPEՊ5)Q)թs^bACF &%[_^=kߡEҹACDH@0ƙRBCۢhVk p|e1=g*M疚W*Nz՜1B '?>s3gEV/͞zz(, nج8N3BLsj`9)J1,R*7;F+$0(ԞrzJ F!h 9LKNί>7&TΗ;aO\OK< ġ/ g'D?2jTu t8^qo C`{7.GP[i1F,L:Lw\zbZCLvWȨ:1*aε;¡/;xסg;WTK R ;N ѳcg/kKQ~paJ-r (p̈́QĬ8ls"R8R(h0$H4hcBz8sag/uT 1 1BiR0ƢN ƥn&Po5DpAj̰xGMj|'o6cReP̈́Y80sS"2f=vRqlaXxMf8]ukd{Dis;ݕ(:2cwq+vč(YK JjN*1rC($>O3-l L-1S. s/|/fF"ߪJv^MYG޽̱JlduXI$$i UMdl#-UW!eJR̓hnZ5rhs1]P *qmd xd/M1V@DLobL}` aÒ;'JItÈ:!2:}烷&Gt w6}wZP^1 Uw]ovV@|}ϟRӶR=5at_%iaۣ "tmQ9S Y h<+u"N.<+ 1szeZDZel =vq`ԇ:'Ĝ2k~aox:s8و5ȧQA`x}އq <^prZג/C[l;JuRJ|u@8!eHu-D~z=SBdo'nW xs,.~8o!<a'.А_lGr@l`qSȩ>U4(`?"IU3ic;s]KZF!,;e25%Xh+-ņR@yxg rZ5_ֵsUhwuUP w{/(zqp9F)Jxo_t8)A2+=M6yꈮ{9(F; "?,8JИBIє?B{"}/{7PHk!M?8夦f{7o6i5<2־냪g!y0՗\- xNR|5'f}D鏞XFm{ayDTWkf5 @s 7Qb)#'-J#%` l;Ȳ%;0BX1Zr2Nj=ܩ%fʎ= z}ܽbEN`J^?e(D/x.P~Oe5F9;[59F(!d!g O4ׁ:R۫I^u'9kMDI6XG18wgL.4uƦ@)a4ir6@HTQUqlMxtwm95`bJ.B,D\s6[ ~ %^Gr}xRZNuW 9&M㻋Q9y1: 4OZ fFjTj r7 hN*$ܔ 8IDG3)DZ*5'I}<ۅnuLtq?h~۩؅ws0:Ҋ љL BB[:;[qhA 0IpL|2b \K`cp̓\93;r8 $<}gLߴGzEq 3Di_&N^x/b)DU& v8$H۾XC?$!3e M?fӼ0Қ, X ƙKagߦhHLBF"(&ifIDB0%@a*XAT0?W=0] M0K5̬Jtѓ I\E΁m$e,k&b^D'$,-8ٺ eQFS_@tf$*%n/JxQ1DP4!ǻ@ސڌL8ޔZi!YX)fSa(UGϰC\RNƍn!vCg !a(*XeB4*KNbh2,~KM $!D@1<I"l{mO=Hht?GC<=QB%zcBKqN@scױ&KDXllXk)2J+,&@xϣh+hZA?QqT*};+#iB()E8iw۶t]5]ӣa90+ :\m|.[/ 2EbccǃPl:FCȊKTѨ_t:P`@{MbT.S X4 =}d/2.WPð(C.8?p/")I,N*(~ ¡WڐOs3YE4 V\̎K׾; '_ɪS<&F%pVSJڍ-6ڻ(1zTg(%st&"Z ӞCԦ`M;h8!6QbCS4XRzM$O?K\|CLӃ*uMEk|ؕgvV|syҁ_wvµPRlJmVNĬro]jn\\ P9BX&t,QDdSA%hM?DM hG?[1Oϰ[ /ӝ725㴓:S ? V˚fd";hC< W԰i*VHPoaK&f>zf~g BPh(N@2<|=@wS#`,e326mMEJfūSZ~栦%YR,GO̟z?h?#t:9Y`a|$׌1{bma_iex࿢ia9;Z;"dEP?k$8 utT&d|OMZ N/l-2mf^?$X!?@ד?v~piTt~7 tE$vɮ3=Et(L'=5Z b4t{ݩ:0b1d9d:&PP0MKD ]0#305M> X^<ܯ>OtHBET*"ՙnULK茔5)LUcA[ UThӎ\ [+8q#lf&*1m)Q. ;|5Ub1vC4:o?s90DaJYc⺑6ANF0&tT9%X#Ya : qR!P\\8whݳv_ *vBΘ91͋L`e-LrSߛBcI*brl&(,=YΗPxc !v ( PH NӬX㧕F]Q~Q[);>E * g? ?O6R-mɌ1\֭i2cLȤ&A^jaq ̓] { _imHxƏy' D`zK}s+3>{nN@8~0?UԯNW5Ro73zɖamj=̑dDr*HrP䈉M)B|@X`$F>_bt?>M{tvL\5HqED,w'Ujӧ7tt$[5FDKtw-'x17ӫAB9qoQ z>ʱrr9~0,Wj$O:HB+cEQgX ޒj%eX&Q"BOJKt:UmJlvT'>f/amCC.W]3MwlnIJj)lJs$Y1[ sK0M6`x였}o.Ql Y+?j|zFgnfNYfɤbpnprsv[;FQg˘ZH$wKToo഑PsZ,lVdjv~!4[[PD! ;gRs K3h_xi %eXUzthИ7|J {'u(*N#D/cuzRtܲ%ۑmHz=Ow/Z)= s" z(.N4x}RRc"Tr uX C ӡRNkQqu`smt(ugF@'u)؅&a99RR ]ù9ш%4BnN %TD F2pmT#F@uط(YlE%D@0%h>hS 2:jUSDD!.4>BuUMn5#ΥI ANO0 ~=(eހ{: wxE=5Td2>E 1u ?4^MtcSv`]3Y{e'd{m^>2^*Ml2T%@AA:7|(r* % &RA NԼSvlMh)]P"=tnl1]$x p4(RDMw1 Vn^aD!I^ގG.36f>p2NZTE>FѿJ̫GdlQVP`9ySz fD|B8wojzgW98w 7%>'-< IY݇VM̱e%"A01h$$X~+QOhx~AT~sӤ)`aMH{[mWpMڅBMPj?Uc*QHDG$Zf4 R -Q('0P*8 AbH6 Rh@IF4UNY20̓VKg#= PX$|Md8ןY'=1Ų]eےlmZ%%@kKFWg$@&$'ׅGG.dDKFl1t6"@'x$6Z8"5S& 6u;t4"d H҆$pd:]=@ڷ4Qg $Dd^jPzP\! JTtCHkkQo?8]<~ -x& +A!$㎸] &g@ :ɴ|jxA&m34;M6k}nH癃ׁ>l0Ċ̈qHqO*۩p;{(,G5{jSX{O" {~|V]ɻ뵓M`r@݁$ U)Fڐkx̍9Z0;nMȝrH1! S#WeC%za#2 %P0x @B"N$CR#8M.0Oæ}P >(l3Tr^5Hrl(;0ytpVW:7AQCOz ŁGX1̹r\ф1مYyo^R*J[Z60cDjTDbjl,}xEՠE RM\76f.&pېh550h`!aƍUuip9U+0Ir8># 1,̢36YmB?/МWys;S+2"-FbMD!u-be81!;D|r$瞊CL&HkaCt<+ qdugci@$ +"!Cia09w% C΀ճý1':<|C@n52N w;>>'LJ PJ(UXl+.nFMFЌLJT0c(.vjp7܃3>OaHo.T_xL# 1 2YR$".E,E0JГ%i1~JY5+%զL*5L悆Ϯ\/RI]1L郖(.A% h!s(}>uzL TbO0i!Cb"!$'Nh~8|MKW*}{6:0eb5}7QhdEYV֒4%j4f &LrP=e1I= 긊;gP> |D1={=O?d; H 8xF,'?+bb[ڠVUݭjQTE0A.8!B$2%) @Q%CPuv}]}|Q>bHf#g7Ž׿+ϟ[A9fLC O۽Hd8$G|]Mo2n[ 8r//{d%X@I S \d+0"b([$-V)FȔdYo+vyu7CFҝsYthA:2!ڦW|?俘+S}Sy~~bu=!9 r{|Owj_H:޹*"A'_ XSr&HL8m`-6@3,=7a嵐(rqPl :h E!c/w3{/ù|YTQTl*8Z1*Q(Ȱ]빙w\^4QDTcPa!kV46X $Z "WT:fko'|AL\޼& 7|.9Ë$PI$CN8C.Yp6 sXLr g7H{<"prvC4c@*dJ}}|s|u:OIe!#I(B:z{oKۛZoFn]Akf볻̸F :+% Y/oWM r+344<.˨M?T1r{ P(&HzNSd=$(: UO^Q8T͡r$, iuu?g׫-}u٣M@IFymwTW>w2>_dpC2 4zBM5-аi ͉$F2FLkW}mmeQ*(CHy;mq vaC X7jOL^Y4_I<VQShiS}TMhX6P v|t^آ"*fcP6u>L~ק~?s{m|/2hWDPQЅ)k~Dh :9"HRޏ^:^wrO1jAQ͒EV\1g9FQV0$ C/Vf\)RkmoeLUu,F B$f*.ٙVp͛<N0I8$ e G᳏-%G 삪}OOn5H``zָh4㊪7p6wptgg+f 'LB^o0sDFhƠ#F:5UuJn9qixuwox28 dF ن E+.6lnYfD^!uGF:V!*@⭩a\Z*rAQv:,oϓ*Ebۯq&m<~PKDJOrt}tNЯ kGt]sż\!*n5:/h pB5w 2тkJVq]F۹MT*:MHȌ:XD$Mq.֥4*5ϗUXkYBQj/{oE*Ѭ*6bADC&agn7o 4SF "ŅX9 WcJz =MW bEۊAQ,,-/lrb`J%d2FMVmL*($Sђh2!uHp\8imMwyI2 tZ,@`cRi+Ż13zS$Zg 5hV3H\& T4[QQb*6\i!(g! %Do 8B\'='2!4JiMbK݆g G#GZj 6^&J[ƐohᲯxCfZfmݛmq5)˂ޔ.Fݽy\3o]ۡ {]t,Mk9eRNcޥ$VY^h3S-ԾލhHuJ-7,3±$xAӫoDZV55.}j0bt[6aaz z0 h_oLae0A;XlՑq DV`DR*V,Ӣ"R\ۥ$AXv{Hq ߛ8f'̸.jJ ;n/ЬjqV+Cw2h؍*TrYƒrwLőБhh쓢zaϚ־҄1#2M!YƅyB튃JZjS Hꆏtw_ՠ0WdA<Ƞ-}_=˰4̸1hYBFzJBJ]sE-/]n{̱aK2=b".j99eF9PqQ e g]h_~{ *4ui]j2fekZ4,c f!C0 1a@(±m "_L%R laysz>Y(cH2}T|t[#"oTWvKXPJx‰P=@RL@+j年ljIklV&jRkDZ*E"Dim%nmKmTHЈjTi2D2E0 rhP "\Xi, (Ԩ"(F]0ۖFj6ͮX X"`!HJi(mblTk`\1FCR% nZŋh4l[&]5\&krm!PӉ#i@'4@8 {O``*k@tݸRl- y$>ǹ7WA`Wy7k?`Zs;+C;*=0p$g}?vcF;2h+S)O?ۙ c# iUO.14R~4nV% {> 'NI`Ѱ*s !akiD|iZ$( GUSVZ5FߝUBa&H\SUr\ z[˧.Qjunb0H#%)@u Ң$)OݴLOw?N RV;6Q͇^]8aOq}(8@q?쾮<ۉC_]DA=Jj>O| 2 "HI$*1:~"y%?L@,PBGP 7DdJRٙ$88uZ}0Bwj|'CL!S_|x}Qf▦ˈe'A.4nS*&}F 3[ڄ)Z7!"9 ̋}tw9MI@BV29(ޤ1^DkïSP8B6?PwD77l2`K<4{>H= x"Au {A.CC%!Ao\=N .׳t% C0w8 /w|Hp AG@4Qq( @[TNL%f(*0lY7Vah\-YT֓Bj∓|Fx z*[Vl0cs!ڨ|A!2jhccB-4q74*9\N!2UR"2,];aMUٮnuB0?̄Im:h=GU-N6fb  ۪Juvcy gw`t Y W=?t*?:hЋ~dup38JVQD^1b(SPV ޶kzdޅ oǫ9z?N}`ts:xx)5VG5Sq" ֲp󨣈* (=Uk-MM&dmZ/2ř~^5]/~ ,1,[V00s/fi,(IbH0AȜm5aWQ! pf .3h[烚ű#)*A#RDE%6%CqqJU-U#(!殮QZpr'᝗>&: 92}z08'^9zKZբ"Ώd~A?'{~kYt>`i&~,XG'`y1}{*,nu1 2kz~GV)D Ygh!JDgJن2Psn`hLKRYcil}+)+_@y0 qtA2gG'˲!X^w.2nYRE5BzX&4T)sTXV0Q"`Vݻ;$sQ4AEDUM\?=#CU‰|VwkHQȚIIy@Z)! Y&0 Hl k|\+8rں ĻpF!Źb#A7-.60?bŌbFuCEEY m-dIj3^]$#t4Z[sp4M [zVv\Road]fcF 2e)kJ!ZYf "X܆Djda@W+ ,A~^XK\g FܐysfXνb\Rl)zhCqda5J8ON$ ب'+N툭WH*Q:\bFFm…(JS@]@ A=v 3:ً绪vhD$>?A H_{>D~><ҮkNLl0#a ^8%yBLIQ5MsשA͚>宅cLM5j#ATBn^W#hXwh1l$+*6h$C&%B!JQQwAfm5Ez"R0BvE0t:;PwllY P4k1-eڔ ǐGX64jل4 a*~ۉXk?]> YrϘJPa^Pa\؞|lQE.'@_"O#|9M'l'6!;I8}_RJ Ie"Bv_aH!XZdHO?']P:?M Jj Ԛ6XiF24XYBFi#%&ռi5WAfLEȦXҵsHkF kРd19ӥ=k$BM6wR܉+ۤ(,eQ@oK-ۨkAe1P"ӾpA7=N*6i7_8p6+ȠrAJ٣!f)U^ʄd=N>擨M|_A.}ЈWKQ#{WUxQ }}: Oxl.MZ 0 J,gUZصUs4aAKo)2˖(C@*g!Q)xb`dɪ 4P@uKCs j ߀ea/UIOWLh)nzv )#2TnC5Q&jo v뚮J,++̬['=#t7*=ѯ[<Ջv *6m]Z/<},dGoi8ԼAHJ's pJ P 5ZRBLpRISAg ,@cQMc[~,&1MֵhapUc+V\$2|x"Y)Z".*i]nJ`ѬU뜛Bu޼z@|_@u>x?:>^dVwA?B/uMcXH"vP'Mb>B==g$sխB`kb() l+GHQ a) WHA0ÔC!P@F:Ò@6aNsR(~ Л  Hd+L ӵOO_Ij&m۫R.!ㅈ6FJI'$()^p/$S$y{fBR1$ 40loDCwMe).!G."FD,ɣCF y -b9N̲«"se]%4nt1ӽ֥0E\(xi%$MS12&hpEXH0ލ^02*Tn8TC7[a0H$m)FԹj#MJj)0KC#9%DT `c,KB-Bh;۫qEF2be]Gu,w6eTY ]Xm2%ФXCVE !dU! R UdcU%),wUɤ(PDi4`d髪 Ta) Vc07mk^T`s I %T1m#X)ґfk8'1ᦸ뎸̚'H, Nu]4O8Jo`  6L7M~muX҉+e 6!L2\ƋsӁUͮ_z,ҙTk+Y,6ְipFp^B40H01NcyƒEKdN_K,?#DL\e?AQq#QQ`ڊ;t#lm-8&B[ ԩvN())Dgt+d^Jt_tJk<ݡQUAGp܃7 ,Ut<4pЈoT q_TQE)yXQցD9U쨿/jېx]Hej%U2TuL̫ B ZjürRHu~@pk|w'Xx_qR/j DiKQgS~h2t\:1[Vܿ]<b7\WIC خF+!TGhlf8[mti CYSLmE" £ebYd %KvWF2lT@uwN]8p."B"۴z/VƛuE^YK(.ԩDlEwbԣ=FiJq e:SݤULc0@ MvE)XMГR'Z4e`D&2QĮ\uu"Pl(4 32jx‹BJ@VHؔ%5.ZE,L5hb7re8p] K2VfPb )|BӒ%.q+^?d"#Ƞ9M@jR"Gr.g! -UY~+BQ5(4' ub+۶#&bEʭKׅgBn6UERNo dĻF"emPڂX٘L,,ZNݟ,:A)Ԁ {4r5<"lɻ)K`FRU4Gb \gbDA1[a > tYI 'j!ѥ-Cҏ֖r2npXY‡H2Wݝ10+ 0@ruRc(O r'(rt$ވ!)HpLJB#{RFf0%黌4*4 kKsn|eh+̾N&4sb) RIB-KQQН&2+=Cd٘E  ܻ1S,IS"P6p@){ahCs:ô;/P#y#h֔Nѥ{@88tBp<8=J)0CX̵ۚ.U U;q0 `6P2aI{ s]b@_"f@kZ+A,\Ԋ|48AB3At-R`d:`X^6ACQ}&p$_GDʼOElZ>8/ؿv:G1*I&'-ʮˊU#\.a˸Z.٣FazΑmI68qA_W7dFO ~I.C~5<80O=i)X"kUZfqSV(TG^ZV1xJB;h*o۾.ZfOKDItdF*$FFKSE* 0<}^9RSd4*GC~eZу讧d8}Im%AȆ"-Ș|< 2Sy?>t]H-[LKx+:pi!*0 2W`ZqC\  pt;(4IaDĚI@@a}W'Z>/忨3ÿp؟BԜ;t׏XO\P4N| ?͂j5ϝE ._ 89n]xRk$~5@D HMi8V?JmHĄpQXX0%Vz}CNNu~#|` h @ 9C2=)/֑|P(EDD9C09K Mꘘ%] 9 l%~x:C'1 Ry(#ɼ @0 h[ `,VYYvM-&l<bēEz"Ь&4>?t 2d' ~XIAw " >)5QPel5DCBloHF;H/Ěuo{r+SKAWIuFں=keAFLFlTI0 ӡ#qx@a!84$6lN`DKUь@M$J&-coFjl.\v)O̒/Jt:W(P?vUhhy7~a^C8LBi 5rͤЉ-#HG@ h%@ @ǀSힱ77oiy!'{Jb r Gm\71U ˆJ_b+Ȋ}M(y_SP(` _b-Lw)2$qTV{ߦLDDv7M̧4*T3%k:W،{i:ӋfyʵZs‡DzC0dk unni_Y.C}p'P*#2 褄PT*PYc}7~89aHy|HA( @PeAg;).} c{d9F"*@ZFiLK$r?~&0մ&hD5i zgJ2P#6 e-(7 o -[I2|I.Y'0@Z$Qp>:| O[P#>p=NgȂ`Q=%FZ;U㟣k7>yR쟦AؤVẂ<큌,Xrž~E<qz)RI P6dYthE:NiF}q"|oUT iI  IgsJ/px=WHW9ir;39^Xµ];q Z U ϩ#:Wd+J/ loVc+UhC%lnžtl/N#'.+c:S7`:S$]rbwjak,̔uT:Gb81+QoŒx.`(t4@3+ @JyOt%n`'sqy d(q^#Z()1_كv8,:AۮӾZe+z !iTTGJD_wdb6R+0h)bw&7w%ݳZCUC L HC ZRJ1Hk )^S'] ZJ:Bb=!WD69 'A4PJ3#,]LG2@U!ª)Bw RY0 1T|m'Y@: J*j\,rA )~X BC FcG!"t8$'nz(j]e@0yAp_p#k2RCm {!Y2‡UU(8 hz")Qv~F`AMbk~ ѼG5دx}P$I%sy]PN62)FWX",G@ܷ`=p lTf]k49k^gAo)ń~rr %*Y"^zw9:gH9Լ/azBi?'u[sqQ 1xZI|.w%BM%nN 4;ז4./"Y(1I& *</H+拶|>^@>\c-9Kj8I2ZazqA\}fyT-S$U}J~=&O]lBYn]RQal?ː4S 3 4GmkSw2 *0ިi`H@b-jPt_kF;.| I' Q~3+xr`Ѯ_/Di-&{'˴t\:Oc g0ferMM04m" [q,dUtDd42e̔\7X`يZ#f9Yw,*IA-D-#iJ"ՒђƗCGo7( n8۷bЧ+ UCTPv3%TiMBSP!BHTM0]$q^-QOuGX2F,aX6%c !b2f8 VFpu*d LFRfq$~MK5&1l )RWkyc"JVB(beq&I GNEM - BwbBGMHq}`MK zW`-uׅ[QV?w,q ZU\vzdTC(VA ͜{Rn9^Lv 12L/vfG2˲x]$ߓ5 kz%r$&!G0`#l5'F/>XW;w'&Xa26gIC$hLч;j뽛+w\@qo XΘkY !M8 IoK!)z*6骩mZJ(-XҹTMBHBF-!&S"Z!86[{'J!d )*QT*\u4BS4pM'ij]{k* {>fy>H3Fv*rQ!ixҜ(FYei%ud2IkIq6r\)X2GDd&Q9bPFpL+@ůݚX169}:B~DlUh@,PHJR:JRΘ;Z(` AFHᘐDRB .: £ rT J_ѯ'ո'w|iD=gw+Jvqf*u&ۨ۶6jZ<@6"WƲd+{LP x 9Uh*86aF1+|3sP(i,ᲊ}`Zɗ2쨪>V/ ;6M_rZ#cT0[CQ9(M4kBQNv0M܉gzp^g6`?i* QH#{"D_T<|=0 fxN~ '~{9R E t+u7pC|\p+w@J ;u)9)Oѫx3t hdV8YJaDIDTQ5;bA0jdIwP*plʎPMXd#b!CVѳ1-KK.$f(噕iS",XSI[6bKK2jjiBbb]E(%7 d15q1̓6QRHfrW7"ZSLLzֳÛc@n2va+aQ'28E`;3qhj4un jCt1(ĜI$Cmx[Czfx{P=%J6J]鏐|@)t ~71U}@s:PD0pI=-9 .o RLXU@h_Lڡ*$PӛY)4ѨcXK[W20I22% ʐiJ3ф nCy=q.LdGQ2]:2HZa6g"2(=INǀ{|%x<-9.]0@'Rvwe~J0!oqδ_cWf®Ξꇟ*D#I|Bt), IH=L؎|h}x'o5|"0ql0UҲ*ؘKC͆[zue/bi23%\Q$W g(! s[32PZH5_n=]Ԥ9~$?yEU*!?w htKQZZhqn=:fJpIfjoNQL0~?7^, P5홒wD< P6ƲTY4m5--$bƲFQe1ɔfə&H4M4LKh)*TLԥRѳBБ6- QMfUrW6ib65shչM-Zmz]F)r$楡000?@:hklj Hr<'lHFpysfQM$\`7 5CX1O))D+BrB(D(AHBR n/c5A? ~ghfpLȤ0< 6wHq >8D ZS>"|_ &JM{t0H2B032 BlY4 &@s65Tcͯ%\_lk!3E"K UauVYP~nvfݤyJ`##Fe +: kd 5*4X{W "\b9+yl^2AwII2\Ln2˔jEqg4ҚY= |k0y 83LkG'A[9*DQE-AM(J9 d>9׳ Nb; îm<ЈnBu7U|D.A!A @>|YxІ}\CZn [[Mz,@ӿRq0m/H\|XS8LClEF?Qe# 3$sSCeARY5u]Q  \lj[m(u{-J! dhI P|5?_-NGEГ=gUp[z뱦jmU7di^ Ӧp/ml djqAjjI#tyWVx R \w@&KE^Ʊ+͡~9Ux0l3W(  FCnH3"M_i_'ND5uJuWV2 u:o']Hxxslmf;u$a-@ܡ'dZ㡱  n #AS9.۔lONN#4~^0:vN?u74OOn~XפlUEԐ s6H703͡5F״r39cv*񱨴pSUթt{w  On~]{'1Is *O~OdܼO˜[#X&SQҤ9AC`kCN$Vs HQAZQdUT6 [FR6MQmh֣W4dAC4AB#ĎӘ(P(.HdPdd )-f4lmUʛ ʝ!Jq#k2aVGQEYDV畭Zku PHPf>:Rk^J BBh[]ᑎZ2![@իbLg0@<"[饺`@eq,[+ݯ+y)XYm ѨUA̠Y]8ő 9%@*\SD`PiIJu* FV.$87ӱt81ݐ;BpU2 :՘ju ŒWr RR xj " :!d< 'dYnCABB:j5EFmjlͳ%$Ԛ1IZU6ce- HETP4%!8Hb9f0bE1 @[ )l)ANl/?xT21M';O"|=PH{DQѠ*#NܴEaT~wPO&o3ibg8&oyb`2Mqz΄S\&, 0j m4qS+aHCR)T\!բT0Y6NO^E*iHt{tÓ V@즎0M0ns iCu^za:BjNa2* i8rt:/mEVDfi˔ѽA6O\(-;3gSg7ì(.F8jS?'I:iқPK&Q3M$gY:Wpmj&eæ Jo IS}8Cka !{NӇRog8pIn|cbHƊ=|]V[O]3B*"& V•QW?d/wI=3෼u"ʗjt DփԪE"rL)MEkOIK[z!FqNwwNr7i 1!C٨{PnRTi tY)1*a>%SthP`  zNA56Lq᷍TTD(KTsevYz(0i y&K7R\",02sΘrSN!Χ<Raxx+96bC "?x(?~ܡ0_53pCFfC)MX6ʞ+e2"C! gUMBEC41DA6,IlkI$TdQ73D*o2J22$URuC7 %( ;%!$B)(e;0:KzvO`9%Z6%RӛQݮrA,V hҥ&Lɱ8I]d\[tl"QMSP233P'Db8O/_u4R9: hD "O nUÓ#@LKhֱbܵa&; gG/o算% eQݻVj"5ڌWp0Bzȶ~9I/˝ s3;s̃A,Ӌ30s =j#~ c1 h?wC ~#+0 \!/ͬ>T?LMZ0[Mf)&4H (!4ŀ@OAA;}/0SDIlѤqY B9.6hM`h:?L$Gq  Hҍ`D~ @x$ 1!:w(r?X)A]{_U UZ6m+hдW]}l00gP3ę-@7Wk٫xZ?/. K avE;F%&}:%ݯs:l?^}Q0̅Oo0N݆ p'hq)UpXB_;\~y׶~MyuOt ~/; ]CJ!C/S灰j4œ?PӱjU~.QFWi}v=Ƴ&d2R' ;]CJqۯ}h*f5AEI:.WԷKI9}JA@@%Q(*s9)I*($/oZȋ$9Ѣ/+p,|; tPjѤ}Tfx`2C[^L"QUPS<@xb~#&/w~Rdu>ɛ d9d %d&ZA#QT{FJ{C'>xe.֙K YWXK BlCUF:و_ӆ (Y&VdG bu#UhXėd!]n() ' $ځd.9;`EdOQ* G~M4iDKKIҋrjm(O\Bݸ9aY?'y#'DFstk[5/Y!ɉ|-V`5a qi2ZI=ջWQ-tR5+}<8q@$@ D! 4dM!(m7}k8:f~bv jjF06a %<F. 3D?:8 C^0mv▕!/*T5O Qa nrGR==liBI$o]-#*)ywrX˛EZ~cZnrՖ}ҏe62E)@ e#$(hmhuIyc>VRHQ`d ?*V4:%!?&}dJL9AQ% < "bFтn@͎?u5.tI3@5!J@C@z N˨]XpJu AE&MkJhU) Y~ff  [#~r"|ފ$ԅAc@LmW[i1E qrrXd%d65*&]ثT$XMٔh0Bv@}?>^~P}sɂ}g35]_ۖ9Y\fB)Da6+smv*tˁ:H tHUQ̘:S J} z#aT!fhSC/<>uяqu&( =P;@lA"who c3*Zk4("#dC  &a8!zxݝ!ɃQY6 -C4 4fV m_Lv1lS DOOu磬?O,n10`SJH]dG}쥨訠NCim- S"g]h%bX 2Zr."fE8M֨US#DDCMfiUH3a9*sfj;qaק10J{cD 1Nu X/3V+M"Ukw@!JV-!lcVڥIT.BEdEլlPb+dBlx(T/?kٿҌZ.˂HT Zl!VgBR4*†jņNSM0p1V^G6tuP8smTiDF`2(Hkщ0obJjZJ~͸oaI}ƛ!v }zVHL_ۯ:>M';W\v`Fa!g % dI t{c?ԙ,mqfpoaHƗ)qE`x)$5%8a5j. G.zaV-bζߍ,}'z P7).4>KSP>ZzlM}TRzx1o4fM2Td,"ZL(\{TTC%"kڋ5>o&$$3Dr;"}1η&k+41OoܟiPy'?jl߰c'IȰSd=7ba ]<ےMWL&e]P:dC!F[NKa $l;F6v5UhelFStLDŎ]:hm^vt^1 96qNh!UQuҢ e<יMCcpy[~Ϸ7РI %W_"FS2Pfh"-\3OUUWtg}}ժz1]@6X}쟦 GBlP3u8j $7dLe;'CpL ~<|C!]Rᔶd<)%# 8VkG/u|)4P)d4F*B- .FCd,\ӻeU{ :b̸&a`:]iЉ2 _lR=X |DU(E3w`ӑɎh^šoYs78:=%Wx j֧ [B@G"D> ˿6NJȪ&Y)mK:k;D~bBqH(GY.Fa[+#C UT$d´w9u4^&h3GFr\575Ͽ/ iqh"xq$Wk=Bx,.=e$i)xbCjH s-*Jj ܑ3M6j8J[j7*6 mWLx6*j늻.#3b@@'F#GMDƆvmM'+7JERph R0>hW?e8KX"e4&8Xdï$[SxM KWUQ?s?v> SԌ/}>%dD$zFq Zm[ݱW}1!%M롿na4~4!>%&R<%/AGXB`YZd+q"_/,W! 9N pS4'LE400*[wglrxƆPJN1 HLL#22> UG98`Ze): kO;hJ(#FZZͅʺ8E+ƙ6"+EPXuegOz/pBtTO\T>37: w v7 bՅ<[O;ݬ))nnQRE&k^aDE'R`Py'bzf굼O|<9Sy*"b( H#p@:m䜌; nP[CC(:Dy֐Q&Qwf?R۷XiY?^9J~ PT,t10X 3,irft;hICŌI*g1zT\1|zS^gNE C#X+2!k6`a"dDt%֋Z$ 4`aN zl94~ɏS ʪ4|Gχ,ԫq9r.J9D=ɇq'QZf0T\e4͝C>d6.]jN*eȠ7cq&A۹i1P 1Ṉ&3Tӗ:l"_mo쓅IPIW_H,!BB4hp#YYQy2Cøݮ8K`MR2 EYtl&(JUA80b6QuW]ns%J]?W猣}Jqлr MmNOU~_vdAeF`(bO#ߊdRETl6:!lB>}Qz$,dsb"AA EjyȚ[Mu" ҫC.:jzG8vdPDFDBUXM>%1n|SF09BDO-byxvRymq+<&v@r 4UE(O$#v*DxTK@ `xBK||3ӓ)}m$ ,ӆ&<=~;w9ݛ*˥_hL|TI;ηu[A͕IgLj;L/HrXO7(o++@cUba9/?*魔Y@zEJBm[?{`탿u8MHEPsɤ}ykh_ }>F ,0 _~%t~&~ފvb0NBмA A']0&M4J@V˯5ͷ-M@I,r¢@1U$EZWcVjѭ5XXm澤OvՊbƷH@R96Ԯ ]\ڠ X{>N:6CMR'ׁ@"MJ}.g4byAL+0t}ZQf%k ^cELK@ڊY%e~_o:oUDm9v1mS,VV*i-ኒhuJ٤Em,LW,h& o>m?LX}J&H ~m,!׌5̅&e =޼@BJX$"8=5ߩ_8n#YM*hßdӹQhčtEPoWguS=Ĵ $;29M"+w?@)D9O0O=rN[Ih{ L?pϾQ>b|-fPȅCH͙彆7atuيvZݩk/RcEޝSd0e;y^Ȕ5BBD^{[1O6HJ7VSrN(xI2Ƿ{ӭ  :s 7~WK#JO#~CJ }09.P0)ϙoSU\pQaRR(&Fd4PDL@F-YPVP Br灘 )4:H0E&C7A@*bSE?_=@b Eٺ?dbH*RtBש U]O^}&r2Gp0 AO ;A9N %QM$TlsB]simc58%O/}$ܵɕImXmTB'/4?եXNKV'LCTZWY'Sg-O 3+5vbK+lwA6" |U/?nlÏO<7Y|(DH [Uڊ*PI%z4O;N5́~36 1v\lU,`l.G7^$QBd(Ǖ2BDi#IPpxP2esu%Vb ] 4Z?ˣBPlh+W~5gvϳG\#_ r5h\ Z9VapC o4`+6c;L9@^UFqs^+EQVo{x&8pƪ.ʫ7 UI;v@ި7ȄfDl;soFW6u4p$GaKs6poE$Xs62LeM4&W#Z1lF(nV,cSQM,7+u+/__]^&nniҪF([3}f:h\efJ((1ԐU#)ozb!i)M. WK->upeK纫Vfբs"A(fZ s٤M!SI%rb5Qa=-,jW0x(ٌ` eXڒŖV3>^s| Q%L6E%2 ɰpV~h Da"B $4oξ/oǯ'Z%VQ'?X"FA+RF2Q5S&$XM0h)e&e6a-+bi),J&&4FJ*HŲeMI)Iȥ,ʬѣB3 ,HX FLI; %O(,yVs寤),3m$UB5U"&ٳgn:h)c9⣴Œ֠i"4~,GeG9߮#ִb]5bh[Fcy֍4m\ich6y`6 `%! *uA-!{+*Wtȹە9 :ɹeE KpO whwFD87ٳr' DExt/זì:\OȪ'"ABjjֵ wf$^1r"^)XƗG4F:aoewt#E-0HtԦ0O uAOy֚"z4wDz8<kEԾ#Kq5}'/,t_ *HY`42TU8[ hTln\&=37lBJQQJfs]'*"9]e8F lקm:-s/`"|a=r0S*}rD<@4=Jns<CǞr@!C;'jc8t:a=oQhTSTӣpo,h=AkOO~Lջ T;{/Js !h8o}w(!A5M;D}ЂtYOahO,|>}CnF}D '__qC'O7* >{}6LDnE)I'g'4\03k# 39-J~?'N.DDR:9RB'Y>;}5⓲;e:0}HIŞ}p@;mu9ܗ]$H-$lehB&)! !pX?WG1 }Q7`qyf&q~Ss3 $Adq)uK>hc$ߑKOgxsSR2P&T2"$Y#5%W<d5IYIRlJQf67u%}jTffB\li^oĪUPB|* %r =r>ੌn3AB d>aWY8O!6̈́d_Ӊ3􀒙B i&(H%4~$>pFIP/$uMgb*@`kOm R@k>氶0chisU rՔ]Z ).(؋kcH(!6(ys"uֻhv(f x}4' -K1 3JXRM/*5rѭQ; #$(D"rp؁֞$0AEcRuBuh)2 ^s@)T(Ҫ␄w5zia{z)3b/P4( "RtiL@@%FN(D>6h7ġJJd)$ &2PP^E JZհu>ɉ*~RG wa!F}W~?xCÿ\t% | Ҝ׎"i({P&ֹ:Y}#~ ~$R3^%4pG;ttmDJd] O I4IKTkSY'(u̡4l̈)M 7fmm(UV҈j)P~s>4e)M9΃UU)ւ Bpxyq_:'>@ttd48֏\͆aJPiOTD{?B@P>+DPIX@RQE馗Tm--4DP,AAO_(O⦤9mdM4~Ys8=z"u|֍^b@ϫk?%Ch7hDv ЌSE}G5 (  Y6@ 00A "G HT^Q1 xÂb M# w% E|ēБPiAQ WQAS`w>1Ňͅ$A`[yЧxQaJi] dv\ LTJ<:x%ɡZA-fws Cd$Uŋ @殄@Q }@ִ.KQxSHL  z||6PBiÒ$19W Q|S'ߏ$ˉӜUCo$֖rtY5$Q(D!B*882`|3q_MBv* 1,|WYEcmGx= ⋉F`򎑹:"JMH=I0J7Db~B1t _N<f`PPRʷÁ;x$L'9h K r9,aڀ)u:O11͡ @m8yAs^zt s:%x23ä!Bf+{3jEՔqɠJl 2D"ATauizH!yEtq%lkX Hd@7;a* Ig?l]®{)3wv7 -$ >VY13X氌MhoPɦ^>Oj%C@κĒ 9[$WqC;GV5єglXi\"Q^Ω Hj7'fPgLcQGQ7(I25F hb[xe4S2}k8Y^|ދKaÚ ݴYFVPk-w/׮BR3)ʲ(!,׀| RuE8u*Ӷ/3()h<Ӥ2McJ6nT[ WfV_#r7V0N 0(s.'8/ HInşP^~9O}ugys9Wgⳤ/8#LTu<&C30<ͪ}'Hf*ʝ>X;a\9ZZ^xQ>sÎGCC,^x,z43KK>0lmZ62Bf\*F6({!߾2.Tq(dpV1 _ņ )iYCuIho;K5bz]pԫܷ|sH@=Xu>`DJCDSP6/GwslupᦵI–]5'oEG\%Wy,8BX淖3ZV5觅^& wEl] 1Wp-^(A$]Bb)ƑF b8 1buddRP27c|fbD"I 8 XA㧗<9N9TL`x$旋CR! O$_;:+^A#hV>xiZ c6[ aa1Us &S+5ǯ^{;=Q4q/F hxgVvCj^NZ IRӞ3f(/E;N3J aHB0դ$@(ѯkT`v4w3}Yj6'ϩ!:9|Q!!VawQ񞊻vԣA].ʭp3F4|ۚT0ʥյaOf?VGU]gVkye(_4 ^tmy08r( T%u#ł!dN{$=SpgpU/*SHl_jN ^C=zpp}9R'}ES҈r9nu'l% eZ:˽symH (.њs[t<ӿ0%w'*u5tLqnK:(;3O7GtCKM4%"t+颍gSolm ԏ!y{KpyhRnz5BH(Ka\m/9`N 1K2cZy/CF5@Х<28 vWBS8gjثj/q*+N3Sw6j#ϩ\ Tl©)Vh3YFYHYajPAc1,L9Xd&ax~ ee}QfO0ϔmXD?U{}B@6ߢ;rݿn]"*v A1u5cA^\:D¿LZ4ʔ& *|v#J.vٱzzq&TWj/ h7b̢SshsXga$wK- \k9!9@ВfQqs %&\VʢիZC2]ц:8$*[ȳlINiZ 'm؄,Y6 Tjn,UQLuY&~SA %SIMڀ 2L&"Ri7ãp hJIRBq|Xúbvo[;(, _hxkUhf)[;DEAG`!+ |~&w:Ϗ04̪$mߓrl<%6K %4Zޔ5Y²@+Vd&0$":d0;>ߎ ymkUmTcU,ʶU`a0vb .դJ e%#'2iPv%ff'ʂ5@5L/0-%(U[|:ѿ 􆍯83M }N1 [U\lb1Ɛn"0)0T={Ć|l{?kosz Hxb 47*KS-ړBp1ǖ-[ hhŀ|@)f̎jO9Ns{@)%=,4Kix-ВBx`bOatWǑ:~Q%aA0aE s?T5)Dym ĺWO:8)A|Gp$795 ys$<"%(0 2*2n&hd=BnTAءTAwCPqt,oJoHY,JIhjO_dHMz=cVx5/8T}݂(jVzxUOԚ+8>GDW3_yrO$56f6DS@S3xC)Зg<+ „zΘfDf,La7*C tT,ET+&!NEP*,#-碚9@ !@χ@/"Quc"c@F&BaXז(PӢ^CĈꧩMP*|בй⪮Y\ɴMVԨf3x!+*D[wabc `mM.Hձ3%ԈﹶU[64*v#Xiil8 l޺~q;uTВ}h9ot{`h}K8gIiz_ z0$R\w0Qęa><;PURUduL[ e}~|5ݷEݭ3@5ZL'.TOsd$=<Ӈb@seƓ cSaWѪF ju+7ERٌaX(~zd/^&@IX~2˪D>M)vb,«bZ!;dֆEF13qo]kU `C})b| x!XvѤ2 Yi2\OpЋ:dcWUzo ^k_/kH&`,hTdɲm)kKr+F*R֍j1[vj X!&lmJE$~Q~Ę>CLJjyGZ"]t4su9!Cxae@RA@1IO|Up٪\wj,"i 1 Qt[PIv]KF1K0J"HC2Mb:4qCIDL 4:g;69jX`aҽ*^QCg86Rhfp4-nɣ 2ra[VmoѱT;c92y ޭNu{w 喩Sއ<=ۇMm1:磇 3}r.frWAJ(+$q]M;H1Fd*`W`ӀPokZKc6yC藡Ӵ aÂ%Cv31K4}SQHnmh넧TꘜU(&&S4DY}X~=~ 4K ᜁ^I"~C;%PQo "zJĭΫ3uCyQ:ErɍLQ݈P,Lò~G^gЋ~rۄ6OBD$2CJCh'n,/MrTTw}:gx:v,_Af}8c;S}{)>rD*a*4>9<'d,Oպ32ۄ' Ad~+0r$@O䡽$M)K6USA2-\^鋶f .N+*f a Wbʼa{fVgts835C\(5;eA%kZ z5Kajٻ8ev YWff#lyX*Z,mKKDjM]<3AcpQt%OP*rT;*(9(b1vUYitb1Z&  bUۢjTh!y3Gwpxtt3fAGLGǗ9#BURXY ZEݛ\.CtE< a1=rt>ab)]4typ=t:wXW$r/xqhCu`74۰ X) &~g'}y=u!u?gb~4#Te|Q ?gUS};yä~vb1C)dIi;vP0#e\˒"EƧu`ĤڔԤLa/)pqEe,q,jYic9]IE= UgJDNEW5U6Q_U-NTx%Q^z.%m߹VGxi#at0."ȋ9 ufX3-٘Jj~J:XQݧn PUc !MJc~2YI@JlEm5F2tNf\[^zX6:3P6H^3"Eה$zt6LYoTbLJ,#$zq17{:¡ H"!pk.*F%Id5(QٍcK-Aʯ m*UQ:1yu{%|I))5(R\ZQ6Y,-! .@KB,0#4 <v87u ʁpU!%d2h`}Gv ;YJHTL3M#L>1u`C# 4t>>|a/yγq#EæёԴҔk=:2Oi&D>nKl8*m&8!oSV#*C,DM6C! VVҔfOڙlIhcLE*6 FaC Ta3 aTBı Pe" -HS.bѢ[[* +C `2 dHlҪZ`n9+jؖ%XVG(V,hcJ2\(8er09(Wt2@سFEiAij510H4T1ұPpQ r1(!ir˙Yn`-+@`-b*I˺LX UAcqc0XbTLhfH2h&\&#KM]P@QUjU!H[JPh2Lfʫm2Qcp̰nB2 Ns렻bLPAR;8_"͎˫kN85%:BHIqQR }?tQz:Brug~_jgtX }=h:pHav_̄3m܁%=؟#MCc!F7>2m,7LYbqQ  ~0 _㾺8;/ihJSu@މI5)]a q/Y,a~w'Swo >M$l{>lsѶ;m\8S a" *PzㇲMeU8^DJ ,5-Za\ =!1Z޵ZƸro{{ 9{y䬖9ƽV0ѾtʣϥAԘ lo9N'q:ƍt8s;XLFGCU丯l(|:m)Q 7$iƦPYEkKwba4eE%)jWg$LIbF4 qz.A4pR[- BA$>BH[qpn'NTD bG;7ťvnւa6̪ISGDWfJYX# y뱝ocP!KuV9Ybs[TyEoU@򪬛^хZL7@Ti ;g|/ :q:XLtHt:69ٮu SIDnɆHl!&%.n=}%Ztbzxz-(LxӵEt @^v[kF`C7=FC\l|!88) P/-4M;9CD\0RDmV lWOR5rkSUy@6,Cq6,@ڬT:vw9\(DllE[^{v5]_iZ0 uu.<* G<I ;Q; rs$IAH7IN${CKrv7_AthحB#dt ~yUk/K7}v0Ͽn+rH")%ߡRS7>LoNxN:M~Y8:ޛ9 oI BE#w+vtCU'Jd8dLj[0ndDfxnk~%uP"K.w=nv&#vb6PDRbRLД , p;'г I]"JPj=zto㾷ӂTr&4=B|Y9&G [ C{҈#}ň"]u㙕 p 6 q*cQW8(˗ӻv&q:QR͡*>_~7L=o/^,!_պrIώ>NOmj.YhTWxwZUk| slRw-uƦQI窣9CX†G!1n7iQr#DADHYSW;>! AQlQW;6]:`!fHr)$\ b$6`Z#(fa|e٬bA"JDL)lqTxE;|.]'͖~k38=Aj-Xri>pBgYZn)Uip!k TŒ E&x27BF% X6N9I"\O%BF6Y(2xO/.k5O}3ҵ[09szz?=`h;6!/REL;a/2˜mJ(肃6=I0<{alD^ ߈\?i =}"?7wR2@F Noőz:ѝiH4}cWgjݲG̻2v\p=pM"Y}]|Or*x tJ$$G&:B@$ӑQݡh0/4y9X"b` lo \>pk]M~czP9.H&o =3ȆYY7ۈň0MB҈`g۩~]Kur )i|979+t bpeBU4vuRV1Z^UEY/3{ѭ7||odG>w{jKE ;TaZH1t䯺8]ϻxC_k.2ZTP48Pӿ>eW1Kwe+oV#^h^M[){J6uͅ-=>oCc5҂D F55Y: ,4kԹn`lFnݕuHq Y )*[*~Ot:Fs`Xllν >8.*u enפr3S' rW%Bq$ذ &ʯk[ J(Brd'<98=HL 'jDhhSz7ώovu_0!)H`}wY@DY`TI|˨4 ,3pu I*7lBc 3nZʇ=B, m(&ă5+PNTg3AܣhDܥ4.I)]FH]s81@10c hQ)ӡpi(8㫤1IC^>'^}c°֌t` ΄:,YcvIE%`C!de/ '10LEĄ @hg ^yCCT16t8m>!c^hTuq["Tq TE3D%P n'fAY5ÀEyE=!U]X@uWX ЂXz'Sh  ]*b  _3 HQ>`dI=|(xIFJKg .7U֐xy1STM*&I-RJR_{H}B!UOE%>LC)rU P~6a5ʺJz-ĔY_xDjfm L4GRKTPa3HҤT~1=e=L$PU ۫ D;PѲԪE|Ex0J?T @4kaXeb!ZRq߄qAGiok ꜡YT1@c,֦AAf21#JX씊d-82*Z-P֭w%%p[3A%aW|Vf(D+^BӠ:>V#/[3/dq~kpt t 5iF `OR{Vֳߗ":jլЌXg֏%Q:bRT Y _! 9By{&h?A]y&MxQxcqΝ |~q%D41+!fp Q䈅q6rE*CͼQ n%eDIFuݷI{[%Ln]M5&@jr5+Lq%Zk&b(Vj@&BHs8Ч4ZYFōR<(H: @.JRQ{ӥ_E&gWXx #yy}È BP ⅺ(ۖ =sJ@ 3i+}E` ^E)a!GaRS$~5Ttk +tRc O{:]xW2GePz^e=oIO ߾wC͎ßOՁ~1;@I!Ï˯^vMwUP_|WtǪ֏m%3dP^=s_Cij5,8eϽΉ s VP:zGU A柙Np~ "/]|lf Zshf퐌YhkUhiTЈ'#dI .e,F" CCUq-SPu9$YLT f -VM2 Riu]y$]8#Lr X1hVaƹfZļ `& il!Cx㖃3 P[3gCH3 S@.Sdzbk|ޭ66^®o2DRSL8 A3cYΆHok r,R !T'(R'' RH4K((4 {T=mQm ~pX YdSt^5wTt8niK,i,Jq+)g)馆#l340p[{aãCY)Hh"7xf$ku%,|eOVŁ`zX9V(y+V:rKϘ su}GE~<Ҥ1;umޢEŜi¢UDۜTP* g?7[ގu^,!EQrd "{Cz`prww.;d4"2a'aE4l樐vh' N^Sڴ`C #$>÷܌3g#JD~p߿x6'H?ʪ ,M( Ouoyv6O~NSG*Y YU 7j"ZЙ[-Ixxa5;K ?dيa:^7Z,{J`D D]p!!FmdW~}oE9S)Jf 3[(!:jQH s*mӗ!QS# yAjUA ]+ج'P4qӿlz}dm&Ja2#7sm.$6è@{(t<ʂҨR ` LCM3Idl롛G>=8=88Dw'N|F5UlT+R bɈ텂mQۺ7uuw;I P̺wH:OC s!0ۼYIMT4%D#@/'ӇnY}A4v,w;r푵Z?ؿa8xcTY x@[8SO숆$J)/JV aZt s ڲ5dљaz,0'8Ld.\N<6CI94 &՛SZ&牵Y~'^`!/~>gD8 H _$?O_T~!~̘s峒۰՟|@$:B$N]X놀<3[e baEwVd)SwatZĨ5< yFbM$VXi&2Evq G,_;ikv8ŅfhlTZ"E7<@hK~-3oaNfI==Szj2aSDdRmn)7cHŔlM6$IGGD6=LW2R©"dK`SȨ(*AED/љȲL"3x\mܘ ظe75W FauCSZ0UVs6B'H2f"tr{5oIF4㤴陟kSwσܩ7"\$?}!'qBJ߸Z\0.A=?S}-}ΞU^zMx41 fJ5J<,M:T2R% 0rJS $e'0DCRdP #T4mɆA-Y)s,IC,I S+y6xC]N?~?xL}3taqu}=$j:Ri0?`\$y_3}f)2" B|5d?;F]7þ/W2b bڒ UGQ,"Rx/61$}i뾘zdPXu`~TF[DX*2ղU˙-”V,-%+I1Oj4(5%X9?ɡ,f`#6:MILUl@LIŵ{`(3;voj hŅ(rQh? Oo~fv݈[f?~̦5!b1]]4:6W0rm$(!rwwvd1@xpe)@fd "@6qos ) S%)D@K8}F*zov+(@@# ;ީO!WD5‚ǐ6M(H ce(ua#{n bUY5,ZrF@pd6.]3,fq4w]C/Ƚ'G9gitF5>T!J$bLIB E@rCn$FRV}g٢pj0J=PJ[B ̟ ><_}{I f`ZQem5ٲ}$8@v7ġim7Xq&c{7TcxJao0~@G SQV˜CoWJA͝ZB A# qd5_ n2]>P\ ttU~PO$~HvNK*ꆂ ֥J 2hd=}=O餓meJ6R]H r_Bp650fҳqT%DESJ@Pd63R_Oˡ)!b&\UX P@jpiK$K:DX^CTVr)|ss.{1W3s33.h{+[;j ywhƭ9sԭV3cm{Ji_2dm!tΊc ֑ܡJڸe?&J?]pM⛞VWa13a_i_]4yd_w 9-t֑#iS԰'~J߱ @1̕"ED=ųѱ~BUY['Ry!ɉK|s^8"|HgsmKەR-"(jOSf"Yɠ^Xtd¬)x0d{lN{"y(c"jC{;kSq8?V Z#2^mV{B{5tgWl/䤢/2q j˅H~ FAEn-䁳~ c;U2+xdOp?RlYf&pˬlw,lQgN1oݜ-(}bk@$&'A9ҭSV4} qK2 'n(ތ://8n8Ohȱ:.x'Qὸ-8@g\5?9\L54{YlgKlJ1;SY.jrkyCMu͝6D _A*y -`k@eޱ)<%uIαj ½:vJ(f"9349gJ#2B+#'I6}6ǝfW݉K SGgy4\e%8U ym2*j;?FP_mOʒ}Xth485CΣyR&i._^|CK@};B*qçBG>Vx{&?<<5`n 6{ג<</8fW6^yLϺ?|VeCǼcK( qD\76}`v־8;Ƈg[RK-͸PgЁN*j*ٌE* X?O{$Tb.e/ݵCN|w+pI'6ޥ_٥aU'}NEn}&j)<*P-ez )5L=qX?16I:)aUx&su3cM'Xkn!$Nof>?De(c4O43$E陯u  __+~Wo'Xg 63uuޣ )y?YqܩҖ-WTYO>E#suqц΢"d-4SDJOB3)l "PAj\;>LdH53"kO&]OF)ܫǖ|*HH9*EEjU^VK7 =ehˡ ^ഒ.psn߽4l߫ eOؔmV+,ﵜ׬5dW.T(fec91{<2fLzn#-8(u5,\2~YA|#G{A0ɓ4icJ<]` , ĺ3WqUm1S1˓G_b _ ;_PbL[bÿUnt eϧ),žTrx/m$no~ytςr-=5"󥶠eduv$j$"&9A ϞhN+NZ:9q4 {3o`OsD/!o?1S$P$.L_s p(OSeϖXOʌ,So{/N^*R[[0 gAы|/eKl{E,fK!aEv 0% i:ua)`~o|f[ˡ퐱8g9q(tEghi*f׾_$ٿ` )k?9jM/NkgZYxjpˈ YatD䈏{ q]4g&{BR_pqhӰGdRt-ks99pi&ۯT45t-XU(岞FDٰZQ7Upb1H&k^yߍ#[١Tww+n3(~ڇ[2r`i>Wj4mTnDnlTb w"N(#!¤8bD#rw!:ca[ވwZ6,6%xT'H^}wACf'/9ף&&o}gfXGJcH?_$=p \{viv4u8T;Ap3b?<ݼP58">6>GwFP%X sgzxc/ z6\ >]>r鴑8Uw0j5 |̭p/܈m -СW{Akш=]Ҙ:Vh\gwL7SM T(ĹVa]q42cmwղεo-ɪF]hpW>еm,jӺE汘Ghabh fxɀǣ|A/&o˃ XgoVуFbUrO颳v^jm}oa!Y4oEwcVOVU|ɒxkO.1Ţku=,:{`1o7Ц+e/O%>ojto\eJn&[h7{j%npIkObh]mL+|j$_~zġAi[NB15weNd4uu[n~xH#rUṃC-̧[{z0ntCiEh)$ǡ6pҷzã&g-PQlcw7Kiq{Щ`[fwg~ >9R%$v7F?Zo Zk,  &S>>&W]U~=]ݗjYv ۘtGNc ʪBnΞ۪LCd f/\Ͽc8 e >"Wm kBstMGI@VG.h(>pz䐽|'ҵ%m]wGȖ`m~$SPM%FքvP͗DA ϭ±v?7,Ad^^6_&kۜj-V[q[LpsҦA.KF7')LDΑn>T|'&:$Nv<'oyLƯoW֕v) %!c8v;ɬf;\m:< VЖ^O6ήYX] ˦v]h9xt*1:iu gy~2"L|}Q&ԅvBD`^텴R,C[oֆۯ/q 4|{ G[g2~'=]P͛nSt'\kP$~VZי "L(7!e=1s#20vd9(o+wtr=9Hxy$;6ԃtӽe~go}m*xwp7Wҽe~ag@ֻ0KtGo ),~sic>YMW`J=R~?N"dx,\5,~q>-iu/OLMVh&#%v\\Uů#WjђS Sk.SoK/h攒#t5u*TKZ=B?'9sA8rGvm$: _*b .:~ZG };%ЮX@ P'<9KiǠ l/6b遳EgaRRVmg]ݣv rEل,5CnV"(%"3f]o'uWmñN?}lWg.$7OȟzAG_BÔfyOYc2่ˍZ}ljAՑ GbuV x2 )6JpHRC]Yipiie$9 p6r*y**t3R=ߺ;ےͮ<:p h8u:2]6A5su]ۊV"7\Lyņj85y g\u+97yUQke7ck_墶(:k 1{z )Xsno eȿ4"aG\BN4voB\ک+zr# ѠmՌx)t0X¬na8;e^ G"#I ?T6<̳΍X;o * S$5(T]?)̓肩ǰVt?z$vp,Ca`bN\5:j]."50ɰ͉.i @9bJ>`eA~1-;Z /@[:YThu cq"wa\;y'_y,)M9N(n0Mv*"*-"ͷ8qݱqk?::h)UG!K} E=JL@WG~N_O5>.?KS=b:@#?|m˸dG-[ F!⹐TDFn\3teIu xO@D_qpIpTqUU_&7ŪFj9wWP{ZE [[rpKc%90>* T @:(']4H>m ZqaE9ii\0*9: h 0iENJp]80G*APV tLI#*IˉTQ9ALtc*଩HT.:.N| ZW.GAZʩ0@L+Y*9Nr)EepB*-g).&hBˉf`% G d3{ 䊡CY@E` sm)D4m*| sD#8{{1֘Π6P(M>i0eUF9!*N}PC>@!=C'NP;w%ULN/ X+Z!)UX¼JAN 8-5HEjU^H{\P0R;- H)Klx­F@€ҀT7UV@7WGbv륺.wM MtI6{B4 PRx;!ͤ AU!P,6=56xxh<%<*>?8U!CAGM*!^Jڨ00CB-/l@,z*$0>#Dr`H mZ +`GFAk.|Dj<9"\T)yN`]BG{% {Dj5]42< wV#$b;YspQp1acYqSrZYtH ZA)HpH1nE EoKr)pxk)qk '1*NE dYͅӃi߼эHQ,{X>RJ,MFA!KD5_NKA(KK<$¦9Al sPFThuţc*p,`D)0JV;#4xZ .Ei`pS &N% QpY2¸8#U"2Rp@N020**Ȟ f@Qƶy Ō"M\8=<3(MWM z"y ظbl+q,G64ʢ#9+Y(g51Cгƫڧ!`ʒ8*vCllP!̲"& -&0T0БiU؜t@Ǩ8RLէ@L^ <đ™sT1Ar Y9`x QtkxmSpV5Y#~t--XЍl6Ӑ}o{qP팉alʼXj9cwiD!gR\rʊ'^6/R\|=s1?t"RK/zqVs^ώro+9N{ W<robQ5S/^ZU(E*:P$YtgEBz,)48`_?ɜl19r mDX dj,z~1C_GtT8%~-\k\"׼H\DREG]!^9s.J-%*jDi*2""_.!|<[\Iyc|e}E8dY>5;",zt+ߔ;хz~`qL"& 6dʀ ॐ<)QGdԸc&NP0igƩW∮J'ҌnU)N﯒wJ|2AHz-q0i׀DY`XJkIȔ`%iPV^K:V:`JN_8ۚ1Z(dEbǝIXwupI#2HlU200Ur+}3s1&Dyz9ڜ;njOJ߸zOC?H'I%\ayMV̵a!O IYBtTe-XDIH頀V_ˉNӚɮ/Dc L si>)%NSW he'9*p*BKKIX< TZ|"m&g:O s}eڵI^z0ZUJs_-̰OiVo0ھw9?8xe+"X{Y 1€I'|BJ8~햾wMo3ɳ<&-i]G%{m3(%ss%@TCoi"|*mGVʿH5'7(Q=*J 缆R'&+& |s*dܵ}[bQf`Il{cY۟*3!dV=tAʰKm,weCK {X(wV@@G#\V{/ۯn bvL3aDr"^ՓRId'}Cv@#H1oYZW:D{F}$n F6v"*J6B((ҪƦ5fBT|hz b)cK #=p3,9loM|yqr{TX3~y(_.wn tyQ͜xt}m1͞+o,4Y&%U9N9 o (Hzh=!*zӑW `df!3DKpX%"8*e'-Y0]sX?,˅If#m`u\Ae囪OyvLo{Ac#FUͮJ w) t?n* /`\8-j+rYÒDx䈜w؊Ԭ#~̜6tL<0̴~X]*TmgVׁdY,W _0<(?=:I g۳O͒[6ת?E~ |K==Y1.5u Uݼߓf^-0 Oo3I10 :VJ4) [ALW?5z09qo@[ҧdtңΨ#ܞ b ӨB:GoQ|2hlFUBtuPĂPȑvj_Sg. n8=(IkG{LfEB@RCr*IK4vO<0 f5ZEE@ vS"AEO$/I% ;LlW'L\B$-_vmT4boq~ʀ\ {4JIiXZ}$bc>Ő@΁[GGhD>?M"-c(KT72urՍϘGalTbl,SP⾞6%WʶHUcHdKyo$i *2%2pzU(ppUi(2uhut(l7 B~xohG/ fseW2; K^>lfY}[j'E<*"n&ۨJa-cM2n>, q7֡[u\ Mu&3{ww_JRx`QNa e!=݂_[w뺪B wyR✔v5V]Mı(XI򋐈rNCc c3q_K!^R~OmKzp<[97x3qX"M͑hs#<2\szN6ք'$y1't:Pʤ~M~/lшт ։{ɠoJ , Hn:A/K1~j}i(]_$֜ogJu홀;תˠH%O*CDHe{~1枿̢,Wcii-LV!F+h9(2VCR^ U.a3e R=6usvq*e펖#HHm2cFLxpGhhiOW Wރ]_$6۟D5J(,7}/wfmbc"K~NdqA## ЦV3a\t,Ml1H!*4Dj@9],T"<|fD _CUb^{J/U,QFgxXeImwTh)l)J()M"ijqjr)$ ?Kǁy~s?*)鳐:\fPRyDE*<TQ{Ġgo+xq`i+,=1On]\rsaV,VXQ9"CLjAy L>HFFb(t0VS .NSa &'Gg\1{]{|4׎$r9k}|"ɷ|v+DhCjOեӕu-?S&!E(ZLnV0w`qV8״Yi7=Էz.Ni~w]g>'R_GG1i 6LOh޴Vhgo. 8"*l`VDIyk4㿸bئQ G)V[+hη<nPKZ,TpCfD")mzFE|3Uѿy-(._ώ15 .Qߡˠ1`"_\Ŀ'to6;K [JWȯ#sjZq+jrnTN,B G%Œ vK?U)?It#CO+|hq c]T漭hPw+$j:e)2ݢJa4 \5҅.uV7l,qsUc\2b5J"9aBpԇ`f\&}T1o&T/:ȟBՇZ$`?8=cKۖSGw3rBA{ֲY,9[c 6i;26^)&deח/2M02?r9Ufs܏ ^|T+w $c%g3Z@"aرM$]zLg۰ɋk+_{NtlA/ r6#vI7pt\1Зn_Kl7l(tXH]O?.:o:Pk`1^7W6y 8֤5K>mpɱGR:a' \l$lѥH>|8ն l t&2D]1ܯ=lJ8ݻ7D xp=ȣS8\)LrS;m* {΀i7Y"Wvs省\н kt*jc_A0Ḷ-0Y=sɼ&ƞQS cݴ">gma=OnKM?y?;]SKKU.; 819bkB._#LR$s/sokytX7kHxZ_N2u|v"~A[V w73UW|`g4ֲC͛cnv:rm;+΄66~$} zE `-=8pO i }OEpi{mm.)Ů~s3w@;MU͂S,k y|mYܦ<*&ꗯSZqEL~!DlaլWʨv؎Wa_wfƘ)ٮSs'bIɽ{¨5D=Zg.YxI`|Ǿ'$c AN T us=6<U؟M͸]ўZ1MW j-IPX^̏#4">?{6=pG:OhiOŌ(=|Us$9o1,*J<`濾אS$"lUl3U쁃$BFZODȏ/_D>_ h  \S~n)VgO[3wCâyu/xHk kn21㺻2O EoGXZ哣Y-OKetሤAFM[?d':B`ÐGBy:=7cMyA5)a5>n:|Z!NXk0>1+M>L1:x]\$g]O;koYB^:^_oO&Pl4#0.hI8b|Zk#s_,@ӿ:&T'`kubpKZ륮ɇwLM?E r~,֨?K fq/{Oֿ+ׄM**ڨ)T=Me195uZbƷQ o ̊}v kwJT`VUX;[ s8`ep͕M>EM9;Gw~"s3` NlW'76uȨ98Q| ɀ_ۄ+c o>!}SLo}D:_Eȱ4+WqE%PiDr]mA׾1mprB)z+&~ja c!xvE H b uQxs MebQ'輇2 &ir(3 &L&rXͽK؊Hv1V򩚡("o(Ũ=z'q `P0THf#2Noh,N(o.GX);f7О`z ǣwͣvMgdb75*35^nR۴9[-i:hWq=hJMsJά*n5 Y !9{↲m3leh.Z?D7^U{њuN5~.to/'E ą ᥍pDXk̮`JkmO+d.q0F;Qo ip4\گŞ~3EG3逯so>蕲>]zs $ b$94V9uc45qXdP4L>NDP2*&Xrb^:fTs(qKl rȏ}]EH>7ڋX>йcFB0*T(̖:Evn\ liύOyTUUUUUUUUU4UUUUEUUUUUUUUUU5UUUUUTDEAU1UVY aԢu=ar)(eG%*_貮p0 LHMX~,w]C+c<;$j<Xq' `7flF}Qd?Ehz!"`á*fk$g?b"R/wTZ{}a>RH1@p/0Z#LUTIFO%%bbb\#2eY$s0" %LNpEOAbE? N">W{~W,O4UIRs_5QAj-f6=DMy#h)"<[)P4D J#!X9/=QGkt8sF\v)w]&DE_޽fy2MQ{K3v+Φ'#d=Ss3ìAM8PhS(p:CKݧϿ9çr+tB l^[+&%Lv7ld BߊqktF ;5)[JH0cfhbEkjL.Þ o]'w("nd1|=%EnkV3 :GBZÿ[\$eX T*TUS'\i"}~̄Q:P*HGJ0؊XD}GS kYy~qd{0[)V@kwIXD!9mqk=\ T} $^WFkO7i=šh+N!%t^;&ml~=e N XV7 |wH}dgߡ+?S(x Y@PS^]% j0 @Le>I0ow2wW}n8GӐʬS=.PYiK_i>fñՍN=nDw~G;/dBK&v.ŴѷWEM :7vB7rѰxxꭿO&s{㣵>Y*g e!AOL(T)^w,/:qu񷱆17 'io-;p$! $z (8 suuj>(dyCj3,g٢2Gf>0P(`&Z6Tný3DSW`L5RWwxD>lBۓV(y|f&HD,VT5#І2HF2ɑ-}ZM l@ ^BJ c,IB{Ƈ4F҈ EQTUWl|Rd7OYX < 74`/RH Nmz+ ;e} J C7QtN| mύcxXG>ٔI5xr\qX|i8ɓ,ުG8*Ajd2m .pǯNDvvk Ȯ<  P[!KhgʈwMdvFZ($/ w?Xq0^s&uTWN_޹J)``WJ`Ӆo~РfP¨[jc26kARuDELζ|.ў/?DokpsHde$&! Ïp4*<{MxBe-`{6*e`KRp/o$*pPB|5y}eߎlAePX?2qg̪܃`Y7 78?gA io89"'u-I/M]:&UzkNB7j޹1oMx$:|u&c^(s M^>+?|>hwMt'^_|fBHII1 75[?y$&.Y@z7@nm^xA)qJ%NS5]5SZq 2m)Vse7_SU^-ȧ:S.wNrd[gHeO?ml6}m-lP83tc^-]g鵢%QDzQ˨ۜ=Gzkyͧ;ug ɘ5~< h.pŹ$M~*V6><=HDJjG)ekKr{p~aWbAQg(F 38 EY ŻpZ Z C{/*[tYUYd+UR|L!\ɖrX_=$;?T.R~ pzȒ2};FN zsaG+Cx0CpD{{jjf7NeIH֕:TԦ;{wwtymC C EpPwqeJl収 ם0j̵^|7njC~lhp.HQiιN{vMKbu:6{gYҌ"9P)ʱM!)=aĥ51:C@\Ӓ`o&dSh/( B5Lwc4 M5Ǣ;`Skpϱ|n6%w`mxcr*.%*ZO=7|;"~Lr|)q1്Ob ! j XcyF0)8BUEPo j:N0*A*%h!202[8hbi'*k m3$qpX5vq# (8A\i֙ƃU5f8AQ_k0xGs&#h3#"~j(=]^τb^`Q=)M$" Aݸ?LO}8ͦK^M с^=M+q@ځhdhX/K Oy4;lilkm~ T7^9?4RANr~z~>8ݎ#.1)\0{ QݗYr!9]7qLL&=Aʳ/S¢SR }Qu;9C:",Txx*`4/uBŢJ dc ͿY -Y2 MU!2PZ&&kp 2>wac/(7+PR4>&Q qΰL ':kAm2 :D*sdp!C)pP,MƢ@D7sLAA$C>Rc@cXP) ų7j*/kLï>T SE7pR) * =mxvA~Ϡİi?͗%QDBwtw]?kD{zo{Y&|(؞+_4Z/sds,F!I>hzL m-C~.T Yx2*U~2$\!i‰KC,^#-1cKultD%QfRM~+FU"et"+Rg$?d#;;q.xB|@XupO61U,op RR~1SX_lar<ඥ{U~ L.4+rivaA9yB/\il<x9gJLT0( fnrJ<ݥMK0! ~7k?ۜN/d{Ļ tmMӆN>m[}a 7> 0P@l|,J$ KEb,'ۻS* dMoKYW |K&%DMB\HʠfMާl~LdaC!뀆Ik {J UFT&ݽX5q'ޏ+l={e6)U8mfH\ʜ6T (ǣ Ac]AB>5um' kx L(t}^kԈ?_)<iq7jMsݝHV?nvU ײ ʽ?IӪ_/޺tf5m zS;I¼SLS! !*RXzWx9<?J=r:4UGAsi)ttsT (G9^8K+QziȩH&5omNٞ7C^âWEC{0$Cu`ȊZ0j5>:sOLS3*$*nJde ?2bk  (r *k2 vM16)!^7 a&.0)݉PE(:;Ӿs@@ SD$ hk$UBL M PB)<:q;vU@h|\T={a>=d\b Vc *sM)+UÍ00&z9<`E(##!wN;6&.=/@]Rl*" ŋ!䇳(&)b2]mR`T< E6,BNYd/^[A=NOvt=l ܔ3gmQpSo|oN{R\B%nA9 K#Po6rNJt:#o`'z ,J< 7'<=l|Z_p4U`W)>@Vsp=z}?a!QeiS̏@R7-)] \)$G7m3}1AUX{oC>W׿k+h8'd7P'J̘cf6 1"%DCLdd ȭh">1y*`crHҧ /թ85cOG\-!S4A 32΅aHD׃bH_Øp|*b*I@sif}*QA˂Ƕj}l <b>@rl Ϭq‶G^1"ǀϼQ<ʆ 2tͼbT­c`-܉~>֪2RdBMR̳.;HOSܷlo"59<Ⱦ;aE`ؘ|F4Nȹd7Kv~b˕9E $;s;+kih9LD(? r*֓#D>S\k{!#m-9a:2}zь0o ܋.z$WCo_n/a}qԴםK<,":(!8N\n|W:RUE{5`QaK1I4,KFS5@+t>j=& : qBM?{}TXJeqD #>i:s  Me[c jH݆/oc&7Z=fa?x[m7꼟 Z ¼;Y|ڛ)dCƸc7<CQX߅&aiàZiI 2r;[efn=;.dkDT BLD=򍗷,y$BG=s_>G-)88hnٞs;ת1..KnQ~Q-Wy'R=x D/zA f-֩C_[c3ԯnfط/c3ٕ ŦWnwxzDc\yc3OF{ _Wf91f,xX/B'-1y==^8{o'M}C+G]_p9:L$slF"r } ٓ$c'JުNO# g):K k&/UmX2<()Jҽ;Εzt\ds< elpn`_\BN^97\6򳴸Yv맻R ~n |Xk5:r&k@"y{bI䋱}%7 +^vS|8wD;t{٬zh9"$!\ID ȓ/=AT2\OkP)/ VsNaʮE)"p쵝ȭ;o,E|=T!/%Q j#umX='X=FN7d v@SfYN03|E3m-ݫ#Ih^SQdڠ$(2sD~qskNBd(gN?"ׂeg un꾮7`kzyO?HHnYs _ӄ?4[ JLOd -5-ƻR)GVҜ5%UTQSi$BtADum~ jliS+܋BI$!="XQ&"~y8cx>. 56W@vutȖ'7:Y*λAVF3(u(@LYK@9>II$I$I4H0g6wVӘ 4$H_}BiW|~Bo\Y-rXm27҈p9{9 ᐾXK#cj*5>+ãtFEO6(Y ^vŕhR~toʻW7e[T r* g#\$rJl3AȦ$p9Ts Uؒ *ztaY`f:5cj&$g$D,[љy2Ѡy336V]9^qXUnJVL@!#wbI -?jhq Mqpv ]pvpӣESW8u sBx1ɬkfxiXR='~)b'[iF9u9f[gcfa/DNdn>u ߫rxuxm#lr\/Yųۢn`Sԥ;LǹO甆lѬx҉ϴKfW/oAа=!~L 2oH|v_o+^j𙦥_c:3&^.le{?FQ7"igiO9>KtS>K`\SбHұdej\7X t_j휱 ɴQtq[dZHiiND7[Ww =jkAVv1/+=eR| ]M6S[NLG9/w zy5}C7hvR_qyOm#*If=7BO[3ə ws[JjHФu$x^G&^ѕ<8飍.m~ӟ"lnU'I$z/?VtCgEl*׾Ct++#w.{*c \/SEqF @+=df=(4B,[1Or#(Tp(זZ J^hYg8Ismmf;m#9=?g#m2 ?6|FC;GH#䟝ݵMD>ۉ z9+ھaxV5 ^xBKW97B!nD'U;|4O9@*|% Ŷ6rV=knWc:1o Rvb.zCa5jF>5ŴgGKYV&SXNpԎيb3>3c5Y(>LV<{o^E9x bs~=>C]#oF|tޚ][LLOۑ*?a<=˭L1OOZ%whp٘3Z̲dK+Hz#Dӭ=٫K20W5)!Ya\u*fR^d'ߜ9lE=;BD$J(q dMѷ&# 8(i q=J-f()u엻27dž|¦f| 򎑳'5F.;QL=Gܭ)AYT,ރ4ĝ&cȖY]**yB@1hj}m6oզN*6PB_Թnv*Gy1T+ zn}T3YGc٧ .t0'hϰH@(kzMu;|΂uq%>:+(m첨>Hǭۭz= ƝAYe4UH߯tr!w ׂ>:+9ew-uWʤ`Ϡ|%^b7m/ȅʈk\ VDeZN&M/7jqo9.y+zw$͎51OlwWFP-:ZrO6.cp$O<1$}elԫ?k=;4G9]*gڕW0ꡛuo^K@Z[ t;̀%~n.kCZD^-0H@,q~Z==((($%pBB #F668rz|,qdȐ3p,B"b ".N~ߖ[ (g; }gZ,LdHYGR)$U`tbWPs4^\K[h`  p5/(/2}%ܖ لr^ u=;HB=Ar|EĆ}P)j 4>L:H $PLO1~-n}p_} d_n&L$48R#%_Z)f<8`{H_vE9 t ۱S-j${ܼtDa=xiFwT+xɒCP _Ƕ7mcU|NW{ϒ0OBL$&@nkZ&FX#vWp22xX-޿`w\q9M겆DS0È |vnpǙVL֛R}5}hz[|^ i~Ҵmz@^+~e--6  i1lqCJ[C3 PvMU`+tU.UX+A|mhz5N8wp ԼyP(xr!(T맕r&7֬3UHKT_:u%MaG8uw@9%`NX.f|EEk0YKW9xJBDz-D3 Qץᮙ% %UȖI9c7TI}R7O;!5p([ ( ^\L9|S~n<\g[]yqǴrr^y7cEلerړ1d}g0Qz4rh65U|#tG65b{nx|{#Gt*y|F^$]Q"Ek)0+~@t'd~m'dO39xdz o61LѧX);1ՖVeR-xI1gPD$:܈J=RL| !J;m*AHJ-_29$1ۙ5:2j> DIxuƆ 4g\;pPhע<. yVw F$&dHI& swa2 6Y,;٫* fI|eů9WU" BI;_ycd/ȵ2ὭeIAP2H}8sMh*C;Qf2:g/st_o]nsFs%g魮-~?^o WHKo;LxCEƷw߽v$M71GaiPqÌ7;I&K;[xL 3Euö7E5іZ=V=QJx9R ܏ā2FlЇ@ݝ94u[mЪ߂NQQszo1:mr3g͚iEߢ-귿YeG{__ &:x(?9dh_^OoV5`/tN| 9ef>*\%#E=Ll3=10|0x= xYe%34(h]dYƮ $J[ΔVZ5p{+>^=33[ˣz4%_IHf"ؕu1d~7).vB+h<'i׆q]ʀ-} }1:W *K3McV:X)$Jt7Ws(J^\j6,n8tw]\*ڳV&I$j!?~ycIi{Z3;9JtR?AvYy)1JI .Wq?QBγZF6Hei%^\nAYEVT2ٱe BqN6FG>4_/*#*ȁ̤n?&EuHMcذzWWs^ގ.L#2 %V{v![71򊲦h+& %2 |"oBI1?$ J9ٵIDu v$y3rkyMq?K+P_y56if,c!5Z7oG|K^zէ1nؼrWDTTg:UQT]]YA~Y%Հvpk|e9ݝzaq0T8Fԁho3&k#L q^2`W c5x w'*POʉlvHQ=5mywu/)z(CQQfÏ{CR{HZ/|_;obRBZ5X3mK! Jr7viy3%xyh.=V)-Ϛiq<M#^/|%Y4ۃ\Kx:w)cv91¸lc| ia Q, 9.Ż,Rh%SVjozYʽ/Ԃ<>8o 7ir).jȶ\j-)}QG͇%Е^wش}TpƦ 5v?$,6/G'g}d$=_g<=/FpvIuҎ\ʻ{Q{S6y?Z.?j9G޺՛6blA|ϱoɸ尋sfZ何\+xD~Gዄ=ϯEʔGH>˟7+^?jߊA]DzBlpٷC`m ԣxjrܺUϐ&h0k ld^q!ܒW?{ ^x\"S^<% R[{Y<{kI A/aɳ=~w[:j!pQj+EMl$0  6F;0%S "4)]f~Tx':+C4p@R\Uet>fP'ի~*U`\9[UVg;\2_k# s0TǎOl N1(Lm1͡Wvi;>s|ߒp%dtb 3I;jrG^ ܶTjFU2.B2-fV*:'!634wcןۿ>YG8<1qjv*L㦤!gl:ZQ$eW,c8㜎_ՙ^n+Q!J2Q[Y{K{zjfc3|_FOs,Yx+RirM&:YЯΦF{A^3k1cp |v2)v"+(i_sI_eLʸtfk> !ʦAQsae`wMG!›zݧُB^z(5V1]-6ېX߱"1-5 al?Ur+. τ\|y( <wql@fHH!%e'|1]h~+Ez*D!g0GY-E׵nņbxH/N*}0{R- w_+5aPQCfDV/}E-])Ҳ1zzsʤ-_3XI_g<{ڨ]#>^$T,JnHɗ{`G@ql'Tc]x-0δR$^l3Y ʈNAF mIB?,}1*{@;l۲}v=u݅DYߴ(UT1K g{03Xo?FXd) K8ϳ7, * cf\"'#W f9.W uf TrMip[#+1֭mSf*Z'Լٸ9{$&CA*u)b d!tA&Wk) b֋):A_N({HVԨo9fIC&TU^Ŭ%E?NSe^G:C lwCs\0~,oe0]z]EPTvYb*(}~.s]Y\&agفk!} {_+Y~ zW(^~ką,\<7GM4ʬANJ ))ǛNs<` ocl{tWL! DUj0:<4Hm6Hc> &i`&mG{[٧I,<9_֝Ў;T׻LӞҮ8.S<8,[hQI~ y~3\!46ؔ6(xKLƆ@5 ?_iL&ڟۢʹM/{Smk8{Ѱ0CHy.7!!I+Qjw袊JZ ~|SmE@c'Kn8z}ELR2K(v2eid-ﰘ iJtjlf`qv!Rٯ'ƌjr4Z뱦UokY 4{H\`@6*4^Zld7wjhq~ű5HtMslr[܌;ܹ#eچ5i;TΞ&GreguNS_7=ۻ)C(zoҩkIGd/-{ůoE7cK!k}r%xf#Q;-$3 j +6bog=5mV.O_njvZ{+yߪM_.)cD02MfĔe|فY, >h˹mYPVOR hPGLs,|2kq]HÖ*d"HڪWf~Oh ~b(̢nx7I irYeSH{Jթўc|X?C}%3&79\vMȗ˟N5yTؚ}9 ,1VTfqΎ3Q2⸟/%sM&]OVQa=umm T~"|5Ld֑0a&?tY>FF.irgCeVLUy8#WػYHn+7ƫ5pͥvMQ ?39^o)κd򖝾wvTwѵjY6XfY.]Vf' bߛ-MD*)XH&%byߡO`ۯ`,}h-b߯rߥVD_GΌ~𝈽`Rx !4C,x/-KnON|-wF/roWC Wj8_*9|ijn8rx%/N>Gj%B`0xǥ?Lt$eXL})yCI/ڰ/˷uw# j'GX*A-W%% #xaQJ)6Qa(Q]yHx6-N雺;nWH:=*v]u9iqsϿcCG<%`rlۻbs~υI4E.ƕ;z+oW } {B:Q)xvScҏ7ǎFE큠(X(k+kNv`^exgSPTߦ ;V)jNr;yEњI!2IC30x!ӵfp^gIX}/!~Wo6DYɈ~X1qB%Yr-$b˳=Y?"ߢ5CbH1I,q[LءNnZ`\P:c PBmiY|[FܾhͶ3uvvǕpl׈ ˊc(DPlFa%L}ZVb1%o1ïD7]$Z>k77(ܿT$>Toh,M9@vY%ˍ7=}[ jPZ*^c'C*ɖeӦיQN6OS*/_/ : ޘ&! 7cNCk(Rp FȊ^ϣoVzxZqp[)OtJGnL&tIݷ^p6 :RjSmnE4] :$i7F7L^|O[;d{5K1z\3kA+R% A+@AJ$nJB<4k J0:V c 'DQ6ap/aT߹VǓ>27kͅLctdLҴao,[s,!3LB %B ]wYS[W\B,ֲ_wʧB†3=Up0sSNɔm+M$!.T\JQDŖN3߲:3/(^E@hcCtAKo#$1;&ax!Ƞ2hOɤb"db@N<$ 80fq'S E]eВ;Dgsdg8S;,Z(${L8À JT,e,Z`7L/+5H!: }<T9=)4# ?͝ON-bhC6Ŝ:+,z (6L 3I%ܚw`s IjFG$$9/j ,%]2Nn |Kn_JL @^FENJg`){}W ܗDE*!(XbD>Nd;vrȞ*f8|RB4GBxy0ylYT3zhY!D.H}CxVY~Kӷ mb%=pC S%.F#r~oMg~|]2X Ȋia*Wic.VY(@4YA/ǽ2|zM' LZ:HgˌZ Sm};t{13bLlj~3鋟]Bx>vzRq<"RNa=K|R(wឪL`Qخxd*3-Ģ!f\~H;R|pF員;Ofc'M%A{Bh3,;8¦IkOO뷧3< )MJ0XJI~kѤ<C )W#%v(>;B#0WKB@~ lYgXW.cDNq:qQ_.x">N]qmPmvF{O BnPk|zqnO52 t|mLW68ߚJ 0TWɇ % ~FhvLE# Zdw7O#t*\5j[Z{ 9I2d%~J ̴am޳`H303Q«[/`K,BBc6;4QLLhe4US|}o'̹|oVŧ4﯅eUnuG;CNgNC"Vqjp~O4zt4_yD.f sKt6f4|UۿL~UUUU֮5aW:6krsz\OumN.p[ ؝ o=xU?|!-OA"C旋TECϰĿ8i!3|&kZ}}=1zv}ӾK-+O1s֩q}WDm_.ebu.zP:xo;en-Vl|m]"̫ƷؘuWԊ&.[MI[es&EN@=6'nNG#5#rҰkZn9{s~6bW&Q;I,np-PYarV˧Iz3m,r׈X㉵bݣV쎼TtVams~f|Mx#ٟ( #9[a˨ ۿSlSmy|*v<[C"гw׶1Gl> }΋}Uk-miզͶ<9rUicl&fdV}\?[96u+YK ݄ S+^O״msFxgK+)tm+:u[v J;[sml0ojjD#u$ӛ.D,]8].Z_W38SNgަtcOTW;ax5+6ۢԐ(ɢ6݊mG;ϊ0H]Mm%b77X76'Nf߻o=z+|jvKf g^YU2^2$ǎ' )tSG@-+l`.ks-lnyV#U6]>.8B ?bq&i[bxk8&;oL5UD菳!&8]ؿzSizS<"kxш/O+_u[ N#Lok;kSjZ]k$}vhu&KlQ!YI{UTlbU5Sx?zr&| [G9FI>QShgXq _Ê!%iѷ _Q : -L"@8z#`mYáDdfLG}[}g%Qc ]gH1|"?_C,.-k}5tjjpv@cjđQ&oH[ D3VNY`w褋$ % o;t9IIXIql M&'Dqк$tlᦩgsPЧUBTLŀh4MYDFz Tpf.rN8䄽^*q^9V-9=yhf.x:6]q#!:~MUuX :;xRm1(IYI8Q~鞙,$fCctVS塦^ HQ.h6if g іUϴ&fA@82PrKw|(u;t*#/fd64DBY-~n]#gkJĩ7zpE\ih(s,'2eIV IG>5iu(P+=8Èd(f+!GVעmrΕZ/7%^H'=n[~@J*LXsDC&zy9p#;wE۳6["0cVje;ҽDb(!/2fk+hs?_Q-vTcy\['v6V?-)lǍj?(VZEXK-L }P4Cώ*vU&Bz#T(AFӇj;*tzdǒ:I=θ|;t^zĜgm^G/"KgqYE5Z؇r6KwY3NNCb7:cبY:C[tL-,6$ 阾]/i| .sO|} vXdh҃bB1Jf%e]qJ0M$+HwA{W*DL)~;Md'a{3+ ֗cދiI$xtZ@B6yjmc gl՞EH3I|juc( jf.o_^Vr ( [ǜ̒e[h(P-ˋ<M :k9*mQUU\ýJ ֠||W9 aǁ@1 PjG2LI2ZȞI0IPa!?bwK2 rRky-: +%Y>ү僬$~BHNx8oy$C7&Q "6dC䯶 4 XK9c$YQ&p!ceCpg9wbT1wQJdaӘs^'3"Fgÿg|Bޯh;U2*=c73ȗTBS v; u Enad*^RNnG _Qܩv{L}y}BC*UFUQ\L$wIؔCJ/<>,yzখUU9NHOci1Qs_BE-ȈNpM =4fwUZCB03"&c)Q)ƱaYW!_E6Q"\_TjWT)4îHgL$GgO=hSnrWbtJɯbh}L"@5a2* *ο`wV/,p> m@DEtxsi>>^r7왲$5\-}da 䄳anOXuTg'r*y5qWX=U|/^w7rs`Jf3zi2:-ɀ侨+2CqE}\O7uiH]t_Bj^F1mQ p1w1W>W}vKQfn9fa=nnsBֈ%~'t~l/ H~=vop?!\"IԈDMD 5.O$F2"IPQSƌ=e?ZfW_[pSJ߬~<>QR b{cxB$`PUz.7W yu,L2gсrT`H~9y5k`rNp5ǿn [OM:mhOgnXCZ?=_NqKL&=DTXtq.ԭ'&0ܳ.vhR3J8۰=U\zko՟`SR)BҒ2Q)TD%RbTc `P D34C1DS5 Dũs#()*p!KI0fi"2 J)& &II`rFP@dRRR9)2@ R9-MM"DQDTQy0DlZĒBBTCW_/x,tťBdQ0!TJ9m>B1{L., b32B31a&sK de$@M1o, LG6Ikz4F p7tMNb.@#.25"FZ30`wA5 `0kP9 Uc82Ja3@k@ȩfeZ~̏RG=ԚXR#Ы F0k,I*s..K ?y2RRpyW׆,-Q=b! 6L塍g=$C9Y͂ȵQa4iv*6RDXվSެ@LL`ثHl& P[Kr{wnfpgɳ9YsG0H{EʜI{nrjsU\2nhOk"%8 JKDfs4R{ _]@xO?xƀsbϷVݏm>z#r6۷y{7vR/&ۿyH:NB}PJ[ꇅ ە)z0}5@>LO`ť b.ﶫi7@6A'eNvZ(s 1IGLmxQؠJQՖERwܞ))ss֡'oK YH|;;}PJ.*Q DGu=ƌӽKmOWڜ(kn5:,L<[Lسv]e`옦;;v#~|d{ό fW'v ̸015eOfzid/^ts̨xhxxge{pĉRA(ϢgsEƯ5AGބuVfgؒGs^sw9Ͻ' ;%_7{7='Z]F>wo2M~opƗLj {]_~?:!EQEPn9(y+w.?u;ƽ&R_ɘPAMgtڡcwZ)J1'Xr~z7uacؐwWM6Di }fCVZCG ֮vc\!(sx[‰_YU%7ڡ񞓽`um9R"5 vlrY-eq0ָ] *f4LTSUixc kvM4(ʥAe')P]j dB)T0lDqUע`ɩAJzΙu{$6l$ ,s[է0$!f|3C =_" =l8YΌA0_=rya^.P'C`)@~`a Bh2Yߩ  %fT`:@xl(RNأՓ=rĥ;VD47T z8p2!18H>EaNO8 3ZwA $(|9mi;ƕ +2DADC_{o7,7- -ȡ8ї{\N=wɥ1=|0i0 ;v y_v۷TqT.(sQs9Vwթ|PQIc9J @S3ZEؤf I&g'< P0 Rn9M^Њ)5"h8-8-;2&ٰQF20a?Bg4miKo[amqUP,1z3D|xi;5vHgd˳yZD(^ &.UbQoC"GW}'DOB!Ƅ$&CÑ6*m!Ս1Uꕝ)!yM;UiGݕ7Mg~vS[=\TtR27H$r-#!~y0I:oMK5]B!GONɐHbمM}hs|},(ۋҽ=5 '5Y]="|rPiVI8z.2㻋~?s,l޻3T'd }SXEdP-$PAmr&4:&ܝZ9>kK0!0xob$cLƿtճ\AlBD#*{白Xn'^ 8bQ9ᑁC?{ՉrYz_%7};n39rJVPqLq |Bg9B䷈#F&u!}/z@id-E4NdnM -\e 7 T`9^|rp{vwYs5ۈUf.҄c\05| &^a-Jk+~@dA UmuUL}c+?\7-Lvdnm[)hD\ *:ߎ%/w'X*;l̡~j,":q-f$TN"5lL9mל/|CR!]BUǯV?}j{z&GqF٪mS^~G݇;Ԥ綮3NֈS^%Ru/3أSmd,$*[׎}vjtwΑyy.)#% cD$};߃EOF𑪪ULէSlUw}[gWձ~70㟐ڊGmmY%K&;_q0v-4Ҷ&h=핹`U V* weW^Zla#)qZNIm؋\gy}݌CB /+ 'MDNN6^d k&~o[X|Ax(?Շv2/EU29L\x|",SIT2wL)4ކ觇wCwwGwskҡbcﻱ`aK~Rtǐe]_W;lz߶v.{A7碎 R".{)ؐ{GE_k>%{?|y;}\?^a]YV݋L>CȄ+Q_?^ejs3Mn\eW}sixn◷ tXC[6r-<ݗUHSY2SzvȔ 1AȨu_]0\ukzu:aUV>LBEE]""l7 O9_۵D/B%Jᗜz:G-\&mc1pnIKxe~׫NNWˍ,ijvхMMfq׼73sT i4=Ԧ}vS03l}2qBY>$j_-mׯ:wzyO1D3強};Ru#k˒>Iv/ʵJ mPQ6//2'ZLK=mzVk[n.I ط (^:ҮzϑTm/5QP:Am?$Mf R#"l3&G"xWrsd:ύ@3ޣ nx=r*W+ZH,=g\5OnkV x\+ |ʧw-U>f(=3vvUUeDLA8CWrpl&L.\Ȇ枼f;0ML ~j8Bzވz:irPtT^D2jG_՚)*!/=]3 7j>Xa~XU/q姿v5tf^=z;,d2=lKh-d`>]Iq?#v%0txqD%9xXİ]a A|yn3;/ 5h uEBk0w+Uo291ĕ98;7j!zf?/b^:`Pb0 9qy>18 ]D<6X_˘:`1 dMN!ɒW1 zӕe==i\X5,¸X: B'埥0DsmmWwF(6P3[Ʌm8FOp.4o=;43ǿ`P?D*N_+ƓLn3ilZq [vx;AٯF5:4΃qge:,C#O׫$>ﳦ38jTj06rՄ(?=dGߴũu8,vǕyk;bztO(aIT * Rn r!bU%@M1B? C?yhREAK18ޚ}ghvGfy:$Eߔ" -dߛz**N&&Lmm)9L Z"siI4.s`_oŀhoRWp s8k ]TrLf}/LVR]I7d1`X/RVx eסLKT[^A+ PiRt* &Hr=mϔy$Ty]BMعd'jBA$9+H5$1SP@%a#G MT&q_^)>ή)﵏ZlXڟh:G U$4^ysҊW`54{&6o͌CWʎ/ P F$Ƒ=guֻ #zcǍnX5I]:heдlP${ r|C_vphKnHKn" đW|8|p,gE69s]<8f"R6Zy a4 ;ʒYTjuCy^Gb.Ø~)+9ә-ꢲ RٛU(E=͂ˁUCzHtՂ҃X~%W}ܞ1Padl2Sc}q# (2XUdppq݂Fy߱:gT\M*É[PzoV629(dUGߜg5޻E #wVJ863؝ݽ&(RlCG`bΧW-nv&Hsѯ|x1Z\UQ bCEGxn#{~2RI4t(b?w(Ϩi03I >̽{ےtW|_WRm^+6܆}p%̝ I`=8yyc!Ŗ蜔H$j/I^0s榫wlAl!zb:m"$2r >%@}D f[G]>ZJHaK ;&D,2Q(D*ɸ$~.'؍-,٭ʮ~%c5խ5*]jw,}*w74R\Rrф@"%o.lW#Bh~ l 6븱 s;.3nUA~:iߨ~%tRv習Hna*d]'M`ȅCdN xdaPfIC ћ%*h\}f,35%!~B8g9v]&Űk{ oq77V"W4پՁDz׌R[TlmdqE*Spgq"x[H>?/'e߷mx.ا^8jrZl#|_0ZY{ 'gH!,aU?v{w^: Jabx2'TZbNn+ >`O (YUq_,ܺy25!Dco 𗵿a9j@;}P*+LE)h`{AE.aQ4H.T0( d"i*HhaOMGi05i^O3$CV;)kTtC$TRc8TP(DUSL噙f`LJ$DKLP-$S34ĔadP3c MȂH(BNCRECfAHDC(F%ZhFb`IMSTSM MS@ADDa&R%@2!*/ Y6,AE%-JQA QMEKA TjƁ"`Q ;jmgq̕`j"WDn4`YE !s`qHy!j xY ;}Ҁ%!AM7Ir1E/F CrGΨbD2"V<*&܍!`8l!CpjøTtoMJZ(푤!)DGCaAJS[,( ""]$?"~@OI_IZFũ6_WRzsS>?o')nܟ?U泋479˘}.%Iq>Us dO:^wcTЬ[S=蹜΃ 9ʽo3p._aITw"xJfG3h.5!0;8ℏ k"t Bo6.:~HfcfCq'[KiAPiWҭ\^4|"FQakp8zݧ88&MQQ7G%a}C}),BI*m%߉% cG [~.pptm+~A5DMX"a" &8I6b$qq$ r u߮99^,_݋l4yɵ~R`UgS6$5VV;V'z Dy\ʫ v,F1RwؠAcie\uYQ1mbn2%10oj7l}PSƶKq 0&%W6S 1x7sΕ".ed:PFH>j3(G K{]tſE’mOq<&P)Z7.wo̙ۏ"`%mCwcr{\?ZH ?pmm7ӟ/dI0X|C7;d ZI q*[ eeR38½.GSC3(*ߓ[";.iq$gA늝*eUFBa uZs7Mس*=jxnXC†34 &[eb̸.J7鐩[ 6` Lgń2c1ITx:Uvsș⴬962c)Hs*f<j"p&zq:(çLC O3 _@bsowA!8(:dbS"ϧ~vK2:5v9` 늈{%QG{] A'V n r:uth>f(kgm Bn漓E:ٔJ$IQ$k\o:CB;ʗ邛 ܸ畞ivk:|[A9)Xg72%ÑP|Z#!$H4͂Q֣,_fCBh|b4Z>) &&3 ݩ3ly _+rJVfGΚ.h`=U%V6+un;4SmNPTЁ; $)HeÄGi$k-$٤ʂQ_\9`a(3D.6toy|G{?'y@Aeax'-#?[z ."&1USz C-$4QEGBqޗFL6SDRtpށM2ZW ""8 O0uD eL#V#ДPַ6KftGGAt$?ϊK~LJaX.E{PUEJrYTyg"3[%#k3]RJjJee$K3:vXyFjo!{>e)= Sk἟&AرȎE!Э$=]5DWq\H!+, ȴ)>|{p(}ռl ϨĐƠsUcT'q Ljp_P96bۍ( z{ܒOZo$|) 'cvc { <=\ oj?;#Py>N(+=jk ')Ykâ YC1ϳ m$ (uT} ]`=tlϛ ^)~7a4u@1_bɘ!QtdUw j0;}}o'Jߩ}dQx6N:7RY$DqhS,d̟ry;Y~S];{^;/-, &AX>}(D2is%,p`&wU`4P;J'/KFE&Wc`& c5ulS;r0zZ`F)OA`|]B7شt+yc[pZ]}>= <0z`Q4R R5:*%7 DҬRvaLKA4 ҌhkJ1Ԏ2Nc[fBُcwCNM8gyNnYelE [Zhq̈6m\/s4%ocNhZqA!>ޅfdzo3y@xs~Ŗ2B۩P-_zUOu귐Nꘛާ -rRA uդm.&¬j/= Ԫ1U*PUxf݈8inyhS# 뮭cbͻQѐzh/tX*]D^ow%諎nAzR[}QK>iTvڿT~:o'8X^3i;eD8F<ʹö4͠uEf cR)@012Oi )aMR">.jŻ}`Ĕ [xn7Jd7lN1ټl̃|N7̤*6M$?nd~3-@ JSr*n M'C< |AE -2ct /,_~-)V^<STGMpҁ9 ]V7 [ vֶB+Bd!$R*m\ [ Sq?ά꣬`|?Np9^"rG$D‚!IEG*3ą1!bKF5GT@r4#ppm`> f$fX"LsJih=N:d\~9^츅ìA-TPP`sR)`c23\0!RєW{ )Bv!XxGD}0ySRC )D)L!:B NQ5M  DDi*nr4oc Ѷ*j"iP:rl4$8JL"6sP<~@%xPcv  ~r#\@)ɑ<3f\D!_JMCLE A.q!U$Ó- ?$?Ǝ%kpLZzzT'at{rE|8!#ķE5kolm>c Bxބ흄EkqڻRL;f:sM%Yd ,7}Uc;ۀHI3rٗf"\~ q+CqS1bHػe8-.1\I`7,t&s3PwB5!3-]⊉^dюN*8jPYrvBWt^ *^**[ݵ\dc!d&e nBGuKܖ ufCq}+-N ˱mEj.>;qDz:d$6x 4 Ⱦvؕ(}1E~A0(~n?rDY 13#Δp+x)@< gfPDi7=Ir99T2k N{TD<ؓ!WoyKYL~wd:8$đ8aV'{>`kY$4%{ $1szUeP:ˑVʦom~$ȓGCک9=<~mW |f@dJ"r <t;_( M1iZ y*~k$֒Θ6F snFmH¹^8 r{a[+kc +,=1.h3?N<ߛɍ]v*wvbI'lNRf+Jnt'a5S~#A<Dz׶eyV9?mWLm+IMBhi rj4)"y-.'m-;BoyRQW;+\Ԭ$ Fu> ewv-st~ݦ>f#/-E"~?KѽNQcc q9-h2Nj;䟞3ƷMO~3ZMfUSCW(AN}\@7zBbq ± Yq=5Yf04?>Mzr%oͱQu$d9QNL?8kW%i-Lj@v_M:a։r8t~9dDaAAd`'r"A;L5#="6 u é$__7__~//s/=SyOJdc?dO깿_rjOʏ7w?ɢOyzyVeS۸c{?o|U_].w~ ʻ6J_z_z|W:OO뿏ku5rOw?<Ol~ &_w3{}_^O?7={?Gߩ!k'O?ׯm8O??w?7:-n&g)i1M.Ыffk `jj2Aq*`Tx1(;(XDd ?tf(~%p$>hζ$ls@VیlMTA})sOvQt#GOks n) P eK ml('Z ܹMQW9yIq 'Cy V_! $@XA ̉2b4 C0Cˡz[twCytxbA4~6:;rߐQt?QyEe@w{U<3hH1 0sJp38dqu+]!` Cb~  80!VzNYiQzOzr Uֳ>ty鈙twL|Oͦ[x-I=1+O.S9O#{XaDSzN$%6d/QkY`i/Io^sn|EhC=c(Isb-OP9)$eךzS=qVs^vIf? :5t1T>܍|&ďE*c;nݺoc3`,-H!UDsMpF$f< ˠOFtft@bvˢKtBqPۛxDJ=4ؔe2<LJX'rULJM.~vLg>,c|k▓prZD20G-J@D!݈ *Z[#=Va]N {22>f%fp;zMp= ȼyɇz5vmgpiC=^nAq*uI;XA1%'f-y1'aLI3m5S|Ǯn %6M0cݼ-,& ߟ2ޗKyc, η>>so3e|;}oeMiS9sH`U 0v  _g/~ yCdžk^kNs;AC%>i'DeIܻZH*$r+t~!QdC9rT,^D #w5Þ<>01!o`L/bc2X'23t>^: i-K)No4rcQH}@?)JsqR%,r#i6 bR@Ӂ)F2lLVWKR9"VhlX]0h1XA.bmV̆n1@Y ,#DS`$cp4aH H[vcS$ Vt!QAKA"o2 Ixő۷Zӣ/-==xS7T`Q(ȈWM8w)BΣ_Ǟ}ţ/Y?ˆ F`Jf㒾Hl$;j=\hOwT ,uߥhzBc#6]$ڈQD] TTUEO>ޯ7L#ɎCUm?/4A(*bKT4xy>N /(ʜHqybQ<-#:r`v̔r$Gt&G: <Ð(4QJQ;ĔiA!Vq:19FIRԒd*R;y(}\~yYpQrʐtJ5`!_y*U=t*/p(ê0 n%ZGaжC2~> mq*lϞSLoo$!PRI`Dm1do8Nc?:[ ®Ǫ t 2pД8=;&e<]X '? ѕDMJjBS/o%L&Dz;1Px.a !:rù]3tI A$C_K8Ĩo-:! pTX kIŮW2-2D;SJmxvU"&=ۘ#{Uofb6V"t0^$x\-Z/xMe54'{|6fOq%@ ƃg%Jkk_-NѿC$ "Zߙ)+#[s=XHHRνdI$z}>\͛] qLr3r1 XC_S>&a8>ܹR \l뛉t2rv(-!c|(]QAJh;T.11ۢ10*5c.䏆8>[RBQIH֥T$DHl7Ps1:ޱ`,wA,6bj:N > "N7M+{)TFF(550@بi~J&SWTcI!F G˞ T)Jt^StszPP}>U[Ue=MAE)-7*SҋiCUק׻Emt003u5Ii~X͕x2kK/}J7fmZ~Wy 0N2D`y>K%ΐzѿvѻaHmGHfyzY7RSmb Tdl-ܘ97( ~0# By\ϘSz} {דTl]?V\_!\Wmɗ7i76tϑow?j'?͖k)6S 2~UO7SH{g6Utg>.r ͊iHh٬8٠ǫ[c-ڭt> q8{7B_[yߧ~cŽfJݻ _r-x3õfkI,HUXY$ʪ:k%xYꢙkg|f/__)o)722yp#e .՛2ϫj4Ã{yQ̧OE8?!vܼ "hPA|UP P@)U*ԠE~q{">j\tuvtGK^`?H,7턨m?d eg 9cn}*BhOj!F k>O)b- j.)q8q+ *}`Y5Unj:CPA%Qq 8:B`wܴ!O@v49{+q&I84czqyV]`+1~;ka ut6Ҭ|FJ 7htUD< V2BMUmELL{?o AJ:ugՊ=\e&BWcf᷹2j.4AJnְ4o\v uEBTln^c=q*?sn]qγQ c(Lf3BaJ bP+@"'^6,ڱbio ޿'bY^ǯÓބ!*,%B'8}])AbځCՃoxl:t@@L(w?)6 )Sj8p]'νE?&~ Vs8 |ϽaߍKXyuWL^T)wFM FL3r7j]fsuVAtuyhDȯGH9wm֐'f8%zQQ-2Ku| P/QBmI8Wvazrrj8.B,I1TOٵ:2= dTax0:I晽;xwz&""ii##!!$$&asr[.kX梊_~2W{zR屮b!4}E#Fd/|yBl;|\cTkFUb.agkzH|>_U*'0( $$4 ,C:Caفo_~ y6YAdq>0YK˷50 oD: =芇/^ V#!0D޾)TJJR&tDnyswn{sCC5蚞|\?#`Y9dvY(7 Wh-DFeaٴ2@Bu+>e߸ CLlq}{?thq9+~.u{x¯oU7.6Q2g.ȋ_kj]Fe$] `}Dx˽T1Yń붺oQV$:~ngRg&`i7/iVHlq}v6͌N=fUq47N*0/¥C=~3=@rcön)Z!ƢXI0 !8};4nM 2ۣgxbn:wET5 C#zzC1+Ž3S]Z '9`dڤ8vQɊ(\?؆->w[oWHo3/ٛ3&zF"(v~!Ma~Knu-AQTRC-BԑRE2 0(*&rC)N7'ON6@skeG7[u n}^>>B: iX(wUSA5}܎ fS{|\:>y|9,9tϻo5g7;S?Sa{zEÞ9tdt# "qTz&닭WǗfM0"PHAM\qy_>hI_-]]W^5JL S*9>T=~dfDe(D9DZ ް<#K%A ZWuLJz/_2T-4R븗+ENSL1zt:t7%V@o_!xV\.=}q>)dr *rJ|bms3Y!%J =7 g sGXHgVR=1ܕ8'K"g$-o|}r""0bfw0$YB$w>H2y7NOU}Y{ n+4Pkuc" Mky,PzJjH!tYE9u j4^Y젃`fq MKd|v`2^ljѬV}((%K*?jӶb"{06N[ce t>kKIC796=+ZF͈vT1NdͿ=':Vd1fGVMu{,jJzouwzt)Xۤhߋ[ug+m#7S4ޮu;*3wZ wgQ/Lwٛ?2`-|'9coA}cƯ1'%! 'Iqϓ\=Vy#"$VH=\@ͼoW4Znh2bc4V-?#;K}mJd9>f Ra. )w\ x~|?*ce @9I/aq[|4@#SB"1YV`R'bڀw{|¼[xW Q}|K;>/v*]ܡ;uMaZ:L1[M͝>/4-~m9Jc'Z1FBE$D1*i$L(YD_7SAvyJ/_I}8\jXo&O֝&Tz5'Jܬ|\\^iz _9ffruݗWD>)ߟvcCFYs{*81ȗW2*|?3ƣæz]<$I:4ڇmɅY&YЖH Q~kTlk\F'bwXssUi($ZHi`×j*99,I/_YGg7{>=wge/* 2ȜQ DCt@&>޾= ro(z9DմDXEuqwsWsX8ݎo{8H,dRx5xXHbUIjz$%f3_~gc*!Ƙp!.n݇$ELw !xx> BIpS;n4@@FMjRßU=z°Zv<#:EF_V}Gj?:9-$2 pǟ8>T-A;NulضYݢV#}I{0N}OtY1ˇz{囒qxçiZ3x.ɺ,٘m7d&g5; tG5 8泌Ƒ#3E3.x`I%xZ^_H|S3z<ߟ7W_ϧ^/' j% /=o"#S|ɋ%ioV/_;fuCq0o-zQkڭ2+){L]=.Zך%F|@(gXLpo#"b_,%N{Zqmz_A6?& SA7`bB +e1#zgʸPǟ7r/_ŭ0U&Hgj- ƛ ob0ǮMOI(BI<{yy1Z+_#֪bN%ERgPL0PcfD$̐%%#oZ]-ŝ1qԕnsp%/ ͭ_W~jwkq]%:+-OtZk8/̵uwy~M>ϟO+Ojԉ"'t0dNDocD]͊>uH]QuTa,U+}YWE[~oUNڹ؜.}:K<9Vn|tz=~?GoɛϿTzL*  }_7sGٍa^Mejw;hr5[4%bj2sU \POSؾ‚l};~r@H ~!.DCcZ ׼MNGzr@}4ANx*uM(qsh ޠyDh pR#p"jA`Cl 7p/wϤm_{ٽrI_՟< _fi/SgҖU}|m)' s2'uyS;n_nNI`=c4c ~v>[?+QU{,Y͉xB\,C֡܅˓N՛_=92_T}8dwfs"fe7J6r",&ySšܑ<ʓm5_رc+:ʨ=tQӴ<* ){lB[ (Uncfdv`&$D被֭u*|%#jW:^M15c'Huuh5^ك.fĖ҈_0惞. bo8<儆އ݄6!s_v-,ݟ-?Q7`8;PPOS$0繺Nt6E݉w8;xU}zGZ/[k\Ƚoφ>I .? xڗAӈ^S}·u~Zv%"'|ͽ7<'fy27pQU5K6eGoRפo)D;ي*q[8S8`QnjP*ajoZgY $M(97+Ӎ>=}'} /iAѳ} V1#Jruׯmͫ߿~㎳sƈūak^qk3x%+$}κLLmӦV1~shnO8L'b[Emj;ggۣn5o`/on&/uTYʭEUmﶀ/7iD[z3ӈi\׻w[qQׯnm-ˮh}8nZ/ .MswmQ5Nh|cu]WS:tuYzb>EߕiNU1shN_~xa[F՛uUtոⱭCqZ^q#;m~rN,p$]-_eŝro;}ij}gչuƷ!Odo6~lkW5+/;g¶]q[_km˝glk_~5W۝[;tW~8\t}zjljԺ=$~r7պowJ8|W5~&m~;,nEo3m,$hv#@Q>ZE#ޢQ8Ⱦz@+#ʯ;6Xx[=D0F of¯Ai\ mY=0 ٩8HK4G:i^t<S\s P1$X+,X}0TPz!加~]7/J ;ޕ=9uS%EUQhϲfT&Qӭ2!D"ddKլg'4m l֤ۭ- KR(#T-Lo>mSDHg.%NQTv(l(B8RlWwbxZ[wvUEOQ"❤,#[ biioFjԄ=o3-Wj@\;.GYv7j1#޹8d3! qg'ɝsSzt $ Yu_Hau8VVM;"HFL;ڴp1ydKYs*TYvF CnI6#qJ swx6A{ jx\'%L`'`&M u&o٦2KiVLw#'82lJ'j׺QtY֎{-3t=^x.eo> v߳$S/ry_nfܩ#|~?;mR60Z5ᚣⷵɓ.=x/,:hEFG\OqoFK#AėJSgF) eڋGF;+ͅU=En3ta= NO}߷N [Yq'mj&fd ZLR^  wE^`=J#/y֯O]7^[ J˕c͔IƱ*Y;%#E_ن"J2~ }K9Yl_:x=J6Ł-=QbdI43CE֘ qfjldT} ZwYE( %.^ZIzXJ졦l9\hhM)w-%d0Ď?MԶ3ÿ[+l|Jk'L\j%}3w)yoiڊ Q#"۶,DM5,= @y`CgM/cÀĶP bφ&qcj:'L?NDMȗ豻ګ#6~wc䮼]M ok\q@/~*e k"s܌Av " V&ڜ3:}ṭ/Åd(1E ɀtؤHd:Ϳ}Y%Dlr#Fku\鑕/C3la(HT*Pfk4.KֱYr@o9^P1}|hS*IS=XVL` u s6_ΖHvk!=N^]ظKG3ͻnw mg}m\%dyDUw+M`/:)T bʩbd+^g(㢫 8y&<9EoG)w^l2uok.kݚ$!yf<2?ˡ+,BB\;@$_8`|Xfb`:.쏃WX뻳5& IЁ5 kwSW21?|v"LǗ\S}gpy-7QM]$ rvM ICR(ϥN}?]tHR,x>dSʊ!c *'O@l\JBh$}'HP|YCD/񯓟wk25Hsj><ކ3+ 6ĆJ$hZN!l.@Vמ,WN]&%D /ʫY~hSF*hyQoKM`pk̼jŶڰC4IAs#pyя hsk/zr[1>v7$2Y"IJ3߹ìtdD'4J&.ԫ h>fڻڇhSV-P¸@q"NyW)i'&y¨H:S˰S@@9`Xt~ь2z3n>^ޤX)[-<^oQv $ ޾c1:XG!C:+Ԙge KXD) aP,ˇ=,]Uwx̕6>̨29*+Ձ&H %"hBUebBE } @!!_}~Kwla7&x61c t(F0CIOݭ 5p?(Ko:{8RL}}=^;}|H 봓 j܅!$Xk7!hdJ$Ej0ӹ L'Lq`2F L! )B(6  I";4Cp*9sÊn&fTDB)H?r0": &1h+VAaR(v7l$Vp@th+#dLfPӡ"R2@h0A 8&&2W6m"F 9IM< $bfH~yІ R!^e;B`5P@^ N[ jd,\T.%44MAUr$cMa $J!KRjPIHttKJH:d;xrnhH-‡.%!N$L`bavOL8o ?z ZDpCl]x #CdhIYBBљn\ JRkDȘ@ 2F@MB"'Y]$1hHd!YED9hd4P(AAQi'!N OUƢ+qh҈)<|fN']$Pـ& _5*ak񾍑L< cq5)\75chDN!}Z9\fk^2M&Svަv s ;l[g?u߃d@bEK Le (?3_ѽ 0z(Qw?)I.~J XPShMsNJQHʸaUa%)j!'?v0ZPJQD%&-/XÅDr(rrD䊤js4ǏfA_co nC,>RgyZթ5 { ~\;G2 @wpi9$h)#*' +1 QCH.~G%to-}λQS>s }#"@ZxG0%)A  Ԣ/ޣJZ^Ըf> w!_f|QB*TA  X/!( 6 GG`|`"'EU)E#zn{8q.h\a~IUBϣI-@pn eG |3e?dyeEsfdGAOOaA|TOZ *o 0>cQpodkOO@&xo0awesh-MQi([W"CR&))}ts- `+>~b=}z(rrU8'J}z;?O't; E]I4~%0ۘW 6T8|GCZ5 TQ)5Lc<t=ޟ|O:,4z'?7mTr>0D|/3;>y=݆' ׵UO' 2jTzӤ2۩!XsPoD9.AdPI}.8وGjY}S7Ϙ~z]ܤG|ߎڄ1.3^;1PWnjdƊᬻ;ۿAv>D8__>| Вg.?]Z}|>aoտˋ~Vξ #WY&9+2U*NB@b`hxBji6"<Mh m_ك1 <6nc'sݖ5Q~<_o$\&# "H`BGpO+9;ݨ>|^$hWJ[5hgZ2S=DI" \"}oaZBg9ݦj)XF27_vԸ3BئUGm`y LԻt bE@1QkZ(0g Tx'G+8< 3 "+[FآC0o2\UD>m޴azW{z脝*'xѝRra`6Œ+;cnߋtq}7wzLz20⣢ZiJ-1ķPQQAK˦q(WIt /B(DFRQ|ǦEOT#뢢J H^:{(oP7 (g!KKF@=>zoT~|_>Ei|~{ϖ\3 nl6 :qS70r},H'M))W8aɤ=ު3eJ{& 0*( ےYb%ѣνF*?VlʸҌ>3!@~~&rfITwЂM"|;yFNא¡l583eamF,h2S6L6\Ϛ$@5ȣEPĬZ4֎0&MVҔ:HhX0Ȑ>V]TDx(?]GGn#1w:(*ϧӹ!er4Z̔.>0{eP.V)z-S1H#B? sE'k4T`>a"<OT҆q3U| u%@{TC=ԋ֨m-$cZ~Χ׎*g*5X:>Go*s acau tr5 O 4!# F@Žq!颏t@y;z6~l7~#v5+B>^ʬ}0b%'6cE2$@@SANc}獿^&E ÓE%~˗vƴ/~g1Ԅ(8#'q^g3Nke٬Mֆ `D\whך13bFڞJzS8O/1 #UGB2<$(L*þ'ܻ_za4  "oͬ3ӆގtӵM[dI3Th:&l `c<0b"#'@' ނjֈ/Ӑ޻Nymx 0[cҁ ]4)lp W|69FBrm&KЛ@N{LQbוLmb=1s[)hP^۝x6S+X}j`šq|"ZㅈI$Q5<螭 ^uu<'Gf/Jeg͏0 „!XNR> D.NYQCtY٦$Ytqzp26cjՀ((3HJ(gz`-3bT;fz}zG%cvcN]mPK$LL8q-ƫQ{"h61@ϝJBé)EBE9ӿDJ f̑0X!ȭG@ja Ŀ/0˸8 C>Eo^{r& I-amwUxUCQZ !H(ђ58 \;&;*;S{S4}nC$IB> 0C 8(&(E v2w__B`F &X>{:>Ѯ Xa i3(ĬUi̛Mb.J-b&`o.`B)C ^1<*PyOQ,vu8L`Sͥ/"+&Ѓì˷[(9"w%ȆuPɹ9Xb!K`L6Tx^ 6 {W oIԻ(.j ۳IsvsqAlG(BE  J#2"ډ泗sb`2o*poӦu:,D*J%m , d{x 6r"S}NWR@((א>ɤ0,Y$ܳ/xlz$m-|RUQ^~=؜k!ɨ4Wo}x)zoC\\kh(4!ER6{|\ 2e$QE_W\; 0e4Cۋ!4U,]`9G{# J`#ޗ|yy_KK.qI˔㪗z昕3S ApFPBzp~y:Ү8f0BDMpa7rӒ*4({B8p&W l钺*%Y ##KKe@~LaOwN3ۃ |((M$#.`q-+A@ UjȤ@EQ7>yަ/ɪU=B= C7O`@U[-ծ~^{f>8E"]m &f,2"~5QQDi'?yRqNc~gZn&e&g}{4K# B9:HF .zsгDC)]=>S|/TqԁdU|^źgOy|SV?5*_6x_&g@ϷY"uA$ ;`[tr8 3FJ ;)l&9exqgAD|% *:!9?sj)Qj;{Q39uPN>? $'gT"޶oǩ=K2$yǫGHꞈ&]8AE"'"|| _4{<=/Xy>wy&*ʞ, zܙ_1>NSށj"qC©(4t*-*0쒙yϖ/dj\>}UU~7To* 3 By:Bֈ?OvLD8;O&gAӴr},(Ӈ뮓=p@63?^Fb OPNib̠Byҭꃰ}UYʊ M( ݒZ79NDCyH"5]C!/ X*1"$O'66 pp  %bD2a9w}喥:΁gS;f#}0X Ύp]SwOmfqڵvӞZ$Ĩ&I=3=a3٠Y42x8 v 3(RހJQ.ڮ\J[|b bpwCruV%"Lh$0>N{3"gW~1nB܂b`'9cOw<ؖqH9G|.Y`h|$s!!H^8~{@*+KX"w<ާWx3{fҾ!ShA w~L^$0wV&~m&w98:w)hiG6S\F vsm~Ov-|z'z"\@F&w&@>rxN0J[ș ^?@P%N?fG>ّT$9+VYh%'E)igڶb z9J +$OWO?{zy> #;iu@zջqaAH{6|EIRi#|砣srIڊnm~.g)JH'T8Y{~#%%Ч-C1[#d gO>èH9#"?G|Mzf[{!dt1)Q) (ۉEr/ 'Ǒd99ADK¸7 (&h_hÑ m <\(嗐 A `@oFLF$@D.D=PcRkΆѣ3 f3CmC F7g~NԻ>'~T{PAL$.wJy }GBh%X3!$Ɵh"30ϼ`e0uBj#O"=nǞW'AwȽcD+ JlpxF5K,̘ԋ )HTD _ITPWs>]CaȨTip섪yqߖO*rRT1/RjL4nePIPflM?ex//⊕JHс:*$<$?'p87b5#,hxu@8bQء'k#>|Up\:'": XI|g/ +t['MޛWƞ'_rNz7XDg]D'ؼeߗly#kBPN_ ]OAw8Wu+/EwZi!Q\=Ow EJ6uX :6xXdv.>ye+lY3eTZ"&xCX[:ofy|fdDyc^ -I $U1dzADTCd5q;\GNo6fκqDfay(ŠC!^2$A~25dvfA[ p_Fn:ϼ\=sIΪlo@N<é_BO`E=WB:5|7: I+1,z$(ps'GL9/%`AGf / sx`6F<x7_{u{P8"lLl[Eh Jl;9}dCesF&q9 e$9(8& 솏y|7?|vDJ>+ڪPdmڏR w8}縙`a:BY߿ŘTJB% _n ; عniJc@{xLJ8H/P9wTAFv753iQ˭(/)=mW2˹?1{DF;PϹc䈺+o ִRP:Qy{5YċV fNYRIaN":W%&WDAZ)͆hTRF@Sut(>s{.b$&\?V,:KLC8C?;ܨLxFE"m 2!=/)<,4S "[!)ܣLG@4a6N-@NA1M&K CSv92MQ ah,&Pƹ39ܮT$OF]Ǐ4rK:aJ -"g3$&$IE08$~?G\69~>H%& }q)9L?Ξ?ФGl #OGg'`1K${hEL!& !|cV{<(8i Bz$Pii@b $Mj8Ž҈t. ta⬈PϙgnnRq I!{/#- ,FAS|DT6}Z/r(*t /Ciɭo37 `Kご:;8B$bdh]w&`htr!45!-w 5x҆RN>1&O.|_px FGGH,pD__̷2ffg#ĂP8ǎk(4<>H=_G4NxZI F~OEZ59=k0m HI s0!C- !m !(@#gB1D։1K!H\_ L7t PDP1JJ\ DžM &C\?mJMkYXky6!l@hzOnk⽳Sᅴ3Ln6\Lv)+?-<$1KLoM6&D`@8a{`I!ݠwH9[MŜ\O+qRՒ=q2I%\pK t&?V퇆;;{/S'萐ݲD*`)o]D @J+L+Y\&'CX3~8p>h!%C0 {t!Fw@/!U%QRUJO94DAkʗD1Ow@{CBR-ŇPQe uA^gV<~S'nA zЅġnk*Ew " A{tv{To:ym^}+W:qIkGIG? |پv|@SO|ExBn n wmX?Êdh0}<哤y/E+BgBR[0Mq( (E#ŭ:bKzP_xM/IYG͝*(*Æ˻uy^^B\f,z')U lJ &hZb%b 󑄔Q R4DL%U@¢xE,a䢿{ח/t(b>? U{5=b'(j @'m6<>"8(wm"$Ғ:~uF73>b,bAA\T!,*jSgB{}Mn< qN~`ckPx8qpz JoM2@TAoM_v7wg\QX!8%@@"1>$K;d~j8|`M˔HG ~oџ` w+mv @UPscyxק3ܧԏOnE:Fu6QAL'tB&0B.[$5B(- ߜ̾\ WXJJ0gŰN<0i:J8~Wv=)DaK؊,[=Avz%}p?~A|:|Xwdfr{ {x9~{&o矑RrT@Pdӧk:ScV2=g}x8.tMxMPVQ)p}su>ָ ֠_j$!gէə^s('o5I`(7f PǹΣqQD>'Dř ק/;Hݾf};%BRn^U 11u=2aܮENL>("D38\E2LnufO 7!ExyhD7v%Dl>l^ |i٫󞠛ЎyHhXyLu,,nɽ]=WiӃ(9r g=cTgh*PhQCugWfamPwwtS/o䉎PDy36FY =C}n#xx-=٬SB}>T<8;'_m䣫ˊm|\ ̀MAUr04`d9 DUS#32&D~ 3O8ߡ@IHzXpxbOǼ$_t!#3-!Qeމݼ@fz/6`nai1͔%I h+4Z|E&r[A5זrld.)W (aіeccGn+4Ԓ!fh*nP$S1ЇCԒ`!~9Wv JǙI20z:glҸ̴;S3$%m>aRAĈYsJoD*29ĽEaJO"vc;.D XDevPØ#jwqMUy_Rg  g $"`a$4fɀǼrW@CgW,ٖsP~cQbFDxe%C ~Qw>J}Fk7b''{k@((0)oq?_Ÿ0"` DIDB1(|h/o۠!wZV_*l.3SR-cX~ 0|U8OܾNG/㺐O9f`XT?P-w)WnJw",$IۉdA@yq#*2''&+ϖdk@{N2}Q| 6lЪb\b3s3o.Opb*ޥm⡤zD<%)qz'|mpr/n<O+>&vhBc95!R[}c"`wp3aeS?~Jd Fc_v X*eWawL=̚: ёI53'u9cG6#yf2 DylB- ;-/"yc~}k Ndž{di`?wDJ2p$cc&eGpm4-1)X&k 580 ljp 5Wzlx -8ݏ7nxG18fZQV4Υ,;88w;n[-Xa55& l5 N0"2O^l ˎ#>$w0-xLռұv˵dD.2e1Ϧ(sk***Ix׎ %&˸tA67Èo`o A1[3 DC]DĔ)h b`3h޻ H# -r(@⻞cӼ8ؗ#`j\k0;wi.S1/Z1!JfovQJW;てu<->g4]$yX3Rfٷymц R0 p'?99x yjQHXimA<$8 E1ʵ؋O]2$qǖ!5x>pWhVPFM<ӫ#ƣ'vqQ;#N{<\Uюߝ62[N,~6EAD|~,NP]e#sE&𪯆#L9p&(xdUI~p30K`֡8vnϼ# V8m3(2\θ{y=ߛ>Eߔ)9ȔQL#ݍ6uD QN}k=3^܎E3eEEZxsEZrOMǵ/JPBJaPu0ک9jtR8Hf&$%1jxo\=nO#v?;]z^Nx{[=9emހRI3y0ىL$c  |vH}x֎6n%;CNTD=lCXh0A1,z{i쥹^z 2 Z:r1K01PU!T1Sq׳ /CzLq98HƒQę8r蝂涚8B4HؒM YV/;0Z֖zR;q؃0Y1٩馦8= j &xc}$R:2%IuPT8A}oBw-h1<\n'G5RYӧI |bwD dXݞ@#Q$qddhn5$RDIkd#<:,{7HIvg)UnnZw==93UEUDE$ 0p!eSj{{E5万<șǞe2ظ717QMP! FIhZZ]Bh0/-"l CtKayc)D'70eξN+ LAIQOmDM"IϟYTVTlD% `zBTxteq:j$`=xw=tng+1:V2&΄+ǧw4g 'Y_fbQiMV~/h/" $R!$ɗbh dd-IŊ3P5C=L:-QT92rŚq5NR6_PG˜F߄l*@^`Qv"Tv3܊&GbsS*76823C {S  紧P `!V|8tl{'Zb#ơ%:v.pt&˃)GH5!G9$$@0HX7B ar 77F#s >ɇCDZL)Qcplon"t(><2 *%S|,1<=!{ (i ;4CasTLD:*0QwoLk43smngZF6GY0i7a֌ f .Bv"\ޙF6Ɨpɳ1٤bplZb-8#M*ЮjauYJc:Ẁ.b%Z l> {ۏr rAZNZddȂ!5!,8dK =㰙w##ynpvgxN7(8#Y$lzc1ΎrN|(9u Mf\RQzF0RñӲTY[Q*%CY.o.] 0cju"QX;h,H32=L3@unei:+b&_Hye<V 6_R 6nIAn lddy:,Xqir%\J u v #qĚ) rJVbQin%tI@DcN.Ni5%*6q! !h馽0Z*YڛKJS5ǥĶ.VW/BheV(9dE)q{d&M8DP,!9$X1םBISIa7y'`nt8B9#h9&2y^)dɄ$" I#IR^@Ն*[=Oy<4?x"a*v%HtvI}ua v%b{X/rjB̞ޖrAL :Knx9 `qsP3OKq0wɨ8/" cxanLI \cB^%rM3JbizeLx qPT2M!TMW7J8d7=l*) >a!1] 1Avc&8ƚXw dK4V{':T73 +s!9K! ' 02pBP% r(01a(_BLz4zxETbkٗg{`G 'c[/DqQ ``y8>dlrNݱo B$J,4K<>,%2 E7AAv !Ab8#~0@$g, Ͻx+Yh9 %b˧PQgs ?2[;UixwgWVDpFfJ5\TU-"` aD֋Y>owW$ݙD}68FzS$`\md} 0!e4MSI}OtwIA_2WVԌNHrCǚG\BYKR 4 ,<#s]j4omf&{M Ì ű4C;J63%gh:7 NBs吰[?;pMLMܔC͇AQ~9N!#4! hJӊg6d=5zzquB4 yXm!;ڞ`py6UB5˩?Nxl;~ď{RIEL3tT.ddkfx99Eyc㍼AD> ]* I~uPI֔iފ̬ ȄHה@?1~Q;O0YCԜѭ&,qώ2^`0ԏycT9s 9UPiC 87:>Bc 1 M&)HFALF]kIMK2ҋ)*O6^<#p5 wA !5lxС#'xF2oA a8ע'W].^ogtp<+=T7e@sy_̉.nnʬ9KVwRJf旾Daa zUln[k#<]i6[cA" O"|9ޟ=G˗>'ۇ^o9ȣ4dxJD˄`H64al ^K*Dف'w@DI ÏJ~gy#%J6~Vl-d\f:!Z{bOjcm\0Ĥ;( ^m&S8=}t?糺~m7bK:O4ጟ4Rz> ^DZ"`Q9j``Nw^r2 )JS1pA8!ٮfXYGG [r T:B+A ,1>2E^~+,O,_ " /W2 39.jF^I!kZ`E6|ַ7+JpCtQԆ^)HJ OjI>2V"P!XII(0LRW)a dEH@uxưL}qS;$3@@+4Dt^tPq 25 `g7(F2U*@gڔ֏NگuHqռw4R 69A) H8&@ <̹0h>@w~R( E@ HbZ8 ɘ0(@~G8sUbx~G7᪤ Qxm"o9cf9h,0"rX(w6H(':6hJ#@$ m1lj#0qN nƘ1#AlB0(p' J(h"o4ĐE:3L#D)P/v&ud4DEDĩ$04.ʒdݹ>j 6Nc!@XRhD*c2É|O\ e$HCA *Q TUT(Q}Q_%pуP"Zi x pP,$ܧEuٙ~|[ٻdmF' ) 1ߙltAxfݣuȍݺ3[ӝS)Zu| IV+շтcIh'H=o̜lRJ8rR@UwHH`b00Bz}Au؅189?/OG?q|X!3;qݓ_VvCuƐRD6uݟ@DroH16Gy& 0.U3 "Q<'~.oOnH@Ea"d-&#'VaCmq(6 nbL XX `hZ a!S=`:(j^=Al. F&O_+AI:Z1X9>n(7hch D \ĵ4k qZ+v% SH& 9K@ȹqDOS M~@ LJn|]uD&u+%%P>7#+,v:`b bDcϣ8N\aiX$@Dt\~IFxo@@zHd QY! sю0G/Ôgp9{nᥭT5J89\d te(" v8X5G /$Jayy娡 "@$TzX&~b r@ #׹wi~_ٽ:E.o *CE%fMIHm l!u,?%]E>2 ԑKcrs/_b鰓 q QY}_JYA@-\#1 eRKCmFQipl'Th" z :ԊB$+<;g֗AlD!&?GS`؏I)sB!!$<H|+؟͵o_5pPog=e@__*} F!YoŠhq*!0MӍR$HFzZ|Q¹pt`zDL`R@*4q^wH$IȔ\,9hܰ{3*o(т"h?}a 0 Bj3 LzH XD D B/NǿmDA4jW5o [; ( : DBclItdژʗ gw[oq)>v(g ē@jFTb }cm4vľ`OFiת &%tqI׃y-0ł{/w|Mrm ;TĆ>8p`A& dpN(Pj(@ЀS!pXv`LH1I&@1'՜o$ 8P]~#*N-w^SZ6ާ&[?4`$7~ƭX9L88mm[X(^SמOM{|߻Oe< rT kx=n1}q!# zP}zhL!=6cMd@3%p@/&V ǭn4swKt B?$?'nדS&E trE5,0\U OxkhҐχ HR4BG{8/*BH>]g6EtOq}@ ~)\Ch*+bh()Dt7Tn_D D|]̠> y_1jAF##Y2y&FJ6&%)THOY4ofَDUDE2 aN:cVXDDUK 13vC:VM2"& MqId*Daq3*٥O? ޡyP1 yXFJh?y;J=0λSt}!E-W\ 4Bu 6|ag=3M?Iݡv,?*4&b>2xZd>qVQCc>PmBBCa$8Ӗ/z i١U]0]˧%OhB9)CLR#jXw:;6}1 Oweli9C E D8iZw&{ `_맀T D tYv'!  iRK#ZDƴ6LYƒL04-a&aq焗=g[]cy3E>tB6P;< o|fs{ 4j(*T3R!BJF JX`?h*'#IB^ 86M9Q^3AvA߷؎ԁ 6,Dr00]2. c +QlVB륧 )̃Mr|R|,>?e?c[jg n ~Sh>Њ/8KN- Kw@ߖ#sur~|ߝs;rD\kx?n:,ۥvsg/e7E=-nR-(ѯa+D}1T4l0Mcj2Gc0X Kf2J*"<МE%Oǃwkh|'CDi,bQU0Z22R *D JuvED 9$`>)ƦO7ݳ_3W/R m*0Kp\K &Vک21bF*b m@)XkPkE ̌ H D3#33+ѤX0VA>f*A!"hwI{A6~M>_k)"Pe.+*F\MxS)Bf$wFSA&Q Y!fFB(Rh`!bBE%&Cs8^^?wu'M}CXď4|kgogu5z75$õG/)" ~Μ6۔vVcVPuȠH1ºR@hlI6:*:"Qo$N@ 01+Q ? P @(D> |MXpl%@FHh J$@8.F' 1 L !IHC'aHHv=rzNHH:8J`=9.9]g|x p%V6 bs`sw 12 0#`9.ՖyE@1W4. <1D$A (@I]ɽiNj0AHH؞E'5$ul2 oЏl[`<v4DLEYfQX@VA s`Z@N@d $0l01,%L#0&2b2`*0& % JC8,Cf.8(0{5]ADT4#E8f.š!D+$H*." Q º aPN@@6% ik0-qwd}&gEvwwr`q 0p)U]qCpW_ H/S*)y*PnM"0`HAC|h<4V# xJ -=î!SoLM$ 9^P&u/0gƟ,>qBG}\ҝ**1 `D~OU5UTXFRʫAa`aTLW=Fz4PDUQIMT}F4Qy$$.= u?߽0 )J:OS%:rYd#M2Dt!/B>]'cCs'xVp8>^''n\' 6n1^KF.H8\:`8=Xy, <|v i`RLѷQԊ%7^B"* fb)Y*X8UHeCE)/_ ;F)h%c͇Yx)#!N#p' (J(C:h3 1vWzO幄dt&GKنS>DxةvKQ9X)ss*(:A~=9!%(a0xi(.OalmR"1?M= K8hkR#ZP@|AeE['/gW'TN D\? ( Ndٿb?' |DMH6(o4?AD!Ȥ \:h &7;98Ö(?7;%>P@o+K:Z}pxlxU:d RH$$!@…8xvD} m&RB#_l:b R Sadda!0ȴFtN6C>-ҎA)ޖ(~p6%`UEp$J("()( (((FҭŢ"# %_I 0scff00'% D B@3@((3~{S@dAE}.[\砒ޜ\\gę,A}Iq'I 1 0@J*JQL5bf ܎f ! eyշ HxB 8Ԉe)HYK͢"&`Ϩ"?ۃkJ-ɔ:$*REJq%HHZXC4 ˯cs\Uta18^4@%cx ˧ɚÊ 'v rxCk M9~57$|3׾gPV9r pЙ,0>鳔~3kD.P BπxMr}hv 6v |j?<Ѧ>Fe<)~ $<~3'LA]5 Sf0k'zlSXIZrcAl3 t6FAQ+T{{ƞM89}XF>9[AlUИc"I>#5!jd^Y0-F G2R`6REs2 #@Bwbmh(WLL{!{c$ \D4;+>Ρշpݱ5 R[-sƐi1mVA'#!F06V$F\DɃQx9Ya. bs &6Hj Lx:pXI^3oc,:q7M``"$i͎:#JW!ߜ'3߉$s Wq PEG13cc!Ta4=ح+*Mu0UA3DA{! %;o=ۣpx!Iؑ GZ> fq1Gbm:CqÆoHd.ɸ/.H wGMMd$ >~a vbl{Ei1w`:Pi ZMLQ5 .1 Ҭ06a¬= 8xbL169;{[c 0fpqx/]Bԛh 8 h$FQBD99HMY:ua85*OpŽ.bAMpTcMIcaOt X*v +am<Ē7ɴ&DAbXE ա踕ђo13PC翷iP YFhr|vS|]ܶ`H Sfw$ T!Hqi&6W=2̥QQg-W'Fqi7%FŵQxgljӊ~Nhe޷q#pV8m=^8åZ֍Oɨ"5FrØpNIZ'͆f#a%[h+B*d + m >?_6\Vr p%ʈ Sonf/{Azom`@pX$T(~bOi$?6N/~j Y%TxdrvZ蘐qeȘG. ك$E,!0)ˆRaJuStʺ TȀ$ZjiEW":f_%o`ٷ01,nnF501uUv[Zap 6LYD65LPL?ch:xw4 PPt$6w{i]QTa& |h' nͅ Ni葱"V :$ T4~H9S 1, M,2CU H$D%y;3F<bW((&!O?NQ8$A0E ZJ@ ǘyIQ"bH3Q _t.Hl.M jrX,@LQC$MIuUdؘbPn2U !b/iXT&"84dD~p͢/Now[Dz=d( H>(U=y1эD-L0ՉC! ĤJC0|S1$ݡ)3#2(he@Fꔠ|eShM @:_/t)C A!||s?b|G$J0{H=$#AƞC>٧t?/rvx|c3A(' p U*PZQ{ۍ[ oAi,j !00Al\@lאU5*(5$л,nl$w@?w#)")O FD<4*ĉ:~f`=vbĈį-0$qAIb #A,CD!7Dz,T # ߱F teugb=kDvW 8 p0@$) M=14THKucwcME} mz/0lDFD<\ t͡x+}M>grgt6Q N)ċPiwxo}u\x { Y &|By}:E2Y`Kd ,>i_$Atz^*"d8cw=+DKꑤutH;*Fʸ=ڋ]ˮ=Awls~lx:B,2*#UZ a|缰d `gOs]nZ=lƖ1hUp`Fy< * FO@,7ޙ$#ڬyXbZl52$OE^Dxdv'+bz["%A466bC &ch_c"%>CJCa$=2!x^9LbS 0NFo- 5k=ǹ>F Pą%y9 ݗbmG *TEy= CF@,z֝~z9 $~;q1՘< Re@T* mBB0cCXg[&*`nSz7(@EHur J&}0 ~io6鬐t.I&L'n"IQ|oeB^D,"dقWE+E/PUJtA[>u,{o2ŢWg6~{mBZr._= ;AU`4ʭd{h}PC?C<{m9ĝ5hLޯ\ ˘#3FF5'= f.¦Q`bU]3Nѝ LP&VReW: P݈l":n.8:xp? ߦ:&ֺ!~c3]:`Ğoma֐1(hXUГs~"5ckXG}cl3+2|Eoų=wUf;u;Ւ0<1z%ۮeX}l?/=864ɆN3_ a9w/wnF F-1z/&ƶDoՋ6͌boо cux,XqᲚfI5uB"QYL:fSt  &4ɐWl3~:_RiwfL఺@.|^,'Ցq%q¾0ol4ˑA%Xi 9{{(-AZJZ oEddiak9XI#tWoa t'M#d5㥺)c69Ʒ0ohAXj5ܹ-ő݈7+$ nՂki*[kc6t 0'2c=+g6뾥JDu;60V]@k7-@bEխm<]&@b !G 9YŦhOpt w[X+& mE uEwز06qe0t;#Sk?u8-Ái,D{wf`#/t6&̍H# j.ZwhC.b:q\k=bdP9Nئ,-q\|?N#33x06$^ysܺ̃3Y;[ٳUK=D !*;@FF)HM)@kGm\7Qlv:"@㫔:2~QaEx;2MS֑LXܧY<.k$7FzwIU 2kA_WʾS-<#k/m/XtDp[ZҦu9|j[vh5zuÛטfT6:xKfMue3"#&rBtH~زBd*}(Q,wN!!ܓw^lsm[kHl?DL#qZKSBB`1e)wYE[#YGud 4kT pq'Ðt Y&P[-/6$<+")bb<f:tNXCйز ;)J0;oxŝwp;- cU"0\x^ E .ƶIX~H)vFɤYiaum;'}Z嚅dWr(H8ʲc}iÔB63c80ffe4*&h8oY ߳<Mog ;# @Ĩ&#ak+YL쥔qSrS(p 67 >l"36d#Ye2&Zjo [uE" 'gde5Ͷwnœ,/3n C %9᱖ƶ# AQNTӇ# CѶ 7+})׮ږy7v,RF"$e̬SWUy/' ; YICh\]ao;u cfݥ]֣zW]8š2' 8*qD:1)K4;n e%q6AdVsuŜԓFjxK>Z,B΋0Vl.8Ţ\h7A&MhnxB/rİNbvI5ok ×Q'|뼔7қ;'v p;nCPy; Pe(QRi0:6:^8S@\7. ? -N }^>!׹Vo]j7QK-Ǩxɛ|4i: l}\ca,5k=[em HE"Ν 1$]_U4pNRwuq*6{OMkc;x~ty[뗩+Vz::PzUinC'V!h073ݢ:='r`!1fojj,@:2F]Sq LhmR35] @ninqQ9}lpbo#o f3Nũ !S] PA ə+H?g߮cҖ5bQA`O'&!7^ D9V{ @'*P~I J>W{yDFȅu 4D7WoׯbA%Vq&;^۱vs>h$WgͦF X$EѠ%J!g2ai8 hUtDuJJ=Oj(@t@Dys<Ҽ py"zҐdQCv,k#Lsd &$ɀ Մ3$MF"ం"M҅\ӈMvàP\[L1Bc,`}==ni~\]@A٥GbH8܀jI d(%NU-ZNcdaC6!!Q5+!HeF]NME$B$7RK{O gk7J }X L( h|%!Eس]4fwÌ 3|ז 4t-v>ڍ[c~ȶjܗ:۵JryJuo|4Whun~q&ȑ[% 0TF(|b0C{M*F̓*  67WdgK}3CTL=k{MsI f?N_Jix*AS{7n7h]K_Շ/k8X[;;=e:wbG1(X7um`H6ႄòhj;]eZVv%;,mܵ/x( +>԰|* .{;l[|ެXIlcdiWr^a7$4k9fcXŰa3 %+tٷfdA4oq б;XK7  owdKIL 6-6wb<;ZF5`|c;ǁU$6wp^ puR3h*!̶PAgs(ͳXZlɦ/LM)/ߞd;Hk@!G`Lq@3D;NOaNBl1ai U>8 8t᰺엪l?clS';C -IQu  =$\ʧL;B%{J/""=N2?Pb[94JJixA'(9!o(J ;e;I%ČpȏLqOY1F ,2JJGH0)")!ͭD 3&4}_z"i:? S 3\4hbٜG|~0B Q,:!8VxУp0 N+6`Ți7M{tBM`iؑAm 51K .z1o:4 &LM?ƙ,9ַt7i{=OMkw̥jLn} F\Ȭk@lY6/TpQNb3m 3[6p|eo /~`{&~wu^?Ih> Zr`zq*BY BS_[j69(X6fA9`7 Eq a^ngs%cyAp9H 6h*z QECPMJ+OSw#\i0b$O/ρ3Q#Jc\N p">s)RP]CBp3Bb,V&!( ܎Q s=((y/5ۚBāӜ&q6#hҜ&ᝊI;⃿ME&Zph̊9vtB*N J50'B!38\ΐL',>C:(i ?_Dd&tг Ped*z HcAP@Q3[Hf%D8kِReTSUUAe 0*{!x*1S2Aǽ(th U6# x@(>_,Q#`r6Llb{޲9xT\ AN(f}Ÿ,)4F.OhHa]ǥ5Z#4޴n)pJQLv;[c[>!AJ=QҸ!h>!rrPYFIa$$Z T O!9CS,[ǗR[5F" nŗW~(B]̱O.j/ҎR irXs h|qM1ݵQrrWE1d]ƵE.+&-bØM:C;2d%qO~ ;Awq2b6fmJM.g}VgpNVÓZTl'C"qCC̘q:^ 0KutƱkNK:,{ݲج6RɌ_dU lk"'tٽ;KVH XNhͥpmkjO NȖGijWI. 宸\7N_qܹ٧J m#IL m7ͥFA+x5L҄ & EPQ:XzqQlO|pq dXӆ{( 4Dul}p}ؿ:/ krЍLrۗ{H@de%&ksRAc7G1qlE4[|^/b336S%M=5f(pP [J#CΆɤ6a<2groMT$l\GNXGD\銓%PW9`NY%:i9@EEIN v;uf $J/C>(h>?(DATIK0hhJљ@d&0Q9 &BDɨ2 &!BI'!Pca j)I$.'Z)^Oo`Pd0IZPәF*"%6`JbcUiI;Zr xHc6r3pq(ZUġ !X_\j !*R@"a!)!&((j*A) daR@X&aFD%IHؓlL)fi(Pe *"(a% BIbB*$ e*\B B%-@ <HD$Hy?3a{Lx]a& V?)Q1CDnq3i]*40A Ս@Hm(jޭ/:ٶfA0MwQ&ncPj#gW7*gB%L0DV 4Sq@Ԑj1P87t'.6F5p0 s2Xb0rW! 9A*4!w@&qDi10\`24.fpc X Aji5VkXcdºVtâBtB :5*.*b vWx#ALwf )FD iHAI\aA Q&,!'x2$5QLJʺ֕5%v-hVHP{~R`R df6t~KpM` 7Dۮht׀5>X{@3gC_r<0-j]Ie]dCM͑$hT *DPDE.!b 2* T: ҄@qȡܯc%ARRQd]W ï,b$ DTR`v렲\%ݿԔɑ v" Xтs~?^*"@Bf7n}s& d%1 B #?K$cL;t(3,,S}6w?AF1+u>j =ά}+lPX7:4 > Dv*%Op>|,#)Ņ:RYB"@$=BZ IINm2Ut1`8`D!@C q yu:xET1ILC6Ik ,pE7P:|Qʃ=QAJvJהs iR\>J NGώ\14>v#E i)x?R>DӐ G߇*SZc"R/cZĤLRmr't?c[BGxW#h}d]쒑V~6@G>e?1˛}yDvm6..Lwi@!UK-7 1'!ȃHJr'cIa$Eh4bT P#c6pb) =X[EJe(:|nJ%Β9`6N!k8pvoZLC$gr,4ug;NP]ťޟj A{Lu%Pƪm.8ɄfV4 c-=sxHR+qG6fF 3wtppʽTCJd ,@I\ 1f0iV´E7m@RRa#E&HA2Ff6$dn l;z5Mo|^RyNC\kLD[6zo l:SQȀ2R@YL %㮄 1BHBл؈B!鷭U<ͮFPcL( h2꣣88/)>V=4*l`-mN0}nU-N$!0bоࠨ%I qjХ3zmSmXcڛs)޸] {] G^^Lxq|@o\䁁co;oy)ލn7=kbm8|p[VfgKтJ0+ev +CQxaP|y (FIvD1$ݢ/|P 4|7~;>cC%O*AFNr <^(Tt$;kz+rv㾜:dvL&#C\OL:įm,A` u) $I0MϓNI|:@H!^UXpUTTTSfr 521G8"TMZ ԰4Ҙ<oA-EBfa9kr!X@FbM~}i$N ihގeUUUI$sW*m^I:^BG;Lb@M@M͈d0F1K&CpפtD  ! D3h)XHI6W# &DxyU5)0DKH'b/ZZ>Zd5=)r^ߙv]S0Hc.H^6G}@cd:G5 Dy MKx2k] 7acb%DI  1ZqM؁̓̋k u-5ĵ1Sas~^8#w} o jQs%5xҚ)1fͮ}ϖp<3&!BsI$'NtIZk;=U<`1bלNSBp~@ԸB2/W>OٮSRU;M*%I$a$#-ǿ9B=*{;XM&H |:.Ў[n~qo+4[FI#(>ΨX'd;Sɕ!9$m[CMy)- ?I/EhiJATbH;ܦz - I XVc)6`6k0Rjs4;1)ʻAi 1 (DLQBrq=: |*D˾ z urzb<0MQŨ1#yCO3`85'Jϗ&X@'+PHhRlDh aDm1x aϿI ?Bh1Œ !SՐF0DfhJ%Y-FQI:Ksԍ04^j 8 i "*Ay {B$|]{Odja<*Y(wfs`_@+k9{p9&_C=un\^\o4 ;=uŀ "RB k}Z ϣ@,!ɕW+M)|poĵwJ36*gʼ,Y ~D^AqRR*FۅO5R4jѫ(V\M@^ь9ы gLB*A5Zԋd硆/\r jcv[5N!ЕMI 0aDhD7 hMCk3Xa<`B]ʉ̃V.R$W"lJVIVфE6A CD>$E%,P3 "ĩpFhh!SA 'r7wI8葡#4Dq(7kp#\sSX̴1ZU/Y Cx1;  AMj|>銦tGCPJF<懊}8!^CWt[*}'G ` 3_ 2#\6 ]Ɠ9Ƃu23-aOo"_&b2w_ /gr~1>>8U?B&%zeWh.(#C (3&wm7K¡Ƀh2$&Jmd_ɿq +ㅭE !GQB8|Lt !!ۭD;m@jV ZH9J C CZ̄\ݑ Km%?WnàmTXB%mEyG#)'Ɠ=tlX^7vDžkaӉlb.㴊  (1AjdiMC ;l~k'L:єIQ6^R' }Phڭ((lYt rֈ˥-f SBIIhX |cd-'U?ЇL4m~fISHD0,.w#֛U@XtI!@yPpsb iDWQ٠+ -2D$*H /Ԁ]=4/1O3%XndCA rki^ "H$w%![Yk+Mc#I7梾9kpg^#I{ _}'_yPw|or'?Mg¡sA|,*yfFU6 Cc*cGAUQDpMBid9U6~4`M~x^5_a+@Wb3 G0@6MDFVDL Q$(u( J;ʴabFjBY`sX)7p;ЧKjARBNxE镤 D(HFhJ )(ƒ$)RjJb(%()))H 2AAD:A$Ag7@~m8ΈhB(&*&H"fd !h(jZ!H**hH))P T(}ADK1M)Btҋ4:1(-VT2u/x( 2ˆd}zu&1٣Ģ@M+^9\ B2BG}"AP$U :>ޝY]u;bxvp`d!D}ǒ< eQ ű(X"O1& 9&$(**NˉizBZ!yJܟܲMJ].Lb@ , O6w-~'Aq{.Y4&p_1r#E^pO%FB 8ٖHOq|U2K-ʣKY $|NjW.`lH99$e$__GЧ^ x88|_/)^׭홵wׂU?>&g'XGs@܀j@S*<,{xLg'. J3W,Z渦h

Fs68'XM[9I O9OFoꢞ4p^@)vM_m?g'T9[OŒD EPx7}of|˽z41秊S;ʂTDJ*JAo|W wS?˘#}hw|Rf~?K ä#kJai bf\WdB]_dnaDhTRYP Y&Q 3f pODvIOA}jMrsYYk8r(X:KnR?pWp;DQTC%X Z)J`do0͉?YCxG Z N(/rBPm]mv!H5NW{f$Y,H0v)}\H11G :'e XX]!{5+Cݍ$h 랱}ؔ<:v "L`+UK]7x#pA'RQ$ @gL8|墌}ΫJ9CDQu#"ik\Cp!a6IBYc-}nn+ԳTTٙw\9$=F.7BdAd$Q >9J^Q $v} !o"@#GtiҵPc'K,R+Bg t9 $T]s31.wlaY6fѩ4J{u(9 )H^Yv//av|  g0 0fDOfM"9ûrjkSVxK5R\0 GHCa6fO^B (̓M%\saSְE%ƾGn= A_HBR#FLȊfb eF"?ż@J`JEEw(4JQBMT!AT%y Ih-, mszx}|FC4MKٳ@ԩ⥦F1+ABJnzchZ둙 ӌ3zM9nXMeM0ZԁaHRh6юR+[z6ٮ^ ]Nz=86~6;,2*~y^Xw#cx(5Yhzљ~{Ƣ56EHz*|Ŕ5R c߄pDM.ޕZV"D$C*=-ps̏s?zpFB2DF& ှO{"e) &$YHPf$B MJڅ! C BhJ$jJdc R8@gqad[FHp0,Œ5֤ 2%WZMxjI )P'0\ ""JbRۆ4LCR+@2D A,RĢJlawB'TT0d>N0 @ LHaB$@ή,GS3n Jj?z7AYA/`6nc|FA4br#P(<8B,# P{ }>/얈:Jti?5) 8?F "#kE'g:7TJK !F#Y4#V+$TpLA'gjAǧk{Bf'a ЕPv=:':ΐFd,CIA-¹ؖO[9x;3>hH{٭eld^yx(eۡP5# >Rd,x6!Z0[ Z=m]LGP$8#e#)6(r.|p H)_ :O~Q?Ah^kQ#}IYRD#4+K_YG*S$~ZS]z\B6I$+ (+ y Ph9>4X]֖lu8h)7#$F;R<4U:++H-"uM Sƞe{z E`Sy3H7 EX!zM~m>ZAB ]GHgo@nsU18hIeǦ9P{N_Ef#"ڨU@/s7.R 3۫r9tB=dZч##fh ldKVk -)r  3n yJ=!J+}ƭD06fUITAFnz6A~ˤοn"in;7Qwj+ c!iE> [fK1}%.ea0; [WjJ^S8FYʉ+95Fv3s&Ɇme |?#*f\dp8$ZEB+@7^Ƹ޲ဖb +-Reiv-"DĴI. Ji m)*z, >Qvv$1VMt㘅<Pÿi h)#ߪN  fFT j \d ](E(/25#ʪ`A@ OhnO97ipmeؚ˜&&$H*RûFe! %ğm6˄.Y!3Woc3L8∽FkPDA%LgY)r X16ovh)BT@Ӊ0JiMhMR]l/ L8@&H"l4#eX&,cE@Ǝ8$!bs`Ih$ݣcX 9Xo MZ\fhj#Ldc 11Y kT."r1,)$2ƚ۵{OF6L SVl (@| DO Q(R "*?#M8A8ΧkTAj y_)Oڿ\).k!T¥OJ „Dd mDH }lHU6VfpS8n?yFۋgl꼬C"1p CM 245 4#I@{D`)R\SFbfH E !F P a* $e e?6}9* 2ȞOm8SZl>>Ҿ/"s<0 ŦX.eg02 S)YBBhEWAS2(^Q S܀k!PS suet|i) b@X{$7HnPŰ D Re/Mp*(4q!Wf} #H]#%G 'e׀C%*C`yd|~ՑAd$ )#C$CM !U2 aPED0QeE R  E)BDDgZ͟:id(;B91hYBX~DH@$!>DE'Rʄu 0$i!Iڴ> @aC/V׽=L|RWZc,L/X1UC 5Ѹ?&{S |8Z7RK kXRny.ZrtBG "UF5 ] Z$#âHё C-m*ބ֐NԬR Ct5@f`L|b@>1@%*DÓ$%5I{YGX  TU #R46bg(DDN% 㴄%EAe*4'ػispx)4 qS 5SLy{: &XQ}e ۘ|PAqw>€wQ4eokrg8Uyp#r a.A<չoWDZQRDx(J}0aVjj) +e6-j žlT^8d#T2LNSM>?}<~կa'6lKBNK1JRӕ?R)FPn+D%KԿ7&_ ĥi+1tE9׃SL|4%+J @b }H<%y"7&](4tra9nʨh&8&CL15fcX$qBijb+( Q@D iԆ6d⹕iǽ/U2#"cD+JHhsepuAъ-HbpQe+`ǎ/ h?G& J^B- y` Ps`#mD!Ҽu0e ]@y<~_%(L|ޏOc??k7Nz`:,202 [#`C.lp4hmӱ4 GACgW6  Ԫ;rZSfP1LD)(BH$Xe;"nګBSmJ $1匷-2YD *!!jN*ZC"j>*[]я2 Di6o{]ٰ!w= mbp II )* \ԥ%חNytW]GLك2 x oKb~MPDc1>߫\hW!rR2+^*,Ey)Da &RXa8٣Z?sx65?7Y*`1xvt}۱9z5$HꦠaV <hv&/TDK=30HE?h pkzCA}Ƒsv 7١`r:9^ HyMRwJ("+EL>4.A##0BJO&)p0]z~3H_Wy$^] @Omrc18e& *2bY>;|:HסК=]x..l`RI0X5ZS>ޞm2^( !*8na IfIBa9#v33$ZAAh S#)6utj !#PzC8)10A+@I)C#1?d{싁CR%>P29K%CL*)KF4;FY o,Lf ӆl"3@db,ȵlc҈%a¸ fFAޔ`,k$ef騠ii`(#D9(ThX(J}͢S"q7p`r@r1&%1ʈNrB 杇yLwdDڗ5W;[F0X<$ )+( p s}Q`6f B82+BKv~2uMli vA:B26v42ArS9e_" F{z[eâw/M4p dCA#RQgA&ʋsff?$%, xQFVcHɋdd+dyD_9t@q`,ټ15| V0=Ŀ_ ht ∭<\Y{3ofGb-ZCVk8͵cl]; #A}='rq1AD: y-Qq0ci*o?rf/ ݏ.@RЇ|;H[ A'o`if0FG/>,;N? ;BBI$i$`I~"#mí@MQAC=@ZcG`e3?:H92@#i's3SFDHIuFZWՃYTs, 87Wcˡ6# b-an2@L)* @S92e!DD+z^GNJ̠ۖ3F!: `) )`!]W[tˏ4gR 2('s5G $`MVdZU5RDYov 9ltx4MK$@0}OCH_My?,?Qba% PFDa(FBk!-(ZDڱ#0X4DB h :!U( k0().,Ր $i`Zm Yf v `ńVHM %ʌ- :t6J$f. k HI>ݫM͠]i60ERސt1L89MzQ3 %-:THyq*UEPn+=n9TYZbm"k=;a*#!!~>CzYfC F \RDԉ9L11p!rH!$ %!P g9ltA!Ltbf=}pD힛Sam/Aw<H' j4 e I2eD4x61qmD }_r*L  @@ |=2]J_O?Aԫ;Bb.B' R/4t*{PqäL> tB%D=/cr벧=`'Pq <\85aM8{c|^x֣9a41i1\EBFIp0Ei@U$R2ABNrv,{[| ٺwsg4h)KQc2^G#@9Cm1wA G &וY&k:" h}rgHDTV@@_G[G*hrJ+5̆VuᷞOh8ZH fhfn9Ţk5~;%I'tLO^**-fNF G$EIB4״i',ooE"%{J~|&`!"EC s􌃕Q!ZXg*y/BG"Wm@IN0'7i` <ȍ`K[nD`Pb(B8@^FP=SgIKd"B6d4 Z$:>}0i`7 N#ZrQ"Gi ؘ<+5vGX'ӵ8i TxdH__<'!ΐRAB_9a>h"\8Tu%-~%f. Oi 7=a GW5lWalzp6+1(f 0&J|ꏪA2h6!oF ɀrQ9My!4&g:jL%w#Rie!Qdާ) LE?z arGt$'j4(}fd+M̊zirt32<1,,EYN0D܇1S}C@Ȳ>{{Ы$$a'1i(jP|Se{򤁽g<{R|'dݐGn^ǭl0җMmPA~,ޏ,y3j[f9H-}M!͐L1)Y 1g$D W{+4ӈ$Cgzvz{yczo_.~>?i2zSt }ڄxyHDG`:z:$(8?Ӣmx ydr~BZL!)IY":$) Lܡ;]H f(bH,I#$fMX{BuGj&>Q+(Y4L0/\o8xxGO?Aʎ! xոZ۷)şkH'sOy4Ku(-iw|~؅(J@+GS! @_LEa CN!llщl:)8x} +AW 0Vݥ^%dg9yiZu9sQ19[gzxp8 Pi&&j*4T!#bծskyFCPhsnm+ ^٢$cO"yI lVWXbtl8tVa6++X>z /)2(.SPUNΔ(3(EE<Ɯt wb JJf:* |,A3ۖh(Ԝ0l4$,oG,o (B&7IZ6"(z _L+tj)o'kqm$ohle mVttHݑ3n썰ɳšXl\21Į.e޸ABd7+|1Na+{̏.]@Zz}]z".dDF 3F蔺nIVBuQKX)s,eiӮ)eEBIGk 6ZN!94ΊWk(ԛbH1jM+07Fa5*aヅ$z@dS%bjJTXВElao)ha)L)VMVXXVjӧ(L9ͦ顰RYIJcB7o.e_Jbɪs Hh&Mh&`$QiS7qm-DsCo!G*rōoo{Jh)/MSS 51ɘt=%EƊgRFH=Z>@ʠ|ppG(ki , $WD`Jti֏&FvLz"<nΥ oT41ipVL<UJ$gĈnG91"ZR~m }F}6 פzo:ڻqMHBBKRCiTiJㆌ!ljF7;=Ǎ50ޤSU |916@v"(\^|0?g4_Kh?G%fnsy%A;)6Kd <7㹻JJ3( Rs#b t3sGEv@s$ B@v8 R^.tf^R"D~(BW6RS-nxw1 "Kl.(O?ވ7,lQJPiT0LjJU0LK`9BM.qB8}rdEj[nbu4uj>i_97h!V۫uA{NNJs nD@4p)ѱ%Ѡ qȱ(. D>f%B5 /mb[`PX\ CAu)V[}7D DcrTwf [\T3Εa3as\q`aLp1YBTg 7@ _)6C$5 \mAc9`ckh&1bVB!XԤHdpq'Tj%0URķ~YgFZbŚ@@[`{]`HIiмݰt, 4ǜǁh)J"H!"г )BA PLz ZFB*(("bHYf%*RB(Hp]G k\3aB2XZ5R@[#w1$?IFI!AD Wt)VP 꽚?Dx|zdG^AVm`V(FEKeLS&Zhx91?1BJ,@dw ecm2ؾɾ6r ySeUh6(Ĕ@^=HϘEvrHwZg\3/[$$70 vp~4 /X>#ܰء䊠H*['aKLU2tj:R@ $BȃP R&M *JPY |ST(u  ([Z]"d+E#D:$H`L4D & @KCx|_t]{H$4Ed0_^iMjh!`:" `= Q1VJ$$(TK~ƔF朓fV)JTJ ZbbU(ibWDdxA:bt.ArT ȥ2YI p\**oU~/^S4$o>k$ '@'U DzD@6a8$`1{%P3(JBe#Bᅉ2Tc{ 1 zMQ<j̙PX\p.`>V ٝp ͉I-lS$AH2M?oĘ[M\(*mppF690,LWe06`6Z>`۴6GEfdQEȈW9H! Z0 ]!3] )@ +qx7")b&(0J0%aN|k{Vρ^$@~u]ҙ+Ն ,3yNBH$nq(2N" nd6 2OFju|PC#l)%fXA!R) ;u>Ha(&)d@WHT#( )ILNҲm9'edd_d6 l{Wj LlͶQH,azśƭ4/gk!MY>y'd!xnI(Ù~vB#57z䘎Ad9AWo&\J j!#)RM$}w[7̎R)*@lkcqw x !G}%"- 'FD v U(IMj^۟|9e߳^3>1Wl!wHLt fעnIǃXOլ&(5aD;" vaԺ' sM)dfIfG0 `W$ֵ Z5BHd&-@5 `C*TFq)Y Fba)da 1)2֭ !@pHQ ƀ \Ȩ2X 4X(1m&2"#0#3 !4K4,+Q4G2 ҄'A+UC5% 6&,q20 676 6ht/"PUY2$jĀU&FFmޘ ]NeVAN8Цj!(0\1̕ӈC&4ucC(Cc0FZ~CYRRGab.ABY'020A$%DA&k(C[ @R⫠. CNT`qB!ST@${زO AAj$Q#" 'SW >E;dHHa A1?'&`0kPP0-M/ Te)Y5Q7Y7N(&(HFYSG`߹:W1$ zM{Cd)La|Erli%@1>?!uw,(Aqs3pQ 0bxia5r\ɜMF◙[fM>=|"TF6пy*=PX"D0ZDxxh  om]a+K'R6h㜌4 /~3txXTHS]G֤l@C"WfmrtHGϚ"zY:@yHЩލ/' 2shfsFf2(XkvýݹG B ZhRJ VO;-G D'́ɡ" *b!)904㒟DSdm_Q&=i\}{˫ԁ@>:Btb^o>Lu"{:T<|"=7r=q[liD֌V?GmI@ Bdžp240T,L_^J$75#ԅDVk2Gw$w?W-Wbp1?F?Ⱦ&PL4ɉ  ~͉orAOI1:m&‘%V9 ˆ@f.2/OQA4!Hs`PA 薁HE'J!JВA)I@J")@1E(B:G ׽bnI#X,U@忑ߐ?混X`A8bI0AaIXfF,dP%Yf̛F9"lp!@p +2b*dk0 fJ+$PMڴ86qMShЀ'LUX!@  1N! X- Aܱ1̞PIlf+,V"/R*yV AOi2`BfZ 8>Á~f`F1:"~5 B u0]$$ BwM(W"p?P- Dr ^ P3ğnSq|?ڐǕDFZ=k @yN!:$d!fs!A Atim?nnQ> "2*!g'`{EK=[HrNBȈiEige !C%_ TF@)\a(B]OP>04VE DB`)PH(3@4z:t&[sFf:*"ZCMJ`QPęHu cG28!RhReu&NZ(5D0iPdPfd% K ۍALCF]L0Bu.% Ax2Q@cA, (7F22p!NB6a?gHWy/f:FÎ` GqOhDdF)6,8nA7z2tHPt4Y:қ5/r|ХB)3d$ʼxĒ(IH v(}kA& Ԩe@T ȆJ@P!B LJCfB'!]d k}{Ǵ1Qb{)~W!0{@3~X5F}@GCF0?*'J(sŞIhkZI2c40adZ"|L G˲R{X%t0Ys}8$}ڀ) XRD=!0"PaD9`&6,nk $8^5Qoe Q8 z])k ZBr+Cha'Rա4c6Fc]W%fF _Z"%4щV##!ETBC$YT *PT2 CAhՀK;ΙQQĵK`LKY#BRDQ; """"""'xaA\f10C$KhyF@5FYP,$f͔0( FTPaFaM"i HG:HUAVvrf! 2ހ=vgB7?47fp*e 8Fpd)yn;BX*cTrfֳXE'#g}5:U $BC=v=Od#B=?sUݗǬdV( u֥5;|i1 E)BJC'"9d3HD4H2 S&đLZR' heAꏻ?B26_TI=xx8OayzNFM=\5piy #s0 FWN:l !5(|ɛ[b$N)dfزowa.K6c1}PP.,3>}%e#E|FFMl*K%o1C ]Tmuk ~VQ#!%J(`\k{r/oY86Eq3GN?E4}yر$n=St҉L?hp:+,0"DkMQ ~/ U bk,Z27u(a2*)@I0ƕ,\%Ʀ9Fe4!i*8wjԤ= ,%3Da Jƒ3壢M\s) ϔ)o~ ehۆ@v⍩󩖪ũC-D{7PB(Ёr {Z%!&Humd?\WYrp0ỵȌ6$ځfhmG|,,ĀdaϏύUduWCBš-GEO*P#b<zbC!hEd0A Fi4{|4ChaMx^,'Z7"xz c/5߁̭r2!o)N?Vk1fpwU}E3=W+́yw=Pվ>`=`=΍vFzu{5 B,^>Y7f?W|ti0^G_9@TQ sf.S_H)!ORK@:r@r|:dt!S"I$l!)1KAi X-'l?F t!7Ay8E"D[6X&y' p!i* cor]"#*bAZ3PTAfXt_ 884a&JZm,kA@,xy@ddT !c`'(0/^PYw |`|yVC+9_s~D#N%Eٖ>এbj@bb2p""b &RJbR (B!hLL#LwO%OS2*c)P a>/7 F?f 8=f[0xF`b'J&!!tP4yC~ m{IFU뮾CbLќOq}}S,* ʓ! )*X ("c B6pw>)DB@v$t!D-/#~W:/K"g9V/B%B$Hpxx3WXQGvyn-aOoXu{JJKb'u`p/-4C(zQ\ Q/.5'gP0kf&:qMV(ቨp20q03 1&TƆ KLf%1??׃rMAɕ! E/QMxjhERѢ+MmEбfl($XTf-gA8$MvXPtu r~V~?SCPQK!;b@>AO37鷧ІJ&\ؚ㑠! w%XsYZ Xz -Q__YW®͑qw!UxAሒ$y0Ԛ!$2 H KjX֢ENL!i 0e(B|4oa߇ՌpG uaPvdE+`ы.2 \h,J@pzZ@uJ6*ӆRȅIyۛ0&: Ne(ñ5RG4!?#1)t ; %ܳ,sE-Bwz^A8j$:V| CR/tx-ֆQH?2ZˁApODSZ~źXMW![d$~XHItfEX Z N7-z&HH9ЩPDA*hrP>=XOZHve(H~K[QN`'"B:3fas/V U+@.$x'aœ@JR F}xBD]M1݁Hd/s\XL*R܋ \I|ޗmRqj-kD9~-(Г6FW\*Ƙ}8L3({\/0` ۗ5D;Z!^|=wR!0!IFHO}J X%?~k_! jIBJR*j*"*(Xc \\SzY7Y0$"J4(la_ER}~v\PqhPMjBZU(Š1X?ULW>-ݟB_\vhq=,,FU`}_okʥ!Oޚs6}D h J# '(A E Q\,WIpH&% `2~0P$/h?w0L!wmGW/b8xA#2{lrXLGZ4ŏ4je$7n`]""$P\jE]R9Zw1R ">eNt3iq@`)P@ DѫQIhTXv"^r5cd* `Iɮ"ji # yAr"PhzXHV? ,qH0o彙 kM&M?S#YSqRS\ܒ< /NBp0,cZW}* (0ȚE2 Ƈx XaA ,xÃDcl-EF0 2"'X+ѕDtKK) oS_$$lB0G}v"kJCg4um |0-.Rc4`iwk\\t9zJJW- R=ި$C(ȇG?\5_l$Ӥe+DY[>HL\lPj@YT{`p( d&Z1#8N"HX \Hdd iLuhRhXf%l/}X1uy H:G ax!W١(a(&@x[JWڑ1F#^Gpm@9PDz- ҉6izǒa5;Y;`2 S0fn24N+g??K:HP>C"lVB!ꞏc8 0LVY \a%ءψ*!8>~h(: l϶,H1DĢ*`w*#0yBITONlHQ·ȏEzw=ֺݶCza@<_:`8 E^/˘h" >(nq , p3((iL*C%MBXѸ¤ԦXrOEցDN"2 N1PZ661L bt$p95 {2ف"]v)z68{l h{ ]_$#@(zwhr{FAOw q 7֔hQ|u=aAtp˸nKbRMԠ <_<`aH?a5z/mZ@h^O?0OLXz 5=CĆ}D~Fd: }&.A?xP#$;!ALn;)3U9$sgXJtz% k 'Gm fA1$ژRA8ZEK F3}NBc_-/[Q5e.ɤb= 4@⟰ "Ch 5x68Y%EUKOC,$V3 c27 /ˆ&nzdhQHST梔$`1VT<1ٕfk S3AԚ^K"2bD¨#2PTآ"U&99[B\=(f\vQ/U TX` hqѧKpzNM3"9=RmS 1o1( ',3PiFQ%`P!HFDIH F6P G=7b`Ch(i(R! dA$HdHRf&d& R (0#_Fʆ(cHeMQ4VȘ.0&)S>iB6ų ڧf2Ȫ HB#EMIoL'.ӠL˥* R"ncuFdsxHJD%AXITO"Il P0 - \߄f͘{hAI"IDVI&Hd(J@dUdBU!odSt=!rS'숾2A 85@EJV>TM0oz?vs+)W]~pg+XTj4_D{== .'I@(vMA EDVrt\UYy@ۛLqVj[wa]QSjq(fLT5#抾sVABEE@?b0>> 2$U?X AEA T) H$KK!Ah D&5  )۴U>0#7tPL!@Sy-*%ܗ*Ps0=#~nlDhBc!ONH>>ܝt0|A@KPT2];"ģZŤӄ,RB1d QRS$CA2!Hp0D|U@>.S3% {z)*='f d:SJg"~q"ZE JI}{w±$!;֤7WO t 3?LQs&O ٯ,hc26Hװj:prl=1$ Nȓ3Sx!O.~JP`1M2[e`rJG bdJQ&-tVJ+-a|FAf<)eS1c X3C  $ Z2r'(,gW f&p ]fP JBH tfEIO0n?ld̴nJշBx++b.I07$6E$_7mnSxqz%6<I9HȒ-,?D?&\v8xQgZy,:Jd/w&6,؊uor#GqunVE&DLn&}:XO뽵mj3J QZʝxI[rM;_?k$UuC%vJ^HW Ko!\%-r$UQa9=GO'cGhoR. uA_;OZgWdA$x v8<@`"zeԍ)W3VQpRb3ޱFeQA\%$>B#gOp!+kžXA+zrK܋T0EK#%+n,cm]q'vI=E;pj9p`8&&]gyWhb"Bv*r/us\DVsh0En^c-!,_ٽ;y̤㜣kl߼_~%+(kT+o&8\$/c/ɘjc/$mZPC^oչv#d[uWRȫڨý"<+z_]w[w7:mL-WWsw˳&'6SN[:v.&dBo2LF77ɘq3^3|Þe`]i/1j/~znetڣ̿oEQ[Nt-L;<ͨO$B! "=0䣦󴙶Y(%V<'Wǜ^){D4>Tnjk@?ӧ`%=T5'Ogz69(6'CM/9m8%ᖏZlZ;΃p0Nlj"-eJ=C!+( w;-t]/s ΡM8t%.ٓ0tT{b#"Y ՓǷW zAs]030D+Kt߯K9ΑQxu#Q2AC Lj&Jn2;F;Â;f{AL3 FI r CKcUmZ=Xʙ:th T@L1F-aKF13V0{EId4Gٰ^3Z`)a N ɯL5ՆcEy%^^c `E4X)%0QHֵ`njRش 6*y0'ǣJ޴vnWmadfjEԫ'au =L76Mq).L~WtHFEU4VJۙ-Kodm$ZdD:Mjm=V+x74/Al uݘ=EoפsgNzu_v]q&a51hX O<15~!(G; 1bڐVk]q٢C?m.>]) ꄘ7zvkN _BśŠ,w77,IIu*wwpꑀFHS=J&ȫZ9^.߇$ПMVq]3e6`U*GQ| l>:y7q4Ipq 70 b! BS5%#lJ36֘9֍8ȤƒsQQd p.ٓ" % B~%#N\j,[۠f8_wsg62,]6=Y\viɸ5ܑ`;P@M<]R+M9b`L $@p^>I(!B6TI1D( U؟qqy1+.^];L?l5OYD;o>I#P~@Y|˙ hRᝨ 1(!v'UDDEBI AKaڐo3YA k`0D5;vI9x9qkD[x8h EL(rq&rþM W41&;nqׂx IZ.KqLn 5f<0σq͡) u9jD$6k>ϵ>/I A"xTJ4#̃DN54Q} }3Bn#{)sYʼbxDOҡمdz% A01Sq _>c:!J)1p P>0fޏ6}pK$ wE^~BRApdsBjf-拀TW0!`ԵqLZa=q֩[Fgk8m9|q0U6zդkŕهưfܡ\.Zd I/\Q))0 “I-EcH۬aFmZ dAU-7JqX LRBB,*~>ͿpCVi +tLOV'7ݸݕ{)pzAogXh"VGMƲJTDESTq"HčLK=V{!}jpEFXA1z- ;M#%`[H Đ`zHRuJzF@@]HqHO紹9#rC2)X;,.òY4>0R\Q?&H C}h,fqV?6=k^ܨjrRmG ù=ZƍkǍ&&C=Lj"ȘMU16 XL8 *D& _^!'VFfhߵH`{[P"僠'G=h@H5>I1VQN^UU@QG%M3x_Z f4zp7 61z1++'It4wQ`bm@,}t>~w*DQO4LuU4[ۀ6ٞռ~t_+G4Dx?.Ko$]j>IPTubn11-EXA HmD%ew-f2CZK'twqAez30z 3#MS,yGed,'!aVBOb ϙ!FmznCDdm<Τ*҅į,e{:J "bCAƀ#'v#oTs.9G}4Q"Ώ-`"˛'Q08xޙ?u:r?gG@$Svy=E! 2/ i16 !hRԦ–0$r8(Qtn{_K6ˆ@ Ёiנm|d@,El=c߶b JtB׉ ?DҔYk#P.^A! E-k_nDZx5='޹-92۽:aTsm41YO``iɸZlG/R te1iBԻz)z$ 1q$=d3Y{S iA23GO )3tSBoq*0C4Ѥ&iE}rI޴g;4D{܎]V Q7F&yD:͍Ôd"^qrEw \_dƙ^8Y> EnTfӰX{xjHpdo)"l&K.Ȅ0A-Ö:G7!-v(h~O{!Mo{,X,feFhYLXJkPw pX^^aH !GY56XK#]~9ۨg<{ӜX,k-`l=ڪ/]/#BUy,1ZvR%YG4 R9$nfO+S_a0ԅXKI9WES jNB 'p'Cfnsl8w4=EFIb؉Ozsrr@D¼SՊUq1qD>ywۡfTr/#hf @O:C?VCxZbNl q_T:h~Ž&?DLWa c=CYz(20%txRJ 7 1ɳB; #bm`~|YIN$oc)0SkÌ{I.rmPv5ZECC|AReosy`ILXD 2RXZI_d< јЛ=dwYd"$lWMo)|bp/,o.N'D632I!+^:/ 9Ix B4%+ꛎT#lbߔFp1ꍻ< )#=W/J/]}Ϧ{w!vkCeIF8Jٲ(;jsRH+;\~׭R>**6K\ͅ^jAa|\㸏h 7lnCfLKƵ`VvGpHK]CjfwxkQqhXԛJ"u!VIz80|=.QZe=p,&9&Pr6\N>B_2k.'"M<|Yrţ_5HKHWÏ_;M (>K)Ē [)K"S}G8)e'uETy{7[]P$_Oo>Qڗ2yKE5.KP 3ߠH6l(P5}W Fs,1H^XwC L ׍'jӪЂ$eRO﵋+?~{-F{nLENβ&}4/5iՀ bZsZy-dد\M|6=,|䤌qh7g"~u{8@_3!zh ;v' Jp& ƽv~od8toC ?Ml} 1eH?@44#vD-<1d>< ~ 9[":P`t5ɨiY1:tNuT X PQg8X]D 5/_9uc`/TBRIbը: ^"56ie<)l`sڛ0H ;< ֔{$ ' p*9zX: toiBD ɌIb+vOvxd 3F~[|ZHbnwo3Sco5?UK+o]ʷ,o;eogQ{zd&+4d ٨y䙾ASWt="lÕBƄKԂ!9;L>z䫏_ zw^zi(0yR32 I[5|^N'lijk4/N5{$X{=yf­}%N-xR\GۍQ]}e;h;y:f?,YC_$M؇ɳqϦ#Uхob1 re~)*$9u%MK#ʒh4b>`\:S"ygb(㩎׼b6=g}MkcN溷qL& 7y.7Щ@#_?]Y! 60:s%qAFm7N뵂"$+:vf/$=&f/F%Swаgxƴ  >+[4{t^4N'q_*A@%h -#0ZՌKw^(NRlT`sk5U i4`{'"p3n%ҵV< T]"} MUn(JiovN7vGD  W<HEAgF ] E$̂Ua%ymbdB~MүWJd%b 3 Mc(J8-LS'hL.X%1,@D$Q7͍Nc$@A! yxUL(0rvdfDܐ*ќ:5:?yf,$;цa|u,U hu3k'!@ڰDV&u>Yɔ:jbxAm>t8{{n}˳}5[:YjoOwam6?m%{{5g4Z>V YۗBS8D*ztxh^ DٹFqz CADBo;w?O~f-Ƀ)P[ayDX Ј'SL D[ ,F ꆣS??sS#^1Y 9Α(z ҄:R+jhjIԂ UݎmaH כ2ϣFcSE8.^`qStB'Ta>-\Iή fѐ'w zqJg(8ClxBg$QKW'U4Q&ZމSŀaVE< ƝХX"%6}@_uC :+|W.'ī+l̸Uxߏo3 zk< T%M%U~9ZiJRӂVw=Y"*CRԀ_q:5L֣x.r&y[ҕBͩ-/,(G"pVk鰘]Ӡ*m]- z3,*\thB$hoU$V(+ JkGcdžی  C(* O!H!rY9 g4V`gnj$I#҂4FYlom ("c_Jv5R@RmL4 uT-!< sq:8z8.2}B8@ nV1<=ٰ I5Fͼ,Z%o7Th!2 9+J In=lxhٌ=Hkq>tes/'U'*+K+"61&q/:2d&W( ÍۡNH#;᳴pWxeDPj |# ^"MOlEl^etkj'N$i$ޒ[aaF5c +4+X .׶ul E\tc@qR{Ly@[دթ&h{/Bkʅ {|B}DԾcycme4z Ҳw()1G`կ 4ܵ; "EkNj~b*.Ap%TUTwb-R-;\+< HD"f$2EάmGˎP]*qJ蓂J9֒Aet:0cVȐx62 V/Twi/l^N9u5k$ Pv y Co#@R/ᖲ$rAZ\Td. ٲ+V6)xK( .ÌiBE!eT@զ:EX4Oow03he\x0#dĔZBVL8nF&S>Ғz*o'kvbD6L*bB ]NHKy*M8-W SiOzD0}| ^X̒Ҳ4HpSGڥٜ$-XƞZ[v?RJP{NőhmXCX|4E4p|SqNnĜUY:EK6&Wri|F~3sDh! ̇aD >+*$zXH4 iG'aJ }^`LՇ hfy/ć6a A 3'%UV4=SX^aJ4Y@/|.~|  Nb~X|@z9 ]%SC !DfC']r JS钢 Ql.!Sd\wZ 즂,7.ϩֹ>ZEK|<(4";zaRWnc`A|r&&ΡH* j[b#e9,,hRF!PY rWVi[|i[+xi}ːZe,68Ig.Lzt)0:/_^OKyK5T5l ta}{տ"SU3r+!4C@_O|1 zIT,# r㛍P}mVMI{ڦ @3R@eJ8i,a 2r6$Ӌ.h͆Fk %}oMncq96Dt SG1ıgN3Q0xF&­VsbjVW lT6ҧElX" _!lL,!VJvT}P` Q})*o_vKo~wP%>XHF[ޕƁ f+3"M)I~nIWGffE© :!I@7} Ħ@'(&ύRV^TZ 9Nj~GTEM(:e),(r]⛧_CEB{,7y祉2)7*<.>+É f J9E +,+S7,a7 -;֝X&Y?0=zK(:}"¢|y헗elC||6f!k/iRVF`YꋳZ:߭e`ƭs`-+L yF΢C? $|9l?u4tw-ɽf OX\[Q _J^Kypf`ߏ;}ј6;UK{Ʀd3\rah%߳p Xn]._B-" S#S!)XFA,`>JRf]j l.׊/ϬxdžE7A~GP#%Jz%# fP] lLHhJ7DH(`l+L 56cU39ж"!OgLtR|>A@3Ec InS/݂tTߏM@B|~N]/+hOwV k}.pM#ؼBuq̲TywuCQ7W.)ɦS>[UZ *f! PzX aK~) J1%Y/bI1md6F;Ra#Kic,(U&(^[V^BK,7A(G<"rˏI![=&,((\s!X9G\;ybг$Yl3wm4868C1#pA}aP̒bi㏣AҧEV R,y-=}Rț|xE6.'%>W7ZB"=mC`[{+ u=C$Ïs~:w-:E\)FOCљtbkr>sAFFe0I4-F#/f9 |Yn kq,zz=`BZ+[U柝ECjsmdݼm=.ts :MG V+RM4)Qio𬪣f /A  Y2[%poc+oa]O¿;=|#Wz!V Wk .  3xJhfU os[Nx ߾߂\8&r}!>c]KqeS^=XZXIa7dB5nu<9RӒ8#^Ef?Mw7<[VF췕$ؽaJfMXEIȐ_BE))KFf8GNa3wc?@gxlP ퟃpҥAO ?HKW>Ԝu=]c|SN݃\] _L~8Vl󫄒J/&:Yx OWŨA7Q:(]E",'To|gwM(,Lصp#)w#wqЅ"'(/ewo;ϵ+"[ c#1MБ1hӏ~2>?Er01Ұ ] }UV0:x3|[037xcc Ĩxi^,}A`YPS@?1}`B{'+̽KrEM97vN8J(#3XP++Vt( vR yI7WYNU֪0z} :' (TTpؤF숔IDzn~=j@cTuG}2YpٻϸI֡JIr22V1f(z |<`?\ֻčZF+qoMjn7 ߲/.H^+! Y6" z}LqXp,N(*9y/_4PŶ/O9>>|5D?PžcD|Rpj꧂ϟjy N+WTٗ4}(p9wxںZ&u,'kc::E:$,`r A|"XcIO"NdZf â!3W;ojnFM v_ۂGi2@-3BPqtPm =G^IعXW"%sق>8 f}ku] fꕿу~l ~85KlwHlGѩ&tnFpLL7w{CYd`*~صC^ ਦ఑LWYk+ X* |C7/@e @b1f>cSfj)eXb* yݮ5$ j0OTpJ^}]q+βbrf QbK*C?L, 7; $?SU40E >#u 'o2QF_E!lߩ=}?QjmTһuUw| avǛ2Y'gAw\%'Wi>a>xDlɟ7(37-2E\ml9h"8PL9T+3`v;vO._.t]L/_-=s6{wqI9' ՟`ĴF钯>M5Jjvmg1C"x?˾5$w=qJBsYrS G"GAݑv{w׃D!h4*W`x0LsTW*.v?Ds}T9p D\E3v- O:Ocœڀ"7:6S]߷_3wkd~^$8OU\$ fY FݎYvٷ8G6ƪ݋o853l* *g/Ol"o^ Rv1)ܗY:XI8kYA-ְ XZIs`MB$ӮG=u߶ZZ֙*Nt4ܺ3l?`I8ٽZ;/lls8ϓ׳Smcҁ\5*9*Gh# Y-"kٺƒP?z4ؘ+h;AB8FA}"9tyK^:oLJ xnDJwmi.ۗSf]8*cinS=_8ݜzΨ$F̴*dGX=Ei ztDiE%vQ$m}mDc TDu`Z(Z=T z/Ts3,JXzH+ѰU=yMjѡv,uNoլ q&7SRW:e^a ZpIPԦ .]b"_Jf(y~blK#yG}0 yݘұ @+:}?ezR_0FBcwtLW92i]ߵ'#7SDNd7c^FYBUO RkTcçgħ3`1MAgu}9@U|ҽ}# cD"[̖*zz;*]Z$ch(BqrMv˕87ƐO7wQ+bw^iMɞ$}L~xM8v )@O ^Xn\8w.>&^::l.ڧ.6>;Lj5!QwbT-1i-` ÿ)sfr> Mamt+0jnX0& i?ݞh iA'W7bB7Gk@ lCѡӵÔl ARg,7s?f֊G}˛=G2߬AIůG._7"֧ U =}C~6/Wel6 iO5,۽Qoȥ՟7i%4g7U-I߉p%apR5I0Q2ǹ"dQRAgxXWxAwgy,GO-:N JNJ CIg ӆ5ՎOGk:\٪ߵw>MyV_>Jn__WRs,85(/pFۏwƊg&'NcS\Q% -IDmϒ@篮Oa'Sw&}GZwݼyuF1Tمb Y9 ,,Xr,)Ǡ2 *8=씰;8~v}ZA y~>z0tFȣsР3{ȚrZ~Z"}dSbUY/0'ۿF|E|)Ȼ_=wƣ3 ׷+&֘_|+?]-UU9tt\g4)9=\ ()^[o2V*Gka_Oc_1;'IGᣑ-"@NT_hI9@oTB3ՅRe#5u2ſ0I68 cBq,$n*0OOz@V:PְQP[Wќ쥐Q0ZkΒP#+cO }2g־F^Eبg{+" /oL(yX/^(ƻ K^KzVUŠh Enm?3ll?"#*wv'.<?EmzP\/ugr2_3igmM?$ۼnaЗw+ YЬa2f]h( [||̫;V;!_[>MAjWs谛!nTĻQ8Z!tRRy49Q\Pn}}ծ{~J7u6D3ćMo+hl_@:^uvѹKwyEueӕAB8io3wD_+ݚzܔ_KXq|@-Xnyiý`@ս=wu^M^o#Sz㩃vI04Vxl6%j8ޱ+KZҜ99sxG~j휨ň\gyO]oӯ_,d`m+KPh#V"eQe6̱XXJjƥZ*mfe-R+%%I34I4,djU6Dm4,ʉVƉDZ6IFi6Y&ZFƒZ),Zm "ldMJd-QY3%*4*Sl͕eEXXҕQY5E5bES53h1QEi65E2#mIkdhe$b5hUF%#bƴl56Qlk$%*j65Z%FjfJؒJ-U4ZafRQKb6CR`ɃIQJب%QQH*-cY-f5dZ2XL5BfLڊƭ 6F*ı35mdɨ̶ ɔؠ6HحE*keE6ѴB1cIQkET$J*J"%$T $ в (D P3"M5%AZ,J5m&6ѴR*Fj)6c%FQJi&!52V+&@ų4ٵQ&(*FUY%Q%RJLld!"ϗv GGGR3!w}'7!NNr U--JmEhlQcTcXb"-EK3Yg=ݟ$;)HJDɰڢl1e>GCnQ>~ܦ>/÷'K+QD0S5H<\*&nۉ1;vAO\c] veae$,HaوTd6ůkK<`}Ώ%d| OctG;,%u Y2J2ХL+EmL32ҮbպɕFBՃ~n_~Î߭$ퟄAw2dS%TdGx`:E}|NvJ#cMѥѲ庖MI벌iuNj.[-Ti(dFM}2F}´ 23V V-lZT[Q6cVm MLj0X[MX3SiL2cdJRJS2nYbjjj޻Bi#& RT|%&ИK%-=S V̥*dh!,(-A+H Ң4 RP"3#D4fILFKQFmbMYEb6YX efT %ыh ™J%FM5[ZQYMI35(–jMcUZVe!Vlb%AdF&Dd IdJ@4dlIITQE5%Ib5!V͋IV$PԠm2ڍcXɬmV(J,Х֣hM‰"6J(-X*Ci#mhҚi*D&6Y IJHQSmQX2jLlmIfI6%%$(Rcc2JѬPdLR&mem2m$K+bd&6%2jɶIi2ci5V* SllIқ m3RVZSeLlI12lM L4c!Id"bLa)HɋIʓkE 1 HZěkiضh[l$lcI;i5ꚹI&!FSm|^JscE6cJZ-+2Ygة[i%(jdF) R&L;*))I03g{y٤iC kL%cYj3FF1 M)3Hd3&&EƍhMRVՓYF!@ Q@)T)3IIDS3d͉$+JjDIU4f1dmZj2DHj"i0T-F  -MVR4l&- SmPkƦii c2PT@PQ`*F@ؒjGm L٫ )Dh,W$2d&)RUhUͫ"&#lV cI-rҚ&]$]5FTF6f[2)ŮR{SYQM%PhmcVCF%)tUce3P$͙LI!SiL4LU5UdHM4$3eJOm)XTljV#Y-c&) $BjjldZKiV[&f6%ikhEYU ,XZu   "B1( K6ңeLbPTĊL-1$_l~tk/oJѷtTF4|Ĵifaco\yZJSx_jvɩ{ OYceR { IP@UWC =l?܀=dvߓ/쳏"һ;7^e&ӌAG8ϗЬC3-Eaib~: 1nm lo.C'y?_o{Mr'؝n;aᩉ>8&5G(d-i ]6jMa-o;$a1Ť_A}42vt:HE(RLF#o:SDcJ; b(h*E\\M+$L%%m'8rApӖ ;l˾v2M*pf+6hlWS!4s!`E4Y($Nr r(Mp3Hc8,I$1,"l_B9 ȚnW$. l8^ ↝U;y2z (Fm^֮>ٝ3:atkߛ|_ynh$ gN!q:nn-GhX$HX4ᘛ'{C#c(ſ|anGOJG7 PEOl\2<25\tܭEfI(V*ήnۮ,a-y&IZ&t頭2unհ-ޚRnɖ$S [*0'VQs:i ,Pcc"-()vcIG,A ! Ha4D&L5N-nZ"LH$"Tqp;dY rv H8x:TY V`&3((D` nC"D"@N ĂI&4&(X[^~^sӗw册)m-mNxxNlSγDD g\`XTX&t]%eZaf>W9xc U+3*H]nn .Ʃι:0rS +-bkSQfIS!2 Vy2 $`\S;s5YiXސƶZ^͚ pbazd&zYT3-Ѿ׆C5UqQrܸxF l( H($2 dfvEltzAZ"qLUnb .[LMvrr9M9pL^cP\X5j`0)4Ii|rEMJ D eҠC ,B hnM+BEesGVŠCD: )R.*'\ŝHDyĈ(.Ik(B%nU4jS%8l"C5peb8X""q{٥tQdgZ[y衡rp`pYPPTی0vJule7QmػR9A|=kUn9wl)@̆!LpBq0| bNҦ4DA1eQlo*b0 9)U)Q"A Zi]&`1Gj)ifrD DMS1AG9CKM HJIG?_M.[z_X-??gfx8sFsS/ |quյIv]/ῲV/ܣĿ75Eɵ G5'?~:5i9,#IY6 7TlwO5h{aS dD= u9$7BDȚ5fo`#.t9CS*5/8UmŦ !^. 2"Q+;&بv.zzyyZ!h|l^y ?F)84ІطA@ER)цOrDr3uN)^jU Q`GYX:-{(xCMx$re;goq;[hՐzd@6򕂕%Lh ݔR*!dFRg6FIfF2W7%pIPʚFĥ&iLe0pqM)Ɔ5tf)BAXZeRl]KNQ#1ZU^FٚD-'% ^ஙN]LY{*梧bt, yG_GS l!Ʒ2W(t)&8Mf6~{#AyE^+JQIfdž;2hnaB;T SMHet9HIzV)6'͈Fy!BCG‡pQ¾4{#6%nENrDKvQY۽0̡Ec;b>-JI5:9Fq8ebJ X0i w)Jl圼y'|y-"B!Ck QALII E6*pV+{RsToFh fe/f94C;+iMKPCLr2g,^r H JÚ q ,rdY,ٸ3VP1G4rj`irLFiI榚¥hEKK$X S&RVe%‘Z J}b`N%Dar闝] h̒']Rڊ̉/^sVz 7!)^PY"$JNDPTLt;$>nh"*[|wmu!ЇLvV,H[Iax[}g'D<6JȻcLaeHb/EH(tfdM?^ƒRijdf̽uRʊHfH(WO;["d FIL4 &4LYEF-18kXgӬ'do467Qgl0$W(LRfl:M""k=R*(F1TN߭<}׶*]ί2i<\2CyP3

]# yݐ1M!mAZHKhfIDH`2TE%&dFYf6i2\4C ' KdX Xf&6+ #Վ0=^z:`TZ(0YQ(JD'_kGO,Q;2 SZ} uJQlkƣlE!a&L(HX5r(d~J#zr%|^X$X4ȳ !J(0Tڌ̣d10i#-M!DFXPRJ`3HlLU6L926WwF,@[!"آP"c2GupPjth6 "Rd#5hȒKM"C(Gs||p@R2ĐLih=vT4d4)K۹Ahn**V Ca#fL -x42fh3(ԒPih&0l`A0Db$4Pl%&HR%Pl%UͺjY d+ PM-J &LHlȒ1CXYW=ד0&hB=$Q͸Ld٬E^8b4Nt5[hI*AJ(aI^-u]4JI%AK@oQ;E7F1|j]N7=`V!L\68+ ^o7&4TWE3mTMSl-5XG䜛g) Žx8ȮT65Q5:ҙ^X۷9ɅJQDk.[i'wONƒ[4 hY!Z(fpIC%dfvH_϶8Jr}Xˋ>omif  __:O߄2 QacH}T*,4wѥ̑J't_X]$dOɕO&6*ɳ}#X*3_>줳dX&\}=:C߉PmAUjrƯqqm9mRC(!tI]X7n&oEs.^Q7nZyZ%*ɜкx4S"(V_ǙD!@|~ X4 :f)40\v9G:{3&vETHvb7sM#M"}DzDC^gДb$[dž%HSȢRD>֔{VN-i/RvCg-o.R:|YNϋ;[&MTg^Fvmtsέ+r/VFh*ISf! '`Qt}Ȍ2%n}\MOӜe)\ aڒ~ڵ"̈wBR5TNr +p\RtuJҚwg[Wia#vѣ7`c8Z2B*8`e>c|.@W^FE/ 683tQ1:]*8 ?FyUFML1 `."9/TI0qj䐀 ]LIaFX_R?[Z%$F58MCC ;3H\RZPz*D\_\[wO yJf>x÷ d]'D!>Fa˜HIP>%pbv̢\ro{rC+͑ "t&NLq?*ga80 XUk3X;0iGI2N$94aGH~tخD99]4v ؤrvziPCޡǶ>K%Sa@r\a)2t_v2#xx+/$x x4HF$7 -ػLr`$1Ӊ$b*6Ǿ@d;M8@ ų+Q 1il  `F>28Bj)WBcfSzsPºdZCWbHMKq&LCN)>y< 7\ <$~;~cs`O_ꔡ=rtH)U"T@"8IE9EϧI0mĩM qdR%RP4'W<- #푠(bi N!K~ehU!H$c;} DO^{"b"?* pOj@\~Q㜧 {͍BBP8$z (DKA 07q0#P֋Г!@B&SOyS=t" !KD"IY"[bLc(7m*o2ߠJݎݒۜᇲ&,rz 2GU#TƞR?LDs9_|jB(Wp%%GoxI0j{>9_$?iD|$?v$& W`ʗ|e4;˷k Yݔf$O1gLhA[/nx͇ft* ˌ0܊O$26%M>}#tt ?Pڈaldi~c$PT )#~#Zei$[ gt )} &41vxO.72s0H% |+& L*BAL\M,1o'@ݜ=7zM(9S镄r Or`"@4:1oz;`Q`yYa&H2o4&Z3M;#UQ!ӆ}b lclorl'/@<` h&_a_f?1>xS(oDX olT:k x2bj)s\j~T )!@BP- E7ϧ1046L6ZF(hJOEyPm Tf =V|>B]{|' 8i.Hv$#cp6?f$EV{<&CAYFt@4WbD88h1&eA1)@TZ#-pYO3UJHKTo\?E΅l eȋ5yС:JtFx0 ѧLG6lU|'PfB?kYW&Lu3 va؟ ! ڶI6|6/[4y<Љ/i7h viT&cE~Q0 $bAϏO:;Iz6<v*EqDMgعԌ7 "rfF*WcsxdĦ,CdZ1GDTn#6roܾ(tUm*vV gu+5n?ZX}+Xn ~2*l)c^2v`1TC 2k;\iuEHFB7mt"=Q߬Qj*s]|٫l+F/ EV3K}] Vs; mL3-5(7X <ڃUQ)-әf::&K4VEnYF;1yiQ)U>>ބ=jX*.|;DY]@yg4sHo&"d\GS-4<^QMnxGDB 52nP^Wِ>gY;N2g c뎀iu kR)MbBBPH&0O~A7B1'פ>{K Cz~k÷`im;f^ P=)ч8"tiP~D o~`bm$t{|J Z9 OОG 1#pM:}% zf& k }ᱚz3hx>^n.di}Nn^7h3lceQ 0Zr˸9Ccئ{Eޙ T>l]@HC;*Dqg!@p;> Ph8fP ; UKdo 0T4$Rӆ`SMoo`Hsg0I3%Hb)BR ]*c&3Q^Du>0ejG"F04^I'ݫpw"ͱ5$CADDQi!|}}$|>@ԚN@+fa'ޡeiS~F9֤YI'J*)!;Y_Ge^ۈHܞ<(We!d-Y8]]tp#${^NnVuri 'DQb:&5<+K3f.0"ű7TfK+QineB1h)HCErpTӑTB:=5??F:J|ӗ~4-fvYݒa %\cu(J7`CȔ$K%%8m?эkNūZZyVlزdaceOEثS/+'knlsvxhl &LAjkJ`sTJ 7jr * J#g~mzy|~ۡ]`ZՔFcY0@hvb'ݤȶغ$F& ^=Zܫ>AWG$ 7>$.1VMf!! 8%UX i ?鸲+ ]̍#W`D[<_h]y=$`5C'DǐE{0`)v7PkڥyιCcjҁI[aP/rl`!%ÜpM8~B7[p3,]O}ϯfc3*%l)UE6{ahDio`vhiw.(HGy hSE"m !ԺEq:}F&١+D6n ɑwTO>=Ldߋy>\5?xHGJ!LI5S"nwl}IO{ȕHSo\YB%LS>4?ªIh`*ɛOB|k˂Ibd@$!# d<R 6% >CP!X #10 h00C$ |FO#sDHToL, `~ ?:PoyNatìxE>/\1e܉T`q @"D TMauԝ(7_߶3-vmxWtƼycruvo.`HPޤ``= KTn(>*"I2mŎ9!?i/1*OdsM]d6.sq)"oȁľRt)t5vT&M͹-O|V1ȖhD>΀PH<Ϟ|٫^zسRWfuZ6gEll7?EmځkhL:C$wicL;,/:x&`RK>rO ,ΐ"^?H H$)g|4F@D#4(2b$G1ƣkh`Sa Y2i1E6ZSӾeнui@`0iM(ـNEry `N5> NVmJ slboAeRG!,wp{ejD`ESt(MI7ջ9 l~1\r9܄׸l,O=&PHE~LMgnhjj`jH]>{KI@-[1&6"k~K$C#aNxcG)zDƊ(*Pʭa}'qns-,J20 G?@睛^~F|-:Iܬ.{)NO.1SbdSd)@QqI:}@ň^|}M%wHIC肦&*CR*nuX4i(߄.gJJJ 6椘hC ?OuQ$"I%9c(Hq ")g )}aޫ[iB bЪKP]| fxVל7T8(ߋ*QKyru> ~%bhI0Rj5nr2/Js LXLLD!0fσVgH `M d'zP煮COD {-!{ax&v_y:j߄llb#dq374h<)};ح1uV0Hb'Lb$ӥ^drQϳuUMQsYqTW$?䂇@}f)U1fIbQh_\M1m*}}GgicJ{ vjytgͱF%=lI߷Xƨ%~Z!jG %>[uYsۯ?5r !,(4ʞ Sk*!kc;]ޏ^Ǻڳh~>{X $@Tov>SϽvG!h$dhR$e_rD ! Dz41|Qnoe.+lަT8;̿v _'Rj9Å+׻ީ; L֐jTX3N,<15Ű3MqS)燳h@'01 Gݟq u3~3]4p ڗp*oNo}T,卑w%ͱa9.j";uF؎uiU*W"wLBM-XGorB.0 _nN㲚. ᖦ4eu*b\qWzZ\aLll.y'o-BSIl=ml{H:gww ?jw&$]|5YSeE#@;BMV$M? -ə!zNW'Sxp|TV<#HlB"D1)]6;::T3.M=oƭӥ~Cڋ>_TUs>iꇊG37cA;p ;#_lvX 孖F:P7]$'zhu)ա 1@zneP XFFJJJpQLHt+96C$,dehu$*Pv@*4[1F+qdvܺsPc),@rS7봱]ƅ?% 47fyw7=xE~+U>{,~s+a骢mFǃTQʃ~Ľ=㸴 l=[?{"XAxn̏& C}ьq6Vc` dA;94V=n![q6sڀ.gy*z;[^NW"B&(& g@v~.۰˨S?_uL bKSĿ lR:]4s#3 6MbDYj,?%[9ghQ-Rs 3e)ws:]4}mZJ;sfXZo1 >x$ Y[(wPk*sl6.2N$34uұ9h#_M@;/ޭfL|b=*}XڣƎtJ8AF1hF=պGoHV7ԏx\g4:l ~NJ~`>0?8l 7ىo1snRrj'hޅ'k2GlW7e 7F Z uODO6ӲLL?MLI7h$xWe}=uh {QɌwi:+"XK*XkQ'uC퀋Vc<؅y]Bi3ԙhW!@v?17p92B${`c}].!,X "n< "5jC;OF?AO_ب(vjJc`-ґ=7ni]vr{2>h>|v QGܢ5vsQb:QB!(5U5RRPa ,tN|a=,͒#RKƘzٵb QM *S !\*/ӵ%0d!? iUk^\eĈgPu󹉦gt ۩,eUԺL+~hZ%Ĝ1Ydq*:^\-E[{ i=IG3SL-)kRgfȜߚðw}4f4bibgy,I uENf/yYA$8ݫCf?$\N5,W2 K4g'Y+С= w&UI}eS/j'\+.ۧ;k&a`rX*1U*L3G<)PT \rNxuV3;&Q!F f>$㱱Ѐ;Y @bI LB{#Lqq>LW;7S;,l9FdJMfaM__={edTպ]iχ3Qs\e`c&c$|9xZdYO=VX2Q/~%e'r%p.>fôiכ,)Q 5$FdQͧTŵvxZSКIuMT fr {r)u8B:WNf8{SJ^m-쇪q*!4CniCviVliM %t R84O)61T43N ! f`ض^*:! "fV lyC7m=s3~oJct!)e,#kbdsS1>sCHWAkJ>sB HMh+dlSY5״Ncn:7/>;-|s2T ,o @(KRl$}$ y\S+OS&fV?Pn&|(ފ~z[\aڹ~϶EsbADPpf]]$zAd%iaKlptKV,rzl~Z6EZ**e##iJ&Q hAF1DY DAyCH3d0˸ym39+lhD=(0z`Slcgnޗ:fР ׉ݪ2# 2e6~iNR)/k$ʸ424)dPb8H(N, bXl (xjJi͌H3LՂdX̚tte65Q)o'~M/Sy(pd[h>Yș,C仼(#Ԉ4DRq0xsκx3SOJǭޚ9~XCZ'? }5.hZ 2ܢk w'ـ$@LvvK2Qs]L)["t@H b]THߵ )&!m+L$NT&۳goh}RYGȠEMM>ݛ1d}D`tn;A$c JAZ 8d"QᬢN)EƦtE< /bBhMfDei(cцZy$7SaRƐŒ:%NScb}{Y^1r/̛Df˕K%b@S"]kFdxse}Q/_׮r]e xNb (=-B @ШNs0RS ]&),:~^WAh =2F]|nz`Оx=d!ݸd,p,8Jj)|[B5A ]Fsaľ:R>Y ]W¸i/_&u_j`a @HL>ǡJSF΋^cp;oBl0r(d*V<.. #C3t."!]>nИ _ꪀ C<>kaC3#;#1Z1]inh [H|bop 1bR+ao5ed<{ z:WܡXqMN ѫf\+kkHS@ qZ5f s1iEȰ8R 9kfn,TZ`*BВ56݊.im`a7nY!X39Pо[Cxq`t ;&No~qSt)FA/Ǚk0(6u+t3\akI\L5bSXGX^b a`x2` Gezv t+tƬԃs3Z_!d@8ze/{ݷ-"u$@IVIP30r:UIʓst(>`qA<޷eL쾛UhѓEBIΛϼM)JȆ #hbaRd@w}2jr.=&<|$`Az]F6n6`MHz&LZ&D2amV>FTLOc(wst$Μأu#57# OqGʀ `+iw|%*oQ){I}C9!PM2H<?Vv#+;r'KM"+g6h=CukQL>2Tv?mhgގYdD3$V"ӈ5Y^] v]T/J5:{]NPNu֚)ۈ ouv7;wI D:M1$>]ɹB})&(-Ij58{4_gkhh3X;QP) Z#;G&8ťY zXkn2ɬ:n}}y@t ́K~?w{@fᛝE'ё`2 ,4pkRkӣ,J֥JjMnKΞDȻJw8ׅ%|0I*N@giIz ѷdA T6ߺ+ű ݮ O'~]y$Uuwӥ-zt۲]ۑ]:tpJzɂ%Jp #3[._?t2vRd9."4(lk;t:mrTUBvڑ$vDdLva< xxV[01WbڶI_g][k;~-+ǁ'X 2^)bh2CHJ% .0tOja0AM{L/qZ2VM+Wd4¤hQ) QXCqPγmmHf{m8X3gfA]"?psAmAm?nw#uw8JXppT_#q'J| r3$_0ŊWd6F#r'ES[2,sv1ġj|%DUIQǍx"\t  I!F} Jp(31]?9BK=ɸQxᐲ2LPwkR;NҴD>PU \gɡ[i!ԎpxJöʍDڹ:,! 8OU瘊?8 Pfig<]. r0Ea]3>~"\:W'Q+s|I kL/8TIynCK$޺fyڽbi$E&푭0WӁS)d((0׵yC?|xZܢn:&z6 ! È!#_k9oKLwxc/=p*]6U7-jӈ3žHyfY&@tNBx rQW>p( 01hy D1$4@';t q=b ]} &BVwR5:k+ވs{٨\$fAy };NFQb9̓4zo>uc.^&!qEaw1Yg.<38s lp@X.n6"0x u>iӓdrӴwۿT8[񂹍4M$ABɛ,?FiX#`\l_$BWinVxҘׅQc)ׇj_񧣠*%,-_qpݺ&@=*d/!*3_pCX@zov:r=t'ĺ &ӥ$ ݸ,aT%v٦}W,*4Qp՚b;LK/O{Jy˯ݥ$Q$lg/K@D߮Ni,uDdɍaSQP T[*U'ei/b;y)F|gFV`ml4C"bAh|ur.!4ſ".13M>иM&^U.ȺL]Ň7l%jMh ;C@e\t{=pGyGH^QH< xqJ_Uw{I*\Vٿ+*vc2v*:'HJcO]Bb`Š]3<ݴͅΚ!j>%ؒ!>qNq90Et\&!54է9Ѥt.ʮxZo6>!źFRbuBҺIw"&J8D6'ꇴGLǂ|$!7vpJ8{穆$9&[.%(`vWț6oo:>+rsm1J8ÝX~;9$lZ,a |]gv­!eP 9B%8#k"7孢bp7S:tLc yZ4$Ma(24¡v؅5o3#љi(L;Fo4vE4G{珷f|g;{aؼ˾޹f.x]B5k f(,vcbɴ&ԚŶRAC! y26 儆Jm - *#C `JlJZ bI #OʛȏۼfO?(^@6DoW3\ƓlQ 8'i݇7xVh wq/-,I{ b\vg*sy H݀]p}_wSN~!/By U/ W;|t=؂>R!;vjdbR,1Z|q، w#U^1]N OF̗\\zБ$頏D2Hfb}0q!z#t݀?2{צ>ؘ>m?v=tL?@!d)`96AA"(J tȥX_Jm (?G!;4BG}'oopovA[ѷ>cEJ2RMz$@d 8 /s7W4X5RCbdd}zsr$tJ/_M_7\AqZ p'!>򟓅hdEDZ9wooAe]R{v{OzdW=8|y6 4'̫mytf yѴ93[(Cұgy!o9Ɛ͖Ife英9kڜ9F`uy[ %7dO H Y]-mzR5YjsZ۬-5FXN2;f~Gc :I1%BA7sF  _WAsN߫\yv[_qo/w>dzxmr$N֙m]E#+Sq/LX3~.e?l?Kl[BG$b^ n2.-/)hfɰ_V>j`C>a᫨ ^zQWPuE:#WY۪]+Ac\3]+fo:# ~%8[>u؁"l+g߹KH|CK[.1߬)!x=Jmr-܀7Y]cR©___;)mTb] wi^ktH7B1vC!ꓲHr90: FŲ~}3p'.c'횵&)(d9m!EHIu+HUi$J|k+;7ۧdvߝ2d[.QSlB4g Ӷm6:/0Y"؋9- )IysgT^w! (<ᓾ L ѷ/{`z7X_$̾nf[üV~& ze[ J̲"zW?܈<%d 3H0IT(z6q)>m$o$zu(9;sBi(_=k2sl03\CVN ]&!ԅeZn7.Y=\h/džOF5/ doZ">,uaUXKҎf֟a] ݻ^femL_l㿾%wĀH|>xngu(S/tY>DZpũI>/c(o<ف*46B# *\4]Jk"[ywNo}a \)c5W !DrʂE{A)Iu OLjtrp74oJ1X7Kgċ\^.X?zEhvheݐj;;HZtקOMY}V1'CLe:2fYŒ[i1ȷy oZEf]CWn`~B(-Ĵ*Ѧ%cQP&C[U *}w.yX=. icLUoq :ӼvSퟩ5Q+ȴMy6$IQ$ؘsLΊ*e,RB(5cm2+^|}÷fA0%PLoIҧRj{3L2O9GR}9@S)Nd$A\RMr L eҧY<>Z'樒HQv{=zg9D'WEG L"6fpo*e{7Wy#W|2?FX:]󚍳4cjMN,ɹv(|HA!,(E3Գ*653XKRZ+XՒbSd5Z1"ڢJMEiKi6HfmdԘ[RYF#VYe[ KFEHɴجSffEo֍[QT[iSI B-OiI0,4O!֌X# 1Bls4 D@$@, VII^m#aKK0,T0-`ڤs ȚV9nro] `]ZSD*c5{eΚjeSשq2f~qH v5̍0Jd)JPD@@*iW7Q%I$€bR>~ݼtPYH`@% ЩmFi"" Ef@ű66* (4dlM4аCǒhHWb|f^޽996 oZZm+$-DIԧ(РҬ"ԚOSRI$%^^OI<0!X*'lg$b]mm^1N#4Hap/j`V`×o:Cn`I04L((FKھE}Ub)HCʬ^~{!irPDH ͳRJIkd4dTE5QɦٓLa&I`P2q[*kSPyI4LA;Dxf?ul:VjUCUL?$胦B~ w$1!؄֘qbj"MW.J}.Km⮥d+yv-EERV\[cbd6H/.UȓyV6U)F֩AmR%.뱦VVmKV%]eK-GȀ`5t*.as' z+3 Fo֙Owcooԏx,蓼'gWLpzDO,LQ  ,.u[劆V DC}nLJcZ@)$~iU"/H3l.shb!q D E JZ 4OOla'H.SQx}'=+ 'r0&cJeR$bËdM`'0^DA '22  NR> -Y5%0<|>E0SG߉9 .R,ru>%oq|Sk"0j]/g``Xzm9祴 t";d`tvn x}0^ƽwT}e!_ZZE"3̈{. }61GJ4NeJƒmmZdʕjMi R[J}l¬"Q[)SYF,$YeCL"WbJRaaJDFiADBKVƲ s`nLY@X"Ga;DCh B8XZ yF"K F2Q@NјȌ0oK fᶶ0 0ԤK0=8BA+K3 X%b0e`UbQ yࠣ$ҐEJz&ͺ@:r灥\ = 7Bdi;mi4Pj0.ޛF(DHt)'C_ɝqMoa%r !" @^VϛóhZ_*SDc2!FǒQIe$6݌bWw@(F¶~ ׹]aioK1 "JDqoL.q}v+R;lyvÙfg&NQ:S Eqic1P‘yY5Q6ԲK}/|TRE V:Wm|<+SQ| b(mK/9͈_04,Q/Bz8 I8wp#:Ѓ.fl,Q1ĭeuibղ~[7Lk ̶/'HȺˆ}څ8=l2v'Q>T&{eHFB(!zˢ4t4u *Hb=,`=$C ?8y8{l /ks6O1Lam f_ OxD;].)ۤcC7[w|XrZ4(@q2<,M%m 04B ;}.@*HJ;v_p5 p @+}mqv9z8z8x;4]Д2ѭmRްH%)hCJ(F)/tN92 ;&ܮb/&_5RcģN0AEwmzf]QAQOnWegjOSr:O[E7|*F(9SNVctHՠiLSfπ&͓0ie<Ãy|e3Agm;=Y\?HlF;x7JӀb}qzϋߺOG268Yn_VOmv͞Kc5lšSdC;Ʒ;N<BrlNLq[ALB慅 &*t'*6* ZV__/McjfpPOZ2fWnL߂@S|!ԃ'u,9Y;e9*fjt^d0ݫ`I1Rʷ%8}"{^&U=LNQsBPsoQ;h+4ݒ䎐J+ܘ3>a%]؅Tk4D9$nJo-􆰷)km 2(JxnjgQtr`f|EBI'6?ia8%=gI,hA1,& aPs)]hy׿c$,6fϷܢV|Xi0bc=p28qH 'O]1ĵ\"IM@;"́m:IL%\>^ F$!WY\Tonx݄ Jiq5xt00:0eL!?zޏL}"!Jn{HHYtgF_9ٷۏCyw/|fO2'k k@IL3J;0ղG1;=9h#tTϛQNYAfB|=\;w{7'ُ=~>r=ۛjsK>n099E}=i̤sd %._ADA۠ ȇ&_Fɠ: &'8'rjY6~vWU+gfg9|-q~k:A`>ͼ:8nk7-Z) 5[v,eڳjqOݓϤSق(8uKlHFNp>#XB|qZc 88Jd* .нOǏ5ԩ\JI;xo&/WNxλv:A?dt-хm"!A|m-'H3O,rkU]bn΃heK..t#\f^HZ/8gT;UEsڻN:Qwּ%Dqs٦h~.Wy.:kqRW <0{e4QŔ=v]/1i!)k{c}vt~dS*;O:9JjW:@8k=*yf`tL75t~r: ZG߸ʾxx}hqo~o9rsr;%[ǟȔavm\r {9fO/Z=K lN n ~uv=2̋mn_ra|<a2xnz'<9*#d|tBOoW9KO@ 8,16͠G=;W˗=b¬lkzsfG>9<-JǁM8^U^ͽfhFCP`,yO|;: f9{;#H(ٟwקM *Gr̪>Q p˛kgOoC벆_]Y>5AY-;\y0SGף:CqH&vqdJ1 M`׻Vr4}ޑNUXv >K|bBܙW[bV_>0'п-ٞb!m63>+˶IMM.ecŸXZ,:)υ x +Rj4ݱԇZcdxIt]|aml$ȥ[wvo0ur+h"،5gbk Ec_t0fs<9&8xԍ햪׻WX믮>c뗺>>R;FOUm+UIL~/y=uC~\gfTQR3O-"i?OWFGn둝=g+Ox|iLw*ΟldcJtVW߷;GfX< k\zh<.~۟F:Rk?k|CGIys9GN%Kz'NI0DI;ScR0D7f;!Hn X* GD 3ӭ/pͮI0Vs j\V[T[V̴b188 *3S?^"̂9=<9*=|v*x.8%TdpTKFeVu)@ƠhBf^Z\6ţaVΖ*Ay^dX/DQǾ07M\:K"7'xy\id.=B~F-s 8yF~@ɤoV7 +lyym)&\Yl DNP$Loy׷2ȀTցЬ';X~&uCV<5PzM9㳪ĢV.iӰJXaaIɒpJ].۰6yMLO%CE=2Qw*D]15J/8*#v>jRC 7dS [a+aٿJ'c'˶lNCńԟ)oFwbٚiN*e׊uC~˺hXywxKt)L{WA3Q^FZ:qivl~$SJ1|  bͧo= 6{njv1ԍ!yτ5vvT-;~ʙ&qx(/WZgfRiyɷ t㤨I %)3Pbhf\;-ټ—Y>\&M&aۓ{q{HL W cѣ0ISyS UwF뼦'-3i;|$jKR5ª,5}fݪO.dR>s|oƧWxjsG^V(ǿi;[|} )_G_eĕپ FlW3LOm/c5f6.`Fh~_AF+lgL1x޸&J?ze=_3)E{<9fCZm*Hçf#Da\x&{8B1 SA~N|6p:M)J{㸏yH>;jC$ |w[4홗+"gbX3"%,_tX-(wJDza|> Ɨ7)00]e&'fIl:? _3[wFZw# )'ac42DCn[T%w#EP6ur"GՍ_ɒU!p2+ɻĮZ^NT ӾP*84 #S^SDžL.4KϤw&i ci20˪"1r}%&nAqܴTdx()XN_>.V;db98vmbIdTQ@G|PQ4sw"6ѡGr`p A@DH7F#ìMǾYWKi'+ZJH:Ԛj!dQ96_ݭ(d.Vv7lS2sشWnݲ_yX޸Z{`84cIa+nLC=?$NÞ~_K][q26{h֛FZwY_g8ˏ-a|/)SVFhNHDz8Ŭ,Ux6H2fXCHB{8+oH)M}@nKYqlӠ8Y 8ɫ/'䀢(y^=?=K ci~'³fLD8)6lD۞{nqW/Ν~t7dap8?d,',M(t:WefLD"HBm7µy+4LMo_JsN~ `NU+>MnzcOݺ0>d:հMڙ vQA1a $]8/0hhu|`5AA (}>|do 0Btta3&mz8 1w8|aTxx#CcL/S6$o󳧖9 CvJ!Yctm&u\4]xD_{>JjmӰO68 g/ +j7OWKRD/! f8)IwC$U:30!8M ۩n'7TA rv O8]vt95:HM5) Vp.\a8S5ߟ} mX^v+HAPl0}j)BhΏL t:Ԙ̓^IXָ$Λ y'59GФyp8s-Ì26mfM*<7]qY Y4<6DI{_{ЁWhp3H2M_ٌv ԛ=ؘ Us^M "xx߂R6E|ǭٱIpsG.L@qrj,l7Em)-+IH' #tB q F D"4Ǣ;n"p&L5,}-ѽk-7N7%ݦ46 ^\5j^|2ؓ9=Otk|0)D?zqiok˻~2p˲Ra%ގP ~_g7ig;qJ_W3,UUud*IeMuy;S7gD͞DXp{!O}Wi~{Ytt2尝K元ZZRAW mm&MTC x4ei^{^jTRY%m- JIdQR4MdMRſ@SLM!1Z6Yb߮,fԲ a&G53$%RiJ6cR"d͋(dR%eD3~E,fa2~1,{|U54%*`hJCJTy90#'Ix"9?'y Dɡ@~8N/"Ae zJQ"E B; :#!R \ 6aS!K(PB' ,I(#YZrVnZʚ!Kl;H{0D1x#)- "XX02C !8rf3&BE Q X帑R#DK r 1 A"-A籟UC*$A a6GDԹ#@5ca(ϒDcĮh|ըLoeĺٷ|9}W &VmL".偭)y [vIx UXEu33`ײB!͏v(eJ=$ᵢD]/chޭ0EM|}7!]qW.21B7BPve/bUMY6qg D0{b}^ kYٙq罤q 7(1v Ap+>M# ۉS':kwܧu}L 돎{ݠo>%ue%4Q bi;_:{G qޱi1MN&&N{ 䭟_u,}MJ&8,t0j;/ l;aд?C mPHٵG\}G]|Lǧ^؎: ſGaRA>i[Մ=>0*i6_v|6( VG7Od9T^tp}cG/Jgrwa=/y2&T29#.zџҸ\@l ڛgYa _/&M svjod_E&Ye''f7Eua]#g_Wfmn⢟ms^F 3av&.8\޷Sqt}ZQ`t7caPZ>}M]m2(@ehWy׺A25H0-no o|[ SAu\ݔ#v{}{ &2I! $7 gtf`8ܫضBK& x#*|z/! ;.Y'_oB1)fIjo%xPlQ[Z_߯zN.L%ΐ{ȷj40+08d/9!$y3$Ґg^O0dUvvA;*o/À"#9t6OP_MN>dLm '),=YTJPUL>b^7߫;cIj4L..iTfaɿAF t΍TL=g+Y&7"˭X0;kZ5*~WzbI(׳¡4i2j/(g#*~+q{uETH-:Qj'vghu #'A d~36k/:J> I.1m_cdh>ݑ)kv!EMkz#~w "G;u7_Fm,SG \&yhULS 4,1sSC׭}8!sN3k`pG]r"@nD8j=IN <^ŋ5Рky"4rm/i @-G6t>=@e )<Hɣ nˠL[3< ŷ|O~m4"sZ%ekɔH7rh;f"$B7B|Hv2ekN- cp6 ?sE9}=<_F;hkV~"cBP/LF NwзE!7*BRUh5klnlWMڼ[Ic97 H܈jdVmr$/'.PIxeK_Nkx37GQVbYhq8{C8D< ')pCk(񴁦D[ĺx qr T˿ϼZfzX%h3.'zAZh7s°#D_9Zjx7[ aT̄3Qh h[b>+aeuQg#1_!☤zp jc7p.  y_릤737;5 zg7*^Yīy:=Zk2.N M&zJQ#R=*"PE!t"/ &D71oڍyvь\nbN"#Tr+|'G*is>Owi1)JcF͆~& }tl WىK#xAn qF"J1/A~YM6t8uޒ)Sx6\F%ͅ\틷>G+&3|`sͬfx'@0DmXݱ&Fr9A[5zJ nUQ wcTIڽuL 9v$@ d][>.ThiA[N6Cu_.< T<L!I@H>I ޼ڌa795M:6&?3g%DwM A1,ܪ+Y\ϑ+$:˾dZ| )<`NE^ ȳq͑ ZV~urC7糜q '" P:.R pb[\̴k8R&TzU<QԘx]/$+Xџ*pw"55ɲ6&i d7!bup.xB}9FFVE⤑iTc1"d"s=7[Hׯ cFי 3"oBAANnQ$pUDB;ohNRffc6xmCۦxSnCn9ɡ 1De=afNo`n`t9& pXn-40d;4z~z26Wn8j5xqeQ)'glfn˻WޅuĦ_U*Adm6nCbu'NO[\#v3i G#2beyP@ryCe,5,*ton{"MoC@gnDTl"$N#k)j_lB^^ 7u_42h>Xψ ֐ ΛfYokOdOH hzrwxMiDM2 ]E GA)GdY=Pǟ~zz`9 favr8}$ @OTCt4NJ8$Nv{ #A fiS\$${3ƃw RSWAxpZZZRҖD;4ޗWoog]Աʚm̭# x^/<#~n! |Ʀa{!IR$TCh#9}:hȳu6,߽@G#5*vL˶'۞ :N^ZVɳi>cLRnHBB9Cb:R:ccƈgV܁0jkVodQSJH+oD۶<;M3w޵EQ=>P_l _2цn|r7vi&i ݆n_ :>jryr^taVq6o>,;cRBQr` ,X= ! p5\5L3NyH!W6MmMfV,H%wk7 7E~Ӂ8'8V{nI;so4@oLL{e.wMxVN$hGߞas>pݢwJ pQNޯ3Mdz4DX3f ~?Ύ y_7|79I!j!0t!E1Oo = hЊ1bb!SĂ`m¦ՌH_֡Z{:r{QLJ 8}׺anyRi(l}_,jC Vf˱]ƒ=v)9iP$؈M0>_kAv9ӟr\9'͸~#kG/{?GCc|~?S{}I뿕_K~߉/S}o/7߰___/~?W|oo~_Y}MOzS_{翜~?zg~k}+~;'{q6}w'+!W߭ |ߋ_#뽿[~3qog??k__?v|W?:~sE~~1_o'}oY>zY{??oiy{_?~/Z77/?Mޏ/~g}?ϵߑo3uM;=wz?I? B>*} ǩBߕtg2oLJ_BP HM۫rJym~[o_|v?,?#Dy3 Ek?X-۶H :o xV3hV'w^ذ nu8ϘSbw>‘ Ɩ48Rk|pU\ۅ-~r卵Ѷ9.B6]|TsxTTG9>t0og lA#'йaF|^n[q-Wmlʻik KY.]Д_W_] ~o^m&› |uAJOT0t)F/O9YYrj2mtUKA n31Irie1rWȝixҔ1s%(xaBsbgw˜[౶g~ .?X;ץ+w7lw %z!%06΁:R/i(ہbN5B񲉟޵/R%~o\DkHfIҌ+BfN[6Gf Xu;~ߪzq\//~`.и~81l7[ӝmup8ZQݝ:7WNQti^oW=;>8oqӖձTlڵ[}ZލebKAqJg64XW:@=jfict#PŎ0d)@nZ!ŭ> z|NW6w1cS6WYy;&in^ot{%끫lCrqVa[fZ+ 3 MDRazDz16lʰ{ݶ&rcְ4,̆G2+bs2RɆ65\@SC^M}LܖfU,J66Zb"?%LõƸo*q[&-#lJ\8+Z(cDl7]hV3OqzlmS*AUDþ dS2`16fj2UJFPXo ӥsַtJ&Y)͕Qf]@yCBȼqR#Z.UE4YH KQ|}וi*aPsxCh d&tS;ud Bedk=톗$ؒIwP̐zdٳ *>ij]NN\kqnsc{5j ƌ9P#Jb {Y$ClwSҞQT4=GG:Gg[[)4&:v %S21be$$8w/&,C4lFCm&ynqK@E:jyQw~uD3 p6yn+]m&wgR#q_֗~u_ NVx6~a_8t$N!sxd-C۩BqLk/4O|Zk2pn7b_wȥ ˸(3:J!Ј 'зPd26 \ N0Tapw8x1y`HεJ=/7 B jqHu e2 &6f'a}߲˻.Lw%AĀ-#ԣ Do#) q)t|K ~n."pG;HnŒ~{IgwwuUvVYeUV]ހn615kzGIA(7:-!]o;%Xv}\oo u\fsmD~Gy~t(ne6E=F]>n߫Q~U^>R,$ђ+]l$Ipwwwwwwwl㿺^[Ldɻ"0 *}U&//Qݱ{4Wc>ISʻ77t2Ai30  @hW܊=k$Ҟ+fOl|ڊ"pS(Hݹ S`>Ag.}}r # 9t&v&{C :N6uH(20Ҩt 9JmrV"(Jdd H1r$4 >2 w'nµ)j x`5k"jjCf7r"(Dbio+#$b4vfRWHJ!LPh(:(A ȁ @L  vu]f@RA*e gECHj<5r2ND sTog8Q7MHRP/l>0;=Zhj^Tzc]qĆt wB/|x׵RW8Ov>{)F\gG=\l!!)?HA- H!n%  "qdqae.98)k7] $QBLpw)wwR_*tN=jЗ0 c~Ug'b JfV+W|h>xWW |2ia[g1?}Jic^77fa,ygiWa:SGta .2M2WE-wKG Q@gή{\vKG5v_V_!ƇTОG_k=< g py߯ rBV}2l|ݺx~@ӓyWOud" $fH&[wx}0%9M5;|!mӂլ􏗌w[sZ_yѻ A MMyK{e;URд ~T(4f ⪰ 3mR!&0! JmJFEL×FsLt7pk$'=>|t) FN<9ɒ5Cr 0m ovɪ@88-7rxw] _w#t#,tm1BSa)BR Mg[A`KmS<`]vtF01<w4";m,~G3Ym ~"Iv;T䏵]ˮ@'eBS`[H)lo[9 lm (kvdoT4{?5YV{裂$H0"3JhQȗ!hP5*!Tt~mjdNRU 8PWH9(Q7?Hg>p ?"4ۜ+4K~wQiM]˯o&I$#*LZ[n6a\s6Bi-3yB:p{eNXS/~>z'#zڇ /+f=+>]Egܘᖭ,:cD?E"&G鉃&( ܊"eǹܓS2q}ϕ8| ͈qbM Li(Q1~`7֚3d;EK~{-,4S n`gBo@$Fu$nB$Hb ,\|t5O^]>fNnXysp#ܧ>˔1S"؋Ē"wTzG 1Ze%桧ɧTBV(dJ1DlwW-3Bq#lM4Q4ϾQHAou[kқcDh#!|̙~C&vgSmEu2fK3 Jj0WjD,`U"]2>gE|"۬j}Dou-lX#R|ņ;xRBvln=[pkDϳ[;b?]?Yf\gV*K|$]eYupWXcLp@gw6A,4NkpQqQ. 񙿯뫲YE.330]90;Ӆ,+gtLhxJK9gc^RWδ^ekp`3ks6ijj-!3hq!ײ7ډRP_20"hVy)bh&)xĄ'aԻuZ-P@)YŰqωeyM&~.Vz(n_+1^s<=¨ f9n"\dY @pFlE}dKJq8*ndԿ5X}4Å4f.FwtfɔRZ,DYdS-2̨4̦i.1F wj-ǧFQK5aH Tbi IM4+4&KYML"2 C-,#CaTdC`)Ye6JbL6caIL1*MQLZ)4l&jI2mBI;\[$nT1SF6>rebL61e%&rE$fa? sw?cwMS $ +Vȡu zFjjP!؞o;<#T{HGKz~'Nj[7rd)ǻnm̪yS/I${޵.ykuL˲nf3b>l#K硡(%Usޮq.s'?L?j]ވ"h1ᑻoQ$k>ax!v !0xɂԃ<꒜~4r^{i2DZ,} V\bETVjzJoQkhtɺa0qP~SQ&?L{7ڲwC82L r'vcCr;mS[^2s5 k>(sWIәM]yZQmKuL$|Գ{bVx*r ;oއ#B?L(]͟vi )/ݯ鮯#Mq#aw bI ggqo#} A]oVDC vH@GtAIXAAHѷ<[Nv,x獁>4tv$st7e)""tI~72ipiBcX̅Sdut0(}Ih5N jt <=I=+2:)=|4jh9jNVoaqboJTLbI%Ym[tǮ`4_D;;SI ΟNnoʡ[ǏA^7(%UontsަOuٔ9t.P r{^a}E͝zq;` s;&jR7MSjJC4VkEB7Qm^I ̘`ۚ%&KtH Rl}[~7oٻ H6A yafezh>XH]D.(cp2L}Pmڰ_p$UE'=M$M A$!dY#r̦N4]T:ig/:IG]e:=L JrqTЀH1_q+/ZN`JBXZϞ(W6\p0sU/HHacAa@N2A VDI 7~ 뼅'#n%Ӻh? n ڲ|XQHHRT*-_0`PF*@ ' Rx[\NN9#ʠ#ċRh5'ALrng_F<;ry"DuCjq5QsإupةL{ڙy+K|B1\o;m=D_^ _ftkzy=%~tZEX}k<;T6&)K'>GN.uoXƚ?vl4>qn v]l4ⲶAA,<9¡zQD1!`%)sg"#xv>?E{aԧCL0% 1zB)Dؗt+hHWU! كbն[K33^!^58+Z0~0J%rc=Μ `D5x@"Yĵ⭦N'.`bd:~t9Ct_l *}[P3LrH@s~]ѾyF\vli6v? +ȴ)۔c'DR-ۄG:qqaڛjB \Nݫ>XJZJ' g]z~ܰe^eknޡJAr c_GRD|ӷ?TOW%Kc{ZiR$o2p}pv|΍&Qn(!-(2q\wRQ pxX *5Fj!F~EL`3 Sʇ!fq7ݭA?J$EveʼZCtMU@:`5AԱO3, Ɲ!Dlc~ wPO22T/9N 18q5f;xtl/:E]Bhg#Xc lhOg?:,s#oW&5M7y;R_bb}2HA=()0=/BKJ)r8s0a#*TRz>3pa,\{;EIHtp{la8 0 = ˜ i52qs@/L+%;VTp򨠺4V=|'&鄂 HOb- /SOE/VL騋=>M<8VNrov<""zpmluGԍQF#ރҍ,t^WN=ⴷ"EFQU.CcR :kE34S\3xaF9ܝYz%]k$WVBs,} 塲=*V/FZƍTKdFHH˹럼UL΃50gVc5fCpADX_hKԋ(fn}Rrn)f騛pDK-`ȸ \&]e7_/Ʋfy&c~r+!sC Fi#c0LfzҚ5p"֔Q:GǤ qOU=!6&L3KBR#ߕa4 GJ ASxO__# x[P$8z;:3 ((^ (3v yٙBddP۟omD|gpZzYӘAjJ ֺ&d+PSъab;D[&y%%L]ileNu#  @C񄤞FɅJ $2Bqe)*n_3̶[TDx>u2ֈnZ v;cz (}sYyEʠlw#î0}otHWQ?S(Xm uس_ 5fDSꕨ:WSHc?Pos/kP若['<^mK{;Jp^wxX`7bmB.6O])~7viִ=>?k]h_俰>$l-5:*tn\b"ڌ5Kϡ0F_A3s?ZoC(=oMԾw8~F_2r7h< 1P$?!5cZS䧍IߓM=i,H-;~~!"_efiD%h0p YL9  FlSEE ߏf_D#J;@4NP^$\ܤ."D%h~rp!)o-^R?8 N#&*Lbu,fՉh J]f!Ҝ4#I,"9((! muЂ86!F8I0D$$&ChwW1QE' hC [ fQC,23 &z).YɊ[AHP'"k"&ӝSssMJ0pp'k!"ԩJNBTsL0 \$ˆGJeU@ yNZpZ `fT( ӤĈ2 "\ B vHf$BA S5(cD҂aJ 0ֱ$8m nBh5fHDn BIXC!c!*(*X:d5i0iS7vGgN/O_41d׉ ~)6]8'ŦoX].ߒ>cwɬȋ0_ 'ܸJby##$YV55AD '~r_A"DK|n߇AIC1E>W-dd-E ьTDC4ȔNT9B=_Ø왷2Le V>j#_QO_WʽPi#r=x)584QL5mME6]5M(T+~Kʇ҇N~ObDCpWo_ص8fm509@> '1|_@ȴ=#WYQ8P=n;Ȼ N TPLXR)0g s$S#~8>/%|"9d:˲R`Dt/;Mw$OentzP'z4}{0"T`>)VaB@O\)v b3y7牐R6fWZJF- d]׼pofD*A CwRGHmi< ݩbAJih̨Pm*>@µDRAhP蝈x*j={9s4fHRZΡКGP,ѷ9H ?UR[254mlXة^_gn[u@Z# +(muTǷ>֫5pznbfHg7[E¯> C`svuB$+r]:@o.#st\X!֌ 5I Ll3cm(M"*!``5e G"Syu;!]cr6N6LH&Cam *n#!k - ",=FLƇ0b\*stCT½ -s:'͡bnQHI(d!⋷zkhp ӲE]ȧ"= a·4@ rf`)zF ӋӎIHօD Uʥ \H DFņԻ䧉pvA"LA$8RBG} v P#_*.\}nD\R\l G^ʾHZbOt-9G4)C+F,D"rH>. @{_v2Z`x *VSBal=M<6q)Yzٽ넩r=qI;i+SnwlB .kAL@SQϚ LN2ˣv=jcromôw;dQzCp$thw3 Č #݄ϴS$C'>!@rci2J('\MK*'#C%4,G=w\b6tv.Gf~iDTu tGSC wn.pϵPt $ $c͆@ާ@x"p)_|^vwqS*Opᥙ$(p@qI9HrPB6`B>rGXe<h&@(v- =$C.ХX cVZ=_h͚RM&}52C$-O1`ѯ9XqOޡ{{Q>6hj80/6Ipu|\^}c j={NL<8mLr0ܠXծ)ʘ;7hG `d"Eldc*`8jTIsÀ0L^h vPIhNDXɪ,3Gy >+Ђ {m)J+!0{ -{KoE*jי@z/Ę  rQ: Z^qPFʙXiAۯ9F=&lFAF7%_h!mU #  :@ ֈG>KGeQ 68B@ X ~An腉NW~ղKD'O,5EdPoza+@pה&Cuh$ zx߇L\PWl6;TRs?7.I`({& Ӵ A8%2yQWǗQ͝wWvU.uoHyU8k[q%QV^"$w{C2?y`  }s`$ظ:IXKA@)_w@8*o;g-9]b5r @c `pt;@~FMݒ )]be^a/93$0Z:YDO"O"N5`Ga@*Q__ eI  !^b0b6mC֔`PM+@IhY<0TvT76c=rj`C,t S8Ep1Q"uIQO92@  &ɈrB\24xR)*+5 ,4\cCۈe&IX @(DN kPLRZ R'^z#l=]8x'vDZ^q "ڱm`o&X %2>Z*DP%4"z~~)hv,! h*$hCA)&H8AJ CPp&l ! *ٴ^:$̨2 w;TV`LvĚI\*0}IH4h*j|J(A B*M.B`Ĭ+=s%=+v.$>{Ѥ`;7R2CoBJ38m877 R w5>+9"& O^ӇfaN"MH@fC)EsBYZ ,ԃM#lT|0RRHdpHD!>pGA+`dlvBK#P{3n\YC DO0ap8 w XIJa^MC%ya˴ 0S|;*ty!O/@Y϶'Ak00[Lj18"7a0 f : Ntg`=2BR:wOE4ݒt>ȁveUbI#$(F>J0B|O( ") ~3YNr 9NmaI3PQOPY%rt^ Jii]0Ɓ ™UK!Q(pYC6ptZ@ôᨖWg݆g2,$.=w¡(R43GGAh7,D F >#eZqDD%/xl~F蟜dxz3vE4A=-xf*njLWlFE90%d=-R!Lp#9G KY6]=^/`LAU%۫]UmMf%& G Lk~hrՀt@JyšWUuN%J۳mkׁ]dtK$Ub:tF1Q>C$a#Wg=yNj&3g>/TTVFY~xlx&H|􇪩0S &hL`U iBpZ{w>3 x71’D X,aJW@*ULd7oI DBB*5MM Xz >59Px1N}C};|)y+0Po{R'zzл`v"%ZX~b& XJi@cR1ӽύvv<C`u&jv.- Pe6y!aB`/ <D`{B@gyu72('ar gj4ɫwBboB D0Q>&1z5"淜__"nTI [ڋA3T ystr@$0CXnNac NK__0}fo4>f7~ /x-a7UEPPt !H5hJa #Ҡ`]ӡ@.D:.v:@y A O٠1"`qO(@80`hJb`w'trVM a?@,~@% +E~woS#j]|(Im} UG4JZ i6RXD(B $u4~Lf8@3'9r= wC:/V Ϋ.""J/ti~'Tňި0 r6Ov(G) v;o2v'-bSxb)Gw aA)'NS A7")=>b`< $6" 5쪺i}=`n!P욛Nz;B8l!Bjy"P4oˀb&d O,Ra?Y{ؗT/0KCGRM1ɮHIh?ʋ9fǺ7='J Lcuڽ&Dykv;!uĽkSCb]nb2xQ|@_(0iH<=43yqa|T`jđ,}xyJhQ6h< 5(F)P$GԆ%&Q9|/y*hUۛ#)}"Nt˄W5 1+y_1a4$Cxf RHA-+ R yCw!ښ t$b )uvbXu2XT2T9.I!@r;9Ӷd|68b} ߁Q9J53Za`4Ab:1[*]nXt<Dss,9jX 84>yۨr:Cw3 CIzoy\-BR ;տԪ䅠D~"nl&BVÂa d4 U5B*!bLO)!;; 5:SQOaTb Cvɱ>yF >~ T> 'Bh ʹ@Q HTqN!m8p5BD0a<ǖ~{;S"H;Pf@mi[ " ;} Fɠ%`8l7W=m$+ƼMd7hH9hۊ: h%io *5E`Mʼnc3׿NO!Ly=@~DeE)fU]fB&Ё8&ӐKdVq [$AT(p)#,*-7'ӟi8ʹQ G︰O KgKg\jB ??`WGE |e ^Qk2Ͳ6vO߿GB:QtNi^QRfkх҅5GI'qŝL߼$5BYY :MncÕXM_iVWRN{EÕX//5s`dXwl!9Pb<8㼮3!~L5gRPR`^0x͡bf Uɡ]DP[ Zp ӫr!ӈNArvǪ;fiVzXjg*D>Bt(_ фi^&5ٳ:y :I_o!,,6.w}k*U5ּqkVo|zɮN{Cl7ҷ絗շ5dͬѕ*E*~"钹 fGMy24NQr#uΗvWQ ^d9u~ɇfLa0!w]Ɓxㅴz=}'xOY2NA eCC!F q|cvr7K-::L} Š=0hY0,y+i.m"hJB:M91)B U#+b7/NsR?مvXڛӲ7_KvzD4_LakFf&jAgc_MuOw9|bԀ}sԻu\5zR uyEmxj2@:@fMT?3o$ QJI`/{MQu?jdBN)D;`ҊxGGv og4?՘z8Oski%ZF {ok؍{rL_ajSf"_'DŢX*LG"y4^Jz_7>wdz $2gdV "B/T? r//󧅣ܬn`?~ <\z1\8RcY?3'H^`J5%qzZTjIC ~ZΫTeB$ҍȓNuc2TE Nu`d 0b7[G0tjt`  ‹|Gv -ᡛmk%Y"s@IrZV?F~EUz`m1B yE SO D|!jDoҭ&;=y}|ۼvqhe>Ǻִ^.:hg^tx]6wK8+5eU o588^:l2W/z$~sg1k Vuo;ۃ֧XN5h!Ig/:4tEaZ-ۇz.5)Uƍo4 f ̓WL">%Q!O~޺&a(Ц칙EN=\xc1S1='ȅT5~ /[v˂(0W[ثy^ta4P- ];+y[UV۳lzn(H"AS]0afU%V?pAS+[0G@YI1&_~lx'50AY%GI?P&7SU+Ćx@0( hGny˃޳v8'17&(Iݴ1+R?:'Ulu%8Вn0CBn"@b hgHphg+O`KC$j@\nJ]8=NZ܎<ƨhL& E_lBR OT TVrpи|#6hҩ;Ld yӖr,ݽH8uĄ{rn̐ 3ԧr#7m{mkݼfHԓ4{pb#bu# !4 t{9= lr**s54:+TAvp4 :AH`"^)\ !(A=Gxp19NؽHzC 6.A뢶H4K7MPMg {myVeM!)L3ƛf@|-'"Q9{t`1 J"rѬ|]w"P0[ l`pa8gii}>,uʨ Œ!ѳ6a 0r71zd6䈐6HDTwpw$\LlELB <$^<ЉAu7NL\9őDG=3=x_Z* Mv)C6>;4Fg`cs_ ∪x 4v[BH1Ljv.Jۚ'b+ð DS44Dkzh;Q@<*Cnm8LUBq$!# s0RGa^ JJg`t{jHHowDۼovWiTSIzL0lj=Zfe6}r3 2)';, =0䣷 ضz9S E аkZ(DE8:{-M;sTmL[e4#5Q+8]j(s5$EUhQ֋! S>*BNSH4l+JXd lcq>*8Q&2IPgzL|n%```@ <#||\|DI }7: z^`y Sz~M1=xIXh=gBKmiӁi \/fωzEPUW0[!]=o \IMb(q2Nv Ǹ!g R4~fÖ-ec @m6B4pqΕ yflE1yV@S+E(jjk"A|q/5# Tkr4C2Kg}-W> ϬoWCI˖dSIs<`9RI/qyB?3PVq//"aeKm5 i'yT]³#lq,IJlh}G!h}YW/c- 02ID3Ș7urHI'C_PimyG`cٞ.n^ %!d0ЉEsD&LF-GڴڶTn&n9 ȽjDR>%;`y&c^ЈUhih5Aدm:2˅qh87Kʁ |޽^~2Frqΐ oJ@ B͜k:ٗxSl]M]OuwխqISfJf 'pUAFio|Y åfL]DQ8NPX]#=1;@1gEiՉ!X&"KKM /i[*bcnOsP2`7ZRB&jV@]Ð mAhXr/+FBD{<+A'Ă$y8I`藷Kg6R%A]*| t6*%rB( w#az i'b=g!^DBpLp_dd_}:@:O214ӳ,M <:PbG_Zppp@=g gi{@wJ;bo_ySN)섒uDk^:xY2Lr9^LFM(%ݠ,'HjcZDm7L;o`܄NDceƋ3E˟F1iAd| U aj$g4mLĒoN7/lӹ,6mmkv!(3Z<`6A p,6O56h )/r:IDDUY w&_iyJ#Ɩ2 n4XgglQY7~^\l1*a#$@ F`zAYi#ú@h;9nRI c+u4l'jBpDBt@;r;G9lAUV3ss"vzI$CjHff]cs݌hWr;_drIAN*v-;ͥ@(`K'#c!"{8sg?|W$]MuGhcN8Z{>~dUj/~QXh"X!0|DkbL6Em>PFAW oާa1S uI!(J/)iG! >QP1a I0T  ,D,)T,e"3#6YhDjJ"|`j'm80!m#ᛇIʯTWq<B$"dDZPTMPA@H M3T8ACKjgX5Me贸5`Z#Cġ #" hLC+FBV\y IZx"yvh} 2`B$lo+F ظӼZD\\1L DPʁĉk>a7f^`>= uY`ʹa,<\=VPll{+nqҫJK;QdKMOPGo(!}}C~2)!@`QDoMV-XxU~FqJ*X;3-Uj\-E64Jf5i*6*@ -*&4-T&[ĽUF5Y*D^Խj*$,MU8x&<D #@u!D10P`HWK ڏ^ہ" >#q=D,`n* UG`=΁(q\&C(┒ZsgNH金!h2 0':TBa= Q*1U$dֳ6,I(CDPm3[#3?_^F7\ 6}y#;c2xuU$U]@Ĉj*'!pܼK4ALO;J`GSu~< Bqrj 0!ZB@ " /YT:6ˠ~x(dCoIMGAL 3 ؝}@OڴEQZ'I`030ہJz-`#~h? }@gHb!1bՔn&L&Ca8D VWB :qO)$J=-.KsuO$B?z4]b VxyUn a_j; VփDGA} TI4H,"xA [hPA;p"8;AvidhFE!209o!@ӄ%PAI:CD<"BR(P: = (nL+0K~7f#iJ1>;]RPV׉ZkmȐTՑߚ L4kk_d)9ug ~!Qq?o_dbUFXY!8 +/>"T\T:OA!A1X tv ]NǷ 0j!Dq@aBd9Hv2|zmq1 DŽIh߮_9nø>;Mt}ӷi.2L["p'/ *P19w ۻtɶ^cc骪1U|` q½*gUmJ@+qPY,B P[EH)E>Ha;7w3 C(-*;z&4d4spɻ5'Va jSRKHeAч/R7aEe@,99l[KimC OBBC(s Z,&c1&='?Hʄ(Q@j҄SvS@&.p-gyb$1BbPQg  6XEvp'`+Q$%xoEL[#u%'=>`q.7 ;$4t{Wb 71}WZhaΡ[:E%tcahԸtĉ`k\.\E,}hLta^yx8.mI/z!nn A1 ]`8^(R\uⴈ?' .:a[هwtROHo{_!o~XkjUU]@>)ߠ;h b$C8(%a8h2P&D|vR)tu2`Op@ (::aKV% >,>Y !$H J?^mÑm*wLo0?N e{LqA -`䤨G?h:H=+:#" ti~0~3 EsR3PC3a(͋[\jV9Xi$3jKĸe R0)!"\Ձ(dv)_ b"Td IJ,ew糷d. ܴ,n>AĐ۹t2*K̔y 8at4}qRӬ51z`p#1BFM25!j~Xɦ lf=H  @&ERCAo^1X!Kӎ_ r!  BG@0HUNCaHRa253lM+)F`IMe je4L Y*EI[AiR.vvApJTM4PIngwťZ(!%i+ $3Yh4$D\ۛmuSgvۮ Uh G3M[gCϝ֐h NDI>Ã? O'($ :e4 sQ&#`9IH$}"5u ѱT Yt^Q+rIF0PĶyrKA^X䴙XxuviH*BHI &i\u T3ג+g>+i0w` K.PN?+S )E48 浊Ie5 x)1E8<T)Y`( :R P!kl5/ m^H˒)D_#㷬)RCNa{Z"2<Ըt&h<єdDoh{/?}[Q4@j('@ADDŪĸ Ň-Hj!{8$i4\(L ފK#q` y烢_ڦ@ʢ`Pv.){nJA`4$ "GThI у"9(.'_){ tQ!26K (VOՑ E3%BAdD1BSR X!imObRq^`CbE/86lP 4nY3j Ɓ#f/|{k7IU}]FB"U4D.} hj6`V 뀸J1AW z9B:!BbiU!#ci|V3).@u,0@ĨB UT T\OE|-kY>3o)kfU$n23 ݁ Eutsܻ}o?aƗqb dj&mj,V̵a)J()QujXI (d>U؈+6tvH&Ҡѻ˒{Xp iT$FO;3݈Vm(B8Zuʉq%a:M.=ī&{Oa:8< ݄]~({GR{ѲcSR/-T4^v H?s/^B:' 4WNuX"uc4CSx'x͚J.jT#Wr1רf>qPv$9:Pj+u|\7zTrm#|E"R7EV0=iFE{-gY4`d#tpޅ1F&Js92@ `D)Zp.wYK8@X|Cx yYFj2&N ϭ7uTH(j @VeIVCC&Exs7f!HA c1EAA&V`8ac\l248oF>Eza$ .If}vU -*;nj=" -"Bn%YL=:G)ӜDaC0~b.&Elޭ$ݱrӳq(&:f} Van6impصʈ ֞ PhX̃>ZY>GL;֓hz֊-4}mS (# J f2Y3h)x[&3mYcI!vUQh]b#v/A2- YިR1 {qFaHj&<ԩaEU+lj7juOk^J(&eY*J.O+Y (ƺ[0oDVGRFa*6Lk- JBfBF*ZpmaUZ0CKL|8-9H b|b.;@!@*jKTbe2AѽP,t +)RǍ\/d3>G>YPvZ cK#qMt0a탚lY߱   ^Z%D[$.Cz̥ t-] =5˼kQ+)~pQ3a1씍`i$AxM{~F m}-i,x w==0u\ ;3F"j7%X@MF5Aj@0JL@ؚV+CuL6^ιUcSHM`Z9Ųe0fXԿ,.#IUqֶppVkf\wq65qF۰]ib*5P-19mZ @=e,0\ Hmmޙf2mT֚@R.sVu1R)tT)S5trbT@e๥NaƇy^g6[ZbkhQNbnʉ' eGL*kKF%täL嗈^2 0qQp"ty ;yLΧ jhL x9mN2BbUWeT(WwaBI?L۟9N5!}i7J(,% ~pK0S?{x`rnM1h3m+NXTA} >!z8 FCzF6}X{Qh`g ܳI`Q <%Af<Xcy#)!m ֞BH:H(r ѓc'> M|/2Br~Iy%9Bɪҳjr#ixxѾ_j#j JQѧoc`i+bm_ԭP[α-nղjW- ꮬ"2׿]^5]>]}Pޱ4h0Mez^ h7TZ,NX}(81%ָ#kb&j2# RE;W'X̊hFyxo0ہL$IL@m`*0  X($!!C 2I|j@Fy|o'CMCx>]I VE(C(Tꍀy`BhVFnM $#2A $cT꿳ta/51Y9kDW'@ /Sю 0@8M0C̤"L1u:| TV=V#J,j7ztњE LRW\vw$}kR({N)GytQ' &1W/Aa4I1~[~dDb߈9tg_v*x[t2pҥ1'lCLf 'r'`:#ߞg%AE f# (04|gKJ/Eg2 ;?=ʦ0#NTL8yz,+fn{xѭF&U8"Cjp0P ݳ(\nv+r4E ] 6t% < Fak ȣ)G,pe4ă#LsLM'i\d|/'6yB"b*\SxN/XtںH*yb7דWŬ+=Mx%  \"v XE)u립& ]HkӅ[p xcb#h2DqmGI|KTDgʑgވxgv⥠4yO.ٵz;9>.58m`vD&tDĪmvvm;9+ȍm* '=3(44-=-tMzBNRSth[88K'5ōf Pac8;FxPFキ(@)W1\(J=㚃ԡlM6$JmiuFY94+5`Iv\lm@JSp'm!bs"+zhE+96i_KpY)+:H'CHayiK,&0Ξ5g\/wW \.p5 br8@K\c[YcAЌ-k;h={Zc^tiؕjcoZhԤt_ykʫN&7#ϩH0{ͻ^8. igOEt[3K B(0x/kك\1{1w a=ҚZ}o?Ds3\8ߞ ^֏'OmOjS3+0v|nse}-{40d ^a[bjˡN܂vrw5Mv:D:{VˊDiJEL-ߦJ{$JfBl3cLX' P/jS]xGG w;o p\lhp=Sn(.N=>ҵ~x뫫=.TMSJi'Q$5`D%e^s^$.s|,El.YXb&)RXCJ$r19[ޓ޷fqp š4Q TXׯA,3P5El¦7C;q8å#9cRgfMjn#SG-kKN:͕ B:{QMo \1-T XwvYӽo{)(nGyoXoN 3q^['GuJR(v܅S} "z GF~v;6͕6@40{zbzeji_$U (.V] /blgߌ rBbr!UC15.JRV2 "$kLbtjYLX ؅r=y<ߊ l0l( ī%f # $J,! 9REt!L1>5Di4[҄;?jGx;uDY!>{WB3ӯ獔Co<4+)XʋxK.,R$ [f4Jgv;-}Ykz,`T 7õ#1 du®J7Ҋ-J ;\c) D=9QǎS o{`샩 hzмf9`6[;m32 r]rCWЇdАiP!f<4"n$l/ )+h^LKFyy7p\y*(o9:[ 7ƒ13҈ :f\`o}#;v6#[ zqmhq 5!!KCb:+cwD\pZ`=X}v*"h"rj=sTu".CC]eo@ Fw[Scd!3Mn/ Ntp!&T4')żwr]Z 6Wu#\d%]ZL'3z7&Ǻ3޽=|Hduz^yt㋇<6ȇJ6{2Gg[4/jAXily`I'B!-N9%U,Y׵r6vjtx͏#B_qS5 A(L{߂#F6"}*ɮσUWO0lG^7oxat瞎̢AWoKA?/g\\G{Wo7O+;bG tR `77vd"Ѵ7бȳj*q gB5yߛ1#hbKftHHDAL6&Cw۔kH6wYk9h~r0.DGD{ &$6S%ܦܖ2= rs}3n(Q'@أa=‚7C,$d(A9\ ZRY-0jR44 `́܄TETEDOE'`'l,/Mj ;%.)p([5m ('8rlc=;ODЊ>؏h\`Ib̂<,kH 70 BaBvu!dJ{Y8@:k (ױ(*F€hNc[]9GhO^Q) SܘuyDgAmMע/̟"e?gk>0Ur{2&9?l**2BwM;pf)b| ׅXtR/ј-e4c޴|3 "ȓ3fyQ0-1;k|n#lrG+;竪nwQ_}=yzOb` )Ri͋[橨6%AJG{>`yx=J5VAYQ&Ղ&vn9/MsOʑ,>SA~ș꠼'\d6` Tx@]>F~Ҕ~»GNJEzu 1>G /ҳN;NA"R:QX!sm*id#w9 6$ I#MF" lZP iBY-DcdBci"JɆԩTcwg{q3>ƅ6lSI\_q:(o`Dh/h8!)T&E0ńL3n&^Ajm1|ʉ0Emʿ۱,!-]hp  NFhK?g,KN̩YNؘ (බT[/%;Fa:KJ00Q RFj2B"XsrHS\slm$$$aB]d1%l/j(&V*>WcQF3#- QpZ  !]Ċb%UrD}\Cb|OW>I UܗD82a Jեn,{$$bav!xHi4Jffac$z]b|I(2&b+@<7XFr<p[5I 8ȏ;^G[4vNUClV1f 1[u q8}%9fh{jx~;ť뱔2ՏMPNӇ~ǝqFs\z2gٷ=gP(l=X $6},MH L{"o3!1\Cz)H7µFɶlbR G}+k15Uٍyֲ6aS=#x[\4z.$81WxkS C &)vb hsD9AB:q%&A$˰%rt(HhD "=}p`}!E lL DqDPϪ`4&b($AbD@M jÓ)+-'ɌIAC9x{DCwIz !> hL9;DcGw;U^ lr4QG$Ǡ/$)H: n$OP4>Um/l#;cNZUcKq# H/J0uDK'}g~=˽xdUW8㇋v6`!dvGsiW EI%C!|r@MJ(%.ˉvڏ4$:+OdG(A3j CXZ. CRТb1@Rr/4DS԰={:[u=WMV ,RPK 9+!h hn(I'QM!@+#*<6(fmpvatdR$K`@BD6$J$"Ijr3 !!RXLT),!.Q4ɕI,ѩm+AM}A?z}2M_Ѹ?h×T1 ̄&1OްZǗFHPC%bU` $mn3B s0StѾ3@2$I(Mz` fTO| *'ʇ^&C=Gp/R< "i^=a)a4'7tԚMLT^QdeIT1>~-a@͇0pD0ȧ<'$ U[4:RَQz>[ wzqեvm\v&h(EdBV/;2 =ˆ@w\͒HʒԱE ' Pg?H~ "|pXg' v!p/ gBr;!"J\C5R%(!H"z!xϜ|`Cd\S%j}ը2 r41: &|W#ҥlP^ꮒSm^n6M!py'itw3 u AvkF=e&/s = AA4Cf$T |鑒yS ͋(DNX{p%a!+].衣y *ށȸYY=ޜz9@Dʊ(JDֈN#llr͑(3+x _)䒡cA[hr9TAUs#[<ۗWq|(wd]7 hqAi0pn@+-fh)[JnLidnn$fU]SHJl6fr蒁4Vwjݧɺ^w)-$ @b4@ JUA-UQ }iʭ^=8\C:0P Dn @ȇ4>7mu?p(4Q(Ks x- YR^FuDE1Nj"@)Qrg#u֛s{!+;jI$F;xt}I+kR:V"+t9{;G_i=G }ծ6 w_<`ADO(v*n]ܻVʈ:CH ^3Tm`ɀyF=9'BI$&?@z4pV1H&N>k%Q hB,尤ѶJCm$j^Y|iTw b &~0"H,yeoAaPtbX0){R䇤Tߗ+˺J0V7GhlC8. B4jDSW0<dD #Wv|#c q;C[P>s1~1~~ u>;qK${c`6NZW-P=i=  w 'MۧU^svһ1Glǔz5'qa5C0)Z*Jj>:zb=%ErʓTîEC!POVLtFL5y$eSX5FPE0ED"TEL[TFJB gDiĄv&!;AAe2t&!XlU*dc[r &z4yƺ[;3|T -*~0ݠ <2"[`խf!Ş'H,0–Qr l}UAf$bcU\1LC dPB*Qrӹȝwv6Է;%CD9$0 GA6$ 98cZp79VE zNxbώֆbp0k !\ + hCqB;jV 7]TFN?^&1t'Ky5Inگ2p6f CUBVwԘ6:t~'\q}yї4kK`/>ӆ8P A!DD!BJ5"]|uOWm&ě\Ěb(Vx@0D3FMVa!!xĨrMf0zPNђ] FajW*nBE$CH\[G0oGDDQ B=?9 5 kCaҠp4!MhS[r5xR%YXFXTҊ0gh纂uwDt='((V@D(MH+ `(0Z =Ȣ#BE 7\L`'>s»CPFj $LIJ P`$H$h"9Ј ºRGƪop6׸ imxק9,̡0Ӆ ^Ve Ba FBZbwnNZݚ+˂lݶDĸa J`'i76i1'I{׿ J8g!ꩰy $1vRDתkvZe[M-!("Pi֕101āfIT  @"zߔø1hPYJY[H#;Ւt@*hJ8B(>lȳM6 }*;bЌzn0X;$Pڊ(YFhVqH P8_]A}4"z'!,>WcY0L$áހBG?n;o+Gs}H!@?Y_]̀Gx{\=t5a$tbnV"5Q(-#An-ІT$b\Ld[FP̉2X1MLFج0  Pr"'cgp/ Dea4h S_F8rpCKDdY> :֒_shWdg>̴{3J(*dP9(9c|DDRLlJ'tSSxCL5O@";*yVD+~\d=JAw~ yBw7DLTqlfݳwhr>?9yȍ%CBr[h }ٍrR I pBj{}yX$mKm|F, 3%-I)/0-3hJ#z<@G`5lI]P\ȓ̓=9U`_ M-d hA|*.t1| }Cչ ?"n S8Xmb"8>," [Z4`҂ a(NYV 0 H¦&9NRB]p!J$~Y>Q Q9!Nθ#<󜹐* (@F(xoՓJ) =Jd= p3uӥ q!ۅ `Qg!l`kHƁd)/u͔wy1@F \"V_V[j@$`r:bsTPa P-1$kR!sz@d'}!@Cm&܌$O ھ v\V"Ĥ2 0`i`m5CS0ow\r2* +`V0u64=r@`mmҡ ݱXR.58cPxvܼ)*A k9f9"CB*X }}Ƃ`zvp&Ah]/m*IUѲz^ LDDBDφ83P"LsDžˢ]fYXAyƐ:dheᆒA&%@Ǎ4@!n|_ʠxHT8J8RZUJ) X2TqPQdW656H4FƪfI7$IѪTյ")†ًildg !E\w)I8[UJR2|@FRW`9"G>ش?wE6 8{XPNWQP1@"k>' &~c! G=D+OR9 ·ˏJ)=0֯v$5L0 &M:rq}DĎ9IP0bS_-ӂѣ`Aw&6HLb X2EYP,N;)AeB0;2K-Xѻ㰇dy"B ԙ+&ZқRA=ؘBd̀JHHCz>|ӂN͋6&0&~60 8sF&DFFц`^AxFI5Up+89!)FJңk4Mi{@9*,A19PB"S0lwAwiyL@i`qLPAh6 HXA%ٝ.hƊiUN:ڦ(Em[y9yc$A~s^FD*sW\Wu!  c`mqlY IǿK!dl,lZm뫆P֐^-!”D JaZZi(Օtp!4:0TDj*KPD*4[V].-SZ%IB*0[ MZhpFDgO֎[ZM6FrxwW0%Y@Pܴ d>(Z%Hoo禵0sE?l27j(~ݳ\v(hBK>~ĨAOaf/y ,(Hm!IنQkG᪟=xC&(TP1 _b@,e0I IȑXŊQجZ!rJZbǭq.&  S $ )i?6v:ӬG򖪪[B-ZwvYa0(3`8P/_q"+@RGFv1r=!@㣾r[T%d &`QC#ɡBhIL)S P;$peIE0>{뿳DțJ_]? xAjF}fId$&( IBO^a~yAw-5)yd{< 3+HcE G0> H4)5 lJ ~= 7$yϕG_z%Mdjh+[H A%ةRYI3S##Z2k4 a m/ M 4)P*Q"1Z96U !$6\Myu"ɻZ ~Ȝ1 :A* qF-PdulfL;WGzD7C^fۃq,B $d z.2w]l* nu8ԠvGh`R!Uw<ԹY$T. ?^1(v~S֞cc2c5_ M/FʧusX|![P) j3m*AxFcJEݒ!K-KjPn\i.'1`A-pxtJ$OQF '/Uؾ=@c!vpSt .E)kkKJ  e@;#:8 k~i S}MOaVC!ܿuux%1r RHrCAazIT k֥Ӎ7̘jL!8\Q5D.QU0aqcodHD\XM9bQbs%U]PDݬs@[hmW լRtFpp'a]PiCX}3'V)SR( tCHlkǞJ. DP"l)F갣abbICŤĕ!MS bƣ; 4͸׸d+sYE ήܔ aV䢃"Dj &MʙxxNinNPFB00QArlP:};b´ncIs617ADj4rkƯ lg]VQ*MHa)y"jP0򱳲 ZIfb{6^1CIPX;& w)*9 U'&HgS&*A \{9g榋yȊ`]6VF6&T^]A Nsw :/؉=o*FvC$jB81*;13Naa98c,"2"-RL⻫+ch1cfT̊RR)9*Rr`!m:CЪ{ȶ%-26`1 Lj!2A~92a(HTRMK6>nX NZK4kQ <&Mp54^bZ Aa'-da,PZJt3V&cXkA*Y$R$ԩw1Ȕ7&* =i9RdAһ@bK(jg=A``&WO<İ(wc tЈ "|M×:U$wS[!5HIg/x`(")"$X2M137+F"]՟y2"er IGt{ѴW=5ASh|PFM"ibQKowe4BK8rw{IF0}8BiAMN9AiS`M (‡Wd 8L kH`NUw r1 &]5R[|)  QkiaPI+I 7 _c}2->1(">:Ӡx<`0ŀa=ć7 5F\m1 Xآ2Bݛ "NPY-mM&4˫1@,BāTfoNh$\Cb;mZ LIؠtG{h yG>@}HA=δZnhWd7#`) rn.}2Qݘiy4 _>~&먱 ݡqDE 9mgA08HA+ ߄Q3cD" "u)0 >H4iD-]0c>gT` ,HуOr ν,QL+LNO4n bg"zoj'T7t8)Tb@Jf$@7Q/*QʓSB(J&Jh :(*.=]NfzC&g^gQϢ6D~ylbZ[񝧯~K7>=_B-a٤?C¦"T8"/r.xܽ-u+f4Ŧ[xvCPh&j錦 b 58_ҧYY'e hV\j0*_l}"aO .;zNͮ^7-7}["+B(5H1UOH,˵>|*@GJld7 e~Q6-q Bk ]mxΙcFQi^R{&J*x)ށ% \!CC6R̈l%fkMclm `Ãf`65T±5 :vZC|>`B5*2PP?oZ( {_T4۩.S}mE_t"u{ec 1U0ٖ]~, A+$&d3pX$"N5)'!kr!U5A(FvnjvcUVYÊC}gӞmsجl:SjShCͯ/b 9q|ayñb(C9la1Smkc9BE#@H2$c؛l[r[y0Bh5iŃ,ƩLkڿ]YTn^* ΖF6?׭n5{S9؁ ŏ-=v)Rv2٨!Z6ւltn |i!]k6bqxpg_ aCꇐT.@?>N9q_H{VQ]LD@Sۄbdaf4R6(gda a&i)@Z`PP=s#|l&EkO:R7.=Hv؅@B d>(Z!kg`oTG}GoH !aMPRdjYB,m/1}yG|=̕ HT0;w֏iijI wro蔈{3A OwWBiXxvf9٢J#=`P'D rӯ{χRP @%~#!zj,sRnˮimJ2LVkfa URQbeBxP_ x/2nPEAT.O9EeIJD KJt vH({k./pDG*ۃ $ sw%UAh=Wk~3E+顰*VQ4h|.>4c 0{'L8$\lcm2;JjQ yIf&hˤ\!-aD8d]hIkgpn$ ~\gh:1cŴ֋(u>TPj|3ڝO)a䤚v,LZYNaG/>~ u/ 4]~sGJSfLNbfe! o$JUhڍ@4l0fFF@p,FZ(B wJM >(EKmX_  HpNӫx37̨*%JG%q0e=gW[EACPGV˖T PRJphM%vQ;;#'#'87!7)1Hjfi Y&EJ=0ѢR_ЇM%w+,є7"I wr 7뙶+U3 Etv EFZL)ϙK^A&1[do?$TgzLwIBʂDT"~J);kۗde{ 3z^) BnŒ!9wYw(d KTC*v0~Xva<=YhM֚*FfxZ >pЏ=ȑL:m@bzY\ l iU4KM 4Y%M:sUW6QWR&R3Nd\s)9V Gr3FQ-eMa18`082J"Fl3<*cf vDztXszm8Хr +QS# 1Vqpr*U !2X[j" u4 f#hcqd[j,$Ԏ¢mi"*Dd4˽ ̻dE?H"*li4ŧr[bf&Q Җ4T k|&6xqı"(R Jֲ15%+A0 LcJAcQ(TD XR5ZC , m#CJd2Lb+ %U  I,iDB͙DHm}-JR8(0ӌw$c V韡mQ"X֥ᔛq)p像}lG \TP+pO?>)ykq*`hLpGK4"wrmtb04s8˞s:"fJӣwJwDAؑʟ68SC9f6fE^ImF S1c#q0 :͎7 ޖQx f`ޅGtĘКOAGf0w yڤ H©dDkr JaإZF f!JX14Dba=k 06VD*,q[8,XJλqCv C jxPؐҒD. P@Bq4SuҸ X':k H[K0 imZ"R4EpL+LКl>b AY+ʃ0 @NGOv]B*@t-5, &I/0qXIURk )QMVɢѕIee *`"Nz#8na s:fxp҄@ڕDRL562z=OwVHtXLJ%+HߓsybOt!p:>>Ϛs`Kp>.X悚(C8@D`xb.FJW?/n0y{ˆf.b@$M &a./ c0o558ܳ4>S72Xh+Ч{q4{ܱ쀆eTMbn)e +Nk  _푦faW|0$ і`b8L՗X, pA(*gBKhlg .@8ÕCsѮ`|Fݼ(H;!RknIv_U%֙`EUPhnH**%vͲjD4-"RV6S"lM"تHڠ%)Ϡt9y,4AzMڦ .cnW)fIٖuݨ;CfO9"dQ<x0@z_I\I 0LBq2} 2 7&cY> TM!b{_" ]DȊ{>vr3|KKyU|fR!c6J|Wk?33QB;j]ȏ>y{`TaUUUS{9Aϫ4k64DLK@Q!栘et1O縏P)@HFv_#*i/˂}``J ȴ7 }'5wU@$"ZlSL)I10M%̒~LĢX(&^EA %NF'f1|\ /|aQK?A{0^o"D%z}D# 6,dPm NPLB[yG 3MC(e8GR RS #*pWd#T $.=U P /9 $Tf^Mo"PBz ͷTYLd]/ :g\L0m0flh ZTj[L"5t+ۯpTAJR1N0!]X!<ԜD-sDz!H>2|ynO U{& GÈT#PE<pK[8O6G9xylLk& P/nϰߟ0#B$J$B4|BP!”{;;Ճn*!"4TRx~a8wHg{*2d1L7Ҍ841tf+mYMwm*!X`f5m[%um*6(c0Cೂ,|ԡ[*X2kmsnԱe0064eN4L-ٌ&\@[@(S4q QNf# !$D0Ov,IC;P H'B )?@h` 65U(0$FxKonV z%4Z b"c7yAQt 9$*M* )) 3f8"%ۏ~ڋE|zl(@v$FT#2l>@!8P1{E3!y=ʀ(+ s%/dcXRuT {* qyCCK>bQc䉩A%)")p%J(Q"UC 2My ~JӠ~ǿG9nk&cT=%G=Ne|a 42y*@B64mK_SêR_$GHv6 ⍝ap:N"XP0T >( 3LEwaxO%8YL^yݕkK!v@"Zp4MP4}r] vmB{1mhW!ulF8R0bR~RA\p@ ; MZ!m:q8>sVg+VfrƬ(Qa600I؜E|mk.] d c4|S|Bvz.&BpUa])0"C*Qli T&͵`ևQAdVmd$E`Zd@5\lԉM> dXK86tAO\s9 78_lEI (YEtF: =Ltek7@mdO5)0%FFCe"M17%06a8Pon!Ni1<& @$EvcI(*(I+OTT|w|7a(84ʦq%j`I4Y ^ J?';ʄtz"I1$=DRVh~LCrm]>EI#XEp`,!pNW3LqPkȕw!߈-q'aR-0'3fBMR|5}͙XHZR!.`66t6<"Oq2i)zb=.'µpxE*Gq@ fFt$\p[CIQBrLH 5P_~%,g}eݮsr>Xk}:hPƢƃNG\ҤMyofo,ٶ D@i' 6I|vÁ+E#x|H1p ,bCkɍ Dl05gFʤ$e:fσ lZ"MzE#Op;Ŕf,7BXǐ˪*W'] Y7XyªҾ|p yڽfu"$bAYǤ"qZ*I"'$G(;G>_/N B"V(݉)e3hjIFڋ{ii6BIHGWCzDj| .'T@OJEOnF~'! @P!I< j0RTk>"`9!E)ʠP$ϋ9E ~iEA%HnBVl݂_=Qylb+$3Y+iUZȤk4T1Խk{7M|*!FjY7׷ Tm@26yXobVOUe@gfuwBi20AgtLmp鋐ݫ8c. d]Iys+Sθra1C w%%~͚VI}Lb0mxzTvIlC{^ڦvb˰]M0A.tA|`آӓSbv`Ӻj,aM:!CEb И,H%@g'9|vKܵGJTc4F:jSy捲R7I/陛'sҋE'tCPhGt 0`;e:xxa[nA>0 Hj@ >Eb=dpʚړ3k0 )RD@QWR#A@D1*1H "!A"#0J QB&KId-X!#xX^d%r.`s=R8%Psϭʺlg68w>?1BFGFD TDR2$!D*h(&flɆiZhmPȡ[h%$i!7CڐM(Sm+A aȎ]:&Cuii$Fe3 BHYxOMA?ܘ*F$6͵`+I "Ypx$}'}AAAAs ͢AN(Q=Ip$$0yWqwHHIy aa3yMQz(V Q)@xL|B$ -TRKgƀYFMƛG5T( !ri_F#+1bQ@ ܣ=]Jڅ,ڷs'o`mMO;Yiǵ;bnh(z_ʪ/ZĴ,yD5ƺ {X e=)""F*j"o ) XSm/1*D[NqvfGD A>|rpvGA%.lDn89P*u31Q_r&#l1+D+S^@Y Ѷ7tECDM0pb \(BDl=Gt9˹ ( (7fXm4hTOE HHg~ 8zb!w%T}˧+ܚ;MJtk"rDah G!1w]QR-E":Ir`ë́PocXD ZKm5H1Өl7L 42,D30=2Xry,HYBͰù7%D\g7ea=] ږT%vcc% ؽGR3ɅQUA(&Q"\%xC^R#qHɇq5ƖÊCf #Jت2+B)!ȫ%L]L8 r۱v{jڡY(JA1! JTίpZzGI9ހcXJZ %ut*5L/eݪ`DF7R6xK)@3$P! v)6:z#l$򥛽ABjS'+^8+Z]ʲ6|=CQ&^/.Dc0R(R2FC&e[):FV`4Q %l5 Ry'[T5j#`lzi&:?7Az1@Y |y6G;1ʏNǻ@69|R}$%w}H)Mε)Ho$_dPGo W%P2@1# ! )' #B,H:Ù@|v< Xj BT#!IեȅaHWSq 3(4IsqCI/.V*VX 8M)Bpb:Ds^Ch//4 b5*!!d]l갡E!F_I<4ELuVF CI0]ٌ Ck8jRA*dBڪ\ \; "a  x$u^C4 c+YJTa PT$$$y=/O$I$6q vgFLN/9C~"bQdc}t= ?L{'Ebd J=>E`FU4ݍKTIi12ԡHLD!!wz'~m;1o,`uΛALAN9A?Ϭ>`ޙ,$DҝWJ뇩P6NYwy v˕)5 ]  M$:f,-#p@dm+̐rPilŬUQh' Y ޾ B*BL7xt0`8'[aFN$LT<כs |$ppP]H80@$@!9bRkkȕ1sw|BeP'~ !20W TCl .hY%Db <|Xӳj:_uyV"hef'(6b }ɴ9A*71S1Nw(by~j$B , PV@I%( B|p BPD*oq̌h "فB yM{6T^3~ﲨ I݁ W@Ѐ&1 ޞ=rΫC1i(!Kl,o]wTc 8r.}'YC[l,~8{@DHt'rS}킁Њ|{̪2@!D"/&!bTvBnωqJ*|kIL""4u5 0)@F#(MHғ($1;8T%&P۳e8CVZbB]6 Ei Ke4i-I],bJt;ߧuI:pq^q@AƂ*H^rd}67p %]u"}9[V=0#arY[ 4xIa84L Y,6R_}ã7MfpZ+~Z_,-+Ԅk[gF.<5%2/l  گujcjہGS :ՕuJ !]ν=n y 3o&|8G[ 5wlGoZ5LhԨeĆr|a7BtlA|.C@Fk4pMSvOnc4l~xcu5ζc>et!qhc/h5TQSf܉qx+m6̾mb7]1k@ۭdׄùGhӰ\Fwf-a~ly C$dͨ^;5Mک"~r 26Dtq2 њaC4&S|WD iBMcHcRA2f  $%Nx,Đ3LA}s2N x*1o6m(2kɉqЖbJX̅C%MND`P&woJ.[F"> mo'G MJ}t.d <҄qGq‰H!8l PaiA33d0`l5C` UhB M$AߠMΌbK^swmw2[Z,*"`^a ueiցÅYز շC%2a=JPB5r.;(6F8w;峐լ˜Hrj_i;` uku,&˒2pN Bϩ9W,f٨N^=MG1(P i7qT⋪M1my#OڱSA92*ȍnXG86'>bDy0tS3>vlpfn Ul]rRH($a2Hwk!)p t`Vzb A6Jl4(.B,f6|BvS uhK}2JQQajsuŤ 1e8D6d/C ,'.A9+!E8ٸTpDc4IH HDg4E V54X#HH& rex;Cq)] "|% =)!}|2,j~1E!@baQ>·aN/zQTW7sT:YEst8&>yv ' mW|RaD!ڭXTyH9FF@QfU5ble<(՘;) 4H*T@ b̙I. {dmgHYl(+$Xn$e 0HFM8'w< PtۛrKC8sװkc3e@ZR!D Xzs};q$rY{bݚ_'42rhDW/MmHN^,T %<{mho ` АLi)34B؞2HI?w [yu1YgN;0"58p )rx x߉k0x_U!؝ݡ(8Ci~W`QT+]zf)(x'('(!MCBB"?T!Oul g(KV]Pe [,r)8}[?J4EE6D)Ͻԝ@y, ץn)w$Nea */4`y>A5 =K{B :eI$t͟bCM$1vBk4YeiUOby1OoqeP/"~M{c)Cc%Z,CAr7ʠuaHؐ»B"ߺh Dy6,D |6Hp㹵b`(t·e;}Lz9(:`iW `|pC.n:?#pz*8N٭gaFѱGL6`4uFÂa[lw!MIEPQ'+$$V>( ea^V{Ge(<;AJءM*:447 Nhh2찪P0tA;b Ҽًǖi)ڔF#G D 0N90bhSVa d 2% vRl3BXKz4gf-&w6@W]8[Čݺ[[҆CM MXbTbQ1a˰|Ŋ44\K]8X,Dy¢v c=^CpT>GLT68 {a p[_7\5-مyLMDpl $ q>K@ݝ "-B\4G<ea0#6>dr1>qGa1$QDR$IBҞb!pof]CL^qXTh1pG-!iE!"i`.RUޭA %׽JԠ-OUdl-A$ѴQE5^9d|)~ރ?^>#~e(0̌A?s5..Sf?!(J!4 fr#xN8z֔6fc2-XJfdC7wjvs>4AlF5v麺˥yiY,քw-⏍A@-C@4 ӎYeM0=q,HW!.u )Iiㄶ]~(B:O2/B#,)@^ u  q=QYNĭ mɵ$1܍Iy9 #=ľ7 T@y6#spȈba#?SڧzM(ƺXd*Rp@䔦C@P25cmvP |ƚ% r@P($["y4-XXRX2XR൬0`΀*vFVtW$Pj'5oJBpb4!*r#kDlPw$ #y$ @ bkQeդd& !FGd(0"@-P)! C `Rh [^i`x --f.Ont:@-*PJuLLa .B@*TQE,#;ҽ2s\a?O_V1.TH3=0-P|Qn #<3$m=a(PZ27ms,!a?F2yva䇔&IT "#x*oc0h6B 99$8Cf*!؉h<1O(=|BG"@`(bzzGE_ i\ b8ke0$À Ff)$G6..[݋R ysO6"EC5F.3#?ee<,Ib1`oRWԭOڗ+h 9 u?IL$c^`ɚeGaP_sww@-$W ÖU \[26k]jmj vD.d1AinMKGZ3SLJilL!+-,YKkdXf5B!jZH)ֲ`Dƅ2hiGX&2 (ZRDԀ):r4x"Oy*H c!ҟW{.dЂ!Z(\~KI37D&Bbd:J 4LLPRn)\{ʐ Qvt?9g( p ~<3}0$!@SeB~}h9>'H&7vXnC>s@6EAx$XT!Pe!D(6M¯d1UcMmO_9Qv2Tޏ6! mg 8ufTW 7GowP](R!$ԉ$%cYU?gr~JW!<_Wc./ckyۏ!&A#4ce"8G*te#. Dc $_6PD>5pf9/DI4фRuAR߯ߒWHiz"Wb`I ҇UЕACC.Iޚ:IDVc-1Y@fJEP?#+MC0;  X`M;QUj)ЉZkĈ"i+,XT0Ugijv:C-c9 4zYzCM\nqSSG8N\6xFZ:Fh&TÇ8*kU|BwV2jj$r0.؄dc &F9fao8fywfUl:WxbqDzkӀN1CR<Ї݈{hE %ڳ#Rt@1-5V=,kp;=[5`c9AGMv:L[cHIj#9t<qi(Ø%MLA%˦Bec+]v!)K%I5yuٓ;`](HZr1vhWAqkz[%|7BEXD LL틔l7C":I +I !dAWu VpǶx'2ŗ̤.&I!ae6h%Y Nt:lo|'nnP߽i@6V63"On8ֽEep t1āj * 28DW04%PZNra "u`':ddž{kY-Iy [`b;$Kәf묥H,)!+mK|v*`X& c)CahcJ檊پ9~)&LPPpu6S  9q9 ٥ѩMMC4nCpalFP%q7*ўf#FIN}s-7M dH Sm#0iSAA +ɜCEf&S8U|zw"#?" /m鴌<5*K/VzLeXߟ$[!\؟NwH J gw@4$KCI@l$u8P㖠&B!(Y4-(Ƈ zTE,gcněB8fKh8gl0ӱpݢ]ɏYu5 8(ߎ8;>yQ4 F&FAf ,[i2]UHKQZn ϹkKt|gv&IICy4h6du%hxv n$/o b,ʐ9I$ *0vHMhAHlCh+6%$q oͱ)3(tz0Trr$6CdK"oH 4 -!)eB+˃+)w),LY- &`P r1iA$*Q96%! "`xbW6 4$!8ǘOIA9#Ie'PhMhʴ,];;4`ˀo7:c/Z&Q2+8J 0x"aX'hjD) NA`l)" 8XYЎ+њhIaJvEMF ;G"bD2FSfXX0&ewϡ: ”(E}/-ՓiHC*j% C ' N~?@FM͇Hw _ @\@;W7v4 9&P gZȏ0PN۱͜b#/!@$!F/(D(6%tTj:wŠ&E vxfӝNzlK`pwT%;R`0)GhPf< ل0ѨvJH*(8%) %D>D˳%KD qtXa 2 )HQHk@͂H5&HV"CQL)J:zW땩@Υk]5̜.Y\h,%: I,)E#Y $%! ]¾E][bX֍찶j :yPDdmP+\a5UhhCuTu֥X pIp;3IM6{Ug"(T"ıY8g@Q>~}* (י.G|c-Y6$4n%  7Im$թJONNeZ25бHQ4M%JhBPKP о ':C b *%F$Ilx@ !J*N0,0R!O?,-lgN7 ;UK;_ƻBMQo Bqa/Bd{O`0A` @Ћ4#oE}AQlRuTJRX/ u!Ao;IZ¦;1bLL[bd~]ye0nTAHXy0Gh^ۘ1Anẇf9<;MH@%$DH'=30psGT,`(Q;h"D_WXɘ ŇI.vB"~\R ;Б4 "PRo%RRUI5p5$0,2&"pJW`H'O栨5Q,sJje uSc j'N}sEJxQD[6X1a~Ԡw>ZUsRQD7Q7;*n^TG4ϢUVx~ߢ~)ꌰX$U@/R@!f`9PD%(.4( {@JA꼖v&Jl{Z/F<6H}wo'ÉPtƝNA 2 q(ˬ&LR*m ,`Z% Q0%ZZ2 1e- p uWdAB-ړFIb*JR *ejQ&HSJI!|M%2iy+߇1Q":S3d"y؇pޒiB mM7(&s>Sq**׈izqDjN7 !"Z[TMe%"Q$I8H@D1W<5#) f& +1@UrMW*+$ "L(P! 8ABHF]M#`-@km"{_C,C"q)(_$?Zh@ySrWvboECTe64ax`؍ip%ChmXoSN~B{B]IJdPK@e"\P'Wgnz8/S+t''rX0xpKݹ:*ҋ8`U(v>bsXP@%;5Qa2!K,@DH" fP4u,C<~OV"҉&pu-ÚO?;RH8)tTR"gbi^ _NhU}Djuؠ8]}Ȕ`oMr?P)p}??H*TE;PQ8bmKnՆPT4bԔ6SѰAZĈ2\b23`G#gZd|>d:7N<kiFj&1 ,AۂoP5;qٲM$ظV,%7 asICDDc1N>{}s>},H0}Ou$%f $Cpdw@dH27|Vp"?~ J`j-%bTG W%~YEn܄OzL)"B hq/MbNKPy%Q"!L}LFuԕɃ"A@P6zA Au) 1ffٌ!@Fy '!441FQ%pRIhH!~G jlPTzGxxЮ v`9B;?Ƞ:|J#I/}}3$? e3gwׇT<= ~B(2ajYz\ZV-S c %hP9BqT?*Hh+!?N Hk E (*( $3@H&Q331QRU Xޘy^20俔e!D_pҾdR]" I~1HS}ɋ5ch>h ,GwRCQ@aSt?3z6 I,Bp)$(iߣ$Xi܆Jh CU!asp9u a BH*iW.Ǧ4$I! (vȵ"BŃyG.( lPzto٨QUO=vAtI?QCڥB 9?IG n}ݗ6˯ƢP|y2Ah΀p@ Ox F%(L ę0XBa=a+RHB1ܿwz`$M*'v[7଺:TNbrQ{,mzХwvԢd-ņ50,x{Y F B#)$3pq.*+lj4Ӓ&yiFޣ}\'7byM"YnD ]  *JdTUTQUf!!mRC'H/@ICd(f3P9ی۳Fie%3,Cb84%,|XQ uؖKlB!p0*d20fGXj2IG2 ,B ƃxc"FOP^j&5mpU~`|_]!&]B2(b$یLȞ(l*VebD/\ :"N _OeKE*/.X(SM <|nl'"B{IbDpPJHQJ$WmЄDiuܜi@51roy owSH`= >kmcIac`q$Wsy5q&829rq!D7C^/u+Gbj&ePĦ4`]a띪,:JSi,U쿔<|}ԔX=ax`nӇ߬/ |"`At E?I8KRIGA'Y(r2h?A8h7i^eaQ0o7ysw#ltqf남=^{! :a0ܔ2C1ZD ) =Ѳhargm7(z_" r*"2"BL#T -=g ,) GfBzwdp̾ug/,YROTgHHQf^Ùǟ½ύ8geˠM)-B6>~|Js -xNs ZFœG.[ 55~/C/~8oBO 'o'Hmg{v$+fz uwGӳ7Ir aЭkzrCp@]3~1D[Gd> !lNQ;E0B%"*BdO[%jGn"+D ƔCi͗͸ҡKiZaeH#4?FtgA vwKrDH̱cԱ[,OSBl@K@HPx?wq_8j{zc3}:O?'ϧ#,G;OMy: B]hITPC>8_?SPJx,P_x|s+Ba?͸"ZRf((V+&)& -KwDY,63xw*@0zP8SJR5i5Rj=+VEe.RlS0D87ujrpQ@4??L|g9i \iP;Sb(J(߭Ez3P1?Au9p.ce.ٌҭ(38NY~SAI"<DI!S?t QOe5t*k7/MKr߿둆.2;.zr@(JT:w P(P }{5EP7OYm\,Kl 4U%h+Y)hGq}sp=1*n=mwȯ;-c;sջ$\GKn}Ӛnkpև("[W:Pccm46bK3=5Qz;ϊ${nӮ6˵tpDئY(m[f nO{ޠ^C$pݱaWd˜NH}fy}+oWMn]s#0ҏ>^=czՑrVގxI@v{ub{5( *_A צɧzCV{>u}mh<qݚxM'L2K= xU޻] #>ŷyK=-.z>TܸI$}}]T͝ac ݪ:)rVvFlPMv{oz:tm7[WS:ֱs;T_lkm^hBiborw`x]䇧o6MeS}ZnhKn>-YDru{U0d$@u{{;4֝ymm};Te61o;s^k]zF.Nۼ>۶}(=4KUǣc!y Fɦ617W€r7n뽽3ղkAʯv˻t>XDGE^Z4q=wv[ԖګFζ8sd oG\Wg֧ zKSo1y y<}vI窻={ke{|5b݌g}:[T){EѾEGtd=}Ji0M4@hFhhbHxQPzG I4 3S4ҟiOS@!&!B=OSi4z hD @hiMT''=)mA 64OTO#jOFhɓ&j`44`LCFFFCC &@44MLC h4L@& h44)OTR==MS@@@#@4ɪT~jy63PɦguT5ݿ(B8ȲFaa \\ a ޲BMBB ɉWR#,W!Lb#/aX2kHc!H%a,7\,3 ? /Ȣki J3b,ԢMŬEcc{UIZ9 -+@uX[jXlhkZ R#J(w"9*"e70T@*j?UùCے'wxBy"Yw7TE͗/sTEDK8K"1t*'EwMSڋ-=)ŨDTJin6Ks*NSݑ*j%\LécDE Q@Nc0?_;Xhz~4U% -Mi,F1h%Fh% Vߟ[awBox_?!O}5U_AFٮ}2F|JɵqlXcqpd@0 Աn*!!ҙ(ŢjƦi9h2C&}ΒdQA?4QE"" JDDEnmIEEiNsbH\C2DQ!Aa>b(R82(P a`x!87,yɹ- 9?v°+X010J fÐ<"K+J&ɍv"mxM:He_wW1Q1D|-? ۄ( fI>Gpxˀ=FB d#3o[V(c-M3-)TvdQHrB*P',Umʒ3Ug40˘Lx8e阋G)Y9#5ىiһAOK N$)D2(P`,L+N[aLˁ2b#,ټz`a43T ?azU+}C?$XZ4lVLmZTg[\kCzt;ĘfGjP7h-f L;c=Y0FOB>Oժvc4%D љυf{MtLrr&LR ȥV-J5;vIT\.e0)NG.`Lus CTFL&݂o&Q5ITzH($UUԟҦpL1ϫxo2ԑE+_lФR)jr`Z\-mrLcYRQ``KIRT2Agi .CQAfR s VEKQF( BFT0T)FfBF0!|3Ś.V1,@Ŏ'$rn,a]ȣQ&0¶ вҁb2"DR 2TQ?ylA?c@뻇p;%<AI+ 8[ HP1K-ɐ CIxɢjX2QIC,ih c𐛺in" 52!Rēc R$ppdEa ^ʺ,\^]Sh`0b`Ñ1Q5 "*JB2Vawi*g6O󞐝:ðQFb$&69#+h٨^z2T AV0IM4,B+}N0Nj 92l]Q[USKR6MzzhMk2m&ha3IK)A(HŖ4҈ķyFA,f(MwJb͚K2$r5t"$4Uw]{y"h!uJ:=? J;*mH i*2TJ@•SIfL0uL*HKRu/0B~ ևYQFE?Hk@.Tm\I,VܫAj,l|ʞc[>Q6hbZª@z`b2fq{j,fk?#bfe;dz\+Z[LQEkQH[KmUF5XFX4ZZ,lQ5b"-I-j5Rcbmh-ZJ1PV6ŨX*mog6ѱM&W ``5DPkA#*1fF,KS97^u٨͐EBhlbQ0RA)ήDA)&hRRAoDAE dHE43bD "ɲH2$du҂LWTc/^z=7h$)f%T!hFnlT!z-bwM F Pm.[1ؓ)  iiJםш(BÔJfLF4(RIaPD%6wt\RD1^.XB%4žnLRH()I yQcmpNSFfe nIEsE"M5;fEfI(bEIZ-*I4@i&3ɠi+K1EuvLHe h"nBJ4^+MxE$e&THLг5ѱ"1(Y12đ#L鼣 jӭ!RC-!` O:@Sb]nFŶ46IFvU%feFQli/KrXCi2SmneJYHei6id()yHJV&JK%,9$@5!AД]%)McBR.f@mPo#4)1){E"fMWpSكyB;jQ:杖PXzT eI \? ze( ]wJ'g_]dY݇뾎)&%Oo|Dj0Fr?}GPeMСwv$ wmT/jh't6=HEy3>2w*.?#"5Xs97J/CM }͝ЯMa>cܙ‹]Nw:^4J'wrfeiJ5C7Jf!Nǟ׸o5ɸpS%SߝpMBc" +`NG MF>v/񪃀!$܂IB$"E9_ _j@_ö|d=}DR\d,RV1X,1Cb _j??K} B1LN4Ao @E( >֯V}soD#3M#`#.H`ʑ#٘[ZĭgaCJ҇t?fk i)QJͮdYELY>T1:h߹ªk"K;Y0*'VYi醉FOwҘ*vR*8IR4t9Pzy _F!G^ae3̅p1&x:o]ף xG냶.'hiˢ*u|!|,4P3I2Ym" &Heu#GǗ3;,A+{4t)L{6se6tB*c sZ0 J802Ϯ.e߅BΘ" 3a +wK֥MI򜲳Y{c< vISyQ\M]\=?b=\՘de |0u(OdQ?}y>M;$ɧC4(#,89ē}3vPtO9[~;M< vT!ƛڅ6-9(\Ӻ(NC>Ts$/KԢƟЛD7vu&7tƊyۆ@$ 00ndh Tc@ж"nD,)cN{c::ߦ9I|N1\u߷E5G@ ? %(']ZYQǬ?C~,SE싱+]D sp犎0(ۤp Rq0Ɵs1F(Y\v2JI -xxR5]hV-kEguW+URV2d&adT KXCPp6AxP"hJ_Q,Ai2UXך&mJ CJ 򟺋* T0ndAL~O(70:lqb$%C2VVk!Sѻ"~w@5"7RRD~ ~|א9B+GnW4AU3B̗&(W&bh*Kps==mʧK @hsՎ@h>t+DDYiAVKoz2}فOɆ决څ{DiY Q%eDpعlV5t˨Jmj h%qbV뛌*DQ1(c'֘|QP7뇷àzli '`\_eJ!3Em`Pe+_mf1Q]^6!HG5Kwڄ4Y:Ʉ$);yu{6z}Wm m몬 */,ۯݶx៮g @r![WMõTWR*dԓ*|I1 L*.mlqU+ .q+UTmknWJk ec4Ѐhş^t&]Ʀ+`5W쫪k,K6&"y I6Ll7v_ ~J$ fܧI/mL_nv}l*?V`TPD{d$d: ׫| W wT[0wI}9gӳƟXc  ItXn 0YHLS1|# 7?S _iYny9# =!W0ܾgv9C¦4s3~ |?<,>|?;4j!FD:b9DF EXsT2F):&Hf yuXʑ@4 BA.}a4-|kBx"cG~a6c*g`tqn8i0K!ug9K)=I <<ٿٿ^ \ǖ\r0YQ= X|MM?3cBƬ sEH~|L%^]m[WO_z6Vjfk?CPp2ػk~kAa Dz?so0=HR=iע@u'E3^"RВI&cqu)__O?mL >[J4_<ڊ]05 -g~O 1bhCeAY CC 7;hQg2ʹZYI )gb!gF(:ry6dzjsՋV%SD,gCd USWD-#e7F&!5q=H2+ۓg9<ݯ;Qn'xM-pT^}NnK"Kc7Ybjs,1AD ׫icPR;GfDVSoq zJ]Hc`F|)&5 dcE==xr &R(3tKb>߿rKgE Züi_MiV,fߏHL !0$0R%YPhQ@JUrALarbS_7qkWoђ#!IyIRu?W%,EdIolI /i0A:SR+ɝ~yM VZ3 {9P 4GXUD\(-c[_9ʡ+@b6eKEft[~7(ph"ͷeXDULiA| w . G0!]4VkQk;4þ;+ݮf[jpfo#?0 n8 <:CC!OR1  0qWh"x*{H5"bS$C!9BlWi;@pfpB!6=Pg !S8 ȃbA꜂" +qDkk*~RP6`w^+uuEȃx1'[l((ۥpԜF嶋R#&1y4F?裶"nRDkq{`*ڋkؙ~NmhQw$ɡ_ |KGfyglGȹ:$<\8+n4]'Ɋy=Q< !F0"ice!{) vV?bNz3B@*B1E}UCK }U@{ZTl;CSK-HLWxVQDA(3n sHSCwr928y*۶(DI6jjIT٤(h)\LY&]jnLZB2*6aJFlve3QZiUjԛ[I[dMBѠFjP8!ȡ$$,Pr7OLe|1QLMEk5+JQP-dBTANR@DBM2ٵb QV6,A>b'0ݛпussI$.:~C!Dc<0;oI;UQTre,An99 __3VٮLI2wBT+,n'DSEt8A5T>>6`b"4kZz] abʾCjoO{^y[!$$"Ykz=}^ɭ3VZ'C"6[rsDShШ& Gn7_qW(igi'} C";qH\qp)Ab>ݢe{3 ͳ:(~7SR)YV앤8flGqAMCWfK i{Lۯ3]{c胶ԧA/v6~ieS>FTnѳPdzPvB9 RcbX㦾RƜvi"e|ꐂ9ߢ/3Az8`0HzR(}aGtf0'X|?\1{T>uKo;nW}}={~'L=5gﶃ+Ou F*|J3[>s c'{G+ }94q@;DP%y;CKh,1kxHj@{|1@l*CghE>@"C@'sp! dԊbe[܊-|.ծ }?/$#H7 {b@ =D+gJ9 mAAဢ1BqO.:o"1 DmT r3RSXᘉ &DStvFQw`pvؓ)g@ܯ+5J硆*lS $WOK)W1Ծ$LeӑAix=#?g/9׼7qهt׻;B13`* ~=Q|YL=d}1]tp,Ə;Zs16)dRg.@-9醐:"kNLz *)r.0υ]h~O]?LE%kNg #5ϲmy\e{9r?yyvc >k1>ȨC_J!`Ѐ3aY~nZ~|WeyE(#NMNKX$+1:v%iufD@hD,+tiL-p i*n=O~t:()F#t¡.ݸy ~}wDg 1ş#s0V{ l}lCb֗Yj7.w:/pO)%sZ~B@2!)b!Y5I*x $N]I!ޘ(%:a!&l:&M4CPv=`1Y98y3hV>՘8(˰8M/Mw˳>=4\5+5|ȒU{w(>8f|Jf1TQÎ'jD9@0aF$M| .s2L%V(`ʭ!] V18]m @bZsAaQwkR:N@ÂWϦY ̳# ;$$}ͿNo럢FcuKW~50aVAfUǍA^E!͌x[N3x^g=SL8?}'6&=u1(9lj2AN4ko)X=i^zFM*Yկn[bbVfݶGTCãGT'UvqaY Zm񦈱:u7`uGTd{\tp#-˘kȒZ}$7% |C;"m \*}7 :%KД 2J @tyd"Y˷ql%8Btbr,IuCpc,wnC}b<9/YFbyp[k($)b4$#a9<`b]cpA]ov(J^81JW# B&L #1G v;bi ǯlHI;И- 5HgV6L{ٍep0 7su&U kgm}V2nf!u6QaIl8Al6CNNY7,JW=4 |D?T @!'\漃wc00wj[vrzyw4-khPԭ"%ԆPf+ kW3/`Hxz~UoV`M-PҊ71r+^a-QX}*11%@j ZܘbaAE0V(c]jcɑ{5ZXUWaL)߃o]S{/芩}xƑّpvRdiL~&Qmx*z+Fd1øXPayiӥ#D#_[eSdݭSG889ޙg^??a?+mU%\wx0K RI}ĂHԣ3 _&-i 5pnBNhv ±f>k0P* 﫚2b _"[Bg>įk&l)& @Df`jb[W6~Y:5UC=:]K eq~]RB/3d6! $$B[B]B`돡HJ:衆wg{1=q/) ^xj679m!!ضk  rECǣY&և&nDQ}f]@nŴb"}@L0H$ }KKz%pCDjwff=:v0qт@?,ob&yu5E<Y,I1ڙ:I&C~?rF($@~vm6q hJa{h9z*BRS zd qhohk-ҰBU[r]+AlV2f94\2e8b{vM)Jwcg'>˕:d|L>IaC6_oW%]+k>P}3ޝ(v j'u={[RP&O&=BllՄHqNqEUM2N5"J[Q* crd="@ֲHԚC-;'>}f=i`P nHq3$!܄7OZƋ.:F[wyTJKԻ36>W[`W.  YnK4TJ1&Pc$*XPTdAN:e :~0RŒ%;&w@JzSo~'o C5%~O5*o:n̖BshO7 -1!aH_!Sb" eDCK](L0ɓ~ no jv~ąa KО& ~\ ]/[}OiC`Jjb`؆`3Q7ڳAL\~Sr;R|%2*' i6}i%BCRV ?Ld14Ot`+u@lq,b417J2*v}^ =2'C&063_m1;DH|Y3yZw1qr5v痉1'܆Z魼/yʹBY]eq uFT<\Aj~, IbUfX]|4>16YzکCHe,fwtY7yp@acr2Ljx=P)Zj峺|J^[SEJ sٓ<}vĔ_G )k酨OeFRxJDta/RQ-MXU_]+ݺ .NXʈhb]tl>nͯ?׎%:@O]*EcGCƲkdlvrgͪ849nQdMyG4tŬˌ9|}M: TDŽTk#y &"{| jwŠ>!>,4+`2C}y paj} Vn4dmR߬.K.6=LjmiLֽEv-mS;,9ĥ%p噛A 9woO%W%l/lCR;QVY%S 0!>S^@&A@$d%w>ߜ˟ H9+fe^<))BN['ۦj }8?~d︞/;JVsz ԊT*D VJIHh n253qV!eksXY!dԠQ"+O/W&S3{.sX NLqiC/k_L]uQq/J`9ij~zcϾR@[.&t >;0X,ljM QrPBۊj5Epa( Do lbN#Ak0 Ds 7HQTdtJ) W8>|DJE"e+K9c$@齈H4qyW~4㏯418fFؚ33 uImøvr&|bb] g&v :b$#/ޥ O(+I^ó3n†!GPgŚ޽_>M i g#WƤ*gM9MY\ Gf4)Δ#TI~  EfJ >K~#)DCF>J~P<BJ3}@Mp8ItH@#eon15 (|DlE=Ԑo&ٗDwZ@K[8]@y\E2AU!MWG.&27Z@T"B8g76֒HU?\!i)D;O=T|UsK.RSL ]:O;0 B џц?X"}'AW29b)A長S>{qvm&9&)Uؘ>\-ދ!Q{{k)GktThOe6cC$r kb6*&۟Z7V>F6$ @%QV\56˯x"Mnz2W7RݩDW eL{{.䘦'|-0O!GEwf,bEYhmiDuMɰoV(-Hv4놖f&k[0}I2f/ cN&ƇISJj{bIխjM3ve"T 屿,(QDa$zH!..u`]Mc n $alqÞ ,턯V,; 2S~DH1C}$ǀ at2gWEa!wWL򢦭%5l4`'Nkўb\^HZj\!Dw<=~‰AGUJQոΑ62&Q 8'$T—SRAhd\1}9s:  {A3 ę§p:*)"u@ЀλUx[QRC *R=|myk4u;MlJ΅Zh 8mZ0i١cpiE iP욟/t41VQ ,+~'-A>v>؛#I7^cv.k§%"t޾0VkZ,E/~ۯŵ6tb;{}{#ycF袮ڣCfQXKX>?WF^tшcqwA!7eS&ߧM?\K!I(lo[xAe/[[WmHz::^EET]I*~WU߿%0ԏa\䱼@Y/)1BJ=o)Ue92=Zq1XW@_k719̥ltIȴ^2} hF"V^Q ҾVAк1Hh$Lt}pNy9)nJ1zmBBtVXh4#A}1'&]:.}1];`yE L~PPH) U0n'_D\D[Dda! P &XH l,J,[R%c 1#J,bD(P"f|I? " HC3@1\nn8'Z7|T j4]W >sS ׇ r|*ʲSv MmIU֛% 4pJB g,]w9e,2GtwK}ԓzup^ʋ;POO86|54T6kբw&[ F-FւZkϰ{{Ʒ[ b4G1UmO6tЇIO2K~>3wmXp[lIe j 1jAL"{k. Tt7;_νH]WyX ^n*S;;b gD'Atf1:oekQ®7^4Gu7ldnn J*K&@!!Z%SѽU1-8t;u-1pӝá=;n/6k~kDw. 2\8Ґ42eP=dtH̑ɣia٭m1>:s ,~3 mjz Ӫ"T(wJzmIs&(@y$jb7U`AU]/~Mph@QdUM·V"uO5L^|7dy?:%@ɪ~j&Lb}Y!Qd578鑦x3=7)&j2wI;V~nG~:j>EuhZd~W/hBBw'cɼƔM٧?UHۅY)?t_qwY!\hEmDh<BjZ:#m7#=iSTjхEMжSWat+P "웯5DW̄&K-bZm$:&d#r'b~ݔOvbߟ "GL"28Q鈌-ӮRĠ=P gɎ`'ʭpO)2NbzkM*Kμ1k8-|61;9W;Q $?/Ż϶pɲT36{>8&v2'&,Wֺ}0굣\핚)rQLrFȳFDThB%./M"aĄpfۡE\敦azXqxGب`9WڷJUS.⳰Od:9wo},oTtp2QȢB&$4QiR3>QS!Ihä[]$Z \yD ,%nNiİ Uu!%,IDDod#L7.Ww3?9=ħ}pês\jc]5C*J"Pl6cI-L;1m=5a(5.4ȉ{C}46L>z$/p%P\ yKf{cLJgA¬}8g*#~i}=̺F2цD<{,D3 \Gߥmd!Wj1 %/NFHKA^NA]Y@ R:s7]uw-6#:UEwh@ٙHz{}W ?Er>Y& =tu07%aeҝCć3Z{>,ٯHpWbP%3n!bxHEo('vw ibOה􅣯~gü\=]Ʋ51q2dj*l#W>kuphcxz:5-)wV$@GX9-y]Bt_-r 7O)̘?ٱ@w:NGVNb:z[OR`&P Cb]PL) !h,ֶ6U*T% J\*RMyvվ̞T F&Y4{t)dYhޚ50`(FĖP0 7i&z(cYNޡ? AL_FkX<2$w7  ?s Ql)'~<BDs,``G (B2FKq92(6X%0 +8ɳ'~Ϧ+3FLͭq3tLZ4 YFoYNnD.2f2U]QngYNLam3jDB|3Ah&+(f&%يwK„v6؎1Bz|{*2V:kO}*]/W-sO'GQH$scLPE̘IBW7j("*_UH%[0j,N1p:"C ek'ZeW$,NH2v 矎ٚ&w?1=OwC4eRHDH*}%~IZ(w*6cRbt]BfM{ +Jm'Pe_/"ڻt˻}q0\ZxyymoHx͖9`~&g䥤LYWO:سa1wRE 襄kҝH}e'^)LUdHÙ/lt2a'iʨw4|7~u ~Ĭz܉]7T0'+n-1J tE+3Miî*D+ c3ߛu4*M3L`6@J7Lܷ99׈HswASr>PQ,$^QBp!E!hm<$^aEEqY=SS^WWBL.YR7T5nj3ЋY6Zyʖ+hn-@Ĵ>tQD]OYϦ,DMDf&'.m^֩JߊlO R7όbXѹ%g^$gG#orлeD:9wQM#xn:Ѹ ;_ݶmc 4`z=zBwtŔЋ:ik袴ieo_KAj=8-|f)Vk3Y~%NgԔ 79䆣1"&@ƱCy$4M~o磕Ѣ3f?%HC`+_>}S`?:@z_=yL QӟC\ iQ\鋓tn[0رs R|ی޹of1m(^F*"iDzJZ>Vxէ5~4\Na$%XH/,h4 fYt\qFHffe.Y^L{ ˎ@I~mGk Ѵ39sa%[!M=PD*79<f[<H\(s$kXB ,2 rIr Mc$fL ,kN_|;!uS^un*fk<$枹謕ROI1oձDrڧFz[z]b>Rgߚ谲i[G?F_:< AIsrKn*bm2wfUrX"S ~{lqw0r0OopWB @¸i'YȕIԧtamDuRPk>@V|T olz*͓y]I_( 쯯WPof"o%%&ucLw+[Ӯ&|k&4vrtVw?Lb=7V w*;pujncr5(zTŮ$Ed鷯{ 'htb~$l.7snX׍EY+ve7/yGD: >_h-Wՙ¿>o& Z%/Winуvy]Jrk,*mHÐkٮ8ssv>-ف2g#|`l0D?aB=}^<5eZOmXZ51>Lm2[;`R~Ѥw Sb1 6 l#纆kSE Cj~ٮ=~k=1޶{ Jbnx>{^Sa£1 mt7 Dwxi{^LW 2_q4Iv7o^)5r,$C+c!+gj] @DTDϕr?Z^sEk钂A܄ orq,n?f[q[}эB"jœc,\K>'m@::SfҖS&#l0B_ [L:Y!!9wqa8VݑmM:'{]tbL]W,R ,qnymdlcfP Uۧlt1i U¼eyQ0(èz8Ad11+KYJݏ=fl "I$I߇K9Yb+mj!= èI Bj _Ňbu,Og0kD~,_>3Nҏ*VyyႚF`ė?4yW5[*^bc%ꦂ2昜H`'#^Na] YiQ zc:l=;Chb $ON(Ŵ}Ei_  =']~"|EqQ={ lĿG幰G+sGHt>O;Tu㩏Nbe?ƒ BHF8ŴɌU51,*Y3p_VDedJנ%1M /'x|h~;z[5DR!%OPӷěEK;B)+OkS>8O>a_p0ՙ0C2QHJ(aLjjkXQZ$@ SŐʍd%G܍̣_UٱLM&XЊZ1Ta2de(zhJ4QfVMf9ԟW-()(-kέ4ā302}Dxl F6/W\>F_YwC8<5S{zKc&L&@$0b0bCmC iB P-,@qi"Om?ß,!Bs2shddI— (BhP%ѐ ޗR%!T*?f)HY%J 'iL=-Oݺ,P!xpt?6n<=HJZUhP3Z2D݆6#@%i#|#'$Vp[u։&ZiIRbej6>TRm4ئ-n cYY1Dvb!(fiF+5kR)"@RMm3v[=t$lp=\l*uI)%TDӓ Y,0FVh(JNi?\֞n^͊>@I~H!<)aPM56i&SRYhU FmdF*QmF̊@+Y5*&BM C%љZT`QdKi-2֔6m&ڋm d[ 16Ҥƨڊѵ?㡹ًXGL5i3c'ʞRr?!=AG.Zn_{4Gbf"t(!yai]q hQ$N5&AeiI^F&$:h$Yx%@&#&R))TI)LePRd@n3liG" &:b)َLJ%s))iJvcc^D Bp]"2Hd`; Q)3mY7lf,[ JTt"3b } =wtɠh5 dI=H$Tu(J!w@ B# )G H< q˗0ܥEg_Ox~eE)F)lȃ~i؁6, BS%, $ :Q.jU&Je%%h֩*iUDlV4JQT6Jͤ-)[wv %M,s.))55& SWnKيd+CbsS*L!gNB4MuםE%[-ZBEI" .̴*Lض5eQgG6G̿|N9գ%> mKf_-@;>ϴWg+6*H0дV_֍2_ʩZ_:7lw>;mPuFQZf檘s4tk?_Ia@M7owU&pҫO;jmͮG9 pr*?oD L= 8褳42ZnqCjglDV~?w&"%Q)|~}/w8;6!>R3fSyEȯMcsz/&a,E*5le%A&Cq&@>}Lvs 1ʌ (; "KX\/]gJ_׀ϺQh1hr R: @%k5NKunx|''}k/8de,NY\HM}pM#$/=JQx{nօ+K,*nCwoB}'A U*a3`@LمB0 &Lo/^}i[-R7 QBwld5mXE-kJvllF$:AJb qh#Kv!Hm.BLo/HJ"<UUCF7l$8NrBd(Xt+ Vi$2-h",$5g9"krN~g| 6}8޳G~_ߔ*;nJ'e82TJX=rYvX򯬳xv?Sb$<&6 ZԢ}')Uc.3e{?f*֤^75\ؤ51S%*Vm4j&iRbej5 V,0k2G Q ɓIP-l˴uLHE6}f:,TAdX D`"* ^5&1A$c)8Yi;2yH(K;3AL{`hŇ s7,3&2 (lAgϝGA- ZKEK};][Fdջѧf;(^U滋^<;bP`X;PN/p0Ǘ%nR9Lp7׫.$;53o? 9.jgal2w cOhNd6&k}ww`QECva"em;ܣ(&E-B aJeBIӉ?,'(C?/Op= ljؤ/hx^V 3x?@-hӪvzЋׯ6] DP*|1Ynqs?rLg릱<,xJ5XZTF&;7ͬ3<2q$Mhቪ^l |D"}@u%F?YpCѭfow# b7}L/#0q#S: 00hU*˔;;G=uOrÚ<4Ş]4QN[JyqQ=PKy`p2W)ǭۙ%ID^L0O#[wPH·)=]euu$Ԉ75 ^ HN$v%#05 JBɉ9gIYBZ@0'NZ, 1@ _?07=< ʲnJH! p)=ӷ:6&/am$Ӯlrꂀת&t \xo Ek4 H#29cS0zv O.AԎ~m2~,7¸NE=B \nd8b7((n sA7|HZ)_C۰|Tg}ɃwjYF<ƥYj:Vw. !?1DxsWatԧfeH!F[ )JDDDFC y;!#yɡT r8f1X :q 8ML4I$o\´{&(t5VFmh Z~!Jܷxq܅dQ^oN6I󷓹fCg(K&WMRdGViIOv[\?t2wH7ÞN|90\l fHJ1U$C>e.wHElDc~-Id)!$Kq"A˪w-۴3_k۠&J9s,$z w'LfjM5k9a#@yFG1ˋw*ٕD]1u6lw- #>'o֜ YJPRVQ,TI9tfBFdzzH|?Mu.vw]ܒq0RCTSi_9 ϣ֪ D"6y`BH=1x`cV\=*b;j@]I@S0I%m907mt89oCa>: 2 8bI2)'f~X#p=;C IΐW8"sQ8NTp00W752So9]na>Ȍjifnۂ$4P~P!= "Ϗz8ccє8‡k{7@S/M@`a LtB}zhtz@sNLd=$QTNw;N tJ25)B D(pww} L4MU4@q} .Lɹ6ۦaGx >PC|a@O>-ʰmsAPr;2vk)=G_L9h56>b` WG]^~fϮ`d1|(?cbT)Bn12!ǎ8i<< "<#O.;2Eo/g:9Q?) wOdlu&rW Kq9%0ˍ^)ݝ2I $&+wzƙ2f3 -DXP\oh/D6ĸ :0WYZfX wgp2Ĝ9Nm ^ϮĹbm+Jު4;4(7S` ѡ!7 Pt#s)u>zyUl8/v9|: ɓqrtE$H ĥ(F.G.ž$TpjQ 00jD@O^EPAZݧm!xAIN> q # , !IN-u;3sߛ{t9d3rÜUU[Ts,w%V4;#n$#:O2SC9j'b00ǰXiCN׵T]< 4rJrD(Dj ɇ;9,cg?̀7u-`XnDΘo"Bhj1e Ivd: ΏJ11dwi0'=|mzJ@"4??L A<.GDttRǎE%iHPÎbH}t_ q_6yY`qU jyco.I~|N! P.oR"5+_!0"nY G +Y,{^LmVǏyA9<1giWMMܘ$>1IJ* *Ma 5ԝmr":CTb 1xw=k)4D]0}287LNc';[6s㛗)RL֦D?P+_-g9SKL~81p i#@,CLM'(p" k/-ǽ !¸D}L@DFQ* KWGvk(hl ݾXO y|p _ .>#%G]*+KןK8};qo$j-TGHk{2VąUGWB]j{Ȼ-dș8(ı.(gl|,%M[[/4+r5Օr]-KWo&< I n bՊU*z%`|1ao{$pl{Q^fp՘:B=1gwKԈսڥާOV6髅לObxsjL+V>Ћ=[d ZڮS?&3ڔ.fCt \JUti==wr&X']IỹTQ2ۺЃCB2(YjT&5ZGڲ-|!47UT!̥2ߥzfAZqym#܃tU-d L@V^;|;z*;/o(+P!2H8qX}taj+FS`FǗ;;I gU8'58u3CDvr[hH&">)_MODs90p5f[NEM~5]։]%'k"bLz3;Ӱ֞h/r7ἓRvݿĵ16nv4l:79]@q-ȿ~?L79Fg6lIG5GgoҞ^o ?v}`8*'!#8skbrIyzoLZj/099$ngCty"<܀l΢ $ l㪖5iU%\MǍ|>g '\v.\nBb=ڨ|h(76_ʼok(Fa[s=SAK^nU%ک +]V-}'`Cgxe '\+3YC ݍn)9*مmh!9SJ, Z<). xu[ʬ;˯Fʹ.Ea\:beІ[r}1V$9WaщBH&u͝:jeݛW\x@\>͊W !T}xGط(SJmc= ^d6LMHaS{4"Zq.'o{8X`].Z%@$q0|?=!.6drR! WM&RlF!FTuPy7LpPYw40rs,`;cp]# *v-οnv˲2kfAG7]Ea򞈘m'_g^xqڨ6 m/mڔ*S'Pː?޸`N6B%FM-q+.PwM#Ojԕk!9NϪSroizi =B=^'&I= WcFݣJ=0I/ (BVotK&p)F>o/vW02cmnc$~j'=1${C vhz`# Jcl:4A1oxՇxJgoz`[|9~F2s8P&S|^n~|0Psb ~ $@z `a/IXz:̞ mDP$AaCD@%7 ̝cAOo,֓_p֌b.YR@O~H]u` 0Z(P`#(dm%_pY8 8ֵ B"T> Yfzc&i)ݥlށ Z G6 qd8)>)1K%J,9W`fba@ѐD֜01 ȱV*X "RUA-HD\tZ@v޾߆c1#TweIXrDz"Pߝϲ]!R;oBm*0/Vki&HM0;# [zaokuH4aհg[]{7(ŭnlȢPvt$:RJ(K+g" L`?FHbL u`s0='uC8ޤΚ=iڃU]s]q\=<|AxFJ6?WEp+Q7=ggFsi,=W`Պw#$Cnݰ+,=snk%;Ctrh2?}~n$ae/!d^j9V(w4S+3`<.O$7Sc6r%ݸ|n濿`uf;aWa{Z6)B[z-<6[lm.^(a5g)[5y'hm'ec|g;ҟW5EչBPmռ׳Q_?/J벭#t#WuDSc&;2%&X$cʃYk39䒕a_2h'dh4dnH\AvSuvUzlVkJv@UڡRz;"ZJw_G07wdSFUQW EڶLqL9F2J%+IY "5Xwǜ_N^tf[nЩkZS bȱTm r9j7 jO=nLFUaB)0;ir#^Fn(℘5Sd0\9ayITuXls_Cdz>=irmh$yȻqi=7̾ѭ\;g е><VɪLfST}:C{?O'n}u?o*xIPFx#Rh^23mL4EuI0Xxeϴ0hQ^r x. "W^[zݪpu#!K"b61Û*(0#EK˷sN/аLQv(#+v)tΜI;Aݝ.ӟ4Iy5;kGl2o-5hVyQ⼴Ol<ǞnakrܢtO-rut4RIL &ק=Wq=:غ3\Z4}P 84u@܁]n Gd8UlqvmM[%12zyeF2_HmI]9K%9pќʌ!2w^!cL%5qa=:ycFX.>ua-7@@{acIL]B{81Zga\ލ>qw(38qS2)W?O͞輢mJ>tWv^e^x@OrW`Z{c'_> ` g獘-8/Q/vڛP˜{{3McD*vʃ8ut@T2U@c@{;9)f:q[劔r)<V|qxykv3gvi%N9(:2SLqt"~gwGmw[='=^V.y8 _a\cM҇=ն c܌33qB pϲ{ϯo(̥~Bgh;&SaD?<Nf9sU%~gE$B=:,Lkt%T8&{@/pӕЈUtcCf۽}R'vЌn4 &mdu T3Jo6gULm62D;tGAc)tJWX.RɌ^y.ze!'ƾ1~|u{~*S煨;v5)u)1eҎ+Lhp{Y=n!GD-pIS#㛹t!X-Zᷞ,veY/F{ii;-.iNԢՊt9kV 4,]p:umB64k13d+lO5WfpэZ\;Sm=U%]2!TmF08/=raƎW[Ez=d^Ѿ8ZEIZѾ-;]DmæUEѳ'_U+r3Ьçeds KrkpJ{vn~ǿpq_7z &c~g_7dvYn SY vҲG_f;k6쳸{{E]VGV5HK;YjG_4B tycֱ!wǙYtn(UJM)H˽E:.+UtuD~Udsl÷8>;5n|H ݻ | C߯Tb^fb~[UBwyܜa3}ڵxӨæ(* is_1{?rHC vCLŹ00#DNArg_?Tje$E(̫#1Ahh#SJa#fHXʐhDɉ),Yi(UHRb#YLƦ#^M2Ifɗ@ҖT$-f#m7i 5ul ?p`EFQO h"ܑ@w0TP Pܑ(r KMd UJ|wwDm^]$ U2D$(#)FQA  ( %a 9Ƀ@hԨ dIAgf9t@>z*"~zqB Gׁ# oQ20vmEY%p:zO<Ԋ﹪`\r L$u zݱ{f-f ^/'Ѷb@fs–-\Q\~֓].Vc@zr=_$a{N*)Sw!ʊ+AGхv o-8];;1+kO03adW)1VGP݂0t `Սyqc2~T@t쿮Ne x?6`AsUGLʗfXBPc>~m Ct"y?mFg@$Z@L$ŦxNDOьk)AI%L쮎: [͏ rTgI֊,*=O3:[:ai+ۧmR3E|0\,{XT8cd1[oڧ-#F^枂8( 2em$C72f0 I>t-I( F#ԫ8덨nL):[ AN W,bN5 9`Ȳ_2jyvbƮSo&H &>[:d&?ܷ8}uf3tQ xY3gg״Ɲ,PNlNaĐPc#;w>4ㄓKvÁ(. |l`> &qQ{BlhxAȆŝyw*[+l9 AI*NC(LNѸ;)}_עr`Sr]z/f aA$/c~:WTU1vRlsI%Уh&[k9qLw),qI~uګsVtg&YS<,.TE1r( ,FC,=>Tm YZ$`O#T-dY4E.48nhdY̶--~KO~`ti&77jQa ţcd!wC v3e^lq xM歹o^NfG(z8^QKg_4!_P&}hr9$i,^$995~]ŖM`wge#хL@@SՃdG&T3oz ͑\~:uÓKMsf"5 GF$tΓt`dnSy}?|񑉲~@lBΊR1Mۓ/5rSlJ.g T1㤝IILpiojq}6hHYM>vP$Eƒ_&s0>Zk?È_YyʕZs p *J'}&پ> \x'עWFyeYI|2K鍷Au߶. {I6:-MDJtF*اl'[TV2Tg8yNg7er5PqvB$ךW!pVαuR8u_ fSl뿮Osp5y YS{Jqlo"pw# ?amYksHnVDG_CP[ij ũǖyd/eX|Z 75[*׫-tx& C̰@IBZeAy'ZȂctX l2ػvNLj6+٥dG#Ga?1?30fN`IENڙqM/+Hp~LXS\;3nLH)лB4v|t5sakHajmJѣ[ t$1EF|?c9A?(%ZyzG(<LJ:- JItMZ|%mzx!dKSs2*F* $68;Ofbg7nk$7V&BE':uFY[/aJWzKY:"4`1~`P ]i%)-61knpƆyE&6aUwm \@Qk烷 Ã&vw#0|W$}knd#[R{5NQ:wR\}HW4λﲵwO\De :+h{2p(Dzzh%{4)>lKYDO`"\$1ƀdg|HSe 4ާwLBKnԚ?4pdݑ[( zzЉ]BaߎDcMӿ:mAJ CA"b2{ܚ)J曡1`@U:9wwq3 ԑ+Z1AY_DѸЩI=nC; X; #r&sD~RL[ծ?㉣\+̨R-Lؚ1u!b &#{nSΉ0*PN#lPlrx+Bݜ7K&% :.A-v}?J@I8Յwj+v0ٮtLZmz2} @ُ??}+GD[[]4:޴q~/%$WM\&Zc_,w macD$w-ekŶ*cg/^a~Ji~mXT n4`SD\.A< -E\:g@KN0o1@zvr@\%ϜkE!#z']g;jMөˋj"V+]cWoK 8$3X`8 3P~a46&#a:<Kgz}@"svHqPj1;}|MfDD]46h^H/֦?c*g/O(TIdt-:n_k-:oi('ALd%ʪZ!= #5 hTVmbBBaL,C6hы` CcP5eE:^a !nL$^edHyq5BGͶٹy|av^*5׶yUZp(f6H53득x*,)ӪX{D [P΂1fgT;s8\UIlETLN2=TSm"~_@cM>mM|6 ^좧I(s;_UNsE0{AAۦl薳s'0L,nlM1[AEkvjdqYD!UMU,@Q+Ag,Q>Jk_ 1F4 Wi 4$b:EHy+tZRß7g-j8c`E M1%gdxD)塣 Uf%njaDC2ٹ <<$Er!YW]I= b&V}ӧ \ŗdNw訢0 rmұiSdIPz(?z@JP?DI ?܁P?=WވxhyrFB_0~{t`(*8n8"l3CxcL@]86PDnPPE.TKՒ%[E7г B];7؏2|#p5 s> \@'wIS$Gh>i]}"o?{t4nkow5쟐 7 =+:9vxznt;;q,33uʚdso7 =\x,uT LT=%x̃DǑ A*  93h%MT܈~n4Jj᥉۹JUQĉC0(C7s=tIoRk8`>f@&_>4r$nm Rw Jư8p_<4G66t7InV.HJE|RyG!txʨv\hry@Kxkww_8T&Pr)c8FMҺxChI袚+V}짪5F~W٨diiyfnB/?µ߱υ;TX]k=W7絛7z~oM>3Kw} _&TU7D;п?0o g?#_a_?/?z+~ /j/7/>o>߯k~e1s?a`?8ZAD~hBB͒Ș@3i2D@?w? OyktAyH_( c)I57?45 Rt<\U70H "Gհl`TIKc:q~X*+-peD^<~]YS+/W3̶_;w w;|31a2 Sdϲf[DYڳӒ|Ip>}Zt$MrXXE@qw۬jq>1W?≮-%5mPRhݱFnSR͎v%PL}8f=d&իnUh7h u&!6ՅŒA2Tv[s!r5pD,|~T4~wymʛiߧ}Nig[\48"g8N%9X[P>+_#8/c΍smb묻:i5¼g]=wcʨONoF:gm7:zhnZ-u'mi]UnJ.8+n%n$4hvuw_gA(]ckzie·t z@as h8G#jVqaj#\8y ٨Xq5  k(5U^B}=q``zJE4寤y R4Ra8JJDZ G/O/QpwWvQwKOvSͿ9nHռ߂K#9qp%^uՄ/(6PZ!l 8?rvmBsL &6Rӝ6wt]9y<e=φE؝M O0,S̍eITΙ<0ΏbBv,Cx L݄kIn_[Dm}pZ@qSYά;KHnHJ#)@= Š.8TJ1k;6>§+O=xK&]@vc+s R(aCh<}/SgmY; rjzzn7_Zϔ*l+ZX9gn $ԍċtĸ k)Dnu|.fzaeXaZyȕBP޲ .Mls "&_c:* qSNa N&˛3M;@Dy?5 ħנkHf8pԚ :DZ 4%抐?&9wI ORuWP@ }p 9/W)qcDO2upor`E, x&5$O}aϵNPb|4%9 >$@)DhA1 )M4aVl5xwR1o8p,h(1˞A2x'\ '8(F Cb3-42# &1 H?! }=ʂ|"=!ԭb"aF5֝iw:FyBi?:I(y%(&6vkͽ (x? ey挤;]b>(IN.YEXeǫ r1P0 0 ?T&95N>Y0u"Y%SfDy H 0]XK}7tQ 76 կY";l+fu,82L%>Uv8頮#$c zoRVc4RM jP`Sr@t%"-Ҳ TAnC?ƥ6W4~X=g=BK:Sd^:nY\b\:s8M3^F5KrGw}=RbdV5Hl} ?x9m!e>hO_n u^RFk+J\1 j{]:p)C ,y(T=i7=4JnsZ=hc7tUBZ=8R)(B }Q(-J^6alg-7RȬcXaiONvŠ $ǠWUa*#UU[w7IwssP>OUvsD,di 4 /KmUuOY[bN`7iבэwlahpΟni󕒴񭣇xmtߪGH*sdBlHNf.IT.ojHh>ѰCD,AO  򔹈*CY>g iDC& "~NR"Fq=(3쫎XBݴÅ@.XaanB/#.g҃%凞UB WښJ•];UDA-a3]j5ثkq ӆU"t30kk+z|ڤ~3 mٷ~lPU9-ۍ$iʧe%cscJDSk׾F8&# !BR+j(nP P%FJ{o!rڱѿcZ߰t()h] 8':LC>!_zZ x[^#ku*\rb N0wc^y{kp9C_\u9]cwp `M$񈭰 2$0^lKʆMxvR݂/+LMwL$ΘJc"2(L@=R8zbMvSN1 I2):XQP":rLʄPT(F:v_Q {z 8aò8 5fEӷĀ#Q[~Lxasл~dΞ'H5!tpb}cʟ|=^5n]:"ĩ@fR;N1d9#M[fA @ uP$C QM_FD;ChMC>o~7-$+v`aHxN?42ΪPY'\н\ ޛ&C#S"I%"7ʸ"zI  #ܳcguT|o14|<7nhBf:} 8FV,sOZzΗTQJ{Hŋ41DIDO,* 0k.; |"\-0 <;W۲+pJqbA0ooR .!YBH_J)wT(&Ruuy" P^|pDXt?=7}w~{1jj-M}wUQH`Z3ȿ+?iC|D!XBPQDD!M,V2m,lّMDdlV#Ri1QLbbѓbVY)6 2+QERV!IٶaA &ɘ3i%,mdbLh|]$`nB6F;BM<봔1.KJM _p`*}iGX Bd&mD[BPF}H5VB \4fjB"adk0'A{0vyz9/Ŝ_V>_ISy|ԚN%GTbLJãnff1뾥ӫLgyw3;N ` `)y*z]DlV58&˛eLwd rkx޸rL )\uIIAoߌQUR5)"$6ώyE5 (ScaÃɭ 3 &6?sn w:#ɌeNxv v(D$j];iMS6V6l O_3_-tXTjl.X{} Zu[07^GL;*ҋwQKV3AE>TZ{My,0n01f&Nd6N-C,,k$pe";Cp̃&pf|m1W@8 si_Tm`_sϗBGFSUXyҷyjc0 S/tR*e:XœOu+& :ϥsz:$Н EABY Op|_lQBFgC^w82iΫ33Qۇ!=e^i;u~Ra:)*ČYW'Wor73!'f36M眡(IO1nP:އ}Wxʟfk厘6h!g9%qqf&6)8 {CL'CMEDč301]U9ٻ5,zsTYr+@pE.CU*Ej*#J4 p*a%mGn[\<҆6}Oc|ceo@4]^.A:o]-V3~!+f7s1=/|uq$Muws(ÓWvO8իJS35LIȸYbtIu{ImGV;sȣ rOeIqVqϲSuF0[=;O.-jF. 1E?Ns6b0 gW^Ut,y% ġ1Sx8T8Xa'3[+`WSB[F?9>of˵qp%t\(YUqwUHb!lx12]7 QuXU>LEI25 {{5jt- S%NxpҥV cXtuRCqrXڹ<3k_Daw? UUUU6_G{}؂ A}NkjqXnEwpn4;301逼%$ۍUUU4r'(t3M3ḧVQL ([h)ܖ F H%[eDBOS%$C))@0"gNC &"""!@0NA.^xM9G|~Gwwj}u$mheMo(`\9u_T)˂9TiPd#E]JRNJoۡ0qD D]2SMO,v:qqL{5H~X!9ћ>vhzAH7!fw{zq+efs郵)Ux^S|&fܹBTsn{Dfrl-t>bFK|2d^Ќ7_M1bM/7Ou8G;Gl#|H̰?DZSCl 5R(~ 6g|kE2t=nNR^|ުIy8S]#(.+uWYi[Y,d^<.sœ0|)f_yF1ms7"yvd;jx8B7qw \F}'j(iPh@={f<|m]CC~Yjfk'P:}_{뗮_CE`Ԏ>øh!}(sEE-T[kJrJTT6 {=gaS|$عl[fASnF3v WdoWën$->{>L<|^sZ:Oiݧxi"T؉n `D68v=qЁ_Hn@`}>PI a[{,a b,(GWLBb(cLNx.9fW4A!pLJm!|Kk%Z~s\DC`kR! = HĻ᧒G<TbCM%RИnvZCL8V{j3l}Z||/XV+ >h=|8@ C֪ܯ !!PZ*G]hLk.W⩶p;N^KB]?, *NägЪᎳIG9g&31A3w5gŧlrQ_ GD=J"YEhD Ѓòm鋄OӦj+MH\:Zu;~ H+~~ܽYxb C{;>_:ۺ )[=8[6OP'=\]S3bkSm̥FUiq/=LI, b}0ކߧxq:جVٜ*9&`tPm=>NvS'v։ 3{M?OimA_B#=_&?=_|`y4E=3Sx%?]}EL?9|^=UDN u bfoB睺^pv,o^aV=}qC8*:uJ\=Q+~+SAيKr/Ew6#F֎-ݠEUJ P6yИe.=oc&j%]Tz;H'$ TAh kΪ`08 YM9PDBF_{cn#9M͏O=~7!&^D(xAQ; Lh]Ab.9'P԰k {B]=0̡t &=iᆾ @]ZrS/2uaQavHt$a0~CZKȲq4{Kl,Bޛ;ojwxF-vuv졬f`OV{rUL "H]'+|]R1}sx2Ggn Hܨןm#J2nkVn\`~!N(0ByMVO㑌ϭn Hy,(gtfMʬ ~gRtɈe@Ės $U ^Pso@tmû]B-Ek(dfY|7Q\z];tPwb*!8D2n͂G־3r1{1TIc_{^)UysقEeWޠIED#ޙ7?m gYr1(^1nXh+,GG ױEoE^bZ^kKr&8E.cH3EL&۽*,~^nA6]F):/z5pv"Qe(0aS}ft? aw\+η _=F#hf N߬#{Sy5{{+sNvq<4cMH sct]Ise>~nge/?MCɌY_|/^a9Z6FD#i>#8;1~އWDh;D~˭>pjleCF$?+~>=\`m"z .: |`&L:4!{寿)B:hLC$n׋6" V M|F1L0=R p)ݶ<,#k>~buT)2!1/ƚH@:Q"߃92лC1^Em??'dg2C/" 'KH>W- QU#Jm}5laN 3A@=T$`ddնVgi ~lj yimsz䟱̋e =kG-6|fH^d@oyqW>;SMFѽ{;iWb_Q_ r=0& H8pDӜun]'f^6faF2OBj'C띴!@"a+zoPr." ?u7GUCk^ԁxНQ" ̴KC a:]oȠ,w=LE'0ȡ^aaޛH2ON\7 Ϯl@">fT #':0ȩs~_1 M~{/λ;#YA ??ΟwoGt;>-7}pk=P$dxݕqn\\ŋy DgWTcfcP%Jgnu/O{SKfwnhPL>!!r>n^ievm0c)oʸnb!eM(L/YL=mxdnHF}(tLbJ|:_3V-c5@OIy rr%eI@i|6inZWStāA!V 5s<ޞ\w2iV{[l9`臷|_gO?OۀQ q2/sx{\UZ3cT(U0ZňUG4]Xaʚ;B,&(USiM&52il6ݎ;yU;{;·^:@A+mItiįԶáLGB6_$XTIIJhE*L1C"@r(%ZTVZkRjsB(*gY?w;1#0U3HrHi/)C1'}m]l$%l,uhiClp!"X 0I),&ƥ٢*F;kƫ獢 C-2`PYR?ܰ3U0t!Bf(ZݚHR@pNYtlJ̖H"oUJz* she! ֍hG6qԚ=Y }^4d2T2 D':'%6bd#Ui4LN0 Y4 BаpD k2,D 0t s  Zu.j1rS4&kJ&Z妲K`-Ac%(QU%WW RǮTuTP;Ciu"815f0vPԮMk fR$-W*]C4P%;-( J)FL*8  * e%50 dJo6Y([vfJTY2M+W) $J¦2ʺF&җ Z"Pbs1iB`WS3ݟLG׫8~>*3^P}4)'s}T&aerff}Xzg߀M%Aw"}]Dxf9L^qa&S)JKJ,4'=A >*xM"ypQR@??QݦFe"sy7di*zL>sWo&Z")UQ1Z̡q@C}vF\,(+r77 ]=#i~# U\_8쟞dtE?[<#l¡d8Q"**lJmtJJ{ 4'`+`-B4101N B$KjtTjyA EoŮDfuI|%D5:bH}گ,GYHč0%T0Bp64yfRaD^h^"`HAzYv D}@?3h$ u:)lڀdPzӸ9QCʎKaV;65P^\gOi(=@0}MQ&?Ad`cGOG $MQ#NMmAʓU&V\9S0&tS(SC~  :"BhJ=BJ^OJNsRVT09@S^_v׳d`y=<=-wpгGl MP枞{ZXdbFz3 (@մSXSmZr" `H}a]P~yPlyF{@|)(i8?|=N> 5mE#&K,@^@ vb%pp00\qS e$a\L$l:IӁփ %b"] ^4F;!6@,}D3W|Bih=|L!|pä#d!!CNk dſSOVFPOB"]O'c/Т{\$L:;vwrQDP4KKBkMͿ9tN\}̔-)^nm(>$P\1u @N3f [fBeE(Lad-,#|M&^ JbN n04Cws eb mҚaL@ȥ# PL ^'44,s$096''bɞ(@ T{˴@:T:]4(ycZ"T>j`i0/~>6lQ+J|z BM/zLWy_4>w †Ѕ]-Hs27)Yf[jhQ~^A'? *&øp:.O0_L ⏨=oK|8&U'\ 7 2aٚ; nh351BaP;iSHd$ ڿk3%,0A)4>)"\rAؾ)-ر(=৒n9CLx#8u@R$IԄ T_ Š N(74DJ{PѲIרl di 䣰O{› 7RXI39g=CkM<y1&&ͷ\<09NC2{,sgz&1 [Q{^PnA =DYx)vb8pL[(Pd Y %0 0 `s .M)[<$(5D@A- VA,("E/a(]CgP`U$GPljAC=cvdlP`nl A*dgH} LP-%P 1 g @j׬~#TTdwH}x>{-Bvr 'U##U~VQ+"Ɂ2x󻄞GUq?Kb=&TnN`I!F =ʶC|TD$0*C Hd[(^~&x. iU43D%sM?(+´P@Spp ϙbWG:0D0 xB@L P`!F$i(j1 >O>  ݇g{ R: B$a&P$,|'㝄¿䣘6H )|AA8?>Oޛ.Ӏa9JrF59BX{΂h'Rv(Ѫw<t n)X'cޖ@L ~}]L\#?y 3Ca(l)!T?Y^z8P|(RR @r?I@= UZXčߋN6<03Gj5(k0a496)?R(4@q&O|[dnKtt/0 e-C]ZM6}viH1d] 4mC2$UWp%rT֖Z{ _ u9huBjQ Р @$5V*<S ]TTN@£p(ZN34SA˅T!9@W/dysC(wp>&_zp2nq9Í , 7gm$]DdȊE %!G@N|hkvuב!]DL┝Mz@ `]:'td£@4lA хA<_GTy|ISM%QGܐ 믷z夗Y5i@`X)PRka 'M?g 9 `}!{C @5u[&<h:y@0B)j#$AP:RP5]ba59NtF~KFMD-D*.;BKR!He0I@ֱVkLSM#Hx<$C|ϳ`'@~GOya dF.1 s d2@>J+Yl4$ToNϩv{CϬOs=;>)C-7:ET6E( J%M>[4iihX ю*"HS#u NwDPJ BCB_jZrpv0kC"2jd;-%L8d0Y#xB $0ԠJ>OG𲩈ݔovՑ'#A OJA bԋ$?8UboB'CbDUPF8(Ȋ,(!!ci5R(DRgp*8շlgf)А6$BwDmΣemM UE|MvmJԌ0pF;h0,=5p| sA{#},Z`'!<HbJ>?/*Ohu ~vqD k$Dv9.p,&0/(13M֓lx{;OPiâ!=o@J+a $!rFPDRV-4B:c0PHҠ_Xݩf:Z2&Sb`z>?7t$|RDŽHDĤ((úDC?>XC a;c^P\ 80`h44pBݡ-<~nhlQdac<WLsp:ˍ4M4C1vHM$e= ބyPAϾn;%No8p؉bu;Q݄ qp9=W`0Pk(@4W@LTbrh=`^O~חJWF'FG(CwLB^ h^3 Iq]W7ـ?/OZW}a-?& kF(/0!Y1l4DZdz Kd:dl:QSP+Z)&bi8Eiד84Kwx@M |z)=8&R iz:)UzHj֡'5 "CJb=GiA%~A) ax=hv}7/ZO|Y LCb<P ro(p5y!$ aK=E'Q9/UOCP ഞbS-3e=LCaC C$'ȩ*$>~<=9cBdswtcPqѹ,ym ̆DΜY)IP A*c e)0:0v1RPMvO D4r nIqQdV=YOqTC֦t|(0{i~&8j@˜qbxhZiل5B Aw?n)^#C0䝤!(xL`)3cp_'? +AI"?lc䘇e "( "A %q _¨NJ"Dӡ cϴG/h=K,{wp>8Fk'9<ꏰRs

ӘMLB&~FE z8.uw7>G#!GU90G$\bbb{sNa'v7 th!!_څ^v7(N,%'.+ᩂ:2;{R[\w{v4a0d|O;F̀CbHpzaFeHQsˤ/2Ve'[ER*!%>ǘ#֋"z"e !¸*|7auy`?7KfL0'賨4Q=>avϓ1YL6H x{\-3@W}A~F9.n9t#Ma#{vX2($'CQ$ j40Ѯf) -@0 {r} 'ؔ+z7`ѿߢȸ}Gk1aFUHY5&u[w:}UzXz>j,@ 8OˢEG )q@':]^x?Œ\ NG=_†f#35ҋ@1Syf\4)bӺ{۶" \m?nk[F}ss؃ǍA=wZi%J0J2n1]/ƹdz%g1ܝλX==yq)K#Cb8Ss|oS 5!0du\9SҦ2G=kqS=}kӓ' -KsQz78y7)G9[b8^LðKݫ8T{v&J[rŴS`t)jd%e9o\sX(P29qtr^gW{!N広c(GԿGɧ#ܛ/ ~1@Wqɴ5GO*'ht$9H Q4>w%~-k=:~ڿ_g*-=sMFu-uf?vJF֠TKKӐi $ FZ ZgQEV͔{#nP~̾ʊLGP- ɌdGqސfv k" i2?e谡XvߏC۷ d( J)( `E\v̎5~l`2U2%z`ʎUJgk5;d9J u>yBxg~gHS['~yS}5 +þ;Sk/TYםYLBh~7QPj?\u!8$yn:.3k%_#)sDunaԛe~ԻPi*o;sk%b0as3Pi1HnʡEV߆ʫ)aa,Aևmќ*2o?OSkbb*7r=ZwNR2+޲V0`ed)m E=\pE0~fԻz ڦ:h;ܯ" l9(A- $'o=n.z@MAdE!%\ !C^NsVR:HSg9h~4)@'5; :遌UڻI1;;:xy;2I urZzj,R&l/PtG=#BJbƚ3B, 7aΤg`fT-񀛁މ _iL5y!!fy`j0ů=V\}'r<JI xob #㡉H0ldlx4lW9;4${8w?FʳF= <=~uWyF0 ,}Ivsw1a9Y|I% hk1nN|W1iL6X,3Cńh;V^&$NuѼq)o8f, l<`&(U$UN6q[`ňC$ܻ8gg\"ޘC5!L!MgO]qwfDE, Tt8;O91CÜfJCe = FVO["x@oN^HD( r#pǑ!ڻ/rIU 'R!jVãbmQ築do2Ejv2z a")`Rvq%aSMt&(k|4yH*j!lrmϗ8X.;9dYG@fyu& . "PR%0E8rpx]`frp/yG lwl@UA )U;O~ 99dZ?z^xw_07*Z8HND5{!XC>>Zav?7Xo}Gġp hx4LPohhw#KOB̜#I- Bs L K7}~k_f.ϳY> N4ܽt5I{w9 7n$9G(2h0ցK @`#XggL{'@Bҙ[9b؉=J~ٮJ)|+hA~_?CC)A?)߮}kN=KM>S4Lb"s"H|x YѴ0"Ya{]c}f(Khz5>~}u/c4W1-۬@j/>: &DF$ 儃Q|f=y0䌂L@@ H?C <#Xc1Ͱ(M Qo):u`&(ٞAI|r |P*d Hh`(R@>;Hx;, B$"g`BoD;"3UR3o颟l=r0sG``hzӾر }bd 'l7HtRS8ô+͑ۮ6$( ,28<0ġ3y$pb2  NMq2z3k*+6MDpYeqQm( u"[5@)P+ ztC/;G<>eL<ߥf}T>>?K ?=o(};!󓤊"3 c'HC*í??{VK1e{r 4nY%6``M r PUTAF$V T~ fdUp}u4Y?~y߇>,5:hvD! $bIH=@a["1YkVI |CG_"6،E&K mk hB@a!õ~haqaBk >?P([cfTC0ՅD)!OG~aA{( 9pqE-B;s?;~**a1J#l+5}ߞuoC9SH Cϝ ɣ4VB"EnKPڒk(aڑBJ9HP KJ(<}n.'Moھ4b Iޛ zsӀ~t8èG׫#(Z.D&C1Crwo=" CB6Df4-wix|'5vJ|01,6*)j@ N0O &}($a+  ( 3E A`x3SXVlW(`D(KAkd2EfL3mj5)FZjf(eVR-bi5VIZJ),sS,W| q@U%*Pb0@uA/;5?10Wq,FMFR!S\Oc$0=DT.zC_WoP@ؠn*۵\ Jv ](LJ(BIPP;ɪ$GɑB}=!A(߰1;XDQ L爥 AِD 4 '?pWץOj _Y.I*%P+$ReL|u=IZ(G;jnE󿫘0@DA?%0`&74V(80pbIw]L!x4$8HdQ`H Q>jQ붬> 80׮5SdnBfh.G-@}Q̈,6YKaE\KeʉI6xP=~dC[4i (!'?97}q"!fRC 0h@|BPJ@ z[yqm^]|p ~_eւ"$z ̰Cql0dIFBRL8#湛0ʚJ$`c֜#P.& } 'D?T*&D9_ „qadYd+oe,3jIyQPndU2A!b:4:.}?7:%:p\?Յz@TBA|/1 ;8Eԟ%k 5)JdSA1H4Mޝ916`:A3=~"O -dCan}h'GzNb?Ss dM}b(=e8b%Щ #qSeʪW y{7)PԐĠԎ~oʞxBM$156Hw^7H~s:`AH1>>ڬd|#pvWjf;b<5OdbK{0Jǯ}/~5UʝAG7\=]K $ Al NƠ=Da`kqju*5P1PrGټ*fu@JV&=Ä_S?EnސOKpʋ˘{"&@؁LNѐZK@y=xz(>B'!`^ݲz&$B,>`kAH#*cJ)W脖Xc]`?O"\1 402 B0;hDAsb(uvܤS_%qtQ|*j>=;O%;ڠ}'^07mځ,PC`^ Y#1[HBev:iwd'Lrն\vɥ7gRǩH:p졶 vtA ǹUG=&!Pi΀iM~L9O܈ -J<_\ u\N$!0 >9(w"UF"fd~%t׿Bhn{cHi`f4X8InԒPV˒\H$JD5A[G<[]˲ilj κJSB"+S~ Hbֱ0[N(~Mze|%A}e7?szni uˑƗH@̀Lk5Fl{ ; K`?^Hd2Ee`h4cOߧϑ57):$QEyLP蜹2` QB4sH~myi!1Ej|IDwaDJԿ>*rѶmúd!l`r:t̓&6TY,H=X}aoU`bB|3l6jF.30s0-j.LjE~;Ra ys7LK61>?RaR!:oFݢ@ P A?Yf_4d"tc "!}j{ᙜNB+3ƓK(;JRI.:BzuKN$C6vCBh1(o ͧ58 wrYxAVaV}&˚Z$4Df4̢YIҔjfۚtKk幎ФP?+6j@HyB`0: a(TMy,jb"3aDjZ쇐Q;R}dA x)Za %iDƘp#ưz2*Umb"s[-GJf_J(^Jϟ#,>և2|~;f'G/}|GT=I}ߏÁ:,^xlVMNے[tε-Yfɋ-dQEA"Wf8)% fWHA-]kTD勮lPK ~1BA"1yiWYU Pp`&SBbrUՙIՔqD"rB0 AJw61e (,4hj=ݾS`mB_w|b<l(T!S?6^Mᆳ" 2P9%8Q B%]4i(WM@ pLhe+#`@J=) _QP&X{y|FFn R~hY4jI9rQ?<}ZN5&0+P UŸr)C| FF@a.o=0P1:gO8 цhE܇91J# ;L@Ҏ@ S@"QU~A_![N)K$D(/S-ybģZr0T;6W<2\FJ 4cD**AN %B:aOv"Yo $%L%+֙l3SW5!p{OcvF'B$QǁOLR CL:|P!ҭLfS\&a$)þ68.y|I24:h%b6.5dу`E~dI"%B/qN:f7OAh[7>:mYEȟ#(`z ]8-Rs`  oa2k)Avm= ;ʓ&醼g&NL hNQܨ!@ "$e$σ*H,ˍӗ~CSl2dLV>41Z{߰,~h `d5L:~\l-vTjQZ5RЄK(0cI=5a I'`0Yp(gGSvp!Y Eekԁ3,*X"eS!pR#'~H4Av!<&GGG9 tUEF'r%z+jЅ% YQk:MƊ3)<|Q51+t97ȆLk ?^6IQT@!sNC&96: \(urNped•C92P #4"g:;40&k!:=t0B=Bxr ְr"H&`AB09]xnތ# qSlTljeWw[t&ɥ)&MPi ۫B$E6mV"gP9){,ë!g45%0Ry,JE01rfu{"lk PP"Y {!R,g:KhŨyWPEѦo:|owi(H ۓAa{*a#yxni)\c^2]˛07p-E 1xz/BcsLcXC`J=m[(]<g:7q,8=+S1iw ڏ&936 W>Gu]N3fV$!1٦:4[)Z(FhXqx(ʍc 7paPaq!HIgOf rR1AECAd2ܕ4Lt)=>n{k_` ZG,xMrz PU#cB 81&$%;0ikk)ښ ` &O dI~*.+ѡgN1W &""(8StUQkkۅjh1N8&PٗơG `SH, 6MNT͜L!ܧhVBtm٦:];/!i  hX8,rģ><:0qQ9K AA2"$wvŹA2m@=06Itf=]XW_l!mRKd59|/Vl `'t3.;`_5L.CB/4!ߐ{/D磰ޢt~KDٖa mFe!}i:EEݒ1V[h"A .T;W`MCUf܅[S gfPfܢ&ĈiOvy1 d'[W< 2$BZ2څ4`M,A2 wqdљ9huJjA%Q듉y2-9&R}&tXˊF p(9`'sB4)0ߌrX!3Mds8/!i]&vPܗ%c;.@!{gonYz\"~7.,˥tRѹTԄ&O{L+͖M5;5L| ȁ}=""tj0L f%2q` /]C訉2 tDI'G|Q&yIbf9ÚG8S O2\cVFm14s*~_/^$A$G2V},73PcXvy.Rf\e@c1NkjSuT=',^1_6*l=EpFo/3 ޼YCTF O҈bHQ"L>,Xo^O0>'l+(tX* ГYO`рEA B&XnnR6iu,'̡A!#GkVV& D1t&َsxb1C83C[@dYE *dc2hd,J) ~a DA') !&j1tA .PV&hbi #o v% H=1B)-^%$hEHA &"63f>_ov`h z 'B{28Q{ P*s"@p;俘q G/P"HW ; JCb{!˷[;Nn<#P<* vxo9vӰYbͩlhKdV6mj+%DT P*DZ|EphWqr ֫"pKfs#޴٦`2LE6IY%jWKS(Xq0D@EZ)e&d5=^j[L[FGc-ߓ ۏj31y5o$,S;sV>})vǗ ޵WINה#{%'I>Y9Pi ^|O,ژ"h[L8LyĩPyϓidj O5;_⦌gM ಁ1hنb=GqhN d齜ihMCi8᭺hqWǻe6A3(7Lyq*as LxSjQنc M: X9ۛSs59M*n*B82f4)78\@CSIBvo89U\\k~^dѓbʄ]pϝre2f"Q1މck˘`J-}}~|mB/9e8ꌡwӳ5uI|-=ρ{f!^t)gkJˋݰ$':θ#)G3Ah\h)ShVNآW%Q 'k2%H@7Jjeʫx^r&ϰ0j|.ڼmrQ" q X>}7ږ3,#wQ ݳ01X d/Hkev$rIԒ(sHj l,F ,yE F!1 $#KaxwLI 6hIWvpV3 ijMl'<Ӎr!-e)2'+0͘a!"CZtI Ge~#\Nfd 7L0Xqχ !܁(Fk;s:d;冣sD!Cx۩(tvC!h@7S{;rSQRNa!0 t5h%0v ` 2UU,!0bljA!,lנSˬ!dLd@;,@(׉hvY2adSh/ם=MR}c@t$f bL@IWZb6 "Kb~0θ93ϠAxg`fz =<5$s1gn,dFzEЂ#Y!d;nã?gO>Uhau[@Ƅr@ \*eVaPF,;6(b>oH!CоQ=g^DvઊerF)O%FS,ػ[2LU>_iA^-a-P& g ̃ͦю,_WR(׃'ψ?W&50 g3VA=݇mђ#&I6n6 nM8ߡ& tS\S7$d41γ-,fjv):rC<ȘR ` $ec@ 4X['2 2J',Ls!qseG&U ( ݚ`6_&knb+*`T' QD͌~/h4_OMP+ACxe(bQׅ9;çQSgT8Aa3,V;o: },h.?w]6\XWW0sBr'3' kCa6Q/ȣGgH>4Ωd?.%} Qg< &fp2 )2%`%t> xxG>#_@hNyn:nM0"Bl"HR H$!) ' Qb@78 /tbAGU0&Cwz>_cCZdP:5dT h` dg2Osg%L^<(]&΃CSb%ͅe:j)BE]Rk8QZ*Sa%-"p7'!6HlhȤtmRh\*SCA;$:HJ=`BM)m@vN=G41Ù,)Q"P",f D3xٍ<cc35R&C)IQ)dC ` 'GC #"L:732R R tE#'00'v/a?.#;oT }ߏM8,li7C^2Ff=6@{N]:M!i;3q v/2u2 P%::qM /+{ݷIf|}p= vK,${ZT¾VQ6Bįjƿ]N;KhnC3όU5_qPHIo#0jԂ諤?Y~ 89P y00YD T[SIT[YY@bP$xpu" #-ݭrޥrN0f ?p[n38E Z)3%gb6w_J^ЂIK mMbLXS(7 cCZl m/ռ7ެ$dZJ\aψVl.!'C^皥7!n[d(ٖaOzu3̓57D6ɷB11@PLPGr0@reaT91LXN 3 q92ӳ! k^AmfD:^uʖHADE0OCg{D( )%Ћ}{ 4SΓ&W63G5LjCDXe1>hMOA0~Zb܊OZkĘ?<+6gYlvd7Oɰgi) Dfr>(8]۶BD<. [ xW k 9}wS0ޤ(ȩS;_F٘f ƪn$aڒ/W\ߒXJB$ HU"͎!Qv}蓼q rhvqm<>3D-yS6D-tځ)S|6Fe\ePkV6nM`ҍ uBV*N'y, 0(}fF@T( )Xn8Ӑd!$@ʆKkW&8} _")`>=O=|YaP aEh|Yd&i2n}g~4;yi+M 2RH1R#B̰-JfI" PP(Z|g4#g1 !~>>,Kn掩h\Ror4{JIli8S6Z߇$ v!0y0zX^*3s8ȫcMPzgkϐidG6RƣA:%DC!(qR@h]5ӚCjxth>-LVӰpx9頇x]5*~ȕz5CT4}CJ4 ?t WJh4T(M$ĈS C Q #߈z/v>+"}bQOP `@C ;J5k52M yJHJ;)qO:?+ ½7n\R =$R 0(0#]TGCօ\\V0Awfu%‚&!W`s98H *waq0Q;5,.2ƋPqXfX|FY ![& Upfhꐪp@0"5/[i4i=s'O$"[2|y6L'XPrx H L p Neޭ0Ap5@ 51n+6u!v6I,}_Sq+%qao)!=kN gW&Hʠ̎;X7%ZAN}Lj˹;A yDX$} =%ZG)t0S"#'32p2]& 5$APh Zr~R^tUR:UΡ԰!X&$bɮ7' {@bhRCLD !_Ϯm_CXC7SG_tڳkl^-VTPh, ~bXTYa}xpWnjQQBIeգ*JCQʏA,=\;N s/G4w3͊Mo HzgDCX-uol^Ba\$Tq|A>_GXSQ`=>ehNGTN`:P yVjKWMnp|ӄ} *A+\h("/tDZ,fdEHk)ݟ-l'Uzi/i_:_,@0DώE1b &-VOzJEU#ctY5׶HuܐH(6CM JpرbiرHhHA5I\ j*baY-b!I qIP40ΦɐcKFY (bz%m23AdfuiV, V-Hm&0.N4(&00ŋٷ5Z`XrSR@(Cv8* =ş^dC ySq$^fc `^pYt}7#QxJ;Ɗ @"-QC Y9zlZYԝĖ W=JO=\ADp)r{O={z Y!/l]{NsU{pJifͱhXKe (6j[ޭ]Mc`ACJLM f40)ضmJ)jB{B T!zŎ<=[GWl9Apjl6q ,)X9! rv&^Gw^ԍ :!yMDITlm4LIEmB5 D(4p{6 9HT OT:Xw>o HLM"8b?8|}'}>q'W HsW5(6׻Û!1Т)jCC ePM:aD㫨q EV~c;a?Akb#to2 13{6̚m܏^@q& nQjWd,Ang" )?GCi KPlG@%SIWcA9#^FkUۻ|;t1C7Kh8{u֐9Kt1gKτ尘9\=t* QQvb* p1S0 F}6Qc@oUN7N7eP֏}ᡠ{#R$b}hC<,|d~jZy0u79nŠj 13'&ɟ!P 2naR*Nd5FȊhgK%d 8uHjQSX>&ON3k@9&x\msGƃ%0r:_^Z7x( v>$7yFCd[ CS%߱,{;%mk%Ѭ@i2tS9ʙ lohZ3S03m `jErP̵ܣq,U3J[947SVTԡ f0LfG$ã$1%տ.t|)"S21l.X`QwLL׌D8$,T<֕2O"C!)0ƘYfs(KٸLv+Ks(U'XÙ;Ny.~&xT{R\β)pT !㳆@>4JmhSh$sY7=0R 8 0ӽϵRdRdGۺzy>^R؝V P8a/ p)O!p, t[%f(-RUΟ<~xTG8-Vύↀ|$쎐~K}}F`;ʚ}5B 0 ѱ~ ?~!c «ؠDC;#ު]d}E'O "%ɬlEb)yEI)D-`! H lkFœ(36!nknUkI[C 2 0D]AT6$BTS 4n$i7NJ0щ+)`pZ'$nRpņ'P-ʩ8bfJlMXP*r6W)Bʙɨ'BH}O튧.0!>}kUia=+ARtB]!pEchY&X% C P-H&H=OKv> T2#t` D r42 "|T~U`t3 io؜!h9=C1n ޅ{,d dRH)2$ MQ!;DeB`$PLp%n8f ?Au".T@ †""+@ZrP~2ı2[nf*hv"@%(/ر;AM{>J*K=]z ( >]K_9p3PߡCs3)00~njZhq>ڕR*w!hUPE@BuEH?] "<\:_ od!3`>ҎAS@T[ˀAdӊN`{5U)|OKݐ4k4=$}hvE!YsL-3(cg_L@¢fGoSE*ܞNsoHTO $drǨ>mukZG]zaE54xb46}HDը㢶2bia{=ƹUY((̣Vaƻ[)eo!t!$-^ "d 6Q0C5 %D;g 1h\98ƍT3`L(En xj/wBŘtau(w .'nN8U|&'WWM]O_E#_ 4<;kND>a0 XUӡDֶjeLAJDeKh\Ս,NX!*p5]fSʼnהQ@h3 J82d! )lB T.irW-]nV*(TYHzK ǒZЋ\kΑe, iC \!F@{MŬI)M4_):3ilCBpf #.> ȂgPJ7 P^8iJE=I).20CEf4Z+],Xѵ)J JȧC|{Q:QBPBALWm$q_`}ᇬe:bFX]!'OHrG~^:_ӿy͍4()KlɶƠM Ze"J?"iRB% 5J(M?C X6? :ǿ TmIJ&@)L99'Mgq>5+u$(1;S&ב嚇DvS `~HB 'CcZyTprImg:WQ ˼C&T lL͈aa ^va(3u(4LjsHR]$$+\ @Dؐ!Q1¤z/%FI " 4 E"&=$E'f8*`K]-`mL x3vWۥ hP0Dʉ \]`D*((AZltSX}/LuAGW\)HdwYHi<1K9|q:;u %C` WVdh$?ݩi+$(dUދ<-~F:"/Y)K 7@Ѐ (*UbZAotRH&A.#0H%%$O.ZP,JJuBߣC )~ Q(OuW갦y$}f d F6>s,$%4l4b)L|&Kl8ɏ!TYqR OF:@\ZBc% DD t4s1ehnLPqёaFK*!TLz6 a22IpoMm)$Rp8dTvJK+(WQ/gAflFT@b &I{{wѪfiϓ>,~]C=QƎz jJPO0)2fb wknIj(I 'Ҍ)440mvOgv ySpxoVA1$@I AѢ=0=r Ft609̟q<3ɽ CJ!$_(PAΰ=*dI 0Ňn  |u##@p?.0zAV|O{|;|0 /V<{;8a#W>Pð\Ik@v T!~8A;L,Z-MCnX (Z9fJXDuC0 ISMw]lDa+绖n[I!Aah;i4M4Q(&P%%, !'&CL9XG܃C#"/4C}2̞!S~[?a6"n炂BS8>QPC"hGq3U5*B`o#ǃKA9)r"ِ$Ϸ6rOdЭs0 a(qFk&JYLh"%H}Ωo& Wh~JH~?Q AՇ!;) Xm:;GT0G:3deȚf.ȁ P(ȄTj]pfZp<=b E {A McABFd%y0p!TG̦h2ߒo/uHl #`{29 |?,WGcY^w&4JA<'=?fX;;:c 4vg8 5Mi4TJ:YHza1C缻ij`̣!k'_V v-2h"G)h% 殟j};?A.GC}"2`sz{,v?M-8OxIZM#i*"0td! yBfh=~yX748!K~SlbFRREaJ:Hpv<0{VH$3YFp3L /{]J\edm!~nFRe |^,NY㓀 C$ݟxPyL0D-,(;p|xN"lX4XCl$ `! #kI,Y6C8a BR}@Qmޣ|&H#v;4yGMW-bM\ܺw1D-G00X1 J̓663+J P 4+mn朊ʖM&ЁbA *"4(J0 W%'=ޠ%ҜUwI#O.ْNȔ3,bLYˉ\w%(t'#(#NUP {pXy<=dI'p=$>4_|ѣRwOw V /=py<~D? qb v|$"F5Q$ )0^{xY"40P> b;۱5dVMJ )!oM5mz넃Ra 4C@{ỤzıD! `<@YOSkh={w!UOyl p:h)ޚkmgL)ld+)Ȣ8AؖULeCɖI1dSv ؠC:q1Kgc2N30ϥ4`(HPaJ#ۀ&6'$]B&BPċH35(雀r . CgÍ!`a&6`͡KRX̱c$(–/]ly@SsXiU~yr0aJ6Dm`3Va g4$ ;q jVdznvi1lo8R3"#QITb\@Hf5%=1zoRɃ'14\:ilV1hmk \n&q2@D@dň r[ByD ɰ\"5!V-d0҉b_Ԕ> –FJ:D (O@eb}"P,䲊?&4q gk+{0yϴߟW8.d q7FבzM^J(n@mAC!8\hD"sBW51@ hi!qu l:Øt;FBH^K8v&K]ܓX0vM 5fgjMʹ0qn ߫C]53"]r x9\%Q o XYtnAJĵ5_c>flt/GxAbY NA*QEG+i Uc#"6JL}DMP,l /o꓄jɌ:,+xg2,OM%eְZ``b~b6Yd@M.NJa%xpCqLV ¡qET ,E`)04`6lQ'oi7AC` Vd p,0X8SxZPHz(Y(ua3cHfQqh9`Q["XL-)~ԓe;drT)PC5#bx6=JkZȱY%4ʍLѢf̠b#QChn8+z?UU͌40!*++?BT J1>F|OY:|KDCD*x>&L  ]ٻD7Sl%$٢(ZijDL"&X j1¢Ѫa2*Mc) Z-*QYIcQ[fEͅ[5+iR$݈)m6'qaO~az>X96`DHHߕRB:ga}fC@$) K_Wræ[ (L2'@eC='FO9d)l9%P<ԕaM29ISR[,"6$GWGIew̆zcdGvJஉCD7s[`_ֹMTډ$^vj@2>}d<^2r05?st Gm ;}0$׾xF:QnMJ=\TLlh9]( Gw˼ΐBANY1JHƒ"Xb [>>n' a $X+B:1W!L"ԚJ Ltfy+I%V*ƦޝZe5U-hл-QjWNZw&YSDB֡X 2bAѪPkMUkXE֠65<&MT4X"*@8Y*A#`JO#S97e\mn01dEHc4atB$%#!m"٣wr)hf8W8M0Ėb*BTmJj3ȅ`Ȍ ?rP3 PAB H (: ,NJ 1d`=Ri dUR hK`AGx ;7Q0P5!@0%: Pr%$L Œ&(!(1Gؼ{`d  ?\_:$SD(".ai_`Ì-d%O}q. `! N[1pBHnڒx`Uv˒=R/ڌTj"+#lR%Tt|g|{<ߐ#Z&&`"bY56j4И*4oSWs#'3V[ ud]@~tE$r ?*lou(fZM 0`&$ PU] B H?0HIhD$L" #ʬ 1)o R&ܣl,IRK$k5$&IfR Ɗ ɰD"BB@p!>UCe@Byy(awh!.$SM YX.-,٨\n]-KQ d&$ŝ{1(C;A' ( ! }MöG~fZ@^}?w.\qbPI~ 4HJh$t{g\2_q݋=,31=: ,x?s,-.Hx;da  2B8.S" 8oC \3mJKV@ @#t3x!/=_=䦥i P@Z!^?W;QKw/pp4"xZ@\sfyD AʍM7+Unjiv)}c겴҈4ҏDpG# TPHaHB.i!YG6G;jwMjZMI+|ēs`2 7y/ K0%jTffSMCK Ajx9l*T8'd2FO3nLZA(U?h=Uh ;37Ȇk@fH5@21b'o/vCð!,j=C!(@Pg@LRCp2,y*(bYK7\X{y ?ia T@IOTO(  DD>1Ƌ8N 6W )0Tn2bá2 B4v6u $PD~Yk &B_FT=~'P|!af@`7 IjI IF*uP7YhI∛8W2 -ޝ:=WC (D";Oq~',R zk$$2 `GiuZm%Ҵ$ hȒP"igkgyԀF 1vʇvA;|?g@iOO.G3CpfEY6Xv3;j&\ w/QP>D$_ an({N['fj`10>3g0~{wer7_c$)br2uB`R6N0ʂXF,@~gCl_!zI0T$EZAj PXx;N#ۘe?ᆾjΉP$+mH0VСRJ14!iCo "dd}^sQGǜ'<210M @aAC[*m*"BGLBk纕&m$9!NKV^|"(kJ5.` xbA0%_ԛD-hA ウP>-? svb1w$8"V >Rj=\o:~Bbm(&LN$54}F:T.cXMb?s!mme5$Adp(}( K{$d:?Ov@oWfr).q zc͜ Bޑ:0 3:M= 1IXm}, Kl㶣."g%v U;,{+>5P3ct4-(^bZ7tD h Dv/uc8'WN`^ƿeJTOD8# >1D-j KYۑg{ʚq53tiP,3'4eq N*fM(2'a4$4VE$AaIJRA7 9CXGL! 9Рmv$/Boa(4?eѝ#̏?D㟧s@{iu߃;GI啯#,'kH1ꍶ=֙ԜI % $ሥS37RllgdqOيNr0z¾91< YJT@Q Q@ԹÁϡERGW`;CPɥg9&ωBF2A 9jdzCWXTLUN?Ý։ITxauЕ5 [țO9ę18m@if NE\r$D2nwx 'YuiŤ36iaYsHTOӧYTVPC4O;s-q0K20DS@O4WQ 6`$@bM[8e-4ߛt(P {;|a4zܤ4k.N1e7߮HH 9i:\q5~e& <8;[a4eץj]'XuV_=TdӘ> rzP:kOY*GkrQ&|ScZ.Xc)#£i`~(MRیK ʕIuT4llk\u$XBH^ r<b&ai:ٹItڞC-% ra#L= NIY+'AX<+=Y3G;KӍΊR)IcXEv&֑RwǷHq.[SiÅ:a IfPz R#iDR^Yr$9%8Ӌٿ% Ms!)Yγ1 d?rũ͟'nůK9":gIA~o{B)7_Q UVx )񤝃Au'tL:a>ʔY3`43G`B@N}r@JB1|="khal~$' @䀖&->s;b+2bsg՝L(<e"D¤L660ӲƖ ?g~Nь'Z>FHEWHdwۧ) ?sjV>Ia'~{)ʭbx&+x9x D3(2)#gu MCAP1Rw$;uAӮӁ1 ߒhIba{:_&!&"@Y=ҁv~KO9l _={BPiBJUB%rT $Lr#mV(Qcd\7,Y&bJE+: pɱ/[841{x]߿ه[?Pmw`u D?sF6Jݥa%fyx dL//.UV+.[3ܮz {(^^oIRK}Řb4 C $D1cx%xmf Yؚa9DbtlzYN $={@;`X ZO%1o~BY7l&dAjSeCՑJQ8A: e,c!D ! ^Gt1~d@&'V'WeFQ /~t}-xYu`k11?Mᩧ8;(Sk ֩c&iCkEe].$vM B<;3?Yܞ'Sy[*J,ҖK?/4d߰TLL4L$Ak%#ԢmRjI6#'ʃ5\[ Vq/ {̭cƍDe k5i2)*Ϣ8>}8dXUXe$Cm#z:+㎁d*NJm)?I?uNUjA}Bx1 dU%RCؘ<> S{ߤs1C2mWւ3̪mdBXp)vĕW sg. + oCl Dx۩nPF2ʃj^AaF8!p!fMP:4(aS]b@`"|R(ux(ޭ.j <o^k 6AA$OHPv' "! Ejԕ T9lq*Cr{˟"Z8EP G`zgiXR AX3)V7_^-Pj8$z : 9MdR^xh%djRt vc@<SJ*I Q 4`I!"q_E 3O*u"<@Gcs(!i4<Я?znXa 4/%0v!tmQSJL^0,m C~3 o6&ABs"aS(]`A\rlH囥X[9bIn;]AXhJnm` &-lK06@CvԶFC!ӡ CDVrA(`؜RUt=2@I6F‡!eʅZD)zmyz9x M偍5 '\8G սZ1IdX^#$M2TxZi n@ha)TJ|n!VKF<6_n gdlQ j )(A (INP=QRif J=4b?}ش%4拈6f0ỉp;:L2m5^v; >%QEć6@"|>/! fm3XjCmYYŸyLvWy{Cq -z5QGR?4G~-2L3aIe JO B$ma&D&>^nH bb=SR x̋&8_~ fAaA]ٙ!y@a[z'u5gKr EdЁs Db`Oq"":Bz1 A@C0 ~ӵDCshp?D4ڠ@?a$hC$UC `,,QRҽ܅i!`NRa ,'B` 23sW?p27t}cpa\:]PB)QhD P1̷h @ˬ& "yTA*PЫ@,ר T>˗p403HRPDӃw }-j?ěU-z@Zxb}~TFA^x;O@d:MY Aۊ{I]qNG}/ HJuw08HJH()ZPJyHM 塭A~ܓH儨"(EHXXTTeCXLrOX1r%[|hJ{~d"o)A#aVoãGH.N:sm7a0vv;@ {)m%%)6*fѱ5>iF1%4дj) YHH0i "Y1e7KFnpc[;{WUUwzOr!Ň.R=}[|`4V]F1Qr7ۿ1QsZl˒?'9곷|+:5ނ̈GDrkѼ4v.%W? 754;GV򬶲$І"%1${G~b|2?Acֲk.ZTk !ρǻ`N`C5aÃX&(q$60U.c|qm48GFsU#@+^&y2loCmݯAF[~+Ş<ɮw{wW@5k׈*jz|цR`MYcU-4Jֶv%`AU\ġ1UoC#Q쿨!ݽllFӧ tr_T @I&Bpۍoo 伋f]rh"$Q&1pZF2ƔayS܋2dxEZ40gfF&,xd1y(RŎ # {HUPHFp G `0R1L18rĢ{ȅDbߍ!S1v]˹d 6_-jQfHTLz!(ȓARsS3 6;+ݦx& s8%H6?t**yGA@ǡQ7Rԫ#l*+pO.||V/Џ_8Nt7 QX-|$H @8 6/Fp$ِR]~y8JBLNhS-;ij[ԙ]_3e_p4S&cP:"-(`-BCV0\ fv:>!0<*Bs93&sYXy]yu3ٮ!D*+8d׏w?3fhʼnD^߈0C;C8=瀣T9Ng%q|_?hß&u7R-p ¶ -veD;iɰ@$qz6@̄#C'psܑ;r&᳀ I701I7 SRRRsXp>A'Bq1AQmܔX}hۃݧ'(aES,c<}&m"BB&u2~sh:6"2*u~P'4@0$ dn3tttR΀=7;QFwgml3U8n]ֆ2`". 1jQnWeDHe ] ?0eJȐCz?+BpV*(1fRBN`%},) EZIcc aBU*5Ҷ xK}{giHFE8,gGVePL(Qbnf8m,IFSnF[ "-oK`fd?VUU 'в+ dK& ?$>>p-PHJJN 9,489E `h0Sဋ# wCIH SJ$F,WՆ3)FIRʕ6dʥxP ah?[h՜u!0YFPi&:dOR%Xc0R8"$y 8tKa0 Pdm§Jtm)KS )(i!Lz  ;'F߱IK\'f˿Z&e̒Y(Rci!,3ffY(.M $'tceզu)3@R{^z5 drzP:<$d3\0`qA(Dg@uIj_!M!gāhYDDD+C$P9;7WgAc.9LRݡ#@k ZG%/Ԏ9#jv(Be{M%!: ϶wڎ5G ,8&-$(U*܇C|>VL}YF~"xEөr&G2b[8/`#i .a's/yCqFXy&]v< {G %Frax64*}68@4'`1`zSBsצ1ّ"BD̆W2Mc=aB|-q1/nG(sCxTQbB甶@yKw;S; $}*%3O3Q㴞4ϋMuBԁA= Feb2JfU H(pɠc C$皀ND!g˜=aLF Н|@fu#)" sNQ ̲ 31d& .6ɿy:b[~5*Pv5}@ 8Pc[NkWX-$&H8iNNt0eI:xC`M|B<Q.A -י|V3sN֩ ru[kI`8؎‚>KOQ5s3 у'6AĩڡRd|5\:;HW@,F$N0ZU T ҺB= .Z"!K S!2tcr,a朖6jY" $hDN~E9⌉$>;/խ!>ן驸ph%pʹw"B`͒DE@>1䰨 ۵Sh?0ɥE*2Ȭ"R ]Ht>= fT\}&k6sYkWHX""džudVA Z٫΀< 0#BGjE#ӃFHC-5" P̓!1t? Oq ]5kZA0+BV̲eS,L0rɖ!۷ah5PL(RJa H0EeK.L)Mpd,-rrJ&Xհ|H"Q5I/[Ӹ :Ft ҙJM}[o;+W'^iKHUQp[ i~8y~pB$)!i>gt"?np'boo)awN % 6<{^%y{Ta@yS>*jiW!c1dfjZc9?v`g8e 'UCIQI0a!if!! !gzN;2L$ Ԗ%XLリ NXVC. L XXxM!2+3`9-eSguY@+!e/aRCOB h7VrM܅3}ӧ{kj0&u9Ca1$:t!{*\wqgM=ܓ=c$$Q.&ۈ~Gx;j" ymtDZkfH%=FJu1!o]u ;J*|% =f"uh`&D-p)[Hûq}C3G1rT-'Z2mˉ"1|`tbvͺ*,@WsaN,KKZLDm \І 10g0cŚ C`nqG pTNI:`tde7VB\4>yMC% HS>pYL;, ; Σx+ b 8%ֹ8kJRk'-r) 9"yȐaJOd'xv!0Nֹ%Tu(͔>}o|z4A@P 9SΞa셝vs=%jgh9!dqJ̕DM245 'G c6,*g,7/,w[HW FALb?e&n(8r[Ridd 1ΣϏdXb|sGCP&8 "7*ƝpaH(Xbtrp*ȴ[ =[leؐhP:7d*A"E( Wd8x9KFXI$I*jވfXF!ڋ%r#[Ȱq̩ aPK@(8M`mT!Jٙ|&7q`t3 0E@;"քO)K\c :sS*Eh `uh\ Ir o)%CsDbQH٫@d%;$-q1:L(C5朁݆'$Ƣ4j"'x3V޷}^$۵g/!1̈́/DM7w}72c/=*rwA:N /tYg&&HᴈdU.I9D'2p@p !qq-pCvH֑՚l[6 ha TKpÇpB+ O `vA08~Yii:bF=WsɇijLiR뻥Lf4͖>c_Bx {ldgE2b<u/abă ub_ib}(#""-r=!߇ $^nkQUCjP|<6^CbIDJ,ݝtf KqCC(P@tlZʍITS!>`ۆ $/.EHu212A#ԥ(\A "$K[޽5췱rFT³{-u:Օuu*h&6%c[A08q NJ]b,JK):qGGoІd/@l0NnPJli'ދmQ%BwI8/Uv@CXl i4B$WEwTVv NR @ +a BH9PMXE s" kCP@L_(RMqrIGEx4rC0`jlysջ@yBChwoFب]WOMz[{'"e2)>hdPԕH/{)*j"g@DUd1KnZ<Vz~bv=L @Brzt(ZY"2j<;> ȘJ:Kl<7$juy5(z'3bm^T3tGi1IfI0Ι@' 9a,O6Q">V^~ C}xZ}Da9 Qy˖2[X8CLY^M'OT镊ʈ~=hmdٶ^l.w}l0; QJ $HV(&Sk#룕\iJ+pq38pL.Y >&1iNj֔'qa#ث8i.s044O^H*ag-5L1β$mPVR!*% jJ"Ba6|fIK<][iGG:.TŖ)"R1 ƴ56ZRqy2]P#{볠;4 iqJ)ޒ?t~i03 S~,@DPE<3S!!m,09g(iIZiR6A=Ď aj`PjTFH!S   Q DQ,.)@%PrB_8>]ӏ <`$Dn~`x*n:+Ar L2$iqƲNcD$[;BD1/~NTVo7 Q(B[_xIJ}>y'%C!ZvĎdS[L_#-a_4A[f'PP;$=mHnW| !KLQuxzF)H\dI@PY" _YGYBQ `H/UP*`vcUQ{?jkv#qdJJbI 1q;&N&5/ey2&E0}JU3C!5wa"!T(`3xwD?_k~#eN)&jBH@P.II)JR*z{oKչb՝A\tVM {=ɴEr~rCYBӧKGv9HA-;b7zЦxm PH, (t!?Oǥ>k ֍0C'su?=H41C B!RsQ) H zSB DЃ?!E0`1E'F jA!v{=5q Hd('P~|J1mи1-LxQ"hlHRL?L'hCXz_@%T~?S$US>krgGOؒI%- E]͚Oݝ^I!yԭZu9o3{*'ؓCICs.+P̅i-hM,L*D߈T6!Մ.2QTlj0_7I D76؀u̯e3G/o1RPP??7/4>T6 8B;z=cq2+<:nOY΃CpPXh%i" 4\8sU=Hrڝ"ȊFI@Q gYljNaJ|Z:=zĐqMCT=G0 /қ5I;lkpx|};)JC}OKT& l9'wA⡩b[ bpPhXXFfa@ rpHV;} YDoC=P/g5 XTaӴ!EwnUQdP.0,`r1#~)~vL'w0rQoh'|& 6rϯ&%I-K Q6&ˍMv~.MY%ㄏƯs19~JP:ްi*cOs@: H@_D!( TB'CFDW@JQЮ:x`ǁMYPu؅=HǤ&\0=P'Nwht3Ngt A Nk\cab8_YW^lK%]kU̮kIJ]"P2"4FXDQ?MҀX;Kh[eC^UΩ*|cvZ$Ɨd|=B#tߴ )2_TEP$/70}"Dk6:pJ,z唿n[{jw*_g0$ 5Rp dzp:6d1Q!a`Y.  tucާx 2ReMRZc=7/IY? # q0A Äq1BTZTRaK~p~r|' (z>G ۻxb$p $-p!/=h5m<eŁxXFfXxbȁԈ(}Ev`d}cU~FڊEðL3GiH )RYu;J0 TH(`dKjaVY"dd,YlAf" -[?XtZ 0!2jL0#ˤ}sAjk?A g&x`]qBqO>m ˞ES_Vx߸UE !6_qb~0LqM/K ?a:l9%\SԼB5gHA&ؘo.6͕ ax0`mlYlX`4F yvF6᭦XY_B*-RaPYKQt<`HB߄_Cnն"=ɒTS| zʪ_xU,'3A©(~!v8 )I OҨe/m\؈$>I;=!d)!MP;@<=omо}Ip#uZ!HB@%Q3?X0̓MWw7͗NTE}a$dVmE Mxu"u3竔&*-V3ɥfo$ل᯻͋ݯAZwD;mK~A8 ϑCAbaF K:ud^6;SR$ny 4 fb`̍p{f"L6>v=}CjLcZQOs<GLM;;Js&`Ah}1=-Q֏B޴eO˿P*З! &;J)'H_AH@ށ%CAݪs̘#a{;T0}=}rd((-Dl"v~_b,Vc>dTPfV!X= _>aO$/:GBwDVXZ'gl|-=I*8B $H3!@eZ1VeDTFEm#T[EF֊TڋY56Zt첛"W^kd)g樵KIZ@BH?+ a?h˜"c9Kq$:v*jX &0H! UבߐOȀ 2D@̴Q$КR(D6AA wgY A$BC J6}|e82""":!mVӴҖ:htMb҅`8AQDEą[q8po__%MyK3wG]˽Es'0 Z6~%?k\KN3o]1UtL;|ą}s斳/?s}ѓocۿ>൹=ͽyᘇ7hO%Cږ]?S*^gf=n]v׮=א6ncٻ/mχJ/l|f׹~ee_w4b]Վ\}XeW9?96o*qL?āܤgo;c'zusw~M_fH^[z.Ym]gnʻpܹ r]xۆw=:jo9_d9_߻/{w=F=>/l>u-<ݹ<~Ž+طjm-= S=n+[w!6}f~qvߐcڇ4,{eøu 5x)z.:m G_뎽zkx;Y/iSf;`^JZu#w]fIMsK>ziW.W| _w͖S?(y&kkvn!a{L ?tiPc_]{骻zu7={^kI~E]\M V~km қVxWl>vdq/o5q٭}o?{_nju|s 1N=hDшž?IOzŕƼ1C^*ﵢڢ6oCWsp~ג8gvt9ZЊoMͯOhh.a}Ԏ. ;o?vЙzU1c9#N8?yrrl~tCJ6i+>}K~Wmd_GoFsw4cc_ƚu|o^x'Z~+ٻuc !LZ^wD_ r蠵Onկ=~Z5 's뇖>ܴz6?5%⎞Ͻtc}Nי6^\'M\Q^&T|c.GGrk>}jӸ v8n]-Sh6vO>ܰݫs/>[]}KV*~;߶m '=Ki*[.<!^{Udy}<“|a'w{q}'?B|ŧuc~^Zޖ ;x~kȆ퍓=C/w)K8- _[uÃ8gIƮ=jaߝSmАc3[iց?3+yuŷ~}m_9/Kjy!Ċ==Ʃ뎾maq ?7;V.y'ߜ3|Ʒ>xg5u//kz󶅷z1bmN_x]y/_O﬜>\Mcp~+=X9hoFԽ눟z2 6*|y)S.2hKnmv5;|GTptf|o'֟]ygQ=ЗQ>n.:bU/W&w~:wM޵GM߯i_L]?p_Ćo,__ιw-{sok?k=Oo?ݶ&oc+rSO.<1?MϏ81E'2ͧpgo:k5u9㽻=u\7]սv3ʊ] ЇG/<?~_ϸ% }cZswﺩC:gx;"[=>xK ?ع%~{'{ztQ >?l2O%֪޾ofOܜwv%ϹuZow9+&u=_Yu_nK~^; m{lo\scߗ<)9>WM.^R7G>L?漺j/4o9sXqѢ'OZoᯞ5W?}7序t۾ G)\=xnS?𵒆_cpp5/{Z{r=9Xu[:tSD' mm=_ӽ[7zԉ?}LUw.nxbԺUo_qʟ. pîoԎiksS _bls{m׽[taWqoN;UG?)K^ytv׭qƉ_E࿭IqG_67=ūUŦw?o&ns>wE<{9t^{F^m|8Jk/-S:%'z,o| .wtU yXexF1퓭CM;ރ.hK˻;f˦ϙҚ-_yܶ&>x__XrE_M]3/_?ve>b77czw>縑WY_S^|Uw⭋1zvBߕLk O{o)\1֧ꇅ7TZW~wm,s/Eܴ;/cJ 0?*8.|[x9kOvV,_3}Uω)A߻=דێ,ضzUC K>wPϽϸo%uioo|)?$4{ܧo~/a>gC{nǒEv=s_QV֋~8uVB`Ǻ'ݧn- ]؀4,gyo&.}vVt;'kɹqOm<-e%NyڼMO_}fMN]}Vz*?/k&5衱y\:fY_?unȕՃ׬ᕒVm~uG\"ɞCX?deej gn͇ |k E ?!ϕo[|/4{=;,OIc=zˠ;?Os_x]G?}ސ~^<g<=%lj`#o/++Rv-*e岒oys˷uS|S忽?٧[6ٳ 2b>wt͗gnksGD>vZöG77>f{nI=?xxOᚼߕws]EW5z]97& ]u+>V1||l=vݐ}1 o8sl_][_?myfhi>hIRO^ȔE7ġ%Uh8?A}8o~ }.XkGn_ʽ}[wN>w\>yW -ʼJ7LxՒ~/iz=ll{,Iܲ6鉷dϑbsƯ_=ҝ/w/\{jղUgŽ{MK߷T7Qo9_Փkw7vɸ{gĆ;8{!ϻ]j>IsoZ“z:tԑ{WshS;Wm73?,#/NއU`13ܽ{{znXk:WG68[7rvȱ}{.*:y܆peZ~d+o3vn: ݗM=oGhW #Wx-#u7q]3gm>~S*6W̒*F hW+}M|hjO꼪wy܊~|6o|Xݏ㟜Rw=e#K|:0Ԓsu;o;uu%wye탗x>rU+>k{hXG;e&ݤ) 8,NQxw'=j<>g6ѧ9=-'}]C#P$=xM/ׄ/6M/{,i:{6_q3A~7'_X^/.{d)\k~˧8es&?n9g/*{|>?ʁ#7O( 8.)xz|%Egѵ U#ۨdǢQQf1J̹s\Gc_KnY -*X@Y7E]0 m5bHTM?'$U[h*R@TaMQB*7 >jAt^UBf 3awjcm+s.DFQ$Y˫UM$s3U1jW#_M*HWۦjb+"ɬJ8t/0ӛ]5ӋFM)ц<[EXLfO_k 4(jԄҏ6ۈ8@5TmI4MQ8G3'GRD5HS(7{V/A\iN\< @CCm,H!AqMůȹVݨQD#|I )QS)$E1@@qNH[#!A%ERXL&C OڥPHȍFA+ZIZl1k9 'KI$4 :( rۃR'8/] ?V"x_4a z7$-j`GB$Bf'X: =*FlE8A=m%I!DD铹9FlDnWLc M"7k]VSSU3UהM)3aʅ\ܺ*'0$UVS[NqH"059%-DΕG5|:JmS y!,R\V[7fBSxzy |Փ>rY :~5>,~^7 ^ʜɯD8AZ$P[("DC[;,6 ԇV^m:\&1$8`2*5OQ@\d&("'?( #t>d I *P_< ˆSDq8* rА >"eR0(Gj"R@V-U -``*Z6U̸G9#0JѰAu4!]e5JPBuB#@0hGlu ^@-΢d-͵ل0фc iqnM1 .Ȥ_3C^ qaA'R+  w0*r *qR&H(xAhMqf8kו.u-IPsńyd DyK[̸_0m@cʌеsyqQ n<Am Nf,#~d%.ޢF@H %T&al_BD%1rAEn U"=0rDO:=#17;ѲW֭sh5Puk,I]i(፠,||լglqTM4åXUW B.S(9ںӺ !BIB2V"=3TsH&}-q V 'ٗ)5U*%*iBw[{[BV1f-1LrTYBXuY è{EZwOߞ;LWC3N%Hth|X K:Zck5G br,B A>*PjfQ\DҀh1<RJ}paL ȆoY p<2LGQ몎Neq~SWAh<I)Jё %%IKt} r3{2VD#!r$ ,P(}jvF$(1 n\Yd[CρdɊ lԋ3բ1;bQ(iMPTkZAr<#%8ս7@&g3ٗ(du T&m0s-6%Y9ZdӀۍbD\C4މfY., ph-05҄.;?*wu`hǨ:xg']˒̰N̰Q(Rܴ@f㔪 tcl斴WT! z-ʰ;+lw'l(%8! 2;O q-Z.5QEhBeYty#,-ݡȐmAAȻlYPO=S_B*%Fr<#"d$P ̤4L1 Kf*6$ jDAh.Yr̈E y"d4JRmzmL|]B_xЊ,ā-&p{(Ŷע')vx (z n{9&# 6PiU ,N9!b M) nKE2L4 l@]h٣fL@Us3m&ŝ\bQ;Dɱp=K2ZJ DhpDR0VE[ 3 m|}R.HB8=ÌwЦx;X}Iz&5"~ (tZݰE2E3W&deGsX]`DT"~^T;eYicCf#b$0L\̫vؐ$YߐH&$ Sf0V2TQdˣ@"Zt̒2& ǢQ(햇E^X0GBSf~nL8Yȑ1c2:5 &[u+ j*OCYX@9I!-"n-*e`4j_#kɸ%:XKr%P1wjgEe Ր} A )bqLd(у6,('dPKNh3bBR2VBbS/j- cY,t> RA!H{EZ ƃC=1K&D]TOGj39CaY v%+2L*#a5L6R/; ,k–)RT՘]B  e*V/%(MG[+T0]jƽ.w&y|WoO)Ay0ܾ7%,9Ik2ŪD Ѱ0 'Ѐy4-bkŭB4N p$԰Xw2yLkZohG c vP"iO^SKz4 _20ІJtXh+n^Rd16輓DtSI:C461l&꼬 Bsj*y!s:`ܖ>cP*DN'u]`Ãh<%-}3sZ28<pU/#-e7 N0&HA%}҅*͙͔0Y7Zƒ/(B:ABQ ԕjT(Ps1Hj 2XH h=R CtfV !BwDe(:~|Qn8FrDhvt1v] ځ6YK~Ko$覃Ah{t>pD%ψe>(,yt qy-m,7ZTOkYIL*~*T'4 `F F|hkDXP1`'@3Ʀ2=g]Kr 4&́XA\&9MA܊TcJ:6;Tb ->00DV-&4oς1,DAmLW/Ƙ{S ]BDE:A#(0ZZ%fH.]"J.0@]oƸ%Ȃѳ!]G-Q80x! ?^%\PXAp2Sn1Яi{WYF"hMHϮ`aæ#̲YqzUTd <5R: vZ+*bT}P\:QBm` s(a\Q0J ga̵RZWTS&USXS3#Ôâ.] d &Ѯe+"#A9J+W]H7ijcsЊRAP^4Ȏ4.'I!Ҝ\5ѳEC AkW\iTn.`%q[7B;2w wzg ^NIK O2͛F7t| 6kXhiI|k,x4W*N]?tcCLᙆhVq֡+ṔڮT(:.GBKr8L'G` BBR\xo"q("4;_Y b,kR1$w}f? HaC 24VϨe 畧/4rSFP&BfvZM_VYUWVQ]7H^&X_7 \@l ts)ۦ, .v&=Z8]NѪexzdnejY38_X,0GfA;f4E9&ZA骈++ᗵkc=~~ ݴ !dK mx}*QLn`eH&6ƀ8XxMqc[.{iN[xNkЌb,D-EJ P`-<1B'gscUheu5VV-9ɉy.E2BE$@8G?8K'%D΃B5a LT, T`BJC!FHϛjeSEu`l]>eQ`14HTe ܺe4 BӵX[ Ѡ;&`"!M@AVS,+S+[VPərvp;vn+d*@䢪aX\%XDNA<3m1ISy{ɊhӍ:8I,arn|67N!7ᘅz$dh*ϵ6~ ϝ8zaY BRA(>m`l4W&Y2-怶`Ab7Z58g=t~Csn54#'ӤM u @'F!rÌ"Ӭ NK QTWӘ?C7P}:,%" 0 ,a 42@,"Rb݉")K>,@rZ(#,mĒ hM*Ym[’ F0>F%҂ɬ]7.f{8豘Z*]gH/']vZ"[ى~I;F:"@!5ZKiPの8 ]/ Z M: 96kb ΛB-:^UBЩ&S҃eQ d }Ƶ Z4I U8H)1i3-1oGJSpzBV 1E*{ CZ2! D$9\N"/Bm%00ED]K"\_NQ#N/Lj s S0琘E,?vc((^lťƓ?-BasԹxdi,y!]-Xz-z]ሉd1Q[ Ҽ'J̊<%Н)}_]\wbjmKHqBle'!F'hʌЪ4rmoNL' \PRLJTntj2G Iob= `=-DMV-([Z}<$}.B!yD%"k!fLЬP-le@z^oO>xN@pݸ, vq'.Jjqv7XY VUR ʼnݪfBU^%`6d8lX\BIMp5 PbDI,̗Wmqdih3mN67:c(3^8;R>S*N2e`+JTWPiU GՓ:D@5XP83365OP-Lkh3ilS1ḯ/ΰ2GKbq8i4# WӗcaKe Y(5IX .I]{իNzzZ:?!<@N%[h䀭ȁT}Z.pCX0;7c ,Rvz.k27C`m; L l֗L ϠmN"v?44ל!gI@.RQtIНf{aA([iz^ 37gi|<,NX2<RT'YAiSa d s`u"liHe^w=Ss& jzQIE,zd{>f 7T~-HqG/?nE瀳- )rCVy]Q Ga r;RM7̳cS}.EN6K~Q6bq5љrx(ٛ45Cyog/y8Y9,$9D }qͼ ؑRgnYAY+zK !LʵQ%ݕMGB7V,8MP^GA-z.@ESkQkiZ T1hW+pXN +"B*ϢF31nΤE25&$4pB݅''D(G%ႦD[↞|tH$^2If--g^Nܡ&=rX~Lb%y)bo畇5RDhqJ3f5",(bl?lWhKJQP\nkAre,ӊMbRrEJvxb#$ÜF`fr ~,;1@8pM< sl5hdjӃPhd'-umAyoWmtK ITf4t)&#U3|n7+1pQ*x΢.F4ę>졎-侢),>HIU*ZPLszN, Ú JjXXQhOeP ;QIhn k$xT~ j5SPѵ"OǨZwySȖhk0R4ꖰ6`E8s+; Ԭ8^U&œb$WD\kBSZUqFԘ P7DžmX%Ukd5_ѠS%AxCz8"^^SG@z ^j.Vb3$X BuԵGرED3Ӊ&1<3x㑆hLbheܧ:hn -8y 43;LQ֧J lyEP=%t0I `^vkw͖f֦GҖ,Au"A^Oj٧Jc.H,tO, q}kBϟXL2ER,YJlkiG6Z7 6G,٦ |#O/c Hw\ 2 v0܁HPpGo(D\]`>TEퟁ1jmZ"zlwXx^#_1r' ,wv""b|^.8c65zeӳ8yև% {'tu<Î}y;S,#E1 ڐVg-{iPb_zБ;G(/3InT1 csi"r菗 e@4<c/,zh|RU)BV]` Lh``g 5/ ŬeV~ TDEPdf܄-UrL JP}*$$XAT֎li"QWmSA{FKf ߬%S7ie]"֬(R>/)RQWזkfO/W6 eUy*M.$rjرZew])r -t/mKo3&9:TirJD'Ȣg994ŜZ"I* id(6n `28zRl+A7M )aQ ;uxpb &R֕uz%'jv U;0xՎUD, |yvfiVx LhM5xƃV`xj[J^R|0VKGK.UT02:WQS7Ia =qRy`ۤ2G3u+K,<w#bfeZr9)&cn+M&4%}Y!vrJ-[.W^TgC?Bao\ՉrC+X幽^ l0*A il$- XV>eA |,w{z KczPaEa[u&Sn9 Gv41"A< En!*c6.=V B2lʜ.iK"YDT~LS rJšW˜0 J.3xF+eeY_jf <1Db(2"L YWǡM 3Ѕ:V br@)4SgHaz70bja hH`v0*$ Ivc2^Tb"6$ Ď"OKAK I!&xWY*n6-1Lod(Vqm]ԥ<cB (kM|D-yYh0㐆#OXpNT9XTmA*}z2@q |&u y 2mXm/JH=Q3gCh֙f/YQĐ-E&vJ73-@2ō-O?ET&m<'' Bo `Nt̤s pMCkwS -xBbeqTսf[ȚOf=@;:ewIC!HcY5[_wLjSoR*VdoUb'LU'(̆I,H:%/O&J0M ƌ1dA{\ְqfqfyóYYS]UK1f}Wn\ GnP݀Y\ZWWeui,$ ˢtOC3H:[Y ԫzWTNkͲV䏺 r0XEe8 6hf3eQQRoK aQq'YL|Ğ )\`35X1#zaf-lr +HgЗIҩ pjتEL\JKx[L~.tj:`Pl%'b7>Ѯ0Ml.袊XE+Ѽ$+hGO3[mc 64kW?P!fX)Bm45%@`t6BF\X0ToH.!O=772^OHB_Ұҡ? @:l^Q[JpX$s3md -/D*P0@;j0t<Xh\@PzA>!J/M+5نx|#['AZ p.je^эm[/"4|OrPPI;}<_(H ;e14L3-؞6yXP"ZaZ%tStNlDu0A^fqRJe%qp܊hڳvUh`*̚5# hj$QC!DVi$i#HjWX)lB Ifŷx|g2vE1'lf(T *d=)Iw}ݹNUԒc:ݠ( !1~EJV001RVG;%.y-b5KRyN1FkU?qr*$#AҐ!I;#(GLB;@VtrdӟB"a6Ah'u$Ƴ?nƘ"Jɔ2ඒipfj)plGhN%ջ5ݭ8z:XZjNl(BCRP,fMfB(^)A~IP0D*1T"oΩ pVSQ9)(@\FEkIڨ.m\7D٘v+@&WlWP RY+5 L˝C2M,$digi,^5!K0DUZ@^]M9'!.k衷XTN&coUx"Z ӏ[% mU؄Β[QYWYϛ\WA3Q"{ $v`jHF sAybiKyЧܨt gӕOvUp DvJ)OGlU~"΄iѶf r"zbmPLv&,Ƙ hlMr/P/~b%iT7boP 57`*Cə͈A In$ Lu>2v)GG2 Lž5h0kJyb *TB0Ӭwxd0ɪdW1x_t?UME9LƀN+V$g7Cd:˖NR]|L0NibF)>{-)CC&%Юm{l, 2&,Z֌X`͡LӖJEh/Y63s̉W[0g%\%N7$3!M*1m 'TkV^RKr΃:<]AݏG\Vᵣ,Pk9K"ֆ6ub($~g("c1 z{[:Qy ȤK-W'Y.~)n*04[-# cf-( ZAb7ϖ.KʃGL d4!L.D2'Cl;D>EszYylh;xAS, MWsdY"0EkgkW_]{ULD").nc7=L &.jW y{]"T=bX ]ΰн $F#q1|5aFkX9@Ef4ZM8Bwa!U,YA^J*QEN:fZjIIHqu}Y1<KLQ&8Ӛ.X͊)C|\t/dC l7B} ĠLK( ٦1ŪhHɩI όjq|!p@U9o(Y\;cv '^CQAWwpnsN-avs Ed8.l{o~pYŘ`Hb1w6b8 .-ƒTu:L.}z"4piB:ar!Ȣ9M jrƕph i-кN]1յX:ĉT:Yx/w(3ޚ1\T1.Z~Ð|>xv 4ݢOyE.j,m#T:7ej-o5߽#~Z gt}#zzӒL2V\\[o0Mq]bMjd;t35QeJA`'W@̗kNFL?Ȟ(.siGGc77 $Lh0h.Z@"m^/ܩ^z˫]{2V _Z/ $|< W\p:kKtrQdV]L^sv0_Y.k%mpL{uoGR{@8L[cedd6=LH^OVJ2+IZ-pL[lRKu9J\ˮ#<׫=kW+QxQA^ZK/W̖r+ r5_C4O kV'D"k6T1-జr6 ǖ }3*w8ƣyrjǕelLOnH prͅ9Wktxv@@匒 -s@cQvoշl^eoo{Ogg\).|>$D. y]7kAOB\==5(/ !+Ŏ*qU%"lڨF68 Khl kÊl%M|&o}lMV]sc`E!`zne8wOd l& K3ۈH~1J 'ytpPoKC[2ݭ.yXT[8ܔ]@P65AY _ί&|[F[Lyt)}9<:G=uz%t'{G_w!&3[^کl?]OLC )_dh/`Q],  I7_4ͭUZ\2nI_2V ]2SbϷ @i3- f]J( $ !8X n ak8Y-0O}!D )\ڀ/#_%.Y9gJ 9x*eqz{׳X'R)kd 9gCx^f}@D!%8#ZO_:ǨZڳM|lk?mON=_ѹbRu;qfMOniSMwQPV9]}<_ViWJXKsLCY5 &@ҕ4s Ml6G#8)Q1,o1d-[LNoٺr^"{O@a6fEH#":ovNEhiƇc ^~oԛ-U9KOJr(&I4B: _Ťi'e_SN% |2fb|[٩T σ⫍^tT8p5Mn2$>KZjmK.nN!I!h^J+~jPh@+zIiZܐjb6p(l5VZtڄQ }Si.kbiABd[:KӐ⡫)MȂMP>P&p~)&"bB[L[y1" lĒ:@$6?I#3B؏0jFJ>{zyhz24yj"#VOG'9_=υ=~-MJ"Qʤ蛎AK3OOe7{S.!qӲOKLJxtnR9S F'F\i {`8b*~Ӭ "T %; o9P6ީFNpgG(3't=N@} T Er Ze oٖ(Υ4T-'= [NՙQ+x@ #Hm<`KΕ \4rC5&-zxdGymr2\ȲD~i dfe]G EV Ԟб=5thץ? 70͏nos^,W|8(맓Q iKUȘ冧ȸ0D[({@HRMZ٠_2Nk0/PFt; m N MD)wB}ErKP'Y^@au7% Y5Ē$sRc襺 }(vtZF 4=-RsH_de]x=SgbM0s64sTu H YK&+JM*4lBۉ-ʻwV.Ejj0`z:ХHN$z"%gʦ7 1{{bV$VJLYi%r29PY2y)ڂ+by(s =$10D՘ XϾ'`X bڱhҞm^^ILj{CZf# &%R=wKq0dI('Tu)[( ߯-!м$XB|yKfB~*M ,K`|S5.DO%[!ô2<@gnHڶӉka6D4ge1%˫m(l18jͰ2J$(d8dhn&4'b6An~K&$Wc)V"!7Wg=S Ub3[7vX߹᜜}'g_N/S˹H Fǡ̸@].?HĬ0 :%JKf -OEm;BW Crwռ|*dp)X= mYa\2O,x3J 2반8TXd-׻C^LK}O$i^&%f+ƠD?@d:iǸ1RAu: a6%var#zZ%c*8ڀ=3L ֊%-Kw!kgrgUǫd77{ai-XQ-1W^R孭1րG-GQv N NXfts/[5hH'h1H1L)=SEgie(3i ΐJ F7^GJ6ŰWa˶wNX8OraNquo&ؓfs(uVlS:6ؒnh ^:`@8R6Ӷ9Z1ݳyf@i҈ۅ׶}!BkJ,5ǧ*gNls<ܧn|c"U΄Fy sPުoSVA'j^[UƮl7L-9{Hblnsex?RPon+Bvc ̒6 [[6Q.G %y2QZؠ~ 7M+-):miR{Ld!]lx N|<\Ӆ4N2N€{l 't0zVF0$I=[^|}$ux~C+h= PxZ~S,7uVRR'{Lj1x 4OjV]ڬ{0B Qb&t=Rr;"{}:"]ض@.C`BAߎGh(_+ʆ #7R0flN%6GU_ndp=r=Zr&|. 60RU(\C?n| Pvi.)/ri, [Z',='f#R%(]n먘1gm/\CUB9XIhG{+@pCdOrQx];m:o 1m2숃i\Nm/43aWkf%$Mu@:%w0@GOae"c1=pi+<[El%pqkc'XvǘKQsn[ )$e03I0 i2zOV&Cr MZ@Sz$9ǒ7e^feX`M5c4#>;= [qՒ՟oO"F;~ D`$1۬Zd4Q} ׆J +tEO(&̐CK̖% ZZq)fgk~_lXO@-Yd&JPfUs 1'#,Pɏ/L35Ä/%ϯF11y T T`'jXr_n@Ta xcČP.T01p!0QGqևc?(@3ybzc0{ݽnD,W=Uy,2`Ui%b<@dj%D6mJ `8߽ u3eifyޞ3b;cUM^Ȟ.I7W`j)|;+Ytǭ⊇dfyA [牝*)eF={VI{ImJg8FtBii&1!ˡMӌDǰzݨhP,RaaboNwVc; S^ ]H.9w/=x& ; tZj(VL:2rNMѶ }᧪,3mI{z&V޻T\~W훌{^xڛH~Ypvgvq3ыa(dFʱgmCH3P-xNGh^?>7iղ waE ƽW|.a r2I$bx{5` A:sV,:.u![>B!fZT+# Ri=RH,M2g:3{\c1sfP(`u)b'dpOV%jZlfUw uhl@\$/rsq#ۺџV:y[R E˨mfpc23P 6aVh۰@]+C}n!QEh: +ߝ %k+^*L]հw S!tm %_uN`n*MjRI/ߩI\Aӳ4-[Z'_EW]٪JsD&nW{j߻XOO[U;c'Ӻ}"^.Lp@[Lk-#гqef,RZG-;ԘsJxqo*=lv@{1jr\ƌiݖ&)RF-7_vBǬzk9N<ܯ)Md8>jR"u1 cH1/h;× J $wrZ^)gԩ\~X_ِ?yd6A8W \yr&>a 6etIG搪{[ ȣ5(!7^ajh5JPaoJZ25ڷ~7_̪\TLY_QcoI~n~w!OJ8jأ%nT -8<3K ^7A;r"=57OM-,=ćSYMƾBRQ3 8/Mt拆o+D,af%id&]x}דm~٬ kNZZ}=,)޸&<%kh6(n,KK]lIRc1xI}"d3-:EiD#Y{J ̆։ڣzcZK}zr= 3s70H:_WBv0 ;??W4?$vg=5/s_r<7x ^;FHtkLˆOj,"1Y>TGx(;DQZi '-ؔM/40qgO"wUق}Pv};i6ťG cp3@7~j8dNW2LPT-JѸ|WMrO̍'ߺ,O ?Y|3Nd֒OUQS@qWKv\WͼI'>Nե-C ӧ4I|.g4Yx~B,#`@&T]ڥfAlK+ੑ)+.LG7 D+gĿ#Kp.ӖVj`2 HWpC8bxH|_3 隓bde4N-5b[QvlsF%l:.wA$J ;5clң]I :cQs|fQ?愦$/NGt![lՀ/?F(6.Ơ8p}\[k~ *A}ppW-PɈ,W^i-K0U5N|jVT}h%t]-ֲvAj gK '.|T-ɭPצkeV۹\ &Th%[ |(؏zͺ6eO;1'CxHjx֝y~6ȫVyu'6~>Baˏme JR(.zQt=ˁHU`G#R*U kdW`:hgsz7 owMf8W0_a0s6'[7":Z `9.1\hWo`P.hFl s(n'$VrYM,,uS|ymÂhJ$ԓo#RG[ FTh:78p~4&\`iLn AV3 22?T%cp^5 hu1Qi*T#6.,ـ@ZME.hx714ꂋhuƹX9s|&醴@-=H!d՟hg![6#ȜeJs0mp1l y?0([ E :uկV5< ((fሡ](^[&h`(ah# RBTSO`P5H lv6} h$rZs=y}TS R7M}ِ voQ47>m7T6Pd&p9-afI^ rHjKCӘ?W>#ݍg5@ԭ{{.v@_o6Z'O E/)S3ҜN-=TK"dQ`X9qZ9 wA#gTJ,8#XuaUϘf1Eq\(Kj@VO^WϺzK+ ᥪV`|$LO|jy<1iT>m5A/%Ydӕ}vo'2 =;ig9lG-ۊNQrӌ-N2IZ+` ( [5a^׭_U-gR xw_3RixܣLl>gG`(Kqs<8Xph3w4ŔZZJ-9!QpފG2ժ6Sg v@ߜ٫zt)RVU֞Z|dWhc+2iF\%Acs> omC0m> a9_<`I^pv~yd:i TLTB:R(ARV͎kAenujh+>ƔtkSQ[էœ@ȃ&:Ep1P+zIEugZq+(o ioaLV{˷w݊tyv5Vvswa@q4PH8G.{{jd IHiY/úR?XDYCTدU?$Cv3}ꮮO?nhN#y4,917|tIh`vLFEz9W~@C(#֬ ii[=*,^"ݬz؜3ya9sGL %W˯O9C7B)^֍;\ Tހ8d`K`lE&5 ۶h̖Vtfb>ox8y,yķ|lB+|] '|4̢^56̖\^vޝbOVfμ9~Ur1M/h9*`Ҳ#[JEC u7Z0@0-..+S^xݳc4X/L&Y7dXn!R&SI:W3ɢ?:Pu''}gi~lw _ض&Q6Kv6x8rfQhRgʒ3'R#_ˈ5z 8T@s#QT6:c{l5XɑR=Һ8sLnxHBplջ4lx^ *BHDD~G{i.؁dž=P3#KBww{:NyŅWt #SiwvՀ-;[U,o JF݊@Q’' ٺȗZQNLfX4eU,o۠RdvNFޘU`#G3f+ i?O9=!!u Hw" н%3?@)ivcr2 ܩB4(<<.@fd7dEV#(e< 0&ڄt$r xHLtyAJO=o)Hz݇jΌƺa2o3!ӊ{9PK:Ѿ JԪ9lN~R"S{G_^>awKAU͐ԍ݉3L^~ZXM1q=apC$ާG>:ؙפ<0+χ5 z< <v9]?;disTJI-y[d} V"͖"D8rxɔ@t;N7D&1*2)UÉm??}vQ4NmF6p~oʵf'⦭!!{M=¸m>J6ZSHzo+(LF4+R!u$I7%*׆@kx]xy]:b%^msuk,P te-$ 5!iq3Ows Θ Nr8{<ŰpdHқmUVYTk9Cv0G)tU}P6 aqGsjݗ~TW2 cT(s6ѐܨ Ghѵ]"~#CIh^|#.nl̟fQXbF޳e23TA# 5Ai6ԥ!6 ^fl0_آi=WtPzB( WΝVE8?Au0w@nq 1ߋ2.0뽺=bwzK %0Rh2Ւua~uڪ7K8eurDc4xw[u5Bct挖rH:aw;qG^!)޼tLJu7:|UES+c"Y&NWQ0tf;ӚmR I /2OUE<,GCý*w _>cѥAj2( ehSpv|;=8VQqѨB۪,`T0-3E;@7L$ .N8$}/6q-[ʖۨb`׺B9I<s@4(ްmw v>Vh[̷&О?NQ_4\cw{x=SoDc*q ,$7LBr%X,oeˈ^{0\*Mf†SI MKOi tkaa>6IA Ű{י!Ѯ<ޱzʼnٴDhKqu]BԴ|Mfw{fe);5ǶCkLPc->XK="\4  nwq{4x%{ N/V鸎${zߒY5g]Q`}85Wr{zQm{rbxK(L|+GX6au #s O>v 6>qSv!Vٜ+ &nV2nʤpR/kk~sKф `Gdl }CE|[c2쵏:1n{wgeiEb 䯙IP-S5B!S|W;rXpOӎ9*R˴T]*{v;e觷ju4LQ݃LU68ѱ]ˤ?meKr(Hhe*'GNkWM8hDD2o^f[CֽP_082*&_.N?Ys"'ZJR]!fJ|)ͪRA:v)[2UsQ1x \%5Yi#*cYGzHH&Q,lWǎ=q !'lE3@ YDjog o$t#C~m?lԄ-WZN[}پL-⫎~ \3?OaVvaqIH_xy1]y`VAOl!17v.fӯԷo0HӨv 06g+ۖ^lniMa4]MF1c枬V`W#ݐ 1ӸvdQxq6[o^!q2bia*w)}wztnz %gr mde&,:$Y8A~8M?p_[g49x-7鿣@b0A v{cqyz xx{^a m@8u]~R^]ɘ,iE_ZB$m&7/ Lg/1$粁(Ɣ'h''aE"bwMuѬ#+sHs4JuA݈MicM .MCش,~6 ^A?.Lm /U. 8g S|XLnZ:i$)A^^=Zю&L*iwX8 у~9I'a6.̗kRˣ]aؾf{kikWMe͚mΧ4q0ʢ5vG7Ap]Ioi=~o/$*NXސtSd{٪";ʝؘu/ξqwﷺdqF-^v\tn/8uuEݭSl d/Q\\6 ξv{g^_u"ⱅW j&ή|>jJ|)USrѨq`.J#tj?~wwO9x6 Զ@CXyNo_!Rx~@^2s8'џ$ߢP?ؽeX)MF{9Hv ejElJ5<0bfx$kebF:8ɖ 8 + dqIYhX*bIBS̋`u_p,Ut)y^cMPz @ZqS}dLVmiYzo -P OY2mM āp(~܋ .[ZDDʶj>-]sS)(kl@|{>jnn#`g3K ;҄>HTюN|b;M/a=@(ᬯI4KsaP s`|0vXO?eg3ZsECI$MWTnJ=+`qBS.h^2T% xbkjq(OOA, zEF-Ƹ UNV -g\lp äݺ=U!!w`F-irJ帬2k :Jͧ'ș%?* e?`5ra^Y14V /Z+w 0ɋy$j oj#)x0|DOugF8A~ SʮMsdh9wZZ3- ,"I=xRsRR3 _p$fiĩGd#3~F1. foN;;ZatO-#wczh@9mLM0 Fsn*~xP30=D"wMAF&tS5{0vWDII?%/BZgZ`Ivgy;lwwyv3#GQe|rXV*^n1mNR뭥t: a hzmSȤ?]z\Wn) zGhb#`.4)N :>m4{ MY`& $_?ovdFqf e/~oN?Md({_M@_31gx|"$f1{ hh-`J`ԅb1`|>] 0 `i쟝zR =qv-XP͢qV#%A8񈮆20" }U#BuqRIlTx=Hͥݝp@.J}hiq=?Mhsz{fq 1YaO\Cʶs Am^4>_J0XU&vZ|FQD~U9,~Ǒwe:*U,$lj0Yg?]lc0间 cHF1WNg)bŮ09ԝTSPq)jqS[ o r.yd Xy+č=,)pSsC+SE0Ukԫ@6l4'!KўD S?+?0h}pMbpIޱ !Ƿ |}/x:f~u?5+$d҄T$-TDg{֝.O7&(B|<2 ΁G` LtC/[KX(ȋg>k2`j-CV{WF=Cu{u7BezfnU[o+p) M ZYߥ|jX5C:#B8ސQᬦޙӸ>S, f㛎ZF,*oy#D?VxR`r~E@c %cB3:4v0ǹS$i p,X\kDbbYEE2^ìK-j]P:SBEm_V"a$Է?G *eScxډH++5J3 KSM"7nX>Q(nЀ4]nGvfCܠI:1qR3pH]P 5yk%p1,%U̵y7y:dڲaXo4$m'-=BƍܘBK\*_Bl=@!. 77i}/Xg1p(.Sb Ώf< ӂfXY]t*b:l3'U@(-h4u& |nG+ύoci 2e^ ypYGVA .XZr|4!0oA xe;\/D"zӑuF6&՗$Ҟ㎘ [50Y:,ưk6R. q4AiH\-r3E!R~&A0o*PF]_JO[".h^E?ߙ~457,=SrsلVHCۥ%l?v5Gm$-I YH$KMHb&tQwA P5Pbf͡)3( c04l|2ށ*L%`4L򌋴ZZ[,% "fUp;qRF: j?&-EE470`,Q/ӄo8[ $/ _:bF̔K3;߻.aynaV9;DTAϖ%8{@ƟXxjӍDcAl+D#*EY+ک*W(1)Ғ_*(I)Knr\i3[ok`E VdݔaHKڸ:熒4烢0T[, Hf,/62Zwj2"W1M{wtzIu{"Ql~=hU1ەjΫˠǗ0s] 灠k2ETx$6ЫnQ`p"Gb+ED^јq!ߒ$_~|PW]<(g' ;Ƹ+ !uր [xW~q5?<^vX17ޘGs5:SGZA1Ź{kPh Pa;!2&&d#Ǣc[2!mnp>,XMq o s 6۲Zq0ŬiWQXb,~_Oãn׽{GO,Tc1ax^iieL+-}v2Q.SYStbڌbh~q: g÷?—ܚCax(H۞{Fɪ]co9VWYɻꦸ=#;chl.|:Ht:{u|;lm\iq)$h@/8QbecC,:Y<)_&H qݴI0>YS7ȴUajɄ)>#JM%G+j:z( 'y`P\ҘqTf60Ň;$G״(rF rl#:nJQ?cqm3k[,KW|l՚.+8eKoc:`(&3&L(0Ft8m5NeN>c'E3pJYgS;\O> nv0lN)4GxDK4c](}cX5q5ST56xDJw[Ǻ j{YIJ^nyShy".W4=?Msuvy'ٗ|u]^CA1Cx'`RK `F4#{`P(c˾sMi}{P_Yym*Ugq e2LkLXaatݣ\ۯ[zŀlSR.$>"ޓJw%.8{xL7wh(KBbf̫>IXF)Z¯Pq]= [>RdeZ2uڸJsT"HdTxg3V,9/VƊ2˛ zfFDnq;A34<91S~8*7^k1>ye#'h3n|khU1K_@7h&2űNC}_(x޼nj<=ڵ͛`^VDZnim;:(8wG`8YW@\顃2?'-tt=3>@TK2( ~qMSS"лW"Nh+TGLw˰Ҵ];";3ޙ2T{dܺIp5O pQOU<tV&qd}QcOOWrQ)Vcf8K^x4G̑iNuLxCޙ{z'>+%wۓQ]v/.O5AnHBR!F if?if4xEՇ$ ZK&ߩASŠ(hwMأ7o!֒KNBfw,?O[H0?K= Eǽ&IfWUdmZou񢂮7uÛ^˟^\WL4j.T6'T7-";`TS?2U6qfb-S;t)yT}/'zn鳋нUm6[T?bv(AVo>%AEנ.?n a_ OP,yRWX`VEj0o0@n #rS], ߣa#>oq:ߊe9]'̫ȾG-18#t5SrCVGMvl84ch1Iu>62ô3FiwSn(R@cRM`|(ڈ4RTQr0黀:!IHI"4ApC㾷Y\Іwđ'GGEESnVM-D1p λ.JW?lh9iRDvGٴ|0G@TvWڔ̝l|}͂68'NFhhٵMF+ g5ք??4|~Ǟ/Pd3p]iɕnpGGѫbU u]Y VM!@ꄓId%XHƸDG܏b^-]Ķ@=:B%q%9 qGK[ez:(~`O/$Y.YI`Յ4hA{fWJڂє*iLV /\@V(pCz#YnYwyW> S|YN9ѓV=22eU({,}>s}h ~EeOC OҒ6~ PMňݏ&4@fӅ[s޹ؤIQg"ud0 Z /w\ Tʪ-"1ʹWλ(xfB憏Ĥ FPl -p+ Cʿ i<`DLUMAK4@nɫeP|j< lPL% psl?A'~L~i=AU $rQ{eh@%[j/b Ziep1zmE*6macyziVm学qi Ώà}Yaj HZeN1h` -u9aPlbkZ5ΦuH"oaOrz`}eJN|!X9ie_I^՛.rK#ӛpKCΪ1,kհ{VD ClFwʑM@e> hBǏH:U5iӛ"aˀ l[.RK|n{Èմ5wƣ2myssъdi H6nwiTGӸ6?, hCVh,btnczqCfV|s=7 Ѵ$XXt-~4NYT.PY=q 4zxEiƝѰ  J$M;ͬsuddWwF/؈Oo4cn`@8_u/*DNI\EAnpXMs[2"w /d4.r0gvW"VCHvIv[<1ޔ#m?v9_ y.w&"M;KHb/^{ҟl._s#NJLSNnzbDoAYK֩^ՒR[kĈ {_utcb ve<&޼fӵJ HCS]e+<#ZSfn@Tq4&ѬOaв-w?!+P(3`::ǿVĞ EC8n+6,r4ۀ91jN`Ny11$FM Lj cfaׇ[YچnU&#~0*`=l #x7A%4 ]ng0ʳ1OU}$#O$8>lY*ѝYM٤Y4&"j+Z|u͑~ DwrZe1%}qW[P5l 0_k{tKv9X]&xup>h$ρ׏W]?no'tˡ D͟/iw{z!5Ӹo>z4u90g ֚rvL>-Ȝ;1%0KMILS2?vmJ9h]>m8˙f %,4K[ c6hHy^CI ;V~UvGG|֭0<;g!{`|%H Zء7+ pDx\Ғ!ä o^Fv3 l/Iz?.#֞N`4v/h)~O0 :;e5軤>r(v./,fY}0ɤFB`sfiLORE؍)_0/E֙\1a>p O))1Zr7<h6Q5zq;Eb2R4rw%$50YG΅6_L?#LNVm(`+oSNk΅5j}˴]MI4*%dłj< tkBV%@h6O-B-tv#(~iG58sfdhQ ɗDL%"ð{֟O~auho4E(]PMuLC9fLy]9異!cX n&%Հ֭ogfZpXL &R|ejj74%dF(B5.WW~yMĩiCJ&[v  I>J 4y+H&b$)66kT yma$BSp q&S A+_KE3FVɵ;'HYXL@qO8$o"K&0^u6]e_aL:p07рb|:w $^Ro)GDA5umg>Kʼn-4kS!K! ZUGlÁbB"܀2vI0BU$] ԉc0{h呣[j(B_B]\tO>9<1Y޳"Jgymްlrߊ )%uS-Nd~-} Sd 4ܸ,E"m\Xזv1+O܃, rE`4H:xA_v.j$֮\{gd|]\w|vbA^$%//lWPi7l2cHmxFz~\r^y4"@ZcN’&tUT b/$Et'̥L U:FZ㜋 .ocn+49q~\Ii`X-SH0#ᖛ9@(7ߑ2N"n"MszzEa1,5 ^|bpz, ̟'wWyI.1Bmdyrң$XrY;Dmg48N+TY۠9$6^ t[돉-W 3$ӌD|m{Uޠ6/2&Px7VPdAB+LCp8݈ZZBWzqE9:y~:ѳU^Ѣ̃6pJ{Wj8fHk]W%4$`n̨1,yЊ \ttrf_xV}U*C&!ÕZtM"+G0P-tE2N^YnVXQIJ 2b9ƯYgnâ[˒W8a-@QΞv^-!R2,mmP5`%y{_Iw}b% ݟBȇYE[cc^skZ@ͮa` BZh]_~{׮6M;"o ;x{睕RP)SLy_';nrKg2;.Op{!˄T;*wkf-1橿뻿~ :Y~ NΞV?9B0emOE#[rfS2L^׮&QPj4 39*]AmRUsN6&;o;y6.RoP}ϭt<ϔ dCԫmHw =$c׬tT05丠GS:;70J:]2 %!>؄ Z Y7WamR1ZGC=waȧ>Hl3Pʀ"%2r–aguK8#9У>,@zz[BRw (:]rw lqe1tHFlY#>bjf?ˌSQH{1hz1I)Y %T{{{'KS̕sT[Qi\kZ0gԒfr@哊3ir̅uœzw,Q,Lo"Y4)EqÖC;xk??8x!_uFk (60g*6Je1XZ@,5y $ЄL{YJqmV+_v}v7'(HlS kBdfndA_o1:pZ,S_UM?z'I &c -̑A]!&u0* [ZxMIULucy1;uKjkic 񩬐"T>W1z1VY?@QS~Udö.3dK7.䌱^HRDplZjvs 2)|wujH* ݚh,,SUpap2H kK赺5oFӆ.|"-Cŕ.JmZ~txXD ʬ_F8zm瓾dnF0'?vJ=B4Z҇4: .1\{= RM8 (Fz ]f3JkAap{ +hZYo=Fƀq vđ" t9;,:hMo*RexʠT&~/nrxޝnd70av'>dPkֵ.P^B3Hé rM)~jL6(7WeJ$"2w1Z'A5֑2)dUpo*&1J8V6ԫnUiiEIr) vmɚ0覺sOMO30(nr{i;-M Q0 S =9;]\_ ?d >U#.i^9+~Rn&P$-'.'o?ӯ[GӺڣ4~ڕݸ\p7Xv [f,b|ou9a2[Аe 9Rk2G͟PڐOҞǔ~wpwo҄R<>]_]"yqy?o _t^aLf,4~C(=gwtt<9(Rs@y8:/OKew{`jta 8iG-%*8 Twn ^8 $[lhvHP|w|ĆA~O! PZ3ۋ?w2ef:}Á &;ԅXN1('kj}ZG/BdC5+Xtijgu(tkMf??钙swO bwՓ-2C6£ƢM89?V ZI*zăI\Q=QK2Jkt$~µȺhxgZGngHJ |GĨLeH}qY-HԢRp(ݍ=Ԡimj1cat tpqp~jy`*"L ) ~аcX&2̎)(ROTXߏ{w?B.6 SP_ϗ+} 4. K+Cp u17MqDP%מ᧫'+Q'HtKnȀk~'Kd<2aµfia.TڀdXÊ n85WȨ%6zN򎍌*ԙ YL&l?'/(4,]v*{ʭFmWnORIF_̮1:rS7}:>YkuQRc Nj'SuJzF['Tn%w7O @9ݏS j;N8lBw:y)G┧SV<$ Ť/:Yt8Y>]Zat6͞=4srG};{{ xO`vT&*Uhy[q1#R m w0?kGԻg, [3=f"`L}2-@].vϕ/l/k]Et8qjoc+b WfPn`5Y~f mxE[EҒ2mTx7^{0ݬ\Ņz‚K<ۏSd,L1nQ hӐLIɊ :&Q h&DԦxrh$Tm*pSɛB[\A ]}F1JǒD*[-3?CT4):czH`dhaԂ k_O}Vyn ۓP+jnV8Z<ݳn,akda >JF$CvM/ԛ^Ns*2_)4ji1Ъ-was=;jC@*Huplkt~UX Mv"p)L,hlZ >[ <`J3\3XHql o7پPGTfC$O:FS]f r,M`Hv5U-L_Ø&JR}槟́ NS؂;hE|i uAsװEH]1 _՞ڀ`g ExTB1eB{E{,F R`kM"u#[4+`:NTs@0Ԉ.Bc2@~TK6]:Fvk:2 A RIˌ0<\#sb*lSZ>ҰUY{ὀ8g-]]#{rgQopIR0X>QY3pg3]|pGRL8dƜlۑh=0'95J?JB6>-~jm3jdS_^0ް-_ IpkO=08\T;EXHC; +تtTJ{owˊ=Zuꞽs N#\ufyD5܏|Cx}%Ik2e[Rp9d+Rou{h'KSpkY/g4є~`3|\0Tsd-V 'QC~Sq|1'qIBcSĢ }ҐsvŴ@UYyh 1Ck>I?)2 U}l<_z޾#gUAv^u f Z5p94}(.YiB($Sm>C~*4"W\ Ժ2Rh$$5o7ն8Yz蓡c鯼E]vY YX\G]{>(+$̔14U!^{FI̳@fl;>Q yXw^zEsKk78ʴ5i-^>s X[;&R~ꅁ߸(`fU!,j%^/^H!@[̵Y1%PCea^f a/C78 B1s(z*OhT.OS?X ,d _jTX[EeQI3&d+/aFbu6ڞK[ygFbWIC[2z-D̩T xIL<&.*9=SuAj8ϴМVH7i8dJah >ۓgf"j=fwkSΞdl"QKuzUܤ@9رʷrcJ)O4(rL!(|'TW[>LD60vju}ߛE L5ujD TC70bOɧu xB_BϨ0afJq/KUMSR(@#qW"D|>[xuGՇgBOUȷpJ Z,E>#ŔlΛxy*/"iOEYJ" s\OKc̞$g5H __c߼Yz4̭&`" FbaOp\2}Q8Y̮mLreЎ'Y4H;WUrNlxy+6 Ӓwcs~#|FE =##qÐ`۪}./m閛wԄQiI!6u@ױ-F\4t=~ŃiwEql;3uW^_߻sZʒ;4L͆ +*8̘k*/bҶݢͯr2P{7J . $c ٽV9|2P{uS;)DE`|fI_K*)%auEu#=mNs B\V8blJ!'{"]*~[28ȺoBׁ[tYp}?,%P]7n10Y^?U8фz~)O6[GYg.-A7D\rCXyZv~Hd4*d Am`#.bBgXk zV8 6> ߟ{iw6D)1AR֕+aJ2`Ş:JlHiQkqZBksW/I5XUoz*w29F_. 89=\TKˠ_\]_|;DT/g`XM〔M0gXDmqd&BbK~wv~+ROMU߹%uLɾ:8Tq:dS84*"S79}-60 wr5Lhx~&|}?8b?WY0(VXE9Jr+:3l~x)f,4V5؏b?;>^!%LzFpYa]\^xGw.iV{]`PT$=]\yc^87^]`' AmpNq ?4;zA't,[j} #)Q/^ SВVnF%SxFkEgh(Pʁc2M,1^;R-$|Q;Ҭ)1WϱQ9m?x+ .2gݤpf xc وLǀ"48oNFf$@}W͒瘥CXvK~E6;M+,tjDKpn>^ dGs:1dVLtr:]p*Xya᧝u19Vl4z6Ѭ&BM%wؗv9\97kz{C!c9 C%1A8jڕͳ׆!m%v91`gmŵOdH3nM(E$;(PW!Wל2lI&h"rǷygV0Vl~| ''j23|IIK[<ѻ3]gcNc+q+Yt dXxulw[T7as[PوjjX/恡z`k-O*1PKT",ȁ%ȁEʟy1-in@`Q?fsv ?wkwc"Ms؝ޤǻ{n|U_|S*%~Z e3 p4uQkZFt͡1{^}tבLދ[ڝ uMelw>LQV:),YAȺPЧ*0avB!,xC ppKw+6<Dx#<#;GF'h\\P̬wup|P9~g%h^N 4Ss;օye1ܔdv7}La(zdo!h_N7D~6q\q)5InTXKa!s${=nt`gI(JYa)s/hxa_C9Y:(;==Hsm 饚w\QՕP{ z0͵^b|JR6!hXhEݜ(.䫥-z \I0ВfS8{; xM %8P-C8 LN/ @mdV[݃c+p[c"=mQ(fܬhF}6K gjLBijY=dz}މ֤ E(z**+pB@!3PpNT%eKh:ba::y5# @8P qg=f~Y'̞lf`AͤxWlӸ;uHX^&rfPwTUtl*whm0(wGhe:0iWz"ߞ^_\_~ވ=Ig߾82 D::R=EdzGܔ$7''嚞%L]oc-+3[lfh}w133=p~k16C*&~ݣeFZ ɀ$r[ j9 Esqu'Tj,xGˍ@@ *C`ږ eΠxON]RT_uQ,P7qqGZ6fI-' MVN[{$fA|#;:?1ȓC:zhޙP:" KDf I0|pƇa d& a*Аvx}ir,bKoFrI o Y.Oy>Gw=B%RIPꊜʡ4,'4it z"Ϫ^'W7/!-! uWtE|-)+a('/HvXWG*wcQ\dwwoYxَx!bwsԚBpf+N^x._. evo &!tB8? zq) hȃ6=xӼM[7Sbrj2EV X4xxS=.c_<>f¿ 99saњ|rlj,r *rxw +t4 >0pm;-VwYFEG/wZ2YD?F9kj&S"߾%Drܴ(!V(V1rɵTVV+/W *mqœgW/?^^|~; ^9ts9uEI Xr$Gl`wowA[J$+%W [Eԇc;gi~iAAFh';H@ Y"q@t8nV/k#d  ٢a&:rgN\>[ h@#Q 4ۦ]6OY 6ScN-0] aÝ/ǜxd~5[O}8M씮rcy?$I;ᑼ%HWWx ȶ#[8Uuc U3b oDZ18h/PI}t?XrUnMǑfT0N5|"' & &QZ򄡳rQ?\Wi%L] ŧI6&Nj"v2A;@7J׆'%:ըNv2Rzoiu~ѲܲH,Jp9RkyUI&Ҭt˞1=S9Ow[fOv[G- |ÈY|by{{Naw.DXy7H tE We]jy؛f|o$P遠bFa-}T69JJb@9>?9qgq/ahq$ݣ~/Ieddle+ڦOQ""1JYpwٙ҅ugo zZ E.LG'G{9,cXrwW7 "q2̇c݊ĄZQŎ#[ {O̩6ruYe"TviM:40 x+ h,ՙeT͌iIMĽ۩6! a18X 5RnUh% +"bCos>Mi/YcwkE[joqaf(}X_?5i Q`_U=jjԜ$٠BjM;l .&M2Z$g:p}nxͧd0Ӵ1ވD=CU,kEz,ÝMY3 2:Xz’BCc;s;" pros> i M(P~u;3B+c8^oHv+y ]RAryq7GRI[;âúy c*pvZYK٢8gG_I42»Z"Xliϵ;ã#t&#^L/0YkZ;ԇ7f5~$_NGUqOL?ւ*"Ypqru{sܤä[l|NFe/ 4en}syzv\݇W볏?DJĘ$|@H5z_ Ymxuˮ+Z}4!6z9RՐ!\Y*.дI*4~;Z~ƝSb13ۜ)r.WKlKlLZ4.A-5i]>]oc]Ʒ N7Jua7iTõm* M rR DCvoTOkV1ŰI6 a͝PSʑ.a(@ᮖ6qc퉘u꧝dN#6n9T}>Y;[o+ *4@`pw5@낦y`4d6O${`4tPJo &j~[aϥî]Or٫ ﲓ>%)mH怒aJ B~ʐܙo1vM93=u rnlXMb,&+6ZK آbNK-4 /dQV4GNכKb;FDHC?Nte`M.w'RQEYl6ŕ1&,XszUslwRԆWhh}޹ԉ7'v!${n5~sOKT,ePO E#'Yfeߥ |%uW#.qЗ),_jo>г~4$antsQ`R(ި?E:d5 bƍ)޿ſ8&[􋝽_z9Ig qAilU"RB+ӗ0: q@ܬ9&[cL|] b&p*2ѦBi7.k|/مح92%BOrJAvK  tт7Q|0*_I"ND'f1M&dbZ_"LZɥhcv$kZ;\ id,wdkbLB'b1/;dCR|0}fkY][#^{)~ q~Y꡵F&pj E]LjX.:iiFQ̌{0.6:PC>R<{MuS-$~Mֻ">h4H)ڙVԕsK0PX15hf'wI ?Im3BtӮtiBҠ eq1J,N f?=)''3ZpZs@YL0mIӂig,=ֺ},uyci -OL3V6nh!ZF=t:DN3r|| I 1t{qz"$ %]hD~j/W1N_Gr~y@b5_sgxp^'QgZ^6`\A #:]-b1*_R2T]A v .+xFYp8#yOBAs%o.g˟px ȶ:H5U\L,kpl`c?&4v|][>is4g a#'A ksT9cMk2Y~"5vg5:׽:M`3IǤ߯Hˑr^Ol40 }/h5)GrFn!DWsP!/>YQ~w6SJI}ɤlS<.rPBLH̔o5s<0'5)(iM=LH VK`x'!-pCE ]l- :{gB@K|Qwaj雘s? ӸIP($I4J2wYYtxY㠑YfՏU>) a]yW%mpؑN>>~K*YH~Leyo>)WṴ[uF!Zу=GI7B_V蛢zxG96Q^=oKJI,KRD> %a*L;B4ʞ==JoRNFR_abr Hwƕ.BQcf!C5- &JN_jIπaѸۋSzD>|tz ¬ CV0o !3_0c}ݟ([.xcIaʘQo娏Z7JI\b8:/%l$PPK(I?9p@ _Z^ږ47 1MA嗤PXW4*kVO7}s] `ά7\} EMLEu}U|Q?Lӫ!%sC]p^eqns.ˀ LM-Cz5:il]Vpq]޳F O|0Bp2 "7#b(I߾eq @{8L8S*+|tA~wdh0|=&põE?djL߸FFPR\Q1̬)cnu-%~ bD*@|/pH2X/o0uRB sm?ҿ۬ۋzGKʒ.Iź\h=-KMɷN g,,x󬁔8SS r#:M)m 4 k6`?}{8A+ۧbSP9w)8 V4ͧw7΂32uZwfERvD}d ܯaHal+Zi3%NUL5ŨNP.Y5PL6BfgRluZ[ֱI^esP\Bmsڦ3{*-+]h? Vlgx|k`@Rҕ]1iӨ>6$g:$ElXiY`$P0uk9q=n9o>?_KeeZywpC:f~8Lpqf9SawF'h' I!7e8AL0AcrTsɬã?u2f&(J&!P=3"δ^E ry:e`pjǭ6jt@VÎksδ7j*s՜oҥy[sAGQŘX}*P` }n>ǪOQ|h,!5dmX3#L$I'[ūF8݇bee,Epv!;a1)}܌R<rT/o,LA& >#ÂLtZsgFè L?;̖3X)=I}JiՉJdb8\ZUў6(W XՉ{.ݐD;EјҒD+4t}N9}cxt7X< &p]\\g/vq:C R\n@8,Ȅ  $vOٗ6Mf\[TmT-e1˕|#Jڂx|l³sSyּHVE^&µvDx h 2ة+5(K%Y\tBF>J㎫&D"6T1-hm4IǑFMw5韝\֎:gj2{v~ 6ܐ,xܮy54gPҌDv^FB@˴mU/d.IЦߞ]9|iћ4 % F$ȶ!t"oH!ORw:|j*E#?Fu)UZ>< }!HփKVs/BsÊFon/>ܭWM D@R?gDkK2NmucҰe8~eRDLf'4ڴ(+.?Xŭ%6lm3J )'v$H_b1!)m#PT ]s-C ลwĄ֬􋹳|,:3ho014Z,K_)ݴFa_4#1cwsUTG)ޘ ^9"_i{㶪i٘BN9ySHO_[ ;͢7hʍFK,t5AsWh4NxU7ɐh&]2M(tԎY Pknc1$F.>H|R^-G;>\G3>)0JJe4 U݊7GRV=HZ`ѪI*d9dLs[M n%zh qT@!Ǥ)ͳĂMyP}>&pˇ+LHE zY1v&%y$? ]+3Vs4^Iߓ0ᡡCI^ f6P{gn>]>p@۸k9ORnsx6P vWqnSFx1NYQٞ/ Ϩϡ z]ny^C~H71,VN]kL9)VO#Ng x̙pQlrۣ4~kL_JIMwD$Zх^9w' b ZPR=w*AhIm9^2Pٔj.'4^S&zcvqnͥ/*5Ħ`FN?[35QYΛv'a:0;lk}L]UJ QR&@h3:lm|u^ݟgw!' '7MCK'ăo9OOe7&q8^aM{D^ޘ@ϴSl7~bnN4zK S6-R B['$%E/ᵵO45|cQfHINR#Fzz%Rx[\gpE'ex=KRM/eQP-jL4LNrݡ:e6J H. \q!St̳B=Wn0Zƣ<|T> 5,64|P3: mcHJaT`J0mE]㩡ͭ#]zД?i~t{ wfC2lفZzEw7MW`Y$ŪVdLrSD\ա0#PPHzݶm`Y/O0gAFҋ, [9E 4YcyVD SMc#?t1針p {ۛhIXbTM%I\:V{H2@KĀSļoJbB&4L XFWAt/fx)BA}J*qdAh;SE'I\h#V}Eh-1K ~Z"d lď3X3#VhZLC Y=_˥=<^p=Kj ŌpvRŭ1֐*zJJӬ,Ixw ;'.-:W_{٪>E uR.#~e[˽)WT(unU6IOFm&PqWɒAOz3^wМ)ܦm;z+K+p}5Wg06fکVgUTZ6c#6jOOp W='m bgsor$_oM !BkJl\v!Řӣj:{'<,wc~m)I*fBIB] [ՍPQ57*ohd`fDͬUdfIųGniWDbE~㿅"V#݃2(n뜑1#/އ/Ru5eLR*1rjG4HvTeFULM>d| %uCߟ}/M -Kȑ^1G‡+\IJgp![, Ks`HxN01t|&{Z,5{e%ae*s/SRHMG*iYIDս`an\œp:Lخ wu^M4#viU:տтk*JV̴_CSZ$nH;(Mh8~苐˱sԋ8fj7a:x@T01`5T@B=+˙3 CE48zG6΢qh ˕,6QjEW#Qw (ؗ?q Q [iJb>ӫszиJm][pщ$ |zc ʨm%o%ۛ+p4J 0E6oA +;R/!mY!ĿtRfح3K,%4)mk 0 A7_gȳfy!YveS+&R"!f8$lS \׈>8KYH$Fy &QZEafKs, j! k]I?g.ɢD~R*zP?ׁ`a E)okj[¿Sݜ}G3`2*n:kXtt&Jp(~%sPqqaKT{NN*B ,1?r|L/W}besVvNǪJ/ z\P]?閈;'a4lGNu|otLϧ/:p$SW )LV~6Xib[ROdPҊgE]X w5!$6r,b rVšp%9</5.֓ SVopӑ).?E.̳CGȷu%NݴXeIHpw_j֕`2Q7oH6">k>QK&hQp>4G 9u3 &1ڞxvY`U:6sE L/ZHO'ZL|_9NȤL֒.Dan9Jk^.1[v.>>n5/03#|ϋѠ:@E tR(d<0N>t[꣛KqY#'nJiW.4+:̢\ >էt 룺,y(YA])y1b>Ú< $;\~P@2'+rFʳEϖWOSO_Hvg 1Qր?;ܭ`SLY=\R5O8h?_) 6o8TX{j wji:<87)ZYJ_$Z+ͱE%VL?VA>3Qm- j2hIo)zBBZ Zud析 ?!JSwm3o&,v}G귾7{Փsv)Opض##:Ts :!j$-Pz˦|hOTs5> ߟ_>]rKVY`,Bwe"{"9-Y{ Fݥ?~b[kgcժأ$nR !-8,G§H=lA;2v}k3O[bOe5"IaG/ۘ Z|J1)|I8pf79z-^2xI'AWkZAڜpjm% e5j,)v\hZIUH^[sܖX{gHL`w8>nyďI׉hr8x6$9xӌZm*-drR#'"tXn@gJK}i/?fnGO {vzUGnP۳a+a%NL?n-9I0rߝs;3lH̛{4z WЇq=t}waT˚OjLU?ԦlXd{|L;WD;+i,'DQn ͒ &lRzy  gF'IU6a4呙C[Xqb=hQ?qv.xr=ܪ(ɪ{zYOEVl(N?ρ#u}d*'26Dr_#)m{yawƅL .-sjc܂ ÇzOՌVN[ߎ»3X."ʷ@#k)UBK[6-5 QN1dOw$qm;8;:>_)quɶkBgy YWuì+P#Y$yEWnrrXo`LPpUlYeN Inƭ%ojͧtdvaBwI<X ,}Fu)JOb1=2>-SPUܬuVz xjZl+.f`f۪0Z#g0x4"'m٪L'j3Wc+o!f͙gY5' -7fZVI3f _+^+ގo*Gbֻn\q5Mc&l/% TIl]Xqb`Q?bDޭ,>}fr҅ n|iy胺c 4ZXÑȠԧwĀ\|lV\7 6$mV)4p^ђ;P A/gZzR0یILюXHJĩ1U:#ؑz!Osua똏/6)M3BN ^\Q?8ON>AU׌[\nb)k;dkNn)'fm~Vkù2tzyp Thd[J|tvuiڤ!n ^/'HXU];nE^5X/ӎ.X~^ʄ[Pbk[M,|LӿgJsu1tDJ*dlܐI3⤲L[&yi p57I {jj\Ͻ&+ c+8b^KV.DWӢ "s; ]JK767@YY ޚ:MaxU)=Ww~sMdc:J( =` !pu@wGey2iߩ̹=wq"o d]& qfp,KltzS.SħNf*ޝ^2*Y_7+T$փ/pto Ո[JQJC!(Kc5s 2IX^쏜tvi"(A+mPSMs Vk3 CY@Z/ME\2o FqmchjUVMd{6x7Y|] !TVm+4%x#LY< k0C7E0(k E :c5 ZQR7,~Cd1IԸA `-C`+$ٱ g#P3?GY 2HՆHK?|Gn-u]fJYi(dSjRoL lczkS.,`; ghTpJ7$IxKƀRCf ث+? $7.#|TÅ W^mX|]_EY؍ոp\(  SZ M2&DKlBTkGm'xJ35Pa667`HB(*ksV 37P{6ږA34+Wݟ}. "9C0m< aR9 ct?WŨ"g= oHV0ʀ `CPE1V!cݫcmFà2ש:یOp1%ڢ˔i6)n`4l<5yФ=x=ME uE:H~Lrrk&}Dc-sSIVU\9(LHHh8Ft/,&=JCd*@CjOCڝ29M$#-Gǁ{> q U-̀$n`~Ͳ ZUVTȳV56j4D_IoQJZ;:\hv+_ Щl/tCO^}> +"F"Nn#"(p{zcͭsnEL}6 I3maYPQ@vQvBTQۮUu#&Ev`>CEU-v[S8<X<6@! X'% d<;;G#uˊh}jY.Pzn Z3h*m5?qVXJDY>g ' d9rGL dRW˯ ϡVTueW=xFT@` 2 X"-6ѱNz/ bToS%G}`MQswxX~7>7Ɓ Gբ7?A`\+|= |͢V5̖<;N'_Mr%͂yC;*g7dB9^1*`²<.2i/Z Vph5PкH#N㇟dB1!'EңrQ/O6)6i0X1dDa-zHΚN+y-4'AI1֚Џmwdukjwcln@A5&U, Mr,>[ ̐KG@ ns؃eAq ޠ$-ԭ%,ِm~4$scYnYkJT 1,aXQ$TLM/ y9vqu{,+1|~!B4cr3 ܩB4(<<-@fE0bzƓcEH2N0)(TDZd4H}c쩟j|og+#Ug WGcpz˫O5VHUy3),z]PK!Th@*ٝq}rv{%{Ƒ$]c{5')QVRbfi*u92gp@"6@Jbڱ}{) uDIq|ywnכk7vjo.ΐ3]za)6`5p|>q`^o utp2IxT3`,~~pWԁE~mpb@~DoJRqxT)%EڗHm'i-bECL Dףx}Id RruRUXkd1oEԦQ@H.޳_Ú1u29liSEʡChQ ϶t\Z#S^?Trm MjVBjI^:  TFnxyXq/r\6E5%]K(;)VXb[DM} BPӬMujH}0VOMb38c(8\h;U)=Cc kCLJ8yZw0^GU%:bl!x}vw8X؜1'Wd8:ǭfM}Y*ޥcpEÒs4uNF GhѵV"c(QJ`o4iQ-1#O3sd;STA= 5Aiե!t8^İ pM?ѿtޕ<=㓴o xwp"fiXɛRE3 p-v~2k`n8 Eoٟ&fdE~/LVr<.ugb8ݼ)UlvKEnha%a::tzB%~cG{ձ?4) 6/F(ΜђI;g'ڔIk%{H3lF.|˧[p}|ώ21Y^g+U(ZN5gzEtCkaԓeEt`W%S3.~b>/L2.nO"K}_Ť?S&gKJYNm^2Zߩ;ѭ&c(U$A6 xHoB )'<ƦZ- < iiѺ<2v ]N+!g[Q|SSxՁQhZ^OFI##lt⇄FmA}Qyjva/zrlI)Ϸ|%k#MaӄuSm93]u+7I' |k ,0<Z#6= O vIݬU5:))aUp/"%*00zZ BDX9'Oy=*G1C*Ekc؝eo~ l2ߋZI˪~sLE`;|,c7K SS[$HӀ  Lb1I>ݺ zu&Q 3l8O~1@m3;7nU]65lzdqUI_w oVɦbrnLJ꒚Mʼn8 pՇpkEPS5Ò9G&l6J1A0V `]a`oW ^'qE_]K `Y*W~ N F;ef8(ĽgZYD%GS`}u89WzyQmkrbxKҵ0G񡲕ƙ ҽL{ q7<ڑ)l'Q L)~΍ &nVnƹJ"%53}&؆G~㑿{D(Bihl8ۻBߐ_ {m#Ϡ|kΞE*t`zE}!G&F2C,뛫Skᄥ}L*`em _ZeC1 UKG>s܇\@IխDZjC LSߙX(-EKSnRǯ/in"^ف ͆cpov 59uw?`Ii+ G: ZdFVOD 0LfnNT+b{̇FÎ*TH.3yI6m'ϪvM݃L5f3lDGks-.Q#?ɍ}Z6A=0~cD:6]Ɔ :R6||p.'"CG9 >ITl Á9NlDX^`|ߓvf٠ `jk뢵׉+);EJRpl ZDd :ha1X (X@뷣 ķSQrh O]87N&IBAnHS{*)w8vs!|D!IA! ͗/C%{ª瓻o-U-n˦5k<D1"*0 {?]Ћt2\?v04cD$'(خ?t ?kY =T謕4pLi^}9m_Z'% RRhۖui6V:M8reL7ET{ շͧ/W^_5"V1mUi`zeW~uW[\U>)H->/_> 5EpY):'HU4j[o#%ZSW>^R /W {Rs8&Ѿ}CR`?XȰ9RN:Rrz4 Yؕy3İirOVD?h`$[~@O0SLڇs%zW!˵Mnd^D:#ȨAغ.c ]͢Lm1dE4 z8p]mu03Ŷ,[L TzÌ5Je!80WhJDX FW-ܑˮze I,i[y u.D!|JsK=[Fk>j瞢n#'f1&@(pJwZך#RBF9:Ygel7OAV>)F i5 4Ȏ 0;6sKoE lR߆8 dC`ǣ4) A 0q(X܇^ϓdJgs6/t~x63X{ME,*ʹ I{WKjU"k1dϯP0^F+\ι׳2nFTz-h4:@Hw1񴄝tDB?jz֮W'7'`^3'կ$3 =$[<`If.Hp hB:zq&hb o[ Qήcc T7S\MmF9k\p%7c$" ̄3U2GPЖiβBP;|iYؙ 6+-O[4?P;;-Q&[Rg.s- e #W O n/ W5Rik71cjm+OOAkEwz5%yLV >5G\Y>zI/<-U[!ۭګΎ:ẅ%TNHAY!c8He1bflMʬj!΃!G,MЌ:gP%xтLȾ(YIB!T=xSMzHGs z*<+±ڻkHRvJ;Ŧ#S{ !Iirk\̂<ҐZCLG3$Q& K& 4K!N24nRhyiD6gMw>i} ӱӶ~nͲPipt!xlu\oMe`@vlsE&?8$VuM^=ɚKB2TO@3ᣋ RהEkuRw`Xw.sxVڑ陳Ǚ%F{5P(_O>󿵖n;1w2=2>=M/\sƝ] P,t2?S` ե'ːa GivU- gmO͔-E+EGOCeS(}UCyZ>oEQO1EjwsWaQn3bADӼ=?kcr{f[*4$pa݈I]p)~UƎi8݄O-qU+OI *%>O(.#l8~J#8I Rg Q͆6 <j"VsYQg2 Q;$hi=BoOU :`9I;bk6\z%1,sg{I[ȈϴXk .\'y"R[Vh{G#x~fa QzAĠD_ko'½KX(Wh/U6ya"dW"q#9&s/#]H?3`Uյy)}|8H1˖s/ +&]='ZwD:NR՝Uv[;s|u70,|ZdkmOX! %S4*oMDDŽf4tt)8`h)]'I&2Zps>^il} Z/li8m] 歑ҙm*n{UPZ[4As$ '\69&Qo](qJVXzEBaI:' jN^F,(C`@ ˑ=%iW"m7R43<xVEEwQ3RBIZq\t'xj ;.hUzYZQmXD0HM{$}0\ t2:4. 1K S(㑐U6΁=k{UvݓP/w)}LZRV')Nb:JU Ô)Nt.SXMEd홓6@mS@#Z"Ѡa*\qG3Ʒ42[eze`DaVS *F\RB-8l/9uEnnjA6;b>m: BvKzh)1?hܚEt?-Lt'XN/}Z $4( ))FGRY^PQzILd Ҿˑ@8~ݤ>'Ul>qadi *Lz܎.-a&qK _|VKb-}N D / 괾FJBMy/.$拃:ϸS xϔ8Ri2u H" M03NҪqkm盓XODՍ vk2vxۉ-c{H 6P9 5lI}pÓ87΅8| ܥ5p=4tǿ #|ڙc aw M|o _*b̔Ps]_*.paYfaZ1+DTDϦ%@9w@ʟ$ ʧ8VʉW(wk(KY:\!&IZ+^U)7`QM33&)ffViL0DCQ(1Wl sڔV3>3K̵a¿O;%sʲý89nnEzS$ѣHjP/xÿ, jL={U0 :hۆ4 Qn@o\8 *ꓸho=p >xN͸'Ƹ!!qV K8K9 ˋ7$=6N+ҝ@mLG#ADݒz#kmC5y{KvPp6 Pa!r_3&&sGc["!eҞ`4,XM1 ֟F 2qV۴Z#0ŬiWQbXba ]ο9vrpM?e^h ݥt% lo1/l?-|қJKF+)0-zNdV:zb1FAT?P? ny47>Ɛ3Nc܋#ڗF\e/~Y{Qp[M*c,ubycL6r bAˁ[]M}SIYBQsM-q+LK2+lU,33XⅫN1d` b,yjyg Su]{G;Rj ѭ !d[NQlsBaxLoA ׌QSK~GF ecnBPtzuX2Lf!S^Z7lNCx  ",%K-$vRP!+a3oJ M4#xx^dwc}Ī5UV~w:#`I/"5&ܯ >J$L8r;Y'蜌۴,p:ݗWn7Mz1; y8` 'YsUF$5zЈ&xDK4c]!(sfε1kx,zZԘ`W*I@q#!JW嫭eC91Q9-Q+5خOnZweCKT0-AƟٵs|^z\JG5]xpݘ!aG~-,LKwPi6>G6"=u׳ʙ>*xYG+cEmQr+W,!Zgg`h.xr}85AoiZހTEɺT2f9#kOk&l2i9f c)4mXЅ!vN(U1 O#XV &yQfV9ܣWtz+DJvܻ ģ7; E\;ש>sP>ԡҫ__aS$4-lPfh\+I{+Nx[)ڮj` &MY [=R2.] S0wSBPDUD'Gr uՉVVu7M-^6*7zm徒4NB 9d:4rSI0G߳f:3b%zE3t/#[K~'ʻkKБ{ I/Fl?>hd$xNՇ$ ZM3GN 5`ެF\>j{&r8򭱽xs{׏'7VxL8Q[]pL꺊MH2Q2aTֹ|CC!}U eM}Y VRMG脃q%XHƸD\b ^-~]D@>BVxSKej:(~3P4$bԠ=+%epNtBX +YgQ&^+@a!X=:֞ZWJYc|rȺ(s'ɿ{m22e Bqp;M.9?>4\EIQJ 5HvLxL 8%\Ɵ#t0m0֘w&:yR ʽC M ݯ^?dajC)p\i@B.⋭_:+皘2+kϴ-nA(gbmRHȲ%H 'U^XX9o>#+R_xe~ $R-*n֐ ڒ !lr~B32W mp6 fm@h ^Z6? \p &:`,jƴDTvi6ikO㘨p8o(2Ѡ]fs._Xt/r<ColP %trl>٤M2.15J^3h}3<`r MTc`v؜.^`3i٭R{5>!&b(_GZtT#ih'9C|@ 700 b v+G:҄ZT]N]^)ƕ(X Yn%ā&gͬc9;lQR҇{Kk':DF 9N孾 eWt|/fDy8:TW͖}0{4wMTm R!O^j f @)L-{lB N yfg&1;;_lC5-ug8 OMlt _$|HGH}hSs^b1I $=֤Dʿd"e5HreWHz#`niF#~bfesvhTg1NX$HDgHaJӱ2 S0L 9Iy2=W -YZ~"D`o{dUp)d#n>*>QτOd5g'j`07_0J~: Bm@!;cmxٛRr, uki0;?q$C2 !4M,S|TZr%bՅlޭu^MC܍QY֣0@3OUyƐ.wk_Ui0lF#.!q=>!nӤz>HTEP*R`FwM;}e T.k)JDOIZP:KQubv Ve<&zvt+PiW)@ ,ĔcĦƆ:rD=ՎI8aeU[ n"]T=mB<9VkjBa& 8F!v`k̙ƘݕZus}AXaF0Jm ~yXmK˰¬򓘱}w9 XkDws.׍e8| aJ=ζJteBok>);kW <1.o/pW00gO ߚF}, qO!A18}¸ߟВ?!IF Sc}}d )\"ż˖v56=k??N=^FFwOQ _̞s@l'ѬԠ4=\%Uݗ[٩m3h 0JK"o"y3F4:q'77#3#/{ͣbEy&LO3|'9jeox!|a3uNnD׀=xᅭҐx%q7~tLgȩys? 5A'5L:ߣv#I6Ui63O$4&VR 6K&H`+SN ʫ΅5MMU30h-JMr@Y$ۻKYSɦU#q!<)E :%zn:!c;\ i#빖f` RR0wkKLDasi'7 c M6?9bvo.(?&KLkmϘ: Ԝ}i N)@ɓ#3%D-esdjh4%dF N~!By+ oo&j2_4|Ê--H;h y+eUiXtMa.H|q+Hir B$}t&vO=ichӦ01xDz௕,$Ā]Y{,+J}( IQJoM}8J3XTTbmKU9N*qöGA7S*CKѭzp*CCC EכjYFM3Rɥ9Ӫi:-,,&ud'z8]ho I&0^e<S|m:k^EcAJp i5ۋ3.6$%RC-;0jK FUhz` wJlI9;k^ʎT_~ɬS[e A( -j2H87l`}-|3şXyô7(7OjdDRV-E3p(dz]hf/OɑNF*#aGHu!\.@0\UZ4NHn^nʔg؄Α7Ono[=1cfm}"a9|(lhSN9 K"Zȼ0X[ ǎ\9-E<^9[%c6?5rwR!46C^7'cc]t;fh&s{"n"{qw$FUoN ߏmgPi5l2}ɍImhHr?ILL>ЀÜ D,8: Ґ~@y4y]R0˯u`1y|ǻNc g8P]~I40)$p_a \h Ʈ"^ ɋ]ţH-ݜ^~$ﰘ(RCNҘ03]<>,h{-G/~z!c,%83VVїAӈᤸRKe ʙذBQ!~)cQEhL\ˆ I)tQeM I7yⲂU\!o jRB\~2F\/@7"PA5OzТ~cở:E3D?ǯREɯZ2ҪGU:0w@BjT 8Ќ }q߶7W_=ٗz?6yQ`˙('Bȿl!1ktGL9h5}s/ &G"k4 A))?Cs V3+ qvʧ",MD_[vl %bkA1j zHV QjDP}{G8~kv`o893mL=8eC є AכtŎLzV|D:16a#->M-T-+d6I.XYjNC ?߭#zA~sXΰf@  QYc):9qH2j҃-."idH.YmrP[ATLO>$s@ݰ2X0h{ 7^Ac8GpUQ.!'{,cymE7,R`;!ؠz |b()-3pA^;†[|^{;G/%L/LXUǪ`P8|s9>ŕ 5b/_vύ(2*I\.~3WIfPFR;#-[[Zs4b&LCQF8Oz׶LR=ַ1]\Ƨa*%rCrU;y-WklQWS.aí-g Gט; u q쀺܅U+}VCz2/t($RP`O-"ιhj*ZUtt4ydg ƛ-vJy%igQ7'fהmv&gkk6Oy?ӦP1ݗ.hЋ^>³0 Pr[aDy ko5q|I;*`Ǒ` b l =nŬ{`)s3!Mġ/WF[~!P[>8}9PHg{.o/{h?l5W\X:=\?t?z<9 5OL8Z*5ܙBL_ <~0+lik6eAU1BʋީSՍXR\J;xÏ'̸KFI_VO^$Vq[QCC۪tЂ-];w3Ǝ{md#Ij!>ϑ&(~h*}gьo@EѭY_?UWɇD "-t"uuo0A:oƦ ]2vv W+ҧ]Wc.K+2NY-\L,39'}] `hiXA(- Ӹj^F% ts\S\zXRM8 (Qj.s%NW(J􎝽ClZY =A!qU;LɇQrt\YVsYNU˔*Mv'q4H }l=9 ۭc<>;;x菼'mF,/>ih\P -0x{[Gjkp&?T%d{%"2nhnoy(U^w{4r2YQatIK+JBHh`K'hDNքAW՝MWgh}yj# >U/Y=G;3]Z뿕k9 YD¤vy y!J87&o$-&\lQx_ӯi]4h^I|-BZݨ6߱dDr~c <Ż۪814d(/C)>HN ؗ6uOcJ~{w{gT҄Rwݟ~lٺ;?p懟h`Y]t^\[i T/5gspp8dɓqO2'˿A a2r_56]m`i==/a`d7}og9n(SC%ԭ`g!ds5 WAl̿ * &sF~u7'VLurmZwH4s9̸us{~u=FC< ;YPW2c,4!kjX5-^.,m%iܑw^6o2[DqnP̌';T{!D aH*pcQ˦_=Tz`I+/{ăI\Q>RK z?ZfYeyU|pȘUbVYC_Ha}a%0'Ld}O(O7Wk] lp?^eh]!gY+$L}E_B^ݾMwp\D3ًl -Rs-_\] ?]8Y2>DJ[E4_#wDfs'd\k-ݟMJeHFψ: iɈkb{emtldy-EL }%Kw"l?.^JbgP2.j;=BV{6irׇH؀jLF_̮1:P_u'#_oѢIsڳPy>wK$n5t%9ժ{vFߢ;hQI[/smı"e(HpmW$I߫Ѷj:5L`1TC<`$5$눡t&#tNbTV;FMݸ [J'@zl|h{kpSU :IZ%I\m|keV3YDQ߿" Xq 0,Jdt;hLa"&&y~7d_jy703]EvߞZd9tkъ]=bx &1lWz U5~wpTJQYLVԹ;k7ۻasK g zFGw8TZuN ^Uac͏Vى fQiY$,|4xp?q`F䷻JDjcK`}˼Є: ϯO ~v V(>ѨMuA+ YlkT+{ 3ݯ|A cVĚ(I>Xqs%t=[ʀ 3dž"< eUoX!G+e'/9j EMpg3]|pS)[W 6:1sdnRp y q<` LI/"uQFpúV_(t~F `0dPE| v(3!/ 短}[|am3jdS_^0ް񱵺 Ada9q|wPvXŧ(*{ Rg/kK.cZ={g_vfyNEm|~ٿ52-)q=8 K+h [ ؁yb}PD."`eT?jߕWpmS™FM)Qo7笿0^0z1J&[ m|5GJج07/mZ ?9'n!(4.YhsXTxBßVeμӮ+hW]qj0+Nc٤ssqhZ#Ts`h|I;>#yAv^~ fs{oc Ndu8C>|3xʚ娑&lA"9fX3\:uwF@sK.fNARvNo qZ}w/A6}w,[{^ceBeȒX:w:8 LLINC/1N ~de42cUb]pXbIj-g8wMZ.n9aPS)h?N)kza7]?cfU!,jZ>"BG[ ̵Y1G_CeaǤ a/CsW; `obD=PTSTt<<O9^c1RV`&lHR*(CUWP& YWh{~me\%UYlaX&~SG@CczxO <.r9=SuAj8h\]9{yK ǝ7i8dJfhaVxJϸ-`ZgXlAZݨZ\U,7)p1v,,i\t ' \~*Cy^(Ij-&"f*u[:Y" ]X2@ nH"rySClaĈ3/8c5P<}FU 3UT (6,>?{[k4%%0YML.N_[Wn/?W?z|-h޲T]fSGj)1ٜ7ᯩ"d`戤2 3h^S^gq/D渞4εc=7k* 3A BGm5XV+sn jFBx'i[2}ѽq8"]٘>ơݝ0p>^vXXrWA;.eF}|#|FE =##q}U>t{V;jBtY8-jMhUlK Гu⛋F߳a}#b`ڝ@gAk;3uW\]ݹsZʒ;4Lņ +*8̘+r/b/e}i[nWi9a%$0{xs+Di!R(UFi#0PdA+"c~O맱[SQ0-<m/N|~V~MGequ< De\H̟c@io\LQ\za,mOT]"' ́1a_PMIcxAЅgK} x dd< ~!QYʏ̡;|6dӦ ՗0k61MS$`%WWTt;ACa4By$ uq}W^ԟEcmڈE@R65CÜ8l#0"kXgwk{gAcaxj"-唬ce珎v1(bK"9'ֈH2+2u :xEbO8L;Ă]sw%ܶ 73)_IڙX~2H_`Рݺֻȁ6'BɒsY.{%Cg6rJhBSj%qu^l;{/=asIn#z=F;c ά0tZw7uft;n{]`HT$=5jrӠyc^f87N&&jAcK{  W4;zaw,[j}f #)Q/Vp/}5;զ[T6s1J0r̥vۦiلAZ0˄7 *v˄4+AJwʧn4~Wn;Z3^8pf xӬٞ).F)hQmO(Ehp$H>j]uX7,IJ[g;tyY b, K\~]v uqLajx XW$lTėƶR=}dgOsuBc`_0|O#j-3\خ'_k肂g?m~QF2:0}&I^uAD?IH|8}Gd} 1aO%U?##gܛM1fSOП S0,uKr8-םBNtAs"sŇ&B U>Ң,ldJ|P0ZBV] F1#QQ1H#da'OZ\RJ5 Smmr^Rr9}N-B.(@5e"mdq[r/aZ~1oK[ip&]]$ʄkIY\{p^\T\tA;K(Ĥ&U€Ma]>u><CxE}ZE\<2I-*1q1O~]c{2(SZB;ki|Hj&Z:u  ߅^zEVp۹\,SzȮprpWC1IISjHgjYy_GS䅪VNJEܡe89"IujPrfP$O<^dKH=S ._'w*trR(]T:Suj%VN 7]}wv<:IX-e0bLnjjTM")ɞjkp~qp{z,L=[u 'T֭%fk$HꮬviY r`mr`'v^1u4 l7ꇭYlŽ4wZHSvgm}7/)dvC dsFKσ?4uQ[4"]@c2$n#WUelзW},LQV:),YAPЧ*0avL!,xCl`;k w+6<D$f5#[{Fo'\k\\P̬ww;<~6%/4>ҬVGͣ9{܎ĸUa/K7%.LNha8WC/qީ<A 0z,ut%s?oTXKa!seE [/F7D=8YJxV:x vR˪?<9ۗv1N#L3;q. #k8bߪ^yo] W&|.?CcNV%7n]5C_ߕQAjg$ҩwޣn&_-`ggKJe0`-js5'Bqǁl1o$'/`r|aj# VnsflM5S_>qN Y:%q5Vs{kkfJS̢#v&w`$/bNc4w89]6$gi1z8Cw:y@-|;ڬ(E6#2@8P q#g=f|Y'̞lf`AͤԮl1\[uHX2vLء 2HZ'P`&/Q$HѠ1,tBסiOmfό+BdQlت ej9\]0ϊo` 8/kW7?HҾۙSLLcqg7ݑN ]0ƙ&۩;[[sO5j~]J<{G}cj¹;K`Yids6Dmw WwwCy9v0_nYӛYm8:1t#ÐXG#貝'zN꿽VQP\YR^zhn\X?4o5C [wN;3y&CY;S9V)@7v>88\dh)ܑ (  @ͦN*Z4ǞWw4c8VJ|9ȋr#P}#PC)c14/wYNN]R Tw{8i 4gt(A>|o}YSzr02\ahDD6v9y k)FHGdqnZ̸j4Ⱥy; `fU۷}qu)NXS{ѝ%.LlӸC2m"SttB "=fG*ZmpN~܅Q>ja'FGs};h~T"d~h;%hHt]D!yxKNqʔrm u2keoMDR* 'zS`L5_iح+>rEN"[Qei<3S󵦌2a/Z̽QЧB=&\|2GdkWnByY9`K sRfۇ;mybyvSQ<{y$!}eW،|2Ǻ,q^Ud䜡Zd֛ir z7PG Lؘ#6 zvv-k-ɘN UDt)V zsDn#F洸}tGqn 79&W 7dqP ?Ni6`.'Aุ- MVk618=hz$fA|#Td>y!.1.GF lL_\`$l%"WӉ$ a\8~:̄!L6Ҏg_llSrOٗMe;@,g UnDAro[Z)"\RF,%]Z&qT7up3t^Hӳ?(+ U\EX2uT0F@'յ3)g^\>;Q]:i)~TAUENP4it z"Ϫ~^'W7/!- uWt{ Mwy[S|W^6zɞfFú:Jõ_ُyqŽ흙gE;R sef}&gK8yCPs [#~YЗz:"w9LB')Bzzq) KlAi^M[7chrjzñ?;ixxX$}c}3c_X 9qaњ|rˉ,r U*s +t4  Q6ԝY[~4I#%ETcc^ziT}|I Ji)QUCL:PX1rɵTVVZ- Uں!sV^]~:k dh`@#4ۦmzm<ݧ{Aw+ީcN-0t_] aÝ/DŽxd~5[>̀tNvJ׊^xd ppad@$;<d͝Zylt oc67"5g I}p"oqU5͊GQD8G28OSj0*ߗ' cGruݺPXކ|2igϮἈ]l:l'Ԁ'FZH~H^d{+M 0?,- r%'sn+ 8U[w~mb3sTΣAe;1aON,ogw7,nc 67yxiÕoYOZ+~[f|gw$P遠bFa-T69Y.Y%1@9<=:rgqh a§ F{ɤO(K#@$x)#D$Ґ : 'WNu>]Xw^Ӎui_l^ H}`=g”e ˡz_n~4|cH+"2 Gh[P ;A:r|^#sMÄs]"TviM440 x+ h,-ՙeT͌iIi1vdqHiL|b,SwԜB7s\ +"bCop>MQqVҖyyT'$33>,o=5iP`=0wjNlP!N~&-r~>74m̶'s+is7YE53,s5(,^54X흽7{a!xL-!'!'KXpΧAq;=h '[fH=#Y2py3_O Q} d{;A&Wa8wps$՝538,jy0 K̑j0gGK_2k)[M7 J .0[sHe׍2.cíEoFNyPe+*Iz!Є,Iҋ9*tr;IQB0U?U;) pNtRؖrC2i ޡ>@/ 0ߋ knVP.KCZAn̎fZlUH/?&Δ 0hLt#{))׺ _uPި,Hk(AI| .FUjw㞘1PbC K3 f™3##w^;Mh+аWv8ϓ;οl_NS %W8,&tFhv ;@o\첢G2@aQUC2Kt8KeVIrܚC% 5/uG 9a`ܩ1˃)(FJZv`FfϿ8W2H/Qs&pFϳt7;|l _i4@f`ppu@Wy4T58=6*w_AmDxjO=Ϋׯ~n:ћU7=M{5Qv2YiZ{{1Ajh8ӧ2w[LlQϬ>U=⦄rnXfMr&k76ھEdrNɮy)yOb/:j'vfR˗ɗvah~g wƹ@h)k25p&̱IC^ GoSyN}kRhi_ ɑ/d\ >tz@?{{e$O%9YR` F.L nKpnKlZ#^G┡/WD~}s3ڡ euo;ϱxf? мQ٩tȐkČ+<6ߙH~wŋW*&ו< q@i}ϬҬw\zb I: GkX~Ś]o8ǥ3|ܷiNE\F*?'hXcc[1L^@d\H!mb=G- ".!Zu3 sQfK//O0}zNu+vKoHRzuV&!ؗi3%&cgS:Ⱦ)(bb$kP+qRM[VT)B+XVdM*]pG6+|$~t5tGHW񈌚N t̾>>jٞ][#ޥ=9Rx?ۦ6Sك;I˗r]W~Bϗ>E/֩ue>VLҬSvI='F^T$HS&h,3 -OtFW|O/?ÂBTj ޖ=.v"ƕ탟`^VtdiwFU!+/jTN=}-BHҰph =-]yLQ?;}|ytqwbR/,k"X>g3I4gysjk#c#u&$[բ_vm"d\ .#0EcNHӿ77l Y'77̅`tgŪ$!It˷-eRU>D4ձO׏n,`4 W3D0anQo rʱ&];l}"5f2lt_ЛO vM&Qs/[:͚(n|(cqN3sLcDlU5P ȓ8@OQ Q˙~ֲf%keU.)  gNڒi*9*̄֒wѪLPC q.z={C-Q=:[w}{8?p%ӏ@/!3ԗ7h|C!| 2l7oe `k?ZLKʎB~m>2.sJfBa|~X8l֨آEx.v|2!(?Wvx_N0 [Ć~gE_i:Z( ˊGYYxxYϪ5 2J]a[ Ycԫ58l.S'j 5kbhrޛz6&OjحC@K?zpJHxD ZY<c>0ĴodZY &-]ڛS9Ȼ^z''9@-n^A.Q^1Mcu|SMՐDCrPv΄LB|Y5;il]/?`WEIxicc] "%6"c2w6b@y8B,ƊTer:!}z"tОi|:~z!˕9M=l %i%-s̺@wux̍DP>O⩐s .=e_yڮpzE$ddO./>3uTrBs^ѿlۋ~G%Y_$W%΋ ,v#Z{ZkA6u&:4G)\qtda-.JAM%0Po0ij#QS*4a#ܵ ۊns|bVg8+NFCLQy(vvcY:4nб&C/Huᶰh7&@$n.4C 6}V<:đ5\4AUq%UT3] e/}[Ɇ餟dz˛6U\VnovҞ=@izC?Zί0αMׄG$q]y؁) <1 =+OtiFn"TIp0]k6t܏pj gtlGg@HEQ6aULQns6Z&Hb7Mt"9"l8MtaZiΣRIr$]ߌh}W.(#X6ctl4aG͎ԙܑ d5U-N>J{q.wFt56]$k-(^%V9la̭X)f%<,W o&G y=;pqūo^ 8ϫ?jNj+9o< Gݎ|32;,(ɴȦ Xuc qrf+5NIj:1XM9?LYLRmݮZLƠ\M"UjE=v!)#S"~,X}]'~dI4uzQʏo7P eFV*!y8|>>UPV}o.*}M}zgO=m?aH\{޼FƠ[i/ڮxW1.Y2m—JzaU w~į^k{F/mBEDZϲM`Z*ycq\9*MY{sI5G4Q lD~K.%g]2_qB5Zdi@D1u ~N8S0ظ)`@3ybM s}9:HmS?ͩ^xˋ~]2^,JWV/ $|:\D6$E]V HOs1_!d_v\z gջґUCt/·}_Q uVF&M`N.`0//}T䍤Sʨ%eezEZH^-\n&<+pAV̵>#yUM,~k-k⧶(K5%ylBW;wYiq*:䘈]d͆#&W oyH?髝IO*;U;M\)aq N\s!kj)itSxw@%Z}zIOo</N'S\l}H\(!],= ~V8?sj7RԢ(insrBVUl+bJ4EQl݇qbr<5 JLzl܍V]s/`E>_z~ev8O$\6U%יmZiD&ytpPKc{2[]LisXT[8܇_@W"lӞ\90>yuՔ}i!ˣwp4o^gW°j}wtzI.İBvK0&׌nKYR/q8<ւ0${B62AVzs+5?!RH]%_w-5@LڼB0Zuzw D 5ecZ< ys647:< ?^l֪M| D@QRO3xyp ͯ=Ŷv[׶ˤ _YLn'l>Yh((.>^^\:X%%Ҍ ,,C~`BRq9 &6xp#UӨLF0<&K:=[5%yi[ne;"044/$ Dz7 |Q7+BěysJ'-B'\3>c&x; Ř5MJ_Ŭ"bDܧ3\ŝ4 rQg #c+o1`PLlܘot+7j)6ՅMKF.2?/7Thp~dH4. +];:}B#ZXT\C/z?CѽkN7ѬhWJg3}3! ?Cݷbm`_j \ Z踷 %6itGiTJs[K @n'ۣ>/Q ]?>]-LDHnFl#tdž2N0+ڲeˋ@L`s$J'9Ij5X.B~Na7U3R'o桩'dB iuŻ3DGdz/;OV_=υ=~-]J#n*a"G@b27Rl qXBd4T-'= qlLl<e6p$JI0!StR=\Wi2Z<|Oө|5 Sk!dYmh?C23<#ODwӺywtjOXUٞylhו?ᄈH*xJYtt,W|o8(맓ߓ8 KkZ1!=Nq-Ca9"PPyH#K=6ckAd<a+vW, @"IA*J'r $|Ļ,N. y4u9 gut_Ǽ$E\.2Ҙѕ—7` ӳ1?E FZ\^l3 Aw爠!%u|M{o)kP@-_!f$k@^j 97R@KUd[1Kqz\"tv鋼,nC/_ܬ ]\T|Rƹ9zD1wɊR;5uvb+ršK NBMVDOL4F!f/vPʀdT\ʹ^)+DA;B&op/f+Ǐ)w1p &h\M}cdQ.]2`1DwDӑZT+Տ݈G놐nKiUTc=> o25QiRY.\"AߡBׯ~?敬優.e^>%Uk2S(+L(E8G%jD-K7| .'.}'aH[5Q-1']1%b"ӞސO;ƵH۶S\l!3 2\yhKLEaor#.J!zLhtύ 7%MF.=- j^SUL̦=`Gq|zrqtvx>Czf> ̷"&-RL[h0*bK|z?h}8UTGM:OhdyB1Y)uoKQe4%pqTIBǵΠbE+Sz?iL1p+6q&maffRԵL(C(ޟϠ`k0>7ԛ/[ǚX-d}-Y(+ƞM$<=O5JC^r74:&)sqE4'e@SW3-PWio҂q0,3] ]ݥ_{D_pߟcp&Ki d%Y@OazVE0OG$I=𲝑b| 5|;֏~( -?)s~pd)=Ejt|EI 4p v9S4Lž KT7{3J;7uTȘ*!F,$ݽ`蕌an!rOjQx]nsښu@&be$[ZpO0RI+k53OЊUX&|ң ;@*q ۱}qԢox>EԊx8܋q'X~ǘKQ n[ vV1O$4ʶ1V\ ºlTzc|Û_/* ^`K5c4#>;= [q5^LoO"F;>I"]0Vwnʨ>EpC۵)tEG(f̐CKꡋܖ% ZYq)gg+-d'Z,2](.pibM܎B'? 4hw;L([_ncGO˚ٱM v/-'DJ?4931u`Kq`5C-uO\LQ,NLrF:pU&-DEȘe]XX+DlYxl׭ܹ]i´` 7~\n*2;sưt6Clg K E[f "Lͷ[5H i܋,yHx6aA`,;USʌ6{9qA)V. 6C\gf+Ƭ,27iN3fiúe%CO+1s<>܌1;CYcZγ6Lö\Dj;ۃ ?n2 I{~5[~Ȥ#&թ)^a,TeƶMT;i߫ޥ rh>@կ4}q+Yz)6J֮6=`7Tv#nF1z1 h3R9Muiʢ%rYΗ8Bw~Ɋu ( N0uCp kWI"IܤIj`G`Lƅsy`41<) o05#KZ )lZ׵2DI PѲ|ކ̠2+2͘iݍSzӜ;]1H` T4ȧ@,}Q@a3p`aQ7ovA%`JrH-#4YU(1ٓ0.TA-O#֥06J'[9 GwmD,RH_,&u?= u.tR E˨fpc6hclZh[D]+CWTcn!QEh: ؝ %+^*L]]3+a7xܴ:]r'-\tBtI4){b/`4ld>l%mW$0=N~}p+ ^&`QqȪݼgva-i$N2(UiMGhmD=j>̓ASf(J qODG&ܕ>ܖoϧK4$t+^k@ˣ hۊaOLS.He< |$whz ]5|'1ԃ-F\E5'X̴ybq 2<[,ԢKTgk?5K\4z=%\?@@8B P5ۦwt~avY FS$=T!d#wj#WlxzC#1M;ֺ WQp1Us3{rha-?.֓-cV98:ɴn߹k_Yŋl]ΰ}iU>biphpw_{v`w2Q ;FczeorOԒ6 4ٿIABͪOǂAܴŦچW g}O ڻ̱bu/I"D_Fўkg9sdcr8@ҳPX[lV uףWH薝Kxju[ %L8x~t>7yÈ:y1=l QM˔q:ݡd4^ۢ|ӈM0c1pZS O8%+LGmӗYP$3:y >ú<| $;~P@r'@~H9NwsƲʆ'ϣB3P~p̪g*wkؔ!eg$eqCi:ϻ/G#6jQB]lBafh5*Pa/!-qB`Z`W_JfUJF*3>rsq?lTXb+[`>O[Iw9pxQ9# !-Tצl2vsOȆ<J4㻽mk oƜ,NveIK7^W\9ٷ-#.rLy 퀱_̜j)Q#`lWUI0k?.Z[`̅8gqR;!+Sqػ|Om[.Z̟j2EŽ_VL$^Emʥ3_2XMT/ŻOVMtz Ne9jJhA갤xBHHUn٠ó,-u1NrJJ`wl>O!7pp)Q{8VLtRQȉKlhaJ;/Wԗ/Ϸ/|ˮK23wl+algZi˪/K#!ag GLܝ{ܱep%#Hz7؍E`4 ] i1I]C2ՙe_:&gʴ5HCūE*IzRKM,ˮzBoI󎓢*[OÙGΡmv8`?vW[&i!yF^5C6n1XMI9±n$Yf҆(sӎ[F7K3.de6wI_L!kpe*2vѪՏ}-vuv>Fv2z4!s΁I{ tBDY\PINIu7;F8 vgݦR<ϐa7aSwgAHֈ*^ %TI=u5l3i, Iv4h,>Jf2ӒOuQS@1)jƇ;.ڃ11./j $uֻ?ū~~#xS.ܺEׄ,ҵ{D:^GZ[>onۍ\.);L95hp[I!)>WͼIm'>Nե-C 6O/i|gtYxqF,faOg&U]ڥfA+kੑ8Ҏ+\=n^[Vψ{F+ b]N[[7?h=it6v4F ]y k:"}0kNA$km<[[pŶL~9J\'m\zHrYwjM.J0@]f<ME㛶z98a҅ nظc I  m an"*i!/Zx]g\]Kr.:*[~ -= Xr ݁HL YzEi*P ۦ"5EogBj[mF T`G,GCW}ݱ|Y4ZeaӃjObٸ~3bK^ Zewj1-%3NS 'F]zY_Ogr2g"Jޕ~(؏nͺ6eO;1'CxHjx;w|RW sN^l}\P=2nPlݹ){/Ge,/~'1beMLs=*RJY7&fʃ FqQem&Xu14 fu`^qMCwΑ5wQS\s1eS-꒘BWӦ "w; CJ =RX,HIճAϧF45j?:a2yj^ywU@i8.y.].c%=ҙ!y%ƙ[=: ~PL>e2m#5maneMs"uٟ`ߪC.븉͔6_^۰ zҭ'TDz4U#a)a2FF)J͢Mi)W=X#HLzddw5A &\AMZv]qT+&?k'+ĦЃH@1m/z`4ֹ=]pm8+S٤3{;d`*Zq<uBjlFi ]f'x1iCץKt NmOjM 12^Є-jJ86Eu!;ߢhaH]n8k!m [ȎM8KV<2#彜䐮--+?W>#ݍ5@ԭ{M:.{ـRZ<-e\NHkwZIZ Zֱ U#*<(l0޲Jɕgk-Sa,f_[( %bY )YW@oIc~)Tm/IHŒ.ɧv =3 p_,ʧ.$k}.:A-v\Zg6R<'m9{[ރ)JwI&Ip%At ثꯅLKF 1 \{m}Go#eI0vbq p/bZjM1ּDKlBTO[Z&_/^Xf,(Wgc*LgBMkυ9?:ڪKL9o>~u؝I7I!6XNiy!Wl<4 7//i3ЦRcW#&AkPt m'˜pmaJ4j7Vp4xyФ]gx]/'EuE6R|ݙ{"m&ndcF̚\J+ݴ/`K+Qq],<;=JxCt*O{Xۙ<#vCS?LWSs X$DJbAd\a tr1PԐOV\NɈ vgfr na*BsimFA3~bYm"9>iG,u;`Q;fQ1Y[v+_ЕjZU!pǏn >)Q|@>Y ^}[zskɒ)$!qFfJb52p_@k7$Cv2J#]2Z6KS8<9XcBZDhDiXrbn]pf1F05\i %BEfm HTNuRcjf朁\͓˙;<fZ(^~xʉ49{: ul0{K+qΥ@C/ 7z LDދrU|۷qRLl)j~Fg.o{$d{'ޘd)`h ΋ u-\g0z0[ry8}xw=?j=7 =/݌i 7|A Ǟ (݋V(Z@`;뿃h\MK,Y+\JWKFx ώmKl`E0dDa-HN'ٸI3h՝vMd;=Џmko$[c7PmkU- MjQY1`d_{~N/)2U)HԿ祎>%[%r$"#ĠTdp?ӎ^8o?j0| !ܴ[Ahx; ;0Xؠjuf_pI(Nuodzl?B\n:i[vY%Om#W j6F91{cXmTղmJ9.86ƬlWz9Ilե=t6{׀U7EƙqX 3WH`Da-x`@'G:p"vٵN0pѠaO"^a~@)I1&'ݔV;4@gS-JrP_YHyv&Wsfpw4 {_NNNώ~VdY.\ҩ.HP4Vΰ;IN}F.r>4!iqgș N;8Yckv^H'ΗG>:ؙפ<0+wJqq[RJGi:ԣxL{ mw~AwjR xti%o/ }Qf _S(F ^2%ݎ {J-rJpb-m?ļzS n޳͘>WxUܴ5>"!dOg[CAɭcuI~y6hޞf%P*.$<BqDad)皇'E^ަldk f;\* ]l}'IBCj o nT: 13Åӥޮ*O12@ߓo?v~VYLk5Cv0'Cb( 愰8rDcsb1w!e_ g;Q4?jm!Q3: јyT .z+ c|kG.E% z.傓E\߻໱1EiIߡ{ږٺˌ"+? B JP4^խuDc0Z)(Ѕ'aVK2׵gѦk-V1S6opQ(wOz;JUoFhΜRIۯwN<)k%H63|W/1a-udQ~sL8k!J1ZlZMJ# lkaUeipJf~>>6O)Tt穚4GǨA>|蝝zN.-gVhy"K`dg~H)h7u NYk9=yĹ &ԾEK XZî Ij<$gNy4!/m[wGv=E}E8_rjc޷?uXd ߈  |Y%ҹOƯ$X, U꯿ˈ^{0\*MnƆSI MKOi tax16KA EXݮ<Œޱzũy\RW·8>A{jZfiԲ=3g}cf!\5&jal%="\4  nwsq{vxؽsI';cyGkt\d ~?=joɬqYi_Cp͕^^cv|k;Jgh1>W{_ZI!=v@4;:2->ïyK_7!\i4vMҩpLW&E,rK]5\[ &O&Tx M5{?"`{( 55oguSsj, Voi$UhGb 䯙od2|Gg3"KKyy]ڈK&ބ^^mC <}iؙE@I5ǹjC LؙxhW䉕77&l2Gtt 7HgDu f1L|A ʄZg,?G*W.=wat N/GNjuj](n>IPc斪Q5B!wP|:rHӎ9*R˴R*{vpUgjufAu* mذ]˥?mmKrK oej'GN_Ӭ]?DD2o^f[C}`xqN7-dM-M3G>_~d?QdGEOh5*=rq,k4\t{p4mJY ]R,YEv 6fhr &~1IToqLGZu:9Z1A2-.Y٣p~t~8ܵPr"Y)82Т if_1dF 221⪹d̼C -Xtc%A0ŒNQ;f)hG. /SQR \s##};ŗcspϮ!K Eh5jسt c;԰*YN7TiaiN`9)8fҚPF{:aT X;2"=Rd\^VcSplkB]+l43, =Uw[%.{羶t/j؟n=K"<YRAo^!N2̓VOÊ pn"i,T_j ^`"Ns&UݤDeK,"Ĭ^SnFKOzr>/)GQ-0I<^HXSi/=jޝlw8xn8"Blu:WMD<5pdI(QǪtԑMY}R{ r@ ~: 6|ϧ^HF3'ִ6٨ y3ZD6wi] ow$@S7ZW1A4 j׻g~B7 hj`9tc ,VAOl!1=n{>];ɧ_o`w 06g+ۖX\;3p3 <:̋J1Y|h F7EE1EiTu!L3p-Pﭳ=Dv;ñ13^}om! Z*1|z{Ñw8ۊjv8se|K'UԸBysq9";2z}Չx^/;4)xVՏO! Zq6Ed\ G:~8?DSjnprf;;f1&@*pIoHZ#RBF;:Y׋e07~Ѿ(F xգZswMA_ eb@9IoE3Wv6S[;}_ƾj+=$ȡM4߼08J{,W.*[Ҟ+t߾SN, BϺcw QLj,*Ar O)) v ݩ1] l?AȹzvͨkPt=)#tq(!Ŵi<?.H$Wmz%pbpsn1s;1:Y}"xֻ2+2`hiHp hBz3֋5A148<l`l2qWސT7P=&6!D<Ǖ Wr3ZB^,@Z*P[m˘:.u/ AOi1o-|lCbY3zyغ}<:I2U\ 'hzmSȤ?]:\W FGS`hgUF\hS(^u!|thh`. 4^_?qmt;2#s8e1Nc; ǡwqÍ&/1DHb4sϙyx4+QŜ."Y"0W `i쟝:R =qv[yf8eBR&N2@7&8IkH $\M6C u.NO9ȯ%O8rNc2J-8I~6 dUG6FxD%B0֣Gysp͵+߳ÔvbLNwW^Yij)B( ֵm7SqRѼnBNԚΏ"*]5uYdC6ڥhO"ڄ | ) Zb䄘<r4s,rAߣj!x_pEԶZD59binq(1 %rZ{;ȋ?|dp58O?*Z% A%z 022ʹ )[LxS꘭Uo{nzɯ$å?j\Ȑz̶.ɗ/[8_Nn=T;"/S;;3c:Z6ervuBcxo,y&7^z!L|AD_;Lhf\Æm  -63( 8,Í"u"vVk/~>ݥ`5MP:SCEm_E/+PBhZ@ꛟ#5Ჩ1َ'_]HEG$%ڙcHfbH~Y kNFX(o@ڮ#P"m 70< 8Ӌ)9f8.+IUд ynh,ڪaX3g4̟o#-〞a}FnRT!ʁ%x!d_ B]{TqW⫴LZV^)NbuG3iA fl,JήRqLbw1Ed홓HK S׺@(-h4u& |Gkύoci 2e^ 9pYGVA .XZrzt!0oA xvxW&4f D6qKUzhiqO̅š~Z< g>]I "W@4I.c ,7~9WT"geeKW.ί_?oc Ŀ~78ް2mOHG 02vKOXS9>rWok%lO^ t'/f"tH.Kh6'{i,Fyut_$@gB5~gQlc^Z`v>IٸdLU,z K&ii8#.)VU6xۉ6ұԽ %O/P9 5l).)IBp&`YwsBnv<Ƨ2]^~ QbR%QzEvS ,=qqd:+lYa&`X9`^wW"CXi9wLs>*^z3%F0_+NKF:tON/хH3__dbڧAUi v2U3! aWlB'V`Lќӆz4 Qn@Hl\+<"[t_>cbcMcfc|zSrsNmƸ+ !uց [x[~q5?v<^vX17ޘ YF%-:ӆPŁc,KiY8@Oj[,@  ";|-oioB?jXtlvK=:MM/)E!3}[Vk6&05MJ4JKL<ɞwxt<|terŧ? ɣ[gtnݱ=axAiie$JKF̔dE f2-+/tHQ,q4NgҾ<|=gÃEA1MVsxa%;;?~n3R08+kϏ&3tISga nɷ֭/Z ".}M`%VYv6p꟬c.=Ӽoѝ%k"O/s}o7ypWb̃)vgdZ:0svt[ ّ𥦒t5V׽t<0(.i8iy3TXP#w~?:_YK[Z.t 8N"Ps]1;it3=8zlwC{+N$cncIs,"?)j 'Z ScEh).-l$HީdB*!P&8z_.:=%IQ1 32ѯh7܀g[B~0M$NK#ɪ&UȆ2jw -/[5x@01,M匇1f&dhTXjMvAx\qL,dl],')Zdřlq*v im*"Omx7v`ʻl(1uU̝"掂Z!-Y EAo>fD[@Q5ZsyOH Un++&&jB^@V;҃|o4hm[9죌SЕ6q`Ji$#YV+™@O$vE3$N]K~'ʹ^\z'[#;3 Ii,Gn?_}5U,h+|a|/~{yD<{O]pί5,.F]E%]o*7?=ҙ͙i\4 ZeOC R̲6 SP%bG3֏D d24֜w!6yR) Cx K_`u$Y8`k 0',Is|}ʿs-Rǝ9ۧ+2$s+\QrXU'j,[Ώ' z2X%@ p@1!HB].WB(բVdЖT"4L>V*%~e|aH7p!t&681;YՔDw7iQS8&t>m q]zN23SP8tdb*~bGAmjL:]L~n8և7 &gEwEI.K,^Yyg(F磳Ko4;c)赎|tش!DEY b痷%l8?Vžf}{Э˜ c&#":7{^DFd +5BζllZ4.$춯Zi։/K? 4˲veSne$?p3dZ=V gHd 0>t$F:~xe)֑bκ5 dQy Mpd`kr̗^2߼v #V;$ t7'dڊR[Ts]mҨq=m:XRޮ Y&tQy$,) B{={*]'QR{,,:Xu8p'<*‘Ua74q2"G;ZOW%…iDI$b`jii}5À 1`%jG4zNghXYn%M.ͬsudWF;'_%Η4cn`@8_(*LނJ/WzSFKmU# xJr}E \ZvҍNy߿0Mtz.'x[]]ȇڧ(2VxFaa D36=64 M1ԡeU[ .n"Ct=2Pn\_+~A}_^bOxMᢡcmLvǜiXY5F`^11,KZ˜+ aVa[e)cȆf\=>p;7侱 G,ge7Kx=Tuǎy J/'y"e}R͙yܔM:QJc*ȗ_Q6ڢOAcX%e_SЇGpݭeKֳ Z ηcdc5nWW M&>8 |py@f׏{ PJkOGχ#:`\$nEFW>;8ଠZsAΎ2TY06|{s$vq4SICnM)1i-<}5mp9|w)b+\}| i?/j{(biGCxW_54ODFA+g;6T3vݑl9Wn|h0;4h Cgy r/ #aeϑ@_u+[+"̲ 3=m0K-Sl̫>Q:V䷴Ek~~V7Q`iba/L#eKQ[sc{ͮ|;Oo7Lmb  }MbNbYCimM.p$>5J m+h]3L2|%Ɯ,[<)Sr R;75333 |jGu&WLOd3%L+m O/? ƚF \:u\PS$֮|&!s~0sU*?_'Q4Y6t.lc׷IR]\`f]ar *oB;[E r"WTNw.E PWx#0hCZJŦP)9 ,T`xR*aXBLZ"ARg!rg7N1kkF?'C;갦I.bj~D}'p4y7w $)?:aߍĻ ~L6njiW/k{im:Vdͤ:к L )DZ*LMMf_(Pn:|/O5i“85͸~3`Gɢp Ҏ!BJԀfi߱4,I֨%]Sg/͎(ܭmo.EpRhw)ڍ;5m: sw, VF>bL kom1OjE$\{iĩ)̲.b$)6 mne; =r H\(MAQգ/WW-4%FϣӋnYO1+[s˕cKzԪV.JpccP<0U(5Y}pVoF㣟aicWU&DYV-#aWiغO.P&5 WR-M{Ԉ(nf'xmeɳ`5lBț'g?{dHGKfmrsm5D?/a9|5P2M3p.rň}60UH LP΍Ră>8{NKsh)pJa`8Chl$A_?^#9\ԒesH] "nE |0O(NaѼ:1|o7JوsKmDj[lC1WMfzI~?OфTTb鼈ri;"oh2&6`۽tWa FreX\x:>tr ɉ K/i2# n  ̟u!AZċ2!yq(Bjحy˯ou;,&rD&}@ԧhtqF?OWy g(!QųGYc,h>Pˬ/M#敊^([mٹ 5Ѽ=>-Bc *b)4b8%Q2*;,ÜȐOiA>(JՈp{Ȥ?)FBSu 8OТ|?dtד7?Tqueh~xǯRբWbuBnV"ݥIl{_ahE:9^xZjogs{I^fﶛxVOEiN gȰ۳/ yH&. Ҩ Uij_ά}=Ge;a[^6].7ɘ 'ql +t r*,% j5`^++`cF[T4yD~?/ؽP7øHzsK4υthq&#Q"_R;ohmmLwSpGOh;? c؋|1GId@@x%[n *H@:K+/T+w|H/jNޒr/Qff5̽LD]5s]˵:X)ms>Ht.EvFjVm=:Lr>}wqޞ݅o^3PQLʣra wyuOW_W 1+GQNvYh#:\ųna gd|dapҵZ؍Qg4A1]RUs3l[@`K$yzÇ2@m~n,}?1RC|"2hvԯjI ERv}R+fHݭI=$*punƝӣb⿆LzUD:_̖Lff^!) 4pn!=2Oiue(OP`O"ιhj*ZUtXwEFo|j 7M\>Yg.B˽ݘw=+gaZs2i!#^T]>af?-}c. .tK_vv>0 PqaDD<ʷ9ɛWD?8!t 5qk[{hXUX},"@br;G{ʛMsjJ/!`@e[[q}Uf3phY嶅 5a\xv"^^Tnk}8:G @&4)Ikqq&lćjZ揼'mF*HP=Hih\P E)[a1bA}5OAR+qHǾ99Q1N!"tMmhxZ1)Te[^tIK+JB Qz40ۥn"t'k ?Wf`{h]<5NZ@0O5bVGw`hKoڔ nF0%Qeq/f+n^P+R, Cm縁LuK[mǂYH$l4hvvIP:>MNƆdH ZSۻ۳v}r2ef<#};=TFPGIu~EcVӑK8'kj}ڇ;6_.4.mV%+G'؞w^6o2[DqMǑk_ bgՓ {-2C6lpcQˆ{}W1ꪈp?+ $k e3N*}Г WUv]D/"TDF%f5UމqⲢW8E乃|{Aumj12fat tp><CVEU$ 1x ~,loMy 8׻"› z<Äܼu=l{nL5W_tU-^ ;F o:nxLMbp%2W8s"ܐ8)AqVbI-tΈ;:^Mm(Ֆ\Vc.j3JCp-CkPujW;) lSyzҬﬡ`nEt?t=rww qt\#SeLYa`,/=~qábp?PN=4{uo3^?b}Q!9Q<WYE.}S"6߲|cqVn"Fx4uL z3@)Tr$uh&b{Yb̃É0Ŏ@%`z_2-3T3ҎІW*H`KCuNZO{ f2]L~uYLn?6'Oq0ŤFu,5LC*LJJVMxI-ydH3'6uUuR8KS^ZŽ2?Źvc261N'RD*OX$?FO4U+vwgvgdLWvw>P_œQ('hMIsڳDy~TTjJjVu9hEw DZ'?l [$c=APdT15tj`:C?`$5dLt<O:92aэ>+y* TXgn`Ƈvw^1E\Z̑\xNj溕lVf>C^E S8̊ux@0iuȧD;MGc! (jb0w9/d֜z:UTPYJVnV2qI>ݳn,NoxD*V;FF$vM?B@.>{wsTBv2ʄs{wrwޜ]ݜ4G8=QB0+[N=/Dk9͢ҲE+Y&0l9(hn$Qn?SNYǖ&ۗC(<>UG=7xDIGh _sl0 _nɎF~ 2g"DI97!3U5ek N-xuAk7˗-Ixd5nR|np̢W j4qЙ3@32 " >YVsg[8Hv.2X>QYddq9]|pB7Wj6:cKnBp y  qx WI4I:iAOIa:?%0U2dQNVmo*X=2O[uO@ m`.'TW7l|lWb4UO2:<'Ӿy i`GY>ĢF.>TO.ѷʙ{%1-={.4+3=pi9澿( 篟ëK)Z)ޒ׃piEv s]dM?("n*//Eڗإ~8p-ZSP@ Z

i{̅iLUhsH,no~65&lA"9l3,9\m\-uΖ1 !KbQn6!tJreTjH.C_5 8)AyȔt'u=+NKアhSpfI#f- gPV&ŋgL5cr*)I_2 FfXaPٍ|:xDHn3VdmO'4 &#N3^R??$ew2O2n00p aVx;/S/DF?6zͼo6 =u}6~^ݨZ_U,7)pqXY6tO9~*CU](f-HNDM740u}ߛEgva6U%L"䍇 maĈ /8>,.OQal9 ƭ/F7MA ]b3''o-+w痟 =U!š4oY.}nS Gjɔ8ٜ7TA2_0GsD2 3h^S " s\O c̞K0k( #A BG=y?(hb[m3tMD ZbaOp2|Q8YnlL0qh/Y4L\׬UrI,s ´X|$Q)kdH0y幥n>ޞc0λ"VP5&&%hГu⛋F߳OB԰x0N(mgnֶ›;7z,#ɆiAEe㹜sAE^ֽMZN& obzഒ $|$#vo\>v ;9t&̒-TJK: FYsA{ڜ@Ư|[Qk㈱.(BN*DT69dp$CDQu߄^lIeM@qrCwx?\c`૜ql3 z5O6DUJ3j"T9!uh<_L?'Y2c䊆d ^mF& \ lFceHгaw-RNo뛫'6MƝ3"0)ʕ_1N krŞ&Jl9nj%eP..#em6֖]D8dS+480g[YŮؐG?$^( T$Υr(~=up0 aג⒋uŦqiTfEnsD7+JLۄô#N,H$ߵBcј8 }_ 9aQK ڭ;l+Ehsb/,9r+:Sl,^h!eB`Z U+ZA{v/{)% Z#KpFvv~yw3mݹdZޛ{$G")bB6_G]b[;[F-~I7) &pSo4NqE+g]0:xrfgti=2!g\dyFf}xmf)PL8I-q#2Mȇ A3)J*|}N[>8˜Y˕پ!c و̼QL>PI:=f[-$m00DoƇߢl3/jo{Cc V9MZ[k/QA_->5: 1/'Zn5Wu+. igo";H,aj2Iꕝ.$'=c=g%oXEs;8r}  _F9! dKf]B\?NœQ"щ.rĜ9C !axh-@62$x,qSRez<^%Iz'x~|>:jHKqn9 $P$/_!*A[0sb&6LudCyB -D;ǻ 24T 1{!*N$ۋR$xz5õ,v`b)^ 9©!x "%) ,?bS*LyUg/:FGSⅦV61/%Ae29"E>[T#4'S AvjIW_? :9`s=;fNTtI.H$nGumus2NJ&755&1ɞfkUr8?~cX>>L =[u# S4ta !kDuW6; ڴ, n;?CI{,Nq^cgohbX'q.ӨΝ0(͕.z*G]: C+3AFYJ''uj#UOXarh3mփYM"#GTa_s0ްY<~`c \Bqմ+ C[&v̒#`׃6Dt2&Zם$d%J*Sҥ->i-\D^=q6/,& 3+i+?f>y\kfҨRp.+.+z٘Xftas׌p͈TƓQ)G豚;SP'`F^nA{T?DѰDe>z;]H!mHL9c2k~ylGtZt'%Y] ~RH0EUt^[JGR8@y#W=f:-: gw6J3BNdMx3jGs z:$x,E͗;P]?&4;6V 6+ݑq4h|2 uuSLeyA%O#0>BxN{踭t ==hR?m=vH龧Q6]t'g>FdiJ?" ܱ!# 6gƕI!(3hյ UfׄLYJ7;LLjYtGu`g4ɊoswX}_>ըy?9/u%X?] ~,E,-m:0 ow W黻g"9׻[)ɗ[8>5t#ÀXG#StN=t'LI9>>R/W}cP2;[NrlZ `rvgw'xp͝Kɨ!oi9V)nR9<ޯے,V8&,QE=rT%WMuZ<A xi_r_V_=!Y9L )NJK@d3,g0O9a7)9|h,Le)SȄ1 T,#.qn4ek͜uy]u q.^ӠEX\=*-ruI6*aݺP(gfl;GsHosF}l%YޙiUeJPqOȊa- GFK⦫R'_5+LҦ>-`WY/_ޜ]ߘHJ#]SRxcƺy7EXTS&8,ج<3)Ls<`D0r}?erYuz_w:ZToyQ먰=~t?ƣTh~NZ=XnB\yPU[滹)jtWz ]DF\ ТC|h`38yx,g -P=XCsZ農+lJ>ccyٰg9s@}-\ ֛ij M+d(MZzt$disoèx3OUwgQ w慐hIJ:5\WXS?W zDn#F崸CtYl 8WD`8e([Eu<ƱIwecj^Gbħ?ʋ~ xz{&^).0.GGnT_Lp0HB{Wˉ$ 9|pGQ `& a(Ȁvx}ir"bKoBWvϠER1 7r,_y>Gw=B3K2 79CiTgDUs>y\Al? i H(f{k۪ے=w%(+43Q*]W?ٝj~Z)^#^1GF9lײco~d y5O^y<5/k2PO]98ɘB8LR/U#hM oIEpl>&7,aZt-c tszb]fߓǾx#|[U g'\8",_#ҕC'J) [:{I \ 6ԝY[ ~4H#rۿזLQ$96gO6(AQFiU_ f\rm,Ur&*K[0f痟.‹ד/8#guΐ~,AأqzbHs3v-H*]@~~1GSȊaɡƹȓ^O)#\-}iѸ,l߻|N˯hLdeIxoe{{nR9j[ZUw@zu*2p!q<%0{=ڊGqDv8]Ci?6Lyݒ;1-K.ReqP\R Y"I@t8n7ۛ7Flũ`5fA2E?= 5,M6p><\bp}6VᜁpD12*?lv7m t ߬yf2՝ZA_] aÝ/ 9C3 xdFk1߫}M씮rg |$ '~ ߴ7IUym,3mB)]me=X F'-MѼL˰STkMǚK^;ըNv2Vxoiu EeXN$"rm)$]Y]~&=e:{r͖N.rЉ1#vv~EE-z *xŒ\CGJb`-i*w%0{Ȅ*FZ\Le:P9P#$x cg|fwO&|ot^q>=LMME[e)" \ VNs]Xw^Ӎuf/r1_g:<>uϙ erޗۻ?1 2'|4ѭXILOPU8rp؜j0ZxQ&Rй=cNn!)C,^5WFcՆl,*LIVT&=I 1 ;Ilj'Υ@pJS!U&Y$WaER^l-.G)m%+on,iKI6)  >6=pM>oj3|$R+ڏn`ńp!)Fl_l yM3LIԓ9{Z[s7WYEyg5kf!ր^@da {E>XavvwꁖMchA0 x@]B79&i;M(P~U;3B+.p 9\9 Iv+y]QArZy뜏q7GJI[;âudiW92 PȟEqΎ6hl0mwDYjϕ;ã#p"^ /ҎwyBd{ƙ˚WT*C Yݕs-`1U *`Jm #/Z@4gNtRVrC2i SSF3ЋƵ7šb/с46~{С2ȭp]ٱ8 PUgTRәSN}d/EgZN |UkƇFudAZG J⫽UNN='v:ʻĔ=ŦKg1*8ęS##ip^;Mi+вWEwC-]x}u{^݅_N5LKԯdOԕ4Es8Wy^\~ oqݲV~M$F/1'óUr pʆ rޞ[C% 5Ai\1˃!4F YuޑLŽr#"+rn4dtCLqrJ g{Ɨ m [l-{%Z4.a[>Y~ttێukt¾ Wʬ Wl>__Qm=VH <]-!m1g4HiH$F9lsH|8̳-f0'F0Ȇ́l#w5@&Mq`4E*p[G=0zZ=:_[!qܽ\w?{{GmaԉaOnn]Or٫ ͣ{WdaP{RIРq ӧ2wfۜNC9SU㪀s1Uzn!>ћxYLVVL!hp-0/ꊹ@J.c DWS$ybk,f"-m*D6 %\y}mؾ]]nL))B:|=~W [z`%݄`dA-9~w9_"~ƅ~S/qDۉDUhY- Lp5>MVBp.%媝'*}t?}Ӥ5u䃴1OxW}b M i~H0Eh%SƢfE$ҕ w3(?/;D'b1/ t!}>9}fkY͇`.[#'xR B꡵F&p8f=LiX.iFM@ fF}q6:RC>R<}xKuS]-QLeTn|(!i؏/)EЊ2qnVL ڥ36IC'ilFzQn/MHtA^BTzb |o  ;c3:택`s]>jYڍ=iUj֯1oMl}@4>G[p! a's>>}9 Iyaq hoT͞^]ݜ0J/oX[/3K^$Q%X`ǒL#@t[bT6%_RrZ DzqeMҡ=نΕп̞un?ḹmuʱ7kXYf\[ Do=w5g$6Kz>sBCDEE:HFyLhzvi;rj:@kn+bI~mW1+/z&P;a_rlgY[tL D,wJЛ xFʉr$iVA(6WOb'ZQs PplѲj"K.4lVhV5Rt|YzUf;{A0OTaVށg1TV#ozUXe Uw¡%=h8E Y+AN8'sGO!=fm_ *&ȅ I2NrcOɻ/+^L@T|.yg\"u0ti&~b(1AZRY .q'7g'|BQN[vW7DOn""˴~PnyGn7 Y%D1\7J)\b8&/%l$Qr<.n#+iX~E_[⛏ie",EL8VɕS>>O/3&;e pmяl`6&Pࠑs* 3J+*Z5@2%x=vI@|<!F"x£rS ˋ$.#zvu}yuwqB̵@n^-%^$\w/BďhiYESN65&4F8)^yQ”'=Z(3 ;5@-+zkn~^Zڽ1m2A¬l.. 6ӷI 1|YX9RO QzqᄂIѸGך;ݸ-,␲$$n(0~ C cS]iJ]Ī^P2/ht[bIDI=]jj[NlZ[ֱZJ]ekPP\Bm}ޤ3,-+;0M!1μ{ Ƥ ;.+ k /hӨ>$g:$GtXiYI ~0Mktk 廋Oÿ~|v+@G.n~ 8xc{T_4lYTM9E@KHR7M t"=L@pL@8U$vz1txǰ]ΓREI$c_HS+,#hj6Ē982VC†qc "73s"jnǍOBG7T#j8ѺoҥyGkAbLJ> BϱS8l,!5`mX3cp;$m؏F8{i:O|IC8u }p=N"#<>82(`Z;o4V 00[lb&! wr(9懓)IpYjULu:HTNUu JSdZt$jVy塢&ONk/M@m(۝֛TCF#{I;Ht[C?>*)mpq CڣQ`OB9A(Að슚gT̒ոOGK[z1ܪb+{r}[0 ˲A"!g&0, d\yX0%K: :6><%8's)C4Ql!ʽ,.7Eq¥})@̗3FzL]x>ɸAD1t9%q4|nppC-eԙC4ov0At~ it}췢"뻰#l޻&. 5~ߏL:-/ݢ2s1^!nw̌k֋D8#WTc}`n./Wg;;O:ERL78N[cadK GI1/e3 ڴӳۿ~u:)IZk!&2Pp.lӂfBfi9NJx Ěj%m/N@sG5bJ4Ͱq`b/y +|4i3Yݖ=EloM2zRfYE*7].I3 IXfRW¸:땏VJ8ԛd} E/\uJt#r~!:7x^-ړiT#_f$$ _bAYF|i?ºVT Ȼ u~AL!P`x@6pdeMtZ\05`ֿ%V{2Ðc y2}gFn9)| <&g]J(57%A0݆_j&ڧ0 {Ǹ[RCB Z/ٺ=_?skTgLamjvn8Qq5 Dji=$﵆y-d>׬h ը8#Id4 Z~|?K'笅c?=, ޯs±587ى;;z2[ڴ(+n?]O|֒L,a[( @C ٔ'v$X_bncst@E/=b9t,[zLLlJ;Ǣk`h=##=s[!u苐8ImE3é}W*TU8JQ'dP􃋤?C|1㓦O:>e92!<ӈg*Ö9Lܘo(;BWq06|un;0to79%ALV:uu,hzpd#C_$~ԣy4dv|h$GSK>) J 2GhB|ת X ,Z[c*N45Ѵ H x[vGUhmRX<&]-HDHn%6#4 e_~>RXЖ5S/+FB tĒ:@y ПV˹BHOZ=䰛)/'aJۃCC֓  }/!^9'mS]FoE`? cKxe l9Ca.]ŵKNmb"rl:8)f=_GQC#L'z<r½honb\9u>3qJcRܭHmXaGT+OgH WE.2MwD$Zх^v' 2MX@R=w*DNW4.p$lJuF=.K)P1675Ɔn-IIM{/a:FOatL˥W>n3WwQR&C44Զ3}Wi^8Uxsv{wrs P&DlX:~+јx ~,91hUoֹ ˮ##8  ڄ NLz'Ч3=rc*vzVӸxjaRrB1UHx"9I9Qw?p<E$5bgMJP"u7uz+WtU7ѓ5B\M!^۽tUi7&vq$;T;ݦ=iɅBq+W;d.y@W Fxo=L`0Te_CΔuڬ(.è,` wGFâVӑ?~0L`a+j&;ºҲ?rv6aސK:X6Iqk|*'"-TIiK=Vin60.O0g8/۰M 8X8=o4ț|Eba\&A28ź4t_$E{$1"' _6?$тl]^}Mk< ^4=mQ *M^q]0N]XkU u)q>2"3sR 8Yx:pjqa]= Y^A*~5˕Q`&Bf!s+5).o/Jؑ0K1 y'x8<Ũܩ\ݺ46|OYxq>\}6)u(W9qF+\َ&?q{ cd^}S]c{*8{ N).򩀉r`5?|Qa_k7 if0;PX-{L#'NޑO8"Y3^qR"3 >A=OiCG9%vPI*CizK :k*4Y-3 ֊%.v!gptCǫV7gaa~ eK/G?zjIRǤʓ0ۏ@K$%j6=ɭma- l$LJK,~+NkW|N2|d4Zi/7\xAGaz|CEzJJ,Epw37'.-Wx٪>E uR.3#m%CJ\ǹsf$>w4:gB]%K=GO{AspMs+/8.6W/jk3 `8jMکVgE*-eױ‘t]ckZ50I8RV(a^x꿀n$2崰"м>'FSdXؑ3(cNHΛ]ۇ$E  'E u/Noǡk:kTxɲF1Y)ylKQe* .-+Ecq:UXt)4Li%8Vv6IK!诜 -,V}1Q uLt FZEuٍՂ0 Lbg`$QztբFihB,I$-)s@42lK2$]m)CDI ?Ftpmo7_O0^-K~q ,~kiiI= })z2I|4߿~Գ^& Lk+h'3>}sb !¹*>^hfV #7ʃ/aiwU"+AIh7UȄ\nB+|#$;E* asF)_ -::b | qC|9?x<[ w#CW!8%BBq ɷX5A\A.]"8=x)Gabzu߷/#}( {/xϼI'e6>Zyf9&F':fB"^I&? |24֋Z] rQڄOY;H+TF T "VkDδ_C5pBpw'N:4rI?Et,ܲn?γZMQ3Uk>s{ט-u\Zp&Щ@r&e 07>p0dkrdVeZr 59n6zi{(y/ތ_sWqE):+iO dv@'#fȨ3 ,2- A7_gʳfy!\'&BòiӨh@,Mcffэ2.6wdpwgo $"B|{P$hz2InP+{)C&Ph[dL xS-fjik{ջ4MPyo G_UW)o2y:5+>$LJfkWi7T#&#a(fhkˆ:4eHL *oi~S)=-.Yp^ūC8L $Zg&8@ '2 K0G 9=}Țb=o0uX `dD!WuK)D"$($s,`*ިېTXeka2f:$}7ӌ6~Lm1Ѻ'l7}ui"g8i(t'G4T"xZTHnS1i}p$D둊Y>)Di-IB3YIXRNI?1'IRh2synBhV:[1T(⋦ܼn >9NɄEj˨m[wa9թӑV+u6*A~%sPqIeKT{N.*6 ,1؟C|Ks>XYuƆbCЊ\XfVOVkA7Hz%Nܧo- iZ,:,Ip]r +OА, >NOis(` mI=qAJ+%ua1T8m^dd@*E).n:^Idէ;(-)܇Rx.>zy~xyAV5d˃ @] DTo(D2&l[>84Gs4t!js&2BUI val19XaMhR:~ *Ș&iyyƈ"'7Q ҙlฦ pÚKw!:r~׳&SS|_uǃA`n*MjRI !Ֆ|*=;]^]m~1Z|BZI2jFWYdsr6Zp%sx&9.֓3SVrP$Yԥ#^ '.o8K$x`$;VM%l TҬMXZ٧1OԂ`_ aܪOǺ[cM 9U+ qꟵ=#2(wY`U&n9u/H"@_FNĵq3a}3)} b%͍$bs2Zj=\bG\>>n5/0gǕ7xϋрv@d=J5. $6v#F#@CП vW[M0]FyF|IsIcZl@ƇSYM}iG/ۘ Z|L Ӕ 3_soƛBz-Rktb/Aגԗki~Y mNZ[ $QCb6(RMrBt]bs[Zb}G+i,'Dxu@[%I3h )w/4`8θ>8)-̼r-ٱGĉ,XLzxnd1[D/ j~w/GFIOJ 6U_8(̖ZmHO0v3n,A|Sk>͐KGl/tOcI|HAh.8EX{)D/h៌iv蔶T7 bX%&Yv`=3um+̚VH ,+ *]՛2uO]pk"7קRaΚ9 i5ղMD6K|~N\Vxˑ:(9JL'˘$z (2XިrP`<ח5U{ʉ_PP̉=NB:tI3R gf?`ڕ>Td]q6:NIZ-zBFE-'@j] '2р-*%pjRF^2hɁlpI5nqC9P PpXQV$_u`Ku y O_b>??oaQ7&HtifMRR7O E.)S39ᝥZ1jYYԢ9M`R1$&F":-ڽ\Y򌠭/]qT@XsŬ[(=45P,1i=ExW2d_yT .ղ 'O}~.)Mw*6d꒬vJmғ}u6J[81 =۵K9Mc2N=Z=0]38$is@!zU3Nثu:/F3)oQ 6\{xc}g(/n\eBq5?_p+(0 ]Sjt*YK䌆 @Ep+?G~{{{Z@WgH#P&Uզbo#n>z-fLi%W".?\(aDrׇ`m<aB1:bI_On«['ұ LcLEe@kirCPE1Qc݋c-IPe2Waxm'?޶,IίɱfSHC"AT&@fuXlH (uDPٵω#!ADHkں_) ]XMvOS`MCU\W$>]NdM'S8E*z[moQ)j~BwaIȾ30 6N1Eoķl`\+|=|͢V5̆<^v>O&VfƼ1ݝNp2M/1"`²<>2ZFjuZG/L?Ȅ-fK2fwx͗ʯNx/?HLcdzAHq"e:kb:4S[^iTO~AI1VЏmueukjw|K6V7n s*G&9{fMT:[ ̘KG@ ns؃6JJM[\4gSQŢqH("-۸gq>Uo$Tg Fՠa%%7mRP9B"Z>&;Ŀh<8ki$* v`C/̈?P杆].tcxʧvnDqMwز񠸅*"fYmPVe6 IdVƺl"4鮞T7fegEMbHnݬtV0d G߶_`)g[H`Hn)xm4r~C[C41T U 3 QI 7Ƥyf#oPxb`Li_ f7" P &o=C}L0h,Nn?|~q_fvE.EUXv ^"U2Jvg:II9>_競l~n?OaFH" 9ӕ)bVG k uN jƏO]jt:P2<D1!iO~_|V$G[[} Vȋ<)Mg" A)foL>aTJnQ~ 2ҽ4 逽{+X3U9;>GW- yʴHt-Duٶ6^nΥ>Cv[OUIkW-X?"Č?zܑX|dC+oLQY!YOڠd{uJ6Qw<}Aҙ{SbOҁ3-ÉPHb%o2vJk, =Ȭ}}2H,2a!0BZQ |͟yDy=WeڡC/{! dsgyйE QOp.R/WФ4ظc0:sFK:$]8;)q/Jf;]e|dC+c"Y&WQ*1t6g;՜mI #2SOVE*ȇ 瓋*%g9=DEDd\Tʐ/jF݊n5ɡTZ1-#w^H (~jlG+o46^*mF떲&oV5t8&GmaR+ |ԭBG 2Nbw4ac]У'4bhePʳT {ӐcLJu}7-Y3D`}i&t% h˙F`^q8|O:Ic_K֟ 3Q ?fiR4@aϚdF)YVW,)R"uF()O=k0 U{+u, 4εQ̐5ͳw KIv|Z6Y۹q~ "0F]t>% N UuY)ҩi@od '`$@6ݺ zu&Q sl8O~1@m3;7nU]65dqUI_w VɦbrnMGJ꒚Mʼn0 pGpkEPS5Ò9{&l6J1A0V `]a`oW ^'qE_=K `Y*W~ N F'ud8(ĽgZYF%G]P`}u89WzyQmkrbxKҍ0C񑲕-ƹ L{ q/< ڑ) O>N 6aqSv.UX &nV<nBp͒M7lÃ|/׍rgϢ`pzE}m!&F2C,Skᄥ}L*`em>ϠXZeC1 UKG>s܅\@IխDZjC LSߙX(-EKSnRä4t 7wBg@u f1?Ơ]eB곿6޻ ?)~оF[_U^(l](j>I_[q斉5Bifxns]ic><vOU\t0P9יdNj1kG=4^9awe ':Z\kԧ-tIqwLas´ 葨xW"4֐v26oiK6 *%_o/>YcJC'RtM<+H=j⶜,k84P!YeVFj1~6u? GZ>'`I+ ׌p}eNAlV{fR%:9ԯwC|jm5ipBifEzX&6pdIpȏY-hiEK2z<; 8 g3ZZ WNZXM4i(8gx2ꔦF țn#]L S'_O//>MaT䈕OFp9 W/,&ES?< Ɩ=_'^_`G?h(cYlUED90&,)@ X3kWc37c"N^'?lM> 1 ҁWu3zƱ1IC՚ ɧTf/_/nqEZ]dcw(' Q8ԑ>p﷤Y6(@{%ZhuJlN\#)Yx0t$+Jj:օgj9(7`T|\ATq6*X gf2SI$I2mxjT^vQ%s'1w*2ȯo($#KvKo#3a)HkI窰l?[[Uimn?Q$qJ/L>?kۏ" m4 wY R9w.3Z@r>:%CDG2+o7_O/e£! Z&z{|m_MխNl= dՙ ={{s{M}寥WuL[xUؠj-\ٕ_1Wh RdB)sQ*}rvzyVz8z}{.b#FV:y$Hz"WUvIt.E!ǁ~,eX)Lz })9v= ejJUbXfvZ'eru0-?A ~G)g&WAT9p[^Z&D7 L2/ݱbd rl]BñtdžfY!G{6]Bna;7H"\W []6L&\--"KU0cil.j#G˽X8op{ٵT $%m4L51QҜaĮǨB:[n`Ȭ'Ipa% ք<&TQNldcOƚy6\j/- }i&jyU%9jd+̳B+gY)FguF2HC-Hg+*)Tuڴ5 صj~S3}ܐrbM"&+W}`TsVd8aKniKVv#d.W;3bI3.eyPiȘ&*Dxz([*6\X-cӽwUg90=|/4~aװ1R /Z)w0+q(G1owB h3|DOegB8@{~ Sʮ\itdjoc92d4;Mn-YGRq=騋TsR2 _դp$f)ĩWfҋ$U97'hV/\K6X!e#.6'dZސy-1Y?L 26\UP&/ b^+Pv"~}֔)}: R44]۫kgFFÐf|=f}J[m9^o^ I"蘬W5*;q&MG9"Ȇ=wAXi|BfYwy8u<:I2Sܽo2%]D2yI8yO) !ɫUF{S`Gt&J-Р 8#PL"5eZݑq46o?ΐnԩvdzqf e+~̻e&9v0` ׫Om/@ LO,fA+-0לqcj>sW.)=~:*8KM˗ OV!' Z<2Ϊ?))[akO8IQ2P"MTl]ъD [9 -hcԜ-\e r Us@JIM02]_,mDАX*v#vRR Үq! W6A< w#e/"oU)K|Q]Dج<~J#8I RARJ #4 <j"VsyQ4`Nd˴ {9.atAOնpA;ڮ PZ[4as$Ǡ \69&QS(qJVfEPt|O~ jNQF,(C`@ Ζ#{LҞREHAnPifxf8S Jw. fإ.M$T .hUzYڬahdw Iλ`# .@dui]rc Q,c!lmC]{6^HcG!I?#:_ߤn0j1bJYQ(88Wf, SfXvܔ]p 4YgN:FRJ|}MehLFjbSsYF Ӏgluy0YFN .Xr>T!0⢐oA $x_e;| +rsSi)0 Ylv;U/U39I< rk΢iaҤ7zQuzAә-Ln HBҐ"jt$GKL`"T]_JO^s$O˫|Qݣ? ã1WC{"Ӳ%>%6E8Uh5]Z*5aMK _|VKb-}N D / 괾FJBMy/.$拃:ϸS yϔ8Ri2TD-,agUTW'#8)$wxۉ-c{H 6P9 5lIIBp`YNSR 5p=4t?"|ڝ35 -4uz<@1| 2SBf"΁wurOVq2 u׊ p<\<%rru"}6-9|R<“TR$(n'X)'_ xV,@dTrO$iɯxC^VܔG594ΘLg75" -Lc3J0$H38?-a^+P8wƧ6}fyIq6LIP$#rSYu_N/niQ?H(zuT o9+Z9@v:&ğn,)#D>e#{9[15>LC$.?!-q<=yG.\ejc|jSrE1noHU`Rb߿MŏFVLzN`M6# k̈^Iԑ!dq=% ;(~8mph9doz^zѱ-H2ii0[@Oc~f8mZxkb4+(1J,1qaH=o_N߮Ͽܶ|r>OA;NBw8 [~K[#O-3ts^iȗ;29EQV @JGSU,(83a`;+FyCsk -ÃE@g25%{5*>~)o3Rٙo?W֞&{aq%L:;ΤeTYX[]ٿf`o $.&As0z΁+,++rfy8O1AZ7Na5'nsvM=)վئa1ՙELk^іwS:6λwL̥5 @r*K'XseqQKGQH8aŒ/AU/>|F:[[[oy_`e/GH!8J,PP1+5T3=zXR HGFTss-ftθʓf'STsjڜzW/mB}ŽZ0:չYd~:l<%./j km$E=u׳ʙ>(xUG+cEm]Qr;W,!Zg7o04<9>SkmZV7 mïn'y_y|ɍW,nZX jm[8)tzxS72k(ȩ0kU48IQAYUN<&^)Q*|{x(x{4@ҕ^5sRK{*sʇ:]zBX9l*ĸ *B mF%T-AG⤺^ZߩљQޤ aGJK~ njTHH]3:J"妩~VeQOW2)Z#fٱM{G̑jNeLX^ǮA=ݏȶ_In7O%AgnHx$CRR#5Oy-&,ASŠ(Hw #7Ѭ% \5Z1~Rz/"3*،GEd-SU,nO}Ϳ szPUoa5S̝Lܵ> ߬j:൉REoVk2՜_!< {|aKzt]"/yQ{]=g6b#|@% `b#eSR^i $k\s 搀#QR &YZ T3ddϸ+x#'1a^Aǯ8oX게Uy^ҲM2s20&fI&Z2%)nДF%:8lD_ S̴(4L+xhr6o4>-Ӏ,H)->MP Iyt,2&^/Q1m3f9'}qdy5ʅx#!i7e+ZyM0p_ۿܞȓB['?kUԜiԚ̗. He#|SϪʿ&fsy;'rJIDX%lI?C+d`U?)0.e i4hٜ ; wѳek[,C ]\l((۽Or6鐌L Zߌ O0&7^mD urKeϑWnVZֿnq1zb?یTlZX`g[͇qi ۆà~qQ^i ;j-@BB/s0FSh)=Ms RM1 c-:[*Gґٴqg5I8춮&ZiԉK?1&.I Uc0$~`A媳jF8Y5입#)|ǣқrnP$YiB?O|:S9I՗ a'>C_е8E.^R\eikۋ}DڲRQ[Tk4p;U'Zt0Frp&cSEeijqAj8x_l)1 xpXRg-XXt-NJi,PY֛=0F}'SiNx^P\g?h!?UYp&R,SseC[P a@ 5ދS3޸YgP!Эb8i̪1){1%%1_(WnJ|2Ct5UonԉTPvU(M;1 B*hQݣgj+xf@AlqwMa\TxcacdpJ4;O.6A-MboiS$/֚HLR"  Zi,--xLBVO֬l-jD< ~) (LYIrK)0dT$c34xe(hIRnvR<(ȪvqZSF.|6U| Y! ?F jOD..A07_0J~ǎ͌ ݛJ<rݚ0w*5Oɐ= l(4MS#+G89\qXu!m%wuFWzSbT5 ՟oAm1K]Wsh %1;'mTo_c#JJT  zbgL-u*\%Q$-(WDE(׺Q1?B2G_dMfi;lrwU|~ cgdP bMt1bScCJ9j$5;fhYHU`E(O#ί`8ڧ?h㵚"p fpXah}LcLǘJ:M>w0kVHs6C<ܶeXaVI>w5{uVo2HJdu-ȧyV=6cXU_⟐%>uU,;2I% POQyXiI~JG4CɗGlNyV$ُlD_xZK-.Z^&$pN!}c'*/g_d&??^XMRZ35|̿UZzuLuF@F~g>+ਠZsA2D36|#$vq!aC.M)>A}}n09t&o)|+u< }(Nlj{Cx~W̯\'O[O[37"|asunnD׀=xoҐx$q/~O'g뷱SAkA: 5L:ߣN#I6Ui禨3O$4&VR 6K&H`+SN ʫ΅5¦&j| 6Nw%[æPI9 ,TdSvݪHƉSe=CI263L:z(,ܚ/R6?4S4dag}ϱt<&Px *R3vw 5g_ roև'ᔋI]UukL v)D\?v 3_HPj"|;_M4Q拟F\LtXe`riM!zjT4W4 Ku]2̥"ԟ&! t[J;L׫gh*ڣ;6m* sw, FB|L ؓW"$'Ґ\yZ$UGzk\2qU3=2 z U5^nՋ_W1Pؿn~FNk43S*`Z5-Q%1x,ǽg',E = f0ό\w+Y1 PXvE[6$%RC-;0j+0͌8ЌbKor`w>9;ibU@pn2Rl]' PF5 WUM=jt㽴2I*6sMLќYu_nz7FyuvX9oE :S’ȭ#( V㕁#9,0|u;WNK{+"a8khI;RFUn:fñ$u~l׳+^Z,nk>7KR>Nnn_ XwA?!9IbYİM *FMf mH&_{7GiD4c>CXS3GR;"ïh2&6p۽T 1r,9wxdy}rrLJ/, e fA4rW2;;?Bf?뵈eB`O(Rd a/@ԛNB`Ѽ,1އ$'[},/%JCҳWrGq=ٴvF*R9h1W*zlUA9s6l4豨"?&?s_qL#S)UA-J?0C@ew^eB>(cf r!I._nD-A-+)j^}uE9?{?t7?quF2ZwAݴ?C3ő ,H`#|XA2j2HIAUFR~pkԙ y'lrer b3Џ&0cKX+ZϧsTa)lNW~8㖣B 39!|zo4G[A s_qO4VDak+[#w74 ?A#tK6-=J'vZ;޷x'%GzboqMZ[f~V`\7hyv{LJ4tf:WETUD5Pj?OFND|#j|`ٖCFc`զ稫IhDC$3yM4JEWZlO;yh/7Mt}+! wTA\{n..ogp9*?`߭r"˖KFo p91雳`d/Ir?|~ŊTKۇ˫04ihp-XϬxх3K>uX\5e`n:ƪg'($e.(}?g#o?iГR]4 ? }lwg W;?2vA=1RφQйhI0^f!/"}MXHgps!)#KPiрC>8sOWmn JϢ^AO˜K4֠-*.ԴfM$c.]<ќ`l}1gaz&N)ʢ6cV" RM7Eoz#XS `G-ASSz..Yb $%gZ؛-?C_mZB#sx\ys¦$Sϑ&H $ͫ~d뾳VxNRWηT֬/Njcy76gUW)t"-r"Muo1M&oFӆ.j{EZi+]<9nSR+LEwƬBF8Vzm瓾dn8F0,T i\5/IA~dAXRM8 (Qj.9s%NW@Z8ߛbc`LPgQj\ .}]!LaTX18nfS)2<3x*v]09 r>@ Ha2^70av'gPkVP%^B3!/w0F#e|5*>^> e B!>'.LjWw1Z;;^1֡2)dU+&1B,X`ԫ'݀FҊ'Ri= p7Q滓5auuzN32ڮsHN@`ħ1Gw`hK tr}-@`{{&KV^q9K0[ | 4~#i/}/y~:|IQo 5Zsoj֍*wn{kབྷ@2 a݊xoG'De(Z]<~RԆ|z\xLZ[Q+s@^Mϗm_y.۷g3 ,.׋;NH֜;oHK;wߙ.y2<ԧd:(aON|ء˲3_1yp%4̣ n; Twj2x=,lFQQ%A49 AWP: ZsɗwM\Ҿ]Fl,hg޹o o1i%qjphcM YSڇuc"tY^H'h,q|qWB_2kyڼo2}23.3_ӂ9pdc*`_"3d {GJ+ɍbueex0+>;NJ@taVAAO'\g.>ܬa0gz&3*1䬡wNyX_gэD-R^ 5hD{~g23:q8zjy`&"LJ3)O~а cX&2ǀ̎(חi_ hK\exw&ρ{B6 SHQ35[f?_/Ugl3и2,RV $aofƳ2 n Rϵsu0tud"nQba?-O0LZ1Z?-1`k18 tXNϒ7Fd/oHp[ͳ:郣|-K,l?.Kb'ˆP8.j'=@V{V6ۋirׇH؀)'/[ogfט a^?{xוrt\7){!v5k&i+r4#pȩÏEpb0d/T~8;Ys*=ft \-Bz7#Dxa/+O?<ں@2ۭV?I7FIjpӺz fl]SƁf8ʝIpöa3vk7[I%yXͭ*[4㈪\*ٻKw~uhTqzzBKGϬ\qTP'R/u.SWu;8:8^9 T-_0[M]E}f\}3"lr1y[q cf$g,M3q3g):8l-†zXK6yjEI%}䦲3}~ 3ŖWg^{ lf@O>|[E.":^zt=Vj:Beid10 08 yIypD3'6f-WI,Mdn9#yS\hk76!os2h"IR_ֲS1FMKLlDؚ4;dΠ)z\ѕsIkp9VmZ}0?9jwB58!Kܩg`\aϣD;MGc(jb2^jAւx<Ud5?VCk+Hޓݳn,nkda !`'P]sg*bx/p GŴ i]ۓ۶ݾn6 q֠gtzxGcH_j*jq_6h\~,*- eϖÂfDq tH8ַʛl_^Mt&o=zѾ!'w}.~axeA. b1jed/Ȃa̋X%)>;+s n|T䔭%;?6]to/MNbha) 8fQ @ڳ3Wp̱2Ofy?wy#| ƃs?-?ZsH-mOqˎS՜awOb53 Ģ7$VMy8-EcSxu. 7(EywP6R9w fNf03XYR:=YYylu7l]gA63I6U ۨpq4UOffy ihGlպY~ 帼Ǻ- tq5CG!w]!/gTe03[_N@^QMSR(@+ D|9qCŧgBOϷpF Z,E>TőbJE6Mkjy*/"L' ZԢY/J" s\OKZǞԛ5 _]c߼O;,Jk4̭V ]c0Nh-[aOpC/d;8fqD21}UC7Q|j0 Nh=7\ʰUG)/tFĭ}^7o<[k QҤaUClB뀮b[f\4tw$dU k : z=ۙy-2֍kR܁a*6|iXQx.\1DPxDd?Hۺw6Jv@ _o +ɸD&Ŀݛl+83|'~˜{C7r,@{$03Hjd5iooY#ftArW>ҥ|ʱ%#!Z+gx%A7R {\ggyW9",fDf<=leVkgYT}qʱaC[iڕf)iT@m`΀bBgXi z?  ڿ"1M8L;Ă]ko-v 73)_OIڝX~2H_ |^jUhnaK]@{dɹ,۽3FNZGKl%4KfP~:l/ݣ˞0$^OX3+ uYm΅byC Fۭ}Jn~t5oLB V"ɤnf4A{ciA& &pSo3Zy.FRn4R 0Hk8ݑbCŎ0f%H^ZثswZmv̢] W43oZu:7X#?m6"3S> # Λc6Ѡ Gm㺫 BcCWXvK~C6M7xK{gY*zoAճ/jo{!)lXo`׀ R RWkβC(t ozTe7ښuk ]P0FϪ9^KF^wOÔ"Ikuȟ' /9/!?)~ij vdp{Wjivqd %.p)\e~zq(щ.0UWb@d2DHaBZL ޓ8^9FKhڪF(fdp *j<i4䑓YK[YJ)bTKjP.](Efv,\,oK R/A}[=JMVgLv}g(&WJ&gqCakgyQ]p,RTez4=7ao4Nԙztt⁦ p/o~i{ dGsZwʓATh7cb&&dP:2!\w"}Z;ǻK L̵tn'EIA p>sXB]<$%&)Nb#xEg^tMMZ1rc)mC @Ep4vDF~lLqEA{gLQV:),YAкPЧ*0avL!,x9C``k w+6<D$ f5#Fl'\i\\P̬w_8<~ä%O4ҬVG{܎ĸUaϋK7%.Lnha8WC/qީߍA 0~,}|T9s|&M k),48$RqlKrpC QSv4´ԲwrS§;-]RZѸN_YQΫqhRH^84˲5B3c9ݣ㖖kFkho{`CRk-ӕ;QW<޾zAcDa^GI{c(Apql$Vir\e3JY*B g705+QЛo%.N&&{qwg7ݑl`3LSswX}_?j.x4 nԄs?w,-m44:h/ZGr<3uanN~aoOg77xxٷ/ CbԚv2;CwRlJXGݛ#rΒzfYC3!LΛ~ބosI?Cz"0DcqM}!ao tl~ãeFZ ɀ0r[ j9 Esqu'[K?9h9vnTgY<[,7G:5K2Cx֖e(ħӰ²DjiTu A"|i7_r_V_!Y9 MQԗf)g09a7)9|h,.L2ޔ9WM`ј2Y8o7̬jvZ{κ:KPs v/zE#[\=KͲ<$x+Jy&2EGwV#3w9HmpdNl;G .P 3Y=0:>RidN[Gw~gV)pClry#σJhsJź|iOnִl̒OV;kcpw:xHYTGz;;<;6:zh5s}qu;R_N'4bjጏ2v0dlH;j}i|"bKoB;Q]i)>G*0]US8?R9ACYϫ b %6&nin<0o z8if$;TA\XW?ٝk~^)^#1GF9l͠co~d y'uj._.ev׷]:Iʀh3i\JyЦkoW)p5y&zMNM(ڊ+FOPo'eɀ,<Coy,K[56.,ZOn8qEX;JEWvd%S :!!Іb5kyw&1iTtDyfddX}>ps~UqR:بf[u@{m%R[YjB]ViYqzy[ͩYݮ6M${ڰ䆡gu"kݝ{HnF*2_)KoW9Wh Y:, 8yR~ۼIe9qĀ^Cb_Z[ٝ( D@%{4OarwKt;o .Or OCs1j[W@zu2bp8C5z-#}m*2kٟ}h9dž v:4yg"N"˃E/<^d1N&9Nҥt(m[4F4m`5fA8E??5,M6t> :Ϝbt}6Vႁ0F"AizM;6yOoּS2םZa齸8k;_ S3K!lc7a#<4?pSVʵ' x$dwz߇CyKl?oomGp^eum U3l$oDZ18=kPUXhYbU5͊GQD8G2HSj0*?8' ǔ= b}E7c%bVK:{(§i<&;G"v;w験PdkMXcŒCj';L[iZ]a=apYnY S! 8s[(M$}Ր_Ҭ.>t+˞3kr̖[N.s؉Aʌ,ubyNaw>DXIߋ5tE We}jy^mݽdB !w]I)0:gJ(TVVTq!)Uwa d&D$ ɬ1;66?w@d"ɚ.I#_z\Le:09P#YԚU S:*o_{t a4Mg ^xE"I7=PEN(<VSKq:hNWRRYS%/R:hƽ;YiH s[+ rLh:6z^e x=XO^LXuSl&klva@ vVfZNzJjS7q =rbX-&MbU/9Û/3 _KR_^g\Ϊ]Vu1%Оb[TƙLeN̕g}l;Ѹx;1jGgCg 0옻{ť2N~Q<_Q,[L' |=䡧s0%ુ>O>auU+ߏ&e&.1;jG`5dpʆ4=%͋{kdܳ4h!1V;+fy2B3^g\#4rV}[FI\+Yg˹[6+]+2|.brn)SX-_3m#\ϖXCF&9 fy^&t\).lb pX |j8Cӥ?8\UOms[nHk<1Ͱy)6ºCM+G:|}ZBĬUP⒙GI6fT}6eior{Vbi|l#h' 뀶M/F;ϱxf? мQ٩tȐkČK<6cߚ:GW~VM*Y4{gVM@i[. \1$pD#5 ,{bͮ7RcD>4d".# S4{Xv,ﱱ-noLo}SP I<17D0Wb5M,#XMSVr+8zݮȚT6l%WlA+ݶdkrLF'85763&>}]0}ղ=Fv'x;K{|ryrmX롵I{'pz EjcLiX!FqiDUh ffSq^) <#Ax}b~IuS#;IrCWAB4E;Ԋ2af f +&viV)v#]T8H&L f/Xf>V/Z,37|OwOU`:ےXdݰҾ},ë^Z,GjykH*iM5<{-BHҰ`4-{Z1F-vÓO۳o$5 /rf-8D`-/^0bY ~mqdl\d?DW[~Z ʶWC PPCAi$! Σ!mߟ77t eCusΛHv̅`tgŲ$!It-)fl=`|h;ҀP>< i=Y 3MtNMGM#)ǚMvEԤ?۝d t_ӛO vM&Qs/[:\7Rz18_Yrf R2(Bx I]ۥݨ (XzQaw^`kY3Rja52:*Yagzdm}̅3'^m4e\HfBdkhU`@Nġ_I8r桖(g-tpʻ=8 >s%׍@/!3ԗ7`)B} 2t|W `V:~0^ 4<}~eX *$̄LV+ǃcWYb.b_؎˄DxB¸&Iy n QLg=d!`%ܿb֣lf>?qا?h+~ޟ\iXD<ڟs˚d|ViQv|٠Q0D*Y3;9x ~jP;,&J |٧Q6YSn5} ̣qWE%rX&6+3ϊfC4#wW*yK$J4? X(7$w`QVNy\m}I݃-U ό]n+f!G׳1-ڞfBQ@֊˄Ѽ.]">C0zf!${ 8F,2|Ie5"ܘ2gu,"L3б]PJD Ĺc8*ǙQҤr"%|\hݦPV TII9g1~K`7+Χs2Lsbpǻgsfyc/md fFqfH4׍)ueFNM6YxfTCK yMZ߇2Zzmg6j w:X]r&9jWf &|M(Api7*+Ac@ OЙҫ`G08\,ͩkW఑3;@(WP̴2)K27] @lK 'B!N2x(r[fͅ)$!#ۏupzvrzyyҘkf{^;z-"/q^lȅf+Ӳ_ 3ޣ9"Hۇ +,$`T\/N9FӋ6M-\ԔMw-Ȧ]^tO_L41 |{]ic4ɜ04f ;:qvUӸaLǚ Q2Zn Gؤ( :̈́`haTWw j CYӫXyAWEi.YҎ!YuPL5Rf{ҷlIƫ)lc~נ"[omڳ+m@:B_o fd^Y ٕ9wIw\hWvA6Kth'Q: մ{#Y`$Px0mk6t܏pj Oˣk[D;NN/zpceh[X/ R˙ J{ \0ACqlpa68H1xd(ƩnbȆxLk?"<*y`()(Gz͈~2nC(9yM!7:{y:30YMU7nGAvQ]M׶$ɆZ 8:DŽWr[s3c}Fc !oÛ3{Bw}'Nra[xkAyUx{ x>EAN{,qQ#<<۳<2( f2-i;7FݘeAa`(ĊrS.N=dSr;SaS?c=!(WHDAQl}7ed*QOe?$QwG^ZL(Ƿ;P eF*G\q2|QYcg#6 ^x?t8!q|6 4ݢO`tEĻyE.wj-mcT:3j4ݳC~Z g4zi*"zmӒV+V\ 6>DII\|.ifp5>}|`y(`]+xW;NFL]xo,=QL]<炟&Ɣo= 6n>se H`&^lߵ0WDVycNboŻ]2N˞ڽ^bAHdu$7r㢮L$ݹ{_fz"Ϊw#_'U}`gt^wxү(vgZ+#G0' Q"e0U+yҩBeԒYqNgecZ=ޢd-H$=n&<+pAT̵ʽ9|đGz-rX -jw6(K5%ylB8'҄Ut 1Ț GLdK;8Nl W[j;1W΋;U;tdczz@ lXܜU\LއDȅB{xuՔ/x jCT)4_?O.|:PÓKBL +dk;;n' )j.xHERgH=zR5Op=>z6c()ݗ9C3}+{FU;PbFxBT ݚXZP$"w=yj4txzla"BFw4g=6T }tx XЖ-N^b$P@]<ɁMORf2vS5#%A=cz=<4GLfA03ھxw萬eתk繰Oұ8\^iyFr(6#C&!J=7^̶bVtC{3((*E^GFXro[_+5&˜k+ZwL9;ij dzJ 45<'pqM K i0x3I>u,a๥?I(p=DNW\-p; Tv1 eG 16b+lu84aݓ~f8j&&7/8ۍ0;lko}LEJ Q84f744 fj{zky/?\\_z{DA(NoN-h\<%?qRgOKN>EG,1 *AI N񓎊'Mx6}]s}%p쁅㈩AO&,B2hyp#EͶE!Ov.]Ij1=鉤Gv$ \jAZnArTh ȵK`7u2{N`Zs!mCӗGZ ]Gu2%#̻S{BǢӭ]FВKcZ1!=Nq-Ca8"PPyH!K=cmx:=;VlK4 X8E 4U OHwYeK\dxA4Euqu9 gt_Ǽ$E\3Ҙѕ3/o5hA'#8gA?'BKj]{o)_z\?(fSK̵Jm B/5UDt[pF%&toGN܃E*苼,l|@/ȼ\ȀE|LGkQaW,=T7v#^B3-ѾKUS`H6UˬҤ]xDAԭ_~$=+Y U]ʎ. }kK49I9)~)dPμ#3SpËcq:?JԆZB]&]0O]xRU"0̶י{vm%tګ9†f,хbѮRw#GVF ͭԤD&|~$V;XH4YOeX @Vxwnggc8ǧ_Kft~@$ {PrNf\e .q$Ĭ0 QגYBЛ}kBwNTg !;jR>2yfm q!'uPN`X]|]ǁ£;> @"Y3~cP"#2 c\Im{=Z8 Ev$TQq.1PIDI%7X+ֶhVLO Y;0Ϯ<^-?Y|Kn Ŋr0i v:om I3ѝ+%ɅMWroGrGXK .K'[mK,+fůxNn~ڈC@!볱JglVZD95av/6σuS2ʮWu# [񌮸y._}e d\sw RGmSJLQy5a6w$>ʇLk3⬒'WQ'ҸM1uز78yS\؀S\ $:ټN}:R)tklI74V0 U)Di-p3]4i¾5Ul~ǧ*gNls<<|c"u΄ "Cvo7SEuSA'j^[UƮl7L-{HblM"5kMٰ>aQt_ LA]قCw~7sIT/kú/7ƃHY[Tf8>X0X* kǭ$bj.\]":=x:yߔ#41u~joF:"U⏻ތ΍{S2fkJH2=9 +hsw/!z%c[wn _.*ou=^ϝfא6wfvQ׭S -Lku&h*HzC),вJev,f߲n?Dg+?MP3$>"x= 0֩1R@B.f&M?l̯U<ơ),Wz;.D4nF8@qQp,xye^E|ߪlQvfǻ'tq+F1-Ih' I FwLCէ(1PQ}]p-}~I8IהrHԺcI=t12$!zYK ".1lr% - 8DWZʬ ܿC+~;ӌÄ/%ϯF1k0y T-`'jXj6\n@Ԍa xcČR. 5q!0QGsևc?([@3ybvc0?v\eJTt;~'?Jc.[>%u+/!1wn[0-XM |4@-1,#clEwQ^úSdd ҽsw"8k$rA[牝*)eF ݞ=$}ރ$}\f?c8id`!.E3eiOL3yY!YeӜf,&l%mWddz288tEuW LtU~6X[[HdPҚ-, њzԒ}'k2P|ǏMYOp[ OC >\/ӬPӭWz-0Un#]1\xHizw[.ڜ l$(`5צQ =3lX OK+/«'"9a|9'Ev91 i ^Opd pú]-.|Pu~<:yo j(ԭk]tsVhT 0LzW{|489\nlHLA|BzWQ4M2c.fpl4Zp%9"=\'[Чح>sӺ}"Hfi0-^dF K~ ! %A3\W랣m5]LTBi'i,RMXZ2Q@$Yϭl7_[m|0ԏˠMk-=#гqcfRZG-;Ԙ[mJxqloab6h;P zr=F59.鴇nKtz)nF-7_ovBǬzRh9N<ܯ&2.:M_fC 1@$XT]tKUn%r;TWtCu*~/n,lȷ]/il?~> ̕>W޴i[n 2d$lG搪{ދ-f@jkPY ZylMHK\PF{61<5ŋYJ)»8*sm1ϭU0^'Qk=$ 8<ۨ]ЄVk]6;y'dW> HOzE:㻝m+ oƜ,NveIK7^Wޡ\9̓ٷ-#6rL@aPLj)Q#`lWUI0kw矏b&Fke& l0aZHRtOYaGΎKY>~WlxoS=ZFOӂóv&|9:KTP:h`'`CV!Gy8橠IJ@|?d($0I۔Kg(dxW&q!^,I#75xH/]dfn?ͧ@nPake-,o ( <'ݙ;cO+GyDIorq_lw -$L8$SYEc:||LWT;+q(;DQZn '-ؔM/40qgO"wUق}XƓovt,>J6f2ӒOuQS @1)jƇ%;.ڃ1)..j $uj훝? bGw,ֽ/&dyǐu%X'O =Fl[PG_o7rMzT`L0pՌmi&Y4mCR|Ry+g L|K[|/tO/i|gYx~F,fcc_gO&V]ڥ=5*f$S#_-W]=n^[VH,W@j)N[[7?h"Qe(gܩ\+%fw)=a͠y8 g37'0mpowtq! *^g|1q1 )XD TP Ӏ;B_tj9b7e\^W cC7zR3t!r25fX@ &lq mM׽il?=<|OՐj奙b>. \UAMPK'7͠kF-{M7jd |pbp8M5زumyVfu=hy@Qہ~([.Mb {jɀbPi:k?ug^/U+¼xvv0TdG춌[%[w.fQt=ˁJu`G#R*U kdՕ`W_#Fſdf8ռĿq6 }PӀ]s ϚIa5iv1`zho*ypA˿/ ąunu\4GkZ6ń{6x7 ޣ$BXVkSY4̐^1, Cтx`"E%Ou*Y7M1h|A0,I 7j릖uacS؜)꣹[-n h i<iRS8k^ҭ@*fٲ(wt0kǡ/\l8-ΧƪpbڅuغUfR.<uBjlFHNc҆]eh%*)9M؞ޢ>jco^GIO6dK q*ZHV(cf8U03Hy/f9jEq C$O1Hooo uA ꮋ]Х׻[l@)N_SZf9F R-E-ulCc0G܍FT [{S)`7q=cj"{ŬkJősD_Z,1Y=E\= -s<([%I%;2>'z.a! b%6ݩ|hX_K)ޣ+RoaO lezvh.e/sr;3nk{p8EV;8$i1$nՔ{5^~1V0I1~~H.ὂrN2~~, n\ 8.W _TbyL Y\\Sjj*yK̆ D[_e5YBPOg*LgBMkυ9:ڲIL9o>~oORs]cg0!,S=~A~*6{]^8i3ЦR9cS#&AAeu* cJ:õE)jrӨXI XAv!uM_-(="3mELdc'Zf.iJ7 %ؐ9dG $g4G|xl %ON3ޯʓv&+Dm ̞&HҷłWg'bHO!!/&&#m| _8r0|v2IM p7֑j?kG,iwPsvOCy[wLI~ b:7>ȿ/^V8KΛC +Rb ''@Y ^~<=68א%Sh HBJf֕  (x~{!8Ao2UוbY G+SNąP*bᾲM#-mϮĥ;W |0Y$X"+.6[ѱD 9k]Fe4UY~wX~Oz7LB{l2a*HLJ[p"v5N0pѠlaOPsf pw4 _O~ONNN-Vdi.\ҩ.HP4Vΰ=IN;?ſσ_81{w4OK^I7:@=3<8bμ&9aẀXl|~PI0,vS@(?1!!ӞH~]TmZl"K@dB_Ym1~8'Kq&2yQ)ENNl x1o7EF( ldk3x3U5;>gm ǴH5tm]VuZϗJPY_n4aoO(RHt^0s /oSK_LSkMٞbIc`j.Eԗ$!5(nwb# nTz3iSgoWM]_zf7ƫd>rl#y}3tU (l. 9zg!w!e\ gۯQ4?]GCsft@.1P],VF׮v]ZK zmrzJmؘ?͢Č$нgelܿe#+LSY!YKACzm2q%5̢hn=^=^Ceg8Ǜ۾ P4K+F^5wZ5gLd>>q'V/8&ndń~/ʥvr<nV*"?_*k)ЅaVK2וgѦs׋j٘.?\=S^ndmљ3Z!`މ2efOeoH~ptts }]A.Y_%g6qRmF5۹lRoIn?}-|~ҝ,a9"U,GG^)e.}U~(C=ϟݓy\"`ۺ"*.ZU׽@`b[U%* k&e 3I ES3N'v2^`O%ZZ1ڷ-y[ǷVŮ u509bo s@&_E4(giP%A@(B}48y2ߦAH)hA9Aγq{sLJ}}>닖$" >ԇ]:6O<8g^y8|O羶`K ϴEA'y(Eux֏dRw8sJ"wX\h@ L%%h<j7c$W6 YXKQ̐r<؞, Da)nOݑ]jh ]1]ncǃSLiʠQ +@\:=@< ҀEJշuq/]sOC#nVp>ɾ1@}3;2nmC65uTq)/wٽRٕX;6@8s{1KZKJ'5^,Q!hAM,vgߣS{_Jq!=v@4 ;\:2->ïyK_ȇL݇[=`s4\\&ZDb+kE4Kiffx 5 CSď`# }CM|[c0u: n4{g*b#Q1L4d2x>g{u}錊L.`Rem%cOPcxIUKG>PsL#n\5!:iL"vܞ/QZr0Pٳ70U0Cuz3WnشiDjw--Y#?-ᢛ9}Y_6=ɜJ{:&A[l Y.cCsnZȨ<{?~<<~Vgf+hjU"+H=:⶝,-U=t{IiVӬ"$FKd6M$$ܚEͲ.HŬG'QɆ1Yhխ=jm趬|fgᾳa$p9ﰼg- q#m',!E=B)+&?=)82Т if _1dF 2217Șyχ8Zv. .KFU3:Eo=`LAK qYx⎒qo2y| )ƸNx%؏Sd]R(E+֨QÎKiTAr NCKs ;I96,2 y0π##b>/bZR<++jl1|5YMW(k倍ff4MB_ݤCK޹-t󦁿;:[ǒH1OGeTnٛuUL4ՓbB?f7Z*X9m-W jR֌ IPav+*dOC/|unf8v&i{h6xUWH>|h D7EE1(h-/GsQ*iwpӽ'~?DS0%2\G0incOvvF_s0R9#mr\6eA5Qu%SS7Jeg5$Pt{m*OЌJ[3hAsߵl$/摐z>gI9=51f! ]՛bבȈ$rgZaAyDRӈ{*,HaF3jI!mұI҈S =I#3~J1.Kfo;;Z0zm仱A4]6LM0 Fsn*~ߘ30]BTl"}Qt#R_ :㩛}a\"~=#{@> ?C jwJ))hWC~uvnoo?onfd_8lLOU[No>o,tLxƫl՗q&}G;"ئ&lo~%o4ȃ&Jےχ{;/m?>e czk)3]ţ>CX}txqʞKjNmt4E{@vVm_%̅=e8UGf/)ͤYs4v6LFnGfdgP4I6}l'@|=4/6Xk?#!1cZ =gGh>sW.9]d\&삥wz||zI1:dX5䡚E Kb eK?|Z8񘮆 20"} BuqZKlTxk]Hͥݽ@.Jshiq=&9X eҸkjMܘ0'i!eۏ*8 rM`6y49_H0Xu&vZ|FQD~U,~đwe]TnYI#԰a'.;$4B3`&/i:ǐZ5׬~*S:]29^{e)(S4[֧@N\~K)G2V [ {XRASsC+SE0Uk@5l4'!KўD S?(?0h}pubpI##BowU [ql|QvDz W^Y va*_-TDgֽ.O7!(B|"2 ΁G` LtC6]wg,aӢܓwB^rtAauFnRT!ʁ%x.d/v={D*8PK/d@ UZ &Vo-Y \#/ 'gݺôY36}@%gW8] >"IikU_VPfT4hT[}d >|jƷ142<8ˬb ,-9_nڐuQk ɷ jRd;[ȉ+jssE:/D6G6՗$Ҟ㞘 w k.ia,Fưo.R.(q4AiHBr3E!R~&A0o*PV]_JO> {UR|cW{sL cOh6f2Vvvi 5n3tx| z[+dK|k;#hV,Iw6xji7b]Gxq; 5_Ta~&[s(w6E f#M %Soa : <"֖z~a]3EݪJ8l#K`@RXcB_"2!/$gk7npz$hhtHk7z8[wH ^tČ)큗f2΁w{k P YVO;xX^Db9NS>[Y9^IjO7FPΛuQS U>QbR%QzEvSҸ`2%ނ׬Ŋ000B/ͻ-Ð 2)qu-%iGEyjPo{'>& X4dDc*Nx?8f ?Q@T5<߮UsQ_j&#tM?h)^|ТBF= kyERGQ|K.}cp >xPN~:+q[}C8?n{TX^'aÊ)o< t>dM\6O]kXiY8@j[,CG?Ȏ&|n@GIɃܲb55ؼܘ($~6oj]Fi\Fc`׳@!9~ٽ|w`? ɣ[ftnݱ-axAiie'JKFLdE f2-+-Yh @,?覸*٧]:Yj~+X%xr@TKOs( ~}qMSS"{P"~h+GLw˰Ҵ];u";3ޛ2TlX8u 7BkMI1W ࢺy&4T'VY#ME{֢>hm[9죌SХ6q`Ji$#YV+™@O$vE38N{8#;K~'ʻ\\ԑ)xCJ4!Ϯ>iIL_WӧAQG]oA%Zy{Y&$_ߋޥ"O|mή5,.}ǿŋJU oz/~xb3_3)Lxܵ>oѶ{oQMLWwpĹ7ۉL5{W@cO^^1SG:.=ї<8pm]2Mh 5{C 膶x ))J/H4M!p \0}C2ppz\J]a WYU-L4I!pLMIr~;J|V|z5Mtoc NWn"ɶll(`LL Ix&Z6 )nМ$lD4_ Hgm>YI`Յ4@{fWJڂQAQдC3X +Yq!^@a!X=ڑ?{nYyU> So}ˀiA9ѓ=22eU(< { |4+,jNK]1J 5H1*C++QK$dْp~$WJM3 sm:ۨFٴi\IN8춯Zi։/K?1'ieWͦ˦HAr, gfY"ftv:`>}N9 qRS&tW#]\3k҇}%@jx|moܴع&na<#V=7Hޚ߀Z]6M Zj!Z˶؄<.*/M?nHΒ }ۊoN7zI0Z#`aQ<:3ј; Q[S - ɴzxE i97BpDm<zOo'sc5Y-/LYҥDv<f\:s[ZZ(UuK<:~UQu"%_!ZE8 PĒRZ).cJ֡\%8ݺE4~=}m9)3yq UFӵ\l|xCcB1uo9S>}œ*ym737BtXM>~E\EAnpXMs[2"w /d4.r0gwW"VCHvIfW<1ޔ#au7͜ӓ ϐ.wu&"%x%$1/=OTD'^lBFN.A&k v;'[PVR/ujVZ%1$+(WDh&ݘ#i#/禲W/tVPeW9@ (,ĔhcƦdžrD=I4Sf:` Od6Z&k/H}zkI \44p#a"N31s:+&=O$j;ldVXs7C96p,el)Wk*܎ o,Kh5AY@Y%[t_*c7eNdҘʨh)}wh/G_FVIYt˔!Ǒ\mj{wkcaB:{D-yc g㱄Z<N/_um$[@g:IK^>Rd:KNX(&w@YjUZǎ}++3|~'ˡ @Ϳ^~9_?s~{q'RI={]Hqsan \k"(2)DaA&M0 cvHbR!c׆#CM|yPm2n'09l&o)|+T!q>35LMvc膨8_yoftB6?[wLc+^$<<;;>[7XWX^ GJ"T)Tpn՘]J')S)NBF1p97J{'>A8*ݚR2?4S6D0jwW ,αr4?.&6?9jeFc/6U{%/% aWhFdRl`PW `4y32M!Bn1[Kբ'SBt.!$3@D ~L*X3rx%_o?ss$jw mZ33r%D| ڋon_QGnLW5AvdVifؑ:b"m('VBBSA4ÃK[jի/-NWZ %.]wgmTkۏKhZ-(&u$'Qܻ$E`)JMaP TL 6]֮DcJ/,BvcYf gl\m+;д@bkoUr`w~qz~vs~Qwd|9Noww_!R)*l[5ZsZ+5Op.ڽcO>}P@| ǔT9Emʵ2P<0( Y/|pVo_aydeY)G/԰ #mvW=NbҤfM}a0r:ߒ&8@/ j6"Kb[:a ۹qY {p{/qa"R-Y?uE .v?6-OE-Q^47XQF)~*ݡP1¼ytboP@yڈ6ߎJ?LT7}Dih>zS5ħKoƎȥ,RqI?ؼ7m])h$P:(Ϲnq|ijK/i! n ]2̟q!AZċ2Up_Qd ԰e˯{TD`Nyw?XS0zziLl'˫B[۲ң$H9Z`qg4aVʦaIJY/Y\ĆU+h^N }e]>d5b8%Q2_[_RiaJmdaLU o (JUp{d8-9FB)TPx:W.jQ.߽?Gћʸ:eZ2w?mWUժWbuB~R ݦHM]S 8%LKPS2 |qU8)@('KXKH90pzk Gv$ºZ;;ʾ=̀p-Q=aT'~!ΰ^Ix=?ө|`zow)j{C@Mw6ٿU)L_sWɑf:Gʪ4?K+H9)3#NZ{Z`ݦ琠G:/QV7NhgWm=Aªzx6K}w/w7_ofX(A۰oUx((ڤriR]+}[ylo**%̺4-ip5DX>Ɂr)􆱂ku Q+J]RM-u LqFʰ4ئZqIjiRng爻ș2T0B&9nz1Fр0X2-NJQ,p`WA\!춒5Q0.-[f2C$R%#3A^/NBXu꧜~%"{XL{ \OAw?m߅%h^^ύs* \븮]6Y48Pƙ#BʣZ[ٳ4bBSHȫAШq"ږ_| Aj*t,@[Sj>oQ^)W4UL+AŰABMs_.H͍7mpI  f 1#A==ދ䢉hT#KO(?[NKldž R}u;|2h)ۭmqz ,8,ѾJhfS>(@chr\> KowpǾs4 A{Mꔂeư๎]H7 ݾ!2P04|a[͠|y8,^b 8Ib'؛-?M"6Z[-ӶBs#{tYQȈk{@:{uS6^@'BŌYx,IxyRmϿjJJ%(%RÞ9J+DȱS[ak[]K NE7"IMr-ml $ >ANv%2mlySӮJ&-9l:C+t3I;T* MK ijXtݏ5\;9tN$|tK9+}ۗa*80*z+mB~K6 W-coLljvs\v4-U?:<|5VjCɣ?"l (cZStWߎMH`({WK!znXh<µY(uzoOQF$3-w͙+I* _K6wym>L)hk(鋸UETsDt%ف;v:v"%^A.Ink}<&G@b܉ιPr&LN"Oaڌ>TYs{)1uvNL^P=%P]{{╣Y+BFE\yd>P%ʆzl ZZVY6. u=YTw7_i|izD21a܋ Hzeui2m-__oZ-Ȓ5^ (G_k쿉IHK}S҂^0}"?~Mu8|`AH|sʴQJ&1S=QѶ?D٭ywEqԐ1 Et5ωD&#3Y!SC4!N/7F^_S8Ā0O[j`kv\hta)aYi Fv_gwttd E,"w$BWŜHA0<4ͷ"XX<,eEpOyK(`ooͭhL3Vi =:=Q]^ֺpne+b7L^yB FKiGh)_m e:%Rm {p܃jbs.bI$ st'X|#::%%F4[&1z홀T$Վ-N[M6//&Qxy{Vیw|suOTWta`Aw1ɮD~ d"VGI97>5e Ώ{uAK7ɗ6'Nh!R|np̬— bV4{qЙ C3 E}x,FLb4`kDFr3ԬM#8eP +q4#:AH R%A4Fʪi%&<J-Ed&{)npv+^jʎQ I1+P6JfќuZC= 2LRE2=^^cX%q O nmZGyf0Txleo}s?#}b3K>rҐU\"{ἀ8࢐gJ[tMzwG:IVqg[_QEe.b,8 dLB2\Xٔ~V:sռNYx2m:2=mSIq8 Wi0bI&88WQar:?'0U25$I~BKT0%t`HK<G:Bo6>-2 ՝fJ&rM%|UQm*\(;{ɬ,s')wPv!˫]l5S%qu-B$_ ޓU.9iQS#\Wf~~i9cFs?^ۋg暋(dJJiX[Fs8zTWYlJr&KKv4B ! :3^`fc5l3n.YF`"SNsm'#Wl^7b@~r>aXC*L#JB#Ebt2|\m][ivy%W fSiϧ(s"-꣗8'A'{<2iR5[0 t,m{k4bs ePx{U,GGd͐ا_}]$?\FsN. ,R9 tr[H3u'$rRo듾eޢUu-d13!Ib#Ql7!|E$9WiB*CS ܎c씺|"V1BX!]'^(!@̶It Qea^&JF. 4ovD+2ĈCLyZY|< O>T^.cR&X04hҬ S##;r60I,*irteO7QeH#R*ߨ1_&$Oz;E)Xyy:jgQѯ?~]CFA.P ~7{&$2Sg\ϻyap8t>*g{ ԍXUr+9+};k NI"pqc33a zByΉHƼFNβ4{HB.,ƹNn\$q>5SNG]·3*2ϧSWj (ݕ(srq"N_wҽLȩVe\tQj8RCD1~o"H>Z"4|JΠeM-^ (6r=hkǐ<7Mk !A B{|>(uhb[&`"Nh#['j8l2|P;I)ؘ>%egI0T׬UrЋ sZMUaZn:?7Bg[pYp}HY8١A?{ ut-bF4_f(U{BQ%k4UeK2On4Qe0}t\p>V@sd13h z?EBٝ{ws:o>}rhSgܙ8#2zpO!\lpbf-CsD)✉2彪ߐvn)i+yae=䮗՝vMN>T+y9SD6ܭD `U: 7I4qGҪ\JG}VҾA9%Cܽi&NuFD`f??{iThwa;A/Jq_25. gNQ)\ӡ ( -=k)J<Ղ9=wX7Rm }fc7({ŽUR޷/]=;N)ROX=JTAě# aզkau: ksW[$֛d[A"p/Wb.c2(7Wa}V;;&m"rWzP)x͎,[D`Wlqѣ jϔxjJz|gSjYuɾ88&3fkNqI:bS87ʳRnRD?)FBL}Ja D'$:!rHhL{~ft}?Y`W5GERoAf:wQ&ڜ KN\dr\'[5:>3LhBJjI.h/ýyO($D^坓'Tu..\f}xr#;彋.Gr*b.v:6d-,K9΍S;,ؕIP8hу;Wi f>4@7);zq߷ Z>sS }mջ>˃~ Xrպ[J#(S[{FυgG+1zsۺiWw\&<аAv?%U L1ϡQ9h?x{5AT2^\3t\:;bX#?lDfftT{S4,4nR'm00(Eo<$(ye76iԿ*b 

["ۣȓlvQ?ΣUp ^> 5Z-зۃ&$PH✱Ț_uBQgw5.^T@?RO(\TWX5DxZD /=腦Z:"cԯBjjRԊԦ?'hnu'PѯVW-i IEXЃR{z{A'lꢹgRߌ1$ʩ.Hn{{Umqs2NLn jJT#噒=֪]p~} ||*3ŋ^n0^YDҼ[Ӆ(槫4]0Hĸy U'l;:y+oOx0࿾q`8ڹnb`;a+=](f$4 fɝV٪W ?{`ɑb#_jj"9Jϛ,}WţF=i!搑*1@>S95mkC?s$$'??Kl->!ι6ug( D "AIzRq imE+zP\Tx325C3Cgi2Tt'. .+xɘcXbwtafZJ_HBV_N%Ϝ9"s`v^5%O\Rt^mˆkœ)BJU=)b}ZÓt@B#mT}[^6Wn̨/1\y]qHXrϙ/}Y3~L*Hvlw-om0נSLƑ ,tC{m|G(sbV()l ׄص:q{'kFkj;e.w4 :+OYZFEɏ;ӋF8PEi> vvhvrRd3J`YhJ:\NkBFY t "r% zi`%-a'c={ꍧ,nuGUu( i%ߎ,~<0b,uūh愳?ҖdKB-m<ұ gw:hwǝc~994/Lʿ}D =8;24}t`q:.IuG)q8`7''RUKɕ^C63Ln|!~pJȌ[P罙HF9 gXl@rషHAItjw?*HFc*x@y?Hr[Y X IjOI?=XvSiXϲYX,;ۇ;4k:CjKX~?TYԏ`YKiQiT_v$ZMم]b+t"7&"xl|NY^lr]>O,T7㢎6lZZRjw18?z$A|*gYwt3 Oչ\k5F;L#gE2Ŭr"uƔa^8㓇l1 9Cm:ѠgmڼrҒ6 ~E(&kذjNga2g΃)zg\.1L.V*b3mRQr4- >Gl're/@,U 5j [Zׯ"e@RF*%YZfdc 0z8;e crJyckez CgcTz&k:'P<*^c|3{^Q]YK&|RQ<æ"t(Mzs1s:D:{U"j~^'[k7/:Ca%p]5۲ۜ=Ewl{TP~,+5?u*17k~_'/<KW絋|/[d/I04h[rq)ܗlȃ4=xӴmNWnH ƅ?a Xd5^xH#_<>vYB`srgEKI Q@kDrxwdeVB:C`K&2!"5kuwҨʒ"Jc$F 4i\f=% qF,clYҌK%ʷZ9BvYai #¬8txy޿.~Ź@EE޷ Xr3GEh`wowI[$UD-"GMSRVlOj<ɿ_͔2ZbUȗdv>de(?K7]nnZ# {]LLG#!r6jU6%P Cx0`:&uGpu-S"Wֳ48WyoEy"f✊qR:8JVn|e mDV VmD YZ:,oS"d CL%+gk-H-<)Ӷp~^&O)`͆wjq,s݉kDV=43q@'OwfkJ݇dpNZWb|tC%H77xumYGt^[uuS(v2иoXZQrz(JXxn Vn)Gf00>cHJ&.s&V:GQ?\M WVs:q/g/a?˔ƽT5qV6kz" ~HZdG{ L`?- r*%Smj-- /y\]U5O]wycsc)nGonco#W8y%wxgu;7 n>Q+t:/o@R@+ t?E&[遠"Da-ٽGT&5oRra@9>?9Jgqxa K|7t0T(PHe$ d%TUOQ#"ENЧb$r;LՅgJoaV0)k0͋/+qיNsHYڰ{CY 0lZbB,prD'T)պ$ wZv! t7bʈB6I$6|gkufP!%fN0q1^qt|\ 5NIg;$ 4)*O4z˔m[M[5mţ:M!a ~G5 .){zC'MeoĜTAԚ,n-w6T>[$9`;sCk^Fh{ =-b-繖ɪ53MY@bt-G;"5cRou>uSMF{VZLw~-:IW=\_,2rSr"5ސts z#:$79>n+m XMc]04A#ײZ)9 Aƴe%f= aT{alzt0Ȣ3 (W$ɡ@c(( s- 1UJu +g @6GUJ@4%NtRrCnZ]QN|H.^#߳ v6PLJ6ӢڬͱC fGJHB[$W]]Ilu #y)zSrJ[S%𵮃W]1>ć7" 5~$_V*rbOL?Sl a1JyfA٬ӁE97?c_nϼx jzC(\ έ`n>Oۛ}q9MO60-VQ0f>ASHV6z¨?^ ufe>H^OcG@5. 4m䦳ǡ{`Bj_՝Zĝ4r b/So"9˛Us.0z*V$¯thCnk*=1[nGaS\lZ8Q]B?<]- M=$4qAH4D9lKSSx&mp0'BE0ȆMl#cw1@&MWq`4+p['%{`|%KoMp:pwL=Q'" 2WAG^E'}6CAߋ' PCL\ @zPܙ\or¿r:uۗbnl#>LxILVDhp./ @/S7/RGWc$ywM^n. d>QQoӡhBus=)yx,H@i1cyCq;n΁E11!WEh?BDZv)$yn)uKkUO+aRYR!`v jF*LreU |%6d#8ԗϣ_}]:g`ca_/̣Sp~0 @(_ "č ̀k ?8G[䋝_98 qA0١;+*D 0 Em.s:#SPgWw8է^WKQ}IHNy\DҔlQ<0E<2}yŻܘWd3dIn^1n;C-Gd#hN Lpx"(d| ,PۉDYhX-t$s5>MRBp.9]OG:}~ &IIꈀGqOcC#Ĵ:d8Rͦ$"AD6m7+V"]ptWv42nC3X:A$bÕ-"-&[u\Y#_}.9}zkIM`Α[ç'h8wzZBŋQG`XdeˠMi4q ju #!̸sMQUCjձ}yV rO>ob߲٤c0R0fRvee>%X5hfO$:WiW{h8RҠ@ e4Wq2TY^)''3Zps@ILm@`gLf]o*}LVS%[^=3i{ԴJmP%ou/oCA4>/LJ)o.N]y!״Dl68:bƹJP~X + ^JJ#WP\AHѕOBAE=u>(yE +!w<DBqs)P],2oְ$- 9jI=%gK'6sz:1RCU>)'i 1C1@w`t2(vmgCN0ָK㘔XzP;b_wr'9YmuLFDY{>Ijg)d7F:^^S%R rL΁XۡwqM CJ9Ϳ; ؼ9+Ц'ez:#W~\zE&R9PJxЧ\8JY|K=Z1}vW.tG! -X#ӷ15öO2_I:W|5J,De_gg*U>ZT FJ)m1:>b}NKCf17OD`%gTۘ#gxUHe ht~á=Hg yKV"Dzwt*݆X'3KX༒fM_z+R)U,IOL F$ NmQ4݊=w? &#^RWXDyglu=2Օz6uM7@! jRp zwq_AzD)buLz{ HM$_0c#ݯ~s-֐@+fALL.aS,T5ӽj0\e{n \Pkm ,aSU~lT^sN+ n4PB N5'载#Ɖ23/+ɾV^F͆/g>.*4e٨*Hj>م?hޑ=lu1#-#0؛U8,4rJ%!_S 4rX*hQx.1@*Fs)-s-ܖq"^^wuTӂտۤ |G+hI פ]Ÿ\(#?jղ$8lbLᤘQ˪9OzP0rj XS[)۽c1%mA¢YiNpcqC>m 4Vsj!1ApYe޻/1pxgh0PZ)zQqSX!%GI0RWPpc!wkRjK{7VFGFgcμPkO݋.Y1Pt5S!3m%&7t\W٢P$qnwՙ=K+Y;8|L g^{|Ӏҕ+ ԦA}{=~(9?a·vK E.rY3 s4fLWAF|Pj(]}:ǟ%Zّ0^\tޅKQ5׵a,/6M f*iM"|SFA8&{@rJ;9ǘL-}_YQnJDճ;L9Z !gCLUfzܪ!e$NtcJdU-?I(;>J{XNq*_:K]a82ƄSP9ܪ?DzOV|MXC"hu۰f2p0;I$m؏8݇JYe;iǓrenO(9J:3#+)$iΝFIR)`w f6 bF! w|()懓ɋa]lUZru(˾uqnt% )LVEk:K<ˣ堢F MLo.I@m(ٝƛTA{Q Jifᡒ_^|!LM;r(~ɤ/DP`PwEuy]bj'lУ%CO@=Sr^Km/=MR7(GJ  W>R(1LNsO_ևh(Bx.I1g056m|`p (Ȳ`FGX#TE.% Y:[?q8jUq78nKL!7۶5hТ:V?{=5vf}WvϜ:-{kmbNT`D 4rml\ԕIG v{{3[g;<ZZ7%]k7' \ vj~~T.>+ 5@]k0v5)Ä"6:tD`*G.wx0Utv֩R.&ʂ;YBsvkz)N(S) OV/-8c!Vrﲞڴӳ߻onΩN'[p$,r3UW:㫕TJXԛW 0uXr_k))>jK'ZC#Ϩ_ [ Hq'K0x>. Qby&R~R\3z)t:zQwףj&z8ERgT,u+{~iN_s ²585ى;}Kj2©{{;_O[[mmi3J-dSJlJd|p#l#8>DŨ 'd.zna͡cP9 cecVI>} CwN7!4Z$U'@}S7E`R$Ch0aw(chzJE)TC*f_,Z=QUɜl+iDtmyw3ḥ)79V-źi _s?;KwM&DnBJNx6S*l$>xOz4/l9?qzy4$ZȓX$/S/g(y+ޑ0{x@UU(49bUJs[cM $n%Pzh qT&V﯏aeߌDId5=BPy>P&pkL(E@ mI3ub6RLs rؐ8̨ Q~z ]Wpg05`R90{b4B˥V?/?7h~T|<[6+`(}29UTYsh`@-fq1+> rja:MkQ[ D{t}ʉk!sCbnYjk [\x?;GxN.uw/ʄ"6cDu?k.uڝ Gl2̛ $a6IPS~\%rآ!|'@%S7PX:MA5aj#No/]a(+lAq 6rɚ!ȚX`Rm &R.ѷɿTjF!fDK@N V'Пu²oݽwe 9t8I}ְt >SxmZE7~h, Ib\ϺBDoKTD g.j6典,B{ic= *FoH*ǩ+JPpҒvq$FA0l X ` +^70WP& F t&#̨zܥ4u6hXU>jZҵ҃t&),Lc[_{ Y7[R^ 7(|#&)Vc?8Nq-|" A[DcFpMY_R>Zl6a0`5 D% uĔ߄ O,`- "5 Ū/ٟՠ(:%,l*,"J_D0 />qo-6%ŔCM v1針S iI 7 I-\;eCLJMRTW@!JV]N#*Ą[Ji)e,d*o'E6nw(]-SK-jy+¾n0Ap(`A1p{cu_)(y?Lf Tx+FIϴ//fx F1B>Z AY$YfNPQ"CqqzK4:k 8Z,3 %.bv!gp1JHϣuw߃\sѡM =ݛ[S[}JIRs% 5[=ɭa-lLB֫Y`oVXdůx_W ! en$hNjNQ]R.YŝȱT)eO /؞X=qqlV+<}(qD沭 HIJV|:7 MGY@csFYʒAOzs^wT(#nm:zȋE+K~+ 勾ޚLOZsvbYJs&uq$mV tƪdm {3M+\9-̆04*Ήv ٘;{G'E#^M#0?l}8l +?z>ApmW|ާs)?*q*\HT2SZWŽa< mKnFXƏJL@sFDGd^Ϸ_t5ڥo];AS|-!>'aT2b?I"˛/UzP::n6HFh@n+Ya_0˜+ jǍ/$bnTq] 8wI /!qa,3мH22‹Cƙ냫JTjYIՉٽAW܇Nus Bd; բ2VCjaKy6&iBG:սќ8njHŬ+k3PE+*IV&4bp? X% |g*7~<~@TyElx,^c(S)jm@NzVNg CjiA4 ^d+y8,H끨[PKd}6~T3X3ɖ549a_@F|uz}4Vo2 R)kM@ÁfWPF)JL+E ^Weoc=v(5$3]ñ)_6-1fڪ,ZvYi6I8mIk`C}5l,pٳ1&7=TWϚv_d2%#b5=1rjeKِ̦ۜLvT %Ȩ32TmkI[@$sn:Q+MZ69gȒ+sr#0y Ɏggn% ?L%y?H\j2ktY{9R1pAHD"ŏHF&d%E*Z4ćdddCm11zOUk DkGջj۠ޞGG"P˄߄7`К 2zӂEG8 :;u HGϊ!*G22@Y4;R~: r[g|-R_QC\$Zg&b8{@µ '< C0$Sz&ґ%z٪aɖ?Ȓ.B#}(j)D,8$sjYQQjPnF2Cdn+'j2btn|=A$OCl=}Q@FTwrAÊC C]3dsG%ovA% 6ʔRI=R>K,MiN Juf$"siLg-?D>asOh>IOj!<+ Eh$lF_\؋Ϛrۺџ~N==IEbˈmwa9שՑT+6(@K~%}PqieKTzaN*ʷ 1؟}|s>XYv2M1M!hA.t,Yr\'[5 sɠEX~'bV@iCZ"& I_s]v%O_rhK,>4ծ#l6̶ꉂ UZԅPd:MɮZT]x&ِW~V(r^ ibb{ut~yQ(Ve5d˃ @ípʪe3"R#_ݭz,חC%G:YAzHI^Qj%ňkè6LCɰ!X\ͼ|&2)I&=6/֘PPt4&ZୗV4 |U#sT/_/u й*qk{ONד`v*MjRN Q*=«-NTzzw zz"rj] j=FѤje\d1/٪#)Lsj\:/OqZE:|Jƻ#MN.Lxn}3lKTwU~GYJ{Zsj9T-6K@Ԩ!ڴEʕ}ΐxL+`: Yڲ>3IMr>u+5Q꟱=#2wgT&󢱶IUkE L/\@Z#KO+8ߚ0yRN^K_}XkIFBan9pkN.1t.[븶[ L^~|zy1TD]CV4Of~tdx)ECtD@r)'|PH d;\5/3סg}ez h ?ȩ]cУ/ ?ʜMsWeiq~+ /c+Ư?_&Go8I rL` Gy^"Mq1|Š+.HTDm8))qRktfiW]SIJ!]_*s,mV%UПLD}Ojy phQVo)z Z >E1g=~Uj&W%ҿ6'*`͢`W:r~~{_>9gw~H;#r gK- $* ЛNe5-J6|˚*" #LcO/L1Á5^9las@iY˞"CGr q6XY'7y2Q-=(qWeHx}b%)xl`a̭\v䚯p̓F}F,<IҎ_1j)ΧDS|QHyjor9g[Қ҉μz_KRZ9jn%P*Kg؄W\Z%Ŏ54)E*U#u,w'~;EM ZD|qK@Q *qm}88;:>_ɷqu'6˼k gp ճ.ʲ3^#DuyWnvr\o LPpESRe^ cK7^q\]udB& Ӑ\P`3 NQifKh@5N1c7\R3txYg脳kܚkY&d%D>_$WFx;RJfb :D],C8FM+1[p+ CeΎ.`X(6sMw+I/+J]-uj/#`}H9p}D(^ki~ *!.I6znZ爅6P{o@i }[Ӓ;+UC,eQ⹛(n3UbJ8IuL,~))Ug ~5ǏY0?GL{Jmi,vrqEL#t29oZoh:i6L-6% ERtVNn D !_6ɖnY׺je{w?SYyl}(v G~kֹi].hU_)PS 98ah47_޹e__"Ԣ .Mdl=v,篼"IM+_lܔo#s*Eð3$}u2P3X3ɓJES _2%!`2^m=Բ.?{ ˓/V;6yEwjG@ܓ jH1uù̜"QHuRnJV1˗ȖEۺXE|_/-j@ӛ"}v!y$F3FsE~"t!D5lFqWN#=yzԼI!.FaifQI!H8; 9N/a86 :n8k! [!ɎU8s2%t_A:K6G^:Fɿ%fV4n,u]Ri(׳<&̍>fZmˠS~?x\*Q@r^ &rJg?.|r_^8 a3Сlԁc$])v{bGE \}f|+) ]XMvOS`MCU\W$>]NdM'S8E*z[moQ)j~BwaIȾ30 6N1Eoķl`\+|=|͢V5̆<^v>O&VfƼ1ݝNp2M/1"`²<>2ZFjuZG/L?Ȅ-fK2fwx͗ʯNx/?HLcdzAHq"e:kb:4S[^iTO~AI1VЏmueukjw|K6V7n s*G&9{fMT:[ ̘KG@ ns؃6JJM[\4gSQŢqH("-۸gq>Uo$Tg Fՠa%%7mRP9B"Z>&;Ŀh<8ki$* v`C/̈?P杆].tcxʧvnDqMwز񠸅*"fYmPVe6 IdVƺl"4鮞T7fegEMbHnݬtV0d G߶_`)g[H`Hn)xm4r~C[C41T U 3 QI 7Ƥyf#oPxb`Li_ f7" P &o=C}L0h,Nn?|~q_fvE.EUXv ^"U2Jvg:II9>_競l~n?OaFH" 9ӕ)bVG k uN jƏO]jt:P2<D1!iO~_|V$G[[} Vȋ<)Mg" A)foL>aTJnQ~ 2ҽ4 逽{+X3U9;>GW- yʴHt-Duٶ6^nΥ>Cv[OUIkW-X?"Č?zܑX|dC+oLQY!YOڠd{uJ6Qw<}Aҙ{SbOҁ3-ÉPHb%o2vJk, =Ȭ}}2H,2a!0BZQ |͟yDy=WeڡC/{! dsgyйE QOp.R/WФ4ظc0:sFK:$]8;)q/Jf;]e|dC+c"Y&WQ*1t6g;՜mI #2SOVE*ȇ 瓋*%g9=DEDd\Tʐ/jF݊n5ɡTZ1-#w^H (~jlG+o46^*mF떲&oV5t8&GmaR+ |ԭBG 2Nbw4ac]У'4bhePʳT {ӐcLJu}7-Y3D`}i&t% h˙F`^q8|O:Ic_K֟ 3Q ?fiR4@aϚdF)YVW,)R"uF()O=k0 U{+u, 4εQ̐5ͳw oKIv|Z6Y۹q~ "0F]t>% N UuY)ҩi@od '`$@6ݺ zu&Q sl8O~1@m3;7nU]65dqUI_w VɦbrnMGJ꒚Mʼn0 pGpkEPS5Ò9{&l6J1A0V `]a`oW ^'qE_=K `Y*W~ N F'ud8(ĽgZYF%G]P`}u89WzyQmkrbxKҍ0C񑲕-ƹ L{ q/< ڑ) O>N 6aqSv.UX &nV<nBp͒M7lÃ|/׍rgϢ`pzE}m!&F2C,Skᄥ}L*`em>ϠXZeC1 UKG>s܅\@IխDZjC LSߙX(-EKSnRä4t 7wBg@u f1?Ơ]eB곿6޻ ?)~оF[_U^(l](j>I_[q斉5Bifxns]ic><vOU\t0P9יdNj1kG=4^9awe ':Z\kԧ-tIqwLas´ 葨xW"4֐v26oiK6 *%_o/>YcJC'RtM<+H=j⶜,k84P!YeVFj1~6u? GZ>'`I+ ׌p}eNAlV{fR%:9ԯwC|jm5ipBifEzX&6pdIpȏY-hiEK2z<; 8 g3ZZ WNZXM4i(8gx2ꔦF țnw`a^:<r HImV-f㕳X\9ܜ;>۷_/J S2Uݬz 3d1GME@bt]~Xs6~;JK bt~0) 6}FX/_O.>\__|*è}+;As@8_@Y$ GA7MJx-{׿ O8'6~Pƴѳ،rP a}MYRda{ dgx{גB6go D:/v(Oت0& |b~'ׯffNc!macF5/MO5*_%_08㴁(ƐPNAB+ 95ۣp#} G"%XaoI'lP0L5KMZ7Fؔ%)TG6-#S4aI,Wt r;Qnr-}r<mT\?SdIeõ6Ը·JNbT d4_ߺQHFҗ ~FgR֒UaU~`}E7eӚ5~.I^} ط/E:.;hZ'{D$'(slԁ ]Zg:,ށ}t6Jre8V^o.^_ʒG)C@LDM?x۾?^er[&92z"3AztC[_K똶4AZ|+YMc*ST8Ypt]$:G tHHёT-ϩ+DJ>*9E]x}~ CR`?Xʰ9RN:;Rrz4 Yؕy3İirOVD?h`$[~@0SLڇs%W!˵Mnd^DcȨAغ.c ]͢LCm5$!wnV=AEllqMb[ZD-ba%2\F 7+4я<{q*;kE^HKViާkc>9'^i]55sQot|DʑYOֳ^d3K 8; sYykMgd!ج2 +#5yd|MN^^{ddžb@9ȥ"YCN6SeooB>7ȠíxXpq 8Jg,UC/I23{C1'U Kn5G\p $ҖVuUgG^]ǯvfĒf*'$],Ӑ1MT$EE13QDUl'2럱ZHǦ{raz^h&Ưa14cT ^ S9*JaVPH=UGb8TS f( jpl]NrdhwZ3- 4V{:Q*L%IdF#I!mRIRS ͤ!2~I!sfoN;;Z㧭^$mdBG]mlOSӽ7 ȴ![fc.<+͙  =dl"|T#Mb_:)zW<5E*%p)oIS* 1u%6S֞q>= e LD U jQǻFrZ<9[ 4@v瘁"ad\+X6W P! UF&u9qW;]Cv>/V"'mxF^DުS< лYyGq<6 YF6FhxD%B(Rޣh9xʥӟXaRXFMLO+-4lB( $ŭ-7[q6w)fo^l{sĕwXBAOV*OS`069+d[HN~C蔢<0 k&-?&5;P~`g'DixC 9=]{T)tFƧ$NXWˉY p%\?RQ̝%9Xn!#R>hbm,X \ o@QHmy[yaYhPA+=1F}m/aۢܓO^hg O: ᇙjx`^!ĹJ`M^FD b/0e99Q]{cz/1N%xpp!c-w_V0.M}R ki.;j(v0ꨫKo`^il} Z/li8r] 歑ҙm*nw]( hՃHAAlrL6q/;QV `[J̱͊H&<3nĝX6Q(^*-G=ܠJ:1[qE]#̰K]P %ykqћH⍫7\ЪMY=bɿ "%whG.\ҁ4*0.,%LX"BVچlVƎB<~vG:@tI `bb<8QNqqR*8OX,)JM2՛i."kϜth0uͷo  SWi8,犳?7@ϔ*`,# 2@\84|B:`E!%$ނ3Hv<\W&dӸ+cSavd_fsFHy>AC֜E¤Io5>ڧ3A[<!ER73H*?ˋHD@Y+) 蟞󫇽&-IWG܇G cدEeK|Jlp4 3+s;jhUjš:<UZ%>)C5Н.x4*@;@r_B=qV7R$حI[HR2X?,AlsAk<ؒdpÓ87΅8| çܥjzhE;gk7 x#xcP3dz6DgɟGefY=nyqyyJ:I+DlZs~g y 'HP>N4&ıRN4B"DY*ҩ*W1IҒ_ J)Kjri1 [okVaE Zdg]aH6f)q~[vÜ/6V8bqOm sm𯓀NIF§p_7Ң)Q@d5<.DsV<r&=*tM?XjLCS4{GmC }F(7 rķbj}d H\~C[xzRU]\<LjHg3 {gcFߐ8Υ`/J9 ˋ7$=6N+ҝ@mLG#ADz#kmC5y{KvPp> Pa!r0&&sGc["!e`<,XM1 667 2qV۴Z#0ŬiWQbXb(z߾?]];m}wA;NBw8 [~K[#O-3ts^iȗ;29EQV @JGSU,(83a`;+FyCsk -ÃE@g25%{5*>~)o3Rٙo?W֞&{aq%L:;ΤeTYX[]ٿf`o $.&As0z΁+,++rfy8O1AZ7Na5'nsvM=)վئa1ՙELk^іwS:6λwL̥5 @r*K'XseqQKGQH8aŒ/AU/>|F:[[[oy_`e/GH!8J,PP1+5T3=zaG~-,LKwPi6G6"瞺YLKKfb.(p+Bh 7 zrNFϵ6^YJFĽB {C 𑎲X ))LJ/hx C5`DsHըq)y\G,UAfM2cg\^Jҕ{WOWm,uYF <d/i&@ 9u 3$ MphTj6D"/) fZgm<byKi@FX^RIF&n(E<_:MR|C(y\3˜Z>8BtbAQxᐴ-GDɄ3GQY5 7 ^e(k2Z`j >B'l8E- B2u'(z+j"9phl-16Ԁ_(SAK==aGHRe1h` ;-e9ǡi_CsBj)AxEgKH:2!>֕D+:`'$4%}*7S0| ,\uV͈>=ݳp$2OxTzSm?dw>+M牯XGz9g8$ghBKK^0l6sM@w{QH[Vܜ"Y*jkZ|jn4_Dȡs]Tnbdl5M?.HRM'-7WzàKJ⌠ %a \I0 *@zݨd*M) gt-*KxDOP2|ajqvwKja8 BS8wY{qjW:`*dP 5 Y5&RW͖}0{LTmL~(h_ښ- qX^Xn)Lo,,{lB N yf&1;軥_l#5-ug8 OMlug*˿Iǩ%fϑ"Ѧbġn[&)x0XZ) ]*Td\!qB>=׻I*њqۡRM\;aﯓp"%_!ZI +[Ns)e`rd,#{ -Y.Zj?bN岖ښ$J8Z7*fGhuZȃl7mwMNNz 1 OvdJAL:FljlQ)AS현fv S-:p hib ^4mV_x`cl+ vϜi]5XDZigq.U;uMj cfȠ۶ +*?G:|Ft*8}S|X_9Ƚ) E>{G֬,-0,8g{:`$v Z؞79 `BKDG ?۟&c-MQ >) p jL.[8:lx0x6}[-? og:`;fѷ5ErV/vn?XN5osAht &Uj$wycL_>̜!5э8i)?0oVgrτ D:gr˟ z6~f_/?2pu5mЍ("WR$%ޏI$l6vc^O8~fidKx*)Ej^?l ܮ[5ɣ8RpyS6}!;I?tI\ϵ4c[%^gf&, L3<9{{ݽjӿ_۽Q1/>c`w Ps!,wf}hp2NUZ&Oގ̔aLͥj𓩡 >l0/X; ].'\O4Iei$L[&[v H8'lp}-|3şXEôt~kL+PL7OjdDRV-E3p(dz}̶O?-T+S &f\[ 7]-#օxrenQpUj$oCFL' \y=K (S;b:G?iϾ IY zcWgV M8H/,j1"`n>^(L;WsOQn"F Y.UjT~/Chl0^AQ}=9u9%h&ss$v {qw$FUo_N AՈ $7 Ͷ$k3&3Mßsç`Bz ~*t\JCzGdMn7wJA R.Vց8w:\W.)rBv%q|L!8[n Cf|Bg]gP0vLH^)El4lszzIa1Q,1 =>1`do>Y%5D y|Yz֖j[^<(Cc8Ψ>P[YE_*M#JE/U6(gv.bffѼ=uZDg8CipJ"e*;E'=Tfh(CnKpW'eL?^.dr72ЍH>!TPx|갸j.U'D(B \vQ~nL:# ~ҎvH᡻"f@bqlo@LE;*OQt wPc z4uc0sQ!a "HD:GAS}CR(Fp}pxPS>hZV@!V9BK%8UI8#ף>rHz[Bru Ȑ+]rNn# bbٌTElx&qAUw[ۇ}ԆMw)!c b >s,vv xV*b?Y@0↥g ˖Gs>!U?-瘚2u')浿{|\b?)s;uuj &̵{\A?gKl"׼R=7ɨ$r㺼f*+lwM2#2J/RʞsY3 *d55pvwe2q#_.^ܶChmuo|^-7)P#{7qxQ\)+zvu1?Amv1BrƠ {s>;nA9=ShjHJ&ɭMGLj/₋UuHGӗn9oHX㍏l5HO@}`\ro7oKwKO0ET~ oZ } PqD4;l^sap} Kog`۽s< ӛe6{MtJQeǰa,oIRMomomUãݽʛ %7qJz/!` /7kuP-Hϩ_E{_5OZ*5ܙ#ewB_ <~յZ@!@ԩF,YB-L" 3cba2@STޤ~Qd|ö.3dKף.䜱^HRDp[j8s 29l:T-!5WX͙ͧaUpapH )dHhS][:ɛѴZ^kJ~%팶[T6~xpbԥ`SF1'#x/, E;!{WKh^=Ux<3I+/g0s~l"1 AZol\`<_cw@.}ؘ5f;aV?|_WsȬ|DDh tc|=#j[TEJ L)dh2̣u@\csq Ln5ڵ3~ॗЌ8=i3Bpz$dS{ޫ^SkXaE2PMj.iUD5ޫcEY*#rBZ*kUF72$ĉTQZft6MdMt]ݹ>i|L 뜧1&(zE̪9>="]\_7-Ӟɒ&_ (G\Ҽ kV1$?MHZKK|߿__Һ:iH~\`oo[u [f"bڜr%͎>eg)Qʼn!#~ArRVd0<ƾ!WD{D0S;{;sL0&zEWC, 3?LAv⎇҅5 f!1RR9ãw&K {"Y= d$)v|g̅.E& C%qC-՝=[-c,Bj45]/O4;:O؋l_l//U:ẹn|yݴ/e$Fsq־9rݬv +HYƊ1t55}Z;/Bx45Xtijgw(x׮͛p'3#5-WO6v^h-2C6pcQ˦T\9;RYzăI\Q9V˳ z?ZcdUeu=+uf i?3QY%g Uw"u8gn$jQ.8wTjA&Ŵ)՛WK3|gRHi𣆆VÂ0=dv8XFKB=msH*Їǻ3a}ݯ޳rƘYB97x}a:cӝaiŅ"d |3{6MqCP߁5W᧫ '+QȳtklȀkN #yny2N`şi%.ZdXÊpiȨ!6WF'{yFFZoԙkYgaut\>D:ttQ;*޳^Lg\?>G I9}z;3ƬQ :׵l0 ~uw)M 0S.3I])C}, `}a&xѽw*9͚CVEV$ 1Iz%7<Ϧ ~׻!{Yx!ֵtnZI4JBWKiջM`5+&ԞJ54yW K5F +\94J*)O2mnDTٚGTtR] -dcèC#~^ӫZ=s)*Ze$sR3׭d._[ ya.;NTs@\?Ո|c2@~TjfߐjvnZA4!\PQ*yEҳNq)W*ܔbA(*;ܭ+a8`eJYddijY $MAud0A}apB̉)1v0N-F}/ [/!@kֻ4󹏳߿wتzҐ#KڕZ yQ|Jdq.~V>Bz36:Y1sdnRp y q<`(LI/"uQFaaݨ/:?'0U2k" Zu;,X|Hɗx |6>-~fm3jdS_^0ް񱍺 l֮z208\T;EXHC; fب(rKpi=ot{%1-uꞽ3 O/; <"hE8~//$iCzKJ\N 0 @BA?("H^Kv?vi+HЩK5Ϧ _X0z!J&[m7}5GJؼ07/mZ ?9'L\?IQQlji\RB_?4dy]1mЮ,x`V^=B&x5pieۅ>|26 /=iI PU;HͿV1U a:@xlJ>7{6ʚ娑&lA"9fX3\:\F@ K.fNARvNQl qZ}w/A>;~-J{7^7n2f2dIVchqVNכAI[ie!^[FỊ@l;>Q _w^6-iZ_ ʣbפ*19Ҏc픲f`z~,33UJaPK!bU8fjη=0lR.<&}X{iP{+#14|x*iPjSa*DLDTP\mD0I?ߘWۮYoI@O28WJvE)Pț2yp #F||]@CKU&VS)PxmoT{Ӕ P*J$d518_N_ܐrs{~S-т-KuŹ6UqcyZ޾J:(BF hH* ;5hubӒVyr<&1{ B!`&?@vWWؾ7M,s9CLS#?ZV<{4ܫ 8Y̮lLpeM`u9Z;,,9LzϽ 2lf%Fuz#|FE =##q}`ۨ|.m閫3/wԄ46p_A:ؖp,G7g7? YUZ;΂^vfjm̿uZ%w h _VTq0˹1W ^~6+Ҷݢͯr8C{J2. QI,/a8f&[ x@j0 *\'3K:Po3"I +ҫYdisfy[k㈱]P앏t)rlG#늿^nIeMBqrCw^_Yc`sl3 z3m2 y,}ZFUXС~J3a 4*d u\6nc0 g@13F4VVL =prz_]_ˏkiw6D)1QW+bI2`*JlH#iFA+qZGBksW/4XUoUd!s#\Ap|s2Ao_\޶\GgoXM〔M0GPmqd&BbCm.)^XdH=sKj9%~=up1 ⒈uɦ5Ҩ̊L8nHL}0oӎ!: |[K!ƌitSv'1{_ 9~/Z}c[wz^(Yr.vduQR3[ ͒Yh*6T$nۋ`hy' `.f8k43 C}~q{]gGۺsaX{$Ǣ")vkߥl]2ùŶv2  ~{g$Xڟd`ɠBI5\dP3.`I:xrׇ{G%62O2V,جQe.6M& ڄ1NwX&<P~& v?Y RbWV>7r{;y3LśVMq1:OA̔jgHE!,B& n4hFQ۸# qci>Ч.rS gaC:Y@ m[o˻ޟCc VkX5.%a$0ŕ#<}!UkMjv]4uX *eg!d#S3't:Z(A1>&# ;ydjR?`"hk+;ǭ==slexntم( i#ےå|~ojK4sPߖnRp&=]$ʄkIYܨ{xY^T\tA'K(Ĥ&U€Ma[=u=@xE˛_ڞE\:6$AZ ˜X{豽  qW-eŝyߵ4$s-:d@d{QRB/"\hwG\.ũPA=dW89Dx+a6IISjH'jYyGS䅪VnJТnnQ2:[4SrfP$<^dKH=S ._W'?/~7*tr2SٙoFtLթADX9dt>ݝVI:h)1drsPSj)OIT[bw7/| SU7:EInݚ.\Ba~xH҈t`jAV%c{(<˶*s5zE PgobY'q.(71Ν0h+=]ʏTwI2u&Ȭvؗv9r_,?0$b*Q]<mg5nENL#Ypmqɜh]wA JJ6UH5 ->i$-]D^=qm^,ex5Zk 4%-]V^V1'Ա\}+q+Yt dXdTD&o~nBRݴmA]d#R]«c˦#$zՂ6?A!n.AS 6 )bƴQF54}[֞[k;iMz{pW7!_n0aᗬtP6 y'qKFn>*sC~.% t9&cORI{qK3~дYjcr*pCN ,rVPm:n/86 { S( `PA+;=<)Ý)F E2IxY͈G w1WZ%3o/_G-0p-j3v4QxA@35c!1nU,Mɱ Ӈ}} '#~=9Abw*%wiC>7k#l=N7IsZ ? D+Šj{Cԇ%+g0$ݣ})a`gy4:]=Hsm 饚w\aѕP{e#z0dPEZUc/1D%])4VqFb*z7A?=ewwM$ XFh 3Lт8G{ xO q(!Ar&'La6xg \|`شHO[#=:7)pq.#;sP'`X/wA{5cy a dkt!Cڐrd)NdKhb~4uVj2G\#gp*F{ b,n O= (};^hK]Q:Z`no!cɼ2ї3c*Ȥ⾢c#kY@mB; GFp, ]NB1٤ W;93aI~ t\XjN{踥z-5x%<{:أF~teNπ^*iqazޘJ\\<;UswZ;v4;daf̸ )DņzaJ-kBYq y J[I:p@ ^\zMw;[~.,\V5 ED.x%¾55ϝ%Em AK Mlڋ廻֑w;L]/ooXYM8>5t#ÐXG#貝NН?=QH\m,apelccм m;jߡ7afƛ+\ϐ罞HF1 gX\S_1pH[$۽hhQVrG2,{ܖZ>:Afh{~\vZ[e*Y#ˍ@@ Rx:ޟ%}Y,;34솰,E=0*@E;{GsfBsPxF*_Wܗ;q}-9uHr|CS'"%d~ wwsNXM1BJ'G59)/xHnM=V2H|a(8lE]# ĺf|Lך24VO3߅EL7k\KNGqC כ@`sutٞH?x$ۘ{&ęEj[nayZ!J/=䪠kh1==hV!s{tH.N^/ų_J"GkhN Wvɇ(s{2+"# %ȰL3Ho(hL֓u Z?:^bXw^^Qh Q3OUwgY whIr:5WZ- (~:NZ)/qvVѝ*n.\aDވyZ,g.&Aุ5-ӆ&յZ^<s >^* ^g!.1.F l\_\`,l%"WӉ$aZ8A:̄!L6Ҏg_l,H6ZTW1iΠ0CDihMp=3.T o[̸tQwmbz>5H[)S"}J.V"w9H,; H1Hnu+uY+rDȨ3WE(Q9KIV* o/|M R,#ʊGBWe{ @]+;0wL`\ڎp3 ߧ`x},ry+sx׃ndϑ4 A~WUq>H!!ІfíG?dQ~z%ETcXcQi|-*{.JPBTmMKbb}EUKƷZ yj(fΊãÓb?vԻw|A= EE޷.4AdžIv:Y~IAfޟ紈 Bᤸ@ yy@y:n}`kDV V{ڸwZSMi C3X>>Loc$QTn z5yR&=;CH Ol<^{154ϑfkm_-} M')]+s/$q郉ׯ]bǁ~<%n@UٽϵQ޼5J oc17^ ZkyNb]̊gD8YG2*S/ZpSjׯ `gr{흨fDUzՒ.~ 8M`ɋe0e*~F<@7FaM)|i;hWqJ ?yPmY(S k[IZV&tZb`WN/qs^q[r{bǼw/v8U`'?MG93|3@oXbQ+ln6 &+_ﲡB=WaԚfצȄL3 Coa-/=.i,**)-۷޽s' D҄7ar˳hL(n@4D]&H1 "9Ow9[F.+io3y楻τ)8S\\~dPV@fT e6%.FM_˻[u 2mg>ŶX34gHx>[zgNnP%N~Ȧ-z~ zg5_Ll{9zr" OZkEznC%ofYFk@7 PXҽ"Xc^[=[S4|I#iPHy<;hS󸫫h=Y2p}sѣ!n'n=PTQ1?K)x#dfQσa<YuP18ZYKyEQƁ^Pn8mwD֞kKG0LE*()^`y;TY`P޾v9orknnH`iU(=%}  #G)sķi@u%CcxefAZkIJWYݱø;DSlkb8li2c޿/d'#p|{$pZKlHٷc_gi28>'x,1I0n1)p ,uzx0_ Ypr\|qòVMM]bvF(j., 7hzJ{kdܳ4h!'CwWdf0ɼGhhVūY ;˩VHїsw[6+]+2.brn)SnY-_웶.irgK\,wkE߳3MҌzne|c:Y_ +`VH>XyUuL.TsR _*'ж}oi5Vf<Ka١#@>>Y-mbi{*h yrبeStc[eWR-6 34XB IQJo &z&#|q^zv"ub0 n.{4\yQv2YiZ{{ Ajh8ӧ2w[LP,?U5⺄rnXeMr&+76ڶp-07EuE\ %:!Di @^mq^y=p*:lPE$ڎЬr\*2WoP:2p\MА/wzd8OB`|6ŝ1_z|MP&[ݟ5AfNP8z {th[BK^I~#sx"sAGY6թ$'KY*4,aACEimwlm_k+r2[2x?x['`L;tHY]%XR`hިD:d5 bƍ%oH~O˗&NV4p@i3&D4 ^scD#5 ,{bͮ7RcD>4b")c?I1h6Xcc[ޘx`@dRH!l=G-]CxF.!_ y_~Q:mW. Lk׭L6B/W3NMuR%Ft>o}SP 䓤cn"` ˜4mIŜմ~J0Eh% ͊Ikc`fPrdn{N&Tht*Qzi[:AA$ ϼZg):}nb/}w)bON/O/\H;{=0p deчe0.4SxAAk:Qs4331ܸv/ Zu>Rx?}ؤ:كŤ_ŬPU8!p拐UjE](S@4?y]@Ibs/Խ;Lb4 O9Z,$3o wVaI [Jg5t%yO Ⱥ\OXׇ xMKhyf4;ǪM׈f UkM5 <{-BHҰawk =-]?yBQ?;}zyty{a _H`ڜ~K8@OQ8X/1׬bl6$66b.XgA-U-e+B!QJq(Pb>rI$L^ܧ=~|CH^:T7?Ἱo\ .Iw\,KDwygxb Yֳ9O1Mz'a}w@ҙeM×10Dwtd0ɫrdW1x_t?HMC9LƀNVA`7Cd2H˖N3|L0iaJ)>{- #yh׶i7j! {9s@؝Z֌ZX `͠LJE"Y[63s̉W[2M%gY%4Z&Z)6*qhW5Egx%< GxWзnWRxX ZN2;C}{̇O1r=3hg_ޯA/惭t`j2i,y(;!j "K*UH V1/d]%-‡Ŕ uG YxIa\$A_~Hd(Ә>xN0A6K 3}$4?t'|5S%,vL&@#7}!U?kL(_l#6>gevQJ హN?Qӏ OjYH}Lyo>jSڨ ,!aZRb{0D_V転{DG'6+3ϊfC<%wW*yK$J4?9Po&I"-tAܭdr2& w&@ U}<3v>39ti$2 h|R\m& _{t|z׃Ra!bu'v{CHtC&pX&Dx? $ychc$"s0mh2WR W$X' 5G8 j)%M'"QDžmeO> .1-Ad2*,F&5]ʛS9y/^''9@,n^A.QA1ucU|SՐDCr^SvʄLBY5;il]/?`WE|#<(Gp1_/Zr1w6b@8B.-ƒTer:.}z"4ОiB:az#9M=6rph VfY:{<$#!'R|&k{1&Yqᴊ"Ic힝]^|=?g䠅4ھhKH8&KrYlGt?,C=WlLhR,!J$=K}J`5/0vj4ܞ) ZuE(xp 4>vqP&s)8 62no8SoƍC:d &Uᶰh{MʁpBGА -jvAN*SA^:"3,iː:()}O6J$[_Rdu٦={.-#]]pfskA: $Ǟ7QVtDžvidcLa $,IOYv$NaV{oV B5 , 74i~Nœ#:9<~{y9bm+;Σӳ\ "8XQ0QL1OA. I86e8AL0FcT5}ec<w!ϻGxXܾ ' QjXO|^xG5d6EAN{(W'*X¢nT"KV_ӉY#M]/&jbͅiIKlp&y$nB!>A9{kpQwϻl<޴8!ql6 4ݢO'w\X!#ۆ|it gV[j{G굶ΞiR7)TĤ,%W>6(1M'sy&DY:I%-W FA,/7y.b||y h Gqų~.9mhL`SW) fv\ su9HmW=OT/ww>8`Vjz!q"Fב\[ˍ2vbBg͂;#ˇ"Ϊw#_+U}`g`~{x>ү(vg+#?@0' gq"e_0FzҩBeTYqeem#Z=ޢd-H$f>d8YU Zv~q䑼^m\+&µvEy h 2J~EfI.w!P5NѸ4f}rL.fCN߆ӈl0W[x8vwTҹR)aq3N\s!kjΕg0dDP0?9B@˴}U/Q?[|-v^$|I1^zi"Jm|W7kAOB[.PMrF ԚZ%m꽫/'beQŶ2.DSM}G!M,gqcX񫠤I| ߚtW% uQ޸vYaͤty3ufkq/W>fZ)$O.`r;|Lv+P՘Ŕ6GUO5}Nna ȁ/WSR-H 1Oy|9}=<:G=&uv% '{GnBL +dk;=ngSH)z%8E#\xofY9hN?4Ahn ₕ)xuOZ.yp(Op+ДAo4N7asx>I('dA\0$8o: `rx֭lsgX `NDHaתfEHC":ovN褖kƇc]~ocԛ.U9KQPxt)j>'rl-aD|l f8o67N-źеy _mb]84t8Ϛ&7ͤKFJWN|%6s.nh!I!h^Jf{׫?z8%5|JilƀQR/s7gVl JZ kU6&3(N45H D!{-JBUХiHsiDfilAϦ=Bsl^(8?JB-[6IbIdy џVB!dvS5#%d[$zyhz24{j"#VG'F_=υ=~-MJcszm흺nd Fy2CJq:1J׳ԧM%,Zk(W UFmy!B\AjAbzI TI;l&CB8ek2E,n u&e>4ʗ0fB%چ/34L 3C/*? d ,KtG0 wGE][MG.%)xdX7p0KM_2h@et=LXjXՊ PqkY sA俅{DI\걎m+ Kibʈo@ykS")HS1;> "n9l(,/Hh.N}.G!N넗hYF<"r?W&Qszv=HË͟Q>Ûr"ߵB :w;:a1[dUjz`(N-cN_yߴĄUdC :/y]dhzQ`fmbrv;2 A\s'(5L }Sl'4+YY€IȥHN$z"%gʦ 7 1{{bV$VJLYi% 29PX2y ڂ+by8q =$1B磶D՘ Xt~ +tvCc7Ѻ!=y<}X Ɇj\TT /3H_ڏy%KB9KWEO~m u=') 8/x Z2:7h<<Dm%Uio`Yzڅ'Yu!x* 9:sҶN\{5GI^̞ńξpauJɌ da5݁&0sQHZ2Kpy-zt@nQ\jr>oPRC-S!eKVh p>,$ĂW; ˱C@KRq$Xx5kZbOb JD!vp oxOIV ά3p]. 3UtGc0FRK ;?TR-QiI6{fG!JL+[4S+ƗBnoG#ϳ8e;W+o}/of=,[}[cB[[cCy ntk i@rafӕJke3dzoӬ:WO1~(d}6ViLJyq] fGb=>G-GQv N N8NK7^jL0N%zeN+u+^-9!zc㐷?˅ 8Սޚ`Oӛv꣰Y5MXcK'x/?J!zXOhtN煛I#n^۞5*]~&fS#8>-T8sU`[_s!=o~whvr&-4` %>@-{q*w' p,ekc&0`z\=jV<֨fohtM$mSli,hKʰ fp[ڡnI kBttmoaIc8}Og|r:?J;YH_/$3=8)ɺ}B חy hmD Գ //'^;\G};?rc<>%K)n9gg+\cFqHWp !S,BMWإKK@O9r|&fNXzH_ǤJaۛQx߹qrLlp U I4b9'| Cd uk ]<Ee⭮v5뼆LĴ4#&I:Ђ{*OJV_Yۯv9i—/`>ZSٷO[J-&H#L-Ͻ[;w1{ujw@ЮJ3 sdӐ?g?ؘi\ ªlT%EdM/y [kh1ahF|wz@%?rR-Dhv$tHbY޹i(%&* nWW/PQH!č;TC-ÿ!K R#J;&$m!%c=?g*WCUOc>ayO~dvP2%P5݈ 0f54z!ʷa3 $P +^[^:c*Bq9315`Kq`5C-U6L\L19ñX<11t_zݽnD,W*z,clV~cz4E \Y"s6 ӂn0\l߄IyYfzޞ3b;cdUM^Ȟ.K7W`IT`l߂AWwVgIC2Ih3EybJ~JQ#g*I IO 'H֞NR=c?K}15f d9Ns0H r2+ L|Px vwx^saֿ1#Ҏ{ۃ ?n2 I{ B5k~Ȥ#cmI@~ZK2&U{{1h>@կ4}q+YQ{)֟ܭ]mzęo01F܌cb zrY} EK 4d%1l|MV$t]eGQpq_KXCLI-g&vI8= 'i `xSb}ߪaO15#KZ )lT2DI PѲ|ކ̠2֑+2͘inNRz飜;]1X` T5ȧ@,}Gq@a39`a%Q7#ovA%`JrH-#t0γ4LT`fOk,Pa<Z"vO|*TobC0*/Lݵ&j`a Eb)774i_ s/K T*8/궙 oáʠ@-؄ZinMt9d6*]1v(BeXT(>F@_[Re\t]rbS\"XuikЏ EMal}+ JF@~ta+n D$#dKxU_14d2ӕFV={`e oI#qAJ+Ÿ8* F#QKa50C@QJ|'?wRL})`m)|4ʭZbaqʅL1{6o_{`ҨIzFڌRQsmW`S0>8 {,8DlR/D\d<4,ֵO(8߿?ʌ1ÕQG k9 Lܮ~p9/nA`v8< Ӻ}"\.p@[6> 6}nY%A3\WM5]LTBi&i,RMXZ2Q@$V}?6 M ٛ;Vh_-c=#2h2ϚMq^ZDF0 H=[=kcʹp2rS09ZKzl iY(-?3u֣UH薝Kxj[;ƭ&^}>?:a|Ty⼘ hTt QMˈq:͡d4^ۢ9wk]Щb1pZS O8"kB-/ԡHd}]zl ?e,]KUn%r;9^)gԩ\~X_ِo^<2z )}|>a 6etI߲i?!U4-Ѧ@jkPY Z9ٰ7!-qB`Z`W;/$*W%#c>rwq?UXb+[`6O{Iy pxq١# !-DT׺l2vsOȆJtPw[!VJ9Y&/Az߼|U]9Gr~h;grh$g1N a13NmeӾ*ObiƜc{Az7 X+ Y`,Bwde{"Z8rpvXOჵ?b{됧s8jأ%n\ -8<g—HcDv6n{k#n X#Yz󧲚}f&S#I16ҙ/V&yR'K&Mt ^=R'YA֜pjo% ˇzh5XRqMx$UK$*ķmPY{#YE9Jr%0;6l|pď'Ihr89:/d)-TrR3Z'*tX ~i-훿~$3s;8H:o_WBv0,>W4?$vg=5/3_r<7x ^;FHtkLˆOj,"1Y>TG$(^-B]VILZlJYvz 3';Nl>Ybgf9ٱưI v\nv?ܪ(ɪ{z YŸc)6' Ǻ dIOf+O8o#ޠ.Ƹ z=$z1nCBy7ʴUdvuUӫ Zl}_;@#UAK[R-|J^{:!A, \.~"D$]WgIRm#ͦTa n 4cΎCHq/EKͷxdA.8`xPŧX:TLfwZIޡ*jj (NaɎK`}N:v߼ϻ/߼}OՇ)qtgŶܺEׄ,ҵP:^G !FIK~iοq4Q-$umHO0w3o,|ROR`uiː%Hs)(M(]#%94lvYq xj$vivi&zϣVuy3߀ Xm8eib0 NWʈ +o!d1y[@Gw/ptI1dEM 'p\FD;69St 6D \bqRbvң]I :cQsbjQ?愦4/NGt![lԀ/=#N3@ԍ{.v@߿[l@)N_SZf9Z{Ȣ:6rrޣƃF*-۽\YpF¸1=bV%ȹP"/ -Հu 8VKU2I%;3'z.a! %6ݩ|hX_K)ާ+{o'2 =;i99lG-ۊNqzՌ-N2IZ+d ( [5e^׭_U-gR x/_0RixܣLl/ã0^%øڍDžj J,u8Kh@~4MSw4ŔZZJ-9!QַpފG2䚿]f,(W3{vg3]J̫MkE9g:ڲJL9n:ܜϥ›nLu`BX,4{U$|^pv~yd:6i TLTB:)RPp1>6 }\Ud+>ƔtkSQ[էœ@ȃ&:Cp1,P+zIEugZq+(6o1iaBVwgn"]v޼lͬա]gxv6"$ j/Pqrr  N޹7,Bl@RgdKﰮT(O Vq^&CU4khGdN}Sq?d+n4Óŏ'?(YSQ" `HN ߳v hcaYOU +Pb>5+ArV'< WHl7 o}X0b>ǩ+SNą P*bᾲu#-mOĥ; |0Y$X"+.6[ѱD 9m=Fe0UY~wX~7LBމ7Nшq`ѵ]"~3C^۹mR.8w^ Y$lL/f4eHMPE8Fk^"^4f6_sjU<=|d xwp!fițϜVE8?Au0w@nQ 1ߋs.0뽺=bwzK %0R0Ax^W=jI 0:tzBm%~㇋G{ͱ?Pl1:sFK9$;?;IG^!)^tLJu7:|W+cY &NWQ0tf;ךmR I /2OUE<,GCý*w _>GK@d0Osqiqפ,ضꀈFU/4إVFi52^̼tARBԌJLq /aҊѾl:*v ]v!{[4*^{Da> LR. vr`G1iY0e);1uFtҫfmf?zOշus/]sOC#lVp>ɾ1@}3;2nMC65φUTq5)/wٽRؕX;6@$s{142ԕm)Nji>E^;YnYyNa|ͱmX c֒zF8D G۝8o|o䞤 c|!:^v~_ĉi_J51þ]wtZ[2k+ Lϴ!Jn/\/mrOA ozYc*[ٽqk;F\awT W<%N t} Cȭ9W.M@t$f S畕I"43Yl|kk~wKIЄ `Gdl"1G\7=U{3yiǴ 䯙]'^* Q"6պQ|$pnz [NMSfμڑ+D{vܞ-QZr0Pٳן~vf1[GQXgݰqƉ$Z.i+[FAZE;-S99r\rmA#z$90~uB66]Ɔ'9ݴQq74yh}zytDΚVK=Ѣw hvhotۃ/YuV<.Œ؜e78lrk&˺ aӪa2MO(@nP1T+&hSƷe#0 8{Ώm.{ yl~徵0č{1̚r4z@&Ҳ} |v|ǐE&Ƞh~1q.`L8\6'0Sk;F$|Py)().W?ˏ u+~֗=DwI(\XF [.awvR9IV*@8 -,!*'zLZHpOV'*pkGFlV~dZR<++jb15yEW(kMff0D*Is_[: KfuGvu웇[ǒH1GePnWUQhI'yańpn"i,T_q ^ `"N&UݤD\eK,"Ĭ^SnFKOb&$NGՒ*GAcTOm@Wŋl? H{YTK^fS{8vqUJg[Vjn"*a[K&K:mE~,HA I$jeݗ-'$䄜hyh3 B9y b7tፄn~`>_&5!o@˕.u_/ hFCc&Dz3U]ƼbXm\R-,f4wLd<'*h #Y"$FsFE| iծÕ!TUflea6~##kgA{wZsS&ufQ`̘'goUĈ|h 7EE1"ٕoݧYM=ų~| QZ_5NEpAGtONAM3M#@m4Hjz"O .;a1&3sqR+[=<kAeraw"#ɮ[LMCڜGc@ [،AdLhW'Ǽßser1D#8.FB*[˛44ż fQu9 ]2J[Eg'5tMe`񼌐; U{>4MJ-m"K-j5Km!80n6ُ2{Ys{ykU^HJVmާkc>9fv|ּqx&(wMTd v631R #M_kK g]-܄ETRh5Iy|i.얝al glR+6.bLxwz(IC ~{L$ƩTc v'?ϳ bۏtQۃtгX{v0$J굓/B"S;;ttJB lwji.C  ul""\E=f5rv8Qh`mMd˴ \{9 >.atAOӶ }v%(HFX4- HAEljL6q/R;I `#pFvfCT|6F$,۴pj#V@!4  mۑdyTж4~ZY} j?r Cl'"wD$?g#9HpK d@ϰ:Pq#7f)au<ʝ]D+`c0 1 A|C|7[pWˋB9I,fYh0-huEUj:NBl.ö=sAi)aZ>%2 n"VY Zhm2 D̫A=2+p10ب;(ąKKΗ&F]TZB-8r"b:LbV~KUzhiqO̅š~Z<cX7fQt)i gР4IfpIg˩)? 7(k.[ w/B%U=yP|c8 Aƞm)lB+d6 k w];g#wV[ɖe@wЬY$%~ mԦ $1Rzo:%(ϻv@kL(1ЄߙrXc ]`R6>SA@H’Au&yEZ-N-,% "-f5/^#vtnX^뇒‚'[Y}!A8t,_{6wwBnv4ED^ylA~/8<@0| 3SB/dC|dpA/  u 𰼈8<\%rhrw52},9߳r G“TS%(n b[)'x;UVSU>QbR%UQzEvSҸ`2%ނ׬000B/ͻ)Ð 2)qu %iGEy?jPm{& &77!9ݒDivejky1gQH0 l~ߖ ,fMӸǨwCvw?}ۻt^{Q-3:K7e4r2Iw&JKFd%E f2-+.~n3Rӟsl?W֞MTͅ@g8NG/Sܒou̓տZ_"+-.E\%'Jllș?Y\z8MFyۢ;KD  _nI0>YSd7ȴUaj&)>#JM%G+j:z( 'y`P\ҘqXf60Ň[$'=iK Q.)Ut*ܔ~+ f#1N>#ڎg/,׶n[Y$xP3[o;d`gj?LU4cNtæYb\^ŞM|dr,;?Oڷ\S_GC -WmT9DuZdĂܩifM'AU?-aTDtfEB|eʇnUadoyEi5Vyfabmm,jENJCɁVԘ$#m9Eߧ@Fk;LP%u#a_s|TY\I嘄Tp5 mhjwB%Y'\/t$OΚ5}R޻F[Q־ǻ/V:[ CfO cy NinׇNӒ&34s\]_yM'z1+?;=<|;8kؖL&d&Edf6`6pN!՚.+(ewۺ@cX6LȌId1n?j$[.d[ShS I ܦRl+™Fwa;۸̆r;0&r !,b(+ђ5XW( h_ 1[D,Ը`̩WIOuCq2$%NWh㮠 j{YIJ^nySxy".W4=?su^۹]{^*IgX]xpI$h7tdrLji2fzl ~\\RyN)5o+뢨MJ{A7Y\SiM k5Q#nw{ srswW;~wTdtqF5q+*B $\-\-Apt +M۵S !3)AUo'JK Znz4HLL]3:jIgh7,KwlN5Dky%geb.M>aTLs$ |ϚZTz'84(ꝹIJ.Aޞ*{q\|:pSG")5XH~>~}U,h-<~BͮFO5aޢXK.9|a|/~{{DF] B̹! DC&f6m34՘:B aZLʹ)7y)1~n)&0>`mDH) K*Ũ|0黀:!IHI"onUഇ&}o[19 c#[O(7⥣O‹'d0X9)Zceoow_.JWf?ih9iRDʶGۋl0C@TvWڄ̝c(|pe8lΕӤnpGGѫbU u]Y VM!@ꄓi%PXHƸD܏b ^-]Ķ@=:B%q%9 qGK[ez:(~ RC'P,쎀$c=+%mxAQдC3X +YI!^@a!X=ڑ?Z7J@,{ּ**Ȇ%eH{  ɪ{VN*σ~]\9Ϳ>4 Zr~˞%gs}++|Koybj'EЭ=o$Mv/$  S{|zM$!)b/v?&ka8"{X>]X2>%*ڼD-eKPAO$(~!sԑ ki$dr 4R-*n1ZhEmIX/fH#8iwQ̄ 68A5 U֮,/ ).&ɀiNF0aV5%-ݻ]$~Z)}UX:[Ǻ E>ev'ϏB䳁7SP8gb*`eI}ґ"czyn8և7 &gIEI]Xn b/Ph{gAwudST8赆b+Ric _C΋Kl /o5#MKp~5}DY)+=HZeN1h` -u9gaPlbiZ5ΦuHhaOrz`}eJN|!Xie_q]՛.rK#pQH=CΪ1gmķ@0Z()c_df/`\7QYw:-&!vそ'SkE<-(vS O?S7ФE]L e1Y,o[H͵G,8흽0JBAT*P:5MFLg]V!KíDlXy[Cbl;U([T)Rskħ#ung{͍{19$[}2i1d3<KW ͖|0{tuTGRVBun m~ sRciv\l6i` ׿V%N1%y"of<8390Ff\V8ڭ^. = JkIG@JFVH^&`O|j&%d%5kCJ5}Q8 ~F uvF֏ Ԭ񟲪]^6uo`fpǞLtB! :ҍ1N4Qi~˓+[vq[|Z )y↏ڭa$כYe%.EQ;w AٮMKl ċ d(%'cr@j Fdt;+ȫ[zUK*|Je8QҬw׺V1?Bi #/eOtezvZOW)!)ʮ2$KzFnJ1%&u1bͱ!DPOc>Tu'EM1ײ]0WƝă&fph0Xh}L+NK}3QTq_&1#27CrӖа¬ӄrRpD.27$XJ/ g4 |< *֯]\v=eG)3Q( UDT6E݋4:9O>78""p:*rO @}H~U[a }i]mv2t}KvVspvl]8]t0`Ay6̤+; r(5P_׏^ɃTmRfo;-p4s\>aX:ךH):JLJ$Q- &oL1;$1J)׆#CM|yPm2n'09l&o)|+T!q>35LMvc膨8_yoftBք?k:/\_\_~?ޝ^z]7XWX^ GJ"&RFr gԾU]̡lYǯIܳa4 -0}M? &7|3{ŰXR\ OV_s9TvtMN=osYAj:Cj5M@֐ZI'-m|sz#FGJ:'UFu&@OJgOjs2Eo;ȵ>%Ρf[F~ ^CN2W4oiއi4 ~O,v̻˯)QįYكR#i@B{k65f:tKF'I0n"~Rnj;ξ)ߑ;DvfšQ[ h?}9 l 8C@g1gtl ܶ[5fGITpySb]m!A8Ҝ=TA8*ݚR2?4S6D0jwW ,αr4?.&6?959M>cn fK Ca4#2)60nm!L[Kբ'SBt.!$3@D ~L*X=rx%2'"M4ÎLցLiDW8Dڞ2 ˆM5D^\ݪW^ylqb)wq[>k֨nBdZȌbXG{B]9{Wڛ,\ = u<Syk.kWYo1AZr, i3ۋ3Wqxή;0j`+#4m=؆;%'4*90;8=?9XwdyͷW)Ldxm5Zs\'8t]^'P@| ǔT956e}! Ϲ)Le' )|u˻&$lh},|3ٟjY%aJ{[m@b:~Lz8&ļfz]Ie/bQVvZ6}"=D@G۪ajQoC FL/}@!8w=k S^;f2G?v/>~{ĤIG ͚ zk||K g`Gdza@]VYO%xSaPkw+"IJ;0PP,Q4a bc"9TE}]nqڽ_w躨b: I#@']ޛ 6h2\QXiϐ*3͢_G/`TbE4Gp+3J9ں,s.x[t{}!:_p5ۥ cj Bq 75LB~.ϸ n-E*yq/(LjWR=* "T'ѼQ,)=F4KOU^JSfi-mYzbQD$ƜX-K30KeeӰ$y Vq,gr.b*ƕM4/@K}徲.SJ1(_[_RiaJmdaLU\#o (JUp{d8-9FBSuuۯ7u]Ԣ\{C~uף7?qu%d~z7įUůB i"@M#*5} x%{3ٴjow{gMaL.Wj:u<+GЧP dX 4j:qU|RŹg*4j4)TvWz@C`aY (QlWT5G|ܦ3@Bx.J8pI2:\/bkr <؄Gm&SR**bͨa'9<:UJ3,x̅@2P0`$HOrRJһ!ZzruRT#rmQP1,- gD6bX9{Le"=h=^Q4 Ԥ=]@ 4Uyȯ=/d C 3]fK#lP))ctQ6|:=izzq2S?N%\/ TǢ`D+OS}Oi.,v2}n tG%V!t^e㺺v*kJwߧv)2LVce:$ 0 !Ɖp\{͵-]T侺z}ApTh6Y4Gs\@Վ}*9RH4-i,W jc0as.P羆.]X'](2@#Fgcz{ً䢉hT#KO(?[NKldžQgu;|2ho&ۭmq%М,8,d]fS==c6ggZ> KowpǾsX4 ־uMꔂư๎󯅃WH7 ݾ!NF04|a[yMy,^{` s\ M&w~~!P9h/*oV02+ˍz_Cefxjݔ ^E\Kbk,,ryR< 0>+%RÞ9+D S[aGXBbhU& H[:%9cAx] "E[e$T++YcKۦЊ-݌tsƎ}mx#łcR58} \\|clv;9I_9RNDz})RJCmeX N9 *gi)ފ+xfMU,2F]/W>uՏ_(`(o16jh0|굷Nہl5H0XeOyi?Āq@mARxXw&lN83l\IR! c/mabM0CYD.Ǧ#X(RmD&H䳌,9,9TS)2< rA7*w\騈'79aNNtzd50av''PgpN~ ;=fD̡2š&ޫ_ss"$rդ!JvUL'xEZ2*%Wo+&1R,O6+'k݀ҲLx tim80覺OJNU"j<%^\@"0O+cVGwpxKDholA4^ ~A(Y`&'6i#{MI z'5sy%ao#*ӪFe7;fb|g\GegD!c~9( YK5ωϜ&y3Ý SC4!N/7 <^_S8%O[j`kv\hta6Yi Fv_gwttcD:yZoaG!efDhAzC%aEz:QrEn,ղfus^c>JBsqE Ćd ڐ(YVDOЁ4UF;;UK7k/Zmd֧}B9Un{d~%n/Uno:cݝN (.CҊ8B=\jq6_&K q$b }q0td"J J"m: rdVt>̈i5OH 6̌sbAVa"\3"#6޺6wLdstP-f!N@@/J6Ţ$&9z D 8uQ{1 *Tl/I33@^z} 69*їo3kMD^x_=JP+]n3M xNeEۻ2(7rh +E F,e7s>CFEU$cIr1ؼhy5]#¼|<ܜu퓣}t:yn<<\"SW[I"*Ff8JJ^{Cna;+ܰ9…= m#IZ29ETtoRZ)GqOyʫ7Z;:^rȅ:eйvx|x<+}i'`, ο WE}*J* S\vL"ږM܂eĠJe&p* E;Ge!aT*?ZS|*R5֘-$3kNc""~ =%4s NjG8dy#~J  {MʂnFw:?Y ;Y yʕ)#  ,7-9Yv8\F;0t:&{"򝃽*ҫ'^,SP9*8'*"`p#q1'R M-]=知#)o Lq !i2-ԛj";k+XF`b -[A-Qe"tc %?g. ~UvH.f]DIDho?6%+O0GFu, L+tJJhI7yhf]5O.m +GpVMy*jHҍ jSDOU .3==IFNL4e ]Y{'E 27+;?>[&1^cL@*hŻKn5t5զfFjZ陸DZ?l= $c=BP+I!_1}obn'b0%PU^$}Ԑ,qCՙi6Mz)2a^ѵ>Fꍑ<*}l3wp|cC;"b-O|*CZU{+S8KKMx@0yuD6;MK#T=cPD`2j޾Ԝ׾ZK , Ԯ|ahZ-g#yȻgX>-vLF $ 'v0@@.>{wRTB2¨ҽ?.7wͥa JxFtŧm}Z|e;͔VMěJ rUPdK wē̉ClA-BjQhtW/vUOq =vTג|1xOVl?XzgB2ם^3Am4E8~ohBzk+hG/ 9mA7SSyi)#}kHΌ]m7?#^z)NM HD_̑Wl^7b@~r>aXȿC*L#JB#EbQw2|\mmrvٴ@+KٴS]9FQPKa|Փ=4) y- :65&ja9Ԇy(ͽ}Z,GGd͐ا_}]$?xWFsN. ,R9 tr[H3u'$rRo듾e鯽E{[6cf(Cb?G&خCu,Hr"T;DktO$pRЃ+,!9[O{ycѦ’ZΠ".w[ WO0 kqTr;ҏS50E0ʌ9:tF l8fHj3O}n6R.2Q0r!e%&| Z!F$Gz"Ȋ|r2ROؐDUACfuW'Ml9?ygNbiWI,({r-@~9R=F:0 x.J9=Ǻ C5<ϸМ3^wU?e8dJab~ofs/τD>~yw6/  |'W?ᜈt0o̫a,NͿ׋I/lM%t"(千 \l aĈr/8Op>$.OQal> V7M@ eD1Lqu7gBNO-[j~T͑2%Ek}tP@ Nç ZԲ,b,ӊ恹r2 y "! $?@rWԱ}og=Mrs Sc?V,? >? _4ԎcGJf6OuY;Y>k%pU"nx-æ0x7:?3R60ei[7o4-~Ԅ,h4hjMhulKѲгq닦'7ݐa}b`@gAC]mw77v\XKIr SJ0s97!ҋ8ȧr%-{lMaAi%9H6%-&$+^|e᧔soU2*\'3tm\X3,Hnd4'I 兼6,x|Koc hh1- ,?,EP l{l-/*'[ŌhB=^#Qf;:PK0ר:eƯ]k$`F9.Gi`-bn{]$,Qѧ@zEsxq@c jQM>RSРIuzZjF##@ I4nm7vyCUH$y,>|| !)lXio LJBFL`lȕYa0D|>C`ZBp㯍֘'_8tgay+(H|5L^M"IBZӅR?I1Ⱦ5jb!ϖx^c/9s?lt_:$҄`I jp:8:GrݕX dI|H!$xX j%5߲ C l !x'F )?&WvLŬk[Y)s1Y:+'}=StE`qFVŇKjh]=JmR*LB]]$kIIX,n!uvW.L LK! #A$eœ^S|ӽ|@@f4}uz;'HS=`h6 2uMFm7LqdCyL Dv:'{+2$T 1;!*N$ً\xr%õ,O`b ^9ª!]{ "%)x1wG/4ղӱ~SSⅺV ~6)-8AKush۫h$% tRerSPSj)ϔ쩷V> GKo0VP)^t~"ڜ.D0?]muSt[߹S]ݓ٥ށRazNBʸLP1iiz~`LR=TWxU*|^ﰯdsr_W/=0HC 1Uȩi[6_7L,&Y$9ьG0Ybom9 tM;CI IJ2ԫkNH׶Y]\rǵyNePLO[1,Z343t&YNEKJxRόw9%qGWcM(=d 2OceACnZ.l=˽|6K"u`C J?(m kT"̙[+2)lUcZ£nv#~Xbof|,ꥳos'SEjs؝Πǻ{v|U^|Mdv3h3 NZ}ui8׮G%loqt w+轸J0l m*4E\]BߞSX<V A_G]),:ajoӑq{!IHrI%jhe{Ge_39"C RY6sis,p+!VZHr^Նwsp|P:<~%<`oFi(TlPוNuNujv,ƭHʢ[_)>vQ#7}y5z^};{x$'jn/SVS!-ğX "ΕWs~IzC2$!+g(NVҾ0rgG{DYZwfG{嵓8qo./]vʮ+g<_!# 1'_/Kl\_Kj%7> d#*Εf^7Ga_hooݔKd0,9>!$ Z0Uw3ɌE}(&>'+Smx[݃c#pcdz]^3jV jFJI,N &vprlO E/Q[6v/iTg%W0Z$G (RDhOJhNbsxH}o+ث3m5;%k5+ K9e/kTxI%Ɏ-| fr;%Ad !B':T: vJɧ~< fe ɦpM] Xw|`\?}G𠣻N+m[%*iT0Ho\D&?C߰h9nh׌fW!'hH=ӮH EFdX5r]0*ϊoSp9ė+QЛN+ `o ;SoR\~:D2a>kbcE JW;vWE2c%P (uʣ$ARNGhlHZǞW{NaDz{VJz%b(>!^ c1tNϋC%>E%JfzIes sPzFG ^y+~KN ǂ:Jrt#M+%"| e3g09a7E )>th)Y\xS\5GcXFdifu79_8X\)A'Vޠ\;+"KJ*aȔ:UQܛfplKHo荳F|dEIڛ6tN*rwрҥD8SYѦv*(hqܴIDRf0)#%:e*/׿ww:R GxOפT/^ơlM9V<՘}Q*>JEN"è?['59_en,BFeL 7klKNIK M 9:*'=dx MIU{M*Jj|_Yap9{%o t3OUoP vԒP]edpKNQtN%C/vVѝ'9jn.S\1clsgyd!que#b֒b5WdQ#1g SE?{Ȋ=yr^)60.'5 ޹`h8("/f 4 fO`& !(Dv8}ibʕbHKoԠmDUrO n_t4&Jd;k:ee9{?ȋ$r+32]XW<8ݛk~^)^#N1LJ;Z9Tcozx4~%O^x5k<;_NǏ^%`8iF F[QO8LR/Yȃ4=xӴmNWnH ƅ?a h}x ~JOˌe/zc_rL99ܳӢK(| "]9<;2+t!j%|Uu`CifvGgi4*uD.>~d:ɱV/}=WYdOE *tj)Ql˘&[u4mc-VNÃ;AVXˆ0+n?]~?^^.g˻_.qq"ge.~FQ(8kZ?]Rl2E2Ѯ|X^pJʊÒB'˽Rݣ]K [҂·l?|˭tg%i!xn'yvZ@9j[JUր{*p!q<D0{:GqDv)ЇFpNY|U_+M7"μpwAqNE8^bd)N %KWvkn|e mDV VmD YZ:,oS"d CL%+g@O r$TitkQm'xo0H_~f;8B5Olmd|NxL 8Ǔ'ZF`R$#:4=pSVꕻ"_-(*Ph2prxxoM qd[֑-::)U;h|̌7,(9=o[P}tPX+YգH3LS 1z$%ekHRC~{L٣C.^^]\j9L8qOd~MvE0eg^]+]5=\q?$FyLN0tVՖl9ȩUԄVї<.w.BL׻ձ9ٱddsԱNLҰRRZl-S*G)n5lniK-i2 >6? pM:o*3|#椒 "ڏvلP!.F lorwּ" 2%9{Z[s-7ɪ53MY@bt`vꁖI#h1 xYB7::)&#X@MP+P~&ӝ_uKiNҕr BF~ WN1݂nAWoDP9_VD&cuRwѝa˃Һi M C89}-M֒(LW 4-.0Cٸ3<: +RIqNF;9] aEg d/^QHCPdQ('s- 1UJu +g @6GUJ@4%NtR! ]dn7 Qg >g$kkYQ;VUYk_CiQm։ءCakpmّ@8ogWWR3ż:'gjH^T+|M+Ƈ&UdAOWMNn5"'v>ʹ=ŶsgM,̹Gz}w{Ɠho|VFi/ ̕epn}`syzvt{oi6 L#Y5; x5g;m*Z}! kD D)jH)\("h$Mggi C;V;+fi0B^D#s׫?朑/\aT0x@eD/NXMZKg?9WJqOXwLŦN< 6i#ldg\yRhQ 4k$%?:lcY:oB27iP&Kb)0]%JLJ}"ڐۚ%JO fh2lꁋBX 'TS9K'g)h<NCAtMCÆ4U?eiiNnm=-E6l g3Z7i ,\! j=)5P+Yz 7?|M1D*|\ [W{) ~/4@ 5'3}r/i)CqgsI jʙ/Fb}7,Săh]/]2_bR_o^ Hr)9y+nE;K\!*3 }ƣ/=& C/Lфio{{R(zY@i1cyCq;n΁E11!WEh?BDZv)$yn)uKkUO+aRYR!`v jF*LreU |%6d#8ԗϣ_u]:g`ca_/̣Sp~0 @(_ "č ̀k ?8G[䋝_98 qA0١;+*D 05Em.s:#SPgWw8է^WKQ}IHNy\DҔlQ<0E<2}yŻܘWd3dI^1n;C-Gd#hN Lpx"(d| ,PۉDYhX-t$s>MRBp.9]OGaDu?_} uD䣸'1!{U}JbZQfS SY+.HS:+|;S ]㡙lu,At ٭~,ݑ>>Ϧc0}ȭDN{^]_w_q;Y=j-(#p ,22هe&4]V~5QSSfۦߨǪ!>R<}xjJE1olRl}ȃ1)pd@)E;Њ2ajƒV4K3OI'dORی`+=4A)i V{2q{6U `V'WV7*бug`{8'Yכ o뺺1TɖWL35Rm~=T(o [{9a.$&,{ʧۧw_ i^ =-tQ%beg7w_^8}} !M"X-;CQg 5-$q+". CtR"W'EtēfqxwQOJޫQlCJ]&:D7џP\{ m5,,I CΫ-yZRoy{2{O}҉\N|P{w$z~=`A Iax=Cx P$X5n J]Y5߭8&%'1?Nj2:ם:mINfV[ѨQVtY D|%YĆQN"cʉ|$iFAa ԸWO"':.t(h`-l2j$"/4u^^S%R rL΁XۡwqM CJ9Ϳ; X9+Ц'ez:#W~\zE&R9PJxЧ\8JY|K=Z1}vW.tG! -X#ӷ1=öO2_I:W|5J,De_gg*U>ZT FJ)m1:>b}NKCf17OD`%gTۘ#gxUHe ht~á=Hg yKV"Dzwt*݆X'3KX༒fM_z+R)U,IOL F$ NmQ4݊=w? &#^RWXD\҅!zDO=%e(+Eluo'BBԨKr0l15.T="~9P!R05 ѳz7|GE\wAf[C=ǒ"BӘފlg1Ng}6kq%Q%Iby%t]Ժ nI *$bbs VZl|r<'ՕuzK. g󛗮>JY4 bgpO/ReԤ3Op.pAE87lT 2&@eY&^ͦVeW@4ipAj\O{{Gv@ceJ=bGNU wƭu7E}Rr#u7fr!wsj`.qdT|6 54ڽ8iO8JEW3u2;cXa2pk[opSHju-AAq Evg[sBߟտÇhྟ0p浗iw: q!]iعұ0JmzS:(|XnaYq 50uktdG8էsׯ/|I]b M]T![s]{? ƒ"``&~L*Z3@CoJcY481pHSIb'YKGkWyT|頨6Q@ΰ:r2-fCșs/<h!dڐ2{'q:1%ꪖv\$S,8/Q͉V}ӥ.0J{R B|ycVb)` }n?DzOV|MXC"hu۰f2p0;I$ُ8݇JYe;\'}?}f1P$rtgG&W& >SjI &0-Ӻ;5R0 0lbqCVU'=PR'SuͮUڳjQ$Vt /^s;d+QNej*Z_݁_EQ ]-5Jhf}sALjF4ޤ Ze?p3o_,Pϴ_L3ow L gjoޑG1 kO&}! 0zE<3uWT(%~̶=Z:3ep-w%mD/HI=6a1U ʓG %i._44_%) FF .7Y̨| Q`Hׅ$KCg'ΟG7m Q8Df۶95ZTgPg;Foy`weG:̩IwM\03 kv66.ʤZ#~Exh=͉-B$z+|NMZP ~^\g_n.vqu+ n@qj #?3'd O K.;km;%eG]tisXDZ~!:7x^-+(F7>?_Mo4\ui˫ }q>2º{]U Ȼ :?-J(@rv|j  Begx'~Ғ:Ask).nI_+̃OKGX5|N߀>׌^ Υ^pHDb X n-BC'ۈS-! !ywWٺ_?rsKTgLfmjvn(Iui DjJʚzpIK |nI@ѧۻfTmD@B Z~ ҩ9kX痖vv.BX&fR1;qgs[OviӚ%p^~z|t,f[( @c ٔ'C퀒8:Q1iB (5{.EXs蘃t0v٘n1wy_ǝ>{ FFz3 |Ш/|&TݴLjD|Mc&;b mUo\Pۢ(E>*b]E,Pw8Z's\*SVm%1-|v>a"F#G٪h* mMAA;'mӱD`p nRJ4.&$tԎ PKmc>"F"384GByȖo'N>lGSI5<) J22EhBj|׊ X $ZYbLc*V4g5ִ HrxYfGehe\X&]HDHnD&Y# e_~RXЖ4S'+n#:bq G\< CȌ\!JُZ/. F?"?Vۃã>W*zN0=; нrOOߧ9_>O=~bƖJ"3qNbR4mXaKT+gHO)Ueq`L)lS:=Fm:=v$] ut!׮ q&C/ B?j#Tx;uP"'-ZjB[} T2z1T165Y6n#򚈬f~!:l"ҍL}R5 7#Zh2 uj!F@ 6.wY1x7$M[1k|):IB8Wb#B9sO腳s^y- %tP7EB>DE!kCr%`Tc)%X-tWT #nx:(T0VnoҖ|=£% @BЂ,jot()lO(FHا8oDuJ2YhEa.X9DC&jHdefT(1-uT =]˥QBz=773gaf~raKP_ G~4)vo2nmNm)'IaF;΁pJ.l$v8vDg NلlW=:!_,-7;C@ HќJc}9+]ŗۋ;c%Rʞe/L_=zx% ZW%yP2~ek HIJV|:7 MGY@csFYʒAOy3q74U>$t[޺!bъ㒻ߊjanq7[I`uzIkNl:KRi.dGvm`k N@'hJzh&msPܳżE#^M#0?l}8l +?z>ApmW|ާs)?*q*\HT2SZ\+0Dž%WȊ#D,G%& @܌)Wf"ݢAmZ#$9EJ9 FӸ/HA]ޜ1}Cչwws6APo˒Ii2WyeR$|¾0˜+ jǵ/$bnTq] 8wI /!qa,3мH22‹Cƙ냫JTjYIՉٽAW܇Nus Bd; բ2V]Z%ܠMeNuo4'N1#R1kFL5T JjUrt &܏':}n7:J-P3Ui>q;ט,urTp$S7d:$hn}P>M04J^,,6AR@-(s%k2>F|?\3ɖ549a_@F|uz}4Zd@R> ך:#$No5S0V(>(5v̟á- .zDQkH9f,)·cSl Vi lRh%e'k1%=oZY:UͲgRlP]?k2aBʀW 1[O=.[*͚d6ejٽ%qJ@TYX֏Ffr k3.WV#m)Aۻ<ǃ@@ӌ>FY g Ψ.9SƔP,C`|?F]0I eC6Q,+Dlp-Fua¤` .P73"AfZw?cP뤆f1֋KE{& <KJȦY-6؝Y\␌hh?sc=Sڜ= }J>*3Oն(D2w8!fKҤŪocs,2 لcHv|>;vvk-ia*iAfWX?4ΒNӚ,S: D$*RdmBOVҫXԨ^lS]2&BZBj364Q]5mPyo#"P˄߄7`КkdN4quvvA4C3j*G22@Y4;R~: r[g|-R_QC\$Zg&b8{@ƅc!S)=}Ȓbl0MdX `dI\D!>uk)D,8$sjYQQjPnFieȘ9Vw;NԦ?dt6#{.HvS1'$bчzbH>ăN f沏K$T +SZKI$H,4I9(0%I5aKc:k! kؕ~DIR"CzP>ZԁF@aʅ)onkiiw^o쨔L",[Fm=޸C ˹NЄZ/ A]+郊KO{-sp\ tRV=fH`~sm+t]miʲs44ӱdq,ߟ$o `+%n Dcx X__h4i 4ߛ2@$}͑vuŧ/^<~ɡQ /zҔVۜGKmmKYSfCiUMv5NVRB vqdC^u[|}x)!ッ]{iNG[֐-* w-SV-xJn`Ѽz/9Й zЛ@JrcD# ,2b3fs0''Æbs-j6JȘ$iyyƄ" Q oఢ PØKg>:?~zqS8%U!5[[߻}:tz= f׭AO&#Dw뛋w'i _,59pcMZVEu\#yNˁT1NHO_)xwtuSɅiӭ}`~ *(KBIpOKpw_-9GJf 7^HOԀ`oR-~;$iZ|0R)A<*֙mս MZ .a~zYzZ քObp22]8D%]҃9H %Etµz8ȏnйS|n}b^`b3ė{ϋрv@$=J2\(O~6&K-c["__1m˅vCI $rqe~@_2s {VW0xCZ|؅0&=4{[췲٠2ӎ.5/W'Co:wJiP[Ut1Ua k|v:~fY`sY&9U)8t.p$ 1g?~b{c'Sբ؃7*| ZpX?W@!6Qd[enE{%|f4423z d|?դHvT2TOq>%rfBwmV{,9'֔Nt3Zz/JcVVIPЪqMx%ʵVTD}qԖ{&b&HJ`w8>nuďpppl*rp>::O*&ju*\QHKlHaJ{=M-[k~PjvdDp[uّ+ 3l)L7»$Q柲wqGZU'-ySړ^/ɕs!0/viDϾt/jYզdd{L]v.j^C>!+EMKMx&%to}Pg[Ht⸨+Mlud{hȎ%Ol-8EV`=n*e|%({zY/ܣVL(?G* :H%Ǚe:lVRS42PEP;/2@]onU+؄-C] zOŌ񮶾0&Gݻ.7%plKmE/uz&Z%宒%U$A -$;Ϋy_fś ٳ.}˗_nv V۩Cd"!M%-\s`6-5 QN$]x$\SIRz#l?TT#x|CyE>U7vB2Ǐx&(*XB%Eo\n`V9l>Xfƒov_,c%S0͕䓸CTU8 Ƈ)=.؃21+( dx㓣*> ΛlWw4l˫Ȼ&dyǐu%X'ޏ{R 5:lK8 Gep|wӓz#礇9e*j fKE:6$'Jr_嚏b`uȐiǒP`3 NQ4z:*I=Gڲ]: U*XeZ,8g n ;x#Kf]M7[?(݁)t։>s5fzкAn1 ޜK~U]s rcee4 lp\Fx;69RT :Dֻn\qf博1b6OQ/% Il](9A61sSVVx>3tjB7(_ZG :.X9pyHKk~ *A}pGpWM<`ZyXM윌w;|YҒ;P A/Kʹ(܍3`BRĩ1U:#ؑz"Os|c>?vGmq̦b>oIN/`FgM PM'I7ꍠkF-{ 7jwQ[J8qMز^pzz[CƏ9:H؏:|κ4mQCizzWW4: X~5<ncؚ{ 2zoyfD!(\]Ls=*RJY5&7A882SVl]T.7u8E^}B34fdzzC㚛$ՇB=5rQ]+8b^KR.DWӢ "s; 2=!k/TX>ܐ٧gOE&؛&zk uoMaxS(=WwA?xmoрV!s:y\Ǔ-ț`s94Z0ʜsw.0zy[PL>e2m#6ca^eCq">u2S?`*\.nHpMhY'԰|ɀ#x =hFRdR8z\I? bz4&f Af# +"2,JP0 j вb\YV9c=ٰN1ҘTy炖} _0oCS*(V6m>l n _yU !,TVm?K ҹ)M G0EuU)afHF#kge (Ag,f#'kW,4e2 KR%Ceze]X54~'#_ zgd8"+=Վ'AԐc 39E:ʝ4L b/ё-rHuӱ$呋 '^Z(;AB1 { B:tqfR:~"t!D5lF&qGN#=yzԼI!.AhfQI!H(;: 9N/a82 :n8k! [!ɎU8s29d_A:M6G^:Dɿ%fv4n,u]fJ)u4QrM<5Ӛ)A!EsUhzqtaȳxvol*%W0fLAY DQ9Jŭ֓ų>ʃ\xj/zdL>Cl n!\ "%R6|ڨXK)}NOw\ op&[1 =۵)r)l5/=8i[D4OxPj^՘{^y1Z0I2~m1Rj"ݣV87|ϯ>\~, j\ 8ΔWC:<Ghҩʸڴ\tV 37H{6k-fNi%W[\Vsɹ>Sz3)Ş}N*K;8x(~٭}sD:6*i TTdB:ʲRw1> j4 *s] 03\[tb&7ڍ\+? O E4iO <^Od^Vr]ѳN(;Vv9bs7hL8@ĥ"_U~aK2=R)w<%dGQ WpzLA3 =;D`pi4͆F&HWłgG'Đ:@CjOCԛ29M$#ʌGǁ{> q3U-̀!7X0zͲ ZUY+*$qCv56j4DEvI߂΍ߝf"v|٬ͬդSט~2i]p5H'+89 HSٍ7ι,Bl@g,aYPQ@v4z\!*l*к%Ev`>]EU-v[S8<X<6@!BX?f9 zd<;;W1c` ֣ SdJlB鹁hL+ǵW` f꜁̓u 3-ƃXpK] |/s .<~WRSו-fki{(&ݍ$d`SK`zlF*-='QE/u W-9*^5EOa6h<3 ٷ7~q`Z#f}ZI8nq`6}55 73=݄i27xA 'i@Iע`%7VsO 0?Ajݰ= ט/`=*:׺dcPb#SyAM!֢A鬉TzLm{MQ=e'mgXiB?ݑmW֭)ލ-X l+LIZ 69QYl(0#/u_ǯ&aP* +5qRCqOFv"=DTdl Y<ҊVP:,֟m6=V.ܴKAfhç3,؁Ǻ=P3#SBwww?A+ډuVn4}aƃeAIZ[(JX&|6$scYWn벉ZnoӠRzFSzޘUJ#G5"ew}X~ä%Ik]}}jH1o!!NZ/y惭,itP )itcr3 ܩ@4(<<ʫ@fHoH1F(ߠhҞnE+D #ѡf9(M?Rg=C}L0h,?tyuӧ_fvE!EUXv ^"U2Jvg:II9߶盖hm?aFH" 9Ӎ)bV' k uN >j̵`Gw5|< ,6QsL>~=diU*IQĖi_""Oo)ßô:dJ ś+"R[dĺ_#yt/6F:`wm֌siΎQUKC3-RBDzQxmנsi"OyoVkwЄg%*&<Bq@\7psÚ{хݔՔt-ZPV+SXXcZ-o5%H~AM6Չ!Gxؿ[>5=ppTI e@2ЮƯooyxt,iMG.wA/a'q09!,0X@|vwm;O!}EnC#܆,Wޘ B J.-ɵ~&mhv3Y}Ceg8[4K+Jx**מY{YsdƑXg/*5x41#C/{a*Յ&t=,yv*b˴Cw^*uCFKK-Xg0ѡs׋j\.ᔍ;\=c^IiqqYu4Bat挖tHAqv6svĽLZ+CraS5t[>=܂k={W~IԮ`g88\:FTsIW$A7FN~L=Z[0 djf՗O̻Sr/UL8Eh"|Ϯ.>nqQ)Cuv/8REd{ŀ6dza )pSlղ #ؐz [ʚ[)cԺBq9J,`9 o r oP:; M+K(`d/ASЈoA9hCsg f!6Rn|WoZf0%T6MJZ'>Ж3Ӎ^w8rptG`?)g:P<Ҧi|U®5ɸSA;9%e7 z.)R"uJ()O=k0 U+u, 4)Q̐=βķn?oKIv|Z6o\k8I}YU?vrt.:Ko}*:~ 4 72cXn݇\=DKO\PiT[6§Om? tЙ@T.Gac$_t/컎laV&brnOJ꒚Mʼn4 pՇpkEPS5Ò9[&lO6J1A0V `]a`oW ^'qE_K `E*W~ N F;ef8(ĽgZYD%G]P`}u89WzyQmkrbxKҍ0~@񡲕-ƙ ҽL{ q7< ڑ) O>N 6aqSv.UX &nVnBp͒M6v'lÓ|/׍rgϢ``zE}m!'&F2C,skᄥ}L*`emϠXZeC1 UKG>s<\@IխDZjC LSߙX(-EKSnRW4t 7wJg@u f1?Ơ]eB곿6G ?)~кE{_}UZW^(l](j>I_[q斱5Bifxns]ic><vMU\t0P9gvj1kG=4^9ae ':Z\kԧ-tIq'Las´ :葨>xW"4֐v26oyK6 *5_/>Y#JC'RtM<+H=j⶝,k87P!YeVH:*%ϡ8lri& `dâa4C֎H@n P5T3&P/yQ#0 {tn./c.{!} ai+a %(bRY5qo);#1Z%vz|`vX<,B %˖QSA;ĩЂ/#7΁MAW(k倍f0*,v߹-]t;6QYeb{ܹ/s'r C%wY>ȓfOÊ Df+i|FcLC`?=slJĥ6[H#ϪkhiMd¸QV*AҡhyJm5#\_Si{Ui@T New!>4W8lu"VEDE=kb8EKrF8PǴHIMmr[^=E-o-xc+'-}@&4x׍g3^<K`M7hyZܥf7Ľr2(苭ڣ9dp)@Tv &Zׅ^G%"r{mfQc 3s!꒮80%B`ĭ=Wfwr0AO(RERmKY,nΝi]/W%)XvrnV~ƈ{{գ" Fd1l.?A?@9D%sdzpus4b ȥDq.)֋gWW&0p_r'#z0xA+PIaIҢC#xGow04c4q_ y@?@:o 9K,?!oZ:>B SnvI[ucdOC/l݌ީq,-lLhr楩"C%FYW g6p>Vʉ4HheAA"bkt/p\ҋt2\w0/4wޙfI.OJQخߩt ?kY =Tl4pLoݶܞO_ʒG)C@Eݷ}on[Mխl d#=ۺ%пںF:-* lP_ʯzVSc똫u4SG(t:8(=E=]DIΑF~@m+Rt$UDsj  *;A@j$Q>z_@?~2,sS=^25 CV*vehs^1a3BZ;ܓ2F:ɖ ?3 3 pI^UHr-by&ѿH12j9.GX:#CWi,S򀣽F.itL@0λưÝUOP.&[\xؖ}iXoFɴL65 Mi#O^l`7JlZQWĒUi(OiN{ɠ[ڿgxbhpGycs]!-7Qrd֓5w+lfcb '4x5a.+O~ 8,,du6Yvdb&^Lp$Gvd(ٱ t>\z;,Rئ5d3ZuyȆGѤ$Gmnǃ+k $ơT:crz? ;l۟V,;lgQۊ'YTt>Whm.k1dϯP0^F+\΅׳2nFTz-h\i ?xZN:"ahk+u/鏙ދPgƏ =y-S`i$qx$fb`8Y 1շ-셨ήcc ^KDwZEV*Q&RQ5L^1FTbrIfB*(hK4gp!,çSjWWaf3O - eQ #  n`0[kP15k0̃71cjm+OOAL5^ԊjqGʉ!6#X|k^QY>zI/=-U[!ۭګΎpۙK4v9.˃LC4Qq%cDUʬj!ΣM_æchXK3hAsdU¬$OFzp7$~9=Qf ]5$L)rbӑȐ$r4g.ZfAiH!tRUϙHJ(F|UB¥b^I7BdT)}ޜww/pI.#vc (@2?LM0 sn*4g*`guE檂R4}I(ݻ ei)R)۝%MI|3a02ݖQg! 8nn˫? CF(i)m~ZMgKAd(QĖ_ݫ3iZ>yiD6gM}7?i}~cIߧm !ebˏ?C$ޚLOq`@vlsE&?8$VuM^=w+B2TO@3ᣋ JהEkuRw`Xw.sxQڑ陳Ǚ%F{5P(_o>˿Vn172=2>=M\sƝ] P,t2?V4a4ϟIAr|{R$Iׯ_AJ+`1P <,@;Kr8޲BF|Xr<^̣FР&38W4{ c0 "%~"\_*.E'_^hg  ᇙjx`^!ęJ`M^FD a/0e99Q]{s(1N%xpp!c-w_V0.M}\!ki.;j(v jKo`^Il Z/li8m] 歑ҙm*n{p[)( hգHAAlrL6ަq/;QV `[J̱͊H&<3nĝX6Q(^*.G]ܠJ:1[qnEC̰K]P %ykqK⍫c7\ЪIi=bɿ "93pG.\ҁ4f*0.,%LX"GBV ux #;x$t ~!~7Ax8+eEq$&^Up0L i0c rSrwe*7d]D֞9I)amm (3|DKd24L]U8+Zhf6p]MدMYAbӮ}"YM"9\ [sO &q(֋ jNmatBW@IP#,/~>TT^"g٦erFpb'Pz..o#y\^A,a747,=-[SbsYVIOQCۥ%R$t5Gm$֒-It QH$KNK`$T.r@k8+1ЀL9я.{0!)S@@I’Ay&xIZ5nMdgu#Ep;Qw/1CfJz`L9n?*.paYfaZ1+DTBϦ%@9w@ʟA_xJӍDcA+D+{S(KY:\!&IZ+^U)7`QM33&әbx*3CӘ,Ը; T1<6Ύbnզa(X;S>8\&8`S:gW_NZ5_EZNV|B4gcP+gBîBلs_Ѝ40E@x$6ЧlQ`p"G|+IHVQ0D%'{UY߅l@sOtJ6ps0m` L\J qChŠI/ t>dM-џ:6,\c^dae gm[ "'l So+_oBt4:V%R&9 F#`esc,g`M5bo Y̚q%Q%?n> S˯gw?ݶ.KvNv]z.NM-?業ŖO9 a˃r Cܢ(@LFiÉ*jKDEәo0L!5`li&+v:h^%o_˛jo穉^X\x :ӴΎ3tx*UV|PY=ۢEFBp!%KÍs ʊYv̩èMSy # g߷wvj_lS\"ymuF5/h˻)ݍPߚ̆D 9\⸨(d$0AqIa^ɗ٠*BNn.-XF!=CR-+ )E<@J8yo;aO^۲eeu'9pㄘ:!S?S Q1dAN^(‹@I3Nb&| ;?N>vsYo:Z:r;4Ɉ3SR͐O$-3;adtmRɌ"nvˣi,{qTp]ֈ+Lů1k6 "nIc`N hLIRF.ЊCl4h9`k+o*8 K=j0wvi|šUYeq%c^-Wjqf+R̹J.LVq9+Y VqU̜%OYms;nm:m^B@tal`<7)cT2pꦐxy0-H41jjI֯H Q8x]S~mί>\~^]W{K&2R,d2csK+f0c6iH{Ϝ^^!`P<"Rd%dUNW\*dE;xV ^ޔ>Kl,a9ajljGOFyg1GZSe%x~P8 "RcƏ`K^~H2ɺQn'DM[ɒagS۝ u4`61dUhA#抂!-ӌu[!~ƬiiPc(j-3'_$ j:mQ0*] br&d[bVjݜݶ˦=5W/raLS[񃤍?`Ykteqi+kٗlv]G]A1Cx,&{$.iz*7aW(c^8GVEԺ=H/4*3`g S٧*֬}ݞl{ rsw+ToTdpv"xޏ$b|{(u gz6һ7f]fH[q' ÅOBֹxհ+9^y`ts_*2-AuxJ\W"H{g3}R,9/VƊ2˛ ݷufF˭X^qGWh\[pjL5^iZހTEɺW2f9#in>]~m&7dq ̘/RhTk2űL CFQ4^cFAFN^c]gA rG4ZWLV}ܻmģ+ E\;7> P>ԡ__aS$4-mPi3d4.n=']<ҭmN50 w&MY [=R2.] s0wSBPDUD'G uՉVVu7M-^6*7~m徒4NBY7sȎuh* 8`gU[t* g=Z:v xg^7pGv% BoOJwߺ?},pCG+$Ijtt}UΓ,h6f=M*EAkyYf-CլP&r2򝱽x {ݗg?Wf<|,J&kqbqw{^k.^󆺮xvLU+s'5Sj.5(w-8O?Ewvh;xmTћ՚L5W@aO^3_ީ=]KSުsFfF_P =ءXuFLGYqZ4e! \0u»9$jԸqV3 &13./%#q {حħW+N[6,yUKZ5PfJp]uČ wD=S&d4-24ըC aJFiwC潀xޒE`i 0TQqJwu0)4O"NE1Ы-K4y |0{أG,r\I3QJ 5HxJ 8%\Ɵ#t0i0֘w&:yR ʽC&B{O'Y8`Pk 0Ç4 ! OQ<:+皘2+kϴ-oA(bm\HȲ%H 'U^XX9/w>#+R_xt@HZTVݬ׭!%`!CLg򦅄g&d8c lڀWYl~0$:DMt81+YDTvi6nkO㘨p8o(2Ѡ]fs._Xts9ܡX(t:xPP{[b&c% Zߌ O0&7Tc !+:c)Z~tٴO!DY= b͛ |6\ A)\>v ] 0f2-La[,(4k(|nCHM6PR0lIGf:Q'9nTe]eJXo;L͕#~iB- AHc*.. xNzJg=B,CA@a3Ƅv [qls5Vɾzsvą V߆Bi?QNUAe;&Gi*O^j -ׁ ,/,~&Ee7=6J_Kb/!\[ɚ:H3o;S_$|HGH}hSsQr;-j-ä -2 S0L 9IE2=WYrT,fa-5_h~bOj5lg[2Ꙑcl|?A%hr& fWOz Vc1VV瑞W`QP[3fNS# iU}d9'+..M`$n.֨JonuW0ڢ t^rN dϓMklD Q9@Jq~"ڂ5YOLUڛ>N岖ښ$J8Z7*fGhuZȃl7mMNNz 1 OvdJAL:FljlQ)AS현f S,:p heb ^4'mVxacl+ vϜi]5XDZigq!U;vLj cfȠ۶ +*?G:|灳Ft*rX×Pi̳v%[|t_2Ϫdžy J믟3DOw=etGsQ6DA*I"*6-ItD3|iZxԛyȆxg>cJ=ζJ􅧵teBok>);kW <1h/p<=foe'7 _^p@l'ѬԠ4\%U;٩m.2h 0J<7d<R#NߛߌވÝ"UL0HgOncJ 'k֨ifTriqjZNKb h Y9{O7JX$SzTͲa)S|m:kW^GcAJt i=ۋ3nH>K6!;[v`,VރA6q6)ї'uvq~}*;2S|9&N믭/W5R7)N\[5Z!:Vj:;׶G{e s\kLՒSYN_QJtc)JQI[ͬi 播Y3ۮ?~|.ǷPOvrnЪ2<v[QM UUEm1Dpf~{PwP&t vwӟ}):6k^<<!@A`[G"pʑ^XRbDʗ}1P"v$&ni)}^rE$e -i\ԨIn@,a8{݂ݏ rqspRK vM{MrGw,aOHNaV;1{g78J'`KnDAjmGCq.gf?؇/T biO+̣{#vo*A \~qF;y\8SK:MjBq By.ϺϠ`z-E8:P<Bi"+fǰ1`dg>Y%5D y |Ykn[^4 ]x!={ z[*C&!˕XtNϊ)1TvpGZ&.l"M,aU˨ %UiK5bǯQg־^<-˅* pB?MŒ-ah=BRQdXJ?z$Fw{_❍qז/f 8';ۻ`vH`z\6B?MW}Ë́,{qpzL#wvf꧒>9Bd a%OY;d6lL/$ ZEh0f/C4RwgVt!OWE"؈YHCK5{?7JݓX)'}ݕbhR#ȅ^>mZ{LJ#S|ݦJCCxi]v;pM$opMo5t.z,d3iHcV?b7Pn$`uB^d -[?ݣS Moac .Qln\3C= z%$߀ i%ʈn6J9-,栙NN6bXugXٰ2T0h{ 7^AcԸ@Ti.se-#ynXe0BYxdvIIE#ظ%L ~л׎⮰꧘ɼ~%S!wXLc1w[?߹%6Ďk^^)}QAdTs\.YʦTw3,#2JLʞsY3azte54useqܟ\ݷkuo|^-7$'P#{7qxQ\)@!zvu1Amv1ܚrƠ {TsPI},`*Qg5#V&C!z{jqESSѪ:#KOWw]-KGp' >se0LRo*攤E݂[Sv9ە4CEAS\>,B+\V]<ьb}+gazƷ΢N) 6cRM'Eon0XS `G-hdq#@ 3c{&su[ nx}vۚc?KhF!2s8].^`eٛ˘\سJQK JVwㆲX;IyVv ^8 $[lThIP:>MbC o`U6=M/F~{w VLuw7g翴h&5 əqkJ+;Zwvڡ.ܯ ee:)X`iB԰9޳xxGq 4NS>#G'vmdܐ XiAzCJ"3d 7l^>@<սSE (iX'@VUFwNv.>ܬA0ez&3*1䬡wNyX_/.zZ E{jд6a13:q8z9>>q^ld3)J mQCR+aA2;zx?^u69h >_`.1fm̑t33[?_/Ugl3и2,FTE3ln;sݔl)Wkʍӌ'>Ap%׾0[e;PUtO!" uҾd qj^Oߚ3gS݌ ݬxw:kVS%=jhY ”kɍ77lƮp-|= m+48c7Qe{fQӽKE7{3B6y]N^OhidA u,Bg?uUŨ8ev`nɯ yZ*4J]!`ĎQ۲[(3%18fi+9 `M杣Eؐn*[%dxwYj4ffd[rZI7JGnjO'+ .0_PfxuAѩ]p굷N)]ޚӣ~ W/r{k+{-PDNԂG|;Ncr6`Z;i8)Ĕ! B6)9]t8Y]Z}l={iuO/.Z?}Q!xzWYE'@u3"may.W/qtZ[Eh{cf}j4uL z3P&ysU JcN7D%c+b )WWfP^Y~f mԊOb9e:Ӆ;^wtjstщ;, 3.n?6N\W%caq\@kd HJm+y TXghƇvN^1E\Z b,xNj溕lVf>C^epåat@Nǒ$w:< :WX(NQ3q L݄ZA~嫵/"πvm~{kЭ G+we᭿/cAjhA_I2Tyj<Z iQE+Fe12ZQ߶o[ͥ(#|5QRA*wkթ:* xW5?Zg'4J˂&d尠8Qz+>5-&ۗC(9[rhxDFhK_sl0 _~ ɞF~ `"DIϷ~xkečϕpug潺)q ]>!w ,*|V{vJ*?96A 5/,".oqc^kqE)vqꠚSIFtXTC4dUs "Rt+uߝ zūM1JQ!)&`ݺB VNOA汘ϒVNi j�$ " o+8rdNLqʾ'l7{iت|ѽ8g-]ޝQ}MWV}/ 9ҿ]);؝X}΃؏d&Õ/CwMl?_;q9/'SwmGmXKԨ/ȏ ydJz/2=0%F})A B.1J׊-a #@rLs0x# lSàhV$qmUd 'ȉCżZ4l]lj]|,WW1\cnj8޳U/iQS] \hVfv~i9Ds_ۋGJ8dʬ4,9`d+Rmgu{h'KSp}V^EέX ' ߚRn.Xa`D(gna@.8)b" jP{搟uSq$E.'qIBcSĢ }ҐrvŴ]CUYyh 1}|.AeTX%x04{G&@Uv#:6)8sh eP̼Q,G4!` ɩ6b!jב*4"W_o./j]Xr)4sub[X ftG,k{7\I߱KoQλuΖ1 !KbCȷ+u>@i< LLANC/3N ~de52cUb]pX8nj3(]ֺgNkpTJ;ڏS^gS*s8B[˧@4RvTᘹ"=9hKðyH"L0˘a`!eu N@;jAP(j5SG)w]!/gTe03[_N@nQMSR(@+ D|>uGgBOϷpJ Z,E>|#ŔlΛTA2_0G DRED渞4εc=7k* 3A BGyYhb[&`" ZbaOpC/d8fqD21}UC;a|j0 vh=w7\ʰVG)/tFĭ}^7o򹼴[n./˿j QҤAoUClB뀮b[f\4t$dU [ : ]ۙy-2ލkR܁a*6|mXQx.g\1DPx{Xd/Kۺw6Jv@_o +ɸD&Ŀݛl+83|'~Ƙ{C7r,@{$03Hjd5iooY#ƦtArW>ҥ|ʱ%#"Z+gx%A7R \ggyW9",fD<=leVkgYT{=qʱaC[iڕf1iTj_m`΀bBgXi z?  ֿ>?\>h lS#c0*W~8 @ 7,e=U20x09ޫ gI{Dϔ繵ս ~!QYoʏ̡;|6dӦ W09ZCCļ~IJzr'#.ACa4RӽE$ =R,?݃Cjڈlj9<l#0"X`woIwj/% E[R)Y0ΟcQH |-DsN6FeVd '@t|Ebsvщ 仝r3Lhx~'|}?&igc+ #}wT쨗 OiV:Gipo\׊Y¼ÙfNMq1:OĀj{ HE!,B& n4hFQ۸# qei>ЧrS ga:E@ >l[ow˻:=Cc VkX5.%a$0ŕ#<}!UkMjv]x{Agc-j.ok c2ҰgNf-nf)| A[[;9p/C>ϖ_vHy]؉p6-9\ʗw0HV D3m`+5Ya5QYHLؚ_q* ōz ;{ˋꂋ.hgԤ*CA8 qۗ#O4S|}wKԙwA։n ((r s8{Ztf#rL 2+&R:9V8{NV+6E=z4PS`DIϪ,|j5 =ICr@Jb |)qTiW6^Y o+dȉx? n-}"C:q0D)"AɆ 攁'͚䢥=Ы' 8lc8=:]Tk͖4zdD?u6:ta7k#잞=J7IsZ ? D+Ơ}%9:!(t;KB V [OaNjYG'' R" #iRufu{d-@[uK5bWG;EWB KØC kiWƗwlCаZtWK{;_p7@,`b%'<3E Zd.YEdiJE}DAx^7зUj!hX=3H EaBXR)aqV~!Xm;IpAu21Y߉Mo:Ffh{~\vT*,xGˍ@@ ZxŰsz8mKX~gi aY"4{`TNNf:U4/ /+wJ/Zs,(NDK@d33gƛbO>xHeoʌ&0hLˈKfV}l;Gsg]^Wt%9YIIaΤfYQY"EI3},QRVP'D ub{nI܅>;jQv'Fv޿[jEޗ)%BoGW@Eځէ-)GFK /-5&`(TZSL4`hGY:'g_ɤ~Ԥ&C}yb7v[ɣ+¦4D$uQVv1cz6QFOX#\?zazї`陎^9n%17PnG"h|c.U{ <(UwKUS ZT`[ 꾾@z^[fo'.N0ɢBCa !O5GqVs%ȰLS3Hw(hBޓ < zz.uml<#+M6ܓo߾6^-k7/hI 5\WYmӍ(~:IF%;{&S_V)4*%c8?NrpLݔC!1Zhϔ u2 Pnִl̒ZZZ{_{tK,xTGy ڏv{|Gr٨WQ Mwa,np0@R{b@[Dƌ0_m< xBfbN iG/>m^LRyV͓_!겆5+;q)rO&LCk OPr| e&G#>k5ԋAJKE0^r#0Gٗ*nYFX4dO{Iכ'uUFg[Kti#pͤQl{;x cJec 벣@CГƨ ;049v |&̣^^ϕ7Jփ^抄/P4A1rʀҤgH:&2U>~\El BZaR8J_9lYmAOYy1D͊=QXW|W H#D̻]cݙC|fs+N^4\W#~Yȗuw<\BG<mf5`=C 6_`_U3*zvѼm]0Mdjjyv X9@g@!!ІfíF?t&dQ|v׹%ETccQit;-*.JPBTmMKbb}YTKƷZ5 uڥ-?=:_^?9[簉|{(8l1[d}嫗KjP܂DҢD.} e?_YQͥ)tJvi0\Imss˷/5 *lPK b;JBTJo~F.Yfn켬4}%d2-/nv2O Q[U?2Sٔ,@ mQ>ҧ*p:)؇F0NZܺ"/2̻ӌq}DT=("Qt:-H>8Og؍Öx7_/[#ZT Oأ_iy&:rg.|p}6VK&|bk{Q&OS=$}5sYN=0.Z#/ǔxd5[iy=Wa&3:4_ptL𾦣tEt&N]bǁ~ֺ}K܀l:ϵQ޾5J oc>7p-NjH{uw2+>ziFTg>rp`L=ox[%kL7{{raxd~Bع\fDUzՒΟ|~7Ke;ㅻLlMI'Zb綃!y5ʝeJ4.ۇjJME\JҲ5S@o2vJ;0׹a)/w+r3\vbd1#K\ޫWaw>DXiߋ5 M We}j{s1{ȄL3 Coa-=.iK*) ʻw߿w' H҄Ap`H(Kb@4D몶]Hd"I9{t`'N ]LsL{#J@Lo߿}3a2X/W>1͐I:XIMNQ8pfqʵ4 DszΎ-De]a5V YvW~y764'FKA?_ayBtH iR(6ұ"R^l-S.G)n9ɟvq7*R_ߪd'1,o3-ǚ .>+Gz;>Swt*G,-p.D6h-l7uk>2RV)8ג~sx~C9ofYFk@7 PXҽ"]h@/_yV,)v`E>$qu 4(ng,vz@cWyUwQ]{YdD>xM[ͽg* #J(_8prԝ5>3,y0 Kʖj0@X*k)(L9W .0spHe9 Vzc;v_>t a4 g ^ּR MȢPw'NV^%p ZPOfjvK~tl$04*:Eʽk*iOIŦZ{(Ew6W=|h o2,Hk|#II|zr>;vXxwC{mmX,Rg0*83fGշˋ"D|wD1JGeCc 0յֹO*d %W4 f-&EӹNOFુ>OϾ\W_ݰ쪪G2@acp5#2Kl8Ke IrJA=[p!M_r*>Sb'S.4SqM>B#gy/_^atS4xeFz;{4dtCp.ߎ,ɹOǻaWVlfb[s7GNn|Q˴pIV?[b-A-8fqGOW{p;.NGq:4(*["J8Cӥ?8\UOms[nH+<1Ͱy)6jºCM+G:|}Z@ĬU(3Fa7M駢8MxǶʀ[L 4l gA; gX.hzN#:H`uCNOO;ϡVnwo<0xuw;aϭ\]Ops٣ DimH~ŠaNR BPܙRo1?nM=3T别/V>L1xYMP+n!lM[2`nb @JM/EdWcy=p*٤WF$Ѭ?[\*27W4:2p\MА7wy7d8Io(}6ŝ1_y|_ġ7W3' yMo(lULW:7I}A#5޺G@\}pBAFQy*R KXP4res[v>>][bq> })n<ݝo4 i )q|}9p4/4=A!7*;uϑr qcǦ/[wR?h~է4E8NCPwv̪ (zE+3wMCKlwXM4z6 )HE@~ą)]6ֆ{l,y ȕsi:W [E``|o]aû*YB뗟QfNd':FەK%q7S$)ju+Kոj㧣pT u;d|w{m( ĕM6#7P Vpb!^5tm  JŌ,2V/mҙN"q\#2jRo8mvKgd5Wl:FMo.EٕS)zg&^߃>ӃL,P #fJjыhMC'j`f\?w|쥟cD'V 紐4Q'<#{C1l6)6>A3k8 Y@F"LZ‡ŠI]<|./$Z7/սۏ#4 )Z,ɐ3 aq Jg5t%ysȺTOXׇtͤI wFU͛B-TyK{nAAww!I"3/GoO4wLwotd1F)/'5F@b_[qz} ̷]x%`đ3:]mj1(6_R2TCA- .#0Ļ>?oo Y'77"zzKҽ)󒼇$]ޞ>0-lt sDSitx=-'iHhz`i;pj:m2wmge@N9dfK瘍X/@&l&c@zN|զm2$teK'RWB?&^40&=VNTMAʖ[E^<k5[K9 *l-kFJ-,\r&Pi]%"LLBo뙹Ppī- Ll-y z 8+Gѳ< +BG+ۣN!WRxX Z2{C}/;͇ 4poA/-t`j2i,y(;!j *K*K V=1dF]-٘ uwG IxIaܐ$A_~HdȇxO1^: 3}8l?|t^j4,s"YfemeMFn/C>~t4Qv|Ŏ٠IE*Y3f;9x#DM?> <ղfw YL0.Oi*lt'ݪhIGEIYJdH?,?ۍјd ^X[y/*lOBIA$N|rbğֻɈT+?)PY̸E(ܞzʬ?(ґz6:yݓx,PHb5Rq50|1٧K˷K(f]"VulW|0Dto|LjE\w#_n7Dn77L{ K:ƌF+zE.(pE"9x1kPIxYScCA-壤ID$Jк 㮬sTIFb,b}T+Yq>%bz_\Wk?ݿ3P|1h#153EχAjL/Rrj32\=4*%KpkLH eZig6J wX]r +|hDJl>DƦApn7*+QuS@ OЙmя,`;STo#a#g( wM+zQ keֽSsdnt--Q<rq"cM}5v8q}ۛ^+m!1Spl9eI{0&9tzmav% 9pc!o&Z/͂Zq;!ƂٵyI{"Y҆!YuPL5RfҷlIƫ)lc~נ"[owo{g!FЏ[wquq8L7Iw\hWvN6vKwth珢diFn"TI ~G#kaal4ȸa?ʭӣCo_:'!ֶ#<9;B*_6M,g*iŜM" cSt#A:&{ @1Ne;xJ6J{,q._::.m(j-^%Vla̍X)f%<,W o&C y=d89Uׂbec βiWtIg99, Gَ32;,(ɴȦm Xec qrf+5OI8o:1XM9?LYLRUݮRLҺ\E`& rjC)#S"~,S5g՝%o|s&+mCۏsמLz{Q(1%}: f UWHrbKKN@=SFݿ8WpLI<"g&0-iȼlAi $zN(LQ<|.Ip56m|`y(Ȳ`ƥଝß@/9-2uA@D1u ~N8S0ظؕe0 AB0ݣΙprK9<WHqynI"  (o]zi-yҩBeYq"EeZ=ޢd-H$H'-n&<+pAYU̵ʃ%|đGz-rX -%dJ~IfI.w% W5Ńaaq*:䘈]d͆#&LG !rA6qJܫqs&[R`&#\s!kjΕg0dD6P0?9dB@˴]U/A=[|-v}й՗CӉO|8>$D. .m|_7kAOB;.PMbF ԚZWm콯.'deQŶ2.DSM2Ɩ1,UPҤg{- ߚ&tW uQXgDiX`3i(]?a^pJ󕏩VJ87 z\r9n5ft1aSmMpf~,E=F98r`|>kxuՄ}/x hjCLh~/]vKMS֛COϮ+11 :ɟQN! Pp,  "BeeO8aҒ(@ UM?i+j<ϹK>\T͊uII-ӌǢ C17PU,E>C1Na^Lz89Sg;h#c+o1^;[f3qcѭR ]KFw޷ @C3nr!LdD(tY Pkmc>"Fn>(|R^-ow#ZGf %2ghqC~otXjqcJl2TJs[K $Gn'۠>/Q ?>]-LDHnDl#dž2o_0+ڲeȋm@L`s$J'9Ij5[Q-B~Ժnf3~^6M}#YO&t Om_;CpuqrLD4k繰Oұ8\^IyFr(6#C&!J=7^̺bVtC{3Ƚ(in.j}^C׾HWw1,VNCklM\9)VVXaGUs(g+xw8XM&/-٦{ˆId$Xօ\H\nf ZPR>{#4AjImXv$Ju'}.F@"zcvqmqS ep 7Mú~f8j&&78ۍ0;l+o}LUJ Q8RDc@h3\<+ وo|v_v/+]Sʤ蛶AK3OOe7:q8_iu{_@?i/_hij9k#-c,GLZj/ex(١xThx"(z_8Ng7r[<E!8IYuSH]m-r]|+*Vmy!Bv.]Aj1D҃=on;gGd5 -[q_ 9W*4NriZL%j0MHp]hS|2DȲDidfe|Lѩѱ(=5tZҁwߛ0͏nou^tliY/&^TqP~4R%ŪdLrSd\P#"-TF '$q*Bp춭W/Opg)# N MT'r $|Ļ,N. y8źijj:c^r\&)iLi—7` ?EFZ\^lA爠!%|(jՒkbhIV)RUAHZ:Fi o"e=d.o7}Mc*Mы: fs==7kCc=sU[?ni{dEITef=8+C"55@0= 98i DOL4F!f/vPʀdT\ʹ^)+DN;B&o2XS~V,%cءG$FtД b"H$> r4֢®{fF8Z7gtW}6O&lxY/EIe12s=AԬ_r+? 優.e^*zNR%p_ @)%3iLXƏaP+y9b̓oj*^B. )>:sҦN\{5qzfbDWB1P=U~(1㐡Ӝ]:o/J8pK F8 bP,Cݺѵ l {?=vvL~_.Ͽ]pat Ɍ da0sQPZ2Kh~ z/t@nATj|X08$wX[ʧB&:I r3Vh `%fQYС %kMH,<1xG>]㓰-Z5Q-1㵮1i_oqbm)Węu΂,%v0WGƈs߾Fwa|J%*-V fL(#q=@iijŴtgǫg7{a-XP 1M^z)VhP$X~@Z"\t%v%w`+첉tft͂{KiiQ+hȘ?>4~fN\r])fLJb9\P6=%fQ};ޝ`z=嫯l嘢a KyA`JI|**>K7.dGYIcmp) [6sB!o~* p}5W7ک^gTZ6c-j!1\B"鞝 MF,=- j^SU:L̦=`Gs|rqtx>Czj> ̷$&-RL[h0cK|?h}8UTFM;OhdYPDͬ\ݺ2v dao .A+Ecq3h)+?ߧO>c|ڛ%K g0܊h&c1T#67Τ-,Vec6Q3(%̼ ֱ$d7:V ,Y8aI5ʊaiP?=O5JC^+r74:&)sli,hCʰ fp[ڡnIsJttmogAAS0}|r:?;I_/$3=0.Ⱥ}Bi`#mDԳ /ۺ ~但4#wt0"|cn\l-%U~xTg++0~ +W5%Pn&@q3ZeL\|.Wl[ !0Qo]I%Gh))_Kʆ #ʎ7R0f5OK}bϏ˾"deR.zfuʙ W؄aRU(\C?} Pvi.)/p·i, gC{3f.nܛ1gM/\CUB9XI?hG{+@ݚpCdO|Qx]Z5뼂LĴ4#Fq:М{*JV7_Yۯf)iW/}`-C_܎[l}j^čǘ=:5;\pHh׍`g%)tI2I@MӍl$xCSXvdaYV h]Dq%e+/!1wn]0-Xm~hfZ9cX:!3FZ؄륉 T{3]eKY-{~ nDp<$6a4A`қ5o'v䧔5t{,yq^k-05mmϨ&-15 d9Js0H_ݗ r<*y/H|Px vw'^qaֿ1#Ҏ{ۃ ?n2 I{5+~Ȥ##mA~JK2c&wih=4^UW~׾ɸ,IN ֮6=`7v#nF1z1 h5R9- EK , l|Omt,]eGQpq/>_KXCLI-g&vI8= • 'igx: ^j:FrtdID!Jh7IJ9Z0oTې[*r[|3mҾqB/}qƲ9ilAs0(t&',X"t4]8C}B<\ͮ8$lS\WFV$z|YӜIIrE*̠\RNIrOV%rJlf„}hlF_\$/r}q}ۺ֟:W?ڹ@3a2n6X. ԀMXz6(DJfnn!QEh: + %k*^*L]+ZQ4i Rc.fKr6ha-?Ş.֓cVG8xyzִnߺ F7 $Ӎ=p>QW뗌  .eѺX&*`zԓ4)W6AD-KVU V}?kg Mrٛ;Vh_-c=#2h2Ϛuv^DF0 H=[=kmʹp2S39JKdz64,۟ӉԺ($qt%}<5zW9ƭ&^8e|Xy⼘ hTt@/QMˀq:d4^ۢ9w+].c1pZ#O8 kD /ԡHd}]{z l ?ȩ]4KUn%r;9^ )gԩ\,,!5o']ni1{#^6 q0ɥ~OVV!q#g[8?X[>X<©V-q§_iY> #埏  ؐqCy*hdgz >̟j2EŽ_VL$۔Kg(dxS&dq.^׋I#751z5y 愫U{+IP=s_U@!ݷ6>y,?M;Ͷ]]G0 Pt<ǢlGآ~ L[=[I\2tnB٨_zx@l\Añq $퉶x03T4pw-G]2" /ʹ%pYચFdttl ʾftkY;A6* gK ':'|T--QצkeۺTh% |z(؏{um;1t<$V5|Waˏ]e JPlݻ)2z6G12W\JGTRAVMy63(.*4m =:"w-s?A M"0Ը&tHM{ `ŃraU:$U(Ĵi;HNCAƐ$d}[ [))zVtPV=kcI_maxV=gWJ?xmo~xDsǟ} \Vͻ`w$Hg·K3z|[y<,}dڨG`k$F:6EI%s0 U\qs-Kݔ&_^  'Բ|-t #hFRdR4fE? z4&n A3 +22?%cp^5 hu1QiJTN6m>] =8e h=47_=m__2Բ .U-b|=yoyQ !,TE+^?Iʵ)mIG8CwUiafHV+e hAg okC0m> aC /U$KtlH `- 66uS8J5;b|mjT*]~\aLIg0%ZMn+Q}^< ;+*^q;DZZB2d-SqO2U-h,M`vɏ i(j9/f''I~s4 ̎1I(YV'*Oc%(be5 @rږ'<WHl7V o}X0b>G+:'se(@1p_٪`?ťW |0Y$X"+.6[ѱD 9i}FU)Y~wX~no&?ah3ZAF8aa6{iaU{,Ao{05)JoA)&-ˏGQ8Q[$߀7ZտQw:x./ #hRi\T~s* s~bsP\b#s¼$K& k DʴuK9~bP*GZUgϴv>W/$>g[ Fՠa#6䖛y%!-g_\`f z|VgF 24 Fvy<8g b Fԧr<͠[v?ˌY%k ٺ⳨%\ʽh&jYަAp͜T 1,ە~?F(f}e)&uF@` nr&s}1 !u Hw" й#3li'58o Rf*dShPxx\ԁ0G' oO0F.Px`L i_ f7" ʙT6[Ɵz^+{<;}u9Ӈo;kꯧ'g_ߤgvMz*t};E j1*9 U%3O~R"S.zˎk+U5CR5Ʒqgș. N;8~1q5ap$GSG>:ؙ7<0+ϧ5 nyJ(yq9]?;diߗo UI%QŖ-Df+Efs ~OOl9dJ '+"R[䔪Ķ_+vQ4NmF6`Rz 7c\ZsVq֐LTB=ѦA4mwp n-Q)$r˟ *k58& m=+R!u$I7%* #K0<ū.Q-6edH -qV?EӕjcT* δfzMtCkanTepJf};91O)ӁRW5O eh~vxҹrCl[v@DE Zli4 oeļttAR8BČHL%ؒ~ V-eKTkk] !LPW?8 or oд;;PM+O$M`do LiA9Aγp{гsLJ}}>嫋$" >ԇ]:6Oٕ';6@8s{62ԕl)Nbq>F^;iUnYGYNatñmX cVzF8D G۝8oZ=Iju콶vf~_ĉ㮼j:c2} ޷dzqYi_Cp͕^^clc3Jh1>Vqt?k;F\`T <%௎stc Cȭ9W.M@d f1SI"43m|~_`hBT#2BP_ {`|E*t4b"Q17LTd2x>Uu}錊L.`Rem~\FmC <}iF@I5ǹjC4 LؙxhW䋕71&RGWtt 7HgDu f1÷M|A ʄ7gmO&/lB0d C/}3wal]_zenEluѣ@H$B#0LH;iw#W_jq{23GEjʱ@en^wϺ靚l){ci vÆU':Vk-mIIwgʹLsҵ zHTM+71 `kȺw wxgtBFT98~:kB0[Y$]DN?$ԣA.niȢGi ZRU5kô'mR,YIz &fhr &A>.ƣdݘ,s@b6etW]> G~wXֲPr"Yr@pFhф[R4ON:c#]oqZd|C -Xt7cz#ea3-13T޿"%u1-|)JVϕo56> {+صrL3B_CK޹-tœ;:cI"M^*7xub.+FyIsX1ݰr|% ė`1u[~0wyg&D\eK,"ĬZ&܌?ٸQ ?$Uƨ9=ڀҋ)3~0;r3. ̦~¾{8vqeJWgjn"*aSK&K:mD#E~HA I$je-˖zUxQopBV<@x%_2$粁(Ɣh'"DN]8LtGe V8# 枩ɱ)V&{x4ME .MCiYZd2t̤WTtlrqaj-}rj<4mT\?brI$I rƲv<0a*/TI)̝ G/I: 2|yOY}y<^+7lomu_iqUY͝(&NQ ,n_ҍt2\U;i8Z;o_$QD^4 C3$Kteo!˃Z,<e*oWs]v:UEݭRl d՝<ۺ$?޹<:9^^P=wv[w=)u4MB-m"K-5Km!80nُ"{I.;V24ʼOs}.T!|JsOGa]=sqB9ndm$Na% i\VZ p$X*UhG'>b6ȫň6Or\pI<7KseP s`|0vXK?kf*|c*8P 79IJf$y7N8!eh^?d~S 4%es5#N^-$S3کdW5MtrW(`cA!2Y7oA= L{x E .pXN:!wGQh+Su/鏙ދWҙSr4ȀI% #- k֋5A1Pn?vvu`l -N}7ЫfTTrrW.]&9-{\p%7c"" ,sUrPVi.BQ;|iyԛ"7+-ONi70;=-ٯQ&_fw4z^5Ϣ,66>GK  y#H&f&ƺGEbAAOzM]?Eq )9e^Wdb`1ɊkՂ .{4[j;d]}]y#.}OfԒV*],#ȸ&ҲD|z[b*B,mraM_çchT[3hAsl$&z'ލgA9=U1f! ]֛bבȈ$rgZnAYDR{q*̤HbF3jI!mұI҈S =I#3~N9. foN;;Z0zm仱A#4]6O `iy#9fs?:̙ >!*6]SP/<+,W;7 Ȥn%oBZ'%œޜ J<..㳣畟͌G#i)jixOOSAlYԶ_}gҶ}`-Ҋm*h>,o-k_!dXV*^n1mNR뭥t~H.xmSȤп_{\W5n) zGJ\hS(^u.|tZihX`I<1~@c9 g#("Kx? ;>*U,$lj0Yg?]lm0间 cH-FVNo)bŮ?Wj,4U!B\cfZV)c8_o)h^=YfVB!q-arK>ujnhc cvzA50Ɛ;v)ړ6acJ{NpJrBL9 Zw"rAߣj!x_,6Yov@z W^i za*_*"3mfk)˓ =+/G5 9binq(1ӅpVq9-=ywo5cgj2x8O?Z% A%.Ty k322nڅ&|)VV(꒛oR2dOj{k'ݰqki upGdp "XYu{G3GqWC}WXz1@7m YUZ~ %364DqKDDŽf5tli8`hܰH2X87֬4[&֋eZYwy0t槀i[`~HP$#,䐺>mP.͸)EŋNDX\Q96٬TjMpm Bq;$P|;4 *Bږp:Os3lǙFTDnRKHюA0!uA-T䭕E8T3/'ϸUG^/shU$4z9x#)n@d*0n,%LX'BVu x #R9ƁB\~>$:oF_0zk1b*yQ\(8$mx<(9JM2UŴgN:H#-%L]2~[Q@#Z"SѠi:RM@l%\ @dʼ*,#򍪃2@\8|C:`E%$߂3H>vxWf&䳤'm[auT_ fsFH{%1AKo֜Gdi8z٘MFAӹ-\^ hBҐ& $/ƊCL`"T޻l)\ 蟮㋛m{".G-a?AƞVm)lB+̤ k w]9g#wV[ɖe@wzЬY$%~ mԦ%1Rzo:(ϻxq; 5_Ta~&YshL9mO.G0)S@@K’Au&yEZ N-|aM3Eݚp;q2t,u/Ia ~ }M[hnxRƾ :XQt;%H7EC|i,^ ,jlAt#xe3bf^8_@&fY=nayqxJ8N+dlYsgydy 'JP>A4&ĶRN4>B9{;eRS U>QbR%QzyvS8g29ޜ׬Ɗ000Bͻ.Ð 2)qq5%iGEyOa(X=LY^2ld }ߩȈ\TV5sy%EmgW.٣X6jP/xÿ]漼 L=GU0 :AS4{GiC ʫf(7 r$bz}E H]D-I2{c]=6v0s}#Ӡӟ/W(0Y &pn%CqKiS_yx(0|$Ț87*1hџ: Bx/S]p2GնX m M>7U7!;ݒDivejky1gK0 l~ߖ ,fMӸǨoƁC~t<yqe ɣ[tnݱ񔂰e4r2IGJKF dy f2-+/'PBK@UQ@q w*rIPd&3ye2-]XP&߭`=z%aGGڛA^u/qEIt[KcMr05&H@+Nբ@Ww*t9J=ꮉ041 /OV5՚.+ e zu1Ѭ}H:_ɶn'1퓢M8R3 '|CöMyq; n)_:ZPq]= >VdeZ2uڸJ_"H_xg3Q,9/VƊ2˛ ݺ 3N"8t yB^bh.xrc8=ZA޴{h@*&ߺNk9A_;<>&rII+1cnKQOecBNLf/K&P&~y=%zkw7 dZvehw}ɦ~J4Jkm#=pcHca~NZpt{^dz}.@TK3( ~}qMSS {P"vh+GLw˰Ҵ];5";3>2TlX8u ԷLkMI1W ࢺ+y&4T'VY%My}ڢOWrQ)Vcf8KZx4G̑iNULX]ǡAQ=ݏȮ_ɨ;W՗C7uxo^!)R#4g㛷' ^Ra?ɂVKtbP&Qכ7k%vVCxwOt)G_}yk?l'edmXWuE]o*7;;sIfZ֟ I4u H=|ԍt}M)zXTs q44﵋:ٝ?qiā"tinFۨNO.كePgD[NIaFPzG5H׸吂#oR Ky᫁ZMrcrd\nJ# QXO[ηm,uYN Od?  }rCVMvl84ch1Iu.62ô3FiwS)Z@cRM`ZPi 0o7,/^/`Rh~&i bWK4y={he mxqGYjB/}|V^4"놹l$O@>./:Epz_zeI/NMI/ R-?ڞG8' BBFdd! 0F8iMdW6j2f7$Zt NrX{2C̈́+ytSU˗4/{o6~ׯ|=aJ$;t,U-]I^N BX$}wDd"Itϸc%QDf"7yP(qJ_Lö&\ɄV̦a脂q%!|1DG.[`=0CV#8 =|,a L闺2Jq:HC ) h"As@@KBT]gz< gTa ;4!P^E'j@>" oupwڞƹVx!wJQ޻@B`w $o/+T|Y3YqQܣLa>G8YXk.'(h.)`0!W1B('v Ζ foyg ϓd vEM2N?dƀ!hC)Āޥ>l?~,R%2WsoY'ƊbCbhIx~8<'UU^b,v1!Sn-na DٚqݡN*"tBߊ@Xgga2 |JӜ &&cKɞWIR3pnuf[:.~&d<=']p)#f=*ڐD >>o?aU<ԅ: tYܮ =of iAA'F:<г P\ Tar~ C 2U/X堨J%^P"V\H0K^*u^MC,Ƥ?zڲ3J]r.8Z 1xKl k60KA D=o" ϒ[vUK*%ӥYخub~F_&.;U|~eW)&KzFJ1%&8bű!DGz$gw0A#Z ^\iNlfp_{ҸU8 QfpakzF9 8+V5ƿ{=%n X-"Fen u[BÊfĔ:#: ]R8j pn|pʳaUD7VZi4G)3Q }Cۦȗ{h'f<$ð}'IyB~D߸[n]>LXAZ:qfc/u81.]8d2aAOFf&]?NyhOhC 5z̻\H;P&,)vƸ@F+5 kvSPTPZ EG) Dn hmIH0Cr {kH9Lp]#~P&׭M$] `ǻ}+T!b$P ?irkA©z惸 FWh!A8"GL0N '"`|WaliࣾPDʘ\y- KG#L9MX{4ƓI7g :vbJ JoKp<ћZ},^R۹xsvy F3T0V#bc<R#N㸁;ߊވ#S# O(R tI-[N27xWWPQ 8_E/CM2|P$"Z. v/ QįmMj,N;7%$)w7?ۦ1>h gfIYD骀rca-X h?|<s v~۲%%ErsÖMaV؅hH]sއ(GIF3%#'>׭(,ݚR2?4S6`agxÓOr!c?t;No=5|O0[?\PM&1tvK5c]J6_Շ ْȤj) r ĶT 2%4AB2EN,‚ Vϻ\^ O=OU5& Zgΰ yvՆx\g!xn;0j;,WFhz ^@|ۑ)1Yu]~~}峅 Y B5E`vYjNnZ%8뮵zs{}?n;T)_;1e%=*UNQru!)3]NR~r>GWg\* Ydg?հKôXր>tb $b[ͤDlUORObQFQZ 6c"=D@G0jQM F(b!8w1vP&i<<hڬ]aޘc? ϱYa䴿%3M2pР.|و,ݒuR0e7 Pks+"EJ;1˙ǂ{zP,a&A ac}9dg?SQK vU{} ~oXwI#NoP'&3ڈ6; E*{ 3-ß/`@aO@,%;:P.!#<ځ&ui2!2S܏Q)m</(9Η"91etVa` _-AH"F56!o .d3H2]x /zGa-=ޔB<D`Jy}cv4 LM'CoeGqc,Ψ?Pͬ"7MÆ䕲^*([ǭɹ Vi6y-lZD폀U+;9$È)%[뫼BJ_2LMdwE< c׈+\ ^"2+r FB.SP9O8qI8{}Hp7e\E m(wUI\bi"&84wF 5jM xgɞExZJIHp%:ݬYa?=/rK*|Bvs5j6qFZs!Uhx\*[5/QgҾ<-Mx;gLP#Afd j v*JJK[sp-omm8'7s#a%{9jsaPhB&G '5,B9gytznpb؞ t f ]E /YZa \>7c~L\չ8z.ΎBo2TC GYJi]fg}<}xiQ閆uhH@zPh{|\!ع=ãǨ1]Y4U|2iIR嵞v۪_ y3i9 uM%١Dp7XeMq(ajZNFB1.iG/ܦ5~Tg؁A(U^UhRA'bD2(޼,g=6] |-}ʻKh;A߭* ˏ[Ͻt!qY+'"w;>ejZ?=Ж@ۦ$0`ļ!V39Yۄ޷揅-:◟(`c(4oEm4$Nc8% `k )"hByQםAuru-2#wDae=uI<"Sen"_bs:)j{򤘊]EZ_!;srR[.b75s!O-mkGwMXªA Q3Oi!m d?c}aPŹ[p=M)/ ~ S{8TM9hm0HNRLg'_oohs*:Bɒ1/k5YJI)!+(WVI%Kآz+V@" A&B3`2GR̠N{XʼnӀ館!#9;K;Bc_(;ϷN}ƃMC~#TJy*ce8X0=Kr$^#Dۘ\ ]E̠Pb&=H(=°vo#еLwmuQIZW ʤp,(졜1'#*֑ "FN[^mhLmC8rZvjߥ{= s߭0v;jQXL3̸S`.3.jzWm9 DV%hX#x9Y1ecL0t<eM+d|fS me\kPv#v#ܘn=.i/=۫`];3y#FhI{YXEhSp{pNM \C̅bd'h%2u^˼V-To|q qmcstÁc;vO`:1w #|8N,b#Y#Ek]!8K\#@B;-_Cu0bkh%@3Xgܱ>$.і@DyS3x<ƅb4\*Q4lONPBɯcf c,Z禵(+]m ?hwVsCFvZB;(?l1̠5o#^P@,T@J eVpI:,Ȃ,vm|MQp)$`{Nx[nÝ얍<.6t*H Y2Eri>(a\A7d}=̒+B:aO/, BpTlw?f:>bxTӿ؏Rpg:QZoVӉXz h8m5fHWL#Eح-یUeX0xg%6_i3c$؟F7j\IAk_pOc]`k;A5ۭm5p3q*$Akv{Hx<=T)Gxxa8Aq+"0ˊA]BwӐ#$A]lhi<&@RpIV{,2GVbx!fI=l@"hvvRH"# _~_ݦHW T~쌢qsN9f_+dܱ]SN2{uᪿ`5W{ꕱLv$/`]oMy' zYX}MGe,)le+;0li@Uɸ\W7kkV.*c,wH OD%9>vlbmfAZGJ9JT?U#m*P$&%vr*­K+]e"%:,vK9.Gcq^~U8EΝŒ𡯼4 +Illn^bNk6usuvKD6|6eo``ΌU^m lnoyNa=n5kiGWv#j#긽me`͵JgkP6RjH9^o`zhxc{8i!6ÎQv7-#IF; wXUymJeѶ[Rv5qHmS{mۋ |xύ14U0^emz'}ؔ! Ftk>(Bo'ZNT`+~J>h!H_K~4 Ҫ2{|Z7ZU P [2ie1֍p69mĊcCec5Jp_?myY5מ4cp潟.u㉇@bF~ K88icL%lM$saBy5 vEHqR:zaDZ(qœyͣlr38ڗ-܊0#Uλ-ŷ1B`>LF} [fM 33(Tm 0DfH}v.)VOqj=dOP:Q.8O Iy](8%{<4|t"uZs&(Vu=Kay4,Ft<;0pkWx,p-w0TQ 5ۏϯN.tn8ZwS{YOk:(wasǤ)=3¾La}wVfg;_әV4(zCP~~?T_*b"Ee~2?TU*C7Pe9CXٮGygN7x7 d0J;X![ ˻uF8Q>Z#r;n ;fo<2W}S,vAӲ]nߌ~4p+~܊?nVtǵZq-0?kQ?-kYRۺ~Znϼnp8_~&?>+"jhn]ixwk7'~Mkeor(=\)ꙇ߷_<|R."PkX{D]!bxw‘1BNi49$ )3Q[8әͦ Q{NZQSNK \#2ʼnDfq hfy|pReFB@QilA&#akVg­Dž[ 9:ĝc<CFL ϠQAV6`TK[&$ڛu5~dJwZ76;asR&]5̜ ;*)W9vsjOTۘfe=QMaIS Ml\fy`>!]PI ٪ ˶[Wهa׶}ϦDjnݚƀgSrhD`q/_.”&NPӝw ĺc6֠^le[0nӭK72Ӷ/vrEnkzF% Zh4NEYJ הM+{Բҩ=ZND|d*i3 CY-p@͡d48P{ @.f>`@OHW?{A/cGjHΠ2G͞VDqX,&YL'd'l,aP*-X#fc'lr180Nwh; -8KVy``l2w.Rl[Ƙ2i(UIamj5{~=QWȇJ*(N1GXi2T[:ouN</@Gs& B,2Y2]wƧ;Db>4 A}~tlY-w4C!CBE왓أVǺPbn ж^7k :1,DK%seCVgmUD1d'm4DRT4Qf9E½0q =W\Ĵe4VeΨbJwr}~}. }jQ>+w`@ci{gY]{5l1quI1˳ ̢iP:0*(0`RTf|9O/#J@P`ai0i9ǪIS'5b(F16Y̆raw*RNd$9}%)8pu͖|c5y+t^`㒕\ zXՅ*{B4c ;,6IOyYau; $S^̮$dH37pu6/OuXgA$EqyQ$Ft͎y5[L4䭧|ÍѰ lZ]ss V#ށ9(T۷GiHŃPSNbGJUM󔐤^0#Ԑ(jw[X|@p)se K4Xp%^b/_IR~͞~Ƴ`yJ` ؈K+ϑ`xS4cR}Ⱦ3/,܄x_ lnOk΅" '!N8. 76+8lӂ5B舊kH-ge4O۸:uuM*FP\~Mfx`fԐ+7!yR^ !gmff-E l8*y +HpR\Y| IF[u!~}}*t]Xn1ts$¬iu;* h7C-k2Z5y$g"X4IӁGMh_夥l%8x\' N}l&fg~;: aH t^?4Dx$AY/lR@IZ@EZx0ZD1QS+Rऑ4Tyj{֤cpjeW On4$%O8Syh?wsMBqLa#zhp20@*I@~Ҝ$eT:?rJwZ ?Tv]&~XtK\eLKIl_ž^px1R:Z~Q?$IՐ2c$/гĈ&tlF9sz[Ӑq0?)ćRWӮI+J˟A8twd:%#7̎I72aTԈ3 1\) }\xLJݣ}~aJҘwso 0? 60w*%xA FF,s]hґCULLR)  dLyvzUse}ylV5(]g4~yOD]ix 2 \)k*Shәi%/E" <؜CdЕ6HWL9w3Ao[if[19&T[7Wo~ "4է?\zWg:gk^]T] U wi9c'3Q6~= 8ݮX gy֢qQe^_|>}>xח7͖N1KԜd8yJZ-cd! U A%.**@$'>AR!= h _sox~sm4]0w#)ޑQƝy*Xdyw a4DgyGB<AV=X&A(,2(zӐgփimS1caRd(J)ۋ1fl'mI<ތ:)3&dޠ/~bUj: Qv/y':)0jV0y聊wvN5Vi%SJd,ϵ.,_ijha {dǻcu8D92O&1J+ok3D ʠ͗X Hyi"gz$^,EBtg 3"àxYAc]/a@?APTl Oj!䝣Qo{~I.?}2Vƕհq*PL/#(~`qHzNwm;I5jxąVMn7Q}cF1}J`o|0ΌQxv:]~wG$bFOKzՎNS$yQ?S 6H*A'z)XßfXp9A?=NۮD"(fu>sL3\. ^`4^31[\ܞQ ͠Ė,7bn9_:rb7_ XJoJB]E&REw:l{p McN(KfhS z=]=N;Za h&W]Nu5ձNNsT=t''#49 a#^N mw(c]ܦ8y9bKwU/Eeiu<-0D+E6@N;WnFKN@ Z#-XTk-s#*^ƦTmsFK` PeAřQopdJ &ig7FY7 # (s\ H?b=I,LG1rvڃRa(+=V]٠;9 p9=Àkv5~qAmJƌty \?Dߕ* d=`W"'Ywu[ƻC#H0Oe5ۛy2n#KU|K_]R͏R_)hIWay8,[tՕ]} a\7ıs(i [kyBT4š,6=Ȳ`/(8M^@S :;`nkYrg%E*XLAfQXd mI T׌mׂ>x- y#.ڑ'ݪ^xB\,ېbv=O   hcb`I ,"pȖPvRɁYqhPeu( E\h6i.~9(A~EAᾆ-p@!vu(gWIf꩚BO(7&L?ܻҫKZ+NWZd6$H]-a߬geȎ^wsbcG%z0k6W60*"!pB.?uI XQSdZDuO,;왐WCi!6sJ^ХX!ru㯠 3{n!G@2!\7XPꋘ 'YC]*ifϝޛh1;|" a\imX8KM * P4WKATپf>4˜-tlv*uX@ѦM;D:A{wWM 2x)o]H+Q0)zHpmz>-pI.i2f쵝N8 Ҷ`4CD!UZ7æ+L#=erLj\LDGH Ѩ7\z~3pYx2)EJ|_nu B>Y,T23 >fz>P-Q2-҈ey(m@FߒY2l$޹4^U M;stg/v7N 5cYy(,kN鬹Sؿ3]aMRd[h hSSgfGGƼdTL?~y'RnM){{_VS$xÙ5(q>&N<CҼ||}u\Ep}5QeG[_-;9.on=/e(T 9O1{/93L?Gk KΎhEkwbӲGjD$p:3Ua︝᪥4li!)kgeUa9YVLfW(+qVuL;Aq-,IXTDօ2ܵ?xy0vYi\k|  u/E1RnH&r ?Z9}':'.}ٲٗͣV{->yشǎ%!C˾;Ys`9w,dlv뿌Lxo?jbx#F4I$Xi4pj ~pffS7.AQkL 6= >hd!y/|<\Yyw,]. 2ÒdPNj< 5m:X{X`HDm-ՕP9ny4{v讟 *heX+lwuu:ǕVGV;ȇ?#k=~2QPqJSloeS8jTQu~L.@XbD#< 11Γ!:,)_4]h|dzh2___^#rX†` DBw G3tZ)\PyP"6 >VPw26^bny?kjmP,D NZZOUޒmL1T'k[ޠc`s+5FжAkX7H-{3۲|җ|k7\Ig;솚5dqbZ]ˉϤGN,\kk^!?E+qWT$CsC1v_ww z>%Gm5{ SѺ*0/ 2^qMkk'5} P *a[РICϹ<ͻ>cYa-h5 c C,vbC,N6o'nNA"f*}tro*q̮^)Qc/Asm/DO`J0rl!_\Է(m~]5~i1 Xv'IH^}_ T\o9/h@pz3+/ͻk9?ùxU21Qi Psp4CQj!A\Unj=ыi,&uNeݔe>\z \H59|BwrXWh _FHܕ11/vDŜeV|,~дĒ',(Y|A ހa|/f3 DFQ(5B|%.]pZÝsB"zEs%~-3 'rNUX9' ` 2-pFx`zγ{Ы8_~&tnXVMKΐ}KpfueFR'읉\+tҙX?._?__x'%YݔWZ3D54%RZb-y /'9xU*!z;R凱Eg"Ykw+34s;1}E&xQc~ XV?-da\)E}nS.h}eѣ+ y7>i[ʖi]՗Si)09N#fTt 9mA%hfe64R(Noٟ+ppO{e4ƥeV92MM,xLm,z2uZ9hZ{s}T%f'!9Ltx Զ;km)*3`knO)ar{ YHnY>g4B/̖—6y9|,O'ڞCiUjfܶ]`O.ivAXߩ&A&P$T)zU\dWUS+M㭡q귬΃7_kM-TSH G(.|!Le8bg75[&{,Z0I4asY͹7$G $nH 3ϊ MC!&e YA!pE%&P4 We2V@R V/I$ Yq*,{O 9n}5`N{6 CsnĠ$T4Ji 9d1D%R?cU[7~NF8Fqdfir)ГCnFC*US'˙bHޓ_j.1NH,vnfe{ՌhFd}NXޘVCDg%Z1+=Ta+961|BԳaSh<:ЪvIЖpP67G> =vHx2pVOL}U:+0$Y^[ߎw}g_GknUO@!/,h v앣T\NY1-_k [~rtHKMK\7r< qEl}ƽ#)cUxQ]7DOZ;P\N_Yngc̡M Ꮗ()(~s Pa&FpZHBl +̿|}=\Cz$Ϋ<l.t?Y@9]:SmB"mwS$-1lb(-muVfxX=[ٶ 8Y@ƔDk3vlu%JA}cai ̣mdqߊsrfPt蜣 ZFí)2]=ԺDA BſUʞ&NnnwPgH\;BUJTS(4"W y *%9̧B"`#dp E=Yj-T]MOW*/^/k$xD?a(0f 7<]w@+mJ'dh ;ZlT /#N+Gƙz( [k S-%KJ&;,_n~NO>~|r1VXbN4h`Pg3 r~\1z"GEFR puՂx-nyo>ݞ|l*aHKDD1 i-U&  FkFdm{jƊ P)pHw aoDӃ"Ot:vk/8CJ\xhnC٧]u6)c iJm ҁF\ѿ$rVSZ-UJL^ToDIRm+f5FZGBqvqSd-H.)a| hڱ1z+Y#ھ]\}Q$%&Ǩlm .YjhG7s6lY/bU(șO<"ʍR{$X$`PJ¬E ]aiu0ncz>B%ShJtLwuSl6;7aMt(!SRZx`![òP-Ү s0*.w<(mZ`MI>rIFq)mto QR[D۪ȰTꨛ*emc)[KKkβXoU)ݶZחtͫR#D7K\9#Lhe<2Q 78N.q ͬ-~`L "13dCr6{xT݈OYsӕHkQlGB"%TQN.wT u_ahs,A%b3QR`Xص;ŒDU8vݱĿj;甩g?~w}~urqaʔ*U0vf~T%(X)h"Ӝ~@'UY5?%IfNGc;曃pe3y)]0C|*t% Enu;3մ~zc@_n50+`) m| Auͧ۷E*iq%P4XQexIx闛>葞?Q~X-IQv)%>j6 $~on셐Tֻ:H8cZ":&q)aQwI?d?$oz7)TpONJP+`(}Vx2;]$zΧ+Ec";P/}KtvYG۶uSlow\aUˬn^D ޷?p2  6tPͤ1^3df L=էw;BocԀވ]~ 퓨;.(zɰB>HH$Dw)W2^O /6'[f$e֝Sxkk$'\n-ګ R!㢲HPP(AfaN%ɗ::dby$ԉ-򫳆>7LH IfW'4Ld3QF:M?+ M+BE*-裿ThMLg O/ՊԢah(GsO^_ڰf$jgj)u>Ug ."!Nc^Ȕ#W} +X?u%DP1Sl}k!%)8C ־NKxqLA<oi*[V%_)ʕdXN1;p]_|y:a%niE&S`:hMVqRFg7LNgF2*M4Q$\OϢkm&jn!R)Q(ND QҧV)&WkP m$lcDlSѝ 2΢x:GĀ=L.$ɰz馥2 U ܝny xz+֩1ٕ IP/=`ZJ=(l'+ g AnfG_<3#O{tjWs}z-8d4ɧFV9'BU̜g~#u #~\|gd?<ՆLAW^?&$ Y o;q͔$.)0V&B6>=dӫ.rN$1I!+?0Pk정V1@GK|Bl%,ǜ3 Ё&1Ⳋ)yvxژ{n[pey;t ;~'~i=iS@t+dLHa1a8`Mi` \@0^O[XcI,h{ 2:i̩$b2U1ʼIzٿ,^F%?2RI(qJ!ɡ#*9whGo 5g>Dbhyқ/٭dv6{[Mk*֬! g49 iF<1sn@=(FE ߖޙ~dXɏ7 \HZB٩Az엵l3X`t]l7KE'DLr3՗ vyUsea;fM3"8tPāO)*s^G%yן++څӶLMgK]8c# Vd衣84&{y^#|S0H [%R0һ>rs~rvv'mu+#RMPUhOBJFYKzKvMrDD0g 3E eˌ2^ThX$%xy1z뚓J#-2˛J7-7ʆw!V*͉j֪ٯdk,նDz:4| %Y(HSB#!\t *IKjoa uS#6"5MMm77Me֘Hy![w}yy{R4d.V:cTר#Y/kt[|i6gtG,#Ml%TX ߢk(cXTkB͊wiSmL|TAaCG;rVfǡe\ sFq`Dc+N.U%F?+ 2;#BC X õQDSHxB?]oӬ)wxp5O^s-ʧIkoԍpraN)5. lg*KaK7;L4'L"s-lCm^j^/< `TZRhqD^H@I lT"!E =U[vN}O!$\O?EʕE!Uec ^3yW2 W$-{);݉YQ/=ǤFFQ٣ƇM9-u˚$ w{g+ύ5 q]ۥ+^+`1eB$]YM{#BA(DlLrtZe+ƨ |@96t0")A2$,3ns(ڭzTlK33*8 P=B8+ Y4UMBi<LyGqOz4 52FU8MIJV[8S{Fz#Y^t3l`02)LrazNTӭ 4D`9vt,2ɑl˔WI:abiANB4qFlN% =)1{r41,`i3/6cnj8N'~ J ÿ؈ " 02i:T~|ïGV'QPK$*ecm9i[wy?)L:+)*z 7l ")4u~*w LRr9]7B׳~~{?p+trՌswfU)rQٝ$?㽦z3IzWj= ލ]C欮/bvEAg3b}IwAZM#9RSkGR[^R9+ޠf/^ 75X$` jC2yknߌ<rj~ew:]f%I@儕9wWYEdSGK?Fyh7"X; JdwE`vE\(vgj4A ZQ –(u7{nkYvb߈d==I2lWeWNjZKxI䆰(2@Dѫ,a %?l7߬ܩ Jܽ^֔nEchMx) hGr^{ -Ws %}=hN)äp3#='r0:?`zʜ<o14w;C?3U{*+T!/ׁá\;е4q tBDGxHyA:o/vĂotS(u{oZ7NVSOPП}a:SoŁִYu kiv&TR:v ne0.ʸOr5"V؟7rD .L70 ŸEFꋯ5Nqb^u,Owh趶 ;dbs ՋugRhS l\Z  /sҵU,9%6/Ec]\R2j}3*ڠ)YQdiسh60gP{yKQ҄ƒR"2_qzȝ#z! ֦ 夕ENSνzL(OjЏ$ IN{;Su߇kY=+kGڋÇ4\Ÿp-围h1bߖǶP i;,o#߳ht[4g2xcsi(^J zᶤ=ټDkp >˥㛲 1LCWVZPr$ ' JA{%) *9($"o^G7 ;]<9]+T'tJe3oo$k9GO;V[c8Awi HnGqk(뼻Tj~ zϑQXzcv`W CPjH^|:k(~% kk݋R$Wء&d-Eq,gs\=zcɾO!J;6I: "y/Z,QnV- '3ۥkڑo%)T@WSltx ;U/~tJ(aOPCaaʜ" /8Hk!tvӰ+!,6ZKW8,uk Yɡt|ɽBtERhPG†V^`4)EwYњemS~ c)Z RIGmXC,eIJ_7Ygks|}K)CI^"NZ2:;4Sa!pLͱSKuE?Fʍi8v}s6*& Pk:?Rns2+ګve6 ?qSB >p!ٽώ{vrߺGO6ck]p(s1a9ȖS7rJ{qp"?)$iBG"Y%=Go"1m(gtFd%I@T/K`3qjcŨΚ\  3{?S懅b MH["@- (G'Z_dsZ0/,p/6̈ #w^X&t߿yw羻pt߮. "d3lAYi4K\eTdb' fs+;]+ClhI%"P%gMIč+w$ՋCCd]$Ae"qx\+^.$)Cߢr,+87:2~ל-jh##RB+YF0tu>CP5MRpYV0_e*/]i+誙>Ǩڒ,s^0>$)Gֵީ< MV$a|zb$ á&ǸVܬ6y KIz q9<5ڡ`i$_\ey݅j-%WaqyszŞRy۾i_KB*O!ntam D-^5թ9 ˆ,r%*zԑ?2ShyvY]j>#y,xJ׊oC3Jx(KW8J<&Ȓ%Fl]|VcrYW ;ʥs0EdU+!g+P@(J:WXp}aru+5xsae/@tRvoΡ;QSV)ckIc%fkxBUCҮP*JB_ʱMO4XmNCrBnzce""d=gBq:&`3XоX5ffa{27z jԊSf"ۘ-V,|J p!&6XW(8_ݽ~'5l_M\ u%DjX z,3h }va IQGlŕhK;#xjߌ' ,cDoQ(]emwoiSWuiB վKpt&*CMaU)q,MpgՍ?5^-SrbXg%WЇF,#8 V.Y[ k50t 4 7Ϻ@2Ec8E|Cu|cO7y2$@#M&8V9rDSpKaie2.AV\yIj558 Ջ)sCU;;-#, 'pŢwt 3x}M7ѮuzeJuM^MKؒN2W(3<6+\{ZEcɓf5b\L6~b;;WIv퇋? iC[ҁ/kA :Xݚs/6, 3’S%}b\lDwL(i|SoW`Y,?Y{{' i_&|lPIslK*B}сzR!KpHG6^C6 գ )Ӳ?0 2O6)稦rK'vI٩K1)JY󏯺MCNI䮚-057I6\4^N{hpC5ν/ge O)<̃'^2@o>ݼ?sqI<ִ~<|Kʶk:]OwMgkdLԼxe3 Bwy V JvkUu l4!dSءKJRP"b^fGj-sGP : /vĈW }3?ta^׿D{5e0WlO~|DlFBi/$LKOpFҁdP8Ǎ-Z,I0 N-Wс~׆GABUpV+'DkٟZ}UGtZi[r}:@g].vuMϢm ԩü<9,=.V=]q`E`IRr pתGHץݔt1r1 9tZ\7֪9*޿O<{k;K[ojS$.-@k 0ڽ/~]1)13G}b};[y:s\.vˠ|%%7 2>T Cz%@;_xi.7>v\ I}?E$n?㣾DiI]{@G['G=;U{\^iZZ'eױװt!@dj0$O,~= R2A)kXoQ8_ R Xt휎}[38vȜ3>u>*# @]rK!̣O\q- 8W ^$9\n/7L3k\['1]54 6G)ݝ] {/{mwrV-ˮfW }c–-bYy0RQS壔Y_[J.%šx<&{=ۛgYeyXY}68! ⨷7LRY]p{LEx{ʕ;:sΜsل弼~Oϵ,VPVVr: N B@3m[˅"f`9S5xVCbӡж/{L'o!ҏ>8d#zaa]Q^wEW.Rc$(w`\ʒQfL_"z mu%~+8{qR 5KV.yt"G;tݲG ^ /νg /**gGۤ%r&6_RS ],Cc4V -a+o%OǪKU2+X>TƟx%i9L8MGw%ҟS 9{u,Rok4L,l],B]H/:-praԳ70S5:/JcqACo sJrOuxt7{G]oˆTsz;ViӾ7L̓68J[]Ii[T.KiACCzλdox*,$;jǠ& 5G }pj3 IH*c>&tf}w=y֭vs‰7R#z}з.4=Q$@Q(NuSޞmщ/tk\]$¸٬<=DnS%e8<^)łjG';2PLe< W_0{?Y [Aq)jcL|{&j&$Jζ/FkHy{9EY kG1g"S˴[֜4Ke;Iu6zW [rw])FߧA\ڠ*-J( 99YgtUկ7ڰ" uY&h1GCaĞA.&-_r`]MDCDc[T=5OHdօ)8ZIKNֻIX݀c@Q{svz@ u{aN t(w{NHMMo:?}0 U*.T֒,-7j&ND8 bHj%R:9W7% S8SPZ/_aAeǚ!鈣ݣ#\VCGb&IQtzP9A/B3$'Z*j% U+lL1HFfcA{fU(ms,+cQVVf,iV ci<zC_Z p#d|H]%O90 QԶ*qK5&x/hT;GyVD_N٭7Dnʂ<+Xi:[} 7lXGe+ϕ\ٝtW֧lCö9y:2fiR:QDOuq\k7[OsFSP}eS>LB.IbJuQ4H-YE foM`{v+b*3^g:+9DxjAʛP׬H?w".3բ)h\\j$dvΊBO-^zݘ"6ۆLWl7Tgv5= ֢;`73Y،Yj$9 ufaKߔn%_Tzc|J͎=(!#_R;Dk.jQ -̆K*U:Wg6&sYmk[!l+3uUmٶH]Ҷ+&kD&M`)4.A)ѥşטRݮ~z>i-yڭG WY WUnI W2rN>!afHUGM+"B]bjMicҖvLT[ZakFxPXsW7vEЋͯYL(ݖJ<2vv.qݘ)% bC[_WOJ|l~$ǹc.J4d,|9Y׬z*>ʀ„mLfM2<ݯ3t!Mi|&ɔ#,XDl0\g6Β`03}ؗ@^kPQa&Q:d8dž(Ӕ&фJ-0*-v*G܃Ynǐh)|$bGD4+#bwMs 2=n#IH8vF&D{y{# K{bAKJWF$9KXUV/յ[jg> R<(JC ˞'*j6<ꖆßr `^@RdƑ(*b[ػ%!d5*|4q 5 !˗L!S:J|{5^۸\]֬6 waYk5{`{KJľ=o OD-Pv.P`z{Y[$\)w{R3%)" $Ui9ccVM5}x(5co.,kƓ}NqfMrkt@?1"f#]TrcIJ򍀈>khy+TwL_#|` ۝II0O؇!${uec˂u_Z {^C\Af 'GɲI5p#r R~SY'~óN)F'_L@x]bCXB,ak&vڬE;DB=DLpOUKߏ?[GUzѣ,"/\J7Z;Pyh V5lUcV/Q7z}uc 6Uijނ& "UzSھ!-'Wr-%nQ j*p,v10{B##ה9Ud˶TgE{9D$N ]q\1Bg6+\SlĉL*لYAljV3iK {SEs)) :Ks*#iu3.fԙʬ9djέ2p]Ń-$%i;IJҏ_d8&yh:\j(4$^-vթp IqOmL?|\z[cNm#&.5iug KbዌN@# 1@5KcTlVBs 3̇ @2Mvl\6sZ=8uD 0 ѾvwOoJ='BV>?]~{Xs.!ν7Hؽ؝td-<)]gu8D 'X@4$֞ørV߶Dʴ@nҡէP٥hgw]Լ'vGrHXi>͒mKUs!Y&# Fzəa&`[M',Wc7kZ+8g5U{~r/qX}[%$,ʗ^ꪊS>',AWMlU6VAN-NVZk^]^0[/vgۓt)߀!_}nR8qhɪffɭmEcr=4hx(iLQ xS]* h6X_.çJYJWQfuLow>s?|0'A>Eǚݒ(W_27 G:Vus{:ǃϽ!s)|2)?S6FhʞWe[ 9 sG8u[MMwJEi\pęz(20u(Ih]g(a@j], .%)F~#)A9.d .JZ>ub#&^F~sYP`BgLP[=V jIXMF}>-}ChdF,v|8R=10/nn` b۬ TN4+ؼŭ$[.m}Y$_OT2R3l(B3!"EѱZh6Yc~yh 5HBǑ*Y@'=txQLiͻ\!Iӊ[08.1qyP'>jAǕar'뎗 Q[q\z,)/`9LtI46`h`kvP[LPkv) yf_,;1I#5-KdV< % ۿܺ3slT(V`:T6urI,9=Ůw=Naa;RL\,GDw aƼ5AԷD[&#u2ff]rUgMm-M|ly[) .G E>޴g'*X܄ؼ|v$sT"$ra!j xjVk\IvxYsS 94W7 ߲8xqk!^p 5~{X,KH< 1qH |$GY3cc% nLu][\Mu!Z֛'|PfTqh 29 a/ӓ bU s O7z$p[&0VB'& <.nH9.䥸*4z/v=K^ttPB2ewk[g)5]b?f-vuʫ~U>A+-ܜy&+鵿3g̦1j}zNVoAKfi?i&ɫaj&ɫaj&ɫaj&YSzw%?Vo[c}'(0zdkf35wjsazbGvA[{GbWKfI=xڬɯm1lƸX|1('Ft6 [ݚa_F:sXBd2Q&on]=kQNװY3w|{3H@zgumѩ"Ngh׻BzÆ@h)"5 `Jw;-%L5lv4·Bm"7D T:k5m^alX&ɭX&EӥVSU]a Ŏ4!lH3I3Άx4`~{4vW EI I}}/OiiztwP˨ꍤ5٨x/Tt_7}6ErZgcnXgX{N۬^s+6-kF5:3a';J %WE[ݳzpw+^]@cwz.q|;^=Sx=DiXL Ɔl˓zraeM=gbv֕t]܃C[D]䯀azzSSʜ[oQ4 vîݰk7 vîݰk7 vîݰk7 vîݰk7 vîݰk7 vîݰk7 vîݰk7 vîݰk7 vîݰk7 vîݰk7 vî]][kdöuB}.'֙s5~?׷sq[lZymo3:Շ:m>;ktro}xݝ|MN\k?6clJ2i@ m]hHT}$T]ϗw֠1ԜnF{*mzz]> ;Nk27wYeA|gTvSr6l`L-)qd\*^_ *@Nki;{l=dNn .V"HiOWdz !THNf3v9胓jɹPn)8,.DoJ(x~w(W+Z9jXt'}իpfqM=‡Ŀ"=4t""S*7{)+۟nM`ԓ[T̮r&5nX:u?NXc8K LE&<EߩmBstk_IcsS ,JylK!P'kwST1Fj5!R!Q?f.+`B"YUQg ^QQ[q~ްRTGL ׶ŧUJ6lF@WqtT!'a~:g?[0DvQ2']i p SU JtjBPjlg=*vIx. U !Qۻ|<{{OO|lS +j^+KC90[);Z%L[ˍ±_%StHI>+ןLJfh@<qUb銇+l'KzaMQRjЍ.LvSbÂ^=: "YFT)! 5lxPx`;Pg|Iꇟ]`mKJ=o^sZK6GQR#l- J""J:(d ?v+YqBH%KҩIa6RB̋[yR>s^fo_8R D7QXQP+=pѽh/D\]–VjݤZ?D!G8ƌ$%P%J=*WkRJR U2H^_^D$|:w`r H&ruE4,xѨJ+85|"AJGPq{%0,l)40~yRn4F ekwMȨsڸ,vƞ:L ' @W' a6mfI5bn5'T &p\AjZ(oYi٦=4 ,AF-bdIݜmvy,=rB"qVjv֏J!B.o/{QT7qc6*L#c4/]{ F Jl\,!)F Pi/HZx!CgՅTcoll;JcD WKQr4PES) ʖXcEY#庪c Xe.u6xc_d:b9:'ATY(p~Pڧ4X`;:"(X4[CZ7)fU?Ӑ|!&IFO|c>XE1Gה[ZC7~" _ 0Igm Z A*g%ͯ= xnGX(MpLO5آ*WZÞ5QWZNťX,E (HG+/CNlU8 fj08} +x O:F.p24DsnUt%&>i[o"**4  P;҈k߫ε|[&.$)fBX'DFa6$7nıfcEcFGH_!'b]Q,} /3+Ӗ  kG.DB2rvGK'q\`&mVteZ dH2&~؋I.:a@*6ԎFSq]n wR2eBK'/edNG[},]$IɄ܀y'ž#KJ)J(YC>5(RVFm>.~T][ϕ!ܪ]ѨL(U4yj pu;9M9RA+`1<݃1?gɯTuȌ?5HK;OM71f*Z╆5a~ 5܀\A)dO!ʝ'0R 8nj[v.֬(:l"7ѫxL̳S |5-TX-u٪C2 Js':CD8$2 ^jWqX(fqVхI'zi䏬Xi& !Xcq^mcZ64{vҲC)}}cZͭ=o۫;d*0 rC8MM[Kߏ?m)R4E| 2+i& M3 (ᤄ·͓E0tZ(f F=Tw4CpNҹʠ֍ 4y0xYykEl "h|v/8[/Y - U`V>>@$4EEKyuu".I7=#1Rת?#A`qt{˝7%S (`@tC \bXjPtT{lʗ^G65CZArh4͡QK@/e^&D{K~!\xxzȪ@ _oC֩%P R4zc>T۶Nd_O#=Z AO*{ @- y)z4$\[U)TWeYgg=+=F]|nH > 5ŸaT6qjd'  O o@.cC$3IxZӐyVTL$GKeLpLBO||F!!.qG)5kԣ/N&COgqƓhVOe)C PZ$0 ,KعY32]-:QK9yA+3QGSZd~i՞zj=`K؆`S&Z ~ ya׻(sM[`#2P{ |3W gImo,0yt3YYGU%d}xa|I1r79f)H3LWR|~NeQt iQ\gE2 , i#Ng@O61snTϡ.z[WMtFW4`ΏP_?,p:C6iwm4)[ZFaMU?^ ~^seR'\C7fA :YJ.5Cr-n>|s\޼ ^`1ϨIegkWP\Yu_T:^Bm.>d741[*P;axq2B\57,HMOAc-8IuZHD8z@qF}P5 $^=Vc_i ڙY4,ŏb 4{9$9*:tb"iUiɋSx͉8tTMX^驫 ~ТMt32-NʶB56?.jaN^Y:3XqUBT~ZiE9lj̩ Rr$f ABjҝjH`<&(y~p"@}!gPj0 DQo`V{X;дj%7pgӵ@>\G /QyXTvɜl),;׵|r;U6Fo_=&C/nnEșAlf#l׿8_9O\δz&^?RpUC|\7L^vFGt 9 UƯ/ 1R;ii8J\+U:4#J(YQ|,5˶{gcY)%c߁Y_&-)įV0E.%]v*QTriTϧMT rC SpvSf ekNjZhD2q^.D[ZM.bsAٷVɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉor⛜&'ɉɉg; q,s^?V`}W?ν?P{.8Ph&8t<>ZN8p8#N8G;(v ڔuҠ:'55( egL1:k{;{;vV^RY?u%bb 1 B'b@Da8hpS0wyZ9r=;\q}=CxS{^]Q<ZJCz|=%ZѼ{zg}{Wb$H_xn}xR7cg^W3ubC](Ƃ3Ic NdHbe2;Ӊ1#qfG{в`:S<'dQ:F],RXz(SZS֣f+EΠ=Nz}]\.K0䯀[YF=)~B鬎M0?CtЍN@^/;?+Ӱ9SqhVv[-d_p*qu0ȓ#DO;/n:4ɛ}(~ cz+ҶtvjŁb6XF?f'>wmlRO}}-;eEw:p}ͪ/㈼NSQRx]~Y2Bzhˌ'Q!<}}r.玒4QSzRKlmXˎj:>^{\ܣݮNl~16ۃՙk|(rwm>\k6|(ޑR1lxWh< `/Nwx20W֝xnjv6j*g][wա5A-aqomRR)],=XE