trousers-0.3.15-150400.3.3.19<>,0fۨp9|4EJ1о1iy BU .:2'I^Bcz('{}f=TIEF w_7Hڟ>/~V@ʊuf6 9V$2JSyꌟ%R~smtJS}r蜫JBP=u ]I5Jq>ϡ C ۚ"i"S1y&ܾMc®`A(<60>W:}>H4?4d   V!BO e{ ! \    d  pIp`(8 9 : =(>(?(@(F(G(H)I)lX)Y)\)]*(^+8 b, c,d-5e-:f-=l-?u-Tv-w/4x/y/ z00(4I4T4X4^4Ctrousers0.3.15150400.3.3.19TSS (TCG Software Stack) access daemon for a TPM chipThe trousers package provides a TSS implementation through the help of a user-space daemon, the tcsd, and a library Trousers aims to be compliant to the 1.1b and 1.2 TSS specifications as available from the Trusted Computing website http://www.trustedcomputinggroup.org/. The package needs the /dev/tpm device file to be present on your system. It is a character device file major 10 minor 224, 0600 tss:tss.fۨh04-ch1b SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Productivity/Securityhttp://trousers.sourceforge.net/linuxx86_64/usr/bin/getent group tss >/dev/null || /usr/sbin/groupadd -g 98 tss || : /usr/bin/getent passwd tss >/dev/null || \ /usr/sbin/useradd -u 98 -o -g tss -s /bin/false -c "TSS daemon" \ -d /var/lib/tpm tss || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in tcsd.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in tcsd.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi /usr/bin/udevadm trigger -s tpm || : # bsc#1164472: adjust potential root ownership to allow tcsd to open the file # as unprivileged user. Be careful not to follow a symlink target. system_data=/var/lib/tpm/system.data if [ -e "${system_data}" ]; then chown --no-dereference tss:tss /var/lib/tpm/system.data 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 tcsd.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 tcsd.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in tcsd.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart tcsd.service ) || : fi fi.\W"#]~^^A큤A큤Afۦfۦfۦfۧfۦfۧ^S_L^S^S^S^S^S^S^S^Sfۦfۦfۦ^S^Sfۦeb009b7d1132ac33411e8f838c7e272606c8dd1d8944bc8b82ee28f9114e82fcc56f762ff401646eae0b25769c79234e22cabea3e3b4f4c7bc581a23787b36f44b635e9ae00264cd370fc62921814265679e2a15fa6d6ebbd468e40f00af48f4e3421330853b5096836e0658fb9059e9db6c91ec1f48ca025c729d74270e1b51fa066fc32ac644d28c5ae56f62feae0e3b8639565dccad1cc4345dc71577970ffccf2c7a906ae571849fc1bacd98f3e070e4da85b2ec6e937aa45ca1323b55ef1ad596d12e7471549663c03e280b5b5d084a2e853fb86e4d766109818f9d7dae4a6bf595610b97b05728f4615d54faf290fac3f8bef836a5d919de070f3cecc4842cff0de213dbcbe03bdcc03c3dcfaa48e03bf45eea9d18e970cef4411f4458686e9d62dea2df5433d4a435602c3e0522b3bb68a2e75c39c80552d6bdddd948e10fd3096b3fca327b01803d91959817028371fe8d9e1970256bc56aeb1bdc1138547b7d669844a1d7d5b9075872b6f5117996c0a21d78e383e79ce7eaedb8c07ef598700d70a9cd14ba28950c7b048cf21ec2ac2297013e5789830b58ffe8baf09355ad0bc2e91d802c18654c2b9219ac1a26cab805879a784eb8a030e02c437cef9d8224b158378505c02b77fcdaa05a2f9ecc1552e95ad6d71b5ea96b690219a3b32565147e2a9d085f67d3c83fd4b93dad037fb966cb0cc5499d8fa6a568d7c26f86aeb0e601cd2358475047161b619bb46872f84569448031f3649619e35e3194d734c81d99d6cb679ed5c24ac97652b068ff12eed215e1ce382a4fb7dcservicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottsstssrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottsstrousers-0.3.15-150400.3.3.19.src.rpmconfig(trousers)trouserstrousers(x86-64) @@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/sh/bin/shconfig(trousers)coreutilscoreutilslibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libcrypto.so.1.1()(64bit)libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)pwdutilsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)udev0.3.15-150400.3.3.193.0.4-14.6.0-14.0-15.2-14.14.3f @a\>@^˳@][GXh@W,@U@U/@Smatthias.gerstner@suse.commatthias.gerstner@suse.commatthias.gerstner@suse.commatthias.gerstner@suse.commatthias.gerstner@suse.commailaender@opensuse.orgjengelh@inai.decrrodriguez@opensuse.orgmpluskal@suse.commeissner@suse.com- fix runtime requirements for stat and udevadm (bsc#1221770). On minimal systems this can cause the %pretrans or %post scriptlets to fail because of missing tools.- update to new upstream version 0.3.15 (jira#SLE-18269): - Corrected mutliple security issues that existed if the tcsd is started by root instead of the tss user. CVE-2020-24332, CVE-2020-24330, CVE-2020-24331 - Replaced use of _no_optimize with asm memory barrier - Fixed multiple potential instances of use after free memory handling - Removed unused global variables which caused build issue on some distros - drop bsc1164472.patch: now contained in upstream tarball - adjusted %setup macro invocation which seemed to be wrong- fix a potential tss user to root privilege escalation when running tcsd (bsc#1164472). To do this run tcsd as the 'tss' user right away to prevent badly designed privilege drop and initialization code to run. - add bsc1164472.patch: additionally harden operation of tcsd when running as root. No longer follow symlinks in /var/lib/tpm. Drop gid to tss main group. require /etc/tcsd.conf to be owned by root:tss mode 0640.- Fix a local symlink attack problem with the %posttrans scriptlet (bsc#1157651, CVE-2019-18898). A rogue tss user could have used this attack to gain ownership of arbitrary files in the system during installation/update of the trousers package.- fix wrong installation of system.data.{auth,noauth} into /var/lib/tpm. These files are only sample files that *can* be used to fake that ownership was already taken by trousers, when other TPM stacks did that already. These files should not be there by default. Therefore install them into /usr/share/trousers instead, to allow the user to use them at his own discretion (fixes bsc#1111381). - implement a backup and restore logic for /var/lib/tpm/system.data.* to prevent removal of validly stored trousers state during update.- Update to version 0.3.14 (see ChangeLog) (FATE#321450)- Check for user/group existence before attempting to add them, and remove error suppression from these calls. - Avoid runtime dependency on systemd, the macros can all deal with its absence.- Force GNU inline semantics, fixes build with GCC5- Cleanup spec-file with spec-cleaner - Update prerequires - Use systemd unit file * replace tcsd.init with tcsd.service- updated to trousers 0.3.13 (bnc#881095 LTC#111124) - Changed exported functions which had a name too common, to avoid collision - Assessed daemon security using manual techniques and coverity - Fixed major security bugs and memory leaks - Added debug support to run tcsd with a different user/group - Daemon now properly closes sockets before shutting down * TROUSERS_0_3_12 - Added new network code for RPC, which supports IPv6 - Users of client applications can configure the hostname of the tcsd server they want to connect through the TSS_TCSD_HOSTNAME env var (only works if application didn't set a hostname in the context) - Added disable_ipv4 and disable_ipv6 config options for server - removed trousers-wrap_large_key_overflow.patch: upstream - removed trousers-0.3.11.2.diff: solved upstream now/bin/sh/bin/sh/bin/sh/bin/shh04-ch1b 1721031592 0.3.15-150400.3.3.190.3.15-150400.3.3.190.3.15-150400.3.3.19 tcsd.conftcsd.service91-trousers.rulesrctcsdtcsdtrousersAUTHORSChangeLogLICENSELTC-TSS_LLD_08_r2.pdfLTC-TSS_LLD_08_r2.sxwNICETOHAVESREADMEREADME.selinuxTODOTSS_programming_SNAFUs.txttcsd.conf.5.gztcsd.8.gztrouserssystem.data.authsystem.data.noauthtpm/etc//usr/lib/systemd/system//usr/lib/udev/rules.d//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/trousers//usr/share/man/man5//usr/share/man/man8//usr/share//usr/share/trousers//var/lib/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:33188/SUSE_SLE-15-SP4_Update/159c6189c2888e1f144b776f98e388d1-trousers.SUSE_SLE-15-SP4_Updatedrpmxz5x86_64-suse-linuxASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3cee4a2ef703f54b2e7ef552ddcb956023e89aff, for GNU/Linux 3.2.0, strippeddirectoryASCII text, with no line terminators (OpenOffice.org 1.x Writer document)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix) RRRR R RRR R R RRRQÀI3˖~0# this scriplet and the counterpart in %posttrans work around a packaging bug # that was present in all trousers packages since around 2008 until 2018. # /var/lib/tpm/system.data.* was wrongly packaged as runtime state data # instead of package resource data in /usr/share. After removal of these files # from packaging, during updating they will be deleted. Since users could have # created their own versions of the files already (by taking ownership of a # TPM) we want to keep those files in place. # # to achieve this we use the ownership of /var/lib/tpm as an indicator. # Versions that still wrongly package those files also had the ownership of # the directory wrong. Therefore if the directory is not owned by the tss user # we apply a backup and restore logic. [ ! -d "/var/lib/tpm" ] && exit 0 OWNER=`/usr/bin/stat -c "%U" "/var/lib/tpm"` [ "$OWNER" = "tss" ] && exit 0 for data in system.data.auth system.data.noauth; do file="/var/lib/tpm/${data}" [ ! -e "$file" ] && continue cp -p $file ${file}.rpmsave echo "saving backup of $file" done/bin/shutf-81e564d6e0e2aee3c58a3412ad0187cf63624a91eb15be0f521ba2a39116d4ab8?7zXZ !t/+P]"k%]̔60c>ͱ8eC0fUb-ZO:N1W3Zdūa&aTcsSAQ&CcIVZ#l,`KֿԄݱո`ESS8.|v3B-*bWbg4\wLsP0z'x5:؀Fe21}N|uz֓{ڮ)7^u˟o>2$=i>T笵ܱEJ5;܂B9SzesG^]%7ip]dgpGhu;l\ʬijS_Lt%`H[<"WX(ve h[E,ľ0f22D5S \թ4 qI;2 ^Vv.-R%0p]4oS"G B<0|q>1W cjFcJ~b͂A0Q#s8{H^HއL  $u.IH)39.:v =J+ c >A'$v* U7&'C<=5|B[8#A-e@`?0'wspф?+IPrՓߠKc{B)UIKdRce4lI=Z)z OXf Ϟ@WU>Mޘ?j C8ߥ,U6UcGQ}<>,[[|%p,eҳP e4{,L~I7I]x*C-?~)e-҄Ǽ84JWoYpDQRvb l RQl.$\ O!/qrW5Ic;>麡a]`ƪ[ \&E\O(8Bf74.d&_7bbbH#3|#mN٧>$[jug'BZstCmFѧI}"W8 &%jN*[Dդ>dL,s0Cx:߶q@k՜A&=u6Gmr(+ J7?nfr?Lƴ+˚5bݡxu 8dcق7;9O~$gGq)w]I6A|+ x9;Cl̞ JolP #\ޔXBAe4sWQQ+-6Vx)p`mD('h㵨D #B@.,nK ]+^"#1diVX ښU*LjFChxz&v4K0ڰ,ӧC2YvCej#1I>/&/F/o2n<VZ;chZnM"A@+aEK?1W_ce[ fJAuY~j@`yEK%QNA'|u e{r m3>,?=c֩WV-`#{cn-%Bv=,1!4]T_ a͝dR%-L㝿a#>Zwyr{e @橻n#QBdl5 ۾ٵb=HR7L]#ؐڔ4ƃUN>a'{ѺT_h-yhӋe~}] eHvY/4]Xv<94mA/s۷u?L8cEz;ڇ!h#e 蕫zK@fV_ϝFxMD&W!g/=F_+4+uPh2-yD ʾja6Q 3bĩ L].Axo}wG ffҬdC 6SC" #xu! ^ 0KqάBR)="y??em O%x^_҈DC W1Xe'4n)Z'uEFBPf РL9q HAQ&gr_nm:j'IwG-hfwu؞n=7񛈈k:Q-CvUJ&rW-.3XLͷ8W꜔ G޸?Z8ID0m]O%D6h:@z _]y-F;9 RsfeL@j/ő57ڻ0#&bOޔ=ߑTUI=14& nQ"lf@m@#l,ҌP+f`+e Oh]\PqsˍB/DAH {Uu|(甦Ds{.{ gx٧= N)G"žϪw4# e}=pal1wRPY1;vexBY"z#X}ӌ '7KmJgZOZ骇jub؅Y*l=ڞa$Ph!,${y9E`n7ϥGviu3Ԋ n}JٟfN7)D%y#5٢޵|mnIGb[\f E]TVlD_+.{!i;yI}1H+Tpy^c?kx-<ƒa&ϖUG]n4irfQkqDtF]03 nh6gC[|vWCɺfa7[N[6 ["٤0n[ɟI<)'h'< noܻlJ` MAM i-;`Ə:?Ȣ) "=n择)t{29އ}rSk@)ŲNj5e-qS~r?BQ2 >ڨgn\Bǣ()ZຏStK nv[["GԴ E%VJcVlAe4,W6:loE<@6 i pQtyۈINbp@oT:}.ƠgqH*C_*e+'84!"FԱ]ܲbֿ 8B -"τ0^xK7wğ7Pіh|0!1w`ΙW9wHfR\-2ihied:;и蠞) AX1qQkZ=B3?m`ifziúucԽe9yp!l3Yku.jdA>?0Q2MQ`5 $ ޾Wѝ{JFU8.Dk\n)VRFYI Z.0dԥRZ6:-=h:2\Mկrzի]G7jO"5 NȰ 8)M}Yk$F/1p*mCa @0d L=y[d])ȿס95/W| $!I[Vn_-eH_VBYlH ۚxVL4^OW,m4c?OHxomz#ԃ޼؁~ԣr*%v \$PɄxMqQHUdgP)ip XW8Dl"j`iGK$]OJcfLm!OДAQENB)unAYHmk"Ib6'c#DpFa=C/f´^J^MOc Y< kC+<׏__޶ex<Kl/q$?#d<0h@m̔>t~i{C%Ѹ U,/qpFp2 qI^{i/V(:#&7fhկc#P&JҞV㬒! aBV >l.EkEۨuNub3dCLh#5"XĆOGgR4J /9 wAr&&0/ՏUs)px?0w-Zb`8PhX5R3p'bF6zlC)ػ^%ray5>L\L=RR5ϲX)I$^F>tf]`/B%HVOEt |LzT#ޡcb,f1'9 c ietݟKdۋ`_GY,Q X.fvqxMyOa_qdk4ΤRue~mCJgG+$&?B̕(7|th; lh(t3QsK5{$uOġ^˳𡁁u zCE۳7PX`qq&},{jZ^'~FrFڳ>twlAD)i![* ! YΗ5Z3{`9vM7/w&5L+sh9ŕw^S.V9_ƢլW>%x{hV]q[45 Y)JЎE{V'I iCD6) C@&&[峌[Sy|}&- _]O!Ɛ'a^cuɲ̉xr:RpW-&vU~$ܴ+_d$DEa*O ?rnj<7byՅ4Z·P F*캖0fL꼴-}*3y5DAPǟՑ=;bM֜R^btkNAx֕z ܟ 8.rZ3m Y壡0V׽C|.SODOZ?"\4gW*nu˗ws64Ӄ!#o8^d*nVfp1} p6O^̵˟z;(f Zo L/ /%f|7 %EOÅ ׹@hH:eY="dbdnL<[,Qc˿(Uu90h> &v#1R' ݻ!cg@~=kP ݟUSAfZ%AWDY /R2mu4DŽ8O hh[fSW MR[ǜ I9!SPI,Fχ JR/*fζ4%Vi0XM^JEδK{‘?ՌlfM 4$!]*NECί g ` {>= }w ,BK3*zU |ُ{<}O7=I+vXtm=EA .tPI(Yiao'GN:osW2_G'Թx8@h%9bS[80BdKXgQڤtt^e7*S˕I_YR RL::.n-lIv4_;bBFzEn9lq'zG_֤uݜ|`@Jpܤatϫ9U/ZS2%x&^b&:VR2J]!^]/^:*yx~셊pMw'rS!޵xIgP\+ވeaThp S0`?}*!;,SU՝J厭hLXϋh-VȽ;|:[;|$p)vSl x YFk5wo%Eo7{3 `J29UkjQe_[sh4I5 e8ϯڑ6BmɭJlyW=bunCj1_aob&bŦk_ܜcWѷ/)=ǪRnÀ)N2 qѝgpM (zcе%f81ג>q ڑmsW E.Bw 6$%yqL2{ ToNAwf? k{H8-X&PunY3'7ʈ[lTtwۈ ˵~NN7_X40gFAw{#{PH0'~sWVF;/V{g s3 'GY=#K1v r$#ۢGI֬L(HdrV{&+2 3hbJ ֏-<sHnrSڮD眣:Z aաuCS \-RSpڃ$;_ W?/8ctG{SHr{ ?FRg:˔*0ձڝ2/QQ}I`R&E ?PBB[ԭQ$낥AFMmblnlV&U"޲CW 3PBǣtVw;ȕKL~zu Nł8pf-w*4j*x0l.oZxol=?}ת99^ y"WOx-Fx~G|ЃJ!9tOޥg[|u}N(#e'.ӵvW֥$8*b8& |cpeKYXqzgݡ#6ѹy듬M)xqT]T;gle8 -螈J|*]# 5Ldt2|8\ve[qwnQʞWE $9@LchKfZJ# [Z;L '>B3N 8{kpdKvk7@މsEπ4 èOs'rnnj¤E]3s=^hykQϭhaHǏa;lH@]ѡ2LtOڎ;c3ҭ?mM% &z=\mwC7YjѺ.d#ٶ} DΜ%\\R$=CA t6V/q.n y2R}'n3l|ݎw W[e>ô?zIw+F2-ELי,M"7 HV:۟TnUM/aڡ ",t/8\a#z3|gtrdѶ#҃ =}bdMqA1*GFVq'597 V.d9  lf"!},&M9y!KncE(lV =MdZ I[}A2ۃ|区LzATݖ=/0z7zc&JCIE =>5awlXA k7kPHeV%:ZeʎZ"-7nЄA5xA @onʸIJr^ߨU`0n"½a},$myIbsEkIlB9VY%b ق=e\7;ZSʹBX-LÚM'tgl 伈MZ)a]iϲ2Py/(:ծO+ϻ5Ifvwf(yXMjHU[-bh7W g~e;oYz'jn6(I@VJV 4뭽oHznk] 2'Ҩm.Ä7,-V˙~?H&Gz-q@xIA@)1Z\l*.@" DAɆ~d2(ARUMgW9DD*O^V}b* q01}ml۠?SdqK5F@doY_x!E!xVqB/W13ȼ1:0I]*%T1'v#Hy䁆e푛_t=ae&9˟H8<ޫz R1{iLJ_;-m=_S^L_~N})kǤy=#G?uگa'V m}%3x=_sjwI^T%άV*P^j*"^+(Xll!e WYäaYrrDA` k?&39٢ˣ.pDE >4%af61f(_eTf9ҙ./rk0n5#':EY_["IuC@#ƃCjDC)?Lg!ȆkϩazZ8:/zs}J%M_yʂ{grL'!vd_Cg a[5tILn Y ^ߡ+yiL*fln&?xL")GG5)sBwu)eiB@rֽ`12g\'*(7yo!p{SY[y(sG !x~df|wYe a L0|hIZ5t^A؎inloap/c;d~Os/\&Q>ZhU+j*߆vԈ%T^{Ix=Ɲn/>3z~ mrc GZ0tT8ҥbYk،GBq#dͣGVO[on{:6%)CJ1AGz9|Xrjg:PZԸo`cVP;𩱠YpΨ jvګ1ƴ`a>Gbw5Xݪ9.4koȉ*˜4`XPvr$2dE>kI|dt)2aD;`'{Y:H*PK3\D>3 Ϝ6Bɢ~=Ͷ{ }}@X! :A16Yr0Dns70)2h*C`WD:i[Bm2wA%Uʶ͊۷dbi l$]O#"KOPa?LT|0% uH uXNz,,u8#&IĦS;˼} RTQIn]\8rz6rMFl@I;Ym=BH}h ؤ}E| !T 7F%zBGXJW]6=utǎR\sv/v%HRlTGgbI\bF4AA$\;W=8ڝ;Ӏ-ic("\=GP `wufEB>IF"kǫe>ei*J*i.3;F{;ΘSgPFm7XK"KI-F"N8ε1E{W=!9fw^QړQn,LKm>9 v;}d;IBc;y\a|dDreڐI6uID_oq{- wb4Z˝iEy*_e% W*S X_4hRŌ~>`x";K֣r",*(w%rG*{Pk.\7B^bJ 5a1{ys13hrϻHY"ז5tRfm3s!_v_.˪q3WGWYVJy'tY}a\,>n #ςGt ]\Mu4+ץBL{f.,@׍P\V^3Asq͛uT Q콀gXMܵ[YhŎ5ډl!Vc;6 Md^3ޭMҸ}Ӭ3 ,*V+dY^|?v! i[8?3N_XN/Nj/F?NP${6O9uو 'eւ6vlxTRwZ!/u/lJLwFmYFty.uT⌓IX;"]Qπ<0gyz3E nl Vc,Yyϵk a45iR&9}TQs83&+Q,}OhWrV6&Yz&vׂC M|qYtNV 2c4E4&1k.d]  zbF%X;0dYJ ]hUu|,,,=H0%d%mP0uV3'";ջmA@FVP-b6FSȝTN $`?m+ xuMDBw,h~+NFQ@B:kI&]MZo~7kE] =Z)""f^F 9pN\d9-Bsn$h;j/I vlǮ!;[Tۅ_tUXHFc H>4eb^j%,x%`z`nSG~< ʝ*XJ9֏:ht{y6e{!z W/ M͏dەvjf` h$$ n/}85[kzGc採`N0et Co3/ ƯZEnR=Lh 7{IZ?Rl}x5ҸuՇCwI0%>:L.ÜDSd!#{lUZ2xEp)GhyJPl^ ȘDSvR(phU Yn+q1+zzyx;GD-!"#Pi{}<`,Xv8|ⵒ^|o#;24 >bT@gg2XЄ%%A$;tv3Uq+y1[ ۇE Z\QǤiZc'[<&y*nnή(qeUo}(YKK#T*6&VZgE_}~_5U$]vĈ7kzP˜¸XTk`Eǡӓy'q@̊8:-9)p8%9SH2'q@%JA /ktkIu/qNv d(D =@O"X$732ha_ 8l׊Lrf'?dn<X\ k )RZ̢0B2wM{ 8KQSuVui+ ^c$=X@a|:4$Dtle .خ~rC}hRp\ț,`)P(M\ ϒCm>QYv^/ c&YdžsB@̕zQ[\;;8Rj"npTzRh3ܴl(k},m7 U*n_'ۧ=)S[ d,Kb>0.C8~O9Y,&޼soQbG;SObHg4)6uw8(QX:?:_Nus`DP%>h]•3Col^u_U \x@)ZqX<, iÈDz5綵[Mv-n:n$SMqvguyFUм;9#\k Fs {׭R[NY9`wހނ/-%N*#/Пl)p!I0Xqjpf|_OC§v0h3%dK\y7Ds1w/s z sxZ.XnOD0p\~7o~hBؘR/{p5N!:'l{r(:eQ7F>R)\^ScA ӃSi">^:N!su ?SR|uΐan:ٯ26nIp"]C)+aI`b/=TVPr^]b_}|R;zOSPíTD?u'ɓOj^׾m}j~ > L${x|@╂hJftޑTuk1wMM~>BĤMꛠW4[xV攚BkGh:ѱ`%2beB{7gצ 9.-IڑD9+6TR/$_kk{?[JNc+qEV֎=MG jOuE%9(W՝ j}[1; B_Sv-d:A ?3 "=X[9iREhKNu:+L6,'bV_%Nc2FEBf- &^1dӝu*bPŜ^W39C3~zDŮf6ԃ%}x }t"~ >~$\Ksi K-SO?g}_vO ,S"}bc\4?urwYM˲"\q>l9ߊZ\J#i =ف41Uc܊@Uή:Y݁$j$LyyM0&LkQNR n0IY%ZFh~vV0;NB}cD߫۳t1oSH+a֡} xZCzJ7Muz_ G ˰/O.ݿ4ofȰ֩ ک1^>!GAA\J&xO=W-ƽP69v̼щE1{;{NK )vuk 3җalꞑ(&IjG.*^[[mhoy{|Cĉ+kI,rj% L?Ҵ^(b
+>ۣ8(Ugb)~M~8\8,-E ]#MV!ay5G`,%Z@к6~ITe#EY*A7hr 2"mv3yFUծ_]Y%͑366v?@ 1z^g”(dˀZxT?6ɂ[>:d<- Ng.-aA 8v۩ʒBCTa9`fR@i(u}i>"~JFKo ~Mg,;R Ô yxW9 )}Q3?ٶK/p 䬌^b#}ЃҚv nwlnvu67 B<@VrBJ}yTOɤp'6!%27vI@ E\l盖~կFIeq7ATU<ر.'@nZT jsz`-D8rg`;s0S ٨zR@+[#jb'."c}qx.u-\+*cƒaXB5v+{Z\$cs0t(]ZhBpQמb16tI{XщRk@kr-.$Pݦc`t`X.Yo0ɬNO+S+u:au5)dT?ŤZo~Fb\])LDJwl}YQ_ ޟWd8^Ƹ⬣S5r#'NX:yNI<"O ػL/nWMQ31Bg2b`}Fk؄*"{D*r.o楱o; !򿰩AY}xWn.w [$n_ˋ6/jtUS3ah#V_3y<' L_>dvqi;^jl" 9qW8jeQvYmJ¬41rMnPuH8MTCl3N/w$$Rҁ~h/;qpdѠ-} ^:R5oXȓm|N~z" 0SF})#5xeaT ͡J)쯂ҶՈ~շ*$Jb+8:$s$OR3SXBlN8qf|p ߾_T iGʥtIJ'a/udB>ٛvUq-w+c9`W%U"q\m*f3Ѯ2jx I/P;Nnp31ee`QÌ