haproxy-2.0.10+git0.ac198b92-lp150.2.16.1<>,e]PY/=„\_y*Q^7>GxZH˕(MpO+&'jCS{0!;qJB}tyk`b V| )L4/ 0hDEV>+;E!_hIxeY+M9)аc#r"vkX;ψt۽Nױ*=}zx H>ȿSt A2_XjskˬAU) bF/fyGC ġLO?Od  , b + Df~ #l}`} Z} T} H} 5} 6P}8D}:}=/=d}?X?-@L-D~-(D8Dg9Fg:N|g=1>1?1@1B1F1G2 }H4}I5}X6tY6Z7[7 \7L}]9@}^@bC cCdDFeDKfDNlDPuDd}vFXwJ}xL}yM#zNNNNNNNNChaproxy2.0.10+git0.ac198b92lp150.2.16.1The Reliable, High Performance TCP/HTTP Load BalancerHAProxy implements an event-driven, mono-process model which enables support for very high number of simultaneous connections at very high speeds. Multi-process or multi-threaded models can rarely cope with thousands of connections because of memory limits, system scheduler limits, and lock contention everywhere. Event-driven models do not have these problems because implementing all the tasks in user-space allows a finer resource and time management. The down side is that those programs generally don't scale well on multi-processor systems. That's the reason why they must be optimized to get the most work done from every CPU cycle.]PYcloud136O/openSUSE Leap 15.0openSUSEGPL-3.0+ and LGPL-2.1+http://bugs.opensuse.orgProductivity/Networking/Web/Proxyhttp://www.haproxy.org/linuxx86_64getent group haproxy >/dev/null || /usr/sbin/groupadd -r haproxy getent passwd haproxy >/dev/null || \ /usr/sbin/useradd -g haproxy -s /bin/false -r \ -c "user for haproxy" -d /var/lib/haproxy haproxy 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 haproxy.service ; do sysv_service="${service%.*}" touch "/var/lib/systemd/migrated/$sysv_service" || : done else for service in haproxy.service ; do # The tag file might have been left by a preceding # update (see 1059627) rm -f "/run/rpm-haproxy-update-$service-new-in-upgrade" if [ ! -e "/usr/lib/systemd/system/$service" ]; then touch "/run/rpm-haproxy-update-$service-new-in-upgrade" fi done for service in haproxy.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 if [ "$YAST_IS_RUNNING" != "instsys" ]; then if /usr/bin/systemctl is-active --quiet apparmor.service; then /sbin/apparmor_parser -r -T -W /etc/apparmor.d/usr.sbin.haproxy &> /dev/null || : fi fi 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 haproxy.service || : fi elif [ "$FIRST_ARG" -gt 1 ]; then for service in haproxy.service ; do if [ ! -e "/run/rpm-haproxy-update-$service-new-in-upgrade" ]; then continue fi rm -f "/run/rpm-haproxy-update-$service-new-in-upgrade" if [ ! -x /usr/bin/systemctl ]; then continue fi /usr/bin/systemctl preset "$service" || : done for service in haproxy.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 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 haproxy.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 haproxy.service ) || : fi 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 haproxy.service ) || : fi else # package uninstall for service in haproxy.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 fiFV"  7 -E B q!X&h\I;_ % $ e 5%?R - FFC '!L  6y='5qk3{1]T:yBFSHDgD Hb@EFeIeqvv10 ".T~}yw9 >A聠A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A]PQ]PQ]PQ]PQ]PQ]PS]PS]PQ]PT]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]PQ]O]O]q]q]q]q]q]q]q]q]q]O]q]O]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]q]PT]q]PQ]PQ]PQ11f9339571329a5ab34e17dccd6386ca3e39822c947c947a1af61a5e1db657dd5794e09695c029721bdea4a5d35a95c5cecda0b5dbbec6069c9857296ed72ad8f01ce194a1cec2f808b0b91d07274b5cb27118d5fa6e5c02268cc3ea3956f63cf044b159de4752bd81a5eddae3490cf481a0ce11ae01500b829736ac92e90b711a5d0d7c8e44ffea7f4d199946bc31b251bf22a9e1da5f518b4530c570457b338472ca8d60948e79248d3cad8926a63267393e825d426fb86daceabcc1c4963cd4917a80520d52ac07e2081817885231aca6034582f1a1f9b0b74bbead60f5435e4fc84f09772e2709978cb149d231ddfb60e7417a0ded4f332c8fd75e7578c3647f068a16d842175410d4b41da5c3f57306aacb74217500d4fa8822f550bfd94739782b06489350a37a8d3753d97f4d34021a3ef3b595ee43b74d762d35c3bce5120fc7e8f576ad299158bbde68e8cd56425b1dda1427e43a2292ecb2cc583da1682cb28a8690cb90edeaa61f3d0207e8f282b7a50be46e5aa37606339f9c270dac87bce9b7afa4e7e050acac78b9077b860a18da82f617b554680dbccdfc6e62c9edd7608ff2b88cda9e0e6803dab5c6042e10e67b4415698ae2dbd5411380c4fce4f65e4df4b3154b05e8e7b99e54c8122438898b831768bca002f00c352e41f6182db04ddbf65fba6a7ce42b578f2cedc51305b1afe87a8a0dfffd41f413e8ac8a342e7ac6f97f864fde1ccadd0f194443ac722e159be552514d8e4990b97680e76bd08d98b6faf160fbbbcc21bbdc6040de51fecb06d2a98ef1f90dad3a41e55ca50b1d34079e1c723ab335b9e4c74b4e21a958aafb18b38ecf11a9658c1c2371e2effd1ceb80d1087f6b36194312860f79c135ded8c129490078beac53daec4e7e15c5a9dd9590395722f38df3faae087f02f388ae1dd4594a0d4a1fb5a2286746a00d5986be9390f3c532811a97f884a8d99e970515e9c7ec2e05824e6307a254873823854929a072c6ea5f18c7b58348eb53a77314d4db606c737461f9dedcd550de481fcf0a25b3dde843e082dc377e21604024710f8cc662b0de60beeab05b3c2918107f640cce6fcdfcc2287974bc840b28d5f20d8f0d79f2c1238ffa2e010c4fb6c2672074a0ee92816189cd71df18d515ca85e08b53e91501378065efcbc5006ad6b13ccb8655a586332d43723469435d1be34ba0caf0d5f40a2f8b1a15ed36f0fdeab5d27c6d77c5e8a5efa5c4473589bae29ab49409abda03d2f9d0338e447654aab22b5ac618036191fcc912c4b271d3be121a3f8cfb068541d854071ef50acf6f6a955d8b31c8c3f72aa00572964ece1cbcdd589cddcf0eb6f9bf7e48e73c9404f5aaa8ac5b2c346c5b5532d6f3affb8ca2c2ac1872c8b126c4180905a63b6db5b242a9b0c66159f10755eecb2b07d4baba5dbfd471d0e4d028ff74221702450647838cef1bc7e5b1bfda273e17c98d2f0aa8c9bf186b70f99bc04c0a6818e513c09cf7e0f59ec748d2b78d3d169e33d52452fa4abe24327087af4a1625bc4da102f9e9d8c07f8372e31caf7420df9755f2b43af7056fa11101dfe12cc7ab96535e642a76d86d66bbc983d82700aafbbb30dd5392d6ccad52646d932f52e68df43417ff910f45aa52157702f4d2a4a5b875545e047f434c9fa69cf584383c71c67cfea0349f9c236b4bffac3da6f9bd7b320d35b59dc05bac1e1a0791101f4e4db2772fcf852353e921a38ede1d0705d1be9983ad4c7bff1a15755124dd229112203f34fffe1ed8951a4a1fe0832af9aaf02f0bd8b0591e59efe86cf5e2d6767ab90bdb1446d49393862fba2f761dd5a23c43373e17336c799602bc1ef35d2208c0519c1288516147a703f16c2837eb8802deb27f83beaa0ac0c626a1ac4d322f40710ace0faa6a234f7225c8f9704de47de79cdd537eca68c228b43fd0815a63c0c25edfdb2973e1e35f80f11e96b54c1ba6ebd99acb147cfd530085d317dcfa3a574346dd436ea7655ee1d7f6a7ffda00c8f82489af9d16d2add72376d97d081e70f90eaa106d8bc3db6d06f8b03f45537630643d37c3edc7cde5d24edae1fcfad953e8fef11c5a28bd9238051b48c45ad1b9058b36c93c4b34ccb9b1971585ba7ef6f21c033ed03c266ac171adf29977e7bbf3004fe7ddb9db7630752f8fdc6898f7c99a99eaeeac5213627ecb093df9c82f56175dc72bffe5e5980187af2a62dd053f390b109be3302d60b9190c3def0b805208283c645afc7c8ec346db063190f2637913788e018e2d2d9ad655e114d7deb94cbbc3315b631e8bd8597b846c53ebd6cb979681b9e77e5e1380b22d4fb367d57ec069bc2dc6f1d39bf4c74fccfd6c106f31720454e8965253cd2c5dda78adf2692dfa3f28821753af9ec235dbbedff69ad9ff24a2c3902377ea1f1c596959b8fb7d912dc5b54429fd37ab30e43b21ff0664c6d44ae47c51a9f47a739cf08dceff350d26fc8fb3d1e2c5c87fc6c7effb84e7f3f675a653b1b9801e232c9ca6ac66afda4395d057cc3cf0b13c5ac788c7643000990331ccb7684a6ec449c32fc9f35dde6e1d407d7f7d220aa0d09e820f069280bc5f8d51ffac6b28fc85e73eb2e859285526d6a176a9d4d631354266f84d7e943a30cfb3d6a5e9e58d7292331ae7a3d767cba8d40707250a7b2c96a9d3666184e5457c91710d04510ec2ff397a49c0f54eb9d16cc9d36e6ea07195e479a7239d286250bf9f17ecd99b62da2466fd505e2dc04193d6a633b36dab155b8c041578f1dbac701433be27f3e4432f3d65a047768592d7047f4507686e97b04bf5b066283789212096f1869a469a5bce224ab0be03aef9969a56a496e6bbd2f27d2ab365fa43020a375a523ae493ced3779dc72819c4ab859b6799fb9abfa6dbd3774c5a724d2004b0c36ddd7620ce70bbecd320bfecd8dd15384410c0af22ff1a43078c84dcb81b2d5f77c2e7f1835e232e7519fc70a9d5ae57995e069afc89379f17a2ee209afeaf58a62fe426d0b09bec61c8ddc3ebad4e250cbcc3e86dc9317e03223b905db8b3fe3704d478c4cb56b9cfc59c5f11634d9f332892179a99552c488c521b6968aba98a2e0a3aa790a167c550056678bcca805f5f35c85eb9df481317f1fedaa293244d54fc1bc0527ef867316eda08e96d1708307243a4268d575e352e8f15c9f53015f7e66b4f614087fe73c2d61c0b8491f194c4dfd665a46251c54f89c8d904726f6bb790c5c1ec009b85371563d22bb4780732b6192969e137abaab72b67620cd6513b00dabc1659121ddd5fa373c6b0956ebb50eb0af8066dd3628579c61638e42b066be5437788e3769da6372403ef5b062d13520dd34598a6d75db6958c831f6061c6ee57f6088f04434f7979cfca879931da27a2e4bb428c1ad46ef08c7a04586792f367a11d434522de1204b84871e2886848361e2258a2827c46ed9580fb8805a8f08997c58551992bf3076ecd574b8da972232cc571070ee027e8f1b598f9c5a07026373351a67c8c18e38c83f59f5de06e05a8d8008438b8e468383381bcbc57c5fc9cc1904c10f3752f22d451fde8d389d36e194e1edffead5e5ebe7967736f691ea94b34ae69f20ddff61fbfebc83fe0216b0f98a8053051d458b11cff6425cb1cb4ce6a5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62aa20dcc3994852776b8552b9820c1a562196da33b81b224d4441c9fcdec3ca01476bf9cf3d942c6bd5ae671bb085c16b62b1610a6f4e3c278bbd0624b5127164ae7ea3f2d38da55e9226339e79c7e8dccd9449fd2d46d6f959c898c0157da420649e853756c3bbc50bd78c1e86484ab1e10ad8306b47a02b8022874c5927485055ef30b40bee05aee79617246a9758b90f5cb8937ad211f013b0de4d223a4b63e029e6537399d13acc661b4df591e7c58e23affa336f762e758a3cf56b33d81fdb421fa49f39eebee03d411b1dde856ed3581c8daaca7d77bf8b3ed236ec5396930b4f83326c0422614af504904ff6d6630c18345d83fe76e706619335c0e7089418b96e4805efc0cfa7ec523796f745d8f44cc62e814cdbdb9d8b60943f3f54eec0ded52ec03d1e500ca9f0acdb33653875f12e4348540c4d6d69aeefb269a3576850c0a699d2c1249eb119cf96a0b677426656367a6afef0e5b00a6cea6f46d7569c249f9dc0f0705da67e4ceeb4c398fce82f60279ce44075294f0e2cd53b76c85ba36bf1085b90cf2849180003347f3df9e88df2d3abf3837f7d408abaf24cd77e4f3b946be3e5a770bd33c6399fc2e06f3dd456c8085859a6dc20bdfd3e0d0024b6b9f2aff837f31b3eee39315d1195a26adea2269aca42603727845be2630dd24c803f6ca1824328fbc160690f9dcb99a4235531898d73827e6e3a9bd7700648f72f159454c31029bdaad74b68532a76681d217a23e254f43201430108b718bdf7ef1909bf1c0a307c8984ee00d08c86a237f640646f05d0d1bf2825d8ca0dc7bbd079159a6266c33c2ab4f99fc9a94539d8a4020cc070083534fb9c5e6a51f3f6b85d8b2092ecb89b20970240bee821d84938ef4b1cea408a1dd0ebb39257628aa1f6e175570127e3e2716b6b5529c780a92198755fff6973ef4ab38469a739c77ac5cfffc3f64452ccb7b5ca3dfdf4a23e9f937a47cb243158899d9521d01891ba5d10cd6fbcd162a52776a36514ca09dad6966db41ecb0b627362076e160b7814ec9b1406c78e89e16281331eb69a6f5ac21492414fea1d18b34195cec3ecefa11afc1ecc0b705f82e1365fcdc1f896d3c4978110913366d23c19f36a768a4f245953fc1fefe14bcadbf739cb3ea0c2e22cc93b70ff9c305e031bb4f50eaa35d72cff4e2ee4f74c6eb349a5b717516e2d97fbfa1fcb602777f67643e0717ca51fceaa25ac9e5ccc62e0c727dcf27796057201fb5fded56a25ff6ca288206d49cd3f68b69a7782142062defb6d40ac731cce51db00a2224f7e1f083590818d35142ac0614971f722ec764b2eb507b0b9ad50520a78355f9d7ab8dd71c/sbin/servicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroothaproxyhaproxyrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroothaproxyhaproxy-2.0.10+git0.ac198b92-lp150.2.16.1.src.rpmconfig(haproxy)haproxyhaproxy(x86-64)haproxy-1.5haproxy-doc @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shconfig(haproxy)libc.so.6()(64bit)libc.so.6(GLIBC_2.10)(64bit)libc.so.6(GLIBC_2.11)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.16)(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.5)(64bit)libc.so.6(GLIBC_2.6)(64bit)libcrypt.so.1()(64bit)libcrypt.so.1(GLIBC_2.2.5)(64bit)libcrypto.so.1.1()(64bit)libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)liblua5.3.so.5()(64bit)libpcre.so.1()(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)libpthread.so.0(GLIBC_2.3.4)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.2.5)(64bit)librt.so.1(GLIBC_2.3.3)(64bit)libssl.so.1.1()(64bit)libssl.so.1.1(OPENSSL_1_1_0)(64bit)libsystemd.so.0()(64bit)libsystemd.so.0(LIBSYSTEMD_209)(64bit)libz.so.1()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)systemdsystemdsystemdsystemdvim2.0.10+git0.ac198b92-lp150.2.16.13.0.4-14.6.0-14.0-15.2-14.14.1]@]@]@]@]@](]]^][][][]@1@]$]@]@]@]\-@\ac\73\[[[[[[v[ug@[3|@[3|@[0@[ @Z?ZȲZZ%ZZU@UcUPUG_@UD@U4@U/@UTE@TD@TԬT@T@T@TdTxcTuTuTmT_W@TSyTPTBV@TAmrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.dekgronlund@suse.comkgronlund@suse.comkukuk@suse.deMarcus Rueckert Marcus Rueckert mrueckert@suse.dekgronlund@suse.comkgronlund@suse.comJan Engelhardt Marcus Rueckert mrueckert@suse.dekgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comMarcus Rueckert Marcus Rueckert Marcus Rueckert Marcus Rueckert mrueckert@suse.dekgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.commrueckert@suse.dekgronlund@suse.commrueckert@suse.dejengelh@inai.dekgronlund@suse.comkgronlund@suse.comkgronlund@suse.commrueckert@suse.demrueckert@suse.dekgronlund@suse.comkgronlund@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.dekgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.commrueckert@suse.dekgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.dee.istomin@edss.eemrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.dedmueller@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.comkgronlund@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.dekgronlund@suse.commrueckert@suse.deaspiers@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.deledest@gmail.commrueckert@suse.dekgronlund@suse.comLed mrueckert@suse.dekgronlund@suse.commrueckert@suse.dekgronlund@suse.com- Update to version 2.0.10+git0.ac198b92: (bsc#1157712) (bsc#1157714) * [RELEASE] Released version 2.0.10 * SCRIPTS: git-show-backports: add "-s" to proposed cherry-pick commands * SCRIPTS: create-release: show the correct origin name in suggested commands * BUG/MAJOR: mux-h2: don't try to decode a response HEADERS frame in idle state * BUG/MAJOR: h2: make header field name filtering stronger * BUG/MAJOR: h2: reject header values containing invalid chars * MINOR: ist: add ist_find_ctl() * BUG/MINOR: ssl: fix curve setup with LibreSSL * BUG/MINOR: cli: fix out of bounds in -S parser * DOC: Add documentation about the use-service action * DOC: Add missing stats fields in the management manual * BUG/MINOR: mux-h1: Adjust header case when chunked encoding is add to a message * BUG/MINOR: mux-h1: Fix a UAF in cfg_h1_headers_case_adjust_postparser() * MEDIUM: mux-h1: Add the support of headers adjustment for bogus HTTP/1 apps * REGTEST: vtest can now enable mcli with its own flag * MINOR: stats: Report max times in addition of the averages for sessions * BUG/MINOR: stream-int: Fix si_cs_recv() return value * MINOR: contrib/prometheus-exporter: Add a param to ignore servers in maintenance * MINOR: contrib/prometheus-exporter: filter exported metrics by scope * MINOR: contrib/prometheus-exporter: report the number of idle conns per server * BUG/MINOR: contrib/prometheus-exporter: Rename some metrics * MINOR: contrib/prometheus-exporter: Report metrics about max times for sessions * MINOR: counters: Add fields to store the max observed for {q,c,d,t}_time * MINOR: stream: Remove the lock on the proxy to update time stats * MINOR: freq_ctr: Make the sliding window sums thread-safe * BUG/MINOR: http-ana: Properly catch aborts during the payload forwarding * BUG/MINOR: mux-h1: Fix tunnel mode detection on the response path * BUILD: debug: Avoid warnings in dev mode with -02 because of some BUG_ON tests * BUG/MEDIUM: stream-int: Don't loose events on the CS when an EOS is reported * BUILD/MINOR: ssl: fix compiler warning about useless statement * BUG/MINOR: peers: "peer alive" flag not reset when deconnecting. * BUG/MEDIUM: mworker: don't fill the -sf argument with -1 during the reexec- Update to version 2.0.9+git6.26b7b800: * BUG/MINOR: ssl: fix crt-list neg filter for openssl < 1.1.1 * BUG/MINOR: peers: Wrong null "server_name" data field handling. * MINOR: peers: Add debugging information to "show peers". * MINOR: peers: Add TX/RX heartbeat counters. * MINOR: peers: Alway show the table info for disconnected peers.- Update to version 2.0.9+git1.caf02113: * BUG/MINOR: init: fix set-dumpable when using uid/gid- Update to version 2.0.9+git0.efac87ee (bsc#1154980) (CVE-2019-18277): * [RELEASE] Released version 2.0.9 * BUG/MINOR: mux-h1: Don't set CS_FL_EOS on a read0 when receiving data to pipe * BUG/MEDIUM: filters: Don't call TCP callbacks for HTX streams * BUG/MINOR: log: limit the size of the startup-logs * BUILD: contrib/da: remove an "unused" warning * MINOR: memory: also poison the area on freeing * CLEANUP: session: slightly simplify idle connection cleanup logic * BUG/MEDIUM: Make sure we leave the session list in session_free(). * BUG/MEDIUM: listeners: always pause a listener on out-of-resource condition * BUG/MINOR: queue/threads: make the queue unlinking atomic * DOC: management: fix typo on "cache_lookups" stats output * DOC: management: document cache_hits and cache_lookups in the CSV format * DOC: management: document reuse and connect counters in the CSV format * BUG: dns: timeout resolve not applied for valid resolutions * BUG/MINOR: action: do-resolve now use cached response * BUG/MEDIUM: stream: Be sure to release allocated captures for TCP streams * MINOR: doc: http-reuse connection pool fix * BUG/MEDIUM: stream: Be sure to support splicing at the mux level to enable it * BUG/MEDIUM: mux-h1: Disable splicing for chunked messages * BUG/MEDIUM: mux-h2: immediately report connection errors on streams * BUG/MEDIUM: mux-h2: immediately remove a failed connection from the idle list * BUG/MEDIUM: mux-h2: report no available stream on a connection having errors * BUG/MINOR: config: Update cookie domain warn to RFC6265 * BUG/MEDIUM: servers: Only set SF_SRV_REUSED if the connection if fully ready. * BUG/MEDIUM: stream_interface: Only use SI_ST_RDY when the mux is ready. * MINOR: mux: Add a new method to get informations about a mux. * BUG/MINOR: spoe: fix off-by-one length in UUID format string * BUG/MAJOR: stream-int: Don't receive data from mux until SI_ST_EST is reached * BUG/MINOR: mux-h2: Don't pretend mux buffers aren't full anymore if nothing sent * BUG/MINOR: cli: don't call the kw->io_release if kw->parse failed * MINOR: tcp: avoid confusion in time parsing init * BUG/MINOR: mux-h2: do not emit logs on backend connections * MINOR: config: warn on presence of "\n" in header values/replacements- Update to version 2.0.8+git0.60e6020c: * [RELEASE] Released version 2.0.8 * BUG/MEDIUM: pattern: make the pattern LRU cache thread-local and lockless * BUG/MINOR: stick-table: fix an incorrect 32 to 64 bit key conversion * BUG/MINOR: ssl: fix memcpy overlap without consequences. * BUG/MEDIUM: http: unbreak redirects in legacy mode * BUG/MINOR: mux-h2: also make sure blocked legacy connections may expire * BUG/MINOR: sample: Make the `field` converter compatible with `-m found` * BUG/MINOR: cache: alloc shctx after check config * BUG/MINOR: stick-table: Never exceed (MAX_SESS_STKCTR-1) when fetching a stkctr * BUG/MINOR: ssl: Fix fd leak on error path when a TLS ticket keys file is parsed * BUG/MINOR: mworker/cli: reload fail with inherited FD * BUG/MEDIUM: ssl: 'tune.ssl.default-dh-param' value ignored with openssl > 1.1.1 * CLEANUP: bind: handle warning label on bind keywords parsing. * CLEANUP: ssl: make ssl_sock_load_dh_params handle errcode/warn * CLEANUP: ssl: make ssl_sock_put_ckch_into_ctx handle errcode/warn * CLEANUP: ssl: make ssl_sock_load_cert*() return real error codes * REGTEST: mcli/mcli_show_info: launch a 'show info' on the master CLI * BUG/MEDIUM: mux_pt: Only call the wake emthod if nobody subscribed to receive. * BUG/MEDIUM: mux_pt: Don't destroy the connection if we have a stream attached. * Revert e8826ded5fea3593d89da2be5c2d81c522070995. * BUG/MAJOR: idle conns: schedule the cleanup task on the correct threads * BUG/MEDIUM: mux_pt: Make sure we don't have a conn_stream before freeing. * BUG/MINOR: tcp: Don't alter counters returned by tcp info fetchers * BUG/MINOR: mworker/ssl: close openssl FDs unconditionally * BUG/MINOR: http-htx: Properly set htx flags on error files to support keep-alive * MINOR: version: make the version strings variables, not constants * BUG/MINOR: WURFL: fix send_log() function arguments * BUG/MINOR: mux-h1: Capture ignored parsing errors * BUG/MINOR: mux-h1: Mark the output buffer as full when the xfer is interrupted * BUG/MINOR: chunk: Fix tests on the chunk size in functions copying data * BUG/MEDIUM: htx: Catch chunk_memcat() failures when HTX data are formatted to h1 * BUILD: ssl: wrong #ifdef for SSL engines code * BUG/MINOR: ssl: abort on sni_keytypes allocation failure * BUG/MINOR: ssl: free the sni_keytype nodes * BUG/MINOR: ssl: abort on sni allocation failure * BUG/MEDIUM: applet: always check a fast running applet's activity before killing * MINOR: stats: mention in the help message support for "json" and "typed" * DOC: fix typo in Prometheus exporter doc * DOC: clarify some points around http-send-name-header's behavior * BUG/MEDIUM: cache: make sure not to cache requests with absolute-uri * BUG/MINOR: peers: crash on reload without local peer. * BUG/MEDIUM: mux-h2: do not enforce timeout on long connections * BUILD: ebtree: make eb_is_empty() and eb_is_dup() take a const * MINOR: mux-h2: add a per-connection list of blocked streams * BUG/MINOR: action: do-resolve does not yield on requests with body * BUG/MEDIUM: lua: Store stick tables into the sample's `t` field * BUG/MINOR: lua: Properly initialize the buffer's fields for string samples in hlua_lua2(smp|arg) * BUG/MINOR: stats: Add a missing break in a switch statement- Update to version 2.0.7+git0.1909aa1e: * [RELEASE] Released version 2.0.7 * BUG/MEDIUM: namespace: fix fd leak in master-worker mode * DOC: Fix documentation about the cli command to get resolver stats * BUG/MINOR: contrib/prometheus-exporter: Return the time averages in seconds * MINOR: stats: Add the support of float fields in stats * MINOR: spoe: Support the async mode with several threads * MINOR: spoe: Improve generation of the engine-id * BUG/MEDIUM: spoe: Use a different engine-id per process * BUG/MINOR: mux-h1: Do h2 upgrade only on the first request * BUG/MAJOR: mux_h2: Don't consume more payload than received for skipped frames * BUG/MINOR: mux-h2: Use the dummy error when decoding headers for a closed stream * BUG/MEDIUM: mux-h2: don't reject valid frames on closed streams * BUG/MEDIUM: namespace: close open namespaces during soft shutdown * BUG/MINOR: mux-h2: do not wake up blocked streams before the mux is ready * BUG/MEDIUM: checks: make sure the connection is ready before trying to recv * BUG/MEDIUM: stream-int: Process connection/CS errors during synchronous sends * BUG/MINOR: stream-int: Process connection/CS errors first in si_cs_send() * BUG/MEDIUM: check/threads: make external checks run exclusively on thread 1 * BUG/MAJOR: mux-h2: Handle HEADERS frames received after a RST_STREAM frame * BUG/MINOR: mux-h2: Be sure to have a connection to unsubcribe * BUG/MEDIUM: stick-table: Properly handle "show table" with a data type argument- Update to version 2.0.6+git0.58706ab4: * [RELEASE] Released version 2.0.6 * MINOR: sample: Add UUID-fetch * BUG/MINOR: Missing stat_field_names (since f21d17bb) * BUG/MINOR: backend: Fix a possible null pointer dereference * BUG/MINOR: acl: Fix memory leaks when an ACL expression is parsed * BUG/MINOR: filters: Properly set the HTTP status code on analysis error * BUG/MEDIUM: http: also reject messages where "chunked" is missing from transfer-enoding * BUG/MINOR: ssl: always check for ssl connection before getting its XPRT context * BUG/MINOR: listener: Fix a possible null pointer dereference * MINOR: stats: report the number of idle connections for each server * BUG/MEDIUM: connection: don't keep more idle connections than ever needed * BUG/MAJOR: ssl: ssl_sock was not fully initialized. * BUG/MINOR: lb/leastconn: ignore the server weights for empty servers * MINOR: contrib/prometheus-exporter: Report DRAIN/MAINT/NOLB status for servers * BUG/MINOR: checks: do not uselessly poll for reads before the connection is up * BUG/MINOR: checks: make __event_chk_srv_r() report success before closing * BUG/MINOR: checks: start sending the request right after connect() * BUG/MINOR: checks: stop polling for write when we have nothing left to send * BUG/MEDIUM: cache: Don't cache objects if the size of headers is too big * BUG/MEDIUM: cache: Properly copy headers splitted on several shctx blocks * BUG/MINOR: mux-h1: Be sure to update the count before adding EOM after trailers * BUG/MINOR: mux-h1: Don't stop anymore input processing when the max is reached * BUG/MINOR: mux-h1: Fix size evaluation of HTX messages after headers parsing * BUG/MINOR: h1: Properly reset h1m when parsing is restarted * BUG/MINOR: http-ana: Reset response flags when 1xx messages are handled * BUG/MEDIUM: peers: local peer socket not bound. * BUG/MEDIUM: proto-http: Always start the parsing if there is no outgoing data * BUG/MEDIUM: url32 does not take the path part into account in the returned hash. * BUG/MEDIUM: listener/threads: fix an AB/BA locking issue in delete_listener() * BUG/MINOR: mworker: disable SIGPROF on re-exec * DOC: fixed typo in management.txt * BUG/MEDIUM: mux-h1: do not report errors on transfers ending on buffer full * BUG/MEDIUM: mux-h1: do not truncate trailing 0CRLF on buffer boundary * MEDIUM: debug: make the thread dump code show Lua backtraces * MINOR: lua: export applet and task handlers * MINOR: tools: add append_prefixed_str() * MINOR: debug: indicate the applet name when the task is task_run_applet()- Use %license instead of %doc [bsc#1082318] - Recommend apparmor, it's not required to work (make haproxy useable in a container)- enable prometheus exporter- enable verbose make output- Update to version 2.0.5+git0.d905f49a: * [RELEASE] Released version 2.0.5 * BUG/MEDIUM: mux_pt: Don't call unsubscribe if we did not subscribe. * MINOR: fd: make sure to mark the thread as not stuck in fd_update_events() * BUG/MINOR: stats: Wait the body before processing POST requests * BUG/MEDIUM: lua: Fix test on the direction to set the channel exp timeout * BUG/MEDIUM: mux_h1: Don't bother subscribing in recv if we're not connected. * BUG/MINOR: Fix prometheus '# TYPE' and '# HELP' headers * BUG/MINOR: lua: fix setting netfilter mark * BUG/MEDIUM: proxy: Don't use cs_destroy() when freeing the conn_stream. * BUG/MEDIUM: proxy: Don't forget the SF_HTX flag when upgrading TCP=>H1+HTX. * BUG/MINOR: buffers/threads: always clear a buffer's head before releasing it * MINOR: ssl: ssl_fc_has_early should work for BoringSSL * BUG/MINOR: ssl: fix 0-RTT for BoringSSL * BUG/MEDIUM: stick-table: Wrong stick-table backends parsing. * [RELEASE] Released version 2.0.4 * BUG/MEDIUM: checks: make sure to close nicely when we're the last to speak * BUG/MINOR: mux-h2: always reset rcvd_s when switching to a new frame * BUG/MINOR: mux-h2: always send stream window update before connection's * BUG/MEDIUM: mux-h2: do not recheck a frame type after a state transition * BUG/MINOR: mux-h2: do not send REFUSED_STREAM on aborted uploads * BUG/MINOR: mux-h2: use CANCEL, not STREAM_CLOSED in h2c_frt_handle_data() * BUG/MINOR: mux-h2: don't refrain from sending an RST_STREAM after another one * BUG/MEDIUM: fd: Always reset the polled_mask bits in fd_dodelete(). * BUG/MEDIUM: proxy: Make sure to destroy the stream on upgrade from TCP to H2 * BUG/MEDIUM: mux-h2: split the stream's and connection's window sizes * BUG/MEDIUM: mux-h2: unbreak receipt of large DATA frames * BUG/MINOR: stream-int: also update analysers timeouts on activity * BUG/MAJOR: http/sample: use a static buffer for raw -> htx conversion * BUG/MEDIUM: lb-chash: Ensure the tree integrity when server weight is increased * MINOR: wdt: also consider that waiting in the thread dumper is normal * BUG/MINOR: debug: fix a small race in the thread dumping code- Update to version 2.0.3+git14.0ff395c1 (bsc#1142529) (CVE-2019-14241): * BUG/MAJOR: queue/threads: avoid an AB/BA locking issue in process_srv_queue() * BUG/MINOR: htx: Fix free space addresses calculation during a block expansion * BUG/MINOR: hlua: Only execute functions of HTTP class if the txn is HTTP ready * MINOR: hlua: Add a flag on the lua txn to know in which context it can be used * MINOR: hlua: Don't set request analyzers on response channel for lua actions * BUG/MEDIUM: hlua: Check the calling direction in lua functions of the HTTP class * BUG/MINOR: hlua/htx: Reset channels analyzers when txn:done() is called * DOC: improve the wording in CONTRIBUTING about how to document a bug fix * BUG/MINOR: log: make sure writev() is not interrupted on a file output * BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to send. * BUG/MEDIUM: lb-chash: Fix the realloc() when the number of nodes is increased * BUILD: threads: add the definition of PROTO_LOCK * BUG/MINOR: proxy: always lock stop_proxy() * BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff * [RELEASE] Released version 2.0.3 * BUG/CRITICAL: http_ana: Fix parsing of malformed cookies which start by a delimiter * BUG/MINOR: http_htx: Support empty errorfiles * BUG/MINOR: http_ana: Be sure to have an allocated buffer to generate an error * BUG/MEDIUM: tcp-checks: do not dereference inexisting conn_stream * BUG/MINOR: mux-h1: Close server connection if input data remains in h1_detach() * BUG/MEDIUM: mux-h1: Trim excess server data at the end of a transaction * BUG/MINOR: checks: do not exit tcp-checks from the middle of the loop * BUG/MINOR: session: Send a default HTTP error if accept fails for a H1 socket * BUG/MINOR: session: Emit an HTTP error if accept fails only for H1 connection * BUG/MINOR: debug: Remove flags CO_FL_SOCK_WR_ENA/CO_FL_SOCK_RD_ENA * DOC: htx: Update comments in HTX files * BUG/MINOR: hlua: Make the function txn:done() HTX aware * BUG/MINOR: cache/htx: Make maxage calculation HTX aware * BUG/MINOR: http_htx: Initialize HTX error messages for TCP proxies * BUG/MINOR: http_fetch: Fix http_auth/http_auth_group when called from TCP rules * BUG/MINOR: backend: do not try to install a mux when the connection failed * BUG/MEDIUM: http/htx: unbreak option http_proxy * BUG/MEDIUM: checks: Don't attempt to receive data if we already subscribed. * BUG/MINOR: dns: remove irrelevant dependency on a client connection * [RELEASE] Released version 2.0.2 * BUG/MEDIUM: threads: cpu-map designating a single thread/process are ignored * BUG/MEDIUM: tcp-check: unbreak multiple connect rules again * BUG/MINOR: mux-pt: do not pretend there's more data after a read0 * BUG/MEDIUM: streams: Don't redispatch with L7 retries if redispatch isn't set. * BUG/MEDIUM: streams: Don't give up if we couldn't send the request. * BUG/MINOR: mux-h1: Correctly report Ti timer when HTX and keepalives are used * BUG/MEDIUM: mux-h1: Don't release h1 connection if there is still data to send * BUG/MAJOR: listener: fix thread safety in resume_listener() * MINOR: task: introduce work lists * BUG/MEDIUM: servers: Fix a race condition with idle connections. * DOC: Fix typos and grammer in configuration.txt * BUG/MEDIUM: da: cast the chunk to string. * BUG/MEDIUM: checks: Don't attempt to read if we destroyed the connection. * BUG/MINOR: server: Be really able to keep "pool-max-conn" idle connections * BUG/MEDIUM: fd/threads: fix excessive CPU usage on multi-thread accept- Update to version 2.0.1+git27.5db881ff: * BUG/MINOR: ssl: revert empty handshake detection in OpenSSL <= 1.0.2 * BUG/MEDIUM: servers: Don't forget to set srv_cs to NULL if we can't reuse it. * BUG/MEDIUM: stream-int: Don't rely on CF_WRITE_PARTIAL to unblock opposite si * MINOR: stream-int: Factorize processing done after sending data in si_cs_send() * BUG/MINOR: mux-h1: Don't process input or ouput if an error occurred * BUG/MEDIUM: mux-h1: Handle TUNNEL state when outgoing messages are formatted * BUG/MEDIUM: lb_fas: Don't test the server's lb_tree from outside the lock * BUG/MEDIUM: http/applet: Finish request processing when a service is registered * MINOR: action: Add the return code ACT_RET_DONE for actions * BUG/MINOR: contrib/prometheus-exporter: Don't try to add empty data blocks * MINOR: server: Add "no-tfo" option. * BUG/MEDIUM: sessions: Don't keep an extra idle connection in sessions. * BUG/MEDIUM: servers: Authorize tfo in default-server. * BUG/MEDIUM: connections: Make sure we're unsubscribe before upgrading the mux. * BUG/MINOR: contrib/prometheus-exporter: Respect the reserve when data are sent * BUG/MINOR: hlua/htx: Respect the reserve when HTX data are sent * BUG/MEDIUM: channel/htx: Use the total HTX size in channel_htx_recv_limit() * BUG/MINOR: hlua: Don't use channel_htx_recv_max() * BUG/MINOR: contrib/prometheus-exporter: Don't use channel_htx_recv_max() * BUG/MEDIUM: checks: Make sure the tasklet won't run if the connection is closed. * BUG/MEDIUM: connections: Always call shutdown, with no linger. * BUG/MINOR: mux-h1: Don't return the empty chunk on HEAD responses * BUG/MINOR: mux-h1: Skip trailers for non-chunked outgoing messages * BUG/MEDIUM: checks: unblock signals in external checks * BUG/MEDIUM: mux-h1: Always release H1C if a shutdown for writes was reported * BUG/MEDIUM: ssl: Don't attempt to set alpn if we're not using SSL. * BUG/MINOR: mworker/cli: don't output a \n before the response * BUG/MINOR: mux-h1: Make format errors during output formatting fatal * BUG/MEDIUM: mux-h1: Use buf_room_for_htx_data() to detect too large messages * BUG/MEDIUM: proto_htx: Don't add EOM on 1xx informational messages * BUG/MINOR: log: Detect missing sampling ranges in config * BUG/MINOR: memory: Set objects size for pools in the per-thread cache * BUG/MAJOR: mux-h1: Don't crush trash chunk area when outgoing message is formatted * BUG/MINOR: htx: Save hdrs_bytes when the HTX start-line is replaced * BUG/MEDIUM: ssl: Don't do anything in ssl_subscribe if we have no ctx. * BUG/MEDIUM: connections: Always add the xprt handshake if needed. * BUG/MEDIUM: stream_interface: Don't add SI_FL_ERR the state is < SI_ST_CON. * BUG/MINOR: spoe: Fix memory leak if failing to allocate memory * BUG/MEDIUM: mworker/cli: command pipelining doesn't work anymore * BUG/MEDIUM: mworker: don't call the thread and fdtab deinit * BUG/MINOR: mworker-prog: Fix segmentation fault during cfgparse * BUG/MAJOR: sample: Wrong stick-table name parsing in "if/unless" ACL condition. * BUG/MEDIUM: lb_fwlc: Don't test the server's lb_tree from outside the lock * BUG/MEDIUM: mux-h2: Remove the padding length when a DATA frame size is checked * BUG/MEDIUM: mux-h2: Reset padlen when several frames are demux- Correct version line, which should be 2.0.0+git6.- allow the new master socket path in the apparmor profile- Update to version 2.0.0~git6.41dc8432: * BUG/MEDIUM: htx: Fully update HTX message when the block value is changed * MINOR: htx: Add the function htx_change_blk_value_len() * BUG/MEDIUM: compression: Set Vary: Accept-Encoding for compressed responses * BUG/MINOR: mux-h1: Add the header connection in lower case in outgoing messages * BUG/MINOR: lua/htx: Make txn.req_req_* and txn.res_rep_* HTX aware * BUG/MEDIUM: h2/htx: Update data length of the HTX when the cookie list is built- Update to version 2.0.0~git0.ba23630a: - new internal native HTTP representation called HTX, was already in 1.9 and is now enabled by default in 2.0 ; - end-to-end HTTP/2 support including trailers and continuation frames, as needed for gRPC ; HTTP/2 may also be upgraded from HTTP/1.1 using the H2 preface; - server connection pooling and more advanced reuse, with ALPN protocol negotiation (already in 1.9) ; - layer 7 retries, allowing to use 0-RTT and TCP Fast Open to the servers as well as on the frontend ; - much more scalable multi-threading, which is even enabled by default on platforms where it was successfully tested ; by default, as many threads are started as the number of CPUs haproxy is allowed to run on. This removes a lot of configuration burden in VMs and containers ; - automatic maxconn setting for the process and the frontends, directly based on the number of available FDs (easier configuration in containers and with systemd) ; - logging to stdout for use in containers and systemd (already in 1.9). Logs can now provide micro-second resolution for some events ; - peers now support SSL, declaration of multiple stick-tables directly in the peers section, and synchronization of server names, not just IDs ; - In master-worker mode, the master process now exposes its own CLI and can communicate with all other processes (including the stopping ones), even allowing to connect to their CLI and check their state. It is also possible to start some sidecar programs and monitor them from the master, and the master can automatically kill old processes that survived too many reloads ; - the incoming connections are load-balanced between all threads depending on their load to minimize the processing time and maximize the capacity (already in 1.9) ; - the SPOE connection load-balancing was significantly improved in order to reduce high percentiles of SPOA response time (already in 1.9) ; - the "random" load balancing algorithm and a power-of-two-choices variant were introduced ; - statistics improvements with per-thread counters for certain things, and a prometheus exporter for all our statistics; - lots of debugging help, it's easier to produce a core dump, there are new commands on the CLI to control various things, there is a watchdog to fail cleanly when a thread deadlock or a spinning task are detected, so overall it should provide a better experience in field and less round trips between users and developers (hence less stress during an incident). - all 3 device detection engines are now compatible with multi-threading and can be build-tested without any external dependencies ; - "do-resolve" http-request action to perform a DNS resolution on any, sample, and resolvers now support relying on /etc/resolv.conf to match the local resolver ; - log sampling and balancing : it's now possible to send 1 log every 10 to a server, or to spread the logging load over multiple log servers; - a new SPOA agent (spoa_server) allows to interface haproxy with Python and Lua programs ; - support for Solaris' event ports (equivalent of kqueue or epoll) which will significantly improve the performance there when dealing with numerous connections ; - some warnings are now reported for some deprecated options that will be removed in 2.1. Since 2.0 is long term supported, there's no emergency to convert them, however if you see these warnings, you need to understand that you're among their extremely rare users and just because of this you may be taking risks by keeping them ; - A new SOCKS4 server-side layer was provided ; it allows outgoing connections to be forwarded through a SOCKS4 proxy (such as ssh -D). - priority- and latency- aware server queues : it is possible now to assign priorities to certain requests and/or to give them a time bonus or penalty to refine control of the traffic and be able to engage on SLAs. - internally the architecture was significantly redesigned to allow to further improve performance and make it easier to implement protocols that span over multiple layers (such as QUIC). This work started in 1.9 and will continue with 2.1. - the I/O, applets and tasks now share the same multi-threaded scheduler, giving a much better responsiveness and fairness between all tasks as is visible with the CLI which always responds instantly even under extreme loads (started in 1.9) ; - the internal buffers were redesigned to ease zero-copy operations, so that it is possible to sustain a high bandwidth even when forwarding HTTP/1 to/from HTTP/2 (already in 1.9) ;- Update to version 1.8.20~git0.6fb9fadc: * [RELEASE] Released version 1.8.20 * BUG/MINOR: spoe: Don't systematically wakeup SPOE stream in the applet handler * BUG/MINOR: da: Get the request channel to call CHECK_HTTP_MESSAGE_FIRST() * BUG/MINOR: 51d: Get the request channel to call CHECK_HTTP_MESSAGE_FIRST() * BUG/MEDIUM: thread/http: Add missing locks in set-map and add-acl HTTP rules * BUG/MINOR: acl: properly detect pattern type SMP_T_ADDR * BUG/MEDIUM: maps: only try to parse the default value when it's present * BUG/MAJOR: http_fetch: Get the channel depending on the keyword used * MINOR: skip get_gmtime where tm is unused * BUILD/MINOR: listener: Silent a few signedness warnings. * BUG/MEDIUM: listener: make sure the listener never accepts too many conns * BUG/MEDIUM: listener: use a self-locked list for the dequeue lists * MAJOR: listener: do not hold the listener lock in listener_accept() * BUG/MEDIUM: list: fix incorrect pointer unlocking in LIST_DEL_LOCKED() * BUG/MEDIUM: list: fix again LIST_ADDQ_LOCKED * BUG/MEDIUM: list: correct fix for LIST_POP_LOCKED's removal of last element * MINOR: list: make the delete and pop operations idempotent * BUG/MEDIUM: list: add missing store barriers when updating elements and head * BUG/MEDIUM: list: fix LIST_POP_LOCKED's removal of the last pointer * BUG/MEDIUM: list: fix the rollback on addq in the locked liss * BUG/MEDIUM: lists: Properly handle the case we're removing the first elt. * MINOR: lists: Implement locked variations. * BUG/MINOR: threads: fix the process range of thread masks * BUG/MEDIUM: spoe: Return an error if nothing is encoded for fragmented messages * BUG/MEDIUM: spoe: Queue message only if no SPOE applet is attached to the stream * BUG/MEDIUM: pattern: assign pattern IDs after checking the config validity * BUILD: connection: fix naming of ip_v field * BUILD: use inttypes.h instead of stdint.h * BUG/MEDIUM: peers: fix a case where peer session is not cleanly reset on release. * MINOR: cli: start addresses by a prefix in 'show cli sockets' * BUG/MINOR: cli: correctly handle abns in 'show cli sockets' * BUILD: Makefile: disable shared cache on AIX 5.1 * BUILD: makefile: add _LINUX_SOURCE_COMPAT to build on AIX-51 * BUILD: makefile: fix build of IPv6 header on aix51 * MINOR: tools: make memvprintf() never pass a NULL target to vsnprintf() * BUILD: makefile: work around an old bug in GNU make-3.80 * BUG/MAJOR: checks: segfault during tcpcheck_main * DOC: The option httplog is no longer valid in a backend. * BUG/MEDIUM: ssl: ability to set TLS 1.3 ciphers using ssl-default-server-ciphersuites * BUG/MINOR: http/counters: fix missing increment of fe->srv_aborts * BUG/MAJOR: stats: Fix how huge POST data are read from the channel * BUG/MAJOR: spoe: Fix initialization of thread-dependent fields * BUG/MEDIUM: threads/fd: do not forget to take into account epoll_fd/pipes * MEDIUM: threads: Use __ATOMIC_SEQ_CST when using the newer atomic API. * BUG/MINOR: ssl: fix warning about ssl-min/max-ver support * BUG/MEDIUM: 51d: fix possible segfault on deinit_51degrees() * BUG/MEDIUM: logs: Only attempt to free startup_logs once. * BUG/MINOR: listener: keep accept rate counters accurate under saturation * BUG/MAJOR: listener: Make sure the listener exist before using it.- Update to version 1.8.19~git0.ebf033b4: * [RELEASE] Released version 1.8.19 * BUG/MINOR: config: Reinforce validity check when a process number is parsed * BUG/MAJOR: stream: avoid double free on unique_id * BUG/MAJOR: spoe: Don't try to get agent config during SPOP healthcheck * BUG/MEDIUM: server: initialize the idle conns list after parsing the config * BUG/MEDIUM: spoe: initialization depending on nbthread must be done last * BUG/MINOR: lua: initialize the correct idle conn lists for the SSL sockets * BUG/MINOR: spoe: do not assume agent->rt is valid on exit * DOC: ssl: Stop documenting ciphers example to use * DOC: ssl: Clarify when pre TLSv1.3 cipher can be used * [RELEASE] Released version 1.8.18 * BUG/MINOR: config: make sure to count the error on incorrect track-sc/stick rules * BUG/MAJOR: spoe: verify that backends used by SPOE cover all their callers' processes * BUG/MAJOR: config: verify that targets of track-sc and stick rules are present * BUG/MINOR: config: fix bind line thread mask validation * BUG/MEDIUM: stream: Don't forget to free s->unique_id in stream_free(). * BUG/MEDIUM: mux-h2: do not close the connection on aborted streams * MINOR: connstream: have a new flag CS_FL_KILL_CONN to kill a connection * MINOR: stream-int: add a new flag to mention that we want the connection to be killed * MINOR: stream-int: expand the flags to 32-bit * BUG/MEDIUM: mux-h2: wait for the mux buffer to be empty before closing the connection * BUG/MEDIUM: mux-h2: make sure never to send GOAWAY on too old streams * BUG/MEDIUM: mux-h2: fix two half-closed to closed transitions * BUG/MEDIUM: mux-h2: wake up flow-controlled streams on initial window update * MINOR: xref: Add missing barriers. * BUG/MINOR: stream: don't close the front connection when facing a backend error * SCRIPTS: add the issue tracker URL to the announce script * SCRIPTS: add the slack channel URL to the announce script * BUG/MINOR: deinit: tcp_rep.inspect_rules not deinit, add to deinit * BUG/MINOR: spoe: corrected fragmentation string size * DOC: nbthread is no longer experimental. * BUG/MINOR: hpack: return a compression error on invalid table size updates * BUG/MINOR: mux-h2: make it possible to set the error code on an already closed stream * BUG/MINOR: mux-h2: headers-type frames in HREM are always a connection error * BUG/MINOR: mux-h2: CONTINUATION in closed state must always return GOAWAY * MINOR: h2: declare new sets of frame types * MINOR: h2: add a bit-based frame type representation * DOC: mention the effect of nf_conntrack_tcp_loose on src/dst * BUG/MEDIUM: ssl: Fix handling of TLS 1.3 KeyUpdate messages * BUG/MINOR: check: Wake the check task if the check is finished in wake_srv_chk() * BUG/MINOR: server: don't always trust srv_check_health when loading a server state * BUG/MINOR: stick_table: Prevent conn_cur from underflowing * BUG/MINOR: backend: BE_LB_LKUP_CHTREE is a value, not a bit * BUG/MINOR: backend: balance uri specific options were lost across defaults * BUG/MINOR: backend: don't use url_param_name as a hint for BE_LB_ALGO_PH * BUG/MEDIUM: ssl: missing allocation failure checks loading tls key file * DOC: Be a bit more explicit about allow-0rtt security implications. * BUG/MEDIUM: ssl: Disable anti-replay protection and set max data with 0RTT. * BUG/MAJOR: cache: fix confusion between zero and uninitialized cache key * DOC: http-request cache-use / http-response cache-store expects cache name- Update to version 1.8.17~git0.e89d25b2 (bsc#1121283) (CVE-2018-20615): * BUG/CRITICAL: mux-h2: re-check the frame length when PRIORITY is used * BUG/MEDIUM: lua: dead lock when Lua tasks are trigerred * BUG/MINOR: lua: bad args are returned for Lua actions * BUG/MINOR: lua: Return an error if a legacy HTTP applet doesn't send anything * BUG/MEDIUM: cli: make "show sess" really thread-safe * MINOR: stream/cli: report more info about the HTTP messages on "show sess all" * MINOR: stream/cli: fix the location of the waiting flag in "show sess all" * MINOR: lb: allow redispatch when using consistent hash * BUG/MEDIUM: server: Also copy "check-sni" for server templates. * BUG/MEDIUM: mux-h2: mark that we have too many CS once we have more than the max * MINOR: mux-h2: only increase the connection window with the first update * BUG/MAJOR: stream-int: Update the stream expiration date in stream_int_notify() * BUG/MEDIUM: dns: overflowed dns name start position causing invalid dns error * BUG/MEDIUM: dns: Don't prevent reading the last byte of the payload in dns_validate_response() * BUG/MINOR: logs: leave startup-logs global and not per-thread- Update to version 1.8.15~git0.6b6a350a: (bsc#1119419) (CVE-2018-20103) (VUL-0) (bsc#1119368) (CVE-2018-20102) * DOC: Update configuration doc about the maximum number of stick counters. * BUG: dns: Fix off-by-one write in dns_validate_dns_response() * BUG: dns: Fix out-of-bounds read via signedness error in dns_validate_dns_response() * BUG: dns: Prevent out-of-bounds read in dns_validate_dns_response() * BUG: dns: Prevent out-of-bounds read in dns_read_name() * BUG: dns: Prevent stack-exhaustion via recursion loop in dns_read_name * DOC: refer to check-sni in the documentation of sni * DOC: clarify that check-sni needs an argument. * MINOR: servers: Free [idle|safe|priv]_conns on exit. * MINOR: stats: report the number of active jobs and listeners in "show info" * BUG/MINOR: mux-h2: advertise a larger connection window size * BUG/MINOR: mux-h2: refrain from muxing during the preface * BUG/MINOR: hpack: fix off-by-one in header name encoding length calculation * BUG/MEDIUM: sample: Don't treat SMP_T_METH as SMP_T_STR. * BUG/MINOR: lb-map: fix unprotected update to server's score * BUG/MINOR: cfgparse: Fix the call to post parser of the last sections parsed * BUG/MINOR: cfgparse: Fix transition between 2 sections with the same name * BUG/MINOR: ssl: ssl_sock_parse_clienthello ignores session id * BUG/MEDIUM: hpack: fix encoding of "accept-ranges" field * BUG/MINOR: config: Copy default error messages when parsing of a backend starts * BUG/MEDIUM: Make sure stksess is properly aligned. * BUG/MINOR: config: better detect the presence of the h2 pattern in npn/alpn * BUG/MEDIUM: auth/threads: use of crypt() is not thread-safe * BUG/MAJOR: http: http_txn_get_path() may deference an inexisting buffer * BUG/MINOR: only auto-prefer last server if lb-alg is non-deterministic * BUG/MINOR: only mark connections private if NTLM is detected * DOC: cache: Missing information about "total-max-size" * BUG/MINOR: ssl: Wrong usage of shctx_init(). * BUG/MINOR: cache: Wrong usage of shctx_init(). * BUG/MINOR: cache: Crashes with "total-max-size" > 2047(MB). * BUG/MEDIUM: h2: Close connection if no stream is left an GOAWAY was sent. * BUG/MEDIUM: pools: Fix the usage of mmap()) with DEBUG_UAF. * DOC: fix reference to map files in MAINTAINERS * MINOR: peers: use defines instead of enums to appease clang. * MINOR: cfgparse: Write 130 as 128 as 0x82 and 0x80. * MINOR: server: Use memcpy() instead of strncpy(). * CLEANUP: stick-tables: Remove unneeded double (()) around conditional clause * MINOR: lua: all functions calling lua_yieldk() may return * BUG/MEDIUM: threads: make sure threads_want_sync is marked volatile * BUG/MEDIUM: threads: fix thread_release() at the end of the rendez-vous point * BUG/MEDIUM: stream: don't crash on out-of-memory * BUG/MEDIUM: mworker: segfault receiving SIGUSR1 followed by SIGTERM. * BUG/MINOR: checks: queues null-deref * BUG/MEDIUM: Cur/CumSslConns counters not threadsafe. * MEDIUM: ssl: add support for ciphersuites option for TLSv1.3 * BUG/MEDIUM: buffers: Make sure we don't wrap in buffer_insert_line2/replace2. * BUG/MINOR: backend: check that the mux installed properly * BUG/MINOR: connection: avoid null pointer dereference in send-proxy-v2 * DOC: clarify force-private-cache is an option * MINOR: threads: Make sure threads_sync_pipe is initialized before using it.- also fix the systemd case for the apparmor_reload change- only reload the apparmor profile on newer distros, seems older distros do not have apparmor-rpm-macros yet- only use network namespaces on 12.x and newer, failed to build on sle11- guard all parts referring to systemd to fix build on sle 11- Update to version 1.8.14~git0.52e4d43b: (bsc#1108683) (CVE-2018-14645) * [RELEASE] Released version 1.8.14 * BUG/CRITICAL: hpack: fix improper sign check on the header index value * BUG/MINOR: cli: make sure the "getsock" command is only called on connections * BUG/MINOR: tools: fix set_net_port() / set_host_port() on IPv4 * BUG/MEDIUM: patterns: fix possible double free when reloading a pattern list * DOC: Fix typos in lua documentation * BUG/MINOR: server: Crash when setting FQDN via CLI. * BUG/MAJOR: kqueue: Don't reset the changes number by accident. * BUG/MEDIUM: snapshot: take the proxy's lock while dumping errors * BUG/MINOR: http/threads: atomically increment the error snapshot ID * BUG/MINOR: dns: check and link servers' resolvers right after config parsing * BUG/MEDIUM: h2: fix risk of memory leak on malformated wrapped frames * BUG/MEDIUM: session: fix reporting of handshake processing time in the logs * BUG/MINOR: stream: use atomic increments for the request counter * MINOR: thread: implement HA_ATOMIC_XADD() * BUG/MEDIUM: ECC cert should work with TLS < v1.2 and openssl >= 1.1.1 * BUG/MEDIUM: dns/server: fix incomatibility between SRV resolution and server state file * BUG/MEDIUM: hlua: Don't call RESET_SAFE_LJMP if SET_SAFE_LJMP returns 0. * BUG/MAJOR: thread: lua: Wrong SSL context initialization. * BUG/MEDIUM: hlua: Make sure we drain the output buffer when done. * BUG/MEDIUM: lua: reset lua transaction between http requests * BUG/MEDIUM: mux_pt: dereference the connection with care in mux_pt_wake() * BUG/MINOR: lua: Bad HTTP client request duration. * BUG/MEDIUM: unix: provide a ->drain() function * DOC: Fix spelling error in configuration doc * BUG/MEDIUM: cli/threads: protect some server commands against concurrent operations * BUG/MEDIUM: cli/threads: protect all "proxy" commands against concurrent updates * BUG/MEDIUM: lua: socket timeouts are not applied * DOC: ssl: Use consistent naming for TLS protocols * DOC: dns: explain set server ... fqdn requires resolver * BUG/MINOR: map: fix map_regm with backref * BUG/MEDIUM: ssl: loading dh param from certifile causes unpredictable error. * BUG/MEDIUM: ssl: fix missing error loading a keytype cert from a bundle. * BUG/MINOR: ssl: empty connections reported as errors. * BUG/MEDIUM: cli: make "show fd" thread-safe * MEDIUM: hathreads: implement a more flexible rendez-vous point * BUG/MEDIUM: threads: fix the no-thread case after the change to the sync point * MINOR: threads: add more consistency between certain variables in no-thread case * BUG/MEDIUM: threads: fix the double CAS implementation for ARMv7 * MINOR: threads: Introduce double-width CAS on x86_64 and arm. * BUG/MEDIUM: lua: possible CLOSE-WAIT state with '\n' headers- Require apparmor-abstractions to reduce dependencies (bsc#1100787)- Update to version 1.8.13~git4.c1bfcd00: * MINOR: dns: new DNS options to allow/prevent IP address duplication * MINOR: dns: fix wrong score computation in dns_get_ip_from_response * BUG/MEDIUM: queue: prevent a backup server from draining the proxy's connections * BUG/MEDIUM: servers: check the queues once enabling a server * MEDIUM: proxy_protocol: Convert IPs to v6 when protocols are mixed * BUG/MEDIUM: threads: unbreak "bind" referencing an incorrect thread number * MINOR: threads: move "nbthread" parsing to hathreads.c * BUG/MEDIUM: threads: properly fix nbthreads == MAX_THREADS * BUG/MINOR: threads: Handle nbthread == MAX_THREADS. * BUG/MINOR: config: stick-table is not supported in defaults section * BUG/MEDIUM: h2: prevent orphaned streams from blocking a connection forever * BUG/MEDIUM: threads/sync: use sched_yield when available * BUG/MINOR: servers: Don't make "server" in a frontend fatal. * BUG/MEDIUM: stats: don't ask for more data as long as we're responding * BUG/MEDIUM: stream-int: don't immediately enable reading when the buffer was reportedly full * MINOR: h2: add the error code and the max/last stream IDs to "show fd" * BUG/MEDIUM: threads: Fix the exit condition of the thread barrier * MINOR: debug: Add checks for conn_stream flags * MINOR: debug: Add check for CO_FL_WILL_UPDATE * BUG/MINOR: http: Set brackets for the unlikely macro at the right place * BUG/MEDIUM: h2: make sure the last stream closes the connection after a timeout * BUG/MEDIUM: h2: never leave pending data in the output buffer on close * BUG/MEDIUM: h2: don't accept new streams if conn_streams are still in excess * MINOR: h2: add the mux and demux buffer lengths on "show fd" * MINOR: h2: keep a count of the number of conn_streams attached to the mux * BUG/MINOR: h2: remove accidental debug code introduced with show_fd function * MINOR: h2: implement a basic "show_fd" function * MINOR: mux: add a "show_fd" function to dump debugging information for "show fd" * BUG/MINOR: ssl: properly ref-count the tls_keys entries * MINOR: systemd: consider exit status 143 as successful- Update to version 1.8.12~git0.8a200c71: * MINOR: stick-tables: make stktable_release() do nothing on NULL * BUG/MAJOR: stick_table: Complete incomplete SEGV fix- Update to version 1.8.11~git0.1d6ef58d: * BUG/BUILD: threads: unbreak build without threads * BUG/MAJOR: Stick-tables crash with segfault when the key is not in the stick-table- Update to version 1.8.10~git0.ec17d7a9: * MINOR: threads: Be sure to remove threads from all_threads_mask on exit * BUG/MEDIUM: threads: Use the sync point to check active jobs and exit * BUG/MEDIUM: fd: Don't modify the update_mask in fd_dodelete(). * BUG/MAJOR: ssl: OpenSSL context is stored in non-reserved memory slot * BUG/MAJOR: ssl: Random crash with cipherlist capture * BUG/MINOR: lua: Segfaults with wrong usage of types. * BUG/MAJOR: map: fix a segfault when using http-request set-map * MINOR: lua: Increase debug information * BUG/MINOR: signals: ha_sigmask macro for multithreading * BUG/MINOR: don't ignore SIG{BUS,FPE,ILL,SEGV} during signal processing * BUG/MEDIUM: threads: handle signal queue only in thread 0 * BUG/MINOR: unix: Make sure we can transfer abns sockets on seamless reload. * BUG/MINOR: contrib/modsecurity: update pointer on the end of the frame * BUG/MINOR: contrib/mod_defender: update pointer on the end of the frame * BUG/MINOR: contrib/modsecurity: Don't reset the status code during disconnect * BUG/MINOR: contrib/mod_defender: Don't reset the status code during disconnect * BUG/MINOR: contrib/spoa_example: Don't reset the status code during disconnect * MAJOR: spoe: upgrade the SPOP version to 2.0 and remove the support for 1.0 * BUG/MEDIUM: lua/socket: Buffer error, may segfault * BUG/MEDIUM: lua/socket: Sheduling error on write: may dead-lock * BUG/MEDIUM: lua/socket: Notification error * BUG/MAJOR: lua: Dead lock with sockets * BUG/MEDIUM: lua/socket: wrong scheduling for sockets * MINOR: task/notification: Is notifications registered ? * BUG/MEDIUM: spoe: Return an error when the wrong ACK is received in sync mode * BUG/MEDIUM: stick-tables: Decrement ref_cnt in table_* converters * BUG/MEDIUM: lua/socket: Length required read doesn't work * BUG/MEDIUM: servers: Add srv_addr default placeholder to the state file * BUG/MEDIUM: fd: Only check update_mask against all_threads_mask.- Update to version 1.8.9~git9.6d82e611: * BUG/MEDIUM: cache: don't cache when an Authorization header is present (VUL-1) (bsc#1094846) (CVE-2018-11469) * BUG/MEDIUM: dns: Delay the attempt to run a DNS resolution on check failure. * BUG/MINOR: ssl/lua: prevent lua from affecting automatic maxconn computation * BUG/MEDIUM: contrib/modsecurity: Use network order to encode/decode flags * BUG/MEDIUM: contrib/mod_defender: Use network order to encode/decode flags * BUG/MEDIUM: spoe: Flags are not encoded in network order * BUG/MINOR: lua: Socket.send threw runtime error: 'close' needs 1 arguments. * BUG/MINOR: spoe: Mistake in error message about SPOE configuration * BUG/MEDIUM: ssl: properly protect SSL cert generation * BUG/MEDIUM: pollers: Use a global list for fd shared between threads. * BUG/MEDIUM: http: don't always abort transfers on CF_SHUTR * BUG/MINOR: lua: ensure large proxy IDs can be represented * BUG/MINOR: lua: schedule socket task upon lua connect() * BUG/MEDIUM: task: Don't free a task that is about to be run. * BUG/MINOR: map: correctly track reference to the last ref_elt being dumped * DOC/MINOR: clean up LUA documentation re: servers & array/table. * BUG/MINOR: lua: Put tasks to sleep when waiting for data * BUG/MEDIUM: threads: Fix the sync point for more than 32 threads * BUG/MINOR: checks: Fix check->health computation for flapping servers * BUG/MINOR: config: disable http-reuse on TCP proxies * BUG/MINOR: lua/threads: Make lua's tasks sticky to the current thread * BUG/MEDIUM: h2: implement missing support for chunked encoded uploads * MINOR: h2: detect presence of CONNECT and/or content-length * BUG/MEDIUM: lua: Fix segmentation fault if a Lua task exits * BUG/MINOR: log: t_idle (%Ti) is not set for some requests * BUG/MAJOR: channel: Fix crash when trying to read from a closed socket * BUG/MINOR: pattern: Add a missing HA_SPIN_INIT() in pat_ref_newid()- Update to version 1.8.8: * BUG/CRITICAL: h2: fix incorrect frame length check (VUL-0) (bsc#1089837) * MINOR: cli: Ensure the CLI always outputs an error when it should * BUG/MINOR: cli: Guard against NULL messages when using CLI_ST_PRINT_FREE * BUG/MEDIUM: kqueue: When adding new events, provide an output to get errors. * BUG/MINOR: http: Return an error in proxy mode when url2sa fails * BUG/MEDIUM: connection: Make sure we have a mux before calling detach(). * BUG/MEDIUM: threads: Fix the max/min calculation because of name clashes- Update to version 1.8.7: * [RELEASE] Released version 1.8.7 * MINOR: servers: Support alphanumeric characters for the server templates names * BUG/MAJOR: cache: always initialize newly created objects * [RELEASE] Released version 1.8.6 * BUG/MINOR: spoe: Don't release the context buffer in .check_timeouts callbaclk * BUG/MINOR: spoe: Initialize variables used during conf parsing before any check * BUG/MAJOR: cache: fix random crashes caused by incorrect delete() on non-first blocks * BUG/MINOR: fd: Don't clear the update_mask in fd_insert. * BUG/MINOR: cache: fix "show cache" output * BUG/MINOR: email-alert: Set the mailer port during alert initialization * BUG/MINOR: checks: check the conn_stream's readiness and not the connection * BUG/MEDIUM: h2: always add a stream to the send or fctl list when blocked * BUILD/MINOR: threads: always export thread_sync_io_handler() * BUG/MEDIUM: h2: don't consider pending data on detach if connection is in error * BUG/MEDIUM: h2/threads: never release the task outside of the task handler * MINOR: h2: fuse h2s_detach() and h2s_free() into h2s_destroy() * MINOR: h2: always call h2s_detach() in h2_detach() * BUG/MAJOR: h2: remove orphaned streams from the send list before closing * MINOR: h2: provide and use h2s_detach() and h2s_free() * CLEANUP: h2: rename misleading h2c_stream_close() to h2s_close() * BUG/MINOR: hpack: fix harmless use of uninitialized value in hpack_dht_insert * BUILD/MINOR: cli: fix a build warning introduced by last commit * MINOR: cli: make "show fd" report the mux and mux_ctx pointers when available * MINOR: cli/threads: make "show fd" report thread_sync_io_handler instead of "unknown" * BUILD/MINOR: fix build when USE_THREAD is not defined * BUG/MINOR: lua funtion hlua_socket_settimeout don't check negative values * BUG/MINOR: lua: the function returns anything- Update to version 1.8.5: * BUG/MINOR: listener: Don't decrease actconn twice when a new session is rejected * BUG/MINOR: h2: ensure we can never send an RST_STREAM in response to an RST_STREAM * BUG/MEDIUM: h2: properly account for DATA padding in flow control * DOC: don't suggest using http-server-close * DOC: log: more than 2 log servers are allowed * BUILD/BUG: enable -fno-strict-overflow by default * MINOR: log: stop emitting alerts when it's not possible to write on the socket * BUG/MEDIUM: threads/queue: wake up other threads upon dequeue * BUG/MINOR: tcp-check: use the server's service port as a fallback * BUG/MEDIUM: tcp-check: single connect rule can't detect DOWN servers * BUG/MINOR: lua: return bad error messages * BUG/MINOR: spoa-example: unexpected behavior for more than 127 args * BUG/MINOR: cli: Fix a crash when sending a command with too many arguments * BUG/MINOR: seemless reload: Fix crash when an interface is specified. * BUG/MINOR: dns: don't downgrade DNS accepted payload size automatically * BUG/MAJOR: threads/queue: Fix thread-safety issues on the queues management * BUG/MEDIUM: threads/unix: Fix a deadlock when a listener is temporarily disabled * BUG/MEDIUM: spoe: Remove idle applets from idle list when HAProxy is stopping * BUG/MINOR: force-persist and ignore-persist only apply to backends * BUG/MEDIUM: fix a 100% cpu usage with cpu-map and nbthread/nbproc * BUG/MINOR: cli: Fix a typo in the 'set rate-limit' usage * BUG/MINOR: cli: Fix a crash when passing a negative or too large value to "show fd" * BUG/MEDIUM: h2: also arm the h2 timeout when sending * BUG/MINOR: unix: Don't mess up when removing the socket from the xfer_sock_list. * BUG/MINOR: session: Fix tcp-request session failure if handshake. * MINOR: systemd: Add SystemD's SystemCallFilter option to the unit file * MINOR: systemd: Add SystemD's Protect*= options to the unit file * MINOR: systemd: Add section for SystemD sandboxing to unit file * BUG/MEDIUM: buffer: Fix the wrapping case in bi_putblk * BUG/MEDIUM: buffer: Fix the wrapping case in bo_putblk * BUG/MEDIUM: h2: always consume any trailing data after end of output buffers * MINOR: stats: display the number of threads in the statistics. * BUG/MINOR: h2: Set the target of dbuf_wait to h2c * MINOR: debug/pools: make DEBUG_UAF also detect underflows * BUG/MINOR: debug/pools: properly handle out-of-memory when building with DEBUG_UAF * DOC: cfgparse: Warn on option (tcp|http)log in backend * DOC: lua: new prototype for function "register_action()" * BUG/MEDIUM: ssl/sample: ssl_bc_* fetch keywords are broken. * BUG/MEDIUM: http: Switch the HTTP response in tunnel mode as earlier as possible * BUG/MINOR: ssl/threads: Make management of the TLS ticket keys files thread-safe * BUG/MINOR: init: Add missing brackets in the code parsing -sf/-st * BUG/MEDIUM: ssl: Shutdown the connection for reading on SSL_ERROR_SYSCALL * BUG/MEDIUM: ssl: Don't always treat SSL_ERROR_SYSCALL as unrecovarable. * BUG/MINOR: threads: fix missing thread lock labels for 1.8- if we lock down the permissions the home directory has to be owned by haproxy (bsc#1077716)- Avoid %__-type macro indirections. Remove redundant %clean section. Do not ignore errors from useradd.- Ensure haproxy home directory is not world readable (bsc#1077716)- Update to version 1.8.4 (bsc#1080069): * BUG/MINOR: config: don't emit a warning when global stats is incompletely configured * DOC: Mention -Ws in the list of available options * DOC: Describe routing impact of using interface keyword on bind lines * MINOR: init: emit warning when -sf/-sd cannot parse argument * BUG/MEDIUM: standard: Fix memory leak in str2ip2() * BUG/MINOR: time/threads: ensure the adjusted time is always correct * BUG/MEDIUM: spoe: Allow producer to read and to forward shutdown on request side * BUG/MEDIUM: spoe: Always try to receive or send the frame to detect shutdowns * BUG/MINOR: epoll/threads: only call epoll_ctl(DEL) on polled FDs * BUG/MINOR: threads: Update labels array because of changes in lock_label enum * BUG/MINOR: cli: use global.maxsock and not maxfd to list all FDs * CLEANUP: Fix typo in ARGT_MSK6 comment * BUG/MINOR: sample: Fix output type of c_ipv62ip * CLEANUP: sample: Fix outdated comment about sample casts functions * CLEANUP: sample: Fix comment encoding of sample.c * BUILD: kqueue/threads: Add test on MAX_THREADS to avoid warnings when complied without threads * BUILD: epoll/threads: Add test on MAX_THREADS to avoid warnings when complied without threads * MINOR: threads: Use __decl_hathreads instead of #ifdef/#endif * BUG/MINOR: kqueue/threads: Don't forget to close kqueue_fd[tid] on each thread * BUG/MEDIUM: checks: Don't try to release undefined conn_stream when a check is freed * BUG/MEDIUM: threads/server: Fix deadlock in srv_set_stopping/srv_set_admin_flag * BUG/MINOR: threads: always set an owner to the thread_sync pipe * MINOR: threads: Fix build when we're not compiling with threads. * BUG/MINOR: mworker: only write to pidfile if it exists * BUG/MEDIUM: threads/mworker: fix a race on startup * BUG/MEDIUM: kqueue/threads: use one kqueue_fd per thread * BUG/MEDIUM: epoll/threads: use one epoll_fd per thread * MINOR: fd: add a bitmask to indicate that an FD is known by the poller * BUG/MEDIUM: fd: maintain a per-thread update mask * BUG/MEDIUM: threads/polling: Use fd_cache_mask instead of fd_cache_num * MINOR: threads/fd: Use a bitfield to know if there are FDs for a thread in the FD cache * MINOR: global: add some global activity counters to help debugging * MINOR: threads: add a MAX_THREADS define instead of LONGBITS * MINOR: global/threads: move cpu_map at the end of the global struct * MINOR: servers: Don't report duplicate dyncookies for disabled servers. * BUG/MEDIUM: peers: fix expire date wasn't updated if entry is modified remotely. * BUG/MINOR: poll: too large size allocation for FD events * CONTRIB: debug: fix a few flags definitions * DOC: clarify the scope of ssl_fc_is_resumed * BUG/MEDIUM: stream: properly handle client aborts during redispatch * BUILD/MINOR: ancient gcc versions atomic fix * BUG/MEDIUM: mworker: execvp failure depending on argv[0] * MINOR: dns: Handle SRV record weight correctly. * BUG/MINOR: lua: Fix return value of Socket.settimeout * BUG/MEDIUM: lua: Fix IPv6 with separate port support for Socket.connect * DOC: lua: Fix typos in comments of hlua_socket_receive * BUG/MINOR: lua: Fix default value for pattern in Socket.receive * BUG/MEDIUM: ssl: cache doesn't release shctx blocks * BUG/MEDIUM: h2: properly handle the END_STREAM flag on empty DATA frames- Add dependency on apparmor-profiles (bsc#1079985)- Update to version 1.8.3: * [RELEASE] Released version 1.8.3 * MEDIUM: h2: prepare a graceful shutdown when the frontend is stopped * BUG/MAJOR: hpack: don't return direct references to the dynamic headers table * BUG/MEDIUM: http: don't automatically forward request close * MINOR: don't close stdio anymore * BUG/MEDIUM: mworker: don't close stdio several time * BUG/MEDIUM: h2: ensure we always know the stream before sending a reset * DOC/MINOR: configuration: typo, formatting fixes * BUG/MEDIUM: h2: improve handling of frames received on closed streams * BUG/MEDIUM: h2: properly handle and report some stream errors- Update to version 1.8.2: * [RELEASE] Released version 1.8.2 * BUG/MEDIUM: checks: properly set servers to stopping state on 404 * BUG/MAJOR: connection: refine the situations where we don't send shutw() * BUG/MEDIUM: cache: don't cache the response on no-cache="set-cookie" * BUG/MEDIUM: cache: respect the request cache-control header * BUG/MEDIUM: cache: replace old object on store * BUG/MEDIUM: cache: do not try to retrieve host-less requests from the cache * MINOR: http: add a function to check request's cache-control header field * BUG/MINOR: cache: do not force the TX_CACHEABLE flag before checking cacheability * BUG/MINOR: http: properly detect max-age=0 and s-maxage=0 in responses * BUG/MINOR: http: do not ignore cache-control: public * MINOR: http: start to compute the transaction's cacheability from the request * MINOR: http: update the list of cacheable status codes as per RFC7231 * MINOR: http: adjust the list of supposedly cacheable methods * BUG/MEDIUM: lua: fix crash when using bogus mode in register_service() * BUG/MEDIUM: checks: a server passed in maint state was not forced down. * MEDIUM: netscaler: add support for standard NetScaler CIP protocol * MEDIUM: netscaler: do not analyze original IP packet size * MINOR: netscaler: check in one-shot if buffer is large enough for IP and TCP header * BUG/MEDIUM: stream: don't consider abortonclose on muxes which close cleanly * MINOR: stream-int: set flag SI_FL_CLEAN_ABRT when mux supports clean aborts * MINOR: mux: add flags to describe a mux's capabilities * BUG/MINOR: h2: properly report a stream error on RST_STREAM * CONTRIB: halog: Fix compiler warnings in halog.c * CONTRIB: iprange: Fix compiler warning in iprange.c * BUG/MAJOR: netscaler: address truncated CIP header detection * BUG/MEDIUM: netscaler: use the appropriate IPv6 header size * MINOR: netscaler: rename cip_len to clarify its uage * MINOR: netscaler: remove the use of cip_magic only used once * MINOR: netscaler: respect syntax * DOC/MINOR: intro: typo, wording, formatting fixes * BUG/MEDIUM: mworker: Set FD_CLOEXEC flag on log fd * BUILD/MINOR: Makefile : enabling USE_CPU_AFFINITY * BUG: MINOR: http: don't check http-request capture id when len is provided * BUG: MAJOR: lb_map: server map calculation broken * BUG/MINOR: stream-int: don't try to receive again after receiving an EOS * BUG/MEDIUM: h2: fix stream limit enforcement * BUG/MEDIUM: http: don't disable lingering on requests with tunnelled responses * BUG/MEDIUM: h2: don't close after the first DATA frame on tunnelled responses * BUG/MEDIUM: h2: don't switch the state to HREM before end of DATA frame * MINOR: h2: don't demand that a DATA frame is complete before processing it * BUG/MEDIUM: h2: support uploading partial DATA frames * MINOR: h2: store the demux padding length in the h2c struct * BUG/MEDIUM: h2: debug incoming traffic in h2_wake() * BUG/MEDIUM: h2: work around a connection API limitation * BUG/MEDIUM: h2: enable recv polling whenever demuxing is possible * BUG/MEDIUM: h2: automatically set CS_FL_RCV_MORE when the output buffer is full * BUG/MEDIUM: stream-int: always set SI_FL_WAIT_ROOM on CS_FL_RCV_MORE * MINOR: conn_stream: add new flag CS_FL_RCV_MORE to indicate pending data * BUG/MEDIUM: lua/notification: memory leak * DOC: notifications: add precisions about thread usage * MINOR: systemd: remove comment about HAPROXY_STATS_SOCKET * BUG/MEDIUM: threads/vars: Fix deadlock in register_name * BUG/MEDIUM: email-alert: don't set server check status from a email-alert task * CONTRIB: halog: Add help text for -s switch in halog program * MINOR: mworker: Improve wording in `void mworker_wait()` * MINOR: mworker: Update messages referencing exit-on-failure * BUG/MEDIUM: h2: fix handling of end of stream again * BUG/MEDIUM: peers: set NOLINGER on the outgoing stream interface * BUG/MEDIUM: checks: a down server going to maint remains definitely stucked on down state. * BUG/MEDIUM: ssl engines: Fix async engines fds were not considered to fix fd limit automatically. * BUG/MEDIUM: mworker: also close peers sockets in the master * BUG/MINOR: ssl: support tune.ssl.cachesize 0 again * BUG/MAJOR: hpack: don't pretend large headers fit in empty table * BUG/MINOR: action: Don't check http capture rules when no id is defined- Update to version 1.8.1 (bsc#1069954): * BUG/MAJOR: h2: correctly check the request length when building an H1 request * BUG/MAJOR: thread: Be sure to request a sync between threads only once at a time * BUG/MAJOR: thread/peers: fix deadlock on peers sync. * BUG/MEDIUM: h2: do not accept upper case letters in request header names * BUG/MEDIUM: h2: remove connection-specific headers from request * BUG/MEDIUM: h2: enforce the per-connection stream limit * BUG/MEDIUM: checks: Be sure we have a mux if we created a cs. * BUG/MEDIUM: peers: fix some track counter rules dont register entries for sync. * BUG/MEDIUM: h2: don't report an error after parsing a 100-continue response * BUG/MEDIUM: threads/peers: decrement, not increment jobs on quitting * BUG/MEDIUM: stream: fix session leak on applet-initiated connections * BUG/MEDIUM: cache: bad computation of the remaining size * BUG/MEDIUM: ssl: don't allocate shctx several time * BUG/MEDIUM: tcp-check: Don't lock the server in tcpcheck_main * BUG/MEDIUM: kqueue: Don't bother closing the kqueue after fork. * BUG/MINOR: h2: use the H2_F_DATA_* macros for DATA frames * BUG/MINOR: h2: reject response pseudo-headers from requests * BUG/MINOR: h2: properly check PRIORITY frames * BUG/MINOR: h2: reject incorrect stream dependencies on HEADERS frame * BUG/MINOR: h2: do not accept SETTINGS_ENABLE_PUSH other than 0 or 1 * BUG/MINOR: h2: the TE header if present may only contain trailers * BUG/MINOR: h2: fix a typo causing PING/ACK to be responded to * BUG/MINOR: h2: ":path" must not be empty * BUG/MINOR: h2: try to abort closed streams as soon as possible * BUG/MINOR: h2: immediately close if receiving GOAWAY after the last stream * BUG/MINOR: hpack: dynamic table size updates are only allowed before headers * BUG/MINOR: hpack: reject invalid header index * BUG/MINOR: hpack: must reject huffman literals padded with more than 7 bits * BUG/MINOR: hpack: fix debugging output of pseudo header names * BUG/MINOR: mworker: detach from tty when in daemon mode * BUG/MINOR: mworker: fix validity check for the pipe FDs * BUG/MINOR: ssl: CO_FL_EARLY_DATA removal is managed by stream- License is now GPL-3.0+ and LGPL-2.1+- [apparmor]: allow haproxy to restart itself. needed for seamless restart. also reload the apparmor profile on update.- enable network namespaces on 42.3 - Enabled systemd notify mode: new BR: pkgconfig(libsystemd) This fixes problems with starting 1.8 on 42.3. - apply build option changes as adviced by upstream- Update to version 1.8.0 (bsc#1069954): https://www.mail-archive.com/haproxy@formilux.org/msg28004.html- Update to version 1.7.9: * BUG/MINOR: peers: peer synchronization issue (with several peers sections). * BUG/MINOR: lua: In error case, the safe mode is not removed * BUG/MINOR: lua: executes the function destroying the Lua session in safe mode * BUG/MAJOR: lua/socket: resources not detroyed when the socket is aborted * BUG/MEDIUM: lua: bad memory access * DOC: update the list of OpenSSL versions in the README * DOC: Updated 51Degrees git URL to point to a stable version. * BUG/MINOR: http: Set the response error state in http_sync_res_state * MINOR: http: Reorder/rewrite checks in http_resync_states * MINOR: http: Switch requests/responses in TUNNEL mode only by checking txn flags * BUG/MEDIUM: http: Switch HTTP responses in TUNNEL mode when body length is undefined * BUG/MAJOR: http: Fix possible infinity loop in http_sync_(req|res)_state * BUG/MINOR: lua: Fix Server.get_addr() port values * BUG/MINOR: lua: Correctly use INET6_ADDRSTRLEN in Server.get_addr() * BUG/MINOR: lua: always detach the tcp/http tasks before freeing them * BUG/MINOR: lua: Fix bitwise logic for hlua_server_check_* functions.- Update to version 1.7.8: * BUG/MINOR: stream: flag TASK_WOKEN_RES not set if task in runqueue * BUG/MAJOR: cli: fix custom io_release was crushed by NULL. * BUG/MAJOR: map: fix segfault during 'show map/acl' on cli. * BUG/MAJOR: compression: Be sure to release the compression state in all cases * DOC: fix references to the section about time format. * BUG/MEDIUM: map/acl: fix unwanted flags inheritance. * BUG/MINOR: stream: Don't forget to remove CF_WAKE_ONCE flag on response channel * BUG/MINOR: http: Don't reset the transaction if there are still data to send * BUG/MEDIUM: filters: Be sure to call flt_end_analyze for both channels * BUG/MINOR: http: properly handle all 1xx informational responses- Update to version 1.7.7: * BUG/MINOR: Wrong peer task expiration handling during synchronization processing. * BUG/MEDIUM: http: Drop the connection establishment when a redirect is performed * BUG/MEDIUM: cfgparse: Check if tune.http.maxhdr is in the range 1..32767 * DOC: fix references to the section about the unix socket * BUG/MINOR: log: pin the front connection when front ip/ports are logged- Update to version 1.7.6: * DOC: changed "block"(deprecated) examples to http-request deny * DOC: add few comments to examples. * DOC: update sample code for PROXY protocol * DOC: mention lighttpd 1.4.46 implements PROXY * DOC: stick-table is available in frontend sections * BUG/MINOR: dns: Wrong address family used when creating IPv6 sockets. * BUG/MINOR: config: missing goto out after parsing an incorrect ACL character * BUG/MINOR: arg: don't try to add an argument on failed memory allocation * BUG/MEDIUM: arg: ensure that we properly unlink unresolved arguments on error * BUG/MEDIUM: acl: don't free unresolved args in prune_acl_expr() * MINOR: lua: ensure the memory allocator is used all the time * CLEANUP: logs: typo: simgle => single * BUG/MEDIUM: acl: proprely release unused args in prune_acl_expr() * BUG/MAJOR: Use -fwrapv. * BUG/MINOR: server: don't use "proxy" when px is really meant. * BUG/MINOR: server: missing default server 'resolvers' setting duplication. * DOC: add layer 4 links/cross reference to "block" keyword. * DOC: errloc/errorloc302/errorloc303 missing status codes. * BUG/MEDIUM: lua: memory leak * MEDIUM: config: don't check config validity when there are fatal errors * BUG/MINOR: hash-balance-factor isn't effective in certain circumstances * MINOR/DOC: lua: just precise one thing * BUG/MINOR: http: Fix conditions to clean up a txn and to handle the next request * DOC: update RFC references * BUG/MINOR: checks: don't send proxy protocol with agent checks * BUG/MEDIUM: lua: segfault if a converter or a sample doesn't return anything * BUG/MAJOR: http: call manage_client_side_cookies() before erasing the buffer * BUG/MINOR: buffers: Fix bi/bo_contig_space to handle full buffers * BUG/MINOR: acls: Set the right refflag when patterns are loaded from a map * BUG/MINOR: http/filters: Be sure to wait if a filter loops in HTTP_MSG_ENDING * BUG/MEDIUM: peers: Peers CLOSE_WAIT issue. * BUG/MAJOR: server: Segfault after parsing server state file. * BUG/MEDIUM: unix: never unlink a unix socket from the file system- Update to version 1.7.5: * BUG/MEDIUM: peers: fix buffer overflow control in intdecode. * BUG/MEDIUM: buffers: Fix how input/output data are injected into buffers * BUG/MEDIUM: http: Fix blocked HTTP/1.0 responses when compression is enabled * BUG/MINOR: filters: Don't force the stream's wakeup when we wait in flt_end_analyze * MINOR: config parsing: add warning when log-format/tcplog/httplog is overriden in "defaults" sections- Update to version 1.7.4: * MINOR: config: warn when some HTTP rules are used in a TCP proxy * BUG/MINOR: spoe: Fix soft stop handler using a specific id for spoe filters * BUG/MINOR: spoe: Fix parsing of arguments in spoe-message section * BUG/MEDIUM: ssl: Clear OpenSSL error stack after trying to parse OCSP file * BUG/MEDIUM: cli: Prevent double free in CLI ACL lookup * BUG/MINOR: Fix "get map " CLI command * BUG/MAJOR: connection: update CO_FL_CONNECTED before calling the data layer * BUG/MEDIUM: ssl: switchctx should not return SSL_TLSEXT_ERR_ALERT_WARNING * BUG/MINOR: checks: attempt clean shutw for SSL check * BUG/MEDIUM: listener: do not try to rebind another process' socket * BUG/MEDIUM: filters: Fix channels synchronization in flt_end_analyze * BUG/MAJOR: stream-int: do not depend on connection flags to detect connection * BUG/MEDIUM: connection: ensure to always report the end of handshakes * BUG: payload: fix payload not retrieving arbitrary lengths * BUG/MAJOR: http: fix typo in http_apply_redirect_rule * BUG/MEDIUM: stream: fix client-fin/server-fin handling * MINOR: fd: add a new flag HAP_POLL_F_RDHUP to struct poller * BUG/MINOR: raw_sock: always perfom the last recv if RDHUP is not available * DOC/MINOR: Fix typos in proxy protocol doc * DOC: Protocol doc: add checksum, TLV type ranges * DOC: Protocol doc: add SSL TLVs, rename CHECKSUM * DOC: Protocol doc: add noop TLV * MEDIUM: global: add a 'hard-stop-after' option to cap the soft-stop time * BUG/MINOR: cfgparse: loop in tracked servers lists not detected by check_config_validity(). * MINOR: server: irrelevant error message with 'default-server' config file keyword. * MINOR: doc: fix use-server example (imap vs mail) * BUG/MEDIUM: tcp: don't require privileges to bind to device- Update to version 1.7.3: * BUG/MINOR: stream: Fix how backend-specific analyzers are set on a stream * BUG/MEDIUM: tcp: don't poll for write when connect() succeeds * BUG/MINOR: unix: fix connect's polling in case no data are scheduled * BUG/MINOR: lua: Map.end are not reliable because "end" is a reserved keyword * MINOR: dns: give ability to dns_init_resolvers() to close a socket when requested * BUG/MAJOR: dns: restart sockets after fork() * MINOR: chunks: implement a simple dynamic allocator for trash buffers * BUG/MEDIUM: http: prevent redirect from overwriting a buffer * BUG/MEDIUM: filters: Do not truncate HTTP response when body length is undefined * BUG/MEDIUM: http: Prevent replace-header from overwriting a buffer * BUG/MINOR: http: Return an error when a replace-header rule failed on the response * BUG/MINOR: sendmail: The return of vsnprintf is not cleanly tested * BUG/MAJOR: lua segmentation fault when the request is like 'GET ?arg=val HTTP/1.1' * BUG/MEDIUM: config: reject anything but "if" or "unless" after a use-backend rule * MINOR: http: don't close when redirect location doesn't start with "/"- Update to version 1.7.2 (bsc#1023141): * BUG/MEDIUM: lua: In some case, the return of sample-fetches is ignored (2) * BUG/MINOR: stream-int: automatically release SI_FL_WAIT_DATA on SHUTW_NOW * DOC: lua: documentation about time parser functions * DOC: lua: section declared twice * BUG/MINOR: lua/cli: bad error message * DOC: fix small typo in fe_id (backend instead of frontend) * BUG/MINOR: Fix the sending function in Lua's cosocket * BUG/MINOR: lua: memory leak executing tasks * BUG/MINOR: lua: bad return code * BUG/MEDIUM: ssl: properly reset the reused_sess during a forced handshake * BUG/MEDIUM: ssl: avoid double free when releasing bind_confs * BUG/MINOR: stats: fix be/sessions/current out in typed stats * BUG/MINOR: backend: nbsrv() should return 0 if backend is disabled * BUG/MEDIUM: ssl: for a handshake when server-side SNI changes * BUG/MINOR: systemd: potential zombie processes * DOC: Add timings events schemas * BUG/MINOR: option prefer-last-server must be ignored in some case * MINOR: stats: Support "select all" for backend actions * BUG/MINOR: sample-fetches/stick-tables: bad type for the sample fetches sc*_get_gpt0 * BUG/MAJOR: channel: Fix the definition order of channel analyzers * BUG/MINOR: http: report real parser state in error captures * BUG/MAJOR: http: fix risk of getting invalid reports of bad requests * MINOR: http: custom status reason. * MINOR: connection: add sample fetch "fc_rcvd_proxy" * BUG/MINOR: config: emit a warning if http-reuse is enabled with incompatible options * BUG/MINOR: tools: fix off-by-one in port size check * BUG/MEDIUM: server: consider AF_UNSPEC as a valid address family * MEDIUM: server: split the address and the port into two different fields * MINOR: tools: make str2sa_range() return the port in a separate argument * MINOR: server: take the destination port from the port field, not the addr * MEDIUM: server: disable protocol validations when the server doesn't resolve * BUG/MEDIUM: tools: do not force an unresolved address to AF_INET:0.0.0.0 * BUG/MINOR: ssl: EVP_PKEY must be freed after X509_get_pubkey usage * MINOR: proto_http.c 502 error txt typo. * DOC: add deprecation notice to "block" * BUG/MINOR: Reset errno variable before calling strtol(3)- Update to version 1.7.1: * BUG/MAJOR: stream: fix session abort on resource shortage * BUG/MINOR: cli: allow the backslash to be escaped on the CLI * BUG/MEDIUM: cli: fix "show stat resolvers" and "show tls-keys" * DOC: Fix map table's format * DOC: Added 51Degrees conv and fetch functions to documentation. * BUG/MINOR: http: don't send an extra CRLF after a Set-Cookie in a redirect * DOC: mention that req_tot is for both frontends and backends * BUG/MEDIUM: variables: some variable name can hide another ones * BUG/MINOR: stats: fix be/sessions/max output in html stats * MINOR: proxy: Add fe_name/be_name fetchers next to existing fe_id/be_id * DOC: lua: Documentation about some entry missing * MINOR: Do not forward the header "Expect: 100-continue" when the option http-buffer-request is set * DOC: Add undocumented argument of the trace filter * DOC: Fix some typo in SPOE documentation * BUG/MINOR: cli: be sure to always warn the cli applet when input buffer is full * MINOR: applet: Count number of (active) applets * MINOR: task: Rename run_queue and run_queue_cur counters * BUG/MEDIUM: stream: Save unprocessed events for a stream * BUG/MAJOR: Fix how the list of entities waiting for a buffer is handled * BUILD/MEDIUM: Fixing the build using LibreSSL * [RELEASE] Released version 1.7.1- Update to version 1.7.0: * BUG/MEDIUM: proxy: return "none" and "unknown" for unknown LB algos * BUG/MINOR: stats: make field_str() return an empty string on NULL * BUG/MEDIUM: http: Fix tunnel mode when the CONNECT method is used * BUG/MINOR: http: Keep the same behavior between 1.6 and 1.7 for tunneled txn * BUG/MINOR: filters: Protect args in macros HAS_DATA_FILTERS and IS_DATA_FILTER * BUG/MINOR: filters: Invert evaluation order of HTTP_XFER_BODY and XFER_DATA analyzers * BUG/MINOR: http: Call XFER_DATA analyzer when HTTP txn is switched in tunnel mode- Update to version 1.6.10: * BUG/MEDIUM: systemd-wrapper: return correct exit codes * BUG/MEDIUM: srv-state: properly restore the DRAIN state * BUG/MINOR: srv-state: allow to have both CMAINT and FDRAIN flags * BUG/MEDIUM: servers: properly propagate the maintenance states during startup * BUG: vars: Fix 'set-var' converter because of a typo * BUG/MEDIUM: channel: bad unlikely macro * CLEANUP: lua: move comment * CLEANUP: lua: control executed twice * CLEANUP: ssl: Fix bind keywords name in comments * DOC: ssl: Use correct wording for ca-sign-pass * BUG/MINOR: stick-table: handle out-of-memory condition gracefully * BUG/MEDIUM: connection: check the control layer before stopping polling * BUG/MEDIUM: stick-table: fix regression caused by recent fix for out-of-memory * CONTRIB: initiate a debugging suite to make debugging easier * BUG/MINOR: cli: properly decrement ref count on tables during failed dumps * BUG/MEDIUM: lua: In some case, the return of sample-fetche is ignored- Update to version 1.6.9+git.1477940904.ab45181 (fate#321723) * BUILD: poll: remove unused hap_fd_isset() which causes a warning with clang * MINOR: cfgparse: few memory leaks fixes. * MINOR: build: Allow linking to device-atlas library file * DOC: Fix typo in description of `-st` parameter in man page * BUG/MEDIUM: peers: on shutdown, wake up the appctx, not the stream * BUG/MEDIUM: peers: fix use after free in peer_session_create() * BUG/MEDIUM: systemd: let the wrapper know that haproxy has completed or failed * MINOR: systemd: report it when execve() fails * BUG/MINOR: systemd: check return value of calloc() * BUG/MINOR: systemd: always restore signals before execve() * BUG/MINOR: systemd: make the wrapper return a non-null status code on error * BUG/MINOR: ssl: prevent multiple entries for the same certificate * BUG/MINOR: ssl: Check malloc return code * BUG/MINOR: vars: smp_fetch_var() doesn't depend on HTTP but on the session * BUG/MINOR: vars: make smp_fetch_var() more robust against misuses * BUG/MINOR: vars: use sess and not s->sess in action_store() * MEDIUM: make SO_REUSEPORT configurable * MINOR: Add fe_req_rate sample fetch * MINOR: show Running on zlib version * MINOR: show Built with PCRE version * BUG/MINOR: displayed PCRE version is running release- Update to 1.6.9 (bsc#1003264) - MINOR: cli: allow the semi-colon to be escaped on the CLI - BUG/MINOR: payload: fix SSLv2 version parser - BUG/MAJOR: stream: properly mark the server address as unset on connect retry - DOC: Updated 51Degrees readme. - BUG/MAJOR: stick-counters: possible crash when using sc_trackers with wrong table - BUG/MINOR: peers: empty chunks after a resync. - BUG/MINOR: peers: some updates are pushed twice after a resync. - MINOR: sample: use smp_make_rw() in upper/lower converters - BUG/MEDIUM: stick-table: properly convert binary samples to keys - BUG/MEDIUM: stick-tables: do not fail on string keys with no allocated size - BUG/MAJOR: server: the "sni" directive could randomly cause trouble - MINOR: sample: provide smp_is_rw() and smp_make_rw() - MINOR: sample: implement smp_is_safe() and smp_make_safe() - BUG/MEDIUM: samples: make smp_dup() always duplicate the sample - BUG/MAJOR: compression: initialize avail_in/next_in even during flush - BUILD: make proto_tcp.c compatible with musl library - DOC: minor typo fixes to improve HTML parsing by haproxy-dconv - BUG/MEDIUM: stream-int: completely detach connection on connect error - BUG/MEDIUM: lua: somme HTTP manipulation functions are called without valid requests - DOC: lua: remove old functions - BUG/MINOR: peers: Fix peers data decoding issue - BUG/MEDIUM: lua: the function txn_done() from action wrapper can crash - BUG/MEDIUM: lua: the function txn_done() from sample fetches can crash- update to 1.6.7 - MINOR: new function my_realloc2 = realloc + free upon failure - CLEANUP: fixed some usages of realloc leading to memory leak - Revert "BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params()" - BUG/MEDIUM: dns: fix alignment issues in the DNS response parser - BUG/MINOR: Fix endiness issue in DNS header creation code - changes from 1.6.6 - BUG/MAJOR: fix listening IP address storage for frontends - BUG/MINOR: fix listening IP address storage for frontends (cont) - DOC: Fix typo so fetch is properly parsed by Cyril's converter - BUG/MAJOR: http: fix breakage of "reqdeny" causing random crashes - BUG/MEDIUM: stick-tables: fix breakage in table converters - BUG/MEDIUM: dns: unbreak DNS resolver after header fix - BUILD: fix build on Solaris 11 - CLEANUP: connection: fix double negation on memcmp() - BUG/MEDIUM: stats: show servers state may show an servers from another backend - BUG/MEDIUM: fix risk of segfault with "show tls-keys" - BUG/MEDIUM: sticktables: segfault in some configuration error cases - BUG/MEDIUM: lua: converters doesn't work - BUG/MINOR: http: add-header: header name copied twice - BUG/MEDIUM: http: add-header: buffer overwritten - BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params() - BUG/MINOR: http: url32+src should use the big endian version of url32 - BUG/MINOR: http: url32+src should check cli_conn before using it - DOC: http: add documentation for url32 and url32+src - BUG/MINOR: fix http-response set-log-level parsing error - MINOR: systemd: Use variable for config and pidfile paths - MINOR: systemd: Perform sanity check on config before reload (cherry picked from commit 68535bddf305fdd22f1449a039939b57245212e7) - BUG/MINOR: init: always ensure that global.rlimit_nofile matches actual limits - BUG/MINOR: init: ensure that FD limit is raised to the max allowed - BUG/MEDIUM: external-checks: close all FDs right after the fork() - BUG/MAJOR: external-checks: use asynchronous signal delivery - BUG/MINOR: external-checks: do not unblock undesired signals - BUILD/MEDIUM: rebuild everything when an include file is changed - BUILD/MEDIUM: force a full rebuild if some build options change - BUG/MINOR: srv-state: fix incorrect output of state file - BUG/MINOR: ssl: close ssl key file on error - BUG/MINOR: http: fix misleading error message for response captures - BUG/BUILD: don't automatically run "make" on "make install" - DOC: add missing doc for http-request deny [deny_status ] - drop patches which were pulled from git before 0001-BUG-MAJOR-fix-listening-IP-address-storage-for-front.patch 0002-BUG-MINOR-fix-listening-IP-address-storage-for-front.patch 0003-DOC-Fix-typo-so-fetch-is-properly-parsed-by-Cyril-s-.patch 0004-BUG-MAJOR-http-fix-breakage-of-reqdeny-causing-rando.patch 0005-BUG-MEDIUM-stick-tables-fix-breakage-in-table-conver.patch 0006-BUG-MEDIUM-dns-unbreak-DNS-resolver-after-header-fix.patch 0007-BUILD-fix-build-on-Solaris-11.patch 0008-CLEANUP-connection-fix-double-negation-on-memcmp.patch 0009-BUG-MEDIUM-stats-show-servers-state-may-show-an-serv.patch 0010-BUG-MEDIUM-fix-risk-of-segfault-with-show-tls-keys.patch 0011-BUG-MEDIUM-sticktables-segfault-in-some-configuratio.patch 0012-BUG-MEDIUM-lua-converters-doesn-t-work.patch 0013-BUG-MINOR-http-add-header-header-name-copied-twice.patch 0014-BUG-MEDIUM-http-add-header-buffer-overwritten.patch- pull patches from git to fix some important issues (bsc#983972) (bsc#983974): 0001-BUG-MAJOR-fix-listening-IP-address-storage-for-front.patch 0002-BUG-MINOR-fix-listening-IP-address-storage-for-front.patch 0003-DOC-Fix-typo-so-fetch-is-properly-parsed-by-Cyril-s-.patch 0004-BUG-MAJOR-http-fix-breakage-of-reqdeny-causing-rando.patch 0005-BUG-MEDIUM-stick-tables-fix-breakage-in-table-conver.patch 0006-BUG-MEDIUM-dns-unbreak-DNS-resolver-after-header-fix.patch 0007-BUILD-fix-build-on-Solaris-11.patch 0008-CLEANUP-connection-fix-double-negation-on-memcmp.patch 0009-BUG-MEDIUM-stats-show-servers-state-may-show-an-serv.patch 0010-BUG-MEDIUM-fix-risk-of-segfault-with-show-tls-keys.patch 0011-BUG-MEDIUM-sticktables-segfault-in-some-configuratio.patch 0012-BUG-MEDIUM-lua-converters-doesn-t-work.patch 0013-BUG-MINOR-http-add-header-header-name-copied-twice.patch 0014-BUG-MEDIUM-http-add-header-buffer-overwritten.patch- update to 1.6.5 - BUG/MINOR: log: Don't use strftime() which can clobber timezone if chrooted - BUILD: namespaces: fix a potential build warning in namespaces.c - DOC: add encoding to json converter example - BUG/MINOR: conf: "listener id" expects integer, but its not checked - DOC: Clarify tunes.vars.xxx-max-size settings - BUG/MEDIUM: peers: fix incorrect age in frequency counters - BUG/MEDIUM: Fix RFC5077 resumption when more than TLS_TICKETS_NO are present - BUG/MAJOR: Fix crash in http_get_fhdr with exactly MAX_HDR_HISTORY headers - BUG/MINOR: lua: can't load external libraries - DOC: "addr" parameter applies to both health and agent checks - DOC: timeout client: pointers to timeout http-request - DOC: typo on stick-store response - DOC: stick-table: amend paragraph blaming the loss of table upon reload - DOC: typo: ACL subdir match - DOC: typo: maxconn paragraph is wrong due to a wrong buffer size - DOC: regsub: parser limitation about the inability to use closing square brackets - DOC: typo: req.uri is now replaced by capture.req.uri - DOC: name set-gpt0 mismatch with the expected keyword - BUG/MEDIUM: stick-tables: some sample-fetch doesn't work in the connection state. - DOC: fix "needed" typo - BUG/MINOR: dns: inapropriate way out after a resolution timeout - BUG/MINOR: dns: trigger a DNS query type change on resolution timeout - BUG/MINOR : allow to log cookie for tarpit and denied request - OPTIM/MINOR: session: abort if possible before connecting to the backend - BUG/MEDIUM: trace.c: rdtsc() is defined in two files - BUG/MEDIUM: channel: fix miscalculation of available buffer space (2nd try) - BUG/MINOR: cfgparse: couple of small memory leaks. - BUG/MEDIUM: sample: initialize the pointer before parse_binary call. - DOC: fix discrepancy in the example for http-request redirect - DOC: Clarify IPv4 address / mask notation rules - CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() - BUG/MEDIUM: fix maxaccept computation on per-process listeners - BUG/MINOR: listener: stop unbound listeners on startup - BUG/MINOR: fix maxaccept computation according to the frontend process range - MEDIUM: unblock signals on startup. - BUG/MEDIUM: channel: don't allow to overwrite the reserve until connected - BUG/MEDIUM: channel: incorrect polling condition may delay event delivery - BUG/MEDIUM: channel: fix miscalculation of available buffer space (3rd try) - BUG/MEDIUM: log: fix risk of segfault when logging HTTP fields in TCP mode - BUG/MEDIUM: lua: protects the upper boundary of the argument list for converters/fetches. - BUG/MINOR: log: fix a typo that would cause %HP to log - MINOR: channel: add new function channel_congested() - BUG/MEDIUM: http: fix risk of CPU spikes with pipelined requests from dead client - BUG/MAJOR: channel: fix miscalculation of available buffer space (4th try) - BUG/MEDIUM: stream: ensure the SI_FL_DONT_WAKE flag is properly cleared - BUG/MEDIUM: channel: fix inconsistent handling of 4GB-1 transfers - BUG/MEDIUM: stats: show servers state may show an empty or incomplete result - BUG/MEDIUM: stats: show backend may show an empty or incomplete result - MINOR: stats: fix typo in help messages - MINOR: stats: show stat resolvers missing in the help message - BUG/MINOR: dns: fix DNS header definition - BUG/MEDIUM: dns: fix alignment issue when building DNS queries - CLEANUP/MINOR: stats: fix accidental addition of member "env" in the applet ctx - refreshed patches to apply cleanly again - haproxy-1.6.0-makefile_lib.patch - haproxy-1.6.0-sec-options.patch- update to 1.6.4 (fate#320607) (bsc#937202) - BUG/MINOR: http: fix several off-by-one errors in the url_param parser - BUG/MINOR: http: Be sure to process all the data received from a server - BUG/MINOR: chunk: make chunk_dup() always check and set dst->size - MINOR: chunks: ensure that chunk_strcpy() adds a trailing zero - MINOR: chunks: add chunk_strcat() and chunk_newstr() - MINOR: chunk: make chunk_initstr() take a const string - MINOR: lru: new function to delete least recently used keys - DOC: add Ben Shillito as the maintainer of 51d - BUG/MINOR: 51d: Ensures a unique domain for each configuration - BUG/MINOR: 51d: Aligns Pattern cache implementation with HAProxy best practices. - BUG/MINOR: 51d: Releases workset back to pool. - BUG/MINOR: 51d: Aligned const pointers to changes in 51Degrees. - CLEANUP: 51d: Aligned if statements with HAProxy best practices and removed casts from malloc. - DOC: fix a few spelling mistakes (cherry picked from commit cc123c66c2075add8524a6a9925382927daa6ab0) - DOC: fix "workaround" spelling - BUG/MINOR: examples: Fixing haproxy.spec to remove references to .cfg files - MINOR: fix the return type for dns_response_get_query_id() function - MINOR: server state: missing LF (\n) on error message printed when parsing server state file - BUG/MEDIUM: dns: no DNS resolution happens if no ports provided to the nameserver - BUG/MAJOR: servers state: server port is erased when dns resolution is enabled on a server - BUG/MEDIUM: servers state: server port is used uninitialized - BUG/MEDIUM: config: Adding validation to stick-table expire value. - BUG/MEDIUM: sample: http_date() doesn't provide the right day of the week - BUG/MEDIUM: channel: fix miscalculation of available buffer space. - MEDIUM: pools: add a new flag to avoid rounding pool size up - BUG/MEDIUM: buffers: do not round up buffer size during allocation - BUG/MINOR: stream: don't force retries if the server is DOWN - BUG/MINOR: counters: make the sc-inc-gpc0 and sc-set-gpt0 touch the table - MINOR: unix: don't mention free ports on EAGAIN - BUG/CLEANUP: CLI: report the proper field states in "show sess" - MINOR: stats: send content-length with the redirect to allow keep-alive - BUG: stream_interface: Reuse connection even if the output channel is empty - DOC: remove old tunnel mode assumptions - BUG/MAJOR: http-reuse: fix risk of orphaned connections - BUG/MEDIUM: http-reuse: do not share private connections across backends - BUG/MINOR: ssl: Be sure to use unique serial for regenerated certificates - BUG/MINOR: stats: fix missing comma in stats on agent drain - BUG/MINOR: lua: unsafe initialization - DOC: lua: fix somme errors - DOC: add server name at rate-limit sessions example - BUG/MEDIUM: ssl: fix off-by-one in ALPN list allocation - BUG/MEDIUM: ssl: fix off-by-one in NPN list allocation - DOC: LUA: fix some typos and syntax errors - MINOR: cfgparse: warn for incorrect 'timeout retry' keyword spelling in resolvers - MINOR: mailers: increase default timeout to 10 seconds - MINOR: mailers: use for all line endings - BUG/MAJOR: lua: applets can't sleep. - BUG/MINOR: server: some prototypes are renamed - BUG/MINOR: lua: Useless copy - BUG/MEDIUM: stats: stats bind-process doesn't propagate the process mask correctly - BUG/MINOR: server: fix the format of the warning on address change - BUG/MEDIUM: chunks: always reject negative-length chunks - BUG/MINOR: systemd: ensure we don't miss signals - BUG/MINOR: systemd: report the correct signal in debug message output - BUG/MINOR: systemd: propagate the correct signal to haproxy - MINOR: systemd: ensure a reload doesn't mask a stop - BUG/MEDIUM: cfgparse: wrong argument offset after parsing server "sni" keyword - CLEANUP: stats: Avoid computation with uninitialized bits. - CLEANUP: pattern: Ignore unknown samples in pat_match_ip(). - CLEANUP: map: Avoid memory leak in out-of-memory condition. - BUG/MINOR: tcpcheck: fix incorrect list usage resulting in failure to load certain configs - BUG/MAJOR: samples: check smp->strm before using it - MINOR: sample: add a new helper to initialize the owner of a sample - MINOR: sample: always set a new sample's owner before evaluating it - BUG/MAJOR: vars: always retrieve the stream and session from the sample - CLEANUP: payload: remove useless and confusing nullity checks for channel buffer - BUG/MINOR: ssl: fix usage of the various sample fetch functions - MINOR: cfgparse: warn when uid parameter is not a number - MINOR: cfgparse: warn when gid parameter is not a number - BUG/MINOR: standard: Avoid free of non-allocated pointer - BUG/MINOR: pattern: Avoid memory leak on out-of-memory condition - CLEANUP: http: fix a build warning introduced by a recent fix - BUG/MINOR: log: GMT offset not updated when entering/leaving DST- update to 1.6.3 (fate#320607) - BUG/MEDIUM: lua: clean output buffer - BUG/MEDIUM: http: switch the request channel to no-delay once done. - BUG/MEDIUM: http: don't enable auto-close on the response side - BUG/MEDIUM: stream: fix half-closed timeout handling - BUG/MEDIUM: cli: changing compression rate-limiting must require admin level - BUG/MEDIUM: sample: urlp can't match an empty value - BUG/MEDIUM: da: stop DeviceAtlas processing in the convertor if there is no input. - BUG/MEDIUM: checks: email-alert not working when declared in defaults - BUG/MEDIUM: http: fix http-reuse when frontend and backend differ - BUG/MEDIUM: config: properly adjust maxconn with nbproc when memmax is forced - BUG/MEDIUM: peers: table entries learned from a remote are pushed to others after a random delay. - BUG/MEDIUM: peers: old stick table updates could be repushed - BUG/MEDIUM: lua: Lua applets must not fetch samples using http_txn - BUG/MEDIUM: lua: Forbid HTTP applets from being called from tcp rulesets - BUG/MAJOR: lua: Do not force the HTTP analysers in use-services for all the details see /usr/share/doc/packages/haproxy/CHANGELOG or http://www.haproxy.org/download/1.6/src/CHANGELOG- on sle11 we still need to own /etc/apparmor.d/local- instead of owning the apparmor directories, BR apparmor-profiles.- fix link to tarball- update to 1.6.2 - BUILD: ssl: fix build error introduced in commit 7969a3 with OpenSSL < 1.0.0 - DOC: fix a typo for a "deviceatlas" keyword - FIX: small typo in an example using the "Referer" header - BUG/MEDIUM: config: count memory limits on 64 bits, not 32 - BUG/MAJOR: dns: first DNS response packet not matching queried hostname may lead to a loop - BUG/MINOR: dns: unable to parse CNAMEs response - BUG/MINOR: examples/haproxy.init: missing brace in quiet_check() - DOC: deviceatlas: more example use cases. - BUG/BUILD: replace haproxy-systemd-wrapper with $(EXTRA) in install-bin. - BUG/MAJOR: http: don't requeue an idle connection that is already queued - DOC: typo on capture.res.hdr and capture.req.hdr - BUG/MINOR: dns: check for duplicate nameserver id in a resolvers section was missing - CLEANUP: use direction names in place of numeric values - BUG/MEDIUM: lua: sample fetches based on response doesn't work - drop haproxy-1.6.0-ssl-098.patch: included upstream- update to 1.6.1 - DOC: specify that stats socket doc (section 9.2) is in management - BUILD: install only relevant and existing documentation - CLEANUP: don't ignore debian/ directory if present - BUG/MINOR: dns: parsing error of some DNS response - BUG/MEDIUM: namespaces: don't fail if no namespace is used - BUG/MAJOR: ssl: free the generated SSL_CTX if the LRU cache is disabled - MEDIUM: dns: Don't use the ANY query type - drop haproxy-1.6.0-ssl.crash.patch included in update- add haproxy-1.6.0-ssl-098.patch: fix building on openssl 0.9.8- added haproxy-1.6.0-ssl.crash.patch: fix SNI related crash- only use network namespace support on distros newer than 13.2- update to 1.6.0 The most user-visible changes, we can cite the simpler handling of multiple configuration files, the support for quotes and environment variables in the configuration, a significant reduction of the memory usage thanks to a new dynamic buffer allocator, notifications over e-mail, server state keeping across reloads, dynamic DNS-based server address resolution, new scripting capabilities thanks to the embedded Lua interpreter, use of variables in the configuration to manipulate samples, request body buffering and analysis, support for two third-party device identification products (DeviceAtlas and 51Degrees), a lot of new sample converters including arithmetic operators and table lookups, TLS ticket secret sharing between nodes, TLS SNI to the server, full tables replication between peers, ability to instruct the kernel to quickly kill dead connections, support for Linux namespaces, and a number of other less visible goodies. The performance has also been improved a lot with support for server connection multiplexing, much faster and cheaper HTTP compression via libslz, and the addition of a pattern cache to speed up certain expensive ACLs. The great flexibility offered by this version will allow many users to significantly simplify their configurations. Some users will notice a huge performance boost after they enable the features designed for them. for all the details see /usr/share/doc/packages/haproxy/CHANGELOG - drop patches we pulled from upstream git: 0001-BUG-MINOR-log-missing-some-ARGC_-entries-in-fmt_dire.patch 0002-DOC-usesrc-root-privileges-requirements.patch 0003-BUILD-ssl-Allow-building-against-libssl-without-SSLv.patch 0004-DOC-MINOR-fix-OpenBSD-versions-where-haproxy-works.patch 0005-BUG-MINOR-http-sample-gmtime-localtime-can-fail.patch 0006-DOC-typo-in-redirect-302-code-meaning.patch 0007-DOC-mention-that-ms-is-left-padded-with-zeroes.patch 0008-CLEANUP-.gitignore-ignore-more-test-files.patch 0009-CLEANUP-.gitignore-finally-ignore-everything-but-wha.patch 0010-MEDIUM-config-emit-a-warning-on-a-frontend-without-l.patch 0011-BUG-MEDIUM-counters-ensure-that-src_-inc-clr-_gpc0-c.patch 0012-DOC-ssl-missing-LF.patch 0013-DOC-fix-example-of-http-request-using-ssl_fc_session.patch 0014-BUG-MINOR-http-remove-stupid-HTTP_METH_NONE-entry.patch 0015-BUG-MAJOR-http-don-t-call-http_send_name_header-afte.patch - refresh/redo patches to apply cleanly again: old: haproxy-1.2.16_config_haproxy_user.patch new: haproxy-1.6.0_config_haproxy_user.patch old: haproxy-makefile_lib.patch new: haproxy-1.6.0-makefile_lib.patch old: sec-options.patch new: haproxy-1.6.0-sec-options.patch - added new haproxy.cfg to have a minimal config we can actually launch! - drop patch haproxy-1.5.8-fix-bashisms.patch: patched files no longer exist - drop haproxy.vim: we will use the copy which ships with the upstream tarball now.- fix haproxy status checks (bsc#947204)- Backport patches from upstream: - BUG/MINOR: http: remove stupid HTTP_METH_NONE entry - BUG/MAJOR: http: don't call http_send_name_header() after an error - Add 0014-BUG-MINOR-http-remove-stupid-HTTP_METH_NONE-entry.patch - Add 0015-BUG-MAJOR-http-don-t-call-http_send_name_header-afte.patch- Backport patches from upstream: - BUG/MINOR: log: missing some ARGC_* entries in fmt_directives() - DOC: usesrc root privileges requirements - BUILD: ssl: Allow building against libssl without SSLv3. - DOC/MINOR: fix OpenBSD versions where haproxy works - BUG/MINOR: http/sample: gmtime/localtime can fail - DOC: typo in 'redirect', 302 code meaning - DOC: mention that %ms is left-padded with zeroes. - CLEANUP: .gitignore: ignore more test files - CLEANUP: .gitignore: finally ignore everything but what is known. - MEDIUM: config: emit a warning on a frontend without listener - BUG/MEDIUM: counters: ensure that src_{inc,clr}_gpc0 creates a missing entry - DOC: ssl: missing LF - DOC: fix example of http-request using ssl_fc_session_id - Add 0001-BUG-MINOR-log-missing-some-ARGC_-entries-in-fmt_dire.patch - Add 0002-DOC-usesrc-root-privileges-requirements.patch - Add 0003-BUILD-ssl-Allow-building-against-libssl-without-SSLv.patch - Add 0004-DOC-MINOR-fix-OpenBSD-versions-where-haproxy-works.patch - Add 0005-BUG-MINOR-http-sample-gmtime-localtime-can-fail.patch - Add 0006-DOC-typo-in-redirect-302-code-meaning.patch - Add 0007-DOC-mention-that-ms-is-left-padded-with-zeroes.patch - Add 0008-CLEANUP-.gitignore-ignore-more-test-files.patch - Add 0009-CLEANUP-.gitignore-finally-ignore-everything-but-wha.patch - Add 0010-MEDIUM-config-emit-a-warning-on-a-frontend-without-l.patch - Add 0011-BUG-MEDIUM-counters-ensure-that-src_-inc-clr-_gpc0-c.patch - Add 0012-DOC-ssl-missing-LF.patch - Add 0013-DOC-fix-example-of-http-request-using-ssl_fc_session.patch- Update to 1.5.14 (CVE-2015-3281) (bsc#937042) + BUILD/MINOR: tools: rename popcount to my_popcountl + BUG/MAJOR: buffers: make the buffer_slow_realign() function respect output data- Update to 1.5.13 - Dropped all patches backported from git, no further changes than those patches provided. - Removed patches: + Remove 0001-BUG-MEDIUM-stats-properly-initialize-the-scope-befor.patch + Remove 0002-BUG-MEDIUM-http-don-t-forward-client-shutdown-withou.patch + Remove 0003-BUG-MINOR-check-fix-tcpcheck-error-message.patch + Remove 0004-CLEANUP-checks-fix-double-usage-of-cur-current_step-.patch + Remove 0005-BUG-MEDIUM-checks-do-not-dereference-head-of-a-tcp-c.patch + Remove 0006-CLEANUP-checks-simplify-the-loop-processing-of-tcp-c.patch + Remove 0007-BUG-MAJOR-checks-always-check-for-end-of-list-before.patch + Remove 0008-BUG-MEDIUM-checks-do-not-dereference-a-list-as-a-tcp.patch + Remove 0009-BUG-MEDIUM-peers-apply-a-random-reconnection-timeout.patch + Remove 0010-DOC-Update-doc-about-weight-act-and-bck-fields-in-th.patch + Remove 0011-MINOR-ssl-add-a-destructor-to-free-allocated-SSL-res.patch + Remove 0012-BUG-MEDIUM-ssl-fix-tune.ssl.default-dh-param-value-b.patch + Remove 0013-BUG-MINOR-cfgparse-fix-typo-in-option-httplog-error-.patch + Remove 0014-BUG-MEDIUM-cfgparse-segfault-when-userlist-is-misuse.patch + Remove 0015-MEDIUM-ssl-replace-standards-DH-groups-with-custom-o.patch + Remove 0016-BUG-MINOR-debug-display-null-in-place-of-meth.patch + Remove 0017-CLEANUP-deinit-remove-codes-for-cleaning-p-block_rul.patch + Remove 0018-BUG-MINOR-ssl-fix-smp_fetch_ssl_fc_session_id.patch + Remove 0019-MEDIUM-init-don-t-stop-proxies-in-parent-process-whe.patch + Remove 0020-MINOR-peers-store-the-pointer-to-the-signal-handler.patch + Remove 0021-MEDIUM-peers-unregister-peers-that-were-never-starte.patch + Remove 0022-MEDIUM-config-propagate-the-table-s-process-list-to-.patch + Remove 0023-MEDIUM-init-stop-any-peers-section-not-bound-to-the-.patch + Remove 0024-MEDIUM-config-validate-that-peers-sections-are-bound.patch + Remove 0025-MAJOR-peers-allow-peers-section-to-be-used-with-nbpr.patch + Remove 0026-DOC-relax-the-peers-restriction-to-single-process.patch + Remove 0027-CLEANUP-config-fix-misleading-information-in-error-m.patch + Remove 0028-MINOR-config-report-the-number-of-processes-using-a-.patch + Remove 0029-BUG-MEDIUM-config-properly-compute-the-default-numbe.patch- Backport upstream patches: + DOC: Update doc about weight, act and bck fields in the statistics + MINOR: ssl: add a destructor to free allocated SSL ressources + BUG/MEDIUM: ssl: fix tune.ssl.default-dh-param value being overwritten + BUG/MINOR: cfgparse: fix typo in 'option httplog' error message + BUG/MEDIUM: cfgparse: segfault when userlist is misused + MEDIUM: ssl: replace standards DH groups with custom ones + BUG/MINOR: debug: display (null) in place of "meth" + CLEANUP: deinit: remove codes for cleaning p->block_rules + BUG/MINOR: ssl: fix smp_fetch_ssl_fc_session_id + MEDIUM: init: don't stop proxies in parent process when exiting + MINOR: peers: store the pointer to the signal handler + MEDIUM: peers: unregister peers that were never started + MEDIUM: config: propagate the table's process list to the peers sections + MEDIUM: init: stop any peers section not bound to the correct process + MEDIUM: config: validate that peers sections are bound to exactly one process + MAJOR: peers: allow peers section to be used with nbproc > 1 + DOC: relax the peers restriction to single-process + CLEANUP: config: fix misleading information in error message. + MINOR: config: report the number of processes using a peers section in the error case + BUG/MEDIUM: config: properly compute the default number of processes for a proxy - Added patches: + Add 0010-DOC-Update-doc-about-weight-act-and-bck-fields-in-th.patch + Add 0011-MINOR-ssl-add-a-destructor-to-free-allocated-SSL-res.patch + Add 0012-BUG-MEDIUM-ssl-fix-tune.ssl.default-dh-param-value-b.patch + Add 0013-BUG-MINOR-cfgparse-fix-typo-in-option-httplog-error-.patch + Add 0014-BUG-MEDIUM-cfgparse-segfault-when-userlist-is-misuse.patch + Add 0015-MEDIUM-ssl-replace-standards-DH-groups-with-custom-o.patch + Add 0016-BUG-MINOR-debug-display-null-in-place-of-meth.patch + Add 0017-CLEANUP-deinit-remove-codes-for-cleaning-p-block_rul.patch + Add 0018-BUG-MINOR-ssl-fix-smp_fetch_ssl_fc_session_id.patch + Add 0019-MEDIUM-init-don-t-stop-proxies-in-parent-process-whe.patch + Add 0020-MINOR-peers-store-the-pointer-to-the-signal-handler.patch + Add 0021-MEDIUM-peers-unregister-peers-that-were-never-starte.patch + Add 0022-MEDIUM-config-propagate-the-table-s-process-list-to-.patch + Add 0023-MEDIUM-init-stop-any-peers-section-not-bound-to-the-.patch + Add 0024-MEDIUM-config-validate-that-peers-sections-are-bound.patch + Add 0025-MAJOR-peers-allow-peers-section-to-be-used-with-nbpr.patch + Add 0026-DOC-relax-the-peers-restriction-to-single-process.patch + Add 0027-CLEANUP-config-fix-misleading-information-in-error-m.patch + Add 0028-MINOR-config-report-the-number-of-processes-using-a-.patch + Add 0029-BUG-MEDIUM-config-properly-compute-the-default-numbe.patch- BUG/MINOR: check: fix tcpcheck error message - CLEANUP: checks: fix double usage of cur / current_step in tcp-checks - BUG/MEDIUM: checks: do not dereference head of a tcp-check at the end - CLEANUP: checks: simplify the loop processing of tcp-checks - BUG/MAJOR: checks: always check for end of list before proceeding - BUG/MEDIUM: checks: do not dereference a list as a tcpcheck struct - BUG/MEDIUM: peers: apply a random reconnection timeout - Add 0003-BUG-MINOR-check-fix-tcpcheck-error-message.patch - Add 0004-CLEANUP-checks-fix-double-usage-of-cur-current_step-.patch - Add 0005-BUG-MEDIUM-checks-do-not-dereference-head-of-a-tcp-c.patch - Add 0006-CLEANUP-checks-simplify-the-loop-processing-of-tcp-c.patch - Add 0007-BUG-MAJOR-checks-always-check-for-end-of-list-before.patch - Add 0008-BUG-MEDIUM-checks-do-not-dereference-a-list-as-a-tcp.patch - Add 0009-BUG-MEDIUM-peers-apply-a-random-reconnection-timeout.patch- added 0002-BUG-MEDIUM-http-don-t-forward-client-shutdown-withou.patch BUG/MEDIUM: http: don't forward client shutdown without NOLINGER except for tunnels- added first patch from the 1.5 branch after the update: 0001-BUG-MEDIUM-stats-properly-initialize-the-scope-befor.patch- update to 1.5.12 - BUG/MINOR: ssl: Display correct filename in error message - DOC: Fix L4TOUT typo in documentation - BUG/MEDIUM: Do not consider an agent check as failed on L7 error - BUG/MINOR: pattern: error message missing - BUG/MEDIUM: pattern: some entries are not deleted with case insensitive match - BUG/MEDIUM: buffer: one byte miss in buffer free space check - BUG/MAJOR: http: don't read past buffer's end in http_replace_value - BUG/MEDIUM: http: the function "(req|res)-replace-value" doesn't respect the HTTP syntax - BUG/MEDIUM: peers: correctly configure the client timeout - BUG/MINOR: compression: consider the expansion factor in init - BUG/MEDIUM: http: hdr_cnt would not count any header when called without name - BUG/MEDIUM: listener: don't report an error when resuming unbound listeners - BUG/MEDIUM: init: don't limit cpu-map to the first 32 processes only - BUG/MEDIUM: stream-int: always reset si->ops when si->end is nullified - BUG/MEDIUM: http: remove content-length from chunked messages - DOC: http: update the comments about the rules for determining transfer-length - BUG/MEDIUM: http: do not restrict parsing of transfer-encoding to HTTP/1.1 - BUG/MEDIUM: http: incorrect transfer-coding in the request is a bad request - BUG/MEDIUM: http: remove content-length form responses with bad transfer-encoding - MEDIUM: http: restrict the HTTP version token to 1 digit as per RFC7230 - MEDIUM: http: add option-ignore-probes to get rid of the floods of 408 - BUG/MINOR: config: clear proxy->table.peers.p for disabled proxies - MINOR: stick-table: don't attach to peers in stopped state - MEDIUM: config: initialize stick-tables after peers, not before - MEDIUM: peers: add the ability to disable a peers section - DOC: document option http-ignore-probes - DOC: fix the comments about the meaning of msg->sol in HTTP - BUG/MEDIUM: http: wait for the exact amount of body bytes in wait_for_request_body - BUG/MAJOR: http: prevent risk of reading past end with balance url_param - DOC: update the doc on the proxy protocol - remove patches that we pulled from the 1.5 tree 0001-BUG-MINOR-pattern-error-message-missing.patch 0002-BUG-MEDIUM-pattern-some-entries-are-not-deleted-with.patch 0003-BUG-MEDIUM-Do-not-consider-an-agent-check-as-failed-.patch 0004-BUG-MEDIUM-peers-correctly-configure-the-client-time.patch 0005-BUG-MEDIUM-buffer-one-byte-miss-in-buffer-free-space.patch 0006-BUG-MAJOR-http-don-t-read-past-buffer-s-end-in-http_.patch 0007-BUG-MEDIUM-http-the-function-req-res-replace-value-d.patch 0008-BUG-MINOR-compression-consider-the-expansion-factor-.patch 0009-BUG-MEDIUM-http-hdr_cnt-would-not-count-any-header-w.patch 0010-BUG-MINOR-ssl-Display-correct-filename-in-error-mess.patch 0011-BUG-MEDIUM-listener-don-t-report-an-error-when-resum.patch 0012-BUG-MEDIUM-init-don-t-limit-cpu-map-to-the-first-32-.patch- pull 3 patches from upstream: 0010-BUG-MINOR-ssl-Display-correct-filename-in-error-mess.patch 0011-BUG-MEDIUM-listener-don-t-report-an-error-when-resum.patch 0012-BUG-MEDIUM-init-don-t-limit-cpu-map-to-the-first-32-.patch- pull 3 patches from upstream: 0007-BUG-MEDIUM-http-the-function-req-res-replace-value-d.patch 0008-BUG-MINOR-compression-consider-the-expansion-factor-.patch 0009-BUG-MEDIUM-http-hdr_cnt-would-not-count-any-header-w.patch- pull 3 patches from upstream: - BUG/MEDIUM: peers: correctly configure the client timeout - BUG/MEDIUM: buffer: one byte miss in buffer free space check - BUG/MAJOR: http: don't read past buffer's end in http_replace_value - Add 0004-BUG-MEDIUM-peers-correctly-configure-the-client-time.patch - Add 0005-BUG-MEDIUM-buffer-one-byte-miss-in-buffer-free-space.patch - Add 0006-BUG-MAJOR-http-don-t-read-past-buffer-s-end-in-http_.patch- added another fix from upstream: 0003-BUG-MEDIUM-Do-not-consider-an-agent-check-as-failed-.patch- haproxy.init: fix reload and force-reload not to start a stopped service- pulled 2 patches from upstream: 0001-BUG-MINOR-pattern-error-message-missing.patch 0002-BUG-MEDIUM-pattern-some-entries-are-not-deleted-with.patch- update to 1.5.11 - BUG/MEDIUM: backend: correctly detect the domain when use_domain_only is used - MINOR: ssl: load certificates in alphabetical order - BUG/MINOR: checks: prevent http keep-alive with http-check expect - BUG/MEDIUM: Do not set agent health to zero if server is disabled in config - MEDIUM/BUG: Only explicitly report "DOWN (agent)" if the agent health is zero - BUG/MINOR: stats:Fix incorrect printf type. - DOC: add missing entry for log-format and clarify the text - BUG/MEDIUM: http: fix header removal when previous header ends with pure LF - BUG/MEDIUM: channel: fix possible integer overflow on reserved size computation - BUG/MINOR: channel: compare to_forward with buf->i, not buf->size - MINOR: channel: add channel_in_transit() - MEDIUM: channel: make buffer_reserved() use channel_in_transit() - MEDIUM: channel: make bi_avail() use channel_in_transit() - BUG/MEDIUM: channel: don't schedule data in transit for leaving until connected - BUG/MAJOR: log: don't try to emit a log if no logger is set - BUG/MINOR: args: add missing entry for ARGT_MAP in arg_type_names - BUG/MEDIUM: http: make http-request set-header compute the string before removal - BUG/MINOR: http: fix incorrect header value offset in replace-hdr/replace-value - BUG/MINOR: http: abort request processing on filter failure - drop patch included in update: 0001-BUG-MEDIUM-backend-correctly-detect-the-domain-when-.patch- pull fix from usptream: 0001-BUG-MEDIUM-backend-correctly-detect-the-domain-when-.patch BUG/MEDIUM: backend: correctly detect the domain when use_domain_only is used- update to 1.5.10 - DOC: fix a few typos - BUG/MINOR: http: fix typo: "401 Unauthorized" => "407 Unauthorized" - BUG/MINOR: parse: refer curproxy instead of proxy - DOC: httplog does not support 'no' - MINOR: map/acl/dumpstats: remove the "Done." message - BUG/MEDIUM: sample: fix random number upper-bound - BUG/MEDIUM: patterns: previous fix was incomplete - BUG/MEDIUM: payload: ensure that a request channel is available - BUG/MINOR: tcp-check: don't condition data polling on check type - BUG/MEDIUM: tcp-check: don't rely on random memory contents - BUG/MEDIUM: tcp-checks: disable quick-ack unless next rule is an expect - BUG/MINOR: config: fix typo in condition when propagating process binding - BUG/MEDIUM: config: do not propagate processes between stopped processes - BUG/MAJOR: stream-int: properly check the memory allocation return - BUG/MEDIUM: memory: fix freeing logic in pool_gc2() - BUG/MEDIUM: compression: correctly report zlib_mem - drop patches that we pulled from git before: 0001-BUG-MEDIUM-patterns-previous-fix-was-incomplete.patch 0002-BUG-MEDIUM-payload-ensure-that-a-request-channel-is-.patch 0003-BUG-MINOR-tcp-check-don-t-condition-data-polling-on-.patch 0004-BUG-MEDIUM-tcp-check-don-t-rely-on-random-memory-con.patch 0005-BUG-MEDIUM-tcp-checks-disable-quick-ack-unless-next-.patch 0006-DOC-fix-a-few-typos.patch 0007-BUG-MEDIUM-sample-fix-random-number-upper-bound.patch 0008-DOC-httplog-does-not-support-no.patch 0009-BUG-MINOR-http-fix-typo-401-Unauthorized-407-Unautho.patch 0010-BUG-MINOR-parse-refer-curproxy-instead-of-proxy.patch 0011-BUG-MINOR-config-fix-typo-in-condition-when-propagat.patch 0012-BUG-MEDIUM-config-do-not-propagate-processes-between.patch- pulled some more fixes from git: 0003-BUG-MINOR-tcp-check-don-t-condition-data-polling-on-.patch 0004-BUG-MEDIUM-tcp-check-don-t-rely-on-random-memory-con.patch 0005-BUG-MEDIUM-tcp-checks-disable-quick-ack-unless-next-.patch 0006-DOC-fix-a-few-typos.patch 0007-BUG-MEDIUM-sample-fix-random-number-upper-bound.patch 0008-DOC-httplog-does-not-support-no.patch 0009-BUG-MINOR-http-fix-typo-401-Unauthorized-407-Unautho.patch 0010-BUG-MINOR-parse-refer-curproxy-instead-of-proxy.patch 0011-BUG-MINOR-config-fix-typo-in-condition-when-propagat.patch 0012-BUG-MEDIUM-config-do-not-propagate-processes-between.patch see patch headers for details.- pulled 2 fixes from git: - 0001-BUG-MEDIUM-patterns-previous-fix-was-incomplete.patch Dmitry Sivachenko reported that commit 315ec42 ("BUG/MEDIUM: pattern: don't load more than once a pattern list.") relies on an uninitialised variable in the stack. While it used to work fine during the tests, if the uninitialized variable is non-null, some patterns may be aggregated if loaded multiple times, resulting in slower processing, which was the original issue it tried to address. - 0002-BUG-MEDIUM-payload-ensure-that-a-request-channel-is-.patch Denys Fedoryshchenko reported a segfault when using certain sample fetch functions in the "tcp-request connection" rulesets despite the warnings. This is because some tests for the existence of the channel were missing.- fix bashisms in example scripts - add patches: * haproxy-1.5.8-fix-bashisms.patch- update to 1.5.9 - BUILD: fix "make install" to support spaces in the install dirs - BUG/MEDIUM: checks: fix conflicts between agent checks and ssl healthchecks - BUG/MEDIUM: ssl: fix bad ssl context init can cause segfault in case of OOM. - BUG/MINOR: samples: fix unnecessary memcopy converting binary to string. - BUG/MEDIUM: connection: sanitize PPv2 header length before parsing address information - BUG/MEDIUM: pattern: don't load more than once a pattern list. - BUG/MEDIUM: ssl: force a full GC in case of memory shortage - BUG/MINOR: config: don't inherit the default balance algorithm in frontends - BUG/MAJOR: frontend: initialize capture pointers earlier - BUG/MINOR: stats: correctly set the request/response analysers - DOC: fix typo in the body parser documentation for msg.sov - BUG/MINOR: peers: the buffer size is global.tune.bufsize, not trash.size - MINOR: sample: add a few basic internal fetches (nbproc, proc, stopping) - BUG/MAJOR: sessions: unlink session from list on out of memory - Drop patches pulled from git - 0001-BUILD-fix-make-install-to-support-spaces-in-the-inst.patch - 0002-BUG-MEDIUM-ssl-fix-bad-ssl-context-init-can-cause-se.patch - 0003-BUG-MEDIUM-ssl-force-a-full-GC-in-case-of-memory-sho.patch - 0004-BUG-MEDIUM-checks-fix-conflicts-between-agent-checks.patch - 0005-BUG-MINOR-config-don-t-inherit-the-default-balance-a.patch - 0006-BUG-MAJOR-frontend-initialize-capture-pointers-earli.patch- BUILD: fix "make install" to support spaces in the install dirs - BUG/MEDIUM: ssl: fix bad ssl context init can cause segfault in case of OOM. - BUG/MEDIUM: ssl: force a full GC in case of memory shortage - BUG/MEDIUM: checks: fix conflicts between agent checks and ssl healthchecks - BUG/MINOR: config: don't inherit the default balance algorithm in frontends - BUG/MAJOR: frontend: initialize capture pointers earlier - Add patches: - 0001-BUILD-fix-make-install-to-support-spaces-in-the-inst.patch - 0002-BUG-MEDIUM-ssl-fix-bad-ssl-context-init-can-cause-se.patch - 0003-BUG-MEDIUM-ssl-force-a-full-GC-in-case-of-memory-sho.patch - 0004-BUG-MEDIUM-checks-fix-conflicts-between-agent-checks.patch - 0005-BUG-MINOR-config-don-t-inherit-the-default-balance-a.patch - 0006-BUG-MAJOR-frontend-initialize-capture-pointers-earli.patch- fix bashisms in pre script- update to 1.5.8 - BUG/MAJOR: buffer: check the space left is enough or not when input data in a buffer is wrapped - BUG/BUILD: revert accidental change in the makefile from latest SSL fix - changes in 1.5.7 - BUG/MEDIUM: regex: fix pcre_study error handling - BUG/MINOR: log: fix request flags when keep-alive is enabled - MINOR: ssl: add fetchs 'ssl_c_der' and 'ssl_f_der' to return DER formatted certs - MINOR: ssl: add statement to force some ssl options in global. - BUG/MINOR: ssl: correctly initialize ssl ctx for invalid certificates - BUG/MEDIUM: http: don't dump debug headers on MSG_ERROR - BUG/MAJOR: cli: explicitly call cli_release_handler() upon error - BUG/MEDIUM: tcp: fix outgoing polling based on proxy protocol - BUG/MEDIUM: tcp: don't use SO_ORIGINAL_DST on non-AF_INET sockets - Dropped patches: - 0001-BUG-MEDIUM-http-don-t-dump-debug-headers-on-MSG_ERRO.patch - 0002-BUG-MAJOR-cli-explicitly-call-cli_release_handler-up.patch - 0003-BUG-MINOR-log-fix-request-flags-when-keep-alive-is-e.patch - 0004-BUG-MEDIUM-tcp-fix-outgoing-polling-based-on-proxy-p.patch- BUG/MEDIUM: http: don't dump debug headers on MSG_ERROR - BUG/MAJOR: cli: explicitly call cli_release_handler() upon error - BUG/MINOR: log: fix request flags when keep-alive is enabled - BUG/MEDIUM: tcp: fix outgoing polling based on proxy protocol - Added patches: - 0001-BUG-MEDIUM-http-don-t-dump-debug-headers-on-MSG_ERRO.patch - 0002-BUG-MAJOR-cli-explicitly-call-cli_release_handler-up.patch - 0003-BUG-MINOR-log-fix-request-flags-when-keep-alive-is-e.patch - 0004-BUG-MEDIUM-tcp-fix-outgoing-polling-based-on-proxy-p.patch- update to 1.5.6 - BUG/MEDIUM: systemd: set KillMode to 'mixed' - MINOR: systemd: Check configuration before start - BUG/MEDIUM: config: avoid skipping disabled proxies - BUG/MINOR: config: do not accept more track-sc than configured - BUG/MEDIUM: backend: fix URI hash when a query string is present - dropped patches that were pulled from upstream 0001-BUG-MEDIUM-config-avoid-skipping-disabled-proxies.patch 0001-BUG-MEDIUM-systemd-set-KillMode-to-mixed.patch 0004-BUG-MINOR-config-do-not-accept-more-track-sc-than-co.patch 0005-BUG-MEDIUM-backend-fix-URI-hash-when-a-query-string-.patch - dropped patch we sent upstream haproxy-1.5_check_config_before_start.patch- BUG/MINOR: config: do not accept more track-sc than configured - BUG/MEDIUM: backend: fix URI hash when a query string is present - Add patch: 0004-BUG-MINOR-config-do-not-accept-more-track-sc-than-co.patch - Add patch: 0005-BUG-MEDIUM-backend-fix-URI-hash-when-a-query-string-.patch/bin/sh/bin/sh/bin/sh/bin/shhaproxy-1.5haproxy-doccloud136 1575047257  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}2.0.10+git0.ac198b92-lp150.2.16.12.0.10+git0.ac198b92-lp150.2.16.12.0.10+git0.ac198b92-lp150.2.16.12.0.10+git0.ac198b922.0.10+git0.ac198b922.0.10+git0.ac198b922.0.10+git0.ac198b92   usr.sbin.haproxyusr.sbin.haproxyhaproxyhaproxy.cfghaproxy.servicehaproxyhaproxy-halogrchaproxyhaproxy51Degrees-device-detection.txtCHANGELOGDeviceAtlas-device-detection.txtREADMEROADMAPSOCKS4.protocol.txtSPOE.txtWURFL-device-detection.txtacl.figarchitecture.txtclose-options.txtcoding-style.txtconfiguration.txtcookie-options.txtdesign-thoughtsbackends-v0.txtbackends.txtbe-fe-changes.txtbinding-possibilities.txtconfig-language.txtconnection-reuse.txtconnection-sharing.txtdynamic-buffers.txtentities-v2.txthow-it-works.txthttp2.txthttp_load_time.urlrate-shaping.txtsess_par_sec.txtexamplesacl-content-sw.cfgcontent-sw-sample.cfgerrorfiles400.http403.http408.http500.http502.http503.http504.httpREADMEoption-http_proxy.cfgsocks4.cfgtransparent_proxy.cfgwurfl-example.cfggpl.txthaproxy.1internalsacl.txtbody-parsing.txtbuffer-api.txtconnect-status.txtconnection-header.txtconnection-scale.txtentities-v2.txtentities.figentities.pdfentities.svgentities.txtfilters.txthashing.txtheader-parser-speed.txtheader-tree.txthttp-cookies.txthttp-docs.txthttp-parsing.txtlist.figlua_socket.figlua_socket.pdfnaming.txtnotes-layers.txtpattern.diapattern.pdfpolling-states.figrepartition-be-fe-fi.txtsequence.figstats-v2.txtstream-sock-states.figintro.txtlgpl.txtlinux-syn-cookies.txtlua-apiMakefile_staticchannel.figchannel.pngconf.pyindex.rstlua.txtmanagement.txtnetscaler-client-ip-insertion-protocol.txtnetsnmp-perlREADMEcacti_data_query_haproxy_backends.xmlcacti_data_query_haproxy_frontends.xmlhaproxy.plhaproxy_backend.xmlhaproxy_frontend.xmlhaproxy_socket.xmlnetwork-namespaces.txtpeers-v2.0.txtpeers.txtproxy-protocol.txtqueuing.figregression-testing.txtseamless_reload.txtselinuxREADMEhaproxy.fchaproxy.ifhaproxy.tehaproxyLICENSEhaproxy.1.gzhaproxy.vimhaproxy/etc/apparmor.d/local//etc/apparmor.d//etc//etc/haproxy//usr/lib/systemd/system//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/haproxy//usr/share/doc/packages/haproxy/design-thoughts//usr/share/doc/packages/haproxy/examples//usr/share/doc/packages/haproxy/examples/errorfiles//usr/share/doc/packages/haproxy/internals//usr/share/doc/packages/haproxy/lua-api//usr/share/doc/packages/haproxy/lua-api/_static//usr/share/doc/packages/haproxy/netsnmp-perl//usr/share/doc/packages/haproxy/selinux//usr/share/licenses//usr/share/licenses/haproxy//usr/share/man/man1//usr/share/vim/vim80/syntax//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.opensuse.org/openSUSE:Maintenance:11633/openSUSE_Leap_15.0_Update/4e9b70c317e24a4c695e69794762202d-haproxy.openSUSE_Leap_15.0_Updatedrpmxz5x86_64-suse-linux     ASCII textC source, ASCII textdirectoryELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, BuildID[sha1]=682a0157ae1969d4f004cab2d68da4ef6ac841f6, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, BuildID[sha1]=8972143ebe8165ca6cc88b3469151bc482c5bac4, for GNU/Linux 3.2.0, strippedASCII text, with no line terminatorsFIG image text, version 3.2, ASCII textISO-8859 textHTML document, ASCII textHTML document, ASCII text, with CRLF, LF line terminatorstroff or preprocessor input, ASCII textSVG Scalable Vector Graphics imageUTF-8 Unicode textXML 1.0 document, UTF-8 Unicode text (gzip compressed data, max compression, from Unix)PNG image data, 596 x 180, 8-bit/color RGB, non-interlacedSE Linux policy interface sourcetroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)RRRR"RRRR RR R RRRR RRRR R RRR#RRRRRR!RRRRR Rx_ Napparmor-abstractionsutf-8da3641491827aa3e93c2f7d1b7f0f7771ddee45b5421e0a9e6d59235d4d6fca2?@7zXZ !t/*]"k%Hp .g1T`iLw][RuF y@*o g}(SpXx+ev4ȥúfTUH8ܲA6^.8,-m )q+p⒐:[\hN ],iqMV\̇˲mBuWs!smZ(A%P{%nY`KfHEdvكm:O`3^_g M:=1D+grxuT[e2mp7NB?nQ3nM2V0`ϛ# n3H)EZջHgҜZ- GbS8' ]{xܚ׶LefvJP_/*fjn-X Έ* GAD[ ?LyOו%߳08h85]$GU)&*X; ±-^<_mҳQLydUk8+^/sdW:|H;@iM+UCE{;;0gbs=;FGв&6gu9$fy|} zydDF ^b5,Kr!?o'>[k_DJ6*5n_JyW;߮֩-{F/k STO$Vmg8]Jܓ1:RG\㵬'XsI:/s{wkGݍ00쌌Exjk~_K$%9tE$RuJ9CjqNdU ?8IIpoxIg|af 8Ȫ Ktߺ σ%{typaФ!|v$q/~0 +DnEYeg׷6w&6!X׋̼H8qj&SnŸC{,Ԑ SGӨZf%r{| ̌ۚ_N|yG!@؟Epκ=L<wګK'?mlSjАY35KMu+H| *:97YWknz*-\&}׻KO 0aRʓPIoG1Dyi;12qތR(PGms.6 k-/N%i _9_<'Z yzCr dWW6E5hNy}{&4 hw(<ȻX Yn58mEt?fjm4[h]%VdCPN۾tGg*|U%lΜ@s6#p% J{ & 9+%W;Ybif/@p& y+ }+.Wn Lžxba*BtmY4qSވ9+.b1"u&LZ:?!Xņ]z8#N8Rlu^[D c]ƹd*M|gqފbHIg!`^RLa/b,R2xˡEFo%X<'>0E8&DKaÁna^h^n@C| $u7ÉW@&ڕWqtU0iŖ38)]DEBVlI&LOYv3GA,PcNWP/^@Đ0^XufRfm =Yy#Bh*<;pHaXy؈60lcϜAW#`1旣̸b87|Y{Z誀tOcTU'<65eF^\3db sE _{vgW-sя͵RU,>ۡt_)Q)+~)篦Mm?`f~0{e]h]vY |tBV"cUz@̜.hrf DL<'%LtR]n-B@Oa Z3~>t)l nv?]&C4~ ht!aX)w8R-<#f{5~1\Ѣyoh;LrJVڅՌ.c]HHƕ)M' ֶrUqw|7Z铋|. UMh2&I,- 2aA,~Aߜ+pG+:~σLvOxp`rϠB1QP:CM#lwÆ 5Q (F̿;ΫmhGE EN? %hԓnߣNHɲ a<bknļwA˱֬TJDX1"ulk7Y==eOdՐ3ВɔD;4`QQquf\Z koe+J7} gi;rޯk뜄1K9x>شiB!Aͼzn\p :7~L㣾CIC٠?D IJXLN'kN`ho"R_}zpVMx<ḚP6ߩ&+2퓌S?{ю9y-{H;bD7q9ZiI}}gnYUWQ>p4q"}/uO|#ʼn K4u3K;ޝBtBK>U;$).0s7Jmخl.B {TC,s0 ~Vі LsL[1y=NoD@#]?fZ:Ĩ 'з~fG$S=rxYnM~~ѢYiDm8R,-^u( ҇Q=]aRX>[B_] &ؒ0ĂO"&J\X8Qa2vQ'JLAH\O ?RsNc)]US]hW-5W0e-K`) sU%R">J569]M;3*47@+̉TRMEN 5PE:>I.bnRcՒ״O6 4 3-h~N. 'eʯ5Ml뒵KWXw0UuETzy>scoV&Ң"d! cnM[9oĵC__1M Q\_z9A"ā^[dfV ]QK8MZm|$~92JO$Si)11nE:c#%HTeE%`)PW@n6Bm=Ƨ/[$xDxHXw pU|A#s% 4#l8#5V+hz-NhT2(-&7Lg.C%A..s^f|O lQ<:+u#VFJ鍿XaD n%Ӟb0눆! #j@ q&ag 킽1H{&.L<"ʤ,'l$WH잧aZH׮C.=DM2ɐl[˂ fMu%Ȁ>359e OL=4BrppFR[WhHKSKNJBЖ^% rw!Y(V!/89DcmA4< zq ThP;fz2tt+D.B ȬM)㗘P{s :-Dhۊ5m&s^_"\P~9h릡iy˛vSq&}3Q*N.Jy2>Z MDiPm]hC76~{n >5Hs:~O1oNJe JH̑fmֆ.}ITظ80 [V4<ej4ig+w ,_]'J4ݑq^j~"|>dywkd2ɉ'nE4} .h԰$滹6X,j1C,;;=,2yTFFA4o-, ƙ>$gfNKmK1Bw<o(l *`?/ Q.wN~Vn>rŦ**6.D6v{0'"ܣRWJڈN?Ժ&3r-ZBT[i0O{Etc0K2}ChWTpjݭq57 #CfNskwXס/|W$>- X hquD|/_υ&D> 9z-4/DHtSVWum\D4mJM:g༒;e+&Y~_&Zg9[0pPZc !w4*x"Ą;ØY&\o;Y)@ѧ1+K (4?ӕxM5qgr_|pu[[2<|jO(mm6od!z \XE/ 9 5ȓqdF-鶲{ۇTl17zr++z!2aS(ϼBz-`ε5TIs p $vJI28 }Z *%_|!bpMU 1)[K@3 ZƊYR~A=n죸djn";'Z!bw-ew{IGHf!Յ^2e- hno6WS6R.θ/q.0ґ-@rT?_ xaQ\Zi̗8O *]wO 3Y?7QaP 0sxsEsr\VYiܰp${d0;s7K'K=̞}IPkz$VB0v\z!{"y5[1F="sP//K+`kU=//G *ii0v#+ kyN1>F%fh'ƘX9X퉃JJRz> y$tɯGefz|P(<ڕ3BCh/ɴCmN-^#ZIc5g@C Z॔p8qϺm`[ϿNjPD3jwISfmPe(Q1\lMY#`QS _WW%b%6s6P/Ըu/w>`6g.e˹+kɷKbqKBS<=AG:AQP{>@Mq7&$cl۪~ Š@Y{|%1/n s,\w"j[=wZ2&s<"MZg D !,dj!̇Ye$\GܘM˅ǒ^0kC2J/Ǔt7[g+3%N4YX$4oTLk 7繐ܣ`bMRDg*_4[\jYhfq9eH3eNH?jIf=IpYy~f\BiXHŜmI3 A|Z6 vU(h|Ըo$ <4 +n 8\wͷ[s_l>YD6@ո[N#~$2T>1TJGFAH\Ԭ4 G*x>ISJ t~\(쐓0,nA7 M '3ô@#ܤ |Ⱋ>ɿ kYSl}aJKSzZaͫ{Ь VK8Omlb 9Ǎڊ.p. :}J3ʍ;v{$xD .h(H4Bmс1^J ,^rb&P&bѓUdI0F,Q fUzQOZ9S`o/1̀}mBDƓ:)2Z-yvս=O %Oy)~=1f\]C/i])'0 ᕵO+cE(Pd: CU7v\ʣ%tJD**z JoPa)R_'kր΄ R3(*Q8GN&DZvنTӏw/ R6A4CMnp@uX NUhv"%UXER<@oJ[>Sxۮ7=wduf@&U70& wN 9{8-}B[mkZJP,aͲ+6H$8{tG-_QZ3QO'6яCM sTlw`kFe%DEJb0@ӹG@pQ?:)z ?)8v)SNu\vOFtL5@\2|.{Gz-S~7ܳijqXtW3Ґ@]@{*a3nES"0ѝ-o#1$T|Z\6F{6ģ[c OV=؜$->E#n:w`xX\|a'^%gC9 PfwRK;|!'=T32Ly(trjLF$N llwIRe€&HK>c*+Gم&7n, J 8Ζ#.˓.B^n%"}:pGj Lq]>b0G))4qvݚ$A0 FNJp -mqi)˥kJGgpwCi0c ) PkbECqH\`w5K/S85|:NNU8T`$}~܍#Kr>>oh]bc jXre}Kq`{2njy([9']C|5V~vb +p>m0JG Czԥz$I&[P?ѩ`{3_j]U+S\7'!̎`n2Fx%3H7Xw㯨ߔ TZ0v9-.\u|{nMp{-6F*cv5yA2hLe |m >Ԍ?g-S8 tCsVORӽTu gl8)Lzf_4lBrEظH1 0k9Nb|ՄA5txp5L#3ӦJ}'աt׈\?ZơvRߪYK ՐӰ{C^xCD=". ELK4wJKh cKe$6c%?},5eF bvdV'=SDgA|*>m ԇ1k§{ KQN$FG }i7RVyNj42*i:W=E72G]gӏ*. 2>eXPز~z{6VN NƢM|h&ںe0{7KDx.u# |m9wjR'|l.~_}e0hяFEt)G{=IT GieK;2" *,]U>)wH=L柂њ$;&2yE}opO7Aθu.In,Tyȵ;?Wځi#q:J,îYhY) p97MO4h%14:=_&ꬲ澴(1Q݃ZƽD$mE ^ Qz[a/d;$E@(⏍Bi\ *+q,p\ s.98-o;><.@&fRގBiΆ]B6ur3~ZĎ ]m#L!jt719čM "?m{d ,b# $q|%x\pvO%XP_[h)|sjZ)=$nXP%MbE&XT=i*47Olrrc};.\b*,,cd s"8~~?\j6cu;0tiQytߵi-Տ(-dT핝,h{G[yy[fkMqy4P4G?eNKD#ғ@B@ڊ=ɀy ̭Յ/F3^!QO EʯO_uG:.p./M4V v`i."dWh ŠSk1JN/t'mx%E)+29V,x%{Iڝ>M\)-cJs^j W|JpŇ q e~TM`: @U..:<4֞XTvc*=zBjOmqɑuۻl/ TnZ8bŦ&UARB|T(W $|yq`8ϭduuq?yOGR;h^PJܴ[ͦNitTr.A1~p<\P7;Mɉ QU2Nk"t6wE/61i*oB0S<ǛӢ9[di/mU[3WFb*R79p+ȍLxPgc *ӓ՝Yo+ 9U\jlNj/Ob?hNՐԆeI;E #73kۓ{ vY*"hق1IjPs'<ȰhSiK'/*d4_u'ƋDsP[垘d]bc 0v,4tfb' u&`^N8SG>RvI7aW޸aUmS7ZZ\[ T 77cT2/tD5@#2NGyO;S5QWvZ @[D@s\SW#YU>j~hUAfrLR.\ױQ!lG2NvAu9 Fq,?yVL%KkVŨ'8]R` OZhpKa$&ʶmRJ+FO/enb2N[qMG01&cXst.P ^ԁ1qt]N^2+F[Uԏu|Bq: o'-qEaer],tbloT%A3XEl<OvT &iE[zi!!^bpeQ.KA0: Yk!dNu6luS 6靁eQS~E580"!@nhA0,jGqL߮x$޲<20] rzꬉ(3bJ^|W sWx[RO9,ܙ%"\> ۟;SLߊIJp)Mn^F8m'a[B cv;AD}1<藨1@[p2|—(>*7/'"M1A:}ckCv㴯 e2~jȍT#0wk#w߼3K&)A\}B(CmUj9P55cl.YV\''9 U m$ n,VP)Ff{$ʉөC?c)oH m;r( (pn)?@EјFf.> cα1`ۤ2>t kel|xn Szd^ #pV2~Ȼb5lUmh!,9}ݖ_+<Ѭlm+O*MkB-<ޢ[}Pwjv'4GE鐃 -4c|bFv<Ӆ*zUz٣G Lk~3TєK:!@/6-F|G~MX^w>]#I(C1¤+VqS envMvE#}xW`܏n QQ Y`5ڡ+lŹ0Ik {I橶[ ؈ azaC-w%`eRA3G'4&-g%V"cc F+Tpxqn|]#hTîR!$,Ϋ[|)V`TmA[j_AgڑeAcӽN3hJ(j_/ݗN{KSN;XYSyYS̢iOT)kYY.ghW-sĐgh.1$Bl2A دQΨ@ez#0YcEs.}ˊŔ!853Wutl}figgӛzke?KGD%+S?%:k+XkGӣtDXb^U-;Q{nŽ9[mapeU۷DA%I3pOZbd'+/XC>[=hE Nmfc!kzӿv\G|pv!y.ۥefVb룾'T_N R*fHFx$l$`DrT?e6ޙ-4'v3ȟ=M4m~E93Fu[%x$0aNQy\P1Sd.#H9OĆE)_WM ʣDʙ+0PKzVhCH~;Bt=?S!_sI-Ykw朚FZxn996*"BU-ft@p o6 ?&y#=J҃69\V9i[+(ꔲmCJ X$D)%)#,٤ u Re ߦ+c Uj>^Ƥ@GAuc3#-yL5npqCqzYo!g/S^>s_LBMuS bB@4p6ˀ=L\<@n,=> e i' ?*`o:cOnkد[d~s JrCb\x7F ڍW[G}"}bpV*ܶRqI q:]DP?Pu|)ENISuЄ&baR)_nWhm.bUhnv9حUb?/u15!\ ewNFU1"?b>Bz@>Yo|6fEdG4PmOl^>z `;/9CK9ySiHYͻ XQkfHu*ԢAR8iL +i:|J h)|Z? bQ̪@-4je k>1~&mwhI]dN$Sw5xfPxpfV˦-T%QZ/Ox H,y<8NlPL:{{;4,v.-W-|,Bm_>ؖ9 SY#҈ztcX7|y'=s\s%: Уp1ygu{F:%([+s V-ʊ΃u)D.@-q#)A:b6Уj@]^mEF>bn/uaF])zuѷd&6}0keD7[bՄr}D >Um_G:@'8s6 \jjPO>bF& vlѾG-tZGFtY8)˩kVY&geAm71F b7Te%Y nǫUll{!/o=W4^h>rtxcdh-{X htGJwRf'!mxU?a$'cJJ '1ڹB|/o?- 0m\0b,9 7eM7GX_cz,>p_Ōihb3>gO=SebHL6t Hζ-F#/:Ա,r.QU_0^ 2Hjhlp#tvv/8'.X@('RQB[/E>d47/^tD,bFPy`%!KN҈VjpCڍqE% X=?#=E3Cj8({K?#kiucaŠ.-5"H^tjz''2Ym/w(26{vߑ=6Co[Lsxxr?OH ~]K$ ('J_k734-]OTO4$t HlyD`$`EdY8[1S^ӦxͪzIg`e2FVEb#g7wD c±Dpq+nW0SX2ܟ#|qme<6C_qFp4b՝)W#dלdxf3>;w^5: k޹]tgUՓ )kok2/թbkׄyy3D"# ʒ~isF7~3Ŀ,$Z+M4eYs/1C?.[7]QFn rR>'P'P`ͯ+H#OۨxC5X`Jpd{#3rvĎzX&alMu2jr3[{]c^xNQV*Gg8I~_Օ8R㥅/KW<3 u/UFQO-܏>Hb,cbW jz@9wU rP\sg]]E]6dvTZE֩'z~EL-W gôg 92 kĠ/h ۈ(ǟJg4Fda04. [mO`+g E;uhȒ珢Ր% oﴑRi(124Q!yurUՂav0Pql1EksZ}Tɥ-JU.;R'vJN&$+f1Omד>fj8Tε7a#|f"'Pۆd3:ڦ5^Uou:>ʄ,x"0\>բHy[%()O`'=~MhMӍ_Z,B]:⹷V>PpJm&-3$>eߥL1VHGpNhEkO,4w픫 p\lBWgCWQR(>A_Ѿm^Z2㥶kF$Kkghe,+꾩"׋| a H"=Nd,(z:GR)E߽yLh`sz3YF~*j~8Ƣb*XSJv]Vj^^]E5Rz{xMт}a>c6_B6&(+@SzћB0FLUL1^=Oy?@3!sV!K5xKBAy|W{n0[+mui픆D $d$>|Qr3$a$nA&Y+<* ķ\<3d_g絥FhJOG=ygԊB~B?):tSI"}Ө7\lŷW^Oor@=_glJ%z׉jYpq.;yD#BM*18;Tudbii8.-:R JD+ڵiQHwezϙc_fUzB}t]f5 (}WS‰1YҦƦY7|*6l_)0 o9j/QI†pj7AU0V 3C!rE!vT3.>FX *D}w`mԼʻ|T#٫ദ٩s"NRcB_[μ2a6(߹+5/I'/kYiOcr_J <Ԣ[j}oyRYK-'oܘhiCeWB|arIlTVl E?˝`>o? k\pΖ5gZX%X~lZ趄x;2FbÑ}&s8j mg/mdtcWXԻY=f`)0< z=hv {ǂb~JӻoCfjn?A}l ݃mhL T{뿟);;X- /Y`/oﬔ&D`Ծ`'{$. w;mc)%QYyv!UL!ij6|$u4n) 8J،؎;_.RlЇS?ZPmR8+S2 &clthC>!lʏԴGKL!07އt0`I L=joDk?Gyӫ8#mD~[˥u4Rb;XgV)-EaSjb+Hpwa_ o(}AXp;Y%4/쎲P伖x9E- L`D )}`I9pJ\7h-f|s}iM}b߬Z i`DKT䄓p)7F #*{ĨȺFg Ki{*H+(pЪ-2_pw&>h`Qb=kN[9ĕwE5T2,'=`]U{#HV?F{܃`vT '.n)nBC4YKՒ~h2]y\tf$<dkF,$^^)1F zw`y#,Xb(pjB/$Erύy ?+";z8tt~";ՠϪ۽+>Wtg&u kfui"mӘPdVb+u0Lplo|t]XSnր39+4〷e9^Zy?_ (s-0 kDDax.p;i=J lYQb"XNu3xzWc÷}E=)_CyASiBOSf|{͚1s&cWu$DUʏ2?FAT]o;v(t%cnHlwU*MǴ :kѡHYǭœfi~3(iP{;.7,Y ?XPTkN&8IlG'tpxQo"Z ܏ZQ h7MH^ kYVh֎ [TBX9c0eu ƙPPnKAl+?g5^z dLi0.D7NR" 8ټJK]!1q -s/^3 UQS4~8'@Ak*~1&r OS9o #*pdV|F蹊"\vT7&-k+FB zUOߐOۧu{_ x- 䒳bI?e1x2) 1p$0Yi|h 9eړNsIȕAJ=W?^OjR=V db1:]ym$Ĩ18s cPZ#&l4?2j%,LwD`yƐA%*̰BN.$ @ }k٭"($V,158ciƗpM.sw P)ǰdw--{ jriQ/rhWkrSƝVƂq*MlEV}vY[ohYq>Id|ZzM*T_HOet3+aj+EJ.|NJoSaًg"B6}$ˢs "Ix>#8U4L5: uVi :.X^U %ksntsU8_vvjEDU؏B~ۯ,tbp}*-8߷Bu@?rgzW8V03 {Tpfθa-K RL*ڲOlWrc6 GAtPjk6 cwFcYVQJ6*"I(%g?*%o"l +[a%Mγ=(Ef"C<Ğ@äYí83OíU\3B>iTXH3ys%"䰪4TIRS֢ 6ܾi!)I "^rЊ&{W7e,R@:gԒar;f Y8LN&[Ǐ<6b2H9Ɇk\s;~C9hx,,^k'I8aT7܀Yq%x9 gs{Bf:{%xDW&e9ۚۻr˃d2"h6u8!w;ǶС_/2;9!1y 8R!w)Ǔo =Pr.1=Lu"];N_Rɕ|w)qB z{ܐ˹236f'*d'}@SG{wɿ`!pS%2>Jr^H[ilV!/7GqqɈAjx(YIЩ ,ЏN>D 쌷Nyhn8`$ k5zr&q&S)w齃(2w,j m~LPXpw)FptqxT+M4`-ZK'~}2¿k>xЭ#i $(*֘p7=^T6T΁vZ4AVjI1XW*ga R-NR p JYT;ZaSGSD#, GcRoQ__P$~c^} jn i%C,Urv6hQw'}ZrU5pX*[= 24iѧ{_ >9[} \1 \e:}k\#69Sm*rG^0-nP~ Ҿ M7gA#b=uEd砬6^%(:it*uC|}sI}'C]ƊaD1SAd޾*7%EO,zbBN{WDtHo>9G *#sbbdA$q+@>R@J XuS|{ IG_It!b-GDC6AhyVFTng,*<Ӷ 9$c +Pc]+Q$薕 S0t;[jPq!mj(`bt=c 9Ԇe |d /yШe#7a%iUxg(ک&*WO,؜,1qZqFsF`O[^ ߧ `F Evrze,W-M~rW/bp\N0+(96;uQ}AdLs}78?L+R#i*c:j[ (Nss06G~΄W,x:hlM&֕)Omdl, şpFϳD~ϋ !eN~2lkdwKeNc *>FERo~| VSʚ#61X#aKnnu0һݷ!HxIMa2\3s.{0c)&6(%pȧI2-)j~InVޟFTl܁FW^br {V㌬, Pps(#SO٦@}jT.+뽕\v&vz27qXxpofpq :W!X0;ߑQ9BȂK匬>*VyL@$fvVCTZPXV#Hp&QiWH1kxːB#? s /Iq4_(>NLW>,V(# fH ;^LJO"6O'V&r [NK~@!tu"M`:{l ta|),?O Bs*EL:.X"u\r(VFmg1KS7x."^{R"5j R52}S"nΣL)CʭO`a!҃|.kξv~_5x5 /s`aQ]1mCmF:K !!OMzuksmCEs4hohm0(~|: &~?O?y{:>xvsUKڲ6@ApSMSB1TFYG_B:*]ОVW$j"(V&;lDbbT{0TFx s@[7@4@wGc1,MMJL:4YmyVG˟㾇IU{`qXkă6ޗVʒIYla[M-_퇋 ~sv @1:b(X ښpV/ j{>zc!ӈx}HlљW[ 9qc:E516vlQX54.jȩǠٿ(F t](=C:|P !+P)q0BbP" NQ86M$y' h2 !Hpf CGW uUroMߝt<+kl>VKJ_1BI䔌}l(@Bf!֣Ꮗp]gO6|k 3& ꘱ ޕYM r">a}NDNnL&hK6%f;R?z_ȃ A¥kAWzS7ZO [hb֙YԨLgOnZ|FPr\vq6B5gxnSA+j8e?Ui+q+/f( >aN}pU`o+hHy[o|0ƔooڦGmSdP\t?ެ8ECG[BbCYyS NWq@1Wc1k}il;bVsYsK*=50*zxcd͎_pTǻ (IJ[Rޒ"Б(ۛha ZwچҰůMQRyK{$,Q^#o2Nǒ~ (F(z@h9pSơw9hPÐLΤb@*wqߜ vϿpV2{ rzU^wTo j#) bpdᖍ@S`:QE O{;iZM?s"LdHjzi{+<")!L'݄W7EI29LQu}tpi?j[ iNbw\ndϕˉ"tY3a+PoƄ_?s*i.&ԒhR*ZaGRnUM_z ϶loH5+'—8KO>IaJH ~uQ^ \ }'7aem(ǛlۍQ/MicaA)GY#9ll '38a-x[dB]2\g+p2&!ib=O?,a?bVy4~SD'립U\Sm3S~yiXF,")S/}Gԁe #L0Bh\vFv;<<@Ot_k$s3ȹV3&FfU d4=+E+xlǚ2Vם /pҼcK+n䉪֩}10}C{ReTm] %{UõLD?Q%SǕBN."S:^y8Ao"N^2H+ŇuE%n3M! dֿh h#<Lu=6_q9(M4'NK&/ F.u٫XT0V.Wc^%hllfn:![i[=M2枥gPUfu*)V A* 7[qX̩k%{Ŏ r镍 hG|O RVx9= <Ĕ*~X'O0vAΌ1B=!NP:X2lPZIڳ<ؚ~s6a~, QXk~IˎK€ - SI&գVlklCmP5 g#!4[29 L5'^Z# 2ˏk.C\ݸ &w6{_湻HWh)nuOROx>_:o†yd?/6d{MbF5-rҭݶb(k!F)K)怩|p 5̱kB7T[\_0u+u_]E2,%Y eG~.qcoDRb͂Jzy᎕Sy]W)qP-O:ҢD-*S5@RN7H ,5R@nzӯ WYqw$=>EN1@dW@[_3n/|ګ)Ҿ|:S_R!c3upK}xM]Ue 4W$Aj(+ :uL0r=RN ,^?*9qK!'9ܬgz8OUK҄yl[|<.G&!1םFj3}i(bBBjщ/8z[u(c 1ɿJ2D84e,?gA_98Mc!2چ\[WH ,C$f*/)~ RlC}yf~{<6'a '^fE73jcNj'Mɟg1d*4~H(j6xdob>(7 O=HBAqj";#󙯓 #[3OIzL2>,X]:o;t$ПHWQ18]ic ŧJK(-VfU%8*+8N]E(9>cfH$YKjQ0av( -1XHlf<4h / AizvjèR؜7<دi5.).~`Ir?'\籾v dU GQur6y8y3cZMMJqv=Y_=~#bSlنЇw/VTʪ+K ixOw{O^wNe8@ ܴvw7۞Z~K ,P IF&ll#QAeJ6`4iwZO.o! /bZZ]%ko;?$m t`kJzˮROmmFfVR]hT'}'t;X wL.d_YJϸAЧlg#<ʜJK-1dcޖ|5AI؆ZoƳ|$/#lV;6k1ʮrJVIY9MrGORn]_1s 1}&sL"wrDӯ7#a5@DMeO)4[䏄bG.YbʞzoM|W6J<$FOc̰ʌoCrxDp!c 'x&ȷifN1V80 ,d u!<ݣrik+`^uO zvzJZ+v<]㻐Fɬ cږ+%2]2,0jr̝tkKx/t>UNfv GA[Q " r+?.Fqv@cD(NYҼ-Vjqg*l|\X0V'ex9m`<}골 4:s'Yi-hjѩZLڸ>2aVm1%V넬.+ U_ B dۚ2e)d_T;0o⢿eiSLv9ü]`8:Gh lީ? #};-}1&e /ol]J} 9 _ibD=siUGRWW􌃘>\wW/5qȊ#[P9EF#Sq\fTG'XEiE"@D7~Jj| B'rkF !O1si[N~ƽt/"6i}}~ӞBx=mB8(ky4&`bɪ:;D8mkAOQ59x7.yV7D_#_jy7R<]b79cj `ND?,-qL5ҹ1_kqx>-US I֤Oq]dz>`jiBIz3ۡtijLv[N/A]h@ԛ}ܠ'N*# uLA$NX좳R+b[I-$x:wߠ EcӓV5 O_[B1b&8EǰP}8 m̗Ӌk6<<n6vUe$Se>PGnDM@JJy!F~,#:Օ<~W)4y4f2{ܲu҆?*(_G&aˀ@ 갯x?jA' NҌqd'XI$lrus<#^jvk^r|G'ꂤ37qhi!MDFE{HSÚ-;宖(ll; O#iWOt}uаlT G/iĕ/t)/_CC`?ɝ?2W=5hllv\)fE_6IPYI}*M{83!&kB ˵Z[ !˷17<%iOZ;~#)+.42 <Ψq l*3u;{>B5m2g] &]Ajef}vHWamgrp8q?>CKroraԉftV N Ȧe"qŎXWӷUy5KeI}|VGpŵV8>@}q -S*&Մ#<( 7|դQS[A|!rFނ#HPa~בCxMXtVζx|Qe Gye\}f_/ۣ+}h>}E-:nTwx6`;m<')rF&[ƒɄo2CC٩LpYѺv ۊO5=A,`WE6,;3hq[D2j4~\W"ӻx˴nR P3qP u8H׻qiD.ArU,@㪵-?2?!=(,8Tj]#Vɘ >- .f>GX̕OG. @AC@dr/niyMG^~QZ04@f1U 孉\k;XO{uiEul? 5i9ӵ g:Sh[Ah^mN1J+mi] .Ją$T-yYl2uHV ;-Vx, Üߥi-;}/y?cu >q5ޭccF܆'6M]P'@ÇS Xi?%2TDXzvD9Rs6ʵ`&܅0Q]9|=]b@ ORGGE.="?ۖ8J-"Б7RaCk%[A!9=}ӱ-ݟIeÜ{F?(5MIGi3hT hරGxPKWƜREԍ dSa>B)aseDd^N{qo~g-a03(q*6j$wyқL\33>[F%UNyy nN1\ դ+^]\b _ـhڜzc0sfָOE*T<mu }n Goi{waHqo]\ɏC,pç 3Ő:\y2`6` ׄ>P˾DM3&^jCOk_Z)D8_`.R?xJO)Otr$bC1}~~CϞ c2yT Z<#MP-VUphaFؑD.rB Q RFr$^<6~1vӜ[O`ZQTaT8`j% +* @ 2%7Q@,ZlhaUq/Qw(Pv?f,H1/kKщ+ Dc Rk9Ŏ}\?q~2R ӝf[!jdD{׫uE67̛!*"CRNK M[L~ 1Yt7B BƋQY(=֍|Eavtݱ&u"@%9[hP EF $b=c{KB"-f!@&+ X$pxMF0Bt6~xME9zdww㘄eJPz~+$O%mXTl ^j{*}Kiͅ^T_k~}\늊fV+'Lzp_%Qꨢnb*%M`-tQ ˹L}\\y>44_*}<>(6=\gPD&)~*&TED/֢|6” '7r>$w~f=KfCFV9K6TFʵ߈)?h@u#rCN)pPO;0'a`!?KQ-CgV7+CXF>JË=s眠6Nfr{חjD5U}jDvl 篾[~7=hdɢo 1nblDUAD1O.UIwYC(Y} zRw[r2&$6l,Mj5Kԉu J%W 넜p,>9f?{&!+ga?m R˜aT| 1炪JGO?*W #Hf>I΄4Mã5I# 0hN 68=5Owc!96wקB8~xcc'}h\[[gO6l^X{-rM9u;Fzɣ`O&A{cm[BWk[Jk##_~8oS"ԂO;4>a*rVS{,H`)_ĎclYx[Q}9 \Y7M,Ul҂$&HM#:Sl ~eya@[(Ew(2RClT"cH&}x=w]?#sϞR;XDxg;V')mɃf#w+=w*EިDl"6>4' ${4AY E,A, ^:-#GM Nm 6PҝԤ f2fŤCM%H UvT*jFj :AF+ yM;U ]g+Ca+ykSrG'hO!|\2䝃uMt<^xQQq.iKiG+xD3۶ҢQᝇK)e*e@hH߄UJw@S8,Eg $EL?4H`L3:}Zx/lKKU NubYN ^|s1"XuQۓBg$|,ޭyLfqoڳCM4Nˌg. zv P[^_h,T#9Ս^L8va{e.2' fUV:Zd+4 4D쿚isv Q fug5Is0bqXAU 7G=w|4t1,Ay 3rqQ%#&!h䌬%528t$Dku,vk<ݺ`O]a1is0<&WKX.*BǶBl7'"7G;-dȝX| tej--DnZ܌Pra'. V]76).KESWF?afu/pW۟ƏK-8fƌgg,s>NhNZiQ녤pkM5{on> A9:%`6[}v 9X2.?=)ց ۇ \A 2W](]+]iI.Un9L z͸yTǓ쟙&@`s8`չ OJUE.uK3WgaPs)HZVE) ߆= ჌CSSިUzno_%J"Xg[Esg@;v\}^6V;N/Adq%E7ЗUatΆ`a(8C`oΪ((=8lۧh:Y}*AwEF"SBc+W\<9' ?ۤ C2^QE*a~ i(^sJ6u! fې#u=wi$ǽLP-f=Qhx7mdZԿ͈­'bC8QBɜokq۲U#8+yi ܥs}O.f'ܕN,w~*W;&y,~ y)Nr%"|PIlŽ`飓ӈth[_`/}2"[ rmPxIP7Q.# H{D> #HkRSvAf n,Fi#@ӈ0](#K$石F&k7>wHpikBhxM>CWy*n~F׉  =1yqkJN {YS3uˢJB]}Z!"6Ϫ}E<cȌ7ʹKc̢KOy#s %bJb+$U]"Ur":BM/;kz]È{пNj`Hxz'cAM ^檲feZ*qM<`f t7$ݕ7s6y UѥV]YL"h >e7tQ`qG]=q)gٮ]_|㜜]Aj]ѐ|<4%@JR!aF~%vFmGoȱ{=ByN\/$eo^`@a%Ԟ5鼴% ᎇ--k3Zk\L =q4q@r P^wߴ4Қ -'h`qo˶pm%j_+7> 2ZC<6H[{_<ƟBL}* %'' $մJhXL"I]'kҟOn@ɵ{;U'*~c]e2~  @mxY(2;Ǿ 80"S9Qr~HXNBbrC p{Qf3Q(hC]swX`~L#r eES 0 Vh.KdTB& _k`.鷥fwf%BcN(/~ #34eB )Y3q=NU{0 T1l,|jⰈņ!-14$A!J!`I3=`(@C/f!VS]0)su}ތpvϣFAh3|Sa̮>Z q~:Н4]})6ǎYa@@^f9/`'i}ȵ;,Q}EL1:wxb?BfNZ&ȲEA[)McLG-o- `xoF} ݴ9{ Nka^$4N'dbơz WCY6 Q m2uoQL6IISKk"rLcxXHw)o7=Ȣi)csſګ"83|v"0$/2R iai%g--Cz:7'*po#SW1Ig9'?ؕ/=Av_>C:i'6G܋nJ!Qh׮D)#DqK ZZwdŽ#tمkr|b.nok0/<%.pW TT@BpIm2`0)e|WCdlRvΥ!|){Jp}T@>&;,XSn͠o0^9Nt^k՘,NG{W,5u w)B$D2 A4 L? }p<&תfZ G- S'PD }=7#' e Mb:7ws;q:K3d>shj>\ۀݼp lB/\#vŘQ&^DÅE/Ym]Dµ 9K%=*Z~n^U v%d%nb`_Kˠuթ6蚃 uS!WY0M9i7Oǣ1ؿ۟J ِ);ZT{eX Z rNnJVWSeo‹++\,,8;[_eH_^zK 4ءh }~"8t{\Ԫgk]S-AYt\#WfDTEd*'.o';b? ۄ6zBq 㐒jlʈW94r֭KޑԿ8G~4)yy5`8( URVn11j`_o:|av4ÐJ]O*|!s=-Q}nl|lz.Ł/A,\[lVscZY̠BS<8Uo6rEdd`|<=$B[u7fM?<Z&O|t,Ӟ%za>0j'T7EOd ɿTֶϙ>Io3=Φ:W %©7/B4~9q;UFssM}pG*yOpK4yN^z\9PSએPF]:%FbGh;#!3*2se5>^/ H[& cCG}ͱYT'hi)ÆہWdZ_<^Zζ ?HԪx ] Df2 _W?h#ˋ?RHh#L4 S, {Qf#*=\drUG:@بY܈Γpq@GUk^æ Iq3S skT}>m0e6.gԚo8=/ۋdo:Fm+pU^kG{Uz"""11{⬟ $ls'{ MmH`$|' -noU3 efJ:3aŜ9)r-B#$%KOg3 B<Ǣ1Y~reRe0dӑ`׾+p@,ԝWO^ w YiCiskkҾeC+3r'rޜt0Tb*f&½ ){c'-߮E~Өm(`_qap\nἈi0A57uXmYBnWĮ'e /G=b}w=H䢒-wS9kW9"z%13x9AvRry\,OSN YC+W[>Ut"OBr(<؛E՞I@Dtua|wh8beLNWVDw7fJWM3% oFlN( гy] kfHXP+N)y})xƚJ)⏑2-2p~XRigwe泚m8ɧ%u}7$fGuRmݔڔiѡP#1۴_2BJwܔ33Ƨ]@5 @xRw6\/vUhXO=-7/v!̵֊B\T[kwLbĪ[`g.륲u&q ȋ*xifC# fׂ\HDc2%_? mm=rE(b<5XQl}6zUV ̖¾RE(#}9%Klr'85gxL6|lF m?XGn*i*Q*f1Y`*G ZGkLqZl=R;sr-ќh]Q:)ze; a"7Ȉn (gMwYI#}>!Z󧥦Mk,r%}r.K'ݩM[G=Jsi3iQQCn%*pfrYk&oAV0VWA?4e_noKI qE.'67W Cf({򢲈D?sѣ]x>|Ìb[Tl Hi>x$Pp_>/Vmݵʹv Bv&/I MGقGN.B"(|ΏjPdPN QT&.R:ŝE 5SАˠ15SRC<7ho2t7Mc]Wi\br@,+"Gv\I밵ْ 'MW~; e}ew%K" È*_Uނțû`g۬ynE}0J,M| M Xrh%Y)g=@9t+j,):ѵt殗_u$otd*֦nQO@`扃թ6-+;<<'M6-5W&SXUbH | @_뜋{jn[5}rfkQOo6M]=ovyZ<\fD|}37' /e;\e7Ѩd,׹EvJTӪfC6P605&!6woPCb@y.XyjNO Ӑ@qʡL'jƐX=:{1Z?~ƞ:ſQ^чT$Hx>1vx`aW=uS&S2/1+0+o҅n64-q8'{,1޵#zZ,߶ކL1RV"b 2b8y:ǠaOd6E>],O}ꈸ& x4Tѩ r71=~d;&{OxM^ pE9(BeQZ~?* c"w \af/q Re[%ͅx2G j, "UsUTwy񈻩 Vu\Xs6^`GH)?'S #f-s 7DKUSw{v/6=czvBhE\Q銲a%3*6HZ4^0{ǯq;"J}c"t+qGA}m9"W8?ྥJ >B;hR]C vpэhu2P?euV,PB}YNM,v(FwWW= p ̬qyyx75QYUP c.I-0#f:; Zk<]JwhLBTZ=G6G*ZLZ1 VLF F8=%^OݞAA3?0"ք $p2Y6e+n6; N_zt ad*`r7◳F9Q+EI6!D!22>UɌrum7u*edi;$=8C3 zDc5NVw7#Po,튄 T9YgW>B]*/\% M u-WC^Rڄ72 Tk/Yz XӁz?KhO+⫛iO-5- SdXzV/dvpۜYi-%=pl0ú*+.Xx [|Mwt *+=4&BD0Ey8.s9T.Hí};$uh.h e.ZXL*%:p x3v3:02n4c^BdZ`KIʘ2L~{˓zatδ<}ԞU̴B*^rAj'-8ӒĐ#@JE~iU"#Ѐ2BRX9{cŚnGk8ےp=˯dl֜#Btd]bTh#[_NQ?ϥUH={,d+UR/bop=Ɗ TśʟdxX:.'?-Ir pM4|A.ݬ-Zjrlo(eb.,c)0 3."wUVxx힣Kd3dS#IԀ۹"Zτ/ZD.S[oyMS]E$^+ߟDK._E[#@3V\a*5" `{x#6#p"rfl9ƄQtѬlp4Ӯcp$ 8*^;.주 /t+BOdˇF/(=px ).vnD+!{Yc8 $@PE]Ơa S Ě<3u>:пG'ge!N|F Sᮻ|JE \rb)_ \Eiᑳ 8`F}g]@7ˣE2ljτKh@'|AD(q'?ؠJ.EN%bVCLsqT0O3)Xw0F|F%))DaP,X_eCt| hk; FNGLyD b/|W>r('gVH;jq h)FKJ?OV[xRqIĬiaEQMES0cks"J>iOkr];6fK"WeV̳Xg,fn 2L[fbdu6[pKOɳ(3z?*I&N8 eᎽ9k`Vmh(`ۂz!C }rt8(~S)=(K74K=??E ꢑڟkE8} Bt4TV; K(GT;0Wv;fTx0S&ڨk|S0pIX_P V3Vr23B| :8l_|R7a(;\DlCL$Z\d\ۻHYSp1UN}LZ1a6rHwydfaܼқKY_$i=u-5*_B~nۯ\v{sdm< OZE!22lxIDS`,11W/irh`lZpFi%Wĵu5{꣡/ Me$V:u")M(h܂;q˻o 2_""1&" pę~+-7'd=>0 fbzբ BinDmd*c A!a*ޫoT3oVJ Jak/N@T6Aں"!: @,;@o5Xܲu%Gz,ԧ2&> Dr03 };%yafl{OiDur十{kŇól77I),5`Lw=:(% .`nԡa47" sڵcb`B-bh2ڹ` \y][^;Zq1G<; 81Ќn[[L OPd*>i9V,b9bQ3Vě a@F崅Ef+5gҫP?3ñ}I:t4׀~ cdj-~5V~&%{ sk%qDTS,(y0T eIQ#L4f1%PL]hd۰$KztSi 8jB9leK7'tJpuH,3 !z 򢳄$}j0 ty?шvJ̈́kяMYT÷@>M'F:hӬB,†#- `g#?Ĥ0ׂ"8?\/ UTǿ{NTxpq%zhu$>XҙNwthݱpp/7X^%#G%{8 Z轀XzOM`$PlElt. u),!XVq=+炿lC p3sӶРY=~;pɧ%ZYFIdhѺJe!75/e;}H'Dp, ņ΂NqTS;sQ&byHE9tE)_)02t",zt(O["2*lUN3򁷤B,|)K_컌ѱ!~OllOœ.mm0/^G=yS;Ch5> v$P2'W?'fd!@ 0N{+ VjS~^Ј?s }SmDI{}¥P%t+Z&e*b3H3FD/fBK,_!]?=s8mDc,8Vv"- hUPt3bM:<)xs7b 5BvftJ ;}>tt@)NV-n%?3>-z^KL e}󁣽c*ݑbZy=r *A;0Vm]jQ\˜i^\#/ȍeNN!)Gnv׿}KSAg6idv0wȳQbYwwX`}Om'u"bה!rt2ⵏTT议.FBuT|<&gx ^x{|ݎ߶3XemLwd\&#\!hDH?`#/P"inT:F#V q|S[?iF -1ykz|skfT5WROʈ?YjD$d.z3gy״WjkB/*4YF\RLiOv`?#3$O5N|1nVE,ImoR '~^LGٸPs˃STd_bL f64 [ppP<Z4̍T";ttbV|3ˀL/(56bkF΄1NY9$nֵ5t K ?kʎsvT`2+xvs%+ <"r@`$~ )wvcʊiΒ?@>oCeq+Fltt0]LY:<&("f|5(s@ԶSLj1|ZᓲB'gU)<ٽR5՚3kI [*̺4P^F6gNрaw]t TuQU[w&%[9AbbIu- ^Vnk%[HuWm ,/@'nE!:5ϚLKaRdpLc# %|JML1,+UWoE#zj.(]а!O4$\x$HCҍ4-Ir'n_Z9pd{8}\&1eB0]t;T3êL0BDB[URV#0_P+WKeOu_|7863<:sG?(h=@<8Rh,xTz8+ 4A@081dGtXlN ä\b .`ԏ;Q;-$KԠ^7ۏo;rOgB ڴdՂLl?!wyң`~߶_0$Ⱥ@}??+ ί.@Ʉ&3'Q~aHrnQo>M!2 4| ?]k.BR Rkpՠ Ft')F\;f}tMj6nq%eC,e?mk|JӐ %9d;b>^g!@#pK@=WÛH*Og^V10J]q"`& L{h}ilh@c/OB*O!q~jPUˬ-UK&%i}{eT)t9>d$_kQjC'?}x遇sRQ6F hBM]cwcI6'0BȬ-HRuWߎcakp_H S#HE?`×iR Mږ~, \a/Uw@ӊAHBqk&|Ivd30@Y66L@T§eJŪ @rV<}zFc^dv)NrNxCiס7Յ\G4V6!Axw]B1ᑭhJ'jyr'3U Oh,U PbLti,}sƄW2 c~aH IUu&AP@WlQ ]72Z!_QMÊ~ɀ"ㇵJe(7p @i?r-yaTPq7 Jr"$]žck~0"ōݦlry]tu\)ҧe8tHpѪaV[-WؠndZ霢5p~JuY% EР8<S$ ӞYV}# 1?@챕nI>rCM5R2tkXƷ=E~LM#<;Gf,;"#ț+H ZzקM #ĴtK2N@NRB YIorj@> B0x8%2̥6h $4gMW]GC).Y ?KbJy0ϸrrls; I,"[L~}.v{lT *;|>\X@6(j;4^ϚBɹB!!r.2>K<ؒ.dRɕ~2fC'v (sC7Bi=xr2 (^-&`VՌ+st {($,xh5osd!T{-yAo@k.ׄMy iZf fS001U !6&ctٵ9b$ >/:!]g[ңWAg+`MhpgР- SB Agg9Muq\4?y4nՊ=S۾0vmd;/Ea9ǽ(+W݅3 7B]C(=˜,+e~!fZ`Eb08=rbL[\(@JVsjLI$q, RzWrЌִ!"(۸h8'=}'d3jB s+gkf6ыFO;)Pb|߲Vi]ci0ژ5 M'ÕrP2%B* =TҺ]`'W)M4D=P[ 'YAMUIEM=4(fI&իXBACHYv!g>85 ^4+n#]mm+63H6̵[E^H|~vIJjH*hvOEB[bmdٴ6@KMPRbV!`eI @А$ Hm  ;A% 5!QwZ+bq53@^vB@fGya#0r9.#NicV!%MHTTUɑ.V"Xny\[UE1e(8Pr&wNFu v,haBbc4 6l&fp$:>v. 2'aNH h_MjH !+!:h7{·rĴOy)sYN268aݓQESOQ(Sƃu!l9I @c0BͽL^ 5OK+9s}01l+=7` 1P\3I%rfҝPїalcoX䉚δ m~} IwK. )hZPC`2j Ɠ=Lw 4N,4`Tf f8&h'VYvYbɰZfjw)1;4YyEbiQNs cY^ݩc(nKXid_M2HwM>P£Zn\J({ES9Gkoٍ i.biFMFzAC\H9`4B$9EE ,QRuͱ 7vD4CaiU h&mv0\ZU¢)&j6ݺe03ei# x: %eVZ&41`؇DRKE1%Qgm3 i"݅7b7;_]ҰB7R#%&XRHFiqc\((A&P!A{f;}Z7n˯D=&$[4(f` 2FZ@qIf1 ""65L&'  ~DGi0 !CS.1pZ\K2jMo t;okB/)vB/1d;|I3e+Wu;CHBU:%SQ4D 45[zx )&("hus;/iq<^ ptt/Wŕ_Y GK㋺>h,-۱Qe!#WFjH420Ly%̣n<eE$0s 4@FQTDFQEIQ%15LTv[hF2rKq=P5EБcj޻N˗;8ngÿ^C*Lm1WtЮ"ɂCy]p%fцE5PI $4PPTQS51Ffqȉ ~yANOp,:E^خQ B v*I^z Z]5e+2+J.P2JuQT2LD,CF|;&4> WD)(ZZPh4 2&)"wdX, 4j_VO}VH-X*.b_,ފ#Iq$؁ =i9I"*"xs4Ĵ{6hXFťeKR,ձ m61+VMO$LҺaE(,:IzQ1mi2\ȰblN eZ9Wm$"6LKPj"Ld1v|ő4PTU 4 @EE$,(wg6Aݞ*Q`lefG"խ"fغ#XXd6xvZz <ڶqGŽ0[mD(.F mT{f 'eN ~i=&;ʆ>M.MTR4 !dhEZ$6,{IGL- \4v(NV@aG53w7-.1Ly\agllj(s"89D[fil0S@Qq:&h5lZf.yĺw +z I:(MďA݃a̤!]O:q*hXc5h>$b+VͰkrM9 XӯoU!*hj/x{?yN-(J(O#~4i :i)bb!"o Իpϫl@IR#=wg ֵ l8Yw$sق(;6Kd{&ͷKz|}=8@l2 Ph|j.WOytoF;n$ӴhEE̡\Oy?q~Ḇ$B +jh‚ʉL|I ) gh 3,I,>'O$%4LI @3S LZdһc? C}Y!k" 0e![(\yq)YfuX3u~3\,vladuRHS!i4]=C9I^ăD XlĴm!Lo |В@3?5Բ?R\*$B#YIEd0 !kV`,Y oH1rTYЗҁ#PK`2s7QO{>+ 5!䜸CŚN3q!iZzW%,v:0J0m| S*]DT .e15ڝ3Q,SBH!! i!`l1!O \{ rY4@o'[MjTCJqNX) |4w]woɚW,BU ԃ#(Dv._P^jd@.׾fYX֬ʐ£i! f\& f$J8=1$Y6!o*"C)9\Y%TR:y!Uѻ*Lb!iBXT4$4!1 ɩB Ɓ\2jhO3.TeC܉Pd cbW|>_ږD؛D1g_{kM00!Tg%gz\+H^cQ sR97F˕QHlQ2t 5]6caygryHl,kX4v3 hlݻ RJi(ifi; E,p$`  Yl"óޱaɠ8[d+Ow` '>P3bȁ20Гc`7s}IA;Ҫ9&t@"ɈId(eׅU3M($a If\iJ!YjEHXa$`^%iZiޭz'AhAU);\u#un}l*lF4ZWLHcHU `&$ BfJz&l7k3' L"!A)M" pP鲆 $eHhk# Q5ک1Y$1\P "(hN kh^[D# va2˳֭@Q>bޛ6b&.BeAʔ%*Z:$Nj$[s^2<ǎgNG{S3H1_d\/UgL44ǣ;;`< n2sĝ@D@@CiLOnoi5=cjsl9_K.٨%kopNm{OK2,-BtGm `;C7S-?1q33:E,= ZMd4+ ^!1޷~ND1Op]..-p y(,逍bXI #Dq{fWn 90m08aeU`fv_?7m Mst9h/ 4c="QIY8 f&`/Ak<ȍ9uv5?1tey0uv{=nȎh`>^_ŭWgZ}j]`"*(@ "O7ޗ{{4BAOsHz B~6ݵD,{?zM%Xj{{耥(232s-<[ U0 kD[nxufZ-VW_[TCy.xh48Y;,<- iCI8icFG Hm4)(tJqiR8k"5@AX Ex0#CLve^A2F 5Sxk;cl|tYShp[f* )b*N׍ϼ^Uc̍:~owi) 2+B~U5L6U Ƥs>41%pTiBwC[+lHY3Wc26X`Kso(HգaPre  *^lPu\$G?b;>b7}]#(bKriw\k&\_nmXf+#J.g+$ e݉Au]>q!u^ "@U\ WS<a%6 rYó L۹:Ѡϐ!Y3o2zdvk) !Da#X\aV _jڃo/2w ^@V{pY`R̬ā؉ r@3oC t XÐ=GƃCUn~7]ZYí V[vD R8jV$c#\C}Lh:]'jLW+ҏBy.--C)Hl@@.ش, Rfm|/U .jjI1Nx;uگY ɲc93Hh. ]+clrZ7w,h-L.?:J7b '8۞-PX)й^'d׿ԂG0pcⱂS6G$dM&ʀ߆Ѭ{&L @(JzR$Hu';EIS*.K8[kIEDI,-oMhL['8ͥrlS:cG8/XAgR @҄!,_mI~ultZ90. ѿ#8so UJR5_>|9[(HtV p?(eJ0#hӊ1 ֺQIgOo B3q\j!|cS^+Տh8gn~{7*)rn}nkBT튻dY?ku#e*s?6̼ =mp4&?P@D& /IQ.SSaq)+o*` Z1SwvQ;&7+[%gv\ $ɬ3OaJ8n{Sˊ?ͫ͞haFv rBHB_d9uփ%8DCH=Z*hrZ[+'xh`D?g"}D vI~ozXAAޙ ][ڂ07$fns[tJZA.nEtG犧"x:O=ؘm7 ى@ w^yLH4(!/۰^2t'[a}06{ddџkXdHTH}PERKVU֥* ds2'7Ppb0ػf'wk۹khTo^\Zc`)$l띲 ۿ0HG H\ G{IEAwx"5.Ys'Ab:(D)+^j/ |M\r`1#@#5ș‡ WB*b;9ؿ`(OCEw:>'H@@ w3iVpbnb7 &WV7Sׯ?Ut7⡹ ^a-齨sGX""p/y \iz#"P7{u{aW:2 Oq1x? M4hҤto=ޑm XBkdqlBtn^wpd(#>Ú 7f]0xRQݱsk xrI૽]iwjUhSkɛ'SU$?_q9d98rjAuu#EcAcY" ûƲZ4CY_f#U@NK&7RW;4Qr˦-Eu5m蟊uć)ܹ!1*80%+$_ιwnW/ri1S^XEVFAT@tuln 'Lk"@[e"#5ΌO˼=sSz 3~!\AD7|S@B̬4d:l=Xzyœcٷ] BrM(f}Q#jk{MhlL@r?.Xϣwζ5|:7޻BRǽ x${ߟa|&x:i|o_9670/&=^޳v S%ܓOMb{g|j4:lZqh o~|kޏ3Ǔ{z%@@&]d4A0]jtZ I^{/4""A,&n/˛Löj8GS0@y 4\+CyoܲVPSo-f̽>p9p }U`&F<>?bi &23%wplpx?7K}|/H%~aIFӯk#e\5O!\t`{?#D1Kg{aĨ?^bC5$!s$%c<$ btH䈔'D=)> !u RP27,14. ,1  jM J j$%b%iZ4P$װi%'dķDI6!zlB:uA.A>vNI #bHASUz_Fjy;}@MO9v@!D:Ѵ+8 BȴBWHF Kb4$R 4i%ͰhHI(`` 0@i%f=#i4$E`ma50.9m݅fx-.1=I~D2*HxR }䀊Ee_Ŕ^ (=9P\@TO!0;Ay a Xu/=#Gb5] 7}(H !I֐+vui$_1!pZoZBBÊRKb贄+A H!P c ӱ H`@yf&X\቉2HmIb @-Q0 lbOM\#_|FRIq oza,&#zK-&j4`꡶mqei!:Eڀ_ c7;5_`=а7We<-ѐ`꠾QY swϿOo&jj_>y "kH}\l^Mvo 6SEw,PFpAM/I[)JHMxxx<`f J!Åv'O\/‡6gg38W]|, l#0 Fq?*BڲѦRظSth*5xјiqWE3ӞL <DZt=ohTSg7 |,q4uKs+?y:\t5_yp'.EQij9XI1VI~3 i?ߴ +Q`9Z4/g^#"K;vpYY44@ShBڱ%ұ{B9&fHx3 R^Y"鯷)KbZ3vqayrGabyᣞA ,A;2m@S_xN(i .0X$ҙGĒ v+&$4Ar٤4 lABٰԎ2;4g~F z0^u;~|h]0K4*Ao /a3hY`0϶ɲ=ki6%if}(S8`.q`fXB*^ 0cV aw%|^Yq8Ogydx|(^g/sުTŵTA+`?q9~O8hx Vע2֪OoZ TCQC6r(jbP6 mEf B}j}wO 7vMg?'+H!-wo9?7r7GDЬ6жwPKԋֆABM!1$+3kXWp`0^c$$X BAp$6u'ϑ^㇤ {(I%fB|z gZv ]pzMwSgNRNzMrBf Q {SA ZAJ_\@`!@~X$%%0)[ YHZǵZ%O8K;;.%k$_H=HBk^aCHF o?7` .ah,ZAHK}ԾlSzZ:{PR G?+ȫ~<2, X~Kl <2;Jz ^cxI|3xW˨ &#vi%!x!ƚfFIk kFݬdZYpp[E4ȝmɄϋ\D8>4w51"Tbf^Äy}vG '}v~_5(ML0` ouEVe9"s Aue AʖW pMq7應)Eg3J =":t~n93X .T30ePB شif~._dfwfb_ 6j-L~ڥZΕ?'{(H{whn-:3Ov4R\snZa~[=ޱ ~g5_*鿋0D" eڪ]bZNH,H!6Yfb( ]!5dŖMUe:մChv-eČmpk-IfP$JQCAYafZj +g$hD8qCt!k>W/ǻibl3Y}Ʒ+Opa)sK[Jdv_!)KP yFФ ,BA\Oư=vн0qaz nQ* jp~9f$hj Ks8Ф$ɅL\׬9MOiyy h'X!<*c q-dT' ȑw\m\0(M>)[ɮ?1 cVIa0!||*?՗㳡*K<*ʛ 4G@ƒB]nN/~l^d؄Z?HHŎAp ЀCH@m}c?>ϳin~EÛҶe%._g}Ry)ZvS쒇ԧ4/ @O\?0b 串`đi.I` o_ =ewY!$ T~M?BH꿏yK\Wt?鰽~XnjĎK17B=K8[ו]k;Okt9{ v4.z8Rn57j*;[/oK7u _{мoD$cM@@`T‚8;+F#{O~A_#s=SDB&M;Ų[5ٔAjr 4hډS 籢_;UOEtvIFL{ʢV?7ؕVJ,{‡KU/c]>%b/s"<_]@tH :&7v6Z90Z-oq v2G \tz>_%X-$kKB/p1 cO)BbӘ'$ zp8~O-2<tڱ(}CHIeD2hGM$)ᳰOhy4Ēi$m؀Ē_>h[c\Z1\?ͧA|i"Uf#/;|g !s.:vb3mNJ@rҵIyE  CysRCgƇ&F=ߜ!N0@ ``lQA(h6s߷]<ka7w:N{dE׆' w< GgQ@JD6I{ު5Ӣ1p Cۤ=9SY1 /4e%CorˢUgm/5flDys?K Af{T~#ʲJʻ{ʉrՒ'AR3 A㧪!+@uGH^2.;Fr 4dB-joo/ J$ €XUEKs &{d7s{i&1ް|69O6AKhLq@D.p|31j3(FlT}p:J)}-אo׋,Y_si9;cZ:]Ur f e- 'TJŖݏjerMjE=d6o+@gU?cJ*vL9 Ue5sOl4O=|a'p߄├YLGu87|o5Fria/N3T%vD!@*mjm4 v-}6 ^|8Tz(U&J}BD $ЭÈ= >!@n[unO[^'u7|l#M汳%!-BAرtQ0K0Gafd B> S $#B<ǵþ_ΐ-l}:K콽λA@黭~Qgu ٬h  qomrt8G2BVQws/٧6Q0{:`4E `($\lLL-Zť3ʷfݙvO 2%Ƕy e:.;&Ԡl;cyȢvY{1~O{Sx<$\oJRcyzRDUNr7;z&06Q0!K0en#4O[L:5"83Xؙ=Ӡ*:kS[׶.#U> !3L+)[d J pr4uE%J$@IMQG4|JvxBH6֓zUvqYQڭbO}m?4= rm$[SOѵ_Ѭ@z5N8gP#\[:&Q H Sӌ$ Q0p߱$/ YwNʍP 5Xҿ>uHRWX596,Hs9J-+`،ְ`Czc~^|:/O/u{K5ku{Jd̦zL 5! hjQ)khY50C7,WhhaQ }C@Cmʅ m5T%{qZBgh*&) =~Tlɔb/̤ h/u :h&!a:%I @4!'w&k=%P7dcB$i^υ)cb!6]m\3}'ga`V 6 licY7}L?St@Q M=~f$UQsdiF?dd5tAƘw-%3H!* LIz̔}-QgytOx\'3e3ި !3;8~_3zPcI~TʼnUH 64&;O8L=`f^-Vq9<vdG+7[*hjhSH8 U\)(R"HMla(dD$%hIw e *.wwww*w=c?rLH0II$4#S =HƀjPL66}L; L +ل oi"邟#{DZ|NӴ;NӴw`YI|V b\lҴxr#Z~ש.xNߖ3C|CV6>s'Q.e2{7"JS.L0Jՠ~D”W.En<6 䐃~H8Cfh"$2y^tNՀ'Z$f$ocN*?3[@'ZE54ajuutuuuuuuuuuuuu!vi-_a#9n}ü$!6@k(4HH׳7۰WI*H`G_f~kF$A`鳻 jZO&vNIXtЁhK4M895ƾ9=Sюqm O!tb.v``xTQz9]-w4:xxH}wT]5]nwCD]ٰFI H8}Td UV^w_!h]N640u(Hbf!{6\W$H5M^^{IMHZb@PU\\\:8\7+WeBAQ6,I Z4C-Doa"ݤ? qku5Pd˦ZDc&43B&O&=@!Jԉl(N05wy'&k˰74{&H-kA%1Ebp̌_Ř! eAZ 4 );vXiF$ \B\ܽ\nng.q2ټ9nٕI-l;mxh]C;ð>@6 >'^%]'M%yyPؑn;wibqT친VTbS99nt.#v)߷|߷ډ,e[޿|֯wйIL;VZ~t8g.C/)D "!2@ 6{{P;W]E W!WĶn97dx,e^7OExU T7퀡(&:%~JS:`nanF?3f˘F_[ly*gbలe[W 3,xݣ2HF1dvvt˾48X4 $lH$0h^٥`#ffy۶nCG9o7ͽfs574Af]Nd.RXXnnN󓬼m4 3aF?gbB_FHcz`}#9HLC%֠zm\ӋlX0l,/CYi:N,7,bpeP"QJjt Gv0E|smD(Zm1ocd ⰷK~WSnl%6ݟO;KIzٖ [kޅzJN ?#cg96,K$$B_ x@{H/' chK&r\N;ID Fkӄ)F,a II4  hvq|3k(iigL:> r?+wwie=Ǒm4y%߼>b tֈ1-R4"d+;E951U/A, v8a98x FG/_Ԇ.D EZiBnXd y*}oWMm+ܺRK[D U " \q:[5tZKt`ײa s5FyD"֋__N1ɹYdO[ D$E}öy%> /Gܓ-fYdu#W8o!d巧/](Bɱ'ܾvؖMBJPQH %b3HQ|{ؿ'Lv6FVF$  iI][mIUCwjA09զ;ͮVFKH{ ~tc֑ c?IVZDyO4ܲ’ը`չjmrD|io^V'}uTgГ,- 9|\FC :hn-ŏpU&wQ -fc hPiR;jCֽp"Y`󢞮KU?TxZ>T@UEԍ2*r&ߎCB1rF|}Jof< $BB/{]m ->?W!v5Nͫw].5kAįx,`6F@ 땘MӐ^΃1'ȸFudeA0yv Dcij%(ec JE vׂ(Xčr{pWX'ܦ<5B=dnCNK8X.8'Vccu뚹Mpb~8SOmXM!r/KN#oyP`:u#P5cv\(C<|՛46Sh0 ) ڧNToᄄ/ V-Shl4(+,wz#T'NWԷ}MQb4L8wuFNCh3 Bsևx]n1]H6BΨ*~+i:ŋmsK |S`͔RsפLNYA4d !}e[.Ƞbj6Ҫv ǘf{(?1{&mS^_\ю"]_M*c lh)E΃PX4tY F3WJS !zKʤRVvҜ6+Mc{?х.fl;AK]:/8\-H8vk$#T!<}t}Ƴz}z _\[<V-Ķ"(M^nwtǺ[dv97^fm,ULw%+%&1PSxJgAC]z9 k *})Y>Z8#נB៍.eR/Ri Ə)z`41 dr$>KwYFOzJV̆mרb`St\o>NC[xWv88}q1>?A s|ebmږ@k@ȞrGlF8Z}+Q 9bJ$ݬ2wl4]˴aYģr]ot80V9JO_c tl=BC$rQE߷jx&[}=k)[Ķl?Î:w(Vg450MuB \[l {0v~ +d1F3l8?5V5^֦QV:哔 z'KQ)~π#OJ\ 뛸;߾_vg `^8HIh31)7;kXĿA5WrCYAn53ַ[A>E6ڒQႢU\KZ1H5\ihxrݒ5̚v #Py)ђ?rqBDsn~hO0'Gw(ÉW0˧ o({p?OK7SgzsSij\d:-g(8Iq&CT54.8_!0zwĊY:@t/ zS DĚP'.<Ãg%^Ywv&2W8H9 :"-V/ܩu_Adׂ7a8,U gO7T=;۰Qضh];']wn2vyQ}x}*"rADj{R0n:G[שl@ʺJؕ4%ess5-*lYYgKHg,N?"܉ &Fړ{Yckh[=!8 DV]f):^ 7a6%{-p<[ G/ֽf;1EQ3,T"[|ȠIu;(FJ3/ecK*puI8MFn6pBY=2F)9ٵ'` P*ɐ)fR/7YYZ 2Go'h,'kawY_蒘 i] ]8N;=^T!ƚs8E6n̼6WܐK@*3Z;qD, (F_ '3m.}YLlěDPl4bAʝYh3 l|w;K˥]6hRɽg ܨ{adNӥD48::ү.' :MF8"؋Rh^$q`U(c`X[PcA=tFo`֎,6e<žl15v 9!ې;aMh{EAF yc)VBg0j9af٫"W^ !eGm -Ʈ_u>i`vxF]A]dw .K\Gr _yccZƬLiwXxx65bNK DLlm :)'\=&UsmWgJ ؉mEξ}[Mj2"Xqp/S-#Jma J~<j}푤.զ|_E ,HWbPFa#6RǪB4Uj̣5Wouc*@ V A$!m4{+p,2& 1_<ȅ**j׍y% g{-8O+ "Rk։¢`"D1#)qΌXtcL WY) \12Dcs5' %ѱ4{#ckUm3cpUP]ry9s[ [ ٘r1zWre$Ե;{2Z܎|8?aBJĘ,l=C ]9/s=;&Oq 6JCe1{h9wl#/&’7m&VP!W{] mk, @,X|ط^.e{v?٫^ /A 0aaXa;iq!߮x]nsdjHg8̊ܳB[6o8:eHZg*^%0#pE\ UG/l89㞳\vsU8Ѣ3_7dS{O ~Շ|ipiȆ .Mhq@NgL(ΩD!=Eb G`"h&ʘ ֿۜ! (2U# 9~eچam3isEl}u0"uK+Q=U,}lՕ(7$ߙ`{CA {eq2)b =I hKgis&{v=?[e-vK!_!k& zwLOi%1 LC\gZjD!q/_ j1fiK)Q3g{NEHH~gZImK 7v҇g-/g$=^݇|,8:㢩!$dY[=&Xßu5"0`H?Q A7ӮAP_0@as,SK`I7cBHαҺ{jvC_>L@-$+C L?Pʸ0Q5]{)0iaa^c2*P>LcE&ZGI#/!w @z+ /Ճ_e%etrlcEc?^hiSzdB: s;@4o* Sû!!g~hE tL?C5`Pt<_8`jD ,D gD:K -\]{w9& ?aP&4Ç|B`R:*BZDD&K,t?8 o/!_ۨˈ{b_DNl(d;bp}t !#p'\ )kb/6êfwl䒭9ig. ek=EVL,{ZbݩDi^&c3pf (P_ufcb~ei|nֵhi4k3u$C:4ps]4B:Z]Wm"纳 AoŬ4hYC4M,B0>@O%ֲfgrNEHDpcџƭ8bZ W[ܰGe˿]kLZ4 ILyՒ  ˊK/i_z&9,}?S%,K ymmP_dƇ7s{$*嬍&c\8 .tA{EwxR᭢Rqe"P }rh@_ 3BaȀ\eM$s{ww8w׻awdڬ]wH3ܲM1p]NIQw5ؓx/mr3dB`~(ʴd<[m{W@ɠ3Ƕ 0%2Ti 1VD! r8BuЖ\m~"YlK2Bi4͛" J!f /⩋=s>εLT>av!jgn)%ꌪaJ4 ʗpL6}̎1c<#=&s:d@'s *mƐ^tWڊzv%׈xEG C]g~]3pC,$L* A-g-+$|> /:=t:f[䨤8VZ40AQ͐(*,sMJ,گS y2cO=&e|Oz̐1fۓ-mOMm44} w4ƫS gGD[QͿ5s3mڝ)?bGy71E)ZcF,UCz.An-$ۛkssvsY)3h2!B qfȸ}> ,60r3kāpBo谅6A]Fs %`!".R7g\_Q׃+vRJ&T6,goG֙ˏ's$Yf(+TQHW d@>(؋X5I,B2P>)AR¡ 9սYn!A lV|)1¤sⴉ4!#E6Bnnc'G^7U*m6hm1ĊA'eHkXeCEtpϓN/յ5NMyה L~o/[+|͎,N nN"d==V `+ݚ(|9S116 -A4P$§VI u "Y;Z7QpPpa۶ 74rjEd.,4|l=yT# PC8@D+SbZgX.NBt @T$3^ڞʟt^ݤeR,&3$C`RI@ka>~ b +R-7bGUC>ㄒHD4je2((@z(OdyU5.f]VəBB=_>XRBi7iKpaHl`/ӟ#@*c->YI/{X1 mT-[8gr3@v~..⽘-Jo7,pz΀ʼ[<Zy%td$qD<4ǣ\x"(~=~_*Qpb (z(go{;k^t#C"W#!Ji\.촺3uu(9\oY$bڕJ"ލ8\.FI_fPWnI`8}sؠy1WU z)s/m| >F!<@|1bžo?_%0{!b]s|)0'^3qjHMkۺ(JWfŁzBhNZ=W"U$~.7gJNm6 $1ĻYpn{R1♒g9OkKc6OJ=Ɔ[P+*1|ru"1! {o P)T\mb|3-p  E)7Y:=qpRq`݇_]SpXIftcWR2B8.wȃ  pPRS& H{ꮭ6Y<-ovLndMo;B Iw0 #[ 9 ޴ft,4V ~(߸OMsF's~#{TS }a/Jxc5@x"(\b:lᡆXq2 ){2"uKWWeb:]\O 16;3Nb5p_ &xdN3J,:2v  0#puV{ks}V2tkqƗy&Ɍ/CMt$,7Ǚ3‰o/K,d*cuuڗphyQ1b QPr9h|S[of-9~wUAj=zlwyY9åH&Ԡf.'NjUv/YDBm\n.27 9G'<G9ߋ'K/ѣ3L;z%2ǝC(úD]zV Z+M5=^UX-:2Y}z9E\PViZx$BXPMݍ :͙c#i#'"ғx|64r!zvE"]3̗ ՟Qku=,``!il`+`vt )ߝkDDL|g".RcQ#YMrt2'ϸWvFݙҔ0iŔ[׃-&DvðwsU7P6! MZo"1sf`@b^AǻR 7(B *#AŖV9ЈE3QB5W E-w2u?`^YEzywv1&| Qjʳfl.uJ} n2rogO*`rVvn5dFK 7}#' ǓJlAĸX9;I Fa/ F,dr34OXG~cX6rbI^A֓[0PCV{&u8,z𴵨AeѹadSwO㱝c `llv L q[ ]md/_CC`P !C;evޑubTwN}'Ns`U% ²OC(P3F0rܺ\l'p~:gtpUkm4X~`p =CF/dZjh$qlmb'd]k\w:$8u|GޡY"l^8d@pYe}~VvUZ{^W]f9Uc %WID@4P. ƒ |[^KKk8"K 'CaȬֲqE/ nxaa EϜP-#0TN./h;ȱd L H^ɊujKY&C_ qʇANOybTb2|" ثXm #w鬄"2j &] +pb%% oAgxp7"Wr/:FJ*D /mKw\cbhNelK 09V,WtRPq([aa/&Iozv AF9 )7o@ӂPWv,:?t:Vņsbr^@*ߚH6J]ٕΊDPi 給 nY+d:mTP%ҙM{a`1}SX2  :3Q" RDc[cqD-[mdйC+ 5f\iМe(m<\pE]}7_MBv"bKvh#=c{oWطqοWs+5LAjd*!R}7Ň7D<-Or9[Rfx!dtZb9moƉ#&g_{2A1G`ÏA!ѡPDiӝ(*)q Z RD(u #%L֙V93APpٝՅ)6b&TUJ-i0dA CCt-+4!̃[{|LwaVɠM#a.zlguA.Z6,ONa"S@I)4oZVN(vƔ5\o4Ow;Q_- Bz>~JѯBsS4i) X=,>_1 k:B%5yr F5w @Af:j'#+@%Yy#5% ؕF%rfxm^u~gN-@J05T.(e ĊH U ,P-VS9 D?ݫ$Go&EkT>%]> iX>b;v,#FݯЯ6=5ERHlvpCi G ~#~JhI]unKG idULElKI!;G[jz$O+d:lpw=z :> !!DQ@:aLdaTBwGg#bccv}؎E;'Z b"u:>ַEҹjɨ)@R:>乫08]EGY;YcHMjfƽw g+<,o!UZUb^{j4CKi(:B]V{ PhˍbhUO}na:k!5E#A  F\':Tw74$$b{ޱܑ 1#U qD0 qU82RV@ i$ua$وNMs0xGkY{Jӂrm8P|>:Zh{xL _ M{KoaT⢎>z߫t497=7?V!Ͻ_d|hp%߼鴿.6|ԋ[o-/@% $PRuF2^.xy~z|cJ?-^ϔy҄ x&Z푑xlak>j!R`gcB h}Bx " \Pi2C`twZ;4a[ ݕ}*+Ir,I𝦞] Ky_=q)Fbe Qiy}9¬ݨ,1!KIrM}o#P̱RhRookx6C)HBRXum7Vwdnr^b5&8jZ"Ce|C(%6k-=dWj5DیLNtIcڣ]I6JFK_1 S~Lt"i VAb|(!xMñi+b 2 m$#ֺZu;~>fCӟ/wY}qxl@@F @DD֚ziGAyޛ!wcGKSSS.؊>rfX(3 @I]%h1I`@p4B#h[GrC`l\e=MUqnIv7Z;k4i$IuvDD`r ņg@/=^N7iD;6= ߹wuibC C`_s$RH\/3$Ą_1u=U>0H((JlIɢgQѪ dSd8+qhy;GϥK7܌׽DD@ܜ$fnijXqr܇ջH B^))$B\{ }yp`Q! @(ffo-pO3$}6ݺs7*xg œP" l0r9NXŸA 0X>7j©([J4&A u]d` qo&e4߬10M'yo=k)iTK!`4]۲ f`!wС4!c|.㧥M% 3޹ȘD]PuG{𭡫 +,*&L`,VP"ΑvPK`R!@GpGr N~dEJGI1kتGy۠RRc.qdܷ(-Qp{)AFRHxW. diXh*oNgk_ Q,'`7m$,X_<F]4!ifW$#8L2Qx-DZ+0ΐJ0\uS A5軸N`* &PHTf*y良>FsbY8impVu]  M<6F&+r(E&AWHcgg2"m-U -)&lT*Pյvd@zY|f_`@rhO4VRGpv/|u"]K"w~1>?hyaFff$}w7bTo%G!#m;,N/w}j9|^E0YL,(?a77˪B,3Rebl|s\p~Di̪҅M9^_ȷ>‹)cHuY-E/ neI9ZZ, P: -`ᲉZ`uk:JOT0;h$- Z6L)ŃbSm܅b)pH.iުs2F'`t$A*hc<W?sQmry Հ 5#w|M£}Tǃgsr9VEY@ĄSLUn`V^ۢr4TbsK5Q( ) 68w4(c+WuZmj^f%vpaD$E61=QJG:oǃY-lr Ǩm/6.&67>e{)OJgNa.o19̦s,63r^!2a47BS08mw2[K_[205Z*eu٩ϻ-3;sW̶nܳ~ܿӏԗ5N}WÕB>!7n ^{p1GGׇ¾@5FlNUMɳ{3=oe)TVM`bްAP&jՕ&el6a.ZH }c3}3%?n02]fcIm򜥘[ZDYiR6b7l؈-!(g^F%*BYC-ꔦ"g=g~uyn1_:oI#V// ۿ(/O#Ϡ'M֐ ZWaZ%__Z? x(Aұ_64;nםfݷ*"tR dP{<i}Tu(A||(K-B4 ^[9R/Qퟵ֜Trf+lirlOqO '.x!2ˉ!Au#ZARv܄QFQ kvNKlK- #)P6sj9{r#j880M,zp @{[EmM!-G0?F|tު'. ̕il`.vxm YڞUe̚ r|dM[HIۧ$oop :gRƌtq,DɆFJf GgDF4Q xAt8t!ei<$s4ueOUpP@N$*H6Cs>Y*zWQ1bXvZpb"@`E[%7M4.;+@k-w$љEHjFrǩnxپiɛj7JlWVN;\l!nbD_7st{npC⥥m1NXr1!]'gwX1Lhʯ&{P{b'Cazn0*Tq;`|~ 4z?3nCsUJ:m< 9Oc5Sx+3GU ztӈٶNBfv%e9"&[Brp%Y⥖=S07/:"c@@DzTnUs7N-!W$`zi(B&m5p % 䢯nӬOߞTw7بDA˽.LRL(+.5fj'aT0GJjQe|'S_mWlz(eANI4T@;%X(f(NIXrAM_Lj@7yb豹l- I*$Csjg!e7k Лhl6AJR5. :$fs$+O4w|NJs5BSHvWa$y #uSvE~ 9}lM4=K]ǽ!X?y-&{ =ڼķ>YmOcPX^2Dh<:] wQ$gEbܣ<%N0&PH% 7^HkLowZאv  PpfM[EaZ9"!Qݔ?Gm˘*{: FцFro=x__`D_A%Řä!Z%GA }7 1^Hޑ!1wXdk*{H?ſP?G9 ՘i?.k92I%{kmET+Cؑ혹&FFvg7Im.#po/Ǫ%$6Ƒ48Wx:)|s&.&sfÂ&ms9p\hNa ܖޒ% GTpJOnTJ%Bz5vb>yAhN(A VNn:b_ǀZf.YLs*6+h,Z!BzٌO?iάeϳu@5?m"aEe8cWEw/ޘ=e <㐀jP^KU&XGњ >K}wlՐ_ D֚XGkh,Yݵ;^Jwb3RAAod{M K[ZmW>I{hPt! ^p#񦛦j<~_K{m?[IzAmn%61$dФB LUv Ó8[ԼW>5ٙÀhO}"N Dr8 } Ss!yk[>[aAIA[vڴWΆ J>Jʹ*vv uq!6oV2|DJCw"48jm(P%$ #'nk5[zhIܷඣAhr;LZZZ. vzB{mOSP!h'(ڰ#v;?K{?@l!vK2T-J4 .ӈP=-xgO}$AXPCK;9Ll`vch)R99Fӏ0so7:7vx,jbww7ZFCǫ=dwUS @>̽*P"@ hxRyUAEDP QDln$<#LڇOȅR[ԯWU"(~sP#C{>[۰yԀZDPm, ҜbvabX~,' ҃Caa'lIiT&S^^?ULVnQ\^Ƀ~48ʰb8PhC#9!>}(m+w$)~ B_}3N%hۍanrˬXC;NSeyIuwr)vK$qMZsA [Kq=(y  Vn)?7AA9ᔌifIv0ķqˢ_eBr=% G#[iR*,OZuHa{Ogih+/};Ȗήh9z&51'dID,-{.'\j U6U3[~7#J5)9'W~зu<ړje"x@ ("D^&aVr pdm(- wvvv686 ϻHQ(*7DBH?GKC8LB+PߤE".kiy$7)LbD&w pT1gHŷY:ߺ,-a $ <2!PJ5 (5bT{6 D6ӰXK YU]5D8XbJ-qhD`!a iAr\T2;M _ t B@%@@;^ZmbGyQ)z!oFLݽܦIfq~%a`m#v1˱O=eY 7bȰQpanlb^=+ 2].PZ0Tb=[ɑ +HnϩXgtmʦf"?SX9>-P F@k t$Y LꪄI(-U`(إAUC4\hdDbpg!)tSD)Ō V@ATR6 Gԁ%C$f&Y1,w(-25 %nGH* 0tuK#`%D{ՃK m<"-%sdbBʛ{5( huDSJ賙Ib_€| j EAD *㴪;*{ZIbMV)F.VfuaD7[0j"pC$Uv~Sp<ƿ-v ʹWe0@QH$ rq!YXLbH&a2U# ]:&.voSqe#`F~K9}u/%܇3bN*ɹSO6}zY@)+* I)3| GB(taX΃djڏUu{M6vd/W<ʧ@Q{ʈ^яMւoگdB0'ٷo}1$&vd;ʙF0yQ 0nvv *!ָ |,D6;HT7B@,pnN‡13ob"ݦ9h`Z[ѡ\2jp0bR}~'q]w(DW egחጦ-Z]#.n-[]B.AfYsN^F /D=Hv֖ȭUݰfWL^˺PF~5 OjUASz+ 93- EDIK+x)uV (Ěda$Gpwk~nEhq}M50 WKcKȦZ{Ɓ)D 5.6")n "Qqhj58*R1n250#Bɲ9żripa_dah_[k[t1Ӛ,^6>Y# 𴏵.dB:f6Ɍ)O\VQDג̦$5EӅMwзȔ>ל C DcmlWf43A!6 DCG׎aeS lB!' 9,d:Ҁm&3[Z^"I5J.ӸC&BI<~Mmbt?'%PEHb{c p,+ͿtfrҺ{ﮗh-€}}ul|>s-6|VɂFt]7 STYEQ+c EBPGfI/IhQV a/e)Ӕ)'A֝[}'W\)dwԈ!/u#RjMB /RE V)*Pg:̜k=$-r%+߳׳q ku=KA_VvB A9`5%|"@0K@@)@LtJg$֦%ƙ KGRA$U>DOr9&+R Eπ3ޤWq,Xo}W}C.dGm:Q!$'|$G"בƟ4+ [gRڂ˸ɒn{OD#_͈ĊΝY3ئ',wyN2W]2,"cL$ٔK(/rv{uLH+,Rjd7tnܥtԈ?'#F0b)8Mظ-)XUwO+ k26dvtOh꩒1RJ3,jf(! X &+&Bjh YQJjQ%"VUq}jf*A)Fr X PꀥPR\VJͩRD! (+HĹbêL$[i\^/ZkxhPXE< ֶĤh+arSeeSݠ+]Ԕ@$(> U$FzY1:q)DؕC{94cfYj:GqfvU){H)yw1 ҄Sbs v'yɃ}iez/w| :ūp [rY?ϖE Z2u\ꅷjL6=o~ e oKۜA,> @JHȸ(d"qN[ذ#J[-"Q@(*BRD#ՐRW_F$Y9<ݥPJ B"B`̴^G8?oAPSmhI*,&J-VB AQ$[kzLhUGi^F=޼j_|?ֱgu$A@" D'c KI߯h/1U 0$Nt,ͪ?GbQ=ݯy~N82|h6p(w #X_ebJ+Rw_Z[hb7 ֏fA8}O;dZ~;Vaof5*NCp~,)A;;2l:.&E~-.9;F+"8hnm@Z`u5:l։Jby kƛø?L܀Z^u%@f@Z 3sʡU(6L?ve*Zr&-8H+& "MYYWσOȮ#֦*R?rVr|FVCCCAR$m" z fCDKCijd[z<"[v4g׀_rvtw萧 o%A~ƒpJzQ+Kj@T6& cY>`>/ÒQ͉`R8_hY:ZzsR9N6p=Ͽ| q췝#Y|Dm Q%z_G{L^CAWUx}P*'Wѥnjls-m,#l@1_AeHnQ ?rV0غS]{g1( Q['kZ6 )D T"@¾zr}qJQ-oqgr U\02̿*>:ƫ{o:n>7eDYI @نai ~U/ظ;_uF x QH,6͆,q8g9 =fFx#,3"u9R#0$uuFMq>}gcBah=-!T0 dAj|Opʥ )2BMZXf`Z7XUY"ȝCMx`:jGĞEFpk 6%©\g1t4D3c^ACHP li~rM)pqimm[=T/Лǒ4*lƖ6jǰ`iB/SxJFGʄO6xfSME10d* /6sH0%a@ Hq\-禄S!sC6e.$_*3 K^\P@tN+i"Iu },W>sw>O n ™f j@aJ1jO)o gn JƀR""P6aurlv@bM]7R>;#䧃}H3]ԅ3~Es##cSkTe}kkcsRK[nEC-c hj:)7{y➖QSxNui@BAt)*V'7ofqU.`ׄo'ˣBYo~4fo~>I@8"|)x- ηrgf]P_w+ԭ9+:-#uvPtk^s6=!qZ]c$Cmurg\ uq[1Nf]!R6ȥ<"͛|W;n<SA덙ZΉ6To 9R8fzuWSìJbw ;]Sgsw#`g1N_Y ;+R$itD m+8!AKw3iNQQϣ #Wk=%jեa(Yh\* 0Sl*Qrk \U~m6 8 Kho P^1-ѧ֗ς~g? xK^qvH=S kbe'+e\ͫJzj‚ӧx΍gpi`&X5 uWS`! ..`jqA# *qV: wޝF{G5cϛpU}~\cխmi[i W/ 6g(. f-^knXIkuTL)tsGf ZQrBsA9HZu^!t]:= ˫R0׼3*A=EJ($V(޲RYU!̆/{~ M asIc) |}%{9p_Zky F41'Ŝ?E;00%*Wƛ9_89Y_G̣v{k|y:ȠR9>ZGs6 613*ZU>ٮ0K(+)VgN@A*R;|Nm ca4(^u볜NU 8 6S#[8`RVzq1Ʌω-Qv$q׵Oi}g1fkS@n\sƐM_i@ Kh- ^J̉e  %ɽ}Ka̟EÎ ҈f &[y]sbԥZn^^]ޖ$ 4h?8.aXU7np@t9w50.KJkU>5a{Ud#h%O8%lY:5O>gQ(H}_[KEv-YxھJnǍ֚}1G#V`+  ccY-'e"'JYR4y99[,46 ϬM'po.D#vT'aB6[NLĥ(oObwNEO\~[Pc 8̖z 왬 !(YLU yɴrOu4uzY m2! *21JH ';C]68PǼT(b?T;Hܹz= юW !ŰZnEDMڶa;bйus'ԗҶEE<.Qy-^ &x`y;cJ?I4y}~ 1uXڜe=!D~JEʢA2PԲ28ͧBS=u^3Noʶ:o!GYu~ߕzάmߙgSŴkr(mma!QV4SGJ|?"G.'JkZ] s^mmm6ZY[o2kkm{_ Z$ʸJy~},#6%q.![-<1# u_wc`Kgaa`iei;1xnh1RB(\ Ke/uɶe}-c׊ʋ+ 9 ]bۄ$*V@w?9ވW3pi>8ZyTc,%uJ$YݜTӭs{p|*& ZdfghT_(KfOE/uƻ6N’= &_PPoܼpx܍D[! AYK^6yj~M׍g1a2کj?kk7Vf1raNke~Vཱུr̕VŲdJ ;=i[ QͶ ~cACYvQlu_7#xIR!SmH\O?["521a0Í0Í0L01-:nKi@D.. <:Gu< ~ZjPQZX{c`fU%J@g{04׉h5[ŘdʆO54}zߥ< 2\m3F=EйA":w/TNvy28jTUsba  09n<<l;}֙l vf]KejXm5|= ,+-)0)U,a,}Fr l:vuv,BHuz g+c hpY9LQxw8l$-3DYqib٤Ts/f_pvv\ML wpt4TB%4y^EuemKocb^L$~S@i:KW#W[-ہ.ÄN(D(&†`z.6fVUF2sxNZ[zYɱIZ^Z~vyk2ǵt-~{|yVb]Ր<{wjm+sLV}8ntS7^x\S"FF:Ƃ*޶Iˏ.푧^oT7vAPg"7JSۥ-k,M)A՛ ^\0Y0[( pAeiv׺ kO>Wqq<8M4M4PK˛lލ]SlV71T|XG;^Zwce=[w¾__gb%(ǗeV8wPŎUd!mޛ4O|W`U 4vt~I'/i5 dMR(n㿭5)0e9cv ÁD{WԏG|ONhjs||gh6&ou@vKZ` r+TTBv鼰N$jY-./*Pq+b?tl\nF. .85[n%#[ѾC}%z"eS,3&LS'l+D6V]G2A5W𫐯UxNUUUUUU_UUfe_U欲+,2YeUUU[fk:uUU3*UUUUUUUU_vk*UʯUuUU[ffeUUUUVfUUVfUVfeĪ ʪ5W&UUUUUUfeUUUUUWnyNq3{!z9X-@e_m]KA=ġ$* iDe}k bc&)I/Q@nokվ5:~U5"^P̉E[5 &QdXz۝z3۩?E猚ǁ7K'> tNܔX_ZD4lCt?Sc51R]&2^{И28Q.77aGI;P:ߗq4Yԉ(vá@(i:):L*z I Ƶ0oil.+ DPjÊFj3Mś*+d%YUkSPPRcut:0K%Jo\k;jjJ2,Tw5Fl(o-5J[LsK\ y >w@F_@ O IWZG?1wʘjGu|DT0ZÚ$/i ?O)4/m'/3IRjIH8#Kqm|FpMDP7H -{ІDD)GUw @Cfv)_g-N#C+ɝ4X=ê0]Hr:PRFvn*=L l, rZ)_G 6$rTj lD,ƹu@PBոR|ahO,QټHh !g 9B0/U:Գf*n` 9+tD\K:ghDox^zň(DKç3b NOK)WI*xu$d DFߋ_cz>AGNoq7R^hzoSN_}͎;Qf;maLݨ,Y! ,n)STU$֏~͟``= kłej T#į<0)JMt e:342m4~}p%!m#0. v #}5b݄Bg[dMBDem?$?C\H ))2#bB ȱ2Ԅe+ChKĹ^a`;+ixeN lic$'R(yHq;g0ڡP O4;ͼ|nvOTLJ" U Q[`:fX>CiRx(|Xc"Q?K1@/qY*;`XuLtNrDN* -A-4գ UXV]4h: O*]ZUCmQ m 8BL< o֑/=$!G/rifIư1v#Ҋd 2~O|{7{:ޯZ;e›z Fp/ 'ɚh7hw|c; xЙNH;gð,mͧuT٣ͽ۫O}M! b:)oJfrP!-?a%_#JWq V#,A{Hh٧\uLКa›_bG0؃~=v~vۑ_}ROCb_a%N6OEY#IېzwQ÷kG'`D˛ۿ ߃ G>_D-ѣqJw٘=c#iS7+7.ץkS,5qa4p%TEBCDB E K|kf0wO^w:>"쐱Hk*nZ.x||]1;$ =$|jkck͜X+PRЃtYR q1-0^yOkM|r95GԄ6f!ƕ+V~\dc0)g"b;&4dA.-wy߯/׃ia%q3ϳu/þ9vCOՕ;*tݮk1>5҃=À2jXDQUaԿ!2 !1Dbp(Z؆}^e?؈ qI aHܓ;8A4 VUi?[Yj* V|Bh+#T%E%"3s̍_٤u6.,Z F/\%dxNuLs!|Ԃ4os[{ u{)#7HqRD-C8u`Q?* XRR4{ jځiR׍%}/JN.絷\ঀ )=HY"7W3gFu^5{t- `cO@ JF 8}~r3ӕQ`JȀw1 '^) M"Ƚ`,jܳ?|`z6\hT Q&.ۖ^.UHIh Gq}h3zz.2uv//A 5k~HR$SZX ? >E&g 8Crq^[u#|G6bt;Onjꪦ{Ƅx K(m*3Gπ_ qA|,)#f vu~H cݑkg4P*.ywD)Q@"a1UFSMNm޿s>Z\hvRS8^375wd |wHۉvă :g!W++c~x/gl1x#B@ob*exf&hIRR`G;(bØ څ8:eJ)o;K05b+)c[>Q̰VŢc L׊^y?)6 Z80e(k:Y{V|h'FxE>d#ޝ=A5t(DZ/)5tw,=-:rTc>O"V #vhOT2)Ԭ+d> WQ @%h o' p]i ƂjgݫT_XRַ*gī?("A v1+ ]ϏoHb%MuŗDQAHObN{6pQsRso:AߛMHKI]i";T{o{KƿA|aǷ^47q[[}#NNZ#)9jF$AQ!ej2s-I5͈Pah(g<y;--Y]`"+э HyO"K*TA21e49 wOi/rĊ\*MɧSE:LN ]n`5i-`ƾĈBKBFl#Oe|a)a͜: /^xۍYXoG`e6 ap+?<^[YW{:5(vw}~&g_>M:Js;l౵}ƶwh80.Bڥl |w3ղGO5ܯpB^،ul_^(KvhI4 9 _́m;7&LI 6àNW_FۤDE&'$x5u4jy2Q8BV{ ݛ@k.nˌ_ҿqEai$.1 0Ĩ PCmo+*;ە"t͟I*+qxBBk:k( ᆏZ+r-d>UJmFhD"t7Vj( dŰTwWv4|T/+[KnPskIկ@f̩jGk?+z6I ʉLU>CP _X&Y-#H{3oj>^r6mJ߈(8'<>nf/{h#ٙ6dLF[yԮ^:O츋c[Js3fg;LiMٸ2<+J(Dk~(U ~i 4=|vk /e 췬m/nRxqz7CpU- i6'RqiD/HQMD\#:T;~p W琚;4,d|,-ҹXc B*ۑn}ko(jd'`>Wtm`kfkKƂ 6Wu t4|:]*ʛƺH@vO *GǕIbB񗙩ZaPw1l rR-F}S{w=iYtt槟7}㯾C1zw;25{T `G N)[o~JjWtlw%3/R#xDjB%1v~ r ?W~caދ٣3o[ă1ʤv$FWGF nwcX8 /3mZE}Ϯ&B*}+Pp;g_c =6Z=qB,\;dɓ#FpOWNkcYjW,-- &B5tTAߎ?uj=Jw#'C ;G),$4©}lŲiә-a @D~tvMi@JIjH&Ʀ+ /,eS(,$>fZEA:X'X -/h1 !3J+d!Fn\c_ZL 35ne^8 /JRR0w ;ϯ [7]΋ɉ-/ԯ/£HH1 ) 6)&bZ2*D,]VLl)ZS@* e(R$P;SH+6߉] paNsˡ2=SIm2g+o'8JuBwƸ} /?HBp`':\^gt1V@[#V3(}M*t4㯟pX.2J% ֝-Wc38\BzOYr@`jpьeU0; a=>L( 8v-v8qVhGL<'0yOmw8 } "B ~W=E&Ȗq bزrx27OfYB]myp:II\fT!X$@DoI) _WZs ΘPwWkg?γ4JeSŇj;"&yrQ&9J fn.=>D2$hI,ԧ Ekr~z49 c@ֱ%9}/Km|Y8^U^FrMaQM'_>J>Sx6:fTaRb5P A Qe!{xi}fM}e*in#в!bW!9E%:?.> ,Nk(GTݗfS&҇s33i)?Eh]^vló0MRhM&22cOB~8p-?O},ufȷ0i~b0R!']fypvpi5 EH C![>!`k`UkA(f(bC񾩈tN~G{Ѵ Q}Os;G%b dlhH7 P&\U^- %PۅBXZI%ޫgu,d h:C>*Ǻ<yȾi ok SFдK '(KyH¾u.Nj/+H2jS5ѶbGiuoƝ"K΁@ޒquP&06̄d6yųq+`fJG َ;xhS<"((/Cx_:{?ۧ-77?TMygNě&"FUaey-oj+RBr0ǎwP;y*˖w*^-x@;B@rPB֎ >Z5e맵G h09f7]{ssrmp7d-D[?*?qb.;=&Ԭl sW7|?xMnF'?KC},hecPB&e$SYc56ftY:9}y.o!L㦔|L\K>:s6Uqμ[@ pSz>צy6!{-?S]D`dcPu4׳y;XaJCȉ +!I{rH|Jweˌe;O{;g#`Gt}AT w^9MX &Qmԑ@OR8:"\v;H\o &ã ݫ>w60`y3K)% MۋHDD`myC>?B>`fJJ*PICu"pl?qݖd ;"}ַğG#C Z|҇$_ h wg36k}0m)[b䕂V8T>qXHy+os\l8.Z&D#t)+;7~kʨIS8&Oސ`~`QfTZZruˊٝj,̳i!:Az]Жy},[`LC2?ٸtO\Ő̇I ]%v< \8?gܗisܹjxH[SӫY\QEcom'8"-P0JxZΧ|`C`ԾĿ1v#1 _pL㎯У>: dA.}hm8V>ҹ%uj$r㟧XJZ܅{b9sƘ̭iqP^s4d}M5fa_d}%Ww1NDr:H\kSDϝ"* R~@vRT#L Zks Y04\Xwٞ/_V`OhuAZ5 ]9ScJG*\ݧ7!2A/R=R9O0i4liK=u"j\D|)"iP *4aV֙zL~;n#Waz{ 띃X-?NK? )aBMkn#rULf[e̥)34~nV淽ۏ/;t n5L@%Q52Qjs8XB $3o0Kjm.4eo8W7~0[˩ ,P{hhV?6t q3Zs{xvϒ'M1S6n69ڳbɡ(M_/yCvsu;*SsF5rNƍ;ݵ$eZ$I):h qy9P&''q7:`8!D<8"1B  '5) ̌Q,(vwSr {F 9qa >W8&=oywXDtji:qif//5?bp.R?դWSO&MP2tY7s-Q&F jΤѣɻd?SsˌZnFfoWkxmn\C5}Ll?9{22ݑV7DwF{=.Kqݗ9O5g6TjRC8 te@"];14bSqΓi-c^g3ȩjQ_k+;SŴe Abv3ACZ"B.hF( :F8":;=Vlye+ dbYkLVHd; bZh|^* ѥbC#zXۖčC@&r -8) 8`2Jrk֬o+_ rn&@.`&"Nav BH5 P1bS0U7GRD' 9T٥ljF(y#W˒1 5Kram[b ɭrS3>A d7e( S3[*>e*@!sw&Ă"I|| ^*i;P(ۙڐJرR~IQ2UeÒ뗸Y^)ڕRq4J3΁&@uXo}?=V 6*yBىLyD_hٷqfgLbRk { {~^ԡ/YPC?v&䄱CU6ijB@tKc7߿ FU-qEuhM$,3 0qL< ăe#BVZa$|P3PjlʘnMP2qG `ͥUO+֒p°\(AV4K/YכΖM}o`‹0L%tMS;&ÂCb\I~y-Nq/|9ZǾ<CA(3ptUeFuy1Ntv6Np|5M wƋڍ\|.?>Zz:̥w󦰘PR)"nޜC#ߠ@#H1vWW;ȻǦJ|*z$G1QDo:C{/ >yGS $/áxOWԦ Ci0㟷ʘ"=3p{ Lg'S6Y=Kuc#$gԹRtOJ M ReM+'tq-Nb?C|uYHju^ͭ"l8&hqWON5L+pgEA> #W6ۆ)-p;](i,)x0, ڡܢ;Ǐk1k|ؓ;> \ ^3Ɯɬugۓ~,cΝyVU~vM0LkyBnF¨Ņ`F40  WPn$ #4F0@,_7ܢ,x'2&6'A),*E0]1d'/`I;cz0^Qk!lն"~gĐ] U-z0Ҕ a=FcyTVVHͫ0L3t$|a} WoC$ȪSp?R󗗺ZP`ԷCgmLpe+>" MO`{Ns~ƻgf`@6eF%X` Rzm!7,)ŎfP@+j䭬ph!_X5 cnylEjĻYFwՅei O0shW[x^onKDPd{󰉈 0?@ʔ ksO ME˜R*3T,@kR̈U<ʭF0_sqO^dFk ^g'B %9fdG&"ؠP84a`y[mgrYJHU#ς;UH]x_"`m {ﴳl"{&H@F#-yp$\ 's펑Vț/ICɎO"p^"tqgD gfs0yNuk}[9DAU^Bvi0B$(}_c((\ UطӝfiWյm4ڒq5|uP⦙MY/+Bcx%[3\+=߯Io1rjZ E? .ƫFq⓮.T!" i O-> ;~Xvυ{N[mϵf:OsPe!28/S fDC`_)_4}c3u^t탷  14v { mLkͽw$" qh(3[Xn}u>$4WǼ.?x=friut JpoąE8)\+ r&NnFI Ox@Q8)x4 >DɀRHhȠ[΀% ˻뿪m(Ozs˙1oݭt9d/ApJA'-C7)fC:Vl :[_[;2UnށT7-k1zj[zոoWHVj#Ťv6I8@ ($(\(N8;3 2Q{zl3cZլ""3rml> ;WKro$5qz"H5ev>f\R!ͦ49*ܪ)qȧ/FW񴨠9d|m۞nv^1Թb{8A/GjR4Sln?޺|hW jA05/iq VKyK/e/cOQ10X*9AӪu&Xܴmm =]ib&F`nqvN=ADUzUvT)vQe5^fo0>)ƒ)$o!ԋ bι+&t?Xe"l+$ϔ蹎g}}ݔVVI46 2sY^el̇٦F ble E\QAYʭQT?o4mԷ(S++wٖ 4J]Go)Tq vͷJݗS X`ٰ͚Db,4,D{(}Z82Xur2N|:gSxUQZ-ÖqnlheW*C܎&A@VHQ~rDjͳ>9SnS0o gS2c_‘QZlbd#>;i?f`Š172(BKN;cgkΌlA#)q_xW`Vڋ3SME&|8}?:v2K|b'bIJ9$ZNG(S4U9nKUoa|"v2]*Đ9|_'?RL[#Ϥpcj;u5Ԣ.1&geU% F(/b|ג֡fRj8LUj&jM3KGg|X7G~!4Dcf&=-/U@1 l(EKgp7(ML>a3ԅ![Կ }U:AfkxTUa#BARA"16@a+m;ƥ`Q2»TC)2#6bl0T[1W\!ȕIT 7e,Y؝*ߝr^C&&e F[o{]t'9<#{L_=X?`s_L'~48(:pe]]\:q7]<TJt6h6/K`)= 0z`X*T7S$HS!kW'/J)Z+iK+O -I#Ղځ &AnLB^Ljk9 x{$5$qh\r>',ٜJL*m[Ou^;v`t@tO{f)s@C^:?J f$ W}f*vCnx :,N^;97JO#l*'P8ad V9bxGHC,ZV֩+CMeR ) /f@6 Ġ`ti.bwmh= qe@5#A L ړqY_Hp3pp QȤ|8[6ݘG|;D~|T生jy=Ұw|]zhfy#:;t<,&-]UlqOQ5#zLʐ|˝m}j8'dvOW! O2ޔ3 ̣9a5x_.ccsS[祏 8 J``T1 &p)G]^<0U:\l2j)lRW"m]IS>W)ќUF9wdc]p90BT"U˞D JUHM L|# _ 6Z>>2ktdۜ ܓN"iCXp5+΂;㏓aQ8+|K RĐOnO FdӴ Xo~4:$yf`5:幺< fNq=Jh%<,r1m;ʈ]8U?Df,Ή͑A3&iMkCs6 ţV)2Zx|H&q4.,w:-WijVi؛E6F2UO~ _u=LV>6jy0.^hJl3QF3<¸Ϥhmtfm%3$>&F90lۜ]/O/ a/XJ544;g:sB'u BJa>lodQSMϡ?yxB/Vg;/h D;ŭ7((?:NTP/W}<]@0<% {g+mzxzmiɗ61IhM+A/ ¡P/ }c 'ʂpwѷ x3D޷Mٜǎ0hχj4CƅsEHzGACͥk,4ji'>%0xY bfUx{3=3FSyHqlef(;Rh 4UFˢvE1:b]"~* qEVSSdMIM2t;WkeTO mf3/0m: B TXr@j }bmc B<36M%+蝽mH!/7,qPGtwdź Y8@ga [jUͯ_* emV|HuynLC * @C=* "pٳ{՘! @l:U8N@m02{ε$hFw_UrrDxAr%d. Kب  LLbCW| ̛tO[ꤐd״ӹKN5HD~%$@RM5.wRo,F wAx_ݴPBoaP8RpIu v50~C+!LQv)r)hhxf%\PIGzxӽsT=]k}Y8!,SH}{/d_,apeBؤ>Vœ-"cE_I5(`/(cD$ık8$mg7yK /gܞAV+tFŔg ZZ-sۓ fG;,!9~ I)! xHP/E vsgŏ3~xxuufݝl. |$?܈bL0rg oGHT\ *Pj}'BŒ\+]̮63J_]=VJ]yn[aL|׮ a*RЁQ5vS8Bu _c6QߎO8\J<߯wl(OV̫sxT1z浆 4D;ܐK FCcbMZwÅ~t9JE۷,VS9KZAvE&/}mc;nkMdۻVQc5q0蟭kK;sh¹` Lp! JBAXl!ay .!Gp8)w/"} 4ݯU\l'ky"Ԙ*vABLT@AG V5kZV~}dAӰ9o2WKFVOIBL Hv͛28ޟ[dd)ZD-M@l! JnV}Nm .4I/THB~#oa&[>Ic"QnEedS(Q, jy]M~[)T B1(5E.FEU4kڭy=+ײ0'5;JMϧ$M6%h7\djW@ƙi@3Lcƃ7y3ip>ui2ԟ 4MxX[/̓ך~2(. h*ì38ιkPpU(y_x kN4)\AXxspmD0rDq;i#i.>r }DPax#csqӰ$OoXeثix#2Dj0Ck:i\O/?Т-ZV=,ܴg0g4%Ru~Tb#_'؝N q7>c2Y"$m?>/Nh'L&vοY u ,r@&)D1&2^ `UHRtnF)vSi8! 7&V٣Ea7#nHraHnryR"u6K=#ECVQBzpLӬDH|3E( $F{aaE)V"!*?/7K'Ǿ.^Ԯ\+ "$.^!7AW }$cukqwmzL\,bWhW{D"P9M R^ G;ߔ25TvoldZ0;j[KfbY+N?<ɝT[W=4o]`of\mFtJ3R+5 p㐴L1:mIzIn5a۹"|0vs7^R}G(~.A9z6͉oU>/ii>5rkpbE]Yص,6xkNg 'p{kיF&NM抡"bҲn_~x?~F/_b$$T*5F=@*`_NtE{(!t X/]?t*e[S`pnn-I?V<4$r[1W8_#oGe_4Vܷ0u\(He;5rƃz33|nS>g+~0l]8=&ax-e9tWh(HoC&yv80hvkm/E}|+yۨA{!X;zeØTDTL|op9K;qș bҸI>>ևvT$8?s\J&C PWi* j;G6̣\tШg/?yt Y#Ca-z,P%"#Pbδ@6'{an*n6HL fNpI f;?ǧPOJ;v]0Em,SM1_bښCBEyGM@c#8Ok7/3:_Գ27ܒ!pmX%Vg8CFΡ*#;u216~t5+^%OyaX%^` #e/Ia(: #m+(A. P<J$lίr R&כAbΔ -!gnlE  3BUf*C~4Ҋҽ.Qڔ&%.(C4SaJq F@T0v0M,!MCíw#Id +]blO `[(w[kMurcA)*TE,KPKZ,.y,p*-hPEg Q0ڤ O Yo,uS!`{V CkT#aNelOFf\K E \#`27Λfw0pK8슚䦚,k(AZi!5_@l*JEη`6OSϏ_zT<_#)Z>G^*Φ$] 'Pu589`陡(lV ;}.,fRxJ qhaZzC -t4#JT.s4j{8\I<>VQJҗ(× H g*@,#oz\s琷k=snblq5\\U+uߞ ${ u@ <C<jpxՕ `aTȄ]>`iY //d2E3V}D>V)YG}7 ;#?M6ϟ[>)͜UmSF8~)#ǘ 7<^߇%Fڱ4+==Wp(V܅`D-z$cᙋt}P/P~%$sNO{>P~X_Cs<[E` %SV">=ĺlЊsf'm֚{c`Ũj61?eJ&G'PbHsqɑ&8= V.x|j2 CX8"?aL<#)=o84e"uSMB:.v p"1u2K$#V;}UΎ@PnS@/Yo:y%|~*6 Cʮ (ꯏHZJa=eחYǵx٠fgu%t@NCk(uILը1odԄgSTb!`cxnrdfKҺv. u!S?dWDa熊x[CFNر}u{bm,i)Iʪ#7fRe-kavt^^2x3Slmv^auћ@TX.z.7 cD*$ˇ"kwPpôZ6b^яH+Ծyݍ%PaA=8VYh(9nkuR-,jnyfJBh!dF$DL$]} iaAg0B gj!QmK>X&ToDW ]?}' z=aֱ=uͥ9sKz_Yeۺ NmVud&Ky]sÍ˂:]dcz 4W!gλZvzIRej!+T\{[sl~:=O} N ^.CX">L1Tq ڒWiIʾΣ;+d ]✔+2Nu<çY3"*RVX4Z9(3͙hXʊ+s,T1ތ3 GeV+uVfBG(!/^vpXD"}ַsӎץE+-LHv$sr/xmCqǴv3w IG`mY3}ܽp UTcEZ֩ &,F:H 4 mI~{4 L5w^*2ZےF?C1 F*._2ӭ[c4siX5{oZ&I.vޞTA Ѹ3ovuqf!{˷ H(H!>r&)mƍj}F<"鳑dTFZ*4ƉS67d`d M:"˒QK6#u0|#\hxPZ%!! ; D9Ms؁H4P:h()lȪEisd8IӲsR0@gFϐsza P xk' JL!>1?_Fc(%A#aqij3W k\ԹFik ,Thvo:@)~GqPt3D6<{~%ewͣbJ;/*Z5Ӓكُ7YOX=0F 》C^{C$G0XvU序,50!2-4M?E ؐH5[Op~݀_@Vj Y5;Gga4-߮Rj ~|kK#0n6*]4LAu`1n,{swt0`%wnZ2nUN0q`GT)=CBh._=͗%84Y94 {sO]Q퍳LF+"*7}nm'8`?S 샣J$0r5}ekq[j:J1[dSD'mD2@ڷ3}ԄV!  ?>AS8Isvpx ɻ"RpE!9|sF &$N!Ɓi6;q1"v\{]8Û?dF4ab^d֣//ۗf6&B0$D! K&K+$xżu_j {vnxM&r(Ό4 # xbo[6)Z Fɷh!?sSrO<%!D= BU0:y^,LfmU:8rXo^jK ѐl] 7]-k|+a+ xCĀ!O26`p&+9R -痨T]K^ bc~5HY]] m¶=X9HAý6`԰ca0aqY,iH9NH;AfuImuN&^dSfgNS'k^YqHi`hr6ͶCwjNE }-Ujݳe\eu0&ރfc;񧈁`4f[Ӳ9N/Gn7 pmP HػG'NSBa"V3~4^:s @CV$M݊.AoZv~ Ⱥv^\=* nuid``@MY!#3JlP;!"6V/No/Ʉv/| Qe{nmsKe'5;ILL zO>|H/&m| qggg-܈q3Jo}4htm Qq7'>]?cʠ=/s "=8ХTH\g) GM(v ?ُqgϡ98󜹉3w5;QD+ gR]y3ri替y*/4xg0v"tD;x@畴(^`i҃45 S(E#V^~O98ҞIi4ei MCWVcʱaS(D 3hGX#~EK;r!US56K)QHo+s^ E <@#"]']mOE2Z W_^v|;rcl/yS lMlomo\XU`yzD+40{D]Ur"Q=s8fps2)6. C,镌+k̖v.}^``RiI 1GW(6o9٭;ʖJh[]10EಱUdYնjsU׌V,o܈D~Rx}eTIPzځ P\B/GaAlߡUiyC!,يt+]2h˜v*nZpRq* ?cAοgiQTw<2K!Xr' P}|fWaiŸQZ3N([N-6*FdRM7NJ-?.v̭n81Ξ/wm +{wQB9 ţH!hĝ7I4B5}X `j@laW|<@l , m3[(f N^ Q= 8WgJ./畃1y62K ,lmU?U 9"г-Z!nR}ww8D"B G$*5EaSMԚ\ae`9P6-Fg2eHg;TFC; `'`Z8]Ӊyze逅mmd\)rUZ3jg}&̴ٰV |DCTUP2$SF[74,b JU$p\[`AوK% .B|j[̟ƍ(,ՠc[,uKrL&)<ҙ~h'}c=5 ݘ[%Š/8Y}44 η\ŝ.[Xt=G,?_IzW%oNgqilǙ#Oƴd k x- E^+x6r7_BY_ρʹTѓ0D&%볪ʩ/Ħ\.C4Z(NiwQ.9z/gQnIlҔm{v/ W6(\CeaOם>-5@=cR7a[-`=*-.Y ٓP@Q dR~:2"VGjkkњ N1E>ĭJ|E`(eǽE=w5 Drܝ;%\Ulɵae㙙`Yh$a8Jgb|Y5KK?Zݴ>Gu=yLVvFIŷP.0-VONv=.1g0{.kY];3Cˠ()m%;;:wd ֘[$rvYA㓸TK0P{'dM!ᔀTSL&Y䠮s:ƍDUSN ՒB@@44Ji҆Ě)Xo:cjvTQqssa&)?Z Xnx3}c%PwѢt³~'41;̑"%At,U)ܯA=%P.L>ҏOy2%8?Lv>mCe' &jijk!-ҧW8O!Wt 6ÌHιHQic@k, 70 GG6XyVʩo:xg~6ԏ.zFF]\hGzc`Z pcB( \pmDeGX'³A%Ҁ/zTNWW|ʛ1EvZcb̴2+4̍,p!p6<FB|)`˵&)i!X3fA=G]=@v$ff^?&;[ef93(BMȗ=͞-OdVT MD=yrZ9ّğL}LGD@PH߽uq``?ض͓:*2S-~HBhe,J }P`J,Fzjx7~~z>)69gk0Ϊ 9>#[o^Ϥԁ麀gbءߩʚ0=5̮xs%Eƀecޘ2JQLApαjp@(fcT GbYx3NYk]1`6zAt" "AovX(b O94:9Z)0خǝ\ .k ٓ] /"82RJU?%PawʍTh˚mquJ|9g^KgZZ(pٹnl Ox6A r 0 BFqř^d D_:ָ;$]L3ْEE]n}ؽq".hĹ}_6$A[dC/scǍz&Yʻ9ͪ/k <|`R/`岳ސKse;,$+bɼ ϣ#ۖR\1K0/,Xzʰ_StN Kiȝ5¦Pub@#W#Lj@A&N d~(Tv_ 1@IȈ0 #f@7^I慽fHnKD 67Z/pbOPZ6a؅|rP׭tӠQI:(j?/Ҭ{+@Z:~Ø(4.G9yH d ƨ$#8A1YKtWڔbIc@ S <񹪰8QuNf gX$} 1{?͛^ި6k?h{SMíY}к[ڧhS\_1y X7SO}޼ɯ{OYX/ 08S(!gc:2ے&; MO?me(D(go< $1wNHm"Ǻ]  ZHRJ%66abyU;-xi Eɶoem-ONlS2%p@($*b* )wL\>^}~喇.w>6vO89JȸD(vO/_o[gKws]jKU]DrP)A B\e@K2CjYJ٘9'WȺ*fO[=c,%$% `m86Qjc[&FŒ6.=HR5xj;WQ(-SN(C( ̔@@D~?p>ޙ9BD1JBA)>~u_gw}VTSHT%g n- O'z]. 6px=VG皪~OXk`C4ҷqDΨ{)-j0/>灓]vJ 5uHJ%<+w9+a6eq'ߓ%`!○\s(l)B\*}U3&|4xU~9SH&W;$ 08J! 4Qkx?`(L(16S5ޤ~`u-j_M} <%Nbc0Zm4jd׫r"/ ukS5Kb?=0zwJyՄ({$/ iWՌsJ{&q-^-RlJ=Tw(ܙ|ARz>mWޜbՄ2 B NO=ZVn ]-lI MSӄ9>/2F@D6 44X+ Ws{}; NAj_LChvu BIFO؆ $k1 DVA{jAlA"K]["YͰ|$e" %/Aw@2iA+(GU; ȀHH3Nʅnnth Vqte[)g~|) j6V4;D?k.L*,xq6`bJ,?v]#_E;X?{PTc%E Ḁ ,zK9ĴUԚGh^Br}M8cRT(Otئ@Uw㏨e 1.Y<veݓ{d7aT?8ꢪNauTm"D/CFUMtZBt8@U X7σYU*M_-U y6NveA A5XoIIi5JТPtȵd){o؃H7KXRA$DFшz0~g+PBeHN1!HvR|wݻKN粕k@@I5V˹wr Lqgϖ1)>:reznǰp7n] T׼乄/9esukpc^e/O5hT Y79 8 B,02-䓦%KT%lL]{H4 ؽsόUgZx]i\@Kln`=*=yՠn5onmOQ滖٣,qfnh"}@Ig jJ~I`E HM%L2unVMbI4xG8slsaw^e![?z!tQt7mEc=fXl~mv:rttf#g3/6 WA̪^#`m 0#Fn,3N{$ɰF{SW;}wǻ󖣧kdSJ Tsq|\RI4EX3߭jF8/~?7O?/8H(J/:T@҈Ypb&ix-'h$!Ꝋ?16iwucċ*8/ihꠞk4ڳfc7G@JFtCwgS>4ZsFKe" A{p@WOptY:! bJ Q3Qd<RƢjݜt-WlwbH"CˌU͢g="ZDǜҟ -q޴@мBlve"jjih"58?Zv%.bEӨ^`@y`s kX-Ս|>+NgM^ڼ&g}(t֊qH"p K!'%8Ai!2_-)ʣGo; yjզPөn7a\gcȧb-6 4 9f 4)O`@f6w Fvz&,6U֗حT |C%I\)k[thq&*c(b]xhoncόp@ lŚrˆu=g+LwXבkide- ٸ&I_ Ф?Cm ڻY^Jw~HA(/Hfo^HR%k/1,.~=b QEMu,Kq\F S?0;4.lO? ]ד134W8_\y hmҏ!\n7}DUgikr9LytśEL4E!c~1~ " Ʈ~;($ @ h;P?/դj P8.FQÕ6B6lk.pe>Of@}%m PQ,$|n]gŅ>Τj=)M&SVr㺻n0.(jv9__i<sտVZ\&v̿|M]g4oO75I\1v$q œTbDJ#GeTBA1 +"_|'R>kpk#+|BFID4} Ug$J Q y'~@٥ow.T?4xTy92.Re jF> $5;GTŕh{M]֚m,bnLk31s}jAwv$M`7`Uh>y%R)\qq$CǀȼLw<1J|&ѥlzKlgoN_ T`ŻGAu~tϳuyrn1k:Z(3Na9_g5Wf$}|$D(G c_sy-K4dPnuż$ :ܧ#v>GNB1ՌO:$ {)4 $j gZ6&:Hܻ/^i'6ϝ[SSUYhXN4 @b8@ :g^X"+CtC鉢g/k)(auawV*?/ʹ:ڜvE?g4jW\YIy>B ܑA=uw ѵˢ ZԵ'ž*se0Qզ![#<2 &]a륚y:]nmj3 RVXvV΄S~H~135 _]lYs%ɝ.LY^8i߯RXeqfpE`12M6S= ׭)[FH" woƻ^dQ g2_U4*j0L9!xX™ϭ.s77[_m@ roTVCΫj-֘ sBb7}/#_\)s X̵xɘmړl8JACu%SD/vv轪;T&iDceFa뫉ܣNvi*,L LEX4\KuڧDG~@?qͱmItqdj gǜduw)s蹪4r悔P Hiœ-Y9z"װqx:Kzlm7#ɐFB?t?U(:z ]{^*}/'a_}{ͫ$jq=٪L^n$ BciL%>'ͱ>wse2lrA0{ ?tqӳ%^y9("i7 ;D8ӅF;"vh6pR󆇔jhU_!6 鴘f {\ @D@|Ҕ;?2Pa%RԻ9[K.ǘ8'7M: 1vehNI8Ҕ)O@pF}!F-/zQ42^wҷQEe?j929\|zh5 pE) ꦑeD_Ll}h 'X#(:?>xAM q.èKN J-S`1WkaX( `3}˛>e3VxoVeٝ,Xbŋ,XbŏϬƣ[~f6lرbŋ,XbŏOz((((梊((((IFyyyygo<<<?GYnݻv۷nϟ>ݽJqt\nݻv۷nݻvۿ?cpo^h:tӧN:tӧN N7 <)(M} @ @~ٟ콽u]u]u]u]"YeYeYeYe:̍>~^ݻv۷nݻv۷kt24ٙ Z̚>GkEQEQEQE\3q6ʪ_biiii}L}FFiiii{|<gr˗.\r˗.\s73/.=QEQEQEQ=wñl7s^zׯ^z׮>/2,`tnݻvۻ,Xbu5RM4M4M4M4i`Y96qZjիVZjիV^fW]u]u]u]|+)@\yyyJ2(bcرbŋ,XbŋNN+뮺뮺뮺]'Yiiiksob\rۦ˗.\r˗.\״{^G-P5(>`:Ru57?TY*(RzLb: B\^ ~ma.q*(1d]ֺƯS_[^ dujM.ZZFԦ-L0E`hMKcQzDԧw=F;nv kH?Be~*I\OҚH4fuoDP!"@ƁQRdUaTQǵ"್meE9,D"c8yz"\IZ.k fW/ir%JG{_@ \?Ӂ43NXo5_EZF +6OAߎl9-Q3ڽˡwP31× 8)TUټn/Y\ $]kN fSmQh4.k+@BO, Od'y\ҽ}C}c5c~jă>|5}p,m6\,4߻6mz=2 뒂A00;*Y0j5 E@xt0]J$]'Fi9\"^HW>8n,jWڂ\d;g\R}~=>_>~u )2N|HZp6'}j!c}M:ѵӧ"wC2ɿQ6EX`H*0^r|Ui "b8kKa=[9C9:N@*̢"&բ+}]U<*$ qz'n_YCXh< AT жUq[ NP# W!#Cb!-y`P 2&pa%swӷmow7`WJO@-G!2=v?i#F fec+#o%]kNoeغ\G^)v2WvuE"%9ٹy/Z)82-z^&JtLwĊlEʘ/&M6~nk^+UkfS<{0 Z]@Y5@_֒h+DFdN+,MRsUd(GkE/s50-'SHjk>y5 8xD†ψFKgVC{B7mKfMioĽ+w?5m@ -:f!DHZ \0GM$Zc#kYsoUVE+ Ш#RHjcŔĜ %]Aݿz:*ed/OlaQ뿰wfmj O+04[NGgc(DVޟ D M1 iqs*9aIܴD%yF5OA˖-{W"nW\d(ޗZ?r@L q2 F) @Ѐ=UAa@|xYBjMo)U A`r.Z8fޗ&Hs]H}۔`]4]:>wҗz2ab1(\ILH(DSHXY=g FeE"  S&],ֲ2m^w@%|#uĻ쒂& A aѫN3|q5m察9ٲÇCUS0#y{K 0+gpˑ=b_yR9S-M]qC?s~ :KU#Oy~Y=ҵ7:[B 1CBsx  ]4py?KdE] Gus!уA*BG'PB>ϕzmzr.Y؞ˀ˅| 7Q a> tN^thܾY/`P޺tIqzDk%zjWi*ui5?h(1[⧗ix?}ǟ[n";#{}.a+sМ+ɮw o$~SwI̖5nر|C kdc^'#^/.Jv#yvOMʡrA:8;gI8m.ªU=WJǪq6#V uU)f6L44}Ӷ3^ϸtt"| sUTgCf ͘'O- aI~c#.~AGE=x6(QDm[!lH LʤLk^GD>FUOfP̗<+.KpӸl<>!Ү>cT,=bUؤt9M{8ۭCοxM$UֆK>DJ) ¬4rK w)#[neWWjw")/qu{qp5)U%yIJ {}J_iy_ZlA#LR.a$@J[[Di]uJfR/D횭oy;e 99.d|4MwKID잠Л9đML4d/ ޲- D+ߎeg,t_<ZOҙY⣈'03B{Ӝs+ϱHݻJks+pa=HMA VV,$bYC%I0xʱwB . :%\0,B!UG`=͚ܹ_͟7{jti[qׇkgjj9j5aeֈ9 4_ '7j뗫R9 5o; eaziܛOv6@}eAO_\mNx%D&!vLBItj'QwlyUH2ap8cF>E)hg!@h\09n7'_Fot;Jy_jI⎹_Gϸx~#=~bwWe=<^IM7$cH "Ibr~LaŔdn+^,KVL؂2eN`?CF$! Yn?-$&L6K0.OI}=D@8C5 "p<"BgDq"Pp WUg~O6&mnlުM8z="țU zHغGkݴT*Q-n_#=X9N˞7N..YV?sܿU7jX#\T^e wљggǀq۝^./в**؎}@TK}XM*qG26$Ou)v3x<[ĜE6 hLP="A.jJZ? X׌g3c#K|nƂ06=0_*yxBu~yOmFqnd\2L%=,tniǝSIWq$mzH9Ud){8[ QH8M=*([@A#C[аb2_YN_u3(d  aR5M\l;b}QikLytCCbm\Xv!% !3I 7&}oH" GcD ͗F#cc5gf^֊|]ݤ:FRЭ^+JF0}!k7 G]Q5#wiK-]-οk$!&e";i02Pxï>R' (A/- Q'=I"RZ@Ba) 6wH9`BsI,Cv~4Zޫpl$5\3devw_jxWkc p3UF7K)zI|UzX 48GMAF hۘLR8 /"4  *}ˣ\ }|L}&_@f;UEų [^UU88Cmͭ0jU:x։Υ{ղ73!C:yS=` vD xn:uzbas1P wUX*+AV Ę99Bng?KZ 7jȏփ~碝w6q~#~GE>n?}}/75SGq^0R \Ne2H /TFb.Ä=Lg(Y8@ /+_ҝq8 2D! T "MIJ #m3ZlsY!9rDooWҜPcu/D/zϺc+56IbDV,T B\jQ0\\ j]%ԛѻG]:~2jnbIŐD@uִ9X`Sp fWs#Q"ff`vD"j¡b=>Uj#開^0#@wS}5,vӌm~©h3 S^f)pֽ =N ; D vn<6}k`#t"hi:6DC7qxoUW1tl!k;G4pCuR@Bf8[UvEIz| ?_zM˦<%Xj޵ THvSOM={- >@%$T8@{}vCv3z)  d+Z9FL59HL[ƃnf29G ׫%:9p[yMهCI `h'#zZ4$ r.I20UDo}~j9o4r01fiiLx F=.:DȠP1$Ƭʺwp$8pla{ÜrYd]4x+<J&%FUuӫ5A]Y3N}:PHwxۣyrn~?{ݭ/f0A qAZAEڌ5WkTGu{,輼lƪ`qGČ(b֥{%o#RHbxKS8S+ZlپG)X(E#|N׍sHQ磈<4k׭VϨ/,B#ȵZl=begp+&`A߱&^'{i-y~iop8 ZsqM3 TS R)=x[co>kI^:~Yh~^pGK|l!NWhr:To+U~z\̝MSE:}v]A\9Q) 2^ 9%m]jy=zVJT)0Gg9+ ^?W: $1(?3 pN;hHL6}wo$o"iZ" %,@ƛlM@L4J޼E^,DL%zhР G +3q8Kv +Ȗ r ]s#xe]"5cbV<\AH\67[a L" Qv:ot%KےY"$9boюDGʄJ]\9^ U;xXh)b|2<ɰxrn *^z[KoRP`uf2yrnnGKkH(xR]Qx>qtΚhZ P%T=’%"V]!ҷm&wARmb}u>َ=j.'+ϕK ۗ5VKZ|pNKdnY#%͛G+'}9ߋ*źq o jncVVmc'iru.qw\ G {ݍ9<5gE BGi\:!i SkY{ۗ &O!SzF\Z-ԟ ۤơDL.W^]04&LoYUbCbܿ.^LZ3Ynb铁߹^f䧟;wҠ66kL;fX!RqTHImR^vŵJvYf[DBXXO3nnlx RwME&l"}@d.z:nyPlXoXGk*x%֤Ok&h4g]AHu" nP[:v3 V$6TkgC-BHIQD1g)ut ]2 f?OOmE[Mc}fknٟeÂ<^uӰs򍡘o.OĎHCɏS=O>(D(׈}"xQZWu%vyѦb0P(ܫx[A3ꕯ!"d |4x_㝰A2k d+ڷ6R&|~[[U"A,L.quTaA7*f*@6f޲2hphκv::VK`8 n;k dyd^Se4QP-?ճmϕ9@)Df-0WkYF5Ec5buV4&ċsW`\ruӌ4."ٮaKϛ+))4$̓ xj{@"Vʦ‡ЅQnpkޔV;ߜh]jts~Ok/~[v>r^ O\/C2O3}s2bst8j,Pge]G:){k ;# @Xd mCli #<& i^2wԦl?ne6o)wzx|:UW|QJ=`:$K|ZhZu&@ZDD@ n@/=LjP/k&'(.6S |!&;z|C`Gr_e3ޮ9fqhUh Ҡ7q"so5DfZj^ J#5/VSqV^KMJZZ#hkBe^9eչ$Xe9$,G7%)GTXH 0VIAA lsn?aSNЬCAp7+R_χ=|Q~n4s۷5ƄNDf88C;v\<.;i돃37w*xvgzwgb1!s m37=jG1o=`2l{iHO{ P%2S?{=d.@"(G d@˜~®=sOH#Íy$@lږz^Cz:YLڎ!!+[>:oZѓ?p 5@yh&.?O=|<:Rrً IբN$?p0r%JN*Q'|LsxI a+ *^ӗ+IV%+Q?Nt,y*1bOY6 "I~j߸IUAHzt_sGު/;Uz럟7}j(P;ŤDoK-Nޜ>.VҞ٫,1r*vvEEK[J&cUz[U6='PA{TZf6W5: /zfD)d  }PJ<@Rco!iB6`ߘ Kv3p3g`>#Aai^$uSCқVo 7ͮmVKqH}M![߷;돚w#|S<B(!){ X@uvJU5|/1/Rհ2#LtY쭚Zlb6،8m7|Ky[W=^\(; jԙ^6Ά?rmňYɁf%uiL50 왲vWY+*W-6vBsxbUZJP+yVɐ+qAr:n4y$O) "`)aLbWf@ z7N:\V YNχ" Dr6t~`-iEPqʒU?ѸR7D&6-ZSMI5wkʑC3 -I"7rt s?GsvZzœ/׽QBkT]Z\e6%D#hT n&B$tbW; {{xe7ThUAOx2?VQ;kvVo%nqqX|*EO2=[7]׳d[߱IJ>旗,H0 {@$SV&\Ok rw:.A;{{=bs,[#f[:6Ykk$1J,WMa|Nm)k3f͛6lٳfVbDY~H%b7БkeƝ ŵ, (PB -3g9]ԯ{Y{2j#^ùZxXN6hM7We|xaPPKoi7urBUBg\)vfQyf;,뜛1e\dd=Wؘ>;G{r$C"D7~7սcɽɫ5"mq+HcO^//?&D%vL`s 񴊡x N#f:]aI&L,;YYO*~~]Z?N,wٙZl?ոŁ Ùϟ>~n8ӷbO/7li@?s+Xbŋs6>e[ݶmڡ~%"+]/sqqAuĹxs&k͛wliysg@/05QǾ*TRJ^xx2!__B1.W\Kq]~.- \TRJZ_S~6mԩ^:o6Y:6ib8/Vt=DTٸfW.g;~?gOSpzLcx=嶏T֣ɤi ߾f}{_/}Y+i!%뮳/#"#-ᛦH"a kέ|3{Mcf:ݛ6lٳf͛8nvݻNSyqV(PB (PB (ڏv۷N:uU߶w.Stͺy2Gx우`@& 0``Ƀ !Bv۷nݻv۷nݻv͋ bBaVlٳf͛6lٳf͜[\&30,hXb÷nݻv^#|ϧ:t[@0=!́:i,Xbŋ,XhE1bЋ"D V!Ԁׯ^zǏ<߼z._W 0` 0`[*@8`ۖ zׯ^ywI+׮;זȱ&K߿~ @X?&CǏ!S6@<7/@S1ַ}/ ՗[B!?qcnSo kdo?`^ĺt^Ѽa;b?a:I ^/+O?5@]9\ԅb8ANrAu;fLbW&ANlbE;^ !+No0I.~DʏOHM,rёˆJ !@(]..NpSĄ[wb=ktzCV'v9<}0;n}Vixq `1ǚA%f V]S-/R z|}̇7괿ĴLj~}I !aaqΙ[/~.?i\x=dB/gA ;;a` orٚM„6S - >"hIIFYgi ٯDMad L| E,twAXih'po$.;ZǗ!ƃd$L<o5u[x/^uiԱyDw;tW턒zT*F7E{0=xQu\6^f*MfQدo >SH uxyI֓<]A/vmJ憗Sbp6mqlI*lbF:?|$Xx-4Z:<+ 츉%`eZ|XJd7 4A&Y(hZfYtfpz 0\ȿ[pÌG"?Nϥ(!$2;:#8:-6aNס#As ߋeMwCǙXpuur,grq9$pI{Vsl＀9]IYlyBu;nZ9Ë\ijh]{'އo TĽCe.) SZNf~;84K12fFkP#hK3N6R7\rVI6>ū&4r0}LIȁ })|P:^+3NF?_{Zj`?Zغv"+b[/a4Fbc ̉$A$״?JXRʉ |~p"MIP)JO/Nt?ĤND >7d_g}۪ ]F>Z`ږ@)j==(6`ABѹ @qW*(ϨF t(J[B0Pɓ`je1 ۴'D õp;{~c/^p;v\c<35[c+Owfҙ/|lgor*|io.U{+75G[)Ys8،o} [ `\d൶r~d-K}s|B-U@i\RSvoyԹǺwBo8:-k82c]Q_-F1EũS8m[3eʟ0[:?9!Ew;$Mb6t[v5}b/?nKK{Ẉ>Y_crۭNĥh5JOM˹Hj`1vDFٲR~2ħߐp Q.?K~lR .j<AsqAoV-nիҦ\黳d-6RŶLxH$ɜ-H-o{~J:퉝 Pk=?M e\>d~+(ex2,C1zMVhw9ܙu ($Tי[N0Gq6Y0DkfDil.fF^ɫ=kt(AsN|ƟKw(4kQNǐ6H4ӈxdXKIfung@JM^qȩ& )BJBpu"i|=tlS\Ei?f*Du x4V1A?q w烣(M(~^Ɍ#'Xn;\l2\HIh I ƺROJ 522 ߓ\aK*gsmqi6hK)-hs~]?ӉցG7l`K/֖~J j[nk5LS9aѾb]ʼn5 :[N6J}ǜ,ad3JnWi¦Sz,J2/dd=B-jyAd*\J{)-3=ʔh׎&. ވim;kMAQboaqIa:ZSf9Ż7ǦkkGCo>灤6t,9O2GEJjkxćBx{>TIס=.Y&$Z+l~:tEislCdٍ~!+%BpC|&j] P*Enj 7ݭꛫowUz9$H@`Y0{h 鮉?Ҋ`iPj?V7S}i{BoZ8wvFwkd5oÇ!oL!1||V#`16K\0mg)wpgHRs3ly߱.b້%%UOMVï)}ݻm ,4+vrfHщj1#Y'O}p[:wf]l r#-bb鮟.>H+!y; dOBn-A̱7Jif.e ٻ/p*21Aʦrm>wk#1ЖGu/"2'AA%-A j.vbtYG29|tHK#pP3UWEhϸ"e҈c ʾb_a9C"zRC a)֪եݵ.6Y޹Y~Nc^qrմ"-Vl?[,epCZaSByR%nX1ŇǡVHYn!8VpP8w]Xx#quωO`tjP LJM.QdfPPU9ff240b$CCCmee:BҬ "NQypHgUw,L{ 4TQ80m7Aߨܻ=ϐoP_[lGO6x4\L֋JީbJz)VH>jVLȒH#x$ Cdؓł;mvT;VwԂf0rϟ*$:(1Pe)+pyimm-ZO ;cM9U5z&=Sf\uV{7ּX-9QD۳*vv{3StО:㪏&{ VpnI1Aq-qPs~7Ƅ&[s󫒿E2awH2uKiz}y"mZ]ԡ.3"76U$cR66]eXN%Kͦ$CE'(Gj9 d۴1<2] RaF9h SԱXr*rI̻.Wv/lyPbN@J Ir;L\vq&Lp,,. ӵ]Dyb/vaYSq͔/z͑No~rXDsP@Mz G|[IzmBuѮ8"H.:4PTSZ_,ݭ/ˇ*H;g6(faߥ;kYT\" m=m?Swlm{~Q:U..*O 뾛wA@*eʍAEZzF\7nJG I)I, [yHX]rJ)Uܯ>DX>$o \~'aF-PtBHYs4 ivJ[N#R$7dM%w.~2"P&a"iv iIޢKQ% .!j(4 ͻC-j22tzHauH-[r 94.Rp X~z+7mkf,/֡}=1n3?V5S=0IE& &@6;$N}B{)b=ӂ ӓ!dȮ#NF*9+yܨ }4NW񦀅}A!oxMnI~dvL;x R~f}ҿ%B?Ģqs2jnʾMT-B,:pj^2Z2‚rP6ʥ\i!Z4V4#MȵXF.P;ѽ7c3+dKb;V !TOAGEI`,'yΕ]2?ڰ<i`ɪڶ}eSUwz![|,(uteo1t71 26shv 6fBT_W才-Gx(+@8.4-"Dh~\/6jjpl;k>݌b{'7w3ǃvLwx>cmGdW|rR?_Ŀ>r>;09޻7|20m2:(KN;8_ܡ,O\y=n9/B\\':<&ꕆGʁ]Aբݴt=01rڃ|.g1$2B2RQ _Qҹ=3.\sK-m0FV+# q~ w2SU;:jEzZB.@c|G`IKjр> qQe v E1gB$Ň(иF1r( 4FZ({q$~S?Г@/ZYu~cD>¾sJ;OVyB<؝6FY{dÞBa3d\#xgȰԺV  ƾ:#xb+YFDcT%RUW{wv 6sp\v  hYAD_xT_2/ÓJr <\ kI56|~-R h9%i˳UcM%| 'iM.#) *7HZ]%Lf]ko`Bš]'(ZK?eNX,H D&, b TRCJ8.P3EF?{ Oz4\gYQ)~LS?wEoGxܼ7?s̋'?;kvNW%;L(nՍ@^ 2YLw U(p4H ה>ȕ]y@{n*  ?0Y҅u5*.}qy}?3M`V3x69>Svھy3مU_ ( ]r+a yiQ#BWna{ٜU}]q_@IJt`Ċ@> No@#JNjUg*|gNZ՚AxQ/~}ǽGFE (Q~B 8enH"{+/S-!E40V7)s0ARc54I%?lP~ׅrՄ;]Bp8|5+ A@ /0˜Omj%7q*A z>B3jo1Zp 34λq2 a3.n;e{n1Pn`Vx_* 4ºX6RD"f,ЄT]k]ZB¡}__ӲOط|cB^ NMMɊSWRpZaoz`l%(oKC~d<&76|a<D\%{jp@aRC@0G$Yߎaht'k NEaoguY$X8{] Jt]F=*<-:%?޿XR|ҙ +I،~ypr`=ݿa*ɮͱIyL$Ӕ1_ [As,9c \h06UT%(.dn!WVo?*(Rkaqv*`z|9)I|#|xuNPE3E0UFߢ..i|- OWO",@ 2nԶZ~H?cw ` zIm-4}cW*~c$xV%ETkH1B qk.snpJ=geZ Ι ڥOJ{̹n+Ncdy([WxKi7۝-oiw9b>w"[M 6OF%$`/.`z1`:PT2jT~@H0kPl/5l_:΃ib 5 Qp6AN3/o;V5ҡBNt"p]a9V8)d}^5V 2N U(<{:cjkpQiROHĂa;E=#&Wu˝vL qH0^ԩN2 ,HJ_?&^SGT9n]ؤSQ)rgnO/H4^ L"AsBNԼN$aPgsfb.5DzTU~Aߩ`V.X0JcEyF~2p90-o~ќ}J*5fQF9 l\T^mk[Jƛf*\t ~w3bAbD $ ) B3uyк[>dQYD("J"۔7vmpgh9Eݱ^BHQ33q<ð 2ZՎmovS޾1d~*~b?ggK;kUܼ쓗,=_0]%96EfjDj+=QtYyK- LuD#dwc8kK >CҌ@$<<,mT+0R(u_RO[qvVr}tC"5 0"5]`΄锘mvx+ YTa^.jX)d-=ϲ!)S"Ίi( W-K\mo}#LW˃ !">CT@-y#jdžP`gJVPDDڌIWt'9' @2N!=<PaFT}A0w%2L!fQUVQ*DvRXoԼOAϺ;gM՛ O֮N9]5f? q1ы8To/G|b`F[\\^Ⱥ&i09ܦطWM7ʼsFyn {v^ N8pv3xIJvp–Ѽ8}b6&64WtNbEpr>}H<}:*b^?8d,NH,lG' kkx/ iaepV.js2]]@ܳ= U\(zkXַ]o(*D S(g刦Sx7jj %5ZK2v-A1ŷG{~suh)ݚ=gYkWfOnH8. gi>B]5|oFWyķVLD&]+|\J˙F׫ J&y32Шi^f.Ҿ9v@X4i͊BL8,򒿰LJE Okທ^B`B!drUSSaBWxg/Ǎ3ťeAG{4U9nʒrRE+yju28IES61eskJ w陏% !'XK ,KCO0^D) |ғ=) )$FTl>!hyw-bp0ٵ>mQKw.K̕2bDpobg2-Ԋמ2:K=OY..d-S&KաaѰ=m&h`Y ܥ 膚 eI$CmCp#sWa>SW L7lKYMe>o3u)۲A& tz`ND)o8'*^њLbEN(]8^Bۺw`Euu~',}JGEw- k UÇuI[WV}8?mKNJU,8y6V)$R!3 نʊԤHʇ)yѲkTaO۶'J!7G4긋UGKoƮr >K `+ͣ+ .܅Ta;zS&n{)%PbZp ɈiE1,[17oH~ϋ\_5?+ d,' ` QTZ&QԀcI<#[e:_zzӅZԟlv__5T)ivyu*O"{ eCK(_ 1vqPJ:]Nz;DMp䢸%,};֡*PKyxY醶 `y{+ēm881Hl[-ijA![mo0Ut[B$N{ԐTPA A-5-,2rrY#(T3,RckM )Ϛ{h$bʅA<#L!ɪr v*% #Ωބ[t: zO n1mgb%@nMkU2q D .=#UB-3dE/EV 7凜j64vX?,:eXa8x` CR;05XسO8ZjPp!g3[GTUO0O;en*F0d/QvZ8;;|Hcx.;9ytmڟ+p^Txh O*5E~ъי gojq"5.*44Ei*8rUpſm}}Nsap5LKIVg (L7ZY->V#8gU59Ҍm (s4,/5.d n%%CƂ, PDZ M?3X3i(EK%"+[ %}_^6/Ա7C ˼_OMZw2-v y ^(qKBJ^B%|q(R? ؜ E ޮHΐ7rOzLUX´ԭO }!m(ʝcV7] uKܩA1GTpwz;lelK fRuWڞ I٤W-ɽcKQRjO5|AV:<9C 5iy%H 2P!e܎6X<*0n2}Nm3]hSF6oKusb /f=K5*VFkl }=J䔚;L֗[SIp>ǥ8禡?E<^%قZ4]H <#˫7inVJOz9"ۂV@MA 6$_D $o@@'kf(>ԡw cqS;0vhO)F2S$x~!!3= Pٰ:=bQS97cg?DC{,k]GH{ߧ̼61O]F 44Ihݣ(CH1YcρΗ)[ C:zEi ŘZ.ŪaU vsj f; 6$lR$&!x;075.Dc ZuGƛSqQ+#Pfc3ܠYmiU#4ښ@ $ʅV;fzf] 9N 5JjYPp! rgAINJ?}ފ4 {X(]sa 07^nA~6uK"J#5bkɵ5Am|+5V1rWH*wM]QlZ9OS!a0 v):ҕh47$G3qOh8晬 j!XPpſ{nV4w¼Rm wIO}doLZ]9J:Ye4D|M"GO"0=wHJ+I[9jM WYW^6@, V^neeDdIA Q{oi[}Ab9"ub#|.:  hX(g ۶PZFT)H(TdT;H㨻Ֆ İ y1Fn$K !7E'`7)lCizQ YXHf-SJa*h/_=y| y!QmU@RdT<+0}N '(NA r2iNRi|vftȨT<B\ KloyN2)GAxO%PyzZ\ܤvZW7w/E7n[:lqcDCy_1""X%? _;cXʔakL -MH ̡3UQ?a?(~}(=&mDaE-tkĤ#ؘ1+:•6lJgob=Ctb HrݻXsCN}AxrMjz+¤cķ!'`L#)._d~G7c{gs9 jS^ReϞUOP( @ܸΣ`s~-ܛǯJ sVGdU*MĭQJ|CCPuQ%r{(^ϖ%J)Lm R[~n|u7As ȩ9E t8`7`φ `IӰPi9E ղT1p-h\#aG(pS|$?:ak>T7ih̹/<{yt|i:#mJ9s@=V4c&Eل` ǹ9~r ' #f42dWKy<`ᴢʷ,93ʘdC{_ k>ἆzz!{?iS_𚣞 9xdCN 7T/{=޺?폶lP(KK"+#vI&= EV:e͠E{*dv{1c$F٥%5dԽg<'P9vCK7glɪH2m=l~%iRuX{rо nQsّ9g4 >l.4+fKԚB5:=!XxtM\t[ Kc_߆dNe!ϻt{eUi/7 / J0յIkKJMZN_tJ~d5.520pcd5ll_\H?rbF[74>ߡ؏Tu#e½Z7\ZiQ816!bkӗL $H蝘۰f\.N?~F7N\\4UlSǾWN]k7W֬VzٷVCu~ jgV6U SXD5_ 5uak2'I VmmHU3}Qׁ20܋}{vDMZd+LdyvD)N˙5v6q_rv$/WQ.1FY;g͚o\4vkVL ub ~=)^dZqӂֆeˣpR)g{|m+hbS&;NNBegPSwAr"3\8]+bt,1#."vK~AY< H{+B7Q"~72=H?i ZPy?RKwx",DFX $ȋ/`*&ծwO7omnMHLYH| `bwHx+֖kUvymI "|5KNfz,[;\Z\@:grPgp_塅`m YcFВ> `tiv'?:)*Q׵iq,c8I kuXBi^!ݠD̹=CzI` 0eqo'-A$|OfL0D:23¤;]ٴ٢BJPih$`VpPb/56 7g #âQU0.Wv\t^en[nC xIJS j'zŌ&lOqh49LAF%!5R}X:и &iS;3V2o[Єsk=\/MGH$ Оb; {4)'pAnn%œKAQ"DH$ߪ 1RZf\ SoJ,:Pg"cp%gDmY5p@ZD r0%[W6~,!Pb_>J=1@Gw`[+zne9Fjk0N@& b.?rhgɣ M@Nʛ7^*9(ajl>c?@)\UtSa#]C-N:< foA9 +[=e*/j8򍚼gvS`9)6)a rI-яPhP>61G[Ќ %$61zVs]w=] p YqoRk@ MP0q[/Et>oO`mQpRT"#I@%\Nm&{:*dOI^F1JHc -HoIM#SUȊ HrX#.λɦBƄ xx8)7rV zFk3^yR8~sCvI:K1p@B47'QYYwɌ׎. Iix_|\^iV9rNBҷR;dןq6.ci9(قM45(^J @ ?&Znzǒ8 N_Q~eטOQ'm߳}zZC, 0j"gIdLP{e I02=/RӺ50~ܻ$ʊʠ"W3gG%ҀigYKբlvO&^r<[$2$(|BZ52*;A[~N.S 񄢖lwKw+.V' `wzķ)!0Rp:?ֱܸ߮ rVrҗt(ctbO x;\t@O#+>Z]u "<]Yċ=`T\\)>-?1R3=Fq-}fv>5Sb漑)6':sZׂjA@sz|gk7ZEf]FG@ YCl~g霭X+Y|EVK" f"0;R]}*^=0r5KHQs?)Y~moT@iK?GT ߕȩO}B+fM{YǠIV# qJ:U_䞿R<tq4Ҋ2ϸƓ[ b>Q"DCxw9&kbZX0*8KT(;} ;ˡ4Cak-2jINYx ۩dXN#t: *ecI#6y 8kLƌY!׈ocC:кȰ&keR=r%O'|e|꧓\5Tx{>9zN`h&Yx[mC׹@ 92,E@ؒ $ mW!*ԥB} D!U UR{˩$NU$CrN=̍6-  2Khpc7ȸzIXLe"%g~XVsǰ }DvKGZNw&[wTݣ9*B5j&QڀQYU*-+/rG!7ڏ KEp z:M r]ɑs+mDL{ (P~g-kSCR٧=]38UGz edOxظyrP 6UD{z!-^M44Az0.Gs$$?M2=0S[)`#ab ;DV'Mʽ3Aôb 6̠%v\seKm0hژIe`t SĪ&9M*CH (,SնMn1t{ yA!d%O6u$C5~7~Ìh%蚆U X F@]=BJ9~i Uz3UAsWGhƸSfWꃈ28I7vQKJn\1DQjAaц#ax6zԽjw뭭P,KJlg n<- ʈ us|,g5+@y/)a1O6ƬPtH{q&yB.QIf3k $0 )FĬEN) n.~f'75IlDP+GVgHK4ƫYE5sp%G5I?0`>ѢQ^@Xŭ&LlIuM*U'sp1| \pҠoڬ=sRH 3S ImAΫՁX|K^kFv+EPs ؝{]dBV A惏v }{W wX-(F E?=@:Hǀn#.u/Բ&]B ^ !,bajU0LE~:(mX /6[ Q0w3{CuIۨ}Ղ' it(%\2 +ͳn|l~@~p,$"X?7y%LzK!` !PjaY;84wm,Y$d.`f XݱYPô=GH_++7$>? ݮ6_b lAK-]a aMYe:;)L *LI>Y-<[0L1` 㙓%VNL cR@_wyl; +M+eÅZ64^eT~,s1#Y YS!'݌x>R'V}_y@ES0]AA(꿫-}Ծ"52I?M_9m<ݥM 7l¥isUG\1 @p.mmG>c\8^@?# ??;T1'j:jl7s1 (ZR a{;o֑dzd:NjXم=wO[jyp@$9wd%7Iްb Z'J>k/wCAS]=cٙPNga-ӣtfUQX!‡Q7SkXt=^fA|v y9y24u#C|-K'V ] ^Wzs\4;$uI؅Jկ,h=iO]]ٮ͂Vϋj9] =t znMVXX]+d&aZB%&u,";¡Rv{eIyMgm|Z|wCHtyG`p疎Ә^9(%;#- ل$v-}PƳC8QG1v˧Ơ S>N[ѰEw7apdX(=6)`Hhes$ R낝KJ84xG#?@MZrXd@/1aǜ-;?;{<9P2K1Lau-3Ty@x'ȭ366 8UtChY9)KJxX%\*6zM=+HMc%(:v8Cg|ȿ5N N {DfUK1$M6 | 3/PNa1BCwkqbȵ*\֗sJ!:9_s c^l=rȩ%P]K?/~v? 3Ð<DzZDa Ek DƝ#c Z\mk3tOT;WЄ->Ҹ$0@վXŇp|; @fh|.mGx#U9f'\hxa F )WXXkDxLuE_dFK[.CkBLZwxlEel~Gޮdɳ ކcm1tTԛ@y2&{L Y6<@];57.>xk+i*pu(,Wv M5+ ^u`8'4C~,Ӛ^jT_k{Wg\W,@l_>F'!. pyR0)7"2\8O-懔4b_v]ZEy@#>h(e)\:+J+,kkD+{/oԊlk#o>򶍕NT?=ӄ̔Kjgq T8b8FhRYG撷9q6AbP^? TlexEKRo%HH51?-Ά* v z-4Ah}EIr! g^0 C69 1-,fl [uSMSH-:Ʌ(ik4.fokyG,XR=N)JesܯH?tĽe~` ]f2JV9F}[T``b'e7&>»A.M} $b瀶|+fkf)0f ۞POoM@Ÿ"R ~HИ?]q!B6SmS XAF}\]AY̌% %ie/o,斾Ϛ_)O`+!|nLI@e{7]< U;laT Q;8Fd=K=x{a<_har=VTrNKtQy\Ͳh,&օ\·l v 0m3Csw,ޠUK;q_5T`I|h pׅ_VO,dZ[2HhЕ؎I0xP% F!OOo~z2&ʽg&ѣG6f[X}=96Z}gu@ZQ5qض =%gH<@デi+˝_( :Dz%2oqn1j̦me2E%Ur$QCł &ddqnbQޓcC80kk<&(e߈+K@-I|v(WC\kWG!Eg[Kv e۽(5rCF("εkߧB><oagP!rX۴tܽw,^P&K/1Wo-c I#v@/M.sd́t=Km' kGr7+vZwH߁S*&`g_֋.Ɩ u$߯KvIZVG8fzυ!f0>SJniBe$!zi>Ϣ+|xr ±]-QK .~$T+yPjEXscPmnYپcG{5 9,L:^;fJdH}/L#(' {bOP~xWP  k$V`y3v{O 5MrH3Z&,NJPf~`F7'v ?.pJ >8^:$Y[qo´ ej>d q_&] 2O߱!{nyۭ>Vx:N|(Duj _{ $̇~-)aoݱ]U; {Nq؊'v0KέkyG r)uK;uۊBZppNyųt7f`%ᓂpQI/2w$Ib%H4Mw~ \rDIiօ\iVrlTՖŰ| ݪnGky:! jmiߨ-BRq|oPH}5eh""0Rh Gx[l?Ǯ6bk5\˦J~na rۍ}WF*p r!8P1Oj7 ԓ>z?#] Wx~C?=H7@HRwujo'BZ`A߱y' e ,#-UDXemn.)oSI36mER=|Nkq FX]~3U.T6[Ъfc[^]iY8:V{$r̀= ~u8}^Rs,i:ݐ"nd鶦ܤ>y\,tXNQ}M;DBԦo ]*JUab҃ 89!$lS@ o¨lumu7#dǡgii@?\@8eb'U*@ũq^4Nai{ZDۥǠ>Q=cVf  lU4'ƚ-rHXU' / zt^Ú..=o9v ge[n1OAޘx\!)^9hQMD s Vk^?e^ 8AW JFI,_~"p#Qs7m7KJ)?QTٝm ?Y "?V*(1*^S4ELh lS;5%-L# */f$`#t律<xmV|#?}ֹc ,d'jXw9ß`]0WWdK]XFTf1OcucZҕ_c } 1IFgA70G {!YI-%]k\ET=!sSΪh?sr8٭A~ywQ͢ 谼aB瓪AAV%1u?aFڡ@xJ+p^Cw'Y%C$0dCh>߽Xw*!OH+ћ+$ODM~i$'. +jk##5U=@`/Zڰ:< o&'Re2 %t+E)V͚%K4F% A5}˸cjz4WNeMUzMa+=5Vg N*؅\C-KLv+^"?^?YArb#Jl;]0p26tA#Y>JؐQd0s=M6?A⨭/b(M>un/;Ph'?,%|pp{Q/e0r3s|闦K/3˸jzQxWG2bDmkvw(ڹ*wtǙFfwc> o׿Ч-WV՝*\'U]~*>ᆴpxۈ܆\}|ߋu7d"ZA{kΫq$TǡC mwjY8>"~9VNMBCy&rAu&uH-vjN4,̞lfӉ 9HWȰ2 GG \3!?Y;rt]Nz->)70?8w0I|nz.g,.O%W{Ӭ\D4(o%q 9a\-4HtߣT߰b>P+S2 ;z.P$ EFp8JN2o*hj3Eu5Dk,=vX`Ԇ ift#eg: g1 KV'< :q&Qh;?-6 Gʆ X^2Ɂaq,(3‰&_xA@=kܻ@cP;N#[DkØIijPoȓa)R"D@]𰳼َxai`=FQbncm3# 4_IMb{- KYN f53C R5zne0Pgtj2/[.' ݪ?)coteK;>/̬(H-9V`ϒvk9@&Q%cWAX(Ƭ^΀ ! .0 RԌ؊Qgsf^[oJ0əYUv^MSέϛH h::]] ]%լYG?~U=,h OR]/yW*^(`\NJ:3fU kЅ^2V4M;2&vv|&A *,{*b9;s^XaN~C يؙF^t :֏pIaH;aXNv[pgI-Y`XgveWo :\柎Z_ADSOhҨRuzpHYFIB=[Af[JX@[/Оut6=NӤqf"Y2!&`oIr^&=]p19Q"c5M{ NsF{Vx9U?CΝ(*DTN Nnhq@'{V7#s-ee$'W.jcY%Q H@5sQIB5\BgԷZ~H)g5'A(Q↉H7y{YՊH0``&ʼn_k~so) [ĂJM0p\\-\ߥ:&aC໗sJKS E-wǯ|9/;UO.xcíȶc;kwOrQ5ղd F!lŚVGG:Ci``Μ4T )(`H^Lșqs%c1hMq]gw2 *ZD.d蝠hY:_#9 8mj9Mj2E._ 6ܸ/_WO a5hG5^k `bDl-mOv'" Klс97s߸-g+}lr - CX){H!ua"3{oYڗvK f賃Er!Sq|~,vO?R-]F҄G2\U7?"{T31O}׃RQ"gɎ<:ήE Day9Zx<Ф-CD~~^D'o$RUaT*kM`? 4dk6fぽ#iGϒJq8MC( mW>{g)vh~!|NRTګI6q׮uf,z{4CGg@LKQSy}jul-߀ i_Qi3CW#VzdS`y%2^H7sjcW )mB$@􍲪LrWӥ3j aaj2ǿ W;Pr3la|,?RLlXqn$OfY6.VJE`Az ;2pDjGb$llGݔbC6%p\FZU_Bش3.a(jA@"ST" nRpE%uB^eWۧ8|=fzO/(o0vàۿDUzT':ahMڂTT0sr-iP;8 }1Q+8a</Ѹ3UI'B{ ksZKEz}@蒂@'8Q=bمulZ@d$ka  *[z,BuWvL_}=PYeKq"*HqdbjW)iܦA雘򝑓f@x ΰ111ӿcxsI̗N{%1B×? KMR]mu!p;mlӤEELxY>zR`T~g7uYg>IVл@nK"qPds}h<\I%̍4׋Z)z,b]AwݐmyĎrFFkBbPPHe lwӕ,YhU!ޥ;]Bgos?§.FyQ& L 'k* 1K_n#hWl9\~1w>57Ӱ&}reZFQۜ|MYQrMjGk xn-<:y0okaf1'{L%G=q6x(ivjV\>G;O69a#V $HM@&]0%4lgkh-c#u/*Cã\3/y" r+'XkAZ^ajNs_gs;k;*B;S3gFH#X.Н;|58"b`ܡf",p|ta&8VE.Rѻ2}P$GĊzen#6 &`eTzuɱws #>݋O /8vW0BhF&ƸH9gPWCoEtCKk@@"׺u[kҤcOA5ގA7ȐDеoA _9 P}qXA͌usub(x<0($Dlz=j1]Õ{K-#um$jɑ٦ 0AN(l(,'-#:=_ESISA'|6ޒy TX1Ϧ-q46"p)fCU'?{M 7wsoV&*q["@hYz?Yn$`PG^pFuUgp^d$H6 5s/04VRUVfHSAlJK3{?V'z^_ղ VjP&N>$9u[C[LklCBEs{_Yg9t ğQꪴ4#*#8Ts^rGiˇyf?92txޭ/>2,O7Ŏ_;UzRWC \YIxrϯ4o*W),#Gm7| $« wdChK:RQߑ?JdX?¥GVAJ\2QYP]!U *YoVs4y \HމpEdzހ*L# >ibؕrQ6kXϜBQhDߌLg* CI sFĀ`-?w&6N -Ɋϥvpv)5-Vns-xԮ$ ^[>8wAhFT-ṞԐjDUr1U cX ~@OP*$Yζ@t R..£' ]2҇PxOe.kk/]N/a=䏄3A*WʅzI/ٕ"qb@f -X@6! X-BqXvczAlMB3&mX@mhoRJI>k=4UostǝsER﹙Z:2+)`b~7ɞ;Dt6 4[nEՆA?$mfغ9v}f_ ǀ[mTá3&9C)2~h*/=X5\0Hк3tٿvaT`bg5E,-'zD tpzlʄ(_ > hmR<4U mz`S2֧ή>ͅR2g7DrYVsc!;b66ֻoG_P6g3-]A锆+?V*W2ϰ9* stX7[ e!a)hQD^.MA#ʦ l٩Ұ(Pָg)oVqb;͋ W@YOFڰRLA1i:|4|ԪyڹNIv#In`kyk͇% ^/)P-Mx־3G6t̷,N=zg\idTS>ȽZH''jџ}$LS'DI! $]WT+8,;qn't_$ۓfE B)+gX4gPxNh9Ԝ|") N7)n.Jo&j(<_Jm }S7t>S/`EI{?ll2e!D.jDA(%DGنʻzF<@3WǦ(;ZyNJIbja],[,,<C` >Ӝ{kgu:aje()ۦyӫ@LࡦB0VUjiq02|jo ,bءT>TAHWÂu*sJ_o6\$ ^Hu^KcZ YH:̹V;Z[Ynm !O"afA&R^ >hn?;{Ƌl->UG&"lSh<kx":SΔe*eRՋ=kwX&β 5p׹cˌR?Yn׵Yr_#ʚO<31F8́u_CĽ:T Mk9owot$֯z4=ȃW@YCjTb̡[C9O䓬;y)#kq#Yk/Vb\RyԤU'yIߚUxUWF[SZ&9}Uv<3)̜,$agu5sK_X,hG=Fx@&RõC'k% t'%d6Ffm&Mm'V;VbNĎ+!ežH|ct7S_ ׌fWC!aSզJE( fj44>]ȥ6vP}mx[>$5URU%SzGf"R,J<ַ0I{(Nߛu6Im84XRd`Uep#leΦR_m>"m/6!0.܅4Ÿ7kcB1,`_Pl[xU&DFC{h1?յ!ԺV᭴+ǿ3BXf:b, NQ˙D!|=J|q^OU|Јx/mN9.i=u`ro3E=XWp܃h0W nwΈ'rGwuhw:<*L>n&dMHIa16 /y&\[H'c!41cDYClzM3nx b[' K~1"kx?cJn` ,YUޗ5nPPipt",j'-fg;k&&DhmB Ct/3k,I=DJTׂ ݋~'ѩt_mx?$(~T{u^-+r+N̕ ZH`-R}"].QReBQyW洞v\N 11!Me˝KoK+_@%K0_S>=|hKzuFvl8-6)],6IG.ЖrIne! ƹ< PqK.*yE=dnO[&)}3 ٮ]K{3B[W('O s8\>]LAFȎz9)ظzOҢT[FS]!Mȭ5S* پB+. 6R;I8nLzBM $_a@'R^_L+z.xza2i )SZrpeet6gG/y9& osistuK2NqյH^g@mퟑF`akE+nUI= &C:e;n(4=[(T qW& |f%⦉;G-հ? 9o\3#5eu^sIQ:V{WJ@-TdT'Ml05#[D \̯ig17/4 w@/|L[$[bKC9cBo\ޮ41dJS'x,s/֮>ȌLranטy,=y&"}dQ_# `C8! Sh23)3 mgdrTq!fZ lo/9uz+8{u8!dO:r\I„P~LFr6 RF.5"PcH{܈XQuRL01mR8Q>@Pfs%(:`!cv69t3UCrW1*d_AaW+}T[qY*@ *Xp5)C6%yJKiuu)/!>ݧAlaT!$.޶^ :G5gc\htK/:u,xZXǯT3;&ļD*wEDMoK؆ e+Hc:i.$\謱Sz,@zF=ن_/iΑ}sgs_)dTZ_F_2%pqP6zoArxdBΑӧBy1CHk珿W݃[2V'= ^v1,(}<Y^>F" )2 4~bտ<͑[ ."\q6δ="C{K )f`G9A_|v,L$~\QkSvCix%g.G^=+SnT Ǽ{Ꞟuw\٣fL嚻ӤBF\Mw;i$-)3A}r`l]64kz[5JFm+g s)S "͊Oᡰ鸉0x7h"1# ICRɩ^ہbrVQN-ít09x+{JؖLA}'ӈJ0_6͌S;wܐ̀t-0tkE&sԍ|qM9\AST9g =Զ*A8k 2'Ä;̴)nw"лWB@ KKm@~\/n;'aZCqÓ,X H#_Fb`S /CoS7[E.ş@D6X[V(Dk܊9T3w TݥgP{"idD*vW|DsTv2SZa?72PZ/2vG@Tv e}@QaP8BH{hd`CG4L?QOn#ߦ{AȽvT 28Jd>Z5ENI:Di\r?Ca)0&bOZ"8Y5{"JԸVR Aok|фsWkyvAY9I뉗V[Y޵*v%ʗKm|Ѯ4-{ayyx֭}(W=A>[,9Dc&Y{a^5XP@ ;=yC;U*]Wg"*}FިӍhuN' 5pT?04)Ffh35 uY@riX%:jW/`b4NbjHxrNS =v*`އEz<?84G7n)ٌws| ]qWڐÚGΒLa@kKb(,XT6J8&29SHVtW%UtOb1~6svL^h6Mx<[&c4LVFIz1Dz`SVC03>l=DU1 x)!W)dfV[r`_GFY ?)}7kmx~ `jUuwBlW 5yHZU?s/+奄T@ޤx7_iA1=z-b} goIS6K)p}[h-&^: V3V1 Jhw#-{ R!"gEN#ZOqftDzޜ$T>գGn(Gv'J}"9E[Ov)˭ K8>[13Xpm/YnFd8'B߯ǣS'%tĬVYxfƗF> ;F:QDQ_!EL4 ŰI l'S:6VA8xjlTd${>rcsZ?#kj$wOޔn-x]tXрi ۹kz>5^Žkg-6snm^ƀ o=*,RO'&.嘂_l !E H|12ͤgΥveW#<|PV;4V,7`5f@e굅\H{' zb@{.{[mmvb%lÁqlN>LN0)a2X>~#_bҴqܒ5k:Bq -,osmDݘ`%FbcDr|N)iz(&H+.Mi"@aʞUi?91]mcglͽy-۝/LSp ZkDfEeJ!Jk!VTfP=g`o؃JZNko=K^{ 4uJ1DЍH7 [Bh )_dWydݥ\# }xbQ"eeg)&;@q!9y/(#8W :%es^r:6WbJ= xv@GMe(KFs7h)È}IJؾ$2t,ջRXg>Sz[p`MoL@fbYG\/uw`n#Ƒ`ZُQ^jF)em\љb05n"XL\<!s"Dٌjm_ %-xH'8Njk܌{lݹʴs x.ٍ`;uD;]Xy2CkxK4O Ż} 4m"~{4k JU\$d&?pc rB#\!}Γ:֯ }UZ76#zQ0躳t *2kclo~N$ |%&kl-EO"y`ૐ[>KT{ԒۖBBz̷5-՚ʾa+Ζ85@OEU&wѩ_vɲ!|0ŶqRb {}+O , b2luDJ4ZANJo2dSj 92FبdJYɊ mWK# T&4;4գ̈́^; On?f`BmAtQ6%-ЊeTp*efiZCRX-i ©Ңhiwc_K콊PQHO4\oLu,Hhw}k$#@8Gdraw% wz͟ߕln^7r\mY_Ӑ1cy$DQ !vC3bCU"eS#H2\T^yocȺy>'4Z0f犤q:m@Z5] KW;$֝іaJZ\ibu;U zs6Q8; 6Z 4MPC̰ mJOx>j0psyu3"MRD3"yя(5+ UR N6ڈr1шVqU c"o_V>,Ki*w6ai)3GWy s‘d;ߢʷ׊~1iٿ8>B #ԈKwdLEkI2мt)AdERn ޷IlOgc-oPxIߥλ̵ixݲd6r^O;bf0dz- ӿh*iXB&f~'ҭC#99Cn*cwqأ+ !; 0sdq >-`$VبR@`*gLoLK++W& ݃7wpvr,(Ƈ6Tu BOyMkp͖M,ew#A228 u$HDc#?9PA4N*.XU2 .)t.|FwIH$Z*-eZXIuD[/N|\),@/8>"=@zOt9A&v\kRI#5.|~o[,ò.5`JZ 0S΢K<ޣzZ8$v3RrDQl!d"D4rmIy+r͟άv#tBK2{d-avz91dfbp"y~9 X1LvbF>d-" s8`El _"F&m sC/Y#:1i%YI>Q6SrYj_֒x- &yS<;qt̞tDK8}<7!V DT%8 7TY/S0bKF3y[ YoC^:q1<4(EE(TI_#D̮Ii"E$cS|^j>T$?1| Z7V _ mRGI kaX]v18`UϞP-X33UF%$RwEN#1#uH\R;1̜h~ǩ|FCe5_ ]{B'K48%OF8 @o*pjnN|u9r$f [햡}[pY}1E սBqfh}lQi_@I7&Br=mk4tp]lͭN G6@qruEF->GUY$jlOg$ɔ4:c8lvE"0?~d"_Y/֚g! oc购{_P7.Vļ#b'گj@<־/V[DXyUIBvܫj EpWY9f}+2xZ.J. eWl,p%| VGDv%5kb7P JD<,N }‘,W^=16{!gHE[9_<_.+Vh3ӀN.∄T:^cЩ5~ED37+s̯X='5|"R< j5u5HC%2K<j뇊{@<&'4 ?-C T;"m1N= >џcUpH~" [|>q]WKtOb2$hcsT%ilr4mlT0\݃A, Jt'e jci l/B{,:G?KWbm}@jsv.uwْ ,tKXJA87"G %=+pZ6vڷUwN.}2֣s *KMtNHw#Fh5RdxNyKG\\iY|S,I_6/MMPiQ|N+jIC&i:_Cd:٪o1 AeU,=WXhML3SqoU4Uwe^3:BH4t+pw *딴\-/MIĻ=Eދ;%q%KnۃSەD('gSpϘ{KʃgBԸ7V|/<Ǩ|GGpNFpU/m3G$y/u5 V.YpmY%a$aiiTtCq?ދew:+ n*xtJr"=uOrWw}f~nzK_Fȷy$cLys>goE9>$- ~̵{P#\Ή'6b.b7]% wXA-mgvM'ot2p&"C}򟧛bx lze.qSdݸ#,ZDWfXA9^/zXkvfۉhЁ^]Қ:K.4z'[l?p{;7Y4uTc:y]U81-zRRRkAw8P7 V1 ۜuu+"h|Y0m~a^~pIgٍ_ 6`up[ &͜שPuPqx?i-='zXI4äzh%ⵠLY={bb9>r}"1z nݹVSM# OzP;jb)U- [pIBǡ|~:r-Ǵ7rrn:#\8jonX~_!>6T:$J)nV$ۜzx13N /:&#B8ѳ#ʦH[aZ-|â gpn]HT֖ĩF\BOKK(!N5t*Scn~$0 0^Vr~a%Ӛ.&OIj8 }tF&%/Y 2IudؗVƪCJo>cgLԙzrіksȌLrGy:V&^DR׍| e%&5)fte|B_$ 0=Vw7=tkYDFCn@mœJ|OYHZWњS7Go , ċjN/@&rw32᢫8;Joo6'cr3Ð|Vb)I4K|d^CY7jSt B~#ux|VYz^dˮC/ RU(s#N@| ?>Ҏ4I-BrӐC;]?XND6sa΁P9;$]\q8"&"l̗oybd([Laq[T14p\;n1Νܺ]}g 8O inD_h\bA7LlT.iPݎ]$Qs1(`N Bpt)hdK5. <z3MRS63ٙTpP %ypgapJ-3Bwmj :% 2S7%g3Ztxk?콴-6˙1Z{=3g9AWCy b|nB KTBp4dw ~ [7Np 9%k'׊qF`ڿ_92dI0 `A =I :cZpwꇺ6b;#:s$ VQ'i9}ʞvH/\S'SP>|)kzQ4z5mZ5[䢡SXM%(̈́ĆkY5cS(W]*}`W^v磚'w)&86'",5t\ ;rowJZ0.~2nT[n`_V‰.gwIC\ʸ"٦v YqbQ5/>%mM15C5>n@Ά<<%.`#Y^L^,Nx @2`r}'KF[A}P2:N r{AC|U L-<4Q2 q–YdA0( +=m@?/H,Hƒma^Mw .>̠!V.J9UhUm6eja頊,v ?bS਽sB=*:A,4GFj } ^8vDM(Ts+#un 2{ī[;X]x[.= 3>tǎ ?f" Cd4htiq(ݝm1ޗ^B(55)Z8a-%YBKTP_,/8hܘ՞Tct/2)Gtf߮3hv=95chk"7@cqĵ6p<|y -i0AOP:c:q@G݂r8CX+%} FUSC2xs;rQZ2o  I @+.\|S@xm%f *8Cl *ڻJC uSX #82giTt9\UpЛ93Խ+{~5B6 3vSm/Ή9fNrg4X^9J:6Kr589LluMìT׫)W$~[qgVfyż>Z=cqCPW /TkVg `iAEy4c;ҎkZ5n! 2OR[v[1=e"KpDkYnj2>p^gtHM1kPV!rBmma$iE?-s.`emaa`MKGZJ^zD{prgfɏGe0āfb K CL찌xusӃJ eZ3ޚs*7ZA+6~479zi}8V_DcD; ǦjoYe /#@2$)"Z[I8zҞF Z't< EDVSP>ޫ+0V33x~"B5~71zbs T}eO|ۖmn&0g ~\{TR1 &Cs |ȤU[j c[uR"q)>B}} =$-īqh0̽-*0; |oEuɉYKB~lobswid)2dLsQQf ݮ@%CҾ\}DŽrD)ڬjHsĶLd b&j&KnpŴ-09~ p.^+ee]iy ~W ]㢀oE{de3=Un.5Oha%8;iO%(#zbKI g­k EW))wW\{7GN ij=n= ҡ?Kc&3A)tY+9$Upl =%P_-`Gt>"j\;;|U5 ;$0/-5ȪU˩Y0Olĝw鎔Gh忓i[bBJ}@15z90!< L hAΉþl- zRő/s%|'w]Eɤ~olCaGD &S dX9ӌX~iV.xdN[I:-Ѵ#3,FeQ Vͨ·RVdaxԺa+'7SY*n˳P?¿ Ti%AVGBI; 7<RJn[HCn;?'\=d\Pp| R}zSJvHwLAꚇ:w\B|WOCEPjw%ȯhep(*m6DيU==jFa-q C ?z93^^?Dڭ:Nayr\KΎ\r<]@24v v95n|\ LuD) m5ז@ҖqTd)vh#?^qv0鲏0L٣7\뵊OV нIՇWx֯{qI3{Mႉު뜖!V:W?N#F|wk N^5w d.yS(6<;#eDhl<ӵ$&a+Z&=v3,_!ƦMv#\k 3^*wehwMPʖt&҉7_4R}1H(1=V+l@Ge|_7[-kmm?s["á??@.G{)lFjsZ3ah`嘇:<rO\R\Hl:]ZO,' BƕZū,d VjC_a  j NgN4C؍/bUcU /uaj)†- +/*!ޚA; e!3xZr»kXgE*%2A({Y:~Ysse;uzŕG7'`:JVqJq)%ql Tnl5kvH޷T{qYU=~#vBfo*,;Bo٠HSmEB ]TSQPyH/[5ǺT U"8X zx> `%؆#uLU(DP|t Br媢i^6E_R`{5X7k;ʌMc|=m|=tI_#9ſ sz%FS䟮-=eGE#%qwWt >f_AXl_0уľ2VD!iʜ+753EUD\}i䙕+2z{׸tUo%bP㿌IBhWj7'*b=,rwZǮNihK2XNM@}e$a]c l[ I5ET':ţ#x3]b%o>NqzWgxm]0.hZ7ׂأÜY9?!$=Q|; tc|߈겫u03$ڌ0gv~_C #t =YL@כ\M|DnlM X7X:'v3 1y਍!jX;-I-LA [Z*#8w JoЕdG'0̤"kdK)p+O6c!VPe&f$:AJzn qLg)3w[`zH{d!.5/";8 $O;sE d`dXi$lc1;`9/կ7 g <VS(4.7vxzs+vrqO3 k6yn=Q)d,|w ,R1#y.T Qp& KsrK+K9]_ +rؗBǷkڴ}α/]FZp/Y^R*i~' rX/OsQȵꞭn@vT%[S"3ilHjG/Rj(ċJ}bvJv a08`XA:>vgXӖD#`b Ϝl{n淅jD7ZrhePYL6Rx%[~v僚机d*v:S+xsa,)T-'+e&6䆚֦iYb2  X`CWwɚ8*VEcll̀>Kg_|iT}2, TlJ5Z)\^w͑X Bge&ɀl0lqY?KۣQ%7.[(dė(΢Ƚ'Ц6]H;݅/`qVLPЗ#lOӈ"rb{L9q5&7r5~3ć$od:(dθ!]:G w!М%3L*/P6@D*`Z=uVe&I7)0y~Ժq=1XR@Eb@ԕesd.cs[3\V\^(nΕ(K'_ hMLc}w$FzAN ]0Nkۮz'9,2Ԡޗ>>iVua֯­S+q#SD4owL%j4K'KS5Kp8VWaukğ!d$ꛇXvIBòNW)RF/1Ufze !m ]OLa^Γ1m_3g議37[S\0x؃\k{bhp ё9"L"/B!ԑ8$IK9Ch3”f%z< >+ T7[>QEQa$21lVAZݠw_cY"L0 0KA"IՄuAٔ*Ag(iEXݘ,N@.\OǒGx&g_M &}PUJ f4.TPKjaݯo/X&7}Uo hv5Q < CM~biqD?NѾ&ύFuɵs*RgJR|A( 6lViLj7͒' -PuvPNy!sBaY+[>;DɁ*=VYīl~j$ٻ ?@-%vpqte1/ x:e;C8':ou ?㚪P銄|qȆȈ.5C,ݕB#{ǒxf"@lBi%,$A\ zcv=uǮKpdr+yvheH/t'8~Fm}qFS5 1ʘGL{Ssvž4HoBǂ4lGpu[soOmṄM|Xj ,܇׫#}v_' Eψ]Ehs<@ȸgP0S]nL ~OLaj˸Z~k?=1A;U?v!k4)"קځ<J>ͤp^x|H|sElRi"z'׶Rusڱeq|]}g2mpQQ WCwY&=tE22wvW4]vn?CMZ8ghVk>|7i#Ѹ[v!gزG̞Fw9,P]uԨ^} SN pS*&~!d^u);R?.nkoXoxlW)xە#nHVEm},tpLMGuRJۮdo/enAxWʷ ~Tp@FVozcˏ: ~ɡ꣙jPH\;Budb׺znqShcUGìX(ₐݣF w*I Q2;E(zdS N )Kua@s)+wuG|{4h3Ӝ1N/ZT@'CrڿZ+LVh!DXsbFEz M[ܴll\A{OBaru(/f=\Xgݩp(c(57O_ g5, óXv S*#d'$(s-Hwh:MZ-c+^_[%*PƓRbt\d+V~ D"Xfճfs$Me~5QIv$Į +9VfXޙ }w7}|v{ݖQ|5l4aF|@O3lq_&H jV݉\gg:Ip{DzCwf(v/?0K&y-%|7H\;rjpG tLf:u%H])~iqþI`Rs_պr#G|Nc3 fkl٨b4mCguޠSL ~A+ӞIu-zŒŗ߶( >!WCݶ$Ο@O0*Qݘt$BM{3Aeca"Eu|X0Z}d@mx}*/rpOѾՙ;n3f7Jؠ3^f6:Uin1w.#GgNNL]n Vy>p dxEn1ԁ> t: s]R.6D܁,wPusl>V..;׶|Y  hya2X`koP(Zٍs~aMmt"~8d5=~F :a\[{+xIBo$̰muQ>badr}iĖBM,PtVqZZ>CZs v)oYIJ ~ݘkdWUrum8d|>yL˃4"f#xc"!4[o Dwd^SDqMȭ2ȭIžL( C*Y;6-b,zr"ב<ߒ$(q-kLE1-jlwh1?q^JqwUq^~YzYԲss|+bf{`hV($Z HJlx{|4ǃ0a3S%(S\ٺ5T7bɝd갫jcYDR_xq5)S{ϕ>jOr{ IwA c3(!P @`>9wjSk(ϋc n`n<|kzB wF= d& v`ug$?!k+^ŵ^ yӰ؟Ip@CX^̘F&̝ogx8` Cp PqK{`!SVyKZ1/4TA=[2Լ#TAa/^3P)U*/%ƒWPu ՜gb(tŴT -@2O(3U\ {=͕hQpq&ePNtsO\xA{sz?ZvE-*A&Fp T7%X66$;{VzP:N q8Bf&EHۦ0[Y9 mߔOB[;ln}RT!iXF͊dzhVVh/뇞8<-RH*,KngW{CE!:8GPB8*t$n)Tʎ_zk)\TcDnngVv0.b\ 9z'e/67|ȫQ+ߧ&m:jlVAgqN1^v5ܷĠJ*SJOA'i|jל!B $(;b@86Nyi3O_|f\B$^%y:Nt < Pf HSJ_,ĵ-qئYFt3%ʛtkXZxaH5ʢ0X冸.j,tihO57#.FtmlY{bcv92|_UF 7fuNlFzY Ujv4#] P{ѩ^g7̔}gTD)HDj'!t_|7|R̨A4ӕJ!m[ە (sx-ܯE^9wBh&əc8pIe3k юNJh }~s>5x$9!mrpRVi+zh?dRdk_) |'h^VM &oJO05 A?yx!AsNQ6<wQ3;(7Z6PEAd 1;4D&*$0{ex6讁B%hZRܭ/&<)Ǫ 'Ry )к#R'<eJ\6$GP&YD趲mmlc9r6ȴA8٦2|Hl{ G,Go7JW ȟkN>raɷM&٘IpSjĜm6~T'8D@b񾅫 o'.ܜkG9%k_iO jM\Hؖ5*R S h4$/AbrЋ9b ;6ώjl D T=h.iL 54butZw )F&bnSjά>4.>N 4 KT;JVvtkQ}] u-xu $ipA9YasP2 Gi{M ]gvG?Yo.AٙioTOܨH>:K8{/ .$K 5W^/5!<Ҏ4>5WP0A77c꼷53zz͠yo µ@ JBAG:"`ђR0&GETz1t(!̎3X;n~3V>k^&:a=7%ttyC5x4aΉz=u`'oU!vƈ!?d+;#r :,FyL=3IzRP Auwܗbhz֬X8z`KH[ oZAh4[lDԛnl̤g mÄH7}@}idcq*oAtA]WRd7c{2,У.',l.jQ,u sjz@_!vSb[Ֆ~knmټy *އxɖb͜68o[imhsVe B!Eܰpp[ tMX4t/6]kE\ydv;4UHr$b|ZmÏ7<2ln^q~J~VL0=Ȅ)@ Xg|sUɳ0C|iF41OGLTU{0 _|TL. '[O&Zne7XncrzP2JšEc!^f7 $M᭠32;'!COG;(>m/LcܳE.sG2 'aP- ȜKDFNKeSlSÂF@6Z N)vBwZ&5% 6i'l˅>ω\L=d qrt!ݑ-xSU9G>]!'!z S|xyz[\CX:v 6:½4Fa@|ja/J.jTNރ T/%n.\" RF2Avu1twaʶZ3V-W%%U/ښհ] f CPθKJ xb\'uQt2G<3}IT)dN_{ Lͬ?)%ABl{9^\,9/7,J4W2w8͗(v'i v;g@+UwCP/[C)wB+$yB.ۜI|{)NezneόTbb*$\mL@ϝy`R-~~͗q5~/?6Yf'IMGFj?! q]6陋n«m1sŶ#ՙyӽ?[. F`pǁXQ۵a4񠥠+/PnS+.@3U)30n١,ʹU+t.CBGZ,R)wd2l>p-~7zvRކ=$ĀLE#Y^'܁6I~?ǟHoo+Sݟ-~lx+w:LxǗZj<xI~8tiU@~ H= y}fг K=ެ7,[<-uܻէ !n'4~ƿ9R$̝xq,M`GR/VD kۛR! ?cW(IeHf#~dDd=&vuZ{&e>qd,a+ɢ;k"bGoc|JSn$#%l'3c fk.DMoCQA_LE?u43b6 {_rI<2$$|ձbvG$P@ӑn"MBkjCʢP \O/"zo?00UgH#! [,_c 26aK;d1i_g yVE5-72<)=Rb"hYzU}.,Z2 틼&in%^:JIPsP**U^laR.O a_3bGU [2@V܆)Q;Uo3D%}ʥVƳx|@%l/!iC$-Z x^eUCrtN3OOG^\u϶U~HUrsI2|T ElYLn,'dΚYcϓpUv`#}P=Ќ#xu*=g}P>fl ?fjW sʪQdsM5D͊AR &?BWo>GCsvC9F,V&zj`<M!$g9 1Ŋ-<P_V~1Qҧ3z?b! =sqiSM%RP(hA@^"LLu!AG]y r Tbtx8vpޥΈWϬcȳӟ ޵Z)MV9X_%?rw\L7{ƚpC Qc6#_ j%(CX"6z v8/ <chy*-}y{ !}<0-!D[k%^S$a/lʝgi)р`̯3pj@\nɩ[ ٥9m0 "m7_MK pID=e<*|%_!̷'F$;A$dr'Xa@hY5q4BqAǺ-jxYã{sX!+M ¤CUdbcZtfO6*<ߗi$#X!%q*'+_}L0(֩k黡H!V7= I)Yd(2 j;W,F{ɔV>1 }Uci,G *tj ԙj~vG=TiޓX[0^3 X<9hM,M[?Hg~{34>ENt{݆V\O Dut*ބmfC'zTt1pGAK^oE*/ 6)!a4 [ y`_ kqgX}QU c=#9d8:7 D&bծRN0=[~OÕZ]e(!if-t'O8O>ݪ q$dmk34Ή;^oE_/"28ԇjHm|RS.b270ܵ?^c}Wa7ZjWŢxãx *zĮN硾#_kFEwvhYF[D t1R76Ն&djI@"-WY$ 4Jw$d$uWGg{!5(z@m,Rdh]ygT}폘ݞk `YrlWQQ>Dl}#X7,0SwV٠/+"AN BH.y8$XϗuU`|/B&4ix>Y=RIUTtZLʗ4sVSKn}<-2ݗoȚۯS{KaW)S v/o3pe- ?ӟ7qZ5L=#ך| `9p3#h̰>YaOX^u]13^ tH[UsDy]Z./{IND>ф+c 'T^S!}OmlpG²][ΡNg6Ȱ6~\b0\.U|p⛛%vșTb+ :u]^:H*Ls[=-I#y5<`+5f^ q_Fkr\f5LLD]FΉtJ%<޵ G&]:\dCiz:V|@E0B =ti,Ƅ8R~֙T; z߆nW}cdxMB@Bﱡ@xk#O;l>OO'iؾ>[9]7 O:V8`N>;Ͽסsc*oB7 ZXR fJhw))P8WP/M#K{BƿU\)a ;۾Ud_Ϥֻf_6.ԅ@Y@ |9CMC䜃|oNᑃ.;h>("y/7/v Z̽'F6 E.Ѩk f+4D{OZ%pE(r1]s}ĩe}pr*? p&GȷN_XZi/b7ϡq;,٠ZJwaqbŠ:j>Vd.•j <呣NF/xt>RM&ݷqM&RTo7]bRkGFuDO| zYE?c+ia~mHSN2E;])g8ݏsEMb;^S:Q攘N0~G_(ձ=I=E 9ne.SV Z']#JKQkz⮻o rwu?%*LƸSCI.3r@*^;VVd Q652d,/" Ց@Hۜњ^-Vv'H7o;q1 f . N S .js͊1zvc|&ңk*Jv:2w&o*O|u2 uqPS{ :SSi?Hϟ<%m $8)'Ŭ%D?.zdi20iӘO{?Y#M.h(bb.Q*нR)'>G ȭ+/&QJsHVc;] 8Aj(5zx7Dor  cjA_Bd /DO_]q8h2ߩ f4ne\]w\if ?DA08K)7*taH8|]-%;֣bBeAoEbcկ?^K4M^>iÃ;KbH= c:+\Dt^7|Wo(5`Mo8cؒWe#nם2rg(b$l?J*X+5' 'HW3 υTs7Z-KʴCHB\fHdxOej·@;"V!C~JKUvh^8؄[1V АQLRHcCLaUȦR,G4^5["( 8Ss~}[jJJmx,״i- { 3|=`'9JB0UvwA(}XͲ/AV:Q/_EamIs!/6+Qؙ$+!N˖|`Ʋlk)w[3 7{պR{cYe \3XgY-BFP\܃V^9uZ&KgӼ,CXg@!`h~~8vvР,FGcKCK )g#ۼ`{`~ vXoL˝[Gt9<ڽvR,mN| |"o6m}G}z]O$oNN5fxDM!OY?2wO1,\ac XR9oGWʀȯF殆;`nyp!+0[wcjVza^Jdq6>D~9E&^ *9(ҧLc8뉱m!U1h27 $yC$-N5.i@3Pձj S}澽p$n L>GO-aQypp%\/,atx@9gu7K`u&@4$*(-Wb-MCi~]] ?*:KttZqHhb}h+zs*~H#ҫ37KX̡fΡߪ{#]{OUhE``v"(( /9>"mH%gGFx6`5Tpl-\A4̏STt$$6FnZزuqKd{ R$!viH/RVGsDB b9ԖpsҲo.\j::ҋB[uoत-GZm Jv17h1v Mu8»R5/ude,Uj4XkؓD]׀gJ%p1Aw?NDwSljȉpj}T=)ROeA '[z;g kx;\JrkaIwψC@j(4 PPըaX5f}b5wȺR/Z茶@^(g34uf!z2W;d1, /zP 2DĦ`sn,t(zTl骛m3Z#hG~ͺEepʮ l4` g}k*k.B0e*w0(F8HraGEϓc Xuuu0`[k^q@ÉՓ-%ƾ.ȑ-`B+3WGХ`p deD}6\$T? !C>3#/&^a-]GE äRM[› x條0!+ KܠƄ?Av =A혭;e :3op59I/Rԫл5p@'KLFN p΂+<(:loE\ktM嶺 /3OcQ0apbOb/q;M.Fb(v|R4V_J_Q^7ϊ t͂Iy$uyKrFWX}xt-4}DE:!`_Hs%t$1qaG5P/kޗ@sڀ4ޅr,X 7hjq[yPnIޗU?f,'m\Kح=W(@ljr뵐-SLe"!r}SJur8}Υ/)lU$ ##~Xd%E#fL08‡u^yjM<(ғ ?ضӒ"3lOjI[ st-6: '.ὺD0ӣ\g*fyFW8 ="qb#>Q_)4U$\Μv߸h J<Ҹ:qsN]\9Vf iHmV]H?Jyh.8?ԯMM;A]\գk39دO"#4xѱeNX:Q:K3D%ua~IaUsȷ A^Ș0Pt<+)+-^ae;v6e 5$dkt g_a7MiGۖV,G-³G#7V8"chWӷ|^\1 S1h ?ጵ+Qq  .YͺCp((SaQ5%UBs/.Adʭ4!9~Z`{[ElF'i&a4uSlqؖ(un7f׮!90/)lty)PV;ƶ|5|#b>2jtϻ1KY,Nd޿fi9;| dON.K WSw$Dt.[mOW:''LWo0liHꧠFuEX__Un]k'1*WӕP`!$)^pv}beИt;FP ΦuЊ]0QK6&oA!]9BKZX$)mwltJN>⅌҂N@/ˣ-E+=ZD9[P!Yc3r7烆# )#VȇGy&zg03s/+!9Zms*W_}HӌuI>kv[/cRf8k`UEePݏeƓrU} DנD[CD^%1 ?acbc۶]I0Sm јefRк\܂sN C?IU+, H,zr+|㮞%Ȫ@.؜j/$-}n TҏQfo> Oݑ#+=юꢢxD9 f=XߋW#Y&. F;}7>H].reRqF5e];@W.]N-~aچ`;PTcx{KѼJ JPFfw`]ʣ>7x vMg"Wo/*ua;^bQ|99]1xNҵa3VVf' Tе8 1ذcu|lƎ< Cîߵ!v& O'{  QT:4/g̀4餂+ @;&:_.T,B30#.굓i,"n{8ݡ2Z`wxGnd  8{p)n;oY?3_e5eb ʝZ:Ŭ7:;_b,O%BNx5chpӆ>)wG8lOj盳<|?PmUK\^!ZC7z qN6z\wIo#<ۡ>'z [7_ȍ^1kmDM)$CH阱ǁF[AF?xVWL/镡bTj] +HFCom0r\L'd.sY)*{ ^v=ZԿBι ;,*̲ٿoڍ]ʿqF)8SQ$As$8G[| + Bs]6K4M\֕Ϳ_d>_N䅹&Yщ "L2 (y!tM?r>N)ɷ:8s6gPZ{EJb;jŤJCG:<첟}H̶_$|U0cƮ}xM&a=hVb5tUY+P20 O1h'V??f ۊ'TF4/}tOwhU6Dkx&]= C  `+~@=v6 ƭ:c@$ԃ\y,`3fTE}r*W\8>H#lt6̦,p1cUX8ӧJ˚OUiӺΓvH14qQAx>=fk^Cvc%aBk٘6`14B;fN PT,qoRU{!9Y}E ^V! |tLy*Lj捘{JM5ZLkG=yO<*C£XCz z[~!%(zw+ǒTjfP0= ~ЍLQ'qdf{,ҝĺ%ӀDg b1ac-mN*.Vty;%푎 &F 㥥fLfI]:, s"Χ40(^n!A؜Fա!=O;znEnM'ԁH_'椁r8م=Q̿<&+<Bi+BWxEcKkt0*EJ?` ˴ۄ;>^{d>NÚG֏/ 3w  EwwBN)6U RP"Ej9E5ɗ`sX ϋb"8`7ö,<$C)֓2w59 ~rJ;iۘHV)YG@R9| iPg=:#_p&rJ 5s Yu9<(N&YU1 ]+{t'0mB# Dgf3\؍)9% ó;rMy#pBܘ{y :hB")+I. 8T8p^ )ZhdYO+VnDj9]v7M zՕ3':Lb$O_=G/a?䔻P.w$Sdn:fPQONi\SổM+Y v3k-oQW!ZAλ"s;e唗Vcyoģ"m#6ڝnB;׻!??V @Ti$Tad@yu A9Xê[(Wq8$x]ȕfrj pu4-(T,/P/vGMGX4&VC5Dvv,7 4dUfZNBSq}lrT6+J^N6'W^h.)#*่,"ɕ[m1} 8C&2~ǽkP6ՓuP֗uT /Jo`d4[3YA1ЖUs߫!Ww5oVHY yqy/dPޅ)v[Gl~p/wVd)|pE(؆P,މ'`Cqs>섊xv>cEf67F+=31\|^(cq82[$52mdĠE RBzD@ZVG8ԈX_@gP-]bӎ!oEj.#U;l3h4*TI7DAP3d\h~,_ol89)|Uq[ѣ&$Yirn@W&<ƹ׃6ǨZ.hNa֍XtԪ* O%cQT 5Bؿ:c2%NІV)-<|M'EpN|{zYfx <_2Ar#" C*~5_8S+ڑwA\mW?Q8&-F/a;>&vgֆI#df>&<5oo߂:7.@œ.l Twn9Mo52ș!)SVPA,#˓.biro0y_)v=|r^UR"'Av܃ L@Gv 0]ϓrlU=Ac# d-@Hh n+K1[M:,ʎ3ٶpbۉ@rDtGUUFm%`)rCDXoY=0,4CR;7nD)F+\U6 P`NI_ns:rӳjr{jD4tIXDOE+@0g!ӺQHA$|׶%E%zlD*\ð`9IfFyw>Xi?j"M(P= [aqc9 k-'jXQ\Z)qgcA$ZLL.U {)".Xi8O|aCHeak/h2kXgclTui3ǟUڶnmI)8Nr }~Cͣ|{bR}@$˭+RJlyGN-EPWa*l XP>> 9A}#bn CbZFgzɻ.;(B@޷#娃°;6{E붞!O͒ ^{%c` zgЇ=;a}Br[.%٨|?:5xovq6+?]W6}>ߪE8R(쩐+ t^ss49]p%eN<>sF3S>1?ߠQǤ|nUӍʑNA$Yz03k9j rw* toGrnMYUDvQTD#V+*GUs2': - &|pz8J_]ժEY"2f{ʭζ Fүum\YL'ڮm[J\1ڟli3lX~6U8>ޏ/JKҭJKZ M)yG"r3bL},zJs-ɏۖQ˳JΟI %g4YA\+ȿFΒGFNQtu6DLg\S/2HS'ۥ-!9]&Sg1w9aAĔTSaCI>APlL,ڈ?07hZ0j `kT6JQI8zaQ!W)[b`+Dq/_"L =)I5Mț;Tuє3ǻDz}{ vBRjr"T =þ2>,^ xS.eUc S"Lͥ\6hMVjj|Zt5+8:l]> \h2Ȕe &G`bYゼVd2W)׽BFJzi7 PlX ӿN5J8[bXoN[  #v@*(fEɑ ?,oj@o/"88?lS}:,4v4Nlnl 5$u8\W Fw渞}DkRǒ'NjF[-\ݶ{isZ@M@KP{ 2H]h>O^7qZqwHֵ`HZI[|Zw ՞rSDmuN¡DZJlFqc46S%3u@rnQO  :(Ԍ||98i"(3FE`n:LkCkNjokA=N+g[-bTC̺@Pl!n58]ߪ.xk~bg ƶq&W?pbg{@egΜgO-KtQbQKs OY І!gAu ]$tơJlw,,6_aqZ&H_;UIiPPISwCjϽzΝV P)kpb/V u7)hxs1OJ(VISF*75+DmKD$*lZNA)H_;=ztH)VYhik%2C(m7mP`CUy d2W{m-fDc X6FsV/(Up~(RWuCMK5xE #քP%:X-XĪ?sW&Q+HĈ$#aVPf_ ?@WiμN$̋88v!C&V̢0>ZE`AMW9@Jt!1 QAc ™V/uJ˜s0m!#㦖QpK_J.qWcFBZHHa^2Da݄r*{r*#HƷїUE0T9CY} >@6gu LS{`vl1\O8Ucit9 $\LZ"g_E CEjm18(@ J  AU~}`V\}$z`Wgޒ V?m]h8,=8#O0ތ.9DL2~\kG]mHOY]B*Odng8W9OL@˸Ĥ֎ <gZS1l k#L /q h%k*oC;(\}@kPs64}%}uJ"R @g>wቔywU}w&6C9h:~F@smm`A_-@θ-l)1HL[Vc3AT_sY":Qn*h&' ._~G̅#ͫd{Yզd 9Xh"<=98g}&s܀͎/:Y5 bH9+N0xbT9\Tdq:tgK^? 'O m 6o'? D#cօ3KR=3 s{A܌מi鞱Qa$Ye_ěoN?0~Z zA',kmezQH~8FlYf3.7?VIM^Hu%W2vf&sM:Ⱥ$7-3R 16"TY>aY%Ωwnf~_>4(m1QƾIp@^6V@$f-ݝ)_ˌQJ( JݠWw  cK%3Yod'R bMuӇq%x.Rش.Eg U+ } ߆Ho,F"zd6Qx |zTG>D:Sx pXr<2&KVzSDoÒ)9` S){I۲K1V NsH9Tr+f'l}*.b_>Kd'ۭگ/CwۘR"J˞{f$8X=S|qP\Mk&dW-0ڠz٤&)nקxISMzksH-0eۄP 9t1S]"j o$1ȤTYH%ƢbE|[G})~7f&Cz#NDC䑲'.Lz)BE9nN@T eJd8f3Ff?&!(%}+DFy ]yMg>'N#T[}Co^5(( oIdΗycùF! yMVF(y{d/2[_Dʗ`0B׳'0;b[IVJoixf\G14p-#l"퓔VvVnۊ=֔PӬ<;/@K>Fj5?ݯ ?Ƽ/h &jo  7TxrfȓEoT=M;2n, ”qjLԴC_B"JB^X8ImUEY^M_!i\e3G΁~T+{ߐ`= JK..Hj@*yY,\HnYGb[QroTf  NEDm3(P4=T0zRHR~'p9^p٤4_AR#[h &t+Ш),tD EU\2KϪe}ԯ~1ꄜQ :iNtbK2~+mey؎onH^)S~0ԩlZqwkw0ک  }Mg˰LwMx1:S\捶̿G_'؝B:#S!(8]u((,ԤdTёq-R9tV(7B`BYQ\Qi(ӈbOIQ xJ+,蠏KZIA=|βƔG#Ʊ%'э),"+ f!eUZ`]$8//Wh4[hH :WtQϭ|uKJJi&=T &'3$wk _beWFxz2[]ᜟ2٥?5pzꓞE/e1VMK ۻIʹ' BH $DZߟSX cLjPq̰GPg#$_z (qGL5?@}{SnyzN: " o@vafB3>|rٮ9ƃ.<٤ՖiɔCr58#e|ŷ kH>Ka,#".!y#|PuGD 7j3ZC/s6" iq~j,+Ml;qr6O\Dq(:t9 b̀a_NRsA-.> 8,̬ݱݦS>Ro\BKѬF/ˑrm |I] O/F=('c חi ܸ VDpc><\~>QY_|ans)>QOxgc$Ω+H۴ɋ('϶AmDt 4y]ꢃZ%nB+*_;{x `ӣ 4%=]Mʎ >v>u3mlۣh0_ZPZv؎F]Z+N;:bz _];_mDkZ,:j7/k# 61WSDRy+~#4<;9ΕO8@?nxxIRv,U GXmSvݰJ,3WZj0ezmeEiPDn_Vrf" 9 Fb^fm)?tbt ܹbA*wݩ e$=f>UUxQZb/~)5[ȷ6s+;:1.}4kFˏ\O>:BP2NMD.w7LQzIʘ!3m.bx{<¹:2u(#f#r"SВ:%cUyYc4,c`%ᏹ7 ֥NUfRS+NGH} uݷFoY6^K4X%oWvk4wQP*{'EM=`‡P9zH}F0'"NC;ijigYQPd'e <8wA9yTڄh,&ZE'ʦ)hxKbC_Ϧ'Trh܄\40c\YZ taa!:,lXe΀^Ҏ~=qXZ*>zJ;*7E: %rzQ Ǔ -gyh<#\# ^A'^Z <)|Nm4fqΆLVi)(Q7gnW 8/%`cG p~MpG ^qPQl#Ѐ%d,"yv^[@N?}^/ǽFˤ{b & M2<\ zjj@qeSNL6:2,`бQZՕ.| أ`V/888YOBǫocOK~ڎ#t)pKIF&a} :—+Fx{uQ+ >bmdg_Ɗ7m^]ws?bt*z x9IDm&v]IEMkfcAd9unysWt)3~aPg2Eǣbd1+=MRZ̆2(M%m c?xrw|'iM)5`(npbV K}˶[/u9Pm-z1ېf_ ot'Z%*?$/2 A4,$*$orl*P@ZR.uzea!+*Qs2tTͬs݂)U{g($N=ms ^&/4H ZO$_U~8 t+lnxA}YXiؙ~9V2nCrct0\?\{cpg DPjJ_OsqM0]*MHJga/P$۵m{3&xТw-x wI%WYQRO ''+J2Ŷ5V ֚qy.-n EVa4>^HY=uGdGrQ-t.xX٪ٌvG<۷qi؂Z$gA}H][<|{u{w9T2:aROoa3wJԻ",G}=U=dYZH£>t瑣F]x՞I"(FCMY]?<" @lJ}{H:Tٖ_0̒'=q \H3)ǃ`57}TD<7 (b,2"z'H%sIPe H3gg%k`"`@G*yvdF+!bPQOޟ~=g XK`0US n珢?ѷ5%)}nJ%j(), (oJKn;~ң7:{88@rSа6WYu4vOCM)| 蚯͏Bip&y>tPɿ}RVj1^nQ3J4 jzu)H9iӵfŧF v&rsFMk626>!<(Sx)%RrbLQ@S+d)Z~$]R4~4S㗠y]DU(V{sY" NR=s"oq`N:'$E/?ᛁQRQ! *' 6&ז3 lY,Θ*ABr~ |fk.zw$BҖ3nW1X0%Ջيp$g5p뾨8׿^|$L*BSqƙkS\Ǧ-Mu$Kn{e;piXb1'coZ?|RTio񨑄}gJujZT_6=30v;(÷/zGiUU9qj$~`,2OK0 (x #X9/(OQ@kO^5E0L{ЗϚ{K4ϙiNp#+cQDޤ.K&|pdaj }; ݪGC7&GF<[8%Ӧn.৬pWJA=pHirrQ~ x@y:Ÿr9ѝa:AT.Yx.ZJsW:v1R[CԠAʱvT6DϣdlΥUGw <^.TFu<'VUy{?z8ub@͌ Tqos&0UIkl{zwp@]%giYl(GXZ饇ep57[Fhc1bqO1L%2`i[9|36;vra3K&v1m/ Uc7S`SRJ-1A6Y뷦 z`4(quӝw;E)&T,=E3-/[v`< #&~iu\|>XDfhyr ;/z<$h溊QMj{97qڨ3Drs-ecb;FA'xLIQE#dIVhKF}k7ִX 2X>IWd׽ç~0V*Ŋ2g2#*)peZQ8PYDx<A@ec:G4-6 XƜk"Q&O\+D |k[T𙣴M"EcyY)/\N*kdV- }dۘn.;xO!(4{iBR/a?Xha Ke_Id@t"3Ntnxf'Ξ -%,CKmR9uǾkƤ4h#f+P'|ߌ̺ `o"`څܮLTe1EDII"5q+Y<la q)<%4k R+\EzzwttQq3?ZIRm>v5;ptڳiLa4%z IǍ7˕[=;#WK~xw/6x#JlҷگYko>\YXW'8hw]Lz>W~yB?,"8Og[+L4xmeۍQ} ;9 6(F5q1ղ7 zS$Rs6 תaykDddrvHkg>0cMBs 0aKf/B5H뉧R. ҙeWA>V$< zx6R86y`֢ke9QCܘhl K N"O̕D4H;`팡k?hY#[fP-KW,X' h,z'&#C$b_n2U.gˬQ+DwO6h fV}N±L)j!|+O)ơ`oޢ(>!|'cMt8ks=eٵwdIa^ 7K_))29K p$/"aMBO%"w27. =YޚN2b=^ {y&4A njsS4c@TG"5hA;q]+kGۼ˚ +dvAa칄H݉d6Niz(2xpTJL*6O /"Or/R7KFQP1~.y(:?rq e# ƙ? w~:y8P5)veB'Jk|p!pA(&ZxʣQ{]e|ӭAZVb>M7Y 2 :0f\]1G MC@x'KAs_0>^ܵ-; N\g񉻄&YdB@W+u%WvHZNَirg|eY]r8 \Wiww\yDt+ide3 KQ%B 1@)S]4 ~OjP!9xW8%jCR9+ ΧoUӵv-Ú sAΎ; ⎛(ۗ(a!kq9GpTh"mxnJf^Bjb␔˘בԦ.)W6(\Ԣ?A,0B^<>X:? 0v߽ʧ͌cYfyw[ܘh S)bO)$ާ 1jc(;oY$*q>5>VdiGȹ+"t~}Mӗ8XujQL^Eɖ/<GM fZv毶E_2 ] u_=#BIbޱzt{9Q{y[-@3< _; 4(x@JّѨ2/y'g+Y+=,JO9]GjTץ]ןAWI(31#?d奀gO2 `@> S@k4Q[E`: C79|8a㐥9(]# dD N=rlŊR0=NP <`3"̇ˈNm3)EpPÈ[[BB%TH̫{uq 0 v:A}"v2HW  7^*.ƹ!FUbw4~1O EiK=^Eny&M0g +?'E $@ZSwk*jɜܹo_KI+E pU)4K4xOQAMdG:j:7C` >dK 5hj[Rr5m_N/pq]UjO=N(of..*blk*DW4ٳspL+  b2 B] {)m,R!%1;qF,!M/4,xK-0dM챈}^<.8R ). U|¾+[LSwݞ_7^`u4CMWhvx^q ]!őUdhrHnN> ΙbyfFO`c7#jz5|V_- .|"骻.1e`Wscl-S‰p?wtM+ټh}V5Gir.ai3@MV(˾^_P5Xes#C-L%tcJ)H3P^W[\e U? hg!66(w<}#i[~zs [cy_fdڜݳ]Ο|}Bt%]8)CM-$z+FB=3,^x>W$;hC?:D%Z|@5m3eJ&>|qOԅ$obyB[xYAM!eV<eOcD>IlwE7k#Ah8I A[IwcHx{F~Sue6)t~}fHu`.'Dm{tM?#-5-TyGaC.ydyv=('Nܕ!PL, vI0IF VHhEQ4&s C R>@4WLR2d8sYX7HǺɚD'>]U!u׋oa0;P8;+>a9 0H@1!Z=+޳^5u<9c)%'6 ?y*mK:s;26y"eH9v֗M yU$9Ƭ+0',gJ}9׸n)6'wP'%FUuSJXߌzf@=!v/63zJ%)X8M~y7g7m0wY}/kHB(' *ܸN"cpb+wt9paZB<D e `CC<.֬=魵p9>~1nB/*bRy'L#D<2NJ.@`MYbDVi >"3{-rl oqZ5Et<؛2ɡ&'O 0cJ[zCk[GH3O–ikQ$vxsX$M|t->,-}o4#XѤ&OBrh:F *Pc}"V`t /FbL4pϊ22qv LXP9q'0b{o0J*oZTE 3 wM)ni2[5>_;w+4U+ȜᆯF5p$c}4 "`$$^9])+yxe=M 3kS“/N"Ⱦ4n߰ktlU ݲ@A;W}풶'Ptif>7Vu4m 3edK4 ހSJ9.ܵşDK{Bʶ=錔|@6WG5r}@x8 ېY d+G;e3!xZ"[bv ߸N泒}85#;<)nU4OڄnYNEk~+ KYta[)y) rY낎:(5ڸ2?*.jQ}47pݳQ[oKܪRoϥa hv,xIRO2h~(½{Go1I+r}Y;Qt0,V#_70U\`kCJr.Z"0lyS`ֲÇxh%ͻvDz䝷wDJ^v@?)XuonT,`ze4:W0هB KBQˢ/[,⬬!B6eh`1.?'`tg(c.N*BUOs3R./nؓlg Vle]HqWfHWN"lYi{ٗ]KtM,UNR/]uFܝ=FD*%ZC^v ߰»t,$E~(cNo^udY&wр"wg"%ps v%Ec8$4"TW1>+xJ>0/1JD@.LAW,,\:%ofʱ74WIdP,}Αй2u! #%T0= 8u]yX(k8#ܖ*"ۉ$ =zCbM6a  z \r\J'{7H+ ^<߱s\%w.6#Ye&=n[9AgP./+s. {&րaRtP%^Rh2X;SC3t^ދ6qhǔ_0\wA D°Xnr~J+&`Rdy\F#nĘo$,$p[A^i{Bpֻ3Y*ViMLSAܹqWhE~K㿔_4'ŒS2MSNz-˶lx<[^L09lF,(xVk(.4gAZLQީ%[,M'hݞdӵ9ҋggFiP/,3n^Y5ж@ `&O~Ŗdsٺ>KxyqRwa7knDFe t:9vwRɇ'-84J7H{M8Y"ϰ{YVP;P|9)X4^ W6oI~UV݀W}+L,Q,' nuk<23<ar9.J0'rlFjkkO(*~Ψc F *03xd6I#C 5,y3'Ofw1(YR57 )G=`2܍y8b呧 `D^?6 FUn97+/*c F,k&^l=h+dNxԃ|~_3y5FD;f7!Y_I *sam}Dx.Vw0&sh{.A w&lveC5JM~UW=AC268  %r" mz=ጅsMv? +%/d0[j2b%֐Kbphpo;)`$&z"`x ܰ+y+)Y ƿ^3QZnk!FP_cKX- J"aI۬B .JydO7F6ȁA[-VW|Kz1Ǡ08>zN~Tj\;Cjkdgdh *kn^MN5N&)ɏbK_s5RʔmG)s97zE_Lh_t#3lsPH-|U@͐-mF( i{DfԒtY/kC d.W|/_8B=2@q(x P`TW͔ٞaĨգ@a]@p ,H`+o35 iɲEY"RL}UX6Sj{i=JmT ,ٟhEn4Y>cޱ&uѰ7IYKV1\c`רfz=Qx b]1#5aߤN۝:* #+ /S '#i<0MB\aIL0Ƶv4dYXFLxh'H`TH$$Xm3`B_;M{I(d 9 -U"ѱG7 "j ivguprPXB)Q:`N칤!P;/vzM'O~i:E:V셗 N{n/Ʃ`x A)-Di׬pmqɐXlqDJSQ&' tœʆDViZ]7bqYlh$;VV@Ɲ [lGι#3]HZNhox$Q[r'rwaCbStWkT vdxņGBKL2ƌ bItCUaQIyMWhcDoU?u(~ѝl̛Ns|O~v؋p+^ڧ^R %4ӭ}4{u3 -D;Cznr1RYٗm` ed44[1^bD6 t 8uhu6 [5WUArcm^Wt*lʈ|< Dm(c#mh3zwXgcmR]!3c򸬷r0 jFvvmڅ[^/wϥfWf ;~kHpnQW%=5Mgll!1.ޭ-$ɥqY$FH$vB¿J:\lc˫vb;^=V("(|,nJSUQ~٫!.pKh /O#bh+%iD""-dh'/ W@Wtgp4XKWI_)I,k/?(zT 1}??g([DUOoۼTGfR]Y'm ȠUP A[DN_c(M Ӓ 6(( ; UvR{R%8ƾʅ_tر°M5rB=@cFnE7ısnѻ"g<'޻{1NV 6q_Vۮ{nyӏl&{A8l)Xy0uW02_Oy46 ~ItUWʪ+<&<ޭS3>VD  ;"iP ɰHc0<>kTu>.A7t1_SeL.ĘnP}JYp&=]@NzWMl5:1,K'YJ~H8#BRϘ^%G~|2fUTy8^"Q? a%iMKN-P| [4*"}TJt)>ZY6 u\KI?}w>ZV<Fh{ڰkiI_ p(5rEH̃( |}Ksϥ{=+٢g{1H2ɚ/1`ݾb*$]MUME"OM:JK<8 eÃ@0j`}$b_#ehE[qc-GMApL8 @C{zPCؼJ > |X A3%~vxf70o x%<9U8!R`.̵Hfʡ7g%aM$X|pQ[W`o$ B1\|-:k<OSZ,tbyL"Xc;/{!VSW3wG5R?2t?ͧhJ(NXV59Sm{> M_ZjA_;^ 㑲y{^N42H1q54Sl}h)y1]eP{2O/BסU&1"Ue>c-z3o2G0cUYSx%41`U=Ģ?ˬ{q>^HMj}9Ng+X.E ]~.cr*VٞeG63QHj7|J`ȅy y َD~x4ɂC*f[˒}6|/CO̶FD3Y ]?5`i.0DV0OQ5GGOE,]"ݎ>iu&.<$C[~(;:L,-j/b¥EdoĊ@Ɓ}vG7޹4ݓ]}_83-ͳ2J`ݍ/nRpP`].ďfє4Fץ3R. w͖ǺgDZ? >X-=ٵ =4;[D 8|<6S6eʷ 螷-R@21Q0W$f``؆F揲BF'Xrv8)S,c4f7us ;en"6AWg+40kS3fkݩꞅ͜@"u>M-ֽЯ a.D"]{ڍwO-Q_P3_K . ,[[S®S6҇}!-`qg8=p]rjH@IQ?u1Nj5$e5=IaPp0oh{m},  .'e<-tOTj H`xdhT%`nf CMnP>Css(ΣV!/xBS-"Ege`9K)!jCO]vR4 oӸ7eoUΕE,]`Go°~ k=dSS:j{7PI\NU 3RhxY\ɔE3V29w$)*KzsDaHӂW9H1ǎk4 ؀!e78 _E8MH%]; x=2-L}|MDUztV/$&eb`7O"M- @wLh{kyim:6j5Lno݊'eyyd;PސL#QPdS3F匬{F>?S ǰt;|+6|v ˍW&g/NHgAoz/i$x.7Ū¢Y X_G S<{k&6B-U`9L8h]_ ic)E7ײḨhUɪE_.L#?:D՚]kЫ,e2N(k]<þI* tbl[!/°=; Z,f$$v`3+*4!:$S_H7 J<0v_μbT7pajɱdbb)zF:ԙ@IZzaa>SF>B-5q ./$R^oiuu7+=s7Ve~¨3P1&Gu+Q [+I}N`#q̜ruSO15h5 Ł9jh#[ _6414[f|"] E t~R#8~و1[!\VKzC1BC kAW Iwߴ5UTL5~l_ pTb>&OpOAkYwtmGecE݂efM/QB_^ε`<V+4}Oq4۹ ,/kd.1.[ nuŦ E3T @I{@tNAtC{l ѵɞ˂5x^\ѝ?E*f6>mhֺ-9(SٮفZB[."e4M`xS>Mib\ڄA Rgjj ? w t]*ID#Z`7ˏeK@IA;8- &_TS~U^d#sXX(^I̳l;Pq^79GHLiS>~U~/EجL9Ї(3c0o{B7fR$z>xdnQx^LJ[ cͺ\jLS8BBo^,N7dPd;aKG>"z7" VaJ؁QP 46^v } @2T{Ma$ܻs  VeMdNyO2Qa|1MʃrpF+ R?j$:8nRwjA%e/jtTHkYB!fC5sQVnc;Ѻ'+^}Gߒ;A%. +M)ӪeN)teڊl[O໡QOpp#jd1&J˛~g뜿jP,C_pןU&wqΆYôF&n^>P5=t]q#["d&m'n $!_Ұ*$ Nz7PpvMQa&%R}GCVп/u91msc'E͊XD:^mFGzК*(9AX+9|@=gJBXFn,I&zuv9UZcBy40gɼ턹Qgѱ$D;jVb7PkQp Z@/Rg >nLcznF-߹r}@gK::C d&&#u>@1W'j}Tl,L ^FjQwnku`"215kPE%5KQ?R%Ķx*+IU=Ң$j:w"M2a`26RA%AgajEsƯ,ۿD&݊#P'>ֽ7,C6>6)![[M=F?\C^@cIz0Rem*. -axhAasti/gv&m^ɗ&]9gdI/Fe (P\4aaa\va}y7 RPšh1гNiplbēPG\"2(ȯ0- ?@X/eJdM{* wOBgœ;,I'zk +5ˋFd`'%޸hcF~,0Dii8= %z gfX*3k29BaQTbEMqtZAzBZ/H%|tőbR%/Ꭸ6%7vJwU/5ɮ!^ʱ1IQзQ>#&g;|`1FpOak\?Zir\$j13>rϛ\YV]\:#mR,  ֯|GZ0nw-mTAܶ`X5]9ree#B/\ў .#abv! 1(ꔇ&"fxD=8jӇTyTSYZriV. ÄMk`9ҤuA`Y|zbCJJhunWW+ʬPKO+vAE(- TqJ}ۢ^*ضmy`ԙ$z.RԇQ5w`VNf"k+^hV\4X,JPoO=rvb\q|qjMM͟JG+FTE#Ei'2Fp#$Xy=fr:2 ~o!:2~";fׅ'{!CF\Ow,lS)xW}NYćD1A_.?,bc $1,Rz*՟`x#^H=݇Kn]e\ރAp x H-}ޝK /ob@,:;62Gc5a(檌[o&9fy@ELfs^@{` v ؄m*[]\8AU>+Lv_SrlO&'U#v)(;\-ZC#BF~R<%+]'%mN$$v\2=3Nk6 +!^o[p,&*4k(`* ɠBiD`ѭ:3 Ҧw1vԛFO.A. >6Y ܢ_pe_ L;`ZkN[Yz/=>&`)({<`LR̫R6Pc&o[VifތE<K΄g֍?3Zhԓhؙ۱`TN<8rޓ X1~̄Ns(B-R UYo\< =&d*+cѝ-‚$f2ȍRS! ؋:18Ëyjutȇ7NRS:1u[LC\i|%B_%0mC{HcU QTNQ#4hA`t>pN #BhiOi tMY糁kyU$_W3^'|s$()g=I4M![6YUEg'qi$bT̓rv-Ea`p(Io2 \_˔P}`Ʋ8F8i@m5ZsJ?e}4@exXՑ׋ZZ#jS(2[tѾPEҒٝW "d>7є :u_=iW\(!.Yo;(޾|/x-,4 h0ˠy}!\Rl`bk_#]^D-i `ͩ[ ^BVRfdUa^eTO I\1d^nݣƼ1I9%:)vJRɊE'٦†Xy`#UnV_{7#hץ9(g$AA ݾFΛPӻ\ϺeE+;Sdf+44k48kűhuk d;3K7i{b10S ݔu5ӜOoH,cۖzhwjfÖC|Yb6,ʶ `zZ0s8Ʉ e:ςXAp]\zكyϮ@Ji\'kj!eZbu5߼NBrI#w~|.t4< w;5;b3~4ؾ'jv+A"x,bwS-748^IrP%7gZr(/[>M@:x&R[̕jbPX}G惛FoP:Skv]i(ªbI5F*{ ɠTgnq3aU j$Xϑ52RՐ_;Pɶ밹.1Q8ةEvERc_GҾJѬNIv%6)m`,dlt4]hդ-,]ܘ*߆Sh3$F̌]L qa?% v] >E0(p Fd+QVUHD]S-sh9-/FKfp;(T?*{ޖ;8;a񾩋QBD6 2]FR*5.rey[1q }w~Yrd1Xxrr#AHmʪt(x he 6hH9[E~{E_+&w]*_0axDH^skpˡ.'GֲmO{f({Qk4 tGzװbG%*!FWrs޻lw EIf~S Qj E/Wd'rQ=EˏWHh$xQ^~;)p0>𽹯M)Ҳx.4Hk=+8OW*>em/9/3bb' ],cǹ H.l*DJ&O_fxir9s;S;5'n*}KXq잩1G碘aVIESДWw u_io+-xlSnBυ{h 14_GfǽkzTJ2wJx%{6/:[Κfޥ.rL!VY^TM a/kqۛVI*PrVKt52nIPДyŋs& }&n亊$wܪT 9\__94-w;OĬdFuhZ8lzhخa@$jzj} 9=tBb<`|'Np X\g g Dj~j;U 3^` ~WBZ`/܄晥Hp4jo{ޤ?JyHEiK5bzoXO բ1*ˁU7?8a3Qd^"9?$u\ ju0uO'.wݷ)`_H7\ir_2OY&]\6HUR+x0zzKx%h?1tCvXUux7kIj*t~R?=ƣBW<]Z.?& Tȳ~7%7˦LB /pfn3q #$voru1Kl`{  5*m-In;`EDz}0^7Y)dM=\2H>\s!3;C-9Qݐ̏(TQϪ]Z,WR?x(#ٌX) fҟ ]V'/ \> }2)Tp,+i<*;k/`l-&RQ iAZXgfah Y_XE ȥP\^V7`8gSe"A2k^ati,)U V"8N'?aUl8ȈTI1M-5ϩ\ }t<|qblUG t/,H0xO:ff+5 d*j=ޞkGT~=ˍaQT!7TF!_9Yj]|6HѪa\s< pF{"tbtE BbEy^~,:&",y˰%pߝI=.`̍@¼9GE-e7izH'9pfm-F+~(for_?U3gIF {9XFlΛOr\Jt(5]޴xM cYz)m]nϬ9#xKwtKYaؘO1Vj"*8G?mWDBI3Y1Ia ,L97"M/.TGk˒6Ac 0KPP83_ԤsysB.\O _x0Bt>~|QuTͥ"WgDLG6?]($\Fx-i?5!|fvr:@m$l||FVիo dG·H>.ӜslWSߝӓs?9 EE$+QDBZ/˿ ⪓uqQ܆'#r2z ضVȌ'$͕/1jb0D^c͹#9l$_U"^n[u!5&:g aA0( ZU$w5U|U3M:*ۋ;O=ѰNTgшqtJg:-ߪ#人"+ӝйDY-&)3ay԰UGqgJ pLϓܢXͦtJ\t4t'#u2a*I 7~NOc|!0gUGq !pZ9IRAr]z\PM4_.U\qR l3@8׸̛y@hH(ؠL0RC9#_"yapj{'~VDl[n> =Au I6 C~Ԏ[("fjD+ңO1'TL_SͶ ̘ Xk2Yu:kRW4dvQ+lϰ#ѽLoN7Zj#[-'L=p)$ˠn:%O͹M8ߟ RuhǧWЏ^,]T'&狋&wV4IbE8B}*=9uy g^'Se7ջÈOAq#"^H1 lQ.2^+F]0oҥ^ikNxe9 ╤(nEH&c9̓ R%XpͯC=I!s'k+_Ӱ9`[*BrZENfogާwEH q쇣;Ό> D.3U|d5q|նCPW0ٔE\sʚ嫶8P_|h~%)ɦ*]$@aKqBMyS׳9HQshG8aǗFRU s]C>̝0 }`tXtط;]׆'$%Ƅ|YT5`@RN0_% xux:722Q"KxDok*"gӴZ#;KijNӊɜr=^xVIJk1PC$s .| >d3*RHv%nhN"͐v+BGΤ6rvyu^3ߊg(` GTX\mʰEp,Ԇà$E|砫xT=vk2(?j7,^J3gp=2*#rꯃtұ-A.||{=FRegO0Y1ś8l2ŃnH%ޡ(X`Ɏ nֶU 3l[^ h[Td9lj 96&Ӽ{e!mZ Q]Hh2d˔05'|5&;؏@YrX|m#`zώ :"hwM5s}bXuԳq-IGoa( +~ܑkX@h͑px,eҏ38@so$ZMؠc:F!^)R8>: . ƶFzZ&Ut)`'529o1r &0e#>sl+Ȱz%gLxʈgS㓿ʻ"zbGe->~ \9FHu |Yݷ|U)x\رCw_Ս eͫ#h7}R]!QTf*:K1QU4"P\D v/4`1hAnKPŎ)69R>1Ȅ2(\? kHX]H>u^jpqU&SՅfv37 ;~hb4ǫo6UY&gw8nndvB]Ȼu̡ ^2+V zr}]q)1.0{7QPHq{ͪ_7TS,:J"H$i+y1Б i~Mde>ԡ4EL.MSB431fWp<6'ڕ/\igHCbEc0ޘC_ NĤxVP6*}~Y&%Q7pcaݿ(X@b@d%w9eÉO jdj㞵$!(_{j;od2b -vC9.tu?~O~Dj\쯄@v , <7Pq3 OJCw8X{Է:1)I_~ nмn3 ~ܞGuc1 \B`,ZwBK ?ٹ@0C>}= 81=D%ޘjKOmYq{)x&gAoIo޴*I/1]Dn6?''PV4bMw[;S t+D 1aͮᚈk-۫> q8+xB6SAv0p՚ՁX ٯf)*W7DTb Ya7y9;Tw"m/YPi5Xs+U$՜ge3Bn9U(@M]τEbvi0ӸPa^o42d{#hQo56[/u(?(hMFSPIdQDྎ. ✸!U}8f߳nc\nM"|5Vr-ӠR^'(EH<>W0w$>On>Aqp"STPˢ1#%}nARA> R({ݓjM|`Hң>dΊ z%f.h.s1Q2/}HyyV}RƮ8·& N -ǒ$Ngc'^`H Z?H2ЁTfkūZebR3Q/ Շ52%L ߉0l]/ ^,+BdՌ sz_lfI%l"ggkߡu1BGqHwjdwěgV7A٦hp8-Zmϼ_te%:'C[.]U=I pGki1l/`az) e+4`w=.3&äJХrT0f.Y4?S^EoFR#Y0=$"k(ڽ `o7I ;}{P/=#6zr KcycmeըmUIaԝ}H,j-ٗw-q0'87kU=cN5y@s=}AKC>i*_%'xq;~಺:Ks|$-|W'̬( ?5Y2jP;,fp׻Q_)3<^{Owv8p zm{A0 wF XD|g5#lPcYIMߕH*µ{oBLoe޳Հȹ cY<әuk2Cr~`;q(洐cMe>V&3iN P#JLCԬX]"yKm;(O>%ڸdX|PY1M 5jѧXk5={,уBmwB'+8|MHsC9ͦ\N=%v\yWbUB^Q"jR!jm_!͋i#byãs>3tjmaڎǿ_φB?gT!"5N[8Mts%wIBU`Zs՝:88:^AsH5% *SDw#T>{ɽa`Vr\gvuƹ4UuX7ݬa"cJt1qԌ䌞h3ઙT1h1?ۃZI}bňRl^' L1e053%IO{n[pV!i|*eyO,>%8G:ϸQ"] xX9+$u,w뗲=1ŌgY[P> +0µg[=fK|ˆfVWxnۄW"rg8DHBUاD,AQG_p H7INza|Ԥ/ɒx֕{ئ}q-a Sr!nI"Gڜ9_%4qgrwk· Z֙Iv8+4 'tmI͝ͱM{lh82vc8#e5 7˧ڝ pG^F3+ZJdّ2 5ia= sڴy!7pr x`>2$'EDr6G ʤO:@ EF~SڃLd|YJR R7U $]JfQ!0@Y~Jhk7q6K- ^&}9H_ࣔV6h3K2lߥdw)2}U5T %;,p'Fb+SS(=30tYtF⧏MOK[kMkGϙ5~蔆> } ; ODa߂0Z GUPMAE:l%)Gmx迮Tjy/rE~LӉHވhA,{/c3؎jd5'܈HÖдtixyNERkSf(o` ;I3d0Paf*h 桹)ųd4)φ9\#.ۢA{MӊcHŊTWS?_B@S^],H(/zM؏fkO!*|nK$V>Jjpph BR1/6sR<%BPrqpUc"v" s{HJáϭ|MLWw4*DBBjg* Bx}wi9(Y 6685z{u4VBCB j=t2/˂>^I[7:]wMY3d ј.+ۨ7\cQrPJ2 /c-:7 R{~ ?F\!(adU<[H>5S&U:7?ݞU?^}<,쫜/tYJ!]Ye"zo X9{ !Kz(n ׊u)LgrV"%ߧϳO 5udvQ}3]EOFV5&(cIIHz@ߴ*0L@ȶwBm(ߖ2N.Z&ab U\?>Jaw;NHvScpb[X;!M"Mp~`Hp`Gw0 vM_!PMt@^R|=UOS|"x;:{b?MK FO4~X#NU}|*'uۦ3 6\5MĸR]+,Qnyp ~}[w`<ݗ܁*eIׯh:}{%>1R?C|ڠ;+jd p~yدTL MPN&^̧XijeUXf=–Ib U3 $: t `& ñwwC:ˡ^imd Qa/L?׭ [Rٜ8m>?'0ćVa|tORv5CU6 ~,1dƂR.IASBrkL1,̄= oFwԗv WTo5eŜ#9>>~ X=/0Tk3+qPzUvdkai^m$󧨲 8Q9JY5H'T3+:TKzG ;AQ_=~f^*c+Vȿ[߲}r|QbGxg>p֜ /k.H'Q ^&> }%\y_eS#0cbzY)$䎽$62{\K-ڜٟ!Sd"`.&U ?#`.ƁbX{L/xU U=T9FohTj( ]% & qO/Y^!Y?N x}6^49=nz8_Ŕxʾ3 LtX"~Å /Rг! KU,zIJ2JE:UgB7ӵT qiR-YWpIF8{C7[CuYqNy/e3$GX&_U-dY/eiYAolG80RW@I *ܙ*TOD/3ܚ [%l& jpq\;UquRi dxr.FPzlTsfAD/1 ܄PQɞ[j}_ 7/Qs$ɀI jVKZ=cW>$W #:i΂)HI"/%5L.e wiȼ۟$DȂ ј+#]Co ^ڱ5V^1ڎwxԓYưh݂0E-7x LNBGgK2IܝAgzzjK]5i Ϡ '?c ]CPg06[S֛vaY}/iS=doLXKzx%-ucgS'ʗ1Gxяȗ})ꐃIemr߰ <Цp?L䤅+:mmAw4a3 rj1f'ϗ3G3bcq5|_#Em7[׭)Mq>'JC4`J=%D!QbS=q=ʺ=HMCcC! mS&џFm];mwU^r#Ma:Ԗ5I`0@Tprl~:qWC)KD̴yń)j@$B#ݘ\.1db> G"*Ř䪡xPT&nLE<͔6aY|J 䌞fy :Fy6M]Q,t?V7 |`'A)qnxܛЪu/4(sz.OPBUMGt*q n>JOAm5JeZRg ))ql@QLTQO;w#[FZgjDk3WU(x[: N2\oPuhjszahwf`rIm%Oos723Ӂ=N8FЩ 6C ]':R< @٣ں98,T&7׶ӛ1A&rcd[Fe90#)whց %!OeILHefoc@"y deԳ;/wn."ѳߗ)$:a tG>]ܶӋ"#ri*,t9wU[ϯOeqŔ,bMOƭɇ5\H9.?8a ]WuY3}N)d R9(L}$;VU_܂;؞jPɊ qk#b#J>~ftp/ɥDGXV 0qRxlInaG/RmUȡa3S%q_H,I[7z ^kR扥lOMC:_,^ 5WEͤ=3rүF'fg'{DPTEv둑o3#xhVZE|!oOw+Kݪ \χ%Yb u}q%m6w$!;𰴚c6L_L9Crm,@.릚d⅏?1>nFJ< 4m&1} [Ҁe9mŋ5i~]@,<])D lnw0$LKbjeWƌ:D{l2 z[u2U, _|,QvV c-@=q+K>(a&sM刚KÊ} M͞8D* t%ͰA,0D(ٟqTr:ud ٯ۪yv+P*RIb|{N*> 'U 'm!eXu.@mKkSʑiMP) KQ/$->ϷxdyOy69:ye%-%l)zyX}[t77+*H"B Q6컼wj)S懗(u&f3_!k |a}_Wz(&ıo*?. EMH/ט Mw:ņG[jC}l2<Me`}쌔7U=#zj-!n5(t7uc雬taYiuR8OG?1n[ݍFcwQ 1䰞>joXnN ;RE!bdx.Iޗ&5.Ybd%BBNE4;w?KS {5 L?7$x!?V_RH?0ORF>ƗFEҖlt4 |6swdX 0aшj( 1z®x}"NwÅW_OF#h97jge+KLwIzmHw 3ZrAc\ՙ6 +?Lx| qRdLK8-¥C&K0S7\o_{@fn+-s(H &:+Uĕ(qkߖ"5e4ذw)Puκ/Ȉ߼.A(tH,}dKh)o0,{4BEUNzHR*nwBHW I$I#4ͧ^py2+bשaS" Y'n%ʆlē^ ]ɢdEU^dc&braN9͓Dfz:nq# AqFK~ḎmOv`y9yt>b/kh(Y4:"Y8hRZ.ȘvDgA%S/df%ˉY Qx $F}/494HщBՓamGEr#ϼEё  ?MPP)%:ܛKg ݴa"ƍT1Ԅs"TiH= ޵AMk ?pL͋6T9DyHW0KGO h,)Kݽ{QƸfZͭp@RPR #^}'r*ys= /G=#?P봱lCnEuZjpfc;4i>ZsRL ē1'PԖ|0qD& fuנ+bHH7Tf7e=Kp^tFAǓpUF %eHGs=O2د{bq#4"~WEJq:b189m#a\FH1}b:m2R@L?vSVWFƽ9exĂ D E mvEdN( 8`7鶊V=aԶyl.Sk1Bv7ṉ묰r:nDsރ Okí4޽!R`#Vre9fރ6N jKM hyԋ5Ll>>ZlH O ވe6xI77Y*C;Ӷ@|AȒV0`mGq˺Jܼ+'S^gczu3pkHZzR6GS*sGv{>P!YG[{?AMyIy_YI_|ڐ1KYaS3f9KBXr?8bBrqwdB?#&ŁZ~ISlV*#߶C6܇ɟqP}TVQcB3Tu|!lPxE,_ 偢ooDV?@ˤ[rwQ]02Rڄ͆Ww[Xū3)G~?C!+dN'zU(xRzӽF*=`,.(dHQG99ᤗTl£&c>(Yl:;]A[wU`?4j]U#׾*;&x3L/V;>Q毸׷5INwRoϒ1js@L?:PI< `]֥ }g)Z.TCF.*@r죭j~^uzϲިfhۮlx{_ڶ1$O`)aʺV幓ˆ:Zi *x 5H?4a3A#bk d!b=LENjU7;^R$o*6v՛{;˴[)Zr`-AKѕp:OV^3R5֎i$_wHSd:'Fb(=qy.K5!]e`H9$277& O7QX֐`[H: H<լheq) H 2T6l"y - `@U9u28Y؀5 G,-a!; aBʠMr@2O 1<(}Wd)hJ/jbḃ*C䲤[ E0ZUb jM*^A96FIG"B^=(.>H!tWe+4q;DnI!=T50aYtD. ]o4 {j=Dm.$ȵ88PLR4 M;jG߮gqf͔T`Xa%R4Zx%;P &i`"6.MuD3>NfGDw qCPה)NY3fG9riJZbH=u'O}SګUG;v Jۭ/^VY8TlNf3e#4rbNqŖ| ,y{\R$w FPJnR P CH=QѢԒ#70``⎤qgUݮ,XRƫ߿(vX.U%H.5~ha෩GpJs-7 ~n?n_F5` 燽/Mo t@ey8fJԜOU$e63#nM[ZL?(d;؍=t mցzvQc lZCI/-˕O  WÐ0da\_U,(0`88}K-![J,|Նlyk͈Ww;x rk]`OK~C$\>ʹ,y&.Qb>zʧM2,#:`wS|Ed*bV/1׼veQ]ƕ<*7K9ErB׿ JBk{{ a~ ܠDu*IM̏nRDyUAzp k/9D穃-ΰ9(\Lka6[? }iT:77\ǵ]>C/쿦h;3~ M]szxc܁-yPL6xh"_Vz6@mJtD1t%O춭OrrIeaؒ}^>|q ? %ǔTl ^_;/*"EeO$'p]o`Dc +ty'YF1[mN*8?t0qjH̙:O'KHU>كކl &"J,Ze ׺tjjLe0ώ{]85B,|8*YL\mY /\nC_a^8S?_9=zU!΍wCj?=oGekԽɁ#';Yd: _ȥX?%pS\0bHozyɞJ=QQ7z \}:hbP0[sI>sIXY=p.y }d#>vu=2cHY|Hb!eqlDlAR"hy]Yo!͠4o@O83#v  PYI~1¦%@ulx2"(㹏Z xHsi 8k#e%y4Zt,)0?G֤zwr&2;P :lU&&51cP`0-:{D `7\h]2TǺ8r3 2[~NJ>öaek~er~^DylDe6 wG nl:1Gu܏{VOڝ d+eF.ǝ:7r|=)Wo>+| Hc/9 ]`Q1rVD1[zzU) 憁U&*G RKP5N.Ve'.J[?뜝Q-4iUnH $CbhͮMx3s\>:‘jXrgQH 9"0%X"7V'}8[8uCY]7ZW% P63p6T'N}ͦ3X"S#+!/ksKněNGՁu&Ƅ7f- БPY evӫ/ݏJYs>XդV" t'}Q9>eQxire|ΦhWVd$`,[.wUbK:*"H|7aj$J6wVQD̊-,da @P6БťǽXuN8@J*Menb!;x5[G,v0m|0.&yT$?Hr2\MD?Ͳ,dLȨs7G=Rt2֥h2wP`|ƽBE,@Hbv _)=!z>h_AyVTr~Tz<"5=YģbGqd}Ic{Yȫ)llQV[r&(ٔ</%yi򆣏OJOv7.Al9kKUn,J׆pLr  {ipXy0?A&O=NG+BMnc9H/0ԃL${nyف)oaIn|.|߽'SW2i >;yD*(ocRs;}sjfxmܞUi|Ι|]ŤɭBV7hyuto[` :*0຅0\" O2g ^ab#\bnLq{.>|~. &hm/|?ͪve%y^nm;G(qb/ %NS^mzt`\} Y/@pE ڻ\p׈C|EHщ Y?Zi.[ Tzb?{ Lc<|03m~:Fּ '>+ Cu_b,[o,tcAvJ||)#gr+")l1CSޕkP"Ha Vj` +uyx%+[V==-9rr.-8ED!~RXA%=C0Kzf e=1\rP#pzvb]!v}eB9yȔu@6 ܘ98Xl&t 7GX~,} *O^>[3e1tTfǼr)7cЅ`ft%MVJh"<v(I<6s%lrkAuч&b}2*l,F{ːHRH|K20W!;ֆ:Aap~7870sNzex1yǡxʐ(@7Gf"=8!NЧ*'\v,Xv* 34Z2hޯ5k2g$5osD ˵ƀwIKWI23p(/^2{˝C \& W7W\5>H)InrgVn=DR y^9(/n2ɥҺp[&7a_ݟ08Fݪ . Ju7F&o& a)T&JZ67HɉWwKW彃 coKe n; Uo i2`/+rg*]>aS1WY\D;aUd EF%є|Fh;KB1I+7{@)gN2WDe,wiy Wb{JD@&BwX熭XJB ķQZ6Vi`؉a6r5Y4DFQRaMm/EEܽ)xaySpwVb;p]c-*;}_!T/\!l˜@Ń/ZHVEH{`^w ( Jj '黺P {ܒ-ǵ2eAz>&I|Ҵ`6lFI@aPb5 &sKN˧[QשJdF`* KtA%(]rOxӯ)l^췗&CS|b,V{u>0_|Ą-F!K' 2Qem%K"cF(˥g=K+ʧ)S Lq;\ƞxDh`>QVlXtSAR:(=wW|ab)X/EyjX\0w:d~kxzI5A7l}wPPv'Odu;Gs0˂2M/e.5rŁ'!>4_b4NJΊ."/Ca2~+qؓ`?7?J1( Sg9OP |0&c툰);~Ì6; =i9S3kcg ɤa:mrA<7׳]Þ,MeG},oގ贆e)ɲ}34Wޞۺ;7 7/ iB'RD Y7 Gyw$0'oT88,J)N;3"XiΠ$)a) F( B ѨX&`ҁs<53]CP]^uu6qFp=AK<\]0JYY{ K|wpynݮe?_V&j_AȠ{]aoԁհ\#jvxUGm`,\ڷ1]itcH%VMQx3&| MX^k0q/J6{EUGْdW|RSp2P,t?+ZZ1— %AEn ٴ'& [2>jzA 1_v!˳v 3AILϊ=g먴}1" N 1Y8$ۗsա^D[mf LR: o}L 2n>BpnN0E>??MBƢw' =}RВV0$\;c|s$\4v31":u@7͡z"~d!@NQܽ-?p_8yLO +W̴Àɦ,ћ/bܳR<7mZ&qrN mIDǒxHOr) ?(Bd0ZJEkWQ;.APK`JTkYE"E)WYY\fi(,tޒ#A :$pLׯqmh\uPf:;?F)0:3nbdMfQaGcl̪ZlHٜ՘E7=7;5,|G2C|ef`8>G۟ ޱ`0-/,Z Kl9U\X";2Mx;[ƮsKTY;p%K M22 psI w&5]\ ǡ^NiUu'T,c` %?!;`%'IݣteDƧEc ]B0W01~T ]|D #d[0v$I3FC!ht=2xvİM e |^ra^X%i3[d,\#NGv0 UKJf]'778$Hj{$INiœROv:ϟ'2 < w`#ۿ 9xCVݜ ;&XGv6h/s0s5t+x*|B3.Թa~Ϭ( xU*؆;6e^2CF zR;ETp"u SLjc_#[N*TDOItncK]<_?ڪiҋgf:baPSK"c-OPWj7( -gwt6hۚ#H65TIM$CR:m}Vp%ތ{&EO[lҐkMȕOw5{uyƚX/; z= h쬋(|#P*g}mQx_[v^6U|MDeQhX-!jkohxp t(L{i'_+Oep<}+QIʍWN UqYkP񊣇%)P\qlҜD{v6>vj]ۘ|V˜g"0dGGyծe  2=\['GBm1?G k-{ u)ȲVi guK. }勂we%TC45Xv$EN g;o] ^rm ONa#OX@?^j1PjLYyz>#<(V:Wo`h`1b=IqQ+=ʜI5ʚwP% i`p,&nXn#iMO<-ܜT*B/CN>ڂR8#Y- KZ!U;{k;nvU,-l1My:Lޠc7/C WҦkjjoF h HR&> Yej#21HHfE,Bڰ ȧ %Y=W;o%e4wJ"S9u:1 vY6-ӑ͍ fL '=x ڗb 3/ac0)V0S2! k<r[\HTOVcwetd42eF{s]Ku?y #e "R.9ӀH mgW0DNHg_lb&67&SjmAl/kqd:e${!xƉfyQ !xi2iSZN ϓS2 |-HOZ) -+Y6΋u ՝de~Ș:<3Y2R6Oqi5vIv4pmO%0(# ZJnZwДڐF'qE.q RN!xJ_}WqU-E߈-u%놕ŏyx>Lm5{W8UXd3u{\.>ȎdmZmph} *U!tUIPDh09*+NX<PY 7? 3J.^p2x-^EΜzڋc-M@v6Mat41HȐrvcѹnU}ǙцEWmw I9 s&4ũ=0 n| qwH`%$4ؽtt˔K3mp~/dLh ^dFs!e_".jqt< 7/M&|M?|i^gSPG Y#кC^F,yn{ X=&n|mOzfnXh\1B8UNtEԍjr8݃Ɍ0 a à =fd ڕ ЅrT&Ģlnmڭ'Q{W_\1~S JoPo|˺mO*)a*IUWjOڱ;$q6-\fvbno@K v[v֥tБ򌺹?d% ёbj݁cEaXbjE,xKX >iSv/d3?0u Ao]>b O-l|gVIԛ˻­u`㤵n!'☝ǩr+hD^hwGX`l?2jC!Ӡ>8i7/-xg3ל2A].gƶ(Wtfd8Ȋ#SvֶT,|u'&4AfX_}F>g[pM#&j4h wbwl@,^lQp^SNcvcx]^oVن<,dJJc.a5(W# Qy*j/K;X#.͂qb 2erx\m5>=辩|ZF(|!ߌ`\Ա'h悿3Ə箏8slK*Mz\|nl? Їdz_Yr-M72 SJjnZ)aL= K;g(^@mhgS=o|™5 V>>KR.p7-<8͵smi_mZ9np~SdQLt3KeA>A0y>~瘢\ozxf!Z7#d*~i(MGPl.'XWu#iҷ}RI_N̫]p&5׏ S6y^} |Y+ X}B0/\5WtT[vHҹX) 2Yͫޚ_E9dxۈ~_ILV=GRL`Q9#)[]<Ѵ$ٙ/秺)&…~K(fv|dW\>!HK.+0%֦kpc%(#qMXۑ?1N\\%4wyiVKH 6h\h#yKpgģ?MHqeH_|K5>1c\C2(|VЯ7]]٪u_HLA9!XNIQrW-Z;SC%[۲omeP1 79x[ Gy@xM"bd|}`CE]q7/I/dtUfpmˋBKv upQ:ED3pʮr5LR*湮OqZϕ$i] .!"pg< zT@j0e 69P7-G~%v|8k^ (H^3;GsU`sdQ;ʌ`UlzEo?t^,j s j6~-y?GE[] .L谟f&I.aXoAdS6]៏KrA@J+w6=*SzF' Wu%u6`IRJwoMQ|{eʶ4hNoT4Om>y3;m[Jjg 1Rџ^ۭҸb$7K +ќ$|,-+N;C5 _> t!Aq zGo]0;_3!?v&u9{N?7.;*aҨCF/+R<^A%H,|bk)CF;,o7QD3~UŢk(ycѿd;yS$*lLI8w-ZtdLaakpOPgN~nf='N f"v#0"`NA`: WcɟaH]1h_t1u-A僳p{  DcizM=d1/BRM=bu{>J;Px0 TcLM*;Y-B?с]߬+o+7Sƥ\"SC%W6Op !e'a9oR_6;/by4뤂GfaSMX>KxKSu/BIծ2x[ɖH.7efں,cՎn0 !$9.Y0AרwZMid{aMĒ V@첪)L=I JZ]zgmOmwS3m>@J$Va&M/ [KA ÏZ,Gλb~a1ҪEzq t-*b" {FNip7> bY;+̐ ümr(DyӁy𺦷mر~o+ Ul^oeq8R'7W0<wl됁?$uK_da ~$ tDvx9]иVw(teY.8u4ws<phz>'H7f鳱rzzCi^v's >&r_cN.x@9k[n)>ܫu)fSFP/A?g*ڄ|5qq3^ i uA=NTmTC{ pJe(p/c'UL0fӔ#p5$,$ӆ\x t~idLlBPX u[M eI$$Lo&s2N>L}-J񲘏;~_lln[}8EY#Y煺Smۇ>Qmn> 1YY"z>;ʚm8=`{Q=!X`*aVRZv> 1u wPσ~1ykB_&n/u>"8R xM3h*M+- jn"=<%`ܷOdqְhWfkQ$;8}p~im&wVED[ JX>癊9M& @B"!p. ;>ӻI8NobCspq:Ve']샘"I+%I5D/SPVu @+yd,#YqjpB@WU͌Idh\`ĈmǺmK!ܳyڛ>*BRZ.Dւ̔<I]J̜R=,bN9Q+E5L™>5,sU9qsWyMlcјBHFtܟ!2+_:mj!LAqKrwkhۂ lX<y;sObu,R}- |e gUBiХ/8/uW2j>,ĢJEP2VuGL,&iE"D8p@m c|G !lyC~>8߳VL1aO.Rrݡ|'-vNR,蘬DUYb.?[ࢻ u+x 0BkMաtb[F}?IlS W^$DYW./:spfDavg\r7 "co #J^Ҟm q/a2$ʞ#J|M58^qHmkƴG!+/@z pH#s(&RMc vjzX?k-?f A~16)PV5-Yx ,"e|czZ&,A$9*f1lDD\?B>痎m8)/(B1wvP,MҫѪx'Y7qrL:j{^jrHX߲}R&L/92@Y-l. $lg{QvI`iT?#Uճ}f7wm7GctVZI x=6>]uH\3aW7G꜓uu+sŠUjIZnPOR>`uS[A PG5 l*> %UJxf?4{|FhA!D9p N>1qE y1X?iŔzGC}0`) <^}R|^cjO̔D-E_t@EȓѧC}MkܝCgI:IR0ؼ4Xc!@|43RQHvIE%%w=kHzװ3v-Xgdž]vbճZ=JV4X MFԬ@I߀Wّ9h=|66`~v9_&V U=jKyK. ꏓeh2?̿yD1 B&#S L՘:#H]c'L/ ? ~ p!8{tPgꅘd&ml"ҝf oAgH_ /4/`OfM24=KB3q.1ۿO0JZeGK'AD\c<_Ƅ`QK ٗT,yL20~`~8!5X ť$g* Dž%2#7fwYPL|HB6 NLe)pD"tR/܍PROAB"3-PE}J¶*mЋ̇mT MiY%+P8BOzEU Vɝ/ZŲKJǎ d3nv:g @AV0m0CAr!1j`%3npL_h]ϧ+ha^BںR4q =zF<1߸ ppSN//h*-H P6\,F2؟0Fڼg 1{0~ C$fR=z1P/5]Y: iSq>]>{5žfujMt}:Jv nl)(U6K MH3괱LwҼg6 bZ0"YKզ,I;_xmcUieJ>_`# |C&kYӹXn ]%y^bn427'E1[­| f Ғuy:NPqWAz[MW{K:\.sAţ^KYƬwHĥ8NLل|R-unr<!Unt]P~!.%j|Q0'z[`8,XW/i֩|%礨I3'BHEZr-&< !h6:i0(FD'W2*9`fRڶ`@GҸ@l=Z1d`VxpX3& Ձ []|^jEc)X%)7o"y6BY7 ?] Lh26cl$GņU'V:~|ڎ.nw+P(W 0j( lVh"_>d29OZgR|mŸ,a zY֏3V.ux2c`޲#!ψƣ=u ]UJ]`Mԑ+&I;)?&qn&쩣n,->U1CA厤`d_j[syI΢!ːZMzCz9f+xhpۑ0g8{uP!KMM/r&N>ds|t~]lPPKъvs|ӵS5#wu?1Ϋ63rdI.g~{ _`*ddWuTưz`5BDM%W(;XG6? Ja/+ ;Gh2ı_ ]]i n"m/ ؔw8J+85,,Jx mW`ݸpswn.,7Ob @e-\JD*GT;R\<jaKtn镈'N c[ 蜷,E#ELS:?%xdr*x'@2P`7 ؜s8|`9ca (q͂R`1=Tc!,AڅAk_"d "aݞz i2C%N(BWBh|!"g9?0bZNBRG`uxM uUW=ǝ8BX8tu O~y:*&$|❅q]0) (k8ܔJP܊Ho'O|<4t̞gxEg uBC9H,p:Ot}v_Dτg Ux~D[DE_}&*!{oOzy( I^w/i\F '<5^Nᕷԛ'.蔠H!BӭԄBv$Cz|?x?\4_c[|)"x:Q[ @%)Dk+ =X~ ™>1:XJ䳝 3M95%"rDBCA]5XVĿsnޫ x0F撂GbL ^f:W膼KyQDpz1LJ F ` ]_Ƃ끖%e}nJិΣs8sdb I1Ps*kY~0<# ~ 2ԣ>TK]Y+jg u@^ k Bn=(lX,qUϽ)!|ր $ >=ݮbivS7J@HI_XZ#"=\99DUI3O%or,)L Vlp:B6yh?3/a];=@dJ0QOL}L.ٍ0W뫀'&mEn 1S`ݾ< ǟgN9gV#qNPjh1h6L,CFL4Nb,`k"r_`aםq즠\#ikZd;>>§BO> #ZX?". )J|rΏG&e $p/,%dZ+&`kחKP 0s5\ٍrL]ݜ^^t'n ,Bݽd$ݱ"z%{,n=.AY˥yM1σD8ZZ+:TQO%A!a-ԆBSuE#ij$ң6ɤlӂ‘" SgRN+[KK_aMI'L%{*;lNtn?2'ry\R_b@f{GyELPq`2`)"t~¸vGS?P HG;gjX,y꼬76&}ayP&ma,h=A}Һ(|[ZBA榡ڍOxN}=nÜտMLe 5pٯ/fO}-co;}KyIZ9;Z9UvoqEƼ='1eE'c{$#_7CC/x$qv}c9!Fl:CK#fXt#x2[9^55[$0B4ߵXn1XT֍mrjKwqǀxƝA(ۋK?S- oFˁy]zVC?5H dr},C۷*%bS"q﹦nf008RݩrM 4wbZyz<^2{"}>r8 _ /#Z(SEn1O.VEJx顖!_||-IL6w|@ w Tdx׬05O`?$]r9. vO"Iz|I@*1[6_TN^t9t9:X[ LʙS50F sq毮c*7֦0q0vl j{&A!rTP.&I?+@܇ӈ;_C 5Rw Ъ! JN/ǑMU2a J g$߁~A|%ɻVƴ! | m XV)ƍ 34=WgKot^7Be]|\7hNx`k3tJ${I_K]3&|96Au5tԡ_ʨÙի1@cEI%IK]8\M>|Ƣj,SbmqltՌ攅hy-6AlnSg/`M@ё/,8y(+?- &@@N%Ψ]viO@W~XU 8{KTt\'Z55Exް6SkT|Tڍ]UxNwMHʣJIw:_nTvm'P4`mL)z_/2a{EE[f~$d7SB.vVO>"cu2W}0ᑗfI (-&"XmȭV\'f`+!/պ;mfӮ'i@.Biϛ;,d{ܾH$qy2];jWvWKk/nXLаրc!j$ 8Xk^W`+nTwVf7b*^/$7R_E;.y6ԠnUJǾ?$`.4_DwLwu]n.BƗ'S|M0ѪjURTE9fS _s֙|Iaeg.LJ T 󱧢w2T{Sd}AN=68zHAWG~<ܧZ4/݀*5͇` E[\̷RMz54Xk@%6nO 损t<:4~ $WֽR{@eG'C`iBʰn>4T圦gbhDYbi#Tc I# g:Yg9F f"]#5 ׆P ` ϡ{w~dV*--1jBȉIL)kd]珹VɂpF`eڎh1}[SE\K:[Tƴ OqG& 6Q۸c6@~tȁF]tfg0oo@RZRL㰍hH`C/=\#C} rZ+Nb{fދX3O<u]!0~f~ h.* C+є@YƃU5V(i :@Lxy^3H]$ѐ}NPANy0rIb$&o|$$}4̚6=𔁩dEv;tJllaxU@* Σbd imflQs7/1|lݘ.uD{O)D(Hg`bt1$浐;(z-nV:I rQTA6]{s^` kVlr369kz11j8ܥ%85xj2>$@4mEY"?D (LJI柣b0bӍpz=[S٪iU¤?r9[i[cO@8sO,Ttq.딆Ӳ`cm,=~9W~.IpXE>;@;4ȧKLMmD}Bޱԡ[X٪UdQi 2:X-WNd,?V ٙFo(b%"$L OxDD=sT?ϱ~bjWcx?W٫pRe!wpDw"hL o_,zҌBi véX7Hxn 0*d=xld)5-u%`}n|ꁣC3<C!Z}#}J*.߻v|%Ntq.WWAi'aD;W&ϤNХ)(v1OԖ#^)E%N_-7OܟtJlW3GZ_kG C1~n% vt?U/u#;_jVSOI=]8|q#67OK6x,f bf'NH:J75h*Hb8c*'Q퍎~82˅e0kzCsl1Jz<0L=PB®4,!J+0P*|ض(p 6dG:)O88eVs'ɴ\mޢ1 ̠]ԣ[4Iĝ` lvc ̆#\(5O;D7"07:%H )V$5PZڢTEID[/+ 1Xp2Y<ٲmک CBO:O_8e|FEc/YWGі#j3]D2q.scwU S7TT}o07׏^?|qÃjumP ]59y,}޵4C2<"B[ـV^g 'ۘypIg>FE&|B:"K|*?D}7 Ώt4칙>َ5TuyY=4xbD7!W"?Bٔ/,chu[}9 &W{  ?ϡUe/ٵx:])ctВH'ډ$>.JIp: 2}oEdn6JG2}_bpI27>rV޳2^.prC.uDA:ŞX:،C2BH!PFbx't{8yZD'fB~ ]Dv ^<`&S}3j0+Z[h*%u 1j[:$p:Ҵ"$ NZ ĉ}7p'y^2G&V C rn0ZUy0p;-UwF(ʕXNzJ m4zl 45)*< gyʕZ{  сBhMW5e7f1wK9zkgJc= F8) pSzjBw/mHxiYPh_ o+ Zs2>ҝ^∽,3"(1?|Co3gS!@F68 Ի`G? =kKنۋʦdR Fo&cvվC,Oxx U- ~z~ !Dgb-k|>,M5Rki}:X`bg歟uت6h@X}%b 18 21>J:gYjc:VN: lpEd_x|D)ơu߹1 挴/ S%:5e[!W8%$vm!dRElH?[7r%X0+=*fx|yv!Ouknd1آ}$,:~E,h\%mP s߿7N0GrVmJ>̄36[(YJqV8hWRu|O6< V\Vi::Zd_8Ou\G`᫿8twbN!!^՛\:NG#2۱!s|O=X+؎)3C[-4> (#61nJUM^|-g6 !8z i<[yq3iV"~e\8Ş$.\@P!ټ]'.u&r2i乿/6 Xe./Q初3[N,ONj=- Lڶ超Ƚ&4!JNUby'F# \ERK(o2m@þ0X+ǸN+d  q"L>䶂xMpIfnvJ/V.jt%|tcбg8h69E !x3+A[1jŀ!盿xm5$_[C#to!^m2]B͐a,cC!T^Y0|6HUζP/a4h1HEne r5Ku*̱M`Le% QMS$R<뾪q*7.1|^9Qg)4\ms y=ZLp&m9,W3to^ 0= uUMt.v)2MužwCNĞ.^Od UJ$uhbn4A[w˝0bjƀ^5wÆ}VN\Vn[p i5S 1O8ym6T<]eeψ}^qeX%}iK47П;klkGcVx|{ab` 4P$<ø[JUV`l|x/\UE/"H~GMQ#4,R(9dD#苮 "'[+IЃҎ!1^a:o= [-LJ&ŒMXHGU\s˹Y=5mU}.~ФX ϭo$Pf\@ KGaqcj'F!ʽ{%=tS#iiQƖV@v58No^Cl2- bP] !dS'dj,?Y٬xnvWTM]q]\ >o]j帼QP*b_LS H38OHwC9FςA L]8ҥ zМ*.gYgVZbޥFuZބlg:bC&*BkzjZ|NKS jeZu/ ^JDPH*,wFFLRqIcGg _⿦C@^pBWmɓ]CO%8nA׺}CLXytъ@j~bǎsMUQG S[7#撶;BuK~ZpFQ/Fs` !Xm SQ12kJicw*t+  Hʧ5LjFQ 3 HY ŗО2bb) >nu7ɔOp'5(;itu0пn[~A~ZkA{gF$2onQJH(#a%NLk6-ۿXSLKkz421{L\QG%yH֡]o CUD!TY:,ֺ8nr u4E`ƗL,1yv).u8! ȜϢ'$/)HdyyЀ&IяzTNOHD@HI ,V+^M@;*5ڃS׃"dǽŞ$cE).ۥ3 SVh[2SlT`U.R̢()'෰pd=i+:c4`m퐏:Oc"?{&?!q[J8Z*9LITi@5Ki ?m*i*!"IDz)=I̻G2MHbH*܎M.g~*E:c|},(s>c>{ib,,Ҕ4>`%U!"[~R_񡶸cZn|&;(K