tukit-4.1.3-150400.3.3.1 >  A dp9|GX4fˀ҈M&a .iw.Hl&O.:XrlE.3J'z% ҴjR5 t ``$k| gxagpɍCKoќ䎷e?Ina|! J˛5`fn_x4_Z$wtNt^"CD x"?f%\D`sBȢ{0f8E-w@;Ra2eabafcc76dc9da44eedd85061c287c4b4a043f10f92ebf7650fc1c283ca914fb89386a47e1407de0459f1a844100a62837ce2d*4dp9|"3At0W jjMW~"թ2}Ma)GZUHҀ##vAKE1MzJ#46@4dTҗ+9mYFkY`\j4qӮ_lčl&=el&y-!RP/~hꆤ{~L$tG 9Z} =N,dbl{U.| p0Ӳ;;= DqfbW,<|m|3IlVgrZat!RZ)&^;J]Ϯd el>pIt?dd  V %1bho  x            , ^  l8(8z9z:jz=l>t?|@FG H I XY\, ]T ^bpcdeflu vw\ x yz`Ctukit4.1.3150400.3.3.1Tool for doing transactional updates using Btrfs snapshotstukit is a simple tool to make changes to a system in an atomic way with btrfs and snapshots.dgoat37(SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Basehttps://github.com/openSUSE/transactional-updatelinuxx86_64: if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in create-dirs-from-rpmdb.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi: if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in create-dirs-from-rpmdb.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi: test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable create-dirs-from-rpmdb.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop create-dirs-from-rpmdb.service ) || : fi: test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in create-dirs-from-rpmdb.service ; do sysv_service="${service%.*}" rm "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart create-dirs-from-rpmdb.service ) || : fi fikK`'*F~A큤A큤ddddcvcvdcvcvd33243f2894e67aa69b0199786b3573c407ff37ce2da38da3c88cd2e7ca58d3e6f7aca7d87f89e79a0b476a0078e3796e8e1400e1ebb11b1e511db0c25403a1be23974d5edfcb72ae894e73679c29477951f696f5e14bed2fe67e69141c8ff2adac9d231f176dde83e8f701171e53809b90ad7c77b596b4d0490de5d41aeff8afa5d09450b2c0293d56567f7e25af230e0b57f89dea487b5250ee055e12aa0c334ec94987f3af0b357c6af2280ebcb5b352e6c5fd51f4c33eed6e89d8f20ccb6cdb296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc73605788320e358809a0b964dedc289c7780da951f99e79f0f8ab4fb2e9bb3ec92rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottransactional-update-4.1.3-150400.3.3.1.src.rpmtukittukit(x86-64) @@@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)librpm.so.8()(64bit)libselinux.so.1()(64bit)libselinux.so.1(LIBSELINUX_1.0)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.2)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libtukit.so.4()(64bit)libtukit4rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.1.3-150400.3.3.13.0.4-14.6.0-14.0-15.2-1transactional-update3.0.04.14.3ccvc@c6@ccobbb@bq@b$@a@aa@araexaLl@aD@a<@a6a,@a /a /a@`@`\{@`KW`KW`H`H`>(`-@`*b@`&m`"y@`>`@`@`@`U_/@_@__t@_@_o-@_h_h_3_+_$_{^^^@^|@^ku^^F^V]^r]X]V]v>\\@\@\\\}@\eX@\eX@\N[[k@[[z@[#@[{@Zz@Z@Z@Z@Z@ZlZ@ZkZZ@ZqZTZ&@Z@Z@YYYV=@YS@YRHYP@Y0X@XX @XXXXX*X@X@X~@XWXRXN@XF@X5X2X2X-X@X@Xx@iforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comschubi@suse.comfvogt@suse.comiforster@suse.comschubi@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comaplanas@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comngompa13@gmail.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comiforster@suse.comjengelh@inai.deiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.derbrown@suse.comrbrown@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.de- Version 4.1.3 - Suppress SELinux relabelling output in quiet mode - Documentation readability improvements- Version 4.1.2 - Don't try to mount user mounts if they don't exist [boo#1207366]- Version 4.1.1 - Mount user specific binddirs last: Prevously the internal mounts would potentially overwrite user bind mounts [boo#1205011] - selinux: Relabel shadowed /var files during update to make sure they don't interfere with the update [boo#1205937] - Clean up /var/lib/overlay more aggressively [boo#1206947] - tukit: Merge /etc overlay into parent if --discard is used together with --continue - previously the files were incorrectly always merged with the currently running system - status: do not execute the status command if experimental - Don't delete created mount point dirs any more - Small code optimizations- Version 4.1.0 - t-u: Add a "setup-kdump" command; implements [jsc#PED-1441] - Export TRANSACTIONAL_UPDATE_ROOT (the path to the snapshot) in the update environment; implements [jsc#PED-1078] - Add support for "notify" reboot method for desktop use [gh#openSUSE/transactional-update#93] - Fix kdump initrd recreation detection; the check was performed in the active snapshot instead of the target snapshot - Document register command [bsc#1202900] - Avoid unnecessary snapshots for register command [bsc#1202901] - Various optimizations for register command - Remove bogus error message when triggering reboot - Rework /etc overlay documentation in "The Transactional Update Guide" - Fix incorrect manpage formatting - Remove leftover "salt" reboot method in configuration example file - Replace deprecated std::mem_fn with lambdas- Migration of logrotate configuration to /usr/etc: Saving user changed configuration files in /etc and restoring them while an RPM update.- Version 4.0.1 - create_dirs_from_rpmdb: Just warn if no default SELinux context found [gh#openSUSE/transactional-update#88], [bsc#1188215] - create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure [gh#openSUSE/transactional-update#88] - Handle directories owned by multiple packages [gh#openSUSE/transactional-update#90], [bsc#1188215]- Version 4.0.0 - Last minute interface change: Changed "List" method of Snapshot D-Bus interface to return a map of properties instead of a comma separated list of strings; this will allow retrieving the snapshot properties even if they contain a comma in their value [boo#1202147] - Remove "Snapshot.hpp" as a public API for now - all public functionality is part of SnapshotManager.hpp - Add header file documentation for SnapshotManager.hpp - Add method to delete snapshot [gh#openSUSE/transactional-update#52] - Allow setting description of snapshot [gh#openSUSE/transactional-update#55] - create_dirs_from_rpmdb: set SELinux file context of missing directories [gh#openSUSE/transactional-update#84], [bsc#1197242] - Fix broken logrotate due to typo in config file [gh#openSUSE/transactional-update#87] - create_dirs_from_rpmdb: Fix handling return code of create_dirs() [gh#openSUSE/transactional-update#86] - Fix broken "shell" prompt after selfupdate - Add documented D-Bus interface definition files - Add tukit_sm_get_current and tukit_sm_get_default to C interface - Fixed typos- Moved logrotate files from user specific directory /etc/logrotate.d to vendor specific directory /usr/etc/logrotate.d.- Version 4.0.0~rc4 - Fix building with GCC 12 - Fix stack overflow with very long commands / ids [bsc#1196149] - Use separate mount namespace for chroot, allowing overwriting the bind mounts from the update environment - this could have lead to data loss of the bind mount previously - Fix C error and exception handling for snapshots- Version 4.0.0~rc3 - Add Snapshot interface - Reworked signal handling: All public signals are sent from the main thread now, keeping the same sender for everything - Implement D-Bus call "Execute" for Transactions - Implement interface for listing Snapshots - Implement Reboot interface - Fix bug when using --continue on old snapshots - Fix hypothetical integer overflow in snapshot list [bsc#1196826] - Fix wrong sort order in status command [gh#openSUSE/transactional-update#80]- Version 4.0.0~rc2 - Fix missing prompt in "shell" command [bsc#1196580] - Add output of tukit commands to log file - Fix compilation error with GCC12 [boo#1194876] - Fixed (non-critical) security review comments [boo#1196149] - Fixed selfupdate - Code cleanup- Version 4.0.0~rc1 This release is API, but not ABI compatible with previous releases; existing applications will have to be recompiled against this new version. Major features: - Introduces a D-Bus service to access the libtukit API via the org.opensuse.tukit.Transaction interface - Introduces a C binding via libtukit.h. Other changes: - t-u: Rework --quiet handling to make sure no output is shown even in error cases; this is necessary for automation, e.g. with Salt. [gh#openSUSE/transactional-update#73] - tukit: Allow storing command output into variable by introducing a new optional parameter for "execute" and "callExt". - Replace multiple and non-standalone occurenses of {} in "callExt" argument. - Split transactional-update.timer into transactional-update.timer and transactional-update-cleanup.timer; the later will clean up old snapshots even when the system does not do automatic updates. - tukit: Remove legacy alias "setDiscard" for "setDiscardIfUnchanged". - Throw exception if snapshot is not found. - Fix various compiler warnings - Update spec file: - Include tukitd D-Bus daemon - Only install one version of the library (as there are no breaking API changes yet) - Add %pre scriplets for systemd services - Replace %systemd_postun scriptlets with %systemd_postun_with_restart to satisfy rpmlint checks - Add transactional-update log file as %ghost file- Version 3.6.2 - Bind mount root file system snapshot on itself, this makes the temporary directory in /tmp unnecessary; also fixes [boo#1188110] to return the correct snapshot's working directory via API call. - Use separate mount namespace for transactional-update; this should fix several applications that fail to run if a mount point has the 'unbindable' mount flag set- Version 3.6.1 - Fix rsyncing /etc into the running system with - -drop-if-no-change [bsc#1192242]- Version 3.6.0 - Simplify mount hierarchy by just using a single slave bind mount as the root of the update environment; this may avoid the error messages of failed unmounts May fix [boo#1191945]- Version 3.5.7 Various fixes affecting Salt support: - t-u: Don't squash stderr messages into stdout - t-u: Correctly handle case when the snapshot has been deleted due to using --drop-if-no-change: Don't show reboot messages and avoid an awk error message [bsc#1191475] - tukit: Make inotify handler less sensitive / ignore more directories [bsc#1191475]- Version 3.5.6 - tukit: Add S/390 bootloader support [bsc#1189807] - t-u: support purge-kernels with t-u patch [bsc#1190788]- Version 3.5.5 - t-u: Use tukit for SUSEConnect call [bsc#1190574] Correctly registers repositories- Version 3.5.4 - tukit: Fix resolved support [boo#1190383]- Version 3.5.3 - t-u: Purge kernels as part of package operations Required for live patching support [bsc#1189728]- Version 3.5.2 - tukit: Fix overlay syncing errors with SELinux [bsc#1188648] - Don't print message for `shell` with --quiet [gh#openSUSE/transactional-update#69]- Version 3.5.1 - t-u: Disable status file generation by default The new experimental `status` command requires the availability of /etc/YaST2/control.xml, which is not present on all systems. Hide the creation of the corresponding status file behind a new EXPERIMENTAL_STATUS option to try out this functionality. - Increase library version- Add tukit.conf to spec file- Version 3.5.0 - Add alias setDiscardIfUnchanged for setDiscard. The old method name wasn't really clear and will be removed if we should have an API break in the future - Replace mkinitrd with direct dracut call [boo#1186213] - tukit: Add configuration file support (/etc/tukit.conf) - Allow users to configure additional bind mounts (see /usr/etc/tukit.conf for an example and limitations) [bsc#1188322] - Add 'transactional-update status' call. This is a POC for obtaining a hash of a system to verify its integrity. The functionality is still experimental! - Internal bugfixes / optimizations- Version 3.4.0 - Apply SElinux context on /etc in transaction [boo#1185625], [boo#1185766] [bsc#1186842], [boo#1186775] - Implement inotify handling in C instead of Bash; this makes the - -drop-if-no-change option work on SLE Micro [bsc#1184529] - Use `tukit call` for up, dup and patch to allow resuming an update after zypper updated itself in the snapshot [bsc#1185226] - Fix obsolete output type messages in initrd [boo#1177149] - Make different base snapshot warning more visible [bsc#1185224]- Version 3.3.0 - Add support for more package managers by bind mounting their directories - Support snapshots without dedicated overlay [boo#1183539], [bsc#1183539] - Link RPM database correctly with older zypper versions [boo#1183521] - Don't discard manual changes in fstab [boo#1183856], [bsc#1192302]- Revert inotify-tools dependency: The package is not available in SLE. This will probably have to be implemented as a native C version.- Version 3.2.2 - Don't skip patches with rebootSuggested flag [bsc#1183442]- Version 3.2.1 - t-u: Forward --quiet option to tukit - Regression: Add /opt as bind mount into update environment - Remove output indicators of the called command to not tamper the result line - Fix /etc syncing with --drop-if-no-change- Requires inotify-tool to have --drop-if-no-change available- Version 3.2.0 - tukit: Add new command 'callext' to execute an application while the snapshot is mounted. '{}' as a parameter will be replaced with the path of the bind mount. - Fix --drop-if-no-change [boo#1182525] - Check whether self-updated version is executable (e.g. on noexec /tmp) [bsc#1173842] - Fix overlay synchronisation with SELinux (again) - Always overwrite supplemental files (e.g. for network configuration) even if they exist in the snapshot already [boo#1182544] - Improve logging and error messages- Version 3.1.4 - SELinux: Fix syncing of SELinux attributes when using overlays - SELinux: Tag the overlay directory itself (again)- Version 3.1.3 - Fix overlay syncing on SELinux systems - Fix resuming transactions where the parent does not exist any more- Version 3.1.2 - libtukit: Report when application was terminated due to a signal, and return the signal number as a return value. This will cause the transaction to be aborted when called via `execute`. - libtukit: Set PATH variable for internal commands to fixed value to find the helper applications, as in some environments such as PolicyKit PATH wouldn't be set. - Fix compiler warnings- Version 3.1.1 - Fix hang in tukit on aarch64 [bsc#1181844] - Prevent deletion of snapshots when resuming a snapshot where no transaction is open - Make tukit work in non-dbus environments [boo#1181934]- Version 3.1.0 - t-u: Support installing RPMs from the user's directory again - Adapt selfupdate to new packaging - Implement signal handling - Remove empty text files- Add libselinux build time dependency - Remove RPM version check- Fix libstdc++ filesystem ABI incompatibility by using newer gcc version on old distributions. [boo#1181582]- Rework packaging based on Fedora packaging to separate all the components to remove the intrinsic requirement for Zypper- Version 3.0.0 - This release changes the internal structure, but should be identical to the previous release feature wise. - Major parts of the previous Bash only application have been rewritten in C++ with the goal to provide an API around transactions; the transactional-update script is using that new interface internally already, however the API should be considered experimental for now - if you are interested to use it, please notify us in https://github.com/openSUSE/transactional-update/issues/52 - A new tool called "tukit" provides a C++ tool that can be wrapped by scripts to leverage the functionality. Please consider it experimental for now, the commands may still change. - Bugfixes: - Implement support for system offline update [boo#1180808] - Add statistics files to update environment [boo#1173282]- Version 2.38.3 - SELinux: Make synchronisation work for both pre-SELinux snapshots and later snapshots; SELinux support should be ready for most tasks now.- Version 2.28.2 - SELinux: Exclude security.selinux attribute from rsyncing (again)- Version 2.28.1 - SELinux: Fixed changing the wrong grub configuration file - SELinux: Move /.autorelabel file to writeable location- Version 2.28 - Add 'setup-selinux' command for easy setup of a SELinux system - Allow complex commands for the 'run' command - SELinux: Fix /etc / overlay labeling- Version 2.27 - Add support for network systemd-resolvd network connections in t-u environment - Mount /var/lib/ca-certificates read-write to prevent SELinux error - Prevent calling transactional-update from within transactional-update- Version 2.26 - Fix broken sync for second snapshot [boo#1176989] - Add new options to allow separate cleanup of snapshots and overlays - Check for existence of inotifywait before using it - Check that mount options don't exceed maximum length- Version 2.25.1 - Fix inotify watcher setup - Use log_{info,error} for more messages to avoid messing up Salt logs- Version 2.25 - Reduce number of overlays: Instead of using transparent overlays for all previous layers only add the previous snapshot's overlay; this will greatly reduce the number of overlays while still making sure that /etc changes in the running system will be visible in the next snapshot - When using --drop-if-no-change synchronize potential /etc changes with running system - Exclude all non-root-fs mounts from inotify watcher- Version 2.24.1 - SELinux: adjust labels for etc, fstab and grub.cfg- Version 2.24 - Add partial SELinux support- Version 2.23 - Add "run" command to be able to execute a single command in a new snapshot - Add "--drop-if-no-change" option to discard snapshots if no changes were perfomed (BETA, required for Salt integration) - Removed previous CaaSP Salt support (gh#openSUSE/transactional-update#33) - Avoid "file not found" message on systems without /var subvol- Remove unused attr requires - Change bc to file requires- Version 2.22 - Use pkgconf to determine installation paths - Enable SSL connections in update shell [boo#1149131] & [boo#1133891] & [boo#1192078]- Version 2.21.1 - Rework error messages on failing umount [boo#1168389]- Update to version 2.21 - Use slave mounts for /proc, /sys & /dev- Update to version 2.20.4 - Mount efivarfs on EFI systems to make sure the bootloader will be installed correctly [boo#1162320] - Fix removal of existing overlay directories- Add dependencies to btrfsprogs, zypper and snapper - most of the functionality is not usable if those applications are not installed. [boo#1166502]- Update to version 2.20.3 - Reintroduce compatibility with RPM < 4.15 for inclusion in SLE / Leap 15.2 - Prepare for removal of /var/lib/alternatives [jsc#SLE-9101]- Update to version 2.20.2 - Use full names for zypper options [bsc#1164543] - Ignore /var/lib/rpm in shadowed file output - Optimize create-dirs-from-rpmdb- Update to version 2.20.1 - Add missing documentation about --continue option - Avoid error message about missing fstab file on first snapshot creation. [boo#1160213]- Update to version 2.20 - Add the option `--continue` to extend an existing snapshot. This can be used to perform multiple operations before rebooting into the new state. [gh#openSUSE/transactional-update#16] - Make sure the dracut service to print warnings on /etc overlay conflicts also runs in the pre-made images. - Add "none" reboot method - Remove conflicting overlay artifacts in case an existing overlay directory will be reused- Update to version 2.17 - Provide network in shell on systems where resolv.conf is pointing to /run directly [boo#1151081] - Print new snapshot number at the end - Always mount /root subvolume when using shell command to preserve history- Update to version 2.16 - Use default command if options, but no command was given [boo#1146116] - Make sure only one process appears in `ps` output [boo#1111897] - Move update check: If a new repository is added (and ZYPPER_AUTO_IMPORT_KEYS is set) adding the new repository key won't fail any more - Avoid unnecessary snapshots / reboots by detecting zypper operations without changes more reliably (e.g. when installing an already installed package) - Update the manpage accordingly - Bugfixes: - Ignore commented lines in fstab when checking for shadowed files - Avoid warning when copying network config - Remove Perl dependency - Building documentation requires Python 3 now- Update to version 2.15 - Move description of interactiveness [boo#1132438] - Enable network during update [boo#1137890] - Add compatibilty with new overlayfs versions [boo#1140057] - Allow updates of the bootloader on EFI systems [boo#1139015] - Add support for /boot/writable [boo#1138725]- Update to version 2.14.2 - Prevent unnecessary error message on systems not installed with YaST (e.g. KIWI)- Add requires for bc, needed for some calculations- Update to version 2.14.1 - Improve non-root fs changes checker based on feedback - Disable snapper's zypper plugin during transactional-update run - Allow parallel installation with snapper's zypper plugin (useful on read-write systems).- Update to version 2.14 - Warn user if contents of /var have been changed during update - Noteworthy: swapped position of upperdir and lowerdir in fstab for better readability - Major update to the transactional-update guide- Update to version 2.13.2 - add hooks for telemetrics- Update to version 2.13.1 - Bugfix: Clean up empty /etc snapshot directories again - Use official release files from GitHub for building- Update to version 2.13 - Fix a serious data loss problem (deleting all files in /etc overlays) in case /var/lib/overlay/etc is not part of any snapshot any more. - Avoid error message in case a system has no /etc/fstab.sys- Update to version 2.12 - Implements support for needs-restart (Fate#326451) - Adds easy rollback to last known working snapshot by using "last" as the snapshot number - Migrate /etc/fstab.sys entires to /etc/fstab for systemd being able to create mount units; this will prevent errors on unmount - Remove implicit --no-allow-vendor-change - this option can be configured in zypper's configuration file now - Add support for mounting the /etc overlay file system as a systemd unit in /etc/fstab on a read-only system (replacing /etc/fstab.sys in the long run) - Various bugfixes: - Only remove /etc overlays on read-only root file systems [boo#1122455] - Disable "Persistent" flag in systemd timer unit to prevent updates during or immediately after the boot phase - Don't set global zypper options during migration - this is not supported by the migration plugin - Fix error handling when interrupting while rsync is running - Filter out security.selinux attributes during rsync- Use noun phrase in summary.- Update to version 2.11 - Update man page to explain new /etc overlay handling - Add special handling for migrating away from old overlay directory - Read default update method for systemd service from config file - Add package "transactional-update-zypp-config" to prevent accidental transactional-update uninstallation on transactional systems (boo#1111319) - Use "up" for systemd service on non-rolling release distributions (boo#1111321)- Update to version 2.10 - Introduce /etc overlays - Each root file system snapshot now has a dedicated /etc overlay in /var/lib/snapshots//etc - Changes in older snapshots will be visible in newer snapshots (if the file hasn't been changed in both snapshots), but not the other way around; this makes it possible to roll back to a previous snapshot even if the configuration is broken - The /etc state of the oldest active snapshot will be synchronized into the new snapshot to prevent ever growing overlays - Removed creation of /etc backup snapshots - Removed complex overlayfs cleanup handling during dracut early boot; only thing left is to output a warning if files have been changed in old and new overlay after snapshot creation - Unused overlays will be removed during "cleanup" operation - Add compatibility with snapper >= 0.7.0 - Correctly detect BTRFS ID when using multiple snapper configurations - Fix disappearing prompt in "shell" command when application was updated - Prevent accidental rollback on fast reboots (boo#1111786) - Use zypper attribute packages-to-change if available (boo#1105992 & boo#1097619) - Add kexec as reboot alternative - Added explicit --with-doc / --without-doc build configure opttions for enforcing or excluding documentation build - Removed precompiled documentation (boo#1088676) - Added more dependency checks to configure script - Small improvements to documentation - Restored compatibility with older rsync versions not supporting the -x filter - Small bugfixes for cleanup in error situations - Fix possible incorrect detection of snapshots numbers during cleanup - Mention parent in snapshot description - Add dependencies for documentation build (boo#1088676)- Update to version 2.6 - Add --interactive and --non-interactive options to change the default interactivity for zypper calls. For previously non-interactive calls (e.g. dup) these options makes it possible to pick the correct solution in case of conflicts or make sure that a script will never be stuck at an input prompt. - Add kured reboot support - Tries to clean up temporary files and mount points if transactional-update quits unexpectedly - Remove trancactional-update-helper (replaced by zypper options) - Create /var/lib/zypp if not available (boo#1104452) - Robustify parsing zypper output (boo#1105992) - Various small fixes - Changed permissions of systemd script again- Update to version 2.5 - Support for overlayfs attributes like trusted.overlay.opaque - this will avoid disappearing configuration files on system updates - Documentation update - Only sync /etc if it's on an overlayfs mount - Use correct locale for zypper - thus updating locale specific packages and avoiding "empty" updates where transactional-update didn't see the change - Add dependency to attr - Fix permissions of systemd script- Update to version 2.4 - Bug fix release- Update to version 2.3 - Reformat help text / synopsis - More detailled output (use --quiet for less output) - Log all error messages into log file - Avoid potential lock file race condition on self update - Accept package names with whitespace - Don't wait for user input during self-update - Fix broken error message output when creating new snapshot without reboot - Fix erroneous mounting of stale grub mounts- Update to version 2.2 - Fix security issue in self update [boo#1091316] - Create dirs in /var more reliably by sorting the list - Rebuild initrd (needed since 2.0)- Update to version 2.1 - Cleanup the code cleaning up /etc- Update to version 2.0 - Create missing directories from rpm database during boot - Merge /etc overlay with root subvolume during update- Update to version 1.29 - Implement self-update - Disable optical media on dup - Ignore certain zypper return codes- Add conflicts with snapper-zypp-plugin- Require perl-HTML-Parser (needed since 1.26) [boo#1085764]- Update to version 1.28 - Adjust for latest grub2- Update to version 1.27 - Fallback to snapper without dbus support if dbus fails - Add workaround for update-alternatives - Add support for /usr/etc/transactional-update.conf- Use %license instead of %doc [bsc#1082318]- Update to version 1.26 - Auto accept repo keys config option - Detect broken snapshots after abort - Ignore user deleted snapshots - Include all error messages in main log file - Add configuration file - Correctly implement migration of major OS versions - Default reboot strategy is configuration option - Salt option is deprecated- Update to version 1.25 - preliminary SELinux support - support for seperate /var subvolume- Update to version 1.24 - Don't save unused snapshots if we may delete them again. Partly fixes [bsc#1071038] - Copy passwd, group and shadow to /usr/etc if modified- Update to version 1.23 - Fix re-registration in rollback case - Fix problems with updating the grub2 bootloader - Add support for migration of products with SCC/SMT - Re-add support to re-write bootloader [bsc#1068933]- Update to version 1.22 - Rewrite cleanup code to be more aggressive- Update to version 1.21 - Reset salt grains even if no update was found- Update to version 1.20 - Improve documentation - Add pkg update option- Update to version 1.19 - Add 'shell' option for debugging and testing- Update to version 1.18 - Auto accept product license in non-interactive mode- Update to version 1.17 - copy modified bootloader config into snapshot - unit file cleanup, no change of behavior- Update to version 1.16 - internal changes [bsc#1045942]- Update to version 1.15 - Rename option ptf to pkg - Add option to set salt grains- Update to version 1.14 - Fix check of return values of commands in pipes [bsc#1034900]- Update to version 1.12 - minor bug fixes- Update to version 1.11 - use --no-allow-vendor-change with "zypper dup" - update manual page- Update to version 1.10 - implement and document rollback option- Update to version 1.9 - fix umounting of special filesystems and subvolumes - fix interactive installation of PTFs [bsc#1023026] - fix dependencies of systemd service- Add Requires for lsof and fuser- Update to version 1.8 - fix references in html docu - build kdump initrd if we build standard initrd, too- Update to version 1.7 - build html docu, too- Update to version 1.6 - Add support for kdump [bsc#1018098]- Update to version 1.5 - Install PTFs in interactive mode - Sync state file between current and new snapshot- Update to version 1.4 - Fix wrong error messages - More debug output if umount fails - Try a second time if umount fails- Update to version 1.3 - Add initrd option- Do some spec file cleanup- Update to version 1.2 - suppport ro-subvolume with overlayfs- Update to version 1.1 - bug fix release - implement lock- Update to version 1.0 - implement and document PTF options- Update to version 0.99 - Support for rebootmgr - Write real manual page- Add empty directory /etc/systemd/system/transactional-update.timer.d/ so to make it easier to override transactional-update.timer entries.- Update to version 0.90 - Finish normal options - Implement support for PTFs- Disable restart on update for post install scripts- Implement activating the new snapshot as new root filesystem- Initial version/bin/sh/bin/sh/bin/sh/bin/shgoat37 1689952996 4.1.3-150400.3.3.14.1.3-150400.3.3.1create-dirs-from-rpmdb.servicecreate_dirs_from_rpmdbtukittukitNEWSREADME.mdtukitCOPYINGgpl-2.0.txttukit.conf.5.gz/usr/lib/systemd/system//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/tukit//usr/share/licenses//usr/share/licenses/tukit//usr/share/man/man5/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:29899/SUSE_SLE-15-SP4_Update_Products_Micro53_Update/54a33dd48d0544efa22bf1acc4ed1887-transactional-update.SUSE_SLE-15-SP4_Update_Products_Micro53_Updatecpioxz5x86_64-suse-linuxASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3274acdfccaf438593593496e10bdfa87fc9d9fe, for GNU/Linux 3.2.0, strippedELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=223a04f3a42d6a3a8bcb4dec3f047c101cb5b0b3, for GNU/Linux 3.2.0, strippeddirectoryASCII text, with very long linestroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)R RRRR R RR RRRRRRRRRRRRR R-r*/S utf-8a26437c288c9601e29930f3870cbaf75d9ef041416187e9af55ed2b368c3ff1e?p7zXZ !t/k] crv(vX0~mӈ0kK;};nڊsUy-L3Ƭ%7D}Shc"\z)`F;W5Z[J=IZ{EAT 3HM5cF鲀ߟ"Q1*KϠl{qv#?vLK!`!-2/FlAoVaFA)SE(7̘4>ul w2?T#?>pݔbJۙsK2 hM~(?#S8fBZbws#CMq~78ml$N1j%q`0N[ ^XAƱn\Ï2Oތty?]y9> ss:Z3CmNsٕbsF @ܮ}M%򹻷D9_@.^}A|3XxV9%}G}Q{"D| r,I EKãޫIĐW^dP;~W`Ë'n7(mKw"_⬲d&MB]V9. ŜPZ´$5W7⤝Zu6p*%( GT3Mw!`@ R^~|ͻ,8R3q}l19|+WΑD~5_.\$Qk73C0%,JG TS[57P$!>u$d/ۺrm}'ZBn^JkYCѦ{?H3zmD|D̼n]u齎$1QfaЦI$vUvt6|,Rg? T5,xv7I,s:(RPܸ#+s#ԟ 4u Q>D'ZVp 0+g֌!(q zy>~}K[yr2+(D3VU G$tU\.t56&h>i9?"aZ c׿8sbs$h0sb':Ndқ$!)gq%욽5P1j3efB|\xx#\4y)cуJkFR9 mNʥ_Y-*3˅ M|8iP4Zmm (4DY:%Xq Ƿ}K~SD& X%]^D8\rڗn͑UD-t8HНepKL,8.G VYs A `Aw%o|M\)X ^EqN:j[qk@0ӯVvM AZ.Gv$z1%0ᮎ5hUӓ pA*yIb-x.[W:/ZWA uDa,?S0R5V\A!^>N"|ke VFĔ{=4˕Ar.T6 )aȌzJsj4ʼy>_uP{  /ѿF&}!j*ٝ>UKm>8PSc* n. KN]8]Jn ^afoC壚rߺ 駾XUJXM֞7?e=}aդ7J+јBtq9䱏;-XK1wYu i50iSzB km T&K)f#QZj#o*? p>ᅥˆυV`s+9hS?ũ3Xɘ `4_|)e>dn =N|QaLG78sT46Q #b5$vX+Cw;.ؤn#ҪhJh(Z fPohv&op)W#$Տ-*4Vh?"$#E4p%{!$n_HsW>I8I[:{/ 2&`:_mhGlEI7!k6\(=ê+-×~ y jC-MDMtW|\5S8^>~ߜW43.o)l9a"@!ꋤ3bFlV4ő`~;Ӵj^03~cZA |7M4"E*}#[q*Ìܚ;@;>YY22c'Yi}zZٌH=G{dيiZfz[% n+'7F6cNapuAQXveæ  m2zb6s u& 2.FrGy#Ey^oϿ {"N~ap^J̒µӴ鍈 e? 4hN|-U ZMqV/q`n[xPoii6+\-ZVpSZ;?\OĝE"\gdksBڗ}Hbn%:b9}LN<ڊDdoA-PXH|t6/>݅,v4Ӫo*~ R Kg"pL/x%R0[g<ԙ6L<%m)u ;#Ea*i*Ϸ$d?Nސ4+?^j,] F:`*{&OLE /`quZ3$(_3 iC X^/hH͟qȦf^*T(tjnD ڙ&Oѳ-J1?ʹfr#v*n=gj33dgѽ;\΂/r4R;uP"էg26N,:+l9YrOd Q{a2cG:HlŜIhh"߁juƊ= !%=`8ݲ5 RdzVA/9k)tqg:8Jϓ䮳t85q $)w*wITv0*S?{2h.=`IS* k,LI,VZT렦uǴZ}Dp}RPw`)Oޡ,c(@S9boM.yM4tJe{19hJIHFnZkyȋ',k NZnZ2KLg]$OKv^ .*9ץ~OtpIʲb;b*Kb,b1.c) (=б1q2P^].UF]A:Em6I}t|d̳x@k=BFoΕ-1 V:N~k~.SpĻUofV@QDҎ(+ pHpkʭ7:3wBDJ.[8OD#o4(hP,!7[tɌի [龢@1/tήMMŃ,8y=eZ&A"M>ʵ)m*S&l~,86)U4uZOT<j@pt]0@lwsGHUq;) q)nٹO:qĄDV_݀8z% O\ 쐧`5FG1gp^rGWm=ȑv}0S42_3?[nĶs4̪v]\+rm\Qb=%ӮJԪk+_a.dmJ9Y*sܸ ZngIZ0h#+Xs&)cI';.b`d_9+pV׆n%¼԰ė*,kt_ޤ%W]Q؄ ʰ;t g|m%^rj]WKKjf1 ןhQ{MG8K1)WtO^@^,KW1\nqC{Reyz=X?:ncT0~ZF<1& & *0 -! 3{G^/WY YdnNړ m7+).3UD^ +zՖx-qyMYsM6"Ǹbg50"~t!Ğ*sd6 FNA5|\ܦI2#o_y2@qm/iʦ@ Z5γ%^@b@8IijZ @>H5==<+-O3DKN?pȭnaՅ;zx84{qʷt0n|zT՛^0Syλy;>` ]"撒sr}3nGB|xa("EH85A[<ཱxUؼhA5JKK:t0vJ=527CTɰ-sB'Z=# ;ޡ ȝ /{S#d]":͉6ÛF #[Z9d;$#"%muf/"|5** ">2٤4I"rbJ1$_ mVByj+C_8~T*Kdϣ-lt᭹)]Nx䅵who\Eʿ׫+?<):iFȴ;I hS/dL&Cq(S2?zɖ[Rևr.7ˊ[Cv%Gj*l'^}eN)Ց[#Pإְ=n$>VH A5/*27c hZYhЖ&1̛jmZ|;@(܃%;Cf21!2K>%.6!N*b?] ZmVzLxjB/ +YŏD_;yz"llsxRa9|r6)U"]2ꂸ#: ږŧőm]@q A>e![MS'*:D]بPʺW,YqwE?mS[Qwe jBM|PpZ@pдNM±/Yb 63h[+-d^!Jlpxݙ|E:ܟq_ܡBa7뷣qB"YQa&%g c{H(t 'SghWH BgLz|V.D G֞)gAG WG;>AR{߄S3#' *1{kdW1m'G9ah |'s̨Hz/LG{}Lt 5en\ ϾY>6fn5oXUo_"8fSƒpE0@'1ՠT=(4= z-ֶ%;q\W,8~@a4cP$BkDw,=L72KsHf J?{֩xtq=!M*3$W0 /&P;MAnެQ=ٽaKP5A\HG}dekqCθ!!30ayLCĹ-\T%ߍ|Gz5b!::ac=qʤ[(=~|3hKtWNDd)փϛ&|FwE/A2&2G )vBf{yWiS/WW9=-)CsDq$opK3gpdLM`_U.S{fU9K A\EUaRqXnA߈ܕ GJǣ ³8S5KQteZ*'D>ɀ ⱇ ,=GW/:=OB ]Z*ߴE!4 ?:i k*JNpR^ؽ?f]8wrۖ/ 64 Æm餲q'kݓ/ <X?:gO sjCIF##ƌU9,dgPINi? sz~{[*qjY0V].W[KjTU{qD[2>gX"}=/m!㒑B#&pXբnO4L\Qhut*]/4x6#V~0 &f# m%1#&-}dT}ڕ[tq*.+Ͷ.E$G&1W#MIGِ%\avc>b֭-?OɃ+wok~vA .֤4Ef@{۬Q)EHV8l͹ޅ{{Ab^5b[4 ne(w"LnLN5,~ +ӳ Omt馞Ey_ "dFQH␟="D~ڧ[uGEiKިDXb|LclvAnu_ٮGfX},I G}^pr9vtz)jiS0!'{eHT|v%?+/ /w sSYZM2g baKIqQqIWzu2=+lY"m=2KReͲk]ӯR'0BvP4Eq7B ݧ>ܼ˿03s>LbΕu b1٪ ("=UNz;J\2~3&SAO/7Nrb鵩:볓5z4͈9-;gy4dxagaeqm0s$d*㸋waG&9Uˍϣt"#!3 ^Y5Y` "Čf{g`*RW /+v‰j*$tmaj[(7Nf=JwʱEԩ /JC$VzhäJRA<(hKRDQ'n'[|y4@ONe쒃sUc/pet!{I  ߘ X=>*X0?[R.kz?ga[r&B:R *ZQd50bB/ U._iŋ;,ZރHSxt ]N`)}xuD=x{f^L|q vZanoӖ%=+O \3Q (Sdr`p363CYkqΞ,H Jh!{]bF2Rk&E,+8^44p4σgʋW)ǑF00ǀK#4==[.VjنpA|V8@[V_oGXmX *kTXeX !nj`#r'°+lZ|'b˻{aoNJn]u͏jGI5 o1Yif 'Z7K2km0=31{j],Fb>i} GLOvG_SH#޿z&/Ku=g 2xr@tx5&6K|ZWwaV x&߬aݼ!H8!#9ofAR1\~\Ƭ7dB?U23M?B ?ˬvAD6&;3-qsy0c\1 ),ɂUUVͧWkVU/#R']~۠lRJr`ZŌm {ffBNn_ՖO=4ӁXsQ Lz}J-wtސ꥝HHGȋdƈF7O/Eg-1KE7KO Am&E8/e 1G"(]V2&ܚW# 6VL;N >L:Oj9ڋ4/^=`pJeKm Mp|FL_tiUCC$ݛ:'}.!($LTjT3"gg7d䝃{̞d{NеWis>jSkl4 NӢ[˨KUv7ŋϼmt6OZ߳S@=P(1 [*xC$Ϛ+Nw1S~-}-a+-e!6`csF㯆hg7[ȽWQ)rVNapC6~w=fg,W8Լȥ25 >A"rMUwQ3a05Pٸeň 779]T6XO4JœVE֔So9eP͗b(~]U'PtI 4fDI3%o‚*6Ns@]9қߜyxE9᳉g\[Æa ga2hMQs9'7xY0 hjg82Qeh rd:Za| A`E"ӥ}l&45jSl.~r+'5\N "B!d8 oRue@B!Q67.Ve"[lf;h+njDHd_H(p|I$.(r*KYgk%å*vWp` 8~m3NRC1#:ZL`0/z{PW^` _d"NU5jܞWEՖ>17p:FϸB[[ #AJN#镭=%X5BǽTMFR3K6`wq> 1ncJs|f>ӭMlbno}YۻIw1Y<kt.|_P I,P_@(;h񛯠MnXBf`8'/(~ Y?Z("P>j8 s;TkP{3^E^ ҆ qD㜳ACduI&_dL[9 -]*Z^`|C2j[޺V7񤬲J(9E[ɋˊm?ѕqPbks e!9Ji_L`3cLPzaR}ǜ ,\BD0G?}WlQ:48e  &z@CMe*_LBɽ:Ej.xv?TJ{Ї+zwGZ^>كrs Ӂ5kL`"5 QW~.󾢊1r;sOߖ Ȍhm)~i+!N+X Ɩr'R3n*vCrs`XY-ǏNElgkeKA\VO$nT9(I?ۥ5]iD[$ -e9Iڐw|bxxc UN` VN焗bJW`>jBz'_TEm(qp 4P(Qa߂"~J*,9a]haOGD\lc- $z3'sI6]Ez%wj  ?֔ZpW +1'62)0U+% &ѣ>'d$U@+G̔27>CO;i'(t;b8 o-ywV95-8 saX:fBWL u}^ Kduvj_Хjy_|H?jmhh< mMb!Ypzc~jCwpHj{އ5Y~UR$鳍LIAxVD(M|6I^V~JѠpR.R.r9@y=ܻK#%{t\zuܑN{ۨQiGe m*hM"lj`wܰQۢ/v 8*uxWVܬR1/W/ k1q |c>.oh>E[yb0җմG#B]W/3Jv^ z_i >h}EP^_ٴ]v4nUpK+0Jp<]ab~[w([9}[)M6;%p 8CoTiw@@[*#\ΐ8GOw!z{=ºAkD1~\7Dg-!mwފngIz;j~.7M9˗y |㛋@ǞP7q*DFGNe*TC), ۄ|+RUG-n_*rٮyD=!MIX*;}U#~ufeq/ĭ2@\gRa'4z3QBy03 0؜MEi0%#z6?{7!PS3Squä^WK#@Bpmʇl7O咮|z&D)J٥0b83jz˨F@BL⦥OeE$"Euv?%y5f-x-5gޜ4jlXp.zT:2},Q/ϙ0D& syP "i{ޛG(^[|`U4E{'\\40owƺnlFѢ*yWj| rF 揘\G4EIgvsY`”,הߠsE5^e$Q})UivU#.Q>qwӬ RqBqdhJ=ޅƝVh k jkP]5!H.- GMi ^8ӿN$CuJaZ}3i8a ͋nTZ 0V?k܏DښϨdvnBov +1`:^`\,mm&:m(cׁƗV&r|(h {PdX$;cC:ܗQȜ .xP5/K2<*04DDBIPw8Y.TuI ~ّsM>dv>#m[>}>xG@ѣTHɍA&x6s);{JEߎil/s\|!Ep[aU߾ؿ#4_=;Qp~]37)@zB35VJ|T' kڀY= u+*׻H R>;LSnPDm.a9ؚ&#k%LoqUm;ׄwd2SBœ"<;f(|ͪ5%BZa.P~!ecI<%׳TbB{4Imp|@n Vq"FODQވrt\ce7Z!m>ޡ>ʢA ౷?; f9\"w " (|񶷉ʇɲ3ouo98..RE4Fw+ @r1֒(R5uQ'v<3zpLMnl1<r8[zf"_zdH}e#6c.ICmKO7 _@+~,W1& ۃhfт^oPC=4r@R\wB1(yvW4R(J' ŵs 6پQ{6B&1Ȥ_D^럷o(چb>L᳑H-j9ŒbJN&wh2y" uhY&sڣ]ڰto8Z8ѥd]ڤC Ճy}2vUT$@UX5]W)c߷8%w:HcrۡT,p9RhRloܹ)x%7Ajee<ҥM^$\^aF>ma$YCv,KGslps>r|(cFJ@-r &Eqedn(͗j#yX,3IF=KLU^5dmcch!_GD7zR£출e`L=LD Osz^D {\U9_:L !W@(-%OZop{hz=bbuܸZOܰqhz h2a(4e#*c <}nvʲ+]Z r<"`k\ 6/]S@?vЗl{NU4-\ʳ[ٖ\_w`Hu1qvR!x>7_qB׫V\~E tW^R}.@p`*^u*Mq∞c8 $x];c㴦Eo0XoWhh n71\1Q,E&a'bq跫S:*NW& E MG5r޺clLxJ O(1fBڝ4%!͛  9+$Jf!3 O7t0&$ W@%ShB =6 Y:5e:RݭgHmL&)7֑?ƲTՋ;K~TU FOa?ʚv茓jQ@gtWze /:->FCzΆnt3z¤#wnǚ?OwFo#6N_d<󨴓4 I@B8SobDh=(5؍~zBR§]j|/6[ZS]bW#M)Gӫ`§v^I#d &&R{~k v`}i'?xjw x|XN?Т)qqE&5Eej+-6%nŹ|늌zf&a>*ʒ!sGL+DQ [/wQu Nk`~aG!`|>EB%=s0(ڬK6ܾU\>i"C$F$yhkoUn^D%6ĘN!E%T'Aq"9|2F,:S8)F"|T,)};l=ET @?^)DYL!/Q9/ o6-#i[LX` n'[mzNoJH񂈔#ǹa@RnI<ӱL/Ưg5mvϻsJs1mFࣖ[ZƁJh Cm֠,KdߚA($%n3T2j-,^kKK oS;p(# O'CܕK88Ձy_Rpr'84o$ p Nm• "OPՍOU"9Y$ݭфõFDzs7ay=ӛpFcXCP?$e[v9C&wf`J?8lGX}N%P%xJd/eBc^"(m=ah5`hFݝNWldnL?R֡Kv3zVNnS\X9Ex&Lb5OqLv!Ix%S0)T&WlacTw'-g~SZL:wm J xGrɇrM }7Q"( ankNp!̩} j{?)f+iG'V$Y~.m)tNQcxӄ*aBށU̱;Q)A_눗MI !#Ưz{/K`B5Km9{Y^NtOVDsg>W4B$2pGo:4ƭp#䟋l>cl@V¾_FMV :62C SrrCU NfV(2Bnab~qKIFRURp n'|YPzlM 1c lo2e Q9$q ϴ gtZW} iRs`=σ*zBq_Ͳ 8tTRml%u'p),t26`+J[_ۖ|JV3AJR9[2[6$|BxĖiX1M,ukuQNѝ0-Z $d4躚\+xt7gJ/#@Ǵ7fV)6?h, ݯc^1f'j6c2X?qqEC`=ƹ=eRP:c5;qiY$Cp&W~Sϊ%iH$,T,YP8WbLg ߫4 z_ @'t#4/cn\_ \IB,Æ6cʝ>x<Aa7l z@pOJ u`6m|1C*`b hFd۷H%e| [,u)DLA ϙ.oƘWMPrӡ 5jIC@כtC ӥ\=kI?M;ujp=wzZ 4!-(JZ2~5u0&v4k@tjqU}0w wq VTZ<D27[ҥ7>`xt4e\vՀIwC@Y2 8+ JX6.[g~IMY~4i7%bVX!`"MoHXiAT;>1*hj ^Tw'ǧBDg ^ZS6vN3c0Qfnw PW:EAD!vn!e\@g(YTrK8\o.VOd=GR撟]D#2ns!\g Xx O68Kmgє̧ȺvYeڝ/3,3QQKS4~ͶW'y028LX9@h"4,饛-й Ywtw ؈ŕp_;(M;Q!Zi߿= hVzg=79:"EW _,5!\1֫>;fj B&+ \8ㄽ*8Y.,ar22o׷E}qJLBIe qGAteLG/r@ q rפmY|44dJ,W˒+Svaڷ'#`_|4ߊ"Lo=b/8aDC$)->>/wB٭\eckaK{Eg/`bX'v׵^^|BInh &; Lf1pZfS`6r'Zmo7,K!R}u*a6J.? s$a; WK!2 9tg}3M~lFA2&KzB0w\Z|Ê>:E-O*{jCK 36Y$y-z#\Lhy#AFKV3VrIӫ-)2*h^Rg4Ast.|Ks4 rTmhKoQZZuPꨯBކ-O 92a^"R$2C1;aɈIl]"]m+2hܯD\4VS5 )M:y|s}8IwnVuyСt~ś˫u$*l,9vxK sxs_,TVͤÐP:w` v^jo>0C%1zzΛ e;-ƭkŻDz{7sZ8Z/Vc{s TͷMKcy4i_AJ? ,`EpO/ 4#Aq$/^MoAkI^e2@dُ!AD}=S  9N&`rJkN업񄔈+#_|pF1w= Y}; tAˏt$}m0KIڇ&3G`ʭ^rV".ǎChJu`;G`g}jS7D>6fۮ?(Ҫc}D! oʹ_U̷o/xVR.7l#%-+{sɵd/ Z+]٥s); O(؛ O[وz`.1eZE}($<@_bat۰=@g6EF¶3ZM!|8 ii%xv^p$h| 0#}I_ޚqzoʀӈ"MTFpnIQEDV:tkKƥb/Ws4Ǫ.vC :%@Y1@ɭV07 :  ,ϡ)=DHϒiw" 9QW  4,#fBVWPcj^=\,|cn9`^lDuL8 RШ(U:wOoݧ@'SzlЁѝ \.(E s*f9/Aw E,x@`uuzmS1M"0 c(lA8&Q?U<@Q-d!ڟ"bT9wYC0ę[io4b\”Гᱲ6,WX.xՉ&|Elp6v$AgVnTI@ >{~kia~l7@Y }KQR*ُ J! ݲ4h.RHw D!Y1-,ofpe*YlV IwIg2o9mN츺(JUC"N kA^I;?: =s5T^? <]t {nKחRbrmM9oonϑb@5p#QzQ }1MW\:dS9d_ 3c[d!㮿6pOID۪~dL1p *HV7l_O]Q܆ vOg:/)|Y5sVC=|: jPj oBT!{lZo$^svGQKw+Gj+FuSg.+А$"u"$bqnuZ ϖ{poUs8;2H'ѢUFd9"Wq;'1,^6܏ϻo A8KӨ -hwM)bn%7p%f]%Ci&?a^"F8 7+hKus<7KE I;댥%_wL~ kƦg iZI3%@ o3wėfor|t5|JW"[!u}fwx\o Wzmj¨v˧3)Z۽ZjmkgȵVVMÈ~#,m #D㣌Ui ҧ}2ʀy,dtbvPQ6(W=u/ama!nᒆۊvć9llW.?,L•!~'+ DL+<].(K2 i. sAZ` 4E y>uA #Z,wG~)@IRRe^T+c4eRuDd =p+`IMppr]i.Ӵ\ܢ}'v۶݈OfEXRykS@pơ U9clcqZ'3SkS^ 2OhFG+Ģ?'R.1m3F_- k}NjBQ ʔDB`l0C"gh ,r\AmÀ?4(%>l<$ YxBjs<[MN)a0|Eh \M00[]n8d W팔֎-py-T/ W?'Z;/g;4R~Fm¦4ycd7e:{u:mGb (-R~"4yL*4Ri(2_w66EeKάڃѤ IU"PX cy"~.fwDod]]ϋŃjzS+" j$+ErS"ya8j&$X'4&P!bo#{oU0^z~4Oxo/ˢ#\ȏmTnƺQJV8=VڕVkm#&}]" _쉘Kˏ?$AX= ޕWBs'  O1D =AUB%B Mswiyok3X1C#0't>i5S AgX 8޷ ɃH=E#Z&l[sT\z5]UR-t&3C2ol!Fե]LIr$nbxz56;L$1.2WF8[>'&i0{%@Wsr8<vsX XH"#71|D"^-M٫]Ϋ a 7Jih(lP'}UgWG\KǓM'dB]@?sP/>/5UdvIL8},̥Q؛|f2S3z nJ6̶VW.!'5u Cy[Huuٵz&4#V}lKCL4U·ԕ ؋u񳍴>5ekD^>.Ks=4WiHce/8~{JmΪݩmd;B2MOWm6, ɓ\sίd6BP\u^38NB4?{}<)EbvkZ~NVm@kg5r6o,}&t!I$)iWvPlŴf9ݓ / i^a]c0D'zܕp;iJmI%TJ/Ԍ,qb2)C3W\07ugYbIer&n뛞E6;c8vRD[QҗCpR4^Mx$pN-sjܵs,]gKX`gl_@4W/%B&03I)5ldr?hA 8`C&V] +'Z{rIg">%()P,$Bk+\{(aէQ* ;sJvr]#xo$KDn$2}U·¤|RhC3Ji*G3ı6+T{K9#/ ҄e QJ:D!ZY hR7&n] d,ri6uX̕)_ ?4KK|?W:NƔ?Qc8}l|rwrm"C^ ^NN_A$ޔw*4/ApߔԀ~z휜M5~jc"='񒔣.= z$Šg:.%5}0~=˜9?ouH/k>6ڵGb?IfDCa"WIc[=Gqq1cIx1 f8%CZ7YiJp4)^VrS j> $+m01,MѬGT-s:WerB985XhkaW H CQsVS/=փ+|0i tDϙ=֘;'7ٜ?kflwWH9Ef_`Rȵpz]]*k,;ΙL7P2nΦrh):P~p܎dh|((؅"g|-6 ]O!Qn.Ώ0gf1~CʝiInt;-tyջ?˻cT,'-d#{̀%brhvmNEK8f ;/Lc"]u{3%&Eynf堰njTc)IςwZWbVz9/\|.aһ NWn*;/vfFm ;qQFz2t~D{k:#)wT㣛 JR^1'/±oܛlf*^b{S ո]D讗ZoTJ \YN%3$ ة~1G񌆫 $$EzL/P#5DʰQe̫#;MpMDwdGy N4$_`ܙ鲒}nr}{Q`sܣx(ғcACZi97 m`Z2hj%@O0KJ VAn!BPlYc"?rZifyI bȣ>QGcx(@7ʎLthp&v>Mn2>|dqVHP!%D NcP9Τ3ŭ|=eGJDuq]޼S圱&|€mIDlr\f3/f TD %h}mt Aaᾱ&]0ɾ4.wJ)qO@ ]mSVKۣ *u_>Xʹ)9w1!ȥ{kؘUeOP?տ2@$ԡ~J-\+ϘrS/w2~g8h:ȏ+8(o6w/ؗ[yl팘OUTYCaKj^P{U/j7AAj!"Hܵ[ű7A{T|IyYUAV74C RAH8.= < j` 2_p!Y6ڇKP%ZmF-@dT`o3zvvOi3b6S~dž{ 嚨VF޳\G{ [+Rm߰*-v jW‘{t"-?qiF}k8:l@P|cOd?=Cٔgz|E1Ay^LeIp]=ҀLFϒ0L2P\ Zh7r$o|xJXޞt/˲| t Tֆ>21+Xn荊[H 9c}_*8_P6;Em5o(g-P/҇.7e"N g6f VoINe8?*Z>£Y}%=ޢ"{Bl\%093GGx¶MJ{n%{.ns$SKxBDr9>7qQG\ G*^O9{8&s[dLb0?z$XC47٩ܺ6m '$ES^׆`{|&{'3X_Gk?IT_{@Н =@,O€.RaKִ+ 9d߂ۙt5}5s09xwx B >j {p4NA: l!`{#bmɶBm[y&luP=LS.T_) M SDWszƊ*ߓ2lHxg~)iCcBoqJ^'kvjOrH} w[)0J~W]f%.eԤj; Y@4|= FYs  {ѺƷFSgu#ܥ$ppkro"‡\%A8uJ๸քKPKi hf~ DJ` axl'ݮW0R'~$rJ@'ר3"0;YUɀhӥo)ڤ$үթҿNB5 mqwA\JnxX:>_GUCX/ -.+0>ú8ZF%S\ :n`O\"T.%tW(|t~< g_j.wi+&'mHwʢkF֢?.̗mu$eEqb5'^eMOފZ2FR Y6Ru~v ?)2hS5eÕʔw_4$( dR$:$^x&#&c1N4DP n)&Yw U&ծA"1(cH7[FF~f ٪2^n!mPrG_#=@=\wЭc'>";|iWliZ=OѱD;qE{K (!*VzZs5B҄_V1r&tNDܣ+vؚ7"|4 4ty&3&g_2 @4ܾs{ZA!"S%hYtCnB$d͗Ǟ{9<:TcM˚3p(mR!߯g˽+1QAtS8ƍ>Nj!B>G෼[Z?ٙTw3BC˗UlPƌwp'\Z,]/@`nU,jY NL9~4469ƍ+qlvK"sbdm!?Ҩ/q6FDm!߆.=+y訵D8B;[Jv} ٰ4=YMK6}gs <"//ukEva$"{<"͆>V!"KwLM?6w"ܠUʊ`&dUcS>G>PMM,ε@:S<&/+\vVAzCnǼڸ2шO5 <&gY7V[;cvHLy(tB̊|>$s\Ntd>* P$L(?6^DI*XD5aKꆠx 1mua8k5;~ zv?cy(F$PSTy S߱KOYR.|Dfzfp>-?myJF*oiWsxqT(]'-$kz:]>1hp%'&5*0񷇩,Ŋ6$:WMzYm^Ċ\Ty&SF P'#_0@@! 1J Y*MKbCĎx/~H2c;3@歚ТK_A1ߓiÏ7+6J- +~e1]W2~ӒfZQ\#ڙnTh/T)LУ)+8v9-BH(Xט6ā0hw :u×^:A\_dpugcĖNk?A[:1_0*1u ʔ/PETf9v4V0oEޒ)YrMl^!5􊂶ύ6НW]|CX7I^︦ZmRs0ASU/%Cޕj#-I- Vj~7i6ƷwE(A\ر\H7 #o=oѓ|.*BtQcveSؗwF&l73h{DfU{)^A8˩苩75tr%ZVV xkh~"Ȩa}44E_<%lb pk8fIg:%٪lˬUt&%5Z?bXg̋bh`aAj, k75m  ߹Avd_ҋRC;!­ւ܉~uy$Ÿ I`!'q#~228UY,1T]z.mˁHvGڡʶG;lXt (jރc>Xbk6[U)Hv|mPD}ZdCU#?"t)syz?O ;kju 8$4IK| E={(⺑WFlAe)v VLz N`(/LcRsJ6<[yYGyfGʤf]5mG\)%̌(8eqo?t ƣ#H/ӝ1dyUSVks;GVwA%*NmRj?Ÿ_滹)QclI8R rԤ ?@e+֟LzXxۃMPq|#K}hVl6hzxGV?{"t F6W=!O)ya oXyLv