rsyslog-8.24.0-2.16.1<>,:] Ѹ/=„UO(v Y7 y룫8\tɽip0vOy5},z< ;ziRjS2?_cG.!$: _rӲ0Ao,Rs X$ {0qNl`Hh a : He(\󙺴ZwtϷ' E\A1`Z T)\1bߚ >E?d   @ #,N gv6"E#E $bE $E &E -E .E/E0qE11E2/6272;2:H<=>? @FG0EHDEIXEX/Y\/\E]E^&bc6defluEv5wEx$Ey8zCrsyslog8.24.02.16.1The enhanced syslogd for Linux and UnixRsyslog is an enhanced multi-threaded syslogd supporting, among others, MySQL, syslog/tcp, RFC 3195, permitted sender lists, filtering on any message part, and fine grain output format control. It is quite compatible to stock sysklogd and can be used as a drop-in replacement. Its advanced features make it suitable for enterprise-class, encryption protected syslog relay chains while at the same time being very easy to setup for the novice user.] lamb71>openSUSE Leap 42.3openSUSE(GPL-3.0-or-later AND Apache-2.0)http://bugs.opensuse.orgSystem/Daemonshttp://www.rsyslog.com/linuxx86_64 test -n "$FIRST_ARG" || FIRST_ARG="$1" # disable migration if initial install under systemd [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$FIRST_ARG" -eq 1 ]; then for service in rsyslog.service ; do sysv_service="${service%.*}" touch "/var/lib/systemd/migrated/$sysv_service" || : done else for service in rsyslog.service ; do # The tag file might have been left by a preceding # update (see bsc#1059627) rm -f "/run/rpm-rsyslog-update-$service-new-in-upgrade" if [ ! -e "/usr/lib/systemd/system/$service" ]; then touch "/run/rpm-rsyslog-update-$service-new-in-upgrade" fi done for service in rsyslog.service ; do sysv_service="${service%.*}" if [ -e /var/lib/systemd/migrated/$sysv_service ]; then continue fi if [ ! -x /usr/sbin/systemd-sysv-convert ]; then continue fi /usr/sbin/systemd-sysv-convert --save $sysv_service || : done fi# # update linker caches # /sbin/ldconfig # # remove obsolete variables # PNAME=syslog DEF_VAL="no" DEL_TEMPL=/var/adm/fillup-templates/$PNAME.del rm -f $DEL_TEMPL for var in SYSLOG_DAEMON SYSLOG_REQUIRES_NETWORK ; do echo -e "#\n$var=$DEF_VAL\n" >> $DEL_TEMPL done if [ -f /etc/sysconfig/$PNAME ] ; then /bin/fillup -q -t -r -i -d "=" /etc/sysconfig/$PNAME $DEL_TEMPL /etc/sysconfig/$PNAME.deleted.$$ test -f /etc/sysconfig/$PNAME.new && mv /etc/sysconfig/$PNAME.new /etc/sysconfig/$PNAME fi for i in $DEL_TEMPL /etc/sysconfig/$PNAME.deleted.$$ ; do if [ -f $i ] ; then . $i rm -f $i fi done PNAME=syslog DEF_VAL="no" DEL_TEMPL=/var/adm/fillup-templates/$PNAME.del rm -f $DEL_TEMPL for var in RSYSLOGD_COMPAT_VERSION RSYSLOGD_NATIVE_VERSION ; do echo -e "#\n$var=$DEF_VAL\n" >> $DEL_TEMPL done if [ -f /etc/sysconfig/$PNAME ] ; then /bin/fillup -q -t -r -i -d "=" /etc/sysconfig/$PNAME $DEL_TEMPL /etc/sysconfig/$PNAME.deleted.$$ test -f /etc/sysconfig/$PNAME.new && mv /etc/sysconfig/$PNAME.new /etc/sysconfig/$PNAME fi for i in $DEL_TEMPL /etc/sysconfig/$PNAME.deleted.$$ ; do if [ -f $i ] ; then . $i rm -f $i fi done # # add RSYSLOGD_* variables # PNAME=syslog SUBPNAME=-rsyslog TEMPLATE_DIR=/var/adm/fillup-templates SYSC_TEMPLATE=$TEMPLATE_DIR/sysconfig.$PNAME$SUBPNAME SD_NAME="" if [ -x /bin/fillup ] ; then if [ -f $SYSC_TEMPLATE ] ; then echo "Updating /etc/sysconfig/$SD_NAME$PNAME..." mkdir -p /etc/sysconfig/$SD_NAME touch /etc/sysconfig/$SD_NAME$PNAME /bin/fillup -q /etc/sysconfig/$SD_NAME$PNAME $SYSC_TEMPLATE fi else echo "ERROR: fillup not found. This should not happen. Please compare" echo "/etc/sysconfig/$PNAME and $TEMPLATE_DIR/sysconfig.$PNAME and" echo "update by hand." fi # # Do not use multiple facilities with the same priority pattern. # It causes start failure since rsyslog-6.4.x (bnc#780607). # # FIXME: it seems to be a valid syntax -> rsyslog bug? # if grep -qs '^local[0246],' etc/rsyslog.conf ; then sed -i -e 's/^local\([0246]\),/local\1.*;/g' etc/rsyslog.conf fi # # create dirs, touch log default files # if [ "$1" = "1" ] ; then # first install mkdir -p var/log touch var/log/messages; chmod 640 var/log/messages touch var/log/mail; chmod 640 var/log/mail touch var/log/mail.info; chmod 640 var/log/mail.info touch var/log/mail.warn; chmod 640 var/log/mail.warn touch var/log/mail.err; chmod 640 var/log/mail.err test -f var/log/news && mv -f var/log/news var/log/news.bak mkdir -p -m 0750 var/log/news chown news:news var/log/news touch var/log/news/news.crit; chmod 640 var/log/news/news.crit chown news:news var/log/news/news.crit touch var/log/news/news.err; chmod 640 var/log/news/news.err chown news:news var/log/news/news.err touch var/log/news/news.notice; chmod 640 var/log/news/news.notice chown news:news var/log/news/news.notice # # touch the additional log files we are using # touch var/log/acpid; chmod 640 var/log/acpid touch var/log/firewall; chmod 640 var/log/firewall touch var/log/NetworkManager; chmod 640 var/log/NetworkManager # # touch the additional log sockets config file # mkdir -p -m750 "./run/rsyslog" touch "./run/rsyslog/additional-log-sockets.conf" chmod 640 "./run/rsyslog/additional-log-sockets.conf" fi # first install # # Enable the rsyslogservice to be started by systemd # # This macro enables based on a systemctl preset config file only test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" -a -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -eq 1 ]; then if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl preset rsyslog.service || : fi elif [ "$FIRST_ARG" -gt 1 ]; then for service in rsyslog.service ; do if [ ! -e "/run/rpm-rsyslog-update-$service-new-in-upgrade" ]; then continue fi rm -f "/run/rpm-rsyslog-update-$service-new-in-upgrade" if [ ! -x /usr/bin/systemctl ]; then continue fi /usr/bin/systemctl preset "$service" || : done for service in rsyslog.service ; do sysv_service=${service%.*} if [ -e /var/lib/systemd/migrated/$sysv_service ]; then continue fi if [ ! -x /usr/sbin/systemd-sysv-convert ]; then continue fi /usr/sbin/systemd-sysv-convert --apply $sysv_service || : touch /var/lib/systemd/migrated/$sysv_service || : done fi # But we want to enable a syslog-daemon regardless of the preset; # force the creation of a syslog.service alias link (bnc#790805). # We do not check the obsolete SYSLOG_DAEMON variable as we want # to switch when installing it and there is a provider conflict. /usr/bin/systemctl -f enable rsyslog.service >/dev/null 2>&1 || :# # stop the rsyslogd daemon when it is running # 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 syslog.socket || : ( 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 syslog.socket ) || : 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 rsyslog.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 rsyslog.service ) || : fi# # update linker caches # /sbin/ldconfig # # cleanup init scripts # test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : ( 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 rsyslog.service ) || : fi else # package uninstall for service in rsyslog.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi fi )_N(=+`N`Nppx\AcHR)H(9:J999)@:()9L[ ))(9h;+,h+,,p++ iqJ#?+}BA큀A큤AAAA큠A큤A] ] ] ] ] ] ] ] ɿ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 11323ae4cc062a98b4ca9c37361eb434ccbd924ed4fabf1767b09b805ac01c846c90f5a20217bec88af6e9e32d94462cd41d8cd98f00b204e9800998ecf8427e32ccdb30efc3f30ad1f4b9f48dec86176d585bdb97143fc6d0c653c98b1f6bca88e8d3d26ff2ebbe0506b7800e2210c1ca15d70daf4b5ae930ab78e04d9e4b08e6688b02ca50235281cfafcbe039c8c6133bcceb337b22227a439f20eecb7ebc59d6618a3c1d0af8912e422a57c44c8de7b2b382dbcf980552254297f97bb30b060da448e2661e869a8a215795eda9d6bbde5c1b6a7d220de2d99815097f3a6c1ec2d76f83897f7a3ed6fa3ee6283fe004e8ab1769e47e3c3dcced781ad772e4a52cb8a00e2c86d033a9d1b6304324cef38111e346b498108236ebb877719264ed1676f1ad96d0d4132237dfba665ff7e5f7161d254a3ff6cd6714244a6c5c7c25ce2eb66e97bebd96f5962f49f032b3415552d31b86964304b8c083325db8e9fc565d764921f6d509a4c049a1c8f77ae6716645de87a5cc52a946c228ece5f35805bc27777a9b69b50aa475e98356e4e8a471794334b553e0ccf5305cf756e2198e9d1dd47a586d423772d893ed23e4bb6d72404460b3e499e0372708ddee71db740320d9b6a331fa060e2d298ec68746195933a4eafb38121c04c2749d9e53a6499e09fb3889828fe94e798609d694f5c2ff624c69f92c0d45b97f91b12bd33da4560038f7c9f683102a82c7a186226e15b45b6822ab261a5773954b0436b8d32ec0ab5aaae17d225c483b303b59eecd70d0e9011a61eb065f9a1ea4a870b27eb04cb5b2ce1697b3d53e62a76c94e5faa23b94b74f391758d9bd836a69b63868b78d029df66b6c27d34a8b22b4bdb5b4f6a572dff74e0b007afa36dd28af541ad1eec9eb7c9ac0cf9d96cfdbbcdca324514767e7c14f840d16b5484fe5ba30d90dcc316204ee622e06196fb98c22363856314d56ac8b327bcd26c718fd5a0d62c40a123a52a0a90589f0c044474bca0a2f8dc7c78a9d0e7e45b30d6e5d19acbbf2eac85f90686d0c03cd5f579d3910096385a7f8a4b3f0f60a44e9df179bef04c0ec75cd37170786b5613965b1d8ac50e6a1e6daeedd4cb673e15d1e6a7100912b0915063c735597b1493646e84d8251d9635e646fb75e1b74c074f788e973052f8a09206615ab07326ff8ce2d9d32cb7903f1e5c39ae838209e130dca270ace31c662fc9501e195b95673cc6a116c878be3d9b6b64332ad89f6f29d4948ddcd32e7bc9883fff75d04cbcc5a633230373ac554c278f42b93022961ca15ffd1bac711f14d2d380d02b10fe2cafce917/usr/sbin/rsyslogdservice@@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrsyslog-8.24.0-2.16.1.src.rpmconfig(rsyslog)im3195.so()(64bit)imfile.so()(64bit)imjournal.so()(64bit)imklog.so()(64bit)imkmsg.so()(64bit)immark.so()(64bit)impstats.so()(64bit)imptcp.so()(64bit)imtcp.so()(64bit)imudp.so()(64bit)imuxsock.so()(64bit)lmnet.so()(64bit)lmnetstrms.so()(64bit)lmnsd_ptcp.so()(64bit)lmregexp.so()(64bit)lmstrmsrv.so()(64bit)lmtcpclt.so()(64bit)lmtcpsrv.so()(64bit)lmzlibw.so()(64bit)mmanon.so()(64bit)mmcount.so()(64bit)mmexternal.so()(64bit)mmfields.so()(64bit)mmpstrucdata.so()(64bit)mmrfc5424addhmac.so()(64bit)mmrm1stspace.so()(64bit)mmsequence.so()(64bit)mmutf8fix.so()(64bit)omjournal.so()(64bit)ommail.so()(64bit)omprog.so()(64bit)omruleset.so()(64bit)omstdout.so()(64bit)omtesting.so()(64bit)omuxsock.so()(64bit)pmaixforwardedfrom.so()(64bit)pmciscoios.so()(64bit)pmcisconames.so()(64bit)pmlastmsg.so()(64bit)pmnull.so()(64bit)pmpanngfw.so()(64bit)pmsnare.so()(64bit)rsyslogrsyslog(x86-64)syslogsysvinit(syslog)@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    /bin/bash/bin/sh/bin/sh/bin/sh/bin/shconfig(rsyslog)coreutilsdiffutilsfillupgreplibc.so.6()(64bit)libc.so.6(GLIBC_2.12)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.8)(64bit)libc.so.6(GLIBC_2.9)(64bit)libcrypto.so.1.0.0()(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libestr.so.0()(64bit)libfastjson.so.4()(64bit)liblogging-rfc3195.so.0()(64bit)liblogging-stdlog.so.0()(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.12)(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)libpthread.so.0(GLIBC_2.3.3)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.2.5)(64bit)librt.so.1(GLIBC_2.3.4)(64bit)libsystemd.so.0()(64bit)libsystemd.so.0(LIBSYSTEMD_209)(64bit)libuuid.so.1()(64bit)libuuid.so.1(UUID_1.0)(64bit)libz.so.1()(64bit)rpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)syslog-servicesystemdsystemdsystemdsystemdrpmlib(PayloadIsLzma)8.24.0-2.16.13.0.4-14.0-12.04.4.6-1otherproviders(syslog)4.11.2\g\o@\J@[h8@[[ @[*AX@X{d@XN@XD@W@WRWVV@VHVVVV=VUݪ@U@U[%UB@U>$U4@U+U#T@T@TLTG@TBV@T/@T+T*@T @TwS0S@S@Si@S @Sy@SwO@SsZSsZSsZS4S*@S*@RRUR=RSRz/@Rw@RrF@RnQR1Q{Qֵ@QQőQQQQ@Q@Q@Qq1Qq1Qm=@Qj@QU@Q#i@PDP@P[PPe@Pe@PPPpP6@PP@PPoP@P~P~P`K@P\VP[@P[@PWPE@P@@P;a@OO;O@OOB5OB5Ng\NTNNP@NNP@N7NN7@N7@N7@N7@NM@Mߒ@M@M@M@MMMMM2@MIG@M8#LLL@L K#@KKŮ@K\JJ^@J IcIcThomas Blume Thomas.Blume@suse.comThomas.Blume@suse.comThomas.Blume@suse.comThomas.Blume@suse.comThomas.Blume@suse.comndas@suse.comastieger@suse.comdimstar@opensuse.orgastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.commrueckert@suse.deastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comjengelh@inai.dejsegitz@novell.comjsegitz@novell.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comandreas.stieger@gmx.deheinemannj66@gmail.comLed andreas.stieger@gmx.demt@suse.demt@suse.deandreas.stieger@gmx.dewagner-thomas@gmx.atmt@suse.demrueckert@suse.demrueckert@suse.dejsegitz@suse.comandreas.stieger@gmx.demt@suse.comheinemannj66@gmail.comheinemannj66@gmail.comheinemannj66@gmail.comheinemannj66@gmail.comandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.demt@suse.deandreas.stieger@gmx.decrrodriguez@opensuse.orgmt@suse.demt@suse.demt@suse.demt@suse.demt@suse.deandreas.stieger@gmx.demt@suse.demt@suse.decrrodriguez@opensuse.orgvcizek@suse.commt@suse.demt@suse.deandreas.stieger@gmx.demt@suse.commt@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demt@suse.commt@suse.commt@suse.commt@suse.commt@suse.comtittiatcoke@gmail.commt@suse.commt@suse.comfcrozat@suse.commt@suse.comandreas.stieger@gmx.demt@suse.comandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.comandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.commt@suse.commt@suse.commt@suse.commrueckert@suse.demt@suse.demrueckert@suse.decrrodriguez@opensuse.orgaj@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demt@suse.deaj@suse.demt@suse.demrueckert@suse.deidoenmez@novell.commrueckert@suse.demt@suse.demrueckert@suse.demrueckert@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.decoolo@novell.comchris@computersalat.demt@suse.demt@suse.demrueckert@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.de- imfile: fix multiline timeout code (bsc#1133847) * add 0001-imfile-multiline-timeout-does-not-work-after-rsyslog.patch- set default permissions before include directives (bsc#1126233) * Logfile open modes depend on position in the config file, see https://www.rsyslog.com/doc/rsconf1_filecreatemode.html- VUL-0: CVE-2018-16881: rsyslog: imptcp: integer overflow when Octet-Counted TCP Framing is enabled (bsc#1123164) * add 0001-imptcp-fix-Segmentation-Fault-when-octet-count-is-to.patch- omfile: assure proper logfile flush when using a configuration template that configures messages to be written to multiple files, otherwise only the last file would be flushed (bsc#1084682) * add rsyslog-flush-dyn-file.patch * this is a workaround until upstream bug: https://github.com/rsyslog/rsyslog/issues/2502 gets fixed- fix includes for apparmor profile (bsc#901418)- fix CVE-2015-3243 rsyslog: some log files are created world-readable (bsc#935393)- sync bug and fate numbers from IBS changes.- rsyslog 8.24.0(fate#320546): * mmrm1stspace: new module; removes first space in MSG if present * KSI signature provider: file permissions can now be specified * omzmq: new features * when the hostname is empty, we now use "localhost-empty-hostname" * omelasticsearch: remove "asyncrepl" config parameter * omfwd: Add support for bind-to-device (see below on same for imudp) * imudp: Add support for bind-to-device * imudp: limit rcvbufsize parameter to max 1GiB * rainerscript: implement new "call_indirect" statement * bugfix imjournal: make state file handling more robust * bugfix core: lookup table reload was not properly integrated * bugfix core: potential dealock on shutdown * bugfix ommongodb: did not work in v8 due to invalid indirection * bugfix ommongodb: fix tryResume handling * bugfix omfwd: retry processing was not done correctly, could stall * bugfix imuxsock: segfault non shutdown when $OmitLocalLogging is on - contributed modules not enabled due to build issues: * mmdblookup: new maxminddb lookup message modify plugin- Replace pkgconfig(libsystemd-journal) BuildRequires with pkgconfig(libsystemd): the sub-libraries have been merged into libsystemd since 209 and have ultimately been removed since 230.- rsyslog 8.23.0: * requiring libfastjson 0.99.3 * KSI signatures: removed SHA2-224 hash algorithm * imfile: new timeout feature for multi-line reads * omfile: improve robustness against network file system failures * pmaixforwardedfrom: support for AIX syslogd -s option * omelasticsearch: add ability to specify max http request size * omelasticsearch: high availability addressing of ElasticSearch cluster * omelasticsearch: make compatible with ElasticSearch 2.x and 5.x * omhiredis: add dynakey attribute. * omtcl: new contributed module * RainerScript: provide a capability to set environment variables * lookup tables: improved error checking * queue subsystem: add configuration parameter "queue.samplinginterval" * various bug fixes * rsgtutil: option to specify KSI publications file certificate constraints - includes changes from 8.22.0: * ompgsql: add template support * generate somewhat better error message on config file syntax error - includes changes from 8.21.0: * CHANGE OF BEHAVIOUR: by default, internal messages are no longer logged via the internal bridge to rsyslog but via the syslog() API call [either directly or via liblogging). For the typical single-rsyslogd-instance installation this is mostly unnoticable (except for some additional latency). If multiple instances are run, only the "main" (the one processing system log messages) will see all messages. To return to the old behaviour, do either of those two: 1) add in rsyslog.conf: global(processInternalMessages="on") 2) export the environment variable RSYSLOG_DFLT_LOG_INTERNAL=1 This will set a new default - the value can still be overwritten via rsyslog.conf (method 1). Note that the environment variable must be set in your **startup script**. For more information, please visit http://www.rsyslog.com/rsyslog-error-reporting-improved/ * slightly improved TLS syslog error messages * queue subsystem: improved robustness- rsyslog 8.20.0: * omrelp: add configurable connection timeout * pmrfc3164: add support for slashes in hostname * bugfix omfile: handle chown() failure correctly * omfile now better conveys status of unwritable files back to core * config files recursively including themselfes are now detected * refactored code to not emit compiler warnings in "strict mode" * bugfix: fix some issues with action CommitTransaction() handling * bugfix omqmqp1: connecting to the message bus fails on nonstandard port * testbench/CI enhancements - Build requirements: * librelp 1.2.12- rsyslog 8.19.0: * omelasticsearch: add option to permit unsigned certs * imrelp: better error codes on unvailablity of TLS options * default stack size for inputs has been explicitely set to 4MiB * performance improvements * miscellaneous minor cleanup * fix: potential misadressing in template config processing * bugfix omfile: async output file writing does not respect flushing * bugfix imfile: corrupted multi-line message when state data was persisted * bugfix imfile: missing newline after first line of multiline message * bugfix: dynstats unusedMetricTtl bug * bugfix build system: build was broken on SunOS * bugfix: afterRun entry point not correctly called * bugfix dynstats: do not leak file handles * bugfix omelasticsearch: disable libCURL signal handling * bugfix omelasticsearc: some regressions were fixed * improved wording: gnutls error message points to potential cause- rsyslog 8.18.0(bnc#958728): * templates: add option to convert timestamps to UTC * omjournal: fix segfault (regression in 8.17.0) * imptcp: added AF_UNIX support * new template options * compressSpace * date-utc * redis: support for authentication * omkafka: makes kafka-producer on-HUP restart optional * imfile: new "FreshStartTail" input parameter * omjournal: fix libfastjson API issues * ommongodb: fix json API issues * dynamic stats subsystem: a couple of smaller changes * foreach loop: now also iterates over objects (not just arrays) * enhancement: queue subsystem is more robst in regard to some corruptions * enhancement: Allow rsyslog to bind UDP ports even w/out specific interface being up at the moment. * new External plugin for sending metrics to SPM Monitoring SaaS * bugfix imfile: fix memory corruption bug when appending @cee * bugfix: memory misallocation if position.from and position.to is used a negative amount of memory is tried to be allocated if position.from is smaller than the buffer size (at least with json variables). This usually leads to a segfault. * bugfix: fix potential memleak in TCP allowed sender definition * bugfix: $PrivDropToGroupID actually did a name lookup * bugfix: small memory leak in imfile * bugfix: double free in jsonmesg template * bugfix: incorrect formatting of stats when CEE/Json format is used * bugfix omfwd: new-style keepalive action parameters did not work due to being inconsistently spelled inside the code. Note that legacy parameters $keepalive... always worked * bugfix: memory leaks in logctl utility * bugfix omrelp: fix segfault if no port action parameter was given * bugfix imtcp: Messages not terminated by a NL were discarded- rsyslog 8.17.0: * improve json variable performance * new experimental feature: lookup table suport * new feature: dynamic statistics counters * new contributed plugin: omampq1 for AMQP 1.0-compliant brokers * new set of UTC-based $now family of variables ($now-utc, $year-utc, ...) * simplified locking when accessing message and local variables * new global parameter "debug.unloadModules" * timestamp handling: guard against invalid dates * imfile: add "trimlineoverbytes" input paramter * ommongodb: add support for extended json format for dates * omjournal: add support for templates * imuxsock: add "ruleset" input parameter(fate#320667) * imptcp: performance improvements * improve interface definition in some modules, e.g. mmanon, mmsequence * rsgtutil: dump mode improvements + auto-detect signature file type + ability to dump hash chains for log extraction files * bugfix: unixtimestamp date format was incorrectly computed (leap year) * bugfix: date-ordinal date format was incorrectly computed (leap year) * bugfix: some race when shutting down input module threads * bugfix tcpflood: did not handle connection drops correct in TLS case * bugfix: abort if global parameter value was wrong * bugfix omkafka: fix potential NULL pointer addressing * bugfix impstats: @cee cookie was prefixed to wrong fromat (json vs. cee) * bugfix imfile: fix race during startup that could lead to some duplication * bugfix: potential loss of single message at queue shutdown * bugfix: potential deadlock with heavy variable access * bugfix ommysql: on some platforms, serverport parameter had no effect * bugfix omelasticsearch: invalid pointer dereference * bugfix omhiredis: serverport config parameter did not reliably work * bugfix rsgtutil: -h command line option did not work * bugfix lexer: hex numbers were not properly represented * bugfix TLS syslog: intermittent errors while sending data * bugfix imfile: abort on startup if no slash was present in file name param * bugfix rsgtutil: fixed abort when using short command line options * bugfix rsgtutil: invalid computation of log record extraction file * bugfix build system: KSI components could only be build if in default path- rsyslog 8.16.0: * rsgtutil: Added extraction support including loglines and hash chains. * new system properties for $NOW properties based on UTC * various bug fixes and improvements- fix build on sle11: use package name buildrequires instead of pkgconfig- build with libfastjson (mandatory from 8.16.0)- rsyslog 8.15.0: * KSI (incompatible changes): + KSI utilities: Added option to set publication url via - -publications-server. Required for signature verification. + UserID and UserKey can be set by parameter + Fixed wrong TLV container for KSI signatures from 0905 to 0906. + somewhat improved error messages + Update for and use libksi 3.4.0.x * New contributed modules: + pmpanngfw: for translating Palo Alto Networks logs * pmciscoios: support for asterisk before timestamp added * solr external output plugin much enhanced * omrabbitmq: improvements * add support for libfastjson (as a replacement for json-c) * pmciscoios: support for some format variations * improvments for 0mq modules: + omczmq - suspend / Retry handling + omczmq - improved efficiency + omczmq - added ability to set a timeout for sends + omczmq - set topics can be in separate frame (default) or part of message frame (configurable) + imczmq - ZMQ_ROUTER support * Note the upstream supported modules not enabled in SUSE package: + grok (mmgrok) + omkafka * add support for building with libfastjson * bugfix: invalid mutex handling in omfile async write mode could lead to segfault, even though highly unlikely (caught by testbench on a single platform) (bsc#1000488)- rsyslog 8.14.0: * add property "rawmsg-after-pri" * bugfix: potential misadresseing in imfile * bugfix: re_extract RainerScript function did not work- rsyslog 8.13.0: * ZeroMQ enhancements * Redis enhancements * mmnormalize: liblognorm error messages are now emitted via regular rsyslog error reporting mechanism (aka "are now logged") * networking improvements - drop rsyslog-8.12.0-parallel-build.patch, is upstream - drop rsyslog-8.12.0-gnutls.patch, same- rsyslog 8.12.0: * Harmonize resetConfigVariables values and defaults * GT/KSI: fix some issues in signature file format and add conversion tool * bugfix: ommysql did not work when gnutls was enabled * bugfix omfile: potential memory leak on file close * bugfix omfile: potential race in dynafile detection/creation * bugfix omfile: Fix race-condition detection in path-creation code * bugfix parser subsystem: potential misadressing in SanitizeMsg() * imfile: files moved outside of directory are now (properly) handled * bugfix: imfile: segfault when using startmsg.regex * bugfix imfile: file table was corrupted when on file deletion * bugfix ompgsql: transaction were improperly handled * bugfix mmjsonparse: memory leak if non-cee-json message is processed * testbench: remove raciness from UDP based tests * testbench: added bash into all scripts makign it mandatory * bugfix testbench: Fixed problem building syslog_caller util when liblogging-stdlog is not available. - add upstream patches: * rsyslog-8.12.0-gnutls.patch to fix build with gnutls * rsyslog-8.12.0-parallel-build.patch to fix parallel build- rsyslog 8.11.0 - new features: * signature provider for Keyless Signature Infrastructure (KSI) - bug fixes: * imfile: regex multiline mode ignored escapeLF option * omkafka: fixed several concurrency issues, most of them related to dynamic topics. * execonlywhenpreviousissuspended did not work correctly * core engine: ensured global variable atomicity * imfile: segfault when using startmsg.regex because of empty log line- rsyslog 8.10.0: * imfile: add capability to process multi-line messages based on regex * pmrfc3164: add new parameter "detect.yearAfterTimestamp" * pmrfc3164: add new parameter "permit.squareBracesInHostname" * supplementary groups are now set when dropping privileges * imfile: added brace glob expansion to wildcard * zmq: add the ability for zeromq input and outputs to advertise their presence on UDP via the zbeacon API. * added omhttpfs: contributed module for writing to HDFS via HTTP * bug fixes - packaging changes: * build with GnuTLS support again as 3.4.0 is now supported- Documentation does not depend on the presence of anything- Adjusted apparmor profile based on the suggestions by Christian Boltz * Removed empty files: module-pgsql, module-relp, module-gssapi, module-gtls * Moved profiles to /usr/share/apparmor/extra-profiles/ * Blocked capability block_suspend plus some other small fixes- Adjusted apparmor profile to prevent aa-genprof failures (bnc#925512)- disable GnuTLS support, does not build with GnuTLS 3.4.0- rsyslog 8.9.0: - omprog: add option "hup.forward" to forwards HUP to external plugins - imuxsock: added capability to use regular parser chain - new sysSock.useSpecialParser module parameter - new sysSock.parseHostname module parameter - new useSpecialParser input parameter - new parseHostname input parameter - 0mq: improvements in input and output modules - imtcp: add support for ip based bind for imtcp -> param "address" - bugfix: MsgDeserialize out of sync with MsgSerialize for StrucData - bugfix imfile: partial data loss, especially in readMode != 0 - bugfix: potential large memory consumption with failed actions - bugfix: omudpspoof: invalid default send template in RainerScript format - bugfix: size-based legacy config statements did not work properly on some platforms, they were incorrectly handled, resulting in all sorts of "interesting" effects (up to segfault on startup) - build system: added option --without-valgrind-testbench ... which provides the capability to either enforce or turn off valgrind use inside the testbench. Thanks to whissi for the patch. - rsyslogd: fix misleading typos in error messa - remove upstreamed rsyslog-8.8.0-nonvoid-function-return.patch- rsyslog 8.8.0: - omkafka: add support for dynamic topics and auto partitioning - imtcp/imptcp: support for broken Cisco ASA TCP syslog framing - omfwd: more detailled error messages in case of UDP send error - TLS syslog: enable capability to turn on GnuTLS debug logging - bugfix: $AbortOnUncleanConfig did not work - improve rsyslogd -v output and error message with meta information - bugfix imtcp: octet-counted framing cannot be turned off - bugfix: build problems on Illuminos - bugfix: invalid data size for iMaxLine global property - bugfix: negative values for maxMessageSize global parameter were permitted - add upstream patch rsyslog-8.8.0-nonvoid-function-return.patch to fix compiler warnings/errors- rsyslog 8.7.0: - add message metadata "system" to msg object this permits to store metadata alongside the message - imfile: add support for "filename" metadata this is useful in cases where wildcards are used - imptcp: make stats counter names consistent with what imudp, imtcp uses - added new module "omkafka" to support writing to Apache Kafka - omfwd: add new "udp.senddelay" parameter - mmnormalize enhancements - RainerScript "foreach" iterator and array reading support Thanks to Janmejay Singh for the patch. - now requires liblognorm >= 1.0.2 - add support for systemd >= 209 library names - BSD "ntp" facility (value 12) is now also supported in filter Note: this patch was released under ASL 2.0 (see email-conversation). - bugfix: global(localHostName="xxx") was not respected in all modules - bugfix: emit correct error message on config-file-not-found - bugfix: impstats emitted invalid JSON format (if JSON was selected) - bugfix: (small) memory leak in omfile's outchannel code - bugfix: imuxsock did not deactivate some code not supported by platform - includes changes from 8.6.0: - configuration-setting rsyslogd command line options deprecated - new and enhanced plugins for 0mq. These are currently experimantal. - empty rulesets have been permitted. They no longer raise a syntax error. - add parameter -N3 to enable config check of partial config file Use for config include files. Disables checking if any action exists at all. - rsyslogd -e option has finally been removed It is deprectated since many years. - testbench improvements - testbench is now by default disabled - add new RainerScript functions warp() and replace() - mmnormalize can now also work on a variable - new property date options for day ordinal and week number - remove --enable-zlib configure option, we always require it - slight source-tree restructuring: contributed modules are now in their own ./contrib directory. The idea is to make it clearer to the end user which plugins are supported by the rsyslog project (those in ./plugins). - bugfix: imudp makes rsyslog hang on shutdown when more than 1 thread used - bugfix: not all files closed on auto-backgrounding startup - bugfix: typo in queue configuration parameter - bugfix: unitialized buffer off-by-one error in hostname generation - bugfix imuxsock: possible segfault when SysSock.Use="off" - bugfix: RainerScript: invalid ruleset names were accepted - bugfix: some module entry points were not called for all modules - bugfix omlibdbi: connection was taken down in wrong thread - imttcp was removed because it was an incompleted experimental module - pmrfc3164sd because it was a custom module nobody used - omoracle was removed because it was orphaned and did not build/work for quite some years and nobody was interested in fixing it - includes changes from 8.5.0: - imfile greatly refactored and support for wildcards added - PRI-handling code refactored for more clarity and robustness - ommail: add support for RainerScript config system [action() object] - refactored the auto-backgrounding method - make gntls tcp syslog driver emit more error messages - bugfix: imfile did not complain if configured file did not exist - bugfix: build failure on systems which don't have json_tokener_errors - imgssapi: log remote peer address in some error messages - includes changes from 8.4.3: - ommail: minor bugfixes & improvements - bugfix imkmsg: infinite loop on OpenVZ VMs - bugfix: typo in queue configuration parameter made parameter unusable - bugfix: unitialized buffer off-by-one error in hostname generation - bugfix imfile: segfault on startup in "inotify" mode - bugfix imfile: could make rsyslog exit in inotify mode - bugfix: rsgtutil sometimes crashed in verify mode if file did not exist - bugfix imklog: pri was miscalculated - bugfix: imjournal did not build properly - bugfix: mmcount did no longer build - bugfix imuxsock: possible segfault when SysSock.Use="off" - rsyslog Version 8.5.0 fixed bsc#992146- set file permissions only on first install [boo#899316]- Changed BuildRequires dependencies for SLES11SP3 - BuildRequires: libjson-c-devel - BuildRequires: libestr-devel - BuildRequires: liblogging-devel - BuildRequires: librelp-devel - BuildRequires: libee-devel - BuildRequires: liblognorm-devel - BuildRequires: libuuid-devel- fix shebang of rsyslog-service-prepare script- rsyslog Version 8.4.2 [v8-stable] 2014-10-02 [bnc#899756] This release primarily contains a correction for the previous fix for the PRI vulnerability which was incomplete. - bugfix: the fix for CVE-2014-3634 did not handle all cases This is corrected now. see also: CVE-2014-3683 - fixed a build problem on some platforms - behaviour change: "msg" of messages with invalid PRI set to "rawmsg"- Removed broken zpipe utility from diag-tools package (bnc#890228)- update to rsyslog 8.4.1 [v8-stable] 2014-09-30 (bnc#897262) - imudp: add for bracketing mode, which makes parsing stats easier - permit at-sign in variable names closes: https://github.com/rsyslog/rsyslog/issues/110 - bugfix: fix syntax error in anon_cc_numbers.py script Thanks to github user anthcourtney for the patch. closes: https://github.com/rsyslog/rsyslog/issues/109 - bugfix: ompgsql: don't loose uncomitted data on retry Thanks to Jared Johnson and Axel Rau for the patch. - bugfix: imfile: if a state file for a different file name was set, that different file (name) was monitored instead of the configured one. Now, the state file is deleted and the correct file monitored. closes: https://github.com/rsyslog/rsyslog/issues/103 - bugfix: omudpspoof: source port was invalid Thanks to Pavel Levshin for the patch - bugfix: build failure on systems which don't have json_tokener_errors Older versions of json-c need to use a different API (which don't exists on newer versions, unfortunately...) Thanks to Thomas D. for reporting this problem. - bugfix: omelasticsearch does not work with broken/changed ES 1.0+ API closes: https://github.com/rsyslog/rsyslog/issues/104 - bugfix: mmanon did not properly anonymize IP addresses starting with '9' Thanks to defa-at-so36.net for reporting this problem. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=529 - bugfix: build problems on SuSe Linux Thanks Andreas Stieger for the patch - bugfix: omelasticsearch error file did not work correctly on ES 1.0+ due to a breaking change in the ElasticSearch API. see also: https://github.com/rsyslog/rsyslog/issues/104 - bugfix: potential abort when a message with PRI > 191 was processed if the "pri-text" property was used in active templates, this could be abused to a remote denial of service from permitted senders see also: CVE-2014-3634 - removed patches obsoleted by this version: [- rsyslog-8.4.0_implicit_declaration.patch, - rsyslog-8.4.0-json-c-0.12-configure.patch, - rsyslog-8.4.0-json-c-0.12.patch] - adopted patch for modified rsyslog.service: [* rsyslog-unit.patch]- fix build with json-c 0.12 with upstream patch rsyslog-8.4.0-json-c-0.12.patch - json-c provides a compatibility pkg-config for "json". Add rsyslog-8.4.0-json-c-0.12-configure.patch to check for the required function directly.- added firewall template file- Stop syslog.socket in %preun to avoid the daemon we uninstall gets started by a log message due to dependencies (bnc#840815).- reenable gssapi module- rsyslog 8.4.0 [v8-stable] - this is the new stable branch, which incorporates all enhancements of rsyslog 8.3. - rsyslog 8.3.5 [v8-devel] 2014-08-05 - mmjsonparse: support selectable cookie and target containers This permits to put different meanings into a json formatted syslog message, e.g. the "traditional" cee or cim data. - bugfix: mmjsonparse did not build with json-c < 0.10 This was a regression introduced some time in the past in order to support API changes in json-c. Now we check for the - rsyslog and use proper code. - omprog: emit error message via syslog() if loading binary fails This happens after forking, so omprog has no longer access to rsyslog's regular error reporting functions. Previously, this meant any error message was lost. Now it is emitted via regular syslog (which may end up in a different instance, if multiple instances run...) - couple of patches imported from v7-stable (7.6.4) - rsyslog 8.3.4 [v8-devel] 2014-07-11 - new pmciscoios parser supporting various Cisco IOS formats - RFC3164 timestamp parser now accepts timezones and subsecond resolution ... at least for some common formats and where we could do so without running risk of breaking proper formats (or introducing regressions) - new parser config object -- permits to define custom parser definitions - new tzinfo config object -- permits to define time zone offsets This is a utility object that currently is being used by some parsers. - bugfix: mishandling of input modules not supporting new input instances If they did not support this, accidently the output module part of the module union was written, leading to unpredictable results. Note: all core modules do support this interface, but some contributed or very old ones do not. - bugfix: double-free when ruleset() parser parameters were used While unlikely, this could cause stability issues even after the config phase. - rsyslog 8.3.3 [v8-devel] 2014-06-26 - unify input object naming imudp now supports "name" paramter, as other inputs do. "inputname" has been deprecated, but can still be used. Same applies to "appendport" subparamter". Thanks to "Nick Syslog" for the suggestion. - made the missing (contributed) modules build under v8 [import from 8.2.2] Modules: * mmrfc5424addhmac omrabbitmq omgssapi omhdfs omzmq3 - added a cleanup process (janitor); permits to close omfile files after a timeout - make omgssapi build under v8.3 [import vom v8.2] note that we could do this to the stable, because there is NO regression chance at all: only omgssapi was changed, and this module did NOT work previously. - removed obsolete --disable-fsstnd configure option Thanks to Thomas D. for alerting us. Closes: https://github.com/rsyslog/rsyslog/issues/72 - rsyslog 8.3.2 [v8-devel] 2014-05-02 - new template options for date extraction: - year - month - day - wday - hour - minute - second - tzoffshour - tzoffsmin - tzoffsdirection - wdayname For string templates, these are property options and they are prefixed with "date-" (e.g. "date-year", "date-month", ...) see also: https://github.com/rsyslog/rsyslog/issues/65 - bugfix: mmexternal remove framing char before processing JSON reply This did not have any real bad effects, but caused unnecessary processing, as empty replies were not properly detected. Otherwise, the bug was not noticible from the user's PoV. - bugfix: mmexternal segfault due to invalid free in non-json input mode closes: https://github.com/rsyslog/rsyslog/issues/70 - bugfix: mmexternal segfault when external plugin sent invalid reply ... or no reply at all. This happened if the reply was imporper JSON. Now, we emit an error message in those cases. see also: https://github.com/rsyslog/rsyslog/issues/69 - bugfix: mmexternal did potentially pass incomplete data to restarted external plugin This could happen if EPIPE was returned "too late", in which case the beginning of the data could be lost. - bugfix: mmexternal did not properly process messages over 4KiB The data to be passed to the external plugin was truncated after 4KiB. see: https://github.com/rsyslog/rsyslog/issues/64 - imrelp: added support for per-listener ruleset and inputname see: https://github.com/rsyslog/rsyslog/pull/63 Thanks to bobthesecurityguy github user for the patch - rsyslog 8.3.1 [v8-devel] 2014-04-24 - external message modification interface now support modifying message PRI - "jsonmesg" property will include uuid only if one was previously generated This is primarily a performance optimization. Whenever the message uuid is gotten, it is generated when not already present. As we used the regular setter, this means that always the uuid was generated, which is quite time-consuming. This has now been changed so that it only is generated if it already exists. That also matches more closly the semantics, as "jsonmesg" should not make modifications to the message. Note that the same applies to "fulljson" passing mode for external plugins. - added plugin to rewrite message facility and/or severity Name: fac-sever-rewrite.py - permits to build against json-c 0.12 Unfortunately, json-c had an ABI breakage, so this is necessary. Note that - rsyslogs prior to 0.12 had security issues (CVE-2013-6370, CVE-2013-6371) and so it is desirable to link against the new - rsyslog. Thanks to Thomas D. for the patch. Note that at least some distros have fixed the security issue in older - rsyslogs of json-c, so this seems to apply mostly when building from sources. - bugfix: using UUID property could cause segfault - bugfix/mmexternal: memory leak - bugfix: memory leak when using "jsonmesg" property - bugfix: mmutf8fix did not detect two invalid sequences Thanks to Axel Rau for the patch. - bugfix: build problems with lexer.l on some platforms For some reason, the strdup() prototype and others are missing. I admit that I don't know why, as this happens only in 8.3.0+ and there is no indication of changes to the affected files. In any case, we need to fix this, and the current solution works at least as an interim one. - rsyslog 8.3.0 [v8-devel] 2014-04-10 - new plugin for anonymizing credit card numbers Thanks to Peter Slavov for providing the code. - external message modification modules are now supported They are bound via the new native module "mmexternal". Also, a sample skeleton for an external python message modification module has been added. - new $jsonmesg property with JSON representation of whole message object closes: https://github.com/rsyslog/rsyslog/issues/19 - improved error message for invalid field extraction in string template see also: http://kb.monitorware.com/problem-with-field-based-extraction-t12299.html - fix build problems on Solaris - NOTE: a json-c API that we begun to use requires the compiler to be in c99 mode. By default, we select it automatically. If you modify this and use gcc, be sure to include "-std=c99" in your compiler flags. This seems to be necessary only for older - rsyslogs of gcc. - rsyslog 8.2.3 [v8-stable] 2014-??-?? - bugfix: ommysql: handle/mem leak upon termination of worker thread This could become bad if the (instance) worker threads are often started and terminated. But it takes quite a while to show effect. - added documentation tarball and also install the html documentation new subpackage rsyslog-doc - drop rsyslog-pid-file.patch: patch is included in update - added rsyslog-8.4.0_implicit_declaration.patch: include sys/time.h for gettimeofday- Preliminary AppArmor support. Since those profiles need to be tested properly they'll live in /etc/apparmor/profiles/extras. - Added rsyslog-pid-file.patch to fix a regression that causes the pid file to be created in /etc- rsyslog 8.2.2 [v8-stable] * made contributed modules build under v8 - add mmrfc5424addhmac, was removed in upgrade to v8-stable series - fix warning about missing symlink /usr/sbin/rcrsyslog -> /usr/sbin/service- rpm: use _rundir rpm macro if defined (bnc#873857)- adjust default configuration to address warning: "rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead"- rsyslog 8.2.1 [v8-stable] * permits to build against json-c 0.12 Unfortunately, json-c had an ABI breakage, so this is necessary. Note that versions prior to 0.12 had security issues (CVE-2013-6370, CVE-2013-6371) and so it is desirable to link against the new version. Thanks to Thomas D. for the patch. Note that at least some distros have fixed the security issue in older versions of json-c, so this seems to apply mostly when building from sources. * doc is no longer shipped as part of the rsyslog tarball Instead, the rsyslog-doc project creates its own tarball. This is the result of a mailing list discussion after the 8.2.0 release with a tarball-in-tarball approach, which was disliked by almost all distro maintainers. This move also has the advantage of de-coupling the release cycles of both projects a bit (which turned out to be a bit problematic in practice). * bugfix: mmutf8fix did not detect two invalid sequences- rsyslog 8.2.0 [v8-stable] This starts a new stable branch based on 8.1.6 plus the following changes: * we now use doc from the rsyslog-doc project As such, the ./doc subtree has been removed. Instead, a cache of the rsyslog-doc project's files has been included in ./rsyslog-doc.tar.gz. Note that the exact distribution mode for the doc is still under discussion and may change in future releases. This was agreed upon on the rsyslog mailing list. For doc issues and corrections, be sure to work with the rsyslog-doc project. It is currently hosted at https://github.com/rsyslog/rsyslog-doc * add support for specifying the liblogging-stdlog channel spec new global parameter "stdlog.channelspec" * add "defaultnetstreamdrivercertfile" global variable to set a default for the certfile. * omelasticsearch: add new "usehttps" parameter for secured connections * "action resumed" message now also specifies module type which makes troubleshooting a bit easier. Note that we cannot output all the config details (like destination etc) as this would require much more elaborate code changes, which we at least do not like to do in the stable version. * add capability to override GnuTLS path in build process * better and more consistent action naming, action queues now always contain the word "queue" after the action name * bugfix: ompipe did resume itself even when it was still in error- rsyslog 7.6.4 [v7-stable] * removed obsolete --disable-fsstnd configure option * permits to build against json-c 0.12 * new omfile default module parameters: filecreatemode fileowner fileownernum filegroup filegroupnum dirowner dirownernum dirgroup dirgroupnum * bugfix: using UUID property could cause segfault * bugfix: mmutf8fix did not detect two invalid sequences- rsyslog 7.6.3 [v7-stable] * add capability to override GnuTLS path in build process * support (and require) librelp 1.2.5 * bugfix: ompipe used invalid default template * bugfix: ompipe did emit many suspension messages for /dev/xconsole- rsyslog 7.6.2 [v7.6-stable] major updates of the 7.6 series: * imrelp/omrelp now support TLS & (zip) compression * impstats is now emitting resource usage counters, can directly emit delta values and can now be bound to a ruleset * mmpstrucdata is a new module to parse RFC5424 structured data into JSON message properties * mmutf8fix is a new module to fix invalid UTF-8 sequences * mmsequence is a new module that helps with action load balancing * new defaults for main/ruleset queues to be more enterprise-like - For specific version changelogs, see * http://www.rsyslog.com/changelog-for-7-6-0-v7-stable/ * http://www.rsyslog.com/changelog-for-7-6-1-v7-stable/ * http://www.rsyslog.com/changelog-for-7-6-2-v7-stable/ - packaging changes: * drop rsyslog-7.4.6-omelasticsearch-atomic-instructions-ppc.patch committed upstream * build with rfc3195 support- rsyslog 7.4.10: - bugfix: json templates are improperly created - ompgsql bugfix: improper handling of auto-backgrounding mode - contains changes from 7.4.9: - added ProcessInternalMessages global system parameter - bugfix: imuxsock input parameters were not accepted - bugfix: potential double-free in RainerScript equal comparison - bugfix: some RainerScript Json(Variable)/string comparisons were wrong- use liblognorm0 transitional package in Factory to fix build until rsyslog is updated to support liblognorm >= 1.0.0- Added Restart=on-abort to rsyslog.service (fate#315133)- update to 7.4.8 [v7.4-stable] - rsgtutil provides better error messages on unfinished signature blocks - bugfix: guard against control characters in internal (error) messages - bugfix: immark did emit messages under kern.=info instead of syslog.=info Note that his can potentially break exisiting configurations that rely on immark sending as kern.=info.- update to 7.4.7 [v7.4-stable] [bnc#855058] - bugfix: limiting queue disk space did not work properly - bugfix: linux kernel-like ratelimiter did not work properly with all inputs (for example, it did not work with imdup). - bugfix: disk queues created files in wrong working directory - bugfix: legacy directive $ActionQueueWorkerThreads was not honored - bugfix: segfault on startup when certain script constructs are used e.g. "if not $msg ..." - bugfix: imuxsock: UseSysTimeStamp config parameter did not work correctly - bugfix: $SystemLogUseSysTimeStamp/$SystemLogUsePIDFromSystem did not work - improved checking of queue config parameters on startup - bugfix: call to ruleset with async queue did not use the queue - bugfix: if imtcp is loaded and no listeners are configured (which is uncommon), rsyslog crashes during shutdown.- Fixed to avoid rebuild rscryutil.1 rsgtutil.1 on SLE-11.- fix ppc build, add patch from upstream to fix build on platforms without atomic instructions rsyslog-7.4.6-omelasticsearch-atomic-instructions-ppc.patch- update to 7.4.6 [v7.4-stable] [bnc#848574] - bugfix: potential abort during HUP - bugfix: imtcp flowControl parameter incorrectly defaulted to "off" - now requires libestr 0.1.9 for number handling in RainerScript - bugfix: memory leak in strlen() RainerScript function - bugfix: buffer overrun if re_extract function was called for submatch 50 - bugfix: memleak in re_extract() function - bugfix: potential abort in RainerScript optimizer - bugfix: memory leak in omhiredis - bugfix: segfault if variable was assigned to non-container subtree- update to 7.4.5 [v7.4-stable] - mmanon: removed the check for specific "terminator characters" - now requires libestr 0.1.8 - omelasticsearch: add failed.httprequests stats counter - bugfix: invalid property filter was not properly disabled in ruleset - bugfix: segfault if re_extract() function was used and no match found - bugfix: potential misadressing on startup if property-filter was used - bugfix: omelasticsearch: correct failed.http stats counter - bugfix: omelasticsearch: did not correctly initialize stats counters - bugfix: omelasticsearch: failed.es counter was only maintained in bulk mode - bugfix: mmanon did not detect all IP addresses in rewrite mode - bugfix: mmanon sometimes used invalid replacement char in simple mode - bugfix: memory leak in mmnormalize - bugfix: array-based ==/!= comparisions lead to invalid results - bugfix: omprog blocked signals to executed programs - bugfix: doc: imuxsock legacy param $SystemLogSocketParseTrusted was misspelled - bugfix: imfile "facility" input parameter improperly handled - bugfix: small memory leak in imfile when $ResetConfigVariables was used - bugfix: segfault on startup if TLS was used but no CA cert set - bugfix: segfault on startup if TCP TLS was used but no cert or key set - bugfix: some more build problems with newer json-c versions - bugfix: build system: libgcrypt.h needed even if libgrcypt was disabled- update to 7.4.4 [v7.4-stable] - better error messages in GuardTime signature provider - make rsyslog use the new json-c pkgconfig file if available - bugfix: imfile parameter "persistStateInterval" was unusable due to a case typo in imfile; work-around was to use legacy config - bugfix: TLV16 flag encoding error in signature files from GT provider This fixes a problem where the TLV16 flag was improperly encoded. Unfortunately, existing files already have the bug and may not properly be processed. The fix uses constants from the GuardTime API lib to prevent such problems in the future. - bugfix: slightly malformed SMTP handling in ommail - bugfix: segfault in omprog if no template was provided (now dflt is used) - bugfix: segfault in ompipe if no template was provided (now dflt is used) - bugfix: segfault in omsnmp if no template was provided (now dflt is used) - bugfix: some omsnmp optional config params were flagged as mandatory - bugfix: segfault in omelasticsearch when resuming queued messages after restarting Elasticsearch - bugfix: imtcp addtlframedelimiter could not be set to zero - doc bugfix: remove no-longer existing omtemplate from developer doc was specifically mentioned as a sample for creating new plugins- update to 7.4.3 [v7.4-stable] - bugfix: memory leak if disk queues were used and json data rresent - bugfix: CEE/json data was lost during disk queue operation - bugfix: potential segfault during startup on invalid config - bugfix: 100% CPU utilization when DA queue became full - bugfix: omlibdbi did not properly close connection on some errors - cosmetic bugfix: file name buffer was not freed on disk queue destruction- Update to 7.4.2 [v7.4-stable] (bnc#828140,CVE-2013-4758): - bugfix: in RFC5425 TLS, multiple wildcards in auth could cause segfault - bugfix: RainerScript object required parameters were not properly checked - this clould result to segfaults on startup if parameters were missing. - bugfix: double-free in omelasticsearch closes: http://bugzilla.adiscon.com/show_bug.cgi?id=461 a security advisory for this bug is available at: http://www.lsexperts.de/advisories/lse-2013-07-03.txt PLEASE NOTE: This issue only existed if omelasticsearch was used in a non-default configuration, where the "errorfile" parameter was specified. Without that parameter set, the bug could not be triggered. Thanks to Markus Vervier and Marius Ionescu for providing a detailled bug report. Special thanks to Markus for coordinating his security advisory with us. - bugfix: omrelp potential segfault at startup on invalid config parameters - bugfix: small memory leak when $uptime property was used - bugfix: potential segfault on rsyslog termination in imudp closes: http://bugzilla.adiscon.com/show_bug.cgi?id=456 - bugfix: lmsig_gt abort on invalid configuration parameters closes: http://bugzilla.adiscon.com/show_bug.cgi?id=448 Thanks to Risto Laanoja for the patch. - imtcp: fix typo in "listner" parameter, which is "listener" Currently, both names are accepted. - solved build problems on FreeBSD closes: http://bugzilla.adiscon.com/show_bug.cgi?id=457 closes: http://bugzilla.adiscon.com/show_bug.cgi?id=458 Thanks to Christiano for reproting and suggesting patches - solved build problems on CENTOS5- Use --enable-cached-man-pages configure option on SLES-11, where rst2man is not available and removed prebuilt man pages.- update to 7.4.1 [v7.4-stable]: - imjournal: add ratelimiting capability - bugfix imzmq3: potential segfault on startup - includes changes from 7.4.0 [v7.4-stable]: - doc bugfix: ReadMode wrong in imfile doc, two values were swapped - imjournal: no longer do periodic wakeup - bugfix: potential hang *in debug mode* on rsyslogd termination - bugfix: $template statement with multiple spaces lead to invalid tpl name - 0mq fixes - includes changes from version 7.3.15 - bugfix: problem in build system (especially when cross-compiling) - bugfix: imjournal had problem with systemd journal API change - imjournal: now obtain and include PID - bugfix: .logsig files had tlv16 indicator bit at wrong offset - bugfix: omrelp legacy config parameters set a timeout of zero which lead the legacy config to be unusable. - bugfix: segfault on startup if a disk queue was configure without file name - bugfix: invalid addressing in string class (recent regression) - packaging changes: - rebase rsyslog-unit.patch - move libee/liblognorm dependencies to mmnormalize conditional- Required version of pkgconfig(relp) is >= 1.0.3 - Requires version of libsystemd-journal is >= 197 - Notify systemd on sucessful startup of the daemon to avoid confusing behaviour such as : http://lists.opensuse.org/opensuse/2013-06/msg00603.html- Fixed SLES-11 build that does not have rst2man/python-docutils; added pre-built rscryutil.1 and rsgtutil.1 as sources because v7.3.14 does not ship them pre-built any more.- update to 7.3.14 [beta] 2013-05-06: - bugfix: some man pages were not properly installed either rscryutil or rsgtutil man was installed, but not both. Thanks to Marius Tomaschewski for the patch. - bugfix: potential segfault on startup when builtin module was specified in module() statement. Thanks to Marius Tomaschewski for reporting the bug. - bugfix: segfault due to invalid dynafile cache handling Accidently, the old-style cache size parameter was used when the dynafile cache was created in a RainerScript action. If the old-style size was lower than the one actually set, this lead to misadressing when the size was overrun, and that could lead to all kinds of “interesting things”, often in segfaults. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=440- Adopted config file to stop instead of deprecated "~" action.- Enabled log file signing module lmsig_gt using GuardTime as separate rsyslog-module-guardtime package. - Moved previously enabled log file encryption module lmcry_gcry and its utility into a separate rsyslog-module-gcrypt package.- update to 7.3.13 [beta] 2013-04-29: - added omrabbitmq module (contributed, untested) Note: this is unsupported and as such was moved immediately into the beta version. Thanks to Vaclav Tomec for providing this module. - bugfix: build problem when –enable-encryption was not selected Thanks to Michael Biebl for fixing this. - doc bugfix: omfile parameter “VeryRobustZip” was documentas as “VeryReliableZip” closes: http://bugzilla.adiscon.com/show_bug.cgi?id=437 Thanks to Thomas Doll for reporting this. - update to 7.3.12 [devel] 2013-04-25: - added doc for omelasticsearch Thanks to Radu Gheorghe for the doc contribution. - omelasticsearch: _id field support for bulk operations closes: http://bugzilla.adiscon.com/show_bug.cgi?id=392 Thanks to Jérôme Renard for the idea and patches. - max number of templates for plugin use has been increased to five - platform compatibility enhancement: solve compile issue with libgcrypt do not use GCRY_CIPHER_MODE_AESWRAP where not available fix compile on Solaris Thanks to Martin Carpenter for the patch. - bugfix: off-by-one error in handling local FQDN name (regression) A remporary buffer was allocated one byte too small. Did only affect startup, not actual operations. Came up during routine tests, and can have no effect once the engine runs. Introduced in 7.3.11. - bugfix: build problems on Solaris closes: http://bugzilla.adiscon.com/show_bug.cgi?id=436 - bugfix: block size limit was not properly honored - bugfix: potential segfault in guardtime signature provider it could segfault if an error was reported by the GuardTime API, because an invalid free could happen then - update to 7.3.11 [devel] 2013-04-23 - added support for encrypting log files (lmcry_gcry plugin) - omhiredis: added support for redis pipeline support Thanks to Brian Knox for the patch. - bugfix: $PreserveFQDN is not properly working Thanks to Louis Bouchard for the patch closes: http://bugzilla.adiscon.com/show_bug.cgi?id=426 - bugfix: imuxsock aborted due to problem in ratelimiting code Thanks to Tomas Heinrich for the patch. - bugfix: imuxsock aborted under some conditions regression from ratelimiting enhancements – this was a different one to the one Tomas Heinrich patched. - bugfix: timestamp problems in imkmsg - Enabled systemd imjournal,omjournal modules on > 12.3. - Enabled mmanon, providing anonymization support - Enabled lmcry_gcry.so, providing log file encryption support and the rscryutil utility to manage the encrypted log files. - Removed obsolete --enable-pthreads configure option.- rsyslogd.conf removed from upstream tarball, no longer install as documentation. - build requirement for libestr is >= 0.1.5- update to 7.2.7 [v7-stable] 2013-04-17: - rsyslogd startup information is now properly conveyed back to init when privileges are beging dropped. Actually, we have moved termination of the parent in front of the priv drop. So it shall work now in all cases. See code comments in commit for more details. - If forking, the parent now waits for a maximum of 60 seconds for termination by the child - improved debugging support in forked (auto-backgrounding) mode. The rsyslog debug log file is now continued to be written across the fork. - updated systemd files to match current systemd source - bugfix: failover/action suspend did not work correctly This was experienced if the retry action took more than one second to complete. For suspending, a cached timestamp was used, and if the retry took longer, that timestamp was already in the past. As a result, the action never was kept in suspended state, and as such no failover happened. The suspend functionalit now does no longer use the cached timestamp (should not have any performance implication, as action suspend occurs very infrequently). - bugfix: nested if/prifilt conditions did not work properly closes: http://bugzilla.adiscon.com/show_bug.cgi?id=415 - bugfix: script == comparison did not work properly on JSON objects [backport from 7.3 branch] - bugfix: imudp scheduling parameters did affect main thread, not imudp closes: http://bugzilla.adiscon.com/show_bug.cgi?id=409 - bugfix: imuxsock rate-limiting could not be configured via legacy conf Rate-limiting for the system socket could not be configured via legacy configuration directives. However, the new-style RainerScript config options worked. Thanks to Milan Bartos for the patch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=390 - bugfix: using group resolution could lead to endless loop Thanks to Tomas Heinrich for the patch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=310 - bugfix: $mmnormalizeuseramsg paramter was specified with wrong type Thank to Renzhong Zhang for alerting us of the problem. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=420 - bugfix: RainerScript getenv() function caused segfault when var was not found. Thanks to Philippe Muller for the patch. - bugfix: several issues in imkmsg see bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=421#c8 - bugfix: imuxsock was missing SysSock.ParseTrusted module parameter To use that functionality, legacy rsyslog.conf syntax had to be used. Also, the doc was missing information on the "ParseTrusted" set of config directives. - bugfix: parameter action.execOnlyWhenPreviousIsSuspended was accidently of integer-type. For obvious reasons, it needs to be boolean. Note that this change can break existing configurations if they circumvented the problem by using 0/1 values. - doc bugfix: rsyslog.conf man page had invalid file format info closes: http://bugzilla.adiscon.com/show_bug.cgi?id=418 - update to 7.2.6 [v7-stable] 2013-03-05: - slightly improved config parser error messages when invalid escapes happen - bugfix: include files got included in the wrong order closes: http://bugzilla.adiscon.com/show_bug.cgi?id=411 This happens if an $IncludeConfig directive was done on multiple files (e.g. the distro default of $IncludeConfig /etc/rsyslog.d/*.conf). In that case, the order of include file processing is reversed, which could lead to all sorts of problems. Thanks to Nathan Stratton Treadway for his great analysis of the problem, which made bug fixing really easy. - bugfix: omelasticsearch failed when authentication data was provided ... at least in most cases it emitted an error message: "snprintf failed when trying to build auth string" Thanks to Joerg Heinemann for alerting us. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=404 - bugfix: some property-based filter were incorrectly parsed This usually lead to a syntax error on startup and rsyslogd not actually starting up. The problem was the regex, which did not care for double quote characters to follow in the action part - unfortunately something that can frequently happen with v6+ format. An example: :programname, isequal, "as" {action(type="omfile" ...) } Here, the part :programname, isequal, "as" {action(type="omfile" was treated as the property filter, and the rest as action part. Obviously, this did not work out. Unfortunately, such situations usually resulted in very hard to understand error messages.- Fixed service file to pass $RSYSLOGD_PARAMS to rsyslogd again.- Fix systemd units to do exactly what is documented as required --> http://www.freedesktop.org/wiki/Software/systemd/syslog In particular, it must not mess with the ordering of syslog.target this is done by removing the custom unit and adapting the upstream one with openSUSE additions (rsyslog-unit.patch)- restore SELinux label when creating xconsole (bnc#812447)- Fixed rsyslog.service file to support reload (bnc#803994)- Fixed relp build requires change, which broke SLE-11 build.- update to 7.2.5 [v7-stable]: - build system cleanup - bugfix: omelasticsearch did not properly compile on some platforms due to missing libmath - bugfix: on termination, actions were incorrectly called - bugfix: very large memory consumption (and probably out of memory) when FromPos was specified in template, but ToPos not. - bugfix: timeval2syslogTime cause problems on some platforms due to invalid assumption on structure data types. - bugfix: compile errors in im3195 - bugfix: doGetFileCreateMode() had invalid validity check - bugfix: mmjsonparse errornously returned action error when no CEE cookie was present.- Enable rsyslog.service and create the syslog.service alias link in post install -- regardless of a preset config (bnc#790805). - Check the existence of /etc/init.d/syslog script before calling the restart_on_update and stop_on_removal macros to avoid errors on update. Since openSUSE 12.3, no syslog init script is shipped (bnc#790298,bnc#750478).- Update to 7.2.4 [v7-stable] with following changes: - enhance: permit RFC3339 timestamp in local log socket messages Thanks to Sebastien Ponce for the patch. - imklog: added ParseKernelTimestamp parameter (import from 5.10.2) Thanks to Marius Tomaschewski for the patch. - fix missing functionality: ruleset(){} could not specify ruleset queue The "queue.xxx" parameter set was not supported, and legacy ruleset config statements did not work (by intention). The fix introduces the "queue.xxx" parameter set. It has some regression potential, but only for the new functionality. Note that using that interface it is possible to specify duplicate queue file names, which will cause trouble. This will be solved in v7.3, because there is a too-large regression potential for the v7.2 stable branch. - imklog: added KeepKernelTimestamp parameter (import from 5.10.2) Thanks to Marius Tomaschewski for the patch. - bugfix: imklog mistakenly took kernel timestamp subseconds as nanoseconds ... actually, they are microseconds. So the fractional part of the timestamp was not properly formatted. (import from 5.10.2) Thanks to Marius Tomaschewski for the bug report and the patch idea. - bugfix: supportoctetcountedframing parameter did not work in imptcp - bugfix: modules not (yet) supporting new conf format were not properly registered. This lead to a "module not found" error message instead of the to-be-expected "module does not support new style" error message. That invalid error message could be quite misleading and actually stop people from addressing the real problem (aka "go nuts" ;)) - bugfix: template "type" parameter is mandatory (but was not) - bugfix: some message properties could be garbled due to race condition This happened only on very high volume systems, if the same message was being processed by two different actions. This was a regression caused by the new config processor, which did no longer properly enable msg locking in multithreaded cases. The bugfix is actually a refactoring of the msg locking code - we no longer do unlocked operations, as the use case for it has mostly gone away. It is potentially possible only at very low-end systems, and there the small additional overhead of doing the locking does not really hurt. Instead, the removal of that capability can actually slightly improve performance in common cases, as the code path is smaller and requires slightly less memory writes. That probably outperforms the extra locking overhead (which in the low-end case always happens in user space, without need for kernel support as we can always directly aquire the lock - there is no contention at all). - Removed imklog-kernel-timestamp-parsing (bnc#783967) patch obsoleted by this version.- fix zeromq support- fix hiredis support- enabled elastic search support (build enabled by default): - > new buildrequires curl devel - > new subpackage rsyslog-module-elasticsearch - added --enable-unlimited-select - added --enable-imttcp: - > this module is packaged in the main package as it has no new dependencies - added --enable-imdiag - > this module is packaged in the diag package - prepared adding support for hiredis, hdfs, mongodb and zeromq- Update to 7.2.3 (v7-stable) a release providing following fixes: - regression fix: rsyslogd terminated when wild-card $IncludeConfig did not find actual include files. For example, if this directive is present: $IncludeConfig /etc/rsyslog.d/*.conf and there are no *.conf files in /etc/rsyslog.d (but rsyslog.d exists), rsyslogd will emit an error message and terminate. Previous (and expected) behaviour is that an empty file set is no problem. HOWEVER, if the directory itself does not exist, this is flagged as an error and will load to termination (no startup). Unfortunately, this is often the case by default in many distros, so this actually prevents rsyslog startup. - doc improvements - enabled to build without libuuid, at loss of uuid functionality this enables smoother builds on older systems that do not support libuuid. Loss of functionality should usually not matter too much as uuid support has only recently been added and is very seldom used. - bugfix: omfwd did not properly support "template" parameter - bugfix: potential segfault when re_match() function was used Thanks to oxpa for the patch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=371 - bugfix: potential abort of imtcp on rsyslogd shutdown - bugfix: imzmq3 segfault with PULL subscription Thanks to Martin Nilsson for the patch. - bugfix: improper handling of backslash in string-type template()s - bugfix: leading quote (") in string-type template() lead to thight loop on startup - bugfix: no error msg on invalid field option in legacy/string template - bugfix: potential segfault due to invalid param handling in comparisons This could happen in RainerScript comparisons (like contains); in some cases an unitialized variable was accessed, which could lead to an invalid free and in turn to a segfault. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=372 Thanks to Georgi Georgiev for reporting this bug and his great help in solving it. - bugfix: no error msg on unreadable $IncludeConfig path - bugfix: $IncludeConfig did not correctly process directories closes: http://bugzilla.adiscon.com/show_bug.cgi?id=376 The testbench was also enhanced to check for these cases. Thanks to Georgi Georgiev for the bug report. - bugfix: make rsyslog compile on kfreebsd again closes: http://bugzilla.adiscon.com/show_bug.cgi?id=380 Thanks to Guillem Jover for the patch. - bugfix: garbled message if field name was used with jsonf property option The length for the field name was invalidly computed, resulting in either truncated field names or including extra random data. If the random data contained NULs, the rest of the message became unreadable. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=374 - bugfix: potential segfault at startup with property-based filter If the property name was followed by a space before the comma, rsyslogd aborted on startup. Note that no segfault could happen if the initial startup went well (this was a problem with the config parser). closes: http://bugzilla.adiscon.com/show_bug.cgi?id=381 - bugfix: imfile discarded some file parts File lines that were incomplete (LF missing) *at the time imfile polled the file* were partially discarded. That part of the line that was read without the LF was discarded, and the rest of the line was submitted in the next polling cycle. This is now changed so that the partial content is saved until the complete line is read. Note that the patch affects only read mode 0. Thanks to Milan Bartos for providing the base idea for the solution. - Merged also fixes for unreliable kernel timestamp regression (bnc#783967), which will be picked up in a later v7-stable release: - imklog: added $klogParseKernelTimestamp option (default off), wich reverts to the 5.8.x behavior to use receive time for the kernel messages instead to try parse and convert the kernel timestamp, what is not reliable on some hardware (intel i7/Xeon). - imklog: added $klogKeepKernelTimestamp option (default off), causing to not remove the kernel timestamp from the message after a successful conversion. - imklog: fixed a conversion bug causing a <1sec incorrectness of the message time when the kernel timestamp is parsed. - Removed {} arround RSYSLOG_PARAMS variable in service file. systemd seems sometimes to not like it any more (bnc#788330).- Require syslog-service >= 2.0 on 12.3, otherwise < 2.0, which contain the /etc/init.d/syslog init script.- imuxsock: do not log EAGAIN in nonblocking recvfrom (bnc#734672)- Removed handling of the -c option which is obsolete in rsyslog-7.x. - Fixed build requires / deps to work on 12.x and SLE-11-SP2. - Initialized RSYSLOG_PARAMS env variable in service file. - Marked additional log socket config as ghost.- Readded things removed in previous change, that is compat version and params variable use, generation of additional (chroot) log sockets include file, xconsole handling in rsyslog.service. - Fixed liblognorm conditional build flag dependencies, removed all suse version dependencies. - Changed to install in /usr/sbin, compatibility link in /sbin. - Added klogd to build conflicts to resolve build service deps- Enabled rsyslog own systemd service file. This to resolve the current issue with a non starting system logger with systemd 185. (see also bnc#788330)- Update to 7.2.1 (v7-stable), a pure bug-fixing release: - bugfix: ruleset()-object did only support a single statement - added -D rsyslogd option to enable config parser debug mode - improved syntax error messages by outputting the error token - the rsyslog core now suspeneds actions after 10 failures in a row. This was former the case after 1,000 failures and could cause rsyslog to be spammed/ressources misused. See the v6 compatibility doc for more details. - ommongodb rate-limits error messages to prevent spamming the syslog closes (for v7.2): http://bugzilla.adiscon.com/show_bug.cgi?id=366 - Enabled compilation of kmsg, the kernel’s new structured logging system modile, mmaudit the message modification module supporting Linux audit format and mmjsonparse providing the cee-enhanced syslog format support message modification module.- Update to 7.2.0 (v7-stable) a full structured-logging/CEE enabled version which provides following features compared to v5-stable: * greatly improved configuration language – the new language is much more intuitive than the legacy format. It will also prevent some typical mistakes simply be not permitting these invalid constructs. Note that legacy format is still fully supported (and you can of course do the same mistakes if you use legacy format). * greatly improved execution engine – with nested if/then/else constructs as well as the capability to modify variables during processing. * full support for structured logging and project lumberjack/CEE. this includes everything from being able to create, interpret and handle JSON-based structured log messages, including the ability to normalize legacy text log messages. * more plugins – like support for MongoDB, HDFS, and ElasticSearch as well as for the kernel’s new structured logging system. * higher performance – many optimizations all over the code, like 5 to 10 times faster execution time for script-based filters, enhanced multithreaded TCP input plugin, DNS cache and many more.- Fix build with new systemd location.- Use RFC-5424 conform log format with RFC-3339 high-precision timestamps by default, removed obsolete rsyslog.early.conf.- prevent installation with other providers of syslog (bnc#780608)- Changed default /etc/rsyslog.conf we install to not use multiple facilities with the same priority pattern in one statement using the comma operator. This started to cause a start failure with rsyslog-6.4.x (bnc#780607) and seems to be a bug in rsyslog. Upstream report http://bugzilla.adiscon.com/show_bug.cgi?id=358, switched to use alternative syntax using semicolon separator.- update to 6.4.2 [V6-STABLE] 2012-09-20: - bugfix: potential abort, if action queue could not be properly started - bugfix: remove invalid socket option call from imuxsock - bugfix: missing support for escape sequences in RainerScript - bugfix: config validation run did not always return correct return state- add rsyslog-6.4.1-CheckConnection-no-return-in-nonvoid-function.patch to fix rsyslog no-return-in-nonvoid-function netstrm.c:258 in CheckConnection()- Update to 6.4.1 [V6-STABLE] 2012-09-06: - bugfix: multiple main queues with same queue file name were not detected. This lead to queue file corruption. While the root cause is a config error, it is a bug that this important and hard to find config error was not detected by rsyslog. - bugfix: “jsonf” property replacer option did generate invalid JSON in JSON, we have “fieldname”:”value”, but the option emitted “fieldname”=”value”. Interestingly, this was accepted by a couple of sinks, most importantly elasticsearch. Now the correct format is emitted, which causes a remote chance that some things that relied on the wrong format will break. Thanks to Miloslav Trmač for the patch - change $!all-json did emit an empty (thus non-JSON) string if no libee data was present. It now emits {} and thus valid JSON. There is a small risk that this may break some things that relied on the previous inconsistency. Thanks to Miloslav Trmač for the patch - bugfix: omusrsmsg incorrect return state & config warning handling. During config file processing, Omusrmsg often incorrectly returned a warning status, even when no warning was present (caused by uninitialized variable). Also, the core handled warning messages incorrectly, and treated them as errors. As a result, omusrmsg (most often) could not properly be loaded. Note that this only occurs with legacy config action syntax. This was a regression caused by an incorrect merge in to the 6.3.x codebase. Thanks to Stefano Mason for alerting us of this bug. - bugfix: Fixed TCP CheckConnection handling in omfwd.c. Interface needed to be changed in lower stream classes. Syslog TCP Sending is now resumed properly. Unfixed, that lead to non-detection of downstate of remote hosts.- License is (GPL-3.0+ and Apache-2.0), [bnc#778591] - The template subpackage was never published, remove obsoletes- update to 6.4.0 [BETA] 2012-08-20 This is the first version of the 6.4.0 stable branch. http://www.rsyslog.com/changelog/ - add rsyslog-6.3.11-glblCheckCnf-no-return-in-nonvoid-function.patch to fix compiler warning - rsyslog-6.2.2-link-libestr.patch no longer required - template functionality was removed upstream- add support for mmnormalize (via liblognorm) and template modules- update to 6.2.2 [V6-stable] 2012-06-13 http://www.rsyslog.com/changelog-for-6-2-2-v6-stable/ - add rsyslog-6.2.2-link-libestr.patch to correctly link against libestr- updated to 5.8.12 [V5-stable] 2012-06-06 - add small delay (50ms) after sending shutdown message - support for resolving huge groups - bugfix: delayble source could block action queue, even if there was - bugfix: disk queue was not persisted on shutdown, regression of fix to - bugfix/omudpspoof: problems, including abort, happend when run on - bugfix: if debug message could end up in log file when forking - bugfix/tcpflood: sending small test files did not work correctly - bugfix: potential hang due to mutex deadlock - bugfix: property PROCID empty instead of proper nilvalue if not present- Updated to 5.8.11 [V5-stable] 2012-05-03: - bugfix: ommysql did not properly init/exit the mysql runtime library this could lead to segfaults. Triggering condition: multiple action instances using ommysql. Thanks to Tomas Heinrich for reporting this problem and providing an initial patch (which my solution is based on, I need to add more code to clean the mess up). - bugfix: rsyslog did not terminate when delayable inputs were blocked due to unvailable sources. Fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=299 Thanks to Marcin M for bringing up this problem and Andre Lorbach for helping to reproduce and fix it. - bugfix: active input in “light delay state” could block rsyslog termination, at least for prolonged period of time - bugfix: imptcp input name could not be set. Config directive was accepted, but had no effect bugfix: assigned ruleset was lost when using disk queues This looked quite hard to diagnose for disk-assisted queues, as the pure memory part worked well, but ruleset info was lost for messages stored inside the disk queue. - bugfix: hostname was not requeried on HUP Thanks to Per Jessen for reporting this bug and Marius Tomaschewski for his help in testing the fix. - bugfix: inside queue.c, some thread cancel states were not correctly reset. While this is a bug, we assume it did have no practical effect because the reset as it was done was set to the state the code actually had at this point. But better fix this… - Removed obsolete requery hostname patch- Added upstream patchset to requery hostname on HUP (bnc#755857) - Removed obsolete rsyslog-5.8.7-systemd-log-socket.patch - Updated to 5.8.10 [V5-stable] 2012-04-05: - bugfix: segfault on startup if $actionqueuefilename was missing for disk queue config. Thanks to Tomas Heinrich for the patch. - bugfix: segfault if disk-queue was started up with old queue file Thanks to Tomas Heinrich for the patch. - bugfix: memory leak in array passing output module mode by 5.8.9 [V5-stable] 2012-03-15: - added tool to recover disk queue if .qi file is missing (recover_qi.pl) Thanks to Kaiwang Chen for contributing this tool - bugfix: stopped DA queue was never processed after a restart due to a regression from statistics module. - added better doc for statsobj interface. Thanks to Kaiwang Chen for his suggestions and analysis in regard to the stats subsystem. by 5.8.8 [V5-stable] 2012-03-05: - bugfix: omprog made rsyslog abort on startup if not binary to execute was configured - bugfix: imklog invalidly computed facility and severity closes: http://bugzilla.adiscon.com/show_bug.cgi?id=313 improves interop with systemd journal- Detect if we have to use the new /run/systemd/journal/syslog socket instead of the /dev/log under newer systemd versions. Obsoletes listen.conf installed by systemd (bnc#747871). - updated to 5.8.7 [V5-stable]: - bugfix: instabilities when using RFC5424 header fields Thanks to Kaiwang Chen for the patch - bugfix: imuxsock did truncate part of received message if it did not contain a proper date. The truncation occured because we removed that part of the messages that was expected to be the date. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=295 - bugfix: potential abort after reading invalid X.509 certificate closes: http://bugzilla.adiscon.com/show_bug.cgi?id=290 Thanks to Tomas Heinrich for the patch - bugfix: stats counter were not properly initialized on creation - FQDN hostname for multihomed host was not always set to the correct name if multiple aliases existed. Thanks to Tomas Heinreich for the patch. - updated to 5.8.6 [V5-stable]: - bugfix: missing whitespace after property-based filter was not detected - bugfix: $OMFileFlushInterval period was doubled - now using correct value - bugfix: ActionQueue could malfunction due to index error Thanks to Vlad Grigorescu for the patch - bugfix: $ActionExecOnlyOnce interval did not work properly Thanks to Tomas Heinrich for the patch - bugfix: race condition when extracting program name, APPNAME, structured data and PROCID (RFC5424 fields) could lead to invalid characters e.g. in dynamic file names or during forwarding (general malfunction ofthese fields in templates, mostly under heavy load) - bugfix: imuxsock did no longer ignore message-provided timestamp, if so configured (the *default*). Lead to no longer sub-second timestamps. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=281 - bugfix: omfile returns fatal error code for things that go really wrong previously, RS_RET_RESUME was returned, which lead to a loop inside the rule engine as omfile could not really recover. - bugfix: imfile did invalid system call under some circumstances when a file that was to be monitored did not exist BUT the state file actually existed. Mostly a cosmetic issue. Root cause was incomplete error checking in stream.c; so patch may affect other code areas. - bugfix: rsyslogd -v always said 64 atomics were not present thanks to mono_matsuko for the patch - Changed /etc/rsyslog.early.conf to just include rsyslog.conf, fixed spec to use sd-daemon.[ch] from docs on 11.4 only.- Cleaned up the config files a bit, updated comments in config file, marked the /etc/rsyslog.early.conf obsolete. Note: rsyslog will be started early/before network using its normal /etc/rsyslog.conf config file (adopted scripts in syslog-service package). When any kind of remote logging is in use, then on-disk queues should be enabled. To start it after the network, please set the SYSLOG_REQUIRES_NETWORK=yes variable in /etc/sysconfig/syslog (bnc#728565).- update to 5.8.5 [V5-stable] - bugfix/security: off-by-two bug in legacy syslog parser, CVE-2011-3200 bnc#714658 - bugfix: mark message processing did not work correctly - bugfix: potential hang condition during tag emulation - bugfix: too-early string termination during tag emulation - bugfix: The NUL-Byte for the syslogtag was not copied in MsgDup (msg.c) - bugfix: fixed incorrect state handling for Discard Action (transactions) Note: This caused all messages in a batch to be set to COMMITTED, even if they were discarded.- Adopted to require new syslog-service package on 12.x, that provides the /etc/init.d/syslog LSB init script and systemd syslog.service service file. Removed rsyslog.service file installation from spec file. (fate#311316).- Update to 5.8.4 [V5-stable] - bugfix: potential misadressing in property replacer - bugfix: memcpy overflow can occur in allowed sender checkig if a name is resolved to IPv4-mapped-on-IPv6 address Found by Ismail Dönmez at suse - bugfix: potential misadressing in property replacer - bugfix: MSGID corruption in RFC5424 parser under some circumstances closes: http://bugzilla.adiscon.com/show_bug.cgi?id=275 - remove rsyslog-5.8.0-memcpy.patch: applied upstream - fix build for older distros: only buildrequire systemd-devel for newer than 11.4, use systemd for the others- Fix build with new gnutls- Require systemd-devel to follow package split.- drop modules imtemplate and omtemplate, the 2 modules are base templates for people who want to develop their own modules.- enabled a few more modules which dont pull extra dependencies: impstats, pmcisconames, pmaixforwardedfrom, pmsnare, pmrfc3164sd, omruleset, mmsnmptrapd- guard the file list entry for rsyslog.service with if {with systemd}. Please keep the package working on older distros.- upstream asked to change the syntax in the default config files to the new syntax: old: *.* * # (write to all) new: *.* :omusrmsg:* old: *.* $channel new: *.* :omfile:$channel from what i can see we are only affected with: old: *.emerg * new: *.emerg :omusrmsg:*- Updated to 5.8.3 [V5-stable] - systemd support: set stdout/stderr to null - thx to Lennart for the patch - added support for the ":omusrmsg:" syntax in configuring user messages - added support for the ":omfile:" syntax in configuring user messages Note: previous outchannel syntax will generate a warning message. This may be surprising to some users, but it is quite urgent to alert them of the new syntax as v6 can no longer support the previous one.- Updated to 5.8.2 [V5-stable] (bnc#701282) a maintenance release, containing only stability fixes: - bugfix: problems in failover action handling closes: http://bugzilla.adiscon.com/show_bug.cgi?id=270 closes: http://bugzilla.adiscon.com/show_bug.cgi?id=254 - bugfix: mutex was invalidly left unlocked during action processing At least one case where this can occur is during thread shutdown, which may be initiated by lower activity. In most cases, this is quite unlikely to happen. However, if it does, data structures may be corrupted which could lead to fatal failure and segfault. I detected this via a testbench test, not a user report. But I assume that some users may have had unreproducable aborts that were cause by this bug. - bugfix: memory leak in imtcp & subsystems under some circumstances This leak is tied to error conditions which lead to incorrect cleanup of some data structures. [backport from v6] - bugfix/improvement:$WorkDirectory now gracefully handles trailing slashes- Add systemd service file back (bnc#696963).- Removed touch of obsolete /var/log/boot.log from spec post.- update to 5.8.1 - bugfix: invalid processing in QUEUE_FULL condition If the the multi-submit interface was used and a QUEUE_FULL condition occured, the failed message was properly destructed. However, the rest of the input batch, if it existed, was not processed. So this lead to potential loss of messages and a memory leak. The potential loss of messages was IMHO minor, because they would have been dropped in most cases due to the queue remaining full, but very few lucky ones from the batch may have made it. Anyhow, this has now been changed so that the rest of the batch is properly tried to be enqueued and, if not possible, destructed. - new module mmsnmptrapd, a sample message modification module This can be useful to reformat snmptrapd messages and also serves as a sample for how to write message modification modules using the output module interface. Note that we introduced this new functionality directly into the stable release, as it does not modify the core and as such cannot have any side-effects if it is not used (and thus the risk is solely on users requiring that functionality). - bugfix: rate-limiting inside imuxsock did not work 100% correct reason was that a global config variable was invalidly accessed where a listener variable should have been used. Also performance-improved the case when rate limiting is turned off (this is a very unintrusive change, thus done directly to the stable version). - bugfix: $myhostname not available in RainerScript (and no error message) closes: http://bugzilla.adiscon.com/show_bug.cgi?id=233 - bugfix: memory and file descriptor leak in stream processing Leaks could occur under some circumstances if the file stream handler errored out during the open call. Among others, this could cause very big memory leaks if there were a problem with unreadable disk queue files. In regard to the memory leak, this closes: http://bugzilla.adiscon.com/show_bug.cgi?id=256 - bugfix: doc for impstats had wrong config statements also, config statements were named a bit inconsistent, resolved that problem by introducing an alias and only documenting the consistent statements Thanks to Marcin for bringing up this problem. - bugfix: IPv6-address could not be specified in omrelp this was due to improper parsing of ":" closes: http://bugzilla.adiscon.com/show_bug.cgi?id=250 - bugfix: TCP connection invalidly aborted when messages needed to be discarded (due to QUEUE_FULL or similar problem) - bugfix: $LocalHostName was not honored under all circumstances closes: http://bugzilla.adiscon.com/show_bug.cgi?id=258 - bugfix(minor): improper template function call in syslogd.c- Add rsyslog-5.6.5-memcpy.patch: fix overflowing memcpy call in runtime/net.c- move most of the additional requirements and subpackages into conditionals so we can switch them on and off by more easily.- Dropped obsolete rsyslog-systemd-integration.bnc656104.diff- dont ship the systemd service file for now.- update to 5.8.0 (v5-tsable) This is the new v5-stable branch, importing all feature from the 5.7.x versions. To see what has changed in regard to the previous v5-stable, check the entries for 5.7.x in /usr/share/doc/packages/rsyslog/ChangeLog. - bugfix: race condition in deferred name resolution closes: http://bugzilla.adiscon.com/show_bug.cgi?id=238 Special thanks to Marcin for his persistence in helping to solve this bug. - bugfix: DA queue was never shutdown once it was started closes: http://bugzilla.adiscon.com/show_bug.cgi?id=241 - dropped patch rsyslog-deferred-dns-query-race.diff included in the release - refreshed rsyslog-systemd-integration.bnc656104.diff: most of the patch went upstream just a small chunk left - fixed the with_dbi conditional, it was using the build_with_relp. - added a new conditional with_systemd and moved all the systemd specific things from suse_version >= 1140 to the with_systemd conditional. the patch line in the preamble should be unconditional.- bugfix: race condition in deferred name resolution (id=238) from v5.8.0 candidate.- Updated to 5.6.5 (v5-stable) with following bugfixes: * bugfix: failover did not work correctly if repeated msg reduction was on. affected directive: $ActionExecOnlyWhenPreviousIsSuspended on * bugfix: omlibdbi did not use password from rsyslog.conf closes: http://bugzilla.adiscon.com/show_bug.cgi?id=203 * bugfix(kind of): tell users that config graph can currently not be generated closes: http://bugzilla.adiscon.com/show_bug.cgi?id=232 * bugfix: discard action did not work under some circumstances fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=217 (bnc#676041) * bugfix: potential abort condition when $RepeatedMsgReduction were set to on as well as potentially in a number of other places where MsgDup() was used. This only happened when the imudp input module was used and it depended on name resolution not yet had taken place. (bnc#679030) * bugfix: fixed a memory leak and potential abort condition this could happen if multiple rulesets were used and some output batches contained messages belonging to more than one ruleset. fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=226 fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=218 * bugfix: memory leak when $RepeatedMsgReduction on was used bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=225 (bnc#681568) - Merged systemd socket activation support- update to 5.6.3 (v5-stable) with following bugfixes (digest): * action processor released mememory too early, resulting in potential issue in retry cases (very unlikely). * batch processing flagged invalid message as "bad" under some circumstances * unitialized variable could cause issues under extreme conditions plus some minor nits. * batches which had actions in error were not properly retried in all cases * imfile did duplicate messages under some circumstances - enabled plain tcp input, unix socket output, last message parser and the libdbi module as separate package. - disabled systemd patch for openSUSE <= 11.3- Improved systemd socket activation support to allow multiple unix sockets and activation in forking mode (bnc#656197).- update to 5.6.2 (v5-stable) with following bugfixes: * compile failed on systems without epoll_create1() Thanks to David Hill for providing a fix. * atomic increment for msg object may not work correct on all platforms. Thanks to Chris Metcalf for the patch * replacements for atomic operations for non-int sized types had problems. At least one instance of that problem could potentially lead to abort (inside omfile). - Increased mark frequency in rsyslog.conf to 1 hour - Enabled duplicate message reduction in rsyslog.conf to catch at least buggy programs running amok and writting same message zillion times until the disk gets out of space (bnc#656197). - Merged rsyslog-systemd-integration.bnc656104.diff (fuzz=0).- update to 5.6.1 This release addresses a TLS bug, that has been bothering a lot of users lately. It stops rsyslog from looping, thus disabling functionality and bearing the risk of unresponsiveness of the whole system. Other issues have been fixed for imptcp, failing testbench, segfault on empty templates and failed compile. For more detailed information, please review the ChangeLog and http://bugzilla.adiscon.com/show_bug.cgi?id=194, http://bugzilla.adiscon.com/show_bug.cgi?id=204, http://bugzilla.adiscon.com/show_bug.cgi?id=206. - applied systemd integration base patch (without the service and socket unit files, because we'll use same for all syslog damons) extracted from git master (bnc#656104).- build with libnet-devel on 11.4- update to 5.6.0 This release brings all changes and enhancements of the 5.5.x series to the v5-stable branch. - bugfix: a couple of problems that imfile had on some platforms, namely Ubuntu (not their fault, but occured there) - bugfix: imfile utilizes 32 bit to track offset. Most importantly, this problem can not experienced on Fedora 64 bit OS (which has 64 bit long's!) - removed obsolete patch - xconsole-pipe-loop - rpmlint - name-repeated-in-summary C Rsyslog- Added $klogConsoleLogLevel 1 to the config, to use same default [KERNEL_LOGLEVEL in /etc/sysconfig/syslog] as klogd (bnc#593699). - Improved filter to discard iptables msgs higher err on console, changed to set default file template instead per file, removed duplicate filters (bnc#593699).- Applied fix to avoid a tight send-retry loop in case there is nobody receiving the messages sent to the xconsole pipe (bnc#597293, http://bugzilla.adiscon.com/show_bug.cgi?id=186). - Disabled relp support for < 11.3 (librelp is new) - Fixed to create /var/run/rsyslog in post-install (rpmlint)- dropped install_all_modules_in_lib conditional and all related code - new subpackages - enable RELP support. new depdendency librelp - enable diagnotic tools. - enable UDP spoof support. new dependency libnet - moved module paths to 2 variables defined on top of the spec- Updated to rsyslog version 5.4.0 (v5-stable). This version begins a new stable series based on the 5.3.x series, which has been proven rather well in practice. The new 5.4.0 contains fixes for all known problems. See ChangeLog file for a detailed history. The main new feature is speed: several optimizations were done, including support for epoll in tcp listeners. - Added new lmzlibw.so and omruleset.so to the file list. - Recompressed original tar.gz source archive using bzip2.- Added read-only RSYSLOGD_NATIVE_VERSION sysconfig/syslog variable, that is set to the native mode version number for the -c parameter while every installation and used in the /etc/init.d/syslog script, except the user overrides this default in RSYSLOGD_COMPAT_VERSION.- Updated to rsyslog version 4.4.1 (v4-stable), a bug-fixing release, providing some important fixes for issues that have only been detected after the beta phase. Some of them are serious (like a segfault when UDP messageforwarding is activated), so users of 4.4.0 are urged to upgrade to this release. Changelog for 4.4.1: * features requiring Java are automatically disabled if Java is not present (thanks to Michael Biebl for his help!) * bugfix: invalid double-quoted PRI, among others in outgoing messages. This causes grief with all receivers. Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=147 * bugfix: Java testing tools were required, even if testbench was disabled. This resulted in build errors if no Java was present on the build system, even though none of the selected option actually required Java. (I forgot to backport a similar fix to newer releases). * bugfix (backport): omfwd segfault. Note that the orginal (higher version) patch states this happens only when debugging mode is turned on. That statement is wrong: if debug mode is turned off, the message is not being emitted, but the division by zero in the actual parameters still happens. - Removed jave2-devel-packages from build requires again- Updated to rsyslog version 4.4.0, the actual stable 4.4.x series. It provides several bugfixes, performance improvements and new features: It adds generic network stream server for syslog, the capability to rebind the send socket of the UDP output section, allows multiple tcp listeners, multiple recipients in ommail, new plugins as omprog, improved documentation and testbench with a config switch. Please review ChangeLog file for details. - Removed obsolete moddirs patch (included in 4.4.0) - Added java2-devel-packages to BuildRequires (for test suite) - Enabled omprog and omtemplate plugins, added them and the lmstrmsrv plugin to the base-plugins file list.- Improved config file comments about usage of additional modules provided in separate rsyslog-module packages. - Enabled GnuTLS (syslog-transport-tls) support module.- Updated to rsyslog 3.20.6 [v3-stable]/bin/sh/bin/sh/bin/sh/bin/shlamb71 1561119185  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF8.24.0-2.16.18.24.0-2.16.18.24.0-2.16.1 rsyslog.confrsyslog.dremote.confrsyslogrsyslogadditional-log-sockets.confrsyslogdrsyslog.servicersyslogim3195.soimfile.soimjournal.soimklog.soimkmsg.soimmark.soimpstats.soimptcp.soimtcp.soimudp.soimuxsock.solmnet.solmnetstrms.solmnsd_ptcp.solmregexp.solmstrmsrv.solmtcpclt.solmtcpsrv.solmzlibw.sommanon.sommcount.sommexternal.sommfields.sommpstrucdata.sommrfc5424addhmac.sommrm1stspace.sommsequence.sommutf8fix.soomjournal.soommail.soomprog.soomruleset.soomstdout.soomtesting.soomuxsock.sopmaixforwardedfrom.sopmciscoios.sopmcisconames.sopmlastmsg.sopmnull.sopmpanngfw.sopmsnare.sorcrsyslogrsyslog-service-preparersyslogdapparmorextra-profilesrsyslog.dusr.sbin.rsyslogdrsyslogAUTHORSCOPYINGCOPYING.ASL20COPYING.LESSERChangeLogREADMErsyslog.conf.5.gzrsyslogd.8.gzsysconfig.syslog-rsyslogrsyslog/etc//etc/rsyslog.d//etc/sysconfig/SuSEfirewall2.d/services//run//run/rsyslog//sbin//usr/lib/systemd/system//usr/lib64//usr/lib64/rsyslog//usr/sbin//usr/share//usr/share/apparmor//usr/share/apparmor/extra-profiles//usr/share/doc/packages//usr/share/doc/packages/rsyslog//usr/share/man/man5//usr/share/man/man8//var/adm/fillup-templates//var/spool/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:10482/openSUSE_Leap_42.3_Update/b6c31b78523cd55438738124484e0833-rsyslog.openSUSE_Leap_42.3_Updatedrpmlzma5x86_64-suse-linux  !"#$%&'()*+,-./01234ASCII textdirectoryemptyELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3eec1a0b54fe5537dc40d7ec6761d6f9d284ce2b, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=8d64d4520e3733337dfd7f73385105494c251a21, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0763cdc2cf7b405000026db54db1f27888b1dc57, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0774bcc1dee5afba837b69c9288bdd7bad6e6e06, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=28a884d9b0fcc16617cbc3689bd310ade9344575, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=7e8712126b79ab12100a8f676ba1cbcef206a6fd, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=5910c6c82c780b9ebb264e21caf64e8821eec79d, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4d5c166f6f904ed24d3a47f36ea6c43089f75472, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=1ea4b2f42e156d30f1e8fdae48a48a55b845c877, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=64725ae014ea60c218ad9878f41c73f82092e77f, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d8ce92f05c02f2fdfcc249c996e3d1f169ccd861, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a0f500d3ca541290e3e69c3380b7273bf4f0761a, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=394263e935f6fe8e65a0852ffeb35494ad11827e, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6086187af65db8c4e8659f3923902ddf466399e0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=bedddb34001ad83591ef605016a1d3b6087f6699, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6adb2a0368f26cd22e39b1226569451dd73186d7, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3fffd044af553f4ae83e66ea52b789ad60db6e22, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0f56d7abcb4fbd07f23f783018466ffad55a6284, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a270fedeb5ed76bcd11be8aa8da85597599db63a, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=5a0af17053f4cd6493173faea8b8823d09dd76a6, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=5bcdd474bd7553c29ec84553cf27cc74f93bc2bc, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=34357c0e0448d0e05c2b18e10252ec7ba1720672, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=1686031427ec0094b3805bb0151d91f7640f9b28, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=7bac50ca197880ce6c1a0b35bb3086f6b8da0585, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4c025eb67037c296a4f985288054112f59495783, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d21ad3af5a9813359aaff7816efbe5dee1b38798, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4588b2bbf82901637dc95b8daced2792be6a7b64, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d324e025202a1985681867374479851bc8ab3b57, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6e9c07c432f0a79a37240cc3b3800104eb041d12, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6e720c926eaa301f678a77992e9a05e00713e923, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=19b82262efd47350733f3a02b62283bf726d2d60, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=301eed440dc9a9d075c218434513652adef13660, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=b3489a1dfe6006d897d7aa3796c4850fd80d68c9, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=814af302bc97bc23c19a0c469a56bf926654c802, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a5f15e629839576a73b805f8c8640761cedd5669, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f2dc95416ab4e062bda716dd3b7adf68d2e4d5dd, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=e56ea8bce47aab9229f55779a9552ecf1b76671f, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6ed96500495cc9d5a8fefcc998b156a900f02970, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6ae98fe2f64801cc28232253a6ed42bf8177e250, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f5798690c420d095df0d7c5d9ea038907716018e, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3da2d01473000ea72dfd5ed1b92a692ba90e7e5a, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=14d2f932b0a15787cb25a2ce88159c0c89fddcb3, strippedBourne-Again shell script, ASCII text executableELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.0.0, BuildID[sha1]=a25dcedd4407b35be890df78831b19932ed52e4b, strippedC source, ASCII textASCII text, with very long linesUTF-8 Unicode texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)C++ source, ASCII text (gzip compressed data, max compression, from Unix) "%)25=EKPX\`fmpsvz  PRRR PR RRRRR PRR RRRRR&R%R PRRRRRR PRRRRR PRR PRRR PRRR RRRRR P RR P RR RRRRR P RR R RRRR P RR RRR P RRRR PRR RR RRR PRRR PRRR PR RRRR PRRRRRR PRR PRR PRR PRRR PRRRR PRRRR PRRRRR PRR PRR PRR PR&R RR%R PRRRR PRRRR P RR P!RRR P"RRRR P#RRRR P$RR P%RRR P&RR P'RRR P(RR P)RR P*RR RR(RR#R$RR!R RR RR RRRRR)RRR"RRR'RR RO=*?]"k%UR.kgWG$X Z~ H' Aeju|EtNt>罎㾹t*QV(V譛Ãn3HBy0A Đ#\1~5[\˙S>OX\&e~ҵ'[ e:wM%d/_ux@49+?A; =]S: NQpё߮O0;n)'G84 :mQv&H)DZ/a3m~6ohFaUE mRJ,kx6Q../6̞ 4랛K kgwA[G-zډ«¶ jimh5Q>Y!VZa?\gTpRfO81reŢZ8QXV~p}*A\U}(H1f,azY+\L%6QWmU~ * 肶ׇ#ʟP41ޫ!qgЄ\0PZx$E B=V5)2pb=*9JzBA;޶T ި1s5VC@ SbbӚte ʁR3ocPq%^*|w]%?ˊYUiyRI]p};q`?D6[Ztj&aw]pAjQ0y.+nWkǁ=:V]Q OJHƱ(py@yOQP]Lf@ݩ}hә;>ѕ,mַӴ=p`BqMM~/eIBHZnbMN!v_ Gt jQs솻^  hhN}6_b Tzi9IQוuIxg7]ab6aUOd\lQϝJq2o%Rtb1>oGKAǴQ67ƩD*B bɔ(PgcgҝcЯ=XpaukעIhQB:>8f:EȠJw0ɨFLݾQ{r!S5-5/K?F Ki iI҄Fʻ'E=ڙFo}&!˺M'`ͪc(?%U٦M{Ujh@G=MlJ̲nzi%?ܢoRH*:7/u5zqYح "<**EOS٩9JNDKUcuYg?,TOkEQ8>)Y{>1a?I4-v`]appq]Ϗ@00[xȃhKM1 &iV j\IZI,ǃҬffwK~mi?HNMZŚ꡶gK c {vݏ#6)fB 8'"Bt8Ł쵧 'XAovݤ( eiHnqjpt0`;OZ)I{^2HT/]=u6KʋEX ?4OLodj$=A yIץ/EH5^dS.G,AakZdTea_1VL)}ҞQ J 7b4̣{:e'`a+;Rta=i>1E4B1Px`ڂUV(T"8c=A # v_BTs@.q}nlDFom%Mg;)"uTb6nҩ>?ebt JF[,%R`Xk#eO*3Χ 8ׁҝ< Uݸn<_z@H$:;$/wH;)߿BXk1჻;a[3m`֊D@!]4 ' 3J BeX3{N3_Cqޙ؟ˆ̂ )b`DKD楨{ :%Ê: vNs AZm.*+8)wyM +L?oXVѱW{'#dtq9͊MBL֜FBcs _YZ@PWf{sU x*3 G.wMk=,M 䕆#C,ahӯ't \ӫQ1҄ `4OKIb.:^X/J*2_*0O4Ys޹]^|aiS~ËJ7&&?!%_w6MqT.|Z{^a8IY:z"O) B0 _h2,#YIͲ=x%sf# <ꚇJ@5s Txu@qK+3Njɐj'LgteNoSob]>EΫA-sa/ԇ S)u$3f~"^$ .<ݤ ah^Ta#yvHfvY6]ѭH>Pg^S6`"0Y#+؝\YbH3&l> {ju8;j4B8V~d;wp0iVko%_)KXޫ d7?'*%+8ez}W\K¢i@WW.́voJZMҬFO$n縦MT+ZL/6ɤ9(:^zS \kH5y bźjRGc Qa莊A/r\Ԣ]_ ~$S)][yi,YyF1ZQNA2ĩrO.:ߴwK};A̖m)S>hw`U\GRjUǺ㏯q੿)/Y-i޵1 5c;qԦbkDu'U#Y ̫b&-J5gI`#\&A3Eȩ+Z/Jd̆2LL0D\כ a>"pdy,#(Vڽ4TOd2lyB a ğZR攡2E<\4G$:-S$Dbba@s 7˽@ \bPn92N5u##&?1~dҍ^E5jo׷ 1]qq!kcR+u\>7a*?vSɆ:_yr{LRA ݗyMTo?E=51@3?['1蝙t`YfdULbSK; *)g*$ͼu܇W{IBwΘ ~ߵތ"OV04̤By:NmܵjyWյҪ%X1j5JM` %л入!ɴΰܫLQiHoy fF"a ha],up`νeF 3`Ks'ZVzLb~ÐT{LϒI{EM:< M&aFkjM۸]/ӵMo4RR` %b2HLE ?gH䠃vJ%$hP4ZcKh -h2tU ̤YUJڦ"#zjzjFtp #4ɩ>'OsUi|N%I]Ro6D}uH.j_AxڏU֒ӌW q!T@11)DH&E\ FMT[ V%>[֚?kY 3aAN d̏8)` ޢzcVJ52+RLAaG1>cBal]m[ꐥSсr]j )iK[6&fWNXB)C3cQlmf٧gK;yA>q&V:ufкy P,xJ֙d?ĭx~W'%="Qr#},bTal`n軟'k 8gx18ũU qcReitrv3b;*at7R;euqjr)G @|'nµOzo\_qZjVp֞]ԅL "n}$ɕ17ǂ~fWbXH1@ C"B/,YuƱj,D|`Jzrđ&wlD;rSJqH򕥮H͕Fk#Ub>ݿ[j@u3-t*8vg5IOI!25 Nu,B`=_o e(pf1%Z-mh ֦3} ✲y C b%>rxbt|B &û 5>,hY+ j($I{ H%q,zf>+d/To.fU!rQB$X6|ߑ ^kwng^Y$q?AFJζ2cҝ{Jj/AT;࿐ҼざfSPɰ3Am1BlkwE ?)L!tJL.aAp@-fhmj釽w l_bzTb3n$J<'MT B8Pc R[k&/Ҩ1#`:#fSo'1Wn4@0(:Qa5]wYL*ym6Tq1v.'k@h:n6j~2_qYxetWWz9LYD˺C?_u !4%!$<{i4ʩ:YOz]7nOTa=5M&pEQ/ Ňwn%5G>822͖Ms'eF~[  50x iTXh7kqduPОѹn|H~hn=$>Dt7]U0py<&XY# Jsb;PeOY{M1rCR=`- L6/yD{ܱghیkJ¬@a"`V"Hͅ;%cB8>4nQlgGu~]8 [D:?LYd2S!ZzO12t#VA2P,&9t[BĩzU@fO""z"vԉ]Pqtp' |me9 HE}cӹzhV# e"`(^ګ W^~}ZL&ߟDz;S.Y =z&rڂ6עU )el'oZ58_ڴ9ۀ0@o)1U2`QтrXRT$A+ihCQ Y%}z&~yfu c>i³F{h՘1RW.)04[{ 1DDuE^Tp6^FV yߎˆ]%EwjMPb &<軍K;V¸^d+(dkSʨx$ĵ`MC`GwGx5m4;k3)No87 `3I5EUUgz3鳍X(0ۜG2 1нiJmKSV9bkY+|;qOqP3)KsSTg]°z)YfP F3a#,c`XP_6jG۵Nlw@U 6k ٘0j_;rU2<8aİZs]Ӣ;ACWπhoIl3N І鿾_T΢X - D@K T9zjzI{RswYd@2)X~:%D=ӽT 趻d#[0Zt[XGGm\]DBdbxo7;sL%"d$q5Kq}EX^8r feMc,2/BBX7Gf0D A?Tw,MZxrbS還p>`%O=޳dZh? )(9V}]T4},Y\mETcTf0J2JeoUz*&-.:lE2E-#`wԲ'Kc:l)\$(".d?UË=N:]o8&7IWŝv_zIVISRc3.  6IuLnPFZDH#)m+%0+v0&#7=./[D:drKepHyLxt_Uk!azKt5l%%)+2 mع`&DJks,c)]B?_a @BDyyracbX;j`{.d2{&ؕd鋩Ck#ڿʉ*6ئo1lˡFx gq 6UxNiC繐OK2ռaPHE>Z:| '2|Z4=<]^yMO8G1_R;!(-0X4EɶszW?pH~c3"/D7 M|"d3$59X(t?%ZDzM$0 F4!r\j'f,4[}bw/Pc*-m n`< ^hG3 ;:2ƚ& 5M3XbJ%ZsO]V?[34|xJX7ɫʢ22)xӳ#;(:˧0*)nZ2yY \m+|xlNupi B~e-4t'UBBnݓ}5D7};\KQ9[>XZ ?/MR1 5XDƸ hQf4-{`]V3$o%2]`y( Q1y#( @< ԉ_ ;}z [b7hN[}D6 jr +b ~{])MhP4Bu7m5QUkb/.u Dy- ɋYTkgX810D\Eptx-O*!?C=:g ElRX!;$ZA,ViUUK.&z{!Ozw%is7?Qסُv1⚊8QL b]$Am2)Jɧk $<%AL 4bI1uCg{3 }f`(QDQ:3UUYg(ʜ`N)̻yQ]H-jqJ-&JV<V U߳FƃP c "QL˅@ZWqR6q_LkL ,5W:j >ة~0T@i0_ޖf/̈*6Wh銿-BB,X-0zG0 x4Jk3] zi;O-!q  .:`^\V^o^( wM1 oy^A`4ss;SijxYց'= Usn4F*ЌJK'x/'Kj0Aq,*ZHQ,X I΋EDOF. ALF-hGG~L=Z+mKA-2ꉰt6A6*J = JjɃT .X&mUB@{" DfGPl<"?;UYd;񼑯=&u_ RHRISߓX2^6hw݂W"ܣvBIc!L>˭jk˙vx*u~6g.r-%Qggዱ@=Ό2a?x}/?8 oEqG6%m!ͯ#/Yhq[.ElVκi:":d&bo%RhybSG}ƥQXqqNkV:zW{3 [$Y⏤'O$b.Ӷ :i)E<RpjrCS#i<`X+A>+l^ z~3+wRU3`4M bX'B$<OyX,m +LCFL8Ǟe6Dr qi\$/q2wnӴ5߮'K5'X6e/HV GMTIMa~eYv7Ya^׬!->j,CVG ,it<(C4\.iMR`֡R|Tصhl!x=XT},ťf 4M_- } q'=1OYD7QXO{:$V/QjXxͣ!]`(j66M_h R`RXOWT›wbFBI$O0g+$".Zp=pL2{u-{ĩQ݉=.x`Q% W1:zgvwݨKuJ̧p3Vt0?"|/YY8Kɛ2}B8F0Ufթʉ!PXZ_/9O`<89M@ufV[_4Jjz^%&a3ѡ>%qI$ؒ[a,˺[oBy'5|'+;]Gtk}exjwvVMxjzhBҷd^сS&<_|Aq&W\C*3HJ&OND-L2 V3քFTbg=*T[81pdr`DG^ µ~l!5T2 iѓo1Ai?܁I˗-KUJ^Vz'NLު*x7>kDP fwZ<IĹ׻3ˮ(n3Fc" &F|& u=d& ᮲;(VL˚di(?+\d2mm@Ím)EjFۓQ+:;< 7w"C\]xnAܡjP'{n#Gm0 3CBz?}̃uxз!"Щj3gp.>s$h'9ꈩW. @GP@PyS8cRl$rIᦿ )!01j/&?z6ES fx,U`l7J^LH+6I}{{?S35Y˄#Ȑ+3A]uGmDe.̿U}D~^;2+B^B>6C8srF[ƢA9 ާ8e+]!)h. T}*=kFЁ駧vy.Dհeg=~p9?Ui /3qVwZ )2OGT+.J{HH a:68áa\YQ?ңA];R H?` [跥 ɷA0 skѓQѳЊl9kB| IsCӶ Ea8ulY! Wu-Gv̤@9K*aW9X9Z^MOH A%㷘>@)ULk"O;82Un|6+ n:}ܚ6DpnwG_P3$b (Ɠ3q| z}4̗{Wp7(5>~O`{:aWݓ1;Bws"FfEXN_KE,h)XSPG>o[|\\GfJbʠ^2^&Kf&P(jL2h-!CM> `O?#ە. x+57 ّ< vp "H݆ aU~IŌ9 Jᔕ3L5 (Tl:,2< (Კ*t1b f&!>iD|r3 yuQZ㊺6Fɔ8Y̍7!TTw'<&z çbф<:6ueA3*$n]e?Ơ΃c01_Y?~ 0>VRc]`qTwJVϟ-hf6-6q `yf(1;S>.Nv)N{Tg(EbA]JU,U <0Wzc!^9 #O֡~gRWaJ1Ӫ[D)vW ~G2{fܛwn+ 1~8su:+L5]<1nkU?.u\iQJR`l[_qбA] }94m*KύygPg[  DSy6mk_JD.7\#.4-Z==m r5I%(b3K! `M$`mQLÚQp&%;ݷFji](ˁʟ墟OGdz.7u{S)OtCk lS΄{*s3_ _sTY#iOF&=jMVm<."#_uT&~"ʢdQg2]#A(GWvd+l)قGPgn q!{qܣ?x !C'rQ ܆#.fx=^-y,; % @02wf# [A}idnacHh&j,7KB6%!JkFM4r7cwW kGTX|iI6žѨ37ikm$ }۰BP؂~\/pdt1;{) j xX}\I&K0|sȁܪe5Mƪ6Flq*=47P,QqMǎ`_HjqĸcZ]&#sg:ՠS;˨!7 ͵'Ljy2rךқu;x2}j/qx,g9P%,iug>@vdbGYGV4\#QvLO"gV=> * &or( G߳MQU޲ZtČg0owOyMf|࿮_seQO0tf㬴^$dԈs-{͙w3K,7BLJʼn~n"v:|eG0" 'l$f8dE>_M5.-Ќ}09Xk"maYvs>XL?MTޥM"D.Mzw[X]y]h\sMA*PiRK6ImMя5h*zH>.b9܊ߝ9@Ƽ zc܉ʌG*R+(T˸!:K`zy2U@l#!٩e vSU]D40/_=Sʹ?!c\=G\$i/(4aIz['xUKŬ{b:L I{/7r<TW. ,Xb9ɷCq:sIrXtgc rj >sҤ[Ҡzi1!'$9\?"a h2sOp4@ŝ Wn0mǿt2+lÐVٛr dA$ G忨p9GA٦IFf\c ol3(`(5Wu@@U} +eAN?;u6f%Y6k-ȈN^Tҿ]{&CjZXtO|n'm!ӵrnD"j)cs˷Vev:(M J(vffGTT<!dxmhd`}n?vXTiuSrvA1@r7:ʦ>_E_~\]#E{ mlwLș̢Nj]R`Wa0UB3T>)i?xi@{UwyFh+T/Jș*pd׸QU<"IEb ~k[e–2A8~oo}Ȳei\ taf{D_}b<7 cy,^,F;=Ȳm_dk]/G=2xXT6(~|8]kM|w1WGƒ&y*/l#*xů{F26ϛurŜ jfXwxH-j&)AtSՂX W}N>$mO1k)6=t| Z+5ܕ_X ;[97WpbM))K%CNm'70~7L}!?wmQ~-e(U{a qu[Zl$!|[*+b7T Ko Ca>Ǝwۊ"O#ǙY$VM~F_><-am).Ӑ+W"zʹ/4>|QIq>~.h3feڋ=Ɓ-.)H6r3rsdmx,nƝ[~kD߇hF0{9b3w|vR_6jwQA#o=^D=!Py fC{ӫ7w?g{$GWV"3E[}'h4VZKVFXAIEsj\aDD:)9=b'`]Gr0nY+uX . aϴ2GD[?LwK],\AG'}&'u'd4"͜<lu5`b~#q2¬RǖP^$7ٝjEh{H>@[Fg}:kC ^߃w :|#}5]"}E 3I_dz6uj^&KC0˰rXƆY3Ȱt Il9CD}BR2;(򇼂(y7VFU@ F~-c8 "H|H5+aSESٓ~IpهS [()˖{'ԛ`Em$Y3KH%>!YݟK]\hxRKZΞު%ћ "@F7Qiu \k4<@>D,oƁM aYH&ZՋxU4~~&ޅҜ_oXruO|6#q⿻!{)t5xKŦgް=f wL(9Ԯ(;uij^sFDPK7=ys$UQsSr41N'=al^M컞Q8^% q%4"]j~*v̈Og eN } 9/@ѲIdO17dɳ(%(xsJ6Hxe7~.ZMYMLW\/G%Nv0?0Eg}g3sO OK9ȸ H?7O_{Z }cnSL)wbfM<Ƨ w2vZh`EǫtMk֖ܬ  KE{Nݳ*Ʒz8Oִۈm˄U٬./Glgrߎeѧ x~cZs4[sPkkE '|P1CZ؝?E%_oC"GŖ_q1WWD#f!Gfo޺̗tn\K=7$ D?O)c_;_e97YL([ى򵿒ɀ2:"0gYbb} /P 6GERto؛&vvo"b $$GdpL^*YVuZZo9< YbjS4{EV)rΎ}AwL`6UWX/&Itan㺙 Ps7MVwL#0]cq)3F>5z.{a1,ija7 3c#O 2.9s<]a_F_FEY};ǻ nFԜcLNB8zYTwZ0-]W+ Jι9H|&pr Y!U 868sM8h48 Jz7kP@*pL(P;M,LFr| 7YZ> lUm8јxVw-dɎQ3ypǮ|@[v?UG:ЫHZ1M-!ow?s +ge~#Yge S->ߕUj--q)Sٳ士$S5q -F~\P"#5"eg6WVkT데?|dT>SƏ`9o}`1EZG9,4Nuv7si-MCçE "鈞Tr߽DS}2zN CѦs*ũ{uD'UYƌɢSC  hڋ KV8c)"3TQ" kIN"K(tzِiA:pQeS}FW*N`sҋgF@TVk&~ͫ$QعmX_ɒ>E!gP~Yk<^U=2[/9 gs >lm!_uCL0P5UPJ39w5ߪpa5,m~F'DQH„&+^Wi`jQtH]"=|jT3G2ڼV0JKM2//"c!~)<^Vvl/9d]d?l}Uݹ_ʼ"$J9c+.x#ǨNZ7ÄG$dp[v\ә~Er2`>u GLaYIHx238RW>LK\5L`vA`~HWS,M3LwNKEhU{5*p iM n_w^+VD['tFȧW5#Ig*n-ƈe6bڴ+{ο\HK5Bӥ( ۠;Wٴ~=$n+`E6=B9TƟ!CVzs]ZEQfר2 ΞtJ{6!&)ameS,MjUFDDP8 + :.영]~YHɜtB㧧3>Xuy/~n2i\Nauf2,Jԃ{\'(Y6M̘8@r11㻩-5fgV3iw'哚uHJ^RU˄ #.AQ}R0+'/#UlRSX{ wԥ5y!!X0@)f369dWS_Y⌶~]NzHdFMs̎Ω) oCsD1L/Xo~/+,ܬ~wׇЖN翵7*]'7y|%6KB[xZ:ld*l#1,KЦi~@* : (:u/P&@4#> KɰD*R?;4!bq=n!- -QSxc+NrfIWe"_9vfB n -b _2a'0fV0hW6LS35MI;U{AXe"|lS&G0;8Ej|coZظZN-hN~aaM]޶q@>$g+p0e]EJej$16$M[ wx)SR"+NK(žAdžk+3>ȂAV ǫk) 2a k,SMT 1DfjG)p<1=LLr-K.19?iD^vײ}A"U }zzVfyKo~|=:UH0 iM媱򵲿-mSAO5[5d7}3˖ s1k#Tp]VX[!+uH<\aa(RV^D(-K4AY b&@3}fn+9ߡ ՖGo~Y;F"CnK2,=ջyy6ULhT,7}C+GO~t=Tv1eKk6+$zT1|܁o r39}Ķ&3 (d2 _Fn"|n.7}yvMv.#u,{vK&}:ER䱂s 5K;تC21͛2Jmރ.KUhx }X;B\/6:Ǐ/BI9n9Q\@ui|>Ir+UBɰ+f(.LyE'5S-4OiFr;5w 8?U/YU.*TgZrG;!GXԦM*ښs>{bb`NF@ii(4[}Qղz96) 9LHk< v#'aj?~ /J0g\\Hkf?=8^ 4[5D. -N"E (9Xw{b@laĶDG6i!MiŊY0~x{Tc a[Tgf*jiK"lۀFHCd$.\}—4a\%VVw %:t@vb w&7g.ɧ\ cL O=b C-ؙoڰ~\{f~|Zз=I+"i2tTBYSbȚyeSz%)T+ya^ Sܴ],%I"/uO!0p MUn/©a)b)82ƒ|RK8kX:g68+4yӫEhnJ@l;@|lufP8T,IcGhސ?[VҷʎCx;~bH<)8m$(a _訂f_}͘wIӐA9fP]祝;$^\Aa1dsEؙso604q{MuaOs!@E=oLm\d"9º kJ[ʜ^/0VB?)Khs Fr]i1h;u#ҧ?4M -y. 1݌{*[aK2>̳Q Tk&ify9hD/(h硨Ʈ؁ҌKD1,UAU=ƏA+dP{@oN}2BSg)kydSB : MY&+^?pїfG_bǿa똂<5#QSNq- %fOWNG"O+ѹ R,[UF-Dz)bcʉFIFJSAx3̜DS߲ZV,ZM&'N*+wGFYruj海qG 2.@,іJ5}.?L1ޗrSEeMXl_ rmBR_ǻ%mgXc0O^[1&LӾG ؉Z/DϑvQJ~rR.DŧX<< SR[DH;"chDE]. BL>܉֤44 3Xͷ-v-oX^PEpfU:SѪzyGͣ4RTvC9,T\l+755@ X>{vbȃkgV@,gw3@u{4x"=dZ&/(=[U#pڙ{Q#?i #1Uo`cݱÀZݩ۴?ӫ[6ZW*h5Y/L*É:6 ²DaM{aWrv~ܲy ޸T!靄Eٺ/kkT?5i -gNDE|}FWp=/qq' iycɫMؼP=&H-auXK[|+|;],6WУflq,/gCT2S$d fJ^hcLw!yS+?;;r!#DްFX…` ~=C!ES}( *[e3 cgbda\a-@' q:.˜I]Nߵ+X-t%LkDaYޣH?lBڟ΢Q;^\ߔ ,n* %$]Hlϕv)/ ! w9;f~6ܣG)t%{ .WEY\y7!E jF@ph.$[V {S"R>uQ ߊ PGBC'ݴa 38i#2BGǙuC"*]|ODOᄩ!(~iz~#JCb{匩^Rι%vg䡊nT㿣5L/fހd?AP2"ja1 %!2aͮo eeJ33%f] +BPi#.`\/2 Q)XUjRHe,+dj{F=K4bxl\Ӎ˜U(i{DZ\F߄q'zK%pn9Ida|FN؊)c'@ TcQ^Jxyb'YoxyYqU g[o$;ƃ\ p2B>US}FEb-$7 gEu']"mH{KϫJ [CH/g7\ҕJgt4 gCS'l="ӈyvmܖiv.(R\[^>. Ց|⹫9@7ߜq F9ʐê6Y KGpuٝs/1(v=X0y:àϐ(acd5cGK/ S'Ƕv򖖇ƙDĖ 4Zj}*FݩDԬeL!Dk X #S>sdPĄfԅCkur*wޘtz$ :oԖNTqF,FHXw$f^/79.)w}vyMw2)b{ l"p'NO|n\k!+/E? ΁i֛f`Z%Swo[óɂlL;asDOl)L%r |%@lP"qG~@mn)=\%ӏԴPˍV"ickjmS 78P#uDʜ˨Q6 ,x\Lh+dע=@{ fʗF]m@WMӈa۬ *PuE\+ߨh mSVbN/, .&h>4Zbô:TA~}~FquD6A%d]HXv-]N6ZxpNYqS_$pSJ>pr@zمUbP;3GΪ\tÓߑ'EZ>K"m?O*8ryM,gD=U+UFa!mÃVy,>M䙗P"1*vPV-ԜEe~((-j>BۅQ%?ab p٘im3^rGJ5 hFYqd*s$pbM1wm~TG m .0f,O믮snNE1{# hAY9 \gPQď?L9{1|_fy!:޵Dt`^>"I=-S*=*s^kP[{G<2ЦM&w%% h{tV%YDʊ=} 6 Cw@}jK =n <kwC#DxLqn4SL9Pttp"lZ 媌G$L67D2qmߙ3Lˉ{o2ƭAkOK)@1Zt{r[- $ E igCI UX*م#*hZ5Qn, qXOPj1~z搈}H?DYY+TZhU!1\ {U4uBy=Q IN6a˭.fj.$0h~&H&RXcӇfu'+SbJI9'E(-EN:*A)!r$X Lo Eyմ%5Vuc0o /#EFWݙ祥Uim^ d!1.D˝ [2Dh:qlkq(0$N} ?;]v\s gU." TSt.Ѷ5ii-i]wף+]>70Ikǡoa ȔriPufRYpp#?p2asZWP/ʸ_`z)1b#ZnBdC`dI$uleQQ \ W}wLnݔe\N fUag/8EsMWqpU=Ujh"''gp0ŮDtCm=cpAS!P: g-5isx_utt- ;.y#mN mѠ<7$U@G _2wCY@AloؾGrˇ뫕5f BBb(\@"hp^Ԫ̡_G ~I>o)Rn<Z1K=kjފxEUGDzR) Խ"aKoH4PC"ʲV8& 'd]ePǕ[) Sֻs!?=\d:a h-ۊ P.HoxK/7dz9+75vyk<=e< %> &Q+$d|ʕi/G;3]l$ 7FUy:؎'9qYj@k5kjo@R}WKuɿ01ò<79S=0M x.pI яUcp x˰093NgVV`'9eRM&30_+銧7id1Ujs\ >u4.Z=O@K5x'CmrMR98 ]ѐ?ؽ_Z)<܍ v㥀 Gm42hTY{v oZSm((ܼp-<' Xb <:j<{+H).ڵ7;][F6gZzWIE2//%\z-Roˍ^8v1a Oi/&|FCo\I"I(-A.G_Bi&7&]6V'y cZVcc9u%8!!_ʖmP`I-VhjcOa0HP?>3UQ^YeEF% ٬U< xeEX:Lv .)N85e)%Ua3 N:D~v-960$U- œl2@yWW sLhw,ڲt]";-90gKm;&qL/؉@WJLCޫsuBRR5LHx@"oAvf weuEjqyp]eS?tp`z#˨p9sںT(YvҊ9 .a:˩XjV.Q&҉EEXWN "ѨǠxrrLwCըՌYt0iH5bPK0cQ^V ~XE}&S4d14]HUsycK3bXO$wtb3W5}D-vRp]2E0X.0qvj X`@h\)}4O5uS8YU7ᢢ9:zuQqXe3jJ w PZ-EJ_Tu{% /u}:񮩍'!E&+Slǡb6Yi{L6{cǂM?0]Fyڛk  Һ:惋!u1٥p MQjC/R@+XT ]%_lv&< f6!yz RVTf;.mBQ#z=Ӿ{O[ģ@X;4GGG2>˝zXyz?/9i5$}EyZ>6IEnS,Wx5rl]Y Y=4YiUbO +^KYq>Y [v MZlI]TG U"TGU*Z؎Sda׵)gT6[3},VC{‘%CF1ݗ!KIM;"3_'{IKU;Q0{IvkNxgc?ib ؄N央S 吨N J)=7ItwAʑo#T.Y]*MQ>#w(Ntf2SMffiROi۵u;\[NHIhhմK:.NfW!x9[[W[3ckt .ر} Rh}=FbMtDۋ31H?ֿZ"/r'3=\:tނ? 9GOP/2M#^lՋF E_nI)'0g Ց'(vځd íHYWV5[{*xw]CQ[=<*1kF22I1C‚?6&4JuP _s'ײ>4PʍpH4N!\nIQbnQ2)DCJ? c Fvh6.+%K7anҢi5,wV{UIo)1,r2/H6: -CԶ69*)*FB9u6}~Z颒⚓5$-']u@0⦡[*a|ΛNW!؏g qq4)N }G4~CHS1;z-ro\@)q{V*7b˩?&/p2__Re]H4+/l=kqs:v|51D,!FK*_VF8*P-C gt>|\z<%kXvU:ߺM$Yq3ly4Źψ^-{ !_&,3hD@"OSH`3 ŋ@c2{WbҌTCKŢ8qN`5li~<7HAJV|)Fi tX+ฦb'I(FI1IvI*bIIWp"WJae LKgYuf3/dݬ|.k%ݔx6Pŕ,h9;6j8}訶nG(ۢ~:;~S 'f"5j@o2(=`1J+UK/P'7AP3vC+5` !g j7D~R^Kݓ  v5ތ{O$ӹ݋k@ݭzV Ʉ|Tq f&èFT RXx⽟iR`xd~ a @|-;(%HyUXP;Pj6.ML ߿Vu!~wN(2?U=\#h }b qW} ~VZ@, xoPSMA_^-8$KEA (VYC>7p>.oD#q{ѿ%^8O=ςYܙ/uRW7?kG@PX<`+%9>p*6 ^i;U =EA[|8N-*~=&[IQn i⿽٪h $c܊X0PM™:MF[Hs4sb͋C ]@>ۯ50wPzAMe- U>fSpW>3I%XA7Qwd*^Bp#>JMaGB@?7$ Ǩڿ5ЖL(B\"g>hE#ӁU ~$)BIȯS@W-ݾ,DJ*J=pvʑ򆗮BÐoߧ66~-j{pMk9tEzsQLZa4rx&G0t6D ݬpNd,T-dטvb9-ˊ,"X =p~Cb@$PH8r7ZHqJԫGErZnPD@{uu/-|HeJI wh΃YDi[VXV'PpXqwJ#w)3Ph;c k$)3 gGJ۱VS;-Ud]gާpM<>ޤ[TT9q]iQѰU8"Ў̮.,C%3Ps܋ />#wP t=bP,{2Z0cUQ!V+$ZV=pmKJl,b B={ 6j,dp̷O`__Ɲ2-GG s,-UHR'-lBw7}sm-Zx!s֤w6Ji<~uzx`-V[eV6'ѫC@ $ ':@("~k&%g%0[/ԟvԼ&/ 9i DffBY_#/y` VֵͿAs5PՋFK᷄>p*$o:uSm %Ly^ jCMOFBs ;J&~*##X52֖h?hָ.0; H Jp=o$D 7;dBs{5 nh.%`uymelNY+LA'MKdP>!l 8`i>- c&TvMNS RܥxC7Ȕ?&آ5"٘C&H~K#4iof~}Ʈ~rlT44P PToؗ<C"5CΐTD. tI[O60QCuy dZtxj6 2U~43f`Hƭou)yؗ"N |vy Ѩ|KXڕ–xˬd5|N}/IjOe ʶ6$)|)eSTQ$)E덒ΊB= ȡRz`ϛg2nF_ߞiu,`k&Y8X;Icd.s]>:@O#?|n5L2Vh ǴHr+A0x+Xv`K&)4f1? icgx< sшW@δkO;pXqFWL AmQgݷmL%+UB[ j;`Ci7?26a"e`Cx^$bS;apCUig BVƶ[EʟIH/,%ˤםMJ29̓ҷS}86zc^ppZбц]@ΖnvGx^qv=bXE-c>x{q R\ |i(Fh{L-KOs]z <f0HWf)7!|f=s3\rp""nй8̭4mxT8fM ܶnXzLuVp>C'a!ZdH`baI`‡uُ|*ؔk>U5띟R5#V+\X*:ixe>j/٘< EZr%cLg^{JK$}QL#A-=Lsٛ418 y>@͙W#3!zO}O sy ͽܲvoX28ۊY\h)hv1vP`; ji0Dd:cSW"p-WЃ'{ ̂N8aݢU"r +V{ -_(ϯQa`OS6/Ix{V/ +/Y=wiy'\;FiHW+oMq <9%h6m~9k{ޙ1*"˼{n&ɩPPI};xn>~y_V_Y9!鼰K-t!f5 ,(uԺsnqAnәyMμ$Bjeki]p0xQyH/c~'P-.ze[ũ<.-sX7ۻEaU$xek5N@@tzUդbdD vJx:`omɠ*O ML,+xxS25960|!70,3eob"X144b`4$GT^r+ T׼ÌYyM#؛謯_ډM&{uϾ_]4eDdѪz; C 0m$v3W<"v$tVbw0T V{gtdiSVQ#hFO5ևۼZ4fr r|Smi%akX3Byb[Sss _76eC1l.`h^YKkld| ɟh8ԗz CI-ƾ dWB=ض0?kdmBR>"9xS82.q75oho$bh3'ë~ ۹7xCp8^ (r<בS:Mc -rfpgz asAXx,'M16.jH޻oίԞtZ&9#zie"\ pz= |ĕTVL7 ϺTuBdZ!V7oJ'.{TG@Hج@k|\d!ތYKI4[eyXhZKg.Qp]Id\!9 0>n6'IY k^(g̅ nzύDyu׹eFW*B2x"ڎpH=x7Dg2^5 MƲ$. 9v_[gJT$H+3mS#k_q0/P#֞ӗuuۥ%ahf ,'0iT} (ʮ-?87P\ +R7<}9شiψaԫF1EG;}yobH/^*~=LZތQo5ltdsf6AsmMx-`HrC<5502+ᔅ+TT OP3YԌD?(vtص) #x9+zsCB9c'c7T8 5,rvɁ4I1?Ls:߅Y5AH϶"7KL –6LUKL6"KxSJ4ׄ>Ofso蠬6@2)7lS`E:O9]%zV (RwN¿ 1F3~ <^48D ?!QX'i$y G!)m$;xaw*][\!% u{!Yz ]'ON ]y%tf[ _c#dSqeV*+rLU}rUwdyNA>ԓ η|8;ykA"1fµL[}¨~ ${:w086%%`O gZRmQ~:+SK~rR2 .o"_na09A@\4'e|y"nHJ@eZ.RЂç*,XQ:嫃6VƅP #'SiÓܐ4u'cɹKbEg. ޼DSr4>χ:+~e;cK@:!6@!3hj0p!\+M⠄=m (U}$B$ 9+1q)^ Ui㖝O2 %#%R̋U{]粮` M,)TMvI6tt` {?\1)m\{طx){K~+5[}ɁxggwG'6ٕ @{]KdqK~Fict+7o]5Ǥ%/nGIn+Aq #݁VmٵGOWB-(7 ۰]P"nF ti \k6C/lke4G˄>%gVH *ߜNlB`KgaQ_Ru_AVtN506z΋~Q(^m[?Dw۱JzHNeׅ'[.>ri\]שkSRu]Ui>ޛz qJ}A˅N:P BdusiFpGIkHa=--8(I(/,.St5uXq-b઼nl{QϿ<$&0fFL:C@!aJivOyЀ*SMfw::5u% -V0ٳZ_j楺;A.T @ nDPa-]HXphEŢ.: 4j ܨ0f ]{{?$8!8Sh!Lv䴋|HGFKnN# ly]|PLp1Hqɉ&ywG0cknr#ߩe eh.aM,؁_O6翥Ns ͯkUnC6@n_ӇpYMdovx&~{)}P#BtW?CvL#(HvVkj[rx(kc-\6%3ī t {!,[elqBڄ v:'KPpk{{oc} m&Fjaq r3BWF6:x"[]ܻ+)AJm27 n+Ͽ5 H:(TȚ.۪_d9su{)Hv ?%CZ]?s#.\IQOVTx ,4 qi$LSr&t@48J ZXy%9vG7jUV 6 mTFʒT XqGKI Ңڇ_TÙ|$nKXîkan1ϰtE&a3-鿳7~XzW@)ziep 9 ?Pq=:5\u.rVt_ilysrAQlW[> }$o42?(!!ɚp|QiS@$Ɠv9 x7hPڦ3@˄4LJiE@b'IqziMl-3fNkVdGߠu4g"#_2 nz7!87˓QTOwFQbp v2/ψœ`pw╭`bϥǭS?L@I=:>ЦbY58k"W4K:̞D r`׻KҳUϯ@8Юbw;N 'O肼|ŃÙ'N> _N< pɜWՄ&XxBRoj$3&3]@J~$|QyLz:L+@뤭MlFtRE݀;AT%s)_u¯~U_kiyW39HJ`㱋A#nC}x PTߎ]] lXؾbGR ņkMN9 'Wߎl5WW#LL?Sw*~q]{g#%m~2vݣoE~^/~zk~/\ ʺjFM68eܙmRaV{:TDl5%Br?S ah}T G߹Y>@I/\Qi2:s+] VL ]U^XՔ74y׆ݽ <[CnBx@(̟&Y8%FMm4^; viч\ Z밠̮#cOƤؼ*8(*Eְag)H(27K9Eo6k_Ӧs)kd.et+l%8_ɀVA(+>gF!T57R2-Nkpۂ3F`u9:9)SR}? Sॎ콑.OG(=1LDH"HuzȑFz-E,vՈcu/oARXJ-Rі s./*pi(THB?k2"qf8/*Ծ7&'+3{l3n! u$nCld *a'Y?Z8U c[dZȴ` :Oۛ<2,F7"Wmȓv^oy8;J-×$x@k¯ 6%tVau,X2~B#:ZbUTu9je6TH\"r뷰gдnpuctt}?#hH&YQCܚQö~]MHْMw ߀U침^@PkOY]MU+.2\Bt[y:"BK>ת)š0guo [WY UngRzӦ@2 |UB#W(D|o>}<Z=]C^^* xQ<u^ʢw;WR6 uȈ}3" @"g\.֎NbH-<w(ڇ(Am'}bC(ݾф.*ȋO~4~e2?ۧyj>5ZԱ&'ąHJ(bJgm+*(Gc 0~:˸m{ d>b1{ҝgPOF#HFK^s"#1OcRSij@f 8/+}/նԐoӽIe)?+'ᒈ޾oAXJqy#WD-$3Σ0s`` l8Wr ֯77[a#cS6pb-A߆*)}e:o*y'mXѩWd8d7CEfO"9Vgf_?=~Ŵ|ujO[8߻]T`U ,ϪZe7cঞA\š*PBB;an_/iIJSɽ=>zGo5d#Fmq5pBn`ukn c$H󬎼eטqvmK ?\ 23OOB~hJbU7x%/O7x0QM,@V@ {Bj?sdϥ` 8u֐܇g<ȘUCQGFt;)D`Mل2wՊ58ߙ4xP05^^fJLXd6Ka!wQ:g~]kɚLܝh'#[oBaP Sr+F 7UF46ъ!{3:-_Y*3|u+Ժ-HJۿYfWv^YnK/gոULݖHCAK?b%wSU1[En"d? 8azj5`}VӺnog :0W,Xr¥O%\̔$vb9;9ð2ubn-W!*D#жQW':Eݭ.ž|τmp%E{K3XqGڀȇIQ Ѽnto?v]&W$JB7&fݙ8X ,sPQ8;Gҩ$yQ84>L/K,So9 ,5}aжQ;U䌫7;udmɊ\5Oz*~U]"LH}&si]/v ~]ȟO3= pXE1T +4fimA!ă:#Kr,wyw*u>-׃T*?홢:-Z0L4qKS1h!rڪJdd_Тv`GHbT NfE>1kl$4Zʵ)$i(%GsM§3T "BHfƢQ!<[KʎjxpNl>\D5ү:kU;=LiF7S"o -Dgs =kK#^F#g{zG`+ Upz%ҽ [IEayKƊ4k-Szo=^ 3YZS:+?rE &xϪecr:r:mR՘E$gq&Ö/OB/(}J aS C%?W k6[c)V'HxГj9K (M4[0׈^C.ǗW_3' @kw 3:B)mn햁C#cذ +,xGo†ZMrGHS%|\ON{V+榆tWquEy=w#nP) &ӧ(RbH%1hf?ehS&,?uy#gI\%%e.N (詇_=ֵYf O}q,V9>F@b*s.ɱ=>*: ̍ޯ"wZߡשam=ݑOwd0a!=@YѰ!"3ch~Uo#0 ¡vhBY. :vfc1MG",d$@lTxu43&'EI"w}.~f{jĤP5^ϖ`Ĥ6b9`qi⪊P'nC9 l@$l$o ̑ ̨&=J(QQsL C <Ako#iݙȉuթ'QKHsb=wcl߬;Ci}C-:H4f0^Ľa=w,ߑn櫹-AD&x wl d@ kŸ0{tm٭ˁ?H!+2 Midq&thJ,STu#n p8P06fy FiYAntoa_c550^qGʗq{ q[O&0T}xgblT9:*q4n| NB$iɈNJ~68Ԡ>/y%߬uQ*?t;@B!vn:j'|2#}?,egO%;DD}(L Z8ٴkL=whjY7g$] lf!4> S1Jw CGlL;z~nJcT :͏K[n1/\>6ty{|YOczTo ]MPpwm+-elpZ'^t{\@SEYզ'SnXe,L ܜy)a_Lw/ݢemS0?[H- |GҷL[Ry9GZxUAt)O4aV.C@SX! |gϻ!ġ%8q(6E@U\Ӈf^_MDԲDjMĢ#=;\ba2= ]8)9nfsUoˋ~)#g'.bJ U'O!%}s҂2H+x]ǻHAC'fwf6Y(A_T,1,|4¡} =9,!\O8jZ?|a41+ưB1Z8 cu%Mu:$Аs72.,wPs> ulZd볐:ۘeSWA4&SDEOm 笄p"xRwLfii߹"ҪZQ_OC:]PٝX,q̷dJ@ >2ק#S%VcbXiF))a0 &יcH<' DWwkP3gbMɶn/KJkH0UpՔzY x -<]EQŽ36!M.p*0r+$?j0윭U3`JLpg%Q`3o91<8T) 8xĺ]>*Ip/X`ÝXɌ}=+>]6YBjEv~ 6((*b:;@5y '/Amxmo U'[]x˘ V<JQX{͈nN)ݡgxK!{n9rVi0Xcb 2pE.+W\}y)YO4SS}~}GK1]'TLTZam~ I< *E'#y;|78z5Dpx! pZ2W2xHoG#Е|}& ;ޡZnsxp93- /eژwXޒΝgU&3aAq,{nY+}!c}O@  -;pe].t?ڪ7r;JN{+Ne1-) 4xBgK:M- <顳4BX,aIv}nUBeE}MQ/jbuiKP R9l|U ]+ܾans w d] ތ/s _ǒx յubXri_bb}t/&Uea9 Oޞ{e4>3gf0rnjVa`&*3D .}wg9&j!Av':sf6sHBgHDK:=)d+rӺ-r&ɍNzG'm+w:W@1+$v!uvY` YR[Pf$dVH F& ׺:r$Co: zZv`]6~.r'n_4rY W w@w'bBo'5{(UdA3un9 n)`;Rk%58 xQy[Ps3ajP)ةD/*Dlp{DiEtl't@^@>^'k[K<\Q_(=gf }9m67G̉pn/^Q{ַ{,f kv/@W.J b (N%K:QYDIV~TZMv-x(tzdCeLTNf4qݎ ot)KܤH{#k T.L ,Q H zu.udz TN/Ҭ|7i rlW0ȶxq@"S$ϛ7с _=n.)wSm?Ӥh35x+o}Ey%aP i7`BKw'G998boTp(qݚ؊ 'b G.Y4a,w6򸛏x} 0r$w&پ_Iv{usiOpf v?4R.haEM:3x8Ppы91+,b; N4Bc{TAGn?.F.|@S#`g:f 9o]^:g13Hdeտ؋ XhssfaCuw* @*Ĩ$^/ q{ـWm|TK|}PfT/@\'.I2bLCDR7|׬o! ,{qQ jҵd-X(=:$F4ɿ;7B[fog<-$BpKHF iIYv炯z\}ZlϞisPE>ߥ/5+-o,uuLEwY O*+VsYMr -;LL<.l"Z#@xn_%$Bg4fs~)eUb{9sNAms፪`WDAÆx@ہgE+z|% \W*5rilx^"?6'&fKٺW"FWZ|tL@v%D sǨ:*elu̦FueT~Lp7Ѕe*TwAQ%l<]MˬjeXbj;neWQ|2w!$4-wAHV`Ej[]@PBLjAwCr΁(=bd; 52qgg~/ywD1)z},/.XprGA[%sиVNi+Hvm)!}U7$v0SW9H5ty!Of]\y@#\249|߅9-GH$S9SQPhzLiSɆto ")zNTWl = 3= Hҙޜݨڐ& D[{3:vؔ~$(i&,IKtX\sxoib7)BRoɼԟ-P_)4s|]saV$_c#cW?mӿЌ!&s|H&EL Uͷ׀e]@QUJ/$`y*MPkQ g6Zh|lf?G_-:>~L?j~yA߱[Rx> (>&?|J2 >2 4A?4EMN He3A^ wCZ$d.މ #`׵`sqSp,7M0aǔ?B!6Byaqw} U M%;_Ѱϕ`E7 v"ȘQA4[RP$zKTof]^Wq P]Z4pymmbdJ˩xf8R]w*x{؛DHb6Mymz|tCS2SoZ#?`w]Ev8禂iW䜿R,I–G 9Rq\@m#pࠠ$~˱yM>JN#3?1%#@S5O'A8}ܱkq#i(xrߗcP=#A*bC^-Pqvz'k߃% gi~+lgo7Y7%-߿Խyw_ TuɭE"/QQMy"Q  6;iPSvɐuPV8V ^B>6ˮ._B/*d\$M.i‘QBޘxJG;c\A|Ye57#5*#L=֝d[՝B')Le4/kAi!GY&Q{;)g^y]Vc0PB=lmX>pqqkm\Zv?30Bj7!u'[9[_BOÖf" 7]gm8ՉׅB g򷑓jxDby\xPiF03n?7ݲP5x\ӰV0kJoSnND1mEBQ#hD= \8bÅ\{!72|'^VA|Q1wXX-LNZ,d>d:nГ3ܲ{OY'I` Q (^݄4 PŨ! l9ߺnxFSTӀƊj7ZBJ,wV{H HF{D@4h|iRh4!<ܢWoxBTBoQC$`x @vL:I5D1ǾX~7686&zJU^qߕG߭7,oR; 5.Fh}NnńCQ/?AHa6cwy#?yr `Ĥwl^זUEGICDAcD0A09C]z;C-Bby`%7qh D~D[bvߌhq7aX2eFNUmSꚡ|ξn?iKOohu[g`%#o" Vz{C APT dXfa%>?孩!=M]L6& @I~K$h;~qdj{b%/xU0tBavsY<ǡJ+u0<h$g;xc9XSBy2{$Wn*D9^z!|sfx-k"ROZQ=q06)&X(ɻ厤9JNoU!1NDNW]It JnaCy7^t+l_ff &!)*3ҋ5$Sx[(6(t~]!$dxNhb#xrA#KdJ^]Hꥊ99-Jn=s,㣾 yl $ nU%9FBkma`a$:V ,цFQؤNa)t3N/"FXDXI ksMGN$V ck[T6CW uM8@Nq0'ߧ\q}%=AhXm#rz{>%6 WH6cd/h@MV{o<=>HgۊX)hΡJlP 1z$V'!jz2t_>V@-7+zXe 7;?A E!Jpoqz["/yBYqGi~kEY:W߮Fx&nԚ1Wq]Ҩ>iz(Ѽ a Zb''XRzSaݖȟ XֽO!nʈL*)-WJ/5v4<(ġ(p iej1T wii{smU$cп5+Y$ߧ=?rAJ8 -RuvZ֔1םR~E}dm6u}g%``כ2;&KbT: ,zZ䗓E{ZdS.hfDE]S߲q'2¼m%-;ԧvVq4gp ,<\FkpFD݋pT U' Я'^!NT$>lmq[Yu8Uyؒt .,&ҥdGgRIB]D9FuS{,YNz{r-0gOܳ|sy <&*ml`Ssf*8s<ا%fU$8O(.k9RGy<̲ص9ҟ}CNw #wȯ9ZB}˾x'c!)bz:ӶpQA<;S ލ޶#)u5ƠיU!yva7Q:nLbOȲ:b SkD3 j":?0hry}eRXXܛIGUC)!k]bL/ e^rÇ*߸Y>ёwzRAo8QkL e4~f$9c 1k}l5G]s,5ή$^mSVo Ņ]3BŰR Mڷw (G'__-1[~Թe &Sf wkG-3QDŽN fځ?r֝5dn\cNA 8JqnH enQ#@T>E?FM$RPXNљG˳}09\ G?KZ^;eMEkR1z#Mi1c.T+R| & Oi`3YMw7,4Wb[~ !̺%AV'yɸ͖x YQ}# , N@#FqT-M~(6ZFP0zP6Wp9\Z4Zl7LC*SŜkfa GkB,f]p1~gڎfT4'_ :Κñ8v R;Sʬxo,G"`Xl`QR,qê8ȋeѺYaBVu0FةHN$CJ(k7N85C>pQoRȹ1nqrD\[Oa;a<I !=67ZL+d4(htwYCPRXi1M]d R\dgR~$fFr7!"]YjFYARo*X'\Sٵ_0g]I1NMj-RP6_wO7@ cJMĿIg\߬ }F"4<:;T)f|*YkVi3Z]yv>l┉ [a %3!#rq^YY K"ۀ,LIb0=Fݏ .3Z2(s'<7gd/ԀJ3@|u- {„n194:b- ~U1TMw!֘#";EQ)ͺ{x]dU Yv~gvkoM_eVt]2X}&#]fʴ MaflJ|!뢁GNb@?5Jw =qqe%Yy"ilrs?4SY~oB =S` DX T&k/1[5`D( |Ay,!K1z љ í}v#w^ޑ߆Ni hiUKYP2U/T?i#a`%/4G)cPs2md^8t'[gƅc!+\=>w"-'~KJk_S0r8|7(o˳ځ ZdGr [D#Ӻct029PѮ?h2 ,ZrfahY]d<%ftuo1,Ƒm Ԗdl^%D3qs Y+@]Tؐ? XRǜ>rux}cҏ[EQh}GBq_ax#PK#3C1:B{XT.{`' cń77mvoCZEbkbT152%S ஗KNYXGokLݎ9yqVSp3ciMwKq}K@(4Z?U<Ӽ!AA\5}[Gt\kAE")WT)sb fq uՊ+O04 6t)ܦ޸iaBVH}IS\w8e%vt.맪C# f±J$8}"Y嚱Z6`>V:HSr*O.DרNX+*8.o>9&̄+ En.\hj } m1vh@ f!>[Ye6$E=MmcM55]sC)n/9QV.PX4=ϸIn:S{_1c8%!8+Mq56y~!C`ῴUvsH}Aw6&0jU vV<$4OАnx8Ws7'wsdVЄMbyI3_Ovc?tX¬Ca^T별LWBi];3lFynyJ9'ӣcOsrCHhQ=o)fAF̔l!ybEY64#ޗcR+3>paP>Fs+&NO*Lo̘#sǜ2N1 tSDO1Ba56S1{B1Pp˖1c0&XsKЋpN0?hĥgڮVD;J$*Tk`812A"D6\pUp5Q%Q{i;)\l cOyN ,\1W[Rm4qvj<+VB2թ=IzB@@@v+Cx _63܋@ĉKe˛K"$Z:XrG3^M%A 8ط:X_6e ]X¯n@c5/3NHbDG{}R.E 2eٲC4 rF@c'Zg'[N5r1I2m"]ˁ]F4ַF1N$/Ĥcae2?5{}8|X(-J!r\CSbJq 0R/M+\ eD6EU_K"L¡S'l|癸ȍr!<^B\1oN86[/)Wxu%*,r7M:׋e$Y>IWe5-P\GM,bX{g8r}%H*ܰ `H*{1j5..m| SqO+@9A{1ZF/TBOsƔ#0/SM%W*NhحdP& t6fleq,x /Cb0wɅw55{(3S%cio㞾RaeńKS/in  \@w9J*IݟS“- bqP}ԝI۬G.[#:/@]4 +fF Nlvj6l1`Ҹ=4!hD.B՝muB1E(8AgV΃f(+KL2cy=i p%m˳ܦ!dA, s簫O#o(E  x5P??`^k z92ćW1^mrZCUL3z+BsΕI!@&CCbCqQm*F];tFi'ݟvp, nghepwۺ[ b8~TWpt$]|'Ah'5`G kN`)DBo^q5 o=R ¹&pջ\xI{xpVÏ6bKv]<`sZ*LFzr8߆"izU`zIx c=k^W΅\cs4W^eW!.<gj\u[U0b=$ #e>s]F4SٔrW K V9M\Z=͐]nS⣎XgF"<کaM<2FN!1 ]휢1m+^Ǜ翗=$bM3^@8" a/ 81O|n(G3 Qx\QP4ݫkyE>ެKV~h{VM2@h)k'Ž;ŋ)-xc䈢2Ni܌^V ;/XŶ Y&KC-{]G3e͠hK#W4lbAv[}[`*U$< 2ԣg4*l2}}/ռ(0y gi2:7cNL84~:Yx Ͽ9o><2e4NFJ:tdGW/2j9>$y?'M`,l(7)9E8gnlBjHnl[xP)YLTj8 I(&(8 v }WPj`Ou}P#rb|wzNԒ8T=#$r1yYT_o7J[p}nt!k&3_t(F[QY6"Q- zәrL<T4&bPG$;]>7];kuN5( ,YjGC߫pvCxBbꆃ@wS`V};՚;@ߤS϶1k/7>/=&GϹ=Ip**` ]&AYh0owHP?[ELh!jWq$1$p 9"'P#Fm2wH`ګGY?+i/N'Yb+dDCfNȬ#e0DṔW W[1E3ß3_$D=آ(eއ@ĐCo8P|d |SN>߿#LUav}H5;o\?IvߤѦCmslmv uK(,jRLD0pZmSlܲ %)ٲ n:d ,&ut.V`Nx\m:b,&T xjm;zc光`K/rApCg<!Wh3%rK/IN.%#Ws3]uV wjԵ(+q^**s"Q)X:#'۴sJ/E3ŌhS8\`ӘDqҊ⦝(ef*hA?r~&1]X؃@6#](-(}:w[4`0fr{@,&+7 (]o&;Bwł[e̤'g]PMeH29Qp_֨P 'j;[_Fr˕ZeHty 3~-`7&Yb{ cb&<2ɚolQ>0-ՇkPj 7"緑ÅNET|'EY:q)G O}j1̶uf1/'nA"QFL9rt= }fXթXh溁Ja#2 ƴՂ]7@"1 29Y_Ƚze'3ʊ 並q܋SxEk#rJKisL97YZLԱ-9H ȋ&t46oz6Az_/'{r̋*_#~LF!C+)9\?ik$e|r|bݝتfD?.+ G6eڴ3Rm^#绛,]5oBI=vΈ7SMV]V)Avaϕ#CsU&tB ovڭʪEhIŨ(hlRmζ ݉a0cH7NQL.;@o53ɠgÚ+mi4"l.5ةJ\!7HB.2LmY8_E %vQ{^{^~0:9n=Ď7X^7#X2f$FsX/4J ?Ҟ%k. yׂ E1K){qkteW7n'r8p(ffoβvcōk9P%Jc9h[%'.Ę*-$C6x;pS_S.cE2)72ygrROҥáp$ӈ?xkr 99sg_5񛲅㩀a`Hřhm/jfLA5Q^=g~0R ^ LAi_, 6:zۛ9sr4%!: D#s "k%Hz)=aeHRFP{~t'2O~δKz<8Br i_o6fmƅ`5IK󇹱7nrG?4 L]%tԱk*5 tYGu1ĹU*l+-86Ys:(F.83JOᏱ:6x'~1r6ّG%l-ݽ V6Q#i/RQ{(r㊬gjc'9U$o h6׸9!K~]Ju% L;Ðؕz :$V4gQo]gL]T/0hn/5UnۗF^W$IOحWGv{!11ZC{pP-(hCɳv1r ({<`HzNKѡյ3 KMԭdj"UQJ5oX)Qvi/ gmR*{ 6[(>Pk+ߵЯr,3qj`(iJUv,i[1hGB~wDҪ iC1ޤDwrc}ï%,6MzWJ!RB"쫖+35%Ct-g Fݰ) C R%od>ZsowX F+}=ooPb vCSw-\#>=CFxN8A baM-NjKیM>;o}F~`Aߪfr5( [#_'kDq(=]ڻ%Xa|+#0tGf9`:HmrՈ_4\-CQ2;=KzQGO= {S4b16Wcɧ Sŗ  ^oE^|09tt}h&빨N̍y7:^6 gexyf"Vgrx*{asmL,~-ŻkFTm6h!$=,g+\xBBڮ%7I1V C9%,K?>^9P97#1Em?K@N4pnT^d-D,#imk_kڄ|7OFI0}yQbS*~OKrl#~)4)n4cl4 n×UFK~oE!.*xT?W\-+@49 A~Oa{`3Ҙ?* &g'e1 I :ϘM]`~4ROd$XS%-rd4'fl2Ժ8cVmm躒P'e $KzZ-bMi+е++Fŵ,c)P ۤ#Ҏp"&Y1 {lH8yX`,+Y?YnbB0qJD/>KmHh-+)HDUQBY+ijEzu8@@'VSЈኧv=rugI7QX0vV!g/oje#(ZRd^Qwk8m>h̾,Q&4r/tL|BJbޕy 9+w0-%kEcSQ=@a}X* [JM9mKóɻi˧r 1pkyfӜW ڛE8^y㥮 x\O5⛤l&q āIQȩXK1SaL~X;uK[]_9~( 2m8k.(] c%UJjfocs,BmH~?'+9UW/3O=  t}-1)ec8gSsD_ a )5U27|Hsy_nځ,#ճ[8}-f﫾yI.A5@ r*1{f00S622a1¼*.״+l@s:I.Mޝ$0NQYg'lyW?Az IQH=, L00`v#D6NԶBmXQbyk /rP$I,剆ݻuN@ A2)*?)/Y]Oޔw%f$<s8d' X_V>d32\nSR`@v=9h&t۸ZrZ xfc.eB-S]*=I:čXfsl:++:)"%T,F!)<\4-xĦ"Qa ` ̫'qtQQQZT {B)@ AG>&aҗUbb,#;}tUOKjmci 2/&B>~`01/lFc2yW]h>\ A϶2vGcE͞7akDֱqs(nJAU|A c퉾RafDcniNRiv3l!QvqMjξlк_Ü}gIwbA6R9NWKx4ûfF5U,àFw\o0~&ZMQ V]/oA,@bMè4k$]㸖1 X|SJDeMn bYV$ez/ B!RU E& y /Ó&l8|6֚3oq@-?%2& _i2"k [OeŞV)&V|QʡepP .>꿤 -Lc5!W806@ py _w$ cĿ󼍡n |qk[kqnÊOP#,F+֌ѕH5~iMۣSM9> 3|;zckH[0jnF]DȰ>. ^sO?NztDPbS+<}DPKݛ/ˆ[x 闬1x6 SU*bn -OC.a$4GK3D> *>мa t]KZӭ*xVQQZx8S,/c-{]>} ]$+rQJs`觪1p 5% 2T=S=v At;jHS$?Ģ66YTʃVXZNYQP!c peRQ~b?)`EvkD7}{n+ <}!k-ĺwe|U ό ,]+CwU9X=,x~nw9G>-+I=(z4G4SWB9~k)cBuR.$g˧Q sI2{o?{|**0J-\TD[35*9},JKNQ,{ln.Y IdYLK,6Y*Y+ R<@Fں1W ?R-i_zO+ |Iql~$]fgP\޽}]I=K9od *fwM?OW1n鿟PT7"=n4%h#kpO`ocŬI[٨|>ˆphXVԔtL"ʻC l )Vք_>>UN[7c%)]Ew8GjkAlWUzqzIWGfö;̜(ݕI͒,@3Xj!)f=4^G%y) B5ERt_f۪8 b f0#Әd"?>a`.Kwg>WF󥣵_GמߓtuJ\{NS2 b(RDVYTH<](O&h?RȎ`kzd6/ '[b{⅄R;k3moftI7d_F"D˹*{鴾%6US_mzqޯH>Qwԛf> nSIkǦY<ߑ[8g`V_ٵUEw\pTu]ƄY*-oB.!y>-!vM{󱩑rrJjT/;w{qcFr(WGK~k\/wl#i#˅- LMYJhӔ>0 Z:£d x_)%NjaE#@A!-,4$&+2)B$uޥ+v+] 3e3o{'i)5?Ļ&"3;[X+иl78A 2F֤PC~}iׇth[{C@-¦bn9g#Ҽ>!}`o23Bv\Վ#F>]o{&G]lH!jNQb~ŕ-8S]M H,}Gm@, @_Xttѫ*v~Q+iN;ӥ"W,VAլY8)-M+ßcj'Y5]^jajN d}9IFv@$'oHT{ՃLt%|2"魘tw uSZɑtb6XsnڋG{8g,?ȔKkX :͙*4nvʣmC͗XH 4^XdR6u7#aS:fdy)I'2sFDཏVXkiH0Qc]ːG\W@nv JZRZ /+*3 cR_;UYGa#9_Gk53jyaf1`J6'=5ĭ V4T__uda~KS}WPq Y'>BY@ MsiWqưW(2o)oMK8 Q ܆bfdЫ uϹ:!MƥZL9 68 a~,<T_il!_$ SA',2-R~T+YjoQ*B^wV%aA  A$ufwG*8sQΰP2}f➄ x4HUb!lHR,tw:3Iv ll+>wkIoG7GL"Vt5kWTqAa$I'V-(a1 u=}uSۋ6W7%k"MÅ7AE[fkjzЕYnŜkm,5Qpգ%ni ?;w_"pz89 _aك{ku[BD\ hq_05gLW| r-xF1rKz!j?˅03 c^3zd.#X XL&]Z*u<14_|@j'!6KTZe7"Sf)1k/*ej;S??i8u&~X㛐q>v5s^ v\TrP'VN[I #ځR-m' uz'ߨL=ۢ2F{ֳy/sKDJE0Xjؙ0kaC.LVnukI>Cؗcqۢ;o/'wY'n3U@~A+.{*m\.%6ԁv[f54 _OY׶pSI!ޟlpdH dq:9+}:zZDfz^8qKKC sK2hJl$H#{/1AݗbK`c 4I_H9Ŭ}8o kYlޯ?aU)L O0(2?97 $=<ݼ@g>+r<k :NzeJօ"` )Ue/VSx3,Yj,(.(AU3?v8-u6 r\&55$G3ͅ{ܾ6W{b@UO*/GoAJU$v1pč%/&f\Jxu=FnMRw0SK_%SGoL߿a%al7۳{t#ŲmATFuͶ$i\zmaU]MH;ظX䂻%}N>Q3/A0"6H+J94/%/j%3D4;&A( ;-T;Pi3{Ih!nVTnp9(0F ~^\v烼p6|{uh?E,\G'(ۍ쮣ӃV)@՘/ϴcGT*iK(Ns)ҝѸ}jڡǏ&`p>T9$WL(Cr"M$!l͚xDǑ a'Kމ :1PˌfPjF?vdh"ce9lm,qJ$ɬ0 9[%),} i+.,9)6Oŭ(ji#T!⁾r1 ny|[> 'p\;uśT$12xe7oV7^ XacXpx-pջkZ E.xjЯWTeJo4 Urft_"rA&rKȻ_O3ќTkZ.W~ǒk¤+"M.uEWdWnSXȶsX$iJVۂ'gcxG'5KP<~֟3 xkиl78~no s3x]r:$]?ʲOAƱӥC,d>uC@ZUB1UuV{pv٩mYsEl܊E2n!VŬC;t] .s)bOي397gsDSd֬ʣBn8l93`% "DׅpB4h;}(v