[pve-devel] applied: [PATCH 5/8] switch to submodule build
Thomas Lamprecht
t.lamprecht at proxmox.com
Wed Aug 21 17:25:23 CEST 2019
and omit the 1.9 and 1.10 cherry-picks directly by checking out the
submodule already at the v1.10 tag
Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
.gitmodules | 3 +
Makefile | 17 +-
patches/0002-cherry-pick-1.9-as-patches.patch | 776 -
.../0003-cherry-pick-1.10-as-patches.patch | 14716 ----------------
patches/0006-cherry-pick-pmtud-fixes.patch | 6 +-
patches/series | 2 -
upstream | 1 +
upstream/kronosnet_1.10.orig.tar.xz | Bin 462580 -> 0 bytes
8 files changed, 13 insertions(+), 15508 deletions(-)
create mode 100644 .gitmodules
delete mode 100644 patches/0002-cherry-pick-1.9-as-patches.patch
delete mode 100644 patches/0003-cherry-pick-1.10-as-patches.patch
create mode 160000 upstream
delete mode 100644 upstream/kronosnet_1.10.orig.tar.xz
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..1b90eab
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "upstream"]
+ path = upstream
+ url = ../mirror_kronosnet
diff --git a/Makefile b/Makefile
index ceae235..953f4b3 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ DEBRELEASE=0+really1.8-2
PVERELEASE=pve2
BUILDDIR=kronosnet-${VERSION}
-SRCARCHIVE=kronosnet_${VERSION}.orig.tar.xz
+SRC_SUBMODULE=upstream
ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
@@ -22,11 +22,9 @@ DSC=kronosnet-${VERSION}-${PVERELEASE}.dsc
all:
ls -1 ${DEBS}
-${BUILDDIR}: upstream/${SRCARCHIVE} patches/*
+${BUILDDIR}: upstream/README patches/*
rm -rf ${BUILDDIR}
- mkdir ${BUILDDIR}
- ln -sf upstream/${SRCARCHIVE} ${SRCARCHIVE}
- tar -x -C ${BUILDDIR} --strip-components=1 -f upstream/${SRCARCHIVE}
+ cp -a upstream ${BUILDDIR}
cp -a debian/ ${BUILDDIR}
cd ${BUILDDIR}; ln -s ../patches patches
cd ${BUILDDIR}; quilt push -a
@@ -42,11 +40,10 @@ dsc: ${DSC}
${DSC}: ${BUILDDIR}
cd ${BUILDDIR}; dpkg-buildpackage -S -us -uc -d -nc
-download:
- rm -rf upstream/
- mkdir upstream
- cd upstream; dget https://deb.debian.org/debian/pool/main/k/kronosnet/kronosnet_${VERSION}-${DEBRELEASE}.dsc
- cd upstream; rm -rf *.asc *.dsc ${BUILDDIR}
+# make sure submodules were initialized
+.PHONY: submodule
+submodule:
+ test -f "${SRC_SUBMODULE}/README" || git submodule update --init ${SRC_SUBMODULE}
.PHONY: upload
upload: ${DEBS}
diff --git a/patches/0002-cherry-pick-1.9-as-patches.patch b/patches/0002-cherry-pick-1.9-as-patches.patch
deleted file mode 100644
index adcf1ee..0000000
--- a/patches/0002-cherry-pick-1.9-as-patches.patch
+++ /dev/null
@@ -1,776 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler at proxmox.com>
-Date: Wed, 19 Jun 2019 09:17:04 +0200
-Subject: [PATCH kronosnet] cherry-pick 1.9 as patches
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
----
- ...ther-exception-to-valgrind-nss-combo.patch | 35 +++
- .../crypto-remove-libnss-3des-support.patch | 74 +++++
- debian/patches/man-Tidy-manpages-215.patch | 297 ++++++++++++++++++
- debian/patches/man-Tidy-more-man-pages.patch | 47 +++
- ...net_host_set_policy-parameters-order.patch | 27 ++
- ...-errors-detected-by-newly-added-test.patch | 41 +++
- ...e-minimum-crypto-key-size-to-1024bit.patch | 35 +++
- ...eck-to-verify-doxy-header-order-and-.patch | 37 +++
- ...or-message-decoding-from-ICMP-errors.patch | 38 +++
- ...udp-use-defines-vs-hardcoded-numbers.patch | 36 +++
- debian/patches/series | 10 +
- 11 files changed, 677 insertions(+)
- create mode 100644 debian/patches/build-add-another-exception-to-valgrind-nss-combo.patch
- create mode 100644 debian/patches/crypto-remove-libnss-3des-support.patch
- create mode 100644 debian/patches/man-Tidy-manpages-215.patch
- create mode 100644 debian/patches/man-Tidy-more-man-pages.patch
- create mode 100644 debian/patches/man-fix-knet_host_set_policy-parameters-order.patch
- create mode 100644 debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test.patch
- create mode 100644 debian/patches/reduce-minimum-crypto-key-size-to-1024bit.patch
- create mode 100644 debian/patches/tests-add-man-page-check-to-verify-doxy-header-order-and-.patch
- create mode 100644 debian/patches/udp-improve-error-message-decoding-from-ICMP-errors.patch
- create mode 100644 debian/patches/udp-use-defines-vs-hardcoded-numbers.patch
-
-diff --git a/debian/patches/build-add-another-exception-to-valgrind-nss-combo.patch b/debian/patches/build-add-another-exception-to-valgrind-nss-combo.patch
-new file mode 100644
-index 0000000..4b60b6b
---- /dev/null
-+++ b/debian/patches/build-add-another-exception-to-valgrind-nss-combo.patch
-@@ -0,0 +1,35 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 29 Jan 2019 05:33:51 +0100
-+Subject: [build] add another exception to valgrind nss combo
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit a6746007986b9324760822aa0190d035b8da7352)
-+---
-+ build-aux/knet_valgrind_memcheck.supp | 17 +++++++++++++++++
-+ 1 file changed, 17 insertions(+)
-+
-+diff --git a/build-aux/knet_valgrind_memcheck.supp b/build-aux/knet_valgrind_memcheck.supp
-+index 8b3f95f..e0f49d0 100644
-+--- a/build-aux/knet_valgrind_memcheck.supp
-++++ b/build-aux/knet_valgrind_memcheck.supp
-+@@ -588,3 +588,20 @@
-+ obj:/usr/lib64/libnss3.so
-+ obj:/usr/lib64/libnss3.so
-+ }
-++{
-++ nss internal leak (3.41) non recurring (spotted on f29)
-++ Memcheck:Leak
-++ match-leak-kinds: definite
-++ fun:malloc
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:*
-++ obj:/usr/lib64/libnss3.so
-++}
-diff --git a/debian/patches/crypto-remove-libnss-3des-support.patch b/debian/patches/crypto-remove-libnss-3des-support.patch
-new file mode 100644
-index 0000000..c8d1123
---- /dev/null
-+++ b/debian/patches/crypto-remove-libnss-3des-support.patch
-@@ -0,0 +1,74 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 11 Apr 2019 13:36:56 +0200
-+Subject: [crypto] remove libnss 3des support
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit acb5adb7f3ea6eaaf858d86e064a9b3fe477ea11)
-+---
-+ libknet/libknet.h | 2 +-
-+ libknet/crypto_nss.c | 14 ++++----------
-+ 2 files changed, 5 insertions(+), 11 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 0331b1f..d0c90e4 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -617,7 +617,7 @@ struct knet_handle_crypto_cfg {
-+ * It can be set to "none" to disable
-+ * encryption.
-+ * Currently supported by "nss" model:
-+- * "3des", "aes128", "aes192" and "aes256".
-++ * "aes128", "aes192" and "aes256".
-+ * "openssl" model supports more modes and it strictly
-+ * depends on the openssl build. See: EVP_get_cipherbyname
-+ * openssl API call for details.
-+diff --git a/libknet/crypto_nss.c b/libknet/crypto_nss.c
-+index 35afa0f..a17ff62 100644
-+--- a/libknet/crypto_nss.c
-++++ b/libknet/crypto_nss.c
-+@@ -64,32 +64,28 @@ enum nsscrypto_crypt_t {
-+ CRYPTO_CIPHER_TYPE_NONE = 0,
-+ CRYPTO_CIPHER_TYPE_AES256 = 1,
-+ CRYPTO_CIPHER_TYPE_AES192 = 2,
-+- CRYPTO_CIPHER_TYPE_AES128 = 3,
-+- CRYPTO_CIPHER_TYPE_3DES = 4
-++ CRYPTO_CIPHER_TYPE_AES128 = 3
-+ };
-+
-+ CK_MECHANISM_TYPE cipher_to_nss[] = {
-+ 0, /* CRYPTO_CIPHER_TYPE_NONE */
-+ CKM_AES_CBC_PAD, /* CRYPTO_CIPHER_TYPE_AES256 */
-+ CKM_AES_CBC_PAD, /* CRYPTO_CIPHER_TYPE_AES192 */
-+- CKM_AES_CBC_PAD, /* CRYPTO_CIPHER_TYPE_AES128 */
-+- CKM_DES3_CBC_PAD /* CRYPTO_CIPHER_TYPE_3DES */
-++ CKM_AES_CBC_PAD /* CRYPTO_CIPHER_TYPE_AES128 */
-+ };
-+
-+ size_t nsscipher_key_len[] = {
-+ 0, /* CRYPTO_CIPHER_TYPE_NONE */
-+ AES_256_KEY_LENGTH, /* CRYPTO_CIPHER_TYPE_AES256 */
-+ AES_192_KEY_LENGTH, /* CRYPTO_CIPHER_TYPE_AES192 */
-+- AES_128_KEY_LENGTH, /* CRYPTO_CIPHER_TYPE_AES128 */
-+- 24 /* CRYPTO_CIPHER_TYPE_3DES */
-++ AES_128_KEY_LENGTH /* CRYPTO_CIPHER_TYPE_AES128 */
-+ };
-+
-+ size_t nsscypher_block_len[] = {
-+ 0, /* CRYPTO_CIPHER_TYPE_NONE */
-+ AES_BLOCK_SIZE, /* CRYPTO_CIPHER_TYPE_AES256 */
-+ AES_BLOCK_SIZE, /* CRYPTO_CIPHER_TYPE_AES192 */
-+- AES_BLOCK_SIZE, /* CRYPTO_CIPHER_TYPE_AES128 */
-+- 0 /* CRYPTO_CIPHER_TYPE_3DES */
-++ AES_BLOCK_SIZE /* CRYPTO_CIPHER_TYPE_AES128 */
-+ };
-+
-+ /*
-+@@ -155,8 +151,6 @@ static int nssstring_to_crypto_cipher_type(const char* crypto_cipher_type)
-+ return CRYPTO_CIPHER_TYPE_AES192;
-+ } else if (strcmp(crypto_cipher_type, "aes128") == 0) {
-+ return CRYPTO_CIPHER_TYPE_AES128;
-+- } else if (strcmp(crypto_cipher_type, "3des") == 0) {
-+- return CRYPTO_CIPHER_TYPE_3DES;
-+ }
-+ return -1;
-+ }
-diff --git a/debian/patches/man-Tidy-manpages-215.patch b/debian/patches/man-Tidy-manpages-215.patch
-new file mode 100644
-index 0000000..f0b5b37
---- /dev/null
-+++ b/debian/patches/man-Tidy-manpages-215.patch
-@@ -0,0 +1,297 @@
-+From: Chrissie Caulfield <ccaulfie at redhat.com>
-+Date: Tue, 16 Apr 2019 14:46:01 +0100
-+Subject: man: Tidy manpages (#215)
-+
-+* man: Tidy manpages for libnozzle
-+
-+doxygen works in mysterious ways, adding a blank line before
-+ at brief makes the lines following that much tidier.
-+
-+So now instead of
-+
-+nozzle_close nozzle - pointer to the nozzle struct to destroy
-+
-+we get:
-+
-+nozzle_close
-+
-+ nozzle - pointer to the nozzle struct to destroy
-+
-+* doxyxml: Cope with pointers-to-pointers passed as params
-+
-+Double pointers showed as ' * *name' when they should be ' **name'.
-+
-+Also tidy STRUCTURES display so that they are not indented too much,
-+
-+* man: Similar @brief fixes for libknet.h
-+
-+* doxyxml: Tidy descriptions of functions as parameters
-+
-+If a complex function pointer was passed as a parameter then doxyxml
-+tryied to line up all the other parameters with it - making a mess
-+by having lots of blank space between the type and the name.
-+
-+Now we enforce a maximum type length (a line-ish) so that shorter
-+tyopes will line up OK and the really long ones will be left to their
-+own devices.
-+
-+(cherry picked from commit 652e355252adf6d248123d564c607c338e899f98)
-+---
-+ libknet/libknet.h | 3 +++
-+ libnozzle/libnozzle.h | 24 +++++++++++++++++++++---
-+ man/doxyxml.c | 30 ++++++++++++++++++++----------
-+ 3 files changed, 44 insertions(+), 13 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index d0c90e4..181724a 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -275,6 +275,7 @@ int knet_handle_add_datafd(knet_handle_t knet_h, int *datafd, int8_t *channel);
-+
-+ /**
-+ * knet_handle_remove_datafd
-++ *
-+ * @brief Remove a file descriptor from knet
-+ *
-+ * knet_h - pointer to knet_handle_t
-+@@ -293,6 +294,7 @@ int knet_handle_remove_datafd(knet_handle_t knet_h, int datafd);
-+
-+ /**
-+ * knet_handle_get_channel
-++ *
-+ * @brief Get the channel associated with a file descriptor
-+ *
-+ * knet_h - pointer to knet_handle_t
-+@@ -313,6 +315,7 @@ int knet_handle_get_channel(knet_handle_t knet_h, const int datafd, int8_t *chan
-+
-+ /**
-+ * knet_handle_get_datafd
-++ *
-+ * @brief Get the file descriptor associated with a channel
-+ *
-+ * knet_h - pointer to knet_handle_t
-+diff --git a/libnozzle/libnozzle.h b/libnozzle/libnozzle.h
-+index 82ca74d..b8ab7d6 100644
-+--- a/libnozzle/libnozzle.h
-++++ b/libnozzle/libnozzle.h
-+@@ -25,6 +25,7 @@ typedef struct nozzle_iface *nozzle_t;
-+
-+ /**
-+ * nozzle_open
-++ *
-+ * @brief create a new tap device on the system.
-+ *
-+ * devname - pointer to device name of at least size IFNAMSIZ.
-+@@ -55,6 +56,7 @@ nozzle_t nozzle_open(char *devname, size_t devname_size, const char *updownpath)
-+
-+ /**
-+ * nozzle_close
-++ *
-+ * @brief deconfigure and destroy a nozzle device
-+ *
-+ * nozzle - pointer to the nozzle struct to destroy
-+@@ -74,9 +76,8 @@ int nozzle_close(nozzle_t nozzle);
-+
-+ /**
-+ * nozzle_run_updown
-+- * @brief execute updown commands associated with a nozzle device. It is
-+- * the application responsibility to call helper scripts
-+- * before or after creating/destroying interfaces or IP addresses.
-++ *
-++ * @brief execute updown commands associated with a nozzle device.
-+ *
-+ * nozzle - pointer to the nozzle struct
-+ *
-+@@ -86,6 +87,9 @@ int nozzle_close(nozzle_t nozzle);
-+ * The string is malloc'ed, the caller needs to free the buffer.
-+ * If the script generates no output this string might be NULL.
-+ *
-++ * It is the application responsibility to call helper scripts
-++ * before or after creating/destroying interfaces or IP addresses.
-++ *
-+ * @return
-+ * 0 on success
-+ * -1 on error and errno is set (sanity checks and internal calls.
-+@@ -96,6 +100,7 @@ int nozzle_run_updown(const nozzle_t nozzle, uint8_t action, char **exec_string)
-+
-+ /**
-+ * nozzle_set_up
-++ *
-+ * @brief equivalent of ifconfig up
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -109,6 +114,7 @@ int nozzle_set_up(nozzle_t nozzle);
-+
-+ /**
-+ * nozzle_set_down
-++ *
-+ * @brief equivalent of ifconfig down
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -122,6 +128,7 @@ int nozzle_set_down(nozzle_t nozzle);
-+
-+ /**
-+ * nozzle_add_ip
-++ *
-+ * @brief equivalent of ip addr or ifconfig <ipaddress/prefix>
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -142,6 +149,7 @@ int nozzle_add_ip(nozzle_t nozzle, const char *ipaddr, const char *prefix);
-+
-+ /**
-+ * nozzle_del_ip
-++ *
-+ * @brief equivalent of ip addr del or ifconfig del <ipaddress/prefix>
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -170,6 +178,7 @@ struct nozzle_ip {
-+
-+ /**
-+ * nozzle_get_ips
-++ *
-+ * @brief retrieve the list of all configured ips for a given interface
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -191,6 +200,7 @@ int nozzle_get_ips(const nozzle_t nozzle, struct nozzle_ip **nozzle_ip);
-+
-+ /**
-+ * nozzle_get_mtu
-++ *
-+ * @brief retrieve mtu on a given nozzle interface
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -204,6 +214,7 @@ int nozzle_get_mtu(const nozzle_t nozzle);
-+
-+ /**
-+ * nozzle_set_mtu
-++ *
-+ * @brief set mtu on a given nozzle interface
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -219,6 +230,7 @@ int nozzle_set_mtu(nozzle_t nozzle, const int mtu);
-+
-+ /**
-+ * nozzle_reset_mtu
-++ *
-+ * @brief reset mtu on a given nozzle interface to the system default
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -232,6 +244,7 @@ int nozzle_reset_mtu(nozzle_t nozzle);
-+
-+ /**
-+ * nozzle_get_mac
-++ *
-+ * @brief retrieve mac address on a given nozzle interface
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -247,6 +260,7 @@ int nozzle_get_mac(const nozzle_t nozzle, char **ether_addr);
-+
-+ /**
-+ * nozzle_set_mac
-++ *
-+ * @brief set mac address on a given nozzle interface
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -262,6 +276,7 @@ int nozzle_set_mac(nozzle_t nozzle, const char *ether_addr);
-+
-+ /**
-+ * nozzle_reset_mac
-++ *
-+ * @brief reset mac address on a given nozzle interface to system default
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -275,6 +290,7 @@ int nozzle_reset_mac(nozzle_t nozzle);
-+
-+ /**
-+ * nozzle_get_handle_by_name
-++ *
-+ * @brief find a nozzle handle by device name
-+ *
-+ * devname - string containing the name of the interface
-+@@ -288,6 +304,7 @@ nozzle_t nozzle_get_handle_by_name(const char *devname);
-+
-+ /**
-+ * nozzle_get_name_by_handle
-++ *
-+ * @brief retrieve nozzle interface name by handle
-+ *
-+ * nozzle - pointer to the nozzle struct
-+@@ -301,6 +318,7 @@ const char *nozzle_get_name_by_handle(const nozzle_t nozzle);
-+
-+ /**
-+ * nozzle_get_fd
-++ *
-+ * @brief
-+ *
-+ * nozzle - pointer to the nozzle struct
-+diff --git a/man/doxyxml.c b/man/doxyxml.c
-+index b4b49a9..b623711 100644
-+--- a/man/doxyxml.c
-++++ b/man/doxyxml.c
-+@@ -34,6 +34,14 @@
-+ #define XML_DIR "../man/xml-knet"
-+ #define XML_FILE "libknet_8h.xml"
-+
-++/*
-++ * This isn't a maximum size, it just defines how long a parameter
-++ * type can get before we decide it's not worth lining everything up to.
-++ * it's mainly to stop function pointer types (which can get VERY long because
-++ * of all *their* parameters) making everything else 'line-up' over separate lines
-++ */
-++#define LINE_LENGTH 80
-++
-+ static int print_ascii = 1;
-+ static int print_man = 0;
-+ static int print_params = 0;
-+@@ -332,19 +340,25 @@ static int read_structure_from_xml(char *refid, char *name)
-+
-+ static void print_param(FILE *manfile, struct param_info *pi, int field_width, int bold, const char *delimiter)
-+ {
-+- char asterisk = ' ';
-++ char *asterisks = " ";
-+ char *type = pi->paramtype;
-+
-+ /* Reformat pointer params so they look nicer */
-+ if (pi->paramtype[strlen(pi->paramtype)-1] == '*') {
-+- asterisk='*';
-++ asterisks=" *";
-+ type = strdup(pi->paramtype);
-+ type[strlen(type)-1] = '\0';
-++
-++ /* Cope with double pointers */
-++ if (pi->paramtype[strlen(type)-1] == '*') {
-++ asterisks="**";
-++ type[strlen(type)-1] = '\0';
-++ }
-+ }
-+
-+- fprintf(manfile, " %s%-*s%c%s\\fI%s\\fP%s\n",
-++ fprintf(manfile, " %s%-*s%s%s\\fI%s\\fP%s\n",
-+ bold?"\\fB":"", field_width, type,
-+- asterisk, bold?"\\fP":"", pi->paramname, delimiter);
-++ asterisks, bold?"\\fP":"", pi->paramname, delimiter);
-+
-+ if (type != pi->paramtype) {
-+ free(type);
-+@@ -504,7 +518,8 @@ static void print_manpage(char *name, char *def, char *brief, char *args, char *
-+ qb_list_for_each(iter, ¶ms_list) {
-+ pi = qb_list_entry(iter, struct param_info, list);
-+
-+- if (strlen(pi->paramtype) > max_param_type_len) {
-++ if ((strlen(pi->paramtype) < LINE_LENGTH) &&
-++ (strlen(pi->paramtype) > max_param_type_len)) {
-+ max_param_type_len = strlen(pi->paramtype);
-+ }
-+ if (strlen(pi->paramname) > max_param_name_len) {
-+@@ -559,11 +574,6 @@ static void print_manpage(char *name, char *def, char *brief, char *args, char *
-+
-+ map_iter = qb_map_iter_create(used_structures_map);
-+ for (p = qb_map_iter_next(map_iter, &data); p; p = qb_map_iter_next(map_iter, &data)) {
-+- fprintf(manfile, ".SS \"\"\n");
-+- fprintf(manfile, ".PP\n");
-+- fprintf(manfile, ".sp\n");
-+- fprintf(manfile, ".sp\n");
-+- fprintf(manfile, ".RS\n");
-+ fprintf(manfile, ".nf\n");
-+ fprintf(manfile, "\\fB\n");
-+
-diff --git a/debian/patches/man-Tidy-more-man-pages.patch b/debian/patches/man-Tidy-more-man-pages.patch
-new file mode 100644
-index 0000000..21c6e04
---- /dev/null
-+++ b/debian/patches/man-Tidy-more-man-pages.patch
-@@ -0,0 +1,47 @@
-+From: Christine Caulfield <ccaulfie at redhat.com>
-+Date: Mon, 29 Apr 2019 15:16:27 +0100
-+Subject: man: Tidy more man pages
-+
-+Followup to previous 'tidy'
-+
-+(cherry picked from commit 4ff309b82bbd11300e761ecdcafde596115fc7f7)
-+---
-+ libknet/libknet.h | 4 ++++
-+ 1 file changed, 4 insertions(+)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 181724a..7b5a9e3 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -151,6 +151,7 @@ knet_handle_t knet_handle_new(knet_node_id_t host_id,
-+
-+ /**
-+ * knet_handle_free
-++ *
-+ * @brief Destroy a knet handle, free all resources
-+ *
-+ * knet_h - pointer to knet_handle_t
-+@@ -165,6 +166,7 @@ int knet_handle_free(knet_handle_t knet_h);
-+
-+ /**
-+ * knet_handle_enable_sock_notify
-++ *
-+ * @brief Register a callback to receive socket events
-+ *
-+ * knet_h - pointer to knet_handle_t
-+@@ -336,6 +338,7 @@ int knet_handle_get_datafd(knet_handle_t knet_h, const int8_t channel, int *data
-+
-+ /**
-+ * knet_recv
-++ *
-+ * @brief Receive data from knet nodes
-+ *
-+ * knet_h - pointer to knet_handle_t
-+@@ -358,6 +361,7 @@ ssize_t knet_recv(knet_handle_t knet_h,
-+
-+ /**
-+ * knet_send
-++ *
-+ * @brief Send data to knet nodes
-+ *
-+ * knet_h - pointer to knet_handle_t
-diff --git a/debian/patches/man-fix-knet_host_set_policy-parameters-order.patch b/debian/patches/man-fix-knet_host_set_policy-parameters-order.patch
-new file mode 100644
-index 0000000..5d50b61
---- /dev/null
-+++ b/debian/patches/man-fix-knet_host_set_policy-parameters-order.patch
-@@ -0,0 +1,27 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 30 Apr 2019 05:06:47 +0200
-+Subject: [man] fix knet_host_set_policy parameters order
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 73e1b520482cef7ced995423aa3f6f53d16b66c4)
-+---
-+ libknet/libknet.h | 4 ++--
-+ 1 file changed, 2 insertions(+), 2 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 7b5a9e3..7c0c440 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -1027,10 +1027,10 @@ int knet_host_get_host_list(knet_handle_t knet_h,
-+ /**
-+ * knet_host_set_policy
-+ *
-+- * knet_h - pointer to knet_handle_t
-+- *
-+ * @brief Set the switching policy for a host's links
-+ *
-++ * knet_h - pointer to knet_handle_t
-++ *
-+ * host_id - see knet_host_add(3)
-+ *
-+ * policy - there are currently 3 kind of simple switching policies
-diff --git a/debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test.patch b/debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test.patch
-new file mode 100644
-index 0000000..79925df
---- /dev/null
-+++ b/debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test.patch
-@@ -0,0 +1,41 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 30 Apr 2019 05:42:48 +0200
-+Subject: [man] fix libknet.h for errors detected by newly added test
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 8e00c883883f0ee183aa3472e5ee72210318ce14)
-+---
-+ libknet/libknet.h | 6 +++---
-+ 1 file changed, 3 insertions(+), 3 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 7c0c440..c7f44d7 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -1144,7 +1144,7 @@ struct knet_host_status {
-+ };
-+
-+ /**
-+- * knet_host_status_get
-++ * knet_host_get_status
-+ *
-+ * @brief Get the status of a host
-+ *
-+@@ -1939,7 +1939,7 @@ struct knet_log_msg {
-+ };
-+
-+ /**
-+- * knet_log_set_log_level
-++ * knet_log_set_loglevel
-+ *
-+ * @brief Set the logging level for a subsystem
-+ *
-+@@ -1962,7 +1962,7 @@ int knet_log_set_loglevel(knet_handle_t knet_h, uint8_t subsystem,
-+ uint8_t level);
-+
-+ /**
-+- * knet_log_get_log_level
-++ * knet_log_get_loglevel
-+ *
-+ * @brief Get the logging level for a subsystem
-+ *
-diff --git a/debian/patches/reduce-minimum-crypto-key-size-to-1024bit.patch b/debian/patches/reduce-minimum-crypto-key-size-to-1024bit.patch
-new file mode 100644
-index 0000000..065a53b
---- /dev/null
-+++ b/debian/patches/reduce-minimum-crypto-key-size-to-1024bit.patch
-@@ -0,0 +1,35 @@
-+From: =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler at proxmox.com>
-+Date: Wed, 3 Apr 2019 14:28:50 +0200
-+Subject: reduce minimum crypto key size to 1024bit
-+MIME-Version: 1.0
-+Content-Type: text/plain; charset="utf-8"
-+Content-Transfer-Encoding: 8bit
-+
-+Since the key is used for AES/3DES and HMAC operations only, this is
-+safe. AES/3DES use keys in the 128- to 256-bit range, HMAC with
-+MD5/SHA1/SHA2 should use keys with a minimum of 128- to 512-bit (in both
-+cases, depending on the actual algorithm used).
-+
-+This reduction also keeps knet compatible with existing Corosync 2.x
-+keyfiles, which are 1024-bit.
-+
-+Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
-+(cherry picked from commit 4e648f76930af8c376a833677d940b2b0efc3c86)
-+---
-+ libknet/libknet.h | 3 +--
-+ 1 file changed, 1 insertion(+), 2 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 36fefa5..0331b1f 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -587,8 +587,7 @@ int knet_handle_pmtud_get(knet_handle_t knet_h,
-+ unsigned int *data_mtu);
-+
-+
-+-
-+-#define KNET_MIN_KEY_LEN 256
-++#define KNET_MIN_KEY_LEN 128
-+ #define KNET_MAX_KEY_LEN 4096
-+
-+ struct knet_handle_crypto_cfg {
-diff --git a/debian/patches/tests-add-man-page-check-to-verify-doxy-header-order-and-.patch b/debian/patches/tests-add-man-page-check-to-verify-doxy-header-order-and-.patch
-new file mode 100644
-index 0000000..2ac3e8a
---- /dev/null
-+++ b/debian/patches/tests-add-man-page-check-to-verify-doxy-header-order-and-.patch
-@@ -0,0 +1,37 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 30 Apr 2019 05:42:16 +0200
-+Subject: [tests] add man page check to verify doxy header order and
-+ definitions
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 8b73fbca799114ed579acb73ce0bbcdf45b1f171)
-+---
-+ man/api-to-man-page-coverage | 15 +++++++++++++++
-+ 1 file changed, 15 insertions(+)
-+
-+diff --git a/man/api-to-man-page-coverage b/man/api-to-man-page-coverage
-+index 92e60a5..b9dc18f 100755
-+--- a/man/api-to-man-page-coverage
-++++ b/man/api-to-man-page-coverage
-+@@ -14,6 +14,21 @@ target="$2"
-+ headerapicalls="$(grep ${target}_ "$srcdir"/lib${target}/lib${target}.h | grep -v "^ \*" | grep -v ^struct | grep -v "^[[:space:]]" | grep -v typedef | sed -e 's/(.*//g' -e 's/^const //g' -e 's/\*//g' | awk '{print $2}')"
-+ manpages="$(grep ${target}_ "$srcdir"/man/Makefile.am |grep -v man3 |grep -v xml | sed -e 's/\.3.*//g')"
-+
-++echo "Checking for header format errors"
-++
-++for i in $headerapicalls; do
-++ echo "Checking $i"
-++ header="$(grep " \* ${i}$" "$srcdir"/lib${target}/lib${target}.h -A2)"
-++ brief="$(echo "$header" | tail -n 1 |grep "@brief")"
-++ if [ -z "$brief" ]; then
-++ echo "Error found in $i doxy header section"
-++ echo "$header"
-++ echo ""
-++ echo "$brief"
-++ exit 1
-++ fi
-++done
-++
-+ echo "Checking for symbols in header file NOT distributed as manpages"
-+
-+ for i in $headerapicalls; do
-diff --git a/debian/patches/udp-improve-error-message-decoding-from-ICMP-errors.patch b/debian/patches/udp-improve-error-message-decoding-from-ICMP-errors.patch
-new file mode 100644
-index 0000000..876bdd3
---- /dev/null
-+++ b/debian/patches/udp-improve-error-message-decoding-from-ICMP-errors.patch
-@@ -0,0 +1,38 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 1 May 2019 06:51:19 +0200
-+Subject: [udp] improve error message decoding from ICMP errors
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit c8522bfa627045932c0bd2c1b31005534efbc495)
-+---
-+ libknet/transport_udp.c | 10 +++++++++-
-+ 1 file changed, 9 insertions(+), 1 deletion(-)
-+
-+diff --git a/libknet/transport_udp.c b/libknet/transport_udp.c
-+index 3decb66..e4f6fdb 100644
-+--- a/libknet/transport_udp.c
-++++ b/libknet/transport_udp.c
-+@@ -296,6 +296,8 @@ static int read_errs_from_sock(knet_handle_t knet_h, int sockfd)
-+ struct sockaddr_storage *origin;
-+ char addr_str[KNET_MAX_HOST_LEN];
-+ char port_str[KNET_MAX_PORT_LEN];
-++ char addr_remote_str[KNET_MAX_HOST_LEN];
-++ char port_remote_str[KNET_MAX_PORT_LEN];
-+
-+ iov.iov_base = &icmph;
-+ iov.iov_len = sizeof(icmph);
-+@@ -367,7 +369,13 @@ static int read_errs_from_sock(knet_handle_t knet_h, int sockfd)
-+ log_debug(knet_h, KNET_SUB_TRANSP_UDP, "Received ICMP error from unknown source: %s", strerror(sock_err->ee_errno));
-+
-+ } else {
-+- log_debug(knet_h, KNET_SUB_TRANSP_UDP, "Received ICMP error from %s: %s", addr_str, strerror(sock_err->ee_errno));
-++ if (knet_addrtostr(&remote, sizeof(remote),
-++ addr_remote_str, KNET_MAX_HOST_LEN,
-++ port_remote_str, KNET_MAX_PORT_LEN) < 0) {
-++ log_debug(knet_h, KNET_SUB_TRANSP_UDP, "Received ICMP error from %s: %s destination unknown", addr_str, strerror(sock_err->ee_errno));
-++ } else {
-++ log_debug(knet_h, KNET_SUB_TRANSP_UDP, "Received ICMP error from %s: %s %s", addr_str, strerror(sock_err->ee_errno), addr_remote_str);
-++ }
-+ }
-+ break;
-+ }
-diff --git a/debian/patches/udp-use-defines-vs-hardcoded-numbers.patch b/debian/patches/udp-use-defines-vs-hardcoded-numbers.patch
-new file mode 100644
-index 0000000..65a5d88
---- /dev/null
-+++ b/debian/patches/udp-use-defines-vs-hardcoded-numbers.patch
-@@ -0,0 +1,36 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 1 May 2019 06:39:53 +0200
-+Subject: [udp] use defines vs hardcoded numbers
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 77adcf11ee390cfc7158f3f05617beef980429d8)
-+---
-+ libknet/transport_udp.c | 8 ++++----
-+ 1 file changed, 4 insertions(+), 4 deletions(-)
-+
-+diff --git a/libknet/transport_udp.c b/libknet/transport_udp.c
-+index acfbab4..3decb66 100644
-+--- a/libknet/transport_udp.c
-++++ b/libknet/transport_udp.c
-+@@ -325,8 +325,8 @@ static int read_errs_from_sock(knet_handle_t knet_h, int sockfd)
-+ sock_err = (struct sock_extended_err*)(void *)CMSG_DATA(cmsg);
-+ if (sock_err) {
-+ switch (sock_err->ee_origin) {
-+- case 0: /* no origin */
-+- case 1: /* local source (EMSGSIZE) */
-++ case SO_EE_ORIGIN_NONE: /* no origin */
-++ case SO_EE_ORIGIN_LOCAL: /* local source (EMSGSIZE) */
-+ if (sock_err->ee_errno == EMSGSIZE) {
-+ if (pthread_mutex_lock(&knet_h->kmtu_mutex) != 0) {
-+ log_debug(knet_h, KNET_SUB_TRANSP_UDP, "Unable to get mutex lock");
-+@@ -358,8 +358,8 @@ static int read_errs_from_sock(knet_handle_t knet_h, int sockfd)
-+ * those errors are way too noisy
-+ */
-+ break;
-+- case 2: /* ICMP */
-+- case 3: /* ICMP6 */
-++ case SO_EE_ORIGIN_ICMP: /* ICMP */
-++ case SO_EE_ORIGIN_ICMP6: /* ICMP6 */
-+ origin = (struct sockaddr_storage *)(void *)SO_EE_OFFENDER(sock_err);
-+ if (knet_addrtostr(origin, sizeof(origin),
-+ addr_str, KNET_MAX_HOST_LEN,
-diff --git a/debian/patches/series b/debian/patches/series
-index 7fbd139..c16ea6e 100644
---- a/debian/patches/series
-+++ b/debian/patches/series
-@@ -1 +1,11 @@
- send-test-skip-the-SCTP-test-if-SCTP-is-not-supported-by-.patch
-+build-add-another-exception-to-valgrind-nss-combo.patch
-+reduce-minimum-crypto-key-size-to-1024bit.patch
-+crypto-remove-libnss-3des-support.patch
-+man-Tidy-manpages-215.patch
-+man-Tidy-more-man-pages.patch
-+man-fix-knet_host_set_policy-parameters-order.patch
-+tests-add-man-page-check-to-verify-doxy-header-order-and-.patch
-+man-fix-libknet.h-for-errors-detected-by-newly-added-test.patch
-+udp-use-defines-vs-hardcoded-numbers.patch
-+udp-improve-error-message-decoding-from-ICMP-errors.patch
diff --git a/patches/0003-cherry-pick-1.10-as-patches.patch b/patches/0003-cherry-pick-1.10-as-patches.patch
deleted file mode 100644
index ec886d6..0000000
--- a/patches/0003-cherry-pick-1.10-as-patches.patch
+++ /dev/null
@@ -1,14716 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler at proxmox.com>
-Date: Wed, 19 Jun 2019 09:31:57 +0200
-Subject: [PATCH kronosnet] cherry-pick 1.10 as patches
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
----
- ...e-entry-per-file-to-match-README.lic.patch | 2928 +++++++++++++++++
- ...n-shared-code-to-trigger-PMTUd-rerun.patch | 79 +
- ...-rerun-API-to-allow-full-PMTUd-reset.patch | 74 +
- ...sts-add-access-lists-support-to-sctp.patch | 96 +
- ...documentation-for-enable_access_list.patch | 58 +
- ...dd-errno-around-and-start-using-them.patch | 195 ++
- ...rnal-API-calls-to-manage-access-list.patch | 746 +++++
- ...more-extensive-test-for-links_acl_ip.patch | 717 ++++
- .../access-lists-add-public-API-tests.patch | 1019 ++++++
- ...s-add-tests-for-default-access-lists.patch | 63 +
- ...et_bench-to-enable-disable-access-li.patch | 61 +
- ...cally-add-and-remove-point-to-point-.patch | 283 ++
- .../access-lists-cleanup-API-a-bit.patch | 98 +
- ...access-lists-data-structs-within-the.patch | 226 ++
- ...ccess-lists-for-GENERIC_ACL-protocol.patch | 80 +
- ...eneric-access-lists-only-for-protoco.patch | 55 +
- ...d-on-BSD-and-add-some-include-files-.patch | 64 +
- .../access-lists-fix-build-on-freebsd.patch | 54 +
- ...improve-checks-on-various-data-types.patch | 74 +
- ...e-more-generic-to-accept-more-than-I.patch | 436 +++
- ...s-lists-make-internal-API-consistent.patch | 73 +
- ...-of-generic-wrappers-and-remove-dupl.patch | 72 +
- ...ess-lists-structs-and-data-types-to-.patch | 168 +
- ...-acl-wrappers-to-links_acl-and-split.patch | 1025 ++++++
- ...-lists-remove-2-unnecessary-wrappers.patch | 70 +
- ...p1-2-to-ss1-2-to-keep-it-more-generi.patch | 219 ++
- ...licit-access-lists-management-for-UD.patch | 50 +
- ...ays-to-access-per-protocol-functions.patch | 309 ++
- ...better-name-for-fd_tracker-structure.patch | 95 +
- .../acl-Fix-English-in-commments.patch | 106 +
- ..._handle_enable_access_lists-api-call.patch | 235 ++
- ...o-libknet-dir-and-rename-to-links_ac.patch | 186 ++
- ...ump-soname-to-indicate-new-API-calls.patch | 23 +
- .../compress-add-support-for-libzstd.patch | 342 ++
- ...o-fix-openssl1.0-initialization-code.patch | 98 +
- ...e-errors-generated-by-openssl-1.1.1c.patch | 137 +
- ...lear-all-security-info-on-crypto_fin.patch | 51 +
- ...rigger-a-PMTUd-rerun-on-each-good-cr.patch | 25 +
- ...alls-to-RAND_seed-as-they-don-t-real.patch | 65 +
- ...crypto-openssl-error-strings-release.patch | 28 +
- ...ndle_crypto-external-API-to-be-more-.patch | 598 ++++
- ...ight-from-541d7faf9068d10e12b4278c35.patch | 23 +
- ...al-update-copyright-across-the-board.patch | 129 +
- debian/patches/global-update-copyrights.patch | 21 +
- ...operly-initialize-fd-tracker-buffers.patch | 26 +
- ..._type-to-transport-to-avoid-confusio.patch | 77 +
- ...t_type-to-transport-to-avoid-confusi.patch | 196 ++
- ...g-target-of-recently-added-API-calls.patch | 52 +
- ...rrors-detected-by-newly-added-test-1.patch | 50 +
- .../patches/manpages-Document-enums-206.patch | 39 +
- .../misc-Fix-more-covscan-warnings.patch | 191 ++
- debian/patches/misc-some-coverity-fixes.patch | 224 ++
- ...bout-plugins-version-and-architectur.patch | 167 +
- ...-up-useless-conditionals-and-defines.patch | 376 +++
- .../spec-drop-support-for-init-scripts.patch | 108 +
- .../spec-fix-a-bunch-of-rpmlint-errors.patch | 51 +
- ...s-to-point-to-https-and-official-rel.patch | 30 +
- ...ora-spec-file-into-upstream-spec-fil.patch | 374 +++
- ...ditionals-to-determine-BuildRequires.patch | 59 +
- ...dconfig_scriptlets-only-when-defined.patch | 40 +
- ...m-internal-memory-leak-non-recurring.patch | 25 +
- ...r-packet-implementation-to-flush-log.patch | 135 +
- .../patches/tests-remove-stray-comment.patch | 22 +
- ...t-add-internal-API-to-gather-which-f.patch | 161 +
- ...ation-about-the-nature-of-the-transp.patch | 115 +
- ...ect-merge-when-cherry-picking-7033dd.patch | 29 +
- debian/patches/series | 66 +
- 67 files changed, 14167 insertions(+)
- create mode 100644 debian/patches/global-clarify-license-entry-per-file-to-match-README.lic.patch
- create mode 100644 debian/patches/PMTUd-create-common-shared-code-to-trigger-PMTUd-rerun.patch
- create mode 100644 debian/patches/PMTUd-extend-internal-rerun-API-to-allow-full-PMTUd-reset.patch
- create mode 100644 debian/patches/access-lists-add-access-lists-support-to-sctp.patch
- create mode 100644 debian/patches/access-lists-add-documentation-for-enable_access_list.patch
- create mode 100644 debian/patches/access-lists-add-errno-around-and-start-using-them.patch
- create mode 100644 debian/patches/access-lists-add-external-API-calls-to-manage-access-list.patch
- create mode 100644 debian/patches/access-lists-add-more-extensive-test-for-links_acl_ip.patch
- create mode 100644 debian/patches/access-lists-add-public-API-tests.patch
- create mode 100644 debian/patches/access-lists-add-tests-for-default-access-lists.patch
- create mode 100644 debian/patches/access-lists-allow-knet_bench-to-enable-disable-access-li.patch
- create mode 100644 debian/patches/access-lists-automatically-add-and-remove-point-to-point-.patch
- create mode 100644 debian/patches/access-lists-cleanup-API-a-bit.patch
- create mode 100644 debian/patches/access-lists-confine-access-lists-data-structs-within-the.patch
- create mode 100644 debian/patches/access-lists-enable-access-lists-for-GENERIC_ACL-protocol.patch
- create mode 100644 debian/patches/access-lists-enable-generic-access-lists-only-for-protoco.patch
- create mode 100644 debian/patches/access-lists-fix-build-on-BSD-and-add-some-include-files-.patch
- create mode 100644 debian/patches/access-lists-fix-build-on-freebsd.patch
- create mode 100644 debian/patches/access-lists-improve-checks-on-various-data-types.patch
- create mode 100644 debian/patches/access-lists-make-code-more-generic-to-accept-more-than-I.patch
- create mode 100644 debian/patches/access-lists-make-internal-API-consistent.patch
- create mode 100644 debian/patches/access-lists-more-use-of-generic-wrappers-and-remove-dupl.patch
- create mode 100644 debian/patches/access-lists-move-access-lists-structs-and-data-types-to-.patch
- create mode 100644 debian/patches/access-lists-move-all-acl-wrappers-to-links_acl-and-split.patch
- create mode 100644 debian/patches/access-lists-remove-2-unnecessary-wrappers.patch
- create mode 100644 debian/patches/access-lists-rename-ip1-2-to-ss1-2-to-keep-it-more-generi.patch
- create mode 100644 debian/patches/access-lists-test-implicit-access-lists-management-for-UD.patch
- create mode 100644 debian/patches/access-lists-use-arrays-to-access-per-protocol-functions.patch
- create mode 100644 debian/patches/access-lists-use-better-name-for-fd_tracker-structure.patch
- create mode 100644 debian/patches/acl-Fix-English-in-commments.patch
- create mode 100644 debian/patches/acl-add-knet_handle_enable_access_lists-api-call.patch
- create mode 100644 debian/patches/acl-move-poc-code-into-libknet-dir-and-rename-to-links_ac.patch
- create mode 100644 debian/patches/build-bump-soname-to-indicate-new-API-calls.patch
- create mode 100644 debian/patches/compress-add-support-for-libzstd.patch
- create mode 100644 debian/patches/crypto-fix-openssl1.0-initialization-code.patch
- create mode 100644 debian/patches/crypto-hide-errors-generated-by-openssl-1.1.1c.patch
- create mode 100644 debian/patches/crypto-make-sure-to-clear-all-security-info-on-crypto_fin.patch
- create mode 100644 debian/patches/crypto-make-sure-to-trigger-a-PMTUd-rerun-on-each-good-cr.patch
- create mode 100644 debian/patches/crypto-openssl-drop-calls-to-RAND_seed-as-they-don-t-real.patch
- create mode 100644 debian/patches/crypto-openssl-error-strings-release.patch
- create mode 100644 debian/patches/crypto-rework-knet_handle_crypto-external-API-to-be-more-.patch
- create mode 100644 debian/patches/doc-fix-a-merge-oversight-from-541d7faf9068d10e12b4278c35.patch
- create mode 100644 debian/patches/global-update-copyright-across-the-board.patch
- create mode 100644 debian/patches/global-update-copyrights.patch
- create mode 100644 debian/patches/handle-properly-initialize-fd-tracker-buffers.patch
- create mode 100644 debian/patches/links-rename-tranport_type-to-transport-to-avoid-confusio.patch
- create mode 100644 debian/patches/links-rename-transport_type-to-transport-to-avoid-confusi.patch
- create mode 100644 debian/patches/logging-fix-log-target-of-recently-added-API-calls.patch
- create mode 100644 debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test-1.patch
- create mode 100644 debian/patches/manpages-Document-enums-206.patch
- create mode 100644 debian/patches/misc-Fix-more-covscan-warnings.patch
- create mode 100644 debian/patches/misc-some-coverity-fixes.patch
- create mode 100644 debian/patches/spec-be-more-strict-about-plugins-version-and-architectur.patch
- create mode 100644 debian/patches/spec-clean-up-useless-conditionals-and-defines.patch
- create mode 100644 debian/patches/spec-drop-support-for-init-scripts.patch
- create mode 100644 debian/patches/spec-fix-a-bunch-of-rpmlint-errors.patch
- create mode 100644 debian/patches/spec-fix-upstream-URLs-to-point-to-https-and-official-rel.patch
- create mode 100644 debian/patches/spec-reconciliate-fedora-spec-file-into-upstream-spec-fil.patch
- create mode 100644 debian/patches/spec-use-distro-conditionals-to-determine-BuildRequires.patch
- create mode 100644 debian/patches/spec-use-ldconfig_scriptlets-only-when-defined.patch
- create mode 100644 debian/patches/tests-hide-an-arm-internal-memory-leak-non-recurring.patch
- create mode 100644 debian/patches/tests-improve-wait-for-packet-implementation-to-flush-log.patch
- create mode 100644 debian/patches/tests-remove-stray-comment.patch
- create mode 100644 debian/patches/transports-access-list-add-internal-API-to-gather-which-f.patch
- create mode 100644 debian/patches/transports-add-information-about-the-nature-of-the-transp.patch
- create mode 100644 debian/patches/transports-fix-incorrect-merge-when-cherry-picking-7033dd.patch
-
-diff --git a/debian/patches/global-clarify-license-entry-per-file-to-match-README.lic.patch b/debian/patches/global-clarify-license-entry-per-file-to-match-README.lic.patch
-new file mode 100644
-index 0000000..ba15cf0
---- /dev/null
-+++ b/debian/patches/global-clarify-license-entry-per-file-to-match-README.lic.patch
-@@ -0,0 +1,2928 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 12 Jun 2019 05:21:24 +0200
-+Subject: [global] clarify license entry per file to match README.licence
-+
-+libraries code: LGPL-2.0+
-+binaries code and other files: GPL-2.0+
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit dd52554d5dfc0c5c37697842092cd3b99d6d40a4)
-+---
-+ README | 2 +-
-+ autogen.sh | 2 +-
-+ configure.ac | 2 +-
-+ Makefile.am | 2 +-
-+ init/Makefile.am | 2 +-
-+ kronosnetd/Makefile.am | 2 +-
-+ libknet/Makefile.am | 2 +-
-+ libknet/tests/Makefile.am | 2 +-
-+ libnozzle/Makefile.am | 2 +-
-+ libnozzle/tests/Makefile.am | 2 +-
-+ man/Makefile.am | 2 +-
-+ poc-code/Makefile.am | 2 +-
-+ poc-code/iov-hash/Makefile.am | 2 +-
-+ kronosnetd/cfg.h | 2 +-
-+ kronosnetd/etherfilter.h | 2 +-
-+ kronosnetd/logging.h | 2 +-
-+ kronosnetd/vty.h | 2 +-
-+ kronosnetd/vty_auth.h | 2 +-
-+ kronosnetd/vty_cli.h | 2 +-
-+ kronosnetd/vty_cli_cmds.h | 2 +-
-+ kronosnetd/vty_utils.h | 2 +-
-+ libknet/common.h | 2 +-
-+ libknet/compat.h | 2 +-
-+ libknet/compress.h | 2 +-
-+ libknet/compress_model.h | 2 +-
-+ libknet/crypto.h | 2 +-
-+ libknet/crypto_model.h | 2 +-
-+ libknet/host.h | 2 +-
-+ libknet/internals.h | 2 +-
-+ libknet/libknet.h | 2 +-
-+ libknet/links.h | 2 +-
-+ libknet/links_acl.h | 2 +-
-+ libknet/links_acl_ip.h | 2 +-
-+ libknet/links_acl_loopback.h | 2 +-
-+ libknet/logging.h | 2 +-
-+ libknet/netutils.h | 2 +-
-+ libknet/onwire.h | 2 +-
-+ libknet/tests/test-common.h | 2 +-
-+ libknet/threads_common.h | 2 +-
-+ libknet/threads_dsthandler.h | 2 +-
-+ libknet/threads_heartbeat.h | 2 +-
-+ libknet/threads_pmtud.h | 2 +-
-+ libknet/threads_rx.h | 2 +-
-+ libknet/threads_tx.h | 2 +-
-+ libknet/transport_common.h | 2 +-
-+ libknet/transport_loopback.h | 2 +-
-+ libknet/transport_sctp.h | 2 +-
-+ libknet/transport_udp.h | 2 +-
-+ libknet/transports.h | 2 +-
-+ libnozzle/internals.h | 2 +-
-+ libnozzle/libnozzle.h | 2 +-
-+ libnozzle/tests/test-common.h | 2 +-
-+ init/kronosnetd.in | 2 +-
-+ init/kronosnetd.service.in | 2 +-
-+ kronosnetd/kronosnetd.logrotate.in | 2 +-
-+ libknet/libknet.pc.in | 2 +-
-+ libnozzle/libnozzle.pc.in | 2 +-
-+ man/Doxyfile-knet.in | 2 +-
-+ man/Doxyfile-nozzle.in | 2 +-
-+ kronosnetd/cfg.c | 2 +-
-+ kronosnetd/etherfilter.c | 2 +-
-+ kronosnetd/keygen.c | 2 +-
-+ kronosnetd/logging.c | 2 +-
-+ kronosnetd/main.c | 2 +-
-+ kronosnetd/vty.c | 2 +-
-+ kronosnetd/vty_auth.c | 2 +-
-+ kronosnetd/vty_cli.c | 2 +-
-+ kronosnetd/vty_cli_cmds.c | 2 +-
-+ kronosnetd/vty_utils.c | 2 +-
-+ libknet/common.c | 2 +-
-+ libknet/compat.c | 2 +-
-+ libknet/compress.c | 2 +-
-+ libknet/compress_bzip2.c | 2 +-
-+ libknet/compress_lz4.c | 2 +-
-+ libknet/compress_lz4hc.c | 2 +-
-+ libknet/compress_lzma.c | 2 +-
-+ libknet/compress_lzo2.c | 2 +-
-+ libknet/compress_zlib.c | 2 +-
-+ libknet/compress_zstd.c | 2 +-
-+ libknet/crypto.c | 2 +-
-+ libknet/crypto_nss.c | 2 +-
-+ libknet/crypto_openssl.c | 2 +-
-+ libknet/handle.c | 2 +-
-+ libknet/host.c | 2 +-
-+ libknet/links.c | 2 +-
-+ libknet/links_acl.c | 2 +-
-+ libknet/links_acl_ip.c | 2 +-
-+ libknet/links_acl_loopback.c | 2 +-
-+ libknet/logging.c | 2 +-
-+ libknet/netutils.c | 2 +-
-+ libknet/tests/api_knet_addrtostr.c | 2 +-
-+ libknet/tests/api_knet_get_compress_list.c | 2 +-
-+ libknet/tests/api_knet_get_crypto_list.c | 2 +-
-+ libknet/tests/api_knet_get_transport_id_by_name.c | 2 +-
-+ libknet/tests/api_knet_get_transport_list.c | 2 +-
-+ libknet/tests/api_knet_get_transport_name_by_id.c | 2 +-
-+ libknet/tests/api_knet_handle_add_datafd.c | 2 +-
-+ libknet/tests/api_knet_handle_clear_stats.c | 2 +-
-+ libknet/tests/api_knet_handle_compress.c | 2 +-
-+ libknet/tests/api_knet_handle_crypto.c | 2 +-
-+ libknet/tests/api_knet_handle_enable_access_lists.c | 2 +-
-+ libknet/tests/api_knet_handle_enable_filter.c | 2 +-
-+ libknet/tests/api_knet_handle_enable_pmtud_notify.c | 2 +-
-+ libknet/tests/api_knet_handle_enable_sock_notify.c | 2 +-
-+ libknet/tests/api_knet_handle_free.c | 2 +-
-+ libknet/tests/api_knet_handle_get_channel.c | 2 +-
-+ libknet/tests/api_knet_handle_get_datafd.c | 2 +-
-+ libknet/tests/api_knet_handle_get_stats.c | 2 +-
-+ libknet/tests/api_knet_handle_get_transport_reconnect_interval.c | 2 +-
-+ libknet/tests/api_knet_handle_new.c | 2 +-
-+ libknet/tests/api_knet_handle_new_limit.c | 2 +-
-+ libknet/tests/api_knet_handle_pmtud_get.c | 2 +-
-+ libknet/tests/api_knet_handle_pmtud_getfreq.c | 2 +-
-+ libknet/tests/api_knet_handle_pmtud_setfreq.c | 2 +-
-+ libknet/tests/api_knet_handle_remove_datafd.c | 2 +-
-+ libknet/tests/api_knet_handle_set_transport_reconnect_interval.c | 2 +-
-+ libknet/tests/api_knet_handle_setfwd.c | 2 +-
-+ libknet/tests/api_knet_host_add.c | 2 +-
-+ libknet/tests/api_knet_host_enable_status_change_notify.c | 2 +-
-+ libknet/tests/api_knet_host_get_host_list.c | 2 +-
-+ libknet/tests/api_knet_host_get_id_by_host_name.c | 2 +-
-+ libknet/tests/api_knet_host_get_name_by_host_id.c | 2 +-
-+ libknet/tests/api_knet_host_get_policy.c | 2 +-
-+ libknet/tests/api_knet_host_get_status.c | 2 +-
-+ libknet/tests/api_knet_host_remove.c | 2 +-
-+ libknet/tests/api_knet_host_set_name.c | 2 +-
-+ libknet/tests/api_knet_host_set_policy.c | 2 +-
-+ libknet/tests/api_knet_link_add_acl.c | 2 +-
-+ libknet/tests/api_knet_link_clear_acl.c | 2 +-
-+ libknet/tests/api_knet_link_clear_config.c | 2 +-
-+ libknet/tests/api_knet_link_get_config.c | 2 +-
-+ libknet/tests/api_knet_link_get_enable.c | 2 +-
-+ libknet/tests/api_knet_link_get_link_list.c | 2 +-
-+ libknet/tests/api_knet_link_get_ping_timers.c | 2 +-
-+ libknet/tests/api_knet_link_get_pong_count.c | 2 +-
-+ libknet/tests/api_knet_link_get_priority.c | 2 +-
-+ libknet/tests/api_knet_link_get_status.c | 2 +-
-+ libknet/tests/api_knet_link_insert_acl.c | 2 +-
-+ libknet/tests/api_knet_link_rm_acl.c | 2 +-
-+ libknet/tests/api_knet_link_set_config.c | 2 +-
-+ libknet/tests/api_knet_link_set_enable.c | 2 +-
-+ libknet/tests/api_knet_link_set_ping_timers.c | 2 +-
-+ libknet/tests/api_knet_link_set_pong_count.c | 2 +-
-+ libknet/tests/api_knet_link_set_priority.c | 2 +-
-+ libknet/tests/api_knet_log_get_loglevel.c | 2 +-
-+ libknet/tests/api_knet_log_get_loglevel_id.c | 2 +-
-+ libknet/tests/api_knet_log_get_loglevel_name.c | 2 +-
-+ libknet/tests/api_knet_log_get_subsystem_id.c | 2 +-
-+ libknet/tests/api_knet_log_get_subsystem_name.c | 2 +-
-+ libknet/tests/api_knet_log_set_loglevel.c | 2 +-
-+ libknet/tests/api_knet_recv.c | 2 +-
-+ libknet/tests/api_knet_send.c | 2 +-
-+ libknet/tests/api_knet_send_compress.c | 2 +-
-+ libknet/tests/api_knet_send_crypto.c | 2 +-
-+ libknet/tests/api_knet_send_loopback.c | 2 +-
-+ libknet/tests/api_knet_send_sync.c | 2 +-
-+ libknet/tests/api_knet_strtoaddr.c | 2 +-
-+ libknet/tests/int_links_acl_ip.c | 2 +-
-+ libknet/tests/int_timediff.c | 2 +-
-+ libknet/tests/knet_bench.c | 2 +-
-+ libknet/tests/pckt_test.c | 2 +-
-+ libknet/tests/test-common.c | 2 +-
-+ libknet/threads_common.c | 2 +-
-+ libknet/threads_dsthandler.c | 2 +-
-+ libknet/threads_heartbeat.c | 2 +-
-+ libknet/threads_pmtud.c | 2 +-
-+ libknet/threads_rx.c | 2 +-
-+ libknet/threads_tx.c | 2 +-
-+ libknet/transport_common.c | 2 +-
-+ libknet/transport_loopback.c | 2 +-
-+ libknet/transport_sctp.c | 2 +-
-+ libknet/transport_udp.c | 2 +-
-+ libknet/transports.c | 2 +-
-+ libnozzle/internals.c | 2 +-
-+ libnozzle/libnozzle.c | 2 +-
-+ libnozzle/tests/api_nozzle_add_ip.c | 2 +-
-+ libnozzle/tests/api_nozzle_close.c | 2 +-
-+ libnozzle/tests/api_nozzle_del_ip.c | 2 +-
-+ libnozzle/tests/api_nozzle_get_fd.c | 2 +-
-+ libnozzle/tests/api_nozzle_get_handle_by_name.c | 2 +-
-+ libnozzle/tests/api_nozzle_get_ips.c | 2 +-
-+ libnozzle/tests/api_nozzle_get_mac.c | 2 +-
-+ libnozzle/tests/api_nozzle_get_mtu.c | 2 +-
-+ libnozzle/tests/api_nozzle_get_name_by_handle.c | 2 +-
-+ libnozzle/tests/api_nozzle_open.c | 2 +-
-+ libnozzle/tests/api_nozzle_run_updown.c | 2 +-
-+ libnozzle/tests/api_nozzle_set_down.c | 2 +-
-+ libnozzle/tests/api_nozzle_set_mac.c | 2 +-
-+ libnozzle/tests/api_nozzle_set_mtu.c | 2 +-
-+ libnozzle/tests/api_nozzle_set_up.c | 2 +-
-+ libnozzle/tests/int_execute_bin_sh_command.c | 2 +-
-+ libnozzle/tests/test-common.c | 2 +-
-+ man/doxyxml.c | 2 +-
-+ poc-code/iov-hash/main.c | 2 +-
-+ build-aux/check.mk | 2 +-
-+ build-aux/release.mk | 2 +-
-+ build-aux/update-copyright.sh | 4 ++--
-+ init/kronosnetd.default | 2 +-
-+ libknet/libknet_exported_syms | 2 +-
-+ libknet/tests/api-check.mk | 2 +-
-+ libknet/tests/api-test-coverage | 2 +-
-+ libnozzle/libnozzle_exported_syms | 2 +-
-+ libnozzle/tests/api-test-coverage | 2 +-
-+ libnozzle/tests/nozzle_run_updown_exit_false | 2 +-
-+ libnozzle/tests/nozzle_run_updown_exit_true | 2 +-
-+ man/api-to-man-page-coverage | 2 +-
-+ man/knet-keygen.8 | 2 +-
-+ man/kronosnetd.8 | 2 +-
-+ 208 files changed, 209 insertions(+), 209 deletions(-)
-+
-+diff --git a/README b/README
-+index 7b5e7ce..f8f3ea6 100644
-+--- a/README
-++++ b/README
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ Upstream resources
-+diff --git a/autogen.sh b/autogen.sh
-+index 8fb1e58..92e9483 100755
-+--- a/autogen.sh
-++++ b/autogen.sh
-+@@ -4,7 +4,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ # Run this to generate all the initial makefiles, etc.
-+diff --git a/configure.ac b/configure.ac
-+index 501053e..e962592 100644
-+--- a/configure.ac
-++++ b/configure.ac
-+@@ -4,7 +4,7 @@
-+ # Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ # Federico Simoncelli <fsimon at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ # -*- Autoconf -*-
-+diff --git a/Makefile.am b/Makefile.am
-+index 82cb1f5..dc5f8a5 100644
-+--- a/Makefile.am
-++++ b/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure depcomp \
-+diff --git a/init/Makefile.am b/init/Makefile.am
-+index 4d59a9e..fe0d9b0 100644
-+--- a/init/Makefile.am
-++++ b/init/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/kronosnetd/Makefile.am b/kronosnetd/Makefile.am
-+index 0b6f673..5ce8fa5 100644
-+--- a/kronosnetd/Makefile.am
-++++ b/kronosnetd/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in kronostnetd.logrotate
-+diff --git a/libknet/Makefile.am b/libknet/Makefile.am
-+index 8adcc40..d080732 100644
-+--- a/libknet/Makefile.am
-++++ b/libknet/Makefile.am
-+@@ -4,7 +4,7 @@
-+ # Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ # Federico Simoncelli <fsimon at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am
-+index 015587c..3346596 100644
-+--- a/libknet/tests/Makefile.am
-++++ b/libknet/tests/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/libnozzle/Makefile.am b/libnozzle/Makefile.am
-+index 2ffbd08..8ac438a 100644
-+--- a/libnozzle/Makefile.am
-++++ b/libnozzle/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/libnozzle/tests/Makefile.am b/libnozzle/tests/Makefile.am
-+index b9e16ae..cdc42a3 100644
-+--- a/libnozzle/tests/Makefile.am
-++++ b/libnozzle/tests/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/man/Makefile.am b/man/Makefile.am
-+index 0ad12f6..a473e90 100644
-+--- a/man/Makefile.am
-++++ b/man/Makefile.am
-+@@ -4,7 +4,7 @@
-+ # Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ # Federico Simoncelli <fsimon at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/poc-code/Makefile.am b/poc-code/Makefile.am
-+index 15d12f7..ddbea08 100644
-+--- a/poc-code/Makefile.am
-++++ b/poc-code/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/poc-code/iov-hash/Makefile.am b/poc-code/iov-hash/Makefile.am
-+index a41ed99..acd6b51 100644
-+--- a/poc-code/iov-hash/Makefile.am
-++++ b/poc-code/iov-hash/Makefile.am
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ MAINTAINERCLEANFILES = Makefile.in
-+diff --git a/kronosnetd/cfg.h b/kronosnetd/cfg.h
-+index 0260bff..56fa4d5 100644
-+--- a/kronosnetd/cfg.h
-++++ b/kronosnetd/cfg.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_CFG_H__
-+diff --git a/kronosnetd/etherfilter.h b/kronosnetd/etherfilter.h
-+index d805dd6..63e18b6 100644
-+--- a/kronosnetd/etherfilter.h
-++++ b/kronosnetd/etherfilter.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_ETHERFILTER_H__
-+diff --git a/kronosnetd/logging.h b/kronosnetd/logging.h
-+index e4d5ce2..1bc12b9 100644
-+--- a/kronosnetd/logging.h
-++++ b/kronosnetd/logging.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_LOGGING_H__
-+diff --git a/kronosnetd/vty.h b/kronosnetd/vty.h
-+index 86bd821..3c3e6e0 100644
-+--- a/kronosnetd/vty.h
-++++ b/kronosnetd/vty.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_VTY_H__
-+diff --git a/kronosnetd/vty_auth.h b/kronosnetd/vty_auth.h
-+index c42989b..58d75cb 100644
-+--- a/kronosnetd/vty_auth.h
-++++ b/kronosnetd/vty_auth.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_VTY_AUTH_H__
-+diff --git a/kronosnetd/vty_cli.h b/kronosnetd/vty_cli.h
-+index 9bbdcc7..0d7e515 100644
-+--- a/kronosnetd/vty_cli.h
-++++ b/kronosnetd/vty_cli.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_VTY_CLI_H__
-+diff --git a/kronosnetd/vty_cli_cmds.h b/kronosnetd/vty_cli_cmds.h
-+index ac07573..ba40ddf 100644
-+--- a/kronosnetd/vty_cli_cmds.h
-++++ b/kronosnetd/vty_cli_cmds.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_VTY_CLI_CMDS_H__
-+diff --git a/kronosnetd/vty_utils.h b/kronosnetd/vty_utils.h
-+index 07e339b..7ac318a 100644
-+--- a/kronosnetd/vty_utils.h
-++++ b/kronosnetd/vty_utils.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNETD_VTY_UTILS_H__
-+diff --git a/libknet/common.h b/libknet/common.h
-+index ddea7fc..6128b16 100644
-+--- a/libknet/common.h
-++++ b/libknet/common.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "internals.h"
-+diff --git a/libknet/compat.h b/libknet/compat.h
-+index e9af804..903fdfb 100644
-+--- a/libknet/compat.h
-++++ b/libknet/compat.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Jan Friesse <jfriesse at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_COMPAT_H__
-+diff --git a/libknet/compress.h b/libknet/compress.h
-+index 47edddf..d43a9d5 100644
-+--- a/libknet/compress.h
-++++ b/libknet/compress.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_COMPRESS_H__
-+diff --git a/libknet/compress_model.h b/libknet/compress_model.h
-+index 909f5a1..e69e491 100644
-+--- a/libknet/compress_model.h
-++++ b/libknet/compress_model.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_COMPRESS_MODEL_H__
-+diff --git a/libknet/crypto.h b/libknet/crypto.h
-+index 707de32..f80cb43 100644
-+--- a/libknet/crypto.h
-++++ b/libknet/crypto.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_CRYPTO_H__
-+diff --git a/libknet/crypto_model.h b/libknet/crypto_model.h
-+index 9bb4f17..70f6238 100644
-+--- a/libknet/crypto_model.h
-++++ b/libknet/crypto_model.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_CRYPTO_MODEL_H__
-+diff --git a/libknet/host.h b/libknet/host.h
-+index 4336b17..307b6e7 100644
-+--- a/libknet/host.h
-++++ b/libknet/host.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_HOST_H__
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 12f613c..3f105a1 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_INTERNALS_H__
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 907213f..acd1c86 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __LIBKNET_H__
-+diff --git a/libknet/links.h b/libknet/links.h
-+index 7c0250d..e14958d 100644
-+--- a/libknet/links.h
-++++ b/libknet/links.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_LINK_H__
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index 60f7812..4617c9b 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_LINKS_ACL_H__
-+diff --git a/libknet/links_acl_ip.h b/libknet/links_acl_ip.h
-+index b33ffb1..f566c1e 100644
-+--- a/libknet/links_acl_ip.h
-++++ b/libknet/links_acl_ip.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_LINKS_ACL_IP_H__
-+diff --git a/libknet/links_acl_loopback.h b/libknet/links_acl_loopback.h
-+index b51d2bf..d10764c 100644
-+--- a/libknet/links_acl_loopback.h
-++++ b/libknet/links_acl_loopback.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_LINKS_ACL_LOOPBACK_H__
-+diff --git a/libknet/logging.h b/libknet/logging.h
-+index bdcd85e..01dcaf1 100644
-+--- a/libknet/logging.h
-++++ b/libknet/logging.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_LOGGING_H__
-+diff --git a/libknet/netutils.h b/libknet/netutils.h
-+index bdc605e..b293115 100644
-+--- a/libknet/netutils.h
-++++ b/libknet/netutils.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_NETUTILS_H__
-+diff --git a/libknet/onwire.h b/libknet/onwire.h
-+index ea45bfb..9815bc3 100644
-+--- a/libknet/onwire.h
-++++ b/libknet/onwire.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_ONWIRE_H__
-+diff --git a/libknet/tests/test-common.h b/libknet/tests/test-common.h
-+index a498a09..f1375ab 100644
-+--- a/libknet/tests/test-common.h
-++++ b/libknet/tests/test-common.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __KNET_TEST_COMMON_H__
-+diff --git a/libknet/threads_common.h b/libknet/threads_common.h
-+index cff7691..596de14 100644
-+--- a/libknet/threads_common.h
-++++ b/libknet/threads_common.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_THREADS_COMMON_H__
-+diff --git a/libknet/threads_dsthandler.h b/libknet/threads_dsthandler.h
-+index 0c968ff..db9117c 100644
-+--- a/libknet/threads_dsthandler.h
-++++ b/libknet/threads_dsthandler.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_THREADS_DSTHANDLER_H__
-+diff --git a/libknet/threads_heartbeat.h b/libknet/threads_heartbeat.h
-+index 2fcc9a0..b2580d1 100644
-+--- a/libknet/threads_heartbeat.h
-++++ b/libknet/threads_heartbeat.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_THREADS_HEARTBEAT_H__
-+diff --git a/libknet/threads_pmtud.h b/libknet/threads_pmtud.h
-+index 2cdcdbc..5ed3155 100644
-+--- a/libknet/threads_pmtud.h
-++++ b/libknet/threads_pmtud.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_THREADS_PMTUD_H__
-+diff --git a/libknet/threads_rx.h b/libknet/threads_rx.h
-+index ff8bd6e..b88c098 100644
-+--- a/libknet/threads_rx.h
-++++ b/libknet/threads_rx.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_THREADS_RX_H__
-+diff --git a/libknet/threads_tx.h b/libknet/threads_tx.h
-+index 7c4b2c0..28c4958 100644
-+--- a/libknet/threads_tx.h
-++++ b/libknet/threads_tx.h
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_THREADS_TX_H__
-+diff --git a/libknet/transport_common.h b/libknet/transport_common.h
-+index 778af8b..0ca21d0 100644
-+--- a/libknet/transport_common.h
-++++ b/libknet/transport_common.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_TRANSPORT_COMMON_H__
-+diff --git a/libknet/transport_loopback.h b/libknet/transport_loopback.h
-+index 6ce3ed3..a848ff8 100644
-+--- a/libknet/transport_loopback.h
-++++ b/libknet/transport_loopback.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transport_sctp.h b/libknet/transport_sctp.h
-+index 83a638b..0b8f320 100644
-+--- a/libknet/transport_sctp.h
-++++ b/libknet/transport_sctp.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transport_udp.h b/libknet/transport_udp.h
-+index 6de18e3..1dec863 100644
-+--- a/libknet/transport_udp.h
-++++ b/libknet/transport_udp.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transports.h b/libknet/transports.h
-+index 38f69ba..3a29ce6 100644
-+--- a/libknet/transports.h
-++++ b/libknet/transports.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __KNET_TRANSPORTS_H__
-+diff --git a/libnozzle/internals.h b/libnozzle/internals.h
-+index 853e14e..c9192a8 100644
-+--- a/libnozzle/internals.h
-++++ b/libnozzle/internals.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __NOZZLE_INTERNALS_H__
-+diff --git a/libnozzle/libnozzle.h b/libnozzle/libnozzle.h
-+index b8ab7d6..ad7c474 100644
-+--- a/libnozzle/libnozzle.h
-++++ b/libnozzle/libnozzle.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #ifndef __LIBNOZZLE_H__
-+diff --git a/libnozzle/tests/test-common.h b/libnozzle/tests/test-common.h
-+index 4562ea2..fcfafef 100644
-+--- a/libnozzle/tests/test-common.h
-++++ b/libnozzle/tests/test-common.h
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #ifndef __NOZZLE_TEST_COMMON_H__
-+diff --git a/init/kronosnetd.in b/init/kronosnetd.in
-+index 1823a3b..1da3273 100644
-+--- a/init/kronosnetd.in
-++++ b/init/kronosnetd.in
-+@@ -5,7 +5,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ # chkconfig: - 20 80
-+diff --git a/init/kronosnetd.service.in b/init/kronosnetd.service.in
-+index 4d2a32a..cfc80f7 100644
-+--- a/init/kronosnetd.service.in
-++++ b/init/kronosnetd.service.in
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ [Unit]
-+diff --git a/kronosnetd/kronosnetd.logrotate.in b/kronosnetd/kronosnetd.logrotate.in
-+index 4ed1fd2..a8a6969 100644
-+--- a/kronosnetd/kronosnetd.logrotate.in
-++++ b/kronosnetd/kronosnetd.logrotate.in
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ @LOGDIR at kronosnetd.log {
-+diff --git a/libknet/libknet.pc.in b/libknet/libknet.pc.in
-+index bb7b25c..021b2c4 100644
-+--- a/libknet/libknet.pc.in
-++++ b/libknet/libknet.pc.in
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Federico Simoncelli <fsimon at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under LGPL-2.0+
-+ #
-+
-+ prefix=@prefix@
-+diff --git a/libnozzle/libnozzle.pc.in b/libnozzle/libnozzle.pc.in
-+index d6b2a15..9df0918 100644
-+--- a/libnozzle/libnozzle.pc.in
-++++ b/libnozzle/libnozzle.pc.in
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under LGPL-2.0+
-+ #
-+
-+ prefix=@prefix@
-+diff --git a/man/Doxyfile-knet.in b/man/Doxyfile-knet.in
-+index f78e313..4750c9a 100644
-+--- a/man/Doxyfile-knet.in
-++++ b/man/Doxyfile-knet.in
-+@@ -4,7 +4,7 @@
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ # Christine Caulfield <ccaulfie at redhat.com>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+ PROJECT_NAME = @PACKAGE_NAME@
-+ PROJECT_NUMBER = @PACKAGE_VERSION@
-+diff --git a/man/Doxyfile-nozzle.in b/man/Doxyfile-nozzle.in
-+index 2855e50..793d49d 100644
-+--- a/man/Doxyfile-nozzle.in
-++++ b/man/Doxyfile-nozzle.in
-+@@ -4,7 +4,7 @@
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ # Christine Caulfield <ccaulfie at redhat.com>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+ PROJECT_NAME = @PACKAGE_NAME@
-+ PROJECT_NUMBER = @PACKAGE_VERSION@
-+diff --git a/kronosnetd/cfg.c b/kronosnetd/cfg.c
-+index 69d209a..406532a 100644
-+--- a/kronosnetd/cfg.c
-++++ b/kronosnetd/cfg.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/etherfilter.c b/kronosnetd/etherfilter.c
-+index 8542061..5f0d9fb 100644
-+--- a/kronosnetd/etherfilter.c
-++++ b/kronosnetd/etherfilter.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/keygen.c b/kronosnetd/keygen.c
-+index eb91473..42706ad 100644
-+--- a/kronosnetd/keygen.c
-++++ b/kronosnetd/keygen.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/logging.c b/kronosnetd/logging.c
-+index b3ef0d1..9c141cd 100644
-+--- a/kronosnetd/logging.c
-++++ b/kronosnetd/logging.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/main.c b/kronosnetd/main.c
-+index c1a8c2b..ec43871 100644
-+--- a/kronosnetd/main.c
-++++ b/kronosnetd/main.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/vty.c b/kronosnetd/vty.c
-+index d624bf4..2c5d4d3 100644
-+--- a/kronosnetd/vty.c
-++++ b/kronosnetd/vty.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/vty_auth.c b/kronosnetd/vty_auth.c
-+index cf997f9..30e0929 100644
-+--- a/kronosnetd/vty_auth.c
-++++ b/kronosnetd/vty_auth.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/vty_cli.c b/kronosnetd/vty_cli.c
-+index 68ff0da..95e4c8f 100644
-+--- a/kronosnetd/vty_cli.c
-++++ b/kronosnetd/vty_cli.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/vty_cli_cmds.c b/kronosnetd/vty_cli_cmds.c
-+index 18b11a0..e5ad496 100644
-+--- a/kronosnetd/vty_cli_cmds.c
-++++ b/kronosnetd/vty_cli_cmds.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/kronosnetd/vty_utils.c b/kronosnetd/vty_utils.c
-+index 3c5cc86..2cf5117 100644
-+--- a/kronosnetd/vty_utils.c
-++++ b/kronosnetd/vty_utils.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/common.c b/libknet/common.c
-+index be46f23..30e537e 100644
-+--- a/libknet/common.c
-++++ b/libknet/common.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/compat.c b/libknet/compat.c
-+index a60bca2..e808f33 100644
-+--- a/libknet/compat.c
-++++ b/libknet/compat.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Jan Friesse <jfriesse at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/compress.c b/libknet/compress.c
-+index 864828f..24755c7 100644
-+--- a/libknet/compress.c
-++++ b/libknet/compress.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/compress_bzip2.c b/libknet/compress_bzip2.c
-+index 521e206..5a972ff 100644
-+--- a/libknet/compress_bzip2.c
-++++ b/libknet/compress_bzip2.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/compress_lz4.c b/libknet/compress_lz4.c
-+index 22b926f..60aa196 100644
-+--- a/libknet/compress_lz4.c
-++++ b/libknet/compress_lz4.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/compress_lz4hc.c b/libknet/compress_lz4hc.c
-+index 9a69ab4..781bf12 100644
-+--- a/libknet/compress_lz4hc.c
-++++ b/libknet/compress_lz4hc.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/compress_lzma.c b/libknet/compress_lzma.c
-+index e9ba2e3..7fdd178 100644
-+--- a/libknet/compress_lzma.c
-++++ b/libknet/compress_lzma.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/compress_lzo2.c b/libknet/compress_lzo2.c
-+index e66d3dc..12066ed 100644
-+--- a/libknet/compress_lzo2.c
-++++ b/libknet/compress_lzo2.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/compress_zlib.c b/libknet/compress_zlib.c
-+index 8807bb4..2fb12f5 100644
-+--- a/libknet/compress_zlib.c
-++++ b/libknet/compress_zlib.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/compress_zstd.c b/libknet/compress_zstd.c
-+index 6f9b499..f76ea5f 100644
-+--- a/libknet/compress_zstd.c
-++++ b/libknet/compress_zstd.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/crypto.c b/libknet/crypto.c
-+index 6c340f5..9f05fba 100644
-+--- a/libknet/crypto.c
-++++ b/libknet/crypto.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/crypto_nss.c b/libknet/crypto_nss.c
-+index 5c3a437..330b40c 100644
-+--- a/libknet/crypto_nss.c
-++++ b/libknet/crypto_nss.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/crypto_openssl.c b/libknet/crypto_openssl.c
-+index 999ed93..0cbc6f5 100644
-+--- a/libknet/crypto_openssl.c
-++++ b/libknet/crypto_openssl.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+ #define KNET_MODULE
-+
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index 251d332..4835e99 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/host.c b/libknet/host.c
-+index 66826c1..abb1f89 100644
-+--- a/libknet/host.c
-++++ b/libknet/host.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 8011a6d..4ec308c 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 776408a..eb77e7b 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index 9310f21..e479bbd 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/links_acl_loopback.c b/libknet/links_acl_loopback.c
-+index 044a51c..0a0adec 100644
-+--- a/libknet/links_acl_loopback.c
-++++ b/libknet/links_acl_loopback.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/logging.c b/libknet/logging.c
-+index 5c91257..2efee1b 100644
-+--- a/libknet/logging.c
-++++ b/libknet/logging.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/netutils.c b/libknet/netutils.c
-+index 72bc659..e37f4fe 100644
-+--- a/libknet/netutils.c
-++++ b/libknet/netutils.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_addrtostr.c b/libknet/tests/api_knet_addrtostr.c
-+index 9adbf31..9cdf502 100644
-+--- a/libknet/tests/api_knet_addrtostr.c
-++++ b/libknet/tests/api_knet_addrtostr.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_get_compress_list.c b/libknet/tests/api_knet_get_compress_list.c
-+index 230e203..53e4192 100644
-+--- a/libknet/tests/api_knet_get_compress_list.c
-++++ b/libknet/tests/api_knet_get_compress_list.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_get_crypto_list.c b/libknet/tests/api_knet_get_crypto_list.c
-+index 4121aa4..760adab 100644
-+--- a/libknet/tests/api_knet_get_crypto_list.c
-++++ b/libknet/tests/api_knet_get_crypto_list.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_get_transport_id_by_name.c b/libknet/tests/api_knet_get_transport_id_by_name.c
-+index 973814f..9bcd673 100644
-+--- a/libknet/tests/api_knet_get_transport_id_by_name.c
-++++ b/libknet/tests/api_knet_get_transport_id_by_name.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_get_transport_list.c b/libknet/tests/api_knet_get_transport_list.c
-+index c748901..9ab5c10 100644
-+--- a/libknet/tests/api_knet_get_transport_list.c
-++++ b/libknet/tests/api_knet_get_transport_list.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_get_transport_name_by_id.c b/libknet/tests/api_knet_get_transport_name_by_id.c
-+index a797cec..3233a1d 100644
-+--- a/libknet/tests/api_knet_get_transport_name_by_id.c
-++++ b/libknet/tests/api_knet_get_transport_name_by_id.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_add_datafd.c b/libknet/tests/api_knet_handle_add_datafd.c
-+index 7159399..3088797 100644
-+--- a/libknet/tests/api_knet_handle_add_datafd.c
-++++ b/libknet/tests/api_knet_handle_add_datafd.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_clear_stats.c b/libknet/tests/api_knet_handle_clear_stats.c
-+index 07f059a..0867b13 100644
-+--- a/libknet/tests/api_knet_handle_clear_stats.c
-++++ b/libknet/tests/api_knet_handle_clear_stats.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_compress.c b/libknet/tests/api_knet_handle_compress.c
-+index 1525e6a..40b6f39 100644
-+--- a/libknet/tests/api_knet_handle_compress.c
-++++ b/libknet/tests/api_knet_handle_compress.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_crypto.c b/libknet/tests/api_knet_handle_crypto.c
-+index 9dbf5bc..1eed96e 100644
-+--- a/libknet/tests/api_knet_handle_crypto.c
-++++ b/libknet/tests/api_knet_handle_crypto.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_enable_access_lists.c b/libknet/tests/api_knet_handle_enable_access_lists.c
-+index d08f175..be54bc4 100644
-+--- a/libknet/tests/api_knet_handle_enable_access_lists.c
-++++ b/libknet/tests/api_knet_handle_enable_access_lists.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_enable_filter.c b/libknet/tests/api_knet_handle_enable_filter.c
-+index 63b2166..e518b42 100644
-+--- a/libknet/tests/api_knet_handle_enable_filter.c
-++++ b/libknet/tests/api_knet_handle_enable_filter.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_enable_pmtud_notify.c b/libknet/tests/api_knet_handle_enable_pmtud_notify.c
-+index 726c2cc..f11abc3 100644
-+--- a/libknet/tests/api_knet_handle_enable_pmtud_notify.c
-++++ b/libknet/tests/api_knet_handle_enable_pmtud_notify.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_enable_sock_notify.c b/libknet/tests/api_knet_handle_enable_sock_notify.c
-+index 9c90600..adefb5a 100644
-+--- a/libknet/tests/api_knet_handle_enable_sock_notify.c
-++++ b/libknet/tests/api_knet_handle_enable_sock_notify.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_free.c b/libknet/tests/api_knet_handle_free.c
-+index 75319fc..53b6dc6 100644
-+--- a/libknet/tests/api_knet_handle_free.c
-++++ b/libknet/tests/api_knet_handle_free.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_get_channel.c b/libknet/tests/api_knet_handle_get_channel.c
-+index 3ade302..0196136 100644
-+--- a/libknet/tests/api_knet_handle_get_channel.c
-++++ b/libknet/tests/api_knet_handle_get_channel.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_get_datafd.c b/libknet/tests/api_knet_handle_get_datafd.c
-+index 8838b69..57aedf5 100644
-+--- a/libknet/tests/api_knet_handle_get_datafd.c
-++++ b/libknet/tests/api_knet_handle_get_datafd.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_get_stats.c b/libknet/tests/api_knet_handle_get_stats.c
-+index e8a83b4..38a0c97 100644
-+--- a/libknet/tests/api_knet_handle_get_stats.c
-++++ b/libknet/tests/api_knet_handle_get_stats.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_get_transport_reconnect_interval.c b/libknet/tests/api_knet_handle_get_transport_reconnect_interval.c
-+index 7a43823..f013a5b 100644
-+--- a/libknet/tests/api_knet_handle_get_transport_reconnect_interval.c
-++++ b/libknet/tests/api_knet_handle_get_transport_reconnect_interval.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_new.c b/libknet/tests/api_knet_handle_new.c
-+index b7af566..9559d4a 100644
-+--- a/libknet/tests/api_knet_handle_new.c
-++++ b/libknet/tests/api_knet_handle_new.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_new_limit.c b/libknet/tests/api_knet_handle_new_limit.c
-+index d51db97..fc3bdcd 100644
-+--- a/libknet/tests/api_knet_handle_new_limit.c
-++++ b/libknet/tests/api_knet_handle_new_limit.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_pmtud_get.c b/libknet/tests/api_knet_handle_pmtud_get.c
-+index a1b1d12..803a288 100644
-+--- a/libknet/tests/api_knet_handle_pmtud_get.c
-++++ b/libknet/tests/api_knet_handle_pmtud_get.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_pmtud_getfreq.c b/libknet/tests/api_knet_handle_pmtud_getfreq.c
-+index 5c5c7e0..23e3239 100644
-+--- a/libknet/tests/api_knet_handle_pmtud_getfreq.c
-++++ b/libknet/tests/api_knet_handle_pmtud_getfreq.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_pmtud_setfreq.c b/libknet/tests/api_knet_handle_pmtud_setfreq.c
-+index b4eebda..2a720c3 100644
-+--- a/libknet/tests/api_knet_handle_pmtud_setfreq.c
-++++ b/libknet/tests/api_knet_handle_pmtud_setfreq.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_remove_datafd.c b/libknet/tests/api_knet_handle_remove_datafd.c
-+index 08a42ab..ace5df7 100644
-+--- a/libknet/tests/api_knet_handle_remove_datafd.c
-++++ b/libknet/tests/api_knet_handle_remove_datafd.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_set_transport_reconnect_interval.c b/libknet/tests/api_knet_handle_set_transport_reconnect_interval.c
-+index 80bbacb..c561559 100644
-+--- a/libknet/tests/api_knet_handle_set_transport_reconnect_interval.c
-++++ b/libknet/tests/api_knet_handle_set_transport_reconnect_interval.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_handle_setfwd.c b/libknet/tests/api_knet_handle_setfwd.c
-+index 9658075..21a5c9f 100644
-+--- a/libknet/tests/api_knet_handle_setfwd.c
-++++ b/libknet/tests/api_knet_handle_setfwd.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_add.c b/libknet/tests/api_knet_host_add.c
-+index 762d0df..65104f5 100644
-+--- a/libknet/tests/api_knet_host_add.c
-++++ b/libknet/tests/api_knet_host_add.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_enable_status_change_notify.c b/libknet/tests/api_knet_host_enable_status_change_notify.c
-+index 96d133d..b0467a5 100644
-+--- a/libknet/tests/api_knet_host_enable_status_change_notify.c
-++++ b/libknet/tests/api_knet_host_enable_status_change_notify.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_get_host_list.c b/libknet/tests/api_knet_host_get_host_list.c
-+index 76fb23b..fc573bb 100644
-+--- a/libknet/tests/api_knet_host_get_host_list.c
-++++ b/libknet/tests/api_knet_host_get_host_list.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_get_id_by_host_name.c b/libknet/tests/api_knet_host_get_id_by_host_name.c
-+index 81ad504..745dbfa 100644
-+--- a/libknet/tests/api_knet_host_get_id_by_host_name.c
-++++ b/libknet/tests/api_knet_host_get_id_by_host_name.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_get_name_by_host_id.c b/libknet/tests/api_knet_host_get_name_by_host_id.c
-+index d239821..4604525 100644
-+--- a/libknet/tests/api_knet_host_get_name_by_host_id.c
-++++ b/libknet/tests/api_knet_host_get_name_by_host_id.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_get_policy.c b/libknet/tests/api_knet_host_get_policy.c
-+index 3160503..8511815 100644
-+--- a/libknet/tests/api_knet_host_get_policy.c
-++++ b/libknet/tests/api_knet_host_get_policy.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_get_status.c b/libknet/tests/api_knet_host_get_status.c
-+index b13c57a..3b46f0c 100644
-+--- a/libknet/tests/api_knet_host_get_status.c
-++++ b/libknet/tests/api_knet_host_get_status.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_remove.c b/libknet/tests/api_knet_host_remove.c
-+index 12d1f8f..36dd47c 100644
-+--- a/libknet/tests/api_knet_host_remove.c
-++++ b/libknet/tests/api_knet_host_remove.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_set_name.c b/libknet/tests/api_knet_host_set_name.c
-+index 88d6ce9..c899d33 100644
-+--- a/libknet/tests/api_knet_host_set_name.c
-++++ b/libknet/tests/api_knet_host_set_name.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_host_set_policy.c b/libknet/tests/api_knet_host_set_policy.c
-+index 41102d2..2583114 100644
-+--- a/libknet/tests/api_knet_host_set_policy.c
-++++ b/libknet/tests/api_knet_host_set_policy.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_add_acl.c b/libknet/tests/api_knet_link_add_acl.c
-+index ff7a2e2..52d6022 100644
-+--- a/libknet/tests/api_knet_link_add_acl.c
-++++ b/libknet/tests/api_knet_link_add_acl.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_clear_acl.c b/libknet/tests/api_knet_link_clear_acl.c
-+index 234a76b..3516b4d 100644
-+--- a/libknet/tests/api_knet_link_clear_acl.c
-++++ b/libknet/tests/api_knet_link_clear_acl.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_clear_config.c b/libknet/tests/api_knet_link_clear_config.c
-+index 8d7800d..ff9c473 100644
-+--- a/libknet/tests/api_knet_link_clear_config.c
-++++ b/libknet/tests/api_knet_link_clear_config.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_get_config.c b/libknet/tests/api_knet_link_get_config.c
-+index 111b406..60a56fd 100644
-+--- a/libknet/tests/api_knet_link_get_config.c
-++++ b/libknet/tests/api_knet_link_get_config.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_get_enable.c b/libknet/tests/api_knet_link_get_enable.c
-+index 410c017..b0e1348 100644
-+--- a/libknet/tests/api_knet_link_get_enable.c
-++++ b/libknet/tests/api_knet_link_get_enable.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_get_link_list.c b/libknet/tests/api_knet_link_get_link_list.c
-+index e3dd73e..6114f83 100644
-+--- a/libknet/tests/api_knet_link_get_link_list.c
-++++ b/libknet/tests/api_knet_link_get_link_list.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_get_ping_timers.c b/libknet/tests/api_knet_link_get_ping_timers.c
-+index 5f0e9b1..414619f 100644
-+--- a/libknet/tests/api_knet_link_get_ping_timers.c
-++++ b/libknet/tests/api_knet_link_get_ping_timers.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_get_pong_count.c b/libknet/tests/api_knet_link_get_pong_count.c
-+index bbc993d..e032b96 100644
-+--- a/libknet/tests/api_knet_link_get_pong_count.c
-++++ b/libknet/tests/api_knet_link_get_pong_count.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_get_priority.c b/libknet/tests/api_knet_link_get_priority.c
-+index 29d7d2e..80538fe 100644
-+--- a/libknet/tests/api_knet_link_get_priority.c
-++++ b/libknet/tests/api_knet_link_get_priority.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_get_status.c b/libknet/tests/api_knet_link_get_status.c
-+index fe56734..5139692 100644
-+--- a/libknet/tests/api_knet_link_get_status.c
-++++ b/libknet/tests/api_knet_link_get_status.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_insert_acl.c b/libknet/tests/api_knet_link_insert_acl.c
-+index 79d04df..2f55c16 100644
-+--- a/libknet/tests/api_knet_link_insert_acl.c
-++++ b/libknet/tests/api_knet_link_insert_acl.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_rm_acl.c b/libknet/tests/api_knet_link_rm_acl.c
-+index d132c54..7217a4f 100644
-+--- a/libknet/tests/api_knet_link_rm_acl.c
-++++ b/libknet/tests/api_knet_link_rm_acl.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_set_config.c b/libknet/tests/api_knet_link_set_config.c
-+index b96c628..c43a4de 100644
-+--- a/libknet/tests/api_knet_link_set_config.c
-++++ b/libknet/tests/api_knet_link_set_config.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_set_enable.c b/libknet/tests/api_knet_link_set_enable.c
-+index f48f1c0..17e6e03 100644
-+--- a/libknet/tests/api_knet_link_set_enable.c
-++++ b/libknet/tests/api_knet_link_set_enable.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_set_ping_timers.c b/libknet/tests/api_knet_link_set_ping_timers.c
-+index d823a81..46170f6 100644
-+--- a/libknet/tests/api_knet_link_set_ping_timers.c
-++++ b/libknet/tests/api_knet_link_set_ping_timers.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_set_pong_count.c b/libknet/tests/api_knet_link_set_pong_count.c
-+index 70fc57f..b8974e3 100644
-+--- a/libknet/tests/api_knet_link_set_pong_count.c
-++++ b/libknet/tests/api_knet_link_set_pong_count.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_link_set_priority.c b/libknet/tests/api_knet_link_set_priority.c
-+index a89392e..aac0ea2 100644
-+--- a/libknet/tests/api_knet_link_set_priority.c
-++++ b/libknet/tests/api_knet_link_set_priority.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_log_get_loglevel.c b/libknet/tests/api_knet_log_get_loglevel.c
-+index 4a62ead..4d4a52c 100644
-+--- a/libknet/tests/api_knet_log_get_loglevel.c
-++++ b/libknet/tests/api_knet_log_get_loglevel.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_log_get_loglevel_id.c b/libknet/tests/api_knet_log_get_loglevel_id.c
-+index 1053dff..379ba71 100644
-+--- a/libknet/tests/api_knet_log_get_loglevel_id.c
-++++ b/libknet/tests/api_knet_log_get_loglevel_id.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_log_get_loglevel_name.c b/libknet/tests/api_knet_log_get_loglevel_name.c
-+index 317ebb1..ef19af2 100644
-+--- a/libknet/tests/api_knet_log_get_loglevel_name.c
-++++ b/libknet/tests/api_knet_log_get_loglevel_name.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_log_get_subsystem_id.c b/libknet/tests/api_knet_log_get_subsystem_id.c
-+index 0b47805..cff9e8a 100644
-+--- a/libknet/tests/api_knet_log_get_subsystem_id.c
-++++ b/libknet/tests/api_knet_log_get_subsystem_id.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_log_get_subsystem_name.c b/libknet/tests/api_knet_log_get_subsystem_name.c
-+index 1b11fe6..0384730 100644
-+--- a/libknet/tests/api_knet_log_get_subsystem_name.c
-++++ b/libknet/tests/api_knet_log_get_subsystem_name.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_log_set_loglevel.c b/libknet/tests/api_knet_log_set_loglevel.c
-+index e729113..7a9232a 100644
-+--- a/libknet/tests/api_knet_log_set_loglevel.c
-++++ b/libknet/tests/api_knet_log_set_loglevel.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_recv.c b/libknet/tests/api_knet_recv.c
-+index 6e23353..99bd7bc 100644
-+--- a/libknet/tests/api_knet_recv.c
-++++ b/libknet/tests/api_knet_recv.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_send.c b/libknet/tests/api_knet_send.c
-+index ca16e3d..ab9715a 100644
-+--- a/libknet/tests/api_knet_send.c
-++++ b/libknet/tests/api_knet_send.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_send_compress.c b/libknet/tests/api_knet_send_compress.c
-+index b03f4e7..6d5f445 100644
-+--- a/libknet/tests/api_knet_send_compress.c
-++++ b/libknet/tests/api_knet_send_compress.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_send_crypto.c b/libknet/tests/api_knet_send_crypto.c
-+index e33a808..11de857 100644
-+--- a/libknet/tests/api_knet_send_crypto.c
-++++ b/libknet/tests/api_knet_send_crypto.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_send_loopback.c b/libknet/tests/api_knet_send_loopback.c
-+index 2feca68..741b51d 100644
-+--- a/libknet/tests/api_knet_send_loopback.c
-++++ b/libknet/tests/api_knet_send_loopback.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_send_sync.c b/libknet/tests/api_knet_send_sync.c
-+index f2718c9..96cb716 100644
-+--- a/libknet/tests/api_knet_send_sync.c
-++++ b/libknet/tests/api_knet_send_sync.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/api_knet_strtoaddr.c b/libknet/tests/api_knet_strtoaddr.c
-+index 57a8a0a..a0be1da 100644
-+--- a/libknet/tests/api_knet_strtoaddr.c
-++++ b/libknet/tests/api_knet_strtoaddr.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/int_links_acl_ip.c b/libknet/tests/int_links_acl_ip.c
-+index 93dff63..41e7d59 100644
-+--- a/libknet/tests/int_links_acl_ip.c
-++++ b/libknet/tests/int_links_acl_ip.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/int_timediff.c b/libknet/tests/int_timediff.c
-+index 12735d8..a878a31 100644
-+--- a/libknet/tests/int_timediff.c
-++++ b/libknet/tests/int_timediff.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/knet_bench.c b/libknet/tests/knet_bench.c
-+index 00cd58b..dfe5238 100644
-+--- a/libknet/tests/knet_bench.c
-++++ b/libknet/tests/knet_bench.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/tests/pckt_test.c b/libknet/tests/pckt_test.c
-+index 56cf018..f3e2100 100644
-+--- a/libknet/tests/pckt_test.c
-++++ b/libknet/tests/pckt_test.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include <stdio.h>
-+diff --git a/libknet/tests/test-common.c b/libknet/tests/test-common.c
-+index a4ff297..cd3f6c4 100644
-+--- a/libknet/tests/test-common.c
-++++ b/libknet/tests/test-common.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/threads_common.c b/libknet/threads_common.c
-+index 53a6f9f..1f3e1e3 100644
-+--- a/libknet/threads_common.c
-++++ b/libknet/threads_common.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/threads_dsthandler.c b/libknet/threads_dsthandler.c
-+index 2633188..0776107 100644
-+--- a/libknet/threads_dsthandler.c
-++++ b/libknet/threads_dsthandler.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/threads_heartbeat.c b/libknet/threads_heartbeat.c
-+index 8def9b8..8f8a7ec 100644
-+--- a/libknet/threads_heartbeat.c
-++++ b/libknet/threads_heartbeat.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/threads_pmtud.c b/libknet/threads_pmtud.c
-+index b4ee632..603f595 100644
-+--- a/libknet/threads_pmtud.c
-++++ b/libknet/threads_pmtud.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index 626cbc4..b2a5dad 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/threads_tx.c b/libknet/threads_tx.c
-+index 8096906..32d65d5 100644
-+--- a/libknet/threads_tx.c
-++++ b/libknet/threads_tx.c
-+@@ -4,7 +4,7 @@
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ * Federico Simoncelli <fsimon at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transport_common.c b/libknet/transport_common.c
-+index fe40ad8..7286643 100644
-+--- a/libknet/transport_common.c
-++++ b/libknet/transport_common.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transport_loopback.c b/libknet/transport_loopback.c
-+index 54129d7..17253f5 100644
-+--- a/libknet/transport_loopback.c
-++++ b/libknet/transport_loopback.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index 2c1cdcc..d97d6f9 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transport_udp.c b/libknet/transport_udp.c
-+index 1537438..53d2ba0 100644
-+--- a/libknet/transport_udp.c
-++++ b/libknet/transport_udp.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libknet/transports.c b/libknet/transports.c
-+index 51712df..93119c5 100644
-+--- a/libknet/transports.c
-++++ b/libknet/transports.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/internals.c b/libnozzle/internals.c
-+index f056e3b..53c0cdb 100644
-+--- a/libnozzle/internals.c
-++++ b/libnozzle/internals.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/libnozzle.c b/libnozzle/libnozzle.c
-+index b6e9566..15863ec 100644
-+--- a/libnozzle/libnozzle.c
-++++ b/libnozzle/libnozzle.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under LGPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_add_ip.c b/libnozzle/tests/api_nozzle_add_ip.c
-+index bb81ba7..a9d76c6 100644
-+--- a/libnozzle/tests/api_nozzle_add_ip.c
-++++ b/libnozzle/tests/api_nozzle_add_ip.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_close.c b/libnozzle/tests/api_nozzle_close.c
-+index f1cbc77..7ba17c4 100644
-+--- a/libnozzle/tests/api_nozzle_close.c
-++++ b/libnozzle/tests/api_nozzle_close.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_del_ip.c b/libnozzle/tests/api_nozzle_del_ip.c
-+index 0178bb0..625484f 100644
-+--- a/libnozzle/tests/api_nozzle_del_ip.c
-++++ b/libnozzle/tests/api_nozzle_del_ip.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_get_fd.c b/libnozzle/tests/api_nozzle_get_fd.c
-+index 9b29faf..5dc5b4c 100644
-+--- a/libnozzle/tests/api_nozzle_get_fd.c
-++++ b/libnozzle/tests/api_nozzle_get_fd.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_get_handle_by_name.c b/libnozzle/tests/api_nozzle_get_handle_by_name.c
-+index 83c39bb..1fa5a0a 100644
-+--- a/libnozzle/tests/api_nozzle_get_handle_by_name.c
-++++ b/libnozzle/tests/api_nozzle_get_handle_by_name.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_get_ips.c b/libnozzle/tests/api_nozzle_get_ips.c
-+index c41024f..446a79a 100644
-+--- a/libnozzle/tests/api_nozzle_get_ips.c
-++++ b/libnozzle/tests/api_nozzle_get_ips.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_get_mac.c b/libnozzle/tests/api_nozzle_get_mac.c
-+index 1318ba5..f4c72cc 100644
-+--- a/libnozzle/tests/api_nozzle_get_mac.c
-++++ b/libnozzle/tests/api_nozzle_get_mac.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_get_mtu.c b/libnozzle/tests/api_nozzle_get_mtu.c
-+index 07b05ee..1b1f85e 100644
-+--- a/libnozzle/tests/api_nozzle_get_mtu.c
-++++ b/libnozzle/tests/api_nozzle_get_mtu.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_get_name_by_handle.c b/libnozzle/tests/api_nozzle_get_name_by_handle.c
-+index 5b8152b..0fe9eb4 100644
-+--- a/libnozzle/tests/api_nozzle_get_name_by_handle.c
-++++ b/libnozzle/tests/api_nozzle_get_name_by_handle.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_open.c b/libnozzle/tests/api_nozzle_open.c
-+index ee15316..413f2c2 100644
-+--- a/libnozzle/tests/api_nozzle_open.c
-++++ b/libnozzle/tests/api_nozzle_open.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_run_updown.c b/libnozzle/tests/api_nozzle_run_updown.c
-+index c80216a..1536b5b 100644
-+--- a/libnozzle/tests/api_nozzle_run_updown.c
-++++ b/libnozzle/tests/api_nozzle_run_updown.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_set_down.c b/libnozzle/tests/api_nozzle_set_down.c
-+index 90623ba..9466bdb 100644
-+--- a/libnozzle/tests/api_nozzle_set_down.c
-++++ b/libnozzle/tests/api_nozzle_set_down.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_set_mac.c b/libnozzle/tests/api_nozzle_set_mac.c
-+index dba7d49..244e866 100644
-+--- a/libnozzle/tests/api_nozzle_set_mac.c
-++++ b/libnozzle/tests/api_nozzle_set_mac.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_set_mtu.c b/libnozzle/tests/api_nozzle_set_mtu.c
-+index fc8ee1c..ce4ccbb 100644
-+--- a/libnozzle/tests/api_nozzle_set_mtu.c
-++++ b/libnozzle/tests/api_nozzle_set_mtu.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/api_nozzle_set_up.c b/libnozzle/tests/api_nozzle_set_up.c
-+index d8de39d..d258b6a 100644
-+--- a/libnozzle/tests/api_nozzle_set_up.c
-++++ b/libnozzle/tests/api_nozzle_set_up.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/int_execute_bin_sh_command.c b/libnozzle/tests/int_execute_bin_sh_command.c
-+index 87531c0..97422a2 100644
-+--- a/libnozzle/tests/int_execute_bin_sh_command.c
-++++ b/libnozzle/tests/int_execute_bin_sh_command.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/libnozzle/tests/test-common.c b/libnozzle/tests/test-common.c
-+index c84aac1..b36be79 100644
-+--- a/libnozzle/tests/test-common.c
-++++ b/libnozzle/tests/test-common.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ #include "config.h"
-+diff --git a/man/doxyxml.c b/man/doxyxml.c
-+index 7d9a60c..2f28976 100644
-+--- a/man/doxyxml.c
-++++ b/man/doxyxml.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+
-+diff --git a/poc-code/iov-hash/main.c b/poc-code/iov-hash/main.c
-+index 61d2e12..fa407a2 100644
-+--- a/poc-code/iov-hash/main.c
-++++ b/poc-code/iov-hash/main.c
-+@@ -3,7 +3,7 @@
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-++ * This software licensed under GPL-2.0+
-+ */
-+
-+ /* Example code to illustrate DES enccryption/decryption using NSS.
-+diff --git a/build-aux/check.mk b/build-aux/check.mk
-+index 6da4417..f42e552 100644
-+--- a/build-aux/check.mk
-++++ b/build-aux/check.mk
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ VALGRIND = $(VALGRIND_EXEC) -q --error-exitcode=127 --gen-suppressions=all
-+diff --git a/build-aux/release.mk b/build-aux/release.mk
-+index de3599d..003125d 100644
-+--- a/build-aux/release.mk
-++++ b/build-aux/release.mk
-+@@ -3,7 +3,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ # to build official release tarballs, handle tagging and publish.
-+diff --git a/build-aux/update-copyright.sh b/build-aux/update-copyright.sh
-+index fd50f8e..62c449c 100755
-+--- a/build-aux/update-copyright.sh
-++++ b/build-aux/update-copyright.sh
-+@@ -1,10 +1,10 @@
-+ #!/bin/sh
-+ #
-+-# Copyright (C) 2017 Red Hat, Inc. All rights reserved.
-++# Copyright (C) 2017-2019 Red Hat, Inc. All rights reserved.
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ # script to update copyright dates across the tree
-+diff --git a/init/kronosnetd.default b/init/kronosnetd.default
-+index ed94648..9f6755c 100644
-+--- a/init/kronosnetd.default
-++++ b/init/kronosnetd.default
-+@@ -4,7 +4,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+
-+diff --git a/libknet/libknet_exported_syms b/libknet/libknet_exported_syms
-+index d8a55e2..1d8bddb 100644
-+--- a/libknet/libknet_exported_syms
-++++ b/libknet/libknet_exported_syms
-+@@ -4,7 +4,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under LGPL-2.0+
-+ #
-+
-+ LIBKNET {
-+diff --git a/libknet/tests/api-check.mk b/libknet/tests/api-check.mk
-+index 427c388..102ec52 100644
-+--- a/libknet/tests/api-check.mk
-++++ b/libknet/tests/api-check.mk
-+@@ -3,7 +3,7 @@
-+ #
-+ # Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ api_checks = \
-+diff --git a/libknet/tests/api-test-coverage b/libknet/tests/api-test-coverage
-+index bf0ccc3..e988ab1 100755
-+--- a/libknet/tests/api-test-coverage
-++++ b/libknet/tests/api-test-coverage
-+@@ -4,7 +4,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ srcdir="$1"/libknet/tests
-+diff --git a/libnozzle/libnozzle_exported_syms b/libnozzle/libnozzle_exported_syms
-+index 934b204..f6f62d2 100644
-+--- a/libnozzle/libnozzle_exported_syms
-++++ b/libnozzle/libnozzle_exported_syms
-+@@ -4,7 +4,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under LGPL-2.0+
-+ #
-+
-+ LIBNOZZLE {
-+diff --git a/libnozzle/tests/api-test-coverage b/libnozzle/tests/api-test-coverage
-+index cd99edf..4049ad9 100755
-+--- a/libnozzle/tests/api-test-coverage
-++++ b/libnozzle/tests/api-test-coverage
-+@@ -4,7 +4,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ srcdir="$1"/libnozzle/tests
-+diff --git a/libnozzle/tests/nozzle_run_updown_exit_false b/libnozzle/tests/nozzle_run_updown_exit_false
-+index 3f03ff6..795456a 100755
-+--- a/libnozzle/tests/nozzle_run_updown_exit_false
-++++ b/libnozzle/tests/nozzle_run_updown_exit_false
-+@@ -5,7 +5,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ exit 1
-+diff --git a/libnozzle/tests/nozzle_run_updown_exit_true b/libnozzle/tests/nozzle_run_updown_exit_true
-+index bbdcdd6..7b6e355 100755
-+--- a/libnozzle/tests/nozzle_run_updown_exit_true
-++++ b/libnozzle/tests/nozzle_run_updown_exit_true
-+@@ -5,7 +5,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ exit 0
-+diff --git a/man/api-to-man-page-coverage b/man/api-to-man-page-coverage
-+index b9dc18f..a1f54a3 100755
-+--- a/man/api-to-man-page-coverage
-++++ b/man/api-to-man-page-coverage
-+@@ -4,7 +4,7 @@
-+ #
-+ # Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ #
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-++# This software licensed under GPL-2.0+
-+ #
-+
-+ err=0
-+diff --git a/man/knet-keygen.8 b/man/knet-keygen.8
-+index 67ecf1f..96109c6 100644
-+--- a/man/knet-keygen.8
-++++ b/man/knet-keygen.8
-+@@ -5,7 +5,7 @@
-+ .\" *
-+ .\" * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ .\" *
-+-.\" * This software licensed under GPL-2.0+, LGPL-2.0+
-++.\" * This software licensed under GPL-2.0+
-+ .\" */
-+ .TH "KRONOSNETD" "8" "November 2012" "kronosnetd key generator." "System Administration Utilities"
-+
-+diff --git a/man/kronosnetd.8 b/man/kronosnetd.8
-+index 5661e1c..f4480be 100644
-+--- a/man/kronosnetd.8
-++++ b/man/kronosnetd.8
-+@@ -5,7 +5,7 @@
-+ .\" *
-+ .\" * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ .\" *
-+-.\" * This software licensed under GPL-2.0+, LGPL-2.0+
-++.\" * This software licensed under GPL-2.0+
-+ .\" */
-+ .TH "KRONOSNETD" "8" "November 2012" "kronosnetd Usage:" "System Administration Utilities"
-+
-diff --git a/debian/patches/PMTUd-create-common-shared-code-to-trigger-PMTUd-rerun.patch b/debian/patches/PMTUd-create-common-shared-code-to-trigger-PMTUd-rerun.patch
-new file mode 100644
-index 0000000..2404d7a
---- /dev/null
-+++ b/debian/patches/PMTUd-create-common-shared-code-to-trigger-PMTUd-rerun.patch
-@@ -0,0 +1,79 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Mon, 27 May 2019 12:37:15 +0200
-+Subject: [PMTUd] create common/shared code to trigger PMTUd rerun
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 5b02bef11afda959dc8cea4adc383f80ff0e9273)
-+---
-+ libknet/threads_common.h | 1 +
-+ libknet/threads_common.c | 20 ++++++++++++++++++++
-+ libknet/transport_udp.c | 17 +----------------
-+ 3 files changed, 22 insertions(+), 16 deletions(-)
-+
-+diff --git a/libknet/threads_common.h b/libknet/threads_common.h
-+index 79aaed2..19336ce 100644
-+--- a/libknet/threads_common.h
-++++ b/libknet/threads_common.h
-+@@ -45,5 +45,6 @@ int shutdown_in_progress(knet_handle_t knet_h);
-+ int get_global_wrlock(knet_handle_t knet_h);
-+ int set_thread_status(knet_handle_t knet_h, uint8_t thread_id, uint8_t status);
-+ int wait_all_threads_status(knet_handle_t knet_h, uint8_t status);
-++void force_pmtud_run(knet_handle_t knet_h, uint8_t subsystem);
-+
-+ #endif
-+diff --git a/libknet/threads_common.c b/libknet/threads_common.c
-+index b6012a2..61ffd82 100644
-+--- a/libknet/threads_common.c
-++++ b/libknet/threads_common.c
-+@@ -156,3 +156,23 @@ int wait_all_threads_status(knet_handle_t knet_h, uint8_t status)
-+
-+ return 0;
-+ }
-++
-++void force_pmtud_run(knet_handle_t knet_h, uint8_t subsystem)
-++{
-++ /*
-++ * we can only try to take a lock here. This part of the code
-++ * can be invoked by any thread, including PMTUd that is already
-++ * holding a lock at that stage.
-++ * If PMTUd is holding the lock, most likely it is already running
-++ * and we don't need to notify it back.
-++ */
-++ if (!pthread_mutex_trylock(&knet_h->pmtud_mutex)) {
-++ if (!knet_h->pmtud_running) {
-++ if (!knet_h->pmtud_forcerun) {
-++ log_debug(knet_h, subsystem, "Notifying PMTUd to rerun");
-++ knet_h->pmtud_forcerun = 1;
-++ }
-++ }
-++ pthread_mutex_unlock(&knet_h->pmtud_mutex);
-++ }
-++}
-+diff --git a/libknet/transport_udp.c b/libknet/transport_udp.c
-+index 3fd69ee..232dbcb 100644
-+--- a/libknet/transport_udp.c
-++++ b/libknet/transport_udp.c
-+@@ -340,22 +340,7 @@ static int read_errs_from_sock(knet_handle_t knet_h, int sockfd)
-+ pthread_mutex_unlock(&knet_h->kmtu_mutex);
-+ }
-+
-+- /*
-+- * we can only try to take a lock here. This part of the code
-+- * can be invoked by any thread, including PMTUd that is already
-+- * holding a lock at that stage.
-+- * If PMTUd is holding the lock, most likely it is already running
-+- * and we don't need to notify it back.
-+- */
-+- if (!pthread_mutex_trylock(&knet_h->pmtud_mutex)) {
-+- if (!knet_h->pmtud_running) {
-+- if (!knet_h->pmtud_forcerun) {
-+- log_debug(knet_h, KNET_SUB_TRANSP_UDP, "Notifying PMTUd to rerun");
-+- knet_h->pmtud_forcerun = 1;
-+- }
-+- }
-+- pthread_mutex_unlock(&knet_h->pmtud_mutex);
-+- }
-++ force_pmtud_run(knet_h, KNET_SUB_TRANSP_UDP);
-+ }
-+ /*
-+ * those errors are way too noisy
-diff --git a/debian/patches/PMTUd-extend-internal-rerun-API-to-allow-full-PMTUd-reset.patch b/debian/patches/PMTUd-extend-internal-rerun-API-to-allow-full-PMTUd-reset.patch
-new file mode 100644
-index 0000000..31f4550
---- /dev/null
-+++ b/debian/patches/PMTUd-extend-internal-rerun-API-to-allow-full-PMTUd-reset.patch
-@@ -0,0 +1,74 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 28 May 2019 05:35:24 +0200
-+Subject: [PMTUd] extend internal rerun API to allow full PMTUd reset
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 6542aa98cccb2c9bc2c201ef47538a787a5e05fd)
-+---
-+ libknet/threads_common.h | 2 +-
-+ libknet/handle.c | 2 +-
-+ libknet/threads_common.c | 11 ++++++++++-
-+ libknet/transport_udp.c | 2 +-
-+ 4 files changed, 13 insertions(+), 4 deletions(-)
-+
-+diff --git a/libknet/threads_common.h b/libknet/threads_common.h
-+index 19336ce..cff7691 100644
-+--- a/libknet/threads_common.h
-++++ b/libknet/threads_common.h
-+@@ -45,6 +45,6 @@ int shutdown_in_progress(knet_handle_t knet_h);
-+ int get_global_wrlock(knet_handle_t knet_h);
-+ int set_thread_status(knet_handle_t knet_h, uint8_t thread_id, uint8_t status);
-+ int wait_all_threads_status(knet_handle_t knet_h, uint8_t status);
-+-void force_pmtud_run(knet_handle_t knet_h, uint8_t subsystem);
-++void force_pmtud_run(knet_handle_t knet_h, uint8_t subsystem, uint8_t reset_mtu);
-+
-+ #endif
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index e95c6c1..251d332 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -1408,7 +1408,7 @@ int knet_handle_crypto(knet_handle_t knet_h, struct knet_handle_crypto_cfg *knet
-+
-+ exit_unlock:
-+ if (!err) {
-+- force_pmtud_run(knet_h, KNET_SUB_CRYPTO);
-++ force_pmtud_run(knet_h, KNET_SUB_CRYPTO, 1);
-+ }
-+ pthread_rwlock_unlock(&knet_h->global_rwlock);
-+ errno = err ? savederrno : 0;
-+diff --git a/libknet/threads_common.c b/libknet/threads_common.c
-+index 61ffd82..53a6f9f 100644
-+--- a/libknet/threads_common.c
-++++ b/libknet/threads_common.c
-+@@ -157,8 +157,17 @@ int wait_all_threads_status(knet_handle_t knet_h, uint8_t status)
-+ return 0;
-+ }
-+
-+-void force_pmtud_run(knet_handle_t knet_h, uint8_t subsystem)
-++void force_pmtud_run(knet_handle_t knet_h, uint8_t subsystem, uint8_t reset_mtu)
-+ {
-++ if (reset_mtu) {
-++ log_debug(knet_h, subsystem, "PMTUd has been reset to default");
-++ knet_h->data_mtu = KNET_PMTUD_MIN_MTU_V4 - KNET_HEADER_ALL_SIZE - knet_h->sec_header_size;
-++ if (knet_h->pmtud_notify_fn) {
-++ knet_h->pmtud_notify_fn(knet_h->pmtud_notify_fn_private_data,
-++ knet_h->data_mtu);
-++ }
-++ }
-++
-+ /*
-+ * we can only try to take a lock here. This part of the code
-+ * can be invoked by any thread, including PMTUd that is already
-+diff --git a/libknet/transport_udp.c b/libknet/transport_udp.c
-+index 232dbcb..1537438 100644
-+--- a/libknet/transport_udp.c
-++++ b/libknet/transport_udp.c
-+@@ -340,7 +340,7 @@ static int read_errs_from_sock(knet_handle_t knet_h, int sockfd)
-+ pthread_mutex_unlock(&knet_h->kmtu_mutex);
-+ }
-+
-+- force_pmtud_run(knet_h, KNET_SUB_TRANSP_UDP);
-++ force_pmtud_run(knet_h, KNET_SUB_TRANSP_UDP, 0);
-+ }
-+ /*
-+ * those errors are way too noisy
-diff --git a/debian/patches/access-lists-add-access-lists-support-to-sctp.patch b/debian/patches/access-lists-add-access-lists-support-to-sctp.patch
-new file mode 100644
-index 0000000..d962193
---- /dev/null
-+++ b/debian/patches/access-lists-add-access-lists-support-to-sctp.patch
-@@ -0,0 +1,96 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 17 Feb 2019 07:49:13 +0100
-+Subject: [access lists] add access lists support to sctp
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit d2333aab530d06ec502131aea03281ac13263d99)
-+---
-+ libknet/transport_sctp.c | 33 +++++++++++++++++++++++++++++++++
-+ 1 file changed, 33 insertions(+)
-+
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index cb64a32..0d69a33 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -19,6 +19,7 @@
-+ #include "compat.h"
-+ #include "host.h"
-+ #include "links.h"
-++#include "links_acl.h"
-+ #include "logging.h"
-+ #include "common.h"
-+ #include "transport_common.h"
-+@@ -728,6 +729,15 @@ static void _handle_incoming_sctp(knet_handle_t knet_h, int listen_sock)
-+
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Incoming: received connection from: %s port: %s",
-+ addr_str, port_str);
-++ if (knet_h->use_access_lists) {
-++ if (!ipcheck_validate(&knet_h->knet_transport_fd_tracker[listen_sock].match_entry, &ss)) {
-++ savederrno = EINVAL;
-++ err = -1;
-++ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Connection rejected from %s/%s", addr_str, port_str);
-++ close(new_fd);
-++ goto exit_error;
-++ }
-++ }
-+
-+ /*
-+ * Keep a track of all accepted FDs
-+@@ -936,6 +946,11 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ */
-+ knet_list_for_each_entry(info, &handle_info->listen_links_list, list) {
-+ if (memcmp(&info->src_address, &kn_link->src_addr, sizeof(struct sockaddr_storage)) == 0) {
-++ err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[info->listen_sock].match_entry,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++ if (err) {
-++ return NULL;
-++ }
-+ return info;
-+ }
-+ }
-+@@ -990,6 +1005,15 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ goto exit_error;
-+ }
-+
-++ if (ipcheck_addip(&knet_h->knet_transport_fd_tracker[listen_sock].match_entry,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-++ savederrno = errno;
-++ err = -1;
-++ log_err(knet_h, KNET_SUB_TRANSP_SCTP, "Unable to configure default access lists: %s",
-++ strerror(savederrno));
-++ goto exit_error;
-++ }
-++
-+ memset(&ev, 0, sizeof(struct epoll_event));
-+ ev.events = EPOLLIN;
-+ ev.data.fd = listen_sock;
-+@@ -1012,6 +1036,8 @@ exit_error:
-+ if (info->on_listener_epoll) {
-+ epoll_ctl(handle_info->listen_epollfd, EPOLL_CTL_DEL, listen_sock, &ev);
-+ }
-++ ipcheck_rmip(&knet_h->knet_transport_fd_tracker[listen_sock].match_entry,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ if (listen_sock >= 0) {
-+ close(listen_sock);
-+ }
-+@@ -1050,6 +1076,11 @@ static int sctp_link_listener_stop(knet_handle_t knet_h, struct knet_link *kn_li
-+ }
-+ }
-+
-++ if (ipcheck_rmip(&knet_h->knet_transport_fd_tracker[info->listen_sock].match_entry,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-++ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Unable to remove default access lists for %d", info->listen_sock);
-++ }
-++
-+ if (found) {
-+ this_link_info->listener = NULL;
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "SCTP listener socket %d still in use", info->listen_sock);
-+@@ -1080,6 +1111,8 @@ static int sctp_link_listener_stop(knet_handle_t knet_h, struct knet_link *kn_li
-+ goto exit_error;
-+ }
-+
-++ check_rmall(&knet_h->knet_transport_fd_tracker[info->listen_sock].match_entry);
-++
-+ close(info->listen_sock);
-+
-+ for (i=0; i< MAX_ACCEPTED_SOCKS; i++) {
-diff --git a/debian/patches/access-lists-add-documentation-for-enable_access_list.patch b/debian/patches/access-lists-add-documentation-for-enable_access_list.patch
-new file mode 100644
-index 0000000..e07e54a
---- /dev/null
-+++ b/debian/patches/access-lists-add-documentation-for-enable_access_list.patch
-@@ -0,0 +1,58 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sat, 2 Mar 2019 07:49:19 +0100
-+Subject: [access lists] add documentation for enable_access_list
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 21cf1a648999774053a9c7386b13eb5a64c1c7db)
-+---
-+ libknet/libknet.h | 28 ++++++++++++++++++++++------
-+ 1 file changed, 22 insertions(+), 6 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 4283afe..03bbd97 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -505,21 +505,37 @@ int knet_handle_setfwd(knet_handle_t knet_h, unsigned int enabled);
-+ /**
-+ * knet_handle_enable_access_lists
-+ *
-+- * @brief Start packet forwarding
-++ * @brief Enable or disable usage of access lists (default: off)
-+ *
-+ * knet_h - pointer to knet_handle_t
-+ *
-+- * enable - set to 1 to use ip access lists, 0 to disable ip access_lists.
-++ * enable - set to 1 to use access lists, 0 to disable access_lists.
-+ *
-+ * @return
-+ * knet_handle_enable_access_lists returns
-+ * 0 on success
-+ * -1 on error and errno is set.
-+ *
-+- * By default access lists usage is off, but default internal access lists
-+- * will be populated regardless, but not enforced. TODO add long explanation
-+- * on internal access lists for point to point connections vs global
-+- * listeners etc.
-++ * access lists are bound to links. There are 2 types of links:
-++ * 1) point to point, where both source and destinations are well known
-++ * at configuration time.
-++ * 2) open links, where only the source is known at configuration time.
-++ *
-++ * knet will automatically generate access lists for point to point links.
-++ *
-++ * For open links, knet provides 3 API calls to manipulate access lists:
-++ * knet_link_add_acl, knet_link_rm_acl and knet_link_clear_acl.
-++ * Those API calls will work only and exclusively on open links as they
-++ * provide no use for point to point links.
-++ *
-++ * knet will not enforce any access list unless specifically enabled by
-++ * knet_handle_enable_access_lists.
-++ *
-++ * From a security / programming perspective we recommend to:
-++ * - create the knet handle
-++ * - enable access lists
-++ * - configure hosts and links
-++ * - configure access lists for open links
-+ */
-+
-+ int knet_handle_enable_access_lists(knet_handle_t knet_h, unsigned int enabled);
-diff --git a/debian/patches/access-lists-add-errno-around-and-start-using-them.patch b/debian/patches/access-lists-add-errno-around-and-start-using-them.patch
-new file mode 100644
-index 0000000..12c0f24
---- /dev/null
-+++ b/debian/patches/access-lists-add-errno-around-and-start-using-them.patch
-@@ -0,0 +1,195 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 26 Feb 2019 10:43:04 +0100
-+Subject: [access lists] add errno around and start using them
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 9a5babce2066ecb61a5647345792675c2f9f416b)
-+---
-+ libknet/links.c | 14 +++++++-------
-+ libknet/links_acl.c | 9 +++++++++
-+ libknet/links_acl_ip.c | 12 ++++++++++--
-+ libknet/transport_sctp.c | 16 +++++++---------
-+ 4 files changed, 33 insertions(+), 18 deletions(-)
-+
-+diff --git a/libknet/links.c b/libknet/links.c
-+index dd64a15..1d21d05 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -245,9 +245,9 @@ int knet_link_set_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ (link->dynamic == KNET_LINK_STATIC)) {
-+ log_debug(knet_h, KNET_SUB_LINK, "Configuring default access lists for host: %u link: %u socket: %d",
-+ host_id, link_id, link->outsock);
-+- if (check_add(knet_h, link->outsock, transport,
-+- &link->dst_addr, &link->dst_addr,
-+- CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ if ((check_add(knet_h, link->outsock, transport,
-++ &link->dst_addr, &link->dst_addr,
-++ CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != EEXIST)) {
-+ log_warn(knet_h, KNET_SUB_LINK, "Failed to configure default access lists for host: %u link: %u", host_id, link_id);
-+ savederrno = errno;
-+ err = -1;
-+@@ -428,11 +428,11 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ */
-+ if ((transport_get_acl_type(knet_h, link->transport) == USE_GENERIC_ACL) &&
-+ (link->dynamic == KNET_LINK_STATIC)) {
-+- if (check_rm(knet_h, link->outsock, link->transport,
-+- &link->dst_addr, &link->dst_addr,
-+- CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ if ((check_rm(knet_h, link->outsock, link->transport,
-++ &link->dst_addr, &link->dst_addr,
-++ CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != ENOENT)) {
-+ err = -1;
-+- savederrno = EBUSY;
-++ savederrno = errno;
-+ log_err(knet_h, KNET_SUB_LINK, "Host %u link %u: unable to remove default access list",
-+ host_id, link_id);
-+ goto exit_unlock;
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index cfcc1fd..7605fe9 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -8,6 +8,7 @@
-+
-+ #include "config.h"
-+
-++#include <errno.h>
-+ #include <stdint.h>
-+ #include <string.h>
-+ #include <stdlib.h>
-+@@ -19,6 +20,11 @@
-+ #include "links_acl.h"
-+ #include "links_acl_ip.h"
-+
-++/*
-++ * all those functions will return errno from the
-++ * protocol specific functions
-++ */
-++
-+ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+@@ -27,6 +33,7 @@ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+
-+ switch(transport_get_proto(knet_h, transport)) {
-+ case LOOPBACK:
-++ errno = 0;
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+@@ -47,6 +54,7 @@ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+
-+ switch(transport_get_proto(knet_h, transport)) {
-+ case LOOPBACK:
-++ errno = 0;
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+@@ -80,6 +88,7 @@ int check_validate(knet_handle_t knet_h, int sock, uint8_t transport, struct soc
-+ {
-+ switch(transport_get_proto(knet_h, transport)) {
-+ case LOOPBACK:
-++ errno = 0;
-+ return 1;
-+ break;
-+ case IP_PROTO:
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index ffd18a4..58c7b28 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -8,6 +8,7 @@
-+
-+ #include "config.h"
-+
-++#include <errno.h>
-+ #include <sys/socket.h>
-+ #include <netinet/in.h>
-+ #include <stdint.h>
-+@@ -202,6 +203,7 @@ int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-+
-+ rm_match_entry = ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject);
-+ if (!rm_match_entry) {
-++ errno = ENOENT;
-+ return -1;
-+ }
-+
-+@@ -237,24 +239,30 @@ int ipcheck_addip(struct acl_match_entry **match_entry_head,
-+ struct acl_match_entry *match_entry = *match_entry_head;
-+
-+ if (!ip1) {
-++ errno = EINVAL;
-+ return -1;
-+ }
-+
-+ if ((type != CHECK_TYPE_ADDRESS) && (!ip2)) {
-++ errno = EINVAL;
-+ return -1;
-+ }
-+
-+ if (type == CHECK_TYPE_RANGE &&
-+- (ip1->ss_family != ip2->ss_family))
-++ (ip1->ss_family != ip2->ss_family)) {
-++ errno = EINVAL;
-+ return -1;
-++ }
-+
-+ if (ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject) != NULL) {
-++ errno = EEXIST;
-+ return -1;
-+ }
-+
-+ new_match_entry = malloc(sizeof(struct acl_match_entry));
-+- if (!new_match_entry)
-++ if (!new_match_entry) {
-+ return -1;
-++ }
-+
-+ memmove(&new_match_entry->addr1, ip1, sizeof(struct sockaddr_storage));
-+ memmove(&new_match_entry->addr2, ip2, sizeof(struct sockaddr_storage));
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index ff7903c..aa0de9d 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -948,9 +948,8 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ */
-+ knet_list_for_each_entry(info, &handle_info->listen_links_list, list) {
-+ if (memcmp(&info->src_address, &kn_link->src_addr, sizeof(struct sockaddr_storage)) == 0) {
-+- err = check_add(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+- if (err) {
-++ if ((check_add(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != EEXIST)) {
-+ return NULL;
-+ }
-+ return info;
-+@@ -1007,8 +1006,8 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ goto exit_error;
-+ }
-+
-+- if (check_add(knet_h, listen_sock, KNET_TRANSPORT_SCTP,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-++ if ((check_add(knet_h, listen_sock, KNET_TRANSPORT_SCTP,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != EEXIST)) {
-+ savederrno = errno;
-+ err = -1;
-+ log_err(knet_h, KNET_SUB_TRANSP_SCTP, "Unable to configure default access lists: %s",
-+@@ -1038,8 +1037,7 @@ exit_error:
-+ if (info->on_listener_epoll) {
-+ epoll_ctl(handle_info->listen_epollfd, EPOLL_CTL_DEL, listen_sock, &ev);
-+ }
-+- check_rm(knet_h, listen_sock, KNET_TRANSPORT_SCTP,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++ check_rmall(knet_h, listen_sock, KNET_TRANSPORT_SCTP);
-+ if (listen_sock >= 0) {
-+ close(listen_sock);
-+ }
-+@@ -1078,8 +1076,8 @@ static int sctp_link_listener_stop(knet_handle_t knet_h, struct knet_link *kn_li
-+ }
-+ }
-+
-+- if (check_rm(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-++ if ((check_rm(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != ENOENT)) {
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Unable to remove default access lists for %d", info->listen_sock);
-+ }
-+
-diff --git a/debian/patches/access-lists-add-external-API-calls-to-manage-access-list.patch b/debian/patches/access-lists-add-external-API-calls-to-manage-access-list.patch
-new file mode 100644
-index 0000000..e872279
---- /dev/null
-+++ b/debian/patches/access-lists-add-external-API-calls-to-manage-access-list.patch
-@@ -0,0 +1,746 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Mon, 4 Mar 2019 13:07:04 +0100
-+Subject: [access lists] add external API calls to manage access lists
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 6373dd2358b816beab2cc87bdf8ff196480b60cc)
-+---
-+ man/Makefile.am | 7 +-
-+ libknet/libknet.h | 157 +++++++++++++++++++++-
-+ libknet/links_acl.h | 15 +--
-+ libknet/links_acl_ip.h | 2 +-
-+ libknet/links_acl_loopback.h | 2 +-
-+ libknet/links.c | 306 +++++++++++++++++++++++++++++++++++++++++-
-+ libknet/links_acl.c | 4 +-
-+ libknet/links_acl_ip.c | 49 ++++---
-+ libknet/links_acl_loopback.c | 2 +-
-+ libknet/tests/int_links_acl.c | 4 +-
-+ libknet/transport_sctp.c | 4 +-
-+ 11 files changed, 504 insertions(+), 48 deletions(-)
-+
-+diff --git a/man/Makefile.am b/man/Makefile.am
-+index 6c15f0d..0ad12f6 100644
-+--- a/man/Makefile.am
-++++ b/man/Makefile.am
-+@@ -95,7 +95,12 @@ knet_man3_MANS = \
-+ knet_recv.3 \
-+ knet_send.3 \
-+ knet_send_sync.3 \
-+- knet_strtoaddr.3
-++ knet_strtoaddr.3 \
-++ knet_handle_enable_access_lists.3 \
-++ knet_link_add_acl.3 \
-++ knet_link_insert_acl.3 \
-++ knet_link_rm_acl.3 \
-++ knet_link_clear_acl.3
-+
-+ if BUILD_LIBNOZZLE
-+ nozzle_man3_MANS = \
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 03bbd97..d616e11 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -524,12 +524,12 @@ int knet_handle_setfwd(knet_handle_t knet_h, unsigned int enabled);
-+ * knet will automatically generate access lists for point to point links.
-+ *
-+ * For open links, knet provides 3 API calls to manipulate access lists:
-+- * knet_link_add_acl, knet_link_rm_acl and knet_link_clear_acl.
-++ * knet_link_add_acl(3), knet_link_rm_acl(3) and knet_link_clear_acl(3).
-+ * Those API calls will work only and exclusively on open links as they
-+ * provide no use for point to point links.
-+ *
-+ * knet will not enforce any access list unless specifically enabled by
-+- * knet_handle_enable_access_lists.
-++ * knet_handle_enable_access_lists(3).
-+ *
-+ * From a security / programming perspective we recommend to:
-+ * - create the knet handle
-+@@ -1477,6 +1477,159 @@ int knet_link_get_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+
-+ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id);
-+
-++/*
-++ * access lists management for open links
-++ * see also knet_handle_enable_access_lists(3)
-++ */
-++
-++/*
-++ * CHECK_TYPE_ADDRESS is the equivalent of a single entry / IP address.
-++ * for example: 10.1.9.3/32
-++ * and the entry is stored in ss1. ss2 can be NULL.
-++ *
-++ * CHECK_TYPE_MASK is used to configure network/netmask.
-++ * for example: 192.168.0.0/24
-++ * the network is stored in ss1 and the netmask in ss2.
-++ *
-++ * CHECK_TYPE_RANGE defines a value / range of ip addresses.
-++ * for example: 172.16.0.1-172.16.0.10
-++ * the start is stored in ss1 and the end in ss2.
-++ *
-++ * Please be aware that the above examples refers only to IP based protocols.
-++ * Other protocols might use ss1 and ss2 in slightly different ways.
-++ * At the moment knet only supports IP based protocol and that might change
-++ * in the future.
-++ */
-++
-++typedef enum {
-++ CHECK_TYPE_ADDRESS,
-++ CHECK_TYPE_MASK,
-++ CHECK_TYPE_RANGE
-++} check_type_t;
-++
-++/*
-++ * accept or reject incoming packets defined in the access list entry
-++ */
-++
-++typedef enum {
-++ CHECK_ACCEPT,
-++ CHECK_REJECT
-++} check_acceptreject_t;
-++
-++/**
-++ * knet_link_add_acl
-++ *
-++ * @brief Add access list entry to an open link
-++ *
-++ * knet_h - pointer to knet_handle_t
-++ *
-++ * host_id - see knet_host_add(3)
-++ *
-++ * link_id - see knet_link_set_config(3)
-++ *
-++ * ss1 / ss2 / type / acceptreject - see typedef definitions for details
-++ *
-++ * IMPORTANT: the order in which access lists are added is critical and it
-++ * is left to the user to add them in the right order. knet
-++ * will do no attempt to logically sort them.
-++ *
-++ * For example:
-++ * 1 - accept from 10.0.0.0/8
-++ * 2 - reject from 10.0.0.1/32
-++ *
-++ * is not the same as:
-++ *
-++ * 1 - reject from 10.0.0.1/32
-++ * 2 - accept from 10.0.0.0/8
-++ *
-++ * In the first example, rule number 2 will never match because
-++ * packets from 10.0.0.1 will be accepted by rule number 1.
-++ *
-++ * @return
-++ * knet_link_add_acl
-++ * 0 on success.
-++ * -1 on error and errno is set.
-++ */
-++
-++int knet_link_add_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-++ struct sockaddr_storage *ss1,
-++ struct sockaddr_storage *ss2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++/**
-++ * knet_link_insert_acl
-++ *
-++ * @brief Insert access list entry to an open link at given index
-++ *
-++ * knet_h - pointer to knet_handle_t
-++ *
-++ * host_id - see knet_host_add(3)
-++ *
-++ * link_id - see knet_link_set_config(3)
-++ *
-++ * index - insert at position "index" where 0 is the first entry and -1
-++ * append to the current list.
-++ *
-++ * ss1 / ss2 / type / acceptreject - see typedef definitions for details
-++ *
-++ * @return
-++ * knet_link_insert_acl
-++ * 0 on success.
-++ * -1 on error and errno is set.
-++ */
-++
-++int knet_link_insert_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-++ int index,
-++ struct sockaddr_storage *ss1,
-++ struct sockaddr_storage *ss2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++/**
-++ * knet_link_rm_acl
-++ *
-++ * @brief Remove access list entry from an open link
-++ *
-++ * knet_h - pointer to knet_handle_t
-++ *
-++ * host_id - see knet_host_add(3)
-++ *
-++ * link_id - see knet_link_set_config(3)
-++ *
-++ * ss1 / ss2 / type / acceptreject - see typedef definitions for details
-++ *
-++ * IMPORTANT: the data passed to this API call must match exactly the ones used
-++ * in knet_link_add_acl(3).
-++ *
-++ * @return
-++ * knet_link_rm_acl
-++ * 0 on success.
-++ * -1 on error and errno is set.
-++ */
-++
-++int knet_link_rm_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-++ struct sockaddr_storage *ss1,
-++ struct sockaddr_storage *ss2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++/**
-++ * knet_link_clear_acl
-++ *
-++ * @brief Remove all access list entries from an open link
-++ *
-++ * knet_h - pointer to knet_handle_t
-++ *
-++ * host_id - see knet_host_add(3)
-++ *
-++ * link_id - see knet_link_set_config(3)
-++ *
-++ * @return
-++ * knet_link_clear_acl
-++ * 0 on success.
-++ * -1 on error and errno is set.
-++ */
-++
-++int knet_link_clear_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id);
-++
-+ /**
-+ * knet_link_set_enable
-+ *
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index a64faa1..60f7812 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -11,23 +11,12 @@
-+
-+ #include "internals.h"
-+
-+-typedef enum {
-+- CHECK_TYPE_ADDRESS,
-+- CHECK_TYPE_MASK,
-+- CHECK_TYPE_RANGE
-+-} check_type_t;
-+-
-+-typedef enum {
-+- CHECK_ACCEPT,
-+- CHECK_REJECT
-+-} check_acceptreject_t;
-+-
-+ typedef struct {
-+ uint8_t transport_proto;
-+
-+ int (*protocheck_validate) (void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-+
-+- int (*protocheck_add) (void *fd_tracker_match_entry_head,
-++ int (*protocheck_add) (void *fd_tracker_match_entry_head, int index,
-+ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+@@ -38,7 +27,7 @@ typedef struct {
-+ void (*protocheck_rmall) (void *fd_tracker_match_entry_head);
-+ } check_ops_t;
-+
-+-int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-++int check_add(knet_handle_t knet_h, int sock, uint8_t transport, int index,
-+ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+diff --git a/libknet/links_acl_ip.h b/libknet/links_acl_ip.h
-+index e069b99..fac58e2 100644
-+--- a/libknet/links_acl_ip.h
-++++ b/libknet/links_acl_ip.h
-+@@ -14,7 +14,7 @@
-+
-+ int ipcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-+
-+-int ipcheck_addip(void *fd_tracker_match_entry_head,
-++int ipcheck_addip(void *fd_tracker_match_entry_head, int index,
-+ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+diff --git a/libknet/links_acl_loopback.h b/libknet/links_acl_loopback.h
-+index 73a9704..e75c4a4 100644
-+--- a/libknet/links_acl_loopback.h
-++++ b/libknet/links_acl_loopback.h
-+@@ -14,7 +14,7 @@
-+
-+ int loopbackcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-+
-+-int loopbackcheck_add(void *fd_tracker_match_entry_head,
-++int loopbackcheck_add(void *fd_tracker_match_entry_head, int index,
-+ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 1d21d05..0f02006 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -245,7 +245,7 @@ int knet_link_set_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ (link->dynamic == KNET_LINK_STATIC)) {
-+ log_debug(knet_h, KNET_SUB_LINK, "Configuring default access lists for host: %u link: %u socket: %d",
-+ host_id, link_id, link->outsock);
-+- if ((check_add(knet_h, link->outsock, transport,
-++ if ((check_add(knet_h, link->outsock, transport, -1,
-+ &link->dst_addr, &link->dst_addr,
-+ CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != EEXIST)) {
-+ log_warn(knet_h, KNET_SUB_LINK, "Failed to configure default access lists for host: %u link: %u", host_id, link_id);
-+@@ -1148,3 +1148,307 @@ exit_unlock:
-+ errno = err ? savederrno : 0;
-+ return err;
-+ }
-++
-++int knet_link_add_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-++ struct sockaddr_storage *ss1,
-++ struct sockaddr_storage *ss2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ int savederrno = 0, err = 0;
-++ struct knet_host *host;
-++ struct knet_link *link;
-++
-++ if (!knet_h) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (!ss1) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((type == CHECK_TYPE_RANGE) &&
-++ (ss1->ss_family != ss2->ss_family)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (link_id >= KNET_MAX_LINK) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ savederrno = get_global_wrlock(knet_h);
-++ if (savederrno) {
-++ log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ strerror(savederrno));
-++ errno = savederrno;
-++ return -1;
-++ }
-++
-++ host = knet_h->host_index[host_id];
-++ if (!host) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to find host %u: %s",
-++ host_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ link = &host->link[link_id];
-++
-++ if (!link->configured) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is not configured: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ if (link->dynamic != KNET_LINK_DYNIP) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is a point to point connection: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ err = check_add(knet_h, transport_link_get_acl_fd(knet_h, link), link->transport, -1,
-++ ss1, ss2, type, acceptreject);
-++ savederrno = errno;
-++
-++exit_unlock:
-++ pthread_rwlock_unlock(&knet_h->global_rwlock);
-++
-++ errno = savederrno;
-++ return err;
-++}
-++
-++int knet_link_insert_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-++ int index,
-++ struct sockaddr_storage *ss1,
-++ struct sockaddr_storage *ss2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ int savederrno = 0, err = 0;
-++ struct knet_host *host;
-++ struct knet_link *link;
-++
-++ if (!knet_h) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (!ss1) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((type == CHECK_TYPE_RANGE) &&
-++ (ss1->ss_family != ss2->ss_family)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (link_id >= KNET_MAX_LINK) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ savederrno = get_global_wrlock(knet_h);
-++ if (savederrno) {
-++ log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ strerror(savederrno));
-++ errno = savederrno;
-++ return -1;
-++ }
-++
-++ host = knet_h->host_index[host_id];
-++ if (!host) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to find host %u: %s",
-++ host_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ link = &host->link[link_id];
-++
-++ if (!link->configured) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is not configured: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ if (link->dynamic != KNET_LINK_DYNIP) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is a point to point connection: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ err = check_add(knet_h, transport_link_get_acl_fd(knet_h, link), link->transport, index,
-++ ss1, ss2, type, acceptreject);
-++ savederrno = errno;
-++
-++exit_unlock:
-++ pthread_rwlock_unlock(&knet_h->global_rwlock);
-++
-++ errno = savederrno;
-++ return err;
-++}
-++
-++int knet_link_rm_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-++ struct sockaddr_storage *ss1,
-++ struct sockaddr_storage *ss2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ int savederrno = 0, err = 0;
-++ struct knet_host *host;
-++ struct knet_link *link;
-++
-++ if (!knet_h) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (!ss1) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((type == CHECK_TYPE_RANGE) &&
-++ (ss1->ss_family != ss2->ss_family)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (link_id >= KNET_MAX_LINK) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ savederrno = get_global_wrlock(knet_h);
-++ if (savederrno) {
-++ log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ strerror(savederrno));
-++ errno = savederrno;
-++ return -1;
-++ }
-++
-++ host = knet_h->host_index[host_id];
-++ if (!host) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to find host %u: %s",
-++ host_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ link = &host->link[link_id];
-++
-++ if (!link->configured) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is not configured: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ if (link->dynamic != KNET_LINK_DYNIP) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is a point to point connection: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ err = check_rm(knet_h, transport_link_get_acl_fd(knet_h, link), link->transport,
-++ ss1, ss2, type, acceptreject);
-++ savederrno = errno;
-++
-++exit_unlock:
-++ pthread_rwlock_unlock(&knet_h->global_rwlock);
-++
-++ errno = savederrno;
-++ return err;
-++}
-++
-++int knet_link_clear_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id)
-++{
-++ int savederrno = 0, err = 0;
-++ struct knet_host *host;
-++ struct knet_link *link;
-++
-++ if (!knet_h) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (link_id >= KNET_MAX_LINK) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ savederrno = get_global_wrlock(knet_h);
-++ if (savederrno) {
-++ log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ strerror(savederrno));
-++ errno = savederrno;
-++ return -1;
-++ }
-++
-++ host = knet_h->host_index[host_id];
-++ if (!host) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to find host %u: %s",
-++ host_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ link = &host->link[link_id];
-++
-++ if (!link->configured) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is not configured: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ if (link->dynamic != KNET_LINK_DYNIP) {
-++ err = -1;
-++ savederrno = EINVAL;
-++ log_err(knet_h, KNET_SUB_LINK, "host %u link %u is a point to point connection: %s",
-++ host_id, link_id, strerror(savederrno));
-++ goto exit_unlock;
-++ }
-++
-++ check_rmall(knet_h, transport_link_get_acl_fd(knet_h, link), link->transport);
-++
-++exit_unlock:
-++ pthread_rwlock_unlock(&knet_h->global_rwlock);
-++
-++ errno = savederrno;
-++ return err;
-++}
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 0b1fcd0..776408a 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -31,12 +31,12 @@ static check_ops_t proto_check_modules_cmds[] = {
-+ * protocol specific functions
-+ */
-+
-+-int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-++int check_add(knet_handle_t knet_h, int sock, uint8_t transport, int index,
-+ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ return proto_check_modules_cmds[transport_get_proto(knet_h, transport)].protocheck_add(
-+- &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-++ &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head, index,
-+ ss1, ss2, type, acceptreject);
-+ }
-+
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index 2682a70..642027b 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -242,29 +242,14 @@ int ipcheck_rmip(void *fd_tracker_match_entry_head,
-+ return 0;
-+ }
-+
-+-int ipcheck_addip(void *fd_tracker_match_entry_head,
-++int ipcheck_addip(void *fd_tracker_match_entry_head, int index,
-+ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ struct ip_acl_match_entry **match_entry_head = (struct ip_acl_match_entry **)fd_tracker_match_entry_head;
-+ struct ip_acl_match_entry *new_match_entry;
-+ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+-
-+- if (!ss1) {
-+- errno = EINVAL;
-+- return -1;
-+- }
-+-
-+- if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-+- errno = EINVAL;
-+- return -1;
-+- }
-+-
-+- if (type == CHECK_TYPE_RANGE &&
-+- (ss1->ss_family != ss2->ss_family)) {
-+- errno = EINVAL;
-+- return -1;
-+- }
-++ int i = 0;
-+
-+ if (ipcheck_findmatch(match_entry_head, ss1, ss2, type, acceptreject) != NULL) {
-+ errno = EEXIST;
-+@@ -283,12 +268,32 @@ int ipcheck_addip(void *fd_tracker_match_entry_head,
-+ new_match_entry->next = NULL;
-+
-+ if (match_entry) {
-+- /* Find the end of the list */
-+- /* is this OK, or should we use a doubly-linked list or bulk-load API call? */
-+- while (match_entry->next) {
-+- match_entry = match_entry->next;
-++ /*
-++ * special case for index 0, since we need to update
-++ * the head of the list
-++ */
-++ if (index == 0) {
-++ *match_entry_head = new_match_entry;
-++ new_match_entry->next = match_entry;
-++ } else {
-++ /*
-++ * find the end of the list or stop at "index"
-++ */
-++ while ((match_entry->next) || (i < index)) {
-++ match_entry = match_entry->next;
-++ i++;
-++ }
-++ /*
-++ * insert if there are more entries in the list
-++ */
-++ if (match_entry->next) {
-++ new_match_entry->next = match_entry->next;
-++ }
-++ /*
-++ * add if we are at the end
-++ */
-++ match_entry->next = new_match_entry;
-+ }
-+- match_entry->next = new_match_entry;
-+ } else {
-+ /*
-+ * first entry in the list
-+diff --git a/libknet/links_acl_loopback.c b/libknet/links_acl_loopback.c
-+index bb69130..97f8198 100644
-+--- a/libknet/links_acl_loopback.c
-++++ b/libknet/links_acl_loopback.c
-+@@ -33,7 +33,7 @@ int loopbackcheck_rm(void *fd_tracker_match_entry_head,
-+ return 0;
-+ }
-+
-+-int loopbackcheck_add(void *fd_tracker_match_entry_head,
-++int loopbackcheck_add(void *fd_tracker_match_entry_head, int index,
-+ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+diff --git a/libknet/tests/int_links_acl.c b/libknet/tests/int_links_acl.c
-+index 05bd829..15e8e07 100644
-+--- a/libknet/tests/int_links_acl.c
-++++ b/libknet/tests/int_links_acl.c
-+@@ -165,9 +165,9 @@ static int load_file(void)
-+ }
-+ else {
-+ if (addr1.ss_family == AF_INET) {
-+- ipcheck_addip(&match_entry_v4, &addr1, &addr2, type, acceptreject);
-++ ipcheck_addip(&match_entry_v4, -1, &addr1, &addr2, type, acceptreject);
-+ } else {
-+- ipcheck_addip(&match_entry_v6, &addr1, &addr2, type, acceptreject);
-++ ipcheck_addip(&match_entry_v6, -1, &addr1, &addr2, type, acceptreject);
-+ }
-+ }
-+ next_record: {} /* empty statement to mollify the compiler */
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index 819bc9a..bdfc98d 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -948,7 +948,7 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ */
-+ knet_list_for_each_entry(info, &handle_info->listen_links_list, list) {
-+ if (memcmp(&info->src_address, &kn_link->src_addr, sizeof(struct sockaddr_storage)) == 0) {
-+- if ((check_add(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP,
-++ if ((check_add(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP, -1,
-+ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != EEXIST)) {
-+ return NULL;
-+ }
-+@@ -1006,7 +1006,7 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ goto exit_error;
-+ }
-+
-+- if ((check_add(knet_h, listen_sock, KNET_TRANSPORT_SCTP,
-++ if ((check_add(knet_h, listen_sock, KNET_TRANSPORT_SCTP, -1,
-+ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) && (errno != EEXIST)) {
-+ savederrno = errno;
-+ err = -1;
-diff --git a/debian/patches/access-lists-add-more-extensive-test-for-links_acl_ip.patch b/debian/patches/access-lists-add-more-extensive-test-for-links_acl_ip.patch
-new file mode 100644
-index 0000000..30639fd
---- /dev/null
-+++ b/debian/patches/access-lists-add-more-extensive-test-for-links_acl_ip.patch
-@@ -0,0 +1,717 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 7 Mar 2019 15:31:28 +0100
-+Subject: [access lists] add more extensive test for links_acl_ip
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 8d42be74c7fdb58b8082c4a4d369d2facca467a9)
-+---
-+ libknet/tests/int_links_acl.txt | 8 -
-+ libknet/tests/Makefile.am | 33 ++--
-+ libknet/tests/int_links_acl.c | 211 ---------------------
-+ libknet/tests/int_links_acl_ip.c | 399 +++++++++++++++++++++++++++++++++++++++
-+ 4 files changed, 415 insertions(+), 236 deletions(-)
-+ delete mode 100644 libknet/tests/int_links_acl.txt
-+ delete mode 100644 libknet/tests/int_links_acl.c
-+ create mode 100644 libknet/tests/int_links_acl_ip.c
-+
-+diff --git a/libknet/tests/int_links_acl.txt b/libknet/tests/int_links_acl.txt
-+deleted file mode 100644
-+index 5776d54..0000000
-+--- a/libknet/tests/int_links_acl.txt
-++++ /dev/null
-+@@ -1,8 +0,0 @@
-+-AA192.168.1.1
-+-AA192.168.1.2
-+-RA192.168.0.3
-+-AR192.168.0.0-192.168.0.250
-+-AM192.168.2.0/255.255.255.0
-+-AM1740::0/FFF0::0
-+-RA1000::666
-+-AR1000::1-2000::7FF
-+diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am
-+index eae5c80..3e74ea8 100644
-+--- a/libknet/tests/Makefile.am
-++++ b/libknet/tests/Makefile.am
-+@@ -13,8 +13,7 @@ include $(top_srcdir)/libknet/tests/api-check.mk
-+
-+ EXTRA_DIST = \
-+ api-test-coverage \
-+- api-check.mk \
-+- int_links_acl.txt
-++ api-check.mk
-+
-+ AM_CPPFLAGS = -I$(top_srcdir)/libknet
-+ AM_CFLAGS += $(PTHREAD_CFLAGS)
-+@@ -34,6 +33,7 @@ check_PROGRAMS = \
-+ $(fun_checks)
-+
-+ int_checks = \
-++ int_links_acl_ip_test \
-+ int_timediff_test
-+
-+ fun_checks =
-+@@ -45,7 +45,6 @@ benchmarks = \
-+ noinst_PROGRAMS = \
-+ api_knet_handle_new_limit_test \
-+ pckt_test \
-+- int_links_acl_test \
-+ $(benchmarks) \
-+ $(check_PROGRAMS)
-+
-+@@ -67,20 +66,20 @@ check-api-test-coverage:
-+
-+ pckt_test_SOURCES = pckt_test.c
-+
-+-int_links_acl_test_SOURCES = int_links_acl.c \
-+- ../common.c \
-+- ../compat.c \
-+- ../logging.c \
-+- ../netutils.c \
-+- ../threads_common.c \
-+- ../transports.c \
-+- ../transport_common.c \
-+- ../transport_loopback.c \
-+- ../transport_sctp.c \
-+- ../transport_udp.c \
-+- ../links_acl.c \
-+- ../links_acl_ip.c \
-+- ../links_acl_loopback.c
-++int_links_acl_ip_test_SOURCES = int_links_acl_ip.c \
-++ ../common.c \
-++ ../compat.c \
-++ ../logging.c \
-++ ../netutils.c \
-++ ../threads_common.c \
-++ ../transports.c \
-++ ../transport_common.c \
-++ ../transport_loopback.c \
-++ ../transport_sctp.c \
-++ ../transport_udp.c \
-++ ../links_acl.c \
-++ ../links_acl_ip.c \
-++ ../links_acl_loopback.c
-+
-+ int_timediff_test_SOURCES = int_timediff.c
-+
-+diff --git a/libknet/tests/int_links_acl.c b/libknet/tests/int_links_acl.c
-+deleted file mode 100644
-+index 15e8e07..0000000
-+--- a/libknet/tests/int_links_acl.c
-++++ /dev/null
-+@@ -1,211 +0,0 @@
-+-/*
-+- * Copyright (C) 2016-2019 Red Hat, Inc. All rights reserved.
-+- *
-+- * Author: Christine Caulfield <ccaulfie at redhat.com>
-+- *
-+- * This software licensed under GPL-2.0+, LGPL-2.0+
-+- */
-+-
-+-#include "config.h"
-+-
-+-#include <sys/types.h>
-+-#include <sys/socket.h>
-+-#include <netinet/in.h>
-+-#include <stdio.h>
-+-#include <stdlib.h>
-+-#include <string.h>
-+-#include <netdb.h>
-+-
-+-#include "internals.h"
-+-#include "links_acl.h"
-+-#include "links_acl_ip.h"
-+-
-+-static struct acl_match_entry *match_entry_v4;
-+-static struct acl_match_entry *match_entry_v6;
-+-
-+-/* This is a test program .. remember! */
-+-#define BUFLEN 1024
-+-
-+-static int get_ipaddress(char *buf, struct sockaddr_storage *addr)
-+-{
-+- struct addrinfo *info;
-+- struct addrinfo hints;
-+- int res;
-+-
-+- memset(&hints, 0, sizeof(hints));
-+- hints.ai_family = AF_UNSPEC;
-+-
-+- res = getaddrinfo(buf, NULL, &hints, &info);
-+- if (!res) {
-+- memmove(addr, info->ai_addr, info->ai_addrlen);
-+- freeaddrinfo(info);
-+- }
-+- return res;
-+-}
-+-
-+-static int read_address(char *buf, struct sockaddr_storage *addr)
-+-{
-+- return get_ipaddress(buf, addr);
-+-}
-+-
-+-static int read_mask(char *buf, struct sockaddr_storage *addr, struct sockaddr_storage *addr2)
-+-{
-+- char tmpbuf[BUFLEN];
-+- char *slash;
-+- int ret;
-+-
-+- slash = strchr(buf, '/');
-+- if (!slash)
-+- return 1;
-+-
-+- strncpy(tmpbuf, buf, slash-buf);
-+- tmpbuf[slash-buf] = '\0';
-+-
-+- ret = get_ipaddress(tmpbuf, addr);
-+- if (ret)
-+- return ret;
-+-
-+- ret = get_ipaddress(slash+1, addr2);
-+- if (ret)
-+- return ret;
-+-
-+- return 0;
-+-}
-+-
-+-static int read_range(char *buf, struct sockaddr_storage *addr1, struct sockaddr_storage *addr2)
-+-{
-+- char tmpbuf[BUFLEN];
-+- char *hyphen;
-+- int ret;
-+-
-+- hyphen = strchr(buf, '-');
-+- if (!hyphen)
-+- return 1;
-+-
-+- strncpy(tmpbuf, buf, hyphen-buf);
-+- tmpbuf[hyphen-buf] = '\0';
-+-
-+- ret = get_ipaddress(tmpbuf, addr1);
-+- if (ret)
-+- return ret;
-+-
-+- ret = get_ipaddress(hyphen+1, addr2);
-+- if (ret)
-+- return ret;
-+-
-+- return 0;
-+-}
-+-
-+-
-+-static int load_file(void)
-+-{
-+- FILE *filterfile;
-+- char filebuf[BUFLEN];
-+- int line = 0;
-+- int ret;
-+- check_type_t type;
-+- check_acceptreject_t acceptreject;
-+- struct sockaddr_storage addr1;
-+- struct sockaddr_storage addr2;
-+-
-+- ipcheck_rmall(&match_entry_v4);
-+- ipcheck_rmall(&match_entry_v6);
-+-
-+- filterfile = fopen("int_links_acl.txt", "r");
-+- if (!filterfile) {
-+- fprintf(stderr, "Cannot open int_links_acl.txt\n");
-+- return 1;
-+- }
-+-
-+- while (fgets(filebuf, sizeof(filebuf), filterfile)) {
-+- filebuf[strlen(filebuf)-1] = '\0'; /* remove trailing LF */
-+- line++;
-+-
-+- /*
-+- * First char is A (accept) or R (Reject)
-+- */
-+- switch(filebuf[0] & 0x5F) {
-+- case 'A':
-+- acceptreject = CHECK_ACCEPT;
-+- break;
-+- case 'R':
-+- acceptreject = CHECK_REJECT;
-+- break;
-+- default:
-+- fprintf(stderr, "Unknown record type on line %d: %s\n", line, filebuf);
-+- goto next_record;
-+- }
-+-
-+- /*
-+- * Second char is the filter type:
-+- * A Address
-+- * M Mask
-+- * R Range
-+- */
-+- switch(filebuf[1] & 0x5F) {
-+- case 'A':
-+- type = CHECK_TYPE_ADDRESS;
-+- ret = read_address(filebuf+2, &addr1);
-+- break;
-+- case 'M':
-+- type = CHECK_TYPE_MASK;
-+- ret = read_mask(filebuf+2, &addr1, &addr2);
-+- break;
-+- case 'R':
-+- type = CHECK_TYPE_RANGE;
-+- ret = read_range(filebuf+2, &addr1, &addr2);
-+- break;
-+- default:
-+- fprintf(stderr, "Unknown filter type on line %d: %s\n", line, filebuf);
-+- goto next_record;
-+- break;
-+- }
-+- if (ret) {
-+- fprintf(stderr, "Failed to parse address on line %d: %s\n", line, filebuf);
-+- }
-+- else {
-+- if (addr1.ss_family == AF_INET) {
-+- ipcheck_addip(&match_entry_v4, -1, &addr1, &addr2, type, acceptreject);
-+- } else {
-+- ipcheck_addip(&match_entry_v6, -1, &addr1, &addr2, type, acceptreject);
-+- }
-+- }
-+- next_record: {} /* empty statement to mollify the compiler */
-+- }
-+- fclose(filterfile);
-+-
-+- return 0;
-+-}
-+-
-+-int main(int argc, char *argv[])
-+-{
-+- struct sockaddr_storage saddr;
-+- struct acl_match_entry *match_entry;
-+- int ret;
-+- int i;
-+-
-+- if (load_file())
-+- return 1;
-+-
-+- for (i=1; i<argc; i++) {
-+- ret = get_ipaddress(argv[i], &saddr);
-+- if (ret) {
-+- fprintf(stderr, "Cannot parse address %s\n", argv[i]);
-+- } else {
-+- if (saddr.ss_family == AF_INET) {
-+- match_entry = match_entry_v4;
-+- } else {
-+- match_entry = match_entry_v6;
-+- }
-+- if (ipcheck_validate(&match_entry, &saddr)) {
-+- printf("%s is VALID\n", argv[i]);
-+- } else {
-+- printf("%s is not allowed\n", argv[i]);
-+- }
-+- }
-+- }
-+-
-+- ipcheck_rmall(&match_entry_v4);
-+- ipcheck_rmall(&match_entry_v6);
-+- return 0;
-+-}
-+diff --git a/libknet/tests/int_links_acl_ip.c b/libknet/tests/int_links_acl_ip.c
-+new file mode 100644
-+index 0000000..a7d2aed
-+--- /dev/null
-++++ b/libknet/tests/int_links_acl_ip.c
-+@@ -0,0 +1,399 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Author: Christine Caulfield <ccaulfie at redhat.com>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include "config.h"
-++
-++#include <sys/types.h>
-++#include <sys/socket.h>
-++#include <netinet/in.h>
-++#include <stdio.h>
-++#include <stdlib.h>
-++#include <string.h>
-++#include <netdb.h>
-++#include <errno.h>
-++
-++#include "internals.h"
-++#include "links_acl.h"
-++#include "links_acl_ip.h"
-++
-++#include "test-common.h"
-++
-++static struct acl_match_entry *match_entry_v4;
-++static struct acl_match_entry *match_entry_v6;
-++
-++/* This is a test program .. remember! */
-++#define BUFLEN 1024
-++
-++static int get_ipaddress(const char *buf, struct sockaddr_storage *addr)
-++{
-++ struct addrinfo *info;
-++ struct addrinfo hints;
-++
-++ memset(&hints, 0, sizeof(hints));
-++ hints.ai_family = AF_UNSPEC;
-++
-++ if (getaddrinfo(buf, NULL, &hints, &info)) {
-++ return -1;
-++ }
-++
-++ memmove(addr, info->ai_addr, info->ai_addrlen);
-++ freeaddrinfo(info);
-++ return 0;
-++}
-++
-++static int read_2ip(const char *buf, const char *delim, struct sockaddr_storage *addr, struct sockaddr_storage *addr2)
-++{
-++ char tmpbuf[BUFLEN];
-++ char *deli;
-++
-++ deli = strstr(buf, delim);
-++ if (!deli) {
-++ return -1;
-++ }
-++
-++ strncpy(tmpbuf, buf, deli-buf);
-++ tmpbuf[deli-buf] = '\0';
-++
-++ if (get_ipaddress(tmpbuf, addr)) {
-++ return -1;
-++ }
-++
-++ if (get_ipaddress(deli+1, addr2)) {
-++ return -1;
-++ }
-++
-++ return 0;
-++}
-++
-++/*
-++ * be aware that ordering is important
-++ * so we can test all the rules with few
-++ * ipcheck_validate calls
-++ */
-++
-++const char *rules[100] = {
-++ /*
-++ * ipv4
-++ */
-++ "RA192.168.0.3", /* reject address */
-++ "AA192.168.0.1", /* accept address */
-++ "RR192.168.0.10-192.168.0.20", /* reject range */
-++ "AR192.168.0.0-192.168.0.255", /* accept range */
-++ "RM192.168.2.0/255.255.255.0", /* reject mask */
-++ "AM192.168.2.0/255.255.254.0", /* accept mask */
-++ /*
-++ * ipv6
-++ */
-++ "RA3ffe::3",
-++ "AA3ffe::1",
-++ "RR3ffe::10-3ffe::20",
-++ "AR3ffe::0-3ffe::ff",
-++ "RM3ffe:1::0/ffff:ffff:ffff:ffff:ffff:ffff:ffff:0",
-++ "AM3ffe:1::0/ffff:ffff:ffff:ffff::0"
-++};
-++
-++static int _ipcheck_addip(void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ return ipcheck_addip(fd_tracker_match_entry_head, -1, ss1, ss2, type, acceptreject);
-++}
-++
-++static int default_rules(int load)
-++{
-++ int ret;
-++ check_type_t type;
-++ check_acceptreject_t acceptreject;
-++ struct sockaddr_storage addr1;
-++ struct sockaddr_storage addr2;
-++ int i = 0;
-++ int (*loadfn)(void *fd_tracker_match_entry_head, struct sockaddr_storage *ss1, struct sockaddr_storage *ss2, check_type_t type, check_acceptreject_t acceptreject);
-++
-++ if (load) {
-++ loadfn = _ipcheck_addip;
-++ } else {
-++ loadfn = ipcheck_rmip;
-++ }
-++
-++ while (rules[i] != NULL) {
-++ printf("Parsing rule: %s\n", rules[i]);
-++ memset(&addr1, 0, sizeof(struct sockaddr_storage));
-++ memset(&addr2, 0, sizeof(struct sockaddr_storage));
-++ /*
-++ * First char is A (accept) or R (Reject)
-++ */
-++ switch(rules[i][0] & 0x5F) {
-++ case 'A':
-++ acceptreject = CHECK_ACCEPT;
-++ break;
-++ case 'R':
-++ acceptreject = CHECK_REJECT;
-++ break;
-++ default:
-++ fprintf(stderr, "Unknown record type on line %d: %s\n", i, rules[i]);
-++ goto next_record;
-++ }
-++
-++ /*
-++ * Second char is the filter type:
-++ * A Address
-++ * M Mask
-++ * R Range
-++ */
-++ switch(rules[i][1] & 0x5F) {
-++ case 'A':
-++ type = CHECK_TYPE_ADDRESS;
-++ ret = get_ipaddress(rules[i]+2, &addr1);
-++ break;
-++ case 'M':
-++ type = CHECK_TYPE_MASK;
-++ ret = read_2ip(rules[i]+2, "/", &addr1, &addr2);
-++ break;
-++ case 'R':
-++ type = CHECK_TYPE_RANGE;
-++ ret = read_2ip(rules[i]+2, "-", &addr1, &addr2);
-++ break;
-++ default:
-++ fprintf(stderr, "Unknown filter type on line %d: %s\n", i, rules[i]);
-++ goto next_record;
-++ break;
-++ }
-++
-++ if (ret) {
-++ fprintf(stderr, "Failed to parse address on line %d: %s\n", i, rules[i]);
-++ return -1;
-++ } else {
-++ if (addr1.ss_family == AF_INET) {
-++ if (loadfn(&match_entry_v4, &addr1, &addr2, type, acceptreject) < 0) {
-++ fprintf(stderr, "Failed to add/rm address on line %d: %s (errno: %s)\n", i, rules[i], strerror(errno));
-++ return -1;
-++ }
-++ } else {
-++ if (loadfn(&match_entry_v6, &addr1, &addr2, type, acceptreject) < 0) {
-++ fprintf(stderr, "Failed to add/rm address on line %d: %s (errno: %s)\n", i, rules[i], strerror(errno));
-++ return -1;
-++ }
-++ }
-++ }
-++
-++ next_record:
-++ i++;
-++ }
-++
-++ return 0;
-++}
-++
-++const char *tests[100] = {
-++ /*
-++ * ipv4
-++ */
-++ "R192.168.0.3", /* reject address */
-++ "A192.168.0.1", /* accept address */
-++ "R192.168.0.11", /* reject range */
-++ "A192.168.0.8", /* accept range */
-++ "R192.168.2.1", /* reject mask */
-++ "A192.168.3.1", /* accept mask */
-++ /*
-++ * ipv6
-++ */
-++ "R3ffe::3",
-++ "A3ffe::1",
-++ "R3ffe::11",
-++ "A3ffe::8",
-++ "R3ffe:1::1",
-++ "A3ffe:1::1:1"
-++};
-++
-++const char *after_insert_tests[100] = {
-++ /*
-++ * ipv4
-++ */
-++ "R192.168.0.3", /* reject address */
-++ "A192.168.0.1", /* accept address */
-++ "R192.168.0.11", /* reject range */
-++ "A192.168.0.8", /* accept range */
-++ "A192.168.2.1", /* reject mask */
-++ "A192.168.3.1", /* accept mask */
-++ /*
-++ * ipv6
-++ */
-++ "R3ffe::3",
-++ "A3ffe::1",
-++ "R3ffe::11",
-++ "A3ffe::8",
-++ "A3ffe:1::1",
-++ "A3ffe:1::1:1"
-++};
-++
-++int test(void)
-++{
-++ int i = 0;
-++ int expected;
-++ struct sockaddr_storage saddr;
-++ struct acl_match_entry *match_entry;
-++
-++ /*
-++ * default tests
-++ */
-++ while (tests[i] != NULL) {
-++ /*
-++ * First char is A (accept) or R (Reject)
-++ */
-++ switch(tests[i][0] & 0x5F) {
-++ case 'A':
-++ expected = 1;
-++ break;
-++ case 'R':
-++ expected = 0;
-++ break;
-++ default:
-++ fprintf(stderr, "Unknown record type on line %d: %s\n", i, tests[i]);
-++ return FAIL;
-++ break;
-++ }
-++
-++ if (get_ipaddress(tests[i]+1, &saddr)) {
-++ fprintf(stderr, "Cannot parse address %s\n", tests[i]+1);
-++ return FAIL;
-++ }
-++
-++ if (saddr.ss_family == AF_INET) {
-++ match_entry = match_entry_v4;
-++ } else {
-++ match_entry = match_entry_v6;
-++ }
-++
-++ if (ipcheck_validate(&match_entry, &saddr) != expected) {
-++ fprintf(stderr, "Failed to check access list for ip: %s\n", tests[i]);
-++ return FAIL;
-++ }
-++ i++;
-++ }
-++
-++ /*
-++ * insert tests
-++ */
-++
-++ if (get_ipaddress("192.168.2.1", &saddr)) {
-++ fprintf(stderr, "Cannot parse address 192.168.2.1\n");
-++ return FAIL;
-++ }
-++
-++ if (ipcheck_addip(&match_entry_v4, 3, &saddr, &saddr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ fprintf(stderr, "Unable to insert address in position 3 192.168.2.1\n");
-++ return FAIL;
-++ }
-++
-++ if (get_ipaddress("3ffe:1::1", &saddr)) {
-++ fprintf(stderr, "Cannot parse address 3ffe:1::1\n");
-++ return FAIL;
-++ }
-++
-++ if (ipcheck_addip(&match_entry_v6, 3, &saddr, &saddr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ fprintf(stderr, "Unable to insert address in position 3 3ffe:1::1\n");
-++ return FAIL;
-++ }
-++
-++ while (after_insert_tests[i] != NULL) {
-++ /*
-++ * First char is A (accept) or R (Reject)
-++ */
-++ switch(after_insert_tests[i][0] & 0x5F) {
-++ case 'A':
-++ expected = 1;
-++ break;
-++ case 'R':
-++ expected = 0;
-++ break;
-++ default:
-++ fprintf(stderr, "Unknown record type on line %d: %s\n", i, after_insert_tests[i]);
-++ return FAIL;
-++ break;
-++ }
-++
-++ if (get_ipaddress(after_insert_tests[i]+1, &saddr)) {
-++ fprintf(stderr, "Cannot parse address %s\n", after_insert_tests[i]+1);
-++ return FAIL;
-++ }
-++
-++ if (saddr.ss_family == AF_INET) {
-++ match_entry = match_entry_v4;
-++ } else {
-++ match_entry = match_entry_v6;
-++ }
-++
-++ if (ipcheck_validate(&match_entry, &saddr) != expected) {
-++ fprintf(stderr, "Failed to check access list for ip: %s\n", after_insert_tests[i]);
-++ return FAIL;
-++ }
-++ i++;
-++ }
-++ return PASS;
-++}
-++
-++int main(int argc, char *argv[])
-++{
-++ struct sockaddr_storage saddr;
-++ struct acl_match_entry *match_entry;
-++ int ret = PASS;
-++ int i;
-++
-++ if (default_rules(1) < 0) {
-++ return -1;
-++ }
-++
-++ if (argc > 1) {
-++ /*
-++ * run manual check against default access lists
-++ */
-++ for (i=1; i<argc; i++) {
-++ if (get_ipaddress(argv[i], &saddr)) {
-++ fprintf(stderr, "Cannot parse address %s\n", argv[i]);
-++ ret = FAIL;
-++ goto out;
-++ } else {
-++ if (saddr.ss_family == AF_INET) {
-++ match_entry = match_entry_v4;
-++ } else {
-++ match_entry = match_entry_v6;
-++ }
-++ if (ipcheck_validate(&match_entry, &saddr)) {
-++ printf("%s is VALID\n", argv[i]);
-++ ret = PASS;
-++ } else {
-++ printf("%s is not allowed\n", argv[i]);
-++ ret = FAIL;
-++ }
-++ }
-++ }
-++ } else {
-++ /*
-++ * run automatic tests
-++ */
-++ ret = test();
-++ }
-++
-++ /*
-++ * test memory leaks with ipcheck_rmip
-++ */
-++ if (default_rules(0) < 0) {
-++ return FAIL;
-++ }
-++
-++ /*
-++ * test memory leaks with ipcheck_rmall
-++ */
-++ if (default_rules(1) < 0) {
-++ return FAIL;
-++ }
-++out:
-++ ipcheck_rmall(&match_entry_v4);
-++ ipcheck_rmall(&match_entry_v6);
-++
-++ return ret;
-++}
-diff --git a/debian/patches/access-lists-add-public-API-tests.patch b/debian/patches/access-lists-add-public-API-tests.patch
-new file mode 100644
-index 0000000..2be97b8
---- /dev/null
-+++ b/debian/patches/access-lists-add-public-API-tests.patch
-@@ -0,0 +1,1019 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 6 Mar 2019 13:08:34 +0100
-+Subject: [access lists] add public API tests
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 31da8fa7b5d034980c38c2f5dcc6e3730f2031fa)
-+---
-+ libknet/tests/api_knet_link_add_acl.c | 246 +++++++++++++++++++++++++++++
-+ libknet/tests/api_knet_link_clear_acl.c | 196 +++++++++++++++++++++++
-+ libknet/tests/api_knet_link_insert_acl.c | 246 +++++++++++++++++++++++++++++
-+ libknet/tests/api_knet_link_rm_acl.c | 256 +++++++++++++++++++++++++++++++
-+ libknet/tests/api-check.mk | 18 ++-
-+ 5 files changed, 961 insertions(+), 1 deletion(-)
-+ create mode 100644 libknet/tests/api_knet_link_add_acl.c
-+ create mode 100644 libknet/tests/api_knet_link_clear_acl.c
-+ create mode 100644 libknet/tests/api_knet_link_insert_acl.c
-+ create mode 100644 libknet/tests/api_knet_link_rm_acl.c
-+
-+diff --git a/libknet/tests/api_knet_link_add_acl.c b/libknet/tests/api_knet_link_add_acl.c
-+new file mode 100644
-+index 0000000..b018165
-+--- /dev/null
-++++ b/libknet/tests/api_knet_link_add_acl.c
-+@@ -0,0 +1,246 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include "config.h"
-++
-++#include <errno.h>
-++#include <stdio.h>
-++#include <stdlib.h>
-++#include <string.h>
-++#include <unistd.h>
-++#include <inttypes.h>
-++
-++#include "libknet.h"
-++
-++#include "internals.h"
-++#include "netutils.h"
-++#include "test-common.h"
-++
-++static void test(void)
-++{
-++ knet_handle_t knet_h;
-++ int logfds[2];
-++ struct knet_host *host;
-++ struct knet_link *link;
-++ struct sockaddr_storage lo, lo6;
-++
-++ if (make_local_sockaddr(&lo, 0) < 0) {
-++ printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ if (make_local_sockaddr6(&lo6, 0) < 0) {
-++ printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ printf("Test knet_link_add_acl incorrect knet_h\n");
-++
-++ if ((!knet_link_add_acl(NULL, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted invalid knet_h or returned incorrect error: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ setup_logpipes(logfds);
-++
-++ knet_h = knet_handle_start(logfds, KNET_LOG_DEBUG);
-++
-++ printf("Test knet_link_add_acl with unconfigured host\n");
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted unconfigured host or returned incorrect error: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with unconfigured link\n");
-++
-++ if (knet_host_add(knet_h, 1) < 0) {
-++ printf("knet_host_add failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted unconfigured link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with invalid link\n");
-++
-++ if ((!knet_link_add_acl(knet_h, 1, KNET_MAX_LINK, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted invalid link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with invalid ss1\n");
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, NULL, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted invalid ss1 or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with invalid ss2\n");
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, &lo, NULL, CHECK_TYPE_RANGE, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted invalid ss2 or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with non matching families\n");
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, &lo, &lo6, CHECK_TYPE_RANGE, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted non matching families or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with wrong check_type\n");
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_RANGE + CHECK_TYPE_MASK + CHECK_TYPE_ADDRESS + 1, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted incorrect check_type or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with wrong acceptreject\n");
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT + CHECK_REJECT + 1)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted incorrect check_type or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_add_acl with point to point link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, &lo, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_add_acl accepted point ot point link or returned incorrect error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ knet_link_clear_config(knet_h, 1, 0);
-++
-++ printf("Test knet_link_add_acl with dynamic link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, NULL, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ host = knet_h->host_index[1];
-++ link = &host->link[0];
-++
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list not empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ printf("knet_link_add_acl did not accept dynamic link error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (!knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++}
-++
-++int main(int argc, char *argv[])
-++{
-++ test();
-++
-++ return PASS;
-++}
-+diff --git a/libknet/tests/api_knet_link_clear_acl.c b/libknet/tests/api_knet_link_clear_acl.c
-+new file mode 100644
-+index 0000000..78b7d79
-+--- /dev/null
-++++ b/libknet/tests/api_knet_link_clear_acl.c
-+@@ -0,0 +1,196 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include "config.h"
-++
-++#include <errno.h>
-++#include <stdio.h>
-++#include <stdlib.h>
-++#include <string.h>
-++#include <unistd.h>
-++#include <inttypes.h>
-++
-++#include "libknet.h"
-++
-++#include "internals.h"
-++#include "netutils.h"
-++#include "test-common.h"
-++
-++static void test(void)
-++{
-++ knet_handle_t knet_h;
-++ int logfds[2];
-++ struct knet_host *host;
-++ struct knet_link *link;
-++ struct sockaddr_storage lo;
-++
-++ if (make_local_sockaddr(&lo, 0) < 0) {
-++ printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ printf("Test knet_link_clear_acl incorrect knet_h\n");
-++
-++ if ((!knet_link_clear_acl(NULL, 1, 0)) || (errno != EINVAL)) {
-++ printf("knet_link_clear_acl accepted invalid knet_h or returned incorrect error: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ setup_logpipes(logfds);
-++
-++ knet_h = knet_handle_start(logfds, KNET_LOG_DEBUG);
-++
-++ printf("Test knet_link_clear_acl with unconfigured host\n");
-++
-++ if ((!knet_link_clear_acl(knet_h, 1, 0)) || (errno != EINVAL)) {
-++ printf("knet_link_clear_acl accepted unconfigured host or returned incorrect error: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_clear_acl with unconfigured link\n");
-++
-++ if (knet_host_add(knet_h, 1) < 0) {
-++ printf("knet_host_add failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_clear_acl(knet_h, 1, 0)) || (errno != EINVAL)) {
-++ printf("knet_link_clear_acl accepted unconfigured link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_clear_acl with invalid link\n");
-++
-++ if ((!knet_link_clear_acl(knet_h, 1, KNET_MAX_LINK)) || (errno != EINVAL)) {
-++ printf("knet_link_clear_acl accepted invalid link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_clear_acl with point to point link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, &lo, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_clear_acl(knet_h, 1, 0)) || (errno != EINVAL)) {
-++ printf("knet_link_clear_acl accepted point ot point link or returned incorrect error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ knet_link_clear_config(knet_h, 1, 0);
-++
-++ printf("Test knet_link_clear_acl with dynamic link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, NULL, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ host = knet_h->host_index[1];
-++ link = &host->link[0];
-++
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list NOT empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ printf("knet_link_clear_acl did not accept dynamic link error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (!knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_link_clear_acl(knet_h, 1, 0) < 0) {
-++ printf("knet_link_clear_acl failed to clear. error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list NOT empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++}
-++
-++int main(int argc, char *argv[])
-++{
-++ test();
-++
-++ return PASS;
-++}
-+diff --git a/libknet/tests/api_knet_link_insert_acl.c b/libknet/tests/api_knet_link_insert_acl.c
-+new file mode 100644
-+index 0000000..547f92b
-+--- /dev/null
-++++ b/libknet/tests/api_knet_link_insert_acl.c
-+@@ -0,0 +1,246 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include "config.h"
-++
-++#include <errno.h>
-++#include <stdio.h>
-++#include <stdlib.h>
-++#include <string.h>
-++#include <unistd.h>
-++#include <inttypes.h>
-++
-++#include "libknet.h"
-++
-++#include "internals.h"
-++#include "netutils.h"
-++#include "test-common.h"
-++
-++static void test(void)
-++{
-++ knet_handle_t knet_h;
-++ int logfds[2];
-++ struct knet_host *host;
-++ struct knet_link *link;
-++ struct sockaddr_storage lo, lo6;
-++
-++ if (make_local_sockaddr(&lo, 0) < 0) {
-++ printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ if (make_local_sockaddr6(&lo6, 0) < 0) {
-++ printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ printf("Test knet_link_insert_acl incorrect knet_h\n");
-++
-++ if ((!knet_link_insert_acl(NULL, 1, 0, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted invalid knet_h or returned incorrect error: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ setup_logpipes(logfds);
-++
-++ knet_h = knet_handle_start(logfds, KNET_LOG_DEBUG);
-++
-++ printf("Test knet_link_insert_acl with unconfigured host\n");
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted unconfigured host or returned incorrect error: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with unconfigured link\n");
-++
-++ if (knet_host_add(knet_h, 1) < 0) {
-++ printf("knet_host_add failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted unconfigured link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with invalid link\n");
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, KNET_MAX_LINK, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted invalid link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with invalid ss1\n");
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, NULL, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted invalid ss1 or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with invalid ss2\n");
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, &lo, NULL, CHECK_TYPE_RANGE, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted invalid ss2 or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with non matching families\n");
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, &lo, &lo6, CHECK_TYPE_RANGE, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted non matching families or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with wrong check_type\n");
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, &lo, &lo, CHECK_TYPE_RANGE + CHECK_TYPE_MASK + CHECK_TYPE_ADDRESS + 1, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted incorrect check_type or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with wrong acceptreject\n");
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT + CHECK_REJECT + 1)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted incorrect check_type or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_insert_acl with point to point link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, &lo, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_insert_acl(knet_h, 1, 0, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_insert_acl accepted point ot point link or returned incorrect error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ knet_link_clear_config(knet_h, 1, 0);
-++
-++ printf("Test knet_link_insert_acl with dynamic link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, NULL, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ host = knet_h->host_index[1];
-++ link = &host->link[0];
-++
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list not empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_link_insert_acl(knet_h, 1, 0, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ printf("knet_link_insert_acl did not accept dynamic link error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (!knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++}
-++
-++int main(int argc, char *argv[])
-++{
-++ test();
-++
-++ return PASS;
-++}
-+diff --git a/libknet/tests/api_knet_link_rm_acl.c b/libknet/tests/api_knet_link_rm_acl.c
-+new file mode 100644
-+index 0000000..49a82d9
-+--- /dev/null
-++++ b/libknet/tests/api_knet_link_rm_acl.c
-+@@ -0,0 +1,256 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include "config.h"
-++
-++#include <errno.h>
-++#include <stdio.h>
-++#include <stdlib.h>
-++#include <string.h>
-++#include <unistd.h>
-++#include <inttypes.h>
-++
-++#include "libknet.h"
-++
-++#include "internals.h"
-++#include "netutils.h"
-++#include "test-common.h"
-++
-++static void test(void)
-++{
-++ knet_handle_t knet_h;
-++ int logfds[2];
-++ struct knet_host *host;
-++ struct knet_link *link;
-++ struct sockaddr_storage lo, lo6;
-++
-++ if (make_local_sockaddr(&lo, 0) < 0) {
-++ printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ if (make_local_sockaddr6(&lo6, 0) < 0) {
-++ printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ printf("Test knet_link_rm_acl incorrect knet_h\n");
-++
-++ if ((!knet_link_rm_acl(NULL, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted invalid knet_h or returned incorrect error: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-++ setup_logpipes(logfds);
-++
-++ knet_h = knet_handle_start(logfds, KNET_LOG_DEBUG);
-++
-++ printf("Test knet_link_rm_acl with unconfigured host\n");
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted unconfigured host or returned incorrect error: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with unconfigured link\n");
-++
-++ if (knet_host_add(knet_h, 1) < 0) {
-++ printf("knet_host_add failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted unconfigured link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with invalid link\n");
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, KNET_MAX_LINK, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted invalid link or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with invalid ss1\n");
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, NULL, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted invalid ss1 or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with invalid ss2\n");
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, &lo, NULL, CHECK_TYPE_RANGE, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted invalid ss2 or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with non matching families\n");
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, &lo, &lo6, CHECK_TYPE_RANGE, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted non matching families or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with wrong check_type\n");
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_RANGE + CHECK_TYPE_MASK + CHECK_TYPE_ADDRESS + 1, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted incorrect check_type or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with wrong acceptreject\n");
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT + CHECK_REJECT + 1)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted incorrect check_type or returned incorrect error: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_link_rm_acl with point to point link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, &lo, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if ((!knet_link_rm_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) || (errno != EINVAL)) {
-++ printf("knet_link_rm_acl accepted point ot point link or returned incorrect error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ knet_link_clear_config(knet_h, 1, 0);
-++
-++ printf("Test knet_link_rm_acl with dynamic link\n");
-++
-++ if (knet_link_set_config(knet_h, 1, 0, KNET_TRANSPORT_UDP, &lo, NULL, 0) < 0) {
-++ printf("Unable to configure link: %s\n", strerror(errno));
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ host = knet_h->host_index[1];
-++ link = &host->link[0];
-++
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list not empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_link_add_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ printf("Failed to add an access list: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_link_rm_acl(knet_h, 1, 0, &lo, &lo, CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-++ printf("knet_link_rm_acl did not accept dynamic link error: %s\n", strerror(errno));
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-++ printf("match list NOT empty!");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++}
-++
-++int main(int argc, char *argv[])
-++{
-++ test();
-++
-++ return PASS;
-++}
-+diff --git a/libknet/tests/api-check.mk b/libknet/tests/api-check.mk
-+index 247ed58..427c388 100644
-+--- a/libknet/tests/api-check.mk
-++++ b/libknet/tests/api-check.mk
-+@@ -68,7 +68,11 @@ api_checks = \
-+ api_knet_link_set_enable_test \
-+ api_knet_link_get_enable_test \
-+ api_knet_link_get_link_list_test \
-+- api_knet_link_get_status_test
-++ api_knet_link_get_status_test \
-++ api_knet_link_add_acl_test \
-++ api_knet_link_insert_acl_test \
-++ api_knet_link_rm_acl_test \
-++ api_knet_link_clear_acl_test
-+
-+ api_knet_handle_new_test_SOURCES = api_knet_handle_new.c \
-+ test-common.c
-+@@ -256,3 +260,15 @@ api_knet_link_get_link_list_test_SOURCES = api_knet_link_get_link_list.c \
-+
-+ api_knet_link_get_status_test_SOURCES = api_knet_link_get_status.c \
-+ test-common.c
-++
-++api_knet_link_add_acl_test_SOURCES = api_knet_link_add_acl.c \
-++ test-common.c
-++
-++api_knet_link_insert_acl_test_SOURCES = api_knet_link_insert_acl.c \
-++ test-common.c
-++
-++api_knet_link_rm_acl_test_SOURCES = api_knet_link_rm_acl.c \
-++ test-common.c
-++
-++api_knet_link_clear_acl_test_SOURCES = api_knet_link_clear_acl.c \
-++ test-common.c
-diff --git a/debian/patches/access-lists-add-tests-for-default-access-lists.patch b/debian/patches/access-lists-add-tests-for-default-access-lists.patch
-new file mode 100644
-index 0000000..24d97e5
---- /dev/null
-+++ b/debian/patches/access-lists-add-tests-for-default-access-lists.patch
-@@ -0,0 +1,63 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 14 Feb 2019 06:47:41 +0100
-+Subject: [access lists] add tests for default access lists
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit c48b048e3b340ea7696c3300fb64928b22018233)
-+---
-+ libknet/tests/api_knet_link_set_config.c | 28 ++++++++++++++++++++++++++++
-+ 1 file changed, 28 insertions(+)
-+
-+diff --git a/libknet/tests/api_knet_link_set_config.c b/libknet/tests/api_knet_link_set_config.c
-+index 8679428..5fed9be 100644
-+--- a/libknet/tests/api_knet_link_set_config.c
-++++ b/libknet/tests/api_knet_link_set_config.c
-+@@ -24,6 +24,8 @@
-+ static void test(void)
-+ {
-+ knet_handle_t knet_h;
-++ struct knet_host *host;
-++ struct knet_link *link;
-+ int logfds[2];
-+ char src_portstr[32];
-+ char dst_portstr[32];
-+@@ -140,6 +142,19 @@ static void test(void)
-+ exit(FAIL);
-+ }
-+
-++ host = knet_h->host_index[1];
-++ link = &host->link[0];
-++
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].match_entry) {
-++ printf("found access lists for dynamic dst_addr!\n");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-+ if (knet_link_get_status(knet_h, 1, 0, &link_status, sizeof(struct knet_link_status)) < 0) {
-+ printf("Unable to get link status: %s\n", strerror(errno));
-+ knet_link_clear_config(knet_h, 1, 0);
-+@@ -244,6 +259,19 @@ static void test(void)
-+ exit(FAIL);
-+ }
-+
-++ host = knet_h->host_index[1];
-++ link = &host->link[0];
-++
-++ if (!knet_h->knet_transport_fd_tracker[link->outsock].match_entry) {
-++ printf("Unable to find default access lists for static dst_addr!\n");
-++ knet_link_clear_config(knet_h, 1, 0);
-++ knet_host_remove(knet_h, 1);
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-+ if (knet_link_get_status(knet_h, 1, 0, &link_status, sizeof(struct knet_link_status)) < 0) {
-+ printf("Unable to get link status: %s\n", strerror(errno));
-+ knet_link_clear_config(knet_h, 1, 0);
-diff --git a/debian/patches/access-lists-allow-knet_bench-to-enable-disable-access-li.patch b/debian/patches/access-lists-allow-knet_bench-to-enable-disable-access-li.patch
-new file mode 100644
-index 0000000..a9b0ea7
---- /dev/null
-+++ b/debian/patches/access-lists-allow-knet_bench-to-enable-disable-access-li.patch
-@@ -0,0 +1,61 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 14 Feb 2019 07:23:09 +0100
-+Subject: [access lists] allow knet_bench to enable/disable access lists
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit a7fa047d1bdae266cfef18fc31d87072b7dfd6d3)
-+---
-+ libknet/tests/knet_bench.c | 12 +++++++++++-
-+ 1 file changed, 11 insertions(+), 1 deletion(-)
-+
-+diff --git a/libknet/tests/knet_bench.c b/libknet/tests/knet_bench.c
-+index b208b3e..00cd58b 100644
-+--- a/libknet/tests/knet_bench.c
-++++ b/libknet/tests/knet_bench.c
-+@@ -46,6 +46,7 @@ static int wait_for_perf_rx = 0;
-+ static char *compresscfg = NULL;
-+ static char *cryptocfg = NULL;
-+ static int machine_output = 0;
-++static int use_access_lists = 0;
-+
-+ static int bench_shutdown_in_progress = 0;
-+ static pthread_mutex_t shutdown_mutex = PTHREAD_MUTEX_INITIALIZER;
-+@@ -78,6 +79,7 @@ static void print_help(void)
-+ printf("knet_bench usage:\n");
-+ printf(" -h print this help (no really)\n");
-+ printf(" -d enable debug logs (default INFO)\n");
-++ printf(" -f enable use of access lists (default: off)\n");
-+ printf(" -c [implementation]:[crypto]:[hashing] crypto configuration. (default disabled)\n");
-+ printf(" Example: -c nss:aes128:sha1\n");
-+ printf(" -z [implementation]:[level]:[threshold] compress configuration. (default disabled)\n");
-+@@ -248,7 +250,7 @@ static void setup_knet(int argc, char *argv[])
-+
-+ memset(nodes, 0, sizeof(nodes));
-+
-+- while ((rv = getopt(argc, argv, "aCT:S:s:ldom:wb:t:n:c:p:X::P:z:h")) != EOF) {
-++ while ((rv = getopt(argc, argv, "aCT:S:s:ldfom:wb:t:n:c:p:X::P:z:h")) != EOF) {
-+ switch(rv) {
-+ case 'h':
-+ print_help();
-+@@ -260,6 +262,9 @@ static void setup_knet(int argc, char *argv[])
-+ case 'd':
-+ debug = KNET_LOG_DEBUG;
-+ break;
-++ case 'f':
-++ use_access_lists = 1;
-++ break;
-+ case 'c':
-+ if (cryptocfg) {
-+ printf("Error: -c can only be specified once\n");
-+@@ -456,6 +461,11 @@ static void setup_knet(int argc, char *argv[])
-+ exit(FAIL);
-+ }
-+
-++ if (knet_handle_enable_access_lists(knet_h, use_access_lists) < 0) {
-++ printf("Unable to knet_handle_enable_access_lists: %s\n", strerror(errno));
-++ exit(FAIL);
-++ }
-++
-+ if (cryptocfg) {
-+ memset(&knet_handle_crypto_cfg, 0, sizeof(knet_handle_crypto_cfg));
-+ cryptomodel = strtok(cryptocfg, ":");
-diff --git a/debian/patches/access-lists-automatically-add-and-remove-point-to-point-.patch b/debian/patches/access-lists-automatically-add-and-remove-point-to-point-.patch
-new file mode 100644
-index 0000000..5c0c247
---- /dev/null
-+++ b/debian/patches/access-lists-automatically-add-and-remove-point-to-point-.patch
-@@ -0,0 +1,283 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 14 Feb 2019 06:32:42 +0100
-+Subject: [access lists] automatically add and remove point to point access
-+ lists
-+
-+those are not used just yet.
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit a08389d536726927f2438a7e0bfe6b86244779ab)
-+---
-+ libknet/links_acl.h | 7 +++-
-+ libknet/links.c | 96 +++++++++++++++++++++++++++++++++++++++++++
-+ libknet/links_acl.c | 62 +++++++++++++++++++++++++++-
-+ libknet/tests/int_links_acl.c | 8 ++--
-+ 4 files changed, 166 insertions(+), 7 deletions(-)
-+
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index 26b0f36..f4713d6 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -13,10 +13,13 @@
-+
-+ int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip);
-+
-+-void ipcheck_clear(struct acl_match_entry **match_entry_head);
-+-
-+ int ipcheck_addip(struct acl_match_entry **match_entry_head,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-++int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++void check_rmall(struct acl_match_entry **match_entry_head);
-+ #endif
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 010aeb6..6c75c35 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -20,6 +20,56 @@
-+ #include "transports.h"
-+ #include "host.h"
-+ #include "threads_common.h"
-++#include "links_acl.h"
-++
-++static void _link_del_all_acl(knet_handle_t knet_h, int sock)
-++{
-++ check_rmall(&knet_h->knet_transport_fd_tracker[sock].match_entry);
-++}
-++
-++static int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-++{
-++ int err = -1;
-++
-++ switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-++ case LOOPBACK:
-++ /*
-++ * loopback does not require access lists
-++ */
-++ err = 0;
-++ break;
-++ case IP_PROTO:
-++ err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++ break;
-++ default:
-++ break;
-++ }
-++
-++ return err;
-++}
-++
-++static int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-++{
-++ int err = -1;
-++
-++ switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-++ case LOOPBACK:
-++ /*
-++ * loopback does not require access lists
-++ */
-++ err = 0;
-++ break;
-++ case IP_PROTO:
-++ err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++ break;
-++ default:
-++ break;
-++ }
-++
-++ return err;
-++}
-+
-+ int _link_updown(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-+ unsigned int enabled, unsigned int connected)
-+@@ -234,6 +284,21 @@ int knet_link_set_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ err = -1;
-+ goto exit_unlock;
-+ }
-++
-++ /*
-++ * we can only configure default access lists if we know both endpoints
-++ */
-++ if (link->dynamic == KNET_LINK_STATIC) {
-++ log_debug(knet_h, KNET_SUB_LINK, "Configuring default access lists for host: %u link: %u",
-++ host_id, link_id);
-++ if (_link_add_default_acl(knet_h, link) < 0) {
-++ log_warn(knet_h, KNET_SUB_LINK, "Failed to configure default access lists for host: %u link: %u", host_id, link_id);
-++ savederrno = errno;
-++ err = -1;
-++ goto exit_unlock;
-++ }
-++ }
-++
-+ link->configured = 1;
-+ log_debug(knet_h, KNET_SUB_LINK, "host: %u link: %u is configured",
-+ host_id, link_id);
-+@@ -351,6 +416,7 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ int savederrno = 0, err = 0;
-+ struct knet_host *host;
-+ struct knet_link *link;
-++ int sock;
-+
-+ if (!knet_h) {
-+ errno = EINVAL;
-+@@ -397,6 +463,28 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ goto exit_unlock;
-+ }
-+
-++ /*
-++ * remove well known access lists here.
-++ * After the transport has done clearing the config,
-++ * then we can remove any leftover access lists if the link
-++ * is no longer in use.
-++ */
-++ if (link->dynamic == KNET_LINK_STATIC) {
-++ if (_link_rm_default_acl(knet_h, link) < 0) {
-++ err = -1;
-++ savederrno = EBUSY;
-++ log_err(knet_h, KNET_SUB_LINK, "Host %u link %u: unable to remove default access list",
-++ host_id, link_id);
-++ goto exit_unlock;
-++ }
-++ }
-++
-++ /*
-++ * cache it for later as we don't know if the transport
-++ * will clear link info during clear_config.
-++ */
-++ sock = link->outsock;
-++
-+ if ((transport_link_clear_config(knet_h, link) < 0) &&
-+ (errno != EBUSY)) {
-+ savederrno = errno;
-+@@ -404,6 +492,14 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ goto exit_unlock;
-+ }
-+
-++ /*
-++ * remove any other access lists when the socket is no
-++ * longer in use by the transport.
-++ */
-++ if (knet_h->knet_transport_fd_tracker[sock].transport == KNET_MAX_TRANSPORTS) {
-++ _link_del_all_acl(knet_h, sock);
-++ }
-++
-+ memset(link, 0, sizeof(struct knet_link));
-+ link->link_id = link_id;
-+
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index fe84088..2ad3e90 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -150,7 +150,7 @@ int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_
-+ * Routines to manuipulate access lists
-+ */
-+
-+-void ipcheck_clear(struct acl_match_entry **match_entry_head)
-++void check_rmall(struct acl_match_entry **match_entry_head)
-+ {
-+ struct acl_match_entry *next_match_entry;
-+ struct acl_match_entry *match_entry = *match_entry_head;
-+@@ -163,6 +163,62 @@ void ipcheck_clear(struct acl_match_entry **match_entry_head)
-+ *match_entry_head = NULL;
-+ }
-+
-++static struct acl_match_entry *ipcheck_findmatch(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++
-++ while (match_entry) {
-++ if ((!memcmp(&match_entry->addr1, ip1, sizeof(struct sockaddr_storage))) &&
-++ (!memcmp(&match_entry->addr2, ip2, sizeof(struct sockaddr_storage))) &&
-++ (match_entry->type == type) &&
-++ (match_entry->acceptreject == acceptreject)) {
-++ return match_entry;
-++ }
-++ match_entry = match_entry->next;
-++ }
-++
-++ return NULL;
-++}
-++
-++int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ struct acl_match_entry *next_match_entry = NULL;
-++ struct acl_match_entry *rm_match_entry;
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++
-++ rm_match_entry = ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject);
-++ if (!rm_match_entry) {
-++ return -1;
-++ }
-++
-++ while (match_entry) {
-++ next_match_entry = match_entry->next;
-++ /*
-++ * we are removing the list head, be careful
-++ */
-++ if (rm_match_entry == match_entry) {
-++ *match_entry_head = next_match_entry;
-++ free(match_entry);
-++ break;
-++ }
-++ /*
-++ * the next one is the one we need to remove
-++ */
-++ if (rm_match_entry == next_match_entry) {
-++ match_entry->next = next_match_entry->next;
-++ free(next_match_entry);
-++ break;
-++ }
-++ match_entry = next_match_entry;
-++ }
-++
-++ return 0;
-++}
-++
-+ int ipcheck_addip(struct acl_match_entry **match_entry_head,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+@@ -182,6 +238,10 @@ int ipcheck_addip(struct acl_match_entry **match_entry_head,
-+ (ip1->ss_family != ip2->ss_family))
-+ return -1;
-+
-++ if (ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject) != NULL) {
-++ return -1;
-++ }
-++
-+ new_match_entry = malloc(sizeof(struct acl_match_entry));
-+ if (!new_match_entry)
-+ return -1;
-+diff --git a/libknet/tests/int_links_acl.c b/libknet/tests/int_links_acl.c
-+index 1e7f426..129aabe 100644
-+--- a/libknet/tests/int_links_acl.c
-++++ b/libknet/tests/int_links_acl.c
-+@@ -106,8 +106,8 @@ static int load_file(void)
-+ struct sockaddr_storage addr1;
-+ struct sockaddr_storage addr2;
-+
-+- ipcheck_clear(&match_entry_v4);
-+- ipcheck_clear(&match_entry_v6);
-++ check_rmall(&match_entry_v4);
-++ check_rmall(&match_entry_v6);
-+
-+ filterfile = fopen("int_links_acl.txt", "r");
-+ if (!filterfile) {
-+@@ -203,7 +203,7 @@ int main(int argc, char *argv[])
-+ }
-+ }
-+
-+- ipcheck_clear(&match_entry_v4);
-+- ipcheck_clear(&match_entry_v6);
-++ check_rmall(&match_entry_v4);
-++ check_rmall(&match_entry_v6);
-+ return 0;
-+ }
-diff --git a/debian/patches/access-lists-cleanup-API-a-bit.patch b/debian/patches/access-lists-cleanup-API-a-bit.patch
-new file mode 100644
-index 0000000..b88c2b5
---- /dev/null
-+++ b/debian/patches/access-lists-cleanup-API-a-bit.patch
-@@ -0,0 +1,98 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 05:21:29 +0100
-+Subject: [access lists] cleanup API a bit
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 34d87fab04c1e1329f0066adf595d575dac3d0de)
-+---
-+ libknet/links_acl.h | 3 ++-
-+ libknet/links_acl.c | 26 +++++++++++++-------------
-+ libknet/threads_rx.c | 2 +-
-+ libknet/transport_sctp.c | 2 +-
-+ 4 files changed, 17 insertions(+), 16 deletions(-)
-+
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index 020ec05..0ad50e6 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -37,8 +37,9 @@ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport);
-++int check_validate(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip);
-++
-+ int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link);
-+ int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link);
-+-int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip);
-+
-+ #endif
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 85a792d..520a934 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -71,22 +71,10 @@ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ }
-+ }
-+
-+-int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+-{
-+- return check_add(knet_h, kh_link->outsock, kh_link->transport_type,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+-}
-+-
-+-int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+-{
-+- return check_rm(knet_h, kh_link->outsock, kh_link->transport_type,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+-}
-+-
-+ /*
-+ * return 0 to reject and 1 to accept a packet
-+ */
-+-int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip)
-++int check_validate(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip)
-+ {
-+ switch(transport_get_proto(knet_h, knet_h->knet_transport_fd_tracker[sockfd].transport)) {
-+ case LOOPBACK:
-+@@ -103,3 +91,15 @@ int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, struct socka
-+ */
-+ return 0;
-+ }
-++
-++int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-++{
-++ return check_add(knet_h, kh_link->outsock, kh_link->transport_type,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++}
-++
-++int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-++{
-++ return check_rm(knet_h, kh_link->outsock, kh_link->transport_type,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++}
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index 06a0168..5fa51c4 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -808,7 +808,7 @@ static void _handle_recv_from_links(knet_handle_t knet_h, int sockfd, struct kne
-+ */
-+ if ((knet_h->use_access_lists) &&
-+ (transport_get_acl_type(knet_h, transport) == USE_GENERIC_ACL)) {
-+- if (!_generic_filter_packet_by_acl(knet_h, sockfd, msg[i].msg_hdr.msg_name)) {
-++ if (!check_validate(knet_h, sockfd, msg[i].msg_hdr.msg_name)) {
-+ char src_ipaddr[KNET_MAX_HOST_LEN];
-+ char src_port[KNET_MAX_PORT_LEN];
-+
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index ce3e98e..50a237b 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -731,7 +731,7 @@ static void _handle_incoming_sctp(knet_handle_t knet_h, int listen_sock)
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Incoming: received connection from: %s port: %s",
-+ addr_str, port_str);
-+ if (knet_h->use_access_lists) {
-+- if (!_generic_filter_packet_by_acl(knet_h, listen_sock, &ss)) {
-++ if (!check_validate(knet_h, listen_sock, &ss)) {
-+ savederrno = EINVAL;
-+ err = -1;
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Connection rejected from %s/%s", addr_str, port_str);
-diff --git a/debian/patches/access-lists-confine-access-lists-data-structs-within-the.patch b/debian/patches/access-lists-confine-access-lists-data-structs-within-the.patch
-new file mode 100644
-index 0000000..219cd34
---- /dev/null
-+++ b/debian/patches/access-lists-confine-access-lists-data-structs-within-the.patch
-@@ -0,0 +1,226 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 26 Feb 2019 11:37:49 +0100
-+Subject: [access lists] confine access lists data structs within the protocol
-+ itself
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 6abcbf579695dd050da0b5262f1e0a63325bbe52)
-+---
-+ libknet/links_acl.h | 8 --------
-+ libknet/links_acl_ip.h | 13 +++++++------
-+ libknet/links_acl.c | 8 ++++----
-+ libknet/links_acl_ip.c | 48 ++++++++++++++++++++++++++++++------------------
-+ 4 files changed, 41 insertions(+), 36 deletions(-)
-+
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index f871403..84ae6b9 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -22,14 +22,6 @@ typedef enum {
-+ CHECK_REJECT
-+ } check_acceptreject_t;
-+
-+-struct acl_match_entry {
-+- check_type_t type;
-+- check_acceptreject_t acceptreject;
-+- struct sockaddr_storage addr1; /* Actual IP address, mask top or low IP */
-+- struct sockaddr_storage addr2; /* high IP address or address bitmask */
-+- struct acl_match_entry *next;
-+-};
-+-
-+ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+diff --git a/libknet/links_acl_ip.h b/libknet/links_acl_ip.h
-+index 9e21e00..c475db9 100644
-+--- a/libknet/links_acl_ip.h
-++++ b/libknet/links_acl_ip.h
-+@@ -12,15 +12,16 @@
-+ #include "internals.h"
-+ #include "links_acl.h"
-+
-+-int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip);
-++int ipcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-+
-+-int ipcheck_addip(struct acl_match_entry **match_entry_head,
-++int ipcheck_addip(void *fd_tracker_match_entry_head,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+-int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- check_type_t type, check_acceptreject_t acceptreject);
-++int ipcheck_rmip(void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++void ipcheck_rmall(void *fd_tracker_match_entry_head);
-+
-+-void ipcheck_rmall(struct acl_match_entry **match_entry_head);
-+ #endif
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 7605fe9..b1d7ab4 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -37,7 +37,7 @@ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_addip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-+ ip1, ip2, type, acceptreject);
-+ break;
-+ default:
-+@@ -58,7 +58,7 @@ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_rmip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-+ ip1, ip2, type, acceptreject);
-+ break;
-+ default:
-+@@ -74,7 +74,7 @@ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ return;
-+ break;
-+ case IP_PROTO:
-+- ipcheck_rmall((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry);
-++ ipcheck_rmall(&knet_h->knet_transport_fd_tracker[sock].match_entry);
-+ break;
-+ default:
-+ break;
-+@@ -92,7 +92,7 @@ int check_validate(knet_handle_t knet_h, int sock, uint8_t transport, struct soc
-+ return 1;
-+ break;
-+ case IP_PROTO:
-+- return ipcheck_validate((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry, checkip);
-++ return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sock].match_entry, checkip);
-+ break;
-+ default:
-+ break;
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index 58c7b28..e72a382 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -21,6 +21,14 @@
-+ #include "links_acl.h"
-+ #include "links_acl_ip.h"
-+
-++struct ip_acl_match_entry {
-++ check_type_t type;
-++ check_acceptreject_t acceptreject;
-++ struct sockaddr_storage addr1; /* Actual IP address, mask top or low IP */
-++ struct sockaddr_storage addr2; /* high IP address or address bitmask */
-++ struct ip_acl_match_entry *next;
-++};
-++
-+ /*
-+ * s6_addr32 is not defined in BSD userland, only kernel.
-+ * definition is the same as linux and it works fine for
-+@@ -34,7 +42,7 @@
-+ * IPv4 See if the address we have matches the current match entry
-+ */
-+
-+-static int ip_matches_v4(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-++static int ip_matches_v4(struct sockaddr_storage *checkip, struct ip_acl_match_entry *match_entry)
-+ {
-+ struct sockaddr_in *ip_to_check;
-+ struct sockaddr_in *match1;
-+@@ -96,7 +104,7 @@ static int ip6addr_cmp(struct in6_addr *a, struct in6_addr *b)
-+ * IPv6 See if the address we have matches the current match entry
-+ */
-+
-+-static int ip_matches_v6(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-++static int ip_matches_v6(struct sockaddr_storage *checkip, struct ip_acl_match_entry *match_entry)
-+ {
-+ struct sockaddr_in6 *ip_to_check;
-+ struct sockaddr_in6 *match1;
-+@@ -134,10 +142,11 @@ static int ip_matches_v6(struct sockaddr_storage *checkip, struct acl_match_entr
-+ }
-+
-+
-+-int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip)
-++int ipcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip)
-+ {
-+- struct acl_match_entry *match_entry = *match_entry_head;
-+- int (*match_fn)(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry);
-++ struct ip_acl_match_entry **match_entry_head = (struct ip_acl_match_entry **)fd_tracker_match_entry_head;
-++ struct ip_acl_match_entry *match_entry = *match_entry_head;
-++ int (*match_fn)(struct sockaddr_storage *checkip, struct ip_acl_match_entry *match_entry);
-+
-+ if (checkip->ss_family == AF_INET){
-+ match_fn = ip_matches_v4;
-+@@ -161,10 +170,11 @@ int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_
-+ * Routines to manuipulate access lists
-+ */
-+
-+-void ipcheck_rmall(struct acl_match_entry **match_entry_head)
-++void ipcheck_rmall(void *fd_tracker_match_entry_head)
-+ {
-+- struct acl_match_entry *next_match_entry;
-+- struct acl_match_entry *match_entry = *match_entry_head;
-++ struct ip_acl_match_entry **match_entry_head = (struct ip_acl_match_entry **)fd_tracker_match_entry_head;
-++ struct ip_acl_match_entry *next_match_entry;
-++ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+
-+ while (match_entry) {
-+ next_match_entry = match_entry->next;
-+@@ -174,11 +184,11 @@ void ipcheck_rmall(struct acl_match_entry **match_entry_head)
-+ *match_entry_head = NULL;
-+ }
-+
-+-static struct acl_match_entry *ipcheck_findmatch(struct acl_match_entry **match_entry_head,
-++static struct ip_acl_match_entry *ipcheck_findmatch(struct ip_acl_match_entry **match_entry_head,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- struct acl_match_entry *match_entry = *match_entry_head;
-++ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+
-+ while (match_entry) {
-+ if ((!memcmp(&match_entry->addr1, ip1, sizeof(struct sockaddr_storage))) &&
-+@@ -193,13 +203,14 @@ static struct acl_match_entry *ipcheck_findmatch(struct acl_match_entry **match_
-+ return NULL;
-+ }
-+
-+-int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-++int ipcheck_rmip(void *fd_tracker_match_entry_head,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- struct acl_match_entry *next_match_entry = NULL;
-+- struct acl_match_entry *rm_match_entry;
-+- struct acl_match_entry *match_entry = *match_entry_head;
-++ struct ip_acl_match_entry **match_entry_head = (struct ip_acl_match_entry **)fd_tracker_match_entry_head;
-++ struct ip_acl_match_entry *next_match_entry = NULL;
-++ struct ip_acl_match_entry *rm_match_entry;
-++ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+
-+ rm_match_entry = ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject);
-+ if (!rm_match_entry) {
-+@@ -231,12 +242,13 @@ int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-+ return 0;
-+ }
-+
-+-int ipcheck_addip(struct acl_match_entry **match_entry_head,
-++int ipcheck_addip(void *fd_tracker_match_entry_head,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- struct acl_match_entry *new_match_entry;
-+- struct acl_match_entry *match_entry = *match_entry_head;
-++ struct ip_acl_match_entry **match_entry_head = (struct ip_acl_match_entry **)fd_tracker_match_entry_head;
-++ struct ip_acl_match_entry *new_match_entry;
-++ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+
-+ if (!ip1) {
-+ errno = EINVAL;
-+@@ -259,7 +271,7 @@ int ipcheck_addip(struct acl_match_entry **match_entry_head,
-+ return -1;
-+ }
-+
-+- new_match_entry = malloc(sizeof(struct acl_match_entry));
-++ new_match_entry = malloc(sizeof(struct ip_acl_match_entry));
-+ if (!new_match_entry) {
-+ return -1;
-+ }
-diff --git a/debian/patches/access-lists-enable-access-lists-for-GENERIC_ACL-protocol.patch b/debian/patches/access-lists-enable-access-lists-for-GENERIC_ACL-protocol.patch
-new file mode 100644
-index 0000000..636f0ab
---- /dev/null
-+++ b/debian/patches/access-lists-enable-access-lists-for-GENERIC_ACL-protocol.patch
-@@ -0,0 +1,80 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 15 Feb 2019 10:57:45 +0100
-+Subject: [access lists] enable access lists for GENERIC_ACL protocols (udp
-+ for example)
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit fe077a47ad551d6dcc9f136a1f29b2b98b718beb)
-+---
-+ libknet/threads_rx.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
-+ 1 file changed, 44 insertions(+)
-+
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index 8435d13..833938d 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -20,6 +20,7 @@
-+ #include "crypto.h"
-+ #include "host.h"
-+ #include "links.h"
-++#include "links_acl.h"
-+ #include "logging.h"
-+ #include "transports.h"
-+ #include "transport_common.h"
-+@@ -720,6 +721,27 @@ out_pmtud:
-+ }
-+ }
-+
-++/*
-++ * return 0 to reject and 1 to accept a packet
-++ */
-++static int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, const struct knet_mmsghdr *msg)
-++{
-++ switch(transport_get_proto(knet_h, knet_h->knet_transport_fd_tracker[sockfd].transport)) {
-++ case LOOPBACK:
-++ return 1;
-++ break;
-++ case IP_PROTO:
-++ return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sockfd].match_entry, msg->msg_hdr.msg_name);
-++ break;
-++ default:
-++ break;
-++ }
-++ /*
-++ * reject by default
-++ */
-++ return 0;
-++}
-++
-+ static void _handle_recv_from_links(knet_handle_t knet_h, int sockfd, struct knet_mmsghdr *msg)
-+ {
-+ int err, savederrno;
-+@@ -802,6 +824,28 @@ static void _handle_recv_from_links(knet_handle_t knet_h, int sockfd, struct kne
-+ goto exit_unlock;
-+ break;
-+ case 2: /* packet is data and should be parsed as such */
-++ /*
-++ * processing incoming packets vs access lists
-++ */
-++ if ((knet_h->use_access_lists) &&
-++ (transport_get_acl_type(knet_h, transport) == USE_GENERIC_ACL)) {
-++ if (!_generic_filter_packet_by_acl(knet_h, sockfd, &msg[i])) {
-++ char src_ipaddr[KNET_MAX_HOST_LEN];
-++ char src_port[KNET_MAX_PORT_LEN];
-++
-++ memset(src_ipaddr, 0, KNET_MAX_HOST_LEN);
-++ memset(src_port, 0, KNET_MAX_PORT_LEN);
-++ knet_addrtostr(msg->msg_hdr.msg_name, sockaddr_len(msg->msg_hdr.msg_name),
-++ src_ipaddr, KNET_MAX_HOST_LEN,
-++ src_port, KNET_MAX_PORT_LEN);
-++
-++ log_debug(knet_h, KNET_SUB_RX, "Packet rejected from %s/%s", src_ipaddr, src_port);
-++ /*
-++ * continue processing the other packets
-++ */
-++ continue;
-++ }
-++ }
-+ _parse_recv_from_links(knet_h, sockfd, &msg[i]);
-+ break;
-+ }
-diff --git a/debian/patches/access-lists-enable-generic-access-lists-only-for-protoco.patch b/debian/patches/access-lists-enable-generic-access-lists-only-for-protoco.patch
-new file mode 100644
-index 0000000..a27bd22
---- /dev/null
-+++ b/debian/patches/access-lists-enable-generic-access-lists-only-for-protoco.patch
-@@ -0,0 +1,55 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 17 Feb 2019 07:32:59 +0100
-+Subject: [access lists] enable generic access lists only for protocols that
-+ use them
-+
-+protocols such as SCTP that use their own access list tracking will
-+need to setup access lists in transport_link_set/clear_config
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 862446dbc84165963b34f05e2157d3361b5b8f8a)
-+---
-+ libknet/links.c | 15 ++++++++++-----
-+ 1 file changed, 10 insertions(+), 5 deletions(-)
-+
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 6c75c35..85b50e5 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -287,10 +287,13 @@ int knet_link_set_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+
-+ /*
-+ * we can only configure default access lists if we know both endpoints
-++ * and the protocol uses GENERIC_ACL, otherwise the protocol has
-++ * to setup their own access lists above in transport_link_set_config.
-+ */
-+- if (link->dynamic == KNET_LINK_STATIC) {
-+- log_debug(knet_h, KNET_SUB_LINK, "Configuring default access lists for host: %u link: %u",
-+- host_id, link_id);
-++ if ((transport_get_acl_type(knet_h, transport) == USE_GENERIC_ACL) &&
-++ (link->dynamic == KNET_LINK_STATIC)) {
-++ log_debug(knet_h, KNET_SUB_LINK, "Configuring default access lists for host: %u link: %u socket: %d",
-++ host_id, link_id, link->outsock);
-+ if (_link_add_default_acl(knet_h, link) < 0) {
-+ log_warn(knet_h, KNET_SUB_LINK, "Failed to configure default access lists for host: %u link: %u", host_id, link_id);
-+ savederrno = errno;
-+@@ -469,7 +472,8 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * then we can remove any leftover access lists if the link
-+ * is no longer in use.
-+ */
-+- if (link->dynamic == KNET_LINK_STATIC) {
-++ if ((transport_get_acl_type(knet_h, link->transport_type) == USE_GENERIC_ACL) &&
-++ (link->dynamic == KNET_LINK_STATIC)) {
-+ if (_link_rm_default_acl(knet_h, link) < 0) {
-+ err = -1;
-+ savederrno = EBUSY;
-+@@ -496,7 +500,8 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * remove any other access lists when the socket is no
-+ * longer in use by the transport.
-+ */
-+- if (knet_h->knet_transport_fd_tracker[sock].transport == KNET_MAX_TRANSPORTS) {
-++ if ((transport_get_acl_type(knet_h, link->transport_type) == USE_GENERIC_ACL) &&
-++ (knet_h->knet_transport_fd_tracker[sock].transport == KNET_MAX_TRANSPORTS)) {
-+ _link_del_all_acl(knet_h, sock);
-+ }
-+
-diff --git a/debian/patches/access-lists-fix-build-on-BSD-and-add-some-include-files-.patch b/debian/patches/access-lists-fix-build-on-BSD-and-add-some-include-files-.patch
-new file mode 100644
-index 0000000..27b0e57
---- /dev/null
-+++ b/debian/patches/access-lists-fix-build-on-BSD-and-add-some-include-files-.patch
-@@ -0,0 +1,64 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 07:08:29 +0100
-+Subject: [access lists] fix build on BSD and add some include files around
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit f1919ce88831032c123bb28771ef2cabf03a148e)
-+---
-+ libknet/tests/Makefile.am | 1 +
-+ libknet/links_acl.c | 2 ++
-+ libknet/links_acl_ip.c | 2 ++
-+ libknet/tests/int_links_acl.c | 2 ++
-+ 4 files changed, 7 insertions(+)
-+
-+diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am
-+index d46553a..2f22293 100644
-+--- a/libknet/tests/Makefile.am
-++++ b/libknet/tests/Makefile.am
-+@@ -69,6 +69,7 @@ pckt_test_SOURCES = pckt_test.c
-+
-+ int_links_acl_test_SOURCES = int_links_acl.c \
-+ ../common.c \
-++ ../compat.c \
-+ ../logging.c \
-+ ../netutils.c \
-+ ../threads_common.c \
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 8592f1f..cfcc1fd 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -6,6 +6,8 @@
-+ * This software licensed under GPL-2.0+, LGPL-2.0+
-+ */
-+
-++#include "config.h"
-++
-+ #include <stdint.h>
-+ #include <string.h>
-+ #include <stdlib.h>
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index 2aef14b..ffd18a4 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -6,6 +6,8 @@
-+ * This software licensed under GPL-2.0+, LGPL-2.0+
-+ */
-+
-++#include "config.h"
-++
-+ #include <sys/socket.h>
-+ #include <netinet/in.h>
-+ #include <stdint.h>
-+diff --git a/libknet/tests/int_links_acl.c b/libknet/tests/int_links_acl.c
-+index 8d9f4e0..05bd829 100644
-+--- a/libknet/tests/int_links_acl.c
-++++ b/libknet/tests/int_links_acl.c
-+@@ -6,6 +6,8 @@
-+ * This software licensed under GPL-2.0+, LGPL-2.0+
-+ */
-+
-++#include "config.h"
-++
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netinet/in.h>
-diff --git a/debian/patches/access-lists-fix-build-on-freebsd.patch b/debian/patches/access-lists-fix-build-on-freebsd.patch
-new file mode 100644
-index 0000000..385cc85
---- /dev/null
-+++ b/debian/patches/access-lists-fix-build-on-freebsd.patch
-@@ -0,0 +1,54 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 17 Feb 2019 09:49:06 +0100
-+Subject: [access lists] fix build on freebsd
-+
-+don't use malloc.h, obsoleted by stdlib.h
-+define s6_addr32 that's only available in kernel space
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 12ee796ceca832c18054e87a0e310dcd9a6c16c6)
-+---
-+ libknet/links_acl.c | 11 ++++++++++-
-+ libknet/tests/int_links_acl.c | 1 -
-+ 2 files changed, 10 insertions(+), 2 deletions(-)
-+
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 2ad3e90..854f273 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -10,13 +10,22 @@
-+ #include <netinet/in.h>
-+ #include <stdint.h>
-+ #include <string.h>
-+-#include <malloc.h>
-++#include <stdlib.h>
-+
-+ #include "internals.h"
-+ #include "logging.h"
-+ #include "transports.h"
-+ #include "links_acl.h"
-+
-++/*
-++ * s6_addr32 is not defined in BSD userland, only kernel.
-++ * definition is the same as linux and it works fine for
-++ * what we need.
-++ */
-++#ifndef s6_addr32
-++#define s6_addr32 __u6_addr.__u6_addr32
-++#endif
-++
-+ /*
-+ * IPv4 See if the address we have matches the current match entry
-+ */
-+diff --git a/libknet/tests/int_links_acl.c b/libknet/tests/int_links_acl.c
-+index 129aabe..133cd5a 100644
-+--- a/libknet/tests/int_links_acl.c
-++++ b/libknet/tests/int_links_acl.c
-+@@ -13,7 +13,6 @@
-+ #include <stdlib.h>
-+ #include <string.h>
-+ #include <netdb.h>
-+-#include <malloc.h>
-+
-+ #include "internals.h"
-+ #include "links_acl.h"
-diff --git a/debian/patches/access-lists-improve-checks-on-various-data-types.patch b/debian/patches/access-lists-improve-checks-on-various-data-types.patch
-new file mode 100644
-index 0000000..1a8d531
---- /dev/null
-+++ b/debian/patches/access-lists-improve-checks-on-various-data-types.patch
-@@ -0,0 +1,74 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 6 Mar 2019 09:43:10 +0100
-+Subject: [access lists] improve checks on various data types
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit f6f08c08179a051aa51fadc48a1acfb71a6f55b4)
-+---
-+ libknet/links.c | 39 +++++++++++++++++++++++++++++++++++++++
-+ 1 file changed, 39 insertions(+)
-+
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 0f02006..038a8a4 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -1168,6 +1168,19 @@ int knet_link_add_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link
-+ return -1;
-+ }
-+
-++ if ((type != CHECK_TYPE_ADDRESS) &&
-++ (type != CHECK_TYPE_MASK) &&
-++ (type != CHECK_TYPE_RANGE)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((acceptreject != CHECK_ACCEPT) &&
-++ (acceptreject != CHECK_REJECT)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-+ if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-+ errno = EINVAL;
-+ return -1;
-+@@ -1250,6 +1263,19 @@ int knet_link_insert_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ return -1;
-+ }
-+
-++ if ((type != CHECK_TYPE_ADDRESS) &&
-++ (type != CHECK_TYPE_MASK) &&
-++ (type != CHECK_TYPE_RANGE)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((acceptreject != CHECK_ACCEPT) &&
-++ (acceptreject != CHECK_REJECT)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-+ if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-+ errno = EINVAL;
-+ return -1;
-+@@ -1331,6 +1357,19 @@ int knet_link_rm_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_
-+ return -1;
-+ }
-+
-++ if ((type != CHECK_TYPE_ADDRESS) &&
-++ (type != CHECK_TYPE_MASK) &&
-++ (type != CHECK_TYPE_RANGE)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if ((acceptreject != CHECK_ACCEPT) &&
-++ (acceptreject != CHECK_REJECT)) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-+ if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-+ errno = EINVAL;
-+ return -1;
-diff --git a/debian/patches/access-lists-make-code-more-generic-to-accept-more-than-I.patch b/debian/patches/access-lists-make-code-more-generic-to-accept-more-than-I.patch
-new file mode 100644
-index 0000000..30cafa3
---- /dev/null
-+++ b/debian/patches/access-lists-make-code-more-generic-to-accept-more-than-I.patch
-@@ -0,0 +1,436 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 12 Feb 2019 07:21:20 +0100
-+Subject: [access lists] make code more generic to accept more than IP
-+ protocol and start to bind it to each fd
-+
-+access lists are unique per file descriptor, each fd can have its own protocol and list.
-+
-+remane around ipcheck* with check* to be more generic.
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 45b1d526876aa89986e7bd379c45f8856056fe68)
-+---
-+ libknet/internals.h | 24 +++++++++
-+ libknet/links_acl.h | 18 ++++---
-+ libknet/links_acl.c | 114 ++++++++++++++++++++----------------------
-+ libknet/tests/int_links_acl.c | 46 +++++++++++------
-+ 4 files changed, 120 insertions(+), 82 deletions(-)
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 106b49d..78e718d 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -129,11 +129,35 @@ struct knet_sock {
-+ * and socket has been removed from epoll */
-+ };
-+
-++/*
-++ * access lists
-++ */
-++
-++typedef enum {
-++ CHECK_TYPE_ADDRESS,
-++ CHECK_TYPE_MASK,
-++ CHECK_TYPE_RANGE
-++} check_type_t;
-++
-++typedef enum {
-++ CHECK_ACCEPT,
-++ CHECK_REJECT
-++} check_acceptreject_t;
-++
-++struct acl_match_entry {
-++ check_type_t type;
-++ check_acceptreject_t acceptreject;
-++ struct sockaddr_storage addr1; /* Actual IP address, mask top or low IP */
-++ struct sockaddr_storage addr2; /* high IP address or address bitmask */
-++ struct acl_match_entry *next;
-++};
-++
-+ struct knet_fd_trackers {
-+ uint8_t transport; /* transport type (UDP/SCTP...) */
-+ uint8_t data_type; /* internal use for transport to define what data are associated
-+ * to this fd */
-+ void *data; /* pointer to the data */
-++ struct acl_match_entry *match_entry;
-+ };
-+
-+ #define KNET_MAX_FDS KNET_MAX_HOST * KNET_MAX_LINK * 4
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index eca4566..26b0f36 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -6,11 +6,17 @@
-+ * This software licensed under GPL-2.0+, LGPL-2.0+
-+ */
-+
-+-typedef enum {IPCHECK_TYPE_ADDRESS, IPCHECK_TYPE_MASK, IPCHECK_TYPE_RANGE} ipcheck_type_t;
-+-typedef enum {IPCHECK_ACCEPT, IPCHECK_REJECT} ipcheck_acceptreject_t;
-++#ifndef __KNET_LINKS_ACL_H__
-++#define __KNET_LINKS_ACL_H__
-+
-+-int ipcheck_validate(struct sockaddr_storage *checkip);
-++#include "internals.h"
-+
-+-void ipcheck_clear(void);
-+-int ipcheck_addip(struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- ipcheck_type_t type, ipcheck_acceptreject_t acceptreject);
-++int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip);
-++
-++void ipcheck_clear(struct acl_match_entry **match_entry_head);
-++
-++int ipcheck_addip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++#endif
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index e7b5602..fe84088 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -11,26 +11,17 @@
-+ #include <stdint.h>
-+ #include <string.h>
-+ #include <malloc.h>
-+-#include "links_acl.h"
-+-
-+-struct ip_match_entry {
-+- ipcheck_type_t type;
-+- ipcheck_acceptreject_t acceptreject;
-+- struct sockaddr_storage addr1; /* Actual IP address, mask top or low IP */
-+- struct sockaddr_storage addr2; /* high IP address or address bitmask */
-+- struct ip_match_entry *next;
-+-};
-+
-+-
-+-/* Lists of things to match against. These are dummy structs to provide a quick list head */
-+-static struct ip_match_entry match_entry_head_v4;
-+-static struct ip_match_entry match_entry_head_v6;
-++#include "internals.h"
-++#include "logging.h"
-++#include "transports.h"
-++#include "links_acl.h"
-+
-+ /*
-+ * IPv4 See if the address we have matches the current match entry
-+- *
-+ */
-+-static int ip_matches_v4(struct sockaddr_storage *checkip, struct ip_match_entry *match_entry)
-++
-++static int ip_matches_v4(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-+ {
-+ struct sockaddr_in *ip_to_check;
-+ struct sockaddr_in *match1;
-+@@ -41,16 +32,16 @@ static int ip_matches_v4(struct sockaddr_storage *checkip, struct ip_match_entry
-+ match2 = (struct sockaddr_in *)&match_entry->addr2;
-+
-+ switch(match_entry->type) {
-+- case IPCHECK_TYPE_ADDRESS:
-++ case CHECK_TYPE_ADDRESS:
-+ if (ip_to_check->sin_addr.s_addr == match1->sin_addr.s_addr)
-+ return 1;
-+ break;
-+- case IPCHECK_TYPE_MASK:
-++ case CHECK_TYPE_MASK:
-+ if ((ip_to_check->sin_addr.s_addr & match2->sin_addr.s_addr) ==
-+ match1->sin_addr.s_addr)
-+ return 1;
-+ break;
-+- case IPCHECK_TYPE_RANGE:
-++ case CHECK_TYPE_RANGE:
-+ if ((ntohl(ip_to_check->sin_addr.s_addr) >= ntohl(match1->sin_addr.s_addr)) &&
-+ (ntohl(ip_to_check->sin_addr.s_addr) <= ntohl(match2->sin_addr.s_addr)))
-+ return 1;
-+@@ -60,7 +51,10 @@ static int ip_matches_v4(struct sockaddr_storage *checkip, struct ip_match_entry
-+ return 0;
-+ }
-+
-+-/* Compare two IPv6 addresses */
-++/*
-++ * Compare two IPv6 addresses
-++ */
-++
-+ static int ip6addr_cmp(struct in6_addr *a, struct in6_addr *b)
-+ {
-+ uint64_t a_high, a_low;
-+@@ -89,9 +83,9 @@ static int ip6addr_cmp(struct in6_addr *a, struct in6_addr *b)
-+
-+ /*
-+ * IPv6 See if the address we have matches the current match entry
-+- *
-+ */
-+-static int ip_matches_v6(struct sockaddr_storage *checkip, struct ip_match_entry *match_entry)
-++
-++static int ip_matches_v6(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-+ {
-+ struct sockaddr_in6 *ip_to_check;
-+ struct sockaddr_in6 *match1;
-+@@ -103,12 +97,12 @@ static int ip_matches_v6(struct sockaddr_storage *checkip, struct ip_match_entry
-+ match2 = (struct sockaddr_in6 *)&match_entry->addr2;
-+
-+ switch(match_entry->type) {
-+- case IPCHECK_TYPE_ADDRESS:
-++ case CHECK_TYPE_ADDRESS:
-+ if (!memcmp(ip_to_check->sin6_addr.s6_addr32, match1->sin6_addr.s6_addr32, sizeof(struct in6_addr)))
-+ return 1;
-+ break;
-+
-+- case IPCHECK_TYPE_MASK:
-++ case CHECK_TYPE_MASK:
-+ /*
-+ * Note that this little loop will quit early if there is a non-match so the
-+ * comparison might look backwards compared to the IPv4 one
-+@@ -119,7 +113,7 @@ static int ip_matches_v6(struct sockaddr_storage *checkip, struct ip_match_entry
-+ return 0;
-+ }
-+ return 1;
-+- case IPCHECK_TYPE_RANGE:
-++ case CHECK_TYPE_RANGE:
-+ if ((ip6addr_cmp(&ip_to_check->sin6_addr, &match1->sin6_addr) >= 0) &&
-+ (ip6addr_cmp(&ip_to_check->sin6_addr, &match2->sin6_addr) <= 0))
-+ return 1;
-+@@ -129,24 +123,20 @@ static int ip_matches_v6(struct sockaddr_storage *checkip, struct ip_match_entry
-+ }
-+
-+
-+-/*
-+- * YOU ARE HERE
-+- */
-+-int ipcheck_validate(struct sockaddr_storage *checkip)
-++int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip)
-+ {
-+- struct ip_match_entry *match_entry;
-+- int (*match_fn)(struct sockaddr_storage *checkip, struct ip_match_entry *match_entry);
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++ int (*match_fn)(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry);
-+
-+ if (checkip->ss_family == AF_INET){
-+- match_entry = match_entry_head_v4.next;
-+ match_fn = ip_matches_v4;
-+ } else {
-+- match_entry = match_entry_head_v6.next;
-+ match_fn = ip_matches_v6;
-+ }
-++
-+ while (match_entry) {
-+ if (match_fn(checkip, match_entry)) {
-+- if (match_entry->acceptreject == IPCHECK_ACCEPT)
-++ if (match_entry->acceptreject == CHECK_ACCEPT)
-+ return 1;
-+ else
-+ return 0;
-+@@ -157,47 +147,42 @@ int ipcheck_validate(struct sockaddr_storage *checkip)
-+ }
-+
-+ /*
-+- * Routines to manuipulate the lists
-++ * Routines to manuipulate access lists
-+ */
-+
-+-void ipcheck_clear(void)
-++void ipcheck_clear(struct acl_match_entry **match_entry_head)
-+ {
-+- struct ip_match_entry *match_entry;
-+- struct ip_match_entry *next_match_entry;
-++ struct acl_match_entry *next_match_entry;
-++ struct acl_match_entry *match_entry = *match_entry_head;
-+
-+- match_entry = match_entry_head_v4.next;
-+- while (match_entry) {
-+- next_match_entry = match_entry->next;
-+- free(match_entry);
-+- match_entry = next_match_entry;
-+- }
-+-
-+- match_entry = match_entry_head_v6.next;
-+ while (match_entry) {
-+ next_match_entry = match_entry->next;
-+ free(match_entry);
-+ match_entry = next_match_entry;
-+ }
-++ *match_entry_head = NULL;
-+ }
-+
-+-int ipcheck_addip(struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- ipcheck_type_t type, ipcheck_acceptreject_t acceptreject)
-++int ipcheck_addip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- struct ip_match_entry *match_entry;
-+- struct ip_match_entry *new_match_entry;
-++ struct acl_match_entry *new_match_entry;
-++ struct acl_match_entry *match_entry = *match_entry_head;
-+
-+- if (type == IPCHECK_TYPE_RANGE &&
-+- (ip1->ss_family != ip2->ss_family))
-++ if (!ip1) {
-+ return -1;
-++ }
-+
-+- if (ip1->ss_family == AF_INET){
-+- match_entry = &match_entry_head_v4;
-+- } else {
-+- match_entry = &match_entry_head_v6;
-++ if ((type != CHECK_TYPE_ADDRESS) && (!ip2)) {
-++ return -1;
-+ }
-+
-++ if (type == CHECK_TYPE_RANGE &&
-++ (ip1->ss_family != ip2->ss_family))
-++ return -1;
-+
-+- new_match_entry = malloc(sizeof(struct ip_match_entry));
-++ new_match_entry = malloc(sizeof(struct acl_match_entry));
-+ if (!new_match_entry)
-+ return -1;
-+
-+@@ -207,12 +192,19 @@ int ipcheck_addip(struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ new_match_entry->acceptreject = acceptreject;
-+ new_match_entry->next = NULL;
-+
-+- /* Find the end of the list */
-+- /* is this OK, or should we use a doubly-linked list or bulk-load API call? */
-+- while (match_entry->next) {
-+- match_entry = match_entry->next;
-++ if (match_entry) {
-++ /* Find the end of the list */
-++ /* is this OK, or should we use a doubly-linked list or bulk-load API call? */
-++ while (match_entry->next) {
-++ match_entry = match_entry->next;
-++ }
-++ match_entry->next = new_match_entry;
-++ } else {
-++ /*
-++ * first entry in the list
-++ */
-++ *match_entry_head = new_match_entry;
-+ }
-+- match_entry->next = new_match_entry;
-+
-+ return 0;
-+ }
-+diff --git a/libknet/tests/int_links_acl.c b/libknet/tests/int_links_acl.c
-+index 27ac545..1e7f426 100644
-+--- a/libknet/tests/int_links_acl.c
-++++ b/libknet/tests/int_links_acl.c
-+@@ -14,8 +14,13 @@
-+ #include <string.h>
-+ #include <netdb.h>
-+ #include <malloc.h>
-++
-++#include "internals.h"
-+ #include "links_acl.h"
-+
-++static struct acl_match_entry *match_entry_v4;
-++static struct acl_match_entry *match_entry_v6;
-++
-+ /* This is a test program .. remember! */
-+ #define BUFLEN 1024
-+
-+@@ -31,7 +36,7 @@ static int get_ipaddress(char *buf, struct sockaddr_storage *addr)
-+ res = getaddrinfo(buf, NULL, &hints, &info);
-+ if (!res) {
-+ memmove(addr, info->ai_addr, info->ai_addrlen);
-+- free(info);
-++ freeaddrinfo(info);
-+ }
-+ return res;
-+ }
-+@@ -96,12 +101,13 @@ static int load_file(void)
-+ char filebuf[BUFLEN];
-+ int line = 0;
-+ int ret;
-+- ipcheck_type_t type;
-+- ipcheck_acceptreject_t acceptreject;
-++ check_type_t type;
-++ check_acceptreject_t acceptreject;
-+ struct sockaddr_storage addr1;
-+ struct sockaddr_storage addr2;
-+
-+- ipcheck_clear();
-++ ipcheck_clear(&match_entry_v4);
-++ ipcheck_clear(&match_entry_v6);
-+
-+ filterfile = fopen("int_links_acl.txt", "r");
-+ if (!filterfile) {
-+@@ -118,10 +124,10 @@ static int load_file(void)
-+ */
-+ switch(filebuf[0] & 0x5F) {
-+ case 'A':
-+- acceptreject = IPCHECK_ACCEPT;
-++ acceptreject = CHECK_ACCEPT;
-+ break;
-+ case 'R':
-+- acceptreject = IPCHECK_REJECT;
-++ acceptreject = CHECK_REJECT;
-+ break;
-+ default:
-+ fprintf(stderr, "Unknown record type on line %d: %s\n", line, filebuf);
-+@@ -136,15 +142,15 @@ static int load_file(void)
-+ */
-+ switch(filebuf[1] & 0x5F) {
-+ case 'A':
-+- type = IPCHECK_TYPE_ADDRESS;
-++ type = CHECK_TYPE_ADDRESS;
-+ ret = read_address(filebuf+2, &addr1);
-+ break;
-+ case 'M':
-+- type = IPCHECK_TYPE_MASK;
-++ type = CHECK_TYPE_MASK;
-+ ret = read_mask(filebuf+2, &addr1, &addr2);
-+ break;
-+ case 'R':
-+- type = IPCHECK_TYPE_RANGE;
-++ type = CHECK_TYPE_RANGE;
-+ ret = read_range(filebuf+2, &addr1, &addr2);
-+ break;
-+ default:
-+@@ -156,7 +162,11 @@ static int load_file(void)
-+ fprintf(stderr, "Failed to parse address on line %d: %s\n", line, filebuf);
-+ }
-+ else {
-+- ipcheck_addip(&addr1, &addr2, type, acceptreject);
-++ if (addr1.ss_family == AF_INET) {
-++ ipcheck_addip(&match_entry_v4, &addr1, &addr2, type, acceptreject);
-++ } else {
-++ ipcheck_addip(&match_entry_v6, &addr1, &addr2, type, acceptreject);
-++ }
-+ }
-+ next_record: {} /* empty statement to mollify the compiler */
-+ }
-+@@ -168,6 +178,7 @@ static int load_file(void)
-+ int main(int argc, char *argv[])
-+ {
-+ struct sockaddr_storage saddr;
-++ struct acl_match_entry *match_entry;
-+ int ret;
-+ int i;
-+
-+@@ -178,16 +189,21 @@ int main(int argc, char *argv[])
-+ ret = get_ipaddress(argv[i], &saddr);
-+ if (ret) {
-+ fprintf(stderr, "Cannot parse address %s\n", argv[i]);
-+- }
-+- else {
-+- if (ipcheck_validate(&saddr)) {
-+- printf("%s is VALID\n", argv[i]);
-++ } else {
-++ if (saddr.ss_family == AF_INET) {
-++ match_entry = match_entry_v4;
-++ } else {
-++ match_entry = match_entry_v6;
-+ }
-+- else {
-++ if (ipcheck_validate(&match_entry, &saddr)) {
-++ printf("%s is VALID\n", argv[i]);
-++ } else {
-+ printf("%s is not allowed\n", argv[i]);
-+ }
-+ }
-+ }
-+
-++ ipcheck_clear(&match_entry_v4);
-++ ipcheck_clear(&match_entry_v6);
-+ return 0;
-+ }
-diff --git a/debian/patches/access-lists-make-internal-API-consistent.patch b/debian/patches/access-lists-make-internal-API-consistent.patch
-new file mode 100644
-index 0000000..a5d000c
---- /dev/null
-+++ b/debian/patches/access-lists-make-internal-API-consistent.patch
-@@ -0,0 +1,73 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 06:53:48 +0100
-+Subject: [access lists] make internal API consistent
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit fb462d4f238b98ab685f9efae945a0e527f399ba)
-+---
-+ libknet/links_acl.h | 2 +-
-+ libknet/links_acl.c | 6 +++---
-+ libknet/threads_rx.c | 2 +-
-+ libknet/transport_sctp.c | 2 +-
-+ 4 files changed, 6 insertions(+), 6 deletions(-)
-+
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index b083753..f871403 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -37,6 +37,6 @@ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport);
-+-int check_validate(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip);
-++int check_validate(knet_handle_t knet_h, int sock, uint8_t transport, struct sockaddr_storage *checkip);
-+
-+ #endif
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 93cc5af..8592f1f 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -74,14 +74,14 @@ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ /*
-+ * return 0 to reject and 1 to accept a packet
-+ */
-+-int check_validate(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip)
-++int check_validate(knet_handle_t knet_h, int sock, uint8_t transport, struct sockaddr_storage *checkip)
-+ {
-+- switch(transport_get_proto(knet_h, knet_h->knet_transport_fd_tracker[sockfd].transport)) {
-++ switch(transport_get_proto(knet_h, transport)) {
-+ case LOOPBACK:
-+ return 1;
-+ break;
-+ case IP_PROTO:
-+- return ipcheck_validate((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sockfd].match_entry, checkip);
-++ return ipcheck_validate((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry, checkip);
-+ break;
-+ default:
-+ break;
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index 6417261..ae39b38 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -808,7 +808,7 @@ static void _handle_recv_from_links(knet_handle_t knet_h, int sockfd, struct kne
-+ */
-+ if ((knet_h->use_access_lists) &&
-+ (transport_get_acl_type(knet_h, transport) == USE_GENERIC_ACL)) {
-+- if (!check_validate(knet_h, sockfd, msg[i].msg_hdr.msg_name)) {
-++ if (!check_validate(knet_h, sockfd, transport, msg[i].msg_hdr.msg_name)) {
-+ char src_ipaddr[KNET_MAX_HOST_LEN];
-+ char src_port[KNET_MAX_PORT_LEN];
-+
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index 50a237b..ff7903c 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -731,7 +731,7 @@ static void _handle_incoming_sctp(knet_handle_t knet_h, int listen_sock)
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Incoming: received connection from: %s port: %s",
-+ addr_str, port_str);
-+ if (knet_h->use_access_lists) {
-+- if (!check_validate(knet_h, listen_sock, &ss)) {
-++ if (!check_validate(knet_h, listen_sock, KNET_TRANSPORT_SCTP, &ss)) {
-+ savederrno = EINVAL;
-+ err = -1;
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Connection rejected from %s/%s", addr_str, port_str);
-diff --git a/debian/patches/access-lists-more-use-of-generic-wrappers-and-remove-dupl.patch b/debian/patches/access-lists-more-use-of-generic-wrappers-and-remove-dupl.patch
-new file mode 100644
-index 0000000..b69fa50
---- /dev/null
-+++ b/debian/patches/access-lists-more-use-of-generic-wrappers-and-remove-dupl.patch
-@@ -0,0 +1,72 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 05:17:57 +0100
-+Subject: [access lists] more use of generic wrappers and remove duplicate code
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit be01691050bea1aabe0d8736d2017974d966a1c0)
-+---
-+ libknet/links_acl.c | 44 ++++++--------------------------------------
-+ 1 file changed, 6 insertions(+), 38 deletions(-)
-+
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 32763de..85a792d 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -73,51 +73,19 @@ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+
-+ int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+ {
-+- int err = -1;
-+-
-+- switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-+- case LOOPBACK:
-+- /*
-+- * loopback does not require access lists
-+- */
-+- err = 0;
-+- break;
-+- case IP_PROTO:
-+- err = ipcheck_addip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+- break;
-+- default:
-+- break;
-+- }
-+-
-+- return err;
-++ return check_add(knet_h, kh_link->outsock, kh_link->transport_type,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ }
-+
-+ int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+ {
-+- int err = -1;
-+-
-+- switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-+- case LOOPBACK:
-+- /*
-+- * loopback does not require access lists
-+- */
-+- err = 0;
-+- break;
-+- case IP_PROTO:
-+- err = ipcheck_rmip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+- break;
-+- default:
-+- break;
-+- }
-+-
-+- return err;
-++ return check_rm(knet_h, kh_link->outsock, kh_link->transport_type,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ }
-+
-+ /*
-+- * * return 0 to reject and 1 to accept a packet
-+- * */
-++ * return 0 to reject and 1 to accept a packet
-++ */
-+ int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip)
-+ {
-+ switch(transport_get_proto(knet_h, knet_h->knet_transport_fd_tracker[sockfd].transport)) {
-diff --git a/debian/patches/access-lists-move-access-lists-structs-and-data-types-to-.patch b/debian/patches/access-lists-move-access-lists-structs-and-data-types-to-.patch
-new file mode 100644
-index 0000000..a96ab6b
---- /dev/null
-+++ b/debian/patches/access-lists-move-access-lists-structs-and-data-types-to-.patch
-@@ -0,0 +1,168 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 05:04:20 +0100
-+Subject: [access lists] move access lists structs and data types to
-+ links_acl.*
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit c374aef3fda1c01b282a5baf193e0ac7870d1eb2)
-+---
-+ libknet/internals.h | 25 +------------------------
-+ libknet/links_acl.h | 19 +++++++++++++++++++
-+ libknet/links_acl_ip.h | 1 +
-+ libknet/links_acl.c | 12 ++++++------
-+ libknet/links_acl_ip.c | 1 +
-+ 5 files changed, 28 insertions(+), 30 deletions(-)
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 78e718d..0d6ee3f 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -129,35 +129,12 @@ struct knet_sock {
-+ * and socket has been removed from epoll */
-+ };
-+
-+-/*
-+- * access lists
-+- */
-+-
-+-typedef enum {
-+- CHECK_TYPE_ADDRESS,
-+- CHECK_TYPE_MASK,
-+- CHECK_TYPE_RANGE
-+-} check_type_t;
-+-
-+-typedef enum {
-+- CHECK_ACCEPT,
-+- CHECK_REJECT
-+-} check_acceptreject_t;
-+-
-+-struct acl_match_entry {
-+- check_type_t type;
-+- check_acceptreject_t acceptreject;
-+- struct sockaddr_storage addr1; /* Actual IP address, mask top or low IP */
-+- struct sockaddr_storage addr2; /* high IP address or address bitmask */
-+- struct acl_match_entry *next;
-+-};
-+-
-+ struct knet_fd_trackers {
-+ uint8_t transport; /* transport type (UDP/SCTP...) */
-+ uint8_t data_type; /* internal use for transport to define what data are associated
-+ * to this fd */
-+ void *data; /* pointer to the data */
-+- struct acl_match_entry *match_entry;
-++ void *match_entry; /* pointer to access list match_entry list head */
-+ };
-+
-+ #define KNET_MAX_FDS KNET_MAX_HOST * KNET_MAX_LINK * 4
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index 9a20754..020ec05 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -11,6 +11,25 @@
-+
-+ #include "internals.h"
-+
-++typedef enum {
-++ CHECK_TYPE_ADDRESS,
-++ CHECK_TYPE_MASK,
-++ CHECK_TYPE_RANGE
-++} check_type_t;
-++
-++typedef enum {
-++ CHECK_ACCEPT,
-++ CHECK_REJECT
-++} check_acceptreject_t;
-++
-++struct acl_match_entry {
-++ check_type_t type;
-++ check_acceptreject_t acceptreject;
-++ struct sockaddr_storage addr1; /* Actual IP address, mask top or low IP */
-++ struct sockaddr_storage addr2; /* high IP address or address bitmask */
-++ struct acl_match_entry *next;
-++};
-++
-+ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+diff --git a/libknet/links_acl_ip.h b/libknet/links_acl_ip.h
-+index 575b5ff..9e21e00 100644
-+--- a/libknet/links_acl_ip.h
-++++ b/libknet/links_acl_ip.h
-+@@ -10,6 +10,7 @@
-+ #define __KNET_LINKS_ACL_IP_H__
-+
-+ #include "internals.h"
-++#include "links_acl.h"
-+
-+ int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip);
-+
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 34bcce3..32763de 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -28,7 +28,7 @@ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ err = ipcheck_addip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry,
-+ ip1, ip2, type, acceptreject);
-+ break;
-+ default:
-+@@ -48,7 +48,7 @@ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ err = ipcheck_rmip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry,
-+ ip1, ip2, type, acceptreject);
-+ break;
-+ default:
-+@@ -64,7 +64,7 @@ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ return;
-+ break;
-+ case IP_PROTO:
-+- ipcheck_rmall(&knet_h->knet_transport_fd_tracker[sock].match_entry);
-++ ipcheck_rmall((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sock].match_entry);
-+ break;
-+ default:
-+ break;
-+@@ -83,7 +83,7 @@ int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-++ err = ipcheck_addip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-+ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ break;
-+ default:
-+@@ -105,7 +105,7 @@ int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-++ err = ipcheck_rmip((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-+ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ break;
-+ default:
-+@@ -125,7 +125,7 @@ int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, struct socka
-+ return 1;
-+ break;
-+ case IP_PROTO:
-+- return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sockfd].match_entry, checkip);
-++ return ipcheck_validate((struct acl_match_entry **)&knet_h->knet_transport_fd_tracker[sockfd].match_entry, checkip);
-+ break;
-+ default:
-+ break;
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index edc3ae1..2aef14b 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -15,6 +15,7 @@
-+ #include "internals.h"
-+ #include "logging.h"
-+ #include "transports.h"
-++#include "links_acl.h"
-+ #include "links_acl_ip.h"
-+
-+ /*
-diff --git a/debian/patches/access-lists-move-all-acl-wrappers-to-links_acl-and-split.patch b/debian/patches/access-lists-move-all-acl-wrappers-to-links_acl-and-split.patch
-new file mode 100644
-index 0000000..6f3b9d3
---- /dev/null
-+++ b/debian/patches/access-lists-move-all-acl-wrappers-to-links_acl-and-split.patch
-@@ -0,0 +1,1025 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 04:53:23 +0100
-+Subject: [access lists] move all acl wrappers to links_acl* and split
-+ links_acl_ip to their own files
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 0cb8e8bab46b30487a4821004ee757ee8f9eb91e)
-+---
-+ libknet/Makefile.am | 2 +
-+ libknet/tests/Makefile.am | 12 +-
-+ libknet/links_acl.h | 20 +--
-+ libknet/links_acl_ip.h | 25 ++++
-+ libknet/links.c | 53 +------
-+ libknet/links_acl.c | 322 ++++++++++++------------------------------
-+ libknet/links_acl_ip.c | 277 ++++++++++++++++++++++++++++++++++++
-+ libknet/tests/int_links_acl.c | 9 +-
-+ libknet/threads_rx.c | 25 +---
-+ libknet/transport_sctp.c | 24 ++--
-+ 10 files changed, 438 insertions(+), 331 deletions(-)
-+ create mode 100644 libknet/links_acl_ip.h
-+ create mode 100644 libknet/links_acl_ip.c
-+
-+diff --git a/libknet/Makefile.am b/libknet/Makefile.am
-+index 4ea42d9..b60427c 100644
-+--- a/libknet/Makefile.am
-++++ b/libknet/Makefile.am
-+@@ -32,6 +32,7 @@ sources = \
-+ host.c \
-+ links.c \
-+ links_acl.c \
-++ links_acl_ip.c \
-+ logging.c \
-+ netutils.c \
-+ threads_common.c \
-+@@ -63,6 +64,7 @@ noinst_HEADERS = \
-+ internals.h \
-+ links.h \
-+ links_acl.h \
-++ links_acl_ip.h \
-+ logging.h \
-+ netutils.h \
-+ onwire.h \
-+diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am
-+index f74cb04..d46553a 100644
-+--- a/libknet/tests/Makefile.am
-++++ b/libknet/tests/Makefile.am
-+@@ -68,7 +68,17 @@ check-api-test-coverage:
-+ pckt_test_SOURCES = pckt_test.c
-+
-+ int_links_acl_test_SOURCES = int_links_acl.c \
-+- ../links_acl.c
-++ ../common.c \
-++ ../logging.c \
-++ ../netutils.c \
-++ ../threads_common.c \
-++ ../transports.c \
-++ ../transport_common.c \
-++ ../transport_loopback.c \
-++ ../transport_sctp.c \
-++ ../transport_udp.c \
-++ ../links_acl.c \
-++ ../links_acl_ip.c
-+
-+ int_timediff_test_SOURCES = int_timediff.c
-+
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index f4713d6..9a20754 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -11,15 +11,15 @@
-+
-+ #include "internals.h"
-+
-+-int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip);
-++int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport);
-++int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link);
-++int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link);
-++int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip);
-+
-+-int ipcheck_addip(struct acl_match_entry **match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- check_type_t type, check_acceptreject_t acceptreject);
-+-
-+-int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- check_type_t type, check_acceptreject_t acceptreject);
-+-
-+-void check_rmall(struct acl_match_entry **match_entry_head);
-+ #endif
-+diff --git a/libknet/links_acl_ip.h b/libknet/links_acl_ip.h
-+new file mode 100644
-+index 0000000..575b5ff
-+--- /dev/null
-++++ b/libknet/links_acl_ip.h
-+@@ -0,0 +1,25 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Author: Christine Caulfield <ccaulfie at redhat.com>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#ifndef __KNET_LINKS_ACL_IP_H__
-++#define __KNET_LINKS_ACL_IP_H__
-++
-++#include "internals.h"
-++
-++int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip);
-++
-++int ipcheck_addip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++void ipcheck_rmall(struct acl_match_entry **match_entry_head);
-++#endif
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 85b50e5..07ef26e 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -22,55 +22,6 @@
-+ #include "threads_common.h"
-+ #include "links_acl.h"
-+
-+-static void _link_del_all_acl(knet_handle_t knet_h, int sock)
-+-{
-+- check_rmall(&knet_h->knet_transport_fd_tracker[sock].match_entry);
-+-}
-+-
-+-static int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+-{
-+- int err = -1;
-+-
-+- switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-+- case LOOPBACK:
-+- /*
-+- * loopback does not require access lists
-+- */
-+- err = 0;
-+- break;
-+- case IP_PROTO:
-+- err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+- break;
-+- default:
-+- break;
-+- }
-+-
-+- return err;
-+-}
-+-
-+-static int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+-{
-+- int err = -1;
-+-
-+- switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-+- case LOOPBACK:
-+- /*
-+- * loopback does not require access lists
-+- */
-+- err = 0;
-+- break;
-+- case IP_PROTO:
-+- err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+- break;
-+- default:
-+- break;
-+- }
-+-
-+- return err;
-+-}
-+-
-+ int _link_updown(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id,
-+ unsigned int enabled, unsigned int connected)
-+ {
-+@@ -420,6 +371,7 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ struct knet_host *host;
-+ struct knet_link *link;
-+ int sock;
-++ uint8_t transport;
-+
-+ if (!knet_h) {
-+ errno = EINVAL;
-+@@ -488,6 +440,7 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * will clear link info during clear_config.
-+ */
-+ sock = link->outsock;
-++ transport = link->transport_type;
-+
-+ if ((transport_link_clear_config(knet_h, link) < 0) &&
-+ (errno != EBUSY)) {
-+@@ -502,7 +455,7 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ */
-+ if ((transport_get_acl_type(knet_h, link->transport_type) == USE_GENERIC_ACL) &&
-+ (knet_h->knet_transport_fd_tracker[sock].transport == KNET_MAX_TRANSPORTS)) {
-+- _link_del_all_acl(knet_h, sock);
-++ check_rmall(knet_h, sock, transport);
-+ }
-+
-+ memset(link, 0, sizeof(struct knet_link));
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 854f273..34bcce3 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -6,8 +6,6 @@
-+ * This software licensed under GPL-2.0+, LGPL-2.0+
-+ */
-+
-+-#include <sys/socket.h>
-+-#include <netinet/in.h>
-+ #include <stdint.h>
-+ #include <string.h>
-+ #include <stdlib.h>
-+@@ -15,265 +13,125 @@
-+ #include "internals.h"
-+ #include "logging.h"
-+ #include "transports.h"
-++#include "transport_common.h"
-+ #include "links_acl.h"
-++#include "links_acl_ip.h"
-+
-+-/*
-+- * s6_addr32 is not defined in BSD userland, only kernel.
-+- * definition is the same as linux and it works fine for
-+- * what we need.
-+- */
-+-#ifndef s6_addr32
-+-#define s6_addr32 __u6_addr.__u6_addr32
-+-#endif
-+-
-+-/*
-+- * IPv4 See if the address we have matches the current match entry
-+- */
-+-
-+-static int ip_matches_v4(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-+-{
-+- struct sockaddr_in *ip_to_check;
-+- struct sockaddr_in *match1;
-+- struct sockaddr_in *match2;
-+-
-+- ip_to_check = (struct sockaddr_in *)checkip;
-+- match1 = (struct sockaddr_in *)&match_entry->addr1;
-+- match2 = (struct sockaddr_in *)&match_entry->addr2;
-+-
-+- switch(match_entry->type) {
-+- case CHECK_TYPE_ADDRESS:
-+- if (ip_to_check->sin_addr.s_addr == match1->sin_addr.s_addr)
-+- return 1;
-+- break;
-+- case CHECK_TYPE_MASK:
-+- if ((ip_to_check->sin_addr.s_addr & match2->sin_addr.s_addr) ==
-+- match1->sin_addr.s_addr)
-+- return 1;
-+- break;
-+- case CHECK_TYPE_RANGE:
-+- if ((ntohl(ip_to_check->sin_addr.s_addr) >= ntohl(match1->sin_addr.s_addr)) &&
-+- (ntohl(ip_to_check->sin_addr.s_addr) <= ntohl(match2->sin_addr.s_addr)))
-+- return 1;
-+- break;
-+-
-+- }
-+- return 0;
-+-}
-+-
-+-/*
-+- * Compare two IPv6 addresses
-+- */
-+-
-+-static int ip6addr_cmp(struct in6_addr *a, struct in6_addr *b)
-++int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- uint64_t a_high, a_low;
-+- uint64_t b_high, b_low;
-++ int err = -1;
-+
-+- /* Not sure why '&' doesn't work below, so I used '+' instead which is effectively
-+- the same thing because the bottom 32bits are always zero and the value unsigned */
-+- a_high = ((uint64_t)htonl(a->s6_addr32[0]) << 32) + (uint64_t)htonl(a->s6_addr32[1]);
-+- a_low = ((uint64_t)htonl(a->s6_addr32[2]) << 32) + (uint64_t)htonl(a->s6_addr32[3]);
-+-
-+- b_high = ((uint64_t)htonl(b->s6_addr32[0]) << 32) + (uint64_t)htonl(b->s6_addr32[1]);
-+- b_low = ((uint64_t)htonl(b->s6_addr32[2]) << 32) + (uint64_t)htonl(b->s6_addr32[3]);
-+-
-+- if (a_high > b_high)
-+- return 1;
-+- if (a_high < b_high)
-+- return -1;
-+-
-+- if (a_low > b_low)
-+- return 1;
-+- if (a_low < b_low)
-+- return -1;
-+-
-+- return 0;
-+-}
-+-
-+-/*
-+- * IPv6 See if the address we have matches the current match entry
-+- */
-+-
-+-static int ip_matches_v6(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-+-{
-+- struct sockaddr_in6 *ip_to_check;
-+- struct sockaddr_in6 *match1;
-+- struct sockaddr_in6 *match2;
-+- int i;
-+-
-+- ip_to_check = (struct sockaddr_in6 *)checkip;
-+- match1 = (struct sockaddr_in6 *)&match_entry->addr1;
-+- match2 = (struct sockaddr_in6 *)&match_entry->addr2;
-+-
-+- switch(match_entry->type) {
-+- case CHECK_TYPE_ADDRESS:
-+- if (!memcmp(ip_to_check->sin6_addr.s6_addr32, match1->sin6_addr.s6_addr32, sizeof(struct in6_addr)))
-+- return 1;
-+- break;
-+-
-+- case CHECK_TYPE_MASK:
-+- /*
-+- * Note that this little loop will quit early if there is a non-match so the
-+- * comparison might look backwards compared to the IPv4 one
-+- */
-+- for (i=sizeof(struct in6_addr)/4-1; i>=0; i--) {
-+- if ((ip_to_check->sin6_addr.s6_addr32[i] & match2->sin6_addr.s6_addr32[i]) !=
-+- match1->sin6_addr.s6_addr32[i])
-+- return 0;
-+- }
-+- return 1;
-+- case CHECK_TYPE_RANGE:
-+- if ((ip6addr_cmp(&ip_to_check->sin6_addr, &match1->sin6_addr) >= 0) &&
-+- (ip6addr_cmp(&ip_to_check->sin6_addr, &match2->sin6_addr) <= 0))
-+- return 1;
-+- break;
-++ switch(transport_get_proto(knet_h, transport)) {
-++ case LOOPBACK:
-++ err = 0;
-++ break;
-++ case IP_PROTO:
-++ err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ ip1, ip2, type, acceptreject);
-++ break;
-++ default:
-++ break;
-+ }
-+- return 0;
-++ return err;
-+ }
-+
-+-
-+-int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip)
-++int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- struct acl_match_entry *match_entry = *match_entry_head;
-+- int (*match_fn)(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry);
-++ int err = -1;
-+
-+- if (checkip->ss_family == AF_INET){
-+- match_fn = ip_matches_v4;
-+- } else {
-+- match_fn = ip_matches_v6;
-+- }
-+-
-+- while (match_entry) {
-+- if (match_fn(checkip, match_entry)) {
-+- if (match_entry->acceptreject == CHECK_ACCEPT)
-+- return 1;
-+- else
-+- return 0;
-+- }
-+- match_entry = match_entry->next;
-++ switch(transport_get_proto(knet_h, transport)) {
-++ case LOOPBACK:
-++ err = 0;
-++ break;
-++ case IP_PROTO:
-++ err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ ip1, ip2, type, acceptreject);
-++ break;
-++ default:
-++ break;
-+ }
-+- return 0; /* Default reject */
-++ return err;
-+ }
-+
-+-/*
-+- * Routines to manuipulate access lists
-+- */
-+-
-+-void check_rmall(struct acl_match_entry **match_entry_head)
-++void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ {
-+- struct acl_match_entry *next_match_entry;
-+- struct acl_match_entry *match_entry = *match_entry_head;
-+-
-+- while (match_entry) {
-+- next_match_entry = match_entry->next;
-+- free(match_entry);
-+- match_entry = next_match_entry;
-++ switch(transport_get_proto(knet_h, transport)) {
-++ case LOOPBACK:
-++ return;
-++ break;
-++ case IP_PROTO:
-++ ipcheck_rmall(&knet_h->knet_transport_fd_tracker[sock].match_entry);
-++ break;
-++ default:
-++ break;
-+ }
-+- *match_entry_head = NULL;
-+ }
-+
-+-static struct acl_match_entry *ipcheck_findmatch(struct acl_match_entry **match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- check_type_t type, check_acceptreject_t acceptreject)
-++int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+ {
-+- struct acl_match_entry *match_entry = *match_entry_head;
-+-
-+- while (match_entry) {
-+- if ((!memcmp(&match_entry->addr1, ip1, sizeof(struct sockaddr_storage))) &&
-+- (!memcmp(&match_entry->addr2, ip2, sizeof(struct sockaddr_storage))) &&
-+- (match_entry->type == type) &&
-+- (match_entry->acceptreject == acceptreject)) {
-+- return match_entry;
-+- }
-+- match_entry = match_entry->next;
-++ int err = -1;
-++
-++ switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-++ case LOOPBACK:
-++ /*
-++ * loopback does not require access lists
-++ */
-++ err = 0;
-++ break;
-++ case IP_PROTO:
-++ err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++ break;
-++ default:
-++ break;
-+ }
-+
-+- return NULL;
-++ return err;
-+ }
-+
-+-int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- check_type_t type, check_acceptreject_t acceptreject)
-++int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+ {
-+- struct acl_match_entry *next_match_entry = NULL;
-+- struct acl_match_entry *rm_match_entry;
-+- struct acl_match_entry *match_entry = *match_entry_head;
-+-
-+- rm_match_entry = ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject);
-+- if (!rm_match_entry) {
-+- return -1;
-+- }
-+-
-+- while (match_entry) {
-+- next_match_entry = match_entry->next;
-+- /*
-+- * we are removing the list head, be careful
-+- */
-+- if (rm_match_entry == match_entry) {
-+- *match_entry_head = next_match_entry;
-+- free(match_entry);
-++ int err = -1;
-++
-++ switch(transport_get_proto(knet_h, kh_link->transport_type)) {
-++ case LOOPBACK:
-++ /*
-++ * loopback does not require access lists
-++ */
-++ err = 0;
-++ break;
-++ case IP_PROTO:
-++ err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[kh_link->outsock].match_entry,
-++ &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ break;
-+- }
-+- /*
-+- * the next one is the one we need to remove
-+- */
-+- if (rm_match_entry == next_match_entry) {
-+- match_entry->next = next_match_entry->next;
-+- free(next_match_entry);
-++ default:
-+ break;
-+- }
-+- match_entry = next_match_entry;
-+ }
-+
-+- return 0;
-++ return err;
-+ }
-+
-+-int ipcheck_addip(struct acl_match_entry **match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+- check_type_t type, check_acceptreject_t acceptreject)
-++/*
-++ * * return 0 to reject and 1 to accept a packet
-++ * */
-++int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip)
-+ {
-+- struct acl_match_entry *new_match_entry;
-+- struct acl_match_entry *match_entry = *match_entry_head;
-+-
-+- if (!ip1) {
-+- return -1;
-+- }
-+-
-+- if ((type != CHECK_TYPE_ADDRESS) && (!ip2)) {
-+- return -1;
-+- }
-+-
-+- if (type == CHECK_TYPE_RANGE &&
-+- (ip1->ss_family != ip2->ss_family))
-+- return -1;
-+-
-+- if (ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject) != NULL) {
-+- return -1;
-+- }
-+-
-+- new_match_entry = malloc(sizeof(struct acl_match_entry));
-+- if (!new_match_entry)
-+- return -1;
-+-
-+- memmove(&new_match_entry->addr1, ip1, sizeof(struct sockaddr_storage));
-+- memmove(&new_match_entry->addr2, ip2, sizeof(struct sockaddr_storage));
-+- new_match_entry->type = type;
-+- new_match_entry->acceptreject = acceptreject;
-+- new_match_entry->next = NULL;
-+-
-+- if (match_entry) {
-+- /* Find the end of the list */
-+- /* is this OK, or should we use a doubly-linked list or bulk-load API call? */
-+- while (match_entry->next) {
-+- match_entry = match_entry->next;
-+- }
-+- match_entry->next = new_match_entry;
-+- } else {
-+- /*
-+- * first entry in the list
-+- */
-+- *match_entry_head = new_match_entry;
-++ switch(transport_get_proto(knet_h, knet_h->knet_transport_fd_tracker[sockfd].transport)) {
-++ case LOOPBACK:
-++ return 1;
-++ break;
-++ case IP_PROTO:
-++ return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sockfd].match_entry, checkip);
-++ break;
-++ default:
-++ break;
-+ }
-+-
-++ /*
-++ * reject by default
-++ */
-+ return 0;
-+ }
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+new file mode 100644
-+index 0000000..edc3ae1
-+--- /dev/null
-++++ b/libknet/links_acl_ip.c
-+@@ -0,0 +1,277 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Author: Christine Caulfield <ccaulfie at redhat.com>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include <sys/socket.h>
-++#include <netinet/in.h>
-++#include <stdint.h>
-++#include <string.h>
-++#include <stdlib.h>
-++
-++#include "internals.h"
-++#include "logging.h"
-++#include "transports.h"
-++#include "links_acl_ip.h"
-++
-++/*
-++ * s6_addr32 is not defined in BSD userland, only kernel.
-++ * definition is the same as linux and it works fine for
-++ * what we need.
-++ */
-++#ifndef s6_addr32
-++#define s6_addr32 __u6_addr.__u6_addr32
-++#endif
-++
-++/*
-++ * IPv4 See if the address we have matches the current match entry
-++ */
-++
-++static int ip_matches_v4(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-++{
-++ struct sockaddr_in *ip_to_check;
-++ struct sockaddr_in *match1;
-++ struct sockaddr_in *match2;
-++
-++ ip_to_check = (struct sockaddr_in *)checkip;
-++ match1 = (struct sockaddr_in *)&match_entry->addr1;
-++ match2 = (struct sockaddr_in *)&match_entry->addr2;
-++
-++ switch(match_entry->type) {
-++ case CHECK_TYPE_ADDRESS:
-++ if (ip_to_check->sin_addr.s_addr == match1->sin_addr.s_addr)
-++ return 1;
-++ break;
-++ case CHECK_TYPE_MASK:
-++ if ((ip_to_check->sin_addr.s_addr & match2->sin_addr.s_addr) ==
-++ match1->sin_addr.s_addr)
-++ return 1;
-++ break;
-++ case CHECK_TYPE_RANGE:
-++ if ((ntohl(ip_to_check->sin_addr.s_addr) >= ntohl(match1->sin_addr.s_addr)) &&
-++ (ntohl(ip_to_check->sin_addr.s_addr) <= ntohl(match2->sin_addr.s_addr)))
-++ return 1;
-++ break;
-++
-++ }
-++ return 0;
-++}
-++
-++/*
-++ * Compare two IPv6 addresses
-++ */
-++
-++static int ip6addr_cmp(struct in6_addr *a, struct in6_addr *b)
-++{
-++ uint64_t a_high, a_low;
-++ uint64_t b_high, b_low;
-++
-++ a_high = ((uint64_t)htonl(a->s6_addr32[0]) << 32) | (uint64_t)htonl(a->s6_addr32[1]);
-++ a_low = ((uint64_t)htonl(a->s6_addr32[2]) << 32) | (uint64_t)htonl(a->s6_addr32[3]);
-++
-++ b_high = ((uint64_t)htonl(b->s6_addr32[0]) << 32) | (uint64_t)htonl(b->s6_addr32[1]);
-++ b_low = ((uint64_t)htonl(b->s6_addr32[2]) << 32) | (uint64_t)htonl(b->s6_addr32[3]);
-++
-++ if (a_high > b_high)
-++ return 1;
-++ if (a_high < b_high)
-++ return -1;
-++
-++ if (a_low > b_low)
-++ return 1;
-++ if (a_low < b_low)
-++ return -1;
-++
-++ return 0;
-++}
-++
-++/*
-++ * IPv6 See if the address we have matches the current match entry
-++ */
-++
-++static int ip_matches_v6(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry)
-++{
-++ struct sockaddr_in6 *ip_to_check;
-++ struct sockaddr_in6 *match1;
-++ struct sockaddr_in6 *match2;
-++ int i;
-++
-++ ip_to_check = (struct sockaddr_in6 *)checkip;
-++ match1 = (struct sockaddr_in6 *)&match_entry->addr1;
-++ match2 = (struct sockaddr_in6 *)&match_entry->addr2;
-++
-++ switch(match_entry->type) {
-++ case CHECK_TYPE_ADDRESS:
-++ if (!memcmp(ip_to_check->sin6_addr.s6_addr32, match1->sin6_addr.s6_addr32, sizeof(struct in6_addr)))
-++ return 1;
-++ break;
-++
-++ case CHECK_TYPE_MASK:
-++ /*
-++ * Note that this little loop will quit early if there is a non-match so the
-++ * comparison might look backwards compared to the IPv4 one
-++ */
-++ for (i=sizeof(struct in6_addr)/4-1; i>=0; i--) {
-++ if ((ip_to_check->sin6_addr.s6_addr32[i] & match2->sin6_addr.s6_addr32[i]) !=
-++ match1->sin6_addr.s6_addr32[i])
-++ return 0;
-++ }
-++ return 1;
-++ case CHECK_TYPE_RANGE:
-++ if ((ip6addr_cmp(&ip_to_check->sin6_addr, &match1->sin6_addr) >= 0) &&
-++ (ip6addr_cmp(&ip_to_check->sin6_addr, &match2->sin6_addr) <= 0))
-++ return 1;
-++ break;
-++ }
-++ return 0;
-++}
-++
-++
-++int ipcheck_validate(struct acl_match_entry **match_entry_head, struct sockaddr_storage *checkip)
-++{
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++ int (*match_fn)(struct sockaddr_storage *checkip, struct acl_match_entry *match_entry);
-++
-++ if (checkip->ss_family == AF_INET){
-++ match_fn = ip_matches_v4;
-++ } else {
-++ match_fn = ip_matches_v6;
-++ }
-++
-++ while (match_entry) {
-++ if (match_fn(checkip, match_entry)) {
-++ if (match_entry->acceptreject == CHECK_ACCEPT)
-++ return 1;
-++ else
-++ return 0;
-++ }
-++ match_entry = match_entry->next;
-++ }
-++ return 0; /* Default reject */
-++}
-++
-++/*
-++ * Routines to manuipulate access lists
-++ */
-++
-++void ipcheck_rmall(struct acl_match_entry **match_entry_head)
-++{
-++ struct acl_match_entry *next_match_entry;
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++
-++ while (match_entry) {
-++ next_match_entry = match_entry->next;
-++ free(match_entry);
-++ match_entry = next_match_entry;
-++ }
-++ *match_entry_head = NULL;
-++}
-++
-++static struct acl_match_entry *ipcheck_findmatch(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++
-++ while (match_entry) {
-++ if ((!memcmp(&match_entry->addr1, ip1, sizeof(struct sockaddr_storage))) &&
-++ (!memcmp(&match_entry->addr2, ip2, sizeof(struct sockaddr_storage))) &&
-++ (match_entry->type == type) &&
-++ (match_entry->acceptreject == acceptreject)) {
-++ return match_entry;
-++ }
-++ match_entry = match_entry->next;
-++ }
-++
-++ return NULL;
-++}
-++
-++int ipcheck_rmip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ struct acl_match_entry *next_match_entry = NULL;
-++ struct acl_match_entry *rm_match_entry;
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++
-++ rm_match_entry = ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject);
-++ if (!rm_match_entry) {
-++ return -1;
-++ }
-++
-++ while (match_entry) {
-++ next_match_entry = match_entry->next;
-++ /*
-++ * we are removing the list head, be careful
-++ */
-++ if (rm_match_entry == match_entry) {
-++ *match_entry_head = next_match_entry;
-++ free(match_entry);
-++ break;
-++ }
-++ /*
-++ * the next one is the one we need to remove
-++ */
-++ if (rm_match_entry == next_match_entry) {
-++ match_entry->next = next_match_entry->next;
-++ free(next_match_entry);
-++ break;
-++ }
-++ match_entry = next_match_entry;
-++ }
-++
-++ return 0;
-++}
-++
-++int ipcheck_addip(struct acl_match_entry **match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ struct acl_match_entry *new_match_entry;
-++ struct acl_match_entry *match_entry = *match_entry_head;
-++
-++ if (!ip1) {
-++ return -1;
-++ }
-++
-++ if ((type != CHECK_TYPE_ADDRESS) && (!ip2)) {
-++ return -1;
-++ }
-++
-++ if (type == CHECK_TYPE_RANGE &&
-++ (ip1->ss_family != ip2->ss_family))
-++ return -1;
-++
-++ if (ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject) != NULL) {
-++ return -1;
-++ }
-++
-++ new_match_entry = malloc(sizeof(struct acl_match_entry));
-++ if (!new_match_entry)
-++ return -1;
-++
-++ memmove(&new_match_entry->addr1, ip1, sizeof(struct sockaddr_storage));
-++ memmove(&new_match_entry->addr2, ip2, sizeof(struct sockaddr_storage));
-++ new_match_entry->type = type;
-++ new_match_entry->acceptreject = acceptreject;
-++ new_match_entry->next = NULL;
-++
-++ if (match_entry) {
-++ /* Find the end of the list */
-++ /* is this OK, or should we use a doubly-linked list or bulk-load API call? */
-++ while (match_entry->next) {
-++ match_entry = match_entry->next;
-++ }
-++ match_entry->next = new_match_entry;
-++ } else {
-++ /*
-++ * first entry in the list
-++ */
-++ *match_entry_head = new_match_entry;
-++ }
-++
-++ return 0;
-++}
-+diff --git a/libknet/tests/int_links_acl.c b/libknet/tests/int_links_acl.c
-+index 133cd5a..8d9f4e0 100644
-+--- a/libknet/tests/int_links_acl.c
-++++ b/libknet/tests/int_links_acl.c
-+@@ -16,6 +16,7 @@
-+
-+ #include "internals.h"
-+ #include "links_acl.h"
-++#include "links_acl_ip.h"
-+
-+ static struct acl_match_entry *match_entry_v4;
-+ static struct acl_match_entry *match_entry_v6;
-+@@ -105,8 +106,8 @@ static int load_file(void)
-+ struct sockaddr_storage addr1;
-+ struct sockaddr_storage addr2;
-+
-+- check_rmall(&match_entry_v4);
-+- check_rmall(&match_entry_v6);
-++ ipcheck_rmall(&match_entry_v4);
-++ ipcheck_rmall(&match_entry_v6);
-+
-+ filterfile = fopen("int_links_acl.txt", "r");
-+ if (!filterfile) {
-+@@ -202,7 +203,7 @@ int main(int argc, char *argv[])
-+ }
-+ }
-+
-+- check_rmall(&match_entry_v4);
-+- check_rmall(&match_entry_v6);
-++ ipcheck_rmall(&match_entry_v4);
-++ ipcheck_rmall(&match_entry_v6);
-+ return 0;
-+ }
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index 833938d..06a0168 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -721,27 +721,6 @@ out_pmtud:
-+ }
-+ }
-+
-+-/*
-+- * return 0 to reject and 1 to accept a packet
-+- */
-+-static int _generic_filter_packet_by_acl(knet_handle_t knet_h, int sockfd, const struct knet_mmsghdr *msg)
-+-{
-+- switch(transport_get_proto(knet_h, knet_h->knet_transport_fd_tracker[sockfd].transport)) {
-+- case LOOPBACK:
-+- return 1;
-+- break;
-+- case IP_PROTO:
-+- return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sockfd].match_entry, msg->msg_hdr.msg_name);
-+- break;
-+- default:
-+- break;
-+- }
-+- /*
-+- * reject by default
-+- */
-+- return 0;
-+-}
-+-
-+ static void _handle_recv_from_links(knet_handle_t knet_h, int sockfd, struct knet_mmsghdr *msg)
-+ {
-+ int err, savederrno;
-+@@ -829,13 +808,13 @@ static void _handle_recv_from_links(knet_handle_t knet_h, int sockfd, struct kne
-+ */
-+ if ((knet_h->use_access_lists) &&
-+ (transport_get_acl_type(knet_h, transport) == USE_GENERIC_ACL)) {
-+- if (!_generic_filter_packet_by_acl(knet_h, sockfd, &msg[i])) {
-++ if (!_generic_filter_packet_by_acl(knet_h, sockfd, msg[i].msg_hdr.msg_name)) {
-+ char src_ipaddr[KNET_MAX_HOST_LEN];
-+ char src_port[KNET_MAX_PORT_LEN];
-+
-+ memset(src_ipaddr, 0, KNET_MAX_HOST_LEN);
-+ memset(src_port, 0, KNET_MAX_PORT_LEN);
-+- knet_addrtostr(msg->msg_hdr.msg_name, sockaddr_len(msg->msg_hdr.msg_name),
-++ knet_addrtostr(msg[i].msg_hdr.msg_name, sockaddr_len(msg[i].msg_hdr.msg_name),
-+ src_ipaddr, KNET_MAX_HOST_LEN,
-+ src_port, KNET_MAX_PORT_LEN);
-+
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index 0d69a33..ce3e98e 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -20,6 +20,7 @@
-+ #include "host.h"
-+ #include "links.h"
-+ #include "links_acl.h"
-++#include "links_acl_ip.h"
-+ #include "logging.h"
-+ #include "common.h"
-+ #include "transport_common.h"
-+@@ -730,12 +731,13 @@ static void _handle_incoming_sctp(knet_handle_t knet_h, int listen_sock)
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Incoming: received connection from: %s port: %s",
-+ addr_str, port_str);
-+ if (knet_h->use_access_lists) {
-+- if (!ipcheck_validate(&knet_h->knet_transport_fd_tracker[listen_sock].match_entry, &ss)) {
-++ if (!_generic_filter_packet_by_acl(knet_h, listen_sock, &ss)) {
-+ savederrno = EINVAL;
-+ err = -1;
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Connection rejected from %s/%s", addr_str, port_str);
-+ close(new_fd);
-+- goto exit_error;
-++ errno = savederrno;
-++ return;
-+ }
-+ }
-+
-+@@ -946,8 +948,8 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ */
-+ knet_list_for_each_entry(info, &handle_info->listen_links_list, list) {
-+ if (memcmp(&info->src_address, &kn_link->src_addr, sizeof(struct sockaddr_storage)) == 0) {
-+- err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[info->listen_sock].match_entry,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++ err = check_add(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ if (err) {
-+ return NULL;
-+ }
-+@@ -1005,8 +1007,8 @@ static sctp_listen_link_info_t *sctp_link_listener_start(knet_handle_t knet_h, s
-+ goto exit_error;
-+ }
-+
-+- if (ipcheck_addip(&knet_h->knet_transport_fd_tracker[listen_sock].match_entry,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-++ if (check_add(knet_h, listen_sock, KNET_TRANSPORT_SCTP,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-+ savederrno = errno;
-+ err = -1;
-+ log_err(knet_h, KNET_SUB_TRANSP_SCTP, "Unable to configure default access lists: %s",
-+@@ -1036,8 +1038,8 @@ exit_error:
-+ if (info->on_listener_epoll) {
-+ epoll_ctl(handle_info->listen_epollfd, EPOLL_CTL_DEL, listen_sock, &ev);
-+ }
-+- ipcheck_rmip(&knet_h->knet_transport_fd_tracker[listen_sock].match_entry,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-++ check_rm(knet_h, listen_sock, KNET_TRANSPORT_SCTP,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+ if (listen_sock >= 0) {
-+ close(listen_sock);
-+ }
-+@@ -1076,8 +1078,8 @@ static int sctp_link_listener_stop(knet_handle_t knet_h, struct knet_link *kn_li
-+ }
-+ }
-+
-+- if (ipcheck_rmip(&knet_h->knet_transport_fd_tracker[info->listen_sock].match_entry,
-+- &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-++ if (check_rm(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP,
-++ &kn_link->dst_addr, &kn_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT)) {
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Unable to remove default access lists for %d", info->listen_sock);
-+ }
-+
-+@@ -1111,7 +1113,7 @@ static int sctp_link_listener_stop(knet_handle_t knet_h, struct knet_link *kn_li
-+ goto exit_error;
-+ }
-+
-+- check_rmall(&knet_h->knet_transport_fd_tracker[info->listen_sock].match_entry);
-++ check_rmall(knet_h, info->listen_sock, KNET_TRANSPORT_SCTP);
-+
-+ close(info->listen_sock);
-+
-diff --git a/debian/patches/access-lists-remove-2-unnecessary-wrappers.patch b/debian/patches/access-lists-remove-2-unnecessary-wrappers.patch
-new file mode 100644
-index 0000000..7fd5b1c
---- /dev/null
-+++ b/debian/patches/access-lists-remove-2-unnecessary-wrappers.patch
-@@ -0,0 +1,70 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 05:29:07 +0100
-+Subject: [access lists] remove 2 unnecessary wrappers
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit f5cba0f7608bed1e142f30c9e04e05b4ba56606c)
-+---
-+ libknet/links_acl.h | 3 ---
-+ libknet/links.c | 8 ++++++--
-+ libknet/links_acl.c | 12 ------------
-+ 3 files changed, 6 insertions(+), 17 deletions(-)
-+
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index 0ad50e6..b083753 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -39,7 +39,4 @@ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport);
-+ int check_validate(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *checkip);
-+
-+-int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link);
-+-int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link);
-+-
-+ #endif
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 07ef26e..1693df6 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -245,7 +245,9 @@ int knet_link_set_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ (link->dynamic == KNET_LINK_STATIC)) {
-+ log_debug(knet_h, KNET_SUB_LINK, "Configuring default access lists for host: %u link: %u socket: %d",
-+ host_id, link_id, link->outsock);
-+- if (_link_add_default_acl(knet_h, link) < 0) {
-++ if (check_add(knet_h, link->outsock, transport,
-++ &link->dst_addr, &link->dst_addr,
-++ CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-+ log_warn(knet_h, KNET_SUB_LINK, "Failed to configure default access lists for host: %u link: %u", host_id, link_id);
-+ savederrno = errno;
-+ err = -1;
-+@@ -426,7 +428,9 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ */
-+ if ((transport_get_acl_type(knet_h, link->transport_type) == USE_GENERIC_ACL) &&
-+ (link->dynamic == KNET_LINK_STATIC)) {
-+- if (_link_rm_default_acl(knet_h, link) < 0) {
-++ if (check_rm(knet_h, link->outsock, link->transport_type,
-++ &link->dst_addr, &link->dst_addr,
-++ CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-+ err = -1;
-+ savederrno = EBUSY;
-+ log_err(knet_h, KNET_SUB_LINK, "Host %u link %u: unable to remove default access list",
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index 520a934..93cc5af 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -91,15 +91,3 @@ int check_validate(knet_handle_t knet_h, int sockfd, struct sockaddr_storage *ch
-+ */
-+ return 0;
-+ }
-+-
-+-int _link_add_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+-{
-+- return check_add(knet_h, kh_link->outsock, kh_link->transport_type,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+-}
-+-
-+-int _link_rm_default_acl(knet_handle_t knet_h, struct knet_link *kh_link)
-+-{
-+- return check_rm(knet_h, kh_link->outsock, kh_link->transport_type,
-+- &kh_link->dst_addr, &kh_link->dst_addr, CHECK_TYPE_ADDRESS, CHECK_ACCEPT);
-+-}
-diff --git a/debian/patches/access-lists-rename-ip1-2-to-ss1-2-to-keep-it-more-generi.patch b/debian/patches/access-lists-rename-ip1-2-to-ss1-2-to-keep-it-more-generi.patch
-new file mode 100644
-index 0000000..a4628d7
---- /dev/null
-+++ b/debian/patches/access-lists-rename-ip1-2-to-ss1-2-to-keep-it-more-generi.patch
-@@ -0,0 +1,219 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 28 Feb 2019 08:22:43 +0100
-+Subject: [access lists] rename ip1/2 to ss1/2 to keep it more generic
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 118c7c415fbe9e47137c34607f26ac9b5b42fbf4)
-+---
-+ libknet/links_acl.h | 8 ++++----
-+ libknet/links_acl_ip.h | 4 ++--
-+ libknet/links_acl_loopback.h | 4 ++--
-+ libknet/links_acl.c | 8 ++++----
-+ libknet/links_acl_ip.c | 24 ++++++++++++------------
-+ libknet/links_acl_loopback.c | 4 ++--
-+ 6 files changed, 26 insertions(+), 26 deletions(-)
-+
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index cc4fdaf..a64faa1 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -28,21 +28,21 @@ typedef struct {
-+ int (*protocheck_validate) (void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-+
-+ int (*protocheck_add) (void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+ int (*protocheck_rm) (void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+ void (*protocheck_rmall) (void *fd_tracker_match_entry_head);
-+ } check_ops_t;
-+
-+ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport);
-+ int check_validate(knet_handle_t knet_h, int sock, uint8_t transport, struct sockaddr_storage *checkip);
-+diff --git a/libknet/links_acl_ip.h b/libknet/links_acl_ip.h
-+index c475db9..e069b99 100644
-+--- a/libknet/links_acl_ip.h
-++++ b/libknet/links_acl_ip.h
-+@@ -15,11 +15,11 @@
-+ int ipcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-+
-+ int ipcheck_addip(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+ int ipcheck_rmip(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+ void ipcheck_rmall(void *fd_tracker_match_entry_head);
-+diff --git a/libknet/links_acl_loopback.h b/libknet/links_acl_loopback.h
-+index 0f86222..73a9704 100644
-+--- a/libknet/links_acl_loopback.h
-++++ b/libknet/links_acl_loopback.h
-+@@ -15,11 +15,11 @@
-+ int loopbackcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-+
-+ int loopbackcheck_add(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+ int loopbackcheck_rm(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+
-+ void loopbackcheck_rmall(void *fd_tracker_match_entry_head);
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index a941dde..0b1fcd0 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -32,21 +32,21 @@ static check_ops_t proto_check_modules_cmds[] = {
-+ */
-+
-+ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ return proto_check_modules_cmds[transport_get_proto(knet_h, transport)].protocheck_add(
-+ &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-+- ip1, ip2, type, acceptreject);
-++ ss1, ss2, type, acceptreject);
-+ }
-+
-+ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ return proto_check_modules_cmds[transport_get_proto(knet_h, transport)].protocheck_rm(
-+ &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-+- ip1, ip2, type, acceptreject);
-++ ss1, ss2, type, acceptreject);
-+ }
-+
-+ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index e72a382..2682a70 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -185,14 +185,14 @@ void ipcheck_rmall(void *fd_tracker_match_entry_head)
-+ }
-+
-+ static struct ip_acl_match_entry *ipcheck_findmatch(struct ip_acl_match_entry **match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+
-+ while (match_entry) {
-+- if ((!memcmp(&match_entry->addr1, ip1, sizeof(struct sockaddr_storage))) &&
-+- (!memcmp(&match_entry->addr2, ip2, sizeof(struct sockaddr_storage))) &&
-++ if ((!memcmp(&match_entry->addr1, ss1, sizeof(struct sockaddr_storage))) &&
-++ (!memcmp(&match_entry->addr2, ss2, sizeof(struct sockaddr_storage))) &&
-+ (match_entry->type == type) &&
-+ (match_entry->acceptreject == acceptreject)) {
-+ return match_entry;
-+@@ -204,7 +204,7 @@ static struct ip_acl_match_entry *ipcheck_findmatch(struct ip_acl_match_entry **
-+ }
-+
-+ int ipcheck_rmip(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ struct ip_acl_match_entry **match_entry_head = (struct ip_acl_match_entry **)fd_tracker_match_entry_head;
-+@@ -212,7 +212,7 @@ int ipcheck_rmip(void *fd_tracker_match_entry_head,
-+ struct ip_acl_match_entry *rm_match_entry;
-+ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+
-+- rm_match_entry = ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject);
-++ rm_match_entry = ipcheck_findmatch(match_entry_head, ss1, ss2, type, acceptreject);
-+ if (!rm_match_entry) {
-+ errno = ENOENT;
-+ return -1;
-+@@ -243,30 +243,30 @@ int ipcheck_rmip(void *fd_tracker_match_entry_head,
-+ }
-+
-+ int ipcheck_addip(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ struct ip_acl_match_entry **match_entry_head = (struct ip_acl_match_entry **)fd_tracker_match_entry_head;
-+ struct ip_acl_match_entry *new_match_entry;
-+ struct ip_acl_match_entry *match_entry = *match_entry_head;
-+
-+- if (!ip1) {
-++ if (!ss1) {
-+ errno = EINVAL;
-+ return -1;
-+ }
-+
-+- if ((type != CHECK_TYPE_ADDRESS) && (!ip2)) {
-++ if ((type != CHECK_TYPE_ADDRESS) && (!ss2)) {
-+ errno = EINVAL;
-+ return -1;
-+ }
-+
-+ if (type == CHECK_TYPE_RANGE &&
-+- (ip1->ss_family != ip2->ss_family)) {
-++ (ss1->ss_family != ss2->ss_family)) {
-+ errno = EINVAL;
-+ return -1;
-+ }
-+
-+- if (ipcheck_findmatch(match_entry_head, ip1, ip2, type, acceptreject) != NULL) {
-++ if (ipcheck_findmatch(match_entry_head, ss1, ss2, type, acceptreject) != NULL) {
-+ errno = EEXIST;
-+ return -1;
-+ }
-+@@ -276,8 +276,8 @@ int ipcheck_addip(void *fd_tracker_match_entry_head,
-+ return -1;
-+ }
-+
-+- memmove(&new_match_entry->addr1, ip1, sizeof(struct sockaddr_storage));
-+- memmove(&new_match_entry->addr2, ip2, sizeof(struct sockaddr_storage));
-++ memmove(&new_match_entry->addr1, ss1, sizeof(struct sockaddr_storage));
-++ memmove(&new_match_entry->addr2, ss2, sizeof(struct sockaddr_storage));
-+ new_match_entry->type = type;
-+ new_match_entry->acceptreject = acceptreject;
-+ new_match_entry->next = NULL;
-+diff --git a/libknet/links_acl_loopback.c b/libknet/links_acl_loopback.c
-+index 42559f3..bb69130 100644
-+--- a/libknet/links_acl_loopback.c
-++++ b/libknet/links_acl_loopback.c
-+@@ -27,14 +27,14 @@ void loopbackcheck_rmall(void *fd_tracker_match_entry_head)
-+ }
-+
-+ int loopbackcheck_rm(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ return 0;
-+ }
-+
-+ int loopbackcheck_add(void *fd_tracker_match_entry_head,
-+- struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ struct sockaddr_storage *ss1, struct sockaddr_storage *ss2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+ return 0;
-diff --git a/debian/patches/access-lists-test-implicit-access-lists-management-for-UD.patch b/debian/patches/access-lists-test-implicit-access-lists-management-for-UD.patch
-new file mode 100644
-index 0000000..91c2bb8
---- /dev/null
-+++ b/debian/patches/access-lists-test-implicit-access-lists-management-for-UD.patch
-@@ -0,0 +1,50 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 5 Mar 2019 05:16:29 +0100
-+Subject: [access lists] test implicit access lists management for UDP,
-+ SCTP and LOOPBACK
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit dc7731abeff323785291207b91d23173bf0bb458)
-+---
-+ libknet/tests/api_knet_send.c | 8 ++++++++
-+ libknet/tests/api_knet_send_loopback.c | 8 ++++++++
-+ 2 files changed, 16 insertions(+)
-+
-+diff --git a/libknet/tests/api_knet_send.c b/libknet/tests/api_knet_send.c
-+index 1c55db1..9e81d03 100644
-+--- a/libknet/tests/api_knet_send.c
-++++ b/libknet/tests/api_knet_send.c
-+@@ -145,6 +145,14 @@ static void test(uint8_t transport)
-+
-+ printf("Test knet_send with valid data\n");
-+
-++ if (knet_handle_enable_access_lists(knet_h, 1) < 0) {
-++ printf("knet_handle_enable_access_lists failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-+ if (knet_handle_enable_sock_notify(knet_h, &private_data, sock_notify) < 0) {
-+ printf("knet_handle_enable_sock_notify failed: %s\n", strerror(errno));
-+ knet_handle_free(knet_h);
-+diff --git a/libknet/tests/api_knet_send_loopback.c b/libknet/tests/api_knet_send_loopback.c
-+index 16a4624..0cfd29f 100644
-+--- a/libknet/tests/api_knet_send_loopback.c
-++++ b/libknet/tests/api_knet_send_loopback.c
-+@@ -168,6 +168,14 @@ static void test(void)
-+ flush_logs(logfds[0], stdout);
-+ printf("Test knet_send with valid data\n");
-+
-++ if (knet_handle_enable_access_lists(knet_h, 1) < 0) {
-++ printf("knet_handle_enable_access_lists failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-+ if (knet_link_clear_config(knet_h, 1, 0) < 0) {
-+ printf("Failed to clear existing UDP link: %s\n", strerror(errno));
-+ knet_host_remove(knet_h, 1);
-diff --git a/debian/patches/access-lists-use-arrays-to-access-per-protocol-functions.patch b/debian/patches/access-lists-use-arrays-to-access-per-protocol-functions.patch
-new file mode 100644
-index 0000000..bb00a3f
---- /dev/null
-+++ b/debian/patches/access-lists-use-arrays-to-access-per-protocol-functions.patch
-@@ -0,0 +1,309 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 26 Feb 2019 13:34:11 +0100
-+Subject: [access lists] use arrays to access per-protocol functions
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit ce8b773ed76102719c1e4a8859854e01a250b482)
-+---
-+ libknet/Makefile.am | 2 ++
-+ libknet/tests/Makefile.am | 3 +-
-+ libknet/internals.h | 8 ++---
-+ libknet/links_acl.h | 16 ++++++++++
-+ libknet/links_acl_loopback.h | 27 +++++++++++++++++
-+ libknet/links_acl.c | 71 ++++++++++----------------------------------
-+ libknet/links_acl_loopback.c | 41 +++++++++++++++++++++++++
-+ libknet/transports.c | 6 ++--
-+ 8 files changed, 110 insertions(+), 64 deletions(-)
-+ create mode 100644 libknet/links_acl_loopback.h
-+ create mode 100644 libknet/links_acl_loopback.c
-+
-+diff --git a/libknet/Makefile.am b/libknet/Makefile.am
-+index b60427c..0be4fff 100644
-+--- a/libknet/Makefile.am
-++++ b/libknet/Makefile.am
-+@@ -33,6 +33,7 @@ sources = \
-+ links.c \
-+ links_acl.c \
-+ links_acl_ip.c \
-++ links_acl_loopback.c \
-+ logging.c \
-+ netutils.c \
-+ threads_common.c \
-+@@ -65,6 +66,7 @@ noinst_HEADERS = \
-+ links.h \
-+ links_acl.h \
-+ links_acl_ip.h \
-++ links_acl_loopback.h \
-+ logging.h \
-+ netutils.h \
-+ onwire.h \
-+diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am
-+index 2f22293..eae5c80 100644
-+--- a/libknet/tests/Makefile.am
-++++ b/libknet/tests/Makefile.am
-+@@ -79,7 +79,8 @@ int_links_acl_test_SOURCES = int_links_acl.c \
-+ ../transport_sctp.c \
-+ ../transport_udp.c \
-+ ../links_acl.c \
-+- ../links_acl_ip.c
-++ ../links_acl_ip.c \
-++ ../links_acl_loopback.c
-+
-+ int_timediff_test_SOURCES = int_timediff.c
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 27eea2a..d482674 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -265,10 +265,8 @@ extern pthread_rwlock_t shlib_rwlock; /* global shared lib load lock */
-+ * to use for access lists and other operations
-+ */
-+
-+-typedef enum {
-+- LOOPBACK,
-+- IP_PROTO
-+-} transport_proto;
-++#define TRANSPORT_PROTO_LOOPBACK 0
-++#define TRANSPORT_PROTO_IP_PROTO 1
-+
-+ /*
-+ * some transports like SCTP can filter incoming
-+@@ -299,7 +297,7 @@ typedef struct knet_transport_ops {
-+ const uint8_t transport_id;
-+ const uint8_t built_in;
-+
-+- transport_proto transport_protocol;
-++ uint8_t transport_protocol;
-+ transport_acl transport_acl_type;
-+
-+ /*
-+diff --git a/libknet/links_acl.h b/libknet/links_acl.h
-+index 84ae6b9..cc4fdaf 100644
-+--- a/libknet/links_acl.h
-++++ b/libknet/links_acl.h
-+@@ -22,6 +22,22 @@ typedef enum {
-+ CHECK_REJECT
-+ } check_acceptreject_t;
-+
-++typedef struct {
-++ uint8_t transport_proto;
-++
-++ int (*protocheck_validate) (void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-++
-++ int (*protocheck_add) (void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++ int (*protocheck_rm) (void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++ void (*protocheck_rmall) (void *fd_tracker_match_entry_head);
-++} check_ops_t;
-++
-+ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject);
-+diff --git a/libknet/links_acl_loopback.h b/libknet/links_acl_loopback.h
-+new file mode 100644
-+index 0000000..0f86222
-+--- /dev/null
-++++ b/libknet/links_acl_loopback.h
-+@@ -0,0 +1,27 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Author: Christine Caulfield <ccaulfie at redhat.com>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#ifndef __KNET_LINKS_ACL_LOOPBACK_H__
-++#define __KNET_LINKS_ACL_LOOPBACK_H__
-++
-++#include "internals.h"
-++#include "links_acl.h"
-++
-++int loopbackcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip);
-++
-++int loopbackcheck_add(void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++int loopbackcheck_rm(void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject);
-++
-++void loopbackcheck_rmall(void *fd_tracker_match_entry_head);
-++
-++#endif
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index f2c772d..a941dde 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -19,6 +19,12 @@
-+ #include "transport_common.h"
-+ #include "links_acl.h"
-+ #include "links_acl_ip.h"
-++#include "links_acl_loopback.h"
-++
-++static check_ops_t proto_check_modules_cmds[] = {
-++ { TRANSPORT_PROTO_LOOPBACK, loopbackcheck_validate, loopbackcheck_add, loopbackcheck_rm, loopbackcheck_rmall },
-++ { TRANSPORT_PROTO_IP_PROTO, ipcheck_validate, ipcheck_addip, ipcheck_rmip, ipcheck_rmall }
-++};
-+
-+ /*
-+ * all those functions will return errno from the
-+@@ -29,56 +35,24 @@ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- int err = -1;
-+-
-+- switch(transport_get_proto(knet_h, transport)) {
-+- case LOOPBACK:
-+- errno = 0;
-+- err = 0;
-+- break;
-+- case IP_PROTO:
-+- err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-+- ip1, ip2, type, acceptreject);
-+- break;
-+- default:
-+- break;
-+- }
-+- return err;
-++ return proto_check_modules_cmds[transport_get_proto(knet_h, transport)].protocheck_add(
-++ &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-++ ip1, ip2, type, acceptreject);
-+ }
-+
-+ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-+ check_type_t type, check_acceptreject_t acceptreject)
-+ {
-+- int err = -1;
-+-
-+- switch(transport_get_proto(knet_h, transport)) {
-+- case LOOPBACK:
-+- errno = 0;
-+- err = 0;
-+- break;
-+- case IP_PROTO:
-+- err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-+- ip1, ip2, type, acceptreject);
-+- break;
-+- default:
-+- break;
-+- }
-+- return err;
-++ return proto_check_modules_cmds[transport_get_proto(knet_h, transport)].protocheck_rm(
-++ &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-++ ip1, ip2, type, acceptreject);
-+ }
-+
-+ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ {
-+- switch(transport_get_proto(knet_h, transport)) {
-+- case LOOPBACK:
-+- return;
-+- break;
-+- case IP_PROTO:
-+- ipcheck_rmall(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head);
-+- break;
-+- default:
-+- break;
-+- }
-++ proto_check_modules_cmds[transport_get_proto(knet_h, transport)].protocheck_rmall(
-++ &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head);
-+ }
-+
-+ /*
-+@@ -86,19 +60,6 @@ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ */
-+ int check_validate(knet_handle_t knet_h, int sock, uint8_t transport, struct sockaddr_storage *checkip)
-+ {
-+- switch(transport_get_proto(knet_h, transport)) {
-+- case LOOPBACK:
-+- errno = 0;
-+- return 1;
-+- break;
-+- case IP_PROTO:
-+- return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head, checkip);
-+- break;
-+- default:
-+- break;
-+- }
-+- /*
-+- * reject by default
-+- */
-+- return 0;
-++ return proto_check_modules_cmds[transport_get_proto(knet_h, transport)].protocheck_validate(
-++ &knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head, checkip);
-+ }
-+diff --git a/libknet/links_acl_loopback.c b/libknet/links_acl_loopback.c
-+new file mode 100644
-+index 0000000..42559f3
-+--- /dev/null
-++++ b/libknet/links_acl_loopback.c
-+@@ -0,0 +1,41 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Author: Christine Caulfield <ccaulfie at redhat.com>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include "config.h"
-++
-++#include <errno.h>
-++
-++#include "internals.h"
-++#include "logging.h"
-++#include "transports.h"
-++#include "links_acl.h"
-++#include "links_acl_loopback.h"
-++
-++int loopbackcheck_validate(void *fd_tracker_match_entry_head, struct sockaddr_storage *checkip)
-++{
-++ return 1;
-++}
-++
-++void loopbackcheck_rmall(void *fd_tracker_match_entry_head)
-++{
-++ return;
-++}
-++
-++int loopbackcheck_rm(void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ return 0;
-++}
-++
-++int loopbackcheck_add(void *fd_tracker_match_entry_head,
-++ struct sockaddr_storage *ip1, struct sockaddr_storage *ip2,
-++ check_type_t type, check_acceptreject_t acceptreject)
-++{
-++ return 0;
-++}
-+diff --git a/libknet/transports.c b/libknet/transports.c
-+index 69ea091..6ded675 100644
-+--- a/libknet/transports.c
-++++ b/libknet/transports.c
-+@@ -30,11 +30,11 @@
-+ #define empty_module -1, -1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
-+
-+ static knet_transport_ops_t transport_modules_cmd[KNET_MAX_TRANSPORTS] = {
-+- { "LOOPBACK", KNET_TRANSPORT_LOOPBACK, 1, LOOPBACK, USE_NO_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_LOOPBACK_OVERHEAD, loopback_transport_init, loopback_transport_free, loopback_transport_link_set_config, loopback_transport_link_clear_config, loopback_transport_link_dyn_connect, loopback_transport_rx_sock_error, loopback_transport_tx_sock_error, loopback_transport_rx_is_data },
-+- { "UDP", KNET_TRANSPORT_UDP, 1, IP_PROTO, USE_GENERIC_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-++ { "LOOPBACK", KNET_TRANSPORT_LOOPBACK, 1, TRANSPORT_PROTO_LOOPBACK, USE_NO_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_LOOPBACK_OVERHEAD, loopback_transport_init, loopback_transport_free, loopback_transport_link_set_config, loopback_transport_link_clear_config, loopback_transport_link_dyn_connect, loopback_transport_rx_sock_error, loopback_transport_tx_sock_error, loopback_transport_rx_is_data },
-++ { "UDP", KNET_TRANSPORT_UDP, 1, TRANSPORT_PROTO_IP_PROTO, USE_GENERIC_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-+ { "SCTP", KNET_TRANSPORT_SCTP,
-+ #ifdef HAVE_NETINET_SCTP_H
-+- 1, IP_PROTO, USE_PROTO_ACL, TRANSPORT_PROTO_IS_CONNECTION_ORIENTED, KNET_PMTUD_SCTP_OVERHEAD, sctp_transport_init, sctp_transport_free, sctp_transport_link_set_config, sctp_transport_link_clear_config, sctp_transport_link_dyn_connect, sctp_transport_rx_sock_error, sctp_transport_tx_sock_error, sctp_transport_rx_is_data },
-++ 1, TRANSPORT_PROTO_IP_PROTO, USE_PROTO_ACL, TRANSPORT_PROTO_IS_CONNECTION_ORIENTED, KNET_PMTUD_SCTP_OVERHEAD, sctp_transport_init, sctp_transport_free, sctp_transport_link_set_config, sctp_transport_link_clear_config, sctp_transport_link_dyn_connect, sctp_transport_rx_sock_error, sctp_transport_tx_sock_error, sctp_transport_rx_is_data },
-+ #else
-+ empty_module
-+ #endif
-diff --git a/debian/patches/access-lists-use-better-name-for-fd_tracker-structure.patch b/debian/patches/access-lists-use-better-name-for-fd_tracker-structure.patch
-new file mode 100644
-index 0000000..cbba12f
---- /dev/null
-+++ b/debian/patches/access-lists-use-better-name-for-fd_tracker-structure.patch
-@@ -0,0 +1,95 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 26 Feb 2019 12:12:09 +0100
-+Subject: [access lists] use better name for fd_tracker structure
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit bc25626d5585ac267029470cf518852017d3740b)
-+---
-+ libknet/internals.h | 10 +++++-----
-+ libknet/links_acl.c | 8 ++++----
-+ libknet/tests/api_knet_link_set_config.c | 4 ++--
-+ 3 files changed, 11 insertions(+), 11 deletions(-)
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 2135fb8..27eea2a 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -130,11 +130,11 @@ struct knet_sock {
-+ };
-+
-+ struct knet_fd_trackers {
-+- uint8_t transport; /* transport type (UDP/SCTP...) */
-+- uint8_t data_type; /* internal use for transport to define what data are associated
-+- * to this fd */
-+- void *data; /* pointer to the data */
-+- void *match_entry; /* pointer to access list match_entry list head */
-++ uint8_t transport; /* transport type (UDP/SCTP...) */
-++ uint8_t data_type; /* internal use for transport to define what data are associated
-++ * to this fd */
-++ void *data; /* pointer to the data */
-++ void *access_list_match_entry_head; /* pointer to access list match_entry list head */
-+ };
-+
-+ #define KNET_MAX_FDS KNET_MAX_HOST * KNET_MAX_LINK * 4
-+diff --git a/libknet/links_acl.c b/libknet/links_acl.c
-+index b1d7ab4..f2c772d 100644
-+--- a/libknet/links_acl.c
-++++ b/libknet/links_acl.c
-+@@ -37,7 +37,7 @@ int check_add(knet_handle_t knet_h, int sock, uint8_t transport,
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ err = ipcheck_addip(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-+ ip1, ip2, type, acceptreject);
-+ break;
-+ default:
-+@@ -58,7 +58,7 @@ int check_rm(knet_handle_t knet_h, int sock, uint8_t transport,
-+ err = 0;
-+ break;
-+ case IP_PROTO:
-+- err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[sock].match_entry,
-++ err = ipcheck_rmip(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head,
-+ ip1, ip2, type, acceptreject);
-+ break;
-+ default:
-+@@ -74,7 +74,7 @@ void check_rmall(knet_handle_t knet_h, int sock, uint8_t transport)
-+ return;
-+ break;
-+ case IP_PROTO:
-+- ipcheck_rmall(&knet_h->knet_transport_fd_tracker[sock].match_entry);
-++ ipcheck_rmall(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head);
-+ break;
-+ default:
-+ break;
-+@@ -92,7 +92,7 @@ int check_validate(knet_handle_t knet_h, int sock, uint8_t transport, struct soc
-+ return 1;
-+ break;
-+ case IP_PROTO:
-+- return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sock].match_entry, checkip);
-++ return ipcheck_validate(&knet_h->knet_transport_fd_tracker[sock].access_list_match_entry_head, checkip);
-+ break;
-+ default:
-+ break;
-+diff --git a/libknet/tests/api_knet_link_set_config.c b/libknet/tests/api_knet_link_set_config.c
-+index 5fed9be..b96c628 100644
-+--- a/libknet/tests/api_knet_link_set_config.c
-++++ b/libknet/tests/api_knet_link_set_config.c
-+@@ -145,7 +145,7 @@ static void test(void)
-+ host = knet_h->host_index[1];
-+ link = &host->link[0];
-+
-+- if (knet_h->knet_transport_fd_tracker[link->outsock].match_entry) {
-++ if (knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-+ printf("found access lists for dynamic dst_addr!\n");
-+ knet_link_clear_config(knet_h, 1, 0);
-+ knet_host_remove(knet_h, 1);
-+@@ -262,7 +262,7 @@ static void test(void)
-+ host = knet_h->host_index[1];
-+ link = &host->link[0];
-+
-+- if (!knet_h->knet_transport_fd_tracker[link->outsock].match_entry) {
-++ if (!knet_h->knet_transport_fd_tracker[link->outsock].access_list_match_entry_head) {
-+ printf("Unable to find default access lists for static dst_addr!\n");
-+ knet_link_clear_config(knet_h, 1, 0);
-+ knet_host_remove(knet_h, 1);
-diff --git a/debian/patches/acl-Fix-English-in-commments.patch b/debian/patches/acl-Fix-English-in-commments.patch
-new file mode 100644
-index 0000000..7e55364
---- /dev/null
-+++ b/debian/patches/acl-Fix-English-in-commments.patch
-@@ -0,0 +1,106 @@
-+From: Christine Caulfield <ccaulfie at redhat.com>
-+Date: Thu, 7 Mar 2019 10:04:41 +0000
-+Subject: acl: Fix English in commments
-+
-+(cherry picked from commit e9b656bebb0615c2b2419929cadfb71e3941af34)
-+---
-+ libknet/internals.h | 2 +-
-+ libknet/libknet.h | 27 ++++++++++++++-------------
-+ 2 files changed, 15 insertions(+), 14 deletions(-)
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 8976a8c..12f613c 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -132,7 +132,7 @@ struct knet_sock {
-+ struct knet_fd_trackers {
-+ uint8_t transport; /* transport type (UDP/SCTP...) */
-+ uint8_t data_type; /* internal use for transport to define what data are associated
-+- * to this fd */
-++ * with this fd */
-+ void *data; /* pointer to the data */
-+ void *access_list_match_entry_head; /* pointer to access list match_entry list head */
-+ };
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index d616e11..50ed70d 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -523,15 +523,16 @@ int knet_handle_setfwd(knet_handle_t knet_h, unsigned int enabled);
-+ *
-+ * knet will automatically generate access lists for point to point links.
-+ *
-+- * For open links, knet provides 3 API calls to manipulate access lists:
-+- * knet_link_add_acl(3), knet_link_rm_acl(3) and knet_link_clear_acl(3).
-+- * Those API calls will work only and exclusively on open links as they
-+- * provide no use for point to point links.
-++ * For open links, knet provides 4 API calls to manipulate access lists:
-++ * knet_link_add_acl(3), knet_link_rm_acl(3), knet_link_insert_acl(3)
-++ * and knet_link_clear_acl(3).
-++ * Those API calls will work exclusively on open links as they
-++ * are of no use on point to point links.
-+ *
-+ * knet will not enforce any access list unless specifically enabled by
-+ * knet_handle_enable_access_lists(3).
-+ *
-+- * From a security / programming perspective we recommend to:
-++ * From a security / programming perspective we recommend:
-+ * - create the knet handle
-+ * - enable access lists
-+ * - configure hosts and links
-+@@ -1478,13 +1479,13 @@ int knet_link_get_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_id);
-+
-+ /*
-+- * access lists management for open links
-++ * Access lists management for open links
-+ * see also knet_handle_enable_access_lists(3)
-+ */
-+
-+ /*
-+ * CHECK_TYPE_ADDRESS is the equivalent of a single entry / IP address.
-+- * for example: 10.1.9.3/32
-++ * for example: 10.1.9.3
-+ * and the entry is stored in ss1. ss2 can be NULL.
-+ *
-+ * CHECK_TYPE_MASK is used to configure network/netmask.
-+@@ -1495,9 +1496,9 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * for example: 172.16.0.1-172.16.0.10
-+ * the start is stored in ss1 and the end in ss2.
-+ *
-+- * Please be aware that the above examples refers only to IP based protocols.
-++ * Please be aware that the above examples refer only to IP based protocols.
-+ * Other protocols might use ss1 and ss2 in slightly different ways.
-+- * At the moment knet only supports IP based protocol and that might change
-++ * At the moment knet only supports IP based protocol, though that might change
-+ * in the future.
-+ */
-+
-+@@ -1531,7 +1532,7 @@ typedef enum {
-+ *
-+ * IMPORTANT: the order in which access lists are added is critical and it
-+ * is left to the user to add them in the right order. knet
-+- * will do no attempt to logically sort them.
-++ * will not attempt to logically sort them.
-+ *
-+ * For example:
-+ * 1 - accept from 10.0.0.0/8
-+@@ -1568,7 +1569,7 @@ int knet_link_add_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link
-+ * link_id - see knet_link_set_config(3)
-+ *
-+ * index - insert at position "index" where 0 is the first entry and -1
-+- * append to the current list.
-++ * appends to the current list.
-+ *
-+ * ss1 / ss2 / type / acceptreject - see typedef definitions for details
-+ *
-+@@ -1597,8 +1598,8 @@ int knet_link_insert_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ *
-+ * ss1 / ss2 / type / acceptreject - see typedef definitions for details
-+ *
-+- * IMPORTANT: the data passed to this API call must match exactly the ones used
-+- * in knet_link_add_acl(3).
-++ * IMPORTANT: the data passed to this API call must match exactly that passed
-++ * to knet_link_add_acl(3).
-+ *
-+ * @return
-+ * knet_link_rm_acl
-diff --git a/debian/patches/acl-add-knet_handle_enable_access_lists-api-call.patch b/debian/patches/acl-add-knet_handle_enable_access_lists-api-call.patch
-new file mode 100644
-index 0000000..683d8e6
---- /dev/null
-+++ b/debian/patches/acl-add-knet_handle_enable_access_lists-api-call.patch
-@@ -0,0 +1,235 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 8 Feb 2019 14:29:50 +0100
-+Subject: [acl] add knet_handle_enable_access_lists api call
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 2a325c9fc388c91fd9969378d5822db87b9d364b)
-+---
-+ libknet/internals.h | 1 +
-+ libknet/libknet.h | 22 +++++
-+ libknet/handle.c | 36 ++++++++
-+ .../tests/api_knet_handle_enable_access_lists.c | 100 +++++++++++++++++++++
-+ libknet/tests/api-check.mk | 4 +
-+ 5 files changed, 163 insertions(+)
-+ create mode 100644 libknet/tests/api_knet_handle_enable_access_lists.c
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 57da5b4..d33646f 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -158,6 +158,7 @@ struct knet_handle {
-+ int send_to_links_epollfd;
-+ int recv_from_links_epollfd;
-+ int dst_link_handler_epollfd;
-++ uint8_t use_access_lists; /* set to 0 for disable, 1 for enable */
-+ unsigned int pmtud_interval;
-+ unsigned int data_mtu; /* contains the max data size that we can send onwire
-+ * without frags */
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index c7f44d7..4283afe 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -502,6 +502,28 @@ int knet_handle_enable_filter(knet_handle_t knet_h,
-+
-+ int knet_handle_setfwd(knet_handle_t knet_h, unsigned int enabled);
-+
-++/**
-++ * knet_handle_enable_access_lists
-++ *
-++ * @brief Start packet forwarding
-++ *
-++ * knet_h - pointer to knet_handle_t
-++ *
-++ * enable - set to 1 to use ip access lists, 0 to disable ip access_lists.
-++ *
-++ * @return
-++ * knet_handle_enable_access_lists returns
-++ * 0 on success
-++ * -1 on error and errno is set.
-++ *
-++ * By default access lists usage is off, but default internal access lists
-++ * will be populated regardless, but not enforced. TODO add long explanation
-++ * on internal access lists for point to point connections vs global
-++ * listeners etc.
-++ */
-++
-++int knet_handle_enable_access_lists(knet_handle_t knet_h, unsigned int enabled);
-++
-+ #define KNET_PMTUD_DEFAULT_INTERVAL 60
-+
-+ /**
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index b7aa2fd..6cd49f5 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -1186,6 +1186,42 @@ int knet_handle_setfwd(knet_handle_t knet_h, unsigned int enabled)
-+ return 0;
-+ }
-+
-++int knet_handle_enable_access_lists(knet_handle_t knet_h, unsigned int enabled)
-++{
-++ int savederrno = 0;
-++
-++ if (!knet_h) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ if (enabled > 1) {
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ savederrno = get_global_wrlock(knet_h);
-++ if (savederrno) {
-++ log_err(knet_h, KNET_SUB_HANDLE, "Unable to get write lock: %s",
-++ strerror(savederrno));
-++ errno = savederrno;
-++ return -1;
-++ }
-++
-++ knet_h->use_access_lists = enabled;
-++
-++ if (enabled) {
-++ log_debug(knet_h, KNET_SUB_HANDLE, "Links access lists are enabled");
-++ } else {
-++ log_debug(knet_h, KNET_SUB_HANDLE, "Links access lists are disabled");
-++ }
-++
-++ pthread_rwlock_unlock(&knet_h->global_rwlock);
-++
-++ errno = 0;
-++ return 0;
-++}
-++
-+ int knet_handle_pmtud_getfreq(knet_handle_t knet_h, unsigned int *interval)
-+ {
-+ int savederrno = 0;
-+diff --git a/libknet/tests/api_knet_handle_enable_access_lists.c b/libknet/tests/api_knet_handle_enable_access_lists.c
-+new file mode 100644
-+index 0000000..fc3bcc1
-+--- /dev/null
-++++ b/libknet/tests/api_knet_handle_enable_access_lists.c
-+@@ -0,0 +1,100 @@
-++/*
-++ * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ *
-++ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++
-++#include "config.h"
-++
-++#include <errno.h>
-++#include <stdio.h>
-++#include <stdlib.h>
-++#include <string.h>
-++#include <unistd.h>
-++
-++#include "libknet.h"
-++#include "internals.h"
-++
-++#include "test-common.h"
-++
-++static void test(void)
-++{
-++ knet_handle_t knet_h;
-++ int logfds[2];
-++
-++ printf("Test knet_handle_enable_access_lists with invalid knet_h\n");
-++
-++ if ((!knet_handle_enable_access_lists(NULL, 0)) || (errno != EINVAL)) {
-++ printf("knet_handle_enable_access_lists accepted invalid knet_h parameter\n");
-++ exit(FAIL);
-++ }
-++
-++ setup_logpipes(logfds);
-++
-++ printf("Test knet_handle_enable_access_lists with invalid param (2) \n");
-++
-++ knet_h = knet_handle_start(logfds, KNET_LOG_DEBUG);
-++
-++ if ((!knet_handle_enable_access_lists(knet_h, 2)) || (errno != EINVAL)) {
-++ printf("knet_handle_enable_access_lists accepted invalid param for enabled: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_handle_enable_access_lists with valid param (1) \n");
-++
-++ if (knet_handle_enable_access_lists(knet_h, 1) < 0) {
-++ printf("knet_handle_enable_access_lists failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_h->use_access_lists != 1) {
-++ printf("knet_handle_enable_access_lists failed to set correct value");
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_handle_enable_access_lists with valid param (0) \n");
-++
-++ if (knet_handle_enable_access_lists(knet_h, 0) < 0) {
-++ printf("knet_handle_enable_access_lists failed: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ if (knet_h->use_access_lists != 0) {
-++ printf("knet_handle_enable_access_lists failed to set correct value");
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++}
-++
-++int main(int argc, char *argv[])
-++{
-++ test();
-++
-++ return PASS;
-++}
-+diff --git a/libknet/tests/api-check.mk b/libknet/tests/api-check.mk
-+index 7beba53..247ed58 100644
-+--- a/libknet/tests/api-check.mk
-++++ b/libknet/tests/api-check.mk
-+@@ -12,6 +12,7 @@ api_checks = \
-+ api_knet_handle_compress_test \
-+ api_knet_handle_crypto_test \
-+ api_knet_handle_setfwd_test \
-++ api_knet_handle_enable_access_lists_test \
-+ api_knet_handle_enable_filter_test \
-+ api_knet_handle_enable_sock_notify_test \
-+ api_knet_handle_add_datafd_test \
-+@@ -87,6 +88,9 @@ api_knet_handle_crypto_test_SOURCES = api_knet_handle_crypto.c \
-+ api_knet_handle_setfwd_test_SOURCES = api_knet_handle_setfwd.c \
-+ test-common.c
-+
-++api_knet_handle_enable_access_lists_test_SOURCES = api_knet_handle_enable_access_lists.c \
-++ test-common.c
-++
-+ api_knet_handle_enable_filter_test_SOURCES = api_knet_handle_enable_filter.c \
-+ test-common.c
-+
-diff --git a/debian/patches/acl-move-poc-code-into-libknet-dir-and-rename-to-links_ac.patch b/debian/patches/acl-move-poc-code-into-libknet-dir-and-rename-to-links_ac.patch
-new file mode 100644
-index 0000000..c9a98b3
---- /dev/null
-+++ b/debian/patches/acl-move-poc-code-into-libknet-dir-and-rename-to-links_ac.patch
-@@ -0,0 +1,186 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sat, 5 Jan 2019 09:04:38 +0100
-+Subject: [acl] move poc-code into libknet dir and rename to links_acl.*
-+MIME-Version: 1.0
-+Content-Type: text/plain; charset="utf-8"
-+Content-Transfer-Encoding: 8bit
-+
-+code is not integrated yet and test suite can´t run standalone
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit d7fb8af3a8be37f12e0149d49280762e2bdb9b16)
-+---
-+ .../tests/int_links_acl.txt | 0
-+ configure.ac | 1 -
-+ libknet/Makefile.am | 2 ++
-+ libknet/tests/Makefile.am | 8 +++++++-
-+ poc-code/Makefile.am | 2 +-
-+ poc-code/access-list/Makefile.am | 22 ----------------------
-+ .../access-list/ipcheck.h => libknet/links_acl.h | 0
-+ .../access-list/ipcheck.c => libknet/links_acl.c | 2 +-
-+ .../tests/int_links_acl.c | 6 +++---
-+ 9 files changed, 14 insertions(+), 29 deletions(-)
-+ rename poc-code/access-list/test_ipcheck.txt => libknet/tests/int_links_acl.txt (100%)
-+ delete mode 100644 poc-code/access-list/Makefile.am
-+ rename poc-code/access-list/ipcheck.h => libknet/links_acl.h (100%)
-+ rename poc-code/access-list/ipcheck.c => libknet/links_acl.c (99%)
-+ rename poc-code/access-list/test_ipcheck.c => libknet/tests/int_links_acl.c (96%)
-+
-+diff --git a/poc-code/access-list/test_ipcheck.txt b/libknet/tests/int_links_acl.txt
-+similarity index 100%
-+rename from poc-code/access-list/test_ipcheck.txt
-+rename to libknet/tests/int_links_acl.txt
-+diff --git a/configure.ac b/configure.ac
-+index 9df6831..30c57f0 100644
-+--- a/configure.ac
-++++ b/configure.ac
-+@@ -463,7 +463,6 @@ AC_CONFIG_FILES([
-+ man/Doxyfile-nozzle
-+ poc-code/Makefile
-+ poc-code/iov-hash/Makefile
-+- poc-code/access-list/Makefile
-+ ])
-+
-+ if test "x$VERSION" = "xUNKNOWN"; then
-+diff --git a/libknet/Makefile.am b/libknet/Makefile.am
-+index 906fd01..4ea42d9 100644
-+--- a/libknet/Makefile.am
-++++ b/libknet/Makefile.am
-+@@ -31,6 +31,7 @@ sources = \
-+ handle.c \
-+ host.c \
-+ links.c \
-++ links_acl.c \
-+ logging.c \
-+ netutils.c \
-+ threads_common.c \
-+@@ -61,6 +62,7 @@ noinst_HEADERS = \
-+ host.h \
-+ internals.h \
-+ links.h \
-++ links_acl.h \
-+ logging.h \
-+ netutils.h \
-+ onwire.h \
-+diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am
-+index c00e624..f74cb04 100644
-+--- a/libknet/tests/Makefile.am
-++++ b/libknet/tests/Makefile.am
-+@@ -13,7 +13,8 @@ include $(top_srcdir)/libknet/tests/api-check.mk
-+
-+ EXTRA_DIST = \
-+ api-test-coverage \
-+- api-check.mk
-++ api-check.mk \
-++ int_links_acl.txt
-+
-+ AM_CPPFLAGS = -I$(top_srcdir)/libknet
-+ AM_CFLAGS += $(PTHREAD_CFLAGS)
-+@@ -40,9 +41,11 @@ fun_checks =
-+ benchmarks = \
-+ knet_bench_test
-+
-++# int_links_acl_test can´t run yet standalone
-+ noinst_PROGRAMS = \
-+ api_knet_handle_new_limit_test \
-+ pckt_test \
-++ int_links_acl_test \
-+ $(benchmarks) \
-+ $(check_PROGRAMS)
-+
-+@@ -64,6 +67,9 @@ check-api-test-coverage:
-+
-+ pckt_test_SOURCES = pckt_test.c
-+
-++int_links_acl_test_SOURCES = int_links_acl.c \
-++ ../links_acl.c
-++
-+ int_timediff_test_SOURCES = int_timediff.c
-+
-+ knet_bench_test_SOURCES = knet_bench.c \
-+diff --git a/poc-code/Makefile.am b/poc-code/Makefile.am
-+index e1b1a73..15d12f7 100644
-+--- a/poc-code/Makefile.am
-++++ b/poc-code/Makefile.am
-+@@ -10,4 +10,4 @@ MAINTAINERCLEANFILES = Makefile.in
-+
-+ include $(top_srcdir)/build-aux/check.mk
-+
-+-SUBDIRS = access-list iov-hash
-++SUBDIRS = iov-hash
-+diff --git a/poc-code/access-list/Makefile.am b/poc-code/access-list/Makefile.am
-+deleted file mode 100644
-+index 80c49c2..0000000
-+--- a/poc-code/access-list/Makefile.am
-++++ /dev/null
-+@@ -1,22 +0,0 @@
-+-#
-+-# Copyright (C) 2016-2019 Red Hat, Inc. All rights reserved.
-+-#
-+-# Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+-#
-+-# This software licensed under GPL-2.0+, LGPL-2.0+
-+-#
-+-
-+-MAINTAINERCLEANFILES = Makefile.in
-+-
-+-include $(top_srcdir)/build-aux/check.mk
-+-
-+-# override global LIBS that pulls in lots of craft we don't need here
-+-LIBS =
-+-
-+-EXTRA_DIST = test_ipcheck.txt
-+-
-+-noinst_PROGRAMS = test_ipcheck
-+-
-+-noinst_HEADERS = ipcheck.h
-+-
-+-test_ipcheck_SOURCES = ipcheck.c test_ipcheck.c
-+diff --git a/poc-code/access-list/ipcheck.h b/libknet/links_acl.h
-+similarity index 100%
-+rename from poc-code/access-list/ipcheck.h
-+rename to libknet/links_acl.h
-+diff --git a/poc-code/access-list/ipcheck.c b/libknet/links_acl.c
-+similarity index 99%
-+rename from poc-code/access-list/ipcheck.c
-+rename to libknet/links_acl.c
-+index 9774a46..e7b5602 100644
-+--- a/poc-code/access-list/ipcheck.c
-++++ b/libknet/links_acl.c
-+@@ -11,7 +11,7 @@
-+ #include <stdint.h>
-+ #include <string.h>
-+ #include <malloc.h>
-+-#include "ipcheck.h"
-++#include "links_acl.h"
-+
-+ struct ip_match_entry {
-+ ipcheck_type_t type;
-+diff --git a/poc-code/access-list/test_ipcheck.c b/libknet/tests/int_links_acl.c
-+similarity index 96%
-+rename from poc-code/access-list/test_ipcheck.c
-+rename to libknet/tests/int_links_acl.c
-+index 46a750b..27ac545 100644
-+--- a/poc-code/access-list/test_ipcheck.c
-++++ b/libknet/tests/int_links_acl.c
-+@@ -14,7 +14,7 @@
-+ #include <string.h>
-+ #include <netdb.h>
-+ #include <malloc.h>
-+-#include "ipcheck.h"
-++#include "links_acl.h"
-+
-+ /* This is a test program .. remember! */
-+ #define BUFLEN 1024
-+@@ -103,9 +103,9 @@ static int load_file(void)
-+
-+ ipcheck_clear();
-+
-+- filterfile = fopen("test_ipcheck.txt", "r");
-++ filterfile = fopen("int_links_acl.txt", "r");
-+ if (!filterfile) {
-+- fprintf(stderr, "Cannot open test_ipcheck.txt\n");
-++ fprintf(stderr, "Cannot open int_links_acl.txt\n");
-+ return 1;
-+ }
-+
-diff --git a/debian/patches/build-bump-soname-to-indicate-new-API-calls.patch b/debian/patches/build-bump-soname-to-indicate-new-API-calls.patch
-new file mode 100644
-index 0000000..a5aabe1
---- /dev/null
-+++ b/debian/patches/build-bump-soname-to-indicate-new-API-calls.patch
-@@ -0,0 +1,23 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 9 May 2019 16:36:07 +0200
-+Subject: [build] bump soname to indicate new API calls
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 460fca5e33d52c560e34b1edf60f350efb6023a5)
-+---
-+ libknet/Makefile.am | 2 +-
-+ 1 file changed, 1 insertion(+), 1 deletion(-)
-+
-+diff --git a/libknet/Makefile.am b/libknet/Makefile.am
-+index 90ddfba..8adcc40 100644
-+--- a/libknet/Makefile.am
-++++ b/libknet/Makefile.am
-+@@ -18,7 +18,7 @@ EXTRA_DIST = $(SYMFILE)
-+ SUBDIRS = . tests
-+
-+ # https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
-+-libversion = 2:0:1
-++libversion = 3:0:2
-+
-+ # override global LIBS that pulls in lots of craft we don't need here
-+ LIBS =
-diff --git a/debian/patches/compress-add-support-for-libzstd.patch b/debian/patches/compress-add-support-for-libzstd.patch
-new file mode 100644
-index 0000000..78b54fb
---- /dev/null
-+++ b/debian/patches/compress-add-support-for-libzstd.patch
-@@ -0,0 +1,342 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 10 Apr 2019 08:40:50 +0200
-+Subject: [compress] add support for libzstd
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 592d0451494e815c4c8c74b914aaff69b640d1a2)
-+---
-+ configure.ac | 2 +
-+ Makefile.am | 5 ++
-+ libknet/Makefile.am | 7 +++
-+ libknet/libknet.h | 1 +
-+ kronosnet.spec.in | 29 +++++++++
-+ libknet/compress.c | 1 +
-+ libknet/compress_zstd.c | 160 ++++++++++++++++++++++++++++++++++++++++++++++++
-+ libknet/logging.c | 1 +
-+ 8 files changed, 206 insertions(+)
-+ create mode 100644 libknet/compress_zstd.c
-+
-+diff --git a/configure.ac b/configure.ac
-+index 30c57f0..501053e 100644
-+--- a/configure.ac
-++++ b/configure.ac
-+@@ -124,6 +124,8 @@ AC_ARG_ENABLE([compress-all],
-+ [AS_HELP_STRING([--disable-compress-all],[disable libknet all compress modules support])],,
-+ [ enable_compress_all="yes" ])
-+
-++KNET_OPTION_DEFINES([zstd],[compress],[PKG_CHECK_MODULES([libzstd], [libzstd])])
-++
-+ KNET_OPTION_DEFINES([zlib],[compress],[PKG_CHECK_MODULES([zlib], [zlib])])
-+ KNET_OPTION_DEFINES([lz4],[compress],[PKG_CHECK_MODULES([liblz4], [liblz4])])
-+ KNET_OPTION_DEFINES([lzo2],[compress],[
-+diff --git a/Makefile.am b/Makefile.am
-+index 24a13a6..82cb1f5 100644
-+--- a/Makefile.am
-++++ b/Makefile.am
-+@@ -138,6 +138,11 @@ if BUILD_COMPRESS_BZIP2
-+ else
-+ sed -i -e "s#@bzip2@#bcond_with#g" $@-t
-+ endif
-++if BUILD_COMPRESS_ZSTD
-++ sed -i -e "s#@zstd@#bcond_without#g" $@-t
-++else
-++ sed -i -e "s#@zstd@#bcond_with#g" $@-t
-++endif
-+ if BUILD_KRONOSNETD
-+ sed -i -e "s#@kronosnetd@#bcond_without#g" $@-t
-+ else
-+diff --git a/libknet/Makefile.am b/libknet/Makefile.am
-+index 0be4fff..90ddfba 100644
-+--- a/libknet/Makefile.am
-++++ b/libknet/Makefile.am
-+@@ -103,6 +103,13 @@ pkglib_LTLIBRARIES =
-+ # MODULE_LDFLAGS would mean a target-specific variable for Automake
-+ MODULELDFLAGS = $(AM_LDFLAGS) -module -avoid-version -export-dynamic
-+
-++if BUILD_COMPRESS_ZSTD
-++pkglib_LTLIBRARIES += compress_zstd.la
-++compress_zstd_la_LDFLAGS = $(MODULELDFLAGS)
-++compress_zstd_la_CFLAGS = $(AM_CFLAGS) $(libzstd_CFLAGS)
-++compress_zstd_la_LIBADD = $(libzstd_LIBS)
-++endif
-++
-+ if BUILD_COMPRESS_ZLIB
-+ pkglib_LTLIBRARIES += compress_zlib.la
-+ compress_zlib_la_LDFLAGS = $(MODULELDFLAGS)
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index d16eb5d..3098eab 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -2053,6 +2053,7 @@ int knet_link_get_status(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ #define KNET_SUB_LZO2COMP 73 /* compress_lzo.c */
-+ #define KNET_SUB_LZMACOMP 74 /* compress_lzma.c */
-+ #define KNET_SUB_BZIP2COMP 75 /* compress_bzip2.c */
-++#define KNET_SUB_ZSTDCOMP 76 /* compress_zstd.c */
-+
-+ #define KNET_SUB_UNKNOWN UINT8_MAX - 1
-+ #define KNET_MAX_SUBSYSTEMS UINT8_MAX
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index 2d4d059..442f3ae 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -24,6 +24,7 @@
-+ %@lzo2@ lzo2
-+ %@lzma@ lzma
-+ %@bzip2@ bzip2
-++%@zstd@ zstd
-+ %@kronosnetd@ kronosnetd
-+ %@libnozzle@ libnozzle
-+ %@runautogen@ runautogen
-+@@ -60,6 +61,9 @@
-+ %if %{with bzip2}
-+ %global buildcompressbzip2 1
-+ %endif
-++%if %{with zstd}
-++%global buildcompresszstd 1
-++%endif
-+ %if %{with libnozzle}
-+ %global buildlibnozzle 1
-+ %endif
-+@@ -123,6 +127,9 @@ BuildRequires: xz-devel
-+ %if %{defined buildcompressbzip2}
-+ BuildRequires: /usr/include/bzlib.h
-+ %endif
-++%if %{defined buildcompresszstd}
-++BuildRequires: libzstd-devel
-++%endif
-+ %if %{defined buildkronosnetd}
-+ BuildRequires: pam-devel
-+ %endif
-+@@ -194,6 +201,11 @@ BuildRequires: libtool
-+ %else
-+ --disable-compress-bzip2 \
-+ %endif
-++%if %{defined buildcompresszstd}
-++ --enable-compress-zstd \
-++%else
-++ --disable-compress-zstd \
-++%endif
-+ %if %{defined buildkronosnetd}
-+ --enable-kronosnetd \
-+ %endif
-+@@ -490,6 +502,20 @@ Requires: libknet1 = %{version}-%{release}
-+ %{_libdir}/kronosnet/compress_bzip2.so
-+ %endif
-+
-++%if %{defined buildcompresszstd}
-++%package -n libknet1-compress-zstd-plugin
-++Group: System Environment/Libraries
-++Summary: libknet1 zstd support
-++Requires: libknet1 = %{version}-%{release}
-++
-++%description -n libknet1-compress-zstd-plugin
-++ zstd compression support for libknet1.
-++
-++%files -n libknet1-compress-zstd-plugin
-++%defattr(-,root,root,-)
-++%{_libdir}/kronosnet/compress_zstd.so
-++%endif
-++
-+ %package -n libknet1-crypto-plugins-all
-+ Group: System Environment/Libraries
-+ Summary: libknet1 crypto plugins meta package
-+@@ -523,6 +549,9 @@ Requires: libknet1-compress-lzma-plugin
-+ %if %{defined buildcompressbzip2}
-+ Requires: libknet1-compress-bzip2-plugin
-+ %endif
-++%if %{defined buildcompresszstd}
-++Requires: libknet1-compress-zstd-plugin
-++%endif
-+
-+ %description -n libknet1-compress-plugins-all
-+ meta package to install all of libknet1 compress plugins
-+diff --git a/libknet/compress.c b/libknet/compress.c
-+index 278ff44..7eab454 100644
-+--- a/libknet/compress.c
-++++ b/libknet/compress.c
-+@@ -40,6 +40,7 @@ static compress_model_t compress_modules_cmds[] = {
-+ { "lzo2" , 4, WITH_COMPRESS_LZO2 , 0, NULL },
-+ { "lzma" , 5, WITH_COMPRESS_LZMA , 0, NULL },
-+ { "bzip2", 6, WITH_COMPRESS_BZIP2, 0, NULL },
-++ { "zstd" , 7, WITH_COMPRESS_ZSTD, 0, NULL },
-+ { NULL, 255, 0, 0, NULL }
-+ };
-+
-+diff --git a/libknet/compress_zstd.c b/libknet/compress_zstd.c
-+new file mode 100644
-+index 0000000..6f9b499
-+--- /dev/null
-++++ b/libknet/compress_zstd.c
-+@@ -0,0 +1,160 @@
-++/*
-++ * Copyright (C) 2017-2019 Red Hat, Inc. All rights reserved.
-++ *
-++ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-++ *
-++ * This software licensed under GPL-2.0+, LGPL-2.0+
-++ */
-++#define KNET_MODULE
-++
-++#include "config.h"
-++
-++#include <errno.h>
-++#include <stdlib.h>
-++#include <string.h>
-++#include <zstd.h>
-++
-++#include "logging.h"
-++#include "compress_model.h"
-++
-++struct zstd_ctx {
-++ ZSTD_CCtx* cctx;
-++ ZSTD_DCtx* dctx;
-++};
-++
-++static int zstd_is_init(
-++ knet_handle_t knet_h,
-++ int method_idx)
-++{
-++ if (knet_h->compress_int_data[method_idx]) {
-++ return 1;
-++ }
-++ return 0;
-++}
-++
-++static void zstd_fini(
-++ knet_handle_t knet_h,
-++ int method_idx)
-++{
-++ struct zstd_ctx *zstd_ctx = knet_h->compress_int_data[knet_h->compress_model];
-++
-++ if (zstd_ctx) {
-++ if (zstd_ctx->cctx) {
-++ ZSTD_freeCCtx(zstd_ctx->cctx);
-++ }
-++ if (zstd_ctx->dctx) {
-++ ZSTD_freeDCtx(zstd_ctx->dctx);
-++ }
-++ free(knet_h->compress_int_data[method_idx]);
-++ knet_h->compress_int_data[method_idx] = NULL;
-++ }
-++ return;
-++}
-++
-++static int zstd_init(
-++ knet_handle_t knet_h,
-++ int method_idx)
-++{
-++ struct zstd_ctx *zstd_ctx;
-++ int err = 0;
-++
-++ if (!knet_h->compress_int_data[method_idx]) {
-++ zstd_ctx = malloc(sizeof(struct zstd_ctx));
-++ if (!zstd_ctx) {
-++ errno = ENOMEM;
-++ return -1;
-++ }
-++ memset(zstd_ctx, 0, sizeof(struct zstd_ctx));
-++
-++ zstd_ctx->cctx = ZSTD_createCCtx();
-++ if (!zstd_ctx->cctx) {
-++ log_err(knet_h, KNET_SUB_ZSTDCOMP, "Unable to create compression context");
-++ err = -1;
-++ goto out_err;
-++ }
-++
-++ zstd_ctx->dctx = ZSTD_createDCtx();
-++ if (!zstd_ctx->dctx) {
-++ log_err(knet_h, KNET_SUB_ZSTDCOMP, "Unable to create decompression context");
-++ err = -1;
-++ goto out_err;
-++ }
-++
-++ knet_h->compress_int_data[method_idx] = zstd_ctx;
-++ }
-++
-++out_err:
-++ if (err) {
-++ zstd_fini(knet_h, method_idx);
-++ }
-++ return err;
-++}
-++
-++static int zstd_compress(
-++ knet_handle_t knet_h,
-++ const unsigned char *buf_in,
-++ const ssize_t buf_in_len,
-++ unsigned char *buf_out,
-++ ssize_t *buf_out_len)
-++{
-++ struct zstd_ctx *zstd_ctx = knet_h->compress_int_data[knet_h->compress_model];
-++ size_t compress_size;
-++
-++ compress_size = ZSTD_compressCCtx(zstd_ctx->cctx,
-++ buf_out, *buf_out_len,
-++ buf_in, buf_in_len,
-++ knet_h->compress_level);
-++
-++ if (ZSTD_isError(compress_size)) {
-++ log_err(knet_h, KNET_SUB_ZSTDCOMP, "error compressing packet: %s", ZSTD_getErrorName(compress_size));
-++ /*
-++ * ZSTD has lots of internal errors that are not easy to map
-++ * to standard errnos. Use a generic one for now
-++ */
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ *buf_out_len = compress_size;
-++
-++ return 0;
-++}
-++
-++static int zstd_decompress(
-++ knet_handle_t knet_h,
-++ const unsigned char *buf_in,
-++ const ssize_t buf_in_len,
-++ unsigned char *buf_out,
-++ ssize_t *buf_out_len)
-++{
-++ struct zstd_ctx *zstd_ctx = knet_h->compress_int_data[knet_h->compress_model];
-++ size_t decompress_size;
-++
-++ decompress_size = ZSTD_decompressDCtx(zstd_ctx->dctx,
-++ buf_out, *buf_out_len,
-++ buf_in, buf_in_len);
-++
-++ if (ZSTD_isError(decompress_size)) {
-++ log_err(knet_h, KNET_SUB_ZSTDCOMP, "error decompressing packet: %s", ZSTD_getErrorName(decompress_size));
-++ /*
-++ * ZSTD has lots of internal errors that are not easy to map
-++ * to standard errnos. Use a generic one for now
-++ */
-++ errno = EINVAL;
-++ return -1;
-++ }
-++
-++ *buf_out_len = decompress_size;
-++
-++ return 0;
-++}
-++
-++compress_ops_t compress_model = {
-++ KNET_COMPRESS_MODEL_ABI,
-++ zstd_is_init,
-++ zstd_init,
-++ zstd_fini,
-++ NULL,
-++ zstd_compress,
-++ zstd_decompress
-++};
-+diff --git a/libknet/logging.c b/libknet/logging.c
-+index 98bcfd1..5c91257 100644
-+--- a/libknet/logging.c
-++++ b/libknet/logging.c
-+@@ -47,6 +47,7 @@ static struct pretty_names subsystem_names[] =
-+ { "lzo2comp", KNET_SUB_LZO2COMP },
-+ { "lzmacomp", KNET_SUB_LZMACOMP },
-+ { "bzip2comp", KNET_SUB_BZIP2COMP },
-++ { "zstdcomp", KNET_SUB_ZSTDCOMP },
-+ { "unknown", KNET_SUB_UNKNOWN } /* unknown MUST always be last in this array */
-+ };
-+
-diff --git a/debian/patches/crypto-fix-openssl1.0-initialization-code.patch b/debian/patches/crypto-fix-openssl1.0-initialization-code.patch
-new file mode 100644
-index 0000000..e01d382
---- /dev/null
-+++ b/debian/patches/crypto-fix-openssl1.0-initialization-code.patch
-@@ -0,0 +1,98 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 28 May 2019 06:14:29 +0200
-+Subject: [crypto] fix openssl1.0 initialization code
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 0b20488500e8d13f17b7f584bdc7a301f44dbfe1)
-+---
-+ libknet/crypto_openssl.c | 28 ++++++++++++++++------------
-+ 1 file changed, 16 insertions(+), 12 deletions(-)
-+
-+diff --git a/libknet/crypto_openssl.c b/libknet/crypto_openssl.c
-+index 5c7a74a..26acea8 100644
-+--- a/libknet/crypto_openssl.c
-++++ b/libknet/crypto_openssl.c
-+@@ -12,6 +12,7 @@
-+ #include <string.h>
-+ #include <errno.h>
-+ #include <dlfcn.h>
-++#include <stdlib.h>
-+ #include <openssl/conf.h>
-+ #include <openssl/evp.h>
-+ #include <openssl/hmac.h>
-+@@ -43,6 +44,8 @@ struct opensslcrypto_instance {
-+ const EVP_MD *crypto_hash_type;
-+ };
-+
-++static int openssl_is_init = 0;
-++
-+ /*
-+ * crypt/decrypt functions openssl1.0
-+ */
-+@@ -438,6 +441,11 @@ static void openssl_internal_lock_cleanup(void)
-+ return;
-+ }
-+
-++static void openssl_atexit_handler(void)
-++{
-++ openssl_internal_lock_cleanup();
-++}
-++
-+ static int openssl_internal_lock_setup(void)
-+ {
-+ int savederrno = 0, err = 0;
-+@@ -461,6 +469,9 @@ static int openssl_internal_lock_setup(void)
-+ CRYPTO_set_id_callback((void *)openssl_internal_thread_id);
-+ CRYPTO_set_locking_callback((void *)&openssl_internal_locking_callback);
-+
-++ if (atexit(openssl_atexit_handler)) {
-++ err = -1;
-++ }
-+ out:
-+ if (err) {
-+ openssl_internal_lock_cleanup();
-+@@ -477,9 +488,6 @@ static void opensslcrypto_fini(
-+ struct opensslcrypto_instance *opensslcrypto_instance = crypto_instance->model_instance;
-+
-+ if (opensslcrypto_instance) {
-+-#ifdef BUILDCRYPTOOPENSSL10
-+- openssl_internal_lock_cleanup();
-+-#endif
-+ if (opensslcrypto_instance->private_key) {
-+ free(opensslcrypto_instance->private_key);
-+ opensslcrypto_instance->private_key = NULL;
-+@@ -496,7 +504,6 @@ static int opensslcrypto_init(
-+ struct crypto_instance *crypto_instance,
-+ struct knet_handle_crypto_cfg *knet_handle_crypto_cfg)
-+ {
-+- static int openssl_is_init = 0;
-+ struct opensslcrypto_instance *opensslcrypto_instance = NULL;
-+ int savederrno;
-+
-+@@ -509,6 +516,11 @@ static int opensslcrypto_init(
-+ #ifdef BUILDCRYPTOOPENSSL10
-+ ERR_load_crypto_strings();
-+ OPENSSL_add_all_algorithms_noconf();
-++ if (openssl_internal_lock_setup() < 0) {
-++ log_err(knet_h, KNET_SUB_OPENSSLCRYPTO, "Unable to init openssl");
-++ errno = EAGAIN;
-++ return -1;
-++ }
-+ #endif
-+ #ifdef BUILDCRYPTOOPENSSL11
-+ if (!OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
-+@@ -521,14 +533,6 @@ static int opensslcrypto_init(
-+ openssl_is_init = 1;
-+ }
-+
-+-#ifdef BUILDCRYPTOOPENSSL10
-+- if (openssl_internal_lock_setup() < 0) {
-+- log_err(knet_h, KNET_SUB_OPENSSLCRYPTO, "Unable to init openssl");
-+- errno = EAGAIN;
-+- return -1;
-+- }
-+-#endif
-+-
-+ crypto_instance->model_instance = malloc(sizeof(struct opensslcrypto_instance));
-+ if (!crypto_instance->model_instance) {
-+ log_err(knet_h, KNET_SUB_OPENSSLCRYPTO, "Unable to allocate memory for openssl model instance");
-diff --git a/debian/patches/crypto-hide-errors-generated-by-openssl-1.1.1c.patch b/debian/patches/crypto-hide-errors-generated-by-openssl-1.1.1c.patch
-new file mode 100644
-index 0000000..5818833
---- /dev/null
-+++ b/debian/patches/crypto-hide-errors-generated-by-openssl-1.1.1c.patch
-@@ -0,0 +1,137 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 11 Jun 2019 11:54:08 +0200
-+Subject: [crypto] hide errors generated by openssl 1.1.1c
-+
-+see also:
-+https://github.com/kronosnet/kronosnet/issues/226
-+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930061#12
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 5333de6a056af75d12eb0a2cc2e46e7b2bbf9082)
-+---
-+ build-aux/knet_valgrind_memcheck.supp | 115 ++++++++++++++++++++++++++++++++++
-+ 1 file changed, 115 insertions(+)
-+
-+diff --git a/build-aux/knet_valgrind_memcheck.supp b/build-aux/knet_valgrind_memcheck.supp
-+index a34ab93..92eabba 100644
-+--- a/build-aux/knet_valgrind_memcheck.supp
-++++ b/build-aux/knet_valgrind_memcheck.supp
-+@@ -612,3 +612,118 @@
-+ fun:malloc
-+ fun:dl_open_worker
-+ }
-++{
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Cond
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_generate
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_instantiate
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_get0_public
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:encrypt_openssl
-++ fun:opensslcrypto_encrypt_and_signv
-++ fun:opensslcrypto_encrypt_and_sign
-++ fun:_handle_check_each
-++ fun:_send_pings
-++ fun:_handle_heartbt_thread
-++ fun:start_thread
-++}
-++{
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Cond
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_generate
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_instantiate
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_get0_public
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:encrypt_openssl
-++ fun:opensslcrypto_encrypt_and_signv
-++ fun:opensslcrypto_encrypt_and_sign
-++ fun:_handle_check_each
-++ fun:_send_pings
-++ fun:_handle_heartbt_thread
-++}
-++{
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Cond
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_generate
-++ fun:RAND_DRBG_bytes
-++ fun:encrypt_openssl
-++ fun:opensslcrypto_encrypt_and_signv
-++ fun:opensslcrypto_encrypt_and_sign
-++ fun:_handle_check_each
-++ fun:_send_pings
-++ fun:_handle_heartbt_thread
-++ fun:start_thread
-++ fun:clone
-++}
-++{
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Cond
-++ obj:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-++ fun:RAND_DRBG_generate
-++ fun:RAND_DRBG_bytes
-++ fun:encrypt_openssl
-++ fun:opensslcrypto_encrypt_and_signv
-++ fun:opensslcrypto_encrypt_and_sign
-++ fun:_handle_check_each
-++ fun:_send_pings
-++ fun:_handle_heartbt_thread
-++ fun:start_thread
-++ fun:clone
-++}
-++{
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Param
-++ socketcall.sendto(msg)
-++ fun:sendto
-++ fun:_handle_check_each
-++ fun:_send_pings
-++ fun:_handle_heartbt_thread
-++ fun:start_thread
-++ fun:clone
-++}
-++{
-++
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Param
-++ socketcall.sendto(msg)
-++ fun:sendto
-++ fun:_parse_recv_from_links
-++ fun:_handle_recv_from_links
-++ fun:_handle_recv_from_links_thread
-++ fun:start_thread
-++ fun:clone
-++}
-++{
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Param
-++ socketcall.sendto(msg)
-++ fun:sendto
-++ fun:_handle_check_link_pmtud
-++ fun:_handle_check_pmtud
-++ fun:_handle_pmtud_link_thread
-++ fun:start_thread
-++ fun:clone
-++}
-++{
-++ openssl 1.1.1c missing fix from master
-++ Memcheck:Param
-++ sendmsg(msg.msg_iov[0])
-++ fun:__libc_sendmsg
-++ fun:sendmsg
-++ fun:_sendmmsg
-++ fun:_dispatch_to_links
-++ fun:_parse_recv_from_sock
-++ fun:_handle_send_to_links
-++ fun:_handle_send_to_links_thread
-++ fun:start_thread
-++ fun:clone
-++}
-diff --git a/debian/patches/crypto-make-sure-to-clear-all-security-info-on-crypto_fin.patch b/debian/patches/crypto-make-sure-to-clear-all-security-info-on-crypto_fin.patch
-new file mode 100644
-index 0000000..0d373a8
---- /dev/null
-+++ b/debian/patches/crypto-make-sure-to-clear-all-security-info-on-crypto_fin.patch
-@@ -0,0 +1,51 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Mon, 27 May 2019 12:25:55 +0200
-+Subject: [crypto] make sure to clear all security info on crypto_fini
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 6888d04108a7eff36f4c562d464190e9886a073a)
-+---
-+ libknet/crypto.c | 4 ++++
-+ libknet/crypto_nss.c | 1 -
-+ libknet/crypto_openssl.c | 1 -
-+ 3 files changed, 4 insertions(+), 2 deletions(-)
-+
-+diff --git a/libknet/crypto.c b/libknet/crypto.c
-+index 41d67c9..5d39048 100644
-+--- a/libknet/crypto.c
-++++ b/libknet/crypto.c
-+@@ -178,6 +178,10 @@ void crypto_fini(
-+ crypto_modules_cmds[model].ops->fini(knet_h);
-+ }
-+ free(knet_h->crypto_instance);
-++ knet_h->sec_header_size = 0;
-++ knet_h->sec_block_size = 0;
-++ knet_h->sec_hash_size = 0;
-++ knet_h->sec_salt_size = 0;
-+ knet_h->crypto_instance = NULL;
-+ }
-+
-+diff --git a/libknet/crypto_nss.c b/libknet/crypto_nss.c
-+index 640b560..cc83827 100644
-+--- a/libknet/crypto_nss.c
-++++ b/libknet/crypto_nss.c
-+@@ -740,7 +740,6 @@ static void nsscrypto_fini(
-+ }
-+ free(nsscrypto_instance);
-+ knet_h->crypto_instance->model_instance = NULL;
-+- knet_h->sec_header_size = 0;
-+ }
-+
-+ return;
-+diff --git a/libknet/crypto_openssl.c b/libknet/crypto_openssl.c
-+index 03d1014..73058cc 100644
-+--- a/libknet/crypto_openssl.c
-++++ b/libknet/crypto_openssl.c
-+@@ -485,7 +485,6 @@ static void opensslcrypto_fini(
-+ }
-+ free(opensslcrypto_instance);
-+ knet_h->crypto_instance->model_instance = NULL;
-+- knet_h->sec_header_size = 0;
-+ }
-+
-+ return;
-diff --git a/debian/patches/crypto-make-sure-to-trigger-a-PMTUd-rerun-on-each-good-cr.patch b/debian/patches/crypto-make-sure-to-trigger-a-PMTUd-rerun-on-each-good-cr.patch
-new file mode 100644
-index 0000000..8c99023
---- /dev/null
-+++ b/debian/patches/crypto-make-sure-to-trigger-a-PMTUd-rerun-on-each-good-cr.patch
-@@ -0,0 +1,25 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Mon, 27 May 2019 12:42:33 +0200
-+Subject: [crypto] make sure to trigger a PMTUd rerun on each good crypto
-+ config change
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit c9edaa7b632ee853351730ad4dcad7471919bb91)
-+---
-+ libknet/handle.c | 3 +++
-+ 1 file changed, 3 insertions(+)
-+
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index fd26bea..7009cc3 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -1408,6 +1408,9 @@ int knet_handle_crypto(knet_handle_t knet_h, struct knet_handle_crypto_cfg *knet
-+ }
-+
-+ exit_unlock:
-++ if (!err) {
-++ force_pmtud_run(knet_h, KNET_SUB_CRYPTO);
-++ }
-+ pthread_rwlock_unlock(&knet_h->global_rwlock);
-+ errno = err ? savederrno : 0;
-+ return err;
-diff --git a/debian/patches/crypto-openssl-drop-calls-to-RAND_seed-as-they-don-t-real.patch b/debian/patches/crypto-openssl-drop-calls-to-RAND_seed-as-they-don-t-real.patch
-new file mode 100644
-index 0000000..cf918e1
---- /dev/null
-+++ b/debian/patches/crypto-openssl-drop-calls-to-RAND_seed-as-they-don-t-real.patch
-@@ -0,0 +1,65 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 11 Jun 2019 09:26:02 +0200
-+Subject: =?utf-8?q?=5Bcrypto=5D_openssl=3A_drop_calls_to_RAND=5Fseed_as_th?=
-+ =?utf-8?q?ey_don=C2=B4t_really_help_RNG?=
-+
-+See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930061#12 for reference
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit a3c5adee1d30a751e76386ef31c1a817595bfd1b)
-+---
-+ libknet/crypto_openssl.c | 20 --------------------
-+ 1 file changed, 20 deletions(-)
-+
-+diff --git a/libknet/crypto_openssl.c b/libknet/crypto_openssl.c
-+index 615a9e5..999ed93 100644
-+--- a/libknet/crypto_openssl.c
-++++ b/libknet/crypto_openssl.c
-+@@ -69,11 +69,6 @@ static int encrypt_openssl(
-+
-+ EVP_CIPHER_CTX_init(&ctx);
-+
-+- /*
-+- * contribute to PRNG for each packet we send/receive
-+- */
-+- RAND_seed((unsigned char *)iov[iovcnt - 1].iov_base, iov[iovcnt - 1].iov_len);
-+-
-+ if (!RAND_bytes(salt, SALT_SIZE)) {
-+ ERR_error_string_n(ERR_get_error(), sslerr, sizeof(sslerr));
-+ log_err(knet_h, KNET_SUB_OPENSSLCRYPTO, "Unable to get random salt data: %s", sslerr);
-+@@ -130,11 +125,6 @@ static int decrypt_openssl (
-+
-+ EVP_CIPHER_CTX_init(&ctx);
-+
-+- /*
-+- * contribute to PRNG for each packet we send/receive
-+- */
-+- RAND_seed(buf_in, buf_in_len);
-+-
-+ /*
-+ * add warning re keylength
-+ */
-+@@ -181,11 +171,6 @@ static int encrypt_openssl(
-+
-+ ctx = EVP_CIPHER_CTX_new();
-+
-+- /*
-+- * contribute to PRNG for each packet we send/receive
-+- */
-+- RAND_seed((unsigned char *)iov[iovcnt - 1].iov_base, iov[iovcnt - 1].iov_len);
-+-
-+ if (!RAND_bytes(salt, SALT_SIZE)) {
-+ ERR_error_string_n(ERR_get_error(), sslerr, sizeof(sslerr));
-+ log_err(knet_h, KNET_SUB_OPENSSLCRYPTO, "Unable to get random salt data: %s", sslerr);
-+@@ -248,11 +233,6 @@ static int decrypt_openssl (
-+
-+ ctx = EVP_CIPHER_CTX_new();
-+
-+- /*
-+- * contribute to PRNG for each packet we send/receive
-+- */
-+- RAND_seed(buf_in, buf_in_len);
-+-
-+ /*
-+ * add warning re keylength
-+ */
-diff --git a/debian/patches/crypto-openssl-error-strings-release.patch b/debian/patches/crypto-openssl-error-strings-release.patch
-new file mode 100644
-index 0000000..6bcd03a
---- /dev/null
-+++ b/debian/patches/crypto-openssl-error-strings-release.patch
-@@ -0,0 +1,28 @@
-+From: yuan ren <yren at suse.com>
-+Date: Thu, 6 Jun 2019 13:46:01 +0800
-+Subject: [crypto]openssl error strings release
-+
-+In versions prior to OpenSSL 1.1.0, ERR_free_strings() releases
-+any resources created by ERR_load_crypto_strings.
-+
-+Signed-off-by: yuan ren <yren at suse.com>
-+(cherry picked from commit 80b7d93723e779b914f73ec2e8cd2ac632972eda)
-+---
-+ libknet/crypto_openssl.c | 4 ++++
-+ 1 file changed, 4 insertions(+)
-+
-+diff --git a/libknet/crypto_openssl.c b/libknet/crypto_openssl.c
-+index 26acea8..615a9e5 100644
-+--- a/libknet/crypto_openssl.c
-++++ b/libknet/crypto_openssl.c
-+@@ -496,6 +496,10 @@ static void opensslcrypto_fini(
-+ crypto_instance->model_instance = NULL;
-+ }
-+
-++#ifdef BUILDCRYPTOOPENSSL10
-++ ERR_free_strings();
-++#endif
-++
-+ return;
-+ }
-+
-diff --git a/debian/patches/crypto-rework-knet_handle_crypto-external-API-to-be-more-.patch b/debian/patches/crypto-rework-knet_handle_crypto-external-API-to-be-more-.patch
-new file mode 100644
-index 0000000..a555595
---- /dev/null
-+++ b/debian/patches/crypto-rework-knet_handle_crypto-external-API-to-be-more-.patch
-@@ -0,0 +1,598 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 28 May 2019 05:24:47 +0200
-+Subject: [crypto] rework knet_handle_crypto external API to be more solid
-+
-+the API was rather weak and could potentially leave traffic uncrypted
-+in case of certain, corner case, failures.
-+
-+this patch is a subset of a bigger rework of the crypto layer that
-+will in future allow runtime reconfiguration without traffic disruption
-+of the crypto config.
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 50b998f37c9285bf334eb578319030c06af141e0)
-+---
-+ libknet/crypto_model.h | 10 +++-
-+ libknet/libknet.h | 4 +-
-+ libknet/crypto.c | 63 ++++++++++++++--------
-+ libknet/crypto_nss.c | 56 +++++++++++---------
-+ libknet/crypto_openssl.c | 30 ++++++-----
-+ libknet/handle.c | 3 +-
-+ libknet/tests/api_knet_handle_crypto.c | 96 +++++++++++++++++++++++++++++++++-
-+ 7 files changed, 190 insertions(+), 72 deletions(-)
-+
-+diff --git a/libknet/crypto_model.h b/libknet/crypto_model.h
-+index f11299a..9bb4f17 100644
-+--- a/libknet/crypto_model.h
-++++ b/libknet/crypto_model.h
-+@@ -14,9 +14,13 @@
-+ struct crypto_instance {
-+ int model;
-+ void *model_instance;
-++ size_t sec_header_size;
-++ size_t sec_block_size;
-++ size_t sec_hash_size;
-++ size_t sec_salt_size;
-+ };
-+
-+-#define KNET_CRYPTO_MODEL_ABI 1
-++#define KNET_CRYPTO_MODEL_ABI 2
-+
-+ /*
-+ * see compress_model.h for explanation of the various lib related functions
-+@@ -24,8 +28,10 @@ struct crypto_instance {
-+ typedef struct {
-+ uint8_t abi_ver;
-+ int (*init) (knet_handle_t knet_h,
-++ struct crypto_instance *crypto_instance,
-+ struct knet_handle_crypto_cfg *knet_handle_crypto_cfg);
-+- void (*fini) (knet_handle_t knet_h);
-++ void (*fini) (knet_handle_t knet_h,
-++ struct crypto_instance *crypto_instance);
-+ int (*crypt) (knet_handle_t knet_h,
-+ const unsigned char *buf_in,
-+ const ssize_t buf_in_len,
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 183c92d..85c06cc 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -700,9 +700,7 @@ struct knet_handle_crypto_cfg {
-+ * 1) failure to obtain locking
-+ * 2) errors to initializing the crypto level.
-+ * This can happen even in subsequent calls to knet_handle_crypto.
-+- * A failure in crypto init, might leave your traffic unencrypted!
-+- * It's best to stop data forwarding (see knet_handle_setfwd(3)), change crypto config,
-+- * start forward again.
-++ * A failure in crypto init will restore the previous crypto configuration.
-+ *
-+ * @return
-+ * knet_handle_crypto returns:
-+diff --git a/libknet/crypto.c b/libknet/crypto.c
-+index 5d39048..6c340f5 100644
-+--- a/libknet/crypto.c
-++++ b/libknet/crypto.c
-+@@ -80,8 +80,11 @@ int crypto_init(
-+ knet_handle_t knet_h,
-+ struct knet_handle_crypto_cfg *knet_handle_crypto_cfg)
-+ {
-+- int savederrno = 0;
-++ int err = 0, savederrno = 0;
-+ int model = 0;
-++ struct crypto_instance *current = NULL, *new = NULL;
-++
-++ current = knet_h->crypto_instance;
-+
-+ model = crypto_get_model(knet_handle_crypto_cfg->crypto_model);
-+ if (model < 0) {
-+@@ -105,16 +108,18 @@ int crypto_init(
-+ crypto_modules_cmds[model].ops = load_module (knet_h, "crypto", crypto_modules_cmds[model].model_name);
-+ if (!crypto_modules_cmds[model].ops) {
-+ savederrno = errno;
-++ err = -1;
-+ log_err(knet_h, KNET_SUB_CRYPTO, "Unable to load %s lib", crypto_modules_cmds[model].model_name);
-+- goto out_err;
-++ goto out;
-+ }
-+ if (crypto_modules_cmds[model].ops->abi_ver != KNET_CRYPTO_MODEL_ABI) {
-++ savederrno = EINVAL;
-++ err = -1;
-+ log_err(knet_h, KNET_SUB_CRYPTO,
-+ "ABI mismatch loading module %s. knet ver: %d, module ver: %d",
-+ crypto_modules_cmds[model].model_name, KNET_CRYPTO_MODEL_ABI,
-+ crypto_modules_cmds[model].ops->abi_ver);
-+- savederrno = EINVAL;
-+- goto out_err;
-++ goto out;
-+ }
-+ crypto_modules_cmds[model].loaded = 1;
-+ }
-+@@ -125,12 +130,13 @@ int crypto_init(
-+ knet_handle_crypto_cfg->crypto_cipher_type,
-+ knet_handle_crypto_cfg->crypto_hash_type);
-+
-+- knet_h->crypto_instance = malloc(sizeof(struct crypto_instance));
-++ new = malloc(sizeof(struct crypto_instance));
-+
-+- if (!knet_h->crypto_instance) {
-+- log_err(knet_h, KNET_SUB_CRYPTO, "Unable to allocate memory for crypto instance");
-++ if (!new) {
-+ savederrno = ENOMEM;
-+- goto out_err;
-++ err = -1;
-++ log_err(knet_h, KNET_SUB_CRYPTO, "Unable to allocate memory for crypto instance");
-++ goto out;
-+ }
-+
-+ /*
-+@@ -138,32 +144,44 @@ int crypto_init(
-+ * it will clean everything by itself.
-+ * crypto_modules_cmds.ops->fini is not invoked on error.
-+ */
-+- knet_h->crypto_instance->model = model;
-+- if (crypto_modules_cmds[knet_h->crypto_instance->model].ops->init(knet_h, knet_handle_crypto_cfg)) {
-++ new->model = model;
-++ if (crypto_modules_cmds[model].ops->init(knet_h, new, knet_handle_crypto_cfg)) {
-+ savederrno = errno;
-+- goto out_err;
-++ err = -1;
-++ goto out;
-+ }
-+
-+ log_debug(knet_h, KNET_SUB_CRYPTO, "security network overhead: %zu", knet_h->sec_header_size);
-+- pthread_rwlock_unlock(&shlib_rwlock);
-+- return 0;
-+
-+-out_err:
-+- if (knet_h->crypto_instance) {
-+- free(knet_h->crypto_instance);
-+- knet_h->crypto_instance = NULL;
-++out:
-++ if (!err) {
-++ knet_h->crypto_instance = new;
-++ knet_h->sec_header_size = new->sec_header_size;
-++ knet_h->sec_block_size = new->sec_block_size;
-++ knet_h->sec_hash_size = new->sec_hash_size;
-++ knet_h->sec_salt_size = new->sec_salt_size;
-++
-++ if (current) {
-++ if (crypto_modules_cmds[current->model].ops->fini != NULL) {
-++ crypto_modules_cmds[current->model].ops->fini(knet_h, current);
-++ }
-++ free(current);
-++ }
-++ } else {
-++ if (new) {
-++ free(new);
-++ }
-+ }
-+
-+ pthread_rwlock_unlock(&shlib_rwlock);
-+- errno = savederrno;
-+- return -1;
-++ errno = err ? savederrno : 0;
-++ return err;
-+ }
-+
-+ void crypto_fini(
-+ knet_handle_t knet_h)
-+ {
-+ int savederrno = 0;
-+- int model = 0;
-+
-+ savederrno = pthread_rwlock_wrlock(&shlib_rwlock);
-+ if (savederrno) {
-+@@ -173,9 +191,8 @@ void crypto_fini(
-+ }
-+
-+ if (knet_h->crypto_instance) {
-+- model = knet_h->crypto_instance->model;
-+- if (crypto_modules_cmds[model].ops->fini != NULL) {
-+- crypto_modules_cmds[model].ops->fini(knet_h);
-++ if (crypto_modules_cmds[knet_h->crypto_instance->model].ops->fini != NULL) {
-++ crypto_modules_cmds[knet_h->crypto_instance->model].ops->fini(knet_h, knet_h->crypto_instance);
-+ }
-+ free(knet_h->crypto_instance);
-+ knet_h->sec_header_size = 0;
-+diff --git a/libknet/crypto_nss.c b/libknet/crypto_nss.c
-+index cc83827..5c3a437 100644
-+--- a/libknet/crypto_nss.c
-++++ b/libknet/crypto_nss.c
-+@@ -155,9 +155,11 @@ static int nssstring_to_crypto_cipher_type(const char* crypto_cipher_type)
-+ return -1;
-+ }
-+
-+-static PK11SymKey *nssimport_symmetric_key(knet_handle_t knet_h, enum sym_key_type key_type)
-++static PK11SymKey *nssimport_symmetric_key(knet_handle_t knet_h,
-++ struct crypto_instance *crypto_instance,
-++ enum sym_key_type key_type)
-+ {
-+- struct nsscrypto_instance *instance = knet_h->crypto_instance->model_instance;
-++ struct nsscrypto_instance *instance = crypto_instance->model_instance;
-+ SECItem key_item;
-+ PK11SlotInfo *slot;
-+ PK11SymKey *res_key;
-+@@ -323,15 +325,15 @@ exit_res_key:
-+ return (res_key);
-+ }
-+
-+-static int init_nss_crypto(knet_handle_t knet_h)
-++static int init_nss_crypto(knet_handle_t knet_h, struct crypto_instance *crypto_instance)
-+ {
-+- struct nsscrypto_instance *instance = knet_h->crypto_instance->model_instance;
-++ struct nsscrypto_instance *instance = crypto_instance->model_instance;
-+
-+ if (!cipher_to_nss[instance->crypto_cipher_type]) {
-+ return 0;
-+ }
-+
-+- instance->nss_sym_key = nssimport_symmetric_key(knet_h, SYM_KEY_TYPE_CRYPT);
-++ instance->nss_sym_key = nssimport_symmetric_key(knet_h, crypto_instance, SYM_KEY_TYPE_CRYPT);
-+ if (instance->nss_sym_key == NULL) {
-+ errno = ENXIO; /* NSS reported error */
-+ return -1;
-+@@ -512,15 +514,15 @@ static int nssstring_to_crypto_hash_type(const char* crypto_hash_type)
-+ return -1;
-+ }
-+
-+-static int init_nss_hash(knet_handle_t knet_h)
-++static int init_nss_hash(knet_handle_t knet_h, struct crypto_instance *crypto_instance)
-+ {
-+- struct nsscrypto_instance *instance = knet_h->crypto_instance->model_instance;
-++ struct nsscrypto_instance *instance = crypto_instance->model_instance;
-+
-+ if (!hash_to_nss[instance->crypto_hash_type]) {
-+ return 0;
-+ }
-+
-+- instance->nss_sym_key_sign = nssimport_symmetric_key(knet_h, SYM_KEY_TYPE_HASH);
-++ instance->nss_sym_key_sign = nssimport_symmetric_key(knet_h, crypto_instance, SYM_KEY_TYPE_HASH);
-+ if (instance->nss_sym_key_sign == NULL) {
-+ errno = ENXIO; /* NSS reported error */
-+ return -1;
-+@@ -594,7 +596,7 @@ out:
-+ * global/glue nss functions
-+ */
-+
-+-static int init_nss(knet_handle_t knet_h)
-++static int init_nss(knet_handle_t knet_h, struct crypto_instance *crypto_instance)
-+ {
-+ static int at_exit_registered = 0;
-+
-+@@ -617,11 +619,11 @@ static int init_nss(knet_handle_t knet_h)
-+ nss_db_is_init = 1;
-+ }
-+
-+- if (init_nss_crypto(knet_h) < 0) {
-++ if (init_nss_crypto(knet_h, crypto_instance) < 0) {
-+ return -1;
-+ }
-+
-+- if (init_nss_hash(knet_h) < 0) {
-++ if (init_nss_hash(knet_h, crypto_instance) < 0) {
-+ return -1;
-+ }
-+
-+@@ -725,9 +727,10 @@ static int nsscrypto_authenticate_and_decrypt (
-+ }
-+
-+ static void nsscrypto_fini(
-+- knet_handle_t knet_h)
-++ knet_handle_t knet_h,
-++ struct crypto_instance *crypto_instance)
-+ {
-+- struct nsscrypto_instance *nsscrypto_instance = knet_h->crypto_instance->model_instance;
-++ struct nsscrypto_instance *nsscrypto_instance = crypto_instance->model_instance;
-+
-+ if (nsscrypto_instance) {
-+ if (nsscrypto_instance->nss_sym_key) {
-+@@ -739,7 +742,7 @@ static void nsscrypto_fini(
-+ nsscrypto_instance->nss_sym_key_sign = NULL;
-+ }
-+ free(nsscrypto_instance);
-+- knet_h->crypto_instance->model_instance = NULL;
-++ crypto_instance->model_instance = NULL;
-+ }
-+
-+ return;
-+@@ -747,6 +750,7 @@ static void nsscrypto_fini(
-+
-+ static int nsscrypto_init(
-+ knet_handle_t knet_h,
-++ struct crypto_instance *crypto_instance,
-+ struct knet_handle_crypto_cfg *knet_handle_crypto_cfg)
-+ {
-+ struct nsscrypto_instance *nsscrypto_instance = NULL;
-+@@ -757,14 +761,14 @@ static int nsscrypto_init(
-+ knet_handle_crypto_cfg->crypto_cipher_type,
-+ knet_handle_crypto_cfg->crypto_hash_type);
-+
-+- knet_h->crypto_instance->model_instance = malloc(sizeof(struct nsscrypto_instance));
-+- if (!knet_h->crypto_instance->model_instance) {
-++ crypto_instance->model_instance = malloc(sizeof(struct nsscrypto_instance));
-++ if (!crypto_instance->model_instance) {
-+ log_err(knet_h, KNET_SUB_NSSCRYPTO, "Unable to allocate memory for nss model instance");
-+ errno = ENOMEM;
-+ return -1;
-+ }
-+
-+- nsscrypto_instance = knet_h->crypto_instance->model_instance;
-++ nsscrypto_instance = crypto_instance->model_instance;
-+
-+ memset(nsscrypto_instance, 0, sizeof(struct nsscrypto_instance));
-+
-+@@ -792,16 +796,16 @@ static int nsscrypto_init(
-+ nsscrypto_instance->private_key = knet_handle_crypto_cfg->private_key;
-+ nsscrypto_instance->private_key_len = knet_handle_crypto_cfg->private_key_len;
-+
-+- if (init_nss(knet_h) < 0) {
-++ if (init_nss(knet_h, crypto_instance) < 0) {
-+ savederrno = errno;
-+ goto out_err;
-+ }
-+
-+- knet_h->sec_header_size = 0;
-++ crypto_instance->sec_header_size = 0;
-+
-+ if (nsscrypto_instance->crypto_hash_type > 0) {
-+- knet_h->sec_header_size += nsshash_len[nsscrypto_instance->crypto_hash_type];
-+- knet_h->sec_hash_size = nsshash_len[nsscrypto_instance->crypto_hash_type];
-++ crypto_instance->sec_header_size += nsshash_len[nsscrypto_instance->crypto_hash_type];
-++ crypto_instance->sec_hash_size = nsshash_len[nsscrypto_instance->crypto_hash_type];
-+ }
-+
-+ if (nsscrypto_instance->crypto_cipher_type > 0) {
-+@@ -817,16 +821,16 @@ static int nsscrypto_init(
-+ }
-+ }
-+
-+- knet_h->sec_header_size += (block_size * 2);
-+- knet_h->sec_header_size += SALT_SIZE;
-+- knet_h->sec_salt_size = SALT_SIZE;
-+- knet_h->sec_block_size = block_size;
-++ crypto_instance->sec_header_size += (block_size * 2);
-++ crypto_instance->sec_header_size += SALT_SIZE;
-++ crypto_instance->sec_salt_size = SALT_SIZE;
-++ crypto_instance->sec_block_size = block_size;
-+ }
-+
-+ return 0;
-+
-+ out_err:
-+- nsscrypto_fini(knet_h);
-++ nsscrypto_fini(knet_h, crypto_instance);
-+ errno = savederrno;
-+ return -1;
-+ }
-+diff --git a/libknet/crypto_openssl.c b/libknet/crypto_openssl.c
-+index 73058cc..5c7a74a 100644
-+--- a/libknet/crypto_openssl.c
-++++ b/libknet/crypto_openssl.c
-+@@ -471,9 +471,10 @@ out:
-+ #endif
-+
-+ static void opensslcrypto_fini(
-+- knet_handle_t knet_h)
-++ knet_handle_t knet_h,
-++ struct crypto_instance *crypto_instance)
-+ {
-+- struct opensslcrypto_instance *opensslcrypto_instance = knet_h->crypto_instance->model_instance;
-++ struct opensslcrypto_instance *opensslcrypto_instance = crypto_instance->model_instance;
-+
-+ if (opensslcrypto_instance) {
-+ #ifdef BUILDCRYPTOOPENSSL10
-+@@ -484,7 +485,7 @@ static void opensslcrypto_fini(
-+ opensslcrypto_instance->private_key = NULL;
-+ }
-+ free(opensslcrypto_instance);
-+- knet_h->crypto_instance->model_instance = NULL;
-++ crypto_instance->model_instance = NULL;
-+ }
-+
-+ return;
-+@@ -492,6 +493,7 @@ static void opensslcrypto_fini(
-+
-+ static int opensslcrypto_init(
-+ knet_handle_t knet_h,
-++ struct crypto_instance *crypto_instance,
-+ struct knet_handle_crypto_cfg *knet_handle_crypto_cfg)
-+ {
-+ static int openssl_is_init = 0;
-+@@ -527,14 +529,14 @@ static int opensslcrypto_init(
-+ }
-+ #endif
-+
-+- knet_h->crypto_instance->model_instance = malloc(sizeof(struct opensslcrypto_instance));
-+- if (!knet_h->crypto_instance->model_instance) {
-++ crypto_instance->model_instance = malloc(sizeof(struct opensslcrypto_instance));
-++ if (!crypto_instance->model_instance) {
-+ log_err(knet_h, KNET_SUB_OPENSSLCRYPTO, "Unable to allocate memory for openssl model instance");
-+ errno = ENOMEM;
-+ return -1;
-+ }
-+
-+- opensslcrypto_instance = knet_h->crypto_instance->model_instance;
-++ opensslcrypto_instance = crypto_instance->model_instance;
-+
-+ memset(opensslcrypto_instance, 0, sizeof(struct opensslcrypto_instance));
-+
-+@@ -576,11 +578,11 @@ static int opensslcrypto_init(
-+ memmove(opensslcrypto_instance->private_key, knet_handle_crypto_cfg->private_key, knet_handle_crypto_cfg->private_key_len);
-+ opensslcrypto_instance->private_key_len = knet_handle_crypto_cfg->private_key_len;
-+
-+- knet_h->sec_header_size = 0;
-++ crypto_instance->sec_header_size = 0;
-+
-+ if (opensslcrypto_instance->crypto_hash_type) {
-+- knet_h->sec_hash_size = EVP_MD_size(opensslcrypto_instance->crypto_hash_type);
-+- knet_h->sec_header_size += knet_h->sec_hash_size;
-++ crypto_instance->sec_hash_size = EVP_MD_size(opensslcrypto_instance->crypto_hash_type);
-++ crypto_instance->sec_header_size += crypto_instance->sec_hash_size;
-+ }
-+
-+ if (opensslcrypto_instance->crypto_cipher_type) {
-+@@ -588,16 +590,16 @@ static int opensslcrypto_init(
-+
-+ block_size = EVP_CIPHER_block_size(opensslcrypto_instance->crypto_cipher_type);
-+
-+- knet_h->sec_header_size += (block_size * 2);
-+- knet_h->sec_header_size += SALT_SIZE;
-+- knet_h->sec_salt_size = SALT_SIZE;
-+- knet_h->sec_block_size = block_size;
-++ crypto_instance->sec_header_size += (block_size * 2);
-++ crypto_instance->sec_header_size += SALT_SIZE;
-++ crypto_instance->sec_salt_size = SALT_SIZE;
-++ crypto_instance->sec_block_size = block_size;
-+ }
-+
-+ return 0;
-+
-+ out_err:
-+- opensslcrypto_fini(knet_h);
-++ opensslcrypto_fini(knet_h, crypto_instance);
-+
-+ errno = savederrno;
-+ return -1;
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index 7009cc3..e95c6c1 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -1374,11 +1374,10 @@ int knet_handle_crypto(knet_handle_t knet_h, struct knet_handle_crypto_cfg *knet
-+ return -1;
-+ }
-+
-+- crypto_fini(knet_h);
-+-
-+ if ((!strncmp("none", knet_handle_crypto_cfg->crypto_model, 4)) ||
-+ ((!strncmp("none", knet_handle_crypto_cfg->crypto_cipher_type, 4)) &&
-+ (!strncmp("none", knet_handle_crypto_cfg->crypto_hash_type, 4)))) {
-++ crypto_fini(knet_h);
-+ log_debug(knet_h, KNET_SUB_CRYPTO, "crypto is not enabled");
-+ err = 0;
-+ goto exit_unlock;
-+diff --git a/libknet/tests/api_knet_handle_crypto.c b/libknet/tests/api_knet_handle_crypto.c
-+index 1805909..9dbf5bc 100644
-+--- a/libknet/tests/api_knet_handle_crypto.c
-++++ b/libknet/tests/api_knet_handle_crypto.c
-+@@ -17,13 +17,15 @@
-+ #include "libknet.h"
-+
-+ #include "internals.h"
-++#include "crypto_model.h"
-+ #include "test-common.h"
-+
-+-static void test(const char *model)
-++static void test(const char *model, const char *model2)
-+ {
-+ knet_handle_t knet_h;
-+ int logfds[2];
-+ struct knet_handle_crypto_cfg knet_handle_crypto_cfg;
-++ struct crypto_instance *current = NULL;
-+
-+ memset(&knet_handle_crypto_cfg, 0, sizeof(struct knet_handle_crypto_cfg));
-+
-+@@ -152,6 +154,96 @@ static void test(const char *model)
-+
-+ flush_logs(logfds[0], stdout);
-+
-++ printf("Test knet_handle_crypto reconfig with %s/aes128/sha1 and normal key\n", model2);
-++
-++ current = knet_h->crypto_instance;
-++
-++ memset(&knet_handle_crypto_cfg, 0, sizeof(struct knet_handle_crypto_cfg));
-++ strncpy(knet_handle_crypto_cfg.crypto_model, model, sizeof(knet_handle_crypto_cfg.crypto_model) - 1);
-++ strncpy(knet_handle_crypto_cfg.crypto_cipher_type, "aes128", sizeof(knet_handle_crypto_cfg.crypto_cipher_type) - 1);
-++ strncpy(knet_handle_crypto_cfg.crypto_hash_type, "sha1", sizeof(knet_handle_crypto_cfg.crypto_hash_type) - 1);
-++ knet_handle_crypto_cfg.private_key_len = 2000;
-++
-++ if (knet_handle_crypto(knet_h, &knet_handle_crypto_cfg)) {
-++ printf("knet_handle_crypto failed with correct config: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ if (current == knet_h->crypto_instance) {
-++ printf("knet_handle_crypto failed to install new correct config: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_handle_crypto reconfig with %s/aes128/sha1 and normal key\n", model);
-++
-++ current = knet_h->crypto_instance;
-++
-++ memset(&knet_handle_crypto_cfg, 0, sizeof(struct knet_handle_crypto_cfg));
-++ strncpy(knet_handle_crypto_cfg.crypto_model, model, sizeof(knet_handle_crypto_cfg.crypto_model) - 1);
-++ strncpy(knet_handle_crypto_cfg.crypto_cipher_type, "aes128", sizeof(knet_handle_crypto_cfg.crypto_cipher_type) - 1);
-++ strncpy(knet_handle_crypto_cfg.crypto_hash_type, "sha1", sizeof(knet_handle_crypto_cfg.crypto_hash_type) - 1);
-++ knet_handle_crypto_cfg.private_key_len = 2000;
-++
-++ if (knet_handle_crypto(knet_h, &knet_handle_crypto_cfg)) {
-++ printf("knet_handle_crypto failed with correct config: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ if (current == knet_h->crypto_instance) {
-++ printf("knet_handle_crypto failed to install new correct config: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ printf("Test knet_handle_crypto reconfig with %s/aes129/sha1 and normal key\n", model);
-++
-++ current = knet_h->crypto_instance;
-++
-++ memset(&knet_handle_crypto_cfg, 0, sizeof(struct knet_handle_crypto_cfg));
-++ strncpy(knet_handle_crypto_cfg.crypto_model, model, sizeof(knet_handle_crypto_cfg.crypto_model) - 1);
-++ strncpy(knet_handle_crypto_cfg.crypto_cipher_type, "aes129", sizeof(knet_handle_crypto_cfg.crypto_cipher_type) - 1);
-++ strncpy(knet_handle_crypto_cfg.crypto_hash_type, "sha1", sizeof(knet_handle_crypto_cfg.crypto_hash_type) - 1);
-++ knet_handle_crypto_cfg.private_key_len = 2000;
-++
-++ if (!knet_handle_crypto(knet_h, &knet_handle_crypto_cfg)) {
-++ printf("knet_handle_crypto failed to detect incorrect config: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-++ if (current != knet_h->crypto_instance) {
-++ printf("knet_handle_crypto failed to restore correct config: %s\n", strerror(errno));
-++ knet_handle_free(knet_h);
-++ flush_logs(logfds[0], stdout);
-++ close_logpipes(logfds);
-++ exit(FAIL);
-++ }
-++
-++ flush_logs(logfds[0], stdout);
-++
-+ printf("Test knet_handle_crypto with %s/aes128/none and normal key\n", model);
-+
-+ memset(&knet_handle_crypto_cfg, 0, sizeof(struct knet_handle_crypto_cfg));
-+@@ -233,7 +325,7 @@ int main(int argc, char *argv[])
-+ }
-+
-+ for (i=0; i < crypto_list_entries; i++) {
-+- test(crypto_list[i].name);
-++ test(crypto_list[i].name, crypto_list[0].name);
-+ }
-+
-+ return PASS;
-diff --git a/debian/patches/doc-fix-a-merge-oversight-from-541d7faf9068d10e12b4278c35.patch b/debian/patches/doc-fix-a-merge-oversight-from-541d7faf9068d10e12b4278c35.patch
-new file mode 100644
-index 0000000..a079030
---- /dev/null
-+++ b/debian/patches/doc-fix-a-merge-oversight-from-541d7faf9068d10e12b4278c35.patch
-@@ -0,0 +1,23 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 11 Jun 2019 16:09:54 +0200
-+Subject: [doc] fix a merge oversight from
-+ 541d7faf9068d10e12b4278c35825ce1353db081
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit ef89e9d900db037c82e03406dcf426ff62649e7d)
-+---
-+ libknet/libknet.h | 1 +
-+ 1 file changed, 1 insertion(+)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 85c06cc..907213f 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -1511,6 +1511,7 @@ typedef enum {
-+
-+ /**
-+ * check_acceptreject_t
-++ *
-+ * @brief enum for accept/reject in knet access lists
-+ *
-+ * accept or reject incoming packets defined in the access list entry
-diff --git a/debian/patches/global-update-copyright-across-the-board.patch b/debian/patches/global-update-copyright-across-the-board.patch
-new file mode 100644
-index 0000000..9230a7c
---- /dev/null
-+++ b/debian/patches/global-update-copyright-across-the-board.patch
-@@ -0,0 +1,129 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 26 Mar 2019 13:45:52 +0100
-+Subject: [global] update copyright across the board
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 27a7d1cb61bd66d8e36dd663075cf5d0f2d385e4)
-+---
-+ libknet/links_acl_ip.h | 2 +-
-+ libknet/links_acl_loopback.h | 2 +-
-+ libknet/links_acl_ip.c | 2 +-
-+ libknet/links_acl_loopback.c | 2 +-
-+ libknet/tests/api_knet_handle_enable_access_lists.c | 2 +-
-+ libknet/tests/api_knet_link_add_acl.c | 2 +-
-+ libknet/tests/api_knet_link_clear_acl.c | 2 +-
-+ libknet/tests/api_knet_link_insert_acl.c | 2 +-
-+ libknet/tests/api_knet_link_rm_acl.c | 2 +-
-+ libknet/tests/int_links_acl_ip.c | 2 +-
-+ 10 files changed, 10 insertions(+), 10 deletions(-)
-+
-+diff --git a/libknet/links_acl_ip.h b/libknet/links_acl_ip.h
-+index fac58e2..b33ffb1 100644
-+--- a/libknet/links_acl_ip.h
-++++ b/libknet/links_acl_ip.h
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2016-2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+diff --git a/libknet/links_acl_loopback.h b/libknet/links_acl_loopback.h
-+index e75c4a4..b51d2bf 100644
-+--- a/libknet/links_acl_loopback.h
-++++ b/libknet/links_acl_loopback.h
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+diff --git a/libknet/links_acl_ip.c b/libknet/links_acl_ip.c
-+index 642027b..9310f21 100644
-+--- a/libknet/links_acl_ip.c
-++++ b/libknet/links_acl_ip.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2016-2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+diff --git a/libknet/links_acl_loopback.c b/libknet/links_acl_loopback.c
-+index 97f8198..044a51c 100644
-+--- a/libknet/links_acl_loopback.c
-++++ b/libknet/links_acl_loopback.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-+diff --git a/libknet/tests/api_knet_handle_enable_access_lists.c b/libknet/tests/api_knet_handle_enable_access_lists.c
-+index fc3bcc1..d08f175 100644
-+--- a/libknet/tests/api_knet_handle_enable_access_lists.c
-++++ b/libknet/tests/api_knet_handle_enable_access_lists.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2016-2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+diff --git a/libknet/tests/api_knet_link_add_acl.c b/libknet/tests/api_knet_link_add_acl.c
-+index b018165..ff7a2e2 100644
-+--- a/libknet/tests/api_knet_link_add_acl.c
-++++ b/libknet/tests/api_knet_link_add_acl.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+diff --git a/libknet/tests/api_knet_link_clear_acl.c b/libknet/tests/api_knet_link_clear_acl.c
-+index 78b7d79..234a76b 100644
-+--- a/libknet/tests/api_knet_link_clear_acl.c
-++++ b/libknet/tests/api_knet_link_clear_acl.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2016-2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+diff --git a/libknet/tests/api_knet_link_insert_acl.c b/libknet/tests/api_knet_link_insert_acl.c
-+index 547f92b..79d04df 100644
-+--- a/libknet/tests/api_knet_link_insert_acl.c
-++++ b/libknet/tests/api_knet_link_insert_acl.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+diff --git a/libknet/tests/api_knet_link_rm_acl.c b/libknet/tests/api_knet_link_rm_acl.c
-+index 49a82d9..d132c54 100644
-+--- a/libknet/tests/api_knet_link_rm_acl.c
-++++ b/libknet/tests/api_knet_link_rm_acl.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Authors: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-+diff --git a/libknet/tests/int_links_acl_ip.c b/libknet/tests/int_links_acl_ip.c
-+index a7d2aed..93dff63 100644
-+--- a/libknet/tests/int_links_acl_ip.c
-++++ b/libknet/tests/int_links_acl_ip.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Author: Christine Caulfield <ccaulfie at redhat.com>
-+ *
-diff --git a/debian/patches/global-update-copyrights.patch b/debian/patches/global-update-copyrights.patch
-new file mode 100644
-index 0000000..4557faf
---- /dev/null
-+++ b/debian/patches/global-update-copyrights.patch
-@@ -0,0 +1,21 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 12 Jun 2019 05:23:47 +0200
-+Subject: [global] update copyrights
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 5d6813ecfb9187d031a1195a6670bd174680d478)
-+---
-+ libknet/compress_zstd.c | 2 +-
-+ 1 file changed, 1 insertion(+), 1 deletion(-)
-+
-+diff --git a/libknet/compress_zstd.c b/libknet/compress_zstd.c
-+index f76ea5f..e234f8d 100644
-+--- a/libknet/compress_zstd.c
-++++ b/libknet/compress_zstd.c
-+@@ -1,5 +1,5 @@
-+ /*
-+- * Copyright (C) 2017-2019 Red Hat, Inc. All rights reserved.
-++ * Copyright (C) 2019 Red Hat, Inc. All rights reserved.
-+ *
-+ * Author: Fabio M. Di Nitto <fabbione at kronosnet.org>
-+ *
-diff --git a/debian/patches/handle-properly-initialize-fd-tracker-buffers.patch b/debian/patches/handle-properly-initialize-fd-tracker-buffers.patch
-new file mode 100644
-index 0000000..ca34a5d
---- /dev/null
-+++ b/debian/patches/handle-properly-initialize-fd-tracker-buffers.patch
-@@ -0,0 +1,26 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Wed, 13 Feb 2019 09:14:45 +0100
-+Subject: [handle] properly initialize fd tracker buffers
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 4a76e6de56d50c6c4c78af996d0f97d8df34dadd)
-+---
-+ libknet/handle.c | 5 ++++-
-+ 1 file changed, 4 insertions(+), 1 deletion(-)
-+
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index 6cd49f5..0a2f75a 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -309,7 +309,10 @@ static int _init_buffers(knet_handle_t knet_h)
-+ }
-+ memset(knet_h->send_to_links_buf_compress, 0, KNET_DATABUFSIZE_COMPRESS);
-+
-+- memset(knet_h->knet_transport_fd_tracker, KNET_MAX_TRANSPORTS, sizeof(knet_h->knet_transport_fd_tracker));
-++ memset(knet_h->knet_transport_fd_tracker, 0, sizeof(knet_h->knet_transport_fd_tracker));
-++ for (i = 0; i < KNET_MAX_FDS; i++) {
-++ knet_h->knet_transport_fd_tracker[i].transport = KNET_MAX_TRANSPORTS;
-++ }
-+
-+ return 0;
-+
-diff --git a/debian/patches/links-rename-tranport_type-to-transport-to-avoid-confusio.patch b/debian/patches/links-rename-tranport_type-to-transport-to-avoid-confusio.patch
-new file mode 100644
-index 0000000..ba846ab
---- /dev/null
-+++ b/debian/patches/links-rename-tranport_type-to-transport-to-avoid-confusio.patch
-@@ -0,0 +1,77 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 9 May 2019 15:44:41 +0200
-+Subject: [links] rename tranport_type to transport to avoid confusion (part 2)
-+
-+complements be9d053efafc822cabd696914d53b5dfe25fb4fd due to early
-+cherry-pick of 7033ddab505a0cf3655115fe5037579b7c882a8c
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit e1345c4f44efd7db79376a3985e4a6aab1461c6f)
-+---
-+ libknet/threads_heartbeat.c | 2 +-
-+ libknet/threads_pmtud.c | 2 +-
-+ libknet/threads_rx.c | 4 ++--
-+ libknet/threads_tx.c | 2 +-
-+ 4 files changed, 5 insertions(+), 5 deletions(-)
-+
-+diff --git a/libknet/threads_heartbeat.c b/libknet/threads_heartbeat.c
-+index 413b5b7..8def9b8 100644
-+--- a/libknet/threads_heartbeat.c
-++++ b/libknet/threads_heartbeat.c
-+@@ -85,7 +85,7 @@ static void _handle_check_each(knet_handle_t knet_h, struct knet_host *dst_host,
-+ }
-+
-+ retry:
-+- if (transport_get_connection_oriented(knet_h, dst_link->transport_type) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-++ if (transport_get_connection_oriented(knet_h, dst_link->transport) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-+ len = sendto(dst_link->outsock, outbuf, outlen, MSG_DONTWAIT | MSG_NOSIGNAL,
-+ (struct sockaddr *) &dst_link->dst_addr, sizeof(struct sockaddr_storage));
-+ } else {
-+diff --git a/libknet/threads_pmtud.c b/libknet/threads_pmtud.c
-+index 1a84540..0050557 100644
-+--- a/libknet/threads_pmtud.c
-++++ b/libknet/threads_pmtud.c
-+@@ -172,7 +172,7 @@ restart:
-+ return -1;
-+ }
-+ retry:
-+- if (transport_get_connection_oriented(knet_h, dst_link->transport_type) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-++ if (transport_get_connection_oriented(knet_h, dst_link->transport) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-+ len = sendto(dst_link->outsock, outbuf, data_len, MSG_DONTWAIT | MSG_NOSIGNAL,
-+ (struct sockaddr *) &dst_link->dst_addr, sizeof(struct sockaddr_storage));
-+ } else {
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index 4670829..6417261 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -578,7 +578,7 @@ static void _parse_recv_from_links(knet_handle_t knet_h, int sockfd, const struc
-+ }
-+
-+ retry_pong:
-+- if (transport_get_connection_oriented(knet_h, src_link->transport_type) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-++ if (transport_get_connection_oriented(knet_h, src_link->transport) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-+ len = sendto(src_link->outsock, outbuf, outlen, MSG_DONTWAIT | MSG_NOSIGNAL,
-+ (struct sockaddr *) &src_link->dst_addr, sizeof(struct sockaddr_storage));
-+ } else {
-+@@ -674,7 +674,7 @@ retry_pong:
-+ goto out_pmtud;
-+ }
-+ retry_pmtud:
-+- if (transport_get_connection_oriented(knet_h, src_link->transport_type) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-++ if (transport_get_connection_oriented(knet_h, src_link->transport) == TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED) {
-+ len = sendto(src_link->outsock, outbuf, outlen, MSG_DONTWAIT | MSG_NOSIGNAL,
-+ (struct sockaddr *) &src_link->dst_addr, sizeof(struct sockaddr_storage));
-+ } else {
-+diff --git a/libknet/threads_tx.c b/libknet/threads_tx.c
-+index b904e12..e987eb1 100644
-+--- a/libknet/threads_tx.c
-++++ b/libknet/threads_tx.c
-+@@ -68,7 +68,7 @@ retry:
-+ cur = &msg[prev_sent];
-+
-+ sent_msgs = _sendmmsg(dst_host->link[dst_host->active_links[link_idx]].outsock,
-+- transport_get_connection_oriented(knet_h, dst_host->link[dst_host->active_links[link_idx]].transport_type),
-++ transport_get_connection_oriented(knet_h, dst_host->link[dst_host->active_links[link_idx]].transport),
-+ &cur[0], msgs_to_send - prev_sent, MSG_DONTWAIT | MSG_NOSIGNAL);
-+ savederrno = errno;
-+
-diff --git a/debian/patches/links-rename-transport_type-to-transport-to-avoid-confusi.patch b/debian/patches/links-rename-transport_type-to-transport-to-avoid-confusi.patch
-new file mode 100644
-index 0000000..48df681
---- /dev/null
-+++ b/debian/patches/links-rename-transport_type-to-transport-to-avoid-confusi.patch
-@@ -0,0 +1,196 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Fri, 22 Feb 2019 05:31:42 +0100
-+Subject: [links] rename transport_type to transport to avoid confusion
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit c02c06feed59b18948d0107d2ec4cc2a9182554a)
-+---
-+ libknet/internals.h | 2 +-
-+ libknet/links.c | 10 +++++-----
-+ libknet/threads_heartbeat.c | 6 +++---
-+ libknet/threads_pmtud.c | 4 ++--
-+ libknet/threads_rx.c | 4 ++--
-+ libknet/threads_tx.c | 4 ++--
-+ libknet/transports.c | 6 +++---
-+ 7 files changed, 18 insertions(+), 18 deletions(-)
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index 0d6ee3f..2135fb8 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -62,7 +62,7 @@ struct knet_link {
-+ struct knet_link_status status;
-+ /* internals */
-+ uint8_t link_id;
-+- uint8_t transport_type; /* #defined constant from API */
-++ uint8_t transport; /* #defined constant from API */
-+ knet_transport_link_t transport_link; /* link_info_t from transport */
-+ int outsock;
-+ unsigned int configured:1; /* set to 1 if src/dst have been configured transport initialized on this link*/
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 1693df6..dd64a15 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -351,7 +351,7 @@ int knet_link_get_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+
-+ memmove(src_addr, &link->src_addr, sizeof(struct sockaddr_storage));
-+
-+- *transport = link->transport_type;
-++ *transport = link->transport;
-+ *flags = link->flags;
-+
-+ if (link->dynamic == KNET_LINK_STATIC) {
-+@@ -426,9 +426,9 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * then we can remove any leftover access lists if the link
-+ * is no longer in use.
-+ */
-+- if ((transport_get_acl_type(knet_h, link->transport_type) == USE_GENERIC_ACL) &&
-++ if ((transport_get_acl_type(knet_h, link->transport) == USE_GENERIC_ACL) &&
-+ (link->dynamic == KNET_LINK_STATIC)) {
-+- if (check_rm(knet_h, link->outsock, link->transport_type,
-++ if (check_rm(knet_h, link->outsock, link->transport,
-+ &link->dst_addr, &link->dst_addr,
-+ CHECK_TYPE_ADDRESS, CHECK_ACCEPT) < 0) {
-+ err = -1;
-+@@ -444,7 +444,7 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * will clear link info during clear_config.
-+ */
-+ sock = link->outsock;
-+- transport = link->transport_type;
-++ transport = link->transport;
-+
-+ if ((transport_link_clear_config(knet_h, link) < 0) &&
-+ (errno != EBUSY)) {
-+@@ -457,7 +457,7 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * remove any other access lists when the socket is no
-+ * longer in use by the transport.
-+ */
-+- if ((transport_get_acl_type(knet_h, link->transport_type) == USE_GENERIC_ACL) &&
-++ if ((transport_get_acl_type(knet_h, link->transport) == USE_GENERIC_ACL) &&
-+ (knet_h->knet_transport_fd_tracker[sock].transport == KNET_MAX_TRANSPORTS)) {
-+ check_rmall(knet_h, sock, transport);
-+ }
-+diff --git a/libknet/threads_heartbeat.c b/libknet/threads_heartbeat.c
-+index 5d4189f..413b5b7 100644
-+--- a/libknet/threads_heartbeat.c
-++++ b/libknet/threads_heartbeat.c
-+@@ -98,7 +98,7 @@ retry:
-+ dst_link->status.stats.tx_ping_bytes += outlen;
-+
-+ if (len != outlen) {
-+- err = transport_tx_sock_error(knet_h, dst_link->transport_type, dst_link->outsock, len, savederrno);
-++ err = transport_tx_sock_error(knet_h, dst_link->transport, dst_link->outsock, len, savederrno);
-+ switch(err) {
-+ case -1: /* unrecoverable error */
-+ log_debug(knet_h, KNET_SUB_HEARTBEAT,
-+@@ -140,7 +140,7 @@ void _send_pings(knet_handle_t knet_h, int timed)
-+ for (dst_host = knet_h->host_head; dst_host != NULL; dst_host = dst_host->next) {
-+ for (link_idx = 0; link_idx < KNET_MAX_LINK; link_idx++) {
-+ if ((dst_host->link[link_idx].status.enabled != 1) ||
-+- (dst_host->link[link_idx].transport_type == KNET_TRANSPORT_LOOPBACK ) ||
-++ (dst_host->link[link_idx].transport == KNET_TRANSPORT_LOOPBACK ) ||
-+ ((dst_host->link[link_idx].dynamic == KNET_LINK_DYNIP) &&
-+ (dst_host->link[link_idx].status.dynconnected != 1)))
-+ continue;
-+@@ -166,7 +166,7 @@ static void _adjust_pong_timeouts(knet_handle_t knet_h)
-+ for (dst_host = knet_h->host_head; dst_host != NULL; dst_host = dst_host->next) {
-+ for (link_idx = 0; link_idx < KNET_MAX_LINK; link_idx++) {
-+ if ((dst_host->link[link_idx].status.enabled != 1) ||
-+- (dst_host->link[link_idx].transport_type == KNET_TRANSPORT_LOOPBACK ) ||
-++ (dst_host->link[link_idx].transport == KNET_TRANSPORT_LOOPBACK ) ||
-+ ((dst_host->link[link_idx].dynamic == KNET_LINK_DYNIP) &&
-+ (dst_host->link[link_idx].status.dynconnected != 1)))
-+ continue;
-+diff --git a/libknet/threads_pmtud.c b/libknet/threads_pmtud.c
-+index 63504d6..1a84540 100644
-+--- a/libknet/threads_pmtud.c
-++++ b/libknet/threads_pmtud.c
-+@@ -196,7 +196,7 @@ retry:
-+
-+ kernel_mtu = 0;
-+
-+- err = transport_tx_sock_error(knet_h, dst_link->transport_type, dst_link->outsock, len, savederrno);
-++ err = transport_tx_sock_error(knet_h, dst_link->transport, dst_link->outsock, len, savederrno);
-+ switch(err) {
-+ case -1: /* unrecoverable error */
-+ log_debug(knet_h, KNET_SUB_PMTUD, "Unable to send pmtu packet (sendto): %d %s", savederrno, strerror(savederrno));
-+@@ -523,7 +523,7 @@ void *_handle_pmtud_link_thread(void *data)
-+
-+ if ((dst_link->status.enabled != 1) ||
-+ (dst_link->status.connected != 1) ||
-+- (dst_host->link[link_idx].transport_type == KNET_TRANSPORT_LOOPBACK) ||
-++ (dst_host->link[link_idx].transport == KNET_TRANSPORT_LOOPBACK) ||
-+ (!dst_link->last_ping_size) ||
-+ ((dst_link->dynamic == KNET_LINK_DYNIP) &&
-+ (dst_link->status.dynconnected != 1)))
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index 5fa51c4..4670829 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -586,7 +586,7 @@ retry_pong:
-+ }
-+ savederrno = errno;
-+ if (len != outlen) {
-+- err = transport_tx_sock_error(knet_h, src_link->transport_type, src_link->outsock, len, savederrno);
-++ err = transport_tx_sock_error(knet_h, src_link->transport, src_link->outsock, len, savederrno);
-+ switch(err) {
-+ case -1: /* unrecoverable error */
-+ log_debug(knet_h, KNET_SUB_RX,
-+@@ -682,7 +682,7 @@ retry_pmtud:
-+ }
-+ savederrno = errno;
-+ if (len != outlen) {
-+- err = transport_tx_sock_error(knet_h, src_link->transport_type, src_link->outsock, len, savederrno);
-++ err = transport_tx_sock_error(knet_h, src_link->transport, src_link->outsock, len, savederrno);
-+ switch(err) {
-+ case -1: /* unrecoverable error */
-+ log_debug(knet_h, KNET_SUB_RX,
-+diff --git a/libknet/threads_tx.c b/libknet/threads_tx.c
-+index fa911dc..b904e12 100644
-+--- a/libknet/threads_tx.c
-++++ b/libknet/threads_tx.c
-+@@ -48,7 +48,7 @@ static int _dispatch_to_links(knet_handle_t knet_h, struct knet_host *dst_host,
-+
-+ cur_link = &dst_host->link[dst_host->active_links[link_idx]];
-+
-+- if (cur_link->transport_type == KNET_TRANSPORT_LOOPBACK) {
-++ if (cur_link->transport == KNET_TRANSPORT_LOOPBACK) {
-+ continue;
-+ }
-+
-+@@ -72,7 +72,7 @@ retry:
-+ &cur[0], msgs_to_send - prev_sent, MSG_DONTWAIT | MSG_NOSIGNAL);
-+ savederrno = errno;
-+
-+- err = transport_tx_sock_error(knet_h, dst_host->link[dst_host->active_links[link_idx]].transport_type, dst_host->link[dst_host->active_links[link_idx]].outsock, sent_msgs, savederrno);
-++ err = transport_tx_sock_error(knet_h, dst_host->link[dst_host->active_links[link_idx]].transport, dst_host->link[dst_host->active_links[link_idx]].outsock, sent_msgs, savederrno);
-+ switch(err) {
-+ case -1: /* unrecoverable error */
-+ cur_link->status.stats.tx_data_errors++;
-+diff --git a/libknet/transports.c b/libknet/transports.c
-+index ffebe00..69ea091 100644
-+--- a/libknet/transports.c
-++++ b/libknet/transports.c
-+@@ -88,19 +88,19 @@ int transport_link_set_config(knet_handle_t knet_h, struct knet_link *kn_link, u
-+ return -1;
-+ }
-+ kn_link->transport_connected = 0;
-+- kn_link->transport_type = transport;
-++ kn_link->transport = transport;
-+ kn_link->proto_overhead = transport_modules_cmd[transport].transport_mtu_overhead;
-+ return transport_modules_cmd[transport].transport_link_set_config(knet_h, kn_link);
-+ }
-+
-+ int transport_link_clear_config(knet_handle_t knet_h, struct knet_link *kn_link)
-+ {
-+- return transport_modules_cmd[kn_link->transport_type].transport_link_clear_config(knet_h, kn_link);
-++ return transport_modules_cmd[kn_link->transport].transport_link_clear_config(knet_h, kn_link);
-+ }
-+
-+ int transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet_link *kn_link)
-+ {
-+- return transport_modules_cmd[kn_link->transport_type].transport_link_dyn_connect(knet_h, sockfd, kn_link);
-++ return transport_modules_cmd[kn_link->transport].transport_link_dyn_connect(knet_h, sockfd, kn_link);
-+ }
-+
-+ int transport_rx_sock_error(knet_handle_t knet_h, uint8_t transport, int sockfd, int recv_err, int recv_errno)
-diff --git a/debian/patches/logging-fix-log-target-of-recently-added-API-calls.patch b/debian/patches/logging-fix-log-target-of-recently-added-API-calls.patch
-new file mode 100644
-index 0000000..d4e4494
---- /dev/null
-+++ b/debian/patches/logging-fix-log-target-of-recently-added-API-calls.patch
-@@ -0,0 +1,52 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sat, 9 Mar 2019 07:03:25 +0100
-+Subject: [logging] fix log target of recently added API calls
-+
-+spotted during sctp testing
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit df6f761997d26afc62651f9ff831e0f7327ee41b)
-+---
-+ libknet/links.c | 8 ++++----
-+ 1 file changed, 4 insertions(+), 4 deletions(-)
-+
-+diff --git a/libknet/links.c b/libknet/links.c
-+index 038a8a4..8011a6d 100644
-+--- a/libknet/links.c
-++++ b/libknet/links.c
-+@@ -1199,7 +1199,7 @@ int knet_link_add_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link
-+
-+ savederrno = get_global_wrlock(knet_h);
-+ if (savederrno) {
-+- log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to get write lock: %s",
-+ strerror(savederrno));
-+ errno = savederrno;
-+ return -1;
-+@@ -1294,7 +1294,7 @@ int knet_link_insert_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+
-+ savederrno = get_global_wrlock(knet_h);
-+ if (savederrno) {
-+- log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to get write lock: %s",
-+ strerror(savederrno));
-+ errno = savederrno;
-+ return -1;
-+@@ -1388,7 +1388,7 @@ int knet_link_rm_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_
-+
-+ savederrno = get_global_wrlock(knet_h);
-+ if (savederrno) {
-+- log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to get write lock: %s",
-+ strerror(savederrno));
-+ errno = savederrno;
-+ return -1;
-+@@ -1450,7 +1450,7 @@ int knet_link_clear_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t li
-+
-+ savederrno = get_global_wrlock(knet_h);
-+ if (savederrno) {
-+- log_err(knet_h, KNET_SUB_HOST, "Unable to get write lock: %s",
-++ log_err(knet_h, KNET_SUB_LINK, "Unable to get write lock: %s",
-+ strerror(savederrno));
-+ errno = savederrno;
-+ return -1;
-diff --git a/debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test-1.patch b/debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test-1.patch
-new file mode 100644
-index 0000000..445238d
---- /dev/null
-+++ b/debian/patches/man-fix-libknet.h-for-errors-detected-by-newly-added-test-1.patch
-@@ -0,0 +1,50 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 30 Apr 2019 05:42:48 +0200
-+Subject: [man] fix libknet.h for errors detected by newly added test
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 790b1cb387df9ada2b607c0317a85bab8ec7245b)
-+---
-+ libknet/libknet.h | 8 ++++----
-+ 1 file changed, 4 insertions(+), 4 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 3098eab..183c92d 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -1553,7 +1553,7 @@ typedef enum {
-+ * packets from 10.0.0.1 will be accepted by rule number 1.
-+ *
-+ * @return
-+- * knet_link_add_acl
-++ * knet_link_add_acl returns
-+ * 0 on success.
-+ * -1 on error and errno is set.
-+ */
-+@@ -1580,7 +1580,7 @@ int knet_link_add_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link
-+ * ss1 / ss2 / type / acceptreject - see typedef definitions for details
-+ *
-+ * @return
-+- * knet_link_insert_acl
-++ * knet_link_insert_acl returns
-+ * 0 on success.
-+ * -1 on error and errno is set.
-+ */
-+@@ -1608,7 +1608,7 @@ int knet_link_insert_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
-+ * to knet_link_add_acl(3).
-+ *
-+ * @return
-+- * knet_link_rm_acl
-++ * knet_link_rm_acl returns
-+ * 0 on success.
-+ * -1 on error and errno is set.
-+ */
-+@@ -1630,7 +1630,7 @@ int knet_link_rm_acl(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t link_
-+ * link_id - see knet_link_set_config(3)
-+ *
-+ * @return
-+- * knet_link_clear_acl
-++ * knet_link_clear_acl returns
-+ * 0 on success.
-+ * -1 on error and errno is set.
-+ */
-diff --git a/debian/patches/manpages-Document-enums-206.patch b/debian/patches/manpages-Document-enums-206.patch
-new file mode 100644
-index 0000000..5b6c01e
---- /dev/null
-+++ b/debian/patches/manpages-Document-enums-206.patch
-@@ -0,0 +1,39 @@
-+From: Chrissie Caulfield <ccaulfie at redhat.com>
-+Date: Tue, 12 Mar 2019 13:55:25 +0000
-+Subject: manpages: Document enums (#206)
-+
-+And also fix a bug in structure printing that caused it to print the wrong name for a struct.
-+
-+(cherry picked from commit 541d7faf9068d10e12b4278c35825ce1353db081)
-+---
-+ libknet/libknet.h | 10 ++++++++--
-+ 1 file changed, 8 insertions(+), 2 deletions(-)
-+
-+diff --git a/libknet/libknet.h b/libknet/libknet.h
-+index 50ed70d..d16eb5d 100644
-+--- a/libknet/libknet.h
-++++ b/libknet/libknet.h
-+@@ -1483,7 +1483,10 @@ int knet_link_clear_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t
-+ * see also knet_handle_enable_access_lists(3)
-+ */
-+
-+-/*
-++/**
-++ * check_type_t
-++ * @brief address type enum for knet access lists
-++ *
-+ * CHECK_TYPE_ADDRESS is the equivalent of a single entry / IP address.
-+ * for example: 10.1.9.3
-+ * and the entry is stored in ss1. ss2 can be NULL.
-+@@ -1508,7 +1511,10 @@ typedef enum {
-+ CHECK_TYPE_RANGE
-+ } check_type_t;
-+
-+-/*
-++/**
-++ * check_acceptreject_t
-++ * @brief enum for accept/reject in knet access lists
-++ *
-+ * accept or reject incoming packets defined in the access list entry
-+ */
-+
-diff --git a/debian/patches/misc-Fix-more-covscan-warnings.patch b/debian/patches/misc-Fix-more-covscan-warnings.patch
-new file mode 100644
-index 0000000..1ae8829
---- /dev/null
-+++ b/debian/patches/misc-Fix-more-covscan-warnings.patch
-@@ -0,0 +1,191 @@
-+From: Christine Caulfield <ccaulfie at redhat.com>
-+Date: Fri, 24 May 2019 10:09:47 +0100
-+Subject: misc: Fix more covscan warnings
-+
-+The only serious bug here is in transport_udp.c
-+(see bottom of patch), the rest are mostly detail.
-+
-+covscan still reports a lot of errors against doxyxml, most of
-+which are because it doesn't understand the libqb hashtables.
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit ded574d1dd0c53c70a34fbd1eaa0239b3cde59b9)
-+---
-+ libknet/common.c | 2 +-
-+ libknet/compress.c | 6 +++---
-+ libknet/crypto.c | 1 -
-+ libknet/crypto_nss.c | 2 +-
-+ libknet/handle.c | 1 -
-+ libknet/threads_pmtud.c | 1 -
-+ libknet/threads_rx.c | 1 -
-+ libknet/threads_tx.c | 1 -
-+ libknet/transport_common.c | 4 ++--
-+ libknet/transport_sctp.c | 2 +-
-+ libknet/transport_udp.c | 3 ++-
-+ 11 files changed, 10 insertions(+), 14 deletions(-)
-+
-+diff --git a/libknet/common.c b/libknet/common.c
-+index c908e23..be46f23 100644
-+--- a/libknet/common.c
-++++ b/libknet/common.c
-+@@ -101,7 +101,7 @@ static void *open_lib(knet_handle_t knet_h, const char *libname, int extra_flags
-+ }
-+
-+ if (S_ISLNK(sb.st_mode)) {
-+- if (readlink(path, link, sizeof(link)) < 0) {
-++ if (readlink(path, link, sizeof(link)-1) < 0) {
-+ log_debug(knet_h, KNET_SUB_COMMON, "Unable to readlink %s: %s", path, strerror(errno));
-+ goto out;
-+ }
-+diff --git a/libknet/compress.c b/libknet/compress.c
-+index 7eab454..864828f 100644
-+--- a/libknet/compress.c
-++++ b/libknet/compress.c
-+@@ -359,11 +359,11 @@ void compress_fini(
-+ }
-+
-+ while (compress_modules_cmds[idx].model_name != NULL) {
-+- if ((compress_modules_cmds[idx].built_in == 1) &&
-++ if ((idx < KNET_MAX_COMPRESS_METHODS) && /* check idx first so we don't read bad data */
-++ (compress_modules_cmds[idx].built_in == 1) &&
-+ (compress_modules_cmds[idx].loaded == 1) &&
-+ (compress_modules_cmds[idx].model_id > 0) &&
-+- (knet_h->compress_int_data[idx] != NULL) &&
-+- (idx < KNET_MAX_COMPRESS_METHODS)) {
-++ (knet_h->compress_int_data[idx] != NULL)) {
-+ if ((all) || (compress_modules_cmds[idx].model_id == knet_h->compress_model)) {
-+ if (compress_modules_cmds[idx].ops->fini != NULL) {
-+ compress_modules_cmds[idx].ops->fini(knet_h, idx);
-+diff --git a/libknet/crypto.c b/libknet/crypto.c
-+index 419f9cc..41d67c9 100644
-+--- a/libknet/crypto.c
-++++ b/libknet/crypto.c
-+@@ -129,7 +129,6 @@ int crypto_init(
-+
-+ if (!knet_h->crypto_instance) {
-+ log_err(knet_h, KNET_SUB_CRYPTO, "Unable to allocate memory for crypto instance");
-+- pthread_rwlock_unlock(&shlib_rwlock);
-+ savederrno = ENOMEM;
-+ goto out_err;
-+ }
-+diff --git a/libknet/crypto_nss.c b/libknet/crypto_nss.c
-+index a17ff62..640b560 100644
-+--- a/libknet/crypto_nss.c
-++++ b/libknet/crypto_nss.c
-+@@ -761,7 +761,7 @@ static int nsscrypto_init(
-+ knet_h->crypto_instance->model_instance = malloc(sizeof(struct nsscrypto_instance));
-+ if (!knet_h->crypto_instance->model_instance) {
-+ log_err(knet_h, KNET_SUB_NSSCRYPTO, "Unable to allocate memory for nss model instance");
-+- savederrno = ENOMEM;
-++ errno = ENOMEM;
-+ return -1;
-+ }
-+
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index 268d610..fd26bea 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -1649,4 +1649,3 @@ int knet_handle_clear_stats(knet_handle_t knet_h, int clear_option)
-+ pthread_rwlock_unlock(&knet_h->global_rwlock);
-+ return 0;
-+ }
-+-
-+diff --git a/libknet/threads_pmtud.c b/libknet/threads_pmtud.c
-+index c5a2b27..b4ee632 100644
-+--- a/libknet/threads_pmtud.c
-++++ b/libknet/threads_pmtud.c
-+@@ -44,7 +44,6 @@ static int _handle_check_link_pmtud(knet_handle_t knet_h, struct knet_host *dst_
-+
-+ mutex_retry_limit = 0;
-+ failsafe = 0;
-+- pad_len = 0;
-+
-+ dst_link->last_bad_mtu = 0;
-+
-+diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
-+index ae39b38..626cbc4 100644
-+--- a/libknet/threads_rx.c
-++++ b/libknet/threads_rx.c
-+@@ -499,7 +499,6 @@ static void _parse_recv_from_links(knet_handle_t knet_h, int sockfd, const struc
-+ } else { /* HOSTINFO */
-+ knet_hostinfo = (struct knet_hostinfo *)inbuf->khp_data_userdata;
-+ if (knet_hostinfo->khi_bcast == KNET_HOSTINFO_UCAST) {
-+- bcast = 0;
-+ knet_hostinfo->khi_dst_node_id = ntohs(knet_hostinfo->khi_dst_node_id);
-+ }
-+ if (!_seq_num_lookup(src_host, inbuf->khp_data_seq_num, 0, 0)) {
-+diff --git a/libknet/threads_tx.c b/libknet/threads_tx.c
-+index e987eb1..8096906 100644
-+--- a/libknet/threads_tx.c
-++++ b/libknet/threads_tx.c
-+@@ -42,7 +42,6 @@ static int _dispatch_to_links(knet_handle_t knet_h, struct knet_host *dst_host,
-+ struct knet_link *cur_link;
-+
-+ for (link_idx = 0; link_idx < dst_host->active_link_entries; link_idx++) {
-+- sent_msgs = 0;
-+ prev_sent = 0;
-+ progress = 1;
-+
-+diff --git a/libknet/transport_common.c b/libknet/transport_common.c
-+index 3c3c439..fe40ad8 100644
-+--- a/libknet/transport_common.c
-++++ b/libknet/transport_common.c
-+@@ -405,7 +405,7 @@ int _is_valid_fd(knet_handle_t knet_h, int sockfd)
-+ return -1;
-+ }
-+
-+- if (sockfd > KNET_MAX_FDS) {
-++ if (sockfd >= KNET_MAX_FDS) {
-+ errno = EINVAL;
-+ return -1;
-+ }
-+@@ -430,7 +430,7 @@ int _set_fd_tracker(knet_handle_t knet_h, int sockfd, uint8_t transport, uint8_t
-+ return -1;
-+ }
-+
-+- if (sockfd > KNET_MAX_FDS) {
-++ if (sockfd >= KNET_MAX_FDS) {
-+ errno = EINVAL;
-+ return -1;
-+ }
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index bdfc98d..2c1cdcc 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -733,7 +733,6 @@ static void _handle_incoming_sctp(knet_handle_t knet_h, int listen_sock)
-+ if (knet_h->use_access_lists) {
-+ if (!check_validate(knet_h, listen_sock, KNET_TRANSPORT_SCTP, &ss)) {
-+ savederrno = EINVAL;
-+- err = -1;
-+ log_debug(knet_h, KNET_SUB_TRANSP_SCTP, "Connection rejected from %s/%s", addr_str, port_str);
-+ close(new_fd);
-+ errno = savederrno;
-+@@ -871,6 +870,7 @@ static void _handle_listen_sctp_errors(knet_handle_t knet_h)
-+ info->accepted_socks[i] = -1;
-+ free(accept_info);
-+ close(sockfd);
-++ break; /* Keeps covscan happy */
-+ }
-+ }
-+ }
-+diff --git a/libknet/transport_udp.c b/libknet/transport_udp.c
-+index e243a91..3fd69ee 100644
-+--- a/libknet/transport_udp.c
-++++ b/libknet/transport_udp.c
-+@@ -71,6 +71,7 @@ int udp_transport_link_set_config(knet_handle_t knet_h, struct knet_link *kn_lin
-+ err = -1;
-+ goto exit_error;
-+ }
-++ memset(info, 0, sizeof(udp_link_info_t));
-+
-+ sock = socket(kn_link->src_addr.ss_family, SOCK_DGRAM, 0);
-+ if (sock < 0) {
-+@@ -363,7 +364,7 @@ static int read_errs_from_sock(knet_handle_t knet_h, int sockfd)
-+ case SO_EE_ORIGIN_ICMP: /* ICMP */
-+ case SO_EE_ORIGIN_ICMP6: /* ICMP6 */
-+ origin = (struct sockaddr_storage *)(void *)SO_EE_OFFENDER(sock_err);
-+- if (knet_addrtostr(origin, sizeof(origin),
-++ if (knet_addrtostr(origin, sizeof(*origin),
-+ addr_str, KNET_MAX_HOST_LEN,
-+ port_str, KNET_MAX_PORT_LEN) < 0) {
-+ log_debug(knet_h, KNET_SUB_TRANSP_UDP, "Received ICMP error from unknown source: %s", strerror(sock_err->ee_errno));
-diff --git a/debian/patches/misc-some-coverity-fixes.patch b/debian/patches/misc-some-coverity-fixes.patch
-new file mode 100644
-index 0000000..154728f
---- /dev/null
-+++ b/debian/patches/misc-some-coverity-fixes.patch
-@@ -0,0 +1,224 @@
-+From: Christine Caulfield <ccaulfie at redhat.com>
-+Date: Fri, 17 May 2019 08:44:08 +0100
-+Subject: misc: some coverity fixes
-+
-+In rough order of seriousness:
-+
-+1. Fix clock_gettime() in pmtud so that it's always called, as
-+ variable 'clock_now' is always read.
-+2. Allow space for trailing NUL in libnozzle device names
-+3. Fix api_nozzle_run_updown_test so it can run out of the build tree
-+4. Disallow a 0 length prefix in libnozzle
-+5. Fix potential use of NULL pointer on doxyxml
-+6. Free 'name' in doxyxml as it's *not* in the map any more
-+7. Fix dead code in libknet API functions left by code changes
-+
-+(cherry picked from commit eff3f735f19d3ea4c4689a0fa52ff8e29f75808c)
-+---
-+ libknet/handle.c | 13 ++++---------
-+ libknet/host.c | 5 ++---
-+ libknet/threads_pmtud.c | 10 +++++-----
-+ libnozzle/internals.c | 2 +-
-+ libnozzle/libnozzle.c | 3 ++-
-+ libnozzle/tests/api_nozzle_run_updown.c | 9 +++++++--
-+ man/doxyxml.c | 20 ++++++++++----------
-+ 7 files changed, 31 insertions(+), 31 deletions(-)
-+
-+diff --git a/libknet/handle.c b/libknet/handle.c
-+index 0a2f75a..268d610 100644
-+--- a/libknet/handle.c
-++++ b/libknet/handle.c
-+@@ -785,7 +785,7 @@ int knet_handle_enable_sock_notify(knet_handle_t knet_h,
-+ int error,
-+ int errorno))
-+ {
-+- int savederrno = 0, err = 0;
-++ int savederrno = 0;
-+
-+ if (!knet_h) {
-+ errno = EINVAL;
-+@@ -811,8 +811,7 @@ int knet_handle_enable_sock_notify(knet_handle_t knet_h,
-+
-+ pthread_rwlock_unlock(&knet_h->global_rwlock);
-+
-+- errno = err ? savederrno : 0;
-+- return err;
-++ return 0;
-+ }
-+
-+ int knet_handle_add_datafd(knet_handle_t knet_h, int *datafd, int8_t *channel)
-+@@ -1576,7 +1575,6 @@ out_unlock:
-+ int knet_handle_get_stats(knet_handle_t knet_h, struct knet_handle_stats *stats, size_t struct_size)
-+ {
-+ int savederrno = 0;
-+- int err = 0;
-+
-+ if (!knet_h) {
-+ errno = EINVAL;
-+@@ -1616,14 +1614,12 @@ int knet_handle_get_stats(knet_handle_t knet_h, struct knet_handle_stats *stats,
-+ stats->size = sizeof(struct knet_handle_stats);
-+
-+ pthread_rwlock_unlock(&knet_h->global_rwlock);
-+- errno = err ? savederrno : 0;
-+- return err;
-++ return 0;
-+ }
-+
-+ int knet_handle_clear_stats(knet_handle_t knet_h, int clear_option)
-+ {
-+ int savederrno = 0;
-+- int err = 0;
-+
-+ if (!knet_h) {
-+ errno = EINVAL;
-+@@ -1651,7 +1647,6 @@ int knet_handle_clear_stats(knet_handle_t knet_h, int clear_option)
-+ }
-+
-+ pthread_rwlock_unlock(&knet_h->global_rwlock);
-+- errno = err ? savederrno : 0;
-+- return err;
-++ return 0;
-+ }
-+
-+diff --git a/libknet/host.c b/libknet/host.c
-+index 480db73..66826c1 100644
-+--- a/libknet/host.c
-++++ b/libknet/host.c
-+@@ -331,7 +331,7 @@ int knet_host_get_id_by_host_name(knet_handle_t knet_h, const char *name,
-+ int knet_host_get_host_list(knet_handle_t knet_h,
-+ knet_node_id_t *host_ids, size_t *host_ids_entries)
-+ {
-+- int savederrno = 0, err = 0;
-++ int savederrno = 0;
-+
-+ if (!knet_h) {
-+ errno = EINVAL;
-+@@ -355,8 +355,7 @@ int knet_host_get_host_list(knet_handle_t knet_h,
-+ *host_ids_entries = knet_h->host_ids_entries;
-+
-+ pthread_rwlock_unlock(&knet_h->global_rwlock);
-+- errno = err ? savederrno : 0;
-+- return err;
-++ return 0;
-+ }
-+
-+ int knet_host_set_policy(knet_handle_t knet_h, knet_node_id_t host_id,
-+diff --git a/libknet/threads_pmtud.c b/libknet/threads_pmtud.c
-+index 0050557..c5a2b27 100644
-+--- a/libknet/threads_pmtud.c
-++++ b/libknet/threads_pmtud.c
-+@@ -380,14 +380,14 @@ static int _handle_check_pmtud(knet_handle_t knet_h, struct knet_host *dst_host,
-+ struct timespec clock_now;
-+ unsigned long long diff_pmtud, interval;
-+
-++ if (clock_gettime(CLOCK_MONOTONIC, &clock_now) != 0) {
-++ log_debug(knet_h, KNET_SUB_PMTUD, "Unable to get monotonic clock");
-++ return 0;
-++ }
-++
-+ if (!force_run) {
-+ interval = knet_h->pmtud_interval * 1000000000llu; /* nanoseconds */
-+
-+- if (clock_gettime(CLOCK_MONOTONIC, &clock_now) != 0) {
-+- log_debug(knet_h, KNET_SUB_PMTUD, "Unable to get monotonic clock");
-+- return 0;
-+- }
-+-
-+ timespec_diff(dst_link->pmtud_last, clock_now, &diff_pmtud);
-+
-+ if (diff_pmtud < interval) {
-+diff --git a/libnozzle/internals.c b/libnozzle/internals.c
-+index 6e68346..f056e3b 100644
-+--- a/libnozzle/internals.c
-++++ b/libnozzle/internals.c
-+@@ -144,7 +144,7 @@ char *generate_v4_broadcast(const char *ipaddr, const char *prefix)
-+
-+ prefix_len = atoi(prefix);
-+
-+- if ((prefix_len > 32) || (prefix_len < 0))
-++ if ((prefix_len > 32) || (prefix_len <= 0))
-+ return NULL;
-+
-+ if (inet_pton(AF_INET, ipaddr, &address) <= 0)
-+diff --git a/libnozzle/libnozzle.c b/libnozzle/libnozzle.c
-+index 4e5a2d4..b6e9566 100644
-+--- a/libnozzle/libnozzle.c
-++++ b/libnozzle/libnozzle.c
-+@@ -405,7 +405,8 @@ nozzle_t nozzle_open(char *devname, size_t devname_size, const char *updownpath)
-+ return NULL;
-+ }
-+
-+- if (strlen(devname) > IFNAMSIZ) {
-++ /* Need to allow space for trailing NUL */
-++ if (strlen(devname) >= IFNAMSIZ) {
-+ errno = E2BIG;
-+ return NULL;
-+ }
-+diff --git a/libnozzle/tests/api_nozzle_run_updown.c b/libnozzle/tests/api_nozzle_run_updown.c
-+index a078ad7..c80216a 100644
-+--- a/libnozzle/tests/api_nozzle_run_updown.c
-++++ b/libnozzle/tests/api_nozzle_run_updown.c
-+@@ -29,16 +29,21 @@ static int test(void)
-+ nozzle_t nozzle = NULL;
-+ char *error_string = NULL;
-+ char *tmpdir = NULL;
-+- char tmpdirsrc[PATH_MAX];
-++ char tmpdirsrc[PATH_MAX*2];
-+ char tmpstr[PATH_MAX*2];
-+ char srcfile[PATH_MAX];
-+ char dstfile[PATH_MAX];
-++ char current_dir[PATH_MAX];
-+
-+ /*
-+ * create a tmp dir for storing up/down scripts.
-+ * we cannot create symlinks src dir
-+ */
-+- strcpy(tmpdirsrc, ABSBUILDDIR "/nozzle_test_XXXXXX");
-++ if (getcwd(current_dir, sizeof(current_dir)) == NULL) {
-++ printf("Unable to get current working directory: %s\n", strerror(errno));
-++ return -1;
-++ }
-++ snprintf(tmpdirsrc, sizeof(tmpdirsrc)-1, "%s/nozzle_test_XXXXXX", current_dir);
-+
-+ tmpdir = mkdtemp(tmpdirsrc);
-+ if (!tmpdir) {
-+diff --git a/man/doxyxml.c b/man/doxyxml.c
-+index b623711..7d9a60c 100644
-+--- a/man/doxyxml.c
-++++ b/man/doxyxml.c
-+@@ -695,17 +695,17 @@ static void collect_enums(xmlNode *cur_node, void *arg)
-+ }
-+ }
-+
-+- si = malloc(sizeof(struct struct_info));
-+- if (si) {
-+- si->kind = STRUCTINFO_ENUM;
-+- qb_list_init(&si->params_list);
-+- si->structname = strdup(name);
-+- traverse_node(cur_node, "enumvalue", read_struct, si);
-+- qb_map_put(structures_map, refid, si);
-++ if (name) {
-++ si = malloc(sizeof(struct struct_info));
-++ if (si) {
-++ si->kind = STRUCTINFO_ENUM;
-++ qb_list_init(&si->params_list);
-++ si->structname = strdup(name);
-++ traverse_node(cur_node, "enumvalue", read_struct, si);
-++ qb_map_put(structures_map, refid, si);
-++ }
-+ }
-+-
-+ }
-+-
-+ }
-+ }
-+
-+@@ -786,7 +786,7 @@ static void traverse_members(xmlNode *cur_node, void *arg)
-+ free(kind);
-+ free(def);
-+ free(args);
-+-// free(name); /* don't free, it's in the map */
-++ free(name);
-+ }
-+ }
-+
-diff --git a/debian/patches/spec-be-more-strict-about-plugins-version-and-architectur.patch b/debian/patches/spec-be-more-strict-about-plugins-version-and-architectur.patch
-new file mode 100644
-index 0000000..7650221
---- /dev/null
-+++ b/debian/patches/spec-be-more-strict-about-plugins-version-and-architectur.patch
-@@ -0,0 +1,167 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 25 Feb 2018 09:08:10 +0100
-+Subject: [spec] be more strict about plugins version and architecture
-+ depedencies
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 851525b90235db236cc4bf88a66ed5f7c54ed9f6)
-+---
-+ kronosnet.spec.in | 42 +++++++++++++++++++++---------------------
-+ 1 file changed, 21 insertions(+), 21 deletions(-)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index 3b597d0..de31656 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -363,7 +363,7 @@ Summary: Simple userland wrapper around kernel tap devices
-+ %package -n libnozzle1-devel
-+ Group: Development/Libraries
-+ Summary: Simple userland wrapper around kernel tap devices (developer files)
-+-Requires: libnozzle1 = %{version}-%{release}
-++Requires: libnozzle1%{_isa} = %{version}-%{release}
-+ Requires: pkgconfig
-+
-+ %description -n libnozzle1-devel
-+@@ -402,7 +402,7 @@ Summary: Kronosnet core switching implementation
-+ %package -n libknet1-devel
-+ Group: Development/Libraries
-+ Summary: Kronosnet core switching implementation (developer files)
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+ Requires: pkgconfig
-+
-+ %description -n libknet1-devel
-+@@ -424,7 +424,7 @@ Requires: pkgconfig
-+ %package -n libknet1-crypto-nss-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 nss support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-crypto-nss-plugin
-+ NSS crypto support for libknet1.
-+@@ -438,7 +438,7 @@ Requires: libknet1 = %{version}-%{release}
-+ %package -n libknet1-crypto-openssl-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 openssl support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-crypto-openssl-plugin
-+ OpenSSL crypto support for libknet1.
-+@@ -452,7 +452,7 @@ Requires: libknet1 = %{version}-%{release}
-+ %package -n libknet1-compress-zlib-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 zlib support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-zlib-plugin
-+ zlib compression support for libknet1.
-+@@ -465,7 +465,7 @@ Requires: libknet1 = %{version}-%{release}
-+ %package -n libknet1-compress-lz4-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 lz4 and lz4hc support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-lz4-plugin
-+ lz4 and lz4hc compression support for libknet1.
-+@@ -480,7 +480,7 @@ Requires: libknet1 = %{version}-%{release}
-+ %package -n libknet1-compress-lzo2-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 lzo2 support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-lzo2-plugin
-+ lzo2 compression support for libknet1.
-+@@ -494,7 +494,7 @@ Requires: libknet1 = %{version}-%{release}
-+ %package -n libknet1-compress-lzma-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 lzma support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-lzma-plugin
-+ lzma compression support for libknet1.
-+@@ -508,7 +508,7 @@ Requires: libknet1 = %{version}-%{release}
-+ %package -n libknet1-compress-bzip2-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 bzip2 support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-bzip2-plugin
-+ bzip2 compression support for libknet1.
-+@@ -522,7 +522,7 @@ Requires: libknet1 = %{version}-%{release}
-+ %package -n libknet1-compress-zstd-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 zstd support
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-zstd-plugin
-+ zstd compression support for libknet1.
-+@@ -536,10 +536,10 @@ Requires: libknet1 = %{version}-%{release}
-+ Group: System Environment/Libraries
-+ Summary: libknet1 crypto plugins meta package
-+ %if %{defined buildcryptonss}
-+-Requires: libknet1-crypto-nss-plugin
-++Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+ %if %{defined buildcryptoopenssl}
-+-Requires: libknet1-crypto-openssl-plugin
-++Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+
-+ %description -n libknet1-crypto-plugins-all
-+@@ -551,22 +551,22 @@ Requires: libknet1-crypto-openssl-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 compress plugins meta package
-+ %if %{defined buildcompresszlib}
-+-Requires: libknet1-compress-zlib-plugin
-++Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+ %if %{defined buildcompresslz4}
-+-Requires: libknet1-compress-lz4-plugin
-++Requires: libknet1-compress-lz4-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+ %if %{defined buildcompresslzo2}
-+-Requires: libknet1-compress-lzo2-plugin
-++Requires: libknet1-compress-lzo2-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+ %if %{defined buildcompresslzma}
-+-Requires: libknet1-compress-lzma-plugin
-++Requires: libknet1-compress-lzma-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+ %if %{defined buildcompressbzip2}
-+-Requires: libknet1-compress-bzip2-plugin
-++Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+ %if %{defined buildcompresszstd}
-+-Requires: libknet1-compress-zstd-plugin
-++Requires: libknet1-compress-zstd-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+
-+ %description -n libknet1-compress-plugins-all
-+@@ -577,8 +577,8 @@ Requires: libknet1-compress-zstd-plugin
-+ %package -n libknet1-plugins-all
-+ Group: System Environment/Libraries
-+ Summary: libknet1 plugins meta package
-+-Requires: libknet1-compress-plugins-all
-+-Requires: libknet1-crypto-plugins-all
-++Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release}
-++Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-plugins-all
-+ meta package to install all of libknet1 plugins
-+@@ -589,7 +589,7 @@ Requires: libknet1-crypto-plugins-all
-+ %package -n kronosnet-tests
-+ Group: System Environment/Libraries
-+ Summary: kronosnet test suite
-+-Requires: libknet1 = %{version}-%{release}
-++Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n kronosnet-tests
-+ this package contains all the libknet and libnozzle test suite
-diff --git a/debian/patches/spec-clean-up-useless-conditionals-and-defines.patch b/debian/patches/spec-clean-up-useless-conditionals-and-defines.patch
-new file mode 100644
-index 0000000..3e7dfa5
---- /dev/null
-+++ b/debian/patches/spec-clean-up-useless-conditionals-and-defines.patch
-@@ -0,0 +1,376 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 12 May 2019 07:22:41 +0200
-+Subject: [spec] clean up useless conditionals and defines
-+
-+fix a couple of minor conditionals in the process
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit dd66ce8b6389772de79e576d6eea542633594cf1)
-+---
-+ kronosnet.spec.in | 144 ++++++++++++++++++++----------------------------------
-+ 1 file changed, 52 insertions(+), 92 deletions(-)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index de31656..b5632ae 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -37,50 +37,6 @@
-+ %undefine _enable_debug_packages
-+ %endif
-+
-+-%if %{with sctp}
-+-%global buildsctp 1
-+-%endif
-+-%if %{with nss}
-+-%global buildcryptonss 1
-+-%endif
-+-%if %{with openssl}
-+-%global buildcryptoopenssl 1
-+-%endif
-+-%if %{with zlib}
-+-%global buildcompresszlib 1
-+-%endif
-+-%if %{with lz4}
-+-%global buildcompresslz4 1
-+-%endif
-+-%if %{with lzo2}
-+-%global buildcompresslzo2 1
-+-%endif
-+-%if %{with lzma}
-+-%global buildcompresslzma 1
-+-%endif
-+-%if %{with bzip2}
-+-%global buildcompressbzip2 1
-+-%endif
-+-%if %{with zstd}
-+-%global buildcompresszstd 1
-+-%endif
-+-%if %{with libnozzle}
-+-%global buildlibnozzle 1
-+-%endif
-+-%if %{with kronosnetd}
-+-%global buildlibnozzle 1
-+-%global buildkronosnetd 1
-+-%endif
-+-%if %{with runautogen}
-+-%global buildautogen 1
-+-%endif
-+-%if %{with buildman}
-+-%global buildmanpages 1
-+-%endif
-+-%if %{with installtests}
-+-%global installtestsuite 1
-+-%endif
-+-
-+ # main (empty) package
-+ # http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
-+
-+@@ -100,62 +56,60 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
-+ # Build dependencies
-+ BuildRequires: gcc
-+ # required to build man pages
-+-%if %{defined buildmanpages}
-++%if %{with buildman}
-+ BuildRequires: libqb-devel libxml2-devel doxygen
-+ %endif
-+-%if %{defined buildsctp}
-++%if %{with sctp}
-+ BuildRequires: lksctp-tools-devel
-+ %endif
-+-%if %{defined buildcryptonss}
-++%if %{with nss}
-+ %if 0%{?suse_version}
-+ BuildRequires: mozilla-nss-devel
-+ %else
-+ BuildRequires: nss-devel
-+ %endif
-+ %endif
-+-%if %{defined buildcryptoopenssl}
-++%if %{with openssl}
-+ %if 0%{?suse_version}
-+ BuildRequires: libopenssl-devel
-+ %else
-+ BuildRequires: openssl-devel
-+ %endif
-+ %endif
-+-%if %{defined buildcompresszlib}
-++%if %{with zlib}
-+ BuildRequires: zlib-devel
-+ %endif
-+-%if %{defined buildcompresslz4}
-++%if %{with lz4}
-+ %if 0%{?suse_version}
-+ BuildRequires: liblz4-devel
-+ %else
-+ BuildRequires: lz4-devel
-+ %endif
-+ %endif
-+-%if %{defined buildcompresslzo2}
-++%if %{with lzo2}
-+ BuildRequires: lzo-devel
-+ %endif
-+-%if %{defined buildcompresslzma}
-++%if %{with lzma}
-+ BuildRequires: xz-devel
-+ %endif
-+-%if %{defined buildcompressbzip2}
-++%if %{with bzip2}
-+ %if 0%{?suse_version}
-+ BuildRequires: libbz2-devel
-+ %else
-+ BuildRequires: bzip2-devel
-+ %endif
-+ %endif
-+-%if %{defined buildcompresszstd}
-++%if %{with zstd}
-+ BuildRequires: libzstd-devel
-+ %endif
-+-%if %{defined buildkronosnetd}
-++%if %{with kronosnetd}
-+ BuildRequires: pam-devel
-+ %endif
-+-%if %{defined buildlibnozzle}
-++%if %{with libnozzle}
-+ BuildRequires: libnl3-devel
-+ %endif
-+-%if %{defined buildautogen}
-+-BuildRequires: autoconf
-+-BuildRequires: automake
-+-BuildRequires: libtool
-++%if %{with runautogen}
-++BuildRequires: autoconf automake libtool
-+ %endif
-+
-+ %prep
-+@@ -167,66 +121,70 @@ BuildRequires: libtool
-+ %endif
-+
-+ %{configure} \
-+-%if %{defined installtestsuite}
-++%if %{with installtests}
-+ --enable-install-tests \
-+ %else
-+ --disable-install-tests \
-+ %endif
-+-%if %{defined buildmanpages}
-++%if %{with buildman}
-+ --enable-man \
-+ %else
-+ --disable-man \
-+ %endif
-+-%if %{defined buildsctp}
-++%if %{with sctp}
-+ --enable-libknet-sctp \
-+ %else
-+ --disable-libknet-sctp \
-+ %endif
-+-%if %{defined buildcryptonss}
-++%if %{with nss}
-+ --enable-crypto-nss \
-+ %else
-+ --disable-crypto-nss \
-+ %endif
-+-%if %{defined buildcryptoopenssl}
-++%if %{with openssl}
-+ --enable-crypto-openssl \
-+ %else
-+ --disable-crypto-openssl \
-+ %endif
-+-%if %{defined buildcompresszlib}
-++%if %{with zlib}
-+ --enable-compress-zlib \
-+ %else
-+ --disable-compress-zlib \
-+ %endif
-+-%if %{defined buildcompresslz4}
-++%if %{with lz4}
-+ --enable-compress-lz4 \
-+ %else
-+ --disable-compress-lz4 \
-+ %endif
-+-%if %{defined buildcompresslzo2}
-++%if %{with lzo2}
-+ --enable-compress-lzo2 \
-+ %else
-+ --disable-compress-lzo2 \
-+ %endif
-+-%if %{defined buildcompresslzma}
-++%if %{with lzma}
-+ --enable-compress-lzma \
-+ %else
-+ --disable-compress-lzma \
-+ %endif
-+-%if %{defined buildcompressbzip2}
-++%if %{with bzip2}
-+ --enable-compress-bzip2 \
-+ %else
-+ --disable-compress-bzip2 \
-+ %endif
-+-%if %{defined buildcompresszstd}
-++%if %{with zstd}
-+ --enable-compress-zstd \
-+ %else
-+ --disable-compress-zstd \
-+ %endif
-+-%if %{defined buildkronosnetd}
-++%if %{with kronosnetd}
-+ --enable-kronosnetd \
-++%else
-++ --disable-kronosnetd \
-+ %endif
-+-%if %{defined buildlibnozzle}
-++%if %{with libnozzle}
-+ --enable-libnozzle \
-++%else
-++ --disable-libnozzle \
-+ %endif
-+ --with-initdefaultdir=%{_sysconfdir}/sysconfig/ \
-+ %if %{defined _unitdir}
-+@@ -266,7 +224,7 @@ rm -rf %{buildroot}
-+ %description
-+ kronosnet source
-+
-+-%if %{defined buildkronosnetd}
-++%if %{with kronosnetd}
-+ ## Runtime and subpackages section
-+ %package -n kronosnetd
-+ Group: System Environment/Base
-+@@ -341,7 +299,7 @@ fi
-+ %{_mandir}/man8/*
-+ %endif
-+
-+-%if %{defined buildlibnozzle}
-++%if %{with libnozzle}
-+ %package -n libnozzle1
-+ Group: System Environment/Libraries
-+ Summary: Simple userland wrapper around kernel tap devices
-+@@ -377,8 +335,10 @@ Requires: pkgconfig
-+ %{_libdir}/libnozzle.so
-+ %{_includedir}/libnozzle.h
-+ %{_libdir}/pkgconfig/libnozzle.pc
-++%if %{with buildman}
-+ %{_mandir}/man3/nozzle*.3.gz
-+ %endif
-++%endif
-+
-+ %package -n libknet1
-+ Group: System Environment/Libraries
-+@@ -416,11 +376,11 @@ Requires: pkgconfig
-+ %{_libdir}/libknet.so
-+ %{_includedir}/libknet.h
-+ %{_libdir}/pkgconfig/libknet.pc
-+-%if %{defined buildmanpages}
-++%if %{with buildman}
-+ %{_mandir}/man3/knet*.3.gz
-+ %endif
-+
-+-%if %{defined buildcryptonss}
-++%if %{with nss}
-+ %package -n libknet1-crypto-nss-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 nss support
-+@@ -434,7 +394,7 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %{_libdir}/kronosnet/crypto_nss.so
-+ %endif
-+
-+-%if %{defined buildcryptoopenssl}
-++%if %{with openssl}
-+ %package -n libknet1-crypto-openssl-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 openssl support
-+@@ -448,7 +408,7 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %{_libdir}/kronosnet/crypto_openssl.so
-+ %endif
-+
-+-%if %{defined buildcompresszlib}
-++%if %{with zlib}
-+ %package -n libknet1-compress-zlib-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 zlib support
-+@@ -461,7 +421,7 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/compress_zlib.so
-+ %endif
-+-%if %{defined buildcompresslz4}
-++%if %{with lz4}
-+ %package -n libknet1-compress-lz4-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 lz4 and lz4hc support
-+@@ -476,7 +436,7 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %{_libdir}/kronosnet/compress_lz4hc.so
-+ %endif
-+
-+-%if %{defined buildcompresslzo2}
-++%if %{with lzo2}
-+ %package -n libknet1-compress-lzo2-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 lzo2 support
-+@@ -490,7 +450,7 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %{_libdir}/kronosnet/compress_lzo2.so
-+ %endif
-+
-+-%if %{defined buildcompresslzma}
-++%if %{with lzma}
-+ %package -n libknet1-compress-lzma-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 lzma support
-+@@ -504,7 +464,7 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %{_libdir}/kronosnet/compress_lzma.so
-+ %endif
-+
-+-%if %{defined buildcompressbzip2}
-++%if %{with bzip2}
-+ %package -n libknet1-compress-bzip2-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 bzip2 support
-+@@ -518,7 +478,7 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %{_libdir}/kronosnet/compress_bzip2.so
-+ %endif
-+
-+-%if %{defined buildcompresszstd}
-++%if %{with zstd}
-+ %package -n libknet1-compress-zstd-plugin
-+ Group: System Environment/Libraries
-+ Summary: libknet1 zstd support
-+@@ -535,10 +495,10 @@ Requires: libknet1%{_isa} = %{version}-%{release}
-+ %package -n libknet1-crypto-plugins-all
-+ Group: System Environment/Libraries
-+ Summary: libknet1 crypto plugins meta package
-+-%if %{defined buildcryptonss}
-++%if %{with nss}
-+ Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+-%if %{defined buildcryptoopenssl}
-++%if %{with openssl}
-+ Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+
-+@@ -550,22 +510,22 @@ Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
-+ %package -n libknet1-compress-plugins-all
-+ Group: System Environment/Libraries
-+ Summary: libknet1 compress plugins meta package
-+-%if %{defined buildcompresszlib}
-++%if %{with zlib}
-+ Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+-%if %{defined buildcompresslz4}
-++%if %{with lz4}
-+ Requires: libknet1-compress-lz4-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+-%if %{defined buildcompresslzo2}
-++%if %{with lzo2}
-+ Requires: libknet1-compress-lzo2-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+-%if %{defined buildcompresslzma}
-++%if %{with lzma}
-+ Requires: libknet1-compress-lzma-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+-%if %{defined buildcompressbzip2}
-++%if %{with bzip2}
-+ Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+-%if %{defined buildcompresszstd}
-++%if %{with zstd}
-+ Requires: libknet1-compress-zstd-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+
-diff --git a/debian/patches/spec-drop-support-for-init-scripts.patch b/debian/patches/spec-drop-support-for-init-scripts.patch
-new file mode 100644
-index 0000000..16d60d8
---- /dev/null
-+++ b/debian/patches/spec-drop-support-for-init-scripts.patch
-@@ -0,0 +1,108 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 14 May 2019 05:53:12 +0200
-+Subject: [spec] drop support for init scripts
-+
-+no rpm distros left that support old fashion init scripts
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 1fc28307dc2b537abd30eab8b6920f2b6893e786)
-+---
-+ kronosnet.spec.in | 46 ++--------------------------------------------
-+ 1 file changed, 2 insertions(+), 44 deletions(-)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index ddc3af0..8c60125 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -182,11 +182,7 @@ BuildRequires: autoconf automake libtool
-+ --disable-libnozzle \
-+ %endif
-+ --with-initdefaultdir=%{_sysconfdir}/sysconfig/ \
-+-%if %{defined _unitdir}
-+ --with-systemddir=%{_unitdir}
-+-%else
-+- --with-initddir=%{_sysconfdir}/rc.d/init.d/
-+-%endif
-+
-+ make %{_smp_mflags}
-+
-+@@ -200,14 +196,8 @@ find %{buildroot} -name "*.a" -exec rm {} \;
-+ # remove libtools leftovers
-+ find %{buildroot} -name "*.la" -exec rm {} \;
-+
-+-# handle systemd vs init script
-+-%if %{defined _unitdir}
-+ # remove init scripts
-+ rm -rf %{buildroot}/etc/init.d
-+-%else
-+-# remove systemd specific bits
-+-find %{buildroot} -name "*.service" -exec rm {} \;
-+-%endif
-+
-+ # remove docs
-+ rm -rf %{buildroot}/usr/share/doc/kronosnet
-+@@ -221,16 +211,10 @@ rm -rf %{buildroot}/usr/share/doc/kronosnet
-+ %package -n kronosnetd
-+ Summary: Multipoint-to-Multipoint VPN daemon
-+ License: GPLv2+
-+-%if %{defined _unitdir}
-+-# Needed for systemd unit
-+ Requires(post): systemd-sysv
-+ Requires(post): systemd-units
-+ Requires(preun): systemd-units
-+ Requires(postun): systemd-units
-+-%else
-+-Requires(post): chkconfig
-+-Requires(preun): chkconfig, initscripts
-+-%endif
-+ Requires(post): shadow-utils
-+ Requires(preun): shadow-utils
-+ Requires: pam, /etc/pam.d/passwd
-+@@ -246,33 +230,11 @@ Requires: pam, /etc/pam.d/passwd
-+ or service disruption.
-+
-+ %post -n kronosnetd
-+-%if %{defined _unitdir}
-+- %if 0%{?systemd_post:1}
-+- %systemd_post kronosnetd.service
-+- %else
-+- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
-+- %endif
-+-%else
-+-/sbin/chkconfig --add kronosnetd
-+-%endif
-++%systemd_post kronosnetd.service
-+ getent group @defaultadmgroup@ >/dev/null || groupadd --force --system @defaultadmgroup@
-+
-+ %preun -n kronosnetd
-+-%if %{defined _unitdir}
-+- %if 0%{?systemd_preun:1}
-+- %systemd_preun kronosnetd.service
-+- %else
-+-if [ "$1" -eq 0 ]; then
-+- /bin/systemctl --no-reload disable kronosnetd.service
-+- /bin/systemctl stop kronosnetd.service >/dev/null 2>&1
-+-fi
-+-%endif
-+-%else
-+-if [ "$1" = 0 ]; then
-+- /sbin/service kronosnetd stop >/dev/null 2>&1
-+- /sbin/chkconfig --del kronosnetd
-+-fi
-+-%endif
-++%systemd_preun kronosnetd.service
-+
-+ %files -n kronosnetd
-+ %license COPYING.* COPYRIGHT
-+@@ -281,11 +243,7 @@ fi
-+ %config(noreplace) %{_sysconfdir}/sysconfig/kronosnetd
-+ %config(noreplace) %{_sysconfdir}/pam.d/kronosnetd
-+ %config(noreplace) %{_sysconfdir}/logrotate.d/kronosnetd
-+-%if %{defined _unitdir}
-+ %{_unitdir}/kronosnetd.service
-+-%else
-+-%config(noreplace) %{_sysconfdir}/rc.d/init.d/kronosnetd
-+-%endif
-+ %{_sbindir}/*
-+ %{_mandir}/man8/*
-+ %endif
-diff --git a/debian/patches/spec-fix-a-bunch-of-rpmlint-errors.patch b/debian/patches/spec-fix-a-bunch-of-rpmlint-errors.patch
-new file mode 100644
-index 0000000..1066070
---- /dev/null
-+++ b/debian/patches/spec-fix-a-bunch-of-rpmlint-errors.patch
-@@ -0,0 +1,51 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Mon, 13 May 2019 06:55:36 +0200
-+Subject: [spec] fix a bunch of rpmlint errors
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 95198f0dc5b8a4eefe06b58fa1901740209b42a0)
-+---
-+ kronosnet.spec.in | 9 +++++----
-+ 1 file changed, 5 insertions(+), 4 deletions(-)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index a6c87a0..ddc3af0 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -340,6 +340,7 @@ License: LGPLv2+
-+ %license COPYING.* COPYRIGHT
-+ %{_libdir}/libknet.so.*
-+ %dir %{_libdir}/kronosnet
-++
-+ %ldconfig_scriptlets -n libknet1
-+
-+ %package -n libknet1-devel
-+@@ -505,24 +506,24 @@ Requires: libknet1-compress-zstd-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+
-+ %description -n libknet1-compress-plugins-all
-+- Provides meta package to install all of libknet1 compress plugins
-++ Meta package to install all of libknet1 compress plugins
-+
-+ %files -n libknet1-compress-plugins-all
-+
-+ %package -n libknet1-plugins-all
-+-Summary: libknet1 plugins meta package
-++Summary: Provides libknet1 plugins meta package
-+ License: LGPLv2+
-+ Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release}
-+ Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-plugins-all
-+- Provides meta package to install all of libknet1 plugins
-++ Meta package to install all of libknet1 plugins
-+
-+ %files -n libknet1-plugins-all
-+
-+ %if %{with installtests}
-+ %package -n kronosnet-tests
-+-Summary: kronosnet test suite
-++Summary: Provides kronosnet test suite
-+ License: GPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-diff --git a/debian/patches/spec-fix-upstream-URLs-to-point-to-https-and-official-rel.patch b/debian/patches/spec-fix-upstream-URLs-to-point-to-https-and-official-rel.patch
-new file mode 100644
-index 0000000..d8c82f8
---- /dev/null
-+++ b/debian/patches/spec-fix-upstream-URLs-to-point-to-https-and-official-rel.patch
-@@ -0,0 +1,30 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 12 May 2019 06:59:00 +0200
-+Subject: [spec] fix upstream URLs to point to https and official release repo
-+
-+Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1708616
-+
-+also to be noted, the Source0: line is different from upstream and Fedora
-+because upstream can handle tarballs during development
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 5884f8dfc6cf4e648e033da855f8c77eafae84df)
-+---
-+ kronosnet.spec.in | 4 ++--
-+ 1 file changed, 2 insertions(+), 2 deletions(-)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index 442f3ae..e430ad2 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -90,8 +90,8 @@ Version: @version@
-+ Release: 1%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
-+ License: GPLv2+ and LGPLv2+
-+ Group: System Environment/Base
-+-URL: https://github.com/kronosnet/kronosnet/
-+-Source0: https://github.com/kronosnet/kronosnet/archive/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz
-++URL: https://kronosnet.org
-++Source0: https://kronosnet.org/releases/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz
-+
-+ ## Setup/build bits
-+
-diff --git a/debian/patches/spec-reconciliate-fedora-spec-file-into-upstream-spec-fil.patch b/debian/patches/spec-reconciliate-fedora-spec-file-into-upstream-spec-fil.patch
-new file mode 100644
-index 0000000..00a6b28
---- /dev/null
-+++ b/debian/patches/spec-reconciliate-fedora-spec-file-into-upstream-spec-fil.patch
-@@ -0,0 +1,374 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Mon, 13 May 2019 06:02:06 +0200
-+Subject: [spec] reconciliate fedora spec file into upstream spec file (part 1)
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit d880374fbff2ebe404f2bbae95c988aa21e60280)
-+---
-+ kronosnet.spec.in | 130 ++++++++++++++++++++++--------------------------------
-+ 1 file changed, 52 insertions(+), 78 deletions(-)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index b5632ae..a6c87a0 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -45,14 +45,9 @@ Summary: Multipoint-to-Multipoint VPN daemon
-+ Version: @version@
-+ Release: 1%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
-+ License: GPLv2+ and LGPLv2+
-+-Group: System Environment/Base
-+ URL: https://kronosnet.org
-+ Source0: https://kronosnet.org/releases/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz
-+
-+-## Setup/build bits
-+-
-+-BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
-+-
-+ # Build dependencies
-+ BuildRequires: gcc
-+ # required to build man pages
-+@@ -117,7 +112,7 @@ BuildRequires: autoconf automake libtool
-+
-+ %build
-+ %if %{with runautogen}
-+- ./autogen.sh
-++./autogen.sh
-+ %endif
-+
-+ %{configure} \
-+@@ -217,18 +212,15 @@ find %{buildroot} -name "*.service" -exec rm {} \;
-+ # remove docs
-+ rm -rf %{buildroot}/usr/share/doc/kronosnet
-+
-+-%clean
-+-rm -rf %{buildroot}
-+-
-+ # main empty package
-+ %description
-+-kronosnet source
-++ The kronosnet source
-+
-+ %if %{with kronosnetd}
-+ ## Runtime and subpackages section
-+ %package -n kronosnetd
-+-Group: System Environment/Base
-+ Summary: Multipoint-to-Multipoint VPN daemon
-++License: GPLv2+
-+ %if %{defined _unitdir}
-+ # Needed for systemd unit
-+ Requires(post): systemd-sysv
-+@@ -239,8 +231,8 @@ Requires(postun): systemd-units
-+ Requires(post): chkconfig
-+ Requires(preun): chkconfig, initscripts
-+ %endif
-+-Requires(post): shadow-utils
-+-Requires(preun): shadow-utils
-++Requires(post): shadow-utils
-++Requires(preun): shadow-utils
-+ Requires: pam, /etc/pam.d/passwd
-+
-+ %description -n kronosnetd
-+@@ -263,7 +255,7 @@ Requires: pam, /etc/pam.d/passwd
-+ %else
-+ /sbin/chkconfig --add kronosnetd
-+ %endif
-+-/usr/sbin/groupadd --force --system @defaultadmgroup@
-++getent group @defaultadmgroup@ >/dev/null || groupadd --force --system @defaultadmgroup@
-+
-+ %preun -n kronosnetd
-+ %if %{defined _unitdir}
-+@@ -283,8 +275,7 @@ fi
-+ %endif
-+
-+ %files -n kronosnetd
-+-%defattr(-,root,root,-)
-+-%doc COPYING.* COPYRIGHT
-++%license COPYING.* COPYRIGHT
-+ %dir %{_sysconfdir}/kronosnet
-+ %dir %{_sysconfdir}/kronosnet/*
-+ %config(noreplace) %{_sysconfdir}/sysconfig/kronosnetd
-+@@ -301,8 +292,8 @@ fi
-+
-+ %if %{with libnozzle}
-+ %package -n libnozzle1
-+-Group: System Environment/Libraries
-+ Summary: Simple userland wrapper around kernel tap devices
-++License: LGPLv2+
-+
-+ %description -n libnozzle1
-+ This is an over-engineered commodity library to manage a pool
-+@@ -310,17 +301,14 @@ Summary: Simple userland wrapper around kernel tap devices
-+ pre-up.d/up.d/down.d/post-down.d infrastructure.
-+
-+ %files -n libnozzle1
-+-%defattr(-,root,root,-)
-+-%doc COPYING.* COPYRIGHT
-++%license COPYING.* COPYRIGHT
-+ %{_libdir}/libnozzle.so.*
-+
-+-%post -n libnozzle1 -p /sbin/ldconfig
-+-
-+-%postun -n libnozzle1 -p /sbin/ldconfig
-++%ldconfig_scriptlets -n libnozzle1
-+
-+ %package -n libnozzle1-devel
-+-Group: Development/Libraries
-+ Summary: Simple userland wrapper around kernel tap devices (developer files)
-++License: LGPLv2+
-+ Requires: libnozzle1%{_isa} = %{version}-%{release}
-+ Requires: pkgconfig
-+
-+@@ -330,8 +318,7 @@ Requires: pkgconfig
-+ pre-up.d/up.d/down.d/post-down.d infrastructure.
-+
-+ %files -n libnozzle1-devel
-+-%defattr(-,root,root,-)
-+-%doc COPYING.* COPYRIGHT
-++%license COPYING.* COPYRIGHT
-+ %{_libdir}/libnozzle.so
-+ %{_includedir}/libnozzle.h
-+ %{_libdir}/pkgconfig/libnozzle.pc
-+@@ -341,8 +328,8 @@ Requires: pkgconfig
-+ %endif
-+
-+ %package -n libknet1
-+-Group: System Environment/Libraries
-+ Summary: Kronosnet core switching implementation
-++License: LGPLv2+
-+
-+ %description -n libknet1
-+ The whole kronosnet core is implemented in this library.
-+@@ -350,18 +337,14 @@ Summary: Kronosnet core switching implementation
-+ information.
-+
-+ %files -n libknet1
-+-%defattr(-,root,root,-)
-+-%doc COPYING.* COPYRIGHT
-++%license COPYING.* COPYRIGHT
-+ %{_libdir}/libknet.so.*
-+ %dir %{_libdir}/kronosnet
-+-
-+-%post -n libknet1 -p /sbin/ldconfig
-+-
-+-%postun -n libknet1 -p /sbin/ldconfig
-++%ldconfig_scriptlets -n libknet1
-+
-+ %package -n libknet1-devel
-+-Group: Development/Libraries
-+ Summary: Kronosnet core switching implementation (developer files)
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+ Requires: pkgconfig
-+
-+@@ -371,8 +354,7 @@ Requires: pkgconfig
-+ information.
-+
-+ %files -n libknet1-devel
-+-%defattr(-,root,root,-)
-+-%doc COPYING.* COPYRIGHT
-++%license COPYING.* COPYRIGHT
-+ %{_libdir}/libknet.so
-+ %{_includedir}/libknet.h
-+ %{_libdir}/pkgconfig/libknet.pc
-+@@ -382,119 +364,112 @@ Requires: pkgconfig
-+
-+ %if %{with nss}
-+ %package -n libknet1-crypto-nss-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 nss support
-++Summary: Provides libknet1 nss support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-crypto-nss-plugin
-+- NSS crypto support for libknet1.
-++ Provides NSS crypto support for libknet1.
-+
-+ %files -n libknet1-crypto-nss-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/crypto_nss.so
-+ %endif
-+
-+ %if %{with openssl}
-+ %package -n libknet1-crypto-openssl-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 openssl support
-++Summary: Provides libknet1 openssl support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-crypto-openssl-plugin
-+- OpenSSL crypto support for libknet1.
-++ Provides OpenSSL crypto support for libknet1.
-+
-+ %files -n libknet1-crypto-openssl-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/crypto_openssl.so
-+ %endif
-+
-+ %if %{with zlib}
-+ %package -n libknet1-compress-zlib-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 zlib support
-++Summary: Provides libknet1 zlib support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-zlib-plugin
-+- zlib compression support for libknet1.
-++ Provides zlib compression support for libknet1.
-+
-+ %files -n libknet1-compress-zlib-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/compress_zlib.so
-+ %endif
-++
-+ %if %{with lz4}
-+ %package -n libknet1-compress-lz4-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 lz4 and lz4hc support
-++Summary: Provides libknet1 lz4 and lz4hc support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-lz4-plugin
-+- lz4 and lz4hc compression support for libknet1.
-++ Provides lz4 and lz4hc compression support for libknet1.
-+
-+ %files -n libknet1-compress-lz4-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/compress_lz4.so
-+ %{_libdir}/kronosnet/compress_lz4hc.so
-+ %endif
-+
-+ %if %{with lzo2}
-+ %package -n libknet1-compress-lzo2-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 lzo2 support
-++Summary: Provides libknet1 lzo2 support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-lzo2-plugin
-+- lzo2 compression support for libknet1.
-++ Provides lzo2 compression support for libknet1.
-+
-+ %files -n libknet1-compress-lzo2-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/compress_lzo2.so
-+ %endif
-+
-+ %if %{with lzma}
-+ %package -n libknet1-compress-lzma-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 lzma support
-++Summary: Provides libknet1 lzma support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-lzma-plugin
-+- lzma compression support for libknet1.
-++ Provides lzma compression support for libknet1.
-+
-+ %files -n libknet1-compress-lzma-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/compress_lzma.so
-+ %endif
-+
-+ %if %{with bzip2}
-+ %package -n libknet1-compress-bzip2-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 bzip2 support
-++Summary: Provides libknet1 bzip2 support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-bzip2-plugin
-+- bzip2 compression support for libknet1.
-++ Provides bzip2 compression support for libknet1.
-+
-+ %files -n libknet1-compress-bzip2-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/compress_bzip2.so
-+ %endif
-+
-+ %if %{with zstd}
-+ %package -n libknet1-compress-zstd-plugin
-+-Group: System Environment/Libraries
-+-Summary: libknet1 zstd support
-++Summary: Provides libknet1 zstd support
-++License: LGPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-compress-zstd-plugin
-+- zstd compression support for libknet1.
-++ Provides zstd compression support for libknet1.
-+
-+ %files -n libknet1-compress-zstd-plugin
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/compress_zstd.so
-+ %endif
-+
-+ %package -n libknet1-crypto-plugins-all
-+-Group: System Environment/Libraries
-+-Summary: libknet1 crypto plugins meta package
-++Summary: Provides libknet1 crypto plugins meta package
-++License: LGPLv2+
-+ %if %{with nss}
-+ Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+@@ -503,13 +478,13 @@ Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+
-+ %description -n libknet1-crypto-plugins-all
-+- meta package to install all of libknet1 crypto plugins
-++ Provides meta package to install all of libknet1 crypto plugins
-+
-+ %files -n libknet1-crypto-plugins-all
-+
-+ %package -n libknet1-compress-plugins-all
-+-Group: System Environment/Libraries
-+-Summary: libknet1 compress plugins meta package
-++Summary: Provides libknet1 compress plugins meta package
-++License: LGPLv2+
-+ %if %{with zlib}
-+ Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+@@ -530,32 +505,31 @@ Requires: libknet1-compress-zstd-plugin%{_isa} = %{version}-%{release}
-+ %endif
-+
-+ %description -n libknet1-compress-plugins-all
-+- meta package to install all of libknet1 compress plugins
-++ Provides meta package to install all of libknet1 compress plugins
-+
-+ %files -n libknet1-compress-plugins-all
-+
-+ %package -n libknet1-plugins-all
-+-Group: System Environment/Libraries
-+ Summary: libknet1 plugins meta package
-++License: LGPLv2+
-+ Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release}
-+ Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release}
-+
-+ %description -n libknet1-plugins-all
-+- meta package to install all of libknet1 plugins
-++ Provides meta package to install all of libknet1 plugins
-+
-+ %files -n libknet1-plugins-all
-+
-+ %if %{with installtests}
-+ %package -n kronosnet-tests
-+-Group: System Environment/Libraries
-+ Summary: kronosnet test suite
-++License: GPLv2+
-+ Requires: libknet1%{_isa} = %{version}-%{release}
-+
-+ %description -n kronosnet-tests
-+- this package contains all the libknet and libnozzle test suite
-++ This package contains all the libknet and libnozzle test suite.
-+
-+ %files -n kronosnet-tests
-+-%defattr(-,root,root,-)
-+ %{_libdir}/kronosnet/tests/*
-+ %endif
-+
-diff --git a/debian/patches/spec-use-distro-conditionals-to-determine-BuildRequires.patch b/debian/patches/spec-use-distro-conditionals-to-determine-BuildRequires.patch
-new file mode 100644
-index 0000000..500dd1f
---- /dev/null
-+++ b/debian/patches/spec-use-distro-conditionals-to-determine-BuildRequires.patch
-@@ -0,0 +1,59 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 25 Feb 2018 08:42:55 +0100
-+Subject: [spec] use distro conditionals to determine BuildRequires
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 3a5332772250c1adf2340503ac8903ea07f2d394)
-+---
-+ kronosnet.spec.in | 24 ++++++++++++++++++++----
-+ 1 file changed, 20 insertions(+), 4 deletions(-)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index e430ad2..3b597d0 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -107,16 +107,28 @@ BuildRequires: libqb-devel libxml2-devel doxygen
-+ BuildRequires: lksctp-tools-devel
-+ %endif
-+ %if %{defined buildcryptonss}
-+-BuildRequires: /usr/include/nss3/nss.h /usr/include/nspr4/nspr.h
-++%if 0%{?suse_version}
-++BuildRequires: mozilla-nss-devel
-++%else
-++BuildRequires: nss-devel
-++%endif
-+ %endif
-+ %if %{defined buildcryptoopenssl}
-+-BuildRequires: /usr/include/openssl/conf.h
-++%if 0%{?suse_version}
-++BuildRequires: libopenssl-devel
-++%else
-++BuildRequires: openssl-devel
-++%endif
-+ %endif
-+ %if %{defined buildcompresszlib}
-+ BuildRequires: zlib-devel
-+ %endif
-+ %if %{defined buildcompresslz4}
-+-BuildRequires: /usr/include/lz4hc.h
-++%if 0%{?suse_version}
-++BuildRequires: liblz4-devel
-++%else
-++BuildRequires: lz4-devel
-++%endif
-+ %endif
-+ %if %{defined buildcompresslzo2}
-+ BuildRequires: lzo-devel
-+@@ -125,7 +137,11 @@ BuildRequires: lzo-devel
-+ BuildRequires: xz-devel
-+ %endif
-+ %if %{defined buildcompressbzip2}
-+-BuildRequires: /usr/include/bzlib.h
-++%if 0%{?suse_version}
-++BuildRequires: libbz2-devel
-++%else
-++BuildRequires: bzip2-devel
-++%endif
-+ %endif
-+ %if %{defined buildcompresszstd}
-+ BuildRequires: libzstd-devel
-diff --git a/debian/patches/spec-use-ldconfig_scriptlets-only-when-defined.patch b/debian/patches/spec-use-ldconfig_scriptlets-only-when-defined.patch
-new file mode 100644
-index 0000000..46a0fee
---- /dev/null
-+++ b/debian/patches/spec-use-ldconfig_scriptlets-only-when-defined.patch
-@@ -0,0 +1,40 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Tue, 14 May 2019 06:57:36 +0200
-+Subject: [spec] use ldconfig_scriptlets only when defined
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 8a823aa3bf291fe8c7407fd957d71897895e1aec)
-+---
-+ kronosnet.spec.in | 10 ++++++++++
-+ 1 file changed, 10 insertions(+)
-+
-+diff --git a/kronosnet.spec.in b/kronosnet.spec.in
-+index 8c60125..094090b 100644
-+--- a/kronosnet.spec.in
-++++ b/kronosnet.spec.in
-+@@ -262,7 +262,12 @@ License: LGPLv2+
-+ %license COPYING.* COPYRIGHT
-+ %{_libdir}/libnozzle.so.*
-+
-++%if 0%{?ldconfig_scriptlets}
-+ %ldconfig_scriptlets -n libnozzle1
-++%else
-++%post -n libnozzle1 -p /sbin/ldconfig
-++%postun -n libnozzle1 -p /sbin/ldconfig
-++%endif
-+
-+ %package -n libnozzle1-devel
-+ Summary: Simple userland wrapper around kernel tap devices (developer files)
-+@@ -299,7 +304,12 @@ License: LGPLv2+
-+ %{_libdir}/libknet.so.*
-+ %dir %{_libdir}/kronosnet
-+
-++%if 0%{?ldconfig_scriptlets}
-+ %ldconfig_scriptlets -n libknet1
-++%else
-++%post -n libknet1 -p /sbin/ldconfig
-++%postun -n libknet1 -p /sbin/ldconfig
-++%endif
-+
-+ %package -n libknet1-devel
-+ Summary: Kronosnet core switching implementation (developer files)
-diff --git a/debian/patches/tests-hide-an-arm-internal-memory-leak-non-recurring.patch b/debian/patches/tests-hide-an-arm-internal-memory-leak-non-recurring.patch
-new file mode 100644
-index 0000000..76b42da
---- /dev/null
-+++ b/debian/patches/tests-hide-an-arm-internal-memory-leak-non-recurring.patch
-@@ -0,0 +1,25 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 11 Apr 2019 09:30:27 +0200
-+Subject: [tests] hide an arm internal memory leak (non-recurring)
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 43b3f05da8736e7bb286e81f96e7514977541bef)
-+---
-+ build-aux/knet_valgrind_memcheck.supp | 7 +++++++
-+ 1 file changed, 7 insertions(+)
-+
-+diff --git a/build-aux/knet_valgrind_memcheck.supp b/build-aux/knet_valgrind_memcheck.supp
-+index e0f49d0..a34ab93 100644
-+--- a/build-aux/knet_valgrind_memcheck.supp
-++++ b/build-aux/knet_valgrind_memcheck.supp
-+@@ -605,3 +605,10 @@
-+ obj:*
-+ obj:/usr/lib64/libnss3.so
-+ }
-++{
-++ arm internal memory leak
-++ Memcheck:Leak
-++ match-leak-kinds: definite
-++ fun:malloc
-++ fun:dl_open_worker
-++}
-diff --git a/debian/patches/tests-improve-wait-for-packet-implementation-to-flush-log.patch b/debian/patches/tests-improve-wait-for-packet-implementation-to-flush-log.patch
-new file mode 100644
-index 0000000..458da67
---- /dev/null
-+++ b/debian/patches/tests-improve-wait-for-packet-implementation-to-flush-log.patch
-@@ -0,0 +1,135 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 11 Apr 2019 09:31:00 +0200
-+Subject: [tests] improve wait for packet implementation to flush logs during
-+ wait
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit e7825127477c756b4d0d9311c9907e140575e490)
-+---
-+ libknet/tests/test-common.h | 2 +-
-+ libknet/tests/api_knet_handle_clear_stats.c | 2 +-
-+ libknet/tests/api_knet_send.c | 2 +-
-+ libknet/tests/api_knet_send_compress.c | 2 +-
-+ libknet/tests/api_knet_send_crypto.c | 2 +-
-+ libknet/tests/api_knet_send_loopback.c | 4 ++--
-+ libknet/tests/test-common.c | 7 ++++---
-+ 7 files changed, 11 insertions(+), 10 deletions(-)
-+
-+diff --git a/libknet/tests/test-common.h b/libknet/tests/test-common.h
-+index 8742f8d..a498a09 100644
-+--- a/libknet/tests/test-common.h
-++++ b/libknet/tests/test-common.h
-+@@ -70,6 +70,6 @@ int stop_logthread(void);
-+ int make_local_sockaddr(struct sockaddr_storage *lo, uint16_t offset);
-+ int make_local_sockaddr6(struct sockaddr_storage *lo, uint16_t offset);
-+ int wait_for_host(knet_handle_t knet_h, uint16_t host_id, int seconds, int logfd, FILE *std);
-+-int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd);
-++int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd, int logfd, FILE *std);
-+
-+ #endif
-+diff --git a/libknet/tests/api_knet_handle_clear_stats.c b/libknet/tests/api_knet_handle_clear_stats.c
-+index 8e64235..07f059a 100644
-+--- a/libknet/tests/api_knet_handle_clear_stats.c
-++++ b/libknet/tests/api_knet_handle_clear_stats.c
-+@@ -160,7 +160,7 @@ static void test(void)
-+
-+ flush_logs(logfds[0], stdout);
-+
-+- if (wait_for_packet(knet_h, 10, datafd)) {
-++ if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
-+ printf("Error waiting for packet: %s\n", strerror(errno));
-+ knet_link_set_enable(knet_h, 1, 0, 0);
-+ knet_link_clear_config(knet_h, 1, 0);
-+diff --git a/libknet/tests/api_knet_send.c b/libknet/tests/api_knet_send.c
-+index 9e81d03..ca16e3d 100644
-+--- a/libknet/tests/api_knet_send.c
-++++ b/libknet/tests/api_knet_send.c
-+@@ -247,7 +247,7 @@ static void test(uint8_t transport)
-+
-+ flush_logs(logfds[0], stdout);
-+
-+- if (wait_for_packet(knet_h, 10, datafd)) {
-++ if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
-+ printf("Error waiting for packet: %s\n", strerror(errno));
-+ knet_link_set_enable(knet_h, 1, 0, 0);
-+ knet_link_clear_config(knet_h, 1, 0);
-+diff --git a/libknet/tests/api_knet_send_compress.c b/libknet/tests/api_knet_send_compress.c
-+index 6de4674..b03f4e7 100644
-+--- a/libknet/tests/api_knet_send_compress.c
-++++ b/libknet/tests/api_knet_send_compress.c
-+@@ -170,7 +170,7 @@ static void test(const char *model)
-+
-+ flush_logs(logfds[0], stdout);
-+
-+- if (wait_for_packet(knet_h, 10, datafd)) {
-++ if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
-+ printf("Error waiting for packet: %s\n", strerror(errno));
-+ knet_link_set_enable(knet_h, 1, 0, 0);
-+ knet_link_clear_config(knet_h, 1, 0);
-+diff --git a/libknet/tests/api_knet_send_crypto.c b/libknet/tests/api_knet_send_crypto.c
-+index f2ca366..e33a808 100644
-+--- a/libknet/tests/api_knet_send_crypto.c
-++++ b/libknet/tests/api_knet_send_crypto.c
-+@@ -171,7 +171,7 @@ static void test(const char *model)
-+
-+ flush_logs(logfds[0], stdout);
-+
-+- if (wait_for_packet(knet_h, 10, datafd)) {
-++ if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
-+ printf("Error waiting for packet: %s\n", strerror(errno));
-+ knet_link_set_enable(knet_h, 1, 0, 0);
-+ knet_link_clear_config(knet_h, 1, 0);
-+diff --git a/libknet/tests/api_knet_send_loopback.c b/libknet/tests/api_knet_send_loopback.c
-+index 0cfd29f..2feca68 100644
-+--- a/libknet/tests/api_knet_send_loopback.c
-++++ b/libknet/tests/api_knet_send_loopback.c
-+@@ -251,7 +251,7 @@ static void test(void)
-+
-+ flush_logs(logfds[0], stdout);
-+
-+- if (wait_for_packet(knet_h, 10, datafd)) {
-++ if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
-+ printf("Error waiting for packet: %s\n", strerror(errno));
-+ knet_link_set_enable(knet_h, 1, 0, 0);
-+ knet_link_clear_config(knet_h, 1, 0);
-+@@ -352,7 +352,7 @@ static void test(void)
-+
-+ flush_logs(logfds[0], stdout);
-+
-+- if (wait_for_packet(knet_h, 10, datafd)) {
-++ if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
-+ printf("Error waiting for packet: %s\n", strerror(errno));
-+ knet_link_set_enable(knet_h, 1, 0, 0);
-+ knet_link_clear_config(knet_h, 1, 0);
-+diff --git a/libknet/tests/test-common.c b/libknet/tests/test-common.c
-+index d0ea1ef..a4ff297 100644
-+--- a/libknet/tests/test-common.c
-++++ b/libknet/tests/test-common.c
-+@@ -485,7 +485,7 @@ int wait_for_host(knet_handle_t knet_h, uint16_t host_id, int seconds, int logfd
-+ return -1;
-+ }
-+
-+-int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd)
-++int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd, int logfd, FILE *std)
-+ {
-+ fd_set rfds;
-+ struct timeval tv;
-+@@ -500,7 +500,7 @@ try_again:
-+ FD_ZERO(&rfds);
-+ FD_SET(datafd, &rfds);
-+
-+- tv.tv_sec = seconds;
-++ tv.tv_sec = 1;
-+ tv.tv_usec = 0;
-+
-+ err = select(datafd+1, &rfds, NULL, NULL, &tv);
-+@@ -509,7 +509,8 @@ try_again:
-+ * pick an arbitrary 10 times loop (multiplied by waiting seconds)
-+ * before failing.
-+ */
-+- if ((!err) && (i < 10)) {
-++ if ((!err) && (i < seconds)) {
-++ flush_logs(logfd, std);
-+ i++;
-+ goto try_again;
-+ }
-diff --git a/debian/patches/tests-remove-stray-comment.patch b/debian/patches/tests-remove-stray-comment.patch
-new file mode 100644
-index 0000000..dce4422
---- /dev/null
-+++ b/debian/patches/tests-remove-stray-comment.patch
-@@ -0,0 +1,22 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 7 Mar 2019 18:42:20 +0100
-+Subject: [tests] remove stray comment
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 3f426c317d41c93cefc7735607ec166539223283)
-+---
-+ libknet/tests/Makefile.am | 1 -
-+ 1 file changed, 1 deletion(-)
-+
-+diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am
-+index 3e74ea8..015587c 100644
-+--- a/libknet/tests/Makefile.am
-++++ b/libknet/tests/Makefile.am
-+@@ -41,7 +41,6 @@ fun_checks =
-+ benchmarks = \
-+ knet_bench_test
-+
-+-# int_links_acl_test can´t run yet standalone
-+ noinst_PROGRAMS = \
-+ api_knet_handle_new_limit_test \
-+ pckt_test \
-diff --git a/debian/patches/transports-access-list-add-internal-API-to-gather-which-f.patch b/debian/patches/transports-access-list-add-internal-API-to-gather-which-f.patch
-new file mode 100644
-index 0000000..3d23858
---- /dev/null
-+++ b/debian/patches/transports-access-list-add-internal-API-to-gather-which-f.patch
-@@ -0,0 +1,161 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Thu, 28 Feb 2019 14:55:27 +0100
-+Subject: [transports / access list] add internal API to gather which fd to
-+ use for access lists given a certain link struct
-+
-+this is required for the external API that has to be transport indepedent
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 2eb0040c7b5c99f3157b3922f6400a6c09c80e7e)
-+---
-+ libknet/internals.h | 6 ++++++
-+ libknet/transport_loopback.h | 1 +
-+ libknet/transport_sctp.h | 1 +
-+ libknet/transport_udp.h | 1 +
-+ libknet/transports.h | 1 +
-+ libknet/transport_loopback.c | 5 +++++
-+ libknet/transport_sctp.c | 7 +++++++
-+ libknet/transport_udp.c | 5 +++++
-+ libknet/transports.c | 13 +++++++++----
-+ 9 files changed, 36 insertions(+), 4 deletions(-)
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index d482674..8976a8c 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -338,6 +338,12 @@ typedef struct knet_transport_ops {
-+ */
-+ int (*transport_link_dyn_connect)(knet_handle_t knet_h, int sockfd, struct knet_link *link);
-+
-++
-++/*
-++ * return the fd to use for access lists
-++ */
-++ int (*transport_link_get_acl_fd)(knet_handle_t knet_h, struct knet_link *link);
-++
-+ /*
-+ * per transport error handling of recvmmsg
-+ * (see _handle_recv_from_links comments for details)
-+diff --git a/libknet/transport_loopback.h b/libknet/transport_loopback.h
-+index 3d072e8..6ce3ed3 100644
-+--- a/libknet/transport_loopback.h
-++++ b/libknet/transport_loopback.h
-+@@ -23,5 +23,6 @@ int loopback_transport_rx_sock_error(knet_handle_t knet_h, int sockfd, int recv_
-+ int loopback_transport_tx_sock_error(knet_handle_t knet_h, int sockfd, int recv_err, int recv_errno);
-+ int loopback_transport_rx_is_data(knet_handle_t knet_h, int sockfd, struct knet_mmsghdr *msg);
-+ int loopback_transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet_link *kn_link);
-++int loopback_transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link);
-+
-+ #endif
-+diff --git a/libknet/transport_sctp.h b/libknet/transport_sctp.h
-+index f27bcf1..83a638b 100644
-+--- a/libknet/transport_sctp.h
-++++ b/libknet/transport_sctp.h
-+@@ -31,6 +31,7 @@ int sctp_transport_rx_sock_error(knet_handle_t knet_h, int sockfd, int recv_err,
-+ int sctp_transport_tx_sock_error(knet_handle_t knet_h, int sockfd, int recv_err, int recv_errno);
-+ int sctp_transport_rx_is_data(knet_handle_t knet_h, int sockfd, struct knet_mmsghdr *msg);
-+ int sctp_transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet_link *kn_link);
-++int sctp_transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link);
-+
-+ #endif
-+
-+diff --git a/libknet/transport_udp.h b/libknet/transport_udp.h
-+index bbb6ec9..6de18e3 100644
-+--- a/libknet/transport_udp.h
-++++ b/libknet/transport_udp.h
-+@@ -23,5 +23,6 @@ int udp_transport_rx_sock_error(knet_handle_t knet_h, int sockfd, int recv_err,
-+ int udp_transport_tx_sock_error(knet_handle_t knet_h, int sockfd, int recv_err, int recv_errno);
-+ int udp_transport_rx_is_data(knet_handle_t knet_h, int sockfd, struct knet_mmsghdr *msg);
-+ int udp_transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet_link *kn_link);
-++int udp_transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link);
-+
-+ #endif
-+diff --git a/libknet/transports.h b/libknet/transports.h
-+index 6338140..38f69ba 100644
-+--- a/libknet/transports.h
-++++ b/libknet/transports.h
-+@@ -15,6 +15,7 @@ void stop_all_transports(knet_handle_t knet_h);
-+ int transport_link_set_config(knet_handle_t knet_h, struct knet_link *kn_link, uint8_t transport);
-+ int transport_link_clear_config(knet_handle_t knet_h, struct knet_link *kn_link);
-+ int transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet_link *kn_link);
-++int transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link);
-+ int transport_rx_sock_error(knet_handle_t knet_h, uint8_t transport, int sockfd, int recv_err, int recv_errno);
-+ int transport_tx_sock_error(knet_handle_t knet_h, uint8_t transport, int sockfd, int recv_err, int recv_errno);
-+ int transport_rx_is_data(knet_handle_t knet_h, uint8_t transport, int sockfd, struct knet_mmsghdr *msg);
-+diff --git a/libknet/transport_loopback.c b/libknet/transport_loopback.c
-+index bf48bb9..54129d7 100644
-+--- a/libknet/transport_loopback.c
-++++ b/libknet/transport_loopback.c
-+@@ -73,3 +73,8 @@ int loopback_transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct
-+ {
-+ return 0;
-+ }
-++
-++int loopback_transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link)
-++{
-++ return 0;
-++}
-+diff --git a/libknet/transport_sctp.c b/libknet/transport_sctp.c
-+index aa0de9d..819bc9a 100644
-+--- a/libknet/transport_sctp.c
-++++ b/libknet/transport_sctp.c
-+@@ -1537,4 +1537,11 @@ int sctp_transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct kne
-+ kn_link->transport_connected = 1;
-+ return 0;
-+ }
-++
-++int sctp_transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link)
-++{
-++ sctp_connect_link_info_t *this_link_info = kn_link->transport_link;
-++ sctp_listen_link_info_t *info = this_link_info->listener;
-++ return info->listen_sock;
-++}
-+ #endif
-+diff --git a/libknet/transport_udp.c b/libknet/transport_udp.c
-+index e4f6fdb..e243a91 100644
-+--- a/libknet/transport_udp.c
-++++ b/libknet/transport_udp.c
-+@@ -438,3 +438,8 @@ int udp_transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet
-+ kn_link->status.dynconnected = 1;
-+ return 0;
-+ }
-++
-++int udp_transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link)
-++{
-++ return kn_link->outsock;
-++}
-+diff --git a/libknet/transports.c b/libknet/transports.c
-+index 6ded675..5181db9 100644
-+--- a/libknet/transports.c
-++++ b/libknet/transports.c
-+@@ -27,14 +27,14 @@
-+ #include "transport_sctp.h"
-+ #include "threads_common.h"
-+
-+-#define empty_module -1, -1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
-++#define empty_module -1, -1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
-+
-+ static knet_transport_ops_t transport_modules_cmd[KNET_MAX_TRANSPORTS] = {
-+- { "LOOPBACK", KNET_TRANSPORT_LOOPBACK, 1, TRANSPORT_PROTO_LOOPBACK, USE_NO_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_LOOPBACK_OVERHEAD, loopback_transport_init, loopback_transport_free, loopback_transport_link_set_config, loopback_transport_link_clear_config, loopback_transport_link_dyn_connect, loopback_transport_rx_sock_error, loopback_transport_tx_sock_error, loopback_transport_rx_is_data },
-+- { "UDP", KNET_TRANSPORT_UDP, 1, TRANSPORT_PROTO_IP_PROTO, USE_GENERIC_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-++ { "LOOPBACK", KNET_TRANSPORT_LOOPBACK, 1, TRANSPORT_PROTO_LOOPBACK, USE_NO_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_LOOPBACK_OVERHEAD, loopback_transport_init, loopback_transport_free, loopback_transport_link_set_config, loopback_transport_link_clear_config, loopback_transport_link_dyn_connect, loopback_transport_link_get_acl_fd, loopback_transport_rx_sock_error, loopback_transport_tx_sock_error, loopback_transport_rx_is_data },
-++ { "UDP", KNET_TRANSPORT_UDP, 1, TRANSPORT_PROTO_IP_PROTO, USE_GENERIC_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED,KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_link_get_acl_fd, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-+ { "SCTP", KNET_TRANSPORT_SCTP,
-+ #ifdef HAVE_NETINET_SCTP_H
-+- 1, TRANSPORT_PROTO_IP_PROTO, USE_PROTO_ACL, TRANSPORT_PROTO_IS_CONNECTION_ORIENTED, KNET_PMTUD_SCTP_OVERHEAD, sctp_transport_init, sctp_transport_free, sctp_transport_link_set_config, sctp_transport_link_clear_config, sctp_transport_link_dyn_connect, sctp_transport_rx_sock_error, sctp_transport_tx_sock_error, sctp_transport_rx_is_data },
-++ 1, TRANSPORT_PROTO_IP_PROTO, USE_PROTO_ACL, TRANSPORT_PROTO_IS_CONNECTION_ORIENTED, KNET_PMTUD_SCTP_OVERHEAD, sctp_transport_init, sctp_transport_free, sctp_transport_link_set_config, sctp_transport_link_clear_config, sctp_transport_link_dyn_connect, sctp_transport_link_get_acl_fd, sctp_transport_rx_sock_error, sctp_transport_tx_sock_error, sctp_transport_rx_is_data },
-+ #else
-+ empty_module
-+ #endif
-+@@ -103,6 +103,11 @@ int transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet_lin
-+ return transport_modules_cmd[kn_link->transport].transport_link_dyn_connect(knet_h, sockfd, kn_link);
-+ }
-+
-++int transport_link_get_acl_fd(knet_handle_t knet_h, struct knet_link *kn_link)
-++{
-++ return transport_modules_cmd[kn_link->transport].transport_link_get_acl_fd(knet_h, kn_link);
-++}
-++
-+ int transport_rx_sock_error(knet_handle_t knet_h, uint8_t transport, int sockfd, int recv_err, int recv_errno)
-+ {
-+ return transport_modules_cmd[transport].transport_rx_sock_error(knet_h, sockfd, recv_err, recv_errno);
-diff --git a/debian/patches/transports-add-information-about-the-nature-of-the-transp.patch b/debian/patches/transports-add-information-about-the-nature-of-the-transp.patch
-new file mode 100644
-index 0000000..64e7124
---- /dev/null
-+++ b/debian/patches/transports-add-information-about-the-nature-of-the-transp.patch
-@@ -0,0 +1,115 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Sun, 10 Feb 2019 08:52:22 +0100
-+Subject: [transports] add information about the nature of the transport and
-+ supported access lists
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 7cb7619d9222e09e65c3ec46a9d79a1806c44a25)
-+---
-+ libknet/internals.h | 31 +++++++++++++++++++++++++++++++
-+ libknet/transports.h | 2 ++
-+ libknet/transports.c | 18 ++++++++++++++----
-+ 3 files changed, 47 insertions(+), 4 deletions(-)
-+
-+diff --git a/libknet/internals.h b/libknet/internals.h
-+index d33646f..106b49d 100644
-+--- a/libknet/internals.h
-++++ b/libknet/internals.h
-+@@ -256,6 +256,34 @@ extern pthread_rwlock_t shlib_rwlock; /* global shared lib load lock */
-+ * for every protocol.
-+ */
-+
-++/*
-++ * for now knet supports only IP protocols (udp/sctp)
-++ * in future there might be others like ARP
-++ * or TIPC.
-++ * keep this around as transport information
-++ * to use for access lists and other operations
-++ */
-++
-++typedef enum {
-++ LOOPBACK,
-++ IP_PROTO
-++} transport_proto;
-++
-++/*
-++ * some transports like SCTP can filter incoming
-++ * connections before knet has to process
-++ * any packets.
-++ * GENERIC_ACL -> packet has to be read and filterted
-++ * PROTO_ACL -> transport provides filtering at lower levels
-++ * and packet does not need to be processed
-++ */
-++
-++typedef enum {
-++ USE_NO_ACL,
-++ USE_GENERIC_ACL,
-++ USE_PROTO_ACL
-++} transport_acl;
-++
-+ /*
-+ * make it easier to map values in transports.c
-+ */
-+@@ -270,6 +298,9 @@ typedef struct knet_transport_ops {
-+ const uint8_t transport_id;
-+ const uint8_t built_in;
-+
-++ transport_proto transport_protocol;
-++ transport_acl transport_acl_type;
-++
-+ /*
-+ * connection oriented protocols like SCTP
-+ * don´t need dst_addr in sendto calls and
-+diff --git a/libknet/transports.h b/libknet/transports.h
-+index d58b7a3..6338140 100644
-+--- a/libknet/transports.h
-++++ b/libknet/transports.h
-+@@ -18,6 +18,8 @@ int transport_link_dyn_connect(knet_handle_t knet_h, int sockfd, struct knet_lin
-+ int transport_rx_sock_error(knet_handle_t knet_h, uint8_t transport, int sockfd, int recv_err, int recv_errno);
-+ int transport_tx_sock_error(knet_handle_t knet_h, uint8_t transport, int sockfd, int recv_err, int recv_errno);
-+ int transport_rx_is_data(knet_handle_t knet_h, uint8_t transport, int sockfd, struct knet_mmsghdr *msg);
-++int transport_get_proto(knet_handle_t knet_h, uint8_t transport);
-++int transport_get_acl_type(knet_handle_t knet_h, uint8_t transport);
-+ int transport_get_connection_oriented(knet_handle_t knet_h, uint8_t transport);
-+
-+ #endif
-+diff --git a/libknet/transports.c b/libknet/transports.c
-+index b6f3b64..ffebe00 100644
-+--- a/libknet/transports.c
-++++ b/libknet/transports.c
-+@@ -27,14 +27,14 @@
-+ #include "transport_sctp.h"
-+ #include "threads_common.h"
-+
-+-#define empty_module 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
-++#define empty_module -1, -1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
-+
-+ static knet_transport_ops_t transport_modules_cmd[KNET_MAX_TRANSPORTS] = {
-+- { "LOOPBACK", KNET_TRANSPORT_LOOPBACK, 1, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_LOOPBACK_OVERHEAD, loopback_transport_init, loopback_transport_free, loopback_transport_link_set_config, loopback_transport_link_clear_config, loopback_transport_link_dyn_connect, loopback_transport_rx_sock_error, loopback_transport_tx_sock_error, loopback_transport_rx_is_data },
-+- { "UDP", KNET_TRANSPORT_UDP, 1, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-++ { "LOOPBACK", KNET_TRANSPORT_LOOPBACK, 1, LOOPBACK, USE_NO_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_LOOPBACK_OVERHEAD, loopback_transport_init, loopback_transport_free, loopback_transport_link_set_config, loopback_transport_link_clear_config, loopback_transport_link_dyn_connect, loopback_transport_rx_sock_error, loopback_transport_tx_sock_error, loopback_transport_rx_is_data },
-++ { "UDP", KNET_TRANSPORT_UDP, 1, IP_PROTO, USE_GENERIC_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-+ { "SCTP", KNET_TRANSPORT_SCTP,
-+ #ifdef HAVE_NETINET_SCTP_H
-+- 1, TRANSPORT_PROTO_IS_CONNECTION_ORIENTED, KNET_PMTUD_SCTP_OVERHEAD, sctp_transport_init, sctp_transport_free, sctp_transport_link_set_config, sctp_transport_link_clear_config, sctp_transport_link_dyn_connect, sctp_transport_rx_sock_error, sctp_transport_tx_sock_error, sctp_transport_rx_is_data },
-++ 1, IP_PROTO, USE_PROTO_ACL, TRANSPORT_PROTO_IS_CONNECTION_ORIENTED, KNET_PMTUD_SCTP_OVERHEAD, sctp_transport_init, sctp_transport_free, sctp_transport_link_set_config, sctp_transport_link_clear_config, sctp_transport_link_dyn_connect, sctp_transport_rx_sock_error, sctp_transport_tx_sock_error, sctp_transport_rx_is_data },
-+ #else
-+ empty_module
-+ #endif
-+@@ -118,6 +118,16 @@ int transport_rx_is_data(knet_handle_t knet_h, uint8_t transport, int sockfd, st
-+ return transport_modules_cmd[transport].transport_rx_is_data(knet_h, sockfd, msg);
-+ }
-+
-++int transport_get_proto(knet_handle_t knet_h, uint8_t transport)
-++{
-++ return transport_modules_cmd[transport].transport_protocol;
-++}
-++
-++int transport_get_acl_type(knet_handle_t knet_h, uint8_t transport)
-++{
-++ return transport_modules_cmd[transport].transport_acl_type;
-++}
-++
-+ int transport_get_connection_oriented(knet_handle_t knet_h, uint8_t transport)
-+ {
-+ return transport_modules_cmd[transport].transport_is_connection_oriented;
-diff --git a/debian/patches/transports-fix-incorrect-merge-when-cherry-picking-7033dd.patch b/debian/patches/transports-fix-incorrect-merge-when-cherry-picking-7033dd.patch
-new file mode 100644
-index 0000000..d3b6e32
---- /dev/null
-+++ b/debian/patches/transports-fix-incorrect-merge-when-cherry-picking-7033dd.patch
-@@ -0,0 +1,29 @@
-+From: "Fabio M. Di Nitto" <fdinitto at redhat.com>
-+Date: Mon, 3 Jun 2019 18:13:04 +0200
-+Subject: [transports] fix incorrect merge when cherry-picking
-+ 7033ddab505a0cf3655115fe5037579b7c882a8c
-+
-+Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-+(cherry picked from commit 02097c450e14afe1f5b34e7fd22a93f7d253b614)
-+---
-+ libknet/transports.c | 4 ++--
-+ 1 file changed, 2 insertions(+), 2 deletions(-)
-+
-+diff --git a/libknet/transports.c b/libknet/transports.c
-+index 5181db9..51712df 100644
-+--- a/libknet/transports.c
-++++ b/libknet/transports.c
-+@@ -27,11 +27,11 @@
-+ #include "transport_sctp.h"
-+ #include "threads_common.h"
-+
-+-#define empty_module -1, -1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
-++#define empty_module 0, -1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
-+
-+ static knet_transport_ops_t transport_modules_cmd[KNET_MAX_TRANSPORTS] = {
-+ { "LOOPBACK", KNET_TRANSPORT_LOOPBACK, 1, TRANSPORT_PROTO_LOOPBACK, USE_NO_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_LOOPBACK_OVERHEAD, loopback_transport_init, loopback_transport_free, loopback_transport_link_set_config, loopback_transport_link_clear_config, loopback_transport_link_dyn_connect, loopback_transport_link_get_acl_fd, loopback_transport_rx_sock_error, loopback_transport_tx_sock_error, loopback_transport_rx_is_data },
-+- { "UDP", KNET_TRANSPORT_UDP, 1, TRANSPORT_PROTO_IP_PROTO, USE_GENERIC_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED,KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_link_get_acl_fd, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-++ { "UDP", KNET_TRANSPORT_UDP, 1, TRANSPORT_PROTO_IP_PROTO, USE_GENERIC_ACL, TRANSPORT_PROTO_NOT_CONNECTION_ORIENTED, KNET_PMTUD_UDP_OVERHEAD, udp_transport_init, udp_transport_free, udp_transport_link_set_config, udp_transport_link_clear_config, udp_transport_link_dyn_connect, udp_transport_link_get_acl_fd, udp_transport_rx_sock_error, udp_transport_tx_sock_error, udp_transport_rx_is_data },
-+ { "SCTP", KNET_TRANSPORT_SCTP,
-+ #ifdef HAVE_NETINET_SCTP_H
-+ 1, TRANSPORT_PROTO_IP_PROTO, USE_PROTO_ACL, TRANSPORT_PROTO_IS_CONNECTION_ORIENTED, KNET_PMTUD_SCTP_OVERHEAD, sctp_transport_init, sctp_transport_free, sctp_transport_link_set_config, sctp_transport_link_clear_config, sctp_transport_link_dyn_connect, sctp_transport_link_get_acl_fd, sctp_transport_rx_sock_error, sctp_transport_tx_sock_error, sctp_transport_rx_is_data },
-diff --git a/debian/patches/series b/debian/patches/series
-index c16ea6e..e58890e 100644
---- a/debian/patches/series
-+++ b/debian/patches/series
-@@ -9,3 +9,69 @@ tests-add-man-page-check-to-verify-doxy-header-order-and-.patch
- man-fix-libknet.h-for-errors-detected-by-newly-added-test.patch
- udp-use-defines-vs-hardcoded-numbers.patch
- udp-improve-error-message-decoding-from-ICMP-errors.patch
-+acl-move-poc-code-into-libknet-dir-and-rename-to-links_ac.patch
-+acl-add-knet_handle_enable_access_lists-api-call.patch
-+transports-add-information-about-the-nature-of-the-transp.patch
-+access-lists-make-code-more-generic-to-accept-more-than-I.patch
-+handle-properly-initialize-fd-tracker-buffers.patch
-+access-lists-automatically-add-and-remove-point-to-point-.patch
-+access-lists-add-tests-for-default-access-lists.patch
-+access-lists-allow-knet_bench-to-enable-disable-access-li.patch
-+access-lists-enable-access-lists-for-GENERIC_ACL-protocol.patch
-+access-lists-enable-generic-access-lists-only-for-protoco.patch
-+access-lists-add-access-lists-support-to-sctp.patch
-+access-lists-fix-build-on-freebsd.patch
-+access-lists-move-all-acl-wrappers-to-links_acl-and-split.patch
-+access-lists-move-access-lists-structs-and-data-types-to-.patch
-+access-lists-more-use-of-generic-wrappers-and-remove-dupl.patch
-+access-lists-cleanup-API-a-bit.patch
-+access-lists-remove-2-unnecessary-wrappers.patch
-+links-rename-transport_type-to-transport-to-avoid-confusi.patch
-+links-rename-tranport_type-to-transport-to-avoid-confusio.patch
-+access-lists-make-internal-API-consistent.patch
-+access-lists-fix-build-on-BSD-and-add-some-include-files-.patch
-+access-lists-add-errno-around-and-start-using-them.patch
-+access-lists-confine-access-lists-data-structs-within-the.patch
-+access-lists-use-better-name-for-fd_tracker-structure.patch
-+access-lists-use-arrays-to-access-per-protocol-functions.patch
-+access-lists-rename-ip1-2-to-ss1-2-to-keep-it-more-generi.patch
-+transports-access-list-add-internal-API-to-gather-which-f.patch
-+access-lists-add-documentation-for-enable_access_list.patch
-+access-lists-add-external-API-calls-to-manage-access-list.patch
-+access-lists-test-implicit-access-lists-management-for-UD.patch
-+access-lists-improve-checks-on-various-data-types.patch
-+access-lists-add-public-API-tests.patch
-+acl-Fix-English-in-commments.patch
-+access-lists-add-more-extensive-test-for-links_acl_ip.patch
-+logging-fix-log-target-of-recently-added-API-calls.patch
-+tests-remove-stray-comment.patch
-+manpages-Document-enums-206.patch
-+compress-add-support-for-libzstd.patch
-+tests-hide-an-arm-internal-memory-leak-non-recurring.patch
-+tests-improve-wait-for-packet-implementation-to-flush-log.patch
-+man-fix-libknet.h-for-errors-detected-by-newly-added-test-1.patch
-+global-update-copyright-across-the-board.patch
-+build-bump-soname-to-indicate-new-API-calls.patch
-+spec-fix-upstream-URLs-to-point-to-https-and-official-rel.patch
-+spec-use-distro-conditionals-to-determine-BuildRequires.patch
-+spec-be-more-strict-about-plugins-version-and-architectur.patch
-+spec-clean-up-useless-conditionals-and-defines.patch
-+spec-reconciliate-fedora-spec-file-into-upstream-spec-fil.patch
-+spec-fix-a-bunch-of-rpmlint-errors.patch
-+spec-drop-support-for-init-scripts.patch
-+spec-use-ldconfig_scriptlets-only-when-defined.patch
-+misc-some-coverity-fixes.patch
-+misc-Fix-more-covscan-warnings.patch
-+crypto-make-sure-to-clear-all-security-info-on-crypto_fin.patch
-+PMTUd-create-common-shared-code-to-trigger-PMTUd-rerun.patch
-+crypto-make-sure-to-trigger-a-PMTUd-rerun-on-each-good-cr.patch
-+crypto-rework-knet_handle_crypto-external-API-to-be-more-.patch
-+PMTUd-extend-internal-rerun-API-to-allow-full-PMTUd-reset.patch
-+crypto-fix-openssl1.0-initialization-code.patch
-+transports-fix-incorrect-merge-when-cherry-picking-7033dd.patch
-+crypto-openssl-error-strings-release.patch
-+crypto-openssl-drop-calls-to-RAND_seed-as-they-don-t-real.patch
-+crypto-hide-errors-generated-by-openssl-1.1.1c.patch
-+doc-fix-a-merge-oversight-from-541d7faf9068d10e12b4278c35.patch
-+global-clarify-license-entry-per-file-to-match-README.lic.patch
-+global-update-copyrights.patch
diff --git a/patches/0006-cherry-pick-pmtud-fixes.patch b/patches/0006-cherry-pick-pmtud-fixes.patch
index 9653db7..92c28a0 100644
--- a/patches/0006-cherry-pick-pmtud-fixes.patch
+++ b/patches/0006-cherry-pick-pmtud-fixes.patch
@@ -246,10 +246,8 @@ diff --git a/debian/patches/series b/debian/patches/series
index e58890e..c5950b7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
-@@ -75,3 +75,7 @@ crypto-hide-errors-generated-by-openssl-1.1.1c.patch
- doc-fix-a-merge-oversight-from-541d7faf9068d10e12b4278c35.patch
- global-clarify-license-entry-per-file-to-match-README.lic.patch
- global-update-copyrights.patch
+@@ -1,1 +1,5 @@ crypto-hide-errors-generated-by-openssl-1.1.1c.patch
+ send-test-skip-the-SCTP-test-if-SCTP-is-not-supported-by-.patch
+crypto-fix-log-information.patch
+udp-log-information-about-detected-kernel-MTU.patch
+docs-add-knet-packet-layout.patch
diff --git a/patches/series b/patches/series
index ede59da..f3241cb 100644
--- a/patches/series
+++ b/patches/series
@@ -1,3 +1 @@
-0002-cherry-pick-1.9-as-patches.patch
-0003-cherry-pick-1.10-as-patches.patch
0006-cherry-pick-pmtud-fixes.patch
diff --git a/upstream b/upstream
new file mode 160000
index 0000000..fce6957
--- /dev/null
+++ b/upstream
@@ -0,0 +1 @@
+Subproject commit fce69571d6564cf2955381e71ecc8bc5a7b2bed5
diff --git a/upstream/kronosnet_1.10.orig.tar.xz b/upstream/kronosnet_1.10.orig.tar.xz
deleted file mode 100644
index f03a60676d2439fbd62d8c08f8eebab3d89e2757..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 462580
zcmV(qK<~f(H+ooF000E$*0e?f03iVu0001VFXf};Q#9}XT>v$liXw<{$Vf?!j*!!-
z!k%(=*YvV`m7g(mM}E9obyTh{Im%`Yq&IoVenobBtc#t6j~KHzEe0?eVywio)B!~@
z3v&08q;yP4*ByR#rf}oKgz{4P+aIM<i^?<+o76K>J!p=YW)MLvO#kZrLcYkwp+fEu
zBqc_Z2J{6cvm09OG8f$ie?6zN-oHXZO#7}{Y<h#l0U;EyvCuu)MU1!8Aw>Voo$DZu
zaHtA0p%)DGRPjZvQ18SjgoIeP;>IY<l_QVQyQgb*Afrpwq`e at qO6OyW)?rl3h$$^#
zcvhs)2#4OuW7=xABK|TEK+L<GNXQlxa;ur-*mNtlOTC<Qqs=jT9okRj?icL#zBiD5
z;$7|3wPCQwqt*dLEVDXUTRqKTwGpkM(j#`+%c?|HAOTG0W4Sm{B>Myd$h**X(oXDN
zJZwRE02b=StdSdRm%Ql}3P=7zr@~*>&_877X-8VrY5Iz}f~T(21MD|X|ERv4i3lho
z%4H|wlq2i{R6cj^<H#Id2f|MYJ at KrzZz&m)f}{#=+QeE#YUM>x_klPDAu}1e&5L9~
zj;G%r3o^9w^vZ1q-(>s<p?Mv4rWfnv8*-U-_5I37E at nZ!!=3zQ(QHJ%2B&N%*3KE1
zBi!gGDLL?aR~pW9Wv<GbGC6VYO_R(|Nv_JT0oMMyOF_jWt56p}3Ltr<lb$kN#pS&y
zVpaA>8iv at k-^Mr!G>dFHIXN#Iumq<i5p1f=UHITuB{HX0d}@$pIx>g`v%T%25<R)R
zd~Y$qzr&rj+7+7*qB$+tqibMlrLmleR-wSO;zZq%4*4MGGmDvt_>Mp at Ga;SNSC<&_
zmx=urIsq(cbFys!0^!bNlkc$uk>3z=u3m8^P6ZU6+<|)(8ohFKt9i(v6=c6<>G&vg
z%kzYVT+dVQ2gVj#Ia-?BvG)1rDt8q%`FpWtK7-r}K1L*#`6whq!!|K(s#h}Hx$yI>
z%t2<wuTKGhMuF071+M|Aa$D|v4X`yc)PDs7{V%<Sy?2JL*|JqV7&rJD(z&tTmtqp@
zu_;-+`(e?g{9iaUh5auaKR}!Js%3yuFjM`O4ARm=$07EMQ*X7`B#ojhRgn~r^dm+z
zoVfDcOg2NnT3;Y5_OW#9Ze+ET{k1jdFn$U!c3#L{sFB$R8`xYr+f(W`i5uaWVi~Lk
zu*F>TzyqCHh8v|by7BwZ&Gr)%7e+Qjxfls^uICCyVU=t%#LsnifEtYC>mso2+KB8u
zpfhdsuDsi=w69sT$Rx5jzmB><1sh^50Ul>d<<$fhAzxdHU%cZn#SB!TeZ8UfVtyLp
ztYLRtzQrXgm2z&@`2vfoqxWyJ&<+MqD*%?Orh6%%f##{>2S0|cp*>^6LaUNMVZ)Th
zIl^=*7moJ691z!N0r|H!^Mp#yR%NOjA|<4tHMfEL{FIECH92=wW94uNH{4jB0OHv{
z+$*!Hc>fXf&X-CyG(Tsz$){$&N~r*=yw0c6e$ef@#R5p5Z+P_3moE|FA{dF2t383G
zhCJk&0l|xqZOC at Gb61rMdgn3=AJua{(0vj&{s0%lGbK4rujpGXPp at 8udKTFDYHvz5
z+{4_LKcu)YJ!mkDe}Cdo%)$^iZ8KWFwH<4&RX1_ZvkpSuUkk9kJii=%`%L>Kl6ku#
zsU1<<D?`zVC;bEt6Mw at +fG3a;Y^m&kQ9J^HfeLP=ns18V8EkZU9$V;)AGP=B^ez1?
z)1SF_eR&;*r^ymbU()#0$wM at 3#$${ZfhPgZI2*nVpVj0t_wcx<^(}RE!G6B8+-nh-
zp(D7B{?E_BwMX$U(L?s=S}cSZPbF1jR at Ov>(^C9=oY$|j3Ewho`nfSF$o+$*KBW&Y
z4x#mfrWuw7?VmaV+((z{=!zXZBLLCTO9R9$eiR~w*M+l6vCH=@uW#a^XL?E%j*)6|
zRuVhsNsyzCq0Kf5PT7m5)K}KakJi|gg4TY4dGKGb_(TFX8~q4S`}$<8J_bSG;FeE?
zg^s7^jAuG4u%CB|+muLP)pPjQhhVkc56^+SYyJ1*D~ktJi3uc1KyvYB`U~vT*}Nsj
z7wdVBTFsL}{PlSveGFvy%~Z;<`!kl>iOR0?eNl%;6giy}gIKrJ0kNnlaJ=Q9K(+3E
z6j at ej0-R`<n`-G7bLLePKMhZUM2Q{{imlb7o(7z9xn(CCT%RwoY2Q+Pc at S<E_OisE
zpdE0GmzX$0XAnZL3(cq~xB at xgR%37v=*gKEw&lRJ6g}^^zmbjGUECM&m?VG6iMUnV
zoS{em- at 5~#5JnnDKm215ARMEdBgA>WRgJP6es at wy^L$pA#g4M%JpWd)(|7F~Ah^9S
zc<g;3&Cf_BBitv?`N`5Qg;Yb9MACi7UcB;GwW4pVF+Y|GF#M53V|L%%mXBv$d}Nz1
zTUd%nxS+?clKVE`5PR+y`4y^$cmeVtnMk(oo^@?NS_b$lBzJhMF{B3m5B?^QV(Q$D
zr3>E@`d@$MzW%@4Q5qDcL{nVQ7cu#KO_I=L%ingA8<<}9?3VX?d~HuUR+0 at _H+vC*
zM1{%0Y`Ioyl+zdrKSjH4xcd03A*5R}{v?Um`y~sd>+Q#p<1GgwvgB47T-ng}m}&(J
zDHz>cT}w;Syqzyo+MrY}@zoP^s!NpV-g6BON~wG&HciScN(NDCDKF(>A52jAAA#&f
z8`)@*TlrVu4^6)$SuTP$Cmt$3{-Mc%guO+#YF5vZIF-S3MYt)cWh@!THBru+^Swm_
zQ2UcbL%VTA<96qVucr6LLaUC?6|ZCKv9v`<t<c|(-emZuHSosSG|0Xc?yTg$TlQ~g
zaen1_d_g5p2RC)e91Hzxgdm1>{nSQWnz>)K4YN9uxrZxUQbFV at SJdUgn7f~FLQp2r
z2E at lHuM>68C_j^E75*mb3~TB6TaSsI?UAf;xMoYN*}o_c-0zkqd<z`%c3w0D!z(fT
z`uk;c{`{;x&w9TvyLT at _lY0Z`Jc75aZ6q)M<Y;TjL{&tIzZC`VfG+)wWCS^nsfvzJ
z#hRPc<SfA-vw=DWo at oJX&?#KpQl!_?3%L<yP!ohTe(%9{dn`S(Ipx=05xq$=sL6ZZ
zt%Q<1ss{QCGpvCwslN~a><n`VXQc+*ZUIP!PnP2JMn0}*1GaCTA(57#=0?zos%sYL
zn`!t>kS(9L>C^f_b?xhyXQsX20C^@hbDGO@&=6p|MvRvSTLE at kr;x=1-;Qp}kh3<W
znZH*g(htSz>4Gu3Z4T~^{)RjG at 9`UuVT5ujrCo|){m<i`IB-%7VQULN&Pcjz8A}N|
zk|OP9+fB;Xq&h=r8&`@ywbRsWPe|bPgkq0Bry)SWrm)alzxh1t=ct4t5;T09YlNu+
z3D!}m+PqfVEc+-rHba`<NGag^QuPQN20trGw^SG_15V|ot*J%lbU<{K=q86HAzQE{
zZBNOEy{?xsrD5TtO_}hxIkOmM2G^3?@jY_bQp|=t)SKoyoeD`x1$yRfLP+?}M$ziA
zH%UJRar&8@(<&j1-)A5!dDiPbci;#w<U$vsjfT>=yM<5e>mAHc(mx^4riwQa>Zzu$
zFzG6D7jp9CJ}}Ir5<q5!31F9bm`cucxx!##Td<vxgt|t+B~xf~>zxBRz&?+;8xfY=
za*o<dXDX7EvV`UR212v96PgNw;f0#l3g9SntRP@@c=c}DH=S-D8L at Q(XDSWboIkzf
z1-D_q{5AT at 6`ut_0#{t(TH?mp%K_-up$h<Zg>&ph$XT~JS0WZPn)Q&lIq!b&jXgt0
zhK9SLHT0hbjz?d?)FOH^AZ9djzbTEP=A`C+8?nn|y}|+`UD7Y$9wjDAVB*3Z^$Ug@
zyK>6+TE%?ub9IiqEviI{w{cg6twclZR~z_`lU8M2 at Ey-g{`B+Rgkc;mho^Aune<P@
zg<%ePYfY?gj~a2Nck+V6RUTp1|19dbZ>0<GDe>yK_O8F#Mh6_VIt)rtA2mJ02SL0M
z$lYCsjA4HC(W(#RLDV`ldqs}wWreoEXuzST;&;)rk+=1#Q=`#LtlHNv0LQ^-O2WDT
zE}6T4OHd{FmC&5(aqsnZ^&@L3q9^-REK?VQAw*a`Y*N?~h6dGMwscd{*2#m!IxX&p
zNMBK2^n8k-uQ}5{R%=umZ)5dRD)wRc;U2~Y<HtXm`*#U;(ZpjtEg5tcxJOJGGwNOU
zD0rGLa?Ixd8dc)!H at UAEG+!-hR0AfQtt?sO`>8>QBSSRS_Pv^6e6&-uyIBxi=yM*F
z<M8$}K#74-!&q0+{S{NWCXo-~msclpLE`%5+jlY9?EdY%O0X~hMVWQz*2gvjPG4~R
zczXKPN)@<N<axIeEV;aB%|@#i at pJ)ST82Kk#w2Y at eM1;{7ZF($C28yUN_1pmLMB`+
z#=vjL2&M=RA#$hc*fK&%1NNHQ;`#ziAD2_RHSq!K62a!a%ObV{j9i!|u`L!@-L)2W
z(1|3E0mC`q78+t=2%7oz+YqXN8k0D!^=^7_*cW{&m1x&t-7y6L5Fx4qiM={qId)$6
zQW(-uq|=t~HWTtwLnmrDr>Jq#UeB3L)2yW5Be}26$Qj7#&j1UE0^QmkWPSZJa;28o
zfT2WhYDuo!(s;|sq3sV8k&y&jip0eSl11!6p%<#SGh)!)mcN9N^t5UsEhAJW+bYi@
zdX=Tp8Q at atm#(dhC%1M at g&@V4rOyFr9SbhaNiGj`ky9tjxy}=7t)q*Mv(V8WitceA
zc}NxH^bTSfN$M?562}X(5|g$e<;jGxpmZ9;7gj#@|9)S&7ewx>xwJO}%=vrN$bo+W
zHo{iM%~yw3=DfLKBVCI4p9b6{Ul*k7YfyZl(kf&wd!n9tdv2?-HP<JmYu}-^PF!|l
zpXwbukMBrg%z|>szmqXcdb;bOT!E<S!s=3KD3MCH>&)Y4(iTu^dC|=7)Q5(f`X*gz
zUWpe*%ck;n-wc>^HI!(w9I)8nW$sWWZLs0%K`oA>Pne1P%e(oR$#pJe+r7lpl&~1A
zK<l&@mCNYL`|Q((=Y4jIHO3z^dT;hvNtTP&<R=cKBUpsZMH@$it$V+1$Cbg4nlg6o
zCjK9J-v>jWJXY}@-f47qp)=QkqDb6 at q|1F$KH?Hq>cw*XbZ2IY3`9;;JC4hQdg04+
zY2w3+u$z2e7kY>N#mAm_ at 8KJk2u@N9m0xGzeJv^vU9r>8D!1xZI56M$jofLsePZX0
ziBr~-OOlX{{-wBv&vkORss}~Wfu{S*YJNw-hbFY at YokXt*<DBBhO*22=+SJ#2AkEl
z1sQhi=KGOKQ+St9E;!+8F+hV=ME#j^10`ffP`R3_a>{UY8i;xTE;36#vCY~u at Vm^!
z)2Hy0d99v1HB#){*<^VU5t>SPdi4_0iOBC3r?WFsnCDO4iBu}DXpL@|!Nc=o20-HE
z)DB+giE1mjz>B_qIxnQiqb&~5noo+eTgw}-O2ap&wbIP&RjTM5^>hb+?~SQ>-1xcQ
zH_K^a##R5d{zGRF4(lp8p76Nxq=G9as0kqM*{p$v5neH_s#jJn$uk1z1FaHmriX{r
zp3%$pdKc~o0+uKon>jacMK2Zm1Ql9LSUvPn5g at NuY2X?b<UWm&bXj|g0+C at iAA%vN
zqU%NfMXAFrA?`v at P-YY-hwedZs5ktG2q@EOsqaw0Ip5w2_j}_<;T6a#kfXhM^0={+
z@!}^5hoIg;Gfy`6DZv6pffQ)d at ojwpZ1)wiBSeJ$Sx+n^fD9UnLr%v at ZE#+W?B{7U
zTwZQn{&F?mUrqOfKGEKaAME0)&*zG->OM at B{*23S3 at c*EMq*HEIML79E3r22A7k!l
zZ&mX=#rX8+kzTQbVni8X1sjL2`_XT at kM*d*1k405Txv5^vOcU3P{aaFl8qNkx5_BG
z{3E;kDAbkeZeC&$5VqmtjUAfGKQ(%DYUIBU2h)ZJ(%Qav=pdc#Tr5YCK;$61*8dC5
zy-<&j)j^g}<PR?qQYeXDRWBKUNbmka`hp#-)3V9uxaSaHTEpm6 at tS_P$_<rBs-GdD
zK99&>^}C&R=cT1VjcksKq~wy8z*e=v<9T$+Ee`lZfTwHY9szZ0(mS6Q+kqs~nTkF3
z{{_csm!&CZj;DMmV#S=vszkApf;{WU>2a2&AQ{4L&98HON6{1o7CVJ~V69;#7Te2#
z|LJ<iJ7dsJu4r))uOe~TL$n|WBd)j$$HPHy2rXzEd-ttClXLJ^Nlu|Vt^g}HXHGjm
zc|ac*5mzk~N3z5^^jPpd1diNjG1eVgO$zm9x)F!z08C(SWV~<T$L9#{;ak;+ at Je*P
z)ug4vExhcJQeqqPL~v2?dvg+dcE*_q6cSzzw1N06W{g8BM&b2C=5#`74WS(HZuLdW
zr<%a~Rajv?q2m#<CT2nI$+IAd)1vs?R;4E!;_67R51p1(t0f&7;H9Zveq!N^Rk2AN
zN-wv1x>)TDFJB5+vTHmFKgTXL>;9h54Q1km?75}pQm_HKcY7mjv@%G0SegrernW7U
z69PWFv$+euT;6N-8j_*~$j1H9a+0(pmHOZb^{X{aMf>ErSh=G9GRL-DUiSN43 at fTE
z#g2QQg5fYAD4xc{%&W^1_fmRN%*q6*G-e0Sfa92~4joMbJs;1J=R$NwVZx^hK0jWa
zHl)^gC7Ya=NJWwJc9jpmCeU5 at dN({&HsnH&Soz;M?W;jmTSYzo;sKk4YQ%T2NWoMr
zY=Lr at AWPOxaFGT9wKfrRe<w`TX-?6y6~2)D_>@8_MI<i;fLsq8LR4QUCin^FxtF~&
z8#@K!34(j115BRRu8%YJwi!&f9aD|nY?Ctd=X1Y-0rZg8rnJioUB4&|-JGEi0=87*
zA8LIGDT+o$L%^7vhxD#4QUI3SCKr?mXD%oxOgs0zd}ZsgGLSm-zxJ7!O~- at EQ;Ih4
znq$!(y)n!q?t47ZA=BO2mzh&d87=T+*h3W?@5P>Z?R_^sx*1{`5{Y343A=f11Hn|x
z*of}%uuN`voPJGjY1I-*#SUtesMD<r3^fj{JmTcoMpJgg*FW}NFMq7Mgqo=qYPTP!
z`cghk*>-PYKx*fGZ?qsQnxYWN2M4MMV`x*71f6_k(&}JnpPys-ye!Co2VeKudih*4
zr(2d~YAh*2Y~{4*;f)z3{O|qLpjV43y*6=MXi~FWhNp2r&qiQM5Dp}Gg3}oZp$z}B
zx)+`{3OKz#6S3FLu!zcqBzYo<#6i^K4L3O3XBBxhE8w?BN+1E??7EEcFXHe>&8IB0
zQ7?ro!#;BTgB!<dv|nf1TY+(IY`fHi=&d*-3<aLf{UGaAXkTM4J^efIJ&gl#ZFhdK
z9uZwYCA=v)=9-B}Z=ej$y at bCJ*+Yc{!-?r+xB`B!CK?^v|M9hF4&-BF5f65xjfpKo
zyrc>=9ZyS$C<YaC2UW`QxLcq7SxIz>B{j<x at pJv(u{UI1H|DPG%4f-Z;ldx2AsI!H
z3rjNEF~dNpXnV-01GyxJ?rK`h49kq)WMsbJuT<$i5#pHX;F2xd%%I~8D8tmvf+?%k
z^NQq7odOjDZLF_HIcw~;(NABi#|laOWgH&<*3P>}l~@h-6ilMk>X4uMj$>P`=Nr4d
z0V!A*(JTLNY+Fv^t1c@`?ea_x82{(#$H~NHgaCUZ<;rUSY@|OfJP!&z)hv4A7b_qG
zw0vHYDG&E9hR|(*>rJWBNUN5v2;XAeH+-1y#5WxYb?W0|44{cfrMXF?rjs^c#Iznx
z@^eKjlA~%ip^EE$T<F{7d2tm3;g;?Hp#%W-tFc#*+C((n_#qS}!5ZJ7l4oi6&0hvF
z=k?z{A^<3dD0~Z9FX!=6+&Gfr{409e8~~Q^rC3t2xAL{E)LJWZJ8I&UoyblE`=<5w
z=2o1GR3SvS5<1s{8<=MI{9fM%YT5LAlY=o}KWzC{;%cj@*Hl4&5sDSq($MIs^y+vl
z{V6-$jRO>1T8nK^-2?F&<@U*;Sf?l7fe%MIJk#~A9)ZI1rmKf$ws0rtFmU5AS5((-
z!3L)jl_5nW;vx%Fp{*)f(7+%J5=j@`3rgl<!JTREVBOU1MBx`mWcMNzOiIKF_2Hd^
zDF3Os{aD)330Z1e<f}z0>0au6mxQE9VoO93_C=#5X>|s&&=z7rjljP6#dGBY0K;fC
zlCcVh*SrW`=eFedNQehNdsWRV9J7`$CC|hRspSV|yBmFZ&pfE?6R^^Qs0c-ymV>@D
z*uz)jf%f1NP0V9gm#e<|<Yza at D|&DL5rajRw`67v3hF=TZ;O;is)j5P%f(-N838ve
zljLvfk_4PVKjItqG)*U_TBIl4!WA9<i1T=?*D7Es^Gy1Ve}oCU1F^-7USfYEF`FU+
zzl+<n*xn9hIddnU%BMU`$C35haC!b#N60^)OOLR-CLRx2=$E0#8<c46zBbu!=={HA
zn{42D?1NCR?<WXE|CAtxRVvTS0R}`B7F4{iD*NgC0~O|@yY9>b4Cx57frtmWrT9JK
z22kY)2u$LJ#$vE=QgT}{l9t!0v&=Bd1+G4+UT+P8{_{4*Jw)Z^9Y+BTn!dSf3zxa!
ze>=8iA!*mn?fc6|2R=guV|lHxDf2|RKB}q{Lf^CZB5CQH*vZ!0Q)Rmh0!JhAZtnP|
zYmC4_=+>kknh#(?OSW6=XLajDTPO!Gn_mwd3f5pa3Fcidm!-EwZoApTS*MwDF0AQ0
zr;6Q~wO)nZlAn?~1R0$N0Yi3IWJv=enCSEQxRDr?;Ii#>g2GAEpp6~4(~Q^7Hgsym
z+MXl6CtAKu0ja5uBbYT2*<P?W_^(RwaglVVTe0{*A!$K(z|!n8w`Sden2kUiN!;V4
zdqt;>-Nl=4?fyHth$l2qYvH<?+6HlJ4wQ7!&?3yIwaZ<-VgCg6(h&YN<ksL-K;y66
z9PY2rLzEHAINl6+1o13U`Wr_5C9ThVDx-|5CiAT#cEe@(J2Q~gALHYYdE?h`cFEhk
zU|F3tFzKESUGM#s9c<MtudGY(x72RiYfkJp2tjf-&Ny<>(B&EXmL2uw&28n{<NH%t
zjiXwQV1rT)`_n(n40hp3bT=2p8KOr+4llNp!gb_mpBJh0XX~{)eISWtTXN`bB?i$L
z?S`z2T67*UC<r5^h_|LxzTc at Nr~C1&C^SmPhx_igbl{lB at 6jAM7Q~L8BV(K at 9{%4Q
zlXk;H+Dwal1H_}8`}3)k07Fx%w%sQm6~<&*xVZyg|IW0VkrF9b-u!l-jUyB=QXDkD
z8<7Q?SN?DJCrN()sD<gZ<)V&;2`7*!0nCthP}}WB87KvI590>v;J$KC1u$KDc4UmK
zkaX;eThONQbEGWRXNo7!#s^586F}G-y&)e)Lu^?Jgi1foYUAJv!h6+vloK3SZ_=v0
z`$U#8^0{+&K@|FxPl6Zy5KwQ9>Kr=`YG6sW)7ST{i{1aeGZ4n7Ibs4=Q9^5B;%Ku%
zvXm=A`SA+eFYTI((#>eAb3qHOKZ|169*i&B&xT5Bq*VD=92mRQ>K9{~@)vbRPY;Gg
zbMVAnu}U;x%C@}ip%A%rP<K#fHMQtE^)GfC-F?0%adDG)%6 at k(f##q at GpiUL{}s*z
zQuSbp)L_#TjhcndlLJeU4I{PtRPc2JaGwBgq1}>*gBgpWGicebVPCugE&o=}W`Zb<
zVRVc$#jwQ5<B?=#2jO48DP|ES%8EMfa89*m4Zr61k=Rb=HRr~<hBD&;31+ipI@>iz
z94$%?^+hhIk+|7JpYPVgyR2J&8E(rP{SMx|;o5#3SeP=3zBEtKjAe{WBBtMJVRvuz
z6o;6 at GxC+_2kAMN<xzgx2uvrW6Oao{8RH at W3WnY~T_^ev4m~_nGcKUon at y?B%#*s0
z_owzx!(fRJ+x3`F#^^r;&ela8CeP1HB-BbKc!KC5rJtBe%^z*@m*pPFzJyOnIP62c
z_OZXWBzkBMsN*XzEdH-h99JUAY5U=&IO&^8RXRj}Gi`CU1*ryb#C`G-3+Bm^@gK{d
zRjCCQ7|XxZE_P#_mjJf>gSw->BjrxpR}PcZWH3ZeSA#BwCvMX9V*ClW^D9bVEG^i6
z7ZYVz{VbzA&<-Cd{9DW-dR at c^2sH4q4huyWjS8qh=9L`j%PQ#KrtM#SKE`&OvF*tV
zP^zP(ZQW4qvDUSk=RxwVsaWyVLZ=0Sh2+X at LPS#y>4(6zEBl;r>Z3(V&~AUC6tOUv
z)5x;v7w|L5p8%y}yuw|i!SxWPu5SA!Pza$>QhN6SLU>A6-W;$kfMVgUDVzMlSdid3
z9F?TkeAfP1Kzh{;>$8L_P`v0pzP9NzN#3l@^cQfMI`I^=%&+3I1nnAQPZQkA-#1G>
zAS}eCoRrhnaLYDJ6sN0wAK;ytS?5Ots&WpbM||;nD_(P5a?4!EvQlfhuSCiljkhE9
zVf3V>9 at jcu*UT*W+%xJ|l+1&KgR=T9C-EL5>Em%&p*-hwPPg7o)Ma>}TR_Jj2c5%!
ztzQzsJr{?NnWc+`mTnDn{TiUIEqz1zpXLpwJC=dzKOE1JR<Lj2wOg!E6du2W(|x?p
z0=0L7Ow!6t^@G5R!RrVYeLRy5ePnppCUjL%{6<?L^qb9QvB`0iso?eJ0gsOw{fYD2
z?9hfKSuVelzA~#CNMjE at 9i%eLO#bTI_QwR8Pv;iNGrBbsIeM5y>+gfv6=muC_8L1I
zOKjZ9oQG!Tha!#Gycad{{!ESRr&>+UNpj}@vLYty&aIzgL^nI1bd7AWU#sq3mKB=H
z$&QzF#IU04fsHSUUu--%*cRZR;Q*$E#^o$f7=JWA+6w(RKCuBo$Yfk}#h<It|1zKv
z7i1h3^>T3um3;WL6blz+D3O^&!4K`fCDV^=wz+=fGeXY)+V5V~_Ra`A%^3!o;qR9h
zV={(+kNRf+!Oh3HP<Nbdoa&tHY_g$GqTZ%^wvy`&@2d6a`5S+{j77U!ZJdv9IA?{9
zcZy&(qHIqPuORuel$B0|o$DSv;68YD_NDz)myK3S2fxTeENI7WZQll&zcTYMCkt%<
zuz=KLypal10_wZcbaM>8w77R16lp43BOW<KZE$8QU0<nD!wC~V7%$aHf~n^z$darX
zt0Xrj_N<hj8(5^}$@>}xabBSrXhzY4p-C7`*mbOi-D^702m~&Lo{2k^NnX;tMDWdm
zgJ0P>tz1sFI8^>zI`2J9dYn;YgWi}<GTCQ`P>gB~UYSQED=J`GzyqdFS=KP-vQs9Y
zN$pfI;Q#>m(%0-$J+B at x8rl>9bZ at +*==Zq!#@vxe!vbyjrVuy6xkh7~7xlsvC0C~~
zdA`zx)x-Mz6l2dmPa>I95xr+3#=Gxf9I8<EM;J7mTW3!JLEzKQ+#v-o6)+th-y9a-
zt=7rj$-JHk_0dWO$PZ(l43LxtPiy-|CQ$zO-ewX%CZKCHa+8wxydb-Br8Z-8)BKmk
zH^2c-M=8D_?$iJb at k=t`Jvul5cyLWcYN}cZTqmCFu!$xtp+~ItWlg-?Yt(1C-p(fb
zp~6!P&)9}7A4E^w`%VTSav8zE#*P|cYB?@^goCLo;%>m;VUNt=Qu8vYVqjg3IiUuy
zC at VvJHGaZBMhC*t$Y6MqW$>o#%?c)@?u^HKt;!`(HX&Sj2FhF{@IAUcbt;TzZ2}|y
z*GNlLSo<+GUcR)V%<F_OPe-0t2s at 2hb*TSuIf(kBRD~z$sqbh5MZwDYO<T|U#{PHD
zX^H6w!T0Ld$=FZ=5-|J1vjCW(h|4T6wHLm)D8s}q3aF-u!pI2}h!dt2XAPUL^9Mn$
zxfB2F`;AlM7^IDay=z;}QXOk)jkOxJm+0{(vG7v7UFBh`)r<Q7@}P at J(C8{!SP90K
z`bY_O!Q0ItYG>k6n0rM6S&hj;1LvN?UvZ*{W_GLFE^+<>AakR-<COb{M9xQ=-as<W
z<<VZVn$T$f!GW(9U~CBSgmQnb?R{nPnT)Xdx%qS_QFalY9Ri_*UFLxOY4A at t5<n+>
z_ttqjels3uft-FdxAiFqaogkyv^e^^*lE3Tvs8;af`v3T03!Co_8-u7d;S#Z9i;fJ
zQ|@JogujEHDpGFUu|~$3{nc9B|5g0;qI?gU`oUa!wtoPCDlaza;4y-CsE*JwWpfi0
zBc&!%$ApX#YKrfoQ4(zhLZP)`q*xnTqiN2>Me5n%8nF7FHt~3XrzImb{8dq}7h$DI
zB$BEv?lJr at geNOAbsCY@{)NyQUs(;JHC#zPHic+HX_Py-mO`YeM(kwC066Fc|6uaU
zGHJa}xuEUf1{MCK0OHdjEe<K^*ABGrwM^6&xU{T9Y=p9k?q3)(Nn1|X(bVT<awJ`n
zYevbx0-`IY-qPhxK1!AnsgZq3AC{wtyt>J9mCf>^DWvN)N~Dz>6dfCbjL?~1d^J_9
z*=Ol5Ogl#vAS39sTuDS!$L~z76%xe$`L=R>Nh^Hva at t_(2ZsubZs5TMh_GY?Q4?mY
zG>jF at VPjAD3j_2jXC6C0Mx7u2t}bR&tMzb(9X4^fyWvylI)oB9m=1a-hSkUn$1%}#
z&7l+yN at i)(mE#Cmx&kAUt_fpNefeRG(3DhCZAOk3Bv)zcKe~l2+-}LH!8KHcuAyk8
zQPHP70l!E8PfJhVZ;)aCTR<@9xY=POM(wyXf)~zWcAe7=X=GgO#>3BFloY$g at mLKU
zIO;**51<9x7TYp*<>_CP?RKi}_Py_N0mPT0wv&zr9OCMO`3wzRA(5RD17KPmKnr#3
z_&#lP8`+wb<@l%Yb)n)U4vSgpQEVdA9X(BYiJxd~So3UHvHB47mTOlt2qHWb+}p-V
z>eOE}X*M_1_VINpP75iv2yh*B+eGu7?n at tWNtUgIe%sVUgJ|b*t+$3&ZZgWM(Djz{
zA at Xdk`=L at a+%cMUL!bw at _gh|~BV(aObE)b{&&t(-gIgj&7bWA79Q_HsiN{Ch6KR8b
zBRP<;$e2hn%#E)heTjbM3*;P;?X9wdiE%@=t+TNw-BfU7qk01cvl|HtQRS7X|HWrf
z5 at wsG`I$mn at MveJBzuxvV-`m(*yEw;r{1)Wl_V7*0a7v+g^AW3IZbur^4l|Vbd<qf
zcTotbyc4%`I^dZxQ2iCR{gGn2C!c}uBaf#&cOc-xSFuI6DDS19$gq6Wqd~`Tq-^vF
z+et9)hB-2q|8s>kF5Jo6)TFS1W%c;tLw5CN&ahxIM8fLeQMXqKa&nWsF4-<mg5%Xc
z$(CSZ&I?$UWSTFF;Hj^7!{ZFpjPjP)<wS=Y8v^By^8HKGLc_!|vYP+H<O$pgB8AWm
zXI`$GbE_K9ulh}fFJV+yx*%^LESa!Y4aDPHuEYE2{|vUdN~JN at VC`l9JnJD$^iUy)
zZxRV_M*{YmtgEu8uI$AeZtlMg_4zgOS&IBeJ1`eWZ;1Xqh-HFvO&L_4Qyhm-rScq!
z_>|@ZO@@&`zT+lYvst9=?V4o^E(##QfIwoL?-^A_ajpW1AOpQnT;!*l>PsLzpET%o
zvOd`(h}$l1IV^^xkrzgm;AgKs5Pxv3xrNBO+zq_ZwkMT>^sU9eloq>8QHizWh9 at Y*
zB$tV0p!!*P>#KHXhg&aRVQn~v)nJsn9=xH1-A_-FFoolAYY?M!aOYbVvt9VGF+*h{
zt3-#=K#;b=C$M?;9L;)UC|N?VYBFym6ez2ch3z?_M%eVihpic09Lqxae5^9o2*i(Q
z;EP)iY~)D+&Z?4S^OPB)v^LDoK#MD+*cAU3gu*Z at rl@^|eyIy52rYC{Kb(<Y(PwL@
z`&dM4GwXyZCwNLk!Jo(=;j0$Foc5PL|AWtc6cKG#k$&Ie*8}Vzr{4bpU*J*gPvR6v
z3ll5A?CvJi#2sY at nz4-fD71i>OCDQ_xhv?k(H<r>c|OTjm+N?qu^j`;#SiH-Jd;A&
z{TMSEc%iE9S%KD95G!na*x(F at f#8MdIAJKj;I{JBN1zp<#xo)Jh1;HPZQH?fF(jx!
zX$ip+bd~$h=`I;!NeB490VGqQrF#LnR|`|h=3WR7U2b;~xfuD at s)?U46o(U%$YUkc
zP&<z#HTj<0LVTN^l&I%~8Bn!pvZ2!N8aZ%>y)!x-yhPg~r-s`J5GgY9gT*Xmh((ic
z#jg2ync|VsimXx3(Y>N-#Un6>7*&jJAm9amLV6`j^%|ld7~xr)yxo6PORwzRp(@xh
zh#V(RDov#5bhFeS&iT-co`8Uy%a(PYKt_F7=K(qLA<F<E9}3c*RFf;tUss&GX3w|D
zIgP8GL1-xPN at 1xUH`_QK`9R`XEC+Zxi%s+~;27RYlFjqKYv=T_4m5l!;%fD$sPh!2
z&t68&T0FT4e#uZ at P~6dv=lpL+NC4W%sye#b8b7t9+pf6j=oX>;0^P|ok0)RL6YhuI
zp!l?Y20(Oqh~UnAhQ|nZz82XzMf{cWdM2@;gZ6{}0-yhLJogOerK;B2NmDaaKgKFc
zu>T_N3%?J;w>d1=6;jWCY}44&R%%^x at 1UWf>Tz$3A3GA6nF$XNpw%i-(wxGZ^EgNO
ztt1D8Vg at cw8WoEK0;wmA<hLHnc{Lr}$_M4Kz9ZLuLf=>2BJA?r#F+)4j<|H^IJ%zp
zVBBEo`;Z2wnPT6a$zSh^Q5NsRXdiI(oTy0R*rJk9h6DQqeqQ;eO^P4sQ#-=M*XsDi
zkW0V+KW|mG=gcrQ3sbde<4MudEw_x|6YT9p$`x)5Y|7RCD<}HT6?j9+o%)39$+M*@
z!nipg%4KzkhpFX=1jlnZY#VcyR|tx77d3uzkP$uN6dcX*o!2K!?>wErf=4-o)}{@!
z=p9KAJET_kjOoyHCuhd2)&z>yApUPho!78KMiu1eIw<3RAgF1xx0n|lZaQ*Xn5)tV
zeaR`Of|$^A_rS7k7(0Cir1PKEwJlh#lc~H5d5>pont101c!8+LN{?|ei+uj*E|Xh6
zOeN}@OFad)=N;7IX3Jo%%0g3|mASw-j=aZhNDu{A_0br-`F!78)FdS at +~iyp2R~Ww
z0{52BU{eH at G~+vw`}{(`!I@=9L-)s~d{oaTf>01WoOAPU at w}+AZJ{aZTN<v8?jBIi
z8XFEpnk??sTq)goJRK)*Cqj!o+SX{oB56G$y at C9w0UV26q_g8_jqGxHnmePP`5g*j
zrVq?m0NW{Dx1y*trGjMn-qjzsx~8QXS5U8TxMS^cvwJnaK);foGSY&@ngRJ at N+@bL
zP5fTQ;b~MbB;|L6lc7iAq{JO%=T$!Pj?UTMfH}`cgCHlWW$=w=m18rVxZ4wi1oWW^
zc1(5}Str$E3 at Z;*gI*tpGkyq^Op6OeG6<s at LG&!4XVPYm;&JpU$ASvWzFi<((==E2
zPt3z)5Rw?L%Ra*KuKfMz(;y59tuNi00_L at r-{g>gRdv^QGt#zP>>${QjDSb?l4443
zZ_D{T>}W6S2o*UIe=K76NPD{|M~r+tXj at -0o_b}8@^y&_rf#H4%^-?5sDm$N&QTw>
z|6S+ubuib}S6P1^d+7V=h%wFI<nH$@(NZ?Sa%IrVTh>e0jCueS*yn@@FZxDOmVoOE
z*aU|vULlg$_O7Urci-&Qu*y(xMeYrYG~Ifw?HYXgh)h<U51W1&cj$tY9i at b!cL-{9
zI5|h1wLJ){$vuJ?^4(5})0VQf!h&*Y;-iwisQ8~g$f0AF?U4iGA~MGv7N7?In^XXD
zT^J2<qP?d&nav4Z0=|HrUW`C+RE{jCc#4|OoXRn(ESZ#%T;e+bV!f&PlnEBvY-`#l
z`T)$7cff?mrZc17B!OrR!PohYc|;i#<WuG1wTsAa at GVo}r`*1a+++1jR-K3Wro+<Y
zc`T=vXfDi}so>WeEI%zk7g#_`6pM^dWX<$TT7Fx|{xVXIpM2-0C6&VJA&59hQ)Mo!
z%@pWUIje9o3Iby62A+83Yg2S7G0$xWSxIQGSY-g(8THlDR6&=;hrS1n-i`clyspjR
zbhqgQ^rA?+{xF!R>@ps2#E#=RIcXEo)`vOz8e|v#UHP_ePFD_x{a%PAvdMGcy}>y|
zu`ZG=`Hf3`0Mqv&iwT*m=PW&9ka|dbqU=CzA?Q<NzfMwWk>uTCRB1S^`PdE;)j3Y#
z>oxT$6;x&C>fL at z#D5>K#ZKGVRhI%n=_XpK9%?m6VamgCdPD<^QNW6<JJkaT9PJf3
z_NWkYgG9iQnN7?C(`P0 at 83G<iVj%Nf(pd=A)zpU&dy&hT49=xWB;k?hdYA%VRL~2H
zX;L&-RM?(+1v;^^a_*xUzxXp^fBbPf%V)04R{c;=*YA^FCodkhaOF{&7sk8oz2Xbg
ztd4LwL8{m}YRD3VXzZSm|JRKJp+Aj<HAxn6Zt0*<V%q9%{dJb4;b{1#7BoDb1_p;}
zp<AMgEWrvi*C|DY1!-Kl;Rd$_W at u^kzFqYse7*y&Bt))q73>fFcoQCPlj77zUOm$0
z`|&sf6<blnde+b=6&54WtT1%D%U66P|5IiiwaC1dSOTA|ohSZRnT at CHL$&7=PGqdA
zL?n*>6NeI}+||Zv0LHC$W;zQ4QluT;%br68_XVX5;VqDgFTVSC(`WZ|28N(0X(jf0
zW|EZ^fv2K&2^U6xb!NCSAH9T|1a5jGehHNHu7<+kQ^||FSTFtgXI3<MspYxgI2Ax5
z!wW9RD<C2vC=2jSVFfGt8h76=9q9H(NS1YCfGj<-d+RGVZxJzu<k6aF;Njj*b?R1b
zhU$tylMiApfsOMIRK#bajdg6PML!C{l!*amRqd7MciohSL&iY}0cr!0b;6ZVy!N$7
zk%K>@>qUlc%3oo_-$)A-y8d5DJVf8=b&hz%URNOjU0oCkF17a!C=R7RyypF3PkfQC
zfim^9X;JHAhf0ynH{<g?$al)laGIAU$cQtwL5z!*A7&{JsgNEQOId*4?bN|oU>{{#
zO#%kowFnE(xv;TMDo~DyK4O`>e}X_;#r$3%<u42r7*X`2ba3(48RGu8S5ufO(O4N}
z17Ar6^?dcMIy02lL|qD;FB6eW`y9U?1-qcka2^*M#ue<9@<UCL+x0Obt9rt>x%5Tr
z-xqA@!JPF#tT6Jh9i!Q9@?)Omxuwf63fGC9Ns)^CbJ4Obsw;jrv}Z0>sieRA<{LyG
zD%F-Bg!ewx%C)%3V9bWpa6jiPT<C-dgn@~ol|f}$Cx90&HDOA>WCo9XF<xw{QD-+e
zxxucBi}BU}-~I<iCDs(95BviIu5u;}(2{cCooty?VHlUvy*mL}8EeL at G+@yIt2dmv
zLx)Z#!z*PDz~lgS+1({chKQws4q3l?12q01NmY09g}C7;SodKJ+DiGLH$GmlK+?U7
zM0`>g(hL-El?QMDcse_|YByz=CM~GIabO4o5Q_GVl5GU&16Wd_JX6M-ZlMu%FZR?x
zNU=fX`c4x7Dyi^Ukt?wyoKTR5zvbsJQ>c8hU=7$=wO>CcLiw-IS=hqX)n5c^^(#?o
z#chuaSp5RFE1`IcPhPJaK;zwE1ts`!!iDzizJ#J^y1JsaZhrucSRAeH$-iGtuib}0
ztLZc2uHInSH{+WdENk#xvI;_W+jNeA>wt|&fbffX>Ym$0M9c)bVWG=2ZrlDN0)2VT
zJ1N$H*0y%3HkY_=q(yeZko!7$9~<p`Lnb(J*890ak8H?^fkZI(^12dn(jjFF{0CJc
zuH%++{?`=dhUvPA at a7I`{h<@Yf at f^(FF8*eNL1!6kOm+AJ37dF3MRJrV9}Ss`mV~P
zI1W~7pY)JI1<`#<`Cu`_!Z7PmA{vQ(vT{ndeFD=<H-e!+-A0+- at lo+Wm*=?_YxL`!
zLPRf03Smof&!1Xr*%j3DL;Oy684oqUE>!qK+e<<Ou^M~0UV%r-9ikT`p9LP+A1cHD
z&`+`0V24;qC<ev~yRpyy4r-_wkEv(-N~S9fZ}dru!haoZJfqTstDy6fo%w6XV2>w}
zy1<9|NjcAn)}r}ps*tZZX`f+Ize92u?{oO>Ok5a21ZV at 2?)C9^OoGO`_B#0mE&7O1
zYCuIAR9(R)%sLU at sl7d>{BA8_;0W at DQIahbu|FEykMy8XYQ?GLlS~x9jML$l+}uta
zMQw4yT(;rQ<I7v<OjmArEZYBOGsq9;3C0wOF#@Z|H$1t8>+ZZ?UY!*@6s<nxr=(0&
zGrWe%cSZBJw>CChHo~DvO5N%8$Z}2?VH25Gh at IK>ivgoHWrkhL)~;#F{cfZLW^~ie
z#5HC=up}ZC=F7TILn{OUtHr`axDIs6{>xsa^r=JhFLI)5ju3to_dB0<dz+W=V9$v#
zcL7M%8t&6e8I}O at 8NqpM{-S_{KQ%^$fgH>d>n- at zM`+iI2n18sT-56RD at v&tA|2YU
z$Ev<-DD?J<RJ3!mvdWmDxyOnE2Js&5Z<DheO39V9JLTGs><*f-!jmr^=FxdzW$g5@
z^7pIL$xkoo-FaZXe%^&=BkJr5Ns8?=)$?H70&!8pP<P5`Fx^D*RL at nq6Ue$W%Ln3o
zHbWS;P$zbEqEz9#)h3$3$UF at 3v^k;3bY^nnRqvbd$ODhNPrF%qbb<B*dkmq1C^>Yf
zfr*!>F-rZPU(d6 at mwPhsrsIUyc#^y;5%GNbqn#Zr!}}Q2Xye)RDN)k_uy>EVb<ht5
z=AX0CIlNwKXE9^s=To)nJ!i)cK6b)vctdrG=FgZ6MVHcV7YtElfxkRm8D6=$e7XU#
z0v6R)3C6NK?B6*<MBqa6)N|k_AQb6VR8ZFmKHOvap$?L<nPoqizx4l`MSATs8}QjC
zmDqF0zvBQFCAaz-FipvjGl6)Ve!5X>(ll?L+$2<+aOja|kdlF7CdAl(1P@)*NYz!D
z_16z^NaqlUk0XB?m`R3Gr&0-I3#fFD=DN=Q|Ly@*SH&6O84qgUM<9FbR%qLlK8qlD
zv`?pA*BRpzC at r#hg0C#t5E2Ks4525uczPk{LUNAlmOPFCwH+sSC>eBH at HW=|T{j!0
zMZboS%L+6R#<$PG?wp>_JT#jDYB5noCZKUH4|CgwsH+ONm8alWP5 at f|?Fa=mrP^QT
zV7qWa!&$9ZDhy*z>P1BtbVmOtj-fBqoW7{7*YUJ(QP>31ulaL=t3_T;!ky_jS1o<w
zOqBD^o;(2wv01^s$C<9p>votBlQ58m<9XW!v36vnwOq5&r8mi#@0_n=KwK8wfq#84
zpG)b6j&l5J%92Ofok|(L+na<!G>U?rZ0U`;X%h9-oy(gx(zND{so3JKI$Vs=AtGlz
z70QJuZoV<!)|Ets8#ukNwr2FAs0mK!{)qa=xC)$lJvq@}O(iyad!NPKAJXXcljGS^
zhF3T(xOam|Htry8IA{Mh^zh)ud$~!e$y#pT*RHlJgMzPHBx2qN5t`FmQ7WJ{{YX7C
z3wW<G^nZGx-=7d?c+!^uL(4fpZhP6KAoU8Z^<Fdjxg&@r(zNHgUM^e*PXn1r at gfpQ
z0k=B|Z&ll(NtM5=C}hq462Nav%0th|HTVEVQ%FC0?SfXxllZ}V{+fYHc<*|+LMq3<
z!t0GAxVC--gpGM?55~8GgcL_9N~{$Yq&Doi;pEL(tOp_6$7HcqkBAn^$^J5Es_ns3
z?`sxelHWL;Ye2dPPmc-5pa1v$DKqE&2Wp at QfoS*CBp|T#_Tb<PrU=H)yl0U`MZ{~|
zC6|B-oAr~Wvm7%KW`Yl7?O9RWB}@1mc1b(7d+ZadI&@!oqkaJMRb-}5AR^nQG3}SH
z5HS;2WmFdmM6~P|%g&T+nOoZzi^9`6Ad4}&`3srsV^v8gW}sDKg6q|ta6F)ZAl9Jn
zd6Zi`arpEt<%eL*b}Ud!2YB|X&AKeV8vK$*_anuhUZn>Sd|=0(&D}5sO>*DQpic|3
z@$B#1vK7*>sNn8i>s(`Is&Gc)2oWrxeDzhQ&78pP%jujlG6mZxLF;q_q!!1Q*paC5
zsWH0T-|Q&CwNI=M=n-o+b|?41Q{OdMybxi)f_ZglYK>J9C2CuvhV1gdg=Le~?b*E1
zM$}TLzgHp0i7PbF>5eB3c2|4R;X2b2t(E_xEHFm^s|I|p#9es{Dm8;G=p=%dWi<7*
zRP7i1L#_qL7`^U~mgXVY-id at oJMZyyOi^aMLNV+D9OPu{A>?kKxuz{p{=?V|pGXB{
z_D~Y})9Yk7a?u4iH$grzHvy|h4(v_MERPHb((Bl{>t9#gG8}&IIpIEi32n^DWIs&g
z at g0`edS({Gs8KDo(7DdKn&%4Xp1_|2O_-Ly%>;rurdor&F-<$Anp<5ID3G3zw+&bd
z<&vmR>hQoY<V{0Cg{QIzhs8)Yf)FHF)8I1pVH0`Nkmg995=1VoYP0 at 9({3~d_0$)f
zv`SdDk)}>}rF5n=KM_WDI0C_{X`Fh!Z6JJG)Ay$B198)b-}bpaGdZ#DkkU7ZNK&M%
zX*M9`H8aL{eXr~adr;&U$t3MbC=-h;x;fBvBUHl}*b0!QI#V!?G{#eWPt!VLHG`|Y
zc?BKa at BJd-#DJM;VPOv*?(9oE=GM+-q{)#NH2#?pk|`}REFUqam~DWl?xg6eQs8m#
ziuw%zZMHQKxS|^GZEjokwD0d?yLo&9bbtf`&}EkaJz5n7ohL^CBvitQZrgqP8)@sS
z&*FlcHuQP_c<@^}9Y?JjD at 4d%vz|Vz^sN$)q%o- at Z3`4Dgdn#T?|<RLX;aTW3|w$m
z{wsfjTkXB$``OJ;=2e*dTqJR%J2~E1J;ksNFn)v#8?>S+TRh3j8dc>$hb1fOB=R}^
z#&znRV_UR&>!%lE1MoL{Em$SwUK)|!8G-Y)!VBB_1p?z5qBYGTbZeO&^;-&T7ZKM7
zyO%v2Iq&7X$V4b!50`9DUS?h)^6kWPL$aV_1=NBnnu6BUc?~L)2MTcO4>x{#i3&d#
z3A~a}y>0XI4PvMS9M1GqayOw|_HIui at ct&wt_iS-h}|CBTXeXp8tOg>i5v^U$ku-F
zhHu&PWAR0kC|fKHYK*rm`zAf{QaxEM)zS`dTcvxqXN(dC-ebR7l`n+5c?;%WDwtvz
z#ZTaIZA9 at i0(6UK8-mt<IQgoWfRe+IdRdSoN^UQrd?>$;WcpGC#Nlh0b}qI}x4;XJ
zqZd*!%F$_W)&CuWjc~Zqo1T^Yx(J;Q(fVKk>5F$_wBZC1u0=O0HEt&y4FWOtifw)M
z7QDuVr^4fF?iH=o83mky?uAK+ at 0dHRbxb``u1zogc$5JY>e#fQ!QOHvPjw#CkZ~1n
zvO!?f#FnfE8jR;GU}zp+ec72Sj2??XuMXGY{kE1}?$2uW8>amB8lV_gAE}nR6g1AM
z&Lrw}T5-~$_zZ06S#<+$E^}sQDhk6#cEZb?_bzPs;70aTZKAgnKy&#(Yljc6HC#8u
z$ALv9<Po!b-$iYNMW9xar;}19h)UtvGxQjmvJl#RpznWI0kU);>sNeLwhg%YBCm_G
zQ9hbn2rlk?4X_r&0Ii7YakKn@?#ME{9U~kw#zzX^>evybXXkoU1I=C4KI9ioz7)_N
zT*PC+C^?4G{nSkbyffzV+nRo3Z+k!9zA~2pB|zH0qTLMVLP}HHMO=*=`gDupF=3Mf
zrL)>8db$f^mp{r;WvEXW#jH5zgRo3|rbdh_suCAP(D(TY(uG7{#+E9WIow?TBX5gj
zXH;QIj`s~$wZGI3pW7rw+0?PM1YEc5-12AA6{!rI<j(ZjbGAC`0s?#f=jMMQk=EdT
zAu%!tT0cjey^kwcnb5a?n%g(Qgq$bh3<p`@TA}HpBQ>;U?oR<r^G~W(^L?THrU%9s
zLGa>4BfcFA3ivEJI>uhc#kV at h(3iMtn*<`2fOB3m7Qe}S1<<uSw2sJe^h>U?SF{b<
zvFm<`@B?Fg1$^|d83BBdli1BCqar*;#j^Xe8sy+G;}(CJPH7RzS8=fwP5)J~Z=i&#
z>s*-NjU&?Br0AO9Njx<T{6sFzrR`RkONEAZ(3QlV)j1J}A_VmqrEWhC>Ol|#VQicb
z7CeLaO>hTTGJ~~4rjQ<;)GBd-a&D8&ub+fAaA8su{QRF~eFp3DNTg=w#cC&EkC3P3
zgH$a^1_jfy><BG(N<LG<q>(SQ)$o^jC&QXvQjov%O|_n3jl*ny`b~dLxt7XR?n25?
zqV92EwUz7S%Id`_&C34XInqIXIiaX~ge(nYxSxj`&B1*8H#rYd4!;uZlX~;RtWX@`
z)p8RR3OQCOTqo|}(9+mb9SdHm^2&#<2FcIS>$c5UO*Mm;T(7<ScDCoVe^BaND$93(
zIJ#x-=w7!%XbphK>{%TBKjQ7)Ep?#x{Q$lP6$^v-fqeyf*_uHy>a%V{sk7GJ;h2$g
zH(;3W#<5-y7mrt7Xy62>yXv&8sl2p4!2WtbCI?dOg2hRjeg|+Wn0 at _nhyDVHBgQ7Z
zj%b)sJk4plQp3tcL|UI*fdb+N`R{ux{r at 7)JTu7KwY1aSnFu=FX_Ks#?M#RZ6f!01
z3<qNoET_r19O7(@)jvND<S|7Oj9#hyOoLwGaDZScUYv#GX at 0F{%&bZ#fjHo`h5Chd
zHgVx9W~@<zbY1L6W0;q-2@(fJr>1MS^YNI>Gb&K=z=`+`fDMH;KKU8-FFfe#pDExl
z9AahmMt*rhN0y=>6yf|X*i41QYB8G&zpUzE7D6mm^meNw{}_XF6iuKZ9YEd2*+rbm
zho};BH-*>Gh%f5xdQ2RaDN(Wj?NnxS#`yDIf=@H#-F-KgG0$N8SADCMo9$2Bnfs3y
zgYU>uT(^*@GF$LoF#~_Z=U$^vUC1zfVQBCye*%A)ZhHJQ at W=*{lT*91XLc`_O!J*U
zLF$iJS0jd4&lFE;UnBL-uamUy$e8$B)W$D=%|~0)!UhTi&rRkv({1DDZQ*;U=k4}}
zxRP7j!rjoO-G!9o3e~r4MgEW-V5J}Xx?WPHAxG10ac96cqHeUMIN#y_EaC6aHexU}
zrP^jCLo*}r`E9?h*qc$vN^8q?XY+kO-|uF6a#2imQo){78|3`v$#Exm&e2L8eES at 4
zcF)*LXIHulr&ps#AWGxvGvoR1-pSAjjde1k)utInasX{MpKHu9nt7upbE6c-EnuOj
z`7S}^&QDkXF9pCc{R^k>p(NQK2 at _W*h2Lm(h>4JoL-*mi>b>}yGe*weGO}4*N`T2p
zmoWkb-(5TST4{61K}+{mBQ`>9!zjS|`EJE?E8S;3e6v)c^DQ(}Y{hkNe at ZP`p>K|8
zcTm+wM;6ot<4|t>dxMypZ!Y4Jh4mZ~>G}4Ma3+tEwQE93kLn&IstLAeNHoYYX-vKq
zefERZK2W*wJdby8 at 50h3ieiB4JgkfLW5%VQ^SEa16Qv=4ZUN}w?wl>VGKZ|<a?&bR
ztaFvc==k&01avtjDV>xuTvbe8ClZK7kk&{_8Z-3uqWa^xz!;T at F*+qN7}qN&BG*>z
zVGBn`QeS4j9m7 at Nc&9aVAVBBbC$nWh@{&>ILX_*D|EBg#cToTQbbX^%EMGrFn%mw(
zu0Oq}ca!tLNH7fU_|e#-qqy#o-e}Ob)3b2IJck-)dv~}68#3KKwDl`~jXl3C{L8{!
z&agyDO5){;=TbELb&AsWl6Ia_wuuZ+ECH`F7MTW!<c%I;^Ug9?Jl6bxp?OCUtjO~0
zwvbe-S(>3c6ScuX3O_np4VdygP8HlG{RLrwi}ot3F-(;E3&ajLA0LMT@#4<SYs=!=
z1sRQMEiwKD)3U%o9J`(EK^_ItTQ3DNAQFxHbNfDRcnE3_<upBt<=is|0Qd^H+oA~I
zJD-zdx;`Kq)65czC8aEib1BVP%Qd`a90w}5uj`%s8;4YVU!>A1C&E)up&lQjMa~tD
z^?T?M2&uvz(g^`@5u=J>q%yKTOD5?8XflMumy69sMKOX^Y~Rw0-L9bXdYm6U74{E0
z5qFfA&K4M5J9#E%6jHmC80G-6A+8$fLs-D~IjtsWI`^=NgOu+rJFXrO;|YbctuAwo
z(wN=%RM)&O&zv1GBF$VeR2b#erPja#2)4TUvj_KxpAWdmpN-!!@1+=7T76jjKN}_~
zM~@A9Ma5>hx2|6j5p^oT2X(ns02hV94{_*C?uMCXKnu%TnhAulR#n`sXqx5W*zgde
zH_C>ORX2!oHuD%VB#5nyg`}&j>m<idg6KrL`Rl)HVj8pwQ8v?R&K!8s556h=(bTA|
zs1ok%W+;P^v(uP- at H{yVxjGInh75VBTI^Sfb4-(GyGWevu!ywhXe2zD7G0p#F21T<
z6gVXJ2t}!vJ4hwqe&68IiG3aqu#E^A{U89hw<W!^x*Yr8Q}AL~<`oXN?x7A5ZfgIt
z#(KS3QG>v-hb*!3_WG${jASNT at C8el*Y7p9uD#5Jj4dCAYEyKldW=UrA|}%4(Vta#
zB3Jdho~v!ftdSqX?A_Q_hGNM6_TUnh%BUSTfZSS^uz-uUDLa-RRZIyOqpOMa%r2|u
zq`1El)YUu|rOQ}70%A7Xk7*51B(%LU#36s@!4xVOw-$m%U+<7?f;D&%89d_O1Fqo(
z>%?*-|H~N&8DK_#_LRqbn=^&A%K1ryc|`!zK+}U8x%{*j`t<n9jJH^V*jTtVwGX71
z3>Ikc*+$bFlaH2mBfwWs0`ELkk&=r9gV$VXsJ3rgPrb!<Z;E;SW1>a|i*JY`!br7@
zFw-Hh-+(M^21Qp4&zDBTXj^&;fQ6)?sSK-l6cpO2mSl^8^z{6MXljxb#J*8+MI^YK
zJY0Z at I7|yBSAb)B=L1!Icn)M6$oDE}IF<&<oNN@*T4$piNh2FIR^JZB1T!)l$wg>P
zJ+yWMRl|~q>WZA&JALKG7;$dlWCO|qY)`k0tdd?B=T(nB%sAZYO|2UM8%8{vS3Hm(
z7QsZEBi95>pnO4-_wGtB6I+Y?(e7{rWIenfR12NE?TC`>NR<`a5P409A{f2MQ=TH4
zXXCqwsjtd%uuEpej0o}&Oybgyo2IZXS>|A~qA6!Qq|0DGPyrPDM$n>`p<JlbM!sp`
zsgflXsvlZORBPM1C<1G`jN+sAu5o}UX9zgK%3pWq)kt2p1XMk75K)3Fd=Q$v{p`xY
zU45Mm3SXtZnqB61VHYl663SQ2C+`N}4rOeZ(_;%zBowj#;qgn{wkuX2)8ocblUN~S
zJzBMy&}#(V|1^e9Mg|RU0XKoZM{&^uO-bg8$<b)P5zf!)-QR7XqDn(q-xtgzrMuGW
zuJ+0i-a%~Cy4|B$V#*TT30dV~TqM7SMf%ObruJVDj_Pcq=Nf^w_fE>;b75C9tS#K7
z+Km=LiDNd at WB!tJ=vWo0lc8!-AQ{_o&vhp2vRd at X_ySqxeh|u3aQIsCn6rS~)(Egh
zaLsbV^k^!oVlL8M={`VkIZ9W`gV#=`tQB3bJn6PYM`;*Eg{I5^JQMtKqNtrXT?MD(
z65b&B)uYssF at OGYU|p_iy;Sv99>cPy*<w|x>~g+S7)%oVe+=fJ_L)X3k-Bq0vvV~Y
z93vuYnXb>FPEd}KynX=N_%RBnPi*Y^T5vQQOsndpy_bf`XptKLEGaSmEwR)GQf|!D
z-+lV#TbAdnH+tS3Usj+pQ>ONisEay<O)J$udeDodIn6EiQaJi_poo9Br2Y^09j;j5
zumocoD*J6CS2>)eqe$agp<>>OHk6zjmGgJL0dmTr`Qa~JIztyZjMFgMnJ)W(ydHc!
z#*v^?jV>QKvm|Cwq<u^~I6K0LRc$og-&6;gEuQ!xNTNz=Ui~=!vO|K1ng?Pq<hi3r
zLSh-51<Alt;o)~YC_WD$=)DU?+9IOKcIw*Un7wBoPOvv)P~b at 4xxjDJKS;YIdpF*f
zHJhfLp!TNTeM%JNuq+3U`4-Lj!T6rPxd at 1g^QZ_clq!aTZn*99`&lztrt{V08K$kP
ze1~*S+AlyHVLS)g#HbGOln2Rp9pziMK at yWJK1`)-=13KVX&UoB*_KVd%<0K;#qQbv
z!uB}p5J90#{PRUKCf4bTeQlNxvvw?sPGN2MO#Y;w7kAUDn6QkwG{5kf#AFWYOz4vK
z9zyHw at i>E`RZ&25C)NlBUOm&geGFe%(HP>J at M7AVed?n*jd~J5sFE0vdsC`Xuc+CD
zQ#4jvJ<tV1a?*T~_1;AVApzQDu7&&tauHh74sg2LWcMiYVnY7(XEB&vWA%5;()60+
zgt7D-6_8DwX?OZ&t&*G(MDo7ag0nd2YTKmG0deVN#hAU*g|_3^dXJL2U%c5hMWRQh
z*CJE&=u1eaUtp>NE+t32ake9xwwqy>+wa{>Q(0q$j1jKsrupR`-IgSN{TAx<el33Y
zc$%_OPvUF!!Dv!10i_$5WzeBs#7zR7l)9S+TWIE)pA_*7 at C9pHJeN{Qehf1Eio55w
zxc4OA?218{3 at azg!$!{oEh<_~gHcv*WU1_@$ztKJg`fH*Ux*s&7^}eWZUb6s0+H6C
zV20RCIV&(Jg3P$iI}rh)Z8`DnFtO=aA39L6>IC<xh%V|?eiR9mEMktth&LFGsJc~*
zITejy at WB_)t{tQRk*Hz!@3msWbiMu`5Zq=2U(UGH<}9rSb=;(C-P9N1nd22y>T||%
zTdg@^`_`Yig!YSO`Kv(>#*2%#u?sDR=EGRwy`nz>D`cz%N4{cjgUdj}Bl+y~;`P0L
z<W^nQ at fyx<PU&8eDum+>mo#?ehd&2<el1{xF;A at MpV>w+fXufb*3jlGHn^0|eYY|~
z6gqhjdy02~1_&|5hP?2at2{O1JsD!ZVFMG|wrV(-UJ?!zyj$=>4YVmN<{Wk)W(|eX
zh#}uRrD$)1z`o92T(U~<$82%$tR1vQk?TZpOxl=m|CVNOs;^gIN{T*1gG#hBc)pBw
zF96 at ZVl{!i&~*islhCF67Dj%=zIvtTHspa+JVIKQuUiHEE=8Yj(k-Y<oZ$!fOW8Y6
z9R{IC`aB|^uL)Dw>h<eK_UZA-XSmyu0G^<tl3x!HW^f3VpaiCwyi)mtoeJirkb;m;
zeL2_UZ+8+(zt}vg1Dgx?h3&uU3R-77?cUf3*=qjeTm3;?xt#J1OopJ8 at K-n^%%t``
zH?9U}$sr>De(MX_ at gH?V_ at F^AOTAQYvbAib22&QALfQi&CDLAmM2j#MDTEGJ3DyDC
zJG6jHn#V2PgDD_GY?;D>=U~I#4M(<Z5G&P=Ya5(lHqt+#YoQ}rMJ4RA0E^DY8NV1M
zBOv!-qM)?7naqf>sCu5=Dn+-5HvVV()INf7nn9%=0-BEPZUmgF9H%Ys(Knly3>=wr
zGrv|a75WCs7?>=8LQEwSILR$u!*QQlfJr7ra!0s;kq&3hc3a~?B0fByk~-p}`f6eA
z0g%FtV%D5TIa%e>R4z6GEswKPIelV0nS##=LE2IUt9AWJXsPPnmfbWcQJlUQ^+jcm
z<__&wD0>xe+AwDjCFrMeE#vP!_<6d530L{3Jyu%^i!iZ=4J(PojMZ*_=<B+M1iJ4|
zl|V_8$dtQ0xtSx=c8mKN8DOuDO|<}0pYuFV1vc=<t`cr-=H_h81WoZwk4TlxAW3#x
z(w4ECGR?w&76`}B`fktAkj&~S7*uzh$q`dS8fq<l7|1<rRcNG)z7)|VK?!Z`qb at zf
z1?C6WdXYWUPxySK`v>_kolh$)Z%<74>5V|B!^nfxi1Vtw7A}){?jSwstH?a{H2AC$
z6)#GXdlQ~`Xp6){4N%hcKUXb8FY|K9#!f&S{`3f%GXUiiIuPa>uzaWLyrNALjITU+
zA>v1+ at fXLjNp3&Bm4{ZMGPF852ih?i$I~Nt1NSN_uO|xZoGP&bI$^)Cmg!i;KVfv?
zb4mFKFc`)rW>yhnl94}3l(Uyl?PZ(nQ7||<s+CQZJ at V}UR2=z}ZNYwDa}->%!bp5j
ze~=Gm at i*ib^dzA4$pTHYZE8#1S~$wis(9|+<HT(*Uz<>s_)lkKP70%+*9wBjnk`rm
zL^_UvHYiC~J6ENLL%ceb?c-BtI(Dh8RNq<pABQs6e&hU{=#a(*l;!@ss?0C|I`G^2
zk`U|9r&Ery21Px+#E?;ko0TZpB07)|RV)JjxgT_=-kyQTEY2Pe1cDr%xJ5bzx$OdK
z(l1(NJaqLTB}t5Ctnlu~+$3;7h1D~&c0r4a6!>5V+6~YMPAMyYZGRKUZBepE3Ah>p
zbCo at zZ&VMCBJv#Mm7R6oNQfQc8AK$Yyfr(Im{}APY%hEXSR|zy;>z6$tTU*)u;2B)
zp8dcuP~UZV!OtNx)2G$y&0(vVSJN!an0&}elk3&fEH^P%0>5YES0iV#`>oY<uUkE;
ze3O%WhWY>fS`<_Sa#4v;^0jtYB!pSPp1u|0ti75`v+p at w#OWA}GfTeJmE2w&`6PC2
z`MMS8%bq2vcpNS%6bu70De=+j(?%gtNLVhflhF7SLo^=A5!mTa9FvsW)B$*Glbj)1
z&L#@ssTMC)V~*uZ&iQNtm|JKtA^8Hv!}X0b#|Y*<LX$yQtv2OK91z_b6o%nhq{Cf0
zG(<|xv at -BW5lNw)!~YE^=C<f;prnI$fU_oU;tj5e1MJcXyho=v6Ob-1jSxeuOsBLS
zOr?l4GOeBdFCnaxF%|Mx)pE90I1q%35U+ddz6m|#+FWoh^28VbNaT38zOkQ)WyFu@
zV&AK1j5-u@%RA~?P|RPWDy<n{Dt9Ps&jm3!pS_&S?BY5ZXQC?pwEV(7u8wV)L at SF8
ziN?RtYT7MBBac=2vOX$Pp0!=3?UmG~C>r0(6djV|T4v-DNA^3PF{JIp^Jc+<#r@@=
zr*lW2tqk6B%<S{`2Ir3ygN!7HUs{h{NExu|>_6I=9#N}wP3eCvnaP`tx|>sUw-KF(
z0);(!PoI=_i#fB_q%J#5`8+x>5`62w^#KTk);Wan*fOK^fAb(AFwsIA4~<H at 7hB1k
zF^-pK#UdO7w1Q5sMVt(oE4t83?@UVwqenl#)T@{Z|2kML<XUuyS=7}Q`oZu(L!6KM
zwV-6Iw>gzF^Me2f$i%-gI0=0r723}}<#}SUY6W!_1curmJiRG?U_E4{rQ{~ep=^ix
z9DhDsrd}Pnd;1LvK1Mec!O|e&0W_j;t_teTIii5J<%GSl7RS7}$sxubF>NQDB}|>x
zCWHet23;T4(y-x~%3eB!GaAxg4)XpVG+*4p3`=Fu_ at 1fySZKhbH_wPH;blfFbqO`^
zffu=eE5ZW{_z!ruMqkY;30(2lrKq>x(7-Vx1nlp=-w5y_F^r`EIG|00DdG7UzT1}B
zhPLF|kwKylct}BXsX3K?1}ZvX9j9>nyJPE|$W+^uCtOP5=*JV)4Evv|pJ~({vfc|q
zXjuoz0Dxv!eFLtLhu2*xaaiA)UWQ+-l)I6H>T5G0a#FQUW6J(=anc6u=SD&^p#gm@
z&dbrRFZY4M|2CKQ;=+xd7APSeW)HpOxBuZBn(;|Kc)9kdF!#dXFrbIl1I`iHv|Z8X
zOS&@O!6+NV?B}l?HC6Q_|A%vST5+CxUcsdvjOk3CF#-@{(77Z|h;Nil68L5}=E*K!
zArA|FLPSg=w+RTFc7X6mTlSNceWKxE at 7&nUd1>u+>B!WDr at g28`?KyOpIy!NwGTQ%
z%S<mMNYilDyP4+qPGtRUpEPmrEnlUZeZJ$KngWljimW~k<BShkLL^d^4r&o!bAvHz
zlVZPRlOQ|T@=0rON!jZC1oB6T`i7&`HTO8(YZBE3A6Ybx=LX81 at kh%OF*%~*sP}FK
zGl3>5dMfL74z7Y{psSxxSDvVS1;E%l-7XROC<fz}i9OrAix#O4U2eI*9y*Qu`9-+&
zV1gA2>(-!Z6KdEB`>{fxAQ&A4qo-Ld6mp3N5eo9GqK18AW`1*EQf%p@^1nk$7Q&O3
zVUFE+QsKstXuL2!dpawT4>-lH^_7+}#VEAZ-~nOr#5;8HZt?Vk7UM2cr~`kS19;=G
z787Opl`weM5~NzgN42$d>dKB#H2rleV~0c+XvghlJ_K&R<S2<gL!ev7vPA#-W!u)n
zEk<%vsRoP!qjj#NyQ0Lg&qqK6Q?zXS8rdR7e|s_xbB~*yqDvW}0MJ#m&Jq~MQ;Xg6
zy9CpjUtx3MD@&$v#HMW`QPlEVa=_b$y4`4x{s2mQhlwS at J#grR^r~IRZBZRebL6NU
zK=G81tiBNUO%{(TLhk#b%xJVw{fZ2@%2u$bBFh2#81OM;pAe!}Cpqf>9As;A<33tA
zvGZXZJy(%sl=$-o=??be;r>~}20^o;JO+aZ<RwCjTNv&fa$E7<KA4kXN&OC;W5&zz
zEHQ~)Y;zm~M-V8h3)K8)UYhhuVz65xj at c<gi01UJ8#YSn`Y+ti)zyw{>%_cY{<){y
z7!do-7hGL_s+WZ<D;{O+ at HS{log=I at dzW`^3Wn6K*LZJ at 1nMEKy~QenqLNs3=U^xU
zc22deuzL1xlVFR+t_2WNfDJ`N8JzuC6<&MMTC2%cYJz<2+Wlci(J_y(bKsAhKQEYy
zy3_-GxgHyfzYXbDx7X-t92L4B4yOy!ZG2bduhb~D+EICE%L)$qfCYL%hg&cNHVY89
z<ytPsw?!zH3gDbAVKE5ZLD4S;(|X+oDw at UxxSH@tSq$!GyO4uGTb;ft{5rKf=-d}I
zX5r_Xfu7si13+wxz}jHVvUH)ZNNW@!)V67G>>G_Y|Dzu|d~hY3&Gtpaxnpy5U`UUB
zaO4q2PJ;@TCs%#wZeSwi6X`$1DJ>M29e<VDc$nR`^^19W0Wp8}fQ8HjV5JGFtgN{f
z*h*	W&%cG5u`1v-|#55E1sZ)|?VrcpYVFGhDu`9hm^m;jiBG!Fn8tB76Fb(b44I
zlRuQd(G*>!6z=%gtVRnAaS>_wDNSNcK-lO5>?-gDZhD=)%rtr)qPLI~z*E3L6+tO}
zy9*oQ1@(Ky1f=B{nhN0dJ9liLGmtOfAo6TEGRgj|;V1M~^hI0}^D}eH7i#pPA{q8A
zd&1I>Q?-WbdyvF<x80+Vg<Lc~&b{TMe(%XaX^=}h>x~?E7RK at iNOt@yy!}yEllRnV
zo7V%ac_>|>)_e<qm1bHFE2+F!>=Ok74WI#E&tTN#1CfbEkrTl?vyD|OWl_{7iH1i&
zx;ifvV<0okFt=Mr*ua`Tsl+V_0JgL;o*^t2?Im9nZwo>~4yZ|<X6!XVi1oY0l%$BE
z2b1^kuFLg#)`O(E?lts!cQ*jqTLVhaGB*?G*d$1k2j9N}0*86L*Gb~*_2rQ4BPsVO
zQ%zYw-m@$lUF at Krq}h$M;4H6NaY6R&4?iR|Vg5 at j|10<03+56f7zPLg$%ixF$cxnB
z>B)J at I)<&s&4JC@{DGcUct~A3e at 2g9Gzv!^mq;Wh68F9;B_LOG(In^>3}(n-8{Aqw
zRM;=Ay}~Bm!Qn#jaRQ6X3j;6iJ<TgUZ@;`?3wm;c1sPl4UoP^K8Yq%(lP{*3QdZ$b
z;T3>{E8Z(}O|D^#>MduHly9H>@HGgzI#)z0A1;Ui+qb*%V1M?lZl<5l_dL^XcjJ%&
z3-Hw;KL4Eq7l=n_&n~&`6~lw~fJ-lBR}HuIDfnioze9h9P*IDe1E<czdaKkMMry<O
zz6l4J6RYekc^1pR7h at vl;rrnCE~0I+U=bcAMze0Phc`LEcfB$!NLvch%`b at V-iXUx
zz`PiH3H!LB&xM5QSaSHA`sUK%Fu9%P40?KSao3-lJ}DQV;^l5YxWWx1QA$Z-%4bsN
zcZ!e?eldwM-yL-m&hEbVs=5)>)7g1^Z`SYR#K1$7|C?%$5IK=D7jIxb314rAZp+Ni
zo`(l%2-kvvXPw8tly8hPwBNk>&Qy>K2ey_|D(3Jm$8jixit&ByrHi(2OXc_MI%mSa
zym07^f(cyBQhvUJInEO at JW6NLrC>k at 1jk_SI>k9$s|gx2LKT_rm(LZ%rQ=1PT}rzW
zQ6HJhRe<^!ozp#|4TVgC)<HJbX_?wLg_;D=Kya>B^1>i#aEDV-J-d<Gy4+Q)!$YJK
z-hPUj(A}dw65K57t5|o!MM-Hx)9?Zn+KzS*Rby>3dS0>Gl%9(~xHNGp58D|}o25Qc
z%4mxe at 2a$Qi at 3@H7zL%?+iZpi>IfF-RHRxNy3ak6)*!ahyG-}po}I1spEwFd at CUz5
z$7Q~GIMpgB5`15;pMGL599Hv&6kNz>bA3I@$w}58lV=XBgoqUrp{Vk at 1R#nXz!F^x
zxy?d%AkSxNT2vb-rlr#!y8ATIUG}`vfj!EErtq3jmk<`b;ijA0e}zKFSJR4l61V%4
zm^5?HOf)|jk}w0304isg+t}um&ySC#;*WCq at Sk_8z0M!}d(mJtE2V*b2MWs4JIO{#
zFl%kZR^f*^K3ZkrP%*ODIpTE{sKF8j2Q0RN7Od;kVkUK*qGT)E%uBuPD7$B~s|iIl
z8$efBK|?^Hp-%&WA=zi(x4FDyWj&AJxoS)`wNgesQ0GboOXs&W9Mxg=2%u#pg4Ljm
zqXc3l)^{`Me7+EQ0Wu=keVfAf-H}zsL+h6Att^q?LLJM;Vs!xFaFvDa|CxZClIH-%
zQkxYifT0{WmBK7rh3*n0PwWog-ok?oXVK=Whl{1Vch8XLtGiN|NXkq!@cx0 at y8nl3
zcSd#~*cfesB~oOI4Fnbp&=)L>)bDa%m(ElfzW3eCa(MSK8dMTKsQ}IKXcx&Ru|(c$
zkpK6;q{E+|F9PmD-mZ)yp%4)#XT8T{09dat1A#^mbqJG^Vcg%8Ccjvc*Eb89H0wYN
zua2q=jeoo7`w^<?tcoUh1$tlQ35^2-Ix^KMIqu{qEFM#G_jGRtUVEdLkL*SZdW1q@
zJ2{io;_Z0Hck+78i_}*KJ&)5w7D8*HRK4K$lQX*zc);inBfn()GuJtG`wq<Z1uyL;
zq{Nx23AXI0+r;5xp)R9aMe|07GxH4LSECDN?WyU(TgFzos`U+Pgz%=-030Bv1<mJ?
z4J|pki;xjj{a5!hrz6MBWZ5A3RwCk-(Bb!6lYrPA==%xmSLlFJ)YK?MdS_{sg!g9-
z<ETN at 2Y=FWr_EQUs*bn~vfdZGrN at WWp+}?^f%DO*m(-^TFX^i$rr1LuR&NME`W-rN
zO}C!NJnMq5q86h7^b(rTkfSz6x$Sjd@)IxO(DXO5yyMbPHW~nulzKOKgr9w&?j=wU
zNDzr334T`}Z`e%7phkpLMjRI>LEg_vuCj&VM*IS`3RR)hjf|hpT~LHOGyLf{*R*zw
zAiqMe4zaBhhjK+j+(3y!GZm)oh+SJb$`b at e`zX}Wogv1>%0YEu_#v0hhH2L!(ZmV~
z&NVIONf{Q1Ey|=dnV}6xj4dswWWP)N0J<1e at V>6}Ukkl(s$2|Tv6co9=_r*Y{<?>p
zM#FvtojVV+>HXgpbVE{)!bzzGKJ2UfHD!mwt+Hqg{gQy1-i1CSBUO2{9TcPN?7-J-
z1$=aBk$jsoG^z9V=9<MM6GediG%>gQU%Wu=z3{2tJ-}RulCq26N7MW1UQ+*}qln%u
z%Euk_?@8;~9as_Z)IX$HKpSkPRS0@;71`UwPUdG~@YW7w+0RJ;uU3**xk9GrwR~d;
zCkG*$Tc;Rgl&%wRgpd~!uPS9lzC_Ii7B5jdxopB at N90OQNsO@W#Y1=5UzAvpKxb-_
z&cv8Q(^hpsrN7<gBjuniq-kz(-TN9C9~l^-Qf0TTIrHude-f0;C0xX|0)4sKi at 1?>
zRWd_E55e;IC`5pyOz5R19-{Y%ZGr|KH{8d#85ChHJrw-2LryyEvx#CY at gM$D at Ihq~
z>NUNR0ot{k4IRU1 at +pU|YXK2<7vT|mrQyxqdbrX_Jo-GB4TX!FGQyO}vc!jFC#^{J
zVM*EY!dZM?L_SZlj;-J0a{#eO9cB(s8h+-0Ar2p*=x^bdLM5Iy>wh5io9cLt3ftYB
z7W&HM6itk7z<G%8B%z|<tUfqX2rv6(lw1Squ!j3<)1gb9mA<VDlXRr(9Oe(5S5Tc#
z>NWkF8zfIuZ}HU at Q7MT`0Z<u+eDAy_ml9QYKzL_$6J6sXF4y2BB78hOH|V)a&B*|R
zqDuhp`)JB#%NpI<P}O}U)^(u1ff)%@Kr&%`{c2)V0q<9Cp$Ka5vZS_WK%GFnc~@1s
zQ_`?SWX|&2LZ2-}m6rE&6pbSTwWDRiQ2!fv2m#dmJl)>2g#I+NPj{YMT0)=EFN9?<
zF^Y3;Ib%BJ#GW|N5smu(L~fut{$^Ie$njkFZqG#s`Alv^eI?#VyP^gS`bpUOx58>v
zYdJpnU4pV`z-luv`h|GVRc_J7y;q^Fz!sdkYo9q5&f!*~q_M`!LpUa#v`2m>sEZ`K
z_!MlFS!9^~{ll^#ix15p5Uo>Dv_-sZWt7~te2UHU at Oo6Bf%QO(H}>_*uW8n9=iFT)
zGbJ6 at w=$K)|HFE<4kxpnyr$B&P9H)9hPJG8U?(D-yAf8Gt>8Q6e%0mJF`K?I2Nqod
zPip~QkNMC1mgNPV$H}L}#dP&WqB0&B_zAp>7GBLKZ2sW}*cnsjmQXb?z2#X<w~7{#
zYpjqf=1+%x2!8EA at 1D)Iqrgrm@#+$tH*sXB)+t~aoi?w1h~X&d<Z2R$=I8Eu4wFc+
zxW{96GRvIz^>B1ty?Nm-c#Ozf<|^aAY{$^Q=++6;iL5 at N-jzx`y at E#b?<AS{jEgz(
zqOtw%yAq!58=sLpunkRQC8k6Gu6$PtJ75Rg#=u)bJ-hRi&qgjt<Y*mQ`jc`_@!Ha-
z1q&b3rORf)-ZyUG)Fwr)c41eu#u(Ycn!n^KQDyR~Ww`v%Y>2E5gh at o=Xm&w)I+eMo
z(Etk`*WPu#cI+1tD_EzN4KlVxk5g3~$7R&M1L6tQgMgTSJH?_cdripY3 at nn~dYco1
zQ@%$qH+L6yuzZ4m at 1V;ArLWJ%eo3xd-k1&%+PV%EqcY-sa9TX4vD}2hIz5DiLm7yW
z_<FK(ZdP$_ve<Y*@_o?|7<QCq2|($dA9McyOjha*U)Hld2BAS9OYx4KD8qJM=Pz)F
zHouP{?vlpwlu>$UI`%g9=b=|g>u;j^J$XDTfRgO*9TNwXuLPXo0GM5ENOWCV{;bq_
z9tAp)%`jVPer$fvKCjh+R*qA{@YB8F3{K)p0>78Mf<szsy0FphC8gAaN~7{<%_nHs
z)PUQuL=f;s*OWc at xmg5hzmdWBo~h<!JxA}Uh7<TS$Wj$TvYCu!v#j#rmY{|)JD`r=
zdZdm^Bre4K(l{HQmW|e17)en1T)bPIR8CqEtlGG_Hy$K)Y~HtKPeS0yCQ$QuSHuo9
z!Fd_%fgrJlO_<_dRY!Q`0$PkKDUb5g<MjVX<vX(w|9Y+8SlJ?fgQj(p5o at 9!{OvcQ
zVtw?XybI#XT(wI7I22iZ9R1g$Y1E+y8rQRJn&{jxTCBg1`RNW*a}f9i*|)}Gsfmw=
z7^eF_1QS#>z3&S+LrBn#HYNr^d`_i at P>v|kFM<5`Ea_cRw7dIhZowNQKtWVk4ByLw
zc#GmwnY(kV4(5}oEL-xC(ambY-$&_;aB_!hQ9e=rW at 2kn^{2MHbcF?W)Hx(bcZj(`
zmKQy~tqH!!6X3D8QI(99G%0i`)qidK5c1NbsmA+6YL{-oZz<ajLyn+s{=_jCH7a7o
za)wc?n$o!tJttGmh^Ef#>sHgrlLwD7;1dxNy4(Xt?)-2fgE7v_uM3}{@4*%?JnogG
z=60mzssDHFkeCMRQJhbiOK%^uVVDwIRD`V0p>nWEB-nv|G_j66{kWPYXDY3#QMD3%
ze4lUPl>fNuoC^Fikx}<Zy*T|TF*UAwQmM}nZUGPLcPe2~z586~)~nUJ3T0^IeUtfD
zJyVPniC~V2DI!vjG`b|n^*t|<@B7a#c;;pG)P2MILo+Nfc*3fCRibiAgRYpnwmEKJ
zvsoEZoJrnSZ8;a25xY#axD!B*F(Xxc8Nv`6cCAcKp(1(6H~S1qWrN- at XPY)7sGb`X
zBdARP5T`l?XPiBn!KliKX;!N#uaaykkx1ycfXkqyW|1ce>Ds=&dV4-R2ZwOzC@|6)
z#V+k_(HqNj$L>aRIP?`_f#Y~E3;1XOC8EF5dF`YX(z{c;aKsFTxXCB!!?2|{EN6J$
zap}Ob3nwMf6E(W6DU3T^apJ^Pe#2EffUk at k=^V4GVI+w8S4q(~5^YWZf0OX|7H?U4
zKmnW3MP%%${d#}g4Pxf>vhj(XYSdswfPT6OtcPtH;~4I at QaIt%oW+oxA9`}4krrOa
zzc*t`IPQBeajZBRB at 47nAy<89=OQZ(^$Jz+0NU=5PQZ~szF0iL#U;^_GL=h%C9Rg=
zd4ws#z!1jxTZ|xSyI`Rt$Fnf4eeEuxeyvAq{<^Q at v4bqYsD<I%7e!M$UaxiLZ1~~u
zpuGwrk#2Tm3wcthqS<7=4nJFU67P5j^p{Bm2t6O at z=c6cau0bveL0}2DZ-merTb{n
z5Qxik#k;*Z=neSK?KD7~F_ER-k4SjvN7Gqx{$z7Ck47|z<pG{$lP;A$=Fup=kW29|
zRdm&w)KOFL^Lyd7_6Z+n`1Hu&=8pMfDsmi%HPmR{d~&u(@S<byPf5PrK7QQdBu^HX
zON8N~7zD!*o(~*kJUk^yH|+w`pq_+N6hD6K5xwfpBfo;=GAqaQt%cNWh&go at GftD(
z;fy at kp#0HO2LfK6rISYcHF34bjC5(>W_OyReirwmxytD$xyt8V^1#>_W0m{BXp~lO
zc1bZ5S9X?}mj#FuJNW%;Hxr`dCPivE+{56=(;m2uW-6N-uiHEnX#Y5x-JkqA8LuOC
zc$@&K%!G&L<D;k6k0K+jvoQU^HJO^STfXrAk!((Q{4^|}wh7R<dKC;Xvk(y6e$<tf
z`PXT;ak{i!mR4mVG+#9i;z)?DdVH~&106hY>%xPJ1gAW)5Y^l1v%FfEq(|g+8V7sa
z^}K83Y+-EBRO&7l43pOe{#HIc(Ftd;Xk|x-soPdodLu2n?ikwsByYWS0TQ&!)hx`|
z$6Rn+mL6QA@&j|q>hs^k#{TIg^^(F1oe3yl8l$D$%vS%i{pNTIg2zdT6)V at G+1zA(
z_h`8f$`SuaXaV9T5c~M3_JMsWoP1Yx&EWzz8Sss$o^-t?_zeGOg=qV9mskhvo$Lex
zLPv19=HgVA5qxq{OV9Zz9Ii^{FfyYA85z?bnxx}m>gYHtL);_Cm=pA0X#*Aw+*wLG
zB%Y4EtMkfA?qDs366tVZ7<|ZH at +Q$8^rQ$^tCCjF#PkL;rp*~asGQw)a932-u5ik|
z+^`Cn+F at OKjFF7kc6~~#d2C$|eO98hBR6O3N?+Y6q4h%anuMdR;31};?I8$)+Bgq(
z8MbygCNRIibfm|^!gWLlRfZ8#J at j@0_UpaQL-mF6vm8*ArPfg7V63WYCz@$TNApri
za%jIoi8}d##LY`AVdj8L3MJD~&gl9fFG`GlP&xW;Bm`e3Q9!N}yzSp82Ck{NQwNR*
z!UON_8OttXps<8|_-+CeD$d`&(f^^%1#!Ws)w3zt%Q3QM^7CQ83v=1T0cAzxxc`=N
z1I9Fbd+fmJWL3XiO$^bs>X2_$u`!_4s>Wd7&smdRN0^X8bcA~(5w-$iiPQO<#d&QS
z at s=(;V$8AJH at KI_E*PGRLTYvron7+?4Pf%gXrzz90$R1ajyvao$z at GfnY}u+%EmZe
zq>udZZ-(wmh69>x0CEXNF&Y#B`--8!(TsOvP1Ki+DSsD=l*V$<mk|tQaP>aMO!>Dp
zULsc`7(}dV?SSA!*fMqYBN4<BjUG!uFAS0bg^tzLPrZ_{d2Em17lQWR3%;VM$Blui
zJZ9Q>PgMrA3sEDD2t>q}Lq(||U#zAlprA{6X+3*`sro{PO}UY-Ch60<^)bq^(1^$#
zHn>SoqP1tKJ58&#nq at E!{l at m8!^LA)kQ#G7)lj<zGZZeHjChzMOELzH!pNqI+0m|&
zD6Tj-^FppwS<wS9CcFwv-F2NPWy1Rw+I18K7d;?6F7HQGJke#!W3#yqmXSc_n$ts2
zD(RfOn at nvk)Bl=IJm0d)i8PK#psilz$JCDi0JjpT?`MAf`!4IyVvj7#2 at j?ubAueB
zU0*pui2k#{meylCIJ=07M*R)0Z`RCc5z7&gfDN6AHm{>iDykMoO`4y%YOu96Hz`Gt
z<@&o}zZIF;XQs=|h5E=0TqPh{LgSm>SeNmME<S<zI}86fQxg|3`b=2P-zTVPq*VpM
zMQ4F at V_#cVx*i`3IpQyuJMvG6cnFClmJM~6k*Qp&?1&db0LDmSfjbnVBs%}<o|ooq
zQlY2<q`YP}3gS>3$l?oBuc5q*a{Gg$z=!Hy7iVZnm$m(n)65|Pc;hS*-Gwr1vnA{0
zFPD at F*K*JASdt9 at ny}YNUM#lxTT=yo))}J4-$`72>^3GU`O0>Vo)~7nX_}jLN=j;o
zl5T8B=ymn^S9<s=Q(GL<q8xDTSG91#bfMl7b`YtG%yvz16<uA*7rRwx!L5-KEo~!O
zKTL1ay{wL_*)iDcm~%6q|H at XgVh`bxS33#s{MXF_Rj?#&kr7jDyI@#r)FaZ0z+1zS
zsY at yyE9n=2#NLDW^gxqtX~F2`&|8T>Q3C>FfL^VnECRj>%&<~ob=~t>%UAonew)wT
zqu`hQuGrbYK(6b!A~Z<5mzv#EFBi25{Ai*}4_<_NsK64JsvVuzyQkQ|>J_$r5jCXV
zgvqyT*HLGn=RLtdvC*^>Gi~2*t?d4`&{P1 at zLvaE$8IQXZld_*1tuOaB_%ZXc8ToN
z=V3`dvZupD-MP>W`f+-OT5hD7kq!Q4zD_9{`TH>Iog$9=Y at mc;+uVwwvwL%-XUGcy
zjf|x5Y8je~Q>Q6w<)bkm)_Xm!5GA^!0G`2Iy~)F*tzj=4Y6CU&a}{sMlF8CDa^*Ng
zMy05a1c}<W(-=4gCPf|zI_;Mr^OQKQnUN&})20DXaqI1q$fT`&HXZlR^+uYN$G9pf
zO!N9+Ym_)#d4_qHiJL)}t=j+Y<LhMcnul=I%o<LP?%u%-&?;)jnKPA>DHxx!MAVF<
zEjXsNYqryy<hT+BQ at 9SPepp%N&mo^W$Ym#_w*159n0uvxe_r`Lu8b?Zoe&lR&CBXO
zZ$X7nP5RyxMKCl0q;qFk@%<K}gPd3I)&|XNuIiA-;#Tff+dE%|#04GLGo>(-D9hrs
z^KZI^&W|lec|OA&UK-kGPceibt^j)OBIDbqN=`1!aJa#z@)za~t5~Q(#5m-h#fscl
zN<v`!!r4aFajbc7($wVw*mt`UQ7h6sj{<C2!v~LHy<+upCuTB#j3 at S6L;xt(E<dl-
z$j`<dksz{8>Y?;KvN^tA$@hvwMW>@us at J~+$#5hH3T!3<U$Ud@?vWpmgu6cEi%Z|Z
zj#80{t}^e+W4o>EGC_RsTw=5n>N2xpY>`v%$DD#8>-q{*7N#WfGVdTy4)oz~m at WMl
zcv?8vL-Ag6;Ko9Sg;0-C2~eD at Up}!S2CJ5D-B{!ZZHx^O2bQDF5VpXnV5iy9QR4re
z0;ArW_g8%6XFT>i$mRr}_3i_vl<JonEU)uk0*ahBFK^IM<(i9_TE?fsb)?(aO)yU(
znZtL^viq_V>bQ7|PL>djZMlfKsin?_VMWsx;<m{|VCYkS1=0w-nGu|A1MtaR8a!$c
zao#wk+nM%VI0Z7tywDx<@DEPmA1Nfy<bimg&ja-zSQ8RqwG<qlV-Q~e;O$v!<g>Gq
z-H6ILI(`Lc+n1&33d36|sYm=gS2$reoNRugR{8%_7FYev5U4o4N!2+5b#a_>Ia!L7
zQ at Yf*_A=N1d4M1zGq&Et&*Z8*q+<w74MBLA$<crggWN%DJsjedpz0f+?jMgvx^Osr
zEOf+RKG^KFvPGByq1&M(Lrc5HY4oE9(j?;Gt5jMGp>(vWknWc5avzkzVaDkyk{%=N
zGLGmJ7r$e;C5~#YBEY3%+3T}e7Q<Uu3Jk`|S_Gd%NtWq?vEe`|%wcj648ev8I(hz4
z_r8wob2I at AlK;0{=jPEeWnTLN7r(T-G6Y+- at W=^W;0y=&?l>-stzw2WXv#ApW958c
z1m)7E&Ad=>v at U5ZTk<#kXC|nXTMg@%mn;sQw2huu*yqsP+_gUYPP~*^i<xYh26nGG
zQpO*xx=ZyDZ!|~#vy`o(rekG{=Zo-kIBMI*R{SY5e;7}2xM(NP3|Zr{QgFjmpNE?+
zX-k at 7%JruK5^{jb$CQ+Y0TJ=_I5F^idY!o0pTBEOF02k;(i0jDc4K;BWoqDI9TH0;
zNVA6tz(>iJ&?p&|9!(@UsK_>z++kc6BdO8QQNe3X2 at nI=)xtDFT?Tn_*~_uDhV(;?
z8h#9WDn at H$gBTh)u=jvnC7_gqXxM0H!F6a&a)~O(S)~zzHi#(QowTkq&duUTW$5Yo
z>+q<EhEXFb3$@}PJN<`ayX76F`T at PDYDxQ9r>Nz{z^V_vD7_?h5I3HL)`N+v`ODiS
z*X?pIl}ptyUt3WHhE4T{%u4{W?$pmTQPx;-b*QosX4}a5R)Vz<f*+Jc1(IM9fB`W7
zZ6&LtaH-b%3ePO~U}EX45sok0*JH!@eKfni+&?jyg^{dwt(*{ZBKS05BIkEW00gC>
zYYYGs77{ErJyV-e_xANUwzO&-vYGB%w^~q-_ccH6&N~M0K(o+|@h~<HiB-ch5Ic2I
zeO5=ivsV>OTb(%~Qd~9}5V$@khtM%dWjW7w at 9vT@dPN7rWwjm)BE4Wz at 4AdCM)I!w
z$gV%oso?4vCgSu{TR5XNIH#z2uHi{G(_TFgmUkE>j0etUp_Cx^W$PFq6^F20kx=GU
zfCbZsi#5bd02o?ptLAQtfD1u)<kh8(nc|zbf?XIuD<~c_b#3Yeg%+(On~j_Js|Rfi
z?OqCG^MI|UvY=7XvfS#~5<a|tLnDt1=JOqA;*I>2Qbz)4O?jH7db-*YRm)9M<Y!es
zT<u2-pJ)uz{OGA;6TkkiVkNU0);G<w)*a%oPi=vZ60#80K1inF_<n)+NjV*N+>qE2
zt)~cm at ri~sstr|56?4zODuMM&8SRzgSOT%uX4ek{({>IzkLsA}ui%%#(e2n$Ac_dp
z4|BTADZa?ffl)eZdprMz5 at WopJU`J^bcr>pKClY5w at YEP-E2~oMf|>xyE7KmB8zp#
zaWS_r6aBE0mQGE2;U(d2ull at 5WDczk*X(!*YyYSL%H<`@-H0I9o~Ri+ur6t?VhG8o
zEb1!>1>roW*0HigPcrCe-$ZWzagp)$(exZPK%be0 at zYg@6x#4;!gJ%ISRxNPT*@kr
ze at qK#UIXB!h70cABuO~UMkgd)plUJ;dA-go&jF+$5!VxI0t3}}{1oKMw>W4x_jrr@
zzma58aK`pJRsIt?pzLzds>5`5pQ9e*jTkoeH`TR`do5P at ph4QV37lV6hR-wy20iL=
z<|t*z6OQw9O%)8>)oFh9&nQIuC<BjrE`0aN=1AmTt_NMD!^XWp0aeEfbN6+8y9xsD
z!D#Flp)b1nww!#&{_VKiWz@!`?2{|LKlZ%x;S;_Jji{i&-iB_s at HBY4t<E4}TqqZ$
z5qG4EQi%^rq#O0;{jfDDb*vt_OVa|B?@6ZaS$Vqsp^lX$;AW6qZp=RAv6%W+vcJ{T
zH=v9A+saH?qeWm<KRCR~E~SPkaV3X6cXU}@rnV2WG>C(K6?OOz#_VL>%Jzlv!AlZ`
zWv)NK$WP$g4-^M;44|}Lv&Q2AK5=8q?bLH7dWbi7Lny1R4SUBa<1^hrVZ(Z_TA-ej
z2C8};Xig$G4jNn&AZ2zrcyasaH)}2m8VcX7_epV#sjXec6q$D6mP(;AvUD*a32}N)
zEqyZ)FY|`lM-X2IZ7uOrXdhXS=oYY=$k1(YYyUqijMx2KD5{cnb`-pDCY)M9MF-x1
z+rHWfheOV;K}C+#3a8odb{Q#B9lt{r&_!UH17Ef6j5uQjl8-k!Zuz4;5%*<V%uK4w
z(GhU&7TsXv9fKfJs^J*oqB0GMaV02=sQ#$(*h5jd$oL?a$hH at l6w@B at lI=wG=+!w`
z`R)lm;q`^TcLcG~1H}62pKVaxqoS{1DEgvpr!NOGbx5T~BOR)z2pNjsJQ+KZ1o1!K
zO^1^$Kk^O2uC`%2YYk`)eL2CVjzMGjB_+V#7j~`Vaz%alFa))yFN at Hla&T|wF%}&*
zW}Ijr?A5Dp>Q5>gtad5RDVq5FB at sPaFSfUe*W>zyO4~e_+VThw(j*|zuOuGvo}{Mu
zX!cyQHyqFb9(d=gpNBzS>y?jjq06?&7&x#Uc1nF2px|TFEz{G5-v^pTW;+W=b65#3
zcwuUk){)Y?PBna~J at JSZe)nyA!4^UQ>hRhY&&TmKQ$NF5)f&}<a>DtZr?Ob?5S2X$
z7T<p*9;z3=4rxI|xc8586^a79owU}b$*inyi3bBSiCFuU*M$IidI#{-`HZc~0!thB
zvQqiWtvs at 8VXqbdWjJduhqELS2vYdm>%5Re&TCM&K`mY>3f(=yGWPK&qJ at P~doT5&
z^l4KKh{4Y1qHbC at Tg$UnKG>32$Hi~jQQ?EI9~rJNj7wr2 at OID&nkJ6N<xYG<pb6ND
z-rC1iDPI96ZhJd`6;*&7nDPzj9rJGr2{2*BR at t*7J{oC~>VP<-)4QG9La at vyOb}4R
zFdXCln3U)(%P#T=!_L`Kh8m at 7qpYbRptwB|-lHC^u$d_+a2Vw`4%$lw__HP$fYi(F
zt~9sZANW6K=eotih%m`fz($JlY$X=?e0}8vU))~RFfZ}S2En?Y9oh4hLXIW9D9zn-
zIjMZnr{UU=2PjkwJgc&)3<%;<$x%b!cpk9IZR7Zz&h~?4 at xEW%SodwU{xPi;YWQxn
za!A~kUb~S`_J}zyK#}EV+B?)r*slJB5ttSjPnkRTpKDr*e5RyEnxlzaY5B|6IP>$(
z5X##5(I|^<7KYyHM`cd%@MUaFf+HL+hbGq6Po2A4kXw^+1Gp5~kQlcrd6Z)UbT&JV
zbUjyP`m6RRk6OefLbg}-&`$*<w;Wj$wIxq`iHhP~`F6=aFH>2`W)(cZ at -`8a0yh0n
zkj`d5<|?IFRCGOaqM+&9E at O{eEQy{&6B}`cZS6PmNc)H4$dRDt>-&agO=2FUGj4WX
zmDrKf8*)Lr-siG{+D#8q9d#1WJ^(sE#lNIJC~(Mt9OeI!2hZUb!I(bawnh$mGN|?i
zMIykxLhx*dKjyg4UwC#~YesYFI86H?1VOuo7(<=hw(J1-c0!-($Yv2yu&z-0TSI?J
z9*}(kdba6D5Oc)Ou&5gkM)AqcK^^)B=p8YLXMspN_n^}aM5Qa#o+CO<<k%FfQQSGl
z2!U5yN at deOQXH;F0}rR)M128{-Mz2R)u0!sctY>CESH at P-`hZ2_1y9k1W1zyR*81-
z*y>66$(73ER1&)`_8dtg2|boK)CtBj=3+k%0~w5;%j5yM31;HC;nl$Uhj$REjpV*I
zB at 9lNj|kA9Or9#!IMPh_J(&*zh{PWy at 3SA55u;$NI$Av&a#MB&#S*~HN966A8A&G}
zOz6os*gLsBlYJGn5hqa^FVDK5 at EKln!S$^ssACes_U{;Gj=0t+Hi7H^y+Q-D*tHS+
z4$Lc7J7u1i at O+=Qq@)v+gEL_&=R&KJmbNU)(3~Ah^fEs$sp3BeHx>2eg28NMtQve%
zDOzOqoPMC2P0Jq!!cN`yV(9P$NH*{1_|UxfgSS77Yqb|`DWdI4 at jkXZ`&VQ5RhJZ~
zc8WC8t-O8`yMP1jangwXPAGEnI<&>=hIUf7K#Gbj<2GcOgR|~2Ur(U=t{%LQ)i~eC
zlV^0_#o_WI8ZWr2(@oEk5~Zw9un(7zB`-JTr)_vgK%+l`JgCTP?w{@J372p%A|Y&g
z&jRayMIrAW9yh{y#v6=M&1_Fts#6+IRQv2f6HXH-8*$bBZR5dYIae`rIhH$MfL~Gu
z7BgN52jU1IY!~G?EPVfX5bY;WSH&tnE>@A+hdJF*(F*`NI=lCpgp++4N`&5cCeYr<
zqX`;Q($3_iZOO(KMdPR&MQ^Bmko56cl?*l6+>I;}7-T;q;C4$^{hBXP!|;<S3AsL9
zUaxSK+fpHc3I1w-K`xeMEp9C0upn6AWuFL;Nvq2T9|6{7pxvnuREMB}DNizf?$6h|
zf@!*Jt8xp-++qMR?MSVqY!hfq7ed$>MHr_yu at NjptPme)9VDyiN8{CjE76v>(a6ZY
zg}21k+(>W`5O71SC0Pk89t&04%-Fh6KM;t=i%QWU0rBnu$oG7wRTx^-PznNAR#2ve
z;x&Ber-M3Y;yA`&64A$AmmvFkkR!2^R!4P`x0Hk<@^^SK#qaOE<#rS6*4iAzKHa7F
zCYk+iC?HXW&fL?uz?x3I9R=`)=sRRKv+}Bz!JXh5bdz(dnN#;&prr(pnnXKl$fi^3
ztv=?SNwP at q)k4Pd(t>M=a#u)N#hriAA4oFYMdheoE4RAW!@Ngr%Gu!_4NP_sI41(W
zfvS|YiAEecpfrfpc615gsgdhA#b4U5v5~T>NsC-gHG1Sc{;e>7{h68QB!kLP|13Y+
zX{Z#OOVZ_rr>8HU-GbkE;B~LUh(LQ%n2<t%npRqO(!f!<KUq`<dW~*RdMC}H>4Wv!
zPu<6MZWz}+Z at C=`h77<jf%SmxeI|To17KuG5p*8Nnc~ax at KI)kMZ#sx#}>N6pZXz}
zDDbwW%0(EY0Q^d;`i%B-*J2XUxTH*=y+q56ox at wW?D!2WG&b+3o3JMI`TpH1_ro-2
zxe!}T8%1)K{T|Wj*Y|-q at _V<*vld<mo)xH*muY`%@+0U<fabtabHsz8?4X?YKd6vb
z`?8)7xP7#OT33e@>l?LDJwTMU?-03WU;q8ze?TWQk5Ue+5x0FLO;ijq6NM#ULtKdC
z0<ZHxD7K(DYUG!epDu!YHXpWfG7tO+VJ|YSKsGomw(cqKxJdh at H7Nq8-`5{yE*_FF
zSreZSCKCSwkruV2;fyj!_EoSr+fQsdX$dCZbq*&=>XX0FsOTVd#4vur*E+nZ2UL6s
z)Yu19>)RR*tJyRwfLYAP^5`an1Uo0a#YL|(UQ4$ipa+oK3F$5mAI0mPp_mW4cbNbR
zdBicT5+M0MXjbS&0Yukr9??YHuU;v=W193oEcQfu5}x7~1zabEl6LZ%RuH=1_SzCC
zKw(GZde-F<GQDRKc#eN+ap;lEcOU9Y!42i7sjeuebVMLFHsV>mzTx_;hfWg<1YmH3
z7}zHx3!vSO#Z={$k+ngS(Za9TfrTK%ZnnZUfTGVyTM{p2#07xb1F5ZFJdWfWj84%E
zclFYOl>ZCcY%^>=u0C6i)lG}4rmM;;KCjt<9y+Z2pT2g at eOla+!^~0&b`r1Fmv&E7
z-n9vj8UoxKhmu*#7;pMVHgYmq7dQX`E1{wYh0-`OYvm}XI`#Aj(Kb^Dnj~mZSJKP&
zbFc)=M2G~kQ)tqj3OMYbmZY$OtZ|7P^<4kgNavwaksg#?1Jg(&y=GNHUuUs%#b9Q+
zL_kM6b at OC8S&1tSOSyG0`iw>G|AlfLEHHJEAf=&a$22#4gH*P&O1wMWc#MY4W6z{q
z*}ZH2Srw*2T|!i54lNm9WhKl}MZGt!iA=yp84<)kq<Q;!4SL9Ki0av;;Ae4-*+y4V
z&s(u}uc4P>S3|^gGb at Q`6#A?>YRa%12s#RMrwppUq#S0%Z6D-djXo_ at R#H)ftS70=
zWhHd)S0lME3O_{T_E`M)C^Ht);(=LRP5vpqhbUV3D at qSZQzae9>{iA|uUlkC0OHnK
zqy*KPQ<F0Y;T+$bZPhqP6HcS~^;@jkOZNJGLw}0O{UL_JMz_c{^TT)b71j0&l)W3h
zJCW&cTmjyzX93Db_)>G<y~e at D1!S0Am21rsBVu#$+=&BM;b%ooie<|7;(agO($buP
zeOLec6`dV;#nSU?WzEd=Z|~cA_#W(6vw*E$mH%Qr8Bsw at iqdzNi|KAks_SZp73t1e
zDm?ko?_)qzzfp=gEB|Ta%W7AbsAZVUWZ?b&*bJC&RBO>)(=n5P=Umz;&+%L49qvy7
zqkca68;Ag2z?#5ewQCvAc;5&g>p6z*H=zi=zRg;WoMPl<!N at Np^2Dnj$(eoN&KNV$
zqFva6kTg**<2X8k2e><iY5J*a^hxFjw5l^5EeW2u_Nt?1zJd`+ml+VbeUuSu*!VMj
zBelvKK&?$wa5G at r5A)Qs*E)#Xg|^i$f$U at jY$O&0Z_z)2rZ^7!e0r&xoUux8z5wSJ
zIpA3>PpcoCa0}CWlI9dypB_z2__ah(S~-`l$82Y3Vs-^?6F7mv0Huz5U-`T_$OI=1
z(glfCTY~n&Hb`0Mo2XOLE~+JWUU+b988lT~czqr<Zno24St`~%+vCU`gD6Kngb_wE
zw|={-z5$TYCQze!kL_`{j`!<g4xs?<GlTvnkSN^+qs3_Fd?8?B2gD_~gP#YZ!wHbe
z at 2fN2(w<&gIceUt))FWmze=Zl<wDYGP#T7osNKg+0vZH at ge|D`^G1_O_w}q*v${`_
zvuxv|B(;<~O#u>o at oQ_VW2n`hYaknv`rL=Xdxz+QxOX63caBlJ@#|5I=YX0XwPggw
z!}EdBgv06MnmOBaCiwz<Q%gN%<iBtm(4_6=1s8Z(tbzx7e5;K1F#p?QC51~jeUOZ^
z7*f2`los^Az8zuS;!K~&JaOQNlX*cUf5QU42MVfI>tp at MnFuj4>h%P1Uptr4fBHew
zpMM$ijuCyA;S(IlneJAi#0yP{(B~5Djb*Bht9OSH?a{F5kC$$X6YXy1q%VQzqT}4(
z1bIl4b3#{)xH#C%@qg>yK_Fd%n(BbIA7zze0QQ*L-J7QU_!PR>-iqMBSkL6t-Dyz#
zcH<<wTUtW~2?~JrC(f2PcIiU~SN=*nNf^JjnA#;7l3xz=rK2NnU&IJLy?RDC;zRD}
zTf>~IOOU~dVEwEhSRi24IvTCseG)1hqJnbECow05vfJsty^99z9%CCKlT2_^QW>3F
z0vuoq0|$aF@^ZaF4s6hDcPwp3H%jqdDr3U!R0?S%?YpU92Cx_QQfxnzTg}M#|BwDI
zzHSn24HEB3{mZYa{ZA~rwIFUyfrctN8W13LuO`Ifc5%gXz}LovRKC_KxA_b_pj5Rl
zdvI!iA(r5!P^Q`;QrmG#NLk?VE?&g1UKY(<6r_-)>bxwgFuWv5S=tV?b#7bgr)(#D
z2q5>X47Fo1_XEV^kO}Y^P}H*t-m}<|J{4DQ9uJqsgt#|d`dwMgDO>&O9IBhzg$u$j
zlEIX!^Pj7V2T^+n_gUuzLyQwsU=Xb at Nw0+2Z+%NnJ&~_+$ixiJicdrwcm%Onv%Vwj
zi9j&m=0_ at 3#0Z>8Y*b1zM5M at UOjx9j^LhI}VP=y<V+=1F$t##`=tC{M8_|XjJjb{m
zQmtwGc7>C3;qrtO at PEgAYf#oyiUTBdn#+y+CXxaIilE9fT|{;N!)t_w0l}8FyG9X^
zc6J1Ik>RVhgoA1l^1<)mC^<{w|LLLR&jI8LTWN#h$XH!GrA6CQZ2T^Y4VyU%Q6{=j
zjx9#*UMkcu{wdvk;0j;!z(bCii~-Z<$oKAlh`FfVk2u!Y0UT=wVt&NkW?%c^+svr{
zn{=Be*k?6HgOJ2;$QxEhFi=g_m7NHsCf*aZ1;wCOvbsbD9PaOMxMQFQ4$i}E%vBy<
z&JNJbVv3Zj;o at Fz$PAr+t(F9H(_qD+^3U2S(0{XPj2>D{xG#1BERlS4hZNz&B>eTw
zeMlwrW>wUS4qUYp4lw2GG?*?hKpU;2Uffs?s1-7X41*TJ>>79X?5B%PkLU{E`;o^x
zO%Y+JNwgn$&L at h0Oef~ZMF3`sBt=;kfwG>9G5&%2*fv+RPx07)Z<Tpv*zI$?b}q`k
zW02v*g_j>_paFwa)?DAuu>3zCN*UFZ0FmY|q3HonlcVSbGt9m%FV at fRU`RR;=VXpY
z?#`z7{~?r89L>@Mu>5#pt6VFtNk<gnNyI$Xpxg|%8e0OS?n2!>m<a1%2{OVkrzx6a
z4kTSNmw8bHQRzf6E0rbuOFfTEMH!d;cUPnFSo#Za{pgr(#f9}n+w~3GEy0F6UbWKs
z<G9Tslt)-qZ2Syqi&Ww+Y~Q at d8e40Uz&mCLtyEs`4%TBlYYGL<vCbaF3;x}E4L#Zd
z!9exm!LNS)aj);oe)KbFnJWtVFwwgQ8Q=VSR!`3{T0cFG_;=APG95Pw at _b-(;y#<{
z=kf&iP(JDiCMUJj`sjGhz|lc|D{6q`)VvKi)c{b*UDGJ9TZyQ65?8#atWj~?V<h8x
zUng)cTUz#m)RS{#5v4;P8?Yw~oCp>`QcI&VnjF&ZLFYg(w<13x6p90}eUaQT3%5+k
z0DsxS6>b}UraPDEapw+=gPBS%<q?v9eIdmq`$?BsVvY5Vkq)Y;p8y*8#TTSpdFg<K
zEfcBCspcSaj7M1?Cl1)rT!Vs at s`;*zPpz9}+fo=lE$-_X$_R@{$;XbLu^C?hxR-#%
zTo$H=6499<WVt_1@~MPZ|9;3L(QS1LO^w-u`S-1OE~29o_kzVq#XUQqbT!u=8x!bf
zrml9T3w4n!5e1?mDMgy1`P7DRqfrYe)_eNtf1ql`ppgs^xy3cbnL-i3ik(jyWI at -U
zW$&y%nj>&Z=PNKnhNPBO4e6`I=J`((v~XaoHx`23H}NCUz2X~0uLnQ-&2L&PCAsYe
z1VZbQDryq94M)tzr5N$Hao&ZotGZv*k-!Z8YRgaQwx51tW^(VFKdE<m$azf|Kk!}T
zfp~{AO)d&sbtFZvH&(>W2P?g5kAk=hQ;3(wL0ckIiq;t?x`!2(Sn1k8tzk|rAhPh3
zjIxf~=rx??=z(@JetUlq;G(^9k8g)H7a(!?2=D~G#JB+oXD$%LMrEq0*EPP{$uAgE
zG*^Lfs5LT-c@;(Vm^Df%O-p?@X}L@|Jk3(Js{Ex^=6gh2H63wMr;B)A`N4k_Wq&J4
zbE}!=pdnQ+3Esl6xmGJ<{BKAHp>Y0X>rAv1o+I{(a3w3`w`a+Iq7W>8VhN6q!EAY9
z(?OK@$Y#wzU4;=V`bV~ES`;k7tba~xjIMqWchVL82up;jEj{yxFYPC)0OR%-oY+YZ
zKzg34i*7)QJWu6EJq1L9T{As;`k~Rz`73v(?{c764tJNOSVv-dyI{ib at V}2ddU2RI
zR+1_=mNr==;13JVh^U1c=$G4{GwV9?-5308*6&q+ at r>p6_V;lNE4H=?i at 7TWvVGNx
zL{TG{S7dOflOlE)eFj665FZe4cZ+`-NWltO(0E&D?71NTjjwIgmL4AKHu3AI<W0%k
zP)MtHYy{ir6 at S^x(bXUf{qo&twYc&zzr|Sa$ru53eo>JqzhcPZ at NkzVdp1{i8RC-a
zp|X1}-P<3FQsN<=r4%H0!$s45&7nVS_c*i>G1@|1840m>Qiy^MVE6|6gFIJNW)iCN
z>(OQ9k7-r}AHM(GpY1B&-V0P##Y<r*nl at c>7E*=$LkjEAT*TbS%qCeyQz%tNIKLrN
z<@7cY2=3w`D9@=)4(E}l$(M$5qP4mKC_|ar?NoPFHStErZYwkgb-7GQ#b19)aRwOv
z?g;Ywz2g-#uE?H3YMmBYXOJ%;)0>FhB#vb3|4@{bHLIXCZ6B>8K6qb2EceJg#T40&
zG?-X~ppF>di}-s&mZvuPb{6pE25M at bffD!Y7BX>vNWFxPxR6uh)R8IWq(bhMW}K<n
z(|8cgy)=Sq3K1jPlm~Tb+j9o-4UZ>^n{Jc4$aZR1^Lv{2IL9U at S1I;=X)?cAoVC;B
znv8%-QVcELhok0fQNG)zYOyQ|RL^Q|sg=j%TgNlp4qw at b0b_p>^cObFtmnVP<p;%n
zoJ$-Fr+my~V+E}!?!K8K*!5(Ox)-{!@@RM3#Rwh20!Px|v1?vu_(EnRQd%Dg+ZJ@@
zJiJ5Z)*)5`#nAG at S5N}OWQ1^U7;_5#+<U?l2FI9Z^U`L{n00LB|21e-haBISXHM9H
z^p?cl6sjGRGnEm%Qiu@!J&GE20qLer(rH)NtYPHAUS)?%#mrLO?@oy`Ar8~Cg;=d4
ztro84yOmrk)5?8;TfleB%|>F-^!dDr&?~Wf=EySNDC)!g)F~y#6+!T7Y#3%Kz;wq)
zE_ at sA5BXm|(?K at ZpmECafiOlRQf-DULsrL;y5_8v at 89J*wW+*kPKl}X{yRdfWXdxX
z1d^_z_S}*A3t#TZcl~`3q{>er=n<s$Sc^v;sSGJ)Xh~6vyO4iH!I5-gsh&P%0oBdk
zPsb~BgxqD2Z0P6ogI~9gG(?A;a-RsbD($9<Ps7@<7kKdvPa^t3sp!{Im-YH(uGc}>
zz;cZ9-2~wl167mJ4Du(?ie+E?-ydWTs>HIl<-l+Ce1HT)sA&SKVx5(Y?yM9ZKhR0-
z1*8x6D3uJ)Xc+}U%Hjun$Yl4OMW-Rm<2}{pI0fq|im6U!2#TyV2QpfJQVxdEk+DkL
z<=(YKGl1tcpPnUZmReI at igCJ+UzL3os#rt~nvGue+!QARzrzTHx$B`BKqO>TK#e0M
z5QLE1Sgx;>=j!Lo{Aa{r`T}$F?t8ZkpUSCU3uv|DQx2UYFhi3T9UQ^Ap%SB~k^n13
zcwTtHobxIYRZM1-X`bXLBZiy6&Yg8t at +<+zturfnNp(jsQctgF5CB(A=h=`<5*=M)
z(Q}b4a@}2O3u<XbjT_&t<3DUUD6a<slvRnvi(O;;1~zIxYG#?iZrj8|v~@rwYk#Q<
zw*n(bn?*4-3qDxD1BK;%$PE4mBmWoX3K^ucwSLYfx#Y<TYK$4IYg6z at yU#kSN20k%
zD)AXK9x25Et}(tN5w>H7is)62>%%HS1BU2X*{&ET925w_&al at -BE#}9v4Ey%5THwa
zgHt&Eq8e(33a%~?va**m^~6_wx&e3C0GFP(?w~f at Gg*2|*8tHGBhn_DN^Dz`&cRo;
zxe>F6v(Uf-ikdEfQIjvSs*&;h0=FCOHuL<n6J_V6NGxQ4?=tr7KRHSfilKWi#E{-4
ziu<vm_crT{P8e4I at 4-2UDNYzUzqyLNu-ssI)#yIQ3m<t>U-{Ejo+6+^q7N-NATrU?
z-4=!SaxfGwmJCS%op_B%e09nSV~c5O(dqSrYzt%Q<VPLIYA(2Z-kFke>sl<11U8Yb
zb?bwBrIHpBEwHJs78sYh#5#s}1MdxhSh4#<%l|%(r8mb-4-&)mLm?a8CMQr==Xx
zR6}6jJ9~#<0A8mU2bYIA57#dHc>c{eCh8$Ja>r{hC3}}y!*y8ZPhaUMEE}LP))0W3
z8%%1Xmg$D02nVQY6s5hmiofsXH1|FTq*9E*xEmO at 9Nod<gT9WWPHOa=c5H1eo{k(K
zeZ=LN81?h62}DcDllv&*pS;_dRylrx3$x?HIv91{_DiJz0k2}VV(Z(Oh0NLUnx0$X
z%>Zl~FrK?K+R*)vR!e>yCe}lUcj3}e?1s+_5L^M0BpTar;V6SP<vv;4*ez~(vC(Im
zx3Ziw{h&D{3gokP7ylM^o2IxIgNAGOH+P_S$2wlGk3MEvb$f#>Xp9eq-QT(vJ=M#C
zvAZz7LTVhNKPC+j*odZ~N;o6&AmQZ~XL`ut#Q&;yKMoZXFHa{CiFJ6h_~nW6CcwGf
z(#2)9-amQ2_<So?Z?OR*N<X4fI}l6!88RcWFt7}`6UP<qcs+di;$x}>XIRMof40km
zVc)UiN(0jow)t at hf!-H_7B=<>J?=OV`dnDw$lr<D&qeoX+g1b|(7!+^rbnf48Y`O~
zh;h^zeX0 at ZEPF4xXc0XODL-%RrGWy?C5-yq1bZyEuV<OZ(>jKIWykH}OX+}G<TI#N
z0(*x6!Zq&yaQVq0>(;sE$wamrRPMGJguP!l0`$)iu{UOu4$jy$t+nb7=UKvpq0-Lk
zp4!f(1s<I!*{s^uKSnv%W*hg+{%#Di!9tK*kROnpHvr#mI!9(MbK{uxf%e!iH&Z$Y
zcI5G^e&7;Zx5hbh at xY!{cXz|mH_-f!{^MZAWqfkyU#D<WkbFLCez4KESr0~KJ{CN(
zpUR(g1&CW%m)r6_%pXX)oc=QkJH|1r=$&QbS5l`0-OfM!;pJty{621>5MC$+S!DBU
z`Kmf#C!-s{+0UFWh9))rC$^))xSQO5C6Hb7K<C>0+tn*euQooX1QpylULSPgzC04h
zdU;>d??ht+vwKX&0)Vrunof+TsE-=Tmgrb|Y$I&ve3A6P!?Vq9b6A0`v@;x(!c^2b
zp)qj^LsHw#K)cRhjqfBw+dC9$rbQx^>U($(tn9>2X4u;MfazGFK+k3QPMfdb6f at AQ
zT!4~MS%n73X)uM~91AA5;&K+P1PjC&QfBCB#>XJNCdew8>7F9Tdw*{A9{tDOz1N6n
zbkWTyN*V$ds@=aupt0W!GIg8ywhp)OTQ%k*02`AoTH`c~@*5^hz_>iRU`nZB)rR43
z5E at C^k=5fnDLjM%O^%S1B~7v)^ww;TI_&FdnVZn|&WbvpaH4KooH3`0IecKd9(OVF
z0*)t^%l<Xb2~Ds-y3UCB33T`YUi1B-Q=unW%&TsJR;p3#B*+J?`=x8>#LwDt*$bDI
zDkg2m!hej+jhc>=GwfCr(T^i8KkS<)SlTAz320_59H_r=R)$%Z0pB3XJCQI%(Q;eY
zbQN2?x3ptQtNnmOVhkJyXrjyrT5Iv_HsWmabY;K-u;`)ve(*1QRPEep+E<I9ApZ(>
zv5Tf0<Mk23!$g_ps7^X5#8C^?WG6sC=%s*%%8F8PVVj>_<WMkW{c>zN*uUSFVI3zY
zj8#7FfU7N(2d?s#XYXH_Cfz^O-D4!~#)LXe(^`<aB_ox(Z%MXht-}#_nmJM>n>8To
z-(JES2R`|&$iHI<rB&FJ!|<#_+nS$DZlvSbu|i)5Mzz3-U0&74{H=n({-+0rG%6bW
z6*lY!rtF;IKlqw17rz_R*HYwPKc7zgc&ASxOD>6tDN4sJ0fX}FWD%vL$1=BFO`Zq;
za^8$Wma7}QizQe!TXzkLTyUxM-FjFQ at dj(6<-9Fw>xQrcF<|b3IWH#${66-VQtMv6
zt}4~>WQRE}knyag{p-N3q+6bXpJ+ig*(ptWBKt^Le#S0g13F|r%SMj97{cAD>Z9`D
zfAs50N*4(Yz^p7B>JifJ%-x#Fvtfyab}t4M2(>{{smA>aD%hwc+lCQZpig!CfRAnx
zYdjH3qHq$QzYu=)oW>QB!1eSizb`w}w4mQM at pelRb)`S&b7aFhs%hfSX=WxUv_Ocp
zyT2_JW_2_A)5L$@6B(a&R`JSD*JJ#zyFg%n#OB-v+KvqP?aceL9E9kM+jMr66>K5_
zHmFjt;Z~&Qf|7NN>2Wx{#DVv81FSJ0b+k-v#v$Cv+rI%NR=z|;8yE@)E`oTD!W&-y
zXbMEcIV;ptj(s!Bm=`WPE&F}u9&F`<L1J53e?xB!_U$qw^^4`-y%nSz!8kpqqhu~I
zS3+ca)-}K5=LZ&C(Q}og;Iyf})f)~Ym2kkd=e|HgO&j`x2Q(J$pwc>RgI?kq+ve2w
z->jrmHs`&*uS5IWM4_XmHOMs7(1yYOBcN)Yhr&#gv4G{WcR at -wEg{gxokQ7jGqkXS
z9idDy0w2LE%Cmhckb)Op=z at fy0@PY|Sim2q$t;+U!U`}PoXiu_dgUdaiO*j2wC0sM
zq8l$q5)@QR$1aQPuF@}6!OPnhrT~1ZR*3VlJgwqcidE6hO6PkE{!~l>;9pvO3;r-1
z8tujYWU_<xzeV9z at D(XVieQ{8t}w`9cp9iuFol?5;8x;l!>W1(c%P=E?6sY(jHqzb
z%qc^wWvu3e2l>vjY3#+KZ$YC(wBDfwXY#S}mrnmKSOg?k|D^<>z%iqtQE=06u}DkW
zcFvx<p!5t-RSCA+NG4*&=b+2#Q19a${EGN%jFVQIkS4}@0>KK8c{k`pAqS%m5v8Aq
zFCtJT<ZS@}bwx#^dTmEH at aAOQ%PYbQePu8eP)-nj*W~4Z{o-J@{oG?mQ at w3%qEMV4
zpwRE>p|0V?aMT<OR7`Ev(>HPL=xgNtbH*UjGih4)hgZ&7OD-&&MFwQAnzwQN0ZL=N
zPu~LOBv)6ijaVU`9r>~uCpN0GGyhI6gdFR!5QP{!kW~AjrU~0;+xSeWO!pg^{PU!1
z)-f~2r1AP>LErbut_;gZZh at fV56raWn;@&n&miY2Ioeeg)jPjE42EqG40&DUsZW{m
zGT<Li@}5wz+7ElT0L<B}rtE;0h`a=u8h&>)X4cVrq62y`zBrC#?Qw`A$X^Qh{2I*r
z1{5IK4AEDjNkvz<Rh240 at 5?)NMz4I*SA$1axpuHA<M!lL)!FaJvQ5WN`pMOs5{zp!
z5B9F0BmT~QB+JuJ4*gspIujp*OJyb91AXK_yU)G_)==z#-hob)Y}|#lRR7CFw3*O;
z$Ik6~MEeML!8RiAV!C&hkUHA8a=_&|gQ-JJSd*tR9qMTAFfn%UI<<>-FacdY9iSy{
z7QJ0=?>PiSdNGprBmP5a7g at yYt^A=@Wn%-H*pk{C^scB4t|pP^#%p5*V;)(4SmW!<
zY=I$tCcqS at 4J;_1<Tnd|j at +9kK7DUmx4CQf+GDg{P$GWlfxl^Jo;L&mRK6?}%Ixhn
z)urfPxN|fOmE{d?XWE)g9PEkZ9bPcJ%b*hx?7YsPdQ+V+J7-A1|BQtFT^~uBQ$SS@
ziMbvb8{HdY9g~gRXKUaJ>v(8V0<O6fO9MHFe(c5CLCPhtyFFfRG|4@>ytx<UQ2^NK
zGDGq#-NeXuN?O)e<<HIMo$i#JkDUCh_FL{Wk&*?C3f?k%Xyf`_ at Iwk+P+$ZZJ;_A&
z-O%B{f)FY-9%QNBA08xLYSv2bxD+*F7?3306zpH&{E!)PpepJ|iE)^a>;vxxl9d(|
z0e%e$lzwftrQwHT at VCBc@IRh+EPF>r*ZJ>OOH`Sa1(O%}*1h3UL>wQN7ip+1w6eaM
z_j0ztn>#BfvFyR6Hj2cV<=3vz$oZg*ZAR(Ag6vCN26L4LDu#Zm7@#Zl;FpANBXwx8
z7hIX!vL at 2yVA!g-=Por0J+f9VMjpvuxO at m77R~*epHaW7va)q$6Ba#;bbZVMDEsB$
zDbxDB>BJVdWY;jDfq+oo=HceW^d9<<!3}8Ls_LAu`PkOX`Gpt69%?njPs at 4m<xr($
z8~6BRFNkt>WyJSTlXY{cB@<4KgamN{wJf<p;BqBnlpHEjVR_eU&2W$-3jKL27C=Zq
zYKTxhXrjs34X=Y1uALWxKmCd|>E+d`$HjE^P}(rv5rm8FnYz0Pdjl_hM2&}Cxgy-^
zgkt15pU22Pw-SeJ2g|j(x+urpKn at lIkM|XvZ5 at N(9rOy_o_ggwSj)4#o~x5<dZSda
zG<SA<E;m=`I6f#D%B}Od71Dw2d at Lk>rD=4B?tOuyUss^yGMDjN0(^x&hhW$S2wW0>
z(8NGlx<l)%J-Mwf8CF&2=!*yLS)6$ZZ_5~()bM?(jA9tc2W%@rz at B;>q71&}C6WD3
zSzz6=uTe$pCmZ(@&b|suFRfX_HWT|UUAt5(h;FP$6Z*qg3W?rX@~i3-A2!PFIV5WS
z3>USl(8P5z0aCI#_};z-=zr~qS?`!S8aJe-cI8GuhL^IYpDoFHKQ-k+SYM1MC`9XO
ze()Fh*cbG$@W?aHFd89r0MiG;z8@&kpw$WCZ6qFZEU<Ww$7pVM;3Dl^Xjwu*I8=kh
z_4Cfp4SgVL8gc|il)>W<h#Fi=GH{9&dl%m^EB)w3JyK<MiUs+_w2(n$*)c9AVZ$Hy
z4IqqLAJ-Vo$P^K2(c;oVX2qplMKD#HgsP`fJYz^fS1P%cp!`O;sF%s)Pku*RMIoHf
zEN>R-jt|`;S$Ms}*(r|vS~R-0c{*YkUK3_loxdEs!H_$?|0u`o?tc>*fCunAPxeqR
zxC9qWvL;TdB!b8rs_U~k$?9aMUrdE%Xnmk&Lj8%u=G#4;U)l)`9xN`WC&t~xmPANi
znP at inO9Eh@aa0iYHDkFEads;%F#K>=0%q9MGh?`NUj*W at GXsvb1GFw5yWj#}?2v0O
zP^HzQuK(@~Lt(@G$O<mz7}p!S!<r>2(n4x*h3wt9KuBp9i>fjHJweA^7pXd(&wpJG
zPm<jNlmmHr8nf*8HEEJ&0}q`*sXZJcM(5a~9rgj;@5Ui$%|2YkwEn=j<JSv3ks}wf
zNejxoU|Zi6bK~`7+R|=G^}@ZX+vEE3*e-FA&z*Ubeipt~(;zsB%G=2q2?J&UP+a!|
zloFHpR at 32Zj*-S8`(pGfgkWfBdyt}t at D0JMZV`>KQ*b<m+;k!I$y2Px3;{jMYxouI
zbJ(T=eDSXr-%7QM-aOt72sf_`ZtWqGIiZPsVGC-d2>gy!NQoJ|H^dxD at iR|?oT>^K
zl>Kalda*A4EtBqQ)$+G7RTU=BOOnO4VKHZCdW1N at 1yGy9r(h?Y8Wsm2;JX-Ir6+X`
z5UV1F;-cV7g9sAGM37nrmR*Hxp_yOp_gG4vbPt$<(Zu%rln+>ty3T|WZff_^L+;BT
ze!|%j11E{vU?bGqU1rMM>7)*{*}v!6a-T*rTKJnI34-b#z<+%6sMIM4)w^H}Xv5D{
zR+2rOf`@$VZ>QUicF}9o9K%Ev=hP#{gxqb~_?TykiSO6((8LCqEC$>4gA0%3Q4wJC
zfw*H>AD#5Nq<OW)2=b(d;d~a`m*LGKzIH}y?=689i!tGah}Kt==4Www4bLM8^&VYY
z8 at b)DVMAe0))*Yu#H<L?aeW{7rwWl?k^f?+h#mH1m{&tpew|R*VJF=EF*Mw$I8g4P
zq(KdacbeE~o)O+jBD0PHl)YU(%qtX*RE at tT)qP#)f at -q-zb^N%72dXHw5cAR#)05C
zbdlvQ>#-GV0G&_!!*{POZ|e&JFUH7+5NHDbPS(n0k_Xy+w=0=su(J9m#2Rdg%)k-S
z;u5-Qq8Kjm&W9_k5+vbx%k7;X0e>?hr|_jHn<-%5UkesrND|Rj>5}h%jqa6JY=;bR
z2`z>+>XXn!@|e$hNY(-0&BeW&S+T3P{>+gma at tLlu^`qE!f#I>EGbRYw&_H*$#9`$
zZq39#;@;dIaV<a*r*#6H!V7-B2{zK}pH`xr>pIgAYb{C9O1CiIXgRdqN$liXeVh8e
zMvI|d*(MDKeq`|Eu!yfEh7RJCLI<kcS1zx+^hzU11tAO-g|6SiQKPH9IjLdWG*^zz
zPPg)H56=s}+3>;*6p;mAGRA_QBzmH0d52G*p|6d2Xm61Ol6uWNe;`w{cA78bzy&}S
zYzLi#JQmXvk0&VL6oGHV*-KbNvi`021du1C%SY-6b5^d#P8;alzz%%n<7CKLWHAJI
zwffj6+NS1V4K5RjM_UxU{>dJLySAm8&&+{Q(2p|wEV)0+H~ZLWNDa8|B;MM~bOb8R
zmXMoQZ5w<?wimI?!(J6k4Zx#9<-H%a(&MBQ?ypn-^f(erS7Cco&CY82oTu^skLo|A
zJCZ2eOnL7~GML(>KFSNhj#uZfQzXa#J}9S@{g%?UfA$NscYzUVdwlj;hjEn)a|F1L
z{X2Z##zrl`naP)@`rIbK*QVC^@{9m8$?}B&DmLWz(q at BZTXrfy!HX!Rdn&V8JAtk+
z$kO|}{Hlc3T3taN*B^^n{afYk`dIxL{S|Mhi1u?q-9J*5!mE?B>>C1&G#}~1N7rfF
z%IwNe7N%N9FyLly_hYweft?1IN at QdqX#N+Col4E^(@Ul_=q;~JL6GFB=Rr%>U!Ut}
zzo?V3{q#$OeHH;OlTomreU!afCCr3@^eOrw6ra~SB=TD6S1Xtx3e4X2zZa_xgE2sK
z#2UD_ouU}lPB+T#ME~mmW@|u>I9fk^=!GLYt-~lmU}G at y;f?fgD{$RZqV5~Eaxuhl
zOc+0xNGHOik}${OftQm)`ffBM&u~z`zpwo};wQsgg_0#*XSQ2p)8>+wAQj$^uGsDy
z-QH at lgr&K-Fn2Nk=|iO&0-GzHG%0a#W-!J*Rqj6pbj-0mIx>U}^8zph<7?OBduVb#
z7%1Eq6n=rjO>-&^8 at 55c&cOlTnq8Lg)80EEv at h{7OLP*&UE6dJ=O$ORQ(>j2T7)+p
zmg5V at A-NEDh-vhg<8MKjYkGiFE82m?@=E0~Fh2<22i-~L+8h^xOrp2U{{Gs<y-c#0
z)`z!K<nyJe2aB()Gxe!ePQJbF+iV%8<5=q0h%ersYWAfYV&<8?T^GyP-8a~73d%c5
zMhRw^cZ1{@hR?9^u*DwdCsG;8i`VD2u2;NQx{u<C!4L4W?2oU{n)vP(PUu02m=~w4
z2M0)vnClrO?8zw&nj}H61$4JDa3;w at tg<fGdAWNFn_YlV1RWl|ts|<LMg+8BgTrKn
zXj()nwZ$GNR0VyWAv~t+k%@5^Co=QemB1o<&ibKJ74S)3b)GOKJ01*MkaxK(*wTI{
zgiAlGn2eX-_ at omh&j&{(mPpjBvQ1!O*}QPu;2$w`@w6|7s0DSfi`@#9d8Nx1;i7c-
zib?-1KNi!G*n(ti>ZCG~5!WjpLse4b*C|ViM>Pmzg1dC{?91fuYu5RcwdeO+AP8Bl
z at 0h*j|GhGazzMm;`dIRv>Ajx)Fz2de62Zk>5L`{%NP^`Lhnpqr;5|Fm%qKNw>mW>O
z_Aev+q{1jn(Ya&or+U-rdl$*eCt8c86;9U6#qz*@F-~ig9y0%U#pCCrQ=4lJ<uSA}
z<qQj;DvX{XSd{vO802EoVSFz>e={N1p^FFX4DLgDdzj`RMlDF}DDTx2PS?1MAwB`d
z38afru<jkLZ-P>2a32l|a;TY&vI0oyy2yF4sn30&#NYd8epe0?c_ibvzKQvV=J%_=
zKd7!=S{3sOx4zATxIAgqtb=`3Or(!jFS4f+`&9dEYtjWX(5m`tx?uxaE-B~m^5B)|
zc2iV7f<Sr9SarSLirW@(N~1RsFQvN)C4uOSb(;{kS)?VoKhf4^<$a9_3>4dT0PHHe
z7zS!s#wzT;2k`b3#D5l?zFWiMW?RZ4mevIBdIPMK%|F5Ns00FOv9xQNJfPipQSkvk
z(yv(Tkk+E_M3*j?Vn#qQ^r6NetZyAty#{yHG_iX&)+EJny7)uHt!{WYyqQ|0!$7X$
zpUco_w;55a7fDvx|B~2z11$z1P+VHF6Bl%<X6MUZil6Sj4qlRpN=!TW3o1E#8GT+H
z$bJo_!oTMi`h<9`VF(Fzxku9f*2A?Q1=eJ1+9?+djv4ZNvT3_MWFR%x%z=!Pb*{&9
z at dx0*(bS;+ov)MYM?4bq*|rvtAUsKTycJUy`-5UgL~F^z*6s)#1}EAh&1GG_9eM8+
z>S=6UZ|J=4+if{;z&@`TK4!i&>1<miv6+9JS4H8~mb0gtCR6fpDRRq!@@7SHtSg$5
zyXDE!Shs6bnXe`#qL&HR at b#1AdH+eCm01A1<WAmt1X6qZc^sdI+?1rl(xVmJ4oM5;
z%2%Lq%l+C@`&B8|4GOgCO~J=+#v>m38e2SHAEu~dboldb9GPn<Kzg)JUK)CSX{a1<
zgS?$IuyIoJ0}^OBz&tMq`C%0p9A?gYOupAFI2*y+^ehjm01JNtiFGzKMa1^kLmSEy
z=)R)41X^r=_Wu88AJha#4LAPbM0B$<3B#o~a0l4jAz?_Kh`O50X7tQ;;|-&1{T**3
zIQd2g;c9g4WI8eDn$)#(nTs_;^Ej>7*00Gxp8xDlKKx}iQ0lG=h5iS%bH`!&cE?2z
z0G54$NgW(#DD|pFtk_dEuOX0OZ?Rn-`=BxFs6gRm at w=6ZtcsUR!jZxSZ9L})W=lZ1
zOnaM#(f0EPyb;f<O;N%{j`+9i2p$28x^U4t4WQl<;!GP$hnie-53z>q!c+KGN{4|C
z8dX(VB~Xkx&Ock3XDwN{JrPNZXc>lJoN{X+ni|-s-#8OC1<x(f19`%+_Tp|lZ6aw!
z7T=s!j${ySzd4`dB)zs at z!KlAF35S6jzD*^8JnJ3n3V+iN{cskmvZtp!mmHk?ZYIb
zSyFR<G at HbFq0Dk;&i5KL9*e6l*;1d|5b=e%TZB<9CB(!@IgUiivivA=k7JXc7pP;}
zjBylTn?g1Yo5<1Cnu{RnF_ng$1pag!IiC-%Zdwq~vePStZ<rZ-Xind=8|x!u2rk4T
zTcF1Z<4QL-3*&3TuukC-BbU()JuT*1&T0Q<q}^!8HZo(Wu95$fvFe?sTNLID<jtZv
zN2!~h8BqALO|Ff|%rP+(9~YP5JS|0wZYI3+hFP2QqsEIb^7M&djp2ey6-ctkq{mIA
zxHG&_Hd(VhC-nt`Ivjt8jIL4qLXo~gXud7SUO*-R6$-9&I!{xF)8kVREVBUa35Pj(
zGKNIBRvi+rgLV+XK#bds#_rGQ93shuNb5w=Rd5t2Y0DW<!^tyhWB{}r`*jXQXH>Uh
zmQ_MSNeoh&0?U_B_K%QfLk>kQF5EDyb=29vKs~__ywS?;DctiG)VNJ%fpddQTwuFH
zpKlbPcX3~UIF&$KsO1)I#@jK%N_P;KTK@=1<in+|j-7))k-hXiiX%^F(MR$Gwiw5-
z_8*mNJoaxM)Tf9Il?tyXn!Az{s`uB?-0g2;{!)xlm!fOBQK1a6!6mPb`oj!JtB2Kd
z%Y|&mjz=S#QJ+cGIQih)AhrdE;Gy#`fn6nb0tbF at 6c!P)t-<_hG-DOMTZ^TB>sc`o
zmBhC9E>3!K2<)jb%v&i{di)!XS7{@zhoaApcNv^T;DLMe;irSyHkbNeG~3HsEtYAC
zHJc$n4JjNt-9ABJZj(<;?fuIO-3^RxJ|z%rmIUma9}`GmclCJkFvZtTCB#Rxz1i9o
zncnqkgvQQKgoz5IFJ!aI*)n)Bt@)(l$s)ZFo~6;JL&rQw8Z!(f8H;j$gLqNjIF~V|
z<`A!DckYlEl4nYfu2AKBtBZjDAxmmj!O6P}EtU<`)x_e=cU+z&vMx(SDgfV4_M1(D
z4W()YOpwQ9`&;F0O-JL%xOg|#gh8LlRPd=}=1t4k;eFJGjplws#1r at 7&R44^M>Y9!
zyKYvIe<y$50(QPG{0NN_Y at Ui4<U8HQ=pL7qGsfoAL#qe4vLI4$po$HAAZE3OgB;k_
zCmO1NuO)-T!IslmF)`_v=Cpxv=5z7Ov0J5Tqv`pV^Lgx%@oR{u?BM7B@*1qA*C1Xn
zycMmV+|Rv)O~;n{NrTp4$?#&!anm5tChCWv4Qz7^5 at Ejj>IND+d=K2aV{ro#)ynH=
zLkQQA2iIoKKq^>V0QEG7mKcRkTZ_ps$0TlQWUqNEl&R7~+o}IVU&a`wE$$hRA6x<!
zCaeou=riUwOhIBkQXy$b1pB9|C;i at vw$c at MkK)L119SJaUGohf+6(Ib(O)QE&8jS2
zWd!9+v_ies;P<A8R`k1mJ6&f-3obk_fXj`Wgz}EVv0xQLr4 at yCD>rQ8M^RtCkARlh
zP7BB*-AVbJ{?B><PtLk3Lrt1u!%e&i?m!3I(bjYGOO~)+hW>l%0fpF;A;W&cSCfG2
zf#tkV;%wcF*Mz)%bVs&8FN?9|8c%di1u+p at FvhKa@J@=19&d+ at K0;MEQcZWztpJcp
z{q>APO%|}X+{B`f4fF|1GF5hRyJckJzM`QL+cl6irs;<4SD*PWrRRf5SElX+a56O&
z|Kdv~#HAYo{3(P9f8__uq at P4LrP+4mqD2iu)MDYqS)YSqyWWICtM`Z?*Pi^Z33{&$
zYs=E+7SH5;2iV*(UQ*jTx9G_RT-s}i+BzInylG>L#j+wdxUkA&HQm6)nQxOu3>6@~
z)@EXDX&3CuuWUo9=Rk)trhIP$FbzE_<;WzDc$<dbwvQ5iQDOS{5mm_R&L`F at W(@5-
zJ5&3SN>Lee&(^GH&;_dFPmfs9JY$5+q#`bu;}Xz}snK$LV%S(bmR`?*9*p5|g8?Yc
zMEFd*L6_w?dax7zrdORIOr|Mx0fA=V$6bVdZh6h9YoJ{0HUmhm5n1&$uW+XTYz=AM
z9-kt*ev-#ho>t%%#vYaIFs}Ru4jcDX{iZ*;6{LdM!>CYFn2w!oThHUru7^qzbS=`X
zG=7ML^bHrQyHBChU358g?un>5_N_A~!<S2kJLJW3e0BdJSCn90snmTMyGBrKj%WTK
zYPN3-uv<bm;@O1*F!@%2wAdW!A)Ap?`0QNIK1M0lG8(N;mQ$^sy*l^1k+jg48O!|}
z%9^uQ+{}wt!zkl@$PZVj#of(gK<l(}a)a>|j!ErI3Y|Y}J`XjouiS#(&@NZOlafiK
z{L~BB5_ArXqhWV5yAiz*S8u80O@>s at lRuNp%uCC{8}1=L{A-r1ZPU7LAz$XeU7xsN
z0>gET1-8)(<?L}B5p5{ad+ehR#t~mr$o&1I?dDjFtoIaExx|&}N;3xK3`w+q-CF*#
zTwadSTHlhZ1*B!3PFm+2Pankp9B;sVmaP$h>`U|%kqFWv at nDV~N3tFcE*B)91D+x&
zgoTZC1Y<E)mPokTLhv+SG8_H%Y5x;Jx+?o2|6E+3!e|h>KcW``GXBRy#4Q at dP+{95
z6Rg;|G;4$vH at 99PnvJYz-_xUpNr|?<O<YN`>>dm~_Lh6=({{F?fMJ;S^`*EZqK9jy
z7J(>VyCSE<tBS)nq(x0<@?7*2^qGncv~8PgtL?w^NnOu?PkcGm37qtPddc+Rf^-U$
zGdzTN359+R-5_66#eS;3Ne`_hDrpDDY=Wt}uCaN|4%c|Lh0ws&)ak#s&cO8-dwn83
znLLv?z~$#8VR91{9S8;<ksj?McZLu;OoFDU-I8qdx8xf8n=>x}F`o7%nDO1al>$nm
z3tb#V&o0uq4IG1doF^)L2 at LnkC6`@WPOT at O2n}8pXh{E5GfxApvszD3s*c!d<SALA
z3w`A$8b#-1YK+wWjM%lOd}NeJbR0ctXs4B at f`IfAFHxupBklh6lw{B06|gdOGqtS~
zg)&%%C32jlApxQXhXj-$ue;|1OcJQc<HYV1Bp5{f^cQD+L!JTLu at Ktl%zWN4su4Kn
zo=(2_eED|F%Ev;09w^?e&>_?{zq38nce!(^0S#wG6z=-ny*}cwRd<mX0z8!}*^udZ
zQGlj)c%8Y*3MLyCtbm4~4&4<3a<UIxTL={G9y`q1H`lE!@N*8&9F;Bl^7f%t4WJt?
z((nY~f%cPqR;nh>2jy~+L$H3?bcjH*@Koj|+8^H_?KoOv0R={_12(;ZfAd^=zD?78
zHJ8m;qUk_&G{rT_T{?JP7FpZT!TI`o-v=67cIzmI7Z_lC$T-#~LrF$0LY1!Mk?(^s
zs2!y>B6=sUyi3VpC!;P4ner1iPWgnxrbZ4Z&d?I!698Z##^>7STaya_(S3|0R&Lt*
zk@}SGV6`n~_%wo5;|fL(FYq^3F);sEkuRf(CDrGpD<}DxOfD`-7c#mI`ivnR!i54#
z;ui9}5h86wpsC}@Vf1k|IYycOB2B!`uBF5ow>t1M6JBddd#4xMXB@%7zXK|bfo?a%
zwVyN!f4vL^$7C%UIa`$vAcERWZ4iUu(hg*@EO%GG(6sD3-_DW8L9d>hLF67N5Pj8f
z!kteyK;0 at hzf54&N7ymFkZ?c_40fFAkY%||2ir?-O9xMxTWVR47Pz`ReOiKOphx3G
zY^z*hbRP&yud=~Je0OyPc7do at +<TISRuLtibBl8*>CtZ#v|KJQ!g9$xljv{a9eeAl
zRvT_naiVD at 4dp?+z;-il5grT7N;H)-zcN|q5mC(0LV$fpIvR2Jc`VJFNi)<MxJ_1c
z{G0YDD86$z3_{!Ci)0$*^d>tk21av_M%c62U64A>KehGT06l);!exl8EV$h`!lUN_
zC;_)OZGFU}7Fc*1vJ3pxc{gnd3VVC?VmNB6bC5TVB!GjkcMLRV`fI4kHR^S3k3TOQ
zCO_(|@G_$G*-bjZOl?5T>Z0qedyfezK%!BifR^yZV7s{-9AqG!`OGo)N0$@qb{2B8
zk^26D-~EY1J7IoEI_FQDgagZBKWG$*G&`D5^!0RE0Kx*eq)uckf(>huG}o3hU`hrO
z_CKzc2vKCPXY~DFdliPU;bf^dXdT6-Kb0pTxBP<KhIgD8<L{Mn1Qg6DiWf{OGx_6B
zlv~l2n9#Pyvt~v at 54kXBHX#O`R0Yc9C{_^~bOj=LwqPpkz1OvYr{@r>gCxSx+UuuH
zsK3%lv!ZNJBp!HBijdAMBN9uOrWyYvBQZwCI#kCk&nwumJ72-(5zZCY;~+Bzluq{A
zgEtuV;Qlf%jk_t5g$MBFCuMDNv_nwwS^Qj)pu3|*S*V|QYZiG}9y+0j5@?K-4C8-x
z3s`{qyp*3Bh<TB4a<V<1rHMk+Ph8Gp-AMB&{!ntlp&GRRx=gDaAnd+epnThJr%oRS
z=r=8ZfdvzyClJY%j$yeL>uEblYa*&M&xF?NRsy-GVAj4u(;-*<_%qiTOc#r*R(uaq
z&L?azu61N>oGFB(oE4d><<L#e1Xk(LZ8rtkC%!%QqE&}60-rOQwYSCjV<f}8iPV54
z3)Q4`iMNiUTrOKnr+PSFVQ;>dgFzZ4Fsv^rN4t=wF%hKN%b#Mip|c-<`M1ve(L15O
znh9Y+U^mFH8p@(ZWCH*R<jjY#^c0V+)mOp-<XFNwAjxnno!?o?x-f-M at H$rK_s6E5
zptpfrrX>oqLAGY!h at B%#oPLd=BD4M8D at gumYekFqN^Lq?069R$zX9cgvhdtJsC4pX
zqle(SKF0zH;YWS%KZ+e)cy!s#P~{6_s}c~GszrKq7UK3E>mD&XWy(-bdGuTkxT|KO
zl(XL01OqW6uA05zSrf20>}yP?3Dn^LL{UP2x&gWcQ at MhR3^hu!Mog6#Z96l}*}%U7
zsj+mWKIJ`-Uu{=51nr7(R^vz0HyWP20^q#535hAUUlpfj;*r^^(#4c;^^o_8rK#on
zu*^7pYg9)qy}7Z2w-vASak8P<6S1z`GuA4l+5LdEP0vDGEqUMVSIAq-4coenQ=WeF
zgl5>*e`augHb at 8rn9uEfS<1`2?oLLYXfVL%McpZzx(CReOGuA06L{CgoW|voII#1j
zjASxTW3=;fzDvm#8F<H6H{HUHgaTSVgUd)_HZKmpIHQF0<$>Uk=8LAm#~kia6wZb@
zVRKk`5dGt=aqy~ai4ofANddlAJ=lK8p+`s>o-I$_11No*V!)vduqSmI79o8cKuMZc
z@^kxvC%m9%!!)M4qOyf63sIS{xP}FWa<um#8EF99FT_vX;s5MS)m-^sWoz#8a6IsK
zeoVlS5j9!Xq8q`T`0Sv=rp9-3!aVC_scbd at mdHXWeYPe<jb!wgcN|@XxMDX>*W04+
z_4PX2(k-(ruPS$xHMnZDO65Nr`fq9Hc;|}&PK5l;s6iyOM<$UW$CQg^iBWt<_cBBE
zU+$(PmpB^QWwyY?Ep{4ny21zJmzxlSp<-ekM=sB~UE=DCOu8JEi*n|Xa(Czx@!fq=
z9H8buY|1e|$#~#BTC at dH@e)5GzoO5yvqL%0Hf$h~>AwgvV`IK^?lyLAIfR6V*EO|{
zI+1qSb8|$aFnAF|jn`zm9H>EYbo&9lu;|PkO(Oq;+fkdAotXq~$t^QJ58jCY(^j!X
z7rR8ZNYy2H(vNZL$mN#)q}ftyDl{saJGW at Zij14G_ek9wm>e#!-K->y!lgqvXc}92
zICRX<z0qv(TYML%XH!12YW^YXKfRc$XdY}f@!Bj9>yPS;5{b};?U5|w)<NeXwg(A-
zzj8Acb8^*K58;z6Kq?2d?)f|{tkC|(5#aSqq#wZTFDfUH>7$QkGdzG{41nON`kMt+
ztO>CJv&%6+Tpecc(72*A;_jV1bgX;sz7xKV+#~H~GxmiXvA;3h0}BqOt4fmDv}1ZW
zr|`b1m{h8TukV=hikbXs*qbj;IrhrUIlIZFWxAz3|BnOV+;$QoTp>P2!r^UQEZ5bH
z%^s}z^WK5=<RX#mZM;2W$*=|wHv|kG(v(kW<$<?AO-C?kpex5hiB|6E*dKZT8%4mp
z**L_RNc3y=$t?He*VG)h$diX7D+CgP)f!Fi9e-tISeT)@x1`Y66Ra{i`O!S9l28U+
zjov5`yE>)@YX6SN0BK?@dYgaT$0GY%(LFyp>(!ReD3!y)*#jB!jQxdIdn+K=te!TA
z^nP?%w4m|z-WNj~eo$#P+05qEvC}!e9|B8KW72y^0{T`Cglfqc&0ci at 0pJdtIZFM1
zMa9;Q*dl1CwaRLB{&DI8<O>WTqx0Ap3A=ww(Vq0=7mFcB4v~JnIjk!U*BYc*WO{@@
zCiOf##LVIeQW1vVFVI==Ue;No>%d`V^E^eX(TDM`1&4J|*R+<YT)aGX0hp>R88u+n
z%MZn|noY3^sjBG6ok_kog5dC;Y`Vx^jW(2G07$zcY+L?ZVFwgt(hX}t;a*+F@&y`;
zXcc=q8R`vLSDLZ<$TlGW$&ntUfW$$9!pf3Xe3e4qVSY{*8pIsuf6Zl9?yWCp*18bS
z+w=etSXFI+u;$9i at c*N|2sQt}(a_5ozQeRdMOUV9W~p9v)KU+1EhSgwJ@;H-%)Ol(
zQDsIBc{B4)6}f0Rpi`jg_*w?fW4b$Ays7in_INT^468E|)73|*Ph<h}%WGEr5xZBG
z4pU}r)UOYpfRo7=lq)NMDLPNuPPW%t6MW;DP({4QzsTx#kp49l=1tSljYgA?5{;BA
z(#ehK2Wh{TN~D_N<78z5O#LufanqlQQc_wC_c at T<2MiQ^z(L4(r;)c_*-upQ>xz+d
zL_r|DF at u`&>rDwRs$G1CEyjkd<|$DVj at Jd4)FeY;u<8TSgBRX~`(r5ZxfG?~mOM4?
z;c6`vtcTxmj(}7vtoLxb2}t&bAO&1M2H%+#Cg9CB27_zG2Wzh9fyhqr#SDJ|%A5Cu
zk+cihFH=wjE+RjQ1L(9jNhEmom3<;bcg|)383m#Fm1vJE;AFifT_bQkv*M&p?$T%z
z1{{$|72zjnpYT*QkW{$)%_6t-#|+ffqs at hyvk)~)gRsI}j*;V1d(?HaaFMLQ+2|s4
z>O{Ln%sElC0;e3VDI at -wBU=YM0^!x{b9^T&43UqH9VZljK0F0X-zNqB+%E1aeLH&I
z{AmnU+h&18LtowNx53VGbK2cCegS3}!17)v!&dH#&KXcnvbpjN5vnrjS828336Q)g
zU1K&chD$`*9POQ8(7xRJ&q(-7d^_v;OC0!-TWj8U3 at N1STMP#yZ<{4RxJMV?AmcVb
z<<$u5t4eFzx03SD%A)_bL4l^P4ZC*9YU&eYnFN(I;0X6KP`1$&Srgr<g7INR_A37X
z4Gz at _(ffO at NM`p=R3%VXD$=2!>YQc<Ov5%9Rowo~XU^)UCdHRzduh6$CjqbmlW?{-
zf6kXD$^Y-4yL!py<IJ-c*@@s;8vc^mg at BCpj$m-X@|+wmb=s9Sm9<DOs$=iKR;Dnb
za+b>j&{m)Q^+R|C8GkN?0aFr?%{?G)GY0o(>-FEA!29hNmzA`<3Z>Lkr$5G#{Jqp+
z`Iww(c(BteQ<kCgse@=QZ<_9E*FMk=F|rjy>r!!=C&}j9XbL46@?k5J3i=@EzfG4O
zG#G}vTZ=D+?z=S=i-58x3#Y4WvaD(rc+ucDkMq`%kmuWyno}GyCg)$7yH&}sL`ZP~
z_&E%0rkK%z(-hde{jN1;?7tU5&}}mYGNPsibD{5(3^!U?`P^9Vo)!G-gy>Eb{zKvY
z#H=`^^8<_mM>$NC!kleO>^TXGdbpg>W5vhJHrz0uZBgD|lWZ5-+&OSD$7+i$-{UD$
zEq9z~C$4JRATc+WaLZ2-1N`=P%~|Ohm1L78otDC9V{eRlQ(IY`=Bc$j<hIx0-1Vi4
zI5a(EZnBrO*3-tVhSN1-WNjQY+o#l|O3T>dKwjI+{lLNuiG_#*18T|~6g;4QI~DBD
zeZ<_<!f6F2;P0>kb at 162@2Tde at a*+dW=0o7nL4B~_*e)UNH^~1i)=qDchVyx$cfJ(
z?2jS8`!eA9G(V>xkxNUw$t at z-cUim6ox(Q19&1W~?htEXjji-lV#;Y0stX9XP{i|Z
zy(o2~@COsJYZcUg3*CvuV|{ErYkGqx>gw3_=mB|cbW3D081-U$Bns{wZl~PFCfk<#
z{y%_kS;~{?A58raD<(~waZA6qAf at 48YORGR0&VDlh5zzTq4lR}vK*Bggf=cBv0Iu<
zB#Zm9uGXTjib<rh#z<#Rc$Zl0rY)_Nip5;3Yq9bpBuezA>ZTpWYQSyYw4h+0>q{!#
z<Re}wbkllY6I<H~Rts|9XZt^LHh1meCSocjHGLn_!1rr4d1s23k!4BD?0n3bBBb&U
zP}o4~%uz>pLvI^plJ at O>{mnD^8%-)G4_HAOAY7pd#wT5<&Na6$UnM0Xi4p)*7dt+}
z$YG(I+5NNTSKTk9>)Ki7L8>z at h)3e3^C-)6LC*$cUZfV77Fu|!K?v|6yHAbPTa^ag
z-aI6k+rKEM&9*2S3R-3yp(Q0GtcRnggRIy_e at R?jS4NbO-9AYX31khkjH*2Ul4?Ps
z=74=6O1D)LdfJaBQ;y3~O&g>{Cf at CX>F4Ih9=5911&?MNzPWp at J=QKaT`)Z_QgM>N
zx->d<<eLFa8QXxq%bHXlS(?ynI8zj92VY>Wkuw+Ru^O#?d8c+KLA9VqshK2zpDmLL
zGG(mC*5teXc<92>D%A6BM>Zma*H-RVX7e<(LPC_vPRm9gc4I7mC2(l^Q$@a$k4Xc4
zy+S5_e7iT+s4nC0F8rsGT-jN~d0)&~0&=- at dBniqW^`luFO$`lX?g+jHj!>nXw>-d
z+D$x9DwNxSSkH?=DDKi2tWdHp<pWBgx$eqle_VNOAopXPvR2YWY4D(u%R&2HJOzNc
zm>@y}W)n}=r|(xA7{D%mbOZ!V5t5`s1{1nOA$i9mV$BM(s9FSNPpJcYh_hG`hY5mS
z0<9pIR^K4fz_hS1g2#@eutUR<+RFzH2QqbgTiq<Ii@@7>;9>LL$t*J*?ohDoX_$)F
zB->&Dc&lx-%82Ej*cDj$<^!=Y`{Bs(x8IC(6+|=6>}#{pXe@=-s>fGb2?Gwgfzk$F
zCe$QgXx~i~u|LdbJE<9TD_>EbtPOTpDmn*y=L_Q3G4nlcRAFDIJt1o=+Sx$CchKvL
z=gBf~imLWc9_bOH`b5xFmKhfsRv$EQGVyCoL(k at 0O*L=wVZGx#QLds4cUy<(<dpsi
zg-i}cYT3rKwW0fTIGz&c1ymN(FKg8bn;byXv)+ZA8du_75+0vQe&jn3gr-~k{hLat
zDz3M|2t%ufoc8;sqGJ4OGs!T#3p83<1zZ%@o*G|yWfNYte`l065Hjww`Qbde1EEPB
z1Qi*vn?{OQoCdNgK$VI=b)T*MNa!ju==#w$`UH<H56kRi9aWtfmHxeA1kK%**}l80
zlm$)kN18i>kY?nUVkaRiu_97e%j-61<YzZ47>BP;e<6c};rbX46T2+YQY!kw&n)f1
zsBm|9uMK*~4(vljM&&y5e%ie$fSBUTGuqEhT2SnZZ8H{x)D6&yGNma?<-WzZLy at 9)
zX-0q!u)-rbP>6gMBdxK6((ilYs8XL#JjH+_=wd2un<JoSlGCTF{(Cup at IaWWfEio)
zsn3R=z0xqgKo?nC46lSO4_FrR6u-j4&!3UP>Qb0&yzVZ(6bTo1wP2>)FzWpHps-%{
z%xc_NQrTRp9#`oSxXFp+Y5pEpG?OwSa5hpD+a&5*?h*)9G5{SWU7ludb+#=k22ztN
z>WV|n#v<r*U{UGh=jiFjx-`?`RV1Fd_OncLfkp&qPj6JKyxtmvry>7rYiAVoph4I9
zkz<}E(vDXyBLn&7#4micgh at rgqw^sN^O5_dW*lz227-TL<`vObCqzsV at kRDaPqrHf
z2BQXurhw{?+Xzt!PmgR`D)!CS7(CdZhL)nEZ}=mm-{6USc5PY(%TBhTSdg;`uV?+*
z-4iZk{~j34AF>&5wsJjCv-v##u0az%HU<HFh`s#duZX;&%QT!J#VMC(D}^-L?ixeB
zDa6V}*tf$Xw!K^R75l==#{3;OJz8uk;YJr at lCQR3!(X;JS42T?P+A(`nqt|MZm-mU
z#9<Cyw%KT=Q^EFPd>}T$;kpxbyPV#*goE!^9c8t?X`$BFr&j>RtN}k3NT^Gw*n{5N
zm2dCtI&FP{3W}@Os{2MdKLmO)Tlc!gzzrzb!FjB&F%`El0`;p9L}q--cmo2(sN1^@
z$gX<iwX3Q=27I}lY(=qynM2gB;ba4<Ph{Vi3_#-Yvh`;CzShI8jk at u+h9rFq#A>V%
za3<aOl&2~3W7yi#m4lp!92bN04H@!@VCo$U!9~$JBm3+saU{SHmprI`lFK1yn$|+6
zzP`^s at oF~KJWjR$gvLxm$}RW#kvt)K^TMn$LewB0Q#Rc2Sgn%JD_NDTb&SZ<+FOay
zcYLlu`Sewb#?o4v71s%moT=ScC_uX)z5xp0)MRis{^xoaEi`AI3JX!B;tk(K{CXd5
z9sBPKe`P)NJU$xc`Se*0*}hJ_>1x-l>nXR3x|^2 at sByiKQbREzXULl8$|W2m<PP_o
zIsRCF++t)degT$EQq+G7a?R}qM(SXkXrK&zz=Q>B_XWqzef$uOgnm)@{}P5|x;8Dj
zRFjsODow1yFz}n8b|D6Dn{H%<J){VYv1?Y4!}*UGfwEh$<MS=?*Xbn!v845KvfAd2
z+N-vS_R6mt>A<cZG|n)qB8-wcP1=fM;xk6!A_sJG6f=t#i6`p7l*xySc97ljHox0v
z^5V~u9T2l+x)q#qUtjCI?nb}D#3nXgWgv8IH1%g3W>MUj at lL|f=kx%Ha=^N>HRT*^
zur5KI({ZGC9TtZ?zLRqTz_&{_SVY?KM(VUWsmsKTt4s}<qwt=(;H52`^U%#>>Bik*
zdf&T%n0DoH^XpmyR&m8Fx{*c1dmGJ|oIzyF>7-g4 at 6i<60%`fFI*v!}LYX4LL*z&+
z_ at hqVkaR?D<VeHA{ji23s|R=Hkd|~J?sS^*08$@kl;P7NbthBuULrpDN=TLu5Z`=n
zPqUBmF8hJV-2hK5f`h`E;Yn21XI;haYYf88+Qs`LtN}>blGGy;oG%e}a)aQU7h2RX
z9>wFyTwsQRD~mlNMBHDmqT0IaCAesjfJ9^7s?p6<(gPP{n#postjQk{hhS#xn51<Q
z at o=*p;ps9{>UY at zQcBCIOk@Q1SPX*h#X;rO$<+t#fb%<}f)B68H#=T;x9`98k~|e!
zgnX`Q-nGaXIHM9$bVD1IZ^J$mh~C>4Oa__Ot}^onO6M_K_YlO(#3NH=A_V>AVZ|E(
zuC>Apv>>Mh at I-KTZq#X!Y68aAziBLL!a4WJfPo~<jRc{ST0j_595Jb!KmGDx9jF&k
z==4nu>Oadt7skw2%QcJ+YQH=Mv8uiV)=LCaHAOX+DYL-c2fQdeui at yDo(p8nAsV;V
zXcl1NC2-QLWt+vv$6DD|4x7dWAu8J4lO}ER`zV-4hu`Cj{i7mfQcwoHiq~Df96r?B
zCt&vXi%4Urk*SnXPrgxptoo6{6|BjkRB>+cR%}J<A<b!kkQRUeDT`ksMCpTy(2$BF
zbiNlL_(|yh@~rjydr3NxEWmQFh*OWY?pALBFYH06-19$NM!{-O55l%BP?+{G7Fy4M
zy>Hhk``JD>F3$N>f|<P!B49gp;zdV;RD_4iW+Tc2u%S1MSP!mc5(@?B7YXbs=z1m@
z>Oh2iE5iYk8GJwuN%L2BF`7Z1BdlnPdMU(5#>bJD at WKc2H8j#M at k9)%i at D)r%!D}S
z`o+_vPGAhLr(z)Xm;B&DY%Fg8mC~}l?+;|_&-Wl3iM_Bz9MupNkWKi#)Cl#7b=eb8
zy)`5!>--*A==9*ezk)lYV at 1%ryZ(S%4YB~lf5hY=FIol>2`C(nq~f}S;NjwG4jfb@
zzQKZ<E`CSK_T*CAfagap?M`64%`(N4SN2%hE|N&!e%o({iU|n=Q(mz?CR()BjhwRp
zet)#`pH`PFjIzZ$9696I5Tqcy9lN|B__0G2Jp4=OlE0)|skUydq+4lP&2o$j3Ha$>
z8c|jdT}cCg(`k9({Dg0MIYu8~j?xuoUQx_v<(D8}C%s7Dqw}pQYCy_xL=VW%%r{#_
z#6ER5$n8az#^Dcn8r$odu(CsoX?ELb-%IZcez at 0T`-tRgC0*5?(MDyQ_P$xSfK604
z+HVf;h)~JBL+KwyABb2QkCvE)^wiXU)4|<J+F at Wcs_@k>nKHqO85x(XSavZGiQN;C
zwQ}~wfI1)cxzL2v#q*wsy!KE$C2&YyZ<2U=uSjmi@#9hCp4GnY7uzmx0VpcsB@=In
zKJnFpB0808wBnfyO)`b-<Y_r(7GlCXBxTB57j$5g>0z;m(MP=<z5ouw3gmXk*$(Ei
z#Qc|?@=S^XV9}U6v?y~TSIph>V&rHzTtgC at 78iHjnun(T2S|7J1mG0iuPJWvGWY>t
zNp;`?%dKnl!^VBXlav5?W5Dp~#~%Jy`5$+75dmY|1<8`t_Ys$0i@?i?m>r`g*Q_*g
zeWb<wqRWX at yv`3Fp5sBgB`F>)Cf$sk(j#vTf1OZz1{10w at Y%Hk-Pt8U&Ga&|v;oKp
zS)J!n`#tO@;=-|l_l`- at Qr~at2&r0o-+IhQu#)~Qvz<zGQ~4kNosmp1V+*Q{-;cI<
zl|whhEf02+xyrTNzn0LfAeS)h@|u_PYswU)LqP4<{mB~GIXdaGpoQW5fufF1rCERV
zN~s9-9LU*>SO~T2z3N`AdFdO)(67mg6>h)@5p)|VvOUG5#AS={dTx*V$8^~mB(?!P
z+ezw;LtkHt^UTLCeYlnYGFBb_C!p+nX(Hz&ZJGkO(nQX-=cuoXGQ0auM9sYq<)CtM
z)4`zBfK}b2fsTUe)n8 at xJxJzn21)XeBob6~D|4=2Wp}i^n~L)VVfv8$qU!q~<fE at 6
z+-B(79MdEyRo&00<x`9;TW3mscI}o|SK28KYExl;ELDyrm(Yq`s+m1apB*^nJ2cXL
zs69TV^fnbW1Y+(CF=c3yB<ZZUV=oEUGi*XF at xmG@S7M&}OI)n%D4rPHMnlD3FyfcN
z4QQP5;P|or7 at y~auN!?Sfo?_Nukb*MqQzV>1V}c+^+UG&hxRdP4b;bXJ)*W%oP
zazf#*x}-XXVg$FNDV2XvLBf)bxP(9=v2c#p6R at Y0D624hN@Of|@PpZp<sAeTcB^79
zx09 at QBfNizUXj<XFpIH^jnk|`WC^0W at l7IGJYW8SsvG-db;#!J{RdHz_|(^nV_>Z^
zuZd=*CWBZn&OVLTq6STV%mU51L^_I*oP*AX0R$L7qc+*{OZq6lynjldkQWstdDJSa
zri|Eq`bg0Xzt at 5t4&-?S^0y9g%+%C3f;i^<(qc&7Sj^8jcFwcBUJZVwXQO?p>Ue5f
zT;$ic8Ozm-Gq9ThDtwnftue3rBdkJ>dMxhYxaCPPb^UYagf$T(xY{B5%&te|!eN?*
zian=><&6oK8qDuj8>jIR*XvVOMyW=6LL)$LV at H|-3(!o{2)02#Ao29K8&lMNW>^2(
zRIUh^@}FU?G(ofxUNcX%YjyD7b{~9tjz_gY2}d`fLFZBO7*;~tanr2H>5LusixN->
zp?~GEl;R=E;4i6)DB-fGXH#a*Yj{hn*7)e at meUHprTlv?YrfP!Vpg;lbFrPw`=#?(
z at gGd>oEy24Ky58Y$?On7N=oZ)6RK`dOy4qst{ov>ZJ!Ztorz^#*gi9ySIK`R-}<-f
z%tP+oH_l?Q6UW{)eGXQ at ncSzc(Dj+<XU*xf)qSrl#P?U%)BKMg#@Lg7F+*$<U%of}
z8e1OcyEQ}Xd5B-=)dAmYl2Wz!)a?g%*=$~f*<blR|11xdPgo=4)<7v_*|<_)^3LI=
z$K|B;g0{!7 at f`}UnwmNeN!a+*XPB71)lpPsvi}PP+i;Qk0=A%~^8+2gu|tIg`A{5#
zlfQ)*`*3##;;?pp+#U<96`OvteElZv%-xupr30<aNs^rFlJ1+5ykBANkce0Jpuf?m
z(9%6dX!nB^oj^jw#~2k%4Tn#iRdk^3I*kZ^Y$^JuOnX3_#-C`({Q`hMg~K#YUbcXT
z662%KS>aBrIBV^0REJM1|0})z?%haM%xDqyGc;g>YDTZRd^_#rG4v$-Z}D(5>sfet
z8njha=9?x~JXjA->!3UI?!D@$L`$OQsw{d;ufw>bLgq?AZyb5b#p8g_#d7scUL3fw
zQD)H*=tPE<yJL0!bua5AbU at HC+A&F<j68c7n>$f#!F-Ii)pE0_%p@<Y-{Du<)mKpf
z$H26iHt;nhiJba8`H$`)?9n}<P(ArVlc$isLPes<Gar3L&sMvuy)p#k8tl*iB%Sw2
z3}$LAopN_U2J2+dP`9(N6n0&b!fjpM4*<GqC0fB$q}jb?ri{xho0yJTxlE9n0?yrF
zdOQ;9iJg;-3vwIAsu>N&54_~?eylc(x0`k{p2R9_RaZ4<<KIV_>E+|GBHFB3^#%pm
z+-{50cZ;LWoVg7wUX->Q*zZr~!hIk|br)V-*m=qptOTjyqpbmFz+eDS_vB=DaE#bk
zXm&BY8L-d9dx at p8z(&6v=54QHSaX-L;pV=Shmi%iZ`|qaq;2TkeEKyb#K2T0!sMC-
zoaENEp!^^7mcVQRd|#6=NTn~@h=V`Gb8H6MpUG2Jy#bRji&6~Bj(@QU^hVd01cj1)
z#(^DE79xchrsne;Q0zr)bw!Bbu_%!QB0VeZVCtBo2;{Km7FFGfk7l`Fl1&1PwDc14
zW8C!`zx&MySltl6Qc-~s=+ba#UWOXD3LyD*!v<?ZY3gpQmlG9n5M_q&Onr1e(!Dfc
zeAg|X?@jGG)QcndbzOj7(pT}AR+lV8p_O)j4_GQ(=!Yhu_cq4FmgFkiQ=82a;0RfT
z!%j`USveL+eDhSuNG71DQfp8T3G15%`0D+wY!ah^(u40bohE>aQ=PjI;*v^idW-sx
zAa3A&v)Y#iuy4J(C&gxwsQOZdWX=Y9_QR2;ooEzmdf%tQO#O7%5N at UdU`-Zxv3bP6
z!AVQKxvr~^9@@=j1#fImi`480%y{U at kXu6mAl~JIU*v_la9qmMoSR4Ci0B7=3I<W5
zbCx$+%&9ps1 at X!A7&(B98>b-Nh~BxMlpmt;d%9pG>utKI*NFsSzOPw(>8 at n4zE)Mp
za8*1*um9fhF4(EEkZmg0l#X$4Dk7TrUKa+}D?&k<T|F&k?ADY+k#*|C6<kN&L9pHb
zavh9d;>hW01XZ}Ft1|o4mSaK7mJDKz)ZgmLD7rM3xCp$(a_3=3Kivpe0rV^mymFug
zCxAp)(#*+$gr9^k@|m+Nd41aJ2|(3``sDuFCs8{)gfmO-o%oI-h#dooJdUzw{;Whg
z<3RF56bmwQi=W@~Zo(k&fWwBl?WXU-DIbA at z`jYu#B4+}+~o}EJ;|?2cbbqbqe!Fn
zd=L`2nb)GD9nk_s(x6NaliS{At;;u2Pr>u~f10b}g}4#=JVp5)Nnrv6x(JKFObD3f
zG<3m}WZIrJ^&xp~KuVWS1j4N&S%nX;E;P5$s8w?ZFZ;Ryl at tjJ8sTu>onAdqxS=Zn
z+F%`BN!T1?NFi1`c<dTPu5T7(9T2nyPAu at XwXV=ImaLjq%S)m~acjiu5&hnOHq-`x
zg>p<u@@;Xa4Of<Ii-nj)Z%kU at f&$!dFwXWbGwAz*P_%#dscC?XSP8M{5$C(J7oT`E
zpWHCE%`uf#%J$QpxJ$RMnG{cUL;GzTlm}k3l%#Wy6L%0u<RtI=Id`}cfx0`!i3-Hm
zv;K8^=4jI2CUrBwf~tm{4Vn-WeGwnElE?y{(gq%q->;I8jbz_s(q&sqEk%pv>?>#%
zh4isM;H#8d&_Ab5IHC9x-hbKjPss|Lb-Vfe!>nAuHfeMF4wQD>>r^EzE?Aw%Ad at nx
z`3|zDl~9#NQ1DTBArPyV)i2yH0&?_bHHdLRNaccviASVWxLHt#)a#W0e|EbW>HJC>
z;EUgdEB~9Q)JU2fyn<`~7+5GZ|L5H%FK{fxQDjSn)j;8vyc_m?amL-hbKgAo;FV?>
z`5yeHA_+lC9$7SILPgZwEU=8PF9}+39vtl!%R3naK|hz|#v4V;@@y$@H*@Yxd><uc
zNSbl#kAvWSW=yM at 1)w^ayPlB$FDj{E$+W$gX*KwnqheVPR||mXZXp?xvN&Ms5+4Os
zG1U?;T;TLkMz3X at i#xIk6})X+n?kPHc#a?~+y9W1sXF at y@qkI|E at Zl^CAQ;NwP}`+
znsf|Fl2tP$K)x_NoV|!?r%+pi_jt{_@(QdtnFE-PR2e)~O}L}34(S3l;F6=DZfKAR
zBm at FQ!Tj33h!Ee&*a>_iUnhA at YIIJWH|0vI&SZV at OapDI+g1k>v+;}(IJ*gPWhK2?
zz0D-f!S^BKA(sMC&1 at V6HP{dq at j4$- at BglJK6_byT=dkNAHLRC;6veY{lm{KdhGFL
z0iRNAf_SAF7Fk5H{36torqi7?!<38_6#ei1Lzmre)PRRX^bF)nb}Btu0AarD at -uph
zMV27kbftvW)*;&|iaQ}_)Ra)vgN0T=f&?lshJXaC%v3nCF=zz>bT(w|bFz3Q;C}HN
zwC%7?;iP5$5xIjm)Bnuj0`(~sL^3?}9s4-QhEJk^Ia*uVz3EX2`})of05L7oZweT{
zQ7j@){-z#BGK(Z|2)pLdx`;_De?JN4^A_h!vo3y_h!o59K<H2zuRgJt7rzn}LM<Yf
z)BK{mXKWxKJB^|qYU<OcrsuN~0c6QwE}jib1C{5tGFZNElyN}WYKqsjLTKfq=Lg at D
zkRx~7WxUU<6RuW({1hDo{$XRpT|VOyhF`NFMymc#8t(xKTlax4_c1Y$tky2jMUa(k
zp|p+#n}NxC1*boa4 at c$+4$=;Q!7C6%*e5SD%t_Xd?16pZI7I>Ir^VzVFv2&DroqDg
zV#<}T2TO)Yh+t6?K?`rzot7L#IVO;_X!F~zIN)B`E7JQ%coi+h;OU$_WTr;K at +&@g
z$3&<4La-a3n5Fx`{}1P&NYQWO4wq#@H8*~f0@!egQ2CYzuT0{oyA~OsG)}V|F$}O=
z*SNiFtFW&2*gOgVS-bk+f2J`)WUjucG`?@g48ci}5o0K4s)}3S6nLL0vygi^m at BaJ
zA{(4ZC43bckK96Irz03kTK)mjOeg8$pww%fu*~|f5XfkR>kt;)@1^)4 at mO*+f<C!X
zO}3KUV3q8IQ#yJ2?z)14Oxp;Onvk<FD)S`Th&wq56i1YcL&@LhE`Vn&x{xF_62Vp5
z_e;u*ArqiY8Nl+Luqv4O41+YFQMM!M44r<yaDZj=K0)PuntX7zA2)3`9La|pg#N~5
zb0?}rW{-#JL)IU_nyAaVhD*bR;7_$t7GwkQZDnl+NVBKa?j116a~i82T3k!7D+f{_
z at i4YtU)YpZg&@O!O|!T<uyzWsjMZSrbSwefxs%}5`;m|}6&KiH_4WOrE9k<STcr&k
zR#a?9BfPY3xbF!a^18Mu9&lfWN1GM1-8YX$rtcj|LmEVuzVdfdGZLP=9-4GfJx{2i
zW=glBm5pPhNcuDpfoEf!OYSpt7t;S#`Dy!HF2VClAyyb%Vp<+M!TsBAk1K{HFN?kS
zE!TiM<2{IPf%2GGm9ye4H**<?mD$19-V#uApjCRAKZ3*&4~6kOPnWNvEKSB-hCc<F
zM4`bedp9Eh6V)}YBv<~*5!y%AEFMqjs*7&nh%v)Le*LWlTs>5Z#It)KHzB5|5FYOc
zh9S{3c7EvwXD0YNXyhsQ??{SeFGZQQ>Yc=EP}tktfQeEt6c4ER-3b(G=gKRtkuibP
z+&p6<EY&M9h=DIV{*1OxIien6sIc~+DzSt9X3r^glqso?@RFG8O+(HU1v!R9X0yyE
zhz53Kz`<ro1{(WgsFS;{F2|{}9rk%H7!d82Qcjr5A|a$82yG0$_K2D5DQ|_J=n2 at 5
z4ABjiSKNA<oZw+OuggESy2WA&Jl--U3!hAwh}r)(e%;3JG1U4Kel<7c)+i%7#YOKO
z6&ln4qj4bM>BU-NDe!~`=^-BhBr^=%uX;(gJ$$AxUevYPZ3i-A8(BvI2SKG?>Js$u
z8l6ECniFk_X(Yn^>kP&>o&c`{EEaW8l=5+Cq-lB==`ZG%wB^@z)LN(zmuKOA9NXA<
z9ML;^=)fNJ#~x?oQt-xLbvquRLABvc*OVEH6f at 5DHEqKt;<Xmj#}wSO3^8FsU3BgS
z_V+7Gqo$}f)LA}akHqH>d at an}=S>hnRwa!Q2VhQL;%O<dhakHE5(jqrL7Lm$Btr6B
zJpuZ{hX^#u)h9zv)m0AwsQl5h(Dh`IH9rH;c&VS(o!D2F$>~$Kx_4G8X&@F_O-BVL
zsR1jg;?m6Q$ZV$u=`l%Rr4hw%U5Z`7NKeiP2FWheBjQey*t!hm86LhVX)X$Jj at R);
zl+ZSrHf%f?e`QmsnaFn5(@dqmuusQ5ZE-5f-rLE_%aQ=ABba5`6De)6Ux>a{iKw|J
zon+xKMc+W;nu at g00P!(yRT#t2$INfD;e4D at grTBqp?Qtr at C*ZNZdX_!PwovLm$njt
zt!r<0zij$Mhl%yV3H`9}8_K~Qn61BY6lVQ at 3%_c#!v4}2MVt=#;<y??@fe){k>L^w
zMabsK9Y>$Ki?<+vs^is`Q at i`fNKRfwmNp5oj1VL4n&oV!q3ITC;~FQIgwayF^jsGP
z(}h>6*IU;Cr8R_I*LvxzZ6Y|=n!Ue09_4^b3VF##oZbdB&adH5aRE!~gyec7P27K@
zW3#!lO;!(~5v at 1-mvk5||AuNb#FgJ6+dxxX(zquKA8S&!A at P)5m;T31ZY!u?akR at F
zi^)2NMVZZ%kMm#T-?Aw>F=LfMAad|gizf(iO8a2xpUVK1x&Q>p+Gd>v#_PxjHPWMy
zqWFH>_lxVmru%Cgbl2#QQhajJ<NR?j?O4mNz=8fg4YiJslaQ^vQC2BrVh4o0LzWh}
zYnzHLPdhO`2^jxfPrws^jiepR0?%B+Fev<~C{JrkZ_28q<KjVILw%BrE{9Vn$`(n>
zUVc9)JgNHraNygf%yQ4pci69ic^UUi>A7CKUKNE|G-l<#At^f`is($AB{tOyPy(T<
z%jI)IxOoz7WDD7$9-9jRZbN<fhd<U9%{^-xk1&}Y(lsKZmTO-nhr^l5f(o}$^-u-;
z&54}Lzh^R0oJPtJV9td))ljslYkB}F!2wnmxevt6TeUvItgmmO_Ici(O%}>pC<o~z
zI}I<QJhE;7`a~5A1G-lP8(Z#DkE7yO*W8A}H<#|3`)1i<>9L6>tW~b*5tri?zyfGo
zjAz_6$`Jj2+?>hB<XFZUjthBaMS|TLvszhkJq6Ixec7S{@3uZ4Xn_Cd$1p=P?06G0
zP_%L at S?`Y%9+a17O(ZuHF0GL|wrz#T4Ct5?j<PmD8)ZdOpYDJ)MXk-n=iuVI5}HL>
ze1OiK`VpO(cLdh!(hK&Ltjn<7ZwW`YZHFpU1I)J)^7_M52i(|{?V^i9V0!?R0xWSl
zBK<RhR{P^zmCEkGk^Z;H at W-6Y*W%SJG+gzGUOi~Q^pl%o$D8QuXnbeppE)|=S@;@$
zT<Vz%6sc}G<JJe7Qy7ax7y7YZoq$wcAU-M+{l6lQ+wemO91ZJS7b2MA4Plf)ik=85
zm6(QhC?)@0Rg)2^%5ji86BC5aBfLyU#+FT3@*BEJ0hvjajNLjm^y!P#?dGoJ)9|jc
zYvVmFrM0k09nG6l!%mZgh22B`LgUtFe@%K|?4MzhBc=X+s|yZ%Cl?*|c@@lc^`*QH
zW5q8|Pn>Z>J2#RXP8IwE)Bva?!2;NT`q)!SYM>W9405jjPswAvv$UzY+>8E10z`dO
zu1@^M14SupoSKC5%}m(<0Go$lrAa-U$Lf5?$?Ra~;?2Qa=N}+`jjeQ_B?~skGg28?
zjch514YO^FBea7yg&5izv;FK6X<dMAK2qGQHF}OP1`CJ0+1tr#Kpjk>*)g-bzFYWd
zN(B;<X#DgikR>#g#E#f47TPp(N((#Q5;yz{?Zx0zIZ8zWcekHxFc5HUo?0E&F1(}z
z at g^Zn at r&2`Y?rz|^1<VrsAd3{!rWfwStQeDBQ)&0WxoGP6bj0?M}gEzp-UlG=i5m!
zD@|=80)zoHWXfG?#cGK$Afrj>MgZY@;*9wp4UEgeG8Sx$l!UGX#2$b}TK1rRzKjmH
zsF8{BY0!AUQxeL+8t`B25;;_24G%ZSS-K2Ub#r&%<kU><w3WF-uA`Ra32OpW+WWm+
z2Jv*7f+0xQA!7-c9i4Rbi}-Vi$a6U)#ERMVhECOW#o2=F7CF#Dv(+bfT1`1);j2N@
zn&~k5W8+R}V)y+i!ODIXBahj5(z70LH=av*vgzN^uR<tU<Mk*mc3(P1u0OT>*7!e|
z9&^aVo+z?ru26$2A@=C(j)G%(4W3r>gNnpnc at 8R;b+O2HN2^G|6&9wdq<5?`f>9ek
zU`tP2K at eX$d61KG7eTN|gaDI0Sac0hvh=Y^g|7@};i4AzGpo?ZLbe!9ZpX4wq63@@
zKFBrNt4V;2Uj)tgT{ZYqGO}ZEURNMP9zZl+v<?n_QGUxc^I^<`=$$hH>0xo>msH3T
zAlt9!+ftl{m_@@d=!rGP#8MHzzu*f>Xp#VgmKg8=0OQ1Hx4 at I}ZvBnIdb22Nnn=zv
zV)JePW<C1(?8*$`ExSVUn(7KT_GRo(g`^Q;Q at WGXKCPV}n+20z!VL9Ejd-?DseI~A
zl at KJ!2B^?G*?F9BPW3l|HLICJ(`r4vV(tzFg2#D<JDXYU$j29)Y)|lVTiEQ(CNXkQ
z3TiY_(|@(N`&1n)!;2ioXc?Dzjclu4bX}z<$>%cF?+fUcI12v-O_b@!+2>6eXM#Lq
zzQmjJ>YR^*#<mfTox-pb$>`tHGSV;Rooau-e<FRk0FC}G^OO)LQcfgz{av<@;0#ow
zk#$zVAVJC(uJd6K2_h at g!wg~hw_?0(PI)|VRR$Ami%~#YYOK_fongf3WJlw~AdhI!
zV#m{2^mW4UQ$MXr=D*{73WMiLE)6F{^#HZwtv?~>o*s#CKt`Pp>--SN<>|<o>+jPE
zDE_~m|9O~q at MvdN8(6H&O%ppUluN$&=tMY}7eIMV$u*RL58AHPC%^-Aj8MOA%!pE-
zD9C3^mvrH)+wJ)fm|`N%>4gwONW3HhIv8*B2!cU*q|1rkoG;|T|0WC$wMpWWv~ALB
znpgjYctUc5y8HfkuS=_YApC}%SmRcCx=`;ep^z)LJ?n2AwSE~c!rbfp at k_&6#Xh77
z-ksJABhI?%?Vn3!lBEoPx6q~e2)OVxx+wm)W_oMY-uTRi at V;Szj$y;mxA*hwy$`u+
zM_a5hzf;FneQ~S}Z~q4H`yn-Xzopv%)WUXN9chN}`7AY;J2WTE_YCM^tQr<HA3>`{
zdlYWi`tf#4#IhXwzc5{@mjU?L#e69V9&Hq#QueIr3yVWqhXv;0Uix}>n at JQO1&-K9
z>BkRDj_tDbcUQEp?1Tszg`fx38~!kO>b)eC_<P7niK<u&K#y8j0CTubM9H7 at +nr2%
z+ft$_{|k&s?W~o7n-+Y@?RVtMEQ6x4IF8T)MM|>^0FRPt#oWBSir)88-UK<>vZ8;8
z$MPj*_5!d^EZhp>m|nJO#L*xf)`KuR&#OO3^}DoI8n^i}5gW!PReLm7Icx+J<qAG(
z78~1m6-Lb4H_rlXw_ZRLmP+zK^Qo at O65J9^I<%3)qGijmCtqt^@2u`p&iv%dW*76w
zf+8dCkBBengP)xi+;c9fxAlw&KHgF^1Cs)~tL|kYzWE7QfUve`oZ=`efIKt0ZRPYy
zQ^5Id>cq5~s|QWtp!iIf&~fSDcUGbbxzLuG`G^}gU?ha1o6JFG88*mN83Xa^>LKRW
z`dZLAGDg9zW^QXj7i%|7<<Sm)svTI|_|(ke?P1*AhHM55n4MTCB=f1ucgXO#T?Zbg
zgp8 at 4KO-c~s82Up)P))4+8{N|oom_5PLpyAuFykb>OFLPZ<@kX at 8%IlpYNJVT<6Y9
zb1d(^AX#E(c09+4<x3r1ErDUa%}JgnCzU|kUaJf_O9>tz<xO>suqQRt3K9c at PeG<*
zz4x^D^qN#wyFX`V<xz2v2}a=i;A)BlhcUBJ<b2W3OVf-n#`V*uZs`q*?X`wUQ#5U|
zNl`tJ2RSl<M$ZS(oORXlPR9g2i+q|s%a9xSEg+U9QeMD8et1VqZGlx8Z;EyDdCK8D
z-Q(A<8FZ!T)Dt6KQ0Nge2}(-|Gar&_9I-YHePxa<t9jsM7217^INDY#+8cYJ68dC(
z0LjhERgec4C9QG2R+&F^JhpPEr(UjB;VD&-td#&$(id&xZyH(tt1YZojNBk(-!V*4
z`fd~a0{F>9RwZ<rbPs0CxX<_r3TDQvSc&<!=#A;CR&vfZf%4Y+GEb)e5FYKvKcnmg
zexg34%pof9pdz5fKJe52H|ZNkRY1trMx<tQS~4 at x+=c^mqU*;CKWSv=N9QV#Op{9z
z@=KB at BQ_*<YwbA@@2*J>r`E%m(A1y^c9bFS6`EG?RDS7$75 at 5Xd#+;|S(CEwM|0q|
zJ<I_%yus6RhXVMbSehyx)TM>+*C5A(WnS?I|Aacs1(GafgO8~C%wYttZuRam$i^)+
zItX(BobIe1CvK|-M9e`Td}!T}fUzm+L1_dTQafkrR=jmI&*>hHfwr55yNUMsn$PNK
z1UDi6Q&#@>5*)6CxJ^25*DXzLXk@>s1uqnNt5Y%XqbH$>lAtEi0j(eUqh+zu1gvWO
z*00KQ0dzOH9wD2=8<(A9Y~PL#$v+PuBAZNa&=K<VHc|Ti%gj>);T1e9T^<${DEiv0
zPm*`@d|W<^S8qcS=FpK4W*OX9U1gk0e2v*f^QwfbIR65P+mM+jWjtm?Qa%QukHF@}
z%U{_rkDj<uB>1W72J{-u^K(2h90nq-A5$tPPSy8RSB4(X8;oTl0-d+~@Zj~ZhSaFZ
z&49rfedk7YB$*@1IoI*Eg;HbiUgXqWb^+JBW<2hpjV{WEW)R6G7Vtc;#b5bONk3HG
zdp8B#1D7ATg(awC_vFzepeksRY#mnR_H-+o;BI;2cDkNPIw$Am1KJSssDxTy{oq#t
z2=!zPe4^LF4o0DVboLKKg%?-{^N>6V&Sa1Fht+MKnlcBmWr&S|?1>^&kXAOdXWzo&
z!tsmSubGNgcU9+RbC^f&|B-AAA4QzU?xoqXTrj2ZW0<PL))qTZYOs)EijA1cU+~9w
zT0p+5ZQ`qs0IoTq3b^<8)AL0kLA~59!O2mDiRv<N8u%?IxpwA%vRFQR$T#LHq|kEl
zM)6iL@%&M!pA}xL&l`mCsOS8Mf at D?#I0sAyz%)_VtE+%2D5IaGo_B=!6lrJ|HfK6p
zDGFL$-V)6-IdSBWnddJD8&Sq{Dru~$kmCui;XI3=G%+<BSoA133xJ}Q?rz81r+L%{
z at 9Z=lHm)i90AF@#nc1BPv;{$okGbM*#3AZc_Fwe{Q`(-Z)^H_wx9uip1I7oE2Ae+e
zGPMKhv%C-(hlmIu^Tz#gB at 9k@%}N*{yqa=r#dO%X0Fh%X9&j}~kOuRvX>|%<Nhd)f
z<Z(j62qgM#My*Z#?@yu9Q##^%tH9`yO3Y7SUZKl1mUDVY;b-x7;i+c^(n>C*9-|be
zK3F|kAb5B=UX|#Dl}0X at sq(WwYu~CExW08}ksQe at sv(Yz2wt!y{8S&tPhR=gA3OMN
z)V0+-Z9KXbWvh_lcIHV{H?gS;Xac3%hZ_13*ciS2b7)QeuS2=^=lRZoKxe2QGz4((
zhCNIQ*$n<8bTjgZU;(zm{(up63DkPwa|pp(g5$#4c>}~@oo58ugtf+IIzHZQoQOom
zqQdlEyVA;o&Lc-;)~$VDQap at qT0me|Jcv=$AYayvN_Q*i=1PRDQAFzD;KB8qVyry#
zWNj#_$etceSI&txPnmK4kgwGUiEQCxWGXK<{p-QdBvv|wTcX*U7m^_CwVfy;n)kZh
zkaHsd&0nbaOda}Thaq0StstOmL9GSp2H?cHnKV<WM6-(g;Y<;c1glQ^N&mqCPLj$}
zJ#(fG{=*1tasTNm*oZ9ig;VP$xaXeKlu?9qE-&@zoL047U6XLBYJEaSs-th{{7#k=
zs6We;Nl!QVWp;W at fBxkM;W at cM&4i972<Ep8u)<?m*v at u@S2>}qTIQP6ibv{6nw<e(
ztV9sgYh*oBOx}Ae=orJ;t=Mr)d^j<akv04hROB|!u6ud(tcAD+{<&l>Z=dYf1!fb>
za|#lK-NYP#*OzTRBhPqsc8sfNv3!bG$BZ(=<Cr|G4f_69vhehs5QNAn;nPy9H9XTk
z%3BiPUa)dqP!c{KVE06(v_O3uf8QM~mc2{S{mIorN8WM(?nxmeBcfxPN$VZa=qKX;
z%xJgZoD_XdPc}2%4n9ExjcD((90t=~0=WDzUsN!j$|xuyh8UMwwKc~(O6)3d*uW8w
zE at b@v?~iB8JOMmC)L6kuRM<+#Sx#i|ZW2bnEVuxX^*xJ7evUL{Rjf3YCy0kO>#0vV
z4Kp9hcKXFN2~)4=#He6Ok1~`PA at BQ<$!&>H^a>6`;|yb%d}+!Yi%9DWEcsF=A-{a0
zuXiQ7WCMNW?S&P>F)$~EbViEIA~c#Hrd#Zie5KDtz)<hu(P)MRe5bzs{nd#Qy2rsh
zE9tT^$4F|2B*q0Dm037{vstlqQF_Vnz(AVaokgrl^ym;6zl)PcB?^kMn~r4A4VF*)
z at -gF2A<eKa>u$JmK}K5)HM&*A7qK>}m>)18ITa4uTMd9ii~@X5Rj~vogIhzZ at Mr&s
z<{VhQH{3;)jgP^C;Qx)8Qq%Z}6*4qN7SK|_c-G0S@$*O9{-O4QNMpX~K}#X-9Fmua
zu1<&Vk6plNofKpy!S%(3o at 5D&b9x1caa3ce@%jJ!@b2P0dwu?^N2zJWP`_Y=QAIoS
zGJqA+XrDg$-u-?sXCPDL27kVcW|>KKfZY5W{n1HiVn3*x=E(dTo0lpvatQJ?=M~9S
z$eSYBvGwYIWl0k~7YaDrCN6*wyy7(HeFIM_0~!2!S8&w|I-Y7?zDoX{a+oRbXgcC=
z>Nm8iH1fFcYti>&(J6LJg7UTm59MF8fumUwY8f)n_RksOMRkeX3#_AYbr_&QbKZfP
zwW#jczO6AZ6ti)G|Cgu&9k2?C9+?_{sSLT1Y_pC3NN^hfR3}I7oc5Z{_Q<}p;n1%0
zZ4mBUU~8(a?u<Q2 at +<y;-yBuDG#-s5_w&(;O4yU=;^TJ+iF~%z`LVU4oj&;{3hs!?
z7vpnZhciPGW|g%<y0fyZTb%i;Sf92<dDiVEIYVK`t#U$LC9t{UNxBNA+mLlRE5 at 7F
z7K&EODcQm4WS%IEZjw_h050w(kcX06bgnUH`u!azbMOTiKo<+)0>>2q6h6_?`6<~&
zAcuk*33#Jt at +$yZY6<D#&(wGTE4^MUv+9nim<06v at OE%-ovi4TK{#+4%K9|PuooYE
zc#VB?)dc$1=V_imp^4MO(@1(iBTfGOY--~i2KH2HZq*C$;6Ob8m4fPi6!D(r#K>+s
zcSNG0qtyV;R$l=z)dxx3T#y9-nvG_3$(a6=7iHZPIBV-i1BVzxqDx at b<W?uK*O&5l
z9Y6g-gxuYr=A<+%UMhz`#(=;M*NoS<GLB_#ejISX04s%Iou0E^dYY3w-`7rV-D#w>
zl&iHkb#)BlHW8gT_PPgQ-PPme2Rn>6L3IR6B7Z4AtMNRh9%FEnpn}S_E9NRn>|@}z
z)>r{Nkz5PRhvHb`+iaMroLYJO=$BOT>fCl&PVcHN_ofJmc)_Y0>LC=vTTbCxWK60W
zc_>9<%0I0yE<Y!anvL}u&%ga at XZIdb5p%v)aB+*U1-_(jY at M}XsWlG>La5#pKGT(;
z3Q%C=AP<g-5Gr-9;LNQ4f;?7i`C<Q93qYD};d0hmFe)n<TXjily`|=Bvs7ix2ai^T
zgwn2hpqGUr<mmzLQzLXg<Kk766^|tZLpB<>U#h2gT@|+^se^fBrGkiXPbStYRGIt@
z;!Xb(83h=Ji0;ApzGuJ@*^}K~O-A>QRZ-yLq3zf&B7NbPFKa{9cp^zL8EsHRGs|ms
z9FH-I(v5~gtlGeE%r6Ki>rtkKhgh?o-$}ITaF+EIrO8spj|0+U$^IKT_G0pr7_0zC
zK)Amq*Yy{h;-&HWySN50Ws$VB5whh%!o5xZeH3s*p#<hHULD-PiC_ZwG~#tM at tloz
z{;5;gu=>|~QAwWRJXR~dgfbo)CYWqo!@_(zjY1X+&(-Y@=kKu=21J%I*Ep<^k=0u%
zezs%&P<n<+4&qd>VOa%z8gnBuK^h_J5Tc^>1S8QRTWCw+>0t9}aH58*R&V7Aws;F5
z+lPCK@%3uWx^@ovA*)QsCg)Wo&Wxi_+XY8-_##!&5C+(@J2{~KJZVuPE+$`Kb$g=j
zV%qwYn0b%a8b=J?LRh4BXL<4c%7ydQrs7)|-X_Fy$cNZdyvRoUlIFM44Ch3dzMjN2
zyVKw)^@EonrO9%^vYz1CSv6QJ<hw?5fo`UAcbQxS)<9Q&PhOcg0A(dW^*fxfo)*qM
z^H)!AEHHjK47FGw8N5(L6*VJ5(Vvs!29&!^vMO|m2YcUwt6y3AM%>i>WD4WN*o|B+
zgyZkm9|3dG!Du2(-obd)WyMOEDqOx6b}fU_RqbkwEs=<gOx@}UDRguKRSjrMuf68*
z?7kprfEfmxn(<6_V70Wo4m`2k5fg}CJWv_yr$Pp=+fq`|jvh!dm^maUK)sPh`Th=F
z at 7`C}+df)VTW8U%&yYrL#zZj&EZnRs-+k>12pgG at A`>eYP_1mr7$CXD at K>D`Eh&MB
zHV6bIvu;i=thT=SsFAIiac&|@BOZ(95C(|%Lv;<cs_F<U-($M8GmL8+uYPHND>iR>
zJ7Mp3OzZ|%M4z<_buX`yqsk7}-6VZ#>)<gcclIE%{F!;o66BvJk9bvgbV{6eS<DV~
z!`g>1)XxmBIj$iAv_Xz{@Sf~Hd5?qafeccr`W1T&dKO{chjlgzB9HF0jKGsvVYn}e
z<XgVd2vOSICx>9uI at cOpfmT??DRa5IVL>bu_7QiSZEF9|>PVWq+GlPuF+2f6ERZnB
z_A}mPsiVz|Z{yp$(?36cR4F^)<*BqJAR3-3JL)5oz&KOGY}kN%1<fmw#-cmpqs?2@
z at sJ8hi<3JC?pgGzsk0v9{dv|uGkbkjPy0>nY6hOrJvV!Mny4-eZx}dm?`b)zaUz*T
zvqzFlH at b_iQ-$@|xHGR3M~8~Wkl3- at grv4VItE2jGES>p?_SwEZZ-z&#A9-Zd=^T=
ze{bKJ(hPs`_-6-{CLw4DTB0jF^=(u=6E67f{b-h|Pn(Qup_~ge&BSwzPhzTFvXyOd
zg_Hnu2ZUa<u at OZd#5hy6oaHofp#Q2ZGS8+j$*|?3vyjzHTii~q{A?I|m(k1gORYN=
zEeOcPI^){_%QLTM>M+TudB|GW0L4p;*YT1MsgLsWEGpp&bF9p0Pps01!GgLDk|
z){*h5q;zqW2A5^*_xOuV0P*D+EMrL+(U(%$YE#+)ZD5<}5H6)Ax-*lWPZffe47c^-
zf7anqI<Ul`+7WPn3#rdWTfqf*2-yqM03v4M*kQjoCrF>B{zLAGjQy^uMUfO{S{}CZ
zexi1vV~d8lub7T%nw%!lc<mzY-af{?rz;)sT^D)RQdQ)&qB?jrzK;Dx7Zupi85*+n
zF%N(;AyxA=aLS!BWWU32JY=@*bLV4%+3QZmL=y}G)Vy$b&Lagg5>h0BFkXzS`eVOV
zn?jb5Mh`b6XJ=uPcUX5DkjdR)3ihm-Ku&IEVXl~)9iI_7JF4e-Nq~<9O at D6aFlMO6
zlnp- at g-zL1lfyLotpG1X4_Dgj6Gu%hg-0}}Rg#9T^xPxhlAtD~T$5n at P)$GXZCxHQ
z3^sF}a&&th<a61x0Y(0B&kYOb3*!1LVCDdIBuE?W`nK!wyTi(I at qP@+e_Y1<0q~l2
zxyMjB-iYZ|>Cb*`g#hGqoe-M6R=IK|LFDv{1Dzx6ZZ}{$;;j}xOz-o at vf$)^lMi{B
zI45I)=z3ujp at Tr&Oc0<QYeie(p23Mt#l(wNAo{b_StHBrpNDaiSA74)X4#-ldJ*(u
ze+ldSh9WIvjt>pOBGa*knvR4)I}-h+!w!?&GEZu5^YX#Awzh9%u;|<rM#b%>1CN6x
zNfuIc8DAI>>Om9?Zk{s(eAZ#s8~-eLdUB*J-dhHLho~z&PiMr=WU^sLs9DOH=Tj%)
zyPfXw{opX&`&eP5i#99$&oISj^&?|?lbG9PH+(hRVfj2Bu&2z_YaDR5Eu0;k4>2{n
zTMkM=(_Z-=Y#@|lw^9N1g`p$)8YTG6mi+{xp>5`F05- at WS^vdrwnr)pad}R3_|a%L
zloy+bNh?DyGXih97E}H}CUp(hV+JBr&XOOoJLf`FT6=kPLqmpbrE9inRdje1U^zrH
z)4-=CRhc!Hkf;XrO}FQC5yY%OL|et3BKNX|B~L+YD-+V6;fNSDc9=aj)Sak7bao|a
zI-iL}6|`qBnj&Tz8lf^;EUA>+wQX&CDLy>|fB1an(-OE4mr=5U1k)#8XuuFXWC at DW
z<x1*#B?O=o8I=hZ{gkf>tX#biU&fA#DCJC(8mK6G{AH!K)1PoL(DN1xlUH_-@&$a+
z4(*WoV2*^5UlPz-d+cET^PAnYAmlZNms$W(>xk_aSTbaIA?mR$Xn-cbVgI}ysEcDe
zol1^Td at -`><Js)*#jJInx8mOHVD^uxA at 0gJ8P8kg*-gKR-oW*&vK$K!nr<7ju9N}q
zEFtS*rcnOgZJp~h2a5_Jb7D$aEYptPi|mW^E;{eCm9u#2n;WJzyrZyu_s=jwz3pJI
zPe5=F at I=0Y6G#syGAw+EEjDx85!$bfHFcX(cdJrMwwW=*TXnIVQmM-}VtE)Jyfxln
zp~BitodQeT6Sv5S=^m;#2Ypcgx-4n&Yz~)7w`kO$J`XS0R9kc>{&9<DqEIlFBkTb$
z?GrE}ET!PZ(%~}R8>#$0b&mMuo{P6U>7rjaiqv5{X>$=pgayqmQ1p5%fIyUts#Nzg
zLY`rR9=3F!R~96A-|YZ+4LhH+nyqKo-ndVXtlcC%w<hC(Ql(C79psBzidGL%+xWD~
z+d9o29iorhD1Y^`BcSDvHT+1s3xVFy=9mMEZrMl1SVL{twu|3c7w5ic4=3Z^A|{Nf
z;L1ED(CMjzo<4-`tI#+LtHUDoJy03;fk~&9DNR;!t$zE&N1T??F^MY>`z>xrv7sHQ
zNM-y~;>5xIxMf=h_PM;XiwQc#W||)QbB;7-tg=sc2w at NcNKxiuF*s+F+AKh=%}mh%
zJ&y4PFy|%D8X69~+g0zL=!uzM+w2#QpZ1+|G(jE&rVbMs2Dpw^%rQ^--3mM>c!Q&6
zhO~@Gz6_VyE3Uyi&sjj^WPe@!pY)tesT#PYTkg!p&`D=EOj?!j^i;}~hcLXkNNYq`
zc`(ARdkTa%!f$HSMLQ#7v|}R37ijG%JPpEBBQKG9`-%Ls^01?%M;?bhJA1|h7!{=^
zcG4zxb}e+Sf9=)gr!=x3O|{ry1<3_}3(Z<+2hlayFNx5aYrVQSzh)tqBn9(*yKT-F
zRVd(4Qmg7Y@*`6jRgtrQP)i52z+f)-bGsE6eJa_*nN+5He?qY%a*sVi`h9p}uk$Yy
z*x|8DQo>`?uPm}T*|p^d*#V8hLu8B1TT%S9Fwy-tasl20br<GD(LYoGCBYK;YKqM|
z3W#bi_PwyyY|TgQBR=g2zG7wV*pz2 at r2X~k%jJ!9(%u}yqpOX~W)Q`zs97DywGO4P
zSk;TIw7;qI=Pc3KW`;_B$lk5~6~>7!2J;Ht-F%+j;M1$I*%#xk%!DPuH%8j9knHCF
z6nWjb_j8^_a?g=JXIn|uw(pKh2bB{y1khdv-TdJH=ZAN216HqVWSw+2oc+kIex=g+
zN5b^Aw*v_{W72G<QVz`+TIZvTE at G>b{X=qEDDPmpH5rkAndqh+hBYFmRHf$!(Ey at c
z$e+w9qZAMC5ymC!2!bw<Y1+3KOQiU;9TmQ8Ezq~LUS<eND|3-O$#suyI!gLg?8dFH
zola*k6DM=ehzdOIG)G6$FbhbSv<VR1WGU;_%o0H{l#eTrVa0W!+iLznEt*qS#Y*u(
z at vjv#QG=vWgm at 2hztD)<eBqo#`pT;eh@<b~kmWvmea^~&{*r9yBFap*)}PKU5&nh9
z=!~?q4CT;(YQB9I`$BCadyI9iVk8Qn0nKEV!hC?|W+h2dw-N|;+_aM!=yRNKGAIT9
z59D?I11JC(8<*3T(3G7}nz?G!H#stt?xm!Zwdo~+V;awG1t}B!j6<HkM}0tDKdo4!
z;$DaDA*8{1!1yePZ8G%FOxsmxlu7yjB|=-r2V$k={s&o(V2R~hYXDz>N@>l&ZBMQ1
zaH)G0d{PgRBP7<*X`(F+$)qY<&QE7ylN9d4l)VHtOG1EvV_45E7~rn{cV3Ft+_s%4
z7&2lxHhY@~gu#*dH5T2sN2D1m;vi*)NFwwk=7EuDzPY<ypperw8tJS*yOd!FWaFrS
zN<Oc()k?<JWU)@=M&%t&RE0QLYji-rfo$5cA+Lx|>%2I+AYlftHaSLIooQd>uaXrG
zgB+hjpTOTMBy at duSI$p{kKudKMUM-=IppVi8+Kef$~eq7vOSKmro;c-c=U3v<A<D#
z7VpzCc9)!tNn1(@&?Ew(?Dsfb^F(klG$wgeSn3`lXU_oGr7_CazmoLtvn9Ivb$X(z
z76a3#x~EE<&UB!C{TL~b4CQ%_;=<EEfvOuedH=VFQA}D%v)K{})(9D68FodU%-+ra
zO4JA%=p=~mMAj4b!2jq<Cz;{1F)_5(@5g4^1Ho>ow$7E!^0fSp1ykV`l81faa^Jfg
zx`xy-!~O`J;ya;h96*1S$|Ail8~?C+fV^SJacWkLlc*n8!pk7TwrIaiE#oc;r;AUL
zC!BXC&<dW(hi;B7gl6IKZVmN9b~=r&E?21%p6<%EnChq9PHlf;mtyHWYo at Hx;|zPl
zhD$XL9d&}s;se^4mQ<uapHUj55E|`Cjl#(XD6JEwHYY{ot4_X^ROX=%Vy<YlRDL4d
ztAtk&V}%DmsJrx`e_O9(axXlVEhR%4k*o=oRpFgm(|UCwZKAI(qBXX`u*H{ET6NDE
z={}bejK~jE at DxdDTTFyEdg~+2^5#cgBB0tGDLSCTFp>is5}8yB=Rm4g_wgw#p?`da
z3DrC at zz3X(k9xc&gwHk9&44e8Uw5A7GJG0|W`s6-S?cL5=wfX0G#xi!429HUl7`C`
zqT3z6ZBhMT$6#y5-_Oa-+~!N7b)*E!s>`FZ4hc9R3vYs-Uar~#+jPuu#%4FqD5NX;
z!!pL&A5y1j#7?GWIXagj!e=~@enEj}BuOBVw6F_Do0YJ|M)Cz^-5sE!R*U*Tb)tyf
z!EJW>>TuKac~TarlW{H!XS=Y)rMU$Y6(TH{!N?FHl~C#E#Js2eUTQiJVMVG}>c|I4
z&Ca9)aCzt_XpLXjDojB1ggD1Vr(~Jk`597C?)h&Pji7+(>|77{0tY&4!Z7*IYW|Jg
z;-|GgYnP1w{I^6P{F~Xk?1|?p;{IarPkYi3ROWFYD)9BHsG!Q9SqI`<C=Sh(*$fGM
zhLcwCb8UhEY!Z{}CP^EX21^Rglkga>Iuqq-Q1Tr?3EDI-=;~{HPxLK#LQ!49+*^C?
zZma`qkaC%8uys#3&vK8Q3qhD{^pe9gJ00&9M4yd1;RD$slsLODf7i{jnV`V$4+hDh
zZ`5ANUbyS0Tt-p<-0HHt&+k%p12>f}ipX)dqHvg-(5vczmHZ5UT4Gts$hz~L8`h`K
zO#D3D{|vcmm7hs at Jjps6PEgyM9XrWg&x`&8Px32-mxQ}^C at JVgzcoDHHbW_F8%uHI
z-{Iv<`Xrh+8X9Y#p#@!MYDK at yPF)8Is?<c}bh0qOyHktiEw at -ON5W=Xgwc{Z-d7c$
zK3?6xpgvd~Y$9b-G-Gj}3}MO1D*y7uUT=!~Ab(^yQ_y-~3#oO7l|?IVpatV{!dDOV
zBGu5ENthMyBnw+_%OKR$PUN!*^Q{+w2n=5c2|Xq%&4$PFy*nwU)}4=w9*<wRZT*r8
zpZVcL at m=obZT0eG`)X!Dv<;<Ge*9o(SXthdS^-pGiO9!7`VJC?0zgyzt+nFr#s;5O
z+PUt5icXHK-8dGEY~Mfdab+%~H5ivX=v_ZY{+=7HYpYb_K=iP1Z_V9?kCsnP<dunR
zm!+3l2*^&k95%#D#H$WLr0*8gQl6^}4CU5##>qHU%K|?;WM2nwP}0xZQ9BR7W}Ycz
zZX|I!i&9I9(@;)ShKRQ6fJDv{j;kc+43qcR4R*DWRdfcK#-tWnX4m=5p{Fqq{X_{B
zr at FHnJqR~L21!4<VO-U(pn8s?%U>@Z`dSKEKmD$$*4uDd_M5Q}Py!tGWh?yx-D#i`
z!p^QOUl3yEDUzu0LyDwz5|gQfXp!KD1<@z at Dac#BD at 2Z4nPRMOIB)~*QJgqo(gqEP
zL{Ak^tSjsuezq7UuM)1Qk%XX`lNKYy`){}8_9E_F<T?9h#R#nka_VRD>hWIcJo~L`
z5GONS@)%ZOqr@%JkZ4bwJm?;ZjAd`BD_t~vkv64R21O1)a!0yvs at 6sW<g(ji`s^o=
zKtkH--&(s`u^=a$3Z`j+BYvH~@Po>GsBhELx}75^kOMjDUEOS8N~~4@^iwq(A~3rS
z{F&~wkRZ9>D$<ny^KZ*q&P)!X@*ci6f2%Z^2B9h`Y};c)5_QZ`Wh<roys2pEk-=>O
z(VB9O9jEknT~#aX^7j{))c at B`7r3Hi1YDMYtSK;yF?TBDp987iW&F3tWcxm6(d!I}
zxIVEFX76rbIe+M4pq%}JT<tRKP+M0yaLy}uwnbvn0AUwc1fmDx9=bI%>|wY{E<!WG
z3=iZ1b>>L_+^+iUK5Rb>e*T<d-_dS&MqKWz!+NQzj#Jc^RkFQSzld8j428j%q9w`*
zQbMFKtI@(NJ|I7l29}wG>iwx|#iZH<FZ`98&{&|Nvimt<04K_Qu=2uVv1raF`Il#=
zU>8{;ZE^XWF1u786%^WB^+T&*PMYu;HC3f#3;xdvW$0URIeoZ~6~M#aaR9r_9m5m6
zy{6xvW@}O+8d~dc@)z9`7lF>}DmziX0)#y$XcwEq>pZVL)TYW4mJKFWDh6caE5nn&
z>tve)8#WGc`!um_FCLNLz?>q(x|9aHe`;9|__LjYSLw5mA4gB#f}umpB?A-c8*3ds
z^V+WOjOn?=$(;X(>`B_?V2_7>{|*ec?CnrRzq#NcpPK|!3Vq#;Jl#p+7vl$?Jw$13
zMrsYq>$j5~3>#K#df?cVPU;?WH8I%n7+0Xk$Rjc^pqwm?Bc28ciqc0??*tkaqyy5K
z at xo7U=QRJgFyXX18&=(yx?AdaW}QM?$F?LY#bUlBxoEcoqz~4jP)A2FqoD??3o7FO
z-#6BV<CPLQCf-#`+{)#+j+_DMx}wt(d=hQdcyuSAA_g8oE(){ALzx>!K-zdA&A`O2
zS%EkXgFX8%SmjH>*a$w~b<Qd<9D*F at j*7QgUgVgKr0Bd#*w)#VsPIVXfH9mIFWo(B
zz^ImU^RK3DatiM?5k#>8U2hnA40=)0;I-rpc2W87zNH?547~(#LIP52GR1wt0&Be<
z=DBW{4Iiw at _Dxw_58_4F*p~v6g)Pnu;6Suco7wSD#5GxjaJM|?ZW{#98z{S0PUR!O
z1Qivuo}>SUt|ZO=$Z9w_KL{wr9xidxk?hoUabxh*eB at K<(odw2Zv(yeyGKWY>9ut{
zyYD*U^^vl&hXu#h>I8fdHjKk^FMe<lxR=q$OXR$b#-gO)2h<Wd?!>qyZyxPI=H4JR
zM+WThgJPGS3~W`s2^2uuyJ+R{CXTI+4Sg$=L%|=nRg{b3kbLtW{wg*6EMnmxFgOg;
zv-64xaaX$bQxviC4~0w3wShXSByUcmYju*Fg6||rL(=~W|CdwBtUf-3n&Lg5vSAV{
zPJZQRKPg8lH)|vz at DZR4W=U`uJ4$jUaYLNN!MA$Gu<UoZv07~kGU=03j<hBGeLsKN
z(U5iw2f_b*92`4SP=Xfx-b((__P^aU7o|taAff%y_91>Mf-4Ucfb%-tD+Ptf<=v{I
z2}KyYtRLqc#t`Ze*bcZ^S1M+aCL$jKKiz9GB4Cd}(cOAENVK5-2^_4g3qKNGV~)|f
zw`M-V0uk_Ch_;B<2Zz|iG|r*PmnH=2p!vd$6PK++>VM<R%b&KCTnboAlub~nYP~cc
z^#D$Yl4_*h4~VfH?_Cmd-?!LKX%vn#wcofryv6TBkrM6Roa&9KJ2S<EJKH_Di$u>g
z;HSq?GC1Mp=^`Ag%0d~F0}eE$vS`0j_%LZf at m`8up(5R6s)Sl#8a=;b>OG1B-ffs@
z_JBpY=X!=H70Bwl4sA&#X?)H(jqWE)0BMAKL^!dJP<-5#u1cL6%*?rOjwmd>la65k
z)#K*KD0&=K--L0^a<;ONB at JG8o>qrEg4ytxZB^5F=eUBC%b7kn4p3{8nj}QqNhE at T
zb}P8cEY_1vG3Jph4Z}e*<9%G676ok8C_#tw!JN!7z#X8w06c9eGiFwHy-1CO<kruT
z!=1J5MxI1)D3mL^UYPzT9NEKmg75#sx3#k`XTG=`W(_t<iyntB_bA03nx5Trm{4dD
zVjVuJi!SnAKdie^paDXvq&<lOFX2WEa)A at WChU*M#<$UYL9-v?OxsXOTEe4%E?Tc|
zPgi4y@^>DQS?AzM-Z<}UMRWN(wfm=!`_m1-Kk3UhM#xJn>-TL^NN>qJdsk$Zewd_c
zC%60s;%Q$O?+W0Vh{(HO6R7iMiaG5h{o0zWOpKcZMbzF8i+N9`@FUx;zuwX`S;8!*
z!|*RJ_?FX!keGAWBRDQM0S-Tc7)^J)k-T;5RvIOKB^i0CmxL^yq?Df6JDun(N$H{R
z&*ec#h8ZDAmvY$!*V{@_mSoa=X04ZmnHkXc(=<G3v27tYH37za2%)!cB~?6I0+%|B
zXl_|PF?gKw#P(~Y8`}W at Z~Q6fdUr!aVC#lZPoUmC!2S&kCRP at n0jwRDhzZXl9WwoA
zhXSKCV_%*1 at M8X>^nP>2(R}8E4}RMeUNzD8r*;1-dC}~FZ3 at CDVIo#DIKXCkRe}k@
zOl?VQ)xhaHN~npGdf0Hti5;hvuObcZU{>5{I}D at YTUCBfAKnO&i>9zJJN!P{sdxfE
zgo1*oB4X{u%VN5hZ!(m77(em)KjNSyouQZ@?Ts<Vgpa14=B8LOLod;DMKa4MSbg~z
z1}gEUwWgsU)_j%(FWsSzR?oOS!qm3f;{vX$-%<7dXTbucQNu#x;R#LE4gVad_9G7U
z18ub)9JU*R&0n4;&mpJGBoZ-++5ei^)fF3pxZv8U!F(gP#l(yD_Wr5>;kU#CRS(q<
zxNpv->Z4_ohVk?erm0Ppl at IxUC)sx?n2-3Mb0nm(2 at Y~2Qa7W6kloaUpoQDwwf?YC
z93O*K)L27RHUMDbZfiVMwkAJT<(Sop8y{!vJnzznDo8zK3iDsXeDkn?`Up#OlRXV+
zVBJFKY!A9y=9Qgm0Ujxd?%ay@<}-l1mq)9uu|T7;{9jn-(v;35jEZaY>9Dq^n)g#k
z_-I!Btmq>Kr(7TRkM5<wnCs!ipxvH{a*1Dl>E_)@oxDx)w&TVvV+rzt<rmC;lR|x>
zm6xHr;1CKWz*GIL;G~ZqE|Ph)_!77vk+)!=vLz8AI^pku5Rz8u*XE*lcJqd3twTRt
zd`qTry5rapG)-X)NL7iJd#Z#+5 at u6UdTESX_2eI;FQM**w~05 at -+Vn(ZIt|ogAwQk
zI%E)7b<?vrBB!#{#dgwqiT4#!RCzZD47r-36_`23nOi;xX~sklTtp8-5E`32uxy-%
znlfcD3E2YzDDG@>b3+7+t(Y8hO(mR47YtZRC!yy%D!r2cuO|E364w^%oApj#61Y-(
z=%}CTMTdTfrRW4dvg;%`hhI^AsFpG~srt73T|ll_s1Mys%7gI8CS6xkM#4_zcy0-@
z>=eYQlj)`um_OP{k8GBD&>y76^=iYx^SY0h{qU|n3#=`01oDk^<^-p69TPgbBCw-P
z<M3gm5eCdcWb#H`s3$KI7|IKa*D?vuDB7;FB2t#x&3>1SeOe2t!hYBMN#W~!(AgFZ
zzF(~|$~`4BQ#&}4Ntr%z_w(fj1a(Z2u;jsKok>mz`s-XLvzRMT2r2;47N2o%jN;6j
zZyMAC%)q~S{hGqzhthkygDaRpMjaPFnJCOkn!MXRTTO}AdR|~fQlRtf1>44P;6er7
zxa at 5@uED{+xEAIL!PAa78dg9~+&5>g17(!1z#PEI`pHA`u|LiXYICq<2GjyHdqJ~X
zz&hTyGc+1S3Xx^$%1z^8IQX$f<l3)vrmd~1u8iuU(5vJS7Jyx)09%-pWX at AwTqR(s
z<DxDB?sQ&eK$y<0$1;H>3CV!Q8VBgd>?n{<{UBIsvg6*SKxj`Kf*U$Py9Vfi`kt`<
zprq`zM!v4H{*8Ow^Du`Gp)(K4_CX*<aMdeh5MQrKjzg!3;A4@*9s4SvG6`iEW(-cN
zQ`2hB%-jyCaVQsO?(;wR>GbY^C29a*Bgji~Yr8j<xdR?~x6)wiSwH`ff>n)TEuN|)
zk!?=Ea8LuWL%mM6-o=uagQ||IW4P+>NPOrw)K!V@?`!EXf8T*jHD)+ElLIGU6K#7x
z%zFLLIHY-X^)6Y@$V5B1XXx>tG-f)Q5X(Ezo1|-wcsg4q{WH~%);$*NU?>PFOKP8M
zEvRjg)PcLzKlO7>iSaUC{qWhjwmQ2c270#Qd8=T@)aY2tAG0_ht*kwDTfxt;%9<pY
zj}kSP=-S>fTCL}2KLI2Ao#`;hvUK5YhU9q6?B-%nUrCCAfbI=U$A>|)=`H3n0H(hJ
z-hWfJ9Cz5s3f`H1;jPFM*jTe(!ey-=4`4Sc#Y>@i6SqEplnc!t-J)UO{xw;dRG0_F
z{Q1nK2Aan7A};2?lWGsKGP~#NHldz2R|D&%yhxqPLqIqlxe&ls;A1oxFws~+0V-1#
zbpBRhsDCJPQgw^nOV{gSFnRDlnvc)5D~qq#tJZKNBPrL?#%sLPfOZ|_(PpU<7sQ&;
zq!cdyBLMR-s?~7A67J<(C0H#&6K~X=m_dqQ#jsfd?O8}eN0A)<qV}$ni~Ag0A=MJ|
z%51b4`dwO!B2n<~zHbGzS&|U6ITh?&b+wR{t!g{X8MkBPAobq+SxE#gCsHY0nYT6$
z!ysmSpIxyF=@FCB^M$#%jgm6CQnn6MmEP(0!hyoO)Ig8lhPIQmVjHEGVb`-~=95LO
z-F<mjQ9-ny=50eK?@f=C4qEExL-$THjX$!RRag468>=lb<#N{*;_P{AjB$$X)wh}r
zT0^LO787;{hHZAUqPXsC0mau&f8j`kNm<bNY}6=dYJbu%0cO9`pgd at b6qB6w#&et+
zsYM9<26HZKvEAQ>vfC+sjhTB|m$9L9?Nm0^a%a~K6<2kiuF)Hqp{QsqQyYV-GEKcI
z{TNeMw#}Z<v at rn29ktb9Z|4T#8VE=8^CyXF^8#oSlBt$AIS7+*hpv%oz`y5~JIZdZ
zWahcal^Hv?UktF(CUP`~hSGxm*w~w+KPOxi`xN~s&VU5Nl<>VpWJko*6Wr5t#$=mf
z|E+H~E0tG52_A(|q8JOIproh_6uL+H`Ku&i1`0Xf4)<PB56dp3 at 89Go<C9T8;QsK%
zm&CSK+Cik7e=~<_lYU!3K9-|1J*i@@zTqA&r)w?PEKbgDSc#Dhh}a6yC0(hn{-n3k
zw7S4o^MGDJbSe-;tna<E?aI6S3Fk+xo!Qu5o${L-{W{p!_&c;kJn_1!M1>Mpmg>nd
zX+Sx)Ht%9=<C<9KzhFdR*1#0W^vHL~iL2p7Gt<H at _RlO>u`TlXZ2#zjx)?amQ^MoC
zrT$VHf#D!IgAP!M5bl4#$Vs{cpub-sVbIQ)WVsP)>$riQ4vyAQUzt)Iy-2iH;E^4x
z*W?Ej at G;(3!qa}}5E#{iK)w{4TMw1^Z~Fw-W(sdi6dT*}1{(CD5^}{8FePXo;RmsC
zD`9)Qw at MH-Nmu_o(J79Mn?)$OWBjpgx*kY<Pt{g+<_SJQ_(I)oe8cS at 5ZB;1RTVVb
zRkYZRpl#3C>qj53Xc|UeE}5_Bm{U9y%cCk4awA>(bi5Ez{rNOo#ekCIwN#__{^MmJ
zgWw1#`&CsL6!$+FIHRhC^qCcksLq@>;W$e$>sbpxW>qBMQ<~pT6rjYYv~=j_znaV-
zrmY;Vz|tg|mzu$;!sb}@SiMxy%-H7qyXaLlm at N$>=X&b8t#34ok06MeEPTvxOf+40
z)WcySPaSB%f{ewCkzmQnyLn>sUs%@1{e1iET<x?`I;^z{u30r#4awZxf7cfg$dV5w
zt9#f<byTsd<{_c#HIg}VVVQYpJEF_fRqy2`lEIpAua_p*QJM8f$BXbyETf&>;q)Z~
z0>YZ at B-TH$p@*32r%e_kGMxH_KmP#XF)XQaYe%}S=we1caG=X&Zv#X24FjdB&%T(v
z$D}F&1v!|gVLtsl8L>S()#Nn000 at Q-ebtxIY>NJ<#7<B23_BWYrjE1w3QC=J&2c_n
zp5P_O`fJ#6EE^v0G($CubXA{8(kQv173CpTR>w_HDgKP|Mv#5_=lOU(Kgh6FA+xAx
zh$Bj)NYIzL?%rDy>~Fy(0M^nG|K9xdOhd3&SIjr?O-A at g@MnEM#Y}J#Oq0DX$CJ?W
z<{M at io67S-pYKM~vMD|H^tet+iW6IedhqIF)y=FM-9_8%=9<d|!DOY!Lk)DI at x@un
z9nLZ9IoQYCYarSrjEM6vkO;}VcClp8a~Q8Dv>PmzKfYIF8O2xwiD!AO)ujQel&yl2
z#`zD|k!+pla2R`u56M+<<dK1X at nvE4M$~tp8s%Vgjcw_~Vr=$|I@^ccKFrN_({gm^
z<zK;fM_ewamGW_3H35>9CzPBiBgvB07~ViOmb%&rm;T_I#*rfnvRT1rEikHjg>JV3
z;qgEKpw`AR^n!j=msuelOVN#jY5-0pijwBTf)Ys1N(LqQrLWvxnyoC0_&dEEjIYQi
z4T7MetOR7cMEj4$gY5STpZU5MQz-X^F>znV8JCa_dmDj?8QqrV#bDR?s}eHMDwS;Z
zXlF^hF7?N^LBT^VY!(59g3GtNGV-2*XwoMYKK;}&sAj()-FHCRI#pZk(xw-Y^?JWD
z<&X-|k?^fCQD9G+o9V&tCT8k at njLa*bdZB=)C2Lx#f8Z)2uK&K*GxqGff45 at u33m^
z$pv%}ugYYWSe3-zc-3c5Xs2XBfXXzk=utT6hw at n$QOiUYZjm`Nb_k}@fX<njiT~x2
zdgv?HE at psvV<<Xkb4`_)098Q|7C2{&kvr3!+5U1O0Py7A4`yd!xMZ0l0!5o_u}PFt
z7Sic0=Qz&LUym^3Y3jCcYHD}?3ELhPFv$BD#~*>Db8=>ymnfYy&ftM=30rNB!FC{T
zSxBDqv34<F))<!P7pDeE&3IL3AbTXfZq$*+XedeFBV-}tpnR64L^noX)Mf?Lj73Ck
zDKUS)?(GwKGzt8eT9=*P6~>xm#TC3j`+xGx37{aAu?f+bP!6v^Ihs5Spr)o#_d(~H
zVLxgzV9jvD&N>*Qg?WJTummDyp4gE at 7zaKvK$sf>XrU^x*H7 at Ic{+(wmY$Isfo(B(
zUWPgFwX>(exJ;uxb_jiPA^OJnE;4kf+WSo+j at fxwl4HmxmrH|YSR46YcD6ELP0WYA
zKyIcnKTrthyh>Q at BZ$ppz09cUlq=edfim6LPpIlriss%c%Gx28Dsk0=A#$_dqD<$g
z;AaCQ+z1Z7$zxcCP>i)p42_8iJ%W%FUxF_rpB5DD51q_?=)#OFF8KoNpTf_p1)2i`
zeorjXWAo&#Z`(*jDha+V826=9L=oG?I!81uPINDpO{F at DudTN>CRX=!fu!Vn6#~c^
zVr~MXI%yj5V(QpDZDR>7zfBdeS#k`h>*c=oAO=z at uDN)$tnr##i@=I-R70c7 at hpH`
zkZRz4?XHmJZ|stm9=BS45!uv5%{x13<-<`G#0IZL1&e(p6_dlrrmgG{<w6u@^j2RU
zUL0iSy}hVQD at aOv&SJzugE3A^s`*%+L!I<qBlyVfW~r^1HA0cw8*7`~M&?t*kYG>u
zq%a>>nT^I=qz3n3oGJ(l1ImXzL-Rf5bi|90(WpBh4A?L6vaaGq0TKc-08cAzyO{R*
zhbo26)7T6Sa{bN-)~JI~pK3 at DP48~aY-l%qm7Wu7=Ek<q-aKocno14e3IIYj1$P&p
zGAB-A`az`&^z+`%^jpji0)fTly76sZGb$ei*`ZlF5)gT{%J(sHeDXSO63POcGiJU$
zoMbrVKt+R^qBdJ3DQPaspi9|y6K`g;O<XECl=l=W44||x93O*8{o3 at -BbVp=bgnD9
z6-_C?0h-5&tK90DFct2|-N!|I;`Ba-L}e01+uB4-cx|<r==<7bQ6?ZXnetIbhleqe
zl=Tu2*kA1GF_$jnUIg{85OQYn-~MCr(QCdqO`8JQz`_a|ET#nN8`G{t(XbZD)LAx1
ziZtmYftU-eIo&_U3H^(~?cIfFrS+*5p=yx*73jM;PbMwgr>B*MGH5ia-jS}cCe2jy
zaI+|^kCnh_Kzc?DN2HW$W>W$b5iOE0>!#nP-4GaQ&5l7`Ezu`26PJ677#A{AYS(y;
zNL(@Ms at I1cT#7-SLhK1<+)8dEsL(Dy7ZB<Dfr<RYvtVl+ig~^<Tb9q%Ee(l)LoBMD
zWdxMo#wcj?N3yR&U&<-1wuo@@NozJf86eHh02sOWdXs#%<ocM~vqH=hk`a5g%h^#K
zWej#&%Y7r*bqJB7j65ADi3;#Y0jM>skAbL>$Y}sQ*V!>CNdiRL<$46(X1~{#;LnUo
z<_p8YyVl$u at 2Zh<3kUJ*8$A+MlVu!U&U!rcLHyR=a>HL@&5P?~0ysOfN#d1VfDQZM
z&_Y=2HXb8y`853OtsvV<EW9mv4!|Br-wav)y-c+%W1Vx?QZyX3_KdLnnDseDtZ)}(
zOL!;|)0}o(rL(Ql;F$h36dr<xBUkX?n=z71Geb7o-dmMMa9I+*0vtkQWV*i8>OK`*
zDz>?UVYjSTk(G=IqlFrzsge&W{a^&@Y}K7PnM}4R#7cOQ2p<-DCOlW}KG?aH=)tEb
z-h_ilCmzBBA)&dVnn({XmiAthp4l#AlJ{j5O14$nE{SGi|4uLN!h?1zQ^NQv8+7aq
z+uC5%{kZsuPcKx2UY-4en42lT*EWbuXa@=p9M65of;IC5L at GX;0i<(|z8OCCPd?#p
zoAKVyJX(QxM=Jj_w4q3yi(kzew25<~y0d?_VUnooLusyR-B`6fDn%|_B{;t?bcDE`
zNfyC~sV_gy6YL`~C#`$}R^d#|5TWPg!j>SnFiqti$@DR-xIk?X62Iz$*aHA4r`<7R
z55axEU%NevyX!armcJ!<ZSd?&tv90(?WLw;xK-N>#V8JEVl!P|uV9}k%!3OX^>kiF
zA{h(3Gu`hhf2TF10A=S+OJ-cT!FF9`LJ73OD1tQqzh8ZiE8IOVXHTR`FP%`1>aAQ-
zX;?n_b}*%%&jj30WC6+XY#hnF93$V~B&WZcu3|B387rmlC+}LW<_&To7!#!dF<2vW
z(wf(kE6fh<cX;ni1-*F4Mw0fy at -M!ohuEn-SVXcdnQ!S at U2{fV&`#b at AZ(_<@uq0*
zDlKf;f)Tm1Hm{mC8o+$ypA*(jvAc-OeCxGnLyJP(U$X&HA~Alfoa9ETaNuj)yLCrY
zNI=Jjq0Bqj8T4?`+I-AU6^#D!@Ge)V<%drLvzY1%+ytKbW<j;t)6Q=p*`)Z=dB4z1
zeBbvWTuLOnxVQ?4JeGb5g9hUBPryiM3j|62FQ at 2TsQxUcrfd@PuUMpUrarq$H5aMJ
zDYLQ<DvY%&VF4hk2L(r+7(PF(2b|_q4%d+%JmdntJBLO+q_B=zV+`>n$E#Wnp at X46
z*vF&v&{@m%-p_cse{PWHFlR2^rD1}XMhg=wn)iMe4s4<KFzE=9O at Em*7#5^{AP6OJ
z`QYMI)h4 at F>xyWx3KoLg6!mZ?cY?#RK3ej*LZF~3M9adf1*`57C>ZKS+v$|HL#c^i
z-$9<kW+jm(v4+xxP%&6FQjj;*tb5d!nBgs+LjuvAR3~}_Ybf(YOH;}rsHqQ%7cdhV
zgIX at -v40E|D1P_#bY2V15L;g)Q4%bmS-0`kH-G at m=ib1}IUg#?Luw&RA8N?#PH at fh
zH&8<8Hc*W{f`5qG(kKJm<dYwcV2>EE*)H2#vp-a2lRscH{>@v6e2`zK0m at E>@hD(;
zjNhcZ6B=(rSJ55F9g_a_w2 at qg4q#H$weuK=rplNi(Ztg}*)wjPl#a=V4#usn1P(;K
zZmt0v8%se=loZ@<40s*$FWof2?qmz^Vn{fMrBrHo{`i6cIUZ#Dr&G1uj1i&%O^$-#
zWFso9*W=sxlmJSTK8K#ekmF*|H}c~P0>^3{>8$8+D2c-is+q@{6P|{Y&~C-vfmdip
z*6!koMm#aV><gwB&B>b at YmlY=sJNN9(-syfoEMq6e&wgTAOUoLD!y8#o258?l{ia|
z- at YwIINAO>i`3F8b>V at Kf}1p=FrclS+LcZTdoi1<wd+Ob_!1?J9rR|fP3J_7*8p|l
z?Tt^V(^mI>YKaO)A5l5ucNETG0RIk3lO=2`9+brpDO(jgp(mKVlqn+l3wI|sG^5JT
zGr(#Bw~6&-q1J8bzBDy)<qL9VD8gbeEcV*!OVucy5_=&U{=NsW+h7iaP)w)vqHFm{
zV2|LGHCMR<fa{clXd&9QGPp2&VC!7{2-fnR7?+UGYQ&^46t)`Us~_AWeLjmTmc&1%
z4a~^m9`BW?o(^9mO3Y2f$e8uR*PUcDsByP+1F8 at 6(+?B!0pE7b`Gu~p6Qy!Qx$Eyg
zp5A|zQ*o+FuZ28O?5rJlM=YkHOuRh8$Aq*-4Rp`v39$Y7-s*Bj=73qi&0ruaCH9X`
zV&*0i2U;Ep+d_JS at kP8DscNeBB^5hPSb}-WpJ}iDFZL#{+wgSGzFnL;Wr%_%(TBQ}
zs10a-L9e=!?2+x1MTx_ at huo79%Y&b^{Fsvk-h=D5pC9RlR%mK2AB7Kpwdte~Dgf*o
zzv at aU`hAfOuE@`!Nqsk*O1%0WzS^Nv(38N@;8HZ{7F{pz*Q@)q$t)JH!S$0_Vc5w!
zD6 at ao0{Q=ZnQ6k#C50RcPd=lVi}otg%i!BJpgEZIRw>Z@>i^D~PSs~>z}}TiCRQd@
zOFgo4)OA7+5-#R;sDRfy=nB|CSe}N;pjZ(`lz1I7#^FF?dJ at pk^)g~|^f~Yj?TKEe
zRQs7WliwHEqM$CW$HX$EV$kE7)A$Uw0z_#G#G?Z3X2Ry|>n8}hfA)kUooWsgQj<J~
zGwKz(a9xXg7riolb<#%oV=PKIcu>EN1d{vV_IhFHvellU0);TEbr1pohEX(YCYhui
z;%fmey;AA(6B<TzeVk1?uzWH&2px&Ao`GPMOSEY1A~PtakE>M6U!OAzq6ZCR5%*Lv
z|2u=2`BRy~g`%dVC!D}LRxP_%H$p$o(&rzTE#3JEg1$vl-CMsunv>I<i)LwT4D9AV
zm+kjzv4zSM){~moh{vb4l_OEp?}kqO2|4+jS*9|KW at ThsNZIWmJBwf*C3u**Gh0q-
z$c);YN?S)neR|f&x{h4Dn8e$#;Qf9dDyHwa)vqkbM;E%F9p47oa2advk98R#H+T&S
z72)W_ID+2a)w0uK+-5|z696vZ0NTbQb5nL!i+{5%Ab_KO32Yn0j;I}R5~V*qiVXrp
zs)JYcfTrhO at FH~uG0>DUdIAzDCv{6_A at r%#eDoZALxO+gq(+aMtS4pj0G;1$(d_D5
z{p^I+43{09zg9&44;OQTCky(Sl@*8JAtf)2L~yn1*VsUdg&p?HnbMrFs-&B(WKn7o
z##V9Tz`6?zj&ALXL9hM!F`-yD5>#U^S4vuBBTB2;REnoZo7O1+t1D%zkarzLg4}0H
zT><M>V#5^Pn7;<hahBspb at R3gg5w(gafswjdhsAvwm-?j*ZcDYPwxFn3mtZR`%bB6
z;Jt;QACyme5 at 8u~nC7so&iJ(u^@)l7H-QbVd;2~t?k|DaBg7e<>4NV9g2mHksIl-a
zNS|aW`w_*bkL8KV%~7wTEQ(qC$Tj`VyIXxb1YZ?+33uQw`(?{}pZwkH45CJrMD;Sr
z$|+lbSr(k~7gAH$#ZCNO8sF;{=UM;dPyYCg;AQExD`62J;_?S4eQZohXJr3u2Z7T0
zdd^n2076f5iE4+dU5%Q;xX$D6C<gmOp+;Mx5}MLiifes^TeK_!p84Wcdb@(U;SsUi
zq#4ZRaNdkSr!gMsf<8)K3K6r;&81BSuo$lwg?=MblAQ2U0;kxN`WH~u^bxEbsQ-Os
z6U2;}ZZ<!G>D~$}{P4Flh-OKFtJ8vrY?8xwBvu%|;9?yKanRw>(^I>=BsoWgCx-Dy
zGspA8hqJ_)YmWflc?XZEd#vBgPe%{S_`TM@)rq3($Xy7cB?S78>#51PrKfuUgG^Z|
zT3lgRlknlJLsYYMx|OSNhQPw-h!6F^dK9|d6O*GX&3G2ZLXvlc#L^J;#gzn2OM|i1
z`rcJM$cwY`e$%?l)&(05Wk;{r<8;i661S7k7cTZ3 at k>BT66ge&yG4kKc<bc^YOG-!
z2e4`dKvzYEkFu?@`_hlWOIec4xK!IVw27m?w7-dJ@<);b$8|2vf)cdL3nr1`AJh at U
zoV)Xur08<u<5+Va-e6mBLH(A(ghCJml1!{={*R8|fdq$;9DhL>fmg{YdLV?un~>K1
zojDy2yynUg`oN&`CB6$mSb?5IX-_?ix1m0`t0Izf;D?-G!5}w+udizdL$!c7l|zu=
z;X$`bAyR7gc0a2|V-Gd6OUfZm^JOt=JnpgYD>=2m{R&b%zQyeo5L8grWtxniajC~t
z4Kz`&`^VHtHY`TfzihY-<?2C?d_3bDU~9w9+)406lRT%%Ze6FgVr_OBfF6K9)@6#-
z(U}knqgm%v`j$@lnDji^!OB9VePT~hev_iK>=sg&P#N8oJi!qsmn=#e4CUHg4V~D*
zQ=>j5+<t0uodHyb^}R4#0ia9?#RGWL`ZNVTu2aTIGhKAYWz}U}E{Bk!8lO0(mM at N(
zZ8+m2P at Oz;NL at 7TtxQ*MURek9_T7`g%Ib;5xByOTkZ$*qc8oEVES!_8Ha8LJfF0!d
zc<c-Wq;aJ)uaEQ`3vjXy2Xfc8PpVxg0%XIk?VGCiT)^bNTc~ye+88fuU86vPAT+xj
zioQp8Qo)4V`w>cRw<!_d8G`3J_Yf!n1Q&2aF0#)#6|LU{9*%_bRHE(X(6FJf{pdwN
z|E!neUbvHIS_ at j^JDe{GJMtxM$Un2So#PT)L(IXkGxJW)={h7~$z2sjMz44p0|_Q?
zE_i$*cStNoCI7`(U5BR7qOOT)nA79VibmMSuO}%49t|O)kpoJgv<o_Evpm2T8S+EI
zljt!~&~nU(yGr`R4ckd7_o`|KTM*0ypZmD3nz<|)iUm#^I49K?_U^+$t1XMBV=wp<
z<kybatTb!9U8CJIOwEeCnD<~L2El>4Cq=`>JB)xK=Tc?M1}1sPO)vzl+$bf~h!wqM
z!oL^4YGmAO5GsqFdrBebpx-=7+5GtuC;i8QlOFHR^4wC9V4kcy0Er{@win#y;P}Dv
zip`i%>T+LxoLY3HfK2`|$a6~aWpCwX4=y`cS+s>;SB~a1^`7 at QF#wd2FX%X_Ly*~m
z$xx1~N&VbObGgtarAi at vIeXvKmDUm(j>o*f&AxC_m{m at ujO1GcD3dk8?roKmdXxr=
zehS`P*RA3|;Y=VNtL|e_8&~l+Z%G1)Q^23}c1ROkBPF?AK7c`I{=X2{ZE^nYq-5=M
z-;DLSO#+O)yDla9b4#!axf4c!`Q51-S>#CU38 at mJ#|>?RSqX;R0?yLJ3t?lV at 6~5H
zHC!7&`wGf1;HG&hPYGNJHlLF2VGPmN<_>;G8;mBa={R5UsRVS`q?~%=0N20VVJ8Gp
zC-d~w*4gC3$4z<JRwotAW)lN0L(4ba0PLc?h;}0vzo8Vm!VK at 2O=K#(3+Z at zxAyew
zDy^?Z19%#5VYuD3q!jVcAnu?xTP7U7g=wNie#~diQNhBanioH$f3uY_HQMG^(A5w4
zVJKBDm;dKrrLEIxHKWzX3zc6vfRJFU+ at z1$iqlGY7gR%;I+hc=R%8LxxKdTV7H`EM
z&Eu7i*_3aA25jix?z&epRPU4RA*Mx>0SiE#A&H1$pYfBo|MWW;PO&9Oe9`F0-odVb
z{-4;8dF-+O9!Qzn)$hfD<BGDSV*yQ%MHGhE6Wg%%#-*9T0auuaqqwhl at -0A(r-E{Y
z+J<uU9x3Lu8JBL<4LY}No?YVS=%=zghPLpk9vd&a(4bzV4<|U-XhOuPaMavram`F_
z(OU_x4?Eur+PBc;ZOGi~%QPFb6vA{O#_NAftU~BU0K@*cAX2MAVi(eu;GuT(rFWQ|
zQcl#CJAS4wDWEK~O at 0An?V*J$i*QldE?PfHBrVTzU9Fd|@SfCw{<&>^y*Kp*7(f7X
zpcUv?yX`Hvp98CHj_2m%S>n_Ftc_z`1{Zb`_N7et^Q1?;h!=evf>neh-?cvcSqt)4
zdBKR5eTO;is*Y=A*L{F=e^V$8^XjxCqptfFjc at 1Lpq^2x)weC)Kl3bOkz&kpu#s{L
zA at 9_90a+!m7 at hl(+(OJcOF-;YCB$5e>onS<oOGfLWASF>EagLIJEuxWFxl?^GCwWM
z(UQZCP~uwJ_%=B6;cNe?;<}QYz8{rY8zwv)0rbid!>*(O2KgGqCnpf1Hj8pw{ZTNZ
zB%Ei@$>30xRpj+T%MC(NaIY~tepX`Tdfv0>cCW7a!CEiO_{5={7f|Pf`tm4eywG7@
zZ~-+iO7IJsOqb6 at y6zK>ilU-G{}EJzLg%vP&4m2N;b+~7C)7wekiF})sMp>@RsR48
z6-1Lh-}UINo&%V~kJTn{#&Xv^&_wJ3x`zv9__Tp^v*gP{%veirF84bv<gimHtfJPz
zm9+fE17sNW%S`Wp?6No7Ta751VKgr(>rU~iH+a?3)WethMIydNQ7bHBRKX04go=bp
z+L1jiiq~?q%UNk#aSy;wS4i>-fq8 at HwF{*#_Ze$UF-|uSK3EWQp`k&M8j*06yy8&3
ziX;zxXC+rV&7CL|1s}?J0>YJzkzpO}W59_=9+zOoP$TWDakyTnvSKbuG7(2-XH_tY
zX)Px`#=<_1L(GPSB9$w(v=k%i{Gd*eLEx51&OzSjz0g)kn at xDK;}dNiCzEEnMIQJO
z!A&1^DV}jX;oRgd0#w#6cayUr9 at yu;fwmx3l{;EGAA#BNY`IrXbE}dWM|}0KtRfV$
zx-NH|yyszvXxSuA!Q`hGj)PtDI0VBj7&HE0<yohRCxqn2>J4&=zF-(Rid9Px*z^Dw
zDZowbP|;i+*P`BCfk6wQ&g;J+orCgKIx(_7m6)}jhoK+MmmCKeX}sg`uzp3r+jTee
za#%U3fstzo_op55vV`!SG~N0)?}zcLPdETGK+L~4g}sup0{60%wsX&#il#Gj{Q+w^
z%&}K)b8N{c&m4GpS^C?hyhYi=fxQ{UAy)%jCT?C*>>mL#F7#go9WbkCA`$R>+By)O
zG-yW!5gQi~D!6&!HDi4fR5e!@!VG)c6{=u9oqtyLni_ASpNz^9wea(i(KI*l1GZnq
z$Qw4fH4U4rK>B`iHx=!m{uZ~ZZkE3IF?p(sM1ZsrR{AGi++v7#i{iI4gDmkBxT$M7
zVak&xW6y2Ms|q)xNPjq5c7)5pyZ~PKb)5b?Tb^bJyH!f_Iu=Io)6UOQ7(MePvEMXI
z)eZ)ThGOP-Ka=B`X^)|{@(XLz1-7%2i?vtxt7OC3RK1HPpcGJo!_8Fs>uc&o>K-uB
z;;#7!z_G;6!*gfcZ(w{xsu5s*_*(dKPL|LpOaa$Ipr+GRqyM)kxjfZF0F0hrgJ&=^
zxlu-OasKYxuDegdt|H at M`c^q$1Ot4jc(5^ScFKMxbIwQ8*vmfSPjQs3Hx27D=T7Hm
zZz6cJ_Dq=F#Zt4VHZs0NF#AD(KgazP)RK#7ieImh+7wRpfSpp-V7QRteCE64S<Qf|
za~@3|5Yx3;**HtKt!FtW>Tt>sgU6ToBr~soeNmnhv-cL}*l$7`y_gr>d~mGl8W+g6
z5>HeE0$12YrT*DYg5+WYf6Qci;p$W29~(=@Q7zZZDr at hrgh-BH*$4`4R1DJ`rbhD9
z_6kbpJ-F}vw%ZA#CIr&!$%b9CORNnz47j$dV2E!O(e(6V#Wvj?o=Ll|Q(e!YbmA`^
z3h^!!4DO78SeT!&l-i at Tm!T(r9XSZ}{fH};EGgWwii~=Qeah~yO|>jGLb<K0J+|H2
zAi9wkb$(TeE-cBAa3)R9cl+Tnj#ZZ2D9QslF(@G$q7HHA<+-$XBtm_S=Grd-cN
zQYLt#6*wI$vXd3nOHe3r#0mwDh}=@%mKbQHnfFfdUgjjTmkmXlYu?O2>Ft-JvfbVA
zS6xzYKTxZpPYS4U%4IBfIvTaaM-B#9cmv at N*n^s=yUSwcGAHPu4klvJUw{X5@=lg|
zcvXgz3scKTDHFUeJWjnZ0>|JF1yD4lM2*7zt)CV0+w57v)Jc)h7p7HbPl<L_j9;@B
z$6O#7>zP6yRE<N8c3 at 7qK<2A~ALG4VJ9H36iyKN9Tg-^J2g{?SK*Ol7xsiK<$>R!d
zq4#wJ-bwzX_+@$pjshSfhWDe=UaD~t`Z8hHFntSAXP@$885GKC-(*_QgxADo$ALW%
z80Tw|L>M4?=6P!BV&iVSGETj$aQVm@;SQa|Mvx3H6D(UXQvaG`_`Yrpk4S5z0)NH&
zd%CtAXw2Gu)atyC!Zf99VbxG;;Zzlcq{WEFLVe{2ZSsoQ46OYm<eE(XV3!^7GXHx4
z9K<Hj>T&jZyORRsvU#!@slo at _OKd1TG5%c|hNE)cyD^eC95GpgnWEFM)c~a|#tR7^
z`aLcDGExG59ysF&@VIH?Vv)<i96dkuyZv<ERX7(=oZbVEe+BX*#p(p{C^eET5`4x1
zyxRqY-O22J!VvSmwJkjZc_)qYX^x92(*k>&(HlUMoAC at uC;A@*FPu<K$(82tV9>dd
zQ;BE*IcHn6YwJ{h0Sx{{XOAP6fXyQxAYBD-jW`ltGDG{iAhL at Q%G3$ckx2}05Pp=B
zFUdQX9x&2aEtz_MCTwzj%tp3InEjlRoR7C>8{xQNd)F>0>qxzv*)8Of=ecz{zA8#y
z=t=q at HodT{-=}k_lhFY3sF%b7hZ}o@%)19{J`q;CHFVTznURmfiqqVC9kTy2B}!Cd
zKQqR7y^h<cO+<={PG8UAh}2;tkK~Tcp2`}`K>2hh!OF|uGYL_gc4UL&$CpGNr7=&X
zXioduTdeM)U8^(&H8PaylQM_pVT3n2_^JWb7G`BbuD_QuolwTALpx9J)||0=1TKtt
z71*^%XPpq~w9<dF^LAh?wu9_SAmsikxEUBa%;}1K^*?5Dn>rjQ$I!6=N?;mW^+?ag
z1o!`;xK1;!+4hG&{;hw#a^HR>*I?!GF$=mjX;EJ`A~LCap^DVnmEIs!>6n8lGZs5m
z=*HNo-Qc41$@FbqyS)a$p+GhBvNoXR^~T#t16O#_Kx`&SVTGM6+6Ji8z{W*{3#2&9
zVUihU5XRW;=w&gV&XC$X!k&`#Mo>GzY+u at 2T`g;TQL2D1!$+$L)*(i;jN=>wB$iBK
zjKV%>zEQ$gOYMESsK?&6^Dj?7>R!hA^y08=hvhdeXHrgJ4*GU2TY5=XR}SkJx3zN)
zVekUSqK<*wpeIH>r;By&5`*uNu8Fj=aRzdYT#)I1ILj<(u&1?W>f}|;Yeg7Iitde!
zLh0E!))<kvQ!Qa(&9UwhcIQ!@bJIy8Pzi2|C&Lj1iFkZTG?Sf_M{tsp0;)Vs3-?W3
z3_Ac%@U-6^2Zddas|;X%NnJ>ksd202_q%C35jR at 0PHM|m!5!?h%%qMCq`4KaQ88(+
z>*pgC4B|u>h7<34BZYzL;zy|CDzDrcju^<#l9m&r9xVA##PTsznk%bw)Bwi<uJ7&!
zxvz+oH~Q=^u15agCORSP^m#ym3yGa*?O^+I_{Pf#8fW0k)N`{BNUR)2E3D!9a*YJ5
z*Ey3o=kF;`l}i6DNvcdG at BCvnuqBp{?f~~n<<sfB9obRbyu6Ko`iWySPw^!}n8j@=
zp(gMYc0Njvvhl+^tU9*dP3b0f^ts=TXM>CR at qfn%FL_yIo`&`&gW8Fa at k;4Swq{^6
z-JuP%Fn;M{el=$oz4q!Ce+?$oWLahTM#V)ob~A8{JSeeY8!@f^*=#J|l#ORe at PyT3
z09~@TJq29waoPzj&r?5an;6x`pU6C<KJ)WvPEfo6;1BMj%sRA|7%J5&2~!SX{SeF#
zc+lN-(F<1p2l9dPoaAX4)CsgmE)IXPxyoYiJxxEy-pLnhc*q_AvK-QF3QF)6JTWG{
zKjQHQY($&$q`)2L$xLW<%v(vOfA0097?_2B0kH6wbaaf6jf?ajbpMcS4aBdt4-!6%
z03opHkw%X1w at xa?qRlH94bNA|3yWS`?ZIX?;R7B;#R-Uv*csIb<c~t3-~)!SDwbs`
zLFkO`rM-X6p7h`|L+N>Zl9rJR4Kz7TTdx?_-Hp{U;zSOLge4YOy_b_;fr4o<#%pJB
z1ltF^)ys%`jZ*WcY;<5_zT=N0ZT73?Q|M1mv?6~54I6b=@v&aF9{9UQ18~yIJ>ZBH
zdE|04|359r7XL>jd}0M7lDH-(>Tel2%iY6vnI4wFXMRm?U*FSTPzU9l{d;YydMsp6
z%qo-*SAH}(u!p7#*i0kV2bgTvI3wQ$s|)6VMB(#jXAkT6z-~CdS{1N@@_QC7uz(=X
zH%hd=7|V*NNumf>kjL&8YDjG2ibn<sp}eKc(8+c$cD8WHrzP!+Ltj>TIxwL#p*MUZ
z$KmuGjcmn!McYxQPi#UM3)h2{_;_!W?rFaI3;J^q{YX1_-Che1OIPmoc;?0%P5w6%
z6qJ@;bYmcMs*nuW2!fK32FktY+%lIO$3w2Qqo?SC^lnlu{jVVK7Mrh7L}9@=HGfzZ
zl=XJ6g`i4v<o;Avl=zIK?78w(4Or9X+qxKQhVE%-IIlk?X3j;W$pVwucP$63L0(P0
z!METKMFWD$wt1@}Sa;m6iXWqVHjooX#qfbV53&nOzOrj+RXYG^khCO2noB+XX6$Bs
z9C3$(Guk)PExI4eq~0MLJDG>JFN_l*V1j3SXeYN$NB>0C1r<_e0{uw)8pRHStRg$Z
zzQnl%|KEH<7 at -q8+>Zo_%JLa3m~8SQR?3tOa-8IY%y^7ZTt{(D*l00*<SA|Q%G at a_
z=z(ghW!0t3f4lC$VzW>txyawPikGV&Zm3(9wBjHG*uy(c?856{%S<1jC~}JC^EWc6
zVb~p)=#%(Y)nW%lql#A&zG>^t2)v?0okU_>MxCvi!&Y^7{JFR)iSu-c09tM`i0Qh@
z;n}80VWsnVMu8^Bz~86>Koz`=IRi^Sk1Lum*nR8ai#2R3a^1Y8Jb{hROiu=;^KY-1
zi3*Vg^F4L$E}Z(w7O9RT7x|J9QCMbmAoyRUV_^OD%$o4$6#skrtwA6v|6BGaNJtt~
zY>__Pds%DAXuUWj3GF1&bqCKT+Q$4dVdjg-y~2%39$+GH&X)uK#sl!D>O*-Zw#$fU
zIFDWD<KT5E&v#j~7SC#pNt%;uVpDOV at 0o3ahPG|=tdPdKS|D>#t|0W<vCJd)ls%7n
z3jrCgC%H^g^05&wl1AO?i`53wkd|l`-XQ!>6B^Li-U_L=`DDD<V`Q&iD%!O;zdu%$
zq`DqmmV!hT$meDsOT%t8JFSqa>@+my)@e|NJ;?_|>%6|(BoS?aJUbOl)|xI{+YO4g
z?c~@!vv at kzM*`msYEaCtc~|a2?yZ)s*b5wH$P{_n?fc0K$g6|=Y&Zpr$;d0$tOzW)
zPC|+!);W;#$R5a=fp&SxT%c=Ol at 04&1-)GKiYWwZLKp|P*;`BRV#91UM20A{R{0FV
z9lmjh)0<g3M|N2zUz~-q5_bD_cu#1-cb?m&)L9n&XD(rPZc?TwRl;?pd6%F_Mvum|
zytO!D3#r!FMi%*})!+yM2PHzui>I~2K{_d#?saWP*?ca4emE9oLtqtQ(zgnCROj!y
z6>*xeTNM!5)NUs)o3^>Q-(G_qldt0-1dF;RfnyUy6eUTF^t!3F6N-Y9Z+B(k45spU
zkZYb+6Z>F?cvd6!oC`}-qlmIt$5G^8O)Su>1hmAZrIh2AimwFrRwqm*TQ~*exjS64
zl0CAG6ADv2Wv||Zc|XUXuEJI4;pVo7^pPV?$b{H-fq~2T{Z3e1huPbdrJ|esUofAR
z2{p&Q2x*LEqNqFjvvN(%Qz0N&>NL~BG+RxVeSwhdx-y9D{P%^J(sqsUg2?7#ir?6w
zXEOX+vu>T2y56BfldqM?l0=u7P9;|}wtgdV7xA at ZmGn_1Lrygu12zsQSOL8)u7S$i
zZQOZ>WpG)M`4bA>9H0Ql2HHd!KtT{Ew*lG9K%^%au<9CYz0T~n7>S%%EXrP07;0m#
zYm&TK44xAYxMmrdM2ASf5>HPRs$ryUvAA}`DPx9fwXWGXg(vcfHvB1GSCw$QzRx*O
zge7vBseCAEDAk at SL{+rKAG>ZPQ0k0TTQ(CRT)#_E^LxDJNav_E`-cEfYU0|vZkl(&
zI5iSF%#&sz5`Q#sr}yBSM+Aw}3RVi(13$xgxionLJbTXc-atrxmN=3Bl}L4PL$Uxl
zm93#^iG#^Px-na7-$yu0)L01T+~;qI^bdC!JDC?J{pt~_0|+9s0|1C6zOz^@M4YTs
z5cP6}XoI%UR(9ugtCU2SiyCIaC&RIFpJL#sB87%4l92Eci8$?N>t+xUI$*l``J=;V
zDd`@m)0;bOsv~h}rL;mcc?|DC{^{et4eeNj*O3vvz;~dw at z1c7Jrn0W4{?xcOrJSF
z>`n+teSamFJHifbx2I#N;eYkD(H+UEf7=;1tB2~7tSk3CLpI-SXY~4$+%k`d*$Wbg
zaNYuxqLN9#Ys(7_ at K&&u?|xn5=bD8RN+klr?^8C%C=gUc$fC<q3qs|q>e&6jR?Td$
zQrZANi=y~6E~%EJDKVZ^P--DEa0?nZM++oyG$nN>a8LSZeY)!T)b!ZO+&@s7S)8Bk
zDSMdb<dmBgYrU963d>PatMcXN7s_NW^>_YsPFvp|i&KHa4FQuy6|+ALMiRO at M{$<R
z_*30Tbs8v1YSFey^^5j^;VmZdybWgR;F?yQ-0(1l|51we)FR>-7!Bp|{q{Mo#plDe
zUR*>3g`Uiyhd<b>GcCwz`(Y3qoXmrp^f8~UB&$ukb!Qs7{)fL|lzn<QA{|sgP1<u5
zjjXT56qNT~@3Jg|4vApd2^v1qLPGTG%wH&8+>O13DT{ek(|32I2B`(Y4Ca%~<fX`i
zhYH at Jw08fl-cZi#w5Y=_imo1fdEb9AKx=VSGrRhl|FYxNvfeYr5&d_Q$yH}_gcjsj
zJfExokVNUBL3l6=S(5o at gT27CFFzeIAdg5Jl#mqXKkk^&dGN at 9wrDAwp-B&<Tw;9U
zBBmZwrSDI{Q*oIN(qQJSybg$u%yPW|ycy;Q8Zu{LcuJGmfxf~}7!T@<hhv0Q$_HCd
zCi^fEwnBC1gP)`){t_?z?rDaKmHf6UUJxkyId|X37jmw%4-=?$O1qogNL9XMPnR&n
z+hzXGue_*2E+)c4ePy5&lpTo~yFyx4qTvQ_wq+)kCi&wPFeNoXuc(0Umaca&+-zow
zzz?u4Y18U!W4J)^<Mk;Hr;(Ie_BtaBJ6HD9Tq#KVc}4LEP|jGX(01t`hwnydP!Bmf
z^(%8yk{LUQ90$ERKJ~uG2T}GtirKcW>eZ2;=Q3YnD-fq)<&{giQ`V_f$4gNXBKvS(
z7|I5NoDGM5iKj%d#m6GYu^svWnhZe9uhJ#vJljj~HH&e+&^H2vHc>jDCjEe_^x<kf
z>y-?u;fD}0$ag^1&kKUx%51z6*CoQw*Q#s%_EFooYHBKsX=()Wj#$}x(WBogrDBqQ
zc8ry5^37f&v-7S>AN`HdjCH&5eO4E=KZ!ri-ePQVNd?)c*}HQ={Sg0HQ9Sxm(0A2H
z^cG#W_9$TtysIqd0%Klc<8#n`R};viq^6>%7&ii4xoL9O!UdKOsO4)lj5196hm2Wi
z4waw?xr7DmKzbq2x%Ib$F|r;kmo|l+#sbja_g4?FMCX~4gsXL`x{4|0WB}UAaK|GG
zpbjJiO2;oh&(vBjx1`V527O8|tg9qTGn7XGb`TpVY%pcj0BcsZC5}AqT&rusLAf=J
zEsI_I3R74nk*U9&j*^=&YhCXhwX!RLm6`Dp1D82(TdQ_SK48yxzD=-~2c5TG3t!fD
zkcpM5{fE2p<r0nkqN}z^_VJy_Y)oSMo!D&6uLqKG5+C_eS#p#euQ at GhrL?nrLp?p)
zqHWigPb5pzBwNDu at 5B|J6EYd_SeIgTri=~b#gZ!;%iQTMu6~w!B77q9ByRVXB6^96
zbZn-~;8<pr<2%xeO9 at jZ$}9~SMmpRWxLiUG)gT>ezBL{RrqL%pECdTp!+Ps^%&(fM
zUT;}=rAx~Q5yXk)uCPZ5n)EcmE{Dt1?tUQ^2v_bh;%*I6rw%sng=jTV)Vix1I?#Q$
z%eO~v%f=ESl1vbJ56F$hT1xN*!TfdN=;5*XK2E3nlx0%oyeHGe=D>b|V>PRT`HYU4
zW~03pBN=)JAFOIg?T=6c%<AsnmO>M2W}!FQ3Gx`Q{F3TO+i(25E2kF#&3^H at Pg5IA
zpABh4XNX2(M}9JCF}uD6;qN~aD;+jsQ4DTAtEm(z2f^o1>U!x3wVK_yuJ30A<2rkB
zg+isP_B~tUK<j1Mm={^4-Ch-o$P;F!#|m@{(5}uQc?yApTWn&RZ at _#Z at B~dM2d+WZ
z(ld%A{_&Gu?YZxB=q7vL08<)GsTzjIj at e%zVvluvXI`*WOyMC*;mAa3+~sZdY*mrU
z8`vf<@l6ZCfSVW_Nc)OEfqA3wNFB-yEMVzX at Y_WN8}E->9IHrZa1`)*=UsJaj^t7F
z@{$|jdHu!Vaaq(oG2`{Cl7sxUG}mTqp<kI~F7il6CY2a+dG3fNxiKEoCVSJJ|2N(i
zHKnSZ1C4&<yKkT9Gd-46&t3?D;OqXXdOq|E#!j>*Gvc63EH!qU-V&x at DbPG0Ju+vN
zvanC{vgp|Hnl9&ID`rYIZrcYwEAY+WBFdf3?-*j-=qpK7%D^@e^H11N(M+!6W1hz(
z`jG{j2(kCQS7ANuwqKH&D~OhVhN<k>Zb60WJ|~ipv>f9vi~?odHO&<yCkCkl6xLH8
zShdpP>zjs>estDAa)Y;doh;5l(Qb4C1^8j_We4^~ZUgsTmgy at qEIYSBdr?=Wpkc7g
z*#1;<$zqEqUeqO^iO_lFm;+hv#~!Y=4oZ`@kiJ(L;y$@=yGhIwxzyrSe}3aUm;Xnh
ztz>L4WVSRM*DVOp*^nO{;8U36q&=Hofj?liv1O<HZT?Y496MOiCafxRG?gZ2EfaSL
ztxEm#I?pjt&*dUYU at l3qByIw+<)^E|{iZ%7Hwi3=aWS0$+-ipouOqNphMJw!2o92E
zTv<d~wwHhx6BaC at BqTu-`le$#Ez_Wo7EwzR4JP_63}OQVYg8V#t`fUDj;9+cbsO1I
z=lvlW9Z<ZUkilm?ABd>3;QPm*-3gI~FsRyhwOP&h=d=nu;7tw~x0w=pQ;1Eg2q8cx
ztEDcnfv9+${k+?DN&M{_d)r`)<L*G6h54daaDNg$Kecvw5ll7rXL%NYdW+ZdVGvZ!
z)w3MT4Y#s<PJ~$gdZG-2stKVKh^{Ia{8mGQ4%bjQqZhoW1fcHpvnPE+$vQ>^l!q|x
zSWR0c>10?L>F{4Uc`-bac)Js{Q9FpzJ4^gS6IxA$LGrJ<lStfcNsMcS3wQUXBn%4t
zo`F78Pf1GRH!S;^zRg4QhqTp4m0eDMD7=OCEHN{oqX(ciCm>f;+O(8>FU+#AwHoe_
z2c=d7STz0r6|9v??kie;^ETL<I;-ErAKZEKCcpB0c-PE7PS?0;{t0KD29`U{qpn4m
zLNoDZ5(9A;m~()_<dorS64f`{@wr3<ku51V&9o`|aV}x9k?d_uWWG$sHwPero`<Yx
zUNQxQrM6NzO~g)@P+qZjosTS{(kW2EH<G|Zdl{;$@ywwmrZE)vl}?|~z#X<5TvJPR
z4cF{<Yfk49)D&X{cAqMqtbV3B&dYP$XRDC)&i;jl1o}tDq-2GeP_+`dEOcPj`<>MU
zdQ42ft|7!8;-ace#)ezeJr#2w&n{69*to&iV?03A*%=hQH-LL!KAT$ya%`kewA(Vt
z8e-1z?U1N$G0(J!m<!kKxu^a(@}h&_!KoA-Vu4!K&LjrPoRFhcpn$k%$K7JIlEHGo
zM at V023uh462Lj800-|L-7#Z0o;I+b|75}-Ed|n^_a_zpJzn^Xg1)x6##nSL@%~gjv
zXNak}4V1-WOJZG<_Wjo8lA=5%tdcYw{&?WEnrmS58$&weu?j!HTG~(jM7e_Fp=7hS
zC;BV`OeBVXW3KH$;nvD`gWSDpf at WL(*;%V=Lv$)9Oedgrn=qnA8G94JDH&sNb)Y46
z#&XQJ`mn at DCByW-98np$!|WXEOJKa8)Y7S;XI41y+}?g<Tt1<SyV&&nB2TPB(8+dd
zJMYLph_z_M`J?Nc<jBC8yO(979=cayo`Tpo5K!>9g)Gl3(F^z;2*lN+?+3ayM(iO7
ziG_!loc_X25kebw^1 at eKbF!@|Osxp~5GU=S4Jr at CPZGFJ00`q`awuem819CnjfukQ
zz6HA^-|9w7sdS+3k;&Em8-B?lf60?Ljp5+AR~7&!e}m9ab~O)CWur*bZI_<r>23l!
z^yBcx45g4WT6)JGw1CVhqiN3^25)`yn7#f3#s6IxxK>-BO}GO$b(jSZ<A3;b(+6-=
z_S~*)-_*C(fVeQQn{h$~GU~^HJad3xFpZo0m(V(D45*Kndvbb!l7a+rp7;l(ie_Zj
zrChWut!nVTym-_Uj{ssSuT1My-<%gqI3d=b!H*$uFA+R;;NL#VC2#XQiIa`-!wO at 5
zu(i3wpQD1i={-MK9_}El73eT1dUWx1mn-B$LQ=4|)2t+UknA4gpnBTH4eS!&6rH*J
zT%vK5pcc(@iTT$_=Abm8IB(MvVdddxm|n=FM#wHNkbETStg0NZz4lb<gS+X{_7-&?
z8`Rl&;XNr%Eg!}v=GRWDlFE>A|DNQq2R~x)4}T`?3?#WZ=mmsS4BYHQa`?L(;`MMP
zn=-@|9EG6C#hwBVnO+KA!i8$PUgRIE0tBrhkfR~;1{U?o(g3)&up7RB%}o9^tc-S8
zg|wJAM=R|rcZIl&3SipA at C*OCvp6VX0p)mR;qoTe!B=F?Wk}ZhCZz(Jg?aXXYNO#T
zN{- at q)hjhaJg9~PMv^L*?isPYPrvWJd+Dw+_ZOjza{@6M^;HNs`k785t7AJMFEnkQ
zY~Bvl=Jw4yT&$*Ct4@(Sa&TM>5kG88`FMH(1B at b4Jr>AOipw(@KgGv_rFvi0UD$I@
zXfFS7q at 0%;h-n5<Jz0}-kK^xqqi;CM;{sYMiT$006%MB}{6h?@=CG&*<A7h>VXv3j
zH0^vf-l(9`I>{WA&4^~2^hq?;<D0vaiQ7ZR_#>RK;y2gci3v}XTn4Myq%79E*-E7W
zc9KLEVh6CpuG-Y-GlqKr71;voE?sc6{%CA9aQM+N|Cl8hI009!F1+M1Dg=P740~)n
zux8{iQv>hzMT~nti{^QF#<f$!<phf6iDIL8#h<C~n<tQv!8aAY>aaK}EB)h}_TD#1
z8!~Kw1i99ZUZ{%g0<{;O)Gotz*p}6h-oL?YFZzO*nX|g;t@`lS`SN!=;&m3mV}|cq
zZhzJ^ydp^P2?S{OthWSo%A;c2DnZXxBD;DiKIM`Fbk3zyv0>j=(HN5McIs$#qNQdQ
zcu#s?A%RRQ;Q(+74cU|Hn;+ at yqM344owbNDUMAHtGFILMm<hI>1#kLS^YO9VRQ*Sy
ze|U<s?KrzzL~%S0Yj~HSOpAZf6dK{1s8Y|smG4ykS3^(rO2fxNKo|5|WH24m;<f17
ztBfk7IPGrjNkOEkX0c@;2ndooLp_0?oYH7x+JL_bQ^=v2;Hq7*;8ZuiN6P%Tt($Iu
zH#!aeTC?=sf}`}|<?-dVfIv$;4+}+CooXSkI=CJ{sf=EyNem;>bTSk3sDYcQ^9G#L
zBAVU6#n8C{TN7dkN%*4M>%?u;ha$eAf2ql(xA#VYoR7fa3~iNg#JXEuFDuh1tAC#R
zSfzXdQ=#dn)M8 at ldLHpa(W44VNh&fK`X($A(cALrdme^^ReD$?_a9>3dC%t>S5CAt
zbPFi^UHk9hW60tjya(h&1OaJUn^>O9YHEketRL$Z-9QQ<_-R6`IC-PzT&-uukj!Pv
z=6qs|`wpB<>|(mxHP9q1LJzQ9wf~gCBX->@xbO(FK-M?U!LwlKz$U%)G-~nMUR~3L
z<J-LEH%No0oo9j#Y?f(e&@kZxo`cLm(F%{@T}eM)e27v2g(#a8avZ{y=Q&!!88;u^
zcDwt@^iO^M(a`Vb)kuAc){SHqn^vg1|G`2^7_}ARm5w9R*;i$Iz<ID;EL{NmOhgcZ
zhb?c7!tiEg=R$B{4m0{)oX>190nh}pwdfZ3oZhaQ6>Z(rN4aGk?8hD_D<KiDk1*4c
z(Vq_x&f6N9e at oy<lLhM=M7Wg&0rQ1zw*%o^TY&(H$x<N!DGJb?oubP at o;=3EYY9oY
zLJ$Q38twvA{g|TTMyc#uojymjvwDd5rFFFPQVdo#CLHdIRq2B^R1j-0Ji92_dXxYj
zq!3Yd6&FxVC9bIqjuJR5C_X49sdK9<bG6eOvO+CdQ&-luTr$Y*E}p$>3z`g0RdUr%
zR<Ockezj)dr2fBxZHl<bNfx?r<JTpbT$rsE+14FDWyFIX3CLCk%qLDP$wr8yvkSai
z++8Ze^WQIS0&&1q9l1q<5GI(6l_+Jeg?C9K^@z^~p#&NQ>j!uEOwBbDtGK8RbYUK3
z at 3+OZDM(-N1#Nq(6XJRF-;UW{V+L=*wcDeT>nZM$238=cBBi=)dne at lk^NCXz9MQU
zYba&XOsY#Ocim4t at i|CHm6nA<16ce#tnq(LjH6 at Qzw&fQ+=S^7^k;kijXJl3I~mqh
z6^5I{rW?i+4z*UM>5>;81h*d^6>7(roCCfcdQ?^nL<jC2Ben)mPszl@<(9-L at x<PP
zNc=PW)ogHP`b<|yjs9?VDItxM*JN8!V4oJ<Jq<Ax&4hiMZaKASTD+$LxLb1FP;Xu~
z9xMg**ubT1SyXX0DMq{@mqHJqsA at 1{BoyF?GF64r-)F~nHxb385@`?u6k-tk_S|YU
z<6(2tv1b%&afdSYaMHRAz43HuSV$+goQ`@&pdou?tFs2UH;n|j&XH`mdVs~BWEDA1
zzwc=r)ne#9U#g+$;kWOjj#(nFA_z0 at t76?Nh$IW`mD!hjt^((a1vWbOk3>Z{hs{J=
z$WFH=JYoNo{Y&@52Nb_>h9rwUuwRDI?DkLt0lp39{22IU$KRm~Z|mm#)_#{Gq)J|H
zRc~udq6)$j+!rWl<IRkdaI?W&t-m`Br~^?1sjL-+l?q4Vi-D7|*1N!qB-fZQYmkP{
z!8p*BRCO9+k-cgF;WFhG<N7Ob8OjU-^18BfM?C7TsA at DhXnr<tNbJS-uM=jDc)=JN
zXI>`befu86%d?F(ajnt+%DqD_V_w9y?|HX<oU5|RBcdk*Gr{ry#2NLzSI_Q|>U%^N
zI&|z0+tZBz at Ss4ePts76w-}G941x=D-$PvQ(h3PY^dd;byc8{wanjcOpf{4VP^3Ts
zHLO9%=p;Z&R&48~`);DYLy}t;XKDQstftU$d_1vr5`Df=nufq%Ef#}vf!=B)fMBAX
zWAIce!Zm_jilJ&?`6IY9u9sdg`^cA<!?R3-urSfax>r4R2!L>nwJs!h#`;Wnt$~Rm
zb8XuSQ!vU&;C#pjR?7Ha(wi=w!UF&z9<n<$xtc7mu<3$>MXjmN<vt at kl6KuwSLkj;
zk?T&v5Q%$RI1UxRJUV>E2%0k{m^C$T;eK&<O$z`Fu$kA(7uBd(3GaeX@#B(!!PM1h
zdRd(DWEx-fz`>uSW(c+L9m8u}N&lo2{E?})K^^sBAr4!WiK=W?qKzesvvDM6rv!&&
z?e7G>Vyj}wGg7I5LmERZQy;FQc^87-_#EG^Vt(4hfuyI^*5ZTwCdL#oN9t7LdS&12
z6K89D=mjOn{C75C%n=GjWZn_jCLTI*`l8<Qq85Ahnb?WsOZ^y%!XmAHjwJUco#IE2
zTM^q{B%cR;p5o31aX=YSBF(WKErE<d-M-2m%T_Puc;_d^PFuYA>^6BUAs8z?bMSAY
z;7%X^DA7C{PD>jHmefGTu&E9%DbGI0I^JlpDHgVem455ZQ|H76d4wQ)8 at wg-_?p+d
ziWLqMcWhB^4H)f_s8)J!4;yrS&C2U)LbGW0!sy^kmQ<oBRh*yv-Bv142~`)BvvZmO
ztUX0ZNB0e)zETiYsXzszx5FuO7_T6Of*SyLY(NVuL5=C4c48t at EuvDMZ3N--$?;+$
z(OEY^)QmVoMA9etVGX0yX(pxNXy>cAoCkhxk52{tEIjFVinojyLU*?PZgTfbiv6u)
zf+KO^UjnN4vkj*R*Q=?DeN1PMbC$MfiVVgBlj3PoSA_#oEei*GWE?V2i40*RAwRzi
zn<D-h%8cUdp{FQBO3yS%qTVq~V-oQm0~$p!ci6s53xG>HsZce8z4NIm!OmZ)6|rgQ
zx^YQHmIV)f24Sv&JEq{V&gwo#il8jDk(#kDlO^+Aq3A=rR1UW4)v}Dmf~mK84jC5r
zN?DbKAS4N&c8$KO+#^@d08NVJM7NkT^nh=CI|2>{ZunjCnWn0G_4#Z&F)B1(*P$V3
znGs6G2CQ5Xdd)JnFqNxm$;%11{o&%E1BI*4kt>5L$Ax=E_j<TXxoD-J%95`YhHbg4
z7GupXX#VUJK?e3 at tr-soJO(?^%SJhAfO6hipdApY{I;=$O2{mPGci_Bmb)?(tb)d;
zGQxgm{zC!_?D*YEIzD=osgyG)^1zzHq?D)wtKr>f<)!C8)6TCL+XD{|1bP{t+wmls
z68oUjylxdP4DmC3?~?7EbI(+xr5vSNA)YkCM1*;rJLBF8?et`Vq=^r`1izb%cU$kb
zhi7~xgy$<+IwH6FFneMYUXM+~@~ZGw!n<;F<&Ao#2agTCqLAB`ITLd*30cq*B^z2V
zW4H2wvJNW$RYsQEJ<3fE5vVZ|7m6}6U?T=KYU>9;Ct;Mvn}wTrq7OB*fCQR9Oj_nz
zajMGIKW!3>zO$1XpREL$xV(CaCjD@~V&ug3)N{g8ZRDpt`}uGA{n<l3im$If<N4Cy
z{yj0w;y_R5{^~nR5Om2rNQwnZn5Eju|HFxit+I<J#7+pt>-$g(cV+sCscmt4Z`6-R
zEIP{|Q*)5Z*L0l;!*LU!VmM6(y=QM6L{TqwU&WfV&`Ac9g_XW^nkRcg&3YfkS?u2N
z at pv#M___HNpC!>#MzRLS3zZDKa#KJ9MQINZ at 0IKj*)+HWMeh2fh<nZ<1|4Nc%xTCs
z>K0=HE3c$&1t!7;8`K#3L$34XjWgsrofl9S;5)|2N`7a#_0YBL8c6z&EeX5$zR=?j
zTa8N1tNfbXW$jo_!1C2vs|G7wOBUJzXIso*&B1GzD-*Pmfug&D$$Bhjo4gmImPeW+
zzxBY)YAn-hJ}VyY- at IRR<|1bSl*GJ8TKEfH<A+L{d2Ogws4KpIZ9mkVYEc2UnkenS
zbR=$L^teYdVp}B8A}tdRl`7i&LgD)6S+8$Dc!J-mpm(*B4Aud?2s*Z%tf*ieL?0|Y
zD!F2 at AH*~(!i|${rQ!OfI##lBvm;=s^nW8#Uy*W8uD;9hyXmtsp)PVgy>OeEL8ksp
zX#vRIBWibBi)t=VIr%zbRhe+*FU{P|Tj$8wLq)ji+Abck7pD(>JGZv*1kw?TJhCuA
z4=&6*V28J6A(b`y4WaA;7}ZLNX)NW0XP{RY1|Xp&&;0&jA}-zrRj&=iDK|lUniAg#
z`5pp8NMX0(g9tyVvw=4y=b)77xlx#}P0TSO>}u}KbJC;F{;Eu|w(~Sj=}2VLzTY8D
z+WcW?euRg2Z6$guXJezLCP0+X;s8;11wV|nj#I>u{$hHP-Y<4eTi=Ndx0QGE6TIag
zq^Hh3)`Aj4eVJ$?c at XT+?RJR2K}fTg*7hW?4yqcwtheL8EJZTGCgGu{M<hB4q~4WW
zr}lb?4sO=~V39*E<YeAFwEjNWHex5bd9rZT0Nhg12Mi-%`82Q5s1!f6%{(uMv`AN}
z!iRmW5!UsvXk|hfIY?a at UQ4ZvNHUuXrZl?g)=9^N(jBk~=#^NwViN{fVh+^oR^<uQ
z?<&Nuq>>MTyX;OOlyc<jr7`{v>-P-ctZ^`h&to5)MnwPve(H0A_N5D_r2Uoy-?EqA
zD9sbfOPZ$C*K31rH-Mtq^GD&XlSkS*HHB(G;QKbb*&Mu$j+pp$**p|LXDXIxiaHAg
z1m^zk3EB|)_=z>&+0s#>@=BLrAKXT7?Nu`}-WKg>=?w!p#d|6FY3XeCCUDO(wrLzP
zPCd=n?z~ck#@Gav6zqeS7;3P;@W>cRFG+a!=jL_lFyP_7E9&!>dqbT_vY%g}-#02s
zW%|Y;!VBsmv(+?G2)F7zF{)6IlaX)Cxv$9ip3 at T`i4Jyrf8{#SH}Mft<;gr&m}4Ql
z#GUT#Qx{+||FLoMOi^dmt#)ANjYnYWTtbXSToN}zitwk7a*$nM7qTtx{ChKS!-wUO
z-6r4{Bh^mK8^~KjjC>5O#6R+8B;e`UEBtN13Mmg)UoW8`#S at lX{zkm!m`YqEk71 at N
z3YGnG-=nHwS_apWgKMye(oWzC;Q~8=gSII>vFX;rEHsBcKCVy&87H66 at gug@O>k}9
zY7}-+#ut?#Aw$RKeB5>=V`dvMaJBr!h;&&D)OdTGjE9qiq)MhmQK?+p<GN<_9ZmIN
zfa^F73?Ial(d at nu4otyytAa4P9X{5ffLz7H2&WGclOy$<i{(5~Av;tUVVUseTJQ;$
ztA$gv&Oid86io?!`v-D62LBV86pF64d_pa&b-Km`8(^antsxWCEpS4W;|yF<NXTlc
z9eZQ#P8a`%-xrc4ynnm%@Qt)}gP8?(o!2c4P)ytohxTSoRb6uGVYfB)j&E85){)(C
zxgZUDVh-cht??1doH9drxrAAtK?wq6n=jYb2&yB at BBChJ*pA;8ohHX0HQlibE}bwy
z)-ksUFo{CE-xTtsHa9~jERXWdZP&}i9(c9fe-H;8@&I5D0xG`yo#34FT`m9npm49(
zY0?tyo`x**V2klhcEOF{>M0e%k(=GqWLum|vZ85nYz;`bXOS08i|Vo|$o<AaekSDG
z<Lrxuv88oH%`W at BU^90n2j%6p(tH{gwsUOb*vid>f-Slm(wrMl{Ff`Ap*^}%+^;2#
z+6K5$3FczLvKoi;^aLZMr_ at rf(R>}X{~*)Y={=Pc3P!;-y>y#ThDK_U;;wkAozc#$
zpFz5;Y>?Qy;kvzRFX<6yh+P}?@k@$AImsCbOK2`R!knZ}6tQ?5{Ob{Zsa8*Of8 at w@
zVH#_7+(99~JG-Tj3lz}D1NXf=yF4wkQF=VXb&MUfpw`|pd~+?ZqsgYmRcX69b?`BD
z53F>57L7G9j48LRFA&~}-CeeZE9i#`z+sJ7$ve+m>4 at k$vLqrzO<R4CQYSiMs4Lhl
z(-d;tqOU~mY at Jz=kDz9*SlR!2>$<z^pO15QY-ee#&-|_*635CK1D>RlEiMSEB?h)j
zIEE}oEk<ISmp)dsEeIoz;!c2cxg~RviZ2U at oyUy6{4Rlw$Ba&}vhg)WWiZ4|FCQ7M
zu7%%XhLbH-Ln%7)VBdIB18wA8p^1c(vN3<|!k<e?=ho1mi(4G6_Uo439Jq?(dX`|#
zMH|U9vD}G7`ooaDC(y6xwAjeOsE9K|O at mq(VT(!b5$o+(%gZX~BBrE3n(SVFRO~Po
z8jhW6dt*zt1nn<5kLp5#ESwu!2;c)nGIkjl_)W!$p5*g7F(Lw<dvJX1eK-CkUZeQa
zfXE`t$fMKc at G{b;->4ggxm6*I;-%uvt`ckZa27*R0bZLRXllrH4Nu~q&?*oKLZAq=
zE2zuVtn!5Jim?%<Il#1$qy*<*@Q^xx421+<f+R3&P6*aR)ns5q7KYUMa8tnwJ0p>-
zfjV1t{JJqe*oD9ot(JEdjtCI0OxZv>h~RtJ9j?uvXzGb05&9Xv*@fie5TZY%c1M-2
zPcfOJ{I#-YtCxma&7$LV6ME}ybgmWzls0T*Qz2T5c^rm;3 at jg?9_RD!;zN#>fsfT|
z9wjr<6shpZ$HD{iUYLekW(2l*PNJNg42^jo>zxlIoEAcy8N&9FLvCA>6O#)QllB1{
zb+hD8_*5xFp9>*AOHq0l3`bsgkq%!e$Vp&~%j-$_RX+eBB6Ei at Vs5x-op@&8RG)Nm
zz7}{u|LY%^seNk??@R at 3>IOq%(v!_FLAvjSX5|tgsjti{D4qc)*o_7wEMiu_FF=5{
zW`zn(b3idKM6~e@%e!H-d{B?sD7(`8s@}MG-fvUPnQ)km39X<u4&9<+o+)WaV;c3r
zSTM;IEPs3 at uk0{f1a8!Eg7r~BC}5~-Q3u=7($d6&w=E7<GD%t){glTMa$<s(Atl6!
z97^NWzUs@|RE0$I<e+x?wXDc1kV^VZh|gc|6Z3Uur-=Wq34b(sE}zYrsFfDQ?zfA+
zoXWKxuPkXPP8OU%hA+gGt%rdY%XtlXiJa|6n~E%IS6uYPWCK_ at R^9=~JwW~-Fx|9_
zJL3qKa5gCs5Q)0mW0sv&ky;8Q^I+(ZZ at W30bTiHv7!^zI*K+Mfz_~2EQ!TDMCp~x6
z!xw{h%2!_S`x`Qv8l55}Mf^v??Y-jQ_^2PFoKDZbuzC%RN1sHk*KAdKu&ARH4 at v>G
z!%kiO*1{I7H*fMc%63XYH!pq((GED^E0?@1PJL!<`IQ1}ufeG}!D_{fQOOn|Mtw5q
zXg|~a60st)_6nF#6gZw5coJdRK0D|Gd?B#x_Kg4Qi3MDC6~l>$lpz|<FFibq0n&LD
zVEeE%O<iPgCaP}Y55JTKrg?MrF>lH+JOOX0w|6P@$O$qc9HI{X${TJirzLs-UF0RO
zvS6%-CF&$F00-eL#rB!VzAphGe2F%OkI+b&uYZj(2!R5ODEb>=?FcwI36iQ at V_9X1
zVOG_RnW=0rMv^!ENlS}PHrxsr(r9j~&lDB+Fpu6b=RSI|>q~ITo*3 at EzccAg^yq5s
zF%j)^&kV`@Z~6#+oY*%!*0+dgsE)GwJ78rIW1neRaR!Wc#R`xCF|+mZsThmSGGtcd
zW5E=2pz~xR6G at K!bA%HF*aNoB^SwqbSDMH@<sTpThE<yArbP?A!66}<b_-cn#x6|P
z90RgJxf|udc!WNduZ_~(1x!RSe4$a}6762-(h)tZFByfaBe5|4QW84eLD>mKlfeQS
zzaJY<qUCPomH^7OVh0#5-sOy}a#Pl at RB~>a3xVO3J_#=0UUlE+Gr(2Y+5DW%#D^|^
zMkfVH(7n6+$WC}yvW*^k>o*xkTjA>e3 at 7o39$ERiTA`99w80UwrIPJu+z14gj~sJB
zCM%PA*3|QDpPBQ9>YCjl#97QL?_N*tDRLHmrBS9)bR>l199}d=t)J0c%I at E_RM_mG
znwi&Icc-%-%rJl?Ta=pY{NT(?N2*NmiMIQ11!todD!Llq-*0uK>t{QOS5jD<F2QfR
zuIP6W=8E$<f3Kfjg+2(Yxd`G1-GGH<0^9AKoH6C$=xJ$`QyPM}@-xlk2h&17LeR%F
zo?ek2WWoALVd at FY&5_s;c``W1{=v;tW2u_f;nFEh#Nn7nA*5akR}<Tc%ZGB_i>qmL
zPs9F+e!n!vusD*7sr$KknUUH25Z5xQp_eNhGMDgx$mI+>d`&N3jt)!>(CD)=X%H85
zz#63gH*-UU at B>UxaRm#9*+mL^+IGA at HV-bobMDU(IgX%n?coTd^&<i!ME?03Q_dg@
zYQT*@G9}#GMD(6hWf8s(xh(^U>0{>{$rBK0P(^5Jd>AigS|+3k4Sx9ca~bIv9CU~t
zj+VW>n>~Ia;`(SexwVL}w;dfU2g1sm$-`y{oXvLd)<BmiL0C004kDW-3tPq5pBBgQ
z-#Q;&Z2)?nv40PQ#21JO|Cix{tb)ITM3_e(;|o%+0a>9EJ?O+gsX}X2!`^A*F$Lbp
zGJbzN+)0I;_SC%bsjiRav#3k`9b2>I*dI1MRaPxoKqKOTd*4Ek at F=}(K^#Y?4-La4
zkMFe6>s_%H$z-Uu7JM#zX_OliCK76B=xnpn=K=693 at YWq=^0fd1-9yp;Ay70kn&22
z(FfSeS?Mb{k!2bY%04Qya24TP8%zI0{ns2LfY<JC&6(?GNIuKq&Ygh3Ps|+*MM{(|
zQhSI>Zgn4do}(j87e%7?Ik;TqoMYzmIS0YjkUn-ZW7+#J9N^zs{M1xX)?mB1FG?Wf
z=)6ylNJFY4-okRy_>;d?4p@<jh}yFx!l-+q+8CORrDexUYQ;+zq9^r|pbJ$=c&*+B
z^x4*a4Z`y}I(QxI91RK$alARHL3Inrq4jLZ_O~K5nwX;(o+6FwJ4>*n(Ylls!X1(Z
zRkWY1OcyCS1DI#N)@JTs^ff)5A-(?0$8MHEPsF-^H?%|%^s#;v(Lsc7gSI5i>%<$>
zq{21}^SzS!Phx+7$<0W3M6*~YZbY at i+*9Dio|XXEDFc*iEPJhCihMIKZ>~e=C=WL^
z&0nk;`7BX=<L+q7#Y{cm`|V1o$JGKe!pZ^Nlw9u2oc-iWEe}w&D-oPqF=zQay`F-E
zC1`ms^9$Rvkfy<PZWw39kWNjKp`5StN?Hsx8qp*+qfKJ^16-tTzm@|V{g at zHqstT%
z8vt>-z5kMPEQrhk#?Tm-Tpdo9%e}5)CDBcLeu2qVPNO_o5y>Z)eN##3iR)w%)uQMa
z<8*s*zOR`n&+Ljzo^yL`?ZsG2-8ok==?(%7cI`r}aZfUW0qHXwi{125uhAHbpo4b}
zjZBCbJ)^Ib=l{{zi*X0Bd1mklr%{!6 at ce-(%s_E2 at w4E{F&C4Eyi#=BuzB-t`^oC0
zVxo8Fvywa27H5SP5<wA2+eQi}mWe>6ocp4~Lw2)*cUpW{%HaP|5r0DCLn%6`#di{X
z+O9|-BfRk!v;xjI(x>FQF+7tBD%m3iX?%Q_37@?TdA}F9Bq`tdh0z>{3goI41*pie
z;3Rjx#wWY&@s at neD(f*XaDQX>E_{nUbd^F3B<OrMkegc_DfKRf;o$2Gkv<~ekacos
z(Mi8yhUr+XJM2ivz+Lu<lC$+lYucTQ7xLmP8ehR0mfjj7Qp-IQ9_6*YNFe)F^Hup^
zf5PZ2J)pCm%b at A>!<b1)+bcdNcXKBP0N$P@`{>agABV5<<5V<Z|8cnc2m$}hpttBy
zcmdiD%Q#uNqJDtwy|<a~oZ6pH0|saYUtM|oVRksOAWyM~bx!3=IOv+bDQO(uxhR=Y
zu-*oA<7)$~CspvE)3QmSZ3IwJ#t5X!lI_q)d;A1;52Xa_L&m`OS at 4P90UoA2afMRk
z3N^(vxDch#1ntPL>6a(>o}&#n;d+QX{U2jmaVi#LZ4kh8rnALETMXZ`fE!)Mwc8zw
z3zCJo<SPU#G6XL`DP!i%^;Rt;=_c>RTd8m~+ at wv?%jopjEZv$}{RYz}vrQ3Dh%S^V
zV~odq0p_re1mvi|g8f5#`#mhZ3y}DzgmG`YmT&f<yEtkLFoW=UOUhf4j?^!>6UWit
z<|}7 at L*JL!yK5yBZf|3qeUs{!V;lIy_7GrTzMzxp1ue%bH-{0p>OPNfYLtdp0f)hq
zVwrAfhSdF^^2ZPjFQkOfUX5k)Fm%tfDQHXv^wr;Brt!Y4K8LU1XLc8}V>IIZS7#bu
zY+qfaHmVku=@dOY_-jMhp-NLs#c>`sQXB;g6R=LjzdQI3QCJ`;nzH4V3??c3`#w!V
zI#ss*aeD4fPch3a@(+QJ=%o*M{fQj5f7yFvO{hbMR2Ebx49K7*PqSHAc9q(SYbVzT
zsSr+XIpo})k|C~~B}xLPSIW;>%x at T@hHwV)vCPfwZbKt)l8ZOI$lsri24z?}FsOI-
zD6I1oN}mG1r99xQ^R>qLdVV1DrybIQCsF-V7mLEXe1IvzJ{t5kry>Y$YVGl9c4c;e
z#Hu|)oTg%k(G)mt{g$N=pq5~Qa=GE|y>V&P<dLIJJs4s0vin#}>i0K9FuYQPOtvOE
zLA^EN2;5#&ntgrXU&i$Lbt_rd_E0dGQW%oH1PNKHFA~}nEU>+?Rnl&UOXsrk<}I1l
z(!Mc_qIuTkY3(}|WDnk`AApm*c94KwyPcz5%8LfF6qk=fmEv=1#BjEM`4u;Ouyfd7
zaVLkh<pylayI4NNB8;+oqS#{N<53O_!`3A at W<m6RBAFlyTn}GZaPFq3YaRKA!EoR!
zBEhDOql>&v+h{Y=<MA0RliAMr_>8gB&fA$EXdmzpEFV<wH=U^{@y at yRTj=W>GuF9E
zT2f`jVDVR`$6F>IQe5cX%WpFg04BdnPUpv9Lqs`qF at H2k#2f1;k(ZpR(_m0p5356+
z>QcH*E5C2|3u6L-kTyPg7czbF{YJFP8~H7JQU5<yi<QMrA7nk>B(aX=Q at 0*b2YH*6
z4HI+~ZmB&b;e4y;zffh03z0)y0>5|uKxoosEkQtaq3hVQ61R6YUANH4(oSv!aWlk!
z-KdM>vH*2RZgz}CKswYwvs%k=vXy&0ne}<kXQU~t_V<|hHZ=#rAaNQ#%xDJqY6vl=
zW|FTbQ>7;F%+MO%r*To)dg9BoN~wi at j>iC2#ULS*{;2>xK*GODG(wR~&o6EZk8%&7
z at vFL`uptg)JcJcN)}Fr83aAbvQF;bumaB~7K;r6^1SWQ&qLGdmcZEld8PKJeY36~;
zM2%fH4I}!Kkx9>XmFDaauV%uOu3nO{JA;k)64PxhuYp&KAkxb<J+^O$+d8`{8Gz<e
zAD%?#BkLDePo0)>?sYOgE9xl=t#~e6w}!AmZ2}xMJibhzP*nTcGwSigjDHLMwS9w-
z*P`$_>W{j-{VKG64e$D(cKvh37<-h5WD^K6Y4teP2 at vCD;1M6XHdcULEpID<>)p2r
zvv7epqg}X^h8fYN>Qdjk;&CgLHJX?@Jx0kk-AZa-dSoyGq|x2!yDjM_xJE!n2Sf%-
zl4h-F4;V`-(;k3Oqm at 30IT!eJU_?VxZm{1+vmG(Xhsh4MUx!u6c^7g@#8~BD?&=>g
zD>aCnP0|apTxN;a!XPZHRTW#}=GM+bbxXlk9q3k$Gg0HG1KYCwq>BmR&MY_^>7Nuw
z$M2N-DViP&)9~oZu$^n6w=o4Jvhk2SeB0b2hKJ0B_;Ou-`)duX60;)bVvnv=CODU(
z+qrpNIPn#3R;9;EhMC562kFe6c<-)N&>W20L3VdogNzCO=N_t6SF>pBqEXxOjwsH!
zK+d_|uk)g@(VAd$cxwV50jzWZcx>ZH<74R{Lt$Ar1G=nHAla{1#C}Z_Sr#-ss@#<(
zIKgrcz_}Fm!$Y`p at d>XN+!Fgdf2p>{Ww^V5b{hd<thYm_??0gS^5pczhAL7GtP)~3
z>J=EA-7N928I69hg2Y*aNby)#M^d=LKE-SW^&Kn3d4fo{VV}6xALdfVUD){CsFlV&
zR%J?ebzUcjeuRNTM23>(8q1|5SfLa)x!>_wzX%d|oz6H>?RXt{$M)Tj_XNV>I^!-2
zsjM{3W%`$|@T|x74G{kr5nzeXQq+FSNVda~5f<7Z-W$mgZ1c^{_O2nmjeBo2cibU#
zj05%m>d$zhZ&$-(2*muxcIo7T3b_)$&UCwqN|WI5j2AxJC<0f1o9pXI at t1tYCcZgR
zN50NVV4AAm0SL}ULd<;Q?F;Td&+f at ZYRn2+ejo&0scZ|KS$%zS5EDx_AJZt#Xq=1g
z%Lkr3jOD%!YQ4I1PLqwxPw(~Z)z;paoc5IP9 at yGri=1D(VsmZ4z&(gCH^c1}eray=
znAnA?HtaEP^^~Sx%f*W<7sCmbK(se;Y}!34s+i{T)_MI9QruXYCYv0By$c<G`FJ^p
z<-TA%tz4|^Un1cuK*hkrII?(t9e?y~&6H=cgAoncanqW0p0pnOchPV;-9T%pZS+pY
zMct<<e_I4a4DB7Xu9~~6QnHn1mh=c#HXCA-F8k<bKj?t5-<j%tlXP}86Byt%N_bl@
zY*F`DaMs1<jp9NSA4Ymsz at 5YG0NgatmGt#D16!tGsVMx{UGV-VS?is;cYhowz6qX9
zN<KJXhuCE7+!Lg#BnP|V*gJVtJjw5%e2e2e5 at me;K at l^pLBLCgcLY6ouYDTE-w%c1
zvc}L*S(&H&)OIQtLOZ3^2WM-VhF=9Ds|iY67JXfxqmq8VY*&LBXqT0rA9zo<^D0ea
z8p?58W<CA3opkJiDn{T|==g<h{+=gDsGjlwB}>Q#AK-#PZk#m>u-!0pctnS1m1NLi
z2-pWI6zG*n{8+>eo3ge0Ba&T?GxDh3Q^B+TPIHCbD%75S-<<|DIcsWVY~P<pGW>>6
z_OcymBF{7`43 at MO=8P&6zgXt8vQVS-K*Dr56gsHE>;Q(8rTrWFQi~acokM^H+B`Nk
zrqO}d_<(Y<U<xxv=)AVeR;`0C2=+)_kSi>QkHs(_JxUf98W`24la6%ui_oyMq-<3B
zcyJVYK;=^qpC!qTnu=yk5;lj$a5mbO+GZp8+xt86ky14`?8|2yOtNDd!tm2{omt!t
zVWoegMa})E9S at L7ywgm|Oc%=Q*EcC$VB(JSv0Z}I>@8E}V{0qNLe?$K%}~@-U3(=4
zH>wYVXf09QQsckUKgdJ9x4tJ=X>Wxggui8%?(t<qTnQ=`x&<EHLq2LYP@$bG6|O#`
z#QKH4f=}<ku5HoTnhGTM0n_Vk=z(<yKODuQfV9kib?g><!H&&K88UFctzVm-Lnc||
zyX|hm45*Fjg~iazGkN^LP at Z3t$L38D1>)Y9Amw<<d8XW=mnC!r2<0xuY^R<9K*OEL
zR8wZ?pXX}KP)$l~UF+*bsBi#97u63K4N_~5){TlnlfYPvcwN~NhuI(hsNw{=j_)wQ
zyW5ngy<2}bRf2VRRu`=gO_PIMm*2FD(<x2 at 8CmvT5V}qd at yzAa-Vb~$ZB6XFz$s8y
zd%a}b1N>gMVpsrk%TmjE1JJ{HGyInrHx9YykLa^KG?UCj4glZ>9ZSz_=$0(2o1)=F
z=&w)w^OezP_q4A_ZfypLUL|;YdBsybDo&$UmC={t1a=V%QTM at sJlKPbuNKLwhl;Ir
z&KHVVf5aXlq|fY${qyq9a6`Eftj=S!kEzN9J6yR^57b*L+~7{*i@&~kpQ`@N{rK(^
z+96^{c81^LZFk)vVq{;L;p5^&UJ*)ND9&FPH{q9`;jAef7=ybEV#n?m^@L)Xv1E3Z
z`T!@18Dlnq0E~~za!S!k?izJd7VK-=GOX*tZ at Wt9FRs<TiM=%Kh)m$?|I7l`n)LM8
zQ-BDs6WlC87=scAHzy9lMB_r~4StkeX%iyRlApCN(*WkmhS@!j9|o|x9>r%Cay7{d
zO`Z2hk6k4VH7cQW8x&7JU^x&wr&$T;nqM{wET!~IJoxEqY3+9bT9cNyZn_`Dseh-v
zd9`>(D__&SVl8qJn+oEV$S0{6tv9K4<605<DSi1dr7Wr9z~TIw5 at JUF_c|B+(aa4V
z73n1$RlJ08`;(ip6Zue>PxM%uFa<%L?4!cpl>bQpp}X~Xif@?h$MeV1jFDqyh<Ac$
zpRC5`0xR7ABzwTqo|9!^9pmM}#7B(;V|YL9Ks!?mD8n at v`x)DPnEy6QcK*`3nipBl
zvsfz`mq!pPq05 at vN|DfvhZ$%MiXEFN1-XTcf_?WJoFrZl3Jjjc422R>e%&Y!pZL2y
zVc$-ny^)B?j7PXN2oW7+X;fnEO2+Ew&Hn83?Fx#1*f!lv&5W%EeE*|{<g9j|e=jRu
z<mw>~eb%LL-JYZ)oqRaleriAPq*A^mTnoXyzfMN)QW$%sGgg_*y-x;K<8g&FN8?d8
zMfvp^&E2`A1wa8=DnMU-JBDs?c6^cjo|26rfSUaL8cw|}M?jUCnf~*{FIDLk<0PLE
z<ob&3Ui<^=6Vk;YYb!*qvERZoTIMA0lE0hI{S<y6o+Wh<sogl004F3(4bzQ_KWz`$
z62IPYN*h3S^)|5Vher>NhW?t28p&4ZrT)y}4m_}~*M1NTMXi!28r6I3WHu{~6T=-1
z5x|Qgz1ZCCq1jR8`L<$yjJ5hI|JFR}kUb0b=4}@Jf*5&Sh~pjo6R;02lIw|%|2a~p
z`*ZdNOcTI-EdH$6xIw$R$>ZJT<&rYfMZ@%@m^SIf_EVDo=g$00axf7wXLhBbSF4Ky
z?w>-m0X!1rIPxnE_)~+k#LEKBvTglHPK&_H%|X=fqAj{Ie)V=pjbxY0g~1j%16qEN
z3&#gI%`_0DzOQ&O{bKr*Vcq3t=7xe6*%ezwbX8+1LYa-htF5Z7RXj;xt~`|c?=?;e
za5iyF_kbpW_OcKai<_V1!Gy+4$Vi3Im`QJ`n)z2eBM!}yqW84fHNZ!wwfW^Oj4kf9
z=c<5U!T`4lrsnjKr}avF(0GDwJs$G7QNrnKen6V%t}$g&EFAm`gP>1L;~@`Bb}VJS
zIb)0d?<^Ct?!44sRSD`2Jre-<M1)0&ZOIC_jVu|vk&)@$(me>@E{E>OJX*o8X00`1
zrL|s%Wk6&J6iW-`TJyMv*B%_30p$n7P}vA{V^*j%ur#&X;sN^@eJ$m@|I-`&^N2#x
z_Zs9f>^Zuc at alS4Q!&A>0Q6=zSyHTMn_ at D-hQHQtIha>W*7e|khBsIRoN2yZ?kme0
zzKIBj!;7I#oONC(RPWz9)4hTfD>jUKtPcC9KRqwqJuR%$&lNCjuO0L;P81nEs*7d<
zT|6y)9&Ecr2F`qjC)p(Okt0#Pf@?B84`Y;qzWiIyQz<d at S7YPpYF-M+rPlMJ(x3s9
z6=LB_HBvkZdam9#f`G8}=rr05pE-id2L(Mx at 9Sa48Tw6)t4lYA0QIRdwTIz+yDqN&
z#4@`r1`D64dYj#`yo&)9bZIE_yD+H>Hu|G)$S)AwpI_>!*K(l`<f&6Y0 at V{PcUT11
z`N5W~ef)ptD31PYrf71`Mp0~Oc10OZAngpZ?y-3OWbEXSH9f%*)#bdo(kjtayQ at Mi
z+Kh&&rVpP>lSPx-{b^9Kn`&WJmb!uFWjTuc22w#1$cX+^!ZrgR+S$0rrJUfab4RGZ
zRsK;I%Qmv5kRVbM{p$b!fR_-HoZlTFKH(87ol%H{q%y|Su%!qE3T#&f=hc0npu9ov
zVMY}u`!bUvlae*}pKvMOtc at Qu$1}R9Q5d`eMV}-beL~d&_a4!4uCb#0P*QI-_I#8e
z$NS0xMR&X#0xR0{lqH%cQlprSklQOMUSXPg7Y&5;TCBt-pv4wij09$SXaQJE{IJxO
zQX(S-pSnh#jp0ElBwM?whtBS$sAuGuDgzy{O3o9&q-UW>P2l!`)LGI4ZegH0Z|AMr
z>NmKwlA}i_VHD<caRC>Q|F at A68W&%u$P+k_Zs9lEUNek#hrx9I(%^Wg^1tCryp`Tr
z=!dXAjYXz1i69FMZ=^_8xv at lf8AZ;MUM=2DQ4&Fo5%T;hGPk_NaRqP7r+|Igr0jk3
zQIXB!g1(dh*uoZ6^SlP?!~@Fs7ym_R`56v(_f5sUz*=M0Oe3_`EM8U9A}h4%-g4+K
zM?7VT{nVWlF5l9t8wqdA9CeM)a$Q*&=({bRKd=biY=<6^^~8)ZJV^v>`uv1AvU(sX
zuj*yAKfgqMgR at W|MDv*x4x+pncNj^5!Bx{{`1x$!hSXUg&mR`SL=ych866#aZ(JBM
z=E)^v3N28OK1u_mH_t#t8KVA9|KzjAUOyRch=qWUKoa*50j;Yy6$S9)Zo76OnSg;G
zJqT~p5R^(zq~i<KSW2vyOObjN34avDoNtW_o5P)t|L_sCgDJ3Cc*;%UT*KLVmx6Gt
zIYqbmoYA>`GD%>e9i|+AShT&@drm%(L!cg(B{#^gA~tRp)1v+XJ;+`1Y|%$*YT?*F
zFD%?aQh6Bi74Ti__cJmw*V=aK<vL;`<5#R1+95XQ5TZ;#weqt3Sf#K%^Sh<RVbG9>
z7p2yNWm(Q#hRULI%!e$^LCc|011Sy~OMgiAs38(SLDdG~jE5F~5>k`liF8Mdaj7J;
z!4tc;hQB!FRE{O at EU8Hdw1Oihp^6~7KYONz>kd3Wn$yAu7mqK$I&@4CmLD|shW+f+
zL8XvqDTrfCVsfAPG4Ol^_1}!!l+H*AZ5yHUgxX>#XD+)<hs7(b$^<7dKhyrZ`Q{mD
z at UC1&exJpz0vZCQ-x>UVxd?jTF1Sr9N`xWQMGymsUKhg+v_b~L46Tn5xDe)~Fw^NB
zQY)BHGkqm1H#l8abHkIYqVerj`0a{`C!j0FDaN=Bo+jtQOTsqX3I!qZxgfGmEXmBl
z<L~a3=93YC2G}Js2Sh$78l2j{9QsAuYZ{AmJIeC0>&|5BY{ihk_~K1 at OFb322vjX=
z&ccr2Z$soo8AIJEmU;nf^^<7pl0N8*Oj<W_eZDLy0eR6}Wn!@g#G8VC0RzhAOMBL`
zf?0#l;Y}h8BQpWiySbGS>B>{!2JiBep{vX}fYfQRkyQ`+><9H7#?C&Yldwzl!3%w3
z+IUSpJj&CT6+*f^&M>?A;CZH;lk0?1&DRTBeDp!S0{u9T+zwDp*qMxeyt+t(ZZb+z
z2|9ETF)h0U3C5xqj at eU5w0ndfI-P41DmulE?aXK8ICTNrrcv^xwK3Gh>yd8+e&yLO
zya6X>T at k%M9f~aaSj?Fl?17moPU|E6z0k1UlPdhCAR7CI`;ifQ;W^Fq$af~)bifw7
zEA$dwm!Y(_QD-xcd0<6Dx(yY6+c^~ufs`{22(Mnfj8<{6+<=L})gLik8T}tpGN;1w
zJZ)HF;F+>!(abZJ1^;v&CQa{OQ-WX~O_Af!@hn{bDgZufvxscePD`1$i}->j(LAGv
zO at 4TMzRp{din+19B2Mb6Sy9NuW-0D`5q00@)a`KT3T%86i|enr+Y|L^4Ce>Vqw#bY
zABgvd?6lfW!{bR2T^pwx&xVKvRHee7Bmr)^J~H?bU?r;F8>?DuoEDX?`^-7H_ULm(
zl76LQ=<r45K%GRIqIHgramK;wrOHf1c;NofC)m{W$q&@;u4{v9-Tz`ItLqaJ*`n(v
z`emQs{{0GwBhV9LB at _u1XhmG(9KB1cD(EOl{yqMW3L=A&9ch9P3&27aBOGpKxP#eu
zG)3A`%()h?I_yIKJ*uS)gR<a~!e%99(#u=Gm>rJjCo_(7oVUhFrYJ16ea;_z4?%;A
z%K#tbv_y{_DWQL*Mcfk%dgG;&Hz-r)fb8Z9yBy?Ae=f}tz)!re76?;GJidD%>Ao11
zt1LR`yp7-#d!fXic1!MVHs<WKp1$_!Qu$zjD)`wOFn$dj9xM=at>`X~Be2*?);P}q
zbp^=iwxq?NQpB?C))vHlTFw{9o$W#bnGkD!Gh+P-uPo_wfwsnitUA97G42j=PFK5u
z#yHauwJ@)!i#hnb=l}FRVj~+iyR6gN-sY2sTxEWWCMZ}H72=%53A5u~nOAJSjQR at 4
zUvW=Hq173rBxuc0eIyr6qFT{4-|%a|9}5b^T>1htXO+jx!_q_FHxvtgA14wcUYu6W
z6Ff-fX87f7N}r#)s$aAZ(N4jIy~SWc-L*7^5=MwA#QOclm;+&-c9~nKQCE|_=N>+L
zx$QJb?)E23=1FB$>=Gx-QHnDjTrS1XL2z+Wab<{usW3<u;MrY3AC6LjHE=8f+h+s6
zK>DxQ<1L~!cYW!y&%!Q8z#wRG5)7&~fu(XVkmMmKR_FTvlaU01Q3xwyp8IjORPo7s
zg=10{hp}P$ZN#rgWu*anu}n3kN7W&ylpu#V6LfKY^fzb&n+fAeenNZ3_i|7!IqzTh
zC>XLI|4%HeVR=yW_26}kCt>SP6imZOU#}8`wW0J}^kGccPa0O at eQ=Z#@x<WS_vyJz
z6M|#y4VcEeoi1)gT8i(e=bh?d*}z)eo`-}yf4C*Rmsv5EhjRy6u-yDJf;td%WK$+l
zR~+&nJo&BKTGqma32N9BKWd95ehWIa2PR38KMn8%TJco~0QNf1k?E~<bwrHJ%T!`0
z?Tn|!s!;K$m#zDC^%7rfD$Fg)sIzmAIOZ1!V&t+GRwDiK)lCJLkGQFSR>9yfjU>gO
zzf4H%ceR>B2M*(BS3M8Q=&?~8-C-$N9{sR8YjRom1-Mv11!&x!3G3;i<(!KzBKgJp
zMz5r^E*&3YDZ>*esBe>k5J)-)q<^B}mBjO|B{%OZxC;$9K*z(LObka?0)CSA3=Zd9
z4cf~!3~=%m(jsBa*5TIn*^k)4U}d!QqW at Cuo`Dw+N9a%^h#;>bEn4$?tHdK0@|M at J
z<O6}zsEvYfnC)TmZ?epwJUtGh1n|PS!&okEg&~k<R$!5P2Z3_&FHmIG_)<nqzndP0
zq+<l-SG#9BB90YeLv&|dux|=<@_OC9dAF*1aB-22_^^V6qz<Z}LYp$EZBuQ{3}FW5
zaAfxS)HljX?7Uk-HMB}*uJV~y2_ at G$*zK<puhi%c2Ys1WpE!zY?oi}fZDqb*YDh}T
zh;=Y|^FPnKh*?K`il?S*o#>bG3`JLee-27G`}+6}L at hbd%^%vz(ly9_q9O)M)b}eD
z8PP1u?#+R@`?6{Zde}6LZICA0OSFxCz9v2uNA+SZ at c06tM<?eLqWCAm)^~Pm^0ghi
zWihroG9k6*QXcIF!k at 3s<L_Q%=}5q}Y1|OirOl$d$;_!=iO-R#2URy-<(DV~NSx#{
z6&YnMFd*hn<CYh?jow`MS$=ml`!goi6VL$NO!=&kBV%c%KPi0lfOq<X-SO6|lQRz0
zP&_ZpF6ERdj`R at p%xqJRr6lL4jrLV_<~n4HCwlY0#4+>oD9lhLUl at yf?s@^jZeZ?V
zrj~xt)_W6;0+V-Xj)|Yaq=!G_LDGnpg5e6HK<6SgRP at jrL23;d82(Y_Jwr()HH)c?
zUtA#Me8iWupF+Drv+%b-Xl6sRLhc0UUBI&%2Z#=+3iCS_l5)M!*SFLg#o9w=(wd at 2
z2+s_0p$Zj=P&EA4*6pgIZx-{MQh at NCwFN@h6P3jUs<4)I9r^}>biPb<f+|9$*$Ci^
z{B)C~FRUO8-!{vX`0t)r>gN!ns4fb|IwY53KiBa%P?6ao2&CgsxTl_c4MXi%EvOQF
zxBI^LOgUd~)v3o{=D>S at SLHvfonbyo&#D{xm_ObzqX>SU+jgXAAvY3L5yC2#Wf{~k
zV^BcwcRu-ZuRz+8yYksyGsJ?3ixgT6S%A*XUHLOC!U_r6qNqXh`aA$#he=Y06k(rI
zb2$2_^!C>n28Le6x0e4Qu##1u19^Xe{H}p4g)q?1poRv at WC80Y92XSsqHBAN{y{pY
z35Q>f9>PdJlt_t*??6ZmK>9Mvqz+T{(!y=e0w;jj!FF;gr~T;%a5o;Zuw>_6EIzE6
zyPd;-j>RXb43n`e9VTfwPb;1OfH7Z{rhgwO%7i;;={jQC5U#76UGB8|3)tIUY}?>A
zhS=YDr6OGNDv`|l#fZ`h(a)2eJq3W at C>p{Lxzwm=nFQQ1pJ#L_{%;*QDk-`q4ov}o
zwjcTon$~{t-JN6#XkTJ&;SfsCy-^UiO^To}Y9$O+*5j0PjS?*1kN~9E;Y8Q`cB(^E
zcr7ZlWkELm-W?Sz at b<`B$K}%g0(7zde;kiG_=82N#z&Q=6Ae5%hP%69;Q4HK?Dr0!
z<sVPCRrveF?mgj{<&)hSwJ2VGClB0ZK&Dbde;hddsmdhtPn6ZDaC(9XfNDs5pAL1{
zfmD@=l~3!X2!Sh>o?uQdxpW`Yfv`<FsNx#W at MXfkyF>zL`001=E8a6KpZ;C3!wj!T
z=PRr8YG71xHZfjrsL(<&-}^_zOW_PmN-ma}D*%^7zU`4jRl$V<psg6p1jJLPH-=>E
zcfXZ%J9sTJ;`m~&3q;fjW}P|IR~iPTY5`?Y4>1_|Y^eATDxKu`4-?fao&JZ)oI+3Y
zgDx;MXl6*4TD`=${^Z)2kXs15wCMg=#2Td?;OdvS5HI#OxdW>nq|U-cFj4Oi!p%^2
zN=sUpZ4{%!tv1}ykwdml?~#)4gGSAIfIBy-)J9<<aE=>YeyD}W{wkOfI^tw;lt0%g
zrh)9GSt!Ru8>97<SN22M=6;jUyGFor2wdK369UmdVd#_^4Hz5TK7QIlS|T(JI*uh+
z;jVK+SSIBEVBJ$g?Gm`r8XvOnOx3Hl3+C;#1q>64;LDhiWUa94Sb9NW`y1zc@?o?w
zO(Iarefp-aVPr3Xn~vemuUzXy<owu0>!1h6<D;gKG9T%U_~uz<-BbHK3)C0dE}S-7
zW(m!BPJUqxh%#a59haqeq6CypWAEh=+>S_=c+UqSivbDPAM-bzvt#`f&8Et3;Q9iJ
z{pm)uW}A5~j;N}o+YG`*EY0{n3YHtCU at Ie%8Qa+pCZ>#$Op}E1=YbE at I`n5C-ky=t
z$W0c;^cEorc|@M<w;0;u*P{b;ACIOBNcX8^J|#{cY1z7AfK(^_<)|Qn4FFblC(m1y
zw17sOIhsWCSPun<fEx at nvaBDlX7jaZubA1-nZ?&J;C0<KryULQ>x$zg6C#AS0CMpI
z!3Xkv{9<U~o&NJXV;s at ScQ~*An9T?cStbjwrpibjZHOygQm)I3SoTxrP0q at Fik;TH
z7)1fEjlO*1vjo!GdOaP#^3ohB=+M#pnr4XAS!UaZGTSHkx3L<x$3ybd?>blJ0~`Bd
zpU;=<7$vGWkM=6FCH$2b8H&x-Eu~dAtKjKuyENtl5aWMHv&s9Eu<IWYU2tid#5!xL
z*nS?IM#HRN_bO_%JFH**kwqx?mxWAlP3>VZf;zG=R=IxIW`x4*n0JXW#ZkB!_=csb
zimkT5$!|lES$;{PzQzjfHSR*Q`b{5#xJf~m at 9V3h5mH?fjPTKU2loFopEIhxa-E5A
z;j+BAcpIF+!$Gq3jT8crj<x~5g#W4?t{=}fIZ0AV{u4hg-S!E+7{><>6Eh{^h+(kj
z+utC7-a%i_CU^`i(p_D}RZcmJ9=~nq7I#Zu>^{b{KDSi`?~nWCVpZlHr`g at y9l!X0
zbqY9Z1gQu`AYd$idz1!c%F<MjQ0nBmYw!^<f!T*GG~8>!D-e5b7+h|HNm>Q;brh|h
z&KNBm;t`3BDpiIgH)u-~(wDK6E|RlFeee$2!#y at cFdLs0e~?3*yO-yjb(SBhy;zl(
zIpaW at w>8nUTu5EJ4)f2Kf71{0=R6(aa0x149A~_*R-ALmga`lr5XdcXemwjx<dDiO
zz!nvxj;pK_E#R&vo-&O_i}hmH+y*&8$3a at zAom>!#t?G-yVXekERZR0?5~A>DIyw}
zgwE1eWBG!K7{EPQHT5AB*i9(pw#)`ROVSvxWu`G4YfqBe0z3XzZ^y)TekxnfpB+h-
z>_opXlu>K)R%uHW966_B3{t-_Hrm%!wy$4qtdbBA7f*Q~0a+$?!Sa9sek7P6w1}z+
zHPQcCm~8{<r$ld=`6liwV*1ilkS%@Wq>305+z`Jq9U;|&a_9&l^2|HEFztP1 at J`B{
z5)tQH at tMp0W_EN@FOj}_)ZF{=ZEr)n`VM{#&?<L$ZRz~pX4y^{eaji#FH)MJOvSTF
zY2Bo(YR7|O<?N1fnOj|JUvnM!qx_1+`5G3SM?o!o_2rFHzZxKT`v=l4 at pBpMr!x#Q
z`^sp<gN-x$6Y>zl0jVk{`?RnEA9)v7>+NyepgZX!>7zR;ft!fq0hnt|w!;$8gN0k?
zdZIg?On5$(?j4^tk9^87T(iWq&BW-7dL;+aiQ#TtEppZ#Emrw>^RYgnMqWmeczVh=
zb8ggRHF4cxJ`P>UZA4$!&bZ`205V)V8CB%}bb|Eu$n$XrbzQPUrFxOz?whuLtd<&F
zZcK|JZR1WiQy0Psf$9nwwTod;$eH8bUCR2VI#>IMQQvG1M2qO at u$*lh>O;GjH?;|s
z?!*%_^Y2jN<r0b=gQDizG=MW{>8Btn4qvMG)ITr7ppfOKZWmuwCNZz(03&-XBh1}8
zNrU=NVraTAa|{F|tgcDKjH=o#S`A~bYliPKRALxFG7oC26Xv74$9HE$Y%~ZZc2xJo
zCf(&yQjL`b-`8&)*dU`m<`PozW)6Z{-#&fH6;gGl at DC)Rg}4fipaQ?_5HC5a9+8Aj
z9|asUFp>N*q~`bX-}6ZTn9769PKy1_!PBaRPmi|-xcflrwrORR2<MY^t$lRsJ+BH#
zn2Wg)LH6aW?Lq|^z}{dR;1YXp<OrVYIIk$p7XQ%G<@fpnF!sbSF!(CE9sRL4dbM^m
zS;T1<&~UC&WfpweHhe5UosZRbT`ZL5Pd?&@c5CKI=6(8?BZ?TZ3a}W6J`dixa7h2S
z{P^j=DFqanCoK6L?y0SH+?`c-Bit8))@%h%gaivD^0a6{?;lrCpGItBFK1>&ezH}<
zgF0Y0r3b;D$NAk}b^h^`BK_!s=7;3dP at ABYYA_4-<eO8!u&w}OFDo)EdEVm*?}5R}
zcBoS>vC_d;8SQVYA2`#G%-nRWm{BckFPXj3CMZFt+|i`j0Cb%pGD+HH&>c5`n=D5Z
zEf*_DQJI6eD1Pw&-jszT76WVQFQ{Oo6VX~T?1<ZxKE<sLhbqunGWwx5y%mi#AX|>W
zuou1NKgcxXX4kOAE=$Jl<J$iX08B|6Wt&GF3E;ixFXLfjo)|u=4s)bKOSchaek_Tf
zYXmUqoI$va7D1l!&;ZWH5;M>)k#5gG*t|cq9~_G9izYiXkPn-laByOy=T;rIIKrai
zYy%PXB->SKxgCzmXf+S9BHRZryMK?cCBlgXv|1xH^ASy4nIBKWaHaKHbZQML?{Cid
zEzOr4G{#Bvl8Tk5f>kS_1DhF)26$)0%wrYpDWL=oM?(>Tus3IVHqYgosoPbJ_rz7X
z%?CUmiH!s{ZK2QKrvoL7j86Iu3H_UaoF_yClkK=bF3)Yr;NT7|NZbRS1v(HhCqy8f
zkQ9WSg2%z|KxR30T+s6A$`+T{72#D0RjbPrVhGz79|efynS>~}zRx%qNY13-kJ#V2
znm!S70K6J?q4X4SLp{U2he#Eteymc0+1TvmYxI1=jqoC`>TOSOiq)QH at A|#1QzBPC
z!;H*Ht1Y69L%Z!yYy3rRjhL8`CXwN!6Xro7)8{?-zmtr!rafyIImB%B-*Jb}TPR|{
zlLA3~$Z&LclVzqh+Y#e9!;m<cY9M<@Vs<pa%;uSD3+9e1noq;r(NC&Q$;ZJ<YU^Ml
zjFQB>#5(y8yu5t!4k3uW!@6uUVODxOiv%zBZe&r0Jjm(-4$jJQ(g2<;MRNtyO~3|}
zL<`@ul_^V*B;TeFGQ%3larT;;NuORIf}TGSY~XgwKfP+UG|rezbEo3;;gShKe^+-a
zFfxz+>HAZLLsIK47!DE{T+tlC6VC7A44u!;+97%{n~+300qtNN7)P1ceZ~YN7;ueT
zH#U|uJtSEjYfiLm#nb~L%N)no`ADig`e5B7Wc9Dh{6QoRdb_kTW=y)mZwA<%ssdba
zpA&4i;$-<ya(^nH&lFnOq|<rqgi(ce at YnY$C5FPDDA&oz_TN{eJKHtO$pe6nNYewG
zC!EVwnkv2+<Zf>iVe^5r+3GB3E~bxwzT$i1mjRra*oR<uc8Ca0v46f=dG7U55jE|~
ze6?=4x`p%6xKc;U*$M6`*j(~f{~{SO8~QqpOPH&j6C1HL|D!vqD&vFnjpy)zBDh6l
zIoM|f1zIh3y3>mzv1Jz=l~Ov}LVeayi5m`QI&e_<r0;2O26V(9n~6dgI79P-vk%ng
zn|YG at 98Ki)BObxz!<&+hDrXWTpzuC3@>RZkfHm4dr!CUiF4Lhguw+--DhoiY8$FyK
ztK8<!3MuY7yZSZ16Kh-R$^bVjV9<<qt_I%uRP%`^?+KgD$^vk7C!a#vi^gZ-!Xi7N
zrJDc5{lR!@#`~uLdb1DjdD08%g at -be5Xg;o=RIr7cOL~_P{TdFou-gth~UR`$%MPC
ztO#L#fEiRNE#aYf^M{-ACk@{*#+^|1>YBvP^S1s|3>6Oy<zKzNRFhkw0)E|`mN?J?
zqz at 8(>wl7RDGArEW;}IjwXGX!Cw&_n;VA}%JKuLM^dD={P`3j2dDVlJ(HF at Z>~e&7
z`q@|8?px(!)sPlbvUy}}-^+1&Et57I{Gd=kxCVZW$~}5#4}CZoLS$F{x|<hc;9#L|
z({<^m#1k at _Zmr2fkR*3?`1#{ASvu8ym}=8sU-CRZ++t#2*E$UqC(KKq*_4<F`*`|*
zj_({(egGkuUXiK#+5T65v38|tg2o!l^NFc~`Zs_IwVr%o<Vmx*s?_ja7ZltAop*a_
zL<DqG7;+=n;x0hd_{Byh$3^C59K<0D3l2Skn}d6Vx4!f<TC6Iht;1z5<GG_+LNGjE
zx#)hSOU3<}xgN>hlh=)$(t#6g`$=N&=|_!T&2;zL{S-66rjoO4Jvnu1MEjoOAIv`A
zX;1;vJ$&E$2)>BNX;*!M*45CQNm~+jt*C_uW9Ea{!=nl9^Hf+{>dP?V8l<#zJ2}-W
zn_AAA^DofN`){_xBxnJu9 at fM)pwuxf-ho=4Umj-%&ETQC_9DJ4%U($UEHaL1K2~3!
z9lWbsHrJ*CPvD64H1{SYk)!nI$W2o^)_xc#e$J#dA-UD~Z4?T at 7!|wbuR(HHDVQu6
zOpDs5o~c-Fvy}M;6WDEWaFS_*@U`G6zB)0kZ2tKuNC(yrI++twAsddg2YY*T^Ou~P
z8oaM+vsoV(I>%7hY=gU<wULLDB(*ksF=F!LB%sn<fgzpLhVPC$AyAO(Y4d1|r&W70
zQc%?Y{ziQ{*JZRm>0kD&7a+heMIgL+S!pLtLKDE<@(nP#jCaWtVDz(|QEnDYh~c%T
z*n<HU8iaOf5uJAmdq7sU$hB-0zrE>4e9Y|c5P3+%^P&;W7HcTBiPhm(Lj at nKHvW$D
zB3B~@DpwO75Y}hx9scQGbIc;``zJY1gSBx!sR=Dajajj3QbN4&no~8LZFDlGkgPd`
zaGgdEo0Yv}I*tmmsh4_eS0^}$b2J=W-NC}oXP``%E%>7|*eHniYLGE5Kbj<6?OrXj
z?gF^je6*k{jdVH#R_CkFTkTvzBG1dH{@0Pl+4NG1*7}|U;CYq%mFM*OX`)O`0H?5y
zkjF?c_}pb`8?{JOMyx!QL%}k?Qq`e{q(NC1FjH$Qmw<<?{T?yAyYj>L`pElG=0<q%
z+K?BuAJvHPr4C>t6eKwA0aPrqMydn4GU-eOt2i~p{$*Rh-ijuciJ^H{ef4i1Gz&J8
ziqR?>m0*Pth&+oxLx9L-WE7z0vA=&@$WG9e%Y18mfCOsRNBzbC!#9C-cqxU<-^H*!
zHhsWR at s@_xeXst<y4!%;m-J%h2mEKmexKeyd20D|ER;Y-6Zf{$HJSN$+d+XF11`v_
zYicxSdp$z}_x5C at 2JQEdrZ<e9hH~MJtJ$QZ+F#vMDa)^M2Euqd&N7Yc%=V}}z$;vV
z_n9m8>c+Q_TM^vu@;8g0frx~Ceh~jX;W3pC6Rk(d!z_+Ej|AA4b?S1uh;Me%w{OfE
z)jz*}u?)eioJfo(f*HeQy~%<u at 4az#mLSrJD`6LZ%GukSrrhq^5PseUkgF{&Wy1e)
z94aRW5Kg`0HWS`FeNG8lG^h_VS9(!hk-}6jNQK9fGsd&lI;{nJ`yaeJ7}El8jH?r&
zWh<9 at t!e*o at a&0SaI`%jo!+PL4D$>Mv)XY64jHTR-`1LcRYB1soLzqMst)AH at iu6H
zlAiY-xzivQ$9`q6scL#LF2`iFxWjk_0M%V_Cybb7?UiB<xNxd|8aoeP(K+d{Fj;T(
z(OCwbaUeetFC9!5eI<mJ6^;td_63quK5~VBZ3MfZNAMn#59d>R at ZcR+?;O?9g$&jl
zo2Fk3T|+hgc<q$sTU2~@?FY=h6bqfe*c)-=0H_gd7%hAzp)cEa;tnbn{l`@CCnKq9
zFsTjF++wKt?;Lw=x at rB{+S`QqSLR(mAS at l5MNI`>M at JnILJ=skJg1zD)$&rvi&NT7
zUNVVP(1$lCP%Bb=0I{qT&q2uxYzfc^pS+&?keg3w7iZOcPD}V{^K4F+TA(y9!6&X%
z8(Gd6=4S<dzO~J473V)Ww at nzG88{{`Z7<B-W)$mM-cI#kt?@KH6he+i+DGDs-a;-=
zn5ki+%zqivCZTNtEEFvV71}PJ7eFsqU|)9e>|m7J%CGTS0+qltj0OhV`81dD{0Wow
z<=nm1ssh^C6FVkrl<71`vd4Q*+;}=-uLP4&&XmsE>nUJ(OPIjDd_RV~{zjjHZxh)T
zq}$P-K^2vr-nx@)YqII4Z at awST^$@rC#(an3@!};+&vQSJL^1a)h`u5BE!uD-GP<U
zqgQi|5rPT7 at -xqnC;Xbu&tDvn`GekYx88w#T#tS at 9GxQb_C$sxQgqBZDjjg<{2|>i
zYM at gY;!<DhjRElFMJ<Ratlq*V2EyC&PefqUd|kfkW at Oz6*MJ?s30%QqHXcXUOsl3M
z;Pn~extxf-G%CxMv;ot^7zvTWPg9yM?4LL+sAjv=BU_pYOiUOGLp5mr=KdYXYI9&6
zvg{$e!jo7)rV`phclH at l&5+c}fX6+5SOxXv-i6a=8g7TVA3umW&7Ez`eUCp^qvA=<
z)C<zdSELThX%Oq-D-jxuIuiyOIB_fOqEB%Mmbe8J%w)A{Z}<!u!&d-ipcMt1VWGxx
zm+MhSVhCte3QFNRI#b4fVg at Qf(P%hw*RyL7Mleo?_+7b<qXjgyRtT}_RH3Tos>)-5
z=fZ5Wme8&u6ySrMmimSRv~J>`9`xRrXZ{LKo!iJKk%>sgA}J`l;y13U%zhoC1sq**
z1l=ar>m?H!Zb*ZEa}YBy-<WqE5^cmzx=X+ZFg=wky3?y-4mV{G3BDOyLD^9aBSUHI
zm~wL$DiMF^;NA1k4+xX??QqLp-?>4 at mS7#8Ek;WSA0Wwp?W4ms=(M<{S(#hf*S6jF
zFB5fu8Wm$+t!{Tof9AvB!@_eWkLi*@&I5v{J_zUrc;Q8NpcR}0&2Gq?tcCm(pbWgk
zk~?@yOQXBzHJuJED2Tr{q*naSz{Q)fj9-hUgFTb6=E-B?E0Ns4r(S(rg|_7E*txD|
z@&&@^dYT~WlB4<j563LoMKMl>pcfd(V6#uA?~p;|^_Iq#Qb;Oy6=|qnF$Vi^Mr~^{
z{~#3 at --=<XWFpD=8#;dZIJ*4(@nbR at Itj%ld8TfMqd<$VW^DBAp#&sU(|p6&Rb-cw
z!OyQwitKSokG9O$wVrAnTOgSI5Ns{pjt>}9v1zhTnp!PXl8HrbRE|$(SErou6j6aj
zx-qSJ?jSOG)1+Z|iOTxY{5m~Gre{<Bu?{od5x+;gX3YB$H!%F<2 at Cuj)NEJv?iFNw
zmYKlAP*&&O|9jUepv at -S0M8@ncVsh&dJO`{pVFs<@^?z{y+4Cg+kvXCRNfj<z-OwQ
zN*p2PfW4!- at Mxl0WfGoY;zIoB8TM at +i6!QQSSSz{?7))<G0S$0eL1u6UgnOH#H5TM
zPk1cDR*U}LNo;?J^cmWCQR!4gB<1N=i7my6VKv#^fFYq#BQd|WKYf#8J#W~AyqTX0
zwt_LHPiJ;ELgpi1PX^lxp5S4M*wbVLiWt#oT>WDl^1#4BIpsTM^pdxOcGB}>4>y|$
z=x_xNK|pMhC8KvJ0a?1 at gx<}Pl}=FJlq04iHfK~(o21=^3wl9A7SWB42qe3q9T8bE
zThbf;g>PU17(Yn9y9sf&bMh~luAxA(Scl!_h;p$|jj^;YbIU3s!EO~;r(bNuR;m9{
z*3jLaAx#;4M4S86(dK~@E(dg{qOlw|MV?RUD!3LW?~3-&h_2bT(9S(N+^*k?=5#f6
z9m3I~(HKX<l}?x|mHM^}Hnuf09G5a*8EGYaUXDS0;I>eS5CIICnoO!aLul%I4~1BS
znPrF2$4K|0pXiU=o1ws}tci&Q7hX(>&JFY$&z6UCk%=UV-T`ZK#e)=~;m;V`C)KQc
z_0-a#-Ns2YJYLHF0zAy>Jnn+v$6KmhpL&v(Su3W8Of{pr&bsAKgt#qA66rE&g3uJ1
zm=Ph+kE!GxC&9D7gib at eZ};9CpaQ&qaqQZi=nzh|%919kFg$t(-2hf;=?K>HA+T==
zo at 9X%<`jv_QV(i|GL4HkJ)+7u6pNkvPBH$^8d=P-HzGn4Ks{#@Y at D)T7Z)N=`6 at 0z
zBYVNB<SZJ`An~)zx>6jc&WFrjG41_6wM6PH<!L~O#d(FUB1SltmwqR^xcv7OgCmA_
z=AfgKfW(}wx^K<0cYZf1<Yb#6d>imw0|@xTMRckS56-|<zs~?Na5C0o6V0n022TT8
zoE&~~m!d}Ru01|Wm901?wF;pe0Y#_euXvvDPcD_}yOUn2Mhn~u4 at IGqWDhz+@ogk3
zi3MYUS|&uei(>nGIn6Rm+^V*#-7N2Yu;XNM at 10ArA4v1)TU!5HkprN>7{Z~NtESN=
zk_sWI>3Q33MYPUhR!<A8i<}jFBz`YP`ZRAt0|+xl=u+A}gbBHo+Q-Pc9<Lir%TqCl
ztE%dpp3p{A2wIxp0XMmPM8mC@`bbJ(rr8oRzj}3Yv;?p1^K`C1E9u6Ygsb(Sw&*y7
z0SRn$RxAkcQo4cHj7G(9th_s3RHb6!E>&3C5(uiC46IDQ3LEh6xYo8hL0`(=7)u=N
zY=565E#9$mnTY)58#(7bXIB3$GTlgTsDM#DF at AzQGrzia6*bd2CF=BVDhzCGeFl<T
zbisKx at Abl_Q5g*-qUmiOe|5FVeqtp3mYZrL at Q0bf6AdSF2fRz22th24{eWVua%I6M
zK`O0dAG~<LE*Dz2D{+&-8Ez1?I&|Td8Pt}NK4p97$OS2>q~n7rofssKi5N>5KN=2w
zfj{PFgui&X!Nd>NrMMj!feSrPuF4(gcjy224my~V>h3uH$Y`VRFVCs*e3QfH!^+ud
zo0fR6jZ7_sS*wXsOxR;&sxRLQ9~h4Kx*6VGU+)0|{eNbk4}CR>-BaNTKRkCms7{qH
zyw-6k&eL#J@>gie$66M^e&;gI7mHL8Ws|bgQ-jPrczAp6bmwhi9y<zjQ=#zoVR+70
zQY2Qj(y3emTYNyrMgAEBzLqSQUz4Xqbko~{ZzjNd;F!R90>^Y1n{SeAU=;D~|IaxY
z at 5E4GJ5toHO$SS#E4rQleyEc6qg1T&TQH?DbQL+vKN_Qxa|Vlm2Mxd{rvDWo>O}x^
zA7G?t!%h%WBwxtOHa7Mc;m|pwmH)P}Qy!7jFuYtn(FabczulAK5X?o?D5Kfy4DqPQ
zo at F138~?=E^{0XCZG=Z%l9G%sAr(>h*DztQbQbM7fVi^uuc6*Urzn$c7SqMJyG~Gi
zn<LnF%iruPX)}q$xdE!C;`#24Skk0`wv0uZbRaF+<^VUV(gSF6ye4ZlRnkt`^B6iP
zJ)J6z5v=AJ6b-W5LB=lPcn|&qZlSJi%0d<K&}rqt%a;7X1Z9-WESY96_9fe^BSC5(
zpHIG^b&AQNW3Nb;P<G0eNil!KxvB$_>}}njm|O-bs5fk?GZKkpM%#W-`<rTAXdWoJ
zt2Pn=?Q;+#69$aDIf at tfz%>IHRV4+jhDQ9R(8Xr{t}CQd)MGQPNuTcwx9QrGLQChm
zbs at iB4B(E`rQ5~21HNLpSCIbQt;;dwwNibQJZsqB6ynGNwWZt)Rz;^|0+z;yb}*x}
z8RYDZsUxfMv%|jWi#yX;)xredL1We!XL99;#%lem8!*^i;ga at reHLTIl!tO&yK;PC
zJF-*jr<zyr+z7ivH}vmt+SnvAR$qKucZEU!z>m(3-~OU^i?#8AiwB%-vg)wpFgqrm
zA|}ZqJZL?|v&7 at YTyf}2e!@2DEpfBoOH`_u9bgMA3A1E<Dr;~6e5ElN%68~5wa8WP
zOsA at t7$-+_r3>f+t7INz@=*$O5+)jzKCAS+y?cJGsxpP8LiEh?(LjF4WpDF<G0k;3
zQda%CU6r{tS$k>1|7}+#KZe}nO at tZ=9*|cmo;9BFui6HK__!F6r(G1L+JMmKaVF|3
z$hE^$JTv=Ja6hY9!#^53-<ZlMF@*_1bRM!B9Y=(r-VtU%eIpv${z7q6ewP}TJjFO5
zgBe+B0{^P at Osxzj$l}eK8C3DP;ZS&1d-vlM at d>NHWDhAJ+Gk=?fow;?B at eh13Q@Q0
z*+Q_76g|6d21_)i4_nDLJ2zs5ahF^}kmEWkT12t(`}B8DKI*3=&XWdwhzt}AT{f+b
zpQggS`3jVN@#2cA6c^fjMWbo>I&Sn6y+|o+BpW|Z%XU>%mV`L&`H%%~^2#%$u11LD
z_sLpFzBG}%u%~52ZKr(@*ioZHF&uXD=xS37TKzF#=+;MhJOnc%$kClr6&1ZEdH471
zgOR|*tqb}RUKRMuG8)|5k$~?Tf!gjJw+3>RM#%ig8^FF!XwRXWHVfOB4K_GwW6$~j
zc7`5^`=w80)BfAEVnloE*f;@zQ)+4?;e`a}5@%!=WYJLI0?+G6)RE}0?g~Q8JT1)?
zj{GG4CFs)NieORNu*sqD612TS|CS_S$do4<WnFq`n}#VeCmaozSBOcrWxexlbKCI_
zXYk3By^IiIz)=%b2r~)a at 5=sNxH;f4S@*T#rU~Ih*@8ftd!gCX0){3vxt&<Fluq0t
zQhN(8J*7S4;f_lrwq1++0ypPa;=`8+Yjo;1SEMQ>A^kG*e<87l*C0^fa`rZ}6f%rx
zWUE6UZBktcS8ilbGO|UT=oO=rVYUECM$e at fIeD20x1PZ0n4|-DWK=I3 at npN_^-2$y
zyzvah8FNQY3uEq}d<&u9+(XtoZtV-f80;Cd;B=8k_3q-irnyG!AOu$+kVA7{NdEO4
zxyTgG7vM+lxDaKho!ovfA at 9mv;LxL3a7>^qN!gfNaYQoz3h>TvOA)E}%;v!yxF=vl
zJsGR)Hv!tqzK0?u`er`$!M`6OchBY73}~4WgDOQ3+S;|nE*lXNOIuIxxPR{+1zk%F
zfx{nI--p;kERgwb$ZzU9HGESQ^h*S|I#FQk#p at gvGW#JwH_hlCGZud7o`LK-Vp1kh
zUc>yw7WH3Ta;wWQkn~9D;6@|7 at 7|1ZZ^+MUY_Ky80qzn^RV8SYD at bsGI%_#op at -HI
z&n0S8oVPWwK<9{vI5&r?S=x)#HVMqZ4`XII`TA{@6J`h@^J%l&q>;*{Mi^x;%kT$W
z=*Y;(D990RL~eA5>Z=9CT914i25a%%$_gJIZe}=x5q-Bx0?wLZejv at U+aMh)9xM7@
z;nHe7ByEZqkQ``!+lIc;>;7v}t)5Gb;0{FL7J-1Dz<e3|ui%0s(S7(VqN*M+n~dih
zty(-fWJTQI_?B5S2T>3*GThq at cv<k(?MlWZd)rd-cIY#lUH~*hFI{jDgRVg?u*C4o
z3Xl2??$_O)RQ-0GuoyG+P!kos>0=w|UaT+2grW7jXY0f#vZ6+0I>uW22=}N*?a2CY
zyByZjV06N+#&d^oU$slHy5Vdxx#At4ZLRT-z1GkyzlVls3AfvkBl|z*WoFlQ%o-IL
zmdi`DU+jc`Q#+v99yEk(HxZS!GBLv+-vrV3uLVT;?SI at -nBME{wh*e!h4K38`6+j|
zKf!dTb0eAhz|b`iEuW5iF>~kXh?+>hf7O!H6UVJIbD*uY{Lod09(PaLSz@;doe&LD
zsEx%TD at 9R(5ORLyk{;WTKL&9slp7HX%3%l&FzUh{XR_eli&Gy9%6qvy%9!Y}C`*A}
zp-Vl%_A3WWvlFDh#a@<+A%_W=Oi))@SY5_|MaF||rQkA4F#Q&V$#VX;F5NuPVY$We
z2htnhIrZW{hnbRS%Qk7r(Y84=u}Iu%IY`1dtli!EFaTF?#%lU2PKchQn4#D)8sC`G
z*h5eooZ-<kydiBBQQX|Wsp|?S_8qmo*=G@|X)5}`A8EIK&hmzopGW}P_u_n`P+NJy
zWa&E)`VSMPh`{_$hj)ZKy0~IErh+=J^quN(?c2D`IH`xWgu7>ddUIKh7ZL=?-Tv+_
z at UQ)0CojRExo$h?3DqWt(jeAegeA>G;_(l!SPRiTkx-FkH at LLxF6Atx(pw}tB0tZ_
zhMGCwT5&{MkU3@&TPI(Tfo}2pn7flL4N9s?m!*rhQjj4*c2U;$t3~md1ZDmIg>9xJ
zjd2%e*wN^vS4$H$e?H2ZNZtPDS0ZmJaNzX2;_w=#;w|P{F><CnG+qSem7)yO(^mQ+
z05d?$zj*_%qcdjLjx|}h&c8||U?HDbqCe|#V>&W=J;RZU#_c5nqlbdkS)rgFqm!d$
z?w~rUK$|J~i#S|zU~dmvuA*Bo{b*=SRHAk at ZT0J)$e`5^w(VU0ZU0Bc2<488C|8IV
z|1$pgvgK^f)%YT1 at G1Dps>Zn?oENxHGTwtoKp}W*XHAm>XeYdw<A0 at K-8nw&^yQni
z6qFfGX+u5O6jPyU>OH!h`{g11OiMZvBCe%{jm^aT$`r at v9<}t{*)5nwL%<%8dw7L@
ze;W%N;fBjN<@i%Pl`>#4LlwAJ?BSkY#`DeKBXBBy#A+M&OUQ(_pgXoJTb7?yLd(!(
z21Ea*c8%yWB0=!PO!JO38(2!7gfVlzyqg4$Fby!R=gN!I*Y`^^g<&k|D&+#lb{|`j
zq$&Nor~3!r9 at Fwo1k%fj`QwlYL`i1E`V0b~g$fSVWc?Rfi7CrBbXa<O0r`%%D6}t`
zhNkW8oK5RM61n4*N#;&mYI*MXWMwCE$qs9T%*^@E|7Qx*twBwVLKC5QpE>V2l!_uh
zF{mB{)g{>=?jGaemnLa)R?lvO-_!=L<jN?L8D7-`3Y0e$EKR1i#U*%bmK^8E^Fd&0
z3rZoNAUWxnjYD-ViD2nKok5uR6g%Lx01|;qTmb{Bue0-T;>Tihqt4dson4`|zBaCR
zpxPGlpmlNk_HIH>2M^tx>#+lrJw0n_P!V1BwWhgBE7#U`ZY*=0jWZ<Y(gN!Ea*L}+
zf;V^OPEcmMD<(bNxzwgF2iVp#<x{v`p2PMn^%gZM&3Ji+LZ}3ubekciC*c7X*ZgO|
zq#AcLWpl<#>ffn7tRj%;>!IGnVo<$}?p7(40kOd+!JGKx&$mUv-{yfh-Q2yXP^%5b
z3SFi@!qi at -SM}`}!g2g<2nI%d7F-$_@*(<weVi at aR)Lu1_A7en)ny!G(MAiB5@{LW
zgVwY2L6+T}=KxI4Fs>W=q%dM)oc23G5atNh1&yX;R<kb+;?i_u&nU+7`6S1mr$DLI
z;n>uxKNfwOPWL67OG=fw+3ciOhImSn-$y}ublV|aUG7#6mk*j^L5iSGs6 at f8g^DWO
z70%}TBF%QPl7v!kVB1 at gr3EIJrU?rtNo>|k1-k`sBtW|(82?^)qvVLj{8AGUWqbnL
z(cs7`wRR)Nq~#>WL?NXF?6IBB(E%ZSM6!~MewP3pd3!!$iUCD19Dj`TmR+2kEiE{f
zfG7yxH6+h#+T9ObHUX1dh#q{xsOAG^^ZJ0kHAVoO&7 at h-f4LP1oXg1`dzUH{rcP96
z?_Nr%Q#uEbIoP9HCipwPE8fgiB at DYq%TdcVmZa;F^bX&c<?ks at yM{7AljoSmuoczu
z1SV*%Ud at H^1OCaGJ$8zF+)RkIR{RUE>MEolXooA$Fhv~0N7()pS^@#^y#1(xrWiI|
zWubvqDp<!3^kiHDu+G-oC9juC!biZA%sPPEBuUSxtrzTnP});188|X_eBTDXgf8tH
zs+Qz|Alpkpg2zPqnkSVp@&{tMN4Q4X9$sTeL_1v%YtpNR-p+M>r0eEzQcS0-Zx!6I
zxlL@*g2&GgLdDE(Wa7s3B)g0>MYOzj`|M^nFtvS2=33}$D2=vC5mrZ_wBAZhlBst_
zW!!`1-by(zVsZ`obXW+|^I2RTcP|9rZp>0<Q1%+;tk1CvUS1D1t5^P-QC&$*?Ie|6
z7um at WO;XYvho@;2TkerbeVOUr^<D|wJ6b?udWP=QS!n=fmod=5-C*ne)R~N)zzjc_
zsjaR-!ysQ59z?)Zk0+3fq9#7flz9|YM{l|_&PhAzbPoEq|6E*D%jBrmnOQ=BUN4=u
zz+6vS<eb#wKYD~G9dje&`KCe7^tSGJ+TmHum&PdkG1d*z4M~KJfWe?xP%FnoyE41x
z|LShcGTn4GwFDg=i|~agj=@R&pjn42NE$W at P(G5;n)FIac^XSDvd*XDb&z!={R>pj
z$v6Ee2Dv2ggD$poDq389y$F&iEpD0>?-;-Vr)68M*R~dseU<N9PIrZcTyqCV!c#@D
zxr=sT#z#aqQ~T7>!<&w%#vdAq<}>j{i+ja*w?nOo at u_!5yXYwzY~m^v($Z-?$@~yr
z0QnG0(S~o%Cr`(dN4|6u(r!(0T!tk-r02zyvC!gov2c$hCq?9%$fUQx#G!|Q!6D*E
zoJKl(noB at B*iZ*W<~>%)=u)vh*@Ubxv=x;~GNi_S+Yj$)B2%qVEgN<wm$h*AanR%Y
z@^EE0r2rapWimn{&~p3tFzQ!J(s?Hejq@}m=C{#IEQk3NqP#pQkQ6}rDI0b7LXAei
zp%voNF>id1!~8s8e at i)P?oSi(I=W1a%R0J$ys9C~e<<Q_-MO;SCQS#;QzVj^B|Wn8
ztM{kU-Dpm2Ln;}21~A1jP>`Ml(ri^?+J-?zuEY1I+VkBc^fW_U{S;QuvP%5pVpQ;B
zRvjI1S0~G)Z>lsmR41*4SNMCtGWcD(d&Uzq;Y^E2KJkaU?TOk)sSjKV- at 3^J9itED
z&tTF%7Zu7fLY-nps>O{;EgIR*oKr_90sHx?t0X>0<E-1PZPQ9$jd%@LOHY1;seLuo
z`O at -x58de7wA_Cw715S#9a>Gl9j-}c?=g-HH!m_aC>`kia&ytAW=Sf?wCLg%%U~TQ
zuStx9i3z??ZwlSIU*hA4FpLef*9=xre!W|G)Hwk_kbRb;Eu7*io0}u8Ov=^aD6Y at r
z?gdZ%{>N-Y{V-ooiR(snrQXF2VYrbQV=|u|VOouW>#AG6zKUOD%2UMWLP at c#PBm;C
z(PI95F$lIIU+-`xv+?PdSy6mRU3KSFc67E;OQr at hS)lKF!TgX{!!T__lKh6neR+p5
zQU{Ygada8IDKH9Z+obuwJ_Oa6i)ri5#d~L_jFVsPj|Q}(QhJNWr;jBJ%qWXXekdJJ
z9S96WCtP=uQ8j^`9;pVw*VL8qmC-wm*-|;%);34$J3o-z<oMTMm+a4`Z?Jcebzh{e
zXb?<YoRF_w8gU|mbIRdEUSu~upf-2NO;O8Zeieu=$f}4bRnBjLi4I>D!ki}Q^8JgS
z(a?U~Jsa$gL+JG5cBO9~RX6U at 6hAPo=*1R%n7Z~}<1h8e??6m7neaP|kCqe4C*2$>
z4&^YF%%6HKn|w=#6y9>UC9&zZt~U{O13IeB&VKzN{gV6)U}Q>8@`gLL4kwCe`a*-A
zSh4>Zg?TpPkB>WM7bWnOdsTL)z8;OanLCXq0xjtR;jvfvn3k1MDRZ5u`tlX?qN`X2
z|24NHu_9*NVk&~W>R*vyVJAqRpePA+ at v4_=zwtAmt;tYMugjCG31mDV*+u$+8+1ES
zL%2k6JCT6WT1Vz2j}h{x4`1<&(t!DsVr`P<Q??vX<uT|W+h^Q_zpAM^RUv?2P%iOK
zj*EF^-UNEc%s;<!Y4^SMEczPD=^FnmL}b&BaVFig7VS(X(fWZ6#b4%bh-8sQyZI(7
zZQ6Fn$pf;j#pu;A;$=vzBa2DrM^-UNd5B_ at _d7`6G>_O3YUAk{&PWu_yjVp_=oDCX
z2_A=iT#Q&P+1RPTF3fd!L2i+tu%MYgNQF?!Jd(o>9q_Ckn3p^=gaX>0mJ&&07exA8
zZLkmale!U_9VPh<(pb8F(;+8xGhUry#Kk`_0<L_wI#$2=Tde}qmBS^`RH>zvMzQ!F
z*bRm}qPm+j9m}?$2))Ro8pOLk3R3rrFIxTz*c-%(q{U{Gy$8!DF0;~*W at a>K;2JPA
z?9zniAq+MpG6>bHUTrgg{ztc`oL>=?AC9VMDf<4X5&_#jN#CcAZtfGnOF?P<_*3iU
zMW-YKNWS7Ogu-!XCYUYGCvyzyOf*a$_D8;C*THNLG1IUMMDQ$f>EDq=N$KzZm^0&H
zR);A^9{mF1`3b5+62_R*lI_ak<5>8wj3vl57~+g*2!QUck>&2ury8oRT!WLji~q2+
z<>6UsN0yX|@&qE at K*%TKvoq>?&Oqz8k at AA2XbF{4hbYf1G)AhsbmRcFZmgoxYBo~4
z^S>qNOIec>=H|o|(e0l*(6%7BznT(I5l_}BwMCS0lz&8>A+S)G97E&wF-<8HS64wf
zUmD|<uVT^hunrpsD(`Vk?nGL7yPa-e5>twRxSYN|cY(QmV#_F1B;8Q-=yGH|Y&}c0
z<fw4T8CsuvfTvipOUvVclOmC1`tF3)qKs95T`1AK$^J*kvnB}b)Nib^;*?Y*{x(tW
zJ;Gg`nSGc8DLft}i161{k0^A1>xVmmL-m?PJNE$>sg}*pfDBYX%GBGz%H`Ken9;+l
zSH$HWt*1;ixUGRXLq>moIPauur;<J&b;@+dW80y<_jsiF>jAmpxR=@%B;bbdg;R#q
zbO!QYOCV{%zRu&F`L4;w)^oj5G0|P?ImAlb!Iny)T<rc3(x&vmUwLQ at qwP^vT{X?}
z2*8!`c@?LdbHwVEs)!0TM{sKh`csQo><IusorU{jGc#;jJEB-sxU2q)_Z6jV?@HDS
zn<tbCS{(|zj}^&75o9N>*IYTKZ~V=<{c-4Q-bTPI5PErVI-wpyKG1+GkHGK_&zcSr
z?i?e_UUqF#`5$BLp9}HC4_r7(bBxJ2CgQAOQ*e;k^0yi+-Gh3`nu)Fw`UhLc%Fs&Y
z>B>xp at V~&a^AcQHQ-<<5QXOnT$8&_+G<8gC8C9ik>8{WU2|Lqh!+{KS9roR0vn>%0
zc-Jk3#*uftEcxk|`1N!LC^$jGuqSbavVHOr7w*H(*?9eijSrTROxa;L+aI8;M4R8p
z0U*%TZo?AmhuBlhjW+Y1;BlHGbs)ZtD-bP2>mXH=)Tq3cBL(>3my4od^r?U+RY_!4
zPcp14CYpf$R429D(8TDIdUw;-Xr*S%BE4e-!e>~l?f~R?FPbW5KqD$|jqg8p@!3#~
zGT|YfqjOto7$>qk0fD;xeCvH$1(42!e)GJ7%2TKgu2&kl7Wgz%(wghn1C_ng^msu8
z8XB53!Gex-`{xhp at UfZ7Z(8||!K1O1vWK4*iJ!SRt375!@rj^OsPx6YiV?|xRgZIx
zS*xz!{NT+T?{%!duMa=o;+jI_=n|M|D}Z7v``!P^7#(g+!9YFBoUsgC1$l-DV=wLw
zbhaX}2GJb|B+}}2ndGFL_idtyt^b2!kPjiaUN^2{ceM at 7eLDDl`A=dE`3Y?e`s!6d
zK00iGf at AaEkhs4Rb>g(-p&*#nY7Hpr4BZTtW_&&I--ZZXhtBW1*WE9*MJygVYJkfP
z+lYgUj>8k7-+gubh^{*fw~8;iGz-LUuz4WShp)JzXIL at F@Xc=%%VRMgD58l{3-^eE
z52 at HSx-I{t*chC}q-rU~IIA2fOY9{WBxrvEYsc;i$>nvZf8;CiQvr$D?}d)^$rjQ<
zFh!gCK344_8}Zcac(I>_*)CL<@p&JCC%t3{|9(Z0j84(eUK0m0DbSzUs4Zsub#CY8
zEl<pep9ZcrW*~C~SCMYIKff{tDV`Q=7B4J;zIBbnb$28$h-fiuEe+v70=$;m)&ad(
z*4s$tTiS^e&2Q0WsmgVtrKp=ZA$sF at JS)&O5bDlGYkN4Hqi{3-+>V^5yzsDHFsQpC
z6S|{(PlI#0VLNZ!foa<IU0VSEwDH=HCVhX6<OC>92h&SXV=u&ZL!SSaM~-&R08 at l|
zo%wG;@q5FAd(HMH{=<Kdwk#GxdK`MMqnRu#V1rA|)uSH?mXcI~2W^%*g52B6P at SD-
zPl5*&sF7mvQu~$2LlgQ%p+<tgq at FW7mTcU2150Y8%0~4p%B`IuecSMiBCrt~^O2Qh
zz#_}7lU_~k at W|k8$V30G*+FHe;d$5rkMEMOdmRJ&>t}9BWvg8!$js-H8glhZY<SG!
z;8Lu0tt_nH&Vbi5mR@`IdvwG*`rNr2R5Apg0Mdfp_wF~~=AM>B#yYcekaEP|LL>j8
zaCt2|O@;ebNq_%mObMyQ%i3cP<%ppr*{3;dj0p1Tsr5$jz-dU6jD~w!=ok9qt0^J<
zoO>v{3Z*#Ty^wczWr+rRhFB)8xTBy9se4`~a)+YAd+$8bvI~*Mn1YX86^!PM0;Okk
z$6yPNG^>pqy$L$Kz3e}O+ZBG630ZQ3KmkDqW@=AS{V}5Wx0ct9QPY}qCT7~DPpiNw
zrL?_+s4U#C-L(Ym_SePpt5ZBf{Bb&Xq}<7;oxC`uc(d*H>eVKHKi(4R=t-|TU%8(7
zG#sj0`r1OaVs-F(rduv$Mvr;8^S}n1Po5CVd!Y2$?-Pb>&pMtZct4>6C?WTogCTEI
z>GB{5dt_23z`vH6tP8)sfjH|Q<xKQ^JP|lQyYQC at B<Gn_q0)hOG1a5t&^t at VPYaV9
z*4tid$$OubQ at 76Qi49=W5W>&C;l+5+WD3RYz}qovq7YmR#7334B6EDo<*6u*OLmWY
zCZ}disx;cWw$aT+FN)+dFq!3lThU!#wY62l&fbL`HyOnGPD7c38(#iuJau4}{G0_h
z<kxdT^^zT9E%aaHy^O8QMa9GYxUG!p6ev>;w)ka1v&8nBwhDQ9|6>T>8Z}|wO%}+N
ziMs(0^L<q((ksu8L>w=`2=1-M0_*G>FW~Dd-5e11x)#3T9a^a%>1VYOcN3ml!Tgeu
z>eXW;fP;J=T$n(tT?QwDhyFjo8N2cai|r_TRh1<-{snF%ZBP1)GysFN155LZPe7o$
z-p1<<V8seb=EkSTSaKP!1KsWC1zVrc*2X#Y<4VfFyf!V)!~{I5#UZwK*M>ih2%7ZV
z*DOM-9mn$krV%Q_8(zSqPC5{y?M(L)(`n(acnb^r0Zj&E>`xQU3a-RSM!T9DD5zLL
z(NuxA>^H70oER8zGvkhrtP+nSH4tc#vaWXredhv!>w_x%vZiBXIb}zWKCvaODT6*`
zB-<)DddK32DsRpczbV$Mo-gAdMi-7nq|O4|63fz}%gf)EK=*%ALEwIKN0rXEm5IvU
zg{En`$H?4e4Fw(}W+kdveUu~oVSL0DkV7c_pEp8bhkq}pG`z+uFN9QX0~pFPMv1qt
zXuB`<Q#9Md{X5NPO<3_=9fuoSQj!)Y+KBiFJFG?p2uLcu<2Zh^;KA{Z?M+Ymg<xQL
z--5tH?xevj)2s$cJn;+DLp4)=C{5vna0<iTTFkP4-rI#kL}dD8H<@^n7Ub5{cU+P~
zh{H!dJ(_VMB%)|?<*dl~3x1|-1B%Ma_i2|$2Jp#SL%2iT;aBHH8l#J2y(wr!X at UjS
z7~E@^9_s3-%RVnf!e>rB^1Lbl;*2l0zCt{`Gi3AX&vWwMEmH{F{s<3MSd2qS*<CK}
zPKtCGTdX=@5jDm&)wH)yOPF+emjjye)XuM;MzuHF1eD12d at zQJGt{A*c at P?Q at DUD>
z17A76^n7@*Nwxf<{Siv;rb)AdH3ng|gAXExWPqSB1f!w|x(KC|mo!mJlRbmh at 1G~=
zkXRbEj9n<>`hpwO`0dGm3O!}nQR{wI^xkmXXSW9qfH&tPpe`PvW*<Dc(*O>!elZh|
z at I~hy`0u>L>q>(iz>d4vdf6zrFDOTyWnn0VSjmHBmbz_jPnt54v29u)60))gj~v|v
zga+6yX&K0qq(Ag$-PO{if=Xs+@(XZBe5MUr5Fv(0BhrC}C!0f*x8aDm!$9^ls<7x6
zyfne%QqAiWtIO`mIMf(0*cA$`c(6AbKAq*AAaC|`H?-dW3lW(x^WCI}&fr(i`;;Bi
z(}8~D<t;M4;`Ve;j#f<3A}Dw at 4OJtFbpKz^Ucff$i?~U?UDBOy6B0-bR5|QXADnaJ
zQ at Z-TMcRgg&={Sh=~Y#5|2zlR<>B9d`UbZmi<&%_UmHBc2Plz<xCGW;pM!)YdC0X0
z$t}pC at pCW#bc&z;m}Mv$SMaSel0 at mPsom^-pqynZSu&!mCgj1G9*65$6}Qd<c at 7MW
zuyz7AWXNtGwt$+q5yVTd{kW7wA~C<uO(_8K2h&()9f_xmX0~MQ*S8agte at ovztIuM
zV?wInLrnb`*Vx%<78{G7h;H?(h%xa at df--$uh5iKqmLZS at 2<l88E%EZM-xN>Pt8{`
z7q3uu*e|5JSA3M!NCx~OCUT}6LuTo92#KXB_)FFGa}k$>OYz;y0Avc<jhZ)4U&Qo9
zl{MR`bZPWpht$sWyAUKp>u$LKeE1FA7SC)u0X29bh+q17+nE}xb#jh<JeC4MVH<M}
zZ9$QP(+y9etJp$xE_er<aL|tn=@igEHvrGLVprCLiZ%ESprxDEP7dqcSRWax#IHBb
z0;J<@u|oPl8dK86SuJfz|3CnrffZe-5{jo8*C4k*a5s0Sm*gjEClF<z;e25YaKvH|
z=NA(1^!JF${D!sO$#B{9vwWa;w%tb-GW{RAeNvyz2fo|q%2;2D-tk|iS+DahsF~hy
zpXQXHgjpw?H%JLvH179Z6SFpnV6xVRh=<7Ai-|hZwo3wW2jEy=*5yk#%A{C-vT$9J
zSFWq4Wm{t;j*`ThIE<HyZ2hZZSnY{8Ulj}|rR;q1U^##kBL-xl_Fl2>iepdu&)REW
zCQ1BULLma#LW^F&$=+?R*_=;c0r?LLLW2XzWBj%w*uUO*5hUicXaY_PB+a{(gFf=X
zQ1<+vs$`KnLP6ZABiG=pYg}wOR}xz6oaVHJJ(Jb<)PR>L@}AkUH4aChqo>WPOx}y~
z at 4`!;v?8Bx2K(U<<$3`wjoaqyO=4%RzFHtY<IY!2p=E`b>wdGRf8 at Aps)d{Wg{Y;8
zr5NLSzw*oe*|S{lV9)=~MIJ93004hugRslF(r{z<+4$>l!r~<1R&pLAH6e6LZ*ISB
zz5wWAoB-$3Dbo^2kUKxOZb9&H_aC|x)O at 5b(ZUtzW><CYB4)3hL3+Rw5(fD*o$uU3
zirY#gp*8_lirW>-WnR0juDZP;vG1DY+w*b~E+{11#dLqpu#K)4b8;NjOy$EW^MMlQ
ze}bp{=YXv>|5&Ks#(oO{VmR+g3WU64Z-lnAueEnH7B<h$pZEDzla-+E`$2!@CuM}&
zC#IiJGgW!9{weVf0sz+GNpwiPmo=V8dpTz1=&se$1ktoMe6NkH<(wM3gnogeA?N~5
zc=@m6<^1OCb(aKW7(XPb(@Xp46)(PNbUA=)R!jiZB6zXV?)%)H(c#n=e*wwK>FAYX
zq8Exj>$Op_g(KJAMB2R!xXx&$X;W4+c(bR^(@h8zoz{Q{=SlA`55KC?HPq0g>5=|v
zd<rCGkma1r;D={#JoP->>JpNeYj-j)GNIJa|DrZMWohad%9{qvaTOoV!*YOQ*?B>I
z#X&<6jE*l6eE%K_<!iRV<{iR@<8(kM-m&K8nfy7bEr3G|l2%dUj0eAY77D7iZ(vs0
zGLmYY*g=JjTdlODT8{N}Yok3bqUXAv1w1+M%Oki%c?O<W1x?{hz$|L<dW>=|nxMUr
zxRgtKb)ab#@_=OO6IBUsZv`8beZxkRBlf8PG5>aBl~gtol6doqAflPn1w1NQtbc`j
z1VPxdH)Gss1bL^UtJOTeh%#-?-E2EGJNZAXY!41yT>Q;TQa1-5L<hh-*;MAt)y_41
zcuzQr at zxn$*g+ at UlO5vTFy&MIL^4-7iQkJ6i0<DW2&e)l(g6%t!)VK?>In&uc=zH~
z!zOS-N{zW5X>@syjWR^m=0vv9jH#LF>F5pPTQ at FS%!m2aBRS0Jsb*`W at k&gXfB$7X
zvuQXz81b(FM4R6AQuu8>ZtSkunV86d$vdzx%rFuZ-#cROz)LfTW{mb!&;X$9-iOt1
z^~!^tQ0J{ZuFJZZ0q{yyX9&K|=<BJMC}?T8U at sE*kPAlfnXx=9+>a;$byAE11Rv at i
z=#4LvMY<WWZEx0$8xMIv+hE#y&-+hir6=mz?&m45hHP$NOG(>fhvfumqZKa9GNhuF
zax&t?-{jvSb#Gu)C}YzGhU1TsvV?%0&+EmTY|-6Vv34k}zwXT`+uEb3OHy`6FonGV
zv1idD>$P_es-UWtdBnYa8~`b#?QtHxOiouN7qi&wA4j#VOP(AUU_8C6$$&qwJy6t(
z?afSpEHC&K%#E;ptqL+vEVdXrM^}WMZ`Nk0U~4s_xRlbHTit+91HVn)gDWFEBeZV|
z at aOc#yoE(q<Q$E&^PkAX)01~#^ESl2W$TdT94>x|59`DxVjsBJ1*e17Zg#WWi9N+#
z0#sgpyD;3axc1>^Zbk&$z6l4Gb)MtC)&g-<&MOX1bvjQ>dzp{FzCkc62npbN!gl(s
zYp74QeJlPV#?luDgk46%tZ)4+afI at i$cV);J~Lerkh)a6MP_<X0bt}WWZhA62OR$6
zDI<e;?hi`khj+E#BJ<_fOLz1pa at 4b1kS%PW0EQ*#@BRRuOUZGiM*uCg>#&t7bwe6H
zPKJ^)XsYP6J=v>-him=7F>K;>OS;Ebepbi%&@}A_n!=^F4R6DdEPnm1tH&)T8-6#?
zoqAN^TT@`aMPOBp|0fOXYt6zpOk6#6*~Dcj`}B~O?NW`O$84#!BDy!&|GWQ<HH`r&
zs-3z_t+KWRsoUtQVaD0@)6ED0I;V*U<tTfoG+Y@^Mmg>CQEApfs6~WS<zDJO2_~l^
zcqkD;OvB2 at wHK8aj)S6#lmD(Z(vWdp at E}vy_3#qOa!lrj!x}K81*Rv3PRzH#44g^V
zy{pBVRCKO^gm(GbssXEW?-<Xn?VU<brTxE*aU2&!zI~#@8dd(N+g{hN-|uE1bXibs
zWvmE8=Dv>r*CMQpMTaFgg at LXig)2Ca!T2bH2>U6Qi-%2%4xL$lT{#u%toZ*kjx)(2
zvUFb>@DEGp`18$U at 1FlI5eQmKF6ox27<7QJ7g$4&YoaWlKC;O6WsvQ9nMr2UKjwe3
z_^Z^ZYW8gZ at FJ1tu2}TN)nrG@!Fo>Y_9{5agab3~Jb<jg^(V!jcGLY}tYF^s<9UC<
z20JEo)9J<jL<s5dwehpb6z9b`KDG;7=f1Le%(#l!oHm*j#8G{n3QN!EkTD(f33H%q
z^L#y3+OJ)_*8Bn19PKo5xEF-H0jB=g1T0>~Ri}(r9IX^LDLg^?T&Ej=JHe%L&pLlc
zrq;GTj?@|n!8Kq1V+R0Ef?`AQQk(G|de#<aM>6#iSoL5{8+er;z(uh9H+G&WPSGLw
zU4FLju<+L$sZ&zu+92{dKS&L|N(wRMX0{6Fe!l0=8{jj3x3%J||N0in`a>3p=2S;|
zpk3wscFNCaY$OsG at Hba0Jg_!|nP&pLk*1Q(($!?xW2`S(mzNoif+%V%Q#qb@<67x_
z(Lnz;hFg(To(AI&#O{fC2A`$i1W-9=9V8B=K)IweB5CnAid_O_=NDy4Td(W{(01iH
z4Ulm00?>DNCH~$YoJf at d1GHW5^)?wHI4`NN-!~gsaQi<JN!K#Am1n%>Qrt?=4yGqf
zsa(i?yGN*E-^pkeYTNJps7P)IPrzR__0&VnWc^FSMOO*kLCDO~eq1^-IE3tnp(ok~
z#Obo`kXX)?<wDXT7eI7cHxiaD7`L-4c78+7(i~@lHg7+6%bMFNhQc4CA+3|kNKhJ)
zwfveBOX~PeUw3y<79*}e at cknuEO|T~D#+H^I`cB7k12e2t=7hNM{?0fr^A+^RTCfz
zyXYpHMfOYcoszKaS2rR>Z>(Fov*W1FpKXX0pp6LGbkH-je_Nlm_)M0kIT`(Sp5RPC
z>O5nlY8jVqs90^jSam`Be<X06oExh>VKf-e7i=1oArDnxhL-E>S!|=TDviX3O!jyP
zbKp;4m1Z{KOtvN)$;hjjScy^CHu;wH`8H8~^kpZ~KoUi#Vtp%}fE>(9zw5<aoNWsH
zlYa#q1EztRa0lat*VpG$eU-f0_{ffycC5Sk5=se|a&A4QAiW*CTL7+PuQom>`=VH&
zz*25D)+9z#(n!@6j1YFD{yO(MHBg;spuohdKDR9Sk8w+h9<;h`lUJkgW2~bL;%Q=|
zXqMV8;zYFcsoT at P2~Fc%C=h8FGU+T04jg5Dd3<ggRvtK5(zg#z_aQ}_57<b`!IU%l
zD=rBSp2dtE!j8(GORVMqM3=`4qrHEV>Gkjj^ZNVJv^JAb1(K~@k37aallu={U}REs
z!|o#jd-?x>p>q*nyuFS6we#{*ST at Fs&pF^<uLJKT>a*$>OA?}N$r}e7T+VX0%sGa{
zrL+gc2X3{X1l<WnV)VcKh#?wt8P_{dg9E{Ql-FEyJ*;2L_*;4jj)jiOVYV-zng#Qj
zds9SP1HW=r%WOS^c5U4M582r_`q2DnvSUP9%#a~_Bz;ry!7GpGc>T|mNSLt;XCp2M
z6i#aJp at 7)c$5^%mX_g;~i at b&KQSzu%tWhyeotdlA%o^8ANQmN&*vxzk>Fo!=yGu+R
zF$QC#+6VXYR;Jl;iavr3Gpda{Grlm1K+iKnPR6WpmVV3 at 8?lDcxc>;y7+YQoVk^k7
z!0ZK1(P+J}BO2~h55HBv6hB{yo$Xys_)&;VbP+iUvt*i-Mt(?eHnwCIEM6W&cjsER
z(HF&~)0&tMx-a`B5Uwh=%-(+?4urzLb3N9&Sa(XozCZ&J1eVIw+rKft)Y3es@(cvl
z_8`WavfDX&N}_}y2xFKJ59`UtY{j at QYCD@?YpTaL3sA2pQ=#`RQrf=39(}hr#Bf^9
z&>^wb%`**A#>bs%{b_NtI+~-%KuoX?CHcp>CIpS5I=-=a``|RomOT@>#W8 at k<T~SI
z3IG-L%6lL~;F$f%gb>h+pha+q0P0=byud4!^o76MaKY6%xw~L2GUQz*uKEs(wH?6B
z_Wd{X<Tp;#w^`C|stqAOD>1^hD)Y*C2(KzyD7M(w{X1Pqg95cQ(*Rdnb8KRWko2(V
zA-Au$G*$9?^`Bh-Gqt6vR8C(4<-9+C^Z<cvxz0Tvs(ro>j<_beVPEv1y~9+NvOBXD
znANtbG!HtS{a(3thc%L883<2UgPj00=n;;_SZUfl2 at KDPJIJF{^H<6M!gnae6xy7>
z*Svm=b^WA6MF;H^a`vL^RX~h|8t=sTM5qQ=OD;ePOu*Zm7we-6r>^3^q@*X8kIS=M
z^^>ID#L5?gm2XCp81(s1THptj5S5R}|NCoz2fn;j(WPZL_+BiFQJ3&2>M*$-IUb;P
zTp_ro)!A)SLF6xx<B0?5He&(3Dq;#QjW+i~_t$|bU=uW706m7#fw(J~VGad6UQs6&
zqYz#pgfeR0JF^a1AC5eYihe6!EInV*ttwu1`|%fYw#oSDh3HwA6Vaa=9Tel)XH!_9
zp*0uo)&D{Dn>Rd`2JVzdxl(W}rOrc<Y}zzw+1~cB9y6oFwZ5}F)wOZ#PcbWw6?a20
ztAl;tK3YDmxR5^y#DcHT^)>a^?&%H^2P-%h5d`xT6)&65!ORuLfLF=;@h#Pl$w+5?
z9=+g?D=_w3#%d=mWH&KWnv&O`s*=bANzq`!3zz#0A;|kh<JSpQLhnvqy5e<D5pz)#
z!nQ=(i~g<Mr9dyhZXdA<-MXt44*KHk at jk58_yKmcpHHMW1cj$cJE|l&*+|L!L6Hr!
z^@#mX)$equ7Y;AZIo*EQAjd|Uqp*Has;0?cC<9(37TPw5hEw%Kd3=_G+-7?GCBI2b
z;6p(PavA^iK0hrpYY&$p8Y%wDeu at a&v?O9yjyXTfYOu(FM2xI8fhNN#;^zP!#up5+
zR6%KOc2dTPDixd$V<8Fp2h~J?!YLLbt=nRm_P0DLYrpnM=DOj+PVaqrsr!h1QcSvP
z8F9xGT%#i(Dd&)38%l=V-=@QMun0(MO!EnL41Q%VIP555 at d6<gP#TF+v<}w2wf)1u
zs}Pkxt2iGafU+)GSU(Q9n|*CJISKde5Mid3iFO<8Y>$Zn+8_NPg6X9|l;LFRCRw@%
zOBCV+Ud<v>qIZwiW;%a(jBY>k!azA|aPrw*o;Y+2#b14CrIzhF*7{@kq|4uY<?7j6
zcFL%n`Lwv_+9Dqjxk`zvKji(#8Rt2AyV}yXk2TKug|T#IcB{Wk41^(g^o1Mt?KkkL
z!NRE$4i=l2VbXInwh&%kycJjdYmS<&<lUV1^~>|%$L(RRGbjX6jtHL-iPZZiET=im
zBqR$eo`%C99u7gVdUIj7Q=HdQ6R>i<Naxq`8V;E at NW7AS9Wr=)i;1>m<`xPFEwUo3
zp at 0dvS$*^fNo&b1(%$WTHMejrMi;R-RNQpYPMT_y?QZrTA$}s_6?L7ArJP<C81x6t
zt8M25+A9k2#Xf|<T3c4ydeCJGj0?&6UvtRE#X?X5RYq|sb(xG}Cgjf0Hcm$;q--L=
z>T-2Uwb)Gn`>qw~M6R4OD^3(@w}j3zwFq1iU?&XB5WBV^#+mp@?PS2FgGNo6-y6Am
z!k>N$o{DP7;+0J}Wq)GqX29=y_GU6}TV~$_lB(r;q-O3X#OAl66|qyh9jB<<J at 5cQ
zti|W(#!=6qw1y*PA9^sudxM;E^*$uL57+$T3^{e~C!iAWGLVyG!{dEVKG7(CNXPU}
zGLwy*$E*7M5X7AO%8&JQIRQ(ha5iGoNxyCyMxVcnLuZWoJn_8Qv_*NC(|TA&OZRA%
zdzQ^fSm(UvNE1h%ag283q{h@#$^=Y~ufhz636O+0^M-icAf#+eaOF$QMJBL6 at v2Ql
zK7VXK)OR_P71bJl)PvB#ij|%hY8 at g~023_PY(te-fA)v>Pz^?+9V3MQ=!c%|OD3gK
z-ttW2=M$4#4JPcoF+|O+Qg^It2HjBgV>FH+db61xywB)lfKKoCwo|4cILwddW!kmU
zrtvu`L0xhTWVCv^Ad(*yt{c+vhF&NGat=4IwFh*stQH!8rfNNyYoGoDy3|2J#|JAh
zY~s2oYI&^AE-08vX!wc5@|rW8eO1n7qrmvlxc^hqH5LK+0hRs5fg`67bb`bjF<qbZ
z3tb%ncr|(tg8vxV05jTN2kle)MoDe%o$@6EBu0R&V)up12a131Q6!+y=-HYW5|$yl
zph}JOG?t3MZ~{;!j~EwS)14TxeM}~2E@=m4`?Gx|V4f0<dNF?90M8b<saTqF;{D%T
zhmLN2>!4*{<)F?9%r~7Pf#Yo{bdB=|&dYWe?qo~oKK9~+BRpu26<VOGplz|csg?hw
z2<46#v(G*J)WjD=d$}}10#zutG;KsQxz#W6YnA&Hour&G@!hC34xF>f$`ng~j(m1#
zh1lK>l3Q(v@=51|N9Tvfz(*j6bk0$o1!~*|%eHK9rRw=n=L>0l?iz#OCKSd|{I4WA
zhzi}S&PjwZO4S-K=mLdDF8?QR=%C8-!4)t5De-XdH;d218dB9GI9(90I5+4zzafNS
z!TxXaH;Q=T2w#}j6d`>7SXO|BW|860pnAeW90dBaBtS2_Vy9<d<Mbno5*MPyJTNry
zS9T3jHo4RDTZQsyU5s_?GG8OWT&<uB{Hp(S3S=1EIWZZbjA0a`XDXHJ9#Fa;7q%LG
z6m@^jp80Y&6F9&v2SsasvT(5hQ~GI{<Y7*2l*%%}lD&leMBuOF3A?Rmy;Vd8C6P=o
z%z`y4=O=Va)B;_R1)I|tN-{zU8$-|#e4;Ete1Sy~V&1YU{rQ{-06;Vu&n;$}Ha{HV
ze)Cae93gSl#aYcU01 at c_P16Go{iJrP{+#wbtd_Xm<d#AEl+ANY3FJd0AMWbhobf<5
z)v&8JrG!TW7ZC6II#=?bd48YY0q*@wFcepGI{64h&-2TS492_S=NRFIY@^23%JLX=
zQJ%0BWLY^jwgN?NXaS(~$GZnE9l$<xvJ6Qi4h+SA@(h#O9TEqkd|P&a<?G~IBm-G2
z3Xq!(rut)HFzwHqG<Dy^250hM<_BEtA%V(}Ftwy6Ck99<{vTz6QCv)mp~_S@;W~z_
z6(cHR_5*b?Y5D!5-lh5-Bbn1Gq-@|BPVMMLP~fE&Of&?4kan->NN8JW`SEkT)&j6`
zF1v&Lf^w at 8FQXL?WJglKyak(J at -I-~W79Uv0OkRN$GUuX2=$l=h1xp)usrBcRUUtm
z|N20Ri1;D=jupS-r2u$K9n|{mAL(C7%*hCL at 6vtflZ$Y-jt9f5GYkINQ4Ys9lc(Q*
zCL=F6XN!r;(_Mds|Dxtw7oAWn+%IowQPv&Gx3!>y`v-IpFq at Z2mFQI*;`Orb46}Eb
zW_t#&gP|dexKMAvc&2S=)G^|*(!TvW3q`%b<qMH{lK=nPFUi&j1lcb?e2c=r!_Q+=
z&%hM)<%6Jh(uqZMO8vL*URo~zs6SJ$x0=d+j1ca!;}VTJ1t`OAsi-;L*PgJ?Y`4*Y
zT|qTQ@`$1+w|~!FBj`(5p|Ayp!Se8v#i;8wsLvUr(Znl6H&Z!9bAA?Rtxj0U*^eq3
z;zG&ccLl*(5WgYyG~oe(+o$ZUOo{{ws$%VbaQ!vHKKf4}@0F=1OGzZVt4OGBOx62~
z2UTy>D)VtQoYNbFb?JzLJNO?CIimE#@5PcjU+X)@-YjN?pEAmnCEW|O9EJ}o0uIfp
zNV&S{dix#ndcE(^L7#;JEIrB0S5pe>pI6|;{Q;M?nq66d`P*;OK`FC3WK`6RQSq|?
z>Oy`>h|XU#^FRd8&o3 at SwaF+}bdq?1Zf35!ETUC+rgtEkKVMg-s-5!Fg&h|CGiJ+B
zB-c89S~rY8#eHpx8FVShDcr8kIh%af?-sHJZp)~BBl=n8Z>nO2WBKNSXcM)eB%O?5
z80G6+|B)(6e17pkfX>PqTsa92s>8XYfzj0`Q1A`$ZMB5Y4PS7DJ|=y>DZUL6mGG{S
zq3)}NC8llU0)J|~n!!V^3BDb|s-jKeax{*!u$`Has*y^%vhq=SjpLHxpP<mSONwHv
zNI;&w&2fsGdHCWc2>O-!-z*{_59#ELVI`*`A4Xm(0rB>SI)2InS#$9oPUxXs#wkCc
z at KBQ<*u_R4LVmpL3=n!krFQ%fM7|$QxztRfV*@yeS;vS$&V%}sIUk-`6*@e^nw=2^
zug5KtvVN;iWMJB?4$DuJ<A=qomk33lwkRBOeSsZlAV?8C?GPwAqvyXUF~8$~7C0as
zr;Ks<hH$oqc-4wp#_RhDEapp<E+P2)!op?#+R+gMZ0#q^h%lu&`OU+u!{@S>9zVN$
z5z*+WoszBAYwl*qc||Kt%>o at 0F%QRa&V~XP*UkEZRP8ems-2A27IixE5%?Oq^HtBd
zj3PxZ+BStjTtLgNO|B#VWg^PYrOua_G6FtVd2IQ|#{}JcywExcVLK^z$JoyoUT%Gr
zOlGtM(DV%v33PGr|67@*s-}ZqxInN{X5=j$fvl5tU2bp%L9uB){0}f8uksJxLtZjX
zQ_o3?d3y+J at y$zQZ(`ag<ULx!Z}V$YQ9}gca1Z=^V7l4qC-jR8XtQDt!4}EMLnCZW
zMuFw?MLB_4%=6(568V(Ig4>9#(cpv(TmdL!u+F3`nnGKL at -;6h)an7X2CCqc2FY!o
zJzEiKfFT`{bD>#J&+ at B)NVrX_WP|b93wLL#Z3>w0cMPT&K9{w#OQL}&-Z(G3;fMRq
z&lA`rgO1I0c}%&esMEJOdiwM`P0PgkEeImva<q8=7WVLIUAQ2Bnb<?W<s{U)>#&ay
z9#QDc1Injrp={;yk}i;&SnKp=lQ0N9Q=H-I8Mh88VfkGeE3k};WW$R0sM{eobV~A8
zuTg=cM(mL(CQ*s2M!*}ydQoKbl(**dY*LqJkGOAI&--RmO|V9>#qOkjRujIt`cVI_
zi}Gn_na-GrZMpSwrZ+LfF{v!=#>_|G!dr_=%PD%!rFMv`{esWUQgru|MlAMhA)r82
zMcVwp7r0NJ&?aC1AfE28{`K#stP<|3B935d&!gZF5mlhlXPz at -f>_R}4hIOy4ir`Z
zOqyg8Zx4W$OpG@^JrP(6J0z6`q)S2swQ}cv#o@*~UIiPI!iPwF<;T+eS}fybz63ap
zo^FWM)&7x81oqJmIrv*IP~y at Vk%#P1oWljWu)APxh&^djkfM{NNA*m=7*TUKvpMV<
zL7-CVWa4zDWe`d>Kh%2&vew`iD353qb5DObbL0ev#!F+Yrjxr2x{xF^%>biG%DI0I
z2?D8c!D}hU29IDqKqy|ATsmv>!)(Xjqpg{A`s|X%+bN37W*Q4T4{I4%$9^&-uSdKa
zH at wI8`HHT0v2LfxY|WuDWh*2_?L!mss<f^=?Ss#^b$!;M5K_aIPIFi?@<Elg^)tvl
ztJrl{4*j$Nji97rW>g8KJm18a4>%X(LZh at DqFTCgnA%lC>fRw-`j1T`=Um3Bp{%7U
z6rYhrAXBbuT^|5J(WnP|)ze07(DmP8LZocD&7r$QqGx3-^i1RvTi=nY`q(4hRxErH
zUF>et>E7AG;xUU2V6@*a6i`LQX0djp!Wa2kzE4ennvt?C`=02-Smy!{_}TB?>nX;i
z4^u<lbDu?CT6|^PYyw^~%bu8ewg>I|QMU;s>G&sa{`o%}KaXK0Q7n*gTwe8VuB7f>
zN~(a3cFLM3OvUoSNw#4m`hz(c0CoX=C at gG&=z?}nVYx%l&wSB_X|dWo30-_A+VLEQ
z0}eq|$d6h_qR&9Ad)%?6 at T37-3=G{Qfo7|?)1T8DEV()`l)|%Rui*Nh4kXhKv07Uk
zms_}UBDby1=3(QppwCI%liRdq?MSq2CZ88I7oIU(zQ^8TWi?=xF+6fK{w!}+NFzAV
zr39+8;aJo|XdjHX!w(?FqqK0(qsrhL4+3nz!U8aI4J;FEs3Iad{zBpz6rWY<oL at H%
zC7+GT${F^?bm~dP at Z#WJ_kR}rdRudkhh}ccWrwwUOWgV3X4glD&@Y92XjO{ymqx%s
zX{pie`hSrCDEK_?)Ru}!-vJy#mw4u^!NovE*ql%|E(P~^e1RsW-~Z-I9GHpqGJbaJ
zsNMd*z-)o|DG(NArKOBMc9JG($iUkeoKOXd$q5Y1m0;!Wvtjisbe6Gv9SiIAZ)vBI
z`clYY>?J^Kc~JzQZ-oZ3i;<DWaSKhWrZ-c|eY3Pj&eo~mkyPgf8qH3GvT(?*t3iI-
zNz(SSp|=ix=y##N<vwFFnoj|+qQq#&@0sbTLd0K8Yhn`obFAMt6Q`DQ9kGdpY_SiD
z$8nLGDC|CFC?UKDsAx~Jk;+Kxt(8!N9Y`L?Q1!5%%8QFcRL?Krm{!Y&K=1yc|D%tN
z6oTv-o3Cn>a;|otglnUP>gRZ=I1N%Z!{yRa<Na=)=SQMb75N*`)`G|nwV3Cc)ray9
zN|C6mx)nRRiV9<K_n`aDZ0!}3r6Wqt?HlZSbzbyjb8NG{cQtS7O$`fzsqe7h{lY{z
zgIh)SAo7y<o|lA_Q{xvq_$<6%l7aP$VH)8CXUZqCyOpdAUjktlZ^Yjwt|Gya#LdHS
znXfN&n#UK%!DT0F^o6n9f8L4e;SlxXNt78)pS~A-xlorf)|3DDx-y*K2bDqPGKbKX
zA_}T1F@}og9x(@$MYGrN<6`b;JGyWS1bo9_M&g_sJtyIA?FC0tut-zI`dfm;ZKt0^
zkV6RBOd at b)rto6#820k1E at pq@^V^AU;n7yb7^6XSTr@>ZjR*g at HFBrs>9rZKdZ(Jb
z-&K`V))|pJt)a~yuKYygz!~JxV-%yPV_v{n3>?xAUsZVk5JgK%R^XF3p7A_OE0T`e
z#sDJ7OSIF>q1r}60;6Bx2}IYiB8R7N%)ZmNIg8zFfZOFIX_&^gM~8hc#Ym0{%Fr`#
z-PXj_v#^|@1CQvA;{DxZ1 at ht&Eu39$fR3cVuoYyd3j{6mBg}}P^I>BZ78BmIDmj4Y
zydvB_8l`d-&x0_8=3 at hA!lw`O?<(wC$cN7!V}8FPH-p3ec7kpxHz&6=3I1Xw|8Yp9
zgzMYdId_$cJgYk*Re>dT4qV4)fIUf^3HE3n=UNs3_>Kn`_MeT9&yZnm8|Q-4m$+#c
z-;p^C1$YoJ89-yz2^b&Zokh6X*yqkcA at 7$P2rj2?M(%&P#CToR;i>0$-l@`%uNG<n
ze<Qwc*&3K+gU&!wN%Cr=>Avm^sx~ic$6K9dh$MT_dc$S>q*N_PDR4N(u3f_2%2?J^
z-v<$O!%xN8u|kZ=$N2c~Q9kfxT;tr(5g|9nBLc^>{&|^r1;l!Mw4V|;Q9H`RkrK(G
z!0wV<gM4}7=k6IScx=w4LU{2<lq_?hpx1?iuWWpxB+5rKC{nCdd4eiqqNJ)a+Hzs0
zJ#{Zy>^IlDz|npM<Y#T37i=%H7K2&EJ5RadAI~wy<SZTO2WE@`SQIKAj^jq7E(iZ<
z^|t;zBtzOAMt{&rz~r<r$`|p1=&rX2Y&f`A?SWQ|QtA0C*~IP6Zh}-ZBcqB`qSW#P
zpcUHdCix)v4nZP5<ynxedTmJvfryDYki|t|P^e>@9<dB$6D$h%12MH-GlAYUA-^iM
zPFR==80PB3vkv8OWl<jfG&MY9kx+<*77Tv67lO$KtmNC1y!d+XCId(`<*EC|W#JuV
zY<s}mdp}OFpD|<xXq9}6BsYJjhNNdg21EU5i#;|E+xF<n*i at K=v;4hS`OXju6+ at iT
zX>HfO$rHt9q(k;_#ab!YD{8s>ITWhbVlFJ{8BVC5Jq@?DiH2=B80?UV-+OX5q?GF4
zzne-!gqZoHyLNJM)SM{p#(E;;A`)e^u?`+<Cos2>4KzC)V-0e~n&o_|ycDQQ{<W&y
z0(*WrhnN^JEc!CS6A1HnKOlqmPcxH!M^3yK6)jL);krEcfVz87q3or>FN3L$L1j#*
z<-$r;GdNAY7|*k&ZMVHR->Z~EWBZt}8EXu_54Qv<YRs-t?p=y$@%f=mKhE<X`7RgP
zFl+eC;Qc5-6=7PXfW+FZD=lGVR1IA!HDVpLdR7PGI<U9Q)V<QAH!#hmyU~U;S*y);
z3vVsxMKP%%Ntu3dcZr9z2U_ho*LVRyXhkNq-o({$R5Cu9Mu5EgB-x{yOzN<5LGg0#
z<)@ZC at QE1@znXN>n0QJ*+^?$hr<pa#nNh50y!`<?{QdPQwF|@Q6QnfE>HVdvuCI$c
zwzCSxPN{wn(ViJsMn(=Gg^VM>G|rPABDrxl6)Wvj{O at Xy$_iUBz5f>d_ at uXrEsC;p
zyku0S5qgUqm4tAh at BkxdZlhixqFXxD1s*m49Ru>fToN*t8^aOw4lsfR>pzm#N6(Ut
zVt82k;L at Yr%f at RV;A=d~D7W9R6*y2i-5L=(g|->m2naEpvI9PL381{_;?2jEoU>X2
z*|ubA>?Rm=-E0nwV{>PXpxpPljrxr`v!yTfoeNMN(8t%&3gv}l0HqeBhr6#a!Os_r
z9&{<V9f8%A#Y$=>3PdL}xndO2GpXSyx^#RWLhH^Ya=cR*Myw3~^ypOd*Yr`kdBF78
zb(Sze$$w|EL=RQ#s$68Y*KrCQ;y+YqxWG>JKv=~)`W_#MP>H=5U1#8v%s~fe*AId6
z%B&S at -Q4{4nsBK}nMsA?s+ at VnyyFuhf@j-_+oyfX^7>xfO?F~7_TD&z?e__5Sb`5M
z%e4*@G>T3n(}Frcg6E*YcY*7-RbdDV<G%Bk^i at o+CO{J0kH(<x*}E<amCn<pefXNP
zYa<dtS(DVZ^LV(>PVetMO*N_ut3vum1-|&({&S#6IzWxUrhecJHR9kB!o?C?L$p(3
zt%4`TljWx107XE$zr1V(!p>MX+JUn_2h&Kt5}1#@Rki&{r9H0oZ2L8QN3UQ%!1S4t
z{-eLUvN}BuA+iY7=W=AgOxYS9%p}6x`4BpWZ6hKf4r3Sc2@*b2O}LcOt>!I#xF9b9
z>V_gg0Ls!e65IHAU49Im!I%-rf`-5}3}?T}7)TeYd?`dD_P~C#HiYg)g?1IM^i}&%
zA*dS2xxK#Thx0;4sTZ?Dk&6#6oBAQN1nsVMr+c6rtya0YZSQ^!?}ZkhQ$D+;o=Ci5
z5$En|JI48uQBaDzHZnUHTOQ>ESo at 2ye~sgJ>Qib+ee<~(dOMS)fA(86=cS*Kry4pd
z;EYkso|(2LHyX;cPu5c0w)v83$%l~v7N+k9`q9RD_LHR2M2 at h`1}|SUDv4(0uommu
zArPeROcmj&iG~WV^O;fv7=)s2k<X|VaOZ=+1C6r)M(tW;GjwouR%`m4IG9FhsX2YQ
z$Dmz?9g3?egK9b)qeneTD9d&M)-X34nuzMk8PnHm{?I28SO>;tSs3xnqN^Vv7ebiO
z<dmd!YcFxb9fWMTpT;b^_2Nd`lXSh|(8<U$t!$pWm3f&07#5R)Gq*%$=Zs{g=_$;9
zj9ARq&o)>vl(Z}$eceb)2oMYDF9(@a099**Q#6tZ?{@UE#k0t^FB=K*^88-4VjK;7
ztxzKB3-zqq&|hUL`J_hVqkf(TW7t>oftk<AgF!@+38_yWMIyN08b^siiaWIu%tXbw
zp21*W2TTWlLe?Z*cJeTKlyJp1)1AdZn4MI6X~G|!_Z7yn>2bw?;w>CFX_+av12Gjj
zG0aMVfg??ckSDHse5ukId2JV{MCREuX3u#ieO&%q8sDU(e#B;6 at GNfmMc(>+=F6FH
zQ}hQxA-$DxpUUMQxZ$|r8Q8(og-uUL5fC(bXC?{7DBNB7Wb8Jr7EvK&2&*;|il2><
zf1XMB+&UOOE{nP`xy9eD3=x8}yJcL at t1*x5oMMWWuFBO}vj!zGn80A<>^A^ZafN0v
zUX at cVu80%;{Y{K$AFqZ`n-4&5u{MW}aaA`a&JlgspZ+l+Ywk8NF!oeNe22d%n|Nuv
zxwD3n5ly`vd<mjr-_=HmH=xC#3YRfJq}or*F}B0(;|!i9T7zmc>1TywKwI3%4eRX*
z=d+bKD#yOG#0{C<u=(}0TGi3EzLrRsSuWVMnT2v#AkKp^(-PgeQ^=yKKH<=j31XB;
zspEQ#+tgC=n>1WB62L@=am~`rnk{?&bBl(>Ew8Y{L}&aS*cp?d(owQ_b$ib1pyD^!
zLP*5u&lC9GH_X(xQd`T5pCpPR@#JHI!g6ctgyIN7x>&$b9bAFf6qM(`$qv?IMRscw
zh^ffb(Z?G_VQ!De{;xDzV(R at t4neSVNpCT^#?%c7nSMjaiZ7lyM;&4p7thTcbAEmR
zP=uPWO|4}(Q279+X!e^W8k*qpmPBh;Eh$|pfUIZ=6JV_+?sE4y0Qj0=XXlM!U&C2+
z8_+!gfecLUL+QkeDHl`FViBhrTvG#mEnpyp&8y!mDe~)qyOo=#-Tul&pn=gMP6wr6
zTh^kHjM*Fqgth<J9>Wy~5w at BhHSR_-L%4Vb&aDid33>>{4zwtkOEN8DugqzK_`u!D
zks_3`_n#e at bUvAoqD4p>W>G_Qt~GT<PHD$AxvA8wFHtG*E}R*dJAN`25T<0lo`mK~
z3DB$Nk~g_R8j_o|&AlB{SwWss`<<Y5yBD~@JtxJxw=x-{{?zD0hR-04(%D8^hgjH`
zlR@;_Rl!u{N~SJ~szO^|-+K=<Qz0nC(DxcTWs5#-)LJ_2{@Vx{8s;v!B%ms)Jk~4P
zFIDU~Cc5K4+@(HU#KQQg`I$^TWq0Psr%NlXCf4SG%!Y75XE&%H=$KxNG&$;v-`joI
zw%(p-&Rq;bhSNMyn at c^a>+AQ6aeh9FJSb(?bv<GOJItO~H0eN0B}EIl(XfoAz5ITU
zT4yPe7W*^H#4|qY at 6O;`<Bn2`w5v(pS1ph1S+#{W(?+1hIO|fWMuB&06!_V9zZgbJ
zEp8E8S58w<Ob1~_XX(om7x#@SCJKD at fXXWBA|`}^Z2c*FT~8BVHpxh($-O7?i+^X)
zj+|!SP6hGOC#`KJLYUHpO{|D6x1xI}1bj8^RL$p3gc0h_)v5^p_%Mf(_U<Slr4UWk
z*w=%n<iuHw*r^%Zy`rUC!GZpVK&K88$<6bntXFY_1M%}$0`|ez5fJumYli#UvYNnd
zI8XZZuZ{(V;EpiV-GK(=F{%0Naq(Z!!FG-6A<g3-#bUYzaJtF0)kCt}1QXe3PU+j5
zn1$Li0aGzkQ#Vx8rp8ghY?BZ3wOv2tEwtg6zU$gxrpaTX2m1*CeDDx^PY03?zS*Yp
z5BLa~#GCl$xsJe$ayW7=f!J}8|Lw8+vKSF9GhX?4P<$Lu1ALOQ`poAd3%IEGJ=5cc
z>;Sztan(jk|Iyj$us4dvt?`Z!P;zKawoevCsJCK})2b6aWx2)Mw;5+cG79Q)du$7e
zdVwJ;Dp6gA0Jn}Ml8G~;>}*;%I_b8z{W8}Mrs?aMqG{lqFl%3*F5T7zJ09VYat}=K
z88|<7 at Cca$ZHuI>nVU>bD_QkeSxh1*tz-)(r>+b!jD=PBZ at p<I7#4)|tfx_D82rdb
zKheke%wJg9Uk(Qb)b!K5lDZgIH>xdg#l!w-_-RU^WVhQ6u%gZTbH-37vHJnr+JfF2
zNy;04Iwi}M##w~pqU={f1eDjuN>%$sKtu*pg=o2<o(U2Qf1Uxf%Y6mXfAamRB})nz
zsBtM}$OES7tZ<SFM>_gU?e3z%)RT!+apQ0PYA-m2duaNLkrMd>n?iv3aK}Bz=@S0r
zhY2VhNH9cZQJFv>>d<LYdH5d5piyUgd^DVOcci*KX5|fc(3jknh}ibXqnrbH>->u|
zYtmraEhASGrM;*ShS!7x=)6Li+WFKXvlx(Sw~axyC8o^e1Oo}Y!yR1D=rr-;U_Ut5
zJq>swrfqO!uS8gFLWCWT7aa%XcwC7vFK}26E~_-HG}<dD#AQ=>Q`HXX72EFm#OEec
zdX$Z<lW~^KRYUMyn#I_-e11ymLwDLVQAhi9-~jkfc3(i4G3(bO-Ne at kXWr&&h~MVi
zpewv^hA*@(O-`grqC&eq>pR}hC>q=#mkAF?qZvKQ1#be!&(`52113yzsO~bd`e)zI
zk5n=Cqu?|2m4fT+_Q-Ayr}a(PxHrGKeWSfap)wkE!N3j-PMjXVpHADFGxBv9&6Xby
zJWhpG_Dh5 at 9{o<9!ZW@=m&;^zt at VU_pJugl%2-%EF(dAO`;bk$^{DqX(8}>p`~Cz2
zo#G_gj+lH~8Favujx-jrcz~*K6<b2h^4by;Ki%Snh7iGsJ0Q4KKEd?hY;c@|Yb?Aw
z_=GGHNc`MLr-qnN3IP9?TDl!Q<i);e?0S+(4gRePt=ywfnQ45DxpSt+V|&I|RP~CL
z8#Hd}v6t?fu53w6_3f8cw?7;`@WVavkO11~`p?y6C&AjML~Dw;f%4r$WF9 at 8*W{Y;
zeaIW6I{e5_xxk|$x4uJgQ at KJX%A~ZIv!Cw|o|^9X?ql+%0$3OrJq!LV8lzbk8 at Ugu
zHh_xKJmjT+cdoLY0R%Swlq6~4ey$PcY5D<+gqTPFUP4?xb`@HzexzO<2uh?`a=uMp
zUP-H4U`0=)K(PNJbf=2E-1co)MWnDPb12uCn48w!kM(hv4-4Q=>H1-zvnb|=6BJV<
zIM1Ft3UhI at 1ko%Xpg~h62NbEeag_82g3!_+Euw%17WXl}%H14yK_VhZ#4<X7+A_P+
z=u!8kgaS-Ve>eHws;L+gmoQFic at p#jKrIYj9}Cjqh5<{&?ogLQc`T?HLT=Y;J(xc|
zTBLeZpHWkk+<hb7xa9clESJSe=+qjJQ@@Sr%D|WlA(Ob9fm#d01+NT3kEdlAQ<Hgl
zY2 at tma+i&ZFg9MllPrgl?Xa_7DgH|!pV1VP`ASxGD&l2&cQ%%+95U75pmQ=IenZX7
z*lVZ_!3)=K6bcz58z=(+$<8xG4~0P?Tik4``^O*27x~?o>ixk!6#}xpiDrJ}*jeeK
z(mYAZLe{#$N(EGCaCN`jM3ik^<uoQONB=vXyZ>3~_!L{;W>h(@E&tUSeZxfd(GR16
z2=?Zfu~oYAJrMr>GMib=UEGDksP^V9$Fy16pr}Sjm&D0HO9Ra3R8GE%r<~d_gc@@O
z?Nn%0xuH99rqF;@B}t)6Q at 4xhiXXHgNTwoZ^6PJ0E?oDRLn-p}`*fu{fhRa98~!)3
zZbpP=y#9ZmlI(#@<{oJM^+jlpqztFG*1(URnRC7T5&S>}<_kqIKVQ!5rYc0#Oi)#=
z08SrC0~|DkGiZWA?f&7;;)_9KIwZhF`YWN2Q)HuO_EZ52Pv?dTEhwM;v|hznnOeDb
zU~>iY<uAsc(@^&)uhG_H63=#ro}S3#W7a&>(lpK!0ejB*>G8cZ-V$P-3K0YvWwzGl
ze;|>8Lj2i$!lL<DZ>%c)FR!QOU9v519|Bqep94~&+?${ix~H#ke4kJu))*t15R4%A
zBW~suNCs1k<fC*^3jO$&i;S#(%H(<PIXwZ<JGsy9Ajnh>oWtIKCNQUAuk!5&$5j0v
z_5siP0O-rsp~yq;N%M25DQITnkc<`sns4+B%OSFgfY^T4rQmca;9$XirH-W4?p|bj
zQugY_l6&+f;Nl+r2qP?p;2QB{raDA1lK=EyC#~dvciJ>rU<*(=;25)k!L2uG^!fSD
zHiAFpO!H0>=sO<{1ILMA;Ny-XmfFbo^ILg;Y0eoo4=(pm(6r81f1XL_WxfQd;@!O}
z#^<>3^c?pW>}|a6qxtK55a~iIGcwT at LE5~WQO#CkS03WJR{slNh^^1y5$E?#Ig*%B
zm7!(XW>6qt#!$G!SOrkqRH_iH11jS|)(*pdpbVu;*3o%Ie`GNRcYF!X<X2$CvVD7j
z`0>Yl&z5~5&qkGDPgD5Qj9U<i3DhP!4Z1-p(;Z{B at eth11tc=<<Ube^dPExEawh&{
zv;u^*1dNBr<7>tn1jY7zM~jm_smX{1OOHU?c%nhTs|KraUwE?Kj7Kh*FE#_#esfk~
zQp8!c75kypK?{PpBeLbs`yjs>r=r^xZCU9sZZJuOkbH2OstLsPh^0aZU1(jawY28W
zx5?hf=_aGfHzY&t0S&u1UNus!5y#T!7Eagm(>SLRpox|%;JR!JF*G{~#!LAe>!PyD
zN4!m`8s;4qYyhz7LC|yJP^h>^a{fW^o$YZ|nJG`(w=7<Vf0Qqj-yfM*DoQI&hB@{k
zayjWlZbExl&AJY^jNo1zkK;08XN;xQQ+!SJ>ox?iYQ#?m!Im(AcXF5gTPD2DGYaU0
zG4^qu5E{_Xh8$%E_rEm*v)k4iguh+%dDDgNw*&eHdMuaX2p}g<*d)8<{PB(^c$Oxm
zQ}i1vQc&P_e{=U~?zHPUnuXvMB1KwbusBZ9fmOx2g$9nZT4D0}I}bJ>_oLVrx*SjL
zoaN(OmaJDXAdq9<ABOdSn)>SbQ;@HX!%v)S{-WRKX%T=oqNxqPMNmA(ra<{qgf_s6
z#9<*H at VLe2d%(JBYck|!t>l##s-70tL=`3}jyx389v@~D+e`Cj;YqqrW&YhuHQW}V
zFtM-P&H%Cm-iVFANPGxrK2~Dg$g$~~7#gvdEon5*AGOfV39-0}GL-VfkOcu1WEUP)
zdW9V(=0$B?h~%cS#d)e<Yv)BZL%76^va2lM`}iRN(bzWbh7ZDGNucy7*sNM at QB|de
z8NeW$PM5c*!^}F3cn=4^Uspe3hRx?IPQgP=_!-!5_3uC>O6XY<<|mJPBjCErqKC9L
zJl)#<n^mZtYnxYME#lGZ$QQ<ja)0Iu#;-8eqDH_Hf{;n<ok?jUWd*aDEBG-RSB82<
zwQ!~edI~M4xi2L#4JgAh7>~_QW~JY~#%m&hQPG^kYU_{D=vk3Q3AqyMPH68?Ru!^}
ze3wiS8EmaKNTIhe3o%8A&bpJf`*5fhL!GydvP8YWkTmI9FT{5hZ;9en&T%g?^WYAB
zJ9UIVw<wF=42A41tzNNGmlU{kT7uVgnsJC&$bj6dY`2(K;5lG!XI#SGAY$`D_>A31
zj(Q}+-x0!+u%Yo6tf?mmWd-sj+OA!#%}n2Kt?JZ}g6)av5;ikHLVnD{IQg%80SpMM
zxyxSfn^pPj&R4GELtr2ze4ohN#3Cf<lCGU&KSc#JTj}&zdHXdej=<iDN~^8WRZEln
z{maRt)3u|gSZvZVN)3xXv6>Yxn-53?S43XV1W9Vunid%j9Qs=(wp0FsGWNmhKSRPa
zAS_$Ou{>*dh4l^pj-}SOiKQ4n5AWGHIZTPHBatDak}?VS#n?HgSl!;i at h+V!Z&+xZ
z92gDgAlfe#fvJ8M&K{92=p;jNKkUpiA$m4VRLMAW&)*ceMAF%Ptqrz@%XRl^CO`+O
z3DO);DlVCg0gKTjLXW|^f1xJHN4TRKoaR2$!g>*!Gz70~K6toM at GlzWY9)(LhBv-q
z*8NCyG!Bj(>1;;GHAcnc at 0MpJH(%pUzT{G-^&^gDiHio_Mw5l5S}#=HBm#14HR4Zb
zau?`CaaWlCgq(P&QWaPRz~JUlN`MRcj3ZmGC8<iP2C@#0Q$u7ZAD5I*jK#21G);fN
z2I!-_i^geiWlO_umenfl1#`X3OH+skvPQA6bD0@?P=R-xQi{Vpnb1qWvJ6c^sTd-W
zVR<a{vkiyMv}vyQb7$g71}ppr4p5MKfP?HS1=t2Ri6j!>!t8rBRC0|B&ZXpR|BqwR
z{#$Sp;wa2{4lN-2?b*CymCz12q%Cdo=ifex0p%j2<b~7_b^<VM{3v(OGL-u}hy2-m
zRo(J0+&N=dQRyRFcg6lg_m at KjEj>_74jQ=_9>2NNap9S1aG+dDDduWi5Wh at _%@PF=
z=^34~A1Ui at C$spybqEPau4))OvE56>MtA95Pzc|M$#@i7eeaau8!2}o#PEcg5B;KF
zeDv*oSPp79&0!qc+G*ek3^1j^+L2nV7Hx;An-9^!7C&x5-A-*_Cw*isjI4o#A3sgZ
zp9xT5Ju7Yx2WWan%(^WRISsa<eYiCeA;B!ZMp$BVW!BFPhc~S(EFozM6dg$T6c?r2
zwz(onI;tEYH=_&XM4y{4;)*wMHu$8uo1}G(<|uF~1OvQORnmjvGlQ<?Vras?=zA;a
zu>Cbp5j$bCh~}Kx3=W8&{f^EcJRwC&J9Xu`t3ys*x!gF|2CWWazEaN3c{7S+(OR2<
z$D-feSJIuK?6#)Xg*v!hlr(+v>&Z<Nre>grNnSm<SergZ&UwxX>?U9(w4`g1#<yM<
z;3DT7Qbmh<yq{yeY2>EdZ8ZZP0Hnjz9D#E0 at 0bforzPPN07`J1F?2$A at k47@Jchft
z*`*MS?BbbqAyH2el}0}lhu-6366XZgX_@|4pvVN=Yu0WLFD}!uMdLL^-eGlAy|f78
z%nX+)CW$*|-LpK(>&o`&6li81VPJDj!RI*{zb}gQ_|^&MtlY6mw+ri>BE!FBDaatZ
zmGNG}w2sf;f?x6-?NgEWYu9-M`Ruv-;Njn0QQ!#hbL^3c)gV8Y#U4-m_aH-l_2ogh
z8cbZ}78&g)VO5b|HzQnr*;_|$;DM+_vYOBjEiQWb04L@>R~;h?nQxIlN;@Yqa1tky
z29o^Cg1O%f9Ci<LV;F(zaPyfOPz~m{B2Qzr4mA5UIc4?eMym^@!K&H=Np!%Iu{2?U
zw>n>vJ}@}>kR>j at n5bxdKZR+6Bkpgn?#Seinb*&%V45I8!adyHg-EyB+taD7ciC{)
zH{b<Rk5$_^T#%5{M{A(pDMtZC0CIY$Rzo&yUfNj4MOj5lqhJTIS;3$+QFh(r*Mm{0
zw#%|lOF&v!U+Fz82P$JVJ64%G7<qDq$o`Xa=_0Wn2P!d_qay$sNw9PJU8)8sTr6I$
z1_`;2tZiMgAb8p_S#4_a*OdYhhms?ZE48%FNU}1QIA3Lz%A}GYTMa6Y8WhE|JhOt`
zsUAr?=}1ib?dOM;U?Z-%Gis99UeO4=L}1ll(v430`)iRzFxDL5LaXl(o(Q=;!fU!Q
zoz--&nRv7>WE5SydJy}6B7p=bbh4Z+I-WgbMXEJUDYtMH40=??;`rX#N0#da+s-Hn
z;!OQxA2Ki+{Y8vKRY=XyPD;+kGPC~gqb=3L5~+t6`-ntaR1jubzcwKq9Gve*vCWyI
z1B9vVJA3I8RhJR&HUYk6R{QRTOpW-}7?&`3nUB3KyLO-g(&&!;G&T$E);*gdPV6!6
zhmC~ibIL)d-#0o at PN}^Q_{us^m_?{x=u&FE53|?>;CH@$?-s0ENuljvrk-?kFOahn
zKIm&_Hyd%Aq;;#~#>kwmcyL}}8qo2fdJ^MZtW~e6)ICp06!C2At>KsxpJ*;%+e+uG
zA=DF*k8g1zt(E8UeF54Vj1E|YuFm;~!a^9V5<0S1%O^2bCe3Gb{?#Br#IwvI+qZSj
z<ZhWNwa}in2tZY*LQ-kCdps at v<lR;u_H`&CvVW*NaXJSzPwtAGP|5Zu3el6D+*;Cd
z+D#4POZ*p-^ZVV==OfNUWAxvz9u&b764F0`x~&7hbAtjh)&EJ!oh~4X(k9s)U9I*N
zx<BuSoReaXR`~)jLucDrH^CHmp4EIiM<eT&)id~D2^Y&H{%oj5Yn`5s?GF8YR@#3s
zdlLEq%pXOMr9Z7iJK<L-UJ?J}pd?2TFtO=V4RXXBRGN=|FW^)=%n)0J;X~h{yUuSf
z9smkg_TKI!^md2X=#?`+mx5a-N4{bZN2=`YG(!=VsbnVLyX4-s3TrKbQi}(0J)tvY
z(8*MxaM$%SGbu{O)nui5)DzS<wvpD8b7X+%TkB4Anwj$s=HD|-90ROCiUm_+?&7*L
zdL<+Uc0LFlxxSNuB~ScOh^Iq)lZz`zTn&hl{9W0gh{Niu-xaLuQRjPYHb?^U{}$ml
zr|_myDa>a%kW<&wN+g(^o0p{HQeyXkNP+D(SR5r;f?o(vOZWnx`sOG8>`ez%*MrQR
z=a4l;@21sK$nv&img<=Mw&e;efB^w16v?zFX643zF(xtX52Okp#4f at Sgf6nq`DT$B
zM&tf;H=VOp=GtzlYIVB9 at OYpz<gBqe=A}WaV~{Ny0U-y#O|IvK5loIPfhL9C_6)+b
z3C1Xbtt+{Jdq{%<#phgeNP0Vwq8Co4(q(kFq?1i{v~LN}%Mdfs?8lM;y>C2R at v_X)
z(1ZyO7i9%7ImQtKE5HK2>eZ+hNn9<}+KmM#j-M-UB(4ohD*ib8;uAlQePxRSH at Q`Q
z!(NT93v^~ns+1wSEM3o#O1f9OKGUjshEaj$8)FuKiY4o;roYb<0@|4iRAYi*FS;Cc
zyv*BdBDK=vCDiWr!eOwWTaB|gS**T)23O_u=HQ<J+}(&37gE#v%`15Z_A06e(e|*U
z&fQhUC9k}B-S4MiR2+F;a&>=IM^FU#!y_#_N6I#IB{JU>2&Y5xlovf+c=`&sjTrtJ
zEL+G6ht-1LGuFSsXb-#@uE(5Nv09D!FaMB%gIiJBhr8)cC=JTlKyVN>ziCM7tmLCM
zy!j)EH>^>O`9;>KgZ&VQ`=#sPh3YWUiniUzkk(ZXzEBSDm#xJ1m9LolP8)S(GSyQ1
ze4dz*yf1bsat**hAd<Wl;uvTN3-2#!)mTS-M8|<?8c0Zf?UYl4z{717f at TC17|e*k
z$Hyrcr8Q;L8L~a|FrydZGpTAqrKgd99efQFXl;LNRBqS|AevgyJU(Jo0SC-f_6|;3
zQ(`ryzngJT`ke8LqBLx+C6P-*iAe=JrUlC#yFt}nn`QYCmU(e$&a=T7dMMJPP?+|-
zG9EFATEdz-- at -87N+T$2pm1-eLPvG0sSGDOAqM;VoHEk{eM0H3wY^98%R?6tmWYZw
zxCm{)`>?F|#Gz$NQ at D^HWW0g7Rg?!0;fX_Oz(wpE at 2O-QOL_-bOx~nFyd5iHTvE%2
z>Tdh`caLkn!jAD{!x8AN62dF9hI2)HkI3Edk4Ra^P(&ivI<R}3abcR+JYTucHuf=J
zp<>yuj6;nNPt(2bz;{D4>uTeGdDP<P2SnZb_Q at ZhI}^bGZdI%dWR4&un-3au&-)8$
zD-<tHdJU$-H(6x1T*k at tq+!4k_d9(S%<iCFY at Z*m6TwO`%%Ku(By38GykyiSx^<}m
z=eFv<?a7eVZJ0k-h at Fl5LnP<@2#;+ueA)}zEyOrKCldWzA*{^#(Jz{5gqysB!a)$y
z at AhXNKIbTy*mss)7K0sU>qvhXASWjG2zYjnMXXQ-8v64dd at inRql04g94*9mH(j*d
zlg>!Q5U~(TNI?V=$_>R9yRuFac6N5mxJSg>m_*104+^tNae~dq`z3?iX$pUL7J-!)
zX>lU$yLZXCe^L at v9cXThhE=5BxQLf7J4S)5qSQUA<Ab11qeZOf&PQ{K=jp2p%jCf|
zg>mu8K)6&6nHKBDF{Bf%OCj~q3}L&$a3zZduSP<x^G`(gswx%+nO1cstEWRdEkMk8
zn-^y;LT>n~x^*&e_G!^}{Er62W?m*?-<0)RCsnh1Tt|xcpH|$jl^cnN4{WVVZ_(Qz
zK05+kTYfFNeW_fjO6ET#(5_;hX9LR~yv4t%bBEJln<My1sY%Jn?SXbuyI`h>Z>Kfo
z@)WF9Xn<fpk&{cS8d~2<J2Kv~C2;5SNFp)oLhY+-C>bDRz&rF{%&@dYdmE5$ONilB
zXjq!=BdRwWwO2};HO=5f!cP`JM9q5VTK@`-_B17nj)f%y&XN$j^rrBvOt^$QsfnvK
zdoftXknb|Z8}WRYP(fkEfy;9<bCw{8p=QW-Y!`2$mFMa at ri9t*ktV%xBw2{V2)?25
z6cPObF{KH;@B(EViFb!mu at Z~^8nRWW{JTA27 at Tge2?IH#|FteE5YLSB+3A8T9W+ct
zL0sTCfh8l&PII2Sl65Fe34_f>cV5j!BO^c$zr(DR9u>cu-OS3=U%IM4x%=*!yb!FF
z?Yg+h9x{>5ES22$F_V`A{thY$<O<F0`P{3AlRz(%vNL-^q?N%n7a%MmO61j@|B at x(
zc*3>imPs8J=Zs!-Q)BV)7lqsHH+Xs9ln|aX at WC;Ixi?E&aumVzE?tNCYF+4*%JY4c
z^zB at 9XI1V;&o-BNb|oB|8UfP(Mt1y`sdO9IeQD7JhR4Q=1IM{?gS5sn04O6W4^a_e
zcgNc3mo)v$L^i8-D(9tYlQRPmyle86Kyx$+ZDjDb)`O8A$%I>jtNBacoVF(*nn5{a
zmP!?rBUr^&v1mkUNXjvF(E;Sp2l;}G4kWcpB)5WUd4grC3Zn>fl2s|E)!|D_uB&AR
z)IBU_bDtpxf#zxFMA#|$4x0&UMB_%=>=!v$NBSv&^Bb<ws~OQq-zkFN5%5JrzkZ3w
z1M2QqT7BZpehf9HON58)I)_i*)*95P`avF5=5x`iwDm=hfH}FceFRJQph9=e-!{WK
z?R?NtICQn0K}k_%fgm}$CVz=JVTpWEvPlU}_WlZq9MA+sKOWt|rJbzJX+3Ni1D<cK
z6$rHES(*O9EnzEV!E!4;@cxw*>3q#u$(m;^wY~~{Xa&!jr2P}W8(-j+L!_KKDH9F$
zY<*BoM)Zjc%q*BP7Z7rcseK at Fl>l13V>meZA_0;`ARJz#>2P2a1_pZ%8q8C$#fSRR
zlB8s+6;voUVbslOEK(}Bxe7891<9!WD{#>)WMe{LgwKwwDN0YHnNj)SCIKj8mYl=u
zSd9$eZin(~OuBZg_Ln(=WT8_%&hi5B_5QcpeGli{<9<sm<5vaHuIZi;0F}4aQ<g<o
z&7t-$$upx$rkVrO#zbo4JQTdl>tK>eI#ZGa=t4-RJQ8NFxpRCa(xQvnwQ^eICs=xf
zihX at 8G>H<;^Nh_)dL+HKSDnpCZVSrT2j_iAn6RazAJ|jNk9e$PhPB%+$jQan{0`BM
z&_8T??)ipMu98MmKIJKV5wFTwt<1iNp9N}@`iA9&(ML40KC%0ZbY`bET$^J#)vCR`
zr~82f9}-|tBCUCYOsZi$(_OwWgNb0Ff5Ea?#ym&p-&QNuPPldpS(}7vmRWAZS40Qj
zCSa^JAyfC15~@wFuD?2M?gqu~p*<ehnW@)D7FA=l_x-I749$B^IxOd;Z1oRzNoZal
zZGe<n1~fKUb&8H!JswRPdqPH;tqnphWtMA6QM)MyMu4 at gqt-nKbP()jIpotWaqwcn
zbK`ipu-95r?2sAY63NQQYur*y*^Dz8n(9IP#nu?}3YjWSEr at rd(y&H=K*qW`kv+tC
z`z*X|CY-9Jqx*GWfdgw at crYdJIO%SvONIq_3+z>|@6AU+Tv_H8I^0&-e}BE>Gh!C5
zEq+A<O#8s^)r_WUesO+eq>iIzq&cb$Cp+U>@FznKRUSyrzp6<~&JD4_T>sM|RYx@?
zVn{lLj1YxF?eJ-&gxM_*RxNK%C$#voETjh)wjD65i at UZam|N_|1#;$|6NglmZ!f1$
zB``){(iJM)J&IIN9D9RqS<U~_wD0q$JVQqI&(X%9gIPgzgbR~$NQ<5u-AYez=zXO9
za#30oVOQe0Kr6hB6Sew;lEU5;>x|F1%hqt+uDE{Sb7%z4K5!o}w3WF^LS;9CE4I$I
ze;hyb{rgLdm*3=RFzu2)s&SzXF48rKEK&b)(z0Q0MLW@%)dmjAT?KDBLRnAozDyir
z2SS&ERwUYIlNx8_7+kRY)gQ4>?{88q47hn at -!(G~asveR6ZHt($nlYNZzS675F`5n
z;E*?$)`k`ZqR|#q!PpY`MuUzbVec`k9bolV-a$uT&TDXz0`SBl3pqH3%Jj8nR!1Sv
zH|}@>P}=>1s+K_|M0vu{5ddZ^GlbShQSsRYO_wI9qqAn at al>HfsKW9tI1CF@&{kt=
zKXroxNB}qW3Y<#D`5!=eYV$sW9&UD)G-VRBV6RCTl4z9R6b`<MUiQG#cV(2F at kB#T
zX|P}fIz!R_{U!K;$#`VJj78+ at 4QCbAX#EAyip56ckz!%w_zz3NUNV>PyW{}qZQEGu
zn>Xkfhjs^nv^xLsr9Kpmq1m})r`J1QtF4d6UZ_X&0MSY7+oA at Cj!}Kl9n-*0070tP
zMj9PR*&L|6FwZ2sVd;=!mDi3<WbRg=?}}APA*IQu5`9x3h#vt=$G=%+Et33{j=(dg
zQ6QNyRz4;VnfhZ>t9xG^gXWcp9$}51#}30B*X<Q^K|f$}KPS_Mq9BJ9D7`_0mTrkB
z)G$+*oc%xXE#=7P0CgJOM{{}DrJt1n3%Ha11+VEyJVC$WPuC1i0LeD%WglOlW9W}r
zGB?=NBbN&>fb0m`CH+v?V6~sC^CF$;Irk?+&Q8?6vM&()ZDaXcQGZd^T|*$5lwDje
zv+yDti1{GQm1R4-0NP!Y$@S-F^%<Q|B2XZv*>b2bsxYE$Bt_a{HWRYs?F?*Q<l+Q3
zm>6%?9!=p%Hn^d)L!L7~ePH8|dgg}Bp06U)&ii~yVpi7;+}RaR^nK4_<%tj!p6b#d
zP at Z3_#L8*m?0;{_S^AR7M_P<;2u$A3OyR5Hg~C28<uEvZ{@N*Nf*N2#f)J6Djh2FK
zSap_S<iec+jmP}{W at nsbiF~ObaRLa^k7;#MVPTkitX0k+q~~$0ay=M3P&YJ)R}Hem
zHmyDTh%)uzFKyQem3dmSZdJl|#tZimuRixd;vUW(#~oGHP2eMahPH$PH?5w}o+1^D
z?Z!{epnbt5pf)g=`VF3izo2NY)-%EF>cwJpfw&mZweW0Km$p5z$@lh}AAKJnBm-Vk
zBxPhCC~Wwd5S^HlC5`;MpaYe7 at BYl=_=pFqSfym)Awk%9v2 at +fgZ^)atj$-)NXzHZ
zyPL<)A3WZ{VC+z9t6^;ezcC%mYjonY3ReE&1FSTH?XSbs7zwvEJrq%6bur~XOMP&$
zVlJfI*yIY#P<6u8ugn&eSN`PT7mr(v at V+F**h)EQsCx2?SFndsKJTJlM&{W3%T6q+
z<3hfcdDOjv#1PFU+L%E5QX at E9l_s)&WqXFg*`T$;t2;sl;;L({fx1&*=`i`Xy!bfm
z_f!04xiyM*J-ft@>H=64)Qp6tp}mG~#<~@3&DRi#iipO>mNE#b-SeOwgcUzR$}eSv
z`_vt4yRP0v+HE9#O7$3Was8wkcLg4~w{9p(ZCx$uQS<lYbFr)&+FK}bud_s+)%BNr
zTW+|fOY9Y&C2c at w#^VJSg;7N$cj1+N31n-fyd4#!BRfE~xG_T>3?yw~-Wu3~wNQoW
zQaD-zJn#8@%qTJz|02x@>%PMJ%otWIYRYn>JO<3$YF5cIYPo?uZuD(|PEA?8#u-Y^
z5NydIvlF=}HZ*Ts6M}1sI&9^u(IAa>oEmDVY+IrurF)`(PY$gFdW1)R%Ml-F8P~=K
z8zKGS4v!B6J9EA;z3(T<N#DTd*fF&Rm{-8y9^<$x0@?*>w2gq8+8e~`OQ}`<$!lVg
z;oDCVH9<KD>s3>YtCtck%YioI;&!kI+(YE7hd6>#(4t9Xp)B};rp%8DDGN-;3dCLH
zY*PMfzXvlZkK{V+;D<bm>28HwTb6Rx^;9T8a4Lahxbc#<j~<*1uNP)#rP>io^d&%-
z!J!dtQ?Y~;Ru9oQ_4rlqD{i|#G9TbrmZzQbLF1L4hHyl&*qnbteRNX|60oRx^_JPn
zW;8kbCN95f0#ofks=j=6%!UU5z;}Gf at M!D?=8PNv{kh$n=UP7{a6Xw6q^jW~;>6(p
zp$|{7K3x`PS_RhtaJv-?bgH{Ah2!)CV()*+O?Q+|lDH0qP1pFhvHi at p`<)Xuh~fhC
zy(kBUwWxd5EZc5Rxc<atNE)}~8}cN$s6t;wI8zM+^FCL${u3$~F9BI&Y`vq1%wLJ=
zI33iRTxj{rDiL0r+RAl_wJhP!+$0vpO3s#OKflT=zY}CYT*QeiI9fGstZoINP{^&c
ztG-eAZLK34e at 1xv0$qyXR3Mz~9l~P#(AR%yKLbgU(16K{Wg^tM6S!~#THol&W1?CH
zmG^rIfs^{(jpq%s_f;&&ZJ?_!@SZBh8&cgN27G5u5GR6P`*=!UCIx;F?2bD_v7q4{
zm8G&a5ah$v!eAj(g#_oGO5-S$6!`F_z>w3Toh2~4AtnM2uBNOS71_Bl;C;Y%^V|&{
zs+rUQBiyI0-DxaggL8HYu!pfa|HGqNTX`5PTmbTZR<|Wa8VLyOZo5D0?{L8J89_7~
zEKB5`Fyc&RKQkoAJE5XTo7|I_l at tWHkP=Er;tXkVEIz}w%)t$D(BVjz^Fb3AHpKm)
z)y4OM&{b5APV6&n88dI%Ku`#OwrgbEWGHj#Mdmg=;u!XLw+NdHb_Y*_s2g)kbxN~3
ziy+%@i76bTkefUGtox<}>~2KLOKmk7OiN!2Zezd&A<KbewLB`9^NN|L8{}+a6 at gD2
zubIMjdnVd)nexdZUI-tum~=kYf9=fez#;MV4>7j&C2ZpKX5w%}QAgx(7%2T>o1i04
zav`9<ruzwVyTzwoBEPfH_NWKdJ`zOuZX at v%P;Vl~vJ`Y1n?7rBHK)d!7RwKANoiH#
zc3u;JNQnbjt~)8Icf7vzN5ro{-SNc#VasyOjOe$xVk=we#P6Ssx22b{1=Ehb^V*#6
zD-AkJv{>GeeEQI2DiV5;-CcGd&R~>8*;RTK+bU2d)UeTHXVjZ$M|O)d0>U+=+JvbL
zV^YNNKwas#^aOW)r{p}*I>;MKeP`_&;t^CFyDuzLF#yQs4zhtvPVbBcQW8oz<HYf(
zpeKv=HaK;!0dCo54HEl5TAY$A7ZAhpaFmawUZ|d<E;h`Q(+Sz(2~-BuC3iRW*69VB
z<qnz23K$J~WwL8S%hlpqt5$AG85Ql5)O>-=9|;LjvWgSBHU5TI;{M0D0O?)=Z6M!J
z2Kmk+DPQ;Z at z1O$u3s3>^`?iT0Q!O%?-N%eLAbI_)#3%u5V7lIp5L}-zoZqAsx$64
zLA7j!3R6LK;A=#|V<9LiI!v&pMn5worjScPl26r^G73^zJWE38D*X16^HND+)u|{~
z8^hE{+xo9nNW%t7X@%vnW3WyQ7v)xXKjjbZe2ITv82oZY<nc3Z#<xr(ZkAbC=U~Ep
zg#@rhH<(wqhq}+erKrS{cH4pzKzKnMimcs>y%Bz|4Ns?9uAFGb+?Zi=JqUZn?CR{@
z!~JT9Dlzmk<T5=Zy$N&lNp>YjjbQv at Jr%3coREsz-_P(I78ft!-<BpZT3~=B1_w7q
zP1x_a5-T`8oD=6TZ~R-QxR%D(d7~`OB!sArDrCg26G}IJp}g!lkF$v{|LO(O?Q)yV
z5qq=QQ$7NblW1C9BZVSYK{yMvk~avU`Mb7e&8wTdROaEBMd(y|c=o)S&!qhPe&gHI
z#S>9Lc=-vXx=aHmf2E|dj5=zU-^6=}&MEyvGBC+Wss8-<1qf7<@Q5Ouh9xb?0_+#D
zOoLheBZv1?r{HaE!uG~UclF?i-lbRD=?!nU(zoM>Uqexu^q7M9z<YnR?&}9c65pzN
zmtveCT96S_bP<3W5F1;{E!5C5o4zVQgb3DY$JI7eYaeH-=V^Gq4|WXN|9_bMSJ at lo
z(%mr1oOasiuhg5<JLaB)zX_4P0+yGh^cZtdZFE0PKh_3qc4}};QnhjhE|Y$iLuD^8
zP4<Vp?i_kZzN9>N4bwp7MV5V27U#6?;%x&)*?MBs?;9vrVn`IXcw5e1Z8hc_&5a-k
z01nA5CT>)}$|ygcg{n30EDzjF9;8fAmA&Gn1iy(7OS<-$oR`LYtAm`+UQ>-JU%&DN
zVK<|cm%6G)h=GZoVrMX4muc6U`b<c9PfX`};Ns&!$lmJ(8IJgxXZ`tUk;?uUUSc91
zdJYHRfUp1Rom(QA)mIRgkxW8i*hWBL$!Kt>0j(NGS)@VE5v|%6hv8^72xqH&aM=CR
zCI9!`9baCqNMuT}Y+k1r>-KO8Vpyc2LXJtpl`F8TOJhG1!O!07`s^iG)GM<L#HMx)
z()ZiMXmz at 2{_t*Lg&#r!)ei(f`Pg<5i9u3QsyVf~#OX7_VoMxSst*(P#D{_wr^JMd
zE}_E=UWP%o78QptQC<OXr|bl;k56y|n<k4<Nk2<yPSEy|%=Sj~v(BEv2ACLvTqaW(
z&g}?76{3=IrxL1YjBh<}6ImcpCP2l3${xxbST@?eQ`=YVJK{75GwAWw0>8?Wb8eV`
zR48=1(5TaYv!?9?5cjNcSmxokI22yI3k3k3dbZ}jsetK8;UBN?!Y!}x&wYvAxq;(^
zh5lbITFEo)#KmFO9T0_q&M6}NN8yyoPy at S5o56aLoN{J9q+b>g=pLg02)T0hdMgnZ
zuX`xPIQUP41cyyiY`y5#p)m_x8>HQ~<K5Ok;`rxJhGuQFFN%zovt^-?W40OR^gCxF
zur_=a*^nuMkg%>E!8{iqWn+S_U;yWoJ=J%N1KDfYR2|;^%${PMdg^3&uc~Zsa5bZa
z_HKoW6H%!punNf64yPu&aA&w}9G33YDGF&jDRFca7WlbPD18??NPKO|Cjm~#uFCu2
zapD)BMS37H5Dl2?hw#ybE-alYZ6 at bUM{Ir{z80t3(s%M?l^(9O=CXT#Ikz{o1IW7p
zo{<(Z)s!LO)_m>W;+3nAbdCjI9B{!XbE(phL2MsG+B^j8Z1kpHPJw(_u=WKK<G612
zU)2rR#o<4^_HNmo#hMWcK}iLMCspHny6w%u at UG|uw?}%TLb=8gj(T0QB#(GYIBKVU
zY*)^fZmzjLjcr at yZoylL<C1l=1q at k)FahN$70eI64WMiT!$`m8TuR^3QLBp~yo3xT
zLdI4qUc+iZTMB%D<|skJEW?JzS`N87XNQY6MQY!8eu{+rlQi(g_*o)q^`QQZzio{d
zZHo+}YhvdQbGm`6l+3}9`SWlm5=o$~M`0+%+_kFUU(som^BjJLXOk9`-S$gg*Lpxj
z`-rN+`ZpP~6NLaf-t>O1a${AA4DSEbD~ZX}?7EO2PDVgJ9MYbcJ_FpS))gN)0$4jt
zW#@AF<w4QrKs#Z|X4*yVg?Ia-6_+(#;a{;#xTD}Z at f%<ghsD7d-37S(DVWh4hq?`x
zP#yT+v<uu=a|x?;noo^w2mj~_7{qZ7K at 6jP-{uh5aFmR>b|q!uK(#{V`RvNyFEWI?
z4&XH!In=So&}0j#6)8-$JMBFq!J-7^q`9w>K+6MBxf6#+QJ8&M#BX3qI>h{&<dER4
zi%Fi+lmmin)~=JCkRyWp?<NU?z?e_oA<n2{{Hh3%*{q5XxKJ6 at oCp&-#@j!N|5@~(
zJh+8Y6!0CLGLISaMFZ00)gb;P??e3Wtx;ee%rHQ5+*ACsZ6dE*DLYg#`M!GO9}K15
zsd?!7KLNG7r6s2<HRctu&@9dex5`Vqmhw at gHuo|64|P7OrJO{eRx*}v8E|V~Y0H36
zp(1g0o93BThob#TN=*N>0iO<e$%+w!){PENrw5g7Uel$Hq$?nF@#cap7xT?Hn6?q#
z4N at d{93wH<_+gdpU(4f1VRHL5fC(Mqzq6ecu%g$%_O2b;=j#tlUYPyky1;0kuh7)3
zP+Rc!@V)qKyfB!oYNY%Oo55|Q-9vQa63=ZepnNZse-H0>+w9FgJl9 at Nj|O7U^U9hp
zU at po3-nXgmk^n_sVvYC+duymF)$0 at adA14(WHD8ur%7Vay;76vjro_}x(*NS-kfp;
zXb#d}kI+H07fSbTV}65 at NOc_e4l@iz5TnrChex~d_R1k3q(6Z1|MKznyVG6q^=EFz
zyU|5c->!rG@}5{<g>=<AJp9>rk*RgG3zR9JGI#dwmYANXN{+#d`ihP(#wf|-C=Tz8
z|JWpor?Du`=6m^!u?_xFnPMk%`>k)Q4q^f01!dum7ts!BYn{ph-v!8j;Pe;6(@XWR
z(&XARS45}@mJM4QiiK7RCa0WCNMb`j-#FnpN&-a<<K_{}qy-~=t}^Pfs&VEEt-Sn-
zrB!`i9pyTAxsO0_S*pu`3cd0s8wTmWa5Ah50LL)6*szbAWL``pGV?{D1 at LccymQI)
zXyWsR3+<)F_A*dnqd*K at w+!qK5fl-kwheyeJk{Cf$_Cwbf}-mHa;6~55G2?xOe&5M
zL$9=b=FhYTBxo=;SZSFdr{gz)e_Gf_#rbZFViP(K4>}eC_HO_d`0v2k9iQSgR`8)@
z8fvPh38|cnw9AJ3qn2VRTDX;{#_I!<OP4O!vA@}!ouJd79CC!@oBeLY+ZUClABmkl
zuiGR)GPo_ at gM99C)lX*Xqt2?9u))rRd+judmI0PGND`E%lY`D6J?o2g#PPY_2w2Yo
zfl$c?WHtwALuN#f_5yG60%z8&&$buXg&P6#$f%-v^Ax_V!lxVv-deO&f71dkshKD)
zw9ddWyg9ECeZzgWrnjT)kIw%7m|N2~sZDeCO7a5p*4d_fwgc!~g<aat(~xi|!Q2~E
zef5!a5#^RU`v`@16K80kbOIf~|90myUp5OPQgQUjC0=Z^@)7ibiS at eG-kqS}0!bi^
z{AQZL8|)uC(Q+-8F;z9B0dbac9$G&(-b`o)O>@gqE?AU!9+F1Z0kCo84O5HN4yYeV
zX~land&`QHpIctQ(?Yj{w?*xql(vyQ5u0`>On-;<uApOzq~`TxU82%3dbwEA_`IHU
z1~vQlWE5k|eMc(2?C1rdghx`k+notjtvHiGNfDQ3h`2+?(Qfwr-y8e{>K$o16Rm7o
z-Oq)N5&(eLHdJY{oFqpD<rH88xaJ%2^?ze)N_}ntNO%;$ohC%ngRd&xnV8m4i+=~>
zh;KzZk2pssL_QGl$EBL8Zgt3QANz}d(Dy2tJh=Hn at Wo~Yfc3``PKL>{P6P`+HZ*QI
z;SFhtY5V at V%J=Hhfco+|;vtm%Lt`1yk9vR`wV)7K$KRWtpY)~zPZI3*`$HXK)VtKf
zq5yyF&ljHe78^`9%e{I`=Fj>KzJ at RPCiV=<FAnLq_lm)P?F~r(YDVlVy)enA>`P4g
z*$=rx)2SSBY=XSB>sw&!M&@(p+n&pV*ev{S<S(rd`7I+Lb_&IGw<`@%$*k2OwN<NU
z^nGP6x7qXeTx3s9D=}VHW^ra2Z*b1IVP_sK*eCnHpf9Igo06~vS!yg3Z#s#vH$1(!
zDG4uAT;SF)tK#~+d126dtazrt_ZR%plllh65<D1x83%pKC+o^U%(LMVvV9V<N5T5P
z5+*&YYK0*og`)r996+fkdma1`!)vvibJ<d!t<qZ02u70XcWbvXuaI!s at 3y?cn)oGr
zmI;U6E=4?#ulM=E(1nU#`M$hQeTJ$c#xWzu-hd-&6=%xM(k^Rek=I}=qOf<Q%tufI
zyraPFeY&}8-_ipxA1E9ZIb~R{WUqiA!Yf~GW-0KT%oqc~D^7xJR4Tu6%+EpU88BC5
zD|zj$B>gT!+ejeXA!ZC3CC-&_PfQKOX6Vzr)j|tL2m~GBUidBWI>oIN|GklD*J5BI
z$(D(d1FH2zTw+(C)(Z(qwYl%lU`J*eL}<tG&;XimXmyFqT at d)w2pEJUp0?Y#M at -kD
zG37`AJHCDGWK}{YkGWyUw_SdR@(9DTtG`Td!N5nx%3mYV+<zA6Kdq0Di`?<u-s#wG
z8<*qw=!cR(b$UHHI9_XIdK(Z*o7}N`SnJy(j3!o9r5z3$+pPv6s`HX*ELsRJQAehY
zq;^>q*Jk3a1Ur(}5ht9bq=HWOlO~~GQahDuMZdw+D8=9jj2_2==29)tG~cJhXMU=A
z3Pab)<Gcw!VGJ3baC44sK;+Oz^VXLiFcf0+^ChSLSv{`zh>TukdiEj$v7k`3Ac)xj
zm#s6vkoN2aXH+6QBlQ5NHNE$NruR1uJH?*-VE$b#oM%XE%cRcC&tG>FBYyI+3=YjS
zSXsCG;0tLzY*f(tHgTT#$f@@YNf3AmZ3!&zg=`@!8nJ09Df{dRGK)@_OJ{AHWjfZV
zpw&#<h^*FND>gioIblS#eez|G;XK at 9h+%i2)L8qH2cyyL{dDh+QFWg-c2>GB3|ZDi
zHIDxDzU`$dIt1`kp`R~B*Lv_>%=8UZ*xm@;LCTOK?zd2(nlJoY-9kn$G;G|hP7XIL
z4|NbQkeqlUOdt}e+v!=(oQ9 at g+H{4FIz(G~oS&#halSw`;y`<!uiO7#=Fgg`^rEQ!
z*#MKF!})1Fko^m%Tns3UiDen at 0_Jscr~HX?qv22IQH9vD6(RFCZO$P-_aSRU%au;X
z)DeGG7kbeHHq3+w^P3%wfSvXpHt##u(?C+>*iCm(*kbN>dj{@uJbEi0wj|G`v%}7#
zI012J*?ncrK4Pus+w=fIFMcLCx@;A4;yim~ELPSj!HeKjf$d_8ETaE<{C_TT4i0+=
zDY>5Q*G-izE1Xilf>-wDZ&d|I^m9z%2i6ds84m}0$a~Sq29xT~14biy(2wJL<=X<q
z8YY;O<O4y&{s3{k;?oua1@&U!Ry|R2U^|@bF9CcB^j1$!kxpc~0l?%zgx(@9Dy_tM
zW^KJ&+hm}RZgwbDOl6R{1AUyrkwHV(;&u;j2kMj7P$2*_K+M0U1H@;U;oPWsuYW8m
zGn at 0=OgkJku;ksTVwsdoNOa99zm*MrDmpERz?duuLN*ZF!DSm^FB9A?L{csE=c-rQ
zEb4cd at H-tEKe%V{wQg+J(?PEIp1_1$IAY*n1!W%l{L1}!f}{wuAl at OdDcNb_O9sUj
z(UKSzzVH3sbM*hq>2Z}(W8Ku>K!{TQYTcX=;{b>Oi7ME!9=SaVeUK+!2Mr$*%~S}y
zTdn(9{~$brNz!*71Vv+v_Jlm&RC0uy**uYCiBX_L*7hNp3Jry(`1tB+BJlIUi7iIy
zusr<@l$82tlzi4|m19i0wP4 at 8=^HHSH-6rm?Urfv*40|X;J(p)HY}zH#M-6_;!hBZ
zv9(-O at lwJ)yx-XRI4g&w5i^5IPI!YjNHtLvcy!HjmsF7C<w8Q*;enqAFDs8+KUT%c
zd~`XIkqvCniJ(6xb=~K`*`QuT?k8Fabj at b5U==SNw9)#drzz*PD}!nesWTm^Enyw3
zL5ZXNo8Ypa8AQfEBHi#L6u(UPJn3|GyPCJoRNrhY@%Xd7*<*O>$-<pM$yP1tuATy~
zBMGfkBT(4D-iW!C#=Y7?0S at mg)Pwq0h4<=}$dndUfdtX;^zT*nD^An)9bp=+H;-A6
zhG!j>J()G)STr=#0e=Dy@==aWc&H~t6`#pM9>zEA=T7#VZPWW($@4vils^!F*+6Cv
z`RPRa7^3~W^r%!UVGC_~_iI4wy&crfOef#F_RyKWcx(l>_697)UBE)-Eck at n%$C#x
zoWXfbySl5s6x4fO<1Pav6pfTigOuj+&-6RL%rk6Q at _28y>i;b%^aluZ;dJ)Wpg|c-
zWfU1AYje5OnY2g|RA{@(C6O3>++ki<r_X3yhMveGRe%X|)!U^Wd~gx~W`GJ14;>e5
zCg7h4+sr#WO||j!pCdL3{gNJ%X!z<qr7TnE;hcFI at wrYHK$j?ARm;iCYVb=azp<}F
z?}{L#<FOgN;?qMR_?Ah at b4#A5e11q|qu at YeU!b|quCF`(f%X`;hckKUQZ!Y?eCSfi
zhE+SmpqbU4hl5;NCl6!%f>C1T36DZX at FwEX31P>*RHe*~yiItCX~ll?3gtE)Ig+1u
zYidD9DwVp2&_??aftM;0etRiT4z(@pyl~$aclFI4yML%?Er}&(!J8Wtdo<-J<Iz~*
z$`_f$hxN*`7`Uz1Qr#BPminII=tXssIpg|?Wee<l0wI4E7t}u9jmlQzIx^Q%0Q?@6
z|MW@;B*@OWeYg!KKa7%370^QSJ$+xpr|qUcU?eKMOmsD{>cNDM+lECD>#7m?1k!iN
zC<$0u=By5uvy;!#!7zdKQp>B~KW(bD)ws?Fo3aMm++39XX`VuoeMG#JLzOT0#mfX`
z^JN4z{-nossIY9_?V!zQSPnw7Qd}R%IZ7 at sF&|?RB22$<V&n^_LM)f_(;~;Nm?u2Z
zw#=BLKkk^|9^{S#GSiACOX)b0QSGN3BU)&1+}9zvj80<h at naf@r=?0>XSlG&{F1yu
zr_nX}89xLCXtXJY%D9B}b+%;H7M3b>n*>4&JKY6OdUS at 4(+x5YzaH?yiLCtZH01<w
zmvZ9EKknf<8UXccf*Fi76vXwscI(0Lr6<7zEa-{)U=%^IUCh-ugpf+oK&HuL%&WwP
zk`9hn%XbtSXDtCC;6eAc at I4NWGA^9AA;2MiH>qKqQu=Vn)bHX8Jlk9HrV;qX2VyP9
z-^-(!*FHG)vs~B73Q|L3{QD*ERyLREY!Qg~tC3pENV<s&tM)#p6rs+=mTfKr!OUMo
z%~$OCFm6NG8+!f)`%oNd-&Ph>?VWj`^HMeuauV30d;5B*UF at vPE#>K!faqI&o}HM@
z$mFKMsoM6@@{c(;Gw0dOCySBFHiIxJ^yMl4J^c&MV at 0rW>Fd{csKCkHib1GUMmosj
zorON(RldVxoZL7Wzc|_@*FreTAp1k5j>f>_I2d6PK~k#nMl`qloWVAKVSh%KCe}zw
z```ex!xev<q3?Z4yJru`c=awyupuirrvy^~V}57-jVikyJPs+zS0p~b6>!Ua2pul}
z&V%n=Vyp^40qCs_W!%gyg&#OZ00~W?<{4(lbSSMA-<eM&P8v05B8ZjH_NJ<OpcDDN
zO00=<^$m-~P~y_~DtgP3TCE$`r;<>n%*DnvklNhG+GZXu4zWffhK|T_bXUkK?Lpp6
z!o*Wjbp=69J{2HoVTTE)hTCNYOf*Y{G~z>O1Gfq1nAT-}dRIqQX2<4Se6i$M>@R5I
zCf{W@@8N0Je!~rdR@!SvwCReIA)5zG;n;`VNQ$8Z9PJU)ZTl&0M$M%F!%_Q+UI#dO
z{NMrDhhRCag{W*&gc#!Zb7kqE<Pl_O at iBXR3lvDy?W at gu(aw{G#2YpbX>7rxv2^dv
z at Gf@h3cg=6D67#k1c^YKCmO4`Ds$+dqawdo#@q6ZxI(u-*O$UnrcQ)t62;@fFMo57
z11k$36J*xIa+MG2ml~iCKF>xV0h2~JXFD?#S6EziROBjIjwx3~92Oj{&GBF?N_#CJ
z&qo$a2g=EXB_+yv at 2H&#g!=DrWoEA;0ph|QO;Tqe>tj?Or}7|V=}nVcM?r5 at N_h&W
z1~uV8tc3<8w!6AzDYwVn?ZZo4j+OOoI~N*a2dxTH9)mDO9z>1y7Ik&`_*W5zQ-U5d
zpvy`lsmc|=g?M}3QytPw5 at KTCb$A`NU1tCsY0qYAdIO29w)y=_uFhZ3i*SO&(8B!6
z_J`|4s59Q=zEs{FFsc}PlupAv`t*@}<Q?pzna^iW&d at G`+lvPizJ(n}BC`ps-D%Wl
z+c4jMh`{?#a^fc)T at BjMK%zIf*6Aw`U2EJ10#&maQQMpEHWNmqr1om~NJNPP at k*_Z
zWd)LcB&BZ~P81K%Sg*T-%U7+ee9SX9=oA0%ZpXxpE=Euy=PS1`l{jVcb4gm!w9m5*
zT|*o-ZLqhcm$Evm85P9$=`M?OLZrrKS6)Hl;X<VklWBDfdsSoDAsQQruLUf7*l+qZ
zyu)Z=>~a}ggSjRHHZA)SM1ZTK at f=eJ**>FS&Ld~qUqLFW8Wk)bYGXAg7ae6#XD*jQ
zP=sKz>1<DI(kj6K$!x_r(kzN5h?Y~(WjqWV4HonP^11ie6k70qB|E{ISm)>9N0lL8
zwPmjAH+(D7OrQD3EvmuODLsZ(kbdLxOZ&+ at E7itX<6u8DF0HVKC51jF2CkXmpHR(x
zybT6=nUoP_8b4hVQm$m0%K}x$Nde85_2Olpm&6a!946R;XrFj>-dK at Fu~(MKr%t&l
zPl0_OtWstt36bd1{0EpQg(}7i{SLJ`02w)*z_H9f6dn0v_xI&_8+CHpDB-WI=B_+E
zv}K-0z*y7P!81Bbfh~x)*fX#uK;CQ3lS_k8JO0bd?3JmiCH!Ylk9LaQtuht8MzQ#M
zx89WP1l?dPJ-{3CWs~r9Kv0EJ^~(aapf%@|;L{o-%E3 at eF#I=8l6uz`F7B3dZ{A<j
z3;yPID}zca5nKde&aMeI^XRvRF`9X!jL|#{VfAiY3VP<tSiHy~pmv6(sWv41aza8X
z{nPQB2twcARuAVn>u%9Ni}?ti!ty59Ls&B%q3uB2RI%9{rZ1tJ*Xn(R2{NV5#h^G1
zAbA%0JH$hO<oKWdzGt63wXGm(LSDoVGz7N?sb|-B{%QSpWlmMvX at jGsgfR*`g$lPL
zPhm<X0onG{vR#k+8`uZuiQGzfO-O-0pwZqb>RH(sn58p`0&K!xX-{dv_J#3Gie3ud
z=R>`p at dJu(9(H5=9&s}Bl6LC_8H7qYR1j0EDEnLF^r9%v@*XO`s7a(ZGPyYqi-q<C
zcH8809z&8$!kx0ssY59J7b_&io95DW?_rI({7*BQtq9E>@!9pxuo+zXTt*azXI0?-
z>|#CsJ^=A5#Vp7Wzh0f$=9<n|cN#QIL(rK)rfCSq{SAkkmCZs$REK~4kZz`Hq(^K}
zx_}3_@!5g@!Y)M3LkYq5tNOoLA1Q7NyeUCD08N1cbT|RP2Tvb$jSkZmA*4Qkbd0C!
z1U8C`(MrTr%u?6*sC^vA^&#A&CC-n<{TPN9gHL?$VkfsU5T;0;8MJllR1>I1O^OH#
zkb^B>(?TK_?SD1i;5<sK4%j*3+rmEka+W(PZs}PktYk7%gD%hlWIz-zA~6`)mi=80
z1Gm!E{ss!wQaE{ayVH1&Tn4qcmBNZy$o9@|&wkG`ho^nRG5X%6g(EaxF-WTW25!}~
zVhwjo7or&vysYQw?G(9^%kc~et5A=IMhEG-?!wYRLq}8XdN94F1wLX8FOiWFk$!TM
zrSESxN#;T0=pEK%Pp0g334G?*MTO?FoJ!hltYo6xKWDQ3UsX+lD(#Yzzg^#K1P7(h
z^PLo+`$Fplk>A(XtLee${c4Xx0K+e}68Xn+jRf_ at WTa470NzY8hU=G{BG*Y<Q*rx$
zb&6~f!vbvmmL%;BBBj at 0TnV@$&7mi&BHsbi%;%~ydhzaWFX%6R`7`J|Z4_|{@fpDf
zv218s{Oyig1jxXnlrRUIunY at 040zZb3#NFyfP9wTiqzIi^hPB>%P!Q<n~hF`)3aA(
z8SvRh6Z)qB5nDlv05YiRlNOXjZiOP-#6{k8MhpMj8)G6~d)5g#uk1QAAgP^V2o8 at o
z{W?VSUf-mD^U>r&^iSKYHqNZaQ>eJr4quLbnZ;>-=cVRO1incd##{@9^%GJ(OlV!~
zu5UWR%3b&;t(ULIhCn>=*sZ{^=9JQ{QQ({EDkUos9}d!ON12EA26BQCge$3kd%W8V
z@^d&G!b%wkUdtFH4G_29=i2S{;RL-yoc6m63PMJEMqLMUWX at FaA71&O3V(~R&32H*
zXbVv4<7N0x{^K`nBN9=ac(it{qO6|oT2*<+fbW;nSwxcu{l9Cr5aZN$@ZAV)6e|s-
zE%NQeU<3c03q;@HQ0(Y%kJ=-2!PLQPG$5HSqOH9i%3HcPjWkE|d<9t{cG;>7tF#}(
z>N+#pF2(vsgX{bnFDNCbJ|kip1&TdM_-;)D1(OXZk>DG}S`oWS6&%XsMc*Y>-dCp+
zmkyH}>K==B5fQ#a$;X_3+*kCs;V{^I4YuvBtA-i(V&x<20>Pl#{17lfmf{y`3kCYw
zpbMIj-8Z)`2HmY;7Hn4>YaI~BJ^hZWc36HI^m=H`9ps(L1u&Thc>PsBnwpscNM1L3
z82|9lR$r(O|5CV6Jh`UGps&GY)vCu|^0F{$n7qkB1C0Z*o<ZM9fID!x#d{CR0t at uy
zOWD@?YSuu>fcs#%5j<wVmK9#S!M<Ma1$R`nJ&JUg+<a}l3KQfEmsFmqY2r6J_HJc;
zr*(-0!a?6<aBxW_8HRWL0nP9UHIn+{%YhNzxZuJo7M0qP{C#qde at Lvhd5tIwmy`GI
zitc3qaV92W(g;)^ohj7|yS~+R(lUS`1ZMX-xwFr>3yAfpw4vCTzw(bfm%ciX+{j at f
z9QXg+7r~cx)_2!*FkLY~Vi639)USNjX4x at rTPQeCa_udfuLn(PA>UA>*htn$2sfQx
z8w6rW25XYVM^N71Q1z}%hX8YyyWCpehZKUVUX#y!{7jWr>f^j5x5pP~vR_MMNV7J0
zTc93yq{K>C&Ep2`DXg#N9o_Xbs_ol at q<7hSnqmD<=6w-MM{D%MtuOI*=3ruD&m1LQ
z<m5e((Z&41mx0H{X4XRa6;+Evn@<cW$64px>p-Ae{w)k#V)OqmhLCxnXIu{O7C~lm
zi+*rP(=)y0d{-o~dLQgL7MNP#E5izbvW(**BUo-Fwur-w6j(en at P($Yp{yx9NS{%V
z)Ilpy)S<kbnnTlsVyizKt~;7vU7&U^wYA?*zS&s$6zy!J*`3TWkt(r45 at cJukIn(G
zM6gYy%-BV>z_F<gZjmnjQ(bG4EnT at Tt%zypTKp8C1Y}B}giH3=OniziEHZ~=29_gC
z5qI_aE#s7h4m$@S!7<*eS!Ew=u()+plbrQ6>92;}Ax6Yc%e(GMu{H`6CYRv&lW7q>
z^e8BwQN`6S2)EdL-bO_KyF@}&xneGPri_@}KNL}(z3_^i^#9%~b)ViT#N|T at UWw{l
z1UbXC3<pS`0)yUa=VTbDI{xZ5gQ4wgNw<j-buFyC+@=iNzaTu}v&s4)+ma%%NX?(G
z5J?Hjz#Es_H0_WeUI{r+m{{lTri`GjOdWNFo&eN49#@opXBFS5S{s(0%PSqz8&Xs#
zGdH650Y-Y~boWb)N4w6kdN&IJsVjQ$%>_a6w4eAz#poHeomrVQ?JydrC}dW)A+xOL
zKJOjq0v9L6om|A46&<iF$CDE$ypUZ<Z?C85i9fA?%YeS8l_ at 0yA-gf5Is*nLG?+iY
zh~o=ku38>(gQ*;g6wXg<*%b<)iaaaF4Lk$&fNq7we1ejX8>}XhE<l*fZ<kPA@}*3J
z#!+M<McAOk-%zY$E8T-w-)Z#--{s0m27Bw;ebgcs>?GU%J~44!=YKTRSy at x~k=}+&
z9YL<7JZM?-n4I}>Q;Dr at MgEG|{M_tFIK2WXkfD+0?=2N~KP4e&=i>XcI3En;6qrQV
zPj&n&!8{nD`EsGD*@4GW6CAzEa<NEbRz200*5?ujrDNqG=YVAu)&}eU!9?eF;*Q?D
zXsL#={51+eA|+~duq!@-J08-d4@$q4$v*H at VSNq+dzy%Nv at oa{x#-ln&mC7us?6w4
zde{f!4mt3R=rYi}z$iX5sCQ32)7GB{3AJxQj5&acIoqelyek*{SZKO|;pYSw+Ioo1
zg+*MR7DkRMK$2xwyS=I^?IXP+CHp2(@u5DE2xJ2*vNg+6K&XrQt*h;u;ImPXLMTM>
zuCAvwy6j-tUQ-Xw#oKYaE%Gly5V1Ym4*A%0Q4PpBDubivJ?ngw(>Avfp?LH0XoXVY
zasG1;cY4mb;Yz*S+<j_r1=Ya3S#>|75%H|uyv`>8@>YO;4rjt|6lypT*k=n{P))>v
ze1w>7C!iEY-Li*xD0;e*m4e1=wL!96#JuB at A2n<0z&qpf3B{=*Kbyw4dm`<dC<6*l
zUq at das<=D6q*9<D`(D|aMD+ij>E=k2t0<ra6?Sf*$Msb3SY4MzhOOI1bl&X at yHPx=
zR)?*nv0nIjTMZQS$p4P<k~##F0QWbOZlA>ngO1n~i{&b7HvMwkX>wQ<s at bS#lWI17
zh3m0oEYd*E&r4^!q};Aa;~jzzVOUOqelCZb0*#_?Zc^t|>EVafA#$ehg1P5Zv1p1^
zS%Ej&q32Jy-(voz(&S*xoxGgajY63F9r|_EfsqM0;jXlH(Rw#k73*QGLvE!EbPoXX
z`z!U2j|8n<P91bB%F!E8<_=ZdEK at 3xoX@5aMQi3+sS}@5nrac9ZH)xC96j4!W$NNI
zrC%aO#bUo?91{UxZW?Z!kbi1iS25(5CvBxTLscK1Zj;MDi{uvc(@RO`21l*3WL0l=
z6BwP1C*qVQsY40`r-=emsR*p7EW2SCgC%webT%`tMFHADI$fhnoS@?Q=E!o0q(lQE
z$FtEQ3A%Kgbop}$l<j`N_1^h0p=Kt88D4vSO)0M(Tg!~A$N5XVOfXZTe)S+2xDH=6
zI-&m}-f61YlK_+9oDO^-S+`Y``~kmaKHCf4&gb>o4mv;Tb14b7ZA|jIZ--{t9{*~$
zo|QSxlY at A6nUTd1;<WAneHJjIl|GTFh>+<;R&MDH)tLy;c{ZYF9*VWiN}+RM$;Aq%
zQ{m$_SHLayOjc!V`U)e`!jNo={20%GkVC8<^a2V}J6g>ETxn*WK{mB+uRF$^*i>7N
zmBdmj^VnIGHq$__2~KkUPp~w>RO26fArj at xvVla^B8(P9rqr!F7CHhsI^P3u<=y8Z
zUUt^iI0Ta at FNr;Cwt at yyd253wI})LI5FSupj$CP^2fC4yViO5 at nKqDLb7tVcIz{-a
zRWwZeSy76O|1v|spkN<>gownThm_Kx!tEtTqw9q%6#8urM|)h_(<hfOJ~Z`Qp3H`S
zL2_$sH~OyC-D|RkEZ*;H;mM>ot_f3AOH+)l4?q*)j&X=Thm-X>RteJ1vmYBwKaQ0N
zGa$0e&r&1l;k#IlElpg6wDxQvUT+pR)E1=L>SP1i_qMQd`5_}V6dBnt%@S1qCGS06
zgcTlW(H&(WUM<EGpfWNufpn8IBXpe3e7_+dR-LpIIvoRWRlfBJ#a-@}nccfuC_~x{
zNnXyzv>!N+D`*2A&jLeJ>~Q$kxNQ|j@#r!s0 at ey>2th=mc^aCiR934qE0%KnWY0kv
zl}fX^{?uCAVqr!RZd((Qo}Q`ON$-3FVd>Z_xH6$WyZ&4RPhYFqI7|E=Ic at W}>|eF0
zSw<2L2p$${rGbXCN4xI_kGP}b{L*yCK at N6xEuV0tv=z#yg at Jw4nG4T1z%?4|jkp=P
zlb&V-1yjVuJ{Sb!=0e%)D~|AGo-anLiQ_(nHXCgHcPkNYdILdp6WV-rOK7&K8|`i5
zqo2NTDzcg~I_qV at JJ-W5n9-?Y_OoO-wr=&2sFY9tnWg35oucJ>6-RV$@10)Bq5;=d
ze3P&$?S*v>fNRuC_orP7Qp|7nCSb%@)&mC~T>!IrzO9nIFyZ+*tXrr}-)px9%N}Aa
zM5+-bACtxF7&bOI_jxKm=WKO|8Iu?<?k)NR^4z_b7Q$6d(ubbZA14}Z(@-LgCaLpL
z_ZixL(?TB7cu=YOC7(vuMn1$!&Xf`Oz5CS*BW=a*(^&)shV(*B<MYbZ{e`RFpP-w&
z(tRjKu6*Ggl_AIe2bE|-KrG<#C1*7!X&YMEc-DD{|M<R#mmC6)wU(!cvHs^-<dNUl
zsfsG6<#lzv(|!(vg at Id)u|sEKwp;D26(Db!E(6)5GZA^P<~B at c-5}gQDoMiq#Wx at X
zps<^GuiWkdiL0>I5(gX#MEqS3s(~95t{iM+o%}9n at u&YkyUC~7%g=rkBQ5XVU&3~n
zl3zm;yd&qN3j#6a at Gx^J!mjlESFr=elSOCV=TlIYjhOWH?gbC{Rt-Nj?>_A|maRU4
zM5G}#za28e^NjL<bJUY%W`-jQx8bmyZN|9 at db=`-5#ZD;P^Y+U6mv=lcVCX5wdEQ%
z1_*$e;&~gSjOxZHtzZ!}m9PG?*Sa8A at 0(-2`2bq1x5SafON(i;KtV)j;zX#5(A?yp
z9ZXnf;s0B`2<`drsSg+B3V?X1S`$+$)xP+0N}|)Gsn3+>bAXLj#X+u!AXAIr{FLs{
zfy&yFMSDN)i<B|qRe#O`@Z|;ZN2QbqW)<ceGm7EbY6?}FEO>|A_mki`6r%Ty%rb4`
z at mkQyllK31A0dE}QJpa-SZSw=*!b7T_c0?@K<3evmXAPg#|Z5))D9 at 3h2J*1G}qQi
zP^(06;3%Q#Raad>vMah(82>Y*RD|Q0cCs)}-ng5)^qn75=>!ThB7&v(TcT7C1KJ&|
z^EkP+{$k`9c5)atnq}A0L-;54E$%K^itTf=%O_w~oWJctDf1lG0b5H7Dc|PgFjxV4
zfFIcJBn@)aKM>iQ-psQ0I=`*gh{o<$9^Oj#>XiqpOOVq}Oy|9Ehh1Fb?wK|(L|6P)
z)SKwqJjeCsi^1Ju9v!EFxEQ1e)<vU7UQ{=yo`2#y3f`ayXku^p(^rX4y)oZJ5b^JD
zS%zJ<tLjiz7UTeIH>@$5QA%S@^0!tTda5LeO#Wrc+V@>?26*c6l6tKGp}Ps!k#}o)
zs3K_pi56D9n*gRON4d*W_+Kxmh`&V9?nmWCh}A at SZJF%SF^NP{eTO_t_{dy|2D$6k
zoFUUj+n?v`x5`e&Ria+6ah^&gKo#$DOjjbeK)~oGWpYiB?3nQde}5;yCN!;h??o#5
zzInl`^^>k$_F=sJw%c^Hjg#eFdvQfL-wjm=iwQHyEwWtsibmnY1DGg6q|SwZei!sD
zt`1e=a?^)f5BW~sOH>^#79sZN$kg|*Hhu=X1 at A}j^Eorj7XY4l{CaGsyOXT9Btn(s
z0*gAeQ|U+tgES1-(-Z41S;tND&X<EQHFHnq(e;y}KswR}dFy*PjR`EHxW&C7^s+_y
zpP at nhdf7jrk(AL0=<ZO5TzLJ8gOcIX!sf_3<gbc6M&<ViypqF!!!%HpxE5K}RuvpU
zy<L8}#eR9&)$`(Zkr2bic#$1<kH~f=+Ls<mdNJFz`)52FKW0F^?6&yW*uXit8#X(Q
z`KiLfZmGtE!)&J-wgXTE#J=}DbAm^- at NJB<-nVnRJIg{?g73_E(?PI{?S-V3%%%|{
z*9O{cWdpXy(qZ-f9^8AZ>hZ=ZBQc+e`|wl{+oE8R{hKm|1#osF6wNCM?H(1S_#ewL
zqxjOCTpq2hVzTxyv(KslV#hi|39ghqT#i(FdxfMRo at eK3zHchb{-)stWN89z9G(8r
zHIyK_b>q({Kt<`eDa{r)&DF#yk*eTvxaY*K5b at Kr%@XCJCZwH6gX^x_jP87vMm4o3
ze<^fHN{tG{hGZTJ#5X7OgEabPP9H9wFo_PX5aPfMW+MWJkO at Jx9#|w=ImeTq!4CnJ
z at 05kmcWc@oVhhAnxY%95U!RYX2uR8Epw9rIndN&?yXn^gSeMNd)rfbyeT>g-{Ug*l
zvf#&$0Eop+RO5smKc}nxx|n^^+)y?mPr9|lEMt#)h9D#CvJIu#)sWLT&0_G3QZYyN
zxk at Dd?ijPU at tQBqq8bVQ9WjUuK(DBAk_>Hr#O44o-$-g<Xw;7d5}h2(@dZu<=T~w@
z0kRZS<bFDkVzJEt4y0Q6Eu)65UtwR9Ni_5W9{+bRO#jBaoUo at _q@R5=HO<zmfP3Ku
z{JLZVHESzaF*YQyFX}DCxTO~>Cd>{qSK~A6uku7kAos2e?_6yz1a=tAI18;u&XzN?
zvAsT#3WT;aVRiRJ`9K~9$qXR8ywfVXT at dFHbmmAjvOUX&l-`oCG%08=So&K8qL^pa
z(IsHhKAjkg<G@=x5I5pO^7k`y<-{<sSxD%YUS%74725To#%^?Cqf7f(m}_JXsiHtW
z7bmXb-;2XK_RL=B?-Fi3rbGE8x at o9E*1jOiUB+6D`peqTh;OD>r)U2Qj3zRXob2ml
z{6>iw_5pD!j2Bp3u7Q@{xH>iSGVa$(GE-1dz$U&Hyr8=lAiia8kcLG<iVXwQ<M~?Q
z>P&#TP7Z*@8B3$QqZJ0_`=Lxof&i=_cT?EE3hLily55diAsNa;$><Q at T^-mKkVrt+
z*>8M~5})*ny55(45yV>;-oZ8OTo}i0poLl*hRs#42qWiVAi=m#!Z&ISuk at v1D*w<W
z3XG9)D+`1WUFD#b<u*;6>nKMGy|c&YcYcFW-5*4|l_m)!O#xaNFZ`PtSTd2UK5
z{6V{3&!rOSM=iJ?ggEuQ<VAQhf?#3&WW16W8=8C8IH}OLLNq(|Ps^ft6ds^19U;Ia
zrfG(No at 9_Jy)tGzw^eQ0U#$85Aw~_7_R&%TM9G at 0G{!s_ZQsG6Q`2(r^G^^EUW{ee
zu)DRGt!Q3b=8oWi+fja>t2Avn=u&Lz0}!<W6Iehz;D9jJ(GC_72DbWbr6X3tJ$=66
zvp7<qvu0sBK}v<-e1lI>$|Yq?_*GA!h3r2Zr^JgB3XgYv8Lrx(E1}{gE}6V~Mu}z8
zsrQO!vs6A8Ih6gPB;Z{#<q^tUYS)M+gs%9>8~(CbNzU=ucQ{Ugh=+E6<7+y3i{pMX
z>WJMg8KneBDDb9nM7Y7&CGg6*qZG=V9T9sN$_6NFL9TyA7JD8``~w8Ofu9X>>>t~2
ze4RmR6_riGP~CR at 0|1SaUsRQO%7(|RjV%TI&L>yMYJ2l>|4eyQY?x(~f4yVvDlMV}
zK|#M67P{2ET8YZ at dgJS}$f;xX8UM-ufvYYjby;GZ(nf+_WF}v>XPWg^yfyai?T5IJ
zMxo}8MI<L}$lKo1m$=$OXA$rWVWw7+#X)BlZcsS=7XX?4asQkG4GEY?dh;hv3~&2#
zJX1I!4)W%s5Ckra52#ui-_`bG!d at sLmz_Q>k4BEZEnxFma>}~mz$zpxwnY<l+`wz>
zPNNtyf$;fJP~rX}X;ISclY0VzimKNXpNCCe%$}4=iO4sqZ8TXAN1leN1mbZvo27)}
z%ZnS9?5imB^|#cxaFr3i*mL*<sj5~S%dCF0d at DUy>2pqv_tUUr?{@a2#m{@LVZTRK
zH6`%$lLuVaO6C~Xzgho(zm)r_4CUleqLuKqD$5q5^2q8sW6YI$)V<9IF=+WdP`e}B
z)YyxuiiuBT4$1I45g$Yb##V at fU*D;2d?0VU(O$g^8bK4504YL=4nd-HqGgy+dSZ7<
z)ZW^e;F3{OdsEQM9=bR`S_;cX)}!0Xo=WSTl_EwXnX6t7(cr at yK&9FNJqUt9YR7kv
zY`{H>f-w#Yan<qh%Sa_z*LP7o=Fz^JU!-?VLq(2+)OmFCQ>Mbt+Jznn2dHpl0K?#?
zP&g`?pQ=|;_%?-_)$kSR%P3P3jcE$&1K4>+robdc=Vn}9<iN9KZ3z;rd0H;1#0Vai
zv^ncPH$4rGb+nY=2?o#ON=TM8L#3Yb?)~uz{hXc*9GF}2QR|*R8WzrNRjZ+QDxBv6
zJCAga(^q-2ohl%frp#zXN@>EOa;l`L=6){x7G#x*6j~dLK+3YBJg0Wmi+#;%toH<y
z5F&o^<U7u;lvW3v|MB0M(t7Zk{rAJcfd&u;EpjdX>R~T%8p`iDZuyQ2$X?Vwqe50i
z50sVW?ZrJ=Fu6HH1s^^62hP$-A&V24%D<fp3AZ$rRdD9|_06U1Dg7$9o##UWM at Y+O
zi33fiYNA+%yJ*YL{SK~-l(P}tF8GHi0=B7V*FJmzJG;?@sR*FNs6GXZKVt<REIexK
z$~nQzB_%uC1<CQJ%(9=w6_^dLhc~XF2vX(b+c^RR3*ZM80<?45McP1uqR{iurRNY-
z;zAgjozYNW^)`187^NqD(TW(L&J^)wo_FkUMeB(>yH=gW+ at eGYU8}LpVk;H0GX7Sj
zl!Dp#O#HN|&EVMkol;FgWx~VY{2)pG6|U?`Sk>ug*)Z|{(_8ESQF%m9<lEA<&HFlw
zmf5XC^XJ at 3;7V*0EVO#)J~@{#PgE+^`xEZaBX=W^<^b{(8Iw4A4s7&}8TMwWv>9YL
z;0li^-tOBI_m5*2iLyb6M|PFlX=1PAkD#q6yI0z^qGN-=$~QKMjhH6a%<C!*)<BZw
z06-JJq1AjZXF%aO<tl}p^ERfRLKrM)DdtCs*j|t&!jyE2``SwlS4yqrbEANbC}UOm
zrbDDnZ(V72EJqDkloa*IZO{8~r#boeMZze1U<D|DBRwvhqN|HVwp+lo&Kogu^8e8h
zd6|sRxJG+))~dx;TMn|eS64qf{c|dLR;+k|*~nCt$-^QQb#t*d6?x$L{}#hNx^utU
zLP2E3zP$JIjEv|3CJ~TpRo&=GHFylr;!Q at uRLzFx(Fz=4gY;6m_MC-0&0LyYstTmG
z^8 at a66HA;M5DsN4XzDgIRb<Nl{T}R;R~ii*CDxyXQ6^7XXf=M-S-ZDO7Bn9dwEfqZ
zd8%EA)8JkLEgNEX&buSCw9qnPjuP+~V`g-rHYNNdlGFQDA9q6;sWs24(QHGE33F$q
z_QXNVH8X6Z2iQK^123vGCEaF(PknFlO)e at Sh2F0iS@ce7;~5uW;v=Aen3vq^Wpt=o
z(d8{K+wJadIKtxswRU+vzT15~0k|9ZItc@%_W#9&|Kz_=+#l`8``62KNRq`#b}n?C
zege?6Eh&V)>vb6cftJHS)7<1=ql_~N4E%krbpz)p?gD!4kkG^hV at j(0`Ye)pX9XFD
z1gkq7m&;h=SuPop?Ab%{thMp8+SO9ul1|DY*Ou=mEv0uH&Uge~AJ=#-VwCKu^kdJ{
zZqBULnbEYsI!2Kh)-g at yO*RUV!2lX^3X*;^n>)Jf at ma0iisQXsb3I#DKo;Lg6V3NV
zXW37WT(yZ(1Lko4Lklm!ij10<d4Hdyq6!l$iTB21kLVh=&^S}EbhmJ_bv4d)JC-)|
z$f at Z#0zyxO;$pv_Y at ELQYAqNh38b)iGbo;@=OK)Z8FvL}NQyvabr1YEBUz896u#?h
zL>JKMdVh29S)iX*Db94;Z+aW|6kSjdE&1S2#6u|T)l8#x5mr$T)M<?xecGeG^d)3C
zmz{f3oTxVQx*ZX#u9qOnlz?@A$=%BB0cLN-=ty0`2`zPhHzdU?-rQ$b1D8woiwQ**
zGiTM6uyoxdtDiuRiEY1s?J3euQ9gy$h(0VKIS!{MsyxTPpVgUN7b$a<7s4UOIt9B(
zY<b~Kk7WbPHvj>u*1qfh={9wr6ve6Rg_py1G|8$dk8YN}z+Vk~!1cFBVafqTOeisa
zL1^(27x;u(+1^({tSSq`9Ccp8c|qUuR6o?`xaz$c8IFs(3K|SyOUp*Tr)DAg3c4-C
zYAgaV9)Eh3+`U?jJtm7z721bWwa6v{3Si!323pvY6z;jUm?*%@<6q$`nAQ+lqNz1`
z6zKWEeM05>pz?KBwp<#^0l4TYM-%WY-!oq&|4=Ggd*L5N`d3_D_~ljW@<y3^iGLT&
z3HIZZcxub`{V}Gy6TmBd4yh&2Zzv6Y^0Q*pWv<lt#8x_>z&HETq_dk0Hz`F0ed!6<
z5Wfhi&Y<Z#Tl)0CR~g at V3>$`K^t#`~1D-0Tih}IXkH}iF$3UVNb-M at m<H765(`Dg`
zno8YpgM`;wcH$_cbv|~^mTvE+$BmKy%iZRUL1PE|-3+|3;k$nQYhIge8>+nGO1yN9
zR7~c<-k=ti*Iwl4Y&@v^e}(DjcW>-0gNjiZ?(V|0c{0(9Jf`*zRS4P9Y}+`nW-4)-
z^VC_rmn?{^GrQI1suCx|^{r`JY^OJTXe<n2H|ZEnbmQF>*R>}@3{zVI`=E82rg#p6
zn`6i<^z;x2*1C!rIF~t_38K7w)aGSjh^F>V>5){TBTAHr+k>fklta;gRSm=<O#2^Y
z!h$mCQZ-}vgEhAiUw$(cU9(NkXc{j%SS1jVJW(@rEnVgCu%-*1Bw~ds4yuAg=|SQp
z)!^J2P8$`ccm)~j5B2FbKji3cmVn)V4ZASl-SKt(E_XZwiM7JBhi6hWOY-QE)yYDL
zug6}Z1R9-z1?r}GNm*~wo5WJ`-La3hmL!~i>SNww3BSZ$D|eRs!BK?@wuu`gv90*3
zz}cNYpSNn$lD%Gk4)oBts=?7M+MG__N7SLWS^W%S$)JMuSL%^YFCsqm?pm0rE8#r&
zbh(D}3f%`ro>=+P4e7q?YM-x4zaeL+koS!xRB)mWalUApPe%vxXAvkX0EFZx8e4NU
zJtAic7q{4wup9sl%G4F(zhqLj>m?+d(Thue>c^FLtiW2&K^b;MXNEM>9_^iIvEA0S
zcyS*fkz~CMnoI48D9ghQ1V9CaCr^DJt9G{vG*M3J%+`#+S1-(FM+WXM*wj#rBQQ{f
zNGhJ{tHfeZ$21G)DRE~e`T~RyxoN6uMGv?Igu;N|;z%918Ko_k0BnY4DwL7 at M++XD
ziU~XxO78;aZ7v;l8Xd7sJPsI3WGmAJKGPEAo=KB92*L6maYr3Er0TpYeGBOD$fxlZ
z6W6q6z`%>Q50uD9#aTJXFmLs5@=j0ck(vu%p7R;-4Hq)q`gmxfz at SZ$rQTqZY_rQk
z0Jx%6qO}#2e}u5zbS`(^?2eAS92Vx;W^&$!;}}Lh;G(K()r5<?XC=7~_ITEahoX-o
zgBa$pW{8pbYi4w;QV75r*}etCYHN1 at +>513oSYlXWK0OJdp|*l$Gqj+NGAjXjH&i;
zMw28ECh$n>M|<wgFM+=}R1j$fPQw(FuK#yinx%MZPSYY0=WuoUlIE;U;SHF#u`7rH
zm9n5#u`Nm~7IT%@I_FaWVr-#cG4jL%m7jVp8(HKk?UJ;ogpMZrXVfkEDWK-^HyL^n
z0y4l?okl79!5VjVM0W}sSBR9?_<s+S;O6H4glMjsY<W<+iH80i2?c%T+&V+{WsmP?
zc2X;(Kb at HRZbB-x8HEVSjycC0*Ae}L6;x9`vr(`Vgqf-Tw=u|Dk)}9lE$VxSfDGEM
zzobh4+d?$p?%~-ekA518kXX)ytw&$yd#g+$DR4X`c6<M2<+}C(+H3^(1_Z8vCs**c
z8`;GftX-?+n*6z)z0IHAL`iRDzJ^CJDx)j~b>nWcR$Z5el!W6isjt-)cg{f0mqW`R
z_*6ATFw#)0%>+-&Of*SVpQ;am0-(;argzd#oP$<EIyr04p97I3Fyi`84x at S}8o|p>
z>xG-Uyvq#=t{a}AT#@}d-FgEMl`Sc;0KgrGob^M*<CI^)D}y5eZXb#683FDd$gci$
zhkTq_($gs|kY;4%WPm{P?DDoi&F4k4@&YDUrq88-gBB8h?rp8j5 at 9UfQnFu*v`F>2
z37Pg}3(DtK2Lmk(yl-&|r{2y+6G((Y55t+oZiLhtz!M-M3P!f!K?I2!%wbseNGl&u
zmh0*>F~;<M5GuOhO(~YNKo)qKRjqk|U}dof^`~e{+bfNTI@<~%I+DL33&=#g*4>@Q
zX!YanY~OmD?28ZPn8HJvC~+Ro`kaB2naLSMF4!f^3iX5{(vTDG)A5nhO=?I*vyN7B
zgF9s&<F2eH>2liRi=xD4=T{OZ<m{WVhGBSaDN3+Zlk>zttMH(nq%^6GUX}A|Jf^*&
z>9VV2x0DFS704D(0wFd!FdH<U;r8QXD|y)EwvTmAKODZEs}S^AhG%2NwZNiJW(UK4
zH&i}Hb>-|{VOi2yyo3CH at F68GLN&9hqAlLIYE%4}afQfPTWbOk*4u^XKNX1`-%@M5
z^71poV4u?se*~=o(l1@#%R_a&L0ef2+6Z#kdILn=&Z!~Z5mW6hHY}mC41T#yfZi$&
zUPxVeKWk&p+r``qLCe^T`J*4YQ~lKe$UlYLk16h0a9Kgx7atg0)DToUHcl`T)sW2}
zOud*89b08#d0<kxUiSg*bpj at llP&X&v4Tj#y4`rJi#BoxwYkbVv$K05>_f|Bu?-op
z<cPx8pXlOI&sHxF0Lh%7G*3E3=|Rq@)USw$#!xIVvqF_Wsl=PP1UHSA-R&T=AzOy{
zuXGn1gs>EpLkbS7A~DD3;Hoi>+4zE75LZE83p~pviNbyr)H-Swa8#YT)1 at mCr4<+2
z$Ugb_zLUlD2m<_0pn&4ub~0u1!C{X$B*>3*-Lq$VudrCxJlcZM{~U$^U%ob-?n<e0
zr6a~QiNF*0=Y$M2-1R>bb|84oN#pmaqx(UKv%o&;s9_SoUZ2^-CLx44j|E7#7xTWA
z<ANb6+O9pJ3#z0PHc#Kjn)`~~{;dP{21t;F<$FdfJX!0R6((Jpf^)oHoS(n$J!DCL
z2pnsrP_zv4&#>k{gO+DS;$mrU537CDQb8};=ej=<Ztg}1z2tEQj>eaPk7^=OR~Wi;
z%fAxzv3P5=T0h%`wt&^lp%=D<pd=XD-T#*JZS}0TSe?3=g`&`YW*VB*1s~>s(9M~(
zL>i9hoTJS9;NI`mP>x77I_g|?q|`>gC(~bnl00Ah?1Dfq0SaNm;g`BpVyW_=_G;8b
zc>TMaMW$+PDt>83;O0i{UXU=8kABM{+XpJ<)n2blt#IhMkP08CuKNdoFcS)XeS}E-
zG7XIo(gch^&SUjL-9G$ey;)x`LC07zj$LG0Fo7b7 at Y;GKV?}U#nW26Bq*w>Dai!xU
zCyL93`Op>?y!gUv(qo&ackv~Nx6+2)xhtugyuR{c^IE{@7+#5+s#Hq7;DQ)CO89<^
z*dFmPY({_3ArQD3jy4&BBaw5bC#<eNE4q at HcL3|qVM(H;CBe)>#O`3(uj;<#51!Jn
zP=M*K76R^}Z!#~Y-FC3-zjT(ekoR`CES7Hb=3Q_;Ib$-dNH3SIZ&Y>(Ru47pd9-eI
zkPfp_&jBCXCz=*bNn=0F=fDUl)5qJ#Z{0lblxmp+gCX!f23PNlSko}-ZQ0XPDGpN~
z{}q#?d0F&>R;~N#2|+*Ks45t2zfEM?-CQv2^2Mt#1Ys%_P!t`7$L>hAbEtn9ZfdH_
zoVR%wdvEGKSNJ5S5v|OT8piY5;x-c}_S=NVO4uyu at +MG`#ti;DOrGpjrR at zxY*X$2
z%?98T?4MgWdys;npjH26H&U=wMz=o at 968qH(b;<<2%OZX^7sh?<FQBnaI*VNx=9A=
z<g>enp$DSLwrXfbGgL4v;3h<08n0GT(SWKKX2kd$JZx!s=ymy328WoD{#GW;DplJK
zUhfP3hXC4Y`<JpvuSpNqit~fRdsflO)<gy at TG`Xpz=)GU;H`B<r&4R0KIVS_234 at M
zi;NwETD~X$ZCoaVCw(^k6c20IcBVfUzId8IcUGvWWsM_lKWCU5kIFfVhDEmdAOWce
zhq6!(d3lO4Hb6;4!p7Y9 at 5-AyUt@?S)KWc`2F at yS17vz=KZ9!MI^V?tsXA<xJ~`NM
zG|`xS#m-K#pz#F#0-vnmcb`Acnl;2|gI$+HK+8OtJJQ5N%>GWGrS<FoB@=cL9<Q#9
zCM~*-{_Q&&tRv0uq=w1Z&JPWl!a)zt(6CPTja{Quj(b3Mkn|1LtppL2MT%Fj2kHVq
zlK`Esuc9|NQzy8}iXAYf%rE<{g3q4Eg+M%>0+?M<0E67a^dQMm%P<QLjM7jX(7j{W
zZBKY>G)m`>u`CJh<qP9!peWBLsK)Nf%GZ`z)>f>H%39OFf#xwWKu~9$5~p6*Nj}Cd
zae{m>v<4u=A<OtxNhiLuD at r~OJ^dD>eIz8;qxN`_$#SbV$Q1>e$J4K=g2oI<bwaR%
ziz!z+&yq^c-?}(jwm@@cjmxKfZ(s<p-1ccI14w2PpX#6A531e9y(uvFqkIvucwcw$
zfb}cz)m~`ztqr`R3Ty1QX>>hA1-_amkvvFOmJBEzL`tl(#=YvRGl5!=4 at I_y<kmL9
zs;c^uoOH4pG579?`yBZD4S?JVDtg;4oJGrLzRi;ak4*A~&a49oegsqlBEuIMPqI|T
zXxEXdMm-I70rs~$)(7pjt!2h&ZEv!qv{}X8{vF#c+?I62HyY#>*eMwZFB_q0J+b?!
zGS!HfKa at 5ahFg}q5I#yhU{ZbKMB43JN7o9Tv`#m8d+^~T*&p#8IkV-?ec9?xiYLhC
zcgm)*sJG(DA_)bRy at ZqgAr><Oo3B^VJOY)wQZs-XG94h27jYmV{$jjZ&XRHa?V7e4
z8$(qoJYXm29yjK?m?`3;ukaDNxB at RrNG9HH-SFe?5=Gfk5uYTUgiblrQdhm-5F-H2
zjq1#ebxCm{msOq3p{MjUwQKBV at RU8JD@UGT^H{h^qx%=s=1S3-Y;8(1InO0Kspq2z
z=Q0E*HsG4CsvvzWEY6d2 at v7pix$WlAl=h}E6=Zdw$QE#Cg*H>sy&n{1oeX8Z`X>WX
zw_Pc9%2I|bCT1L`>DhC#hA|(#DuY~nSJKJDRJR9g_}F`D>nZ3gLTaj-uc2yEXmxdg
zl5mAqDnp55?nsHx=!&dr9(WvhA=$X(G-&J;LT~a5|5ezT8qIm%f0Ft9tP;KRXt1Gl
z7;BVfLWV7z)ne`+K`IrR%dMMW`$S^wgV^FRrJ*=ppB-=a!NSuR3ThFzMvQ2b-x at 7w
ziOK`C4d1olz;?s1v9+T+vBhus#fwxLF>jplH$|FHw~5Q8Adejv at IO@zskT%7Y6NRJ
zsmpo{!d<RCzB1prnRO5=U+Jf%j;N{W8RS6)hI!f|vHvxR0-Dvo^EF8bs%IYk-!||8
z=IP%~^BCp0S*6O`9=!-(>=RaFCtG@`;Ybx+!jVI=6VW*X<=@~@daa(@jUt%c+EEfS
z#P!W&aZ-1J!tZ9luT+XZLb5I+tOw3G;Y8NRWUBygdTqt&HkZ%Dbm<!xyDUd_wl}~p
zk-cIx@;KiIPCfqjj8POH?3&G}<qe+ at CXLYmGvJQ&e)MlLMcgIJ4tRyBk_)T at vfGQW
z8(F(UP1&5%zyCH5#HQ!8EmLr%q|)&HUn4{u-o`0=NW}E}B(8F$pDU at 1`i at a(jVa^L
zB=Gi=0S%v<0gcyB0Y2HfYgs21y7x?|`cIdHQ+Hx+O$xm=EN0=%U6Oy!tEa#`26)Sd
z>FDPJ<t4ia?<lb!rCm3HxL$<_7}GA`731i!R3mIskc(adUXK&e-YUjErujMZeFU&o
zaopnU9CP{m?E7{KCG_>7oP^kV`j()vs<YbqvVOOy=Gm=89X_b-N&`u4!Oz#cdZkfm
zE)<M^OAlvVa?j2BSbG1KyADtz0F%4^b`a;!O=|X{y#Al5p at kg(P~UxO#M5J+bQ(br
zk=F-dU_;}v7n6TKcA5ufDS)B16geu{>E`_G;@p>HIzv-!f7v*C9_j at jSCejFD_-x<
zZJxik`9Y~7jX8H6(h{iq7i;@r8ev5K{4MF*Yc~wGLvJ2)wq=An)o~vbs^aU0k9v;{
z4_euTW=;`A<R|>OCZP|Gf+OVSr{ha*`DSGahp!dnP^=?H%`i}%5i)ts&f&B#Pqsi4
z9<~!?9IjWtQ1ZMo*n$5}AJfX at -u}75u^Rox#GFpwO>b^S2R>hx7bbI>9Q9?;RX&P@
z5=7-0a)zVDwqhesOgXYz5^Qs1qs2{-v9b`jJ%NoFIM+VFQ&M4 at yHHJ8%I~+&Lk#&9
zhj0HO-^#S5x+B-CZ6~@&BHb4Ets1_9PMh~W*+K>sdjx4*=!ZsVE!v5mo#HzQr2nj$
zb)YWO_)TL{EjiJ=q_HV+nD#cI2<a=QG70^T at Z;A3m#nAP#|DmsCbiiJkXaiKzwY#+
zz37 at vJs&`YfHG1)HTbE#WLJ1F9z>IfZ=F}5oK#kOfa2%^6muqYv|d8_HxbQo_ at uF*
zX#kYA>t`D=@vtmI(yt*!P4(y%4ky?Kl<#pXcV5p{tq9e-H>uO{M+PUo8E$o~I1|e8
zA93lKhKA_NPhoV_LoB?DarRKZ5WWACrvW1H`LL1 at m$rx*9K3irXNY)oYFd=H-)!V}
zBk{eC4xHz9gvM|8z{M8tZ<Ll`LXB7pGb)33(9!Ak(lF~;M^mfckoFr_fAGU24T5fF
z(j5a5^{x34A72vAS*&nK1SY*d at gXhYh?P|QI~ANIaQ83yp3`W#!4tm<sJX^um5WG)
zXF>Bl#--pBDWJ?bNpP_H-O;95{&(bIso;)tRcg`LuP2Z^f6vh2mH4CEx(cfQ1+mGS
zp1R&yeBpoibTe7ba7HI?TnV*5frSr$CB`RMQ6@`Zjf0fXAgGys3pzLG_c-{j$N`JH
zFgE<C&GeX*shFV`rVbmG`T%O)&q(kxK<(OuVP9niD|@RQGQOy`)Iovb+if#U`-S~#
z;<|}Ua3 at FY9=C(N5TBM$$u7!nBil?L+V;}mYHGx7e$K5sSpldJ#O)+oRT1UMwk^5z
zS>1wZ+E{<R!negM>T!iSIpDO9thgcb$e;?N?MV>adM|3C2n;2!>#n|2c<Wk-{)BX(
z(p0V2gcuDe)$hCuw at I3Hh=wzCqiy%cB_=_=<f(_~YRH at 0HG_TpG95>^mF(J-Gb<Vt
ztu2%=pLxFFMybZ>NhrBXFkzQjZY-Rl2!SbJXy6`gQb`HmZ<p>iD1iVyK*GOR#Oi+#
z`dk$K$Z_c7HWpcN1iYV3j~yuGmllP<LEy9bUdj5pYN^S>ZpG=Jw!l at vMc-gLDRR^?
zl08=YvKbf<ODfuCvRy#l#f{Y_c=PV=56M%NARr1jY?$Pvbb+4CHF&5kyNs*~ih2Z|
z`D#K$4D;J{`G5~03W(EPAm0$c$R9;IVKNIrzp<5Fl|O7GCE1K^8oi{CPU at LI%W*+Z
zBJCvxJo|}MI~o|+1qwh-^q;HAY5=Y5xVG^pt_I$*T)72AhqFI2P;RSz954=C`9)uW
zQNUD?9*?(a35!ZGu+V5B(nG+ACyFqRoa~R{!!@aJROFi at gBDgB*+RiqpceAF+Pnve
z^}xJ6*2Yc>nF=~kmCLUTWmH^T*o|f)q0OwQ?zCXy`VB6%DoQoBoYlLL_D2$UXwY$F
z?+S26s$dCAG!*%3w8=&W)4Rc7Ks at Lc92x~O>?J8M at JgSYr~e)wT-M{I+dd at Kid=H8
z)X~`3aLyDz61_ZU&|sp_HnvyTKQzS#r<#wRZ-TMPY=<nX?E8v{r6 at 8AU9i+kT<6Yo
zWu}I-6t27eZO32faVqRA(~$p#coK_%d%k-8l7xJGP{+2cacu1?bKBFr*i<6Qmda0c
zS9COnsO at Iwh~8oNAp^=#sRVw&o?GeYi*IvzZn<j at S>k@{2kp|muhH8+I3J9Fv7ji;
zP#<z_Mqp!RJG7j^ryZulrHxhBN+X_`Epf`v$A~3GP|vy+wD6<pXP0O-%B_Dq!ir^8
zL;zn)3GTO-PRG+jGk7+Y at 6}6%p&;tcg>h?9)59 at 1r?Vt at 3KQ~qEQ4SMHsEmHqeOaj
z at N7C{c!Kd-0O9J)#IhIF;-+i%dXlN)NZaNqR{T36{Vip^&1IAVZB!y>H$RS{P^Wq;
zkaP|D*>r|X*Tl$%@IGwA+{Ug8WG#QJGRxKZN%N;9d#DbLp)Fk$8$It)6OI-p>Dx&o
zR;7+kq80{C5bixSL6B()+)Tc%UqLo;mPEN07t{58Phcfz;Sq{7Xk*&>c5xEG4R(i$
zsxGxLM+Z;aF(6z;!Z&ZdLN(pCk$3j++t0ePj|sv8MI_2UZ3sp8ZDd!UIUm`j-7kDN
zx<l#37f?i6Tw4!frh1B&ZQDF`>6{c-%tJDL+V4Fe7d6dM$emGH`@MM`BoZ^ga7a)+
z;xH-xPr>`mh=62LQIH0ZmH1cNg#F4RCKsV}Olr<#b%UP|CgNF?%C&u$kNRWVg#0yZ
zQ^>L+7g$8dc)d(<%d{jwKnsXOn#`|GI5%k9M-qfV`rZRbnH_g$GOL*Z)-G+M%mIV$
z=KP-E=htJWRCSV&jhXpT^IPely6uc9r0UY(HZ;$m%n?%Jm3kbaN^w6~DEK7C<|zB4
zbLh#rcU;)y?Tj5CKr&<j3kUx4M{>w}E at -aXn>5^$k|q)7R$Sz<z#daC)^&di8#{Uj
zjBH{s#6Tf8!dM^n-&tT*Q<LU_oYp%;>$X8Q~-!CX5oXLY=;_Cs+s5k+L()josb
zONg at IeXgO;i=>D4;gKbj{MG82=rwovI%ruT^u1gtch(ZoydVd2j9DF>M=p2w7F`&f
z9<81HE=~l2AjMtu((GX=VEAx#TI$5^Qjif&EDvmm*NYx3pV<Z7xNU-u)oI0&-B~lS
z17Fv9kQBvG=(cHgJuyvgk*`Ww|Nd->+MMYw9x?cr1-Dtu#zckP3)W8iuz1$}&2<iA
zHGJKNe+x{<0l*h&4a#6|R4R1Wm>$$!ywM5G)_e46pv}1YW!*o_=d>{>A2~;z&zKAh
zO=yFdou4Rz&~(&ZfNx at 0+f#}J!XSJ)a0`{RA~!(cH{24WRpp|!0*G6L=4gB+6FPIl
zqP?9Wcl4J4k=hCJS0Lr_MjC;?S?<^O^hUr%H_gK>p~u(z?r at l|3FD;09)EFHBH}GO
zRkK}twqNZvz6SfetoN`lYQ%wWH4%z`xQPE07OsaG at B^5lTchC5liu2I2XVAy7t)Bu
z-%4Z7*?@kdy-Zct3D_5&VYXg2vZ)-X{_R`Oh`<U}WhOY at v98ilMM<<#^NEE at TlK3+
zO}6AQ;;Je4BPR(cynPQh&T>5<Oea|pSmT%!-e^hssl<&w at Y2j-$;fCiK}IBQWyUrT
zp2$K&NRoxv<ndrA>7Hr)w6NmD3PyC*J>(2vk4GkO5DN!v!mn9%EKuP-=+K#GgY`pg
z2{fl9JJFdSi3(0n`|qrW&Bv&QqfJK|_G206eg0YVyp2f{iRwYS)7i=s4_Gswr8C#b
z<QwGI!CWNGXBN;=m`2Mw5bZByGcgr=NA1gc1?`|rO2lmfVqu}4*`*cmFlJ7~HG9c|
zC!N7H0(&@$58<<0M0k3zk7I`CcMG;27NHrc9b7a>a=uV`J-Y0Mh=S%%;28CRq&pF8
zNyB<FxxY=&7`&gg+=@`~z~O{RnXnpDjGvD+P0cY3Lkg<hwTSj<`9sq}`g7GrpNqbs
zxznlbw=B7n4KodL_+sw{m`9b8T_j+z8N>&%hMPQ=;deZc(K?~^e|Yh1c&Y<s2RYl!
zmskIkCU~QFHbGHu6KRK)&@J12S)Iq}XE)}H2p*VAGO;QSG_BBla>R#e6<d`SB|Em{
z54e(QTrr9yx%ef0fzSErE}>t0 at jad3X2GkP6Ssr!o8_DQMr>D$xc@&|a7VHr(NvHr
zpSV-AF8yZOm)L(LuF0}d5C6vV=|{CB1<ouG)5K+EpXp|QEy6VAHf$&7;QFi2_>Ejt
znrc)?lhMp0$feyJiVZ{b%)X1_K*LNtS5CG+2DpxQ$9zQ`>k<Bo08SxtVOXq{TYg_j
z(D1l$b(TUmumrb(YsGnwOcpu(+>3-icVWr$kvM^-{$?tX3A%sOy-m)vEEg at 3W6{ZX
zuL^-3hz=rf?00-O2~b~+Ao;@fp_U=)eSB+5;MCtA!hkW}byEBcRZz{KNH~Orl1M4)
z?!nT at pR?C~$2j<M3!OSnpt48_75Y#!!i&}B{?I=c>Nt0e?j=s&k2UORwNd3a>eLwJ
zB3$<$de%n=0XTbg&Q}n3brguJbUVQdd2qX(WdRI=Y5r(Lx3|S3B>LwebSe^30%E)3
z=+Fm03)WDKO2I@&qG?vLlC%B)g`oPfSJT)U)SAXZr2V5(hr1|(;|zyW>>Qt2t-Ql`
zs0tn`X~)U9p5OLW|Cch&Px^l*qJE-76eqAS3N=?<*}VN=G~CgF;<SrN_R1EY;2#5~
zCr>lVxZ+oYnjtCCkS1Fe$ij|fS0gSCbuWrSV$p!Nayh4QYLs at I9Wan92shb@f|g)s
zl`X%JWEo^^aHU`rO&t1KLl}pxW#O~2VgKb-AR_A+Dse4{4;5M2+{i!#G+qQ%?1b-e
ze-q4j$v~|KOw)DNbnpINm=b!+^=mb;VyN*M5^8;4t3z`hv`6q`Dked~s4JF41$hLX
zC{(|eu>^8DH8 at ZnlPAk+lS4fVks709zU)vss~E5O->`(oq}-EDf=7PBj~#CahO{<E
zCC=t|xMq4 at Kkz9hqSS*t2|sH`tGB+|p5T<Z&noG50y5CMzIs>z`IF?3>M#P5KSE<K
zK^^4BRH(XOv{vdk!W}CtpJ~hkllc6&ZlT9w(6`Qd6-)M_FGnT5!;BAZdiq5xh}6Ln
zd{7bh3;tvghrZ-sTJ&fX^j`3%mIHQ<E}9xfNkc93{6=gphoRo&vh;pngg1<DfE?St
z4u_e`&Kb?-gNUUb7A?yvlUeC%C;%zBFXv;D?{iwKlpJR2SOWGil#-h>>QU_ at Bhck?
zW7X-5hX!o~p&sza9HO5NEs}?Brn16!<&E8gsJ5JH+Gz7~k<{^6l=S7zYgB4&Te$|v
zP9l=?TfRqbmaVS8%<rucG1IJHx@(F#qkv0jZdks##hnXbUR10L214JVd(#Y{DN2xo
zy9sTeo+5Gq62-}yJ%;FiLp9pWV|4OeSx&&B<zlkCKn1&aOnEf;bJm-iCrV}cqc at eB
zwYt`H$cqX~K=Ep*e!(1T9p<O!pB}d4kIJzj`E3emK|2|GxV|wM3nZ9+(*6r`@^s6?
zN!Ac&YbceDVnE)<U*;@Sa=4v>5VX at 2t{1k`EmP7ivY7n=fkjRZjvcH>O4gF(zr^Uk
z({$7N2#lWk-*vxr>ql=R&nP_EC_AP=(#9 at G2O8^I`O&3`AiCVNs{dml at O%YYDHhwx
zJ0o_Exf|s|M at 2a&L=uGI at wu?V0w6-Kvx78u6swQu^AFcg>Tg(1V1DgSGL)oyqKS_`
z)a5MF_pD<D3XJAlja{*lhs*V*BpgdL@@DxucgDc!i at 5f`$hZr7zG`S_lzF#4xe0#I
zheAc{YyBXiYtW;g$+CFbU_)~8G5IezFtfO#MrEq`o4 at q#q){m-t7>)!v1DD6_wSeS
zf6hq7MZ3$*vwp?@p6eNmOK}yU2_zZ6Jldi==spyF7?{cCNVNEF{&>eh89c<Md&X35
ze9b<PWO1F_R=*?DdRx!y(0^XVb*UiEL$t<Tv7+8P0L`BU1T~Zq208R#SPILqvX5Ze
z);aq!!w|m(E5mV{NL~0HT8F|NxJSBQg^^Rd9oC<xhCikb-8N`#dW-!JJOXg1SF at RE
zdQ+N1708A<d=hXlYs~GOg1QvKDku389;d+%{FIS at h|#?td)tw87^O*3+*i%A3!Ud*
z+*H9{7WaZx;-;KU<>#1Wqy*q&>(Q)aD#Fua(5 at RP#O!$HcRn>^d{gW_on~V6i#-$E
z11se|mmmzMU42qa(UPSO$Hhrq^aa!)9LQdB3-ntU7pFGYgRk29#*y((17Pg+951g)
zp6X4lvo0Y<r3%#pwx>0}$0>I?7<s);zqArESS16U#GS?jP%*NRrbsqDtNFL0kulkD
z%DQNgwvUYWXAlgG96&hea#p_Y%q(`Cig=V at nqD3}^0m>;HM!BRKzth#6qh;gX~3!H
z#3`v^yU|1uPY_ljL+fHrIOe=6o`BbE$!BSG?*x$OE6?xHX)&v&qOkdN8fuj^y1nP<
zv=j3)>i*uloW4f1|4Iv#w$@xS+}2Y{-maKy`EI7(5g$MP85D4^@O#*Cf+=*30Y!bG
z(0#D}#IKO8nh0cM7$wPct*U$~Xn?R9_Bf1YT7ueZ4065RYO?19f7b;CY_nG at +J4qa
z51C^R#eSW~l9fkEr42G|whG5`l5Uzk^nTS53IQQ^<oC2+=o?6sLw1!Bu-o_Uune>D
zhGU`_scFwsd|ppIC^YpvEb>k$IxF at dkPNwYr)I9E%eW&zW0)okS%cF7kbO1Db&0i?
zPjx?L<nJW3YkFLt-HdGO)lh}2Lvs_F#dODtn at i_Jdt`UxmEC)w at DH$xGn at C{0AL5M
zem}<zLCS;sdHQp98QJsPVRV!ByR-SssEmlc4X2C`?&}50H=bQg=MMRQ at D!9-d;F;A
z&ZWCMH2w_sSy_Z8ts57trw<(K;$Tw%gA`4^Itzc}Wj~t}a)qZRIV|IX&VU-C(O8Pq
zm at Bay%!WiYxSOtFv(=-cBh?a*V48M-9Rz?OpVCzliIkj=&i$*2#em8mwNfPp*9D!H
zvb>ifi{e;$OHFzxczbu)tEy_1(eHN0uR^1^Np|x6;H~9|Kw%3q1v7aoLj!|=0nt?V
z)l<-7VGTpanrop-<j<y?AH=7nk{@yE92S at W)@JvTnBX6aElT6#V{GVSpzbObii_i&
z{4aj+K02viw1ur-P|-wG%E?fOp at i5LwLm8{`5Z<yza$_50C#RI*X<kF1Dy)tm-(kr
zJIA9T++KYfDwL!mPs_?kriIf~aalIt7w<cbhZJ=!2}289I8#zIJz5z*s(b<uZ(A!-
z9U1$_B!nmv*L$!{R76@(g*C2ZiVMQ6FWF7W&z{e0_{|0*f*`9n;!@fD7WjutIlc7h
zP|u+J$M;+FtHm8w)>vIn%1}Q`ZLbVCzsxzb{|fLdua at 2G-?n`WT6L~nX*bWEX>>A8
z--a|f at 0gy#3M1FosSnESd1oqGEtKtv<TNc(mopBcq1s*dD+V6yun|-pf&#?v2ic}%
zwKZm!xMC~2(wd831Sn{45NK>D>?A{A<Yl=_uJFtiTbhbZqp at 3={^j at Vs=rMCpyQki
z`9lFSu{T$w^nw7cpU=EW*ywma1stv-&1v((oNH~f68)*~^Z%!$N9Pj}FtG7q<)(mM
zd at b?^4xZ{n`Tdy(9i15+?W%FbYE%mZ+1mBR$w%{k-)YcLzj&eIj5TJ*Ite=%o`QJ%
zi{wbVXb%(SEf08=7wqnZ;D9CwKu91=gH>AssJ$%DEaw_o>2Qq~VzZ~Bm(5o at OE$6<
zHB!W_(goF at 5(>F?*3s`stR8NSygyM_$~|eM7BdCV*&{T+J`{yiG!w(<5dF)24>Uq|
zljQV2qg at C958HSj7><%XO^okjGn~h=02PMhV!MI-vwku>%XjpvB_+X7LSW#mTYikU
z(Y)owma;AW(?^Z7*TRb8&QpASUV9mm=XsJ!KRs1w6^eY)1>Wg at b5WxLJLN~2?NYyz
zBa)u!bJ4<QDzuD41-;R6G?SjEPV@#Y>S_nkQOeCGDFmF8A9g5<vlCzVf&mM0;2m04
zr+_$^Mi8t~0FYeVSsycYzdQxHe>FeI4W^jnZslUdO-ZH7<sg+DX6+(RF6U~8J6Q+_
zKL^!@91<-MtQ|m&_+KVQjf_dLP8Jmf08WIrni>dG!0o`u;Jd){qhsQoI$@gCw)B{#
zsU6kVE%F#MeZL{v(=<OfIp1Ov`<0c!HRrDrvt;_I at m6Hg_s@yc^i{U7Ra*HdqF at yN
z#gB1MX(&S0!c*LgQU93Nq6R1HKFwqAZW(fT<dx2u^I!<&)ewnr)KKYXmEf+Ia|tkX
z5J)sW<`hGy3Qu^NC**XI>V0H)e7MM^NIdF4Hf>0U4-Ktpp0b8<Yr at e7Sb`0x4y7?e
zYxeOn<f}EG*!pherg-gUe01p1pF%}asonq{SKD`h_qkgSJ!cGmJ3S2fpjy*1=u#UF
zBGa{Z=H*r9T$;q`0dl!YoNuHOZAQo<j8KMbN97Z-uT-ZNbmyz^XG^<QWYb&2M2ZiU
zE_?GnhX+?=Rne)L28=It at +pFlU2H2<F9&;wmn)@(qtxdw()jirL1jD~KCo<3_Mh+K
zm7!n8stv+Ez2fwbKc~Q&;CDcGED|84-3&7lRrPl}qR)V{gb>!gKws=`z{QV*-S{e^
zBOO<{tP7`T>wPZ$D8G(GGiCYCd(CCtkdi2SipBtvqysqfre<lRbu;rMw!*j2UBI)q
zeS_Z#P#)o3d at jOcR`Nz)9{|=gyh5GUH2}(F1&Q>c%wP)_6;Z9X%)Q{nZMms=4}7jI
zl5F*wK%JvfmkoB5upg)cmK04uz`_V3JUqYiwn!qX4C0dS9x^ghpR-|%hf)mvL5RN|
zjnxUDWM=qJ(D%PP(+ZlX(}dz|3@$mtif1<`Q at OVi(oNz>mG$3qAH?~#2sRSb(Yv_a
zcRzRjpGaaq&515$z0cyo!bM#Bn4Jil%!B+)V0?3 at p6$F0R?{mCtcQ*<%34GKx at m#u
zL1}PBsZi}MFABQB#mQ(L@!VsM`vK!@sI$sdV$nM?^7MbsNS}4VJ??IJnO+HxcZFxc
zrZ1sHbc3Pz7`nhVG7&#~dnw3kV7ouKCv4=i;<L2um1_CXcQHAEvpuP|F=X at xa`Nd+
zQ;2e`7{>AJ$(6|)l)GB(V+O;xyeKHc?lenH2YhP0iy4*47>GFXC>;7}M?3EF$1g&e
z)FlkK&TI8$+LtM!4A+Q!6}N%mf&8||weLjMUY`!}<^v|}72V7pjP0Z^>dW$M`~-!2
zZ6?KV`=;sYiQgEsWrpv~TP8- at nYLUrl9&@{i at _q<|9YY!;Jj+9^|~eOeLKj9*<&8f
zYu0h#`0k{1Q|_{?Z1`b$XLr&`7pQ~1<Oc)8XW>>2B_pyfbMMp%tb=R*58=|;=wNl&
zU+xgx>INI;Sj-Cm1f0NB{pxGxc%cDRcn384ebVIgFoBs9J*2EdInbGH#jhwZ1IPM9
zd_hD80ICHn7GiJGZ|4=^yEF4(t5vp;4-c~==eM0#8`6tD>UES%rmZe@@7!OVNY{D#
z9dK}g)rpVj at gJ`0SIt(cW#1zA`)cGhAFr{g`7VMmz{J;}6!9Sc$oah|HRxna(-Y*T
zt9Jd_2saY1R5W3(oRF!GzY=LC4a{Wd5N6ieEF_R&!B>|^p;Op<4{U(^w4dXaqVg?B
zJ32C9lfOTd2O_t)7sb&Qf#z|jb1xcqhfT%<>}6eY1b2t05fI)O6AJU3ymQ+qmyj3Q
zkl!HcPq5YVQ71mk{T3M%-`AC{v9#z`gSWkjjMqhLBVw5h?0>^;QfY7rbwuQR<Qu)b
z;o_!Hev`Rk&gnm9dWBC)o>R#pa8pbw8u+ at nadhguNC43L^fUu%y4Aq1lX37 at h0LV>
zzE8|fcWHSyUdA?-e_P=*8=MxZXcI*{;O`^Gv{k&E$EJ)`+B#}oNeFuuO^*qhD)>rM
z-D+mv-`P0}XWBQOc&EOl`$UHXJr)TUG>R?}U$m%(6+GOw8Ff2EbFwzJ7&0C2Rqhjf
zU0QyxAk at 13*Guo6j?Lt4uEjb#=lu&nAn_apEqK=$ng+0FOn$;925wO)tDs4~vRiZP
z_3L at ZlA6ggzJug#4?Jy(^dhB=tz?W_nsA{b*JvlwG$1RevG(mK2X1k?s<t`@=lFD=
zx{vhKIslgDv%-;~RDkUjfDS*J#)XbCRWtTVL-b$MANTw>Lu{uaDvsWw-Y}nmM+jTp
zXuoyjmyf6b8SgdSwUA3Cd^&1ccAJ&?;*WXHfF++XTKv{m6JPp(QU!lh^=}~|xAZcQ
z6MK;QmwpbdQhm_D93UlrQ18bQWoR)cCuCGO&vIhFkvjx|%G|46)vAx*GL2~d;(oOg
z6lBX!lXMiZO|#1kJBCL$VbNcQdwP>AQSbsQ83$zWbXd9ra{r at fA~mX1IKdPy_Leif
zHI+LXOewHiV_ESOPCnitjLE~@Y$IaV-Fmtg at -BS=vONfN|63XHnR4~D0GYF>YU|Y5
z_3MveC#e;n#Y~fzV{bQq;p!^bA;TUJc6O^dc~<FQ*Wx4lv8=(W<rQ#%NkKj;n0y7(
z7k{`YOv}{901+75Yz}jBBJVZ1<nE1bPGRR)m~vB^m(Xgzxg8yd0xL-5=$q^nCP~~?
z+kP<H%=fn?B&g+(&Z$1Mhhc1s_5`Mip&ZO1h9tgCUq6oF*MC>Dx~qa45ak@(Zt3~O
z+8#SLmBj=aHw9NB%pC{avR{N}r7DV2n%DVaOVWp(^JU5iewu6v5j3Sgm>hYeaws>M
z8&C{LAt1$ibkEfzaEQ>j0duvc$#ZuBL&vWT?`>2Z+g~(C5;;3F3sQ8QgDB~`<oA8N
zomoC2%PEf2u7;l$bJM7d9XqW*;cQExGWa+w(ZlO%Q8JsqT{=kOq7`@Td!$Y;bPW!}
zt%^0d-X>OaNhC2O`CvHZ_`qm#WV4<Ec}k|gv^0PO9RfK*z5YPxAKGtk5xBfZk3ozn
zJipeMTh_Vq4b9~uJXMk8`wu@*6MVK_O*{~Wkva-+5Dd56E2`fmxS0b^{Z0;CZGk6w
zqmbM8xft=kdKN}B)s=nrM)X!&CA(}- at bPX%Gd*{2`Q_8l>~{Vh_>U)_;U6%ic7*6V
zjL{<UI>Tv~Y%8d?>mj%>T&E|CI_{}4QQW2%W%$_gK|EXGkNqO%ygLBgULZk2&dOYJ
z*aCTw`Qw4acGU8npobnr#!;42cWIiG*(b5Yh at ho7AQcOsqcbyp=#191E1<k0Qt-dy
zxdUxb3pJXBzN9ybH`JFor&|U&qCEr+4p{cPk5~e%NM6S;HHKQtKg;##j{3`k+<qMm
z8E7+pGS}9>01($g6GJn!i2L>6gSwR-mfAqr$?{`Tj$H8l{Fgs~e1yK93{&NimHLzy
z&4Cl#ZqhbbUFD?63&DafWu`(2yyj#uzsbr6x0hN|Lk~4aL)hKAM*nCB-<`NbhV%aC
ze5YvB!ax}~A-`sHdqa=jJHE5~|BJZxoR6%@T+c#q2;E4w6*YZ%yTV*M`-4~)0K5{=
zyDoR^x1H%gFh<|^FniB&q%5A@#;~6d at I+ZVmVr|m$+j)NhYq~Ykl!-BT|?H~P2#Nk
zCms#5#XE_^EeU>Uhu_&hj}#M4KsBf%HU24C<kSzIG^{EWHJxgbuWuz8+%Lb+{RhMk
zKHQFaQ~@8%oC=^<zI!6P{~%U_f4WdJR1Wm}v*QH-Xuf`zzQk3>=11QOK&Wg9FuL#A
z4Kn`bRD>a9YN|$5ucpi))?FoJ)Tx~XVH{FuWy52>*QwIU_?E!}MK#y_1ZJ|zb3C<l
zjQrf*w_1y$6CjAzRLv6*H`sM!*9wlfXmXR5guFb<=^F>Fvu!YkD6`<Bz}Y_gt#3n{
z<J1F)pini*5tSZBxz3&O)#eDjiBcJyC_Y5R at LcURlJTAmzJz4T+DsCMte@{kamr-H
zhhq_`8VTAO2|NMZt2xl<9wXahuT|)MA=3U_)abEFxwg)@Aqab348Eh??2f7bj0VlJ
z+xrqw^hI8WctcD{mTK?~P`XbaNE!Zrb6>qJXW3fc#@(A-1Evm1JfQp;7ta$VV4>d_
zW~tpv at 70Wp+eB4C7)(_ls6FBNJM}qNC-KZ<s>9MMoS**f#k+AeNl4)zDfBS2YwL$Q
zX3Mj0F4BW~GHpMh0)9ZhzEE-6+EZ^#V3JNg6be9AfG$<=F<cNDPOKRN-+a!y!`;4Z
z$j7zNT7e^^PHS6U at XdfhIQ{~r+Z^CBjBt$m5R&(E@%Ks=FNa^h<T%F?f60|ZaX64<
z+hm1n;L3JZFIaBZQ~WTVMAbkQlyN4YEqP4A0rWhGhIPG=!33)wsbelY$$5!qJTIqD
zxtRT<tL_K)!YwU5Scp`G(?SmVvoAeoQPYwo#hj{8Vu+Sic{qsm2NqL4BhA|VfPp$G
zIU;QQHN5YTQ*2sy(q1_Wq43r1TFgt&7?d*P22%aG-kL)8X5Q{Yg5Ij_Xqa?rHJErz
ziJNF^p|cgZ#X7VSAq2^L&K4x)E%j&xsRLThHDQ)4E6`Q^Jlsa42Ho6cZcgR3@<1z0
zyT<RT$EKNDr9VZTgj&W2?ZMw=u{?PRTbS8ahZJ_m03H!;w5EaX!&)8Sb1O_iCcmb|
zW$MiCXVy4 at mAf^<zY4Gk$nhBHvDuO`7xXEzM(3HH<*+PnttFkZk{+e;RBo(A#YG8t
z8b<QLD0Qgjg)6$mw^gr-wgEvnv;IV*GwIKgmT&BXTd25ep6~tA`r52kS}IWExbV=;
zJQEiCkRz_cxjs!U7H+;NQ$|`*HmM*B3*{J6516lkmb`-wBgsf;m#Sn|oZkMZU#O*5
zI3H$n8uta#Xs`%C8M6-n7IPgdEQj7xQJmU^s4;rltxN)wCGnSD2tg<6#^5$D<q0s4
z+LY-4Sin~T-!UNFzLTOrCY<s>9mfuXMs)PG(t}*7305xT>3SW5%~?W-uSI^a#eK~{
zn=-xRcEp|;p(Zw#k at 54n^+NN at b+!pz0=;r?QaF<_`gmghkBN|N2!J2}^ijz@)(xIV
zI0e#I>ZWL*A-#UJ6hbS4DMt6|m59jpsmu2unD)%InI%^Fi?>DRHgB(ZsdK_1l5wGY
zj4GsvODKTGe2gBN-{%9Zdv1V7;$iOPZ5sEj&q1zy^rGdd7hfL|P3)07z6oWaUh@}>
zo#;43x#IT!Dh=ZH2VS5lq3;-%R0$B^E%y#ScA3SA$RJrOo00(c9*RUjr$SCK^*T0@
zx{?gQ1j%VB-6|_6jOR+X<XQ*ukh at Lv&4X95*tTWqq3{EnCs3(!vT3z<P5s<__W~Wy
zAc!Z~#%4X$A>tJdCD(`AzOjFvRN#d6`3U1Z3Wl>3E9F9U$MqD=LRTzMK2|$E?_h|m
zy|?*UfuKL|QH%mTM492W_%ZE&ikDrsIInonKy6L0n95`H+kJ_kL!0|!H)XWbV0tzL
zqQ^pC2@%KfjS7pW+L#T|!keye%=vx8$mWqdAzFz0fKW at 3D>*#1WYFTbGW>O<Nps=}
z{f8BJalR&qokkuvRIa#S0RKN%o*-Gn$E5(C0F)y8{iTxM<X5*1tCHfT4JE;|V=Ju{
zoCD3JhshH^Mn;BiZdh5P!fP!0V&nK^l8*vmzx@{*NJ`)+i6b+Ek+P3T!?v+S>1;GH
zDFT;ee9x~oKhl-Jx}C<?8{K at E3K#g0W;842SfjLkm0!by66DCoQ5x5(8P9CD>ytx?
z2d7D*Q&X^VT^r%7z;KzXf><~e-q*=70Pv-&MjZCEAWb1N91tj4N0z?>Xd8Qb9aPD4
zIL!Sk2wOn;>15iTXe6 at o9`YhO4sj(b1Ej^^aqElc8vAN(TpNjZO=vBNgI!t9;c^Dp
zjHwZ;#rIg|T<SOmWoRUkg{tDdIq^oHY=}S8s{jnPAAtjQly+YYX(~HD+er{6U<ih?
z2;BhOocadCZ9GCwP!S&9r2t0M1n2LfysIFCPH)(;;&GmdRH&8NGW1*-TwM;*zF{iI
z<-N&ei^@aXpZFvOvIw4ZCT^OGm~Tp%;E4fX*^NVb!#iOXp3$j}DL^4xACZ1XBwUlD
z#uhbah$8}WTt}Yc56NdXwDW at e<`qT%jT-Tq!ZMZAiW(zjSP5&J%K9FvB+=|Bc3E5o
z(#dy2geEQ$?f%_tkfsJ^K&-mrL at FYZMs)1e+*wk4_ZTTzDve~ZxEhXy+W?__M&E9l
z1F9Q^QylFoW~2-b_c+csMuL!_74^|svCm_(h%!K0dm<ga<#Q9FF=Y(^$y|%j8q6#e
zBB9Uv5dZ6}eQI)x36F|d19oV`{I9m}j`9U_8uV=`XO5CD7X at Trd6;OBmqpQmd`^di
zXVKbeu^8NSq#RK;?}YS{w_*Qj9?~A+yy?o6uaSI)+_4RP$D+z!?8CB~Ip$iWnWy-9
z#vFm{GCeQWT8blgrPnD*&jHrz?z=bpReJ)4%s1RT-nX_U%#=her^(t0Q_ARg+&l$i
zf(=DpaErypRQ5q;UdvGpe~xA20Npl<A31>B1Cnkn<JB|J`GVI7KHTg<!MFGZ{geto
zdHN5e-ov at MAM5q9%z(^UsqKuu!i?6KJ)ba(m^UQn&Qs{8uy}8Z2KULIwUE2>Uo9F=
z6)UAW(+EZ?N!4g8wu;Yb4}i4{$KaqOZ!$Was|D=U?Lk;nO~ols%*tGjbB^oQIIZCd
zf*jpVkdsv3s`#Zrs+huijnPvVKz7P-Qx5amTKK5m8A6KuVenibdBg>;cxaJ$ja-<%
zC<39jp$jQP+jMg)p%gbl0>|T4$VqG&^E&bbz(c}V`UwggKemY!R6fhtIwT*)e(;ik
z;wnE=+IP2Wi!a2|CkQ~!g-g^qtsj>(=CiksD#9Bo9>`}~&#S-Fymfln#LKOf3~B5F
z-B0!!9c1fSS1%atS&doT<_mnEz76QS=A(OC#z&C?*vzHJc|Wfe3Y4=(Luu;y3t^^S
ztAVpVc0^1R*5TWIlX`mQ`0t2=neKuYtR at 91aJS$$e3ct4j9v`?P>=Pv1K=7kYgyXF
zQn9SKEIFGGv&}@l$h<`HpG5x?iv5kDn)uu#3m`ZZTmSTNd}#)_{)&hf2DEbB)a2e~
zk0IWeM`+QUAWU`!7lqX}VFvE|ooH&@VVyOyh{~r8Z({#>--D{ZsZu5W%+ArdgIvmx
z4|QYIE~H<M{@DUwGx}@~P9(&Lq2o8^7jO0%`m7<vDkLMz4r^Zh#1eIHg<+X~b_T(%
zv5fN3e>^mc`bK~;-SPhpte=jgG(Z}Dz6$dti|20QJ)#i|x$;lS6RYU%va<J+;TM!)
zi at w0p7t&j4Y|aH!gz5U>%#y6Z*Q%@FPpvtyOYnuv3G%p6t}rQs4at{=Tg2k=pW9}^
zl%HCc*MnL^@}N-zBI5k?BO)B!BQ?>-5xn5L|90QL4Fh_dQVj@<Xhwf3kh&ar*L`BK
zTX-;Mz?mc#lKh(&(wIAF!e%|P?*C!lBBcd$#z6H9b(q{iz<@HrS%v`>NhSW0BQg+}
zk^TM6PGUK%>2W4*3O*Voo6Uru&!d*@P*xhcdG2Bv0mJ&5;4WLExQi|*n1iF0Q_;c)
z>;L(FCp-a!Xpf1!+Re0P`Jj^lzmf76ox;Bl0<B)6ti-}+8gKu4V3G*nY{~Sa(5Y(l
z%zlCV>>_wS0tyCUm9feS<wny;namC~?&6~RV}SgK1<@-*!ghf4KxQvJU9<AZ4#|F~
z>c-9L%Ol~zqJ*D)*e7+-VrP1t&7gH%#L`Yy#zM_gP=OX1BTX3&Z1thb5(*1E$D(n=
zs at I<aN?q5m&%`h2k%8fynj}Ccp0LL9+nzdSVnP5!K}%fbhj~z at NsuP*c&zaXdF7-L
zvtU$O#F%KMysLidN}v|nw3f+qpc}WJ`mm3^gSxonFqR?MEoub~tpVGfe3BTYkJp9q
z#tHO$k4VF7E9%oFoFk~dOB2P}w*1B;{6QW&x?Xif%A_ifvf6l|M~z-|SC_b3S~(2+
z-TiH`E$CqQHooz2G at IKO`kT*^2QiMwuYg2Uw4aH;UI5sh7mvx%fCT?^6L+BF%z50$
z<bftu*P at N+aC(W(Q_H8=0Bo at B(B7kG&@cNb-IIYTI)Jl1(`}bPXD4INp<z1m<EKp4
zXic7v>dLMAZgT=!i8?h>C=AO6i|=|Ya-hT>vi5^V8PgV{MSUBVli#1!65vILs%=_&
zF*c%C#@e0ij57$1?@!{#$R8V3p`<dk&}+)l?CE5lDau+9YO0 at ij<`nngy664WI;6#
z2ILAKI_?(hB5mKDbIupLwYnD9Ft1 at Fv8g$Z#!yJ3V`m`Vt`+ZwH%)UeK-s#)e5It%
zXe6o^-wQ!KoGXe$1PX|NSRe^4Ia4y^+8s@&1k4TSyxrE7!Y_6}ja%&svMBa2YBX7B
zBe*ql3?XLd>wCtH@?3+MSiwffId5b0Ce}y6y&Z1j4cS%hvH>(d&<iz09LdEXbmkf#
zYD3b~mUO{bj#{<QDbt1PV+<fd at 082uQeXe?JrK_(27NBsp=We8E^|tgJ{hu$2VO<E
zAB#?0Q(1_{h#*f{&hdq_#9OXkHX`YDm5d+(<<}2uZ4>Qsi!Q*eAZzxTuHo4|d_wkO
zC}9FtX3Y^+(x82VL?X*nfsrm56dmb=p2 at djJh~~nPx)&a7zAxkiYSb^$M{h!-6sMA
zDSz=g*Eil~u1Aw6*QXb6&|P`&w at d72yG!V5S7O$F>65{{UIt=qRW+f_QOsvCzb>od
zb5o0- at _WkfJSyy;a at Qh<jd*p|xzG<WGuZ8Tu3E{#kyoUa2TWLg=k^vkk)bMf+E?sZ
z?d7{aDVUdW$tDGL;wc}Had&~f!Qbf=mW0+m=NE4h0Vax>W1tjwJTPnIv7*LwxHg_W
z?X_;11XfZ{5~RR16KByVII?cQzuK&G7v(Mg8}Z|^Kzl8ab)V%yNf^e>Y5AZ+bq$f?
zC{o?q?>IRkBpKJWb$gDZiz|MC9|YPp+F1cD)1|)fQZcKr`dp>dq+<NPM at T!HwCVO(
z{8Y0RBz^tu4x0zh8$5K9`|2*{1ZAS%W_D7+!-M&4Q!f3`b1nNX8VlKAAc&`y;C07h
zpvgNGP1-Q=>mCgnn+_9sD02a;ER+Ow<CQZ(yzHu!vTIcNdxI#=Zp6$Xs9D!D^2gK7
zb>9|{VJJ8lRtRL|zO^{%4Q`D_O6~k`gI*#{ok$er%3B~;o5kru?2WApehuKras(>*
zx~#D+f8ckaG#aW3)4E at rbm6gioMg+YmVWm2H*N?aoJIbVbp;)&B1VrzP(R8?Hfq at G
zIT<uN=sRcMeg@@$D!GWR=;9777m{TQx-Xt+zC9W9OZT5)%yI18`O<snm}}R$v84Qn
zgf}uOeJgwM?<l{}jCg}zo(k(z3f`6jt_97IX{{lc;bKWTS9<2fBLn=xCdk1e0!<cw
z+x7SL{L_)_1e4A-`4-XI<}z45?ol8U<4saB)2RK<CU2S!4(Hg&vS$G?)Und+1F8g3
z0|Z<1w#-o?N$;)|VqRVWnDro*+8j6Wc!R7 at d<_}+y|Zxgy6HK##Va3930YlyguV@=
z#Wf1Gc|l+~Io^`-ED93DI9r<sgrrcz!$xrb>3DOk^hsvh2-oY7JNk&(0X<fA>)WgD
zjLxc(#53HkPwH07(9_~A8wqVrqdpk#&AZM-vwUTK1iOQFkJ2h4+2R`_%bSE7h_C{_
zycM2WKJizOc!9&%!$p_mh=y=)tLlZ983sXX`yE&}#0I$i@(!o7Si=ai8UgEbJj~#;
zBl5SK%KtEtoF`pyNe?Yr?lz)iz`k0xT3WvGWB at 7ujEOhbk^L8eWoZ#g*$DWn?zvlA
z%Q*onw%+;O4<ks}%sGs@&=re66@|VXWRr9*!hcpmHkhD^g}Y at Ko9>BcG}TOe6kUmd
zyVR$K;%CMZ|Kvm}7SNJJkcv!G{o=1vmxUc`%iJR*KVs9-Srip4sEl at vFUde5{)uC#
zif98cpK*SXw at C8L&}~_Zp?tLLy!4@%PiJ^xlrcfqtqq<JnZTEZ+Fmd>9NOm;g)@~<
z|GbzGH)%&WqS<^b;Tf at UCdNS)xc<CRay|oX)cAv6_7pUXC*j_2 at rB>ujh7i5$;Km{
z?0(xC%RZlls8cJ)kQBx^y%9<*QsaqzPctCob?&@F8z6L|vpV;D-j at CG3qC(Iq0<R`
zud)svNrr25iliAQ47|En-{8|_5T+d{ZcDBcTbs+78kLjeAV+^8>z92Vs->Dh+4?IY
zaDNm7s^1<v;i(&LCN+PUwf+rGzCnbu2JIj-2Il1Fw)%^&QdWiwpx%`LB<MAsrl#Fg
z02UgLntKB=S5e9?Vj}g+c0a5faUI%a?|AJAiJ0>n^m+)A^1!{WYLqJ7&57w*@AgOc
zqhUq?Gs)YonGST+)Pu#QTHwHV at Nt|Qrn3+rQ8zcFzjHCq`9!uKQPTF$WT1MViewrQ
z{a5=nu{6AL2-TYSm>8i%{RpTI0ZwjunfGesbFc%N`GwA5DYxqA%5hi*zJ=K;IWV|W
z?A8I%rSH%1i1nna?SLLfkDL?7ae#iVs`q~@ZTvfx&EwJ*7Q}rYd at NlG+&w9(7Z}F`
z`ePsT at jYl%;;4k43t_VR_MinQtP;xuF#N6|7xpEik~+^Ttc at V@d5rQ!o1;O`t5qhe
z*VTi&@(3BhJ8Xn#&)c^%30iPp5LbUO+GsYWeJSex#mA)%VZkgUfYRr4Q+C at mwtJgn
z7Xem>?SwrJs$N{CrIGkrCQd1GKs4wI<&9X66q6*^HzjSC21pt#0Y%<*HD5U$=K!jv
z#&GtUi7yNm5Jt_8%qI7cV%&3^i_B>=HqNrdCF}(k`lcD`Y>7mKh9o;M!4K=U9|Xl{
z4O}<-BtmKa3bQHuZtqtqbeD+KyhkA$ecKjnfSL%MZajLaX5)6lfSkeYM{0JqHRl=;
z8SM~C^=Ym(w%od&we;vDA8CGR3W;)!&L2 at D!9Xhwn7@&4`xZDd949~Lo^;{M;vI)b
z`+2Z{MovXa)z6r0N-f%@sI47K$y7Y9J2xzBDVXrcmUikBx`A6-P>l-<xdXvHdS>G_
z!hXcrF|s!4tsD+cX;WbvSZB2#S|nX#`P2VRc-*1c+ry!H6X_#}{`G%V at 50JiO7;LC
z!ij0)tg2RCfjssXU`a%uPHwhYoa{!afPNGDs1X$+Cf$-)-l_)g>=V^~s??z%RJ;*c
zRssAuFF>g at jMD7L&=X8!FiFG7K)$<Klr=22VTFpA)UiAO=7`1HHdg6qER=30&pi`E
z-Z_DllXzqeonaDrr@>E^?;+R~(5;45E)}sB at Zee=+l<Mk0+bZ_Ui~JjS&ZRBc-DPi
z(7(H2_FmO)?&FhJ(O2GPkAr`GwM(FRjF6mmk+#e16@?+3Z+k5ypcuaLvy5Y>fb8z>
zFPzK!7wv8^nDlG*Sn+L|j}mreh^UbC0Sa6}LHhBBX+|0gPmxQS91dulhUxVg2<s#K
zmAPT4*T8?_5Gun`Rkc<jjyHe{oHPh{pl5r|N<(%IXMJ)~6_ZUw at 7l>r_ke}yghuDY
znn5SZm-Ezgdi1Z?LtUCq{t9grzfpf_bnqk?yXyU0`azXXH at 3V7zd|DSfxYFhB1>q>
zkzIJ}9MNm$X}T&!H15Xok(GTy&_2vN2VB<KOl|%6S5Y0L4{cB5njJ&;G?-8d&df=6
zeXML7r~YWl3e{LweFn>1%XMFpetI6BV+nZj6rhn>jzcN)cUh`P10(sb{=2tro)W}J
z&YlwE{X9#@ZSe`vnYd|VjX-7Qz!T?A{p*4ms_$<P^<%4zlZZ_%hJ@;l4yq`~b0})O
z1YvEw3$n^ClCT&6*e<f9=_J=DhYmk487jxi7)IBD#_h8+ts*2rxyw2qvo(g5g4^9I
z0_eW(x?$x*e;>O<G5FG1T^l25%W#{=B{;JbB;tqCI=CB~N^o3j7~eJw)5ombtGfGu
zUQQnA60MUFB<)A`Qg2&%$&C^QphDv6OkhW3#)!13c}MAQ3xa at B@BU+wQ`dzkfWQs{
zAyrG3fGPoW6RJpGpa&B6k}6s^Md2pKPBW-vn3ZH{Po3y*4E=jjAMRJ_2V2+GmZ{TM
zH5eYyU>myak+WwXi{8rok-?+ADiNM(B_5#{a7GZ~m*{d47p%0*T_P<sEu>TEt?~Zm
zp$9lYz+RvQome#Hj&W%D?r44Z7s8!A)~W6w%GqP- at ju=m<9!yY36$IlD_}+M{)dhE
zd=w{>W+kq7lYyX5{N$C;qLd~Dyl0BTb7~}17|mA}I&^jLxQG|&zaBy?#3KD9O-%0(
zm~&8}w&qM5K_DSR at 1*57d}xuGtdiAt at IV6&d<Q#4!H5v(D5gvL*>c`T;B1PUTc%Xa
z*uX!<{CZpnf1e4d-8-J<xcQvf$NT7;Kmrul<C2>7dFNgyWL%MX$RCCG9YmZXB3P?4
zgs4C$#G0D=Xsk${kFpXMlIGP1P}U!Xs&*9S^Q<P|ax531kMmwTJ5<3;3B+2Q-x!Y!
za3~=13S|qCn&>+o{&L*h9;pAJJxl98;N;swyN%yR at C)wJxDm`FI9tb)sIN_khPKtS
zqP7~==R36*FD|ey^2)^iTwH6Yxe)xNV|V{W^4x at oGWFvcV1YGYI9m~fimaYR;;8Cc
zMP{meZ%}{ojzIJ4M761QPeMD$*K+6D7jWjCzxyG9)K_`B5;f6fp;uk7oKwaKMKitA
zQy?*Lejp*s`52Ac8aG_WA%3yoUYXQ5jU>8QaIpT}Bhn~~J(ZPJ(g(BeyK08HEYRqZ
zip3G1IcrnsECb4k601yhEDL at M>2npWWO%kB&!6Q?vioJvA7>`<e+GcGE9VjwKfNsf
zGCa|-M(f-_&3(!d`xNODwYF9n>>bOP;|z^CqTIVH<u2(P(|qIq&QELss~KbvA1;yN
zw2;ehNkml{PX-|@;v<N}L4fsce>0K$C#Y!Y){@7$8*H_s#Ayd9XUP*J^q%!~4pW)E
zO|@xNEngUEe_dD7Jkfs!dTuV!0=rj>$q?uh#=w!<{Mk$HooOPwg&(e2-2ky$oz{R~
znG`s~-*}HjzQUuPSQ_p4B$k~^$miq0gtO_v9d0F@<r%~0m86C1Iv!DMdB2uMc&KLi
z`AWPZ>=y&P&`!R^6S7-^MA`F(WK?2U{)GsM=Wj?8Jq_|K!2?ha8N7VbdOvs3OYRss
zm7IX&-Z%+J at e#wp@?&|zvyFsvfc8*`DwJ%htQ=9*KOg0GlNO`!8x`l%#;%9)^HfOe
zRP<08LF&sW*yHCr!_~{aA^#0qq~z+7Gh~V7j};u-sq0tq;goGl$pNcS1gI}<(~ptr
z+8Sl9SpDUJt?ZMxlSU}<1H<0J>WC<7EeM};aKbRMkccYpx|uyR*NJRAb+5>qe{0e|
z&F{52*T<U}dns)}iP<9`QYq-?QT0Q&aB?DRB at Hgb=}C?ocJ9s~Tx?k7VLO$b&UE)&
z{I^_2KzUQh{<Pp$db&xPx94uPU6rETp-8nYAE`GZL2*w(U$Xh2Sadp$9J%VC_J1D$
zE_wHR#vf)D$@~vEN86K%Vi$$}tYI}DVbgtnK*sGXduabmSJwG<4Rqyu1WMpG)7cM_
z^>78@<TBp}(RU5v6-qBohQtJBqAW%d at Mjk(CZL<%4b9=(@uABwv?c7yDjh{bdD_-&
zl`jZgJdb8do33{<+r2QG@$N`S at xgNoG#)}|2s-Rs{|lJm<FI`T=gP7WdWF^qvf-}n
z7CD<~S}Q1^J)@6G?OSpzEjpJw0Ok0Pq3>MM?+L}Pb1+ui>?pHY$)59H<QJ{+bl2H0
zCYJLG1x`I>CK0hqz|tcN8u~?EDId}TfQ^<yNoncbCz#PxK~Tiu|8io`2>&~vg4We?
z0?5Gfe(@kF4_Fp0a#SpVGssT9STL>)!5hIS;lknBWQ+o?eY7&P!#p!Io at Fho+AE`?
zP~1Wi6Or;XLcWqw8{Y55itX#Gz&oOzZESOYG?oTlZFtGyMQUn22>J>k_a|q*40O0f
zg~FH(%6l(DCW<xMdgnJ`Eo|0Yn+s4 at ycuO5X(`yTO^YP<ITP*0JoKUaAb+c40py9(
z{kvk$aY}M2;htN6dzIcDyMk<v9<Pm0id!XRa7Uby*s0#3U at BeJ>}}4#IxQ^W{21{(
zy8Ef0);Wvx#wLl0t0$1u>IUGNO4Zo1BKz4`7#5O9J*KF?y at txiuv%I+ at y<lR&h~~)
zTvY7hAnT+M7ZqVUguYje9O at 6@Sr_AqI5DJw#o4|#^{n(z0OJ;(uj<y(%ABKU{42`~
zL7|<3l<#TA5MwRJg&pJ>N&~%{yNZyXuuZCs29n!EO^@YU9I$`unzYgtXf3b0I!B&-
zCd)-}8p^Ws at aN$p;whf{Y44n7*E4JXoA=Cz`#cEXpUFU*{LtY>XM=CR?vreFm#K(I
zCUmm;Q5QW>nuzl?&NTRS9(-hURuX5f!@j~(5s`=`UW}$&(r4l=>w^de30rN9a2?1@
zBU=|k`aV~QNBjRHxm+r#q}k6rC%MUJt<-?@4DTQDOjYNtv#Bjaz>p4)ZHJIZIzV=T
zf$utnqS`Sb-{8nl6Uc2ThFjpj?}RR+#-}`}M5$hQ6_`TQh|3 at 4L!S#8M1j5E3TJm+
ze>wH3=VtB at f!jTs8*-$-jgF52g- at Zyw*5yXPmCfN1zS?%Vq3;hGQsB;=LXNwf=3&a
z_r;``)nUNTGwwm6{tNqdSNjy2#7_B)VBs(e?x;Xn=9eNm<sc3t`PLR6;k~<G(y1ND
zdmsLq7v9jziT1dHNk}LW%a at m$&jTR8WZm+PY=0P$t9{C6*3F;kfD8)d${~kPqB6Z~
zdpaMO#dKXu^b=q*ZoW-SyAa+MICnEvl1I)!26wNZ2wuAKamE9t0q3<J+ko~*&EK1?
zlrxVvJwcnF`KXKSd(Uv6_y2KugEh%aSbY)mtolwY7CUWwE!AxX&I-O_?pe873(p06
zMU4Fyi`q7*(k)rxU}jE^wT&@v$bnCztUL-WQPK7NRnwR&s5gK|+$s_zx5(cu!-4v}
ztBbow3jG{-wcFp;k+FNNLY<RIz;WsCzNOo&xA?8bJ$B-js9Nfqh4-@^d};3`SQm^_
zU_FClccN7405d?$zfnsgIT9A6jW!tmXGGu*bzxT=A-}7cH-XW9*fBmXj%RLv2y5W+
z)|}rDczmP{eT$RSc#4V at j;RHQmeemK#406~aHu}5sTv)z7uMiGx0vGvl)k9YVHHMu
zckAnsGp5(9CDJA0E2dP{pidG{@lIpZYqM3vC3IiYW$LsPyD@;0 at lv`~)`q3$jKP;X
zh-)pn77kv$&E${B8OUS{Bxma_2sW<tSL++A>Ps!q7R+wbMF>OY;5prga+~8Z)tQzp
z-$^GmpBKMi_&N^=dl;@a)q8F`T+3w|fBfw9Bl)?XJrBkmAZJCoSnEoR!;4A at vEw`Y
z4Fyq){RhT!h}HIvMEA!`jd4SV8_0_^{TNjrg%k3*QCbRpdKn1-2Ndf+yQIed6eBdG
zqerQj&*y1Rc;T>K5ro$rL|w$PVRG^DIFSm-ukvn{2)DlOEiBI{Lw1$AYK^?3;v8@&
zjfpXpUyg8JV|tKvd#ju71&5?+U;*x1*^j5HYQ|6o)d}NNGyPjan2d4XcLx}E3VtS)
zn|ip_yPz-Yv*ko@<7`D06SPG(J at RedWzCJO23*AEP at saF&5m)#;!YsBRnUn8Eh-4p
zrjUmf*Z1-A;^wB+T>avZh at dRP3ke3^85z&D+rxP at Z?PBY0jr<-w=XAVMc(sl^1h&H
z)PXu;dFO~jB5`H4Ffz3?mC(7I6)YQ9Mivfjv1y-^#_bo015xhj+w{GNxxVQ{Ij>id
zN@<bty$e+BuND?{r8_aphsF~D)e;B=2}0V+b&!x9^e)giK6<Enm!Q#$OS=alx|grx
zc7V-58^9qpEPCulSVLb`b=B%~;Sc$vOXB!EevWFU-_K#j5WXI)Pf5 at omGw?!i5gT8
z>R*&L^xOwsjEANckr`7x*4?rdO0BP^fZPWA<RNby5t^k*Itk8DF)#ZfRQdw-XNTRc
zsjre^<|NqnC1se)&(@y1(T#z|xIfyz^|DHO!1&4x_A9rBarRX;5TG?VXgp~wIBQ4t
zP8yXoO5MC;O|*G-s!%*<4m(2P5n>?tmV8pSZBTN~@n8|{f4#r^kp`|>xxzUo$hhp#
zzQ!TqoePG~F9^od3n4Th33j73hTqBy7~g(ea`(Fno1H-fs99D%pxzy5>r?3zRs`uR
zR`IQi%Gp9b#JhX5H3k$}&act00eBaa*F<499gT})cFNrC?{0cr;EcQ+sixrRXsv6V
zeA}w2creH-<o6W>ffilvE~{-%J9i8)f;B$YMVcPN2kB*cROl*dk0<_quLz(i2p9te
zdD$tFU5tzJ=GqIC&DGATSB^UcORF>accUb`Aan+Dzmy8&-2*nFSvAzWLoPGw?Yk_w
z3WVN7epy57PsWE`_GX}9&wIR#S9N>b4v(<@X$t(3H|{a5H9~m at M>hhXP4gmfj>ZK?
zzR at Z97hFp4;)QwLXaX0QL?j9`*6a;?uiwG-10V2QQN|grbI*GVnKx3aPZT?_gFt{Q
zeAJ$=f1ujC#QWd1`&g`jKmEn@#ONUp&i2~ola|n61rGke_Zkg?kN at EQC)-?hv1Sir
z$Dfk86iqD01!5!0pI~-Fc-UKVJ&ylHN=$!6^`^lwX!s`O>od$G6ZhL0x^^Te<cPic
z6m3EqxD#}{wQTBeQ5HB=XazyK#rotq;e8(gSm1K&i at mKn9^c#S+Th4Ls>_H at +GIUu
zZ<Adg<JVzt9FZ$fhoHHej<z2&x^VU<|G>$Ll6TI05+&(T;alqcJCoNT<Hbwq*mv(k
z2402X#<pBt{r<FNx8iKfbc9niP+QAmWH1ZFw3vVcx#92q at 5SLQU$xWP<`ZaKb`>KL
zi at M=3QH;edpbaAB#2SR;o((#mezx5CKT>6*>dz6?`oktKw8iJ{rPT2HVpMloaTXEs
z^c~H?W$T-bzu%i-VP)EVI>_K~Tlh73b~*mJh6OCqi+<(e{96GA7i>A!O;CJu!36KL
zt*?(A4iliS!d|1nV>1wOa|G6kk&h4tz_r~HF>aR!FCJ-8Wbs$*OqA#M!csoKhAJ$0
zVz*WU(ozrC$C~0ls7%z?B4wU5!4zU7l!gv9LfK!haRKWk8y3nmMp+InZq+qRm^OR(
zkQIL~@{)^271$N^gJe1i^$Iqd)tRaw+PXazVEuT*_%=QY#uL4y9-q@!^_kyR8o+4K
ziph7?F249J&xb-!G$H92CC16&jK-Ktp9TWgIT5te6HxHnvHb&EEQ0Q1xZIsJ7NWTI
zG3IAN2yr_#Cfq~KAkJ#=l1Z at 8t?v0(<|dL3e+aviy`fpUd?&{6I>_F8aSa6x*0hz=
zL{8K9`yD8ND*!9OQ!*Hp#4_X4%LU&YP8DsdGQuJcau_P>Bunz8Kol-9VG_N>n$pPR
zYyi;*voJpR2U at VM^KoX5x6z07tM7XNH)rRCecw;VLcD|ji7On}sVleW&8spr%772j
zwi&J&gQZfgVi;Sk5|#$&&C>elMz8Vx`oI^`0v-!~s*t}FD-_SNM7Pk30g`rkR3p|v
z!PzKt%E;J<<5nM~vBBk1K+s7&RNDx!jT5q0kSch^0R4d0`IXSsMDd4dI!)mwE7vW)
zk#ua1sL=S at re>KqPZErDWZ(y20l}6KQ#G#cT@>2grwM*Z#<NSGrlemgM(B<tVvLN>
zxJIAO6u`DzYd<iUZOkyV^s|ypLk5B7VZ0Ip(o(i~WWhSC#V`b6=~dEl*<Z;-rVdq|
zR(+`>VTB&TBv265Xjz_tvZ!a^T$UNVXQ{*l%`YCNT?^!NW}-M}X+{^F-v9LDt%T?Z
z0_y&4-;3S67q&0gI7fp)v==)LVWmH^cO;B0ETtRM6dUVyDrMyf+?hJ$mo7Ny=K3zT
zuZl8NXMm>c-5ctTry!j%Q;|LrB+kuuyr-)r8njXT8?qt!z0)et*YZ38<ZHuIc`Z78
zk0fJIq~r)5u}7No>#6grVpUfjpbic_!lO4Qdypt95qeHS!FL4tq1^i1o5DSR1MDSx
z`<m!Hk at ZS0@UFUa=GSn0j$zg|%NI=BzoX<f?`A)sJd;{2*N6Z+cYY2xn7eQ9{z3cp
z6$4D#vKEyFl(-kFUrr<0?4llI>D at Eg*O&(xdVKv}9KkKZc%1<+b$D2Nm=|m%>uzuZ
zzs(;?e^l^7WD}7R%$0<FmH^7y6)XZZj*0h{H5RflKK at qq{yEuMsr4AQghQgc0UVAx
zec3MixVK(?Hg7m{eX2-3qt1bP1*ZbQWW{<<RRnH`RV1_?i%}iIG`{@o5R?^!@B!YG
zVZw}1NT+Tb-pLbVW015xl!a{>wqgk`)8x{V9sKIsEzcdnG`mlR!QNwE0IFSP7O$nc
zYL*SyDD1~LyI1r1+g!kls}3CWjG#=P>|Z;2 at X=VP0IMmOh0%`Hg;e<P<#k}SX4W0;
zgHAMB5djtWDd)IRZ#&4WDHoxLAxp^x_>H28%ty{*^MH#vFGNHyzYvR1KD~_F>_AOo
z%XN4lwuoltBySg(8a%D6%V^z4UmM6(aBNaQv11T}m4Bc#Ti^l6;?b38*@cV=w3-$1
z?McG|N+*sx4I>A3=*>GMd@<1CxnY at W%cpF=)Qz+4n|{x2h%vTUXiu=q7L~=#TFJ@%
zWny`|n9PWq<HPIb5YanF*Wr^4f_*aOuFIcXyv}C)IS3Y+OhG526GUTNm=0tHO;kVF
zrN?^A4skEAsjB0pvim+>_-CyTr;cktVQi}oA|Q3%=%TyHo%AYohE!j0gVY4w_EMN-
zGWw>0C_ at S`$9SQpBXLrkP0ZF4yrD4(jn^0x<3c=sH;^@lL0pNv0OfuUc(UhV@$`+G
zDv+iLrG5flVu3V(nlXM>YJmSWxLbZxALfO*g*!Q0i``Cy2vHcWIhzjbRry)=2fdit
z_4Zqe%lFn_nt%;NK;i4t$mpGvcbu2E0;+>*NLT>aPx0oi0ythQDg+DkX$k}sp}?K7
zj&1+G;VVA%mN<gYx?LrCARF~)Keth%$yB2#VU#Z<B-Cfc52VCx{gvba^BQqCysMPC
z48@!`AXG%9VXJ-mF+BSzCwK<EuEBVQ;U%h28Zyvq+Hq$zLGu}d`)EyQ at z8#&H{zZ`
z0Se=HLqZ+8Lr7JlG|V{Nxu at jTojFA97`XVSTg7s(#rmfP;x7V-#jL{&*zgVIE_MLG
zoAWf*B>X$e)dS<Y5ZBHM^~LSchXeLCPe1C6e0d)oo|>w-^f<WId}I3MX at 7dYwmR1S
z*olU5VivHjrLN%mTf*)&y06N5+BGx^7>!U9x5!)W-`}yNQp5dcwHGu4T4C6F$atuW
z#iTd#-n6IG at qXzYe3Qsy2@<dBqNLu-Fo9)SQOo9*vC<m6G#QfxoR53)4+7hw2#J9%
zD(L8|>W}%nKV;9USzzB*tD4t_q{~?`6>{CMW`Qd at lv6p>`l+cnaYo%7(cabbA6s`5
z(D~scsNGTtAG;Bo9ne0RGyGeL$j&hx;2nJgUVd#e#fl7((mmqZNQ{agZ7qjK?3XzS
zp%fV!ainr#J=R-DF3fcil}|m$?HOxSY1#KY!cVm>(Kk&rWMCP{AaIPM-G0WErqn>Y
z=+hEVSYgwwaYLM%SvJ`DlnR2m=p&Oji$VJdvKiHC<4y&~^(`znHyNcD5!?k3S~jH)
zwUZWRD-Br);fI3g(6SG%7_<}EHIv_ip>yE9?1bcj at BRSL2z;x)xcmUyhHo!dGTK%F
z6pEPM=1)CMt#Xn2cg=}_VY(97*q0r6%nF-CBK<~|8FY+#1oO{u5H at rn+L6IV36dNu
z6hxg$^Y^cA;k<Z<oSv~-%KKb41#jVqYfGC3C2AZJfao0dVTm^b|4r+Z0NRq~3l4q(
zF>nn at A^g++#N;JsnRe`oL&wWUZ?Kfiv{Dv1V2N6OtDcbKXQ2ISbi499j73+Th(x)L
zjM8PY0Evd}&CzWR0PThcKaVqGPabdxX+gU=JGZet?cc&ZGR7BuWDwp2UuQ%flkd{1
zJ$p!qmB}8+{R0$=lVm>a*4E}ZH-?x)uc#>_hu?~I2!_DKTA;tw{C@<S{GsmqZ0Cpw
zCqvqgQaxOB at yb1eM;7wEywXYuVR==9hi~=j1+uDC4778lSj5ehi2Y#gL%*H*{E(}$
z3<f1D$|0&0msIRvAf7Bk1?-3kvx?F&Xn!T_ir43j;O;4(Ib)>@72WZ$?CR80=|qSj
znvob{j?s5z2HvM at 7XK%^hp`#Wh&x~lW&oYg53#qu8tyT<6h#++Sf{}}WQfbX1FVCV
zp;z at 9IeZzy$D+)4BEv{7;BHgQr4X|F_g=Z_zb?l7U(R1}p*T}LA3YM=>d!)Jt7}JG
z%<+UaK~T*sEI;4y_R`RVoaz;$RU4nHK>tAJ!s+p?&s?!fiW#3$%;n#7X3(2y9)+w_
z2$1Ow0!Rw98!#P;smpY(Z+dW8>}Qf@%V+m9i}>3W5uNX8V1&zieffC-XStTsnM2Eu
z^_k_*GyvICMg>?0hqJ#8`0?HN92`wAjwYsrx1*kObgtM-&rfw6a%?507t(uMqF)|v
z%r&6f`fIRqQRGpuN{x2DNqvSvWcYh9I;u{qR;_Uf#5y`4o*i(Ed`Ar(aLvB{xNxEE
z>zx($A!)qO`>%SX*Lc*=4JEq=idX7FtWVz(+&E)uU)0y{cNBN&et-<SbkkTTGG7Ts
zy(xHJI_whP69`$#)b8tWq{{wQVXbu)cQ8F(lE9t*FF4G&p=i-};5_TQ4p5wHB%oS~
zv3kjE!PaGO(+Q!S0nQFsE8Ji4 at HaD~i!sxj9xkrGr_|F#RBz;-JJAymC(udDRRjNE
z{lDTy=*+(CuxW=Fn&v<uc05M{$eo+e0a_AjT2_^YOKY5zHfq?2Etzl&rC;wYOs*(7
z^akr5HdG|7voCy|B=Q))aU`|~&tWVQ4n$kKhAktyG99IPGPacgk;WK-A}Whh1Aggt
z+DH9ub%5AGb4(3cu-htgHR6wk!JOj5w+pCLwC^L)))fJP^ncOQe5u-LY*~OqaL^ND
zM_X6~-ScmLdC#48uKeb1gYOk_iU5a>tiLn!B<jv`aB3ioGR~f?;qmIgF>ilnF6%1G
zstQ)n|1`|~eC$uZYk59w{w!B8w(;&I*hT}mxyJ(oXRmiH(TA%J?+(R!c$jw%HR_jy
zL21I)CHGvETB>KLQ78>I^u}=@*MI9Z4ZRKjn44L~R`IJHG>gCGi4xU at SjG6m*1B&s
z3!*lkLXixI*?w%~)~JC<VOS%N>6B$`n10Lt7uW_|qaGhj2%ZA`e1Nu<SOETOLL9UX
zQCH at hZyqa5$8*Z+EL&lEirYB8VP(WR{P7l#l_evpj<K;FtU-x4{7)u~Vu4n8XUMd*
zL at mDVrcAXS6$L#MJZsZGyEVqDBazmZQV_L)G3Mxgw%e2i1`$XDeTfb`pz$j_AOUIN
z^;9M7(YQTDNZne-ZM;BKJ!woFF4E=Dj*ayZh~#7+O2#o0;mi-=d6o!1 at dD0qpEYA{
zyx at svz6IB&0zvkXTxyn*pIWy+n-|<xBTAMGM=Co3vALhelKM$65DhFUN8JoOp~h8g
zpr=nM=`YMuD%Q9sGx(<0`hct!<_uId?t^zm@*_|RK_iqSb|GnNFn)uLPo$*i*Woh5
zk?qgV?3ZK#8Gp5L>o?)sxC3>2V<eF8s3j7<OEkg5SQ##w9IJ3c;fCSo&62qNAqVIQ
zd1Ub7zWjSbnIAX>8gEM8sNuE=XkvGiD-(TB7QFa!+wsz78>p}Bd*2J-Lk_hnb=6+R
z=o?_RdqHy+=S%TCo6pR7`F at XBa?v1Cm7}bcPCfzR#CqeX)(Zr_FNaWSd0u_=Mv^Ss
zL1#$C=P~xAeRm1mo2jWHmd^Mz4HQ8rQ~pP at +(~re%78Aw3&Gy(LpUBo8Npg7th(~x
z at pc8K8ClIk*)tM*hMHX)NLW9x76^Adt-%Uny+K91i?tn52&CJSB-dUj>rkY4HVe(6
z>!&YD=S5F>gRnh&)N#cHamMB^%ZQ|lI5puXxa&22i|6iGYpd^#zDqul<CN&)?k>X%
z%DH-j1ew1!P4{r~d4uK{DRHl?MUWq%n~lx`f{3Me#2J3B$2RS at Qr%YEZjg!kr&z7k
zLTdnaM#>%dD<DoTDtd?{4O8weP1OkhQQ)1y6K1AuJ at ZMa001eY^`|U+`9V_Wsq!*{
zxWJ32#UFTwjjhI;R03quS#@&XdsZ;?IcuWQ#?K}LQo9?XmLzBv at 1v0{w9@=fXEvoZ
z<%!zlx-vNv8HfJ1a<y1yIKYn;uB1yXFH_(INPnxUass4nx3K-ho^|$f)n9g12Cxls
zXBXkc7WwI<3o3QmA7QCtAZg<zkJtfmjyK*Zfyx^;3E!wPo1cOo&pB!P%9#z?8W5-_
zY%sjMLL(TYEYqRz<A9`z$2J3}Cu2K$eKJMz3QY_TAiO7wC^1sNfJrT3JM#33>r`{E
zYz<~DlX;#tF=Gn|&<bWBcb>?7JTMNcSNqZUqN3^_z*K49&ZnNmScu^eedCJvN2H<&
zf&>!0rKq{q-W4{#wGB`GkZV_A=~#^_s8 at x5O3|2xNte0*tHD#@Zj9^$X$`>eNnc^{
zDneA&W%A-Oc=wiV9BsAQwAeNjm}+A1bj>dr#q!mtMK?F$h-Y~=JeFopk^L)US~=lA
z%BthS?O_;4X_f}RXtT_F&=2rRT!kiT<)wC5GbB2 at cB@eH0-KKhRWREZ1m5?@qG{Oe
z-vHqD`~)oyizCKd)wLxTI*vh#@R+z?VUru=(Ka;B{dqo8BoXH>SGVF2=J6 at c?$}n~
zdk9xifjS)PUofdC_9j`W)Ab(qWP+klOfz%8o4jL5I8c(3lq~0bxHm48P-t*R-iwxo
zLf;t`;5oiRHw2e0&$VgNnGSyjeY^picQb~k*Qh|M_O6E%U#dp6vwr*^_3Ik0>V3YO
zQfjc0W}eNs5cDr}BjRgU)iExNw$}J8u4N?k-Za*z+C<*U5s4LpjlMo-lx`8m>r*c3
zCy5 at 4Q((fmGMU&u8QR1&#S}|>xGxxC+;z at nAZ@OA7;_e*KMM*gJWV!55<h)C^y+_3
zC>O`_7(ZuPo?qe!>Tjv6j`E at 5Bq%;5<a-g`rOH^+f;?M+8Da2&0<|#@W}wM~jwzM!
zZm$!qi6E45$J7D|&t`MT^v-4Eo+QSsGmJw}D8kJ(R>E+xvUo6BC+>ievAZHyg_AYH
zArk*&eRwFCX5Qq}(2W*~pvV&v at R-KWNa%mTr+Hi!4P0n71&@@%2w9_58+o*GW_65F
z{C6Dh9iMRadR-7=qjvB2_Q)5YhwVv5ZwdLfNn3Lr75wsMM~hBs(*4IkAa++;?VGf*
zqVXD(RB=_!CuQi1=>rL7*n8$xi{#Z8`LcT^{gy7UjsR)3a!i;`{70P8cX6Nu$XZ4%
zi(1%rKW#up!rP9OdGJU;PtK+nu<g6e8*6aqeeMCXSebZjGbqQ1CUDx=+$8B^I|5Ph
z5ayGi|5R?O)V50+l;Frr3}>olBPMBL(lTcQ5}B?X7CT!F+Id|_7i}Bv<?PDG1U*OG
zMPbJaSaj2y`y*gEJK1KSOtx{t3)ETwjfo=mj1|bt=GOvnBsUsMmiO9+eDHY-!b`@*
z!B8#{k(Sq7X*}s)D?>}<YYij*ByCoPgJ!_2<SAuE>EUAjZk-0GAj6^}A7y3Oj2P2o
zVdW0E@}|IrsF{t#3N at iJ*vX$|2Dr at 2u*qV}ZwK%|xa4JYxlwNoA)O|i(wE;c(S`}q
z<i>#pqGQbEQyYyK(Aa)taS at qe4?|GGDMI?hjAnB1nN+t#1T0RW816~@S>(7SdsDis
zVlezd<8g2gYtawpD0q2DuM7PiyMB{kzt at X<z$AoOZ%2)(v0&B*9+d4%t?izfjZ at ts
za0fPsoH<j1Gg(jxL9F6Ze4SHK4H&dlde){MHX$ILzZ)dV+-9`w+S;;1CvEY-r(_yM
ze3Xi!-yCC6lo-EwRBdO9(v$NE1p|&k&S}?nXD`I;p&#Lt8k^<Clh8`5ypD`RlXPMm
z5+NAfM(8Qs0u^V9GaPvV{`K=sTMsNW8wuP0(27Et^$fG&x-xWBip?BXykk}_6uSxB
zCW1nIehrmvPj;kvPJS)Jo$!r4?t;)unyUj}lHmkjZvQ_TgxO*JtdgJ>O&B1*H|Kyg
zwh(AA{WA166mZi>9lhXfgO2emR2Z at p%2>Mx+Y+!98+4hM<|auf{^4v#Y5RM_fRvqX
zcocRvZ9HoT-+ at zxCXItExXAy>b{a7jUG5DGA?bF4DS60`L5H*K=2P!GOd1q~|JukF
zt>z;D?Y6;H9S`1o>ndf{s$CaqSH=WpsW>mzHD3(fEtwR`yAG78rC1%PFtH%H0ff2|
zQQyFMW|S>3iIo1ebz18xWQwM-Sw=@#D|D at P=<A at 4Alv&bhtU6GEaDQRf5t#=l<M at -
zN}{4UhO7gW2hNnu9tb4T+A@%NyLgD1PBDn}4m+>#-V94y+AXGdOSRg+_=&Em4$<Qx
z`nM at PLYAtWFsVYd0~A=$a6+ at kH5|&i<^VyydnOBR<1Z_6l8^U0=C{KGPTL>dPTtN|
zTc9X=Km_=~d*`a5g`hYq#UK)e<x=BRM0OWhn%UKWK;5F at BFn}Alx1<|YSxYfg0n@!
z1cxsv;tdOf%g-W9W33ro$nT%<ngGMfL5y>;)2XU?YZev;Mq?wYqX(BozBY0UO2Dd|
z#+*e-*%p|8hndd4>{B5QWzuatS8<p3-%>KB=-8;W7F$O5WBsrO&*%;J0F^Pf+0|&(
zw-2DvwNDN=OsjY`wP0_X3K{y!X^TK0NpauHt19`!f*E+qEtb!qTq`B7!~n1GKp?J8
ze3F>A at C>bU1$7B#;!z}b3Dj{+f8nfF{^t`9;l}A|M)6ZYX;A)MCw}O``%uVG(?i;=
zW)0 at 01Bw(6hE0RWE~F6iWO6wP8Gu1n>Gep!*cXikFQkTluv+1N<Qg(ty-8bGi7aJ0
zO`_C+jj)1kW+wzsqrcHv0-~ZH{vBaRHLZ-?)%Z=En>%t139Zy);8n+AB-vnD8c{bh
zVz@??77EU_qCOu+sHw*I^+#i&9tzG$$L}GMQu>K4>)&#pMc>cak{K|<5Mj0~)uAr`
zqY|p at hfZnTpSL+XdHNfjuvB#wu!P+;+RE$-Tu8Q^DJ`RL$t*$go;f~)*)GeDMO9Mx
zZpEZe(h%gxo!wZM(5=rP0~wfbYF%F1ksVZcQvE)v)#q&MV%HTO$Y?}<-H<5BHZ5{}
zlFGTVSFTQuaJ1<N*M8Q<uQDqQkgO>(7?_ycex8i!7DAuTjeShG<A9xWDLq!-BFiIi
zt7e8jMR3XTi|j!R at uDcspk4LEvEIjU*89Th0y#t<oIS+S?Z0Gu%O`vU=l%xKMfveB
z6M+5OB(jNIq=Q-`>lPg96`J;U1>sIrXwO+UxQ0E!345#tCxC9TZ{M-qji>P~_F6^g
z-s^c4t4^+VKW<JKr5v3{BG^px!UsYsGbVc1$ZJZ9W_n}=>6xP|ad0$mp at UsXO&{Mm
zrY at x*?(blOt(jF)$)1FJZ{g3k`>LZ-f$qlZUJy_kMLgb>oX&ar8VfFVgCvjg=`+ct
zY5%hu)0FG+2zvjmZ9~2i;ow<rjI9zVWn>Kk%sLDM?_?VYorhzfYipPE+ynC5)~7q|
zyGSQiZrdU at AGg_C!pclZh_;v<8M$6LbAKNVsfbHD7t}D|?yO5;vbAFSEMUuHYK at J%
zeiHq94X at h=G09lGinCd*lhf1&{sQG9$%k-nFc;zxC(l9P6kuK_8*_}!r~2KgLsHkw
zC0BzbC2(SkA0sq1cXOzl5)?umVbM~I)<{UZRs3Q+ITguA at xRCp0zo3FjdAGE4!p*Z
zZ!mNKD9u!C0te8LMxcc-dsQL}b89LhKspYaaaV5h%$!5j)~3y?K5R5|rJvSgb<nX+
z=&MBXF*S6Gnd?QGPZw6f!9fwmTM9qz^P at Zad((j at M?jGy>8Ob|qZR?uE|pqrY+*q6
zGQId7TtE+#yZ^+ZzD;)19JN}dxA==2T^k%GyE8CxA64io1iu3UAD!(tY%01Tq)REz
zfZf2;?OCU+ze5lC01fSun&c?yC0;TXzXn%l^oWq^nom5gnn~KFDXl#ujF6w_0K*LC
zXy+!b)}}^Pxw%i+iQ`c<`{+lT*=}+mvY$!to5M3{!J?fUl|N5L#=(X1tkL03zJww7
zmNX(eK|^%OWDOCB1$0(nf<0O`KE0Fo_2?%(yV=1 at l|Q}lRyUQUK>DW9sSB;glx(Y(
zpnom5RXDRiNje7-ZuY9gH7lxR5t6Y7>V+nno>zFog2YmH4c{!yuvh9#!3mzGVHSP8
z8-Q_#Kgl`Hyoy51!Z+-)0T%<W8mvzRwxk%TR?Rh7iVE4fBEzwy?r5j<XR1?<xGRUi
zMp?r#{U2?!ni2y+HeFP~lfp*?>^&7To=vWz><2g at S!7*ez_-qZ!ki_44Rv%Ax6v0_
ztEds-Q+04sh|UMylPDsGt1x497_}kv<5;(m at Gkl#Y5jK~Z at SCmDg23fa^gSBHiJ*m
z(TKHJB2{g%ED{x%fKuA33pl6kP;1<(zQ9!;oq(gO3dVGxc at t<o&D%<U?PXIQQ57`q
z@`GU{?!E)kWSL;{_NU<xhSr2b(!FaE)^%7G39AtmyH?mPgC~#(smiBOh#D+zaT0I4
zINXW-yYGV^KJ;n;1_gc>4;%j>bpsmTm%{8d87~)VT;9Zi^JtGQn`81#+V8AQ`%&V{
zoA}Wu*Ga+7hcFZC;SEgTWQ<35`>E5n^&SuOj0WBoUUGBR!7*C<#JhN2qtfxuKz1BK
zy?qX8e|uu1Ow*1ryg06x$A%K2gZj*OKU<;#(2I?SY$@%R=#NZIxkVaTib1m!@>n^I
z!`>PwCpY3B$!E72S47j8bN+Xvg%%di+`}rM;HZdv?2I_c;W%J6#yt4f3M=;7$A+xu
zbf>heDVU>O(s0bG^nHkhE?rx+2o$yj`^6H|0ABq&nCY`d at Y*|Xr7G%r>DR=rE{2zi
zYu(nJ)c<Q(k+^GI(jK{CbBd<%L*~x&6=^@^(_?}K)YmhT9&vwB873z`YOt%eV<=Pu
zk$i%KZp7g at K}V9D%5 at MyX^EWPDUgvQYrfEjUhWCQIEs)%F9e?(c(;G5ti)eR!X#ls
z=Jf%|qigO- at +QuI4}$)s>o9epa8(1TKxiGoF8q~TYHu!_S?4hY62L}Tn|3g8QjCj&
zs;;)5)zmy6)*kj<5mKY{+JeUpS7YIqpmd)XrgEU at UbXpE+2}&_XEA?&F(znMnYZ8{
ztQg`LirC@$gOJJ5;u>Qn+!IPl;Zl8Jb|G9LA{CzMk{?~4LI!%V3EY>z_`0%JnUBw@
zEeb?+uP4uJ!(l_)Y38%mmy1%F)hrIzO)dW4)jT}wj)Uh_$(BVvU<qe0jbts;3<c&s
zpqAr<V)UtiTG;XF_tp39r~96<=(NnFXVS8j*T%wSi2qFip{oO;DeI`vkPES65rp0a
zaO;SYfBftIvuhp{yPXQW<nmENncrBQ#D}oz8+Xi6@<4VB9m|>N4F=K88Ze8F!=p`*
zQNQ@}%$|qAicF7hbNik{Lye$p9M33gVJwb9hFX9iqwRAl#f!|TtI1^b$+3-3h6B;;
zWpETgK_{LEcf>Ru_?~RV#*h#}l}?<(eyYd6eL)6y9ususel2QM at yr*|Ou38N6GZLo
zQqr)T+C$i3?eKi2;JaK!Y(I7P6LAbBw70e^Uj at k4hvGNVTU~YWJ&(1+J(0l9E=2AA
zNS?hQIaS59 at v-Y69kdh%+tZ-~%sblxX-kU@{jR+g(aPnC<xq>50o&`xi$1A}{dy#7
zN+u~~3yI+O9j5Q0W$7;NC6Zn+HD=<b8>^2LMWO!zDLI1Szb2t8Oqyv~V2gIr9-OfD
zG$N%457K*>212y at bg6}ea<qX5tEJ+_zbZpxSG-*1M2m^c9-zQo`d56d1LuHp?i`DI
zS&C4<;%*s=V-<NQ*vNQ^)xUr)&$sxO($_~2vc)7wlhS|#9`+~)Y>km^LBRCjj+0qW
zcMq%{C5c>G+f}>IM;Z;Ghv;V|Iy!5JkD4*EkfePJnZrXXi#EI+Xc}=^W8A^IOw@{A
zf^8DQHRmiv-ArfDO(du040UM?9CSCbgQ=~dgTkti4GoEez5SB?E_r$uEXQ&2bObdn
zt_wFWqQshB$~<a0a4Ey-{F>;|(*L%>n^IK#nXIXAXs6^V%(jYNw0t9JWNKG*i$Y~G
zN+$>8dur`g+Dz44PovGeBsoEbxaE0|esb`pv+KTG0GKGoOlNgBtF*Rx93GsZm!Imd
z&%{ytJ?v3`%N+hLW$7e7nBiJhg$0FQm%@QSb at sf7Ys3qlKbT#XD6%hsHE4yxX#FV+
z&MCMfKsR+DEDK;u82cz0DyjcQhABT(Hy?|KF5<~7;yp%YNo*Dy$&-P5fHHUP$n*?D
zGJ24!u2h0Pq}{%!x`L~;7%}0?%Ow8rTR#_Vp_`kOqrZgcsP^CN&RZnx3XU)FI2oM?
zUkw2c1ZV3dQ9YI$=ZSPibm(VFM>H=L;E1#t-*Ez&Uqu at lyDFHT#<^<+su{^bMLhs4
z<lk4Be->8UShIy_e#0 at -C*EN3AtYcMWQeRjNJ)9|aEhT_suR%lRxT3!R4qN<>+0Kb
z>${Lb$K`OSTa-o`)+cVw=;7NiZSsEEb-=LnjLP<=G=R|02GoC`+GA*&_m>ntvsFly
z^qGF at DZt7E@UU=N8r5joP)w<mi;C2J4;K~?q!YAbkknmM&>NX5CX|ueH74`@zZ9z-
zQ?V7?N^|cdCJpeAQQu0hEtsek*Ku*Ek8V#=LLY(d(c#8~(b5JQ8SU at ME(=Dm1mT%H
zquqo8_5EeL!>b~y{swt*{((wEc~wI#iO+m&=*y}Bz|)E+mhI`9I~zk}u4d{tv13L9
z=1-{46cV)!d8$1Tx@)wi<;>R{SAh>sf0_<31}9|W7;c}wrQ!@J8$cdQuduV)8YO32
zCQjtphEPk|qCLE&T`RU_4|vKR3LIm^(Q7rDFi at MoI4AB#*^M^(KzNC^YlF;&%eurP
zJGx%5G+bn{jQ!qJ1Wrg;Y5H;G17V(^3l|PFKdQu~cSlcC32e`vl5=KxCXdk+4ds>l
zUWLR+<+_GxeSI^MhaL at Kff?N%b_x)KP>QRgdf)RrvBNwTBMQs(iBQoNyBi(6B+_^R
zUNI-zXO4S243MQN`Kj`BXxylN1v{2uoLp+B5}(v9?T^pfVf9Q=()!bUi8)*7V%o}X
zw!l1?iym%UdrhcGH|h;Yx5j`~2r1$eS2g_p_c#=mr(>!4F5OHqip8u2x~n0CLc(>)
zO8z8 at Y{%s(R)H+J0z2DP{C-AO9EA;QGUKRuz(5+*RHSO9aLh_{FQ&TzUEOUVoaKAM
z*Ab|RWOc2e#6!_C)!cJ{9E){PDC|)OnpaJ@=?g{NDReS+WfXQtD1r+ZYZ2OB2OQR?
zPgBlDmNvdD?CAtW9eM_?13d#)%_)wQX}mherHqWqP`!D!^jl({6Lr3-X-M at 0ej*hm
zN&p%U;{E`j{BYm}S$6MfyR(lI^Fb+6`#LfsgdZRIdZ#cX(?kVAdtqMqAdD`?;Xhpx
zgWu@`124|qfB- at cMrY7!m`zq4flg7FZ?RoCvd8wOUzmZJ4zYeRVZ)Z~GQI?KYS<<A
zs=a=BMBnlw#cpcvn3yGLGA!HC&s5<VV3_M_7YI)dFMYE6huUP7`cRR^Rd4~ld|4m|
z0+!qZo4Uy2YD8I;o!g<3B$`X8cR5jjH=1R9y8ZRTxg|`8geO^&z_~u1VOzk<ePh>Y
ze9Gy*l(7(gxqAUpv-iA0m}jgFT_q)zd%6rTgjjTy3QoY7>vWCy=V{0C2yPKBe^>B*
z2Hh5f`iPewo}wST^p9s3*EL4G-KY|Vsjg|zq%I`rt*cttX6VD9J<11kpl>29 at A|Ov
zC$~cjz1DQr*0QSUrCo!mdH_u^A7FO&Dtmg>!?4&pS}d3MaWnvPL)NtFiE37X#axmZ
zR9TW1=CY^MEaNIJnOoD6hI!DYYBgcCp(fBSW`wC1TI0g2$#UwIpxvA%ZJ=}(!+V7F
z<25%Jw7&3;qlIpj1>d%T&|VBQJ19MG#u=*vHSitNCHCtk&yoxBBvS^I5}CFYSdQ$v
zQR%HunNM8wWn+!Xj1$xp+T at w`^k=H&n)q?NdJ8b-th0y<0l7kFJ3bN6v_#nCMymVA
zg8P=1PBmVcbap!HeQt9VuRDiFvo#Y1{Yz3Hja3!6{A=x|*IB&d%LGHEh7oI_KFU%q
z`P56mmW~qy=Ao`qriFF+`#H8g<PC^|#J{v=3!x}-A#tr^UIjw~hW3Txt*i^9 at -yl5
z{3Enwm!#BBiimlA2)lGb;t1f-gugPevsMX2$kSF-WqZ4kEaGhMueTL2DFwzGt`T-I
zcIb1!2U{Ef?u0i88eU!Yh$CVpIJO0Nw9SWxBJ<|>1%C><b4A-g at J~t2i<G`;@GOTu
z1QmlNGX$%8<kt at V$aj>hE<?hLrw=u{2$Em{xqJ&<Haw$dfgJ6Km62%gc>jf$uQiV4
zOfe!3_O_5oQ=QTo%Lb^f5FTZa`Vc*2gABfktWWy4Bmv at 38CdZ#>FW(D8|0O at D6&ka
z{9kf_yt3N}<w1?*hUx&Gtzu_0HDb4F7o7 at gKvM6_sPdILKP`@)5Bnt|65Lf?0`Fjv
zG)B=}N{Zc`%IUEz&?ipIhS2I-a9SFdM!-xRppko-{NC`$)&E>T4Ix1MYY_(dJdcLr
z9+zp|K*5FF-B8BT5>iRT7%{-57h<si%K`omV8+ at pwI~Vwh^$|}ib1%yQlLh?{8+_<
z6;96mEVH*IoWL$^`s%**gpY|613An^z(KzEM9rU)S)Ce}iX;^jyWDRw%7c#?xcDu7
zT*dBjy|cR}(Itj9B{f#(c;MBafzI(eUhO6IEDDr9Z;|wmLFAM+I0m>1xd2w$FS&XN
z-sXIrJIK>cdmVJ~m8+(6Lbs%+_Uw7Ym((wXbcur7Rk}2+Xfog9jbvsagzh;5AM_w$
zk<`<Q*Ew41CkwISj>O)+7=4An;|XGVj-yR)W~3-HC;|@?6}QaWX{8t+3n5;{HKB?K
zJm}yctN7vWf{Dg&3ZaoyB&2>8057G at fTxt}CX)NTlbq8*zjFPg!Xt|0+-kFgYXHl~
z0F)G@%aD)MOHqLk3Hqsm2;28>&iT6|LIHu6P57c84`<Bv)ZJ^GvMtAc`CW^iIF2RZ
zsvYsnLB%TgjFA8c&yRWny!o?b*kf=QflOmgsICf1DOC6vp<2?RO4bnz_)tA7WwGq{
zT?1&nR#3Xc`c-d-E0HV0`$|i~(9mu1pLXU1Jh}9wR5k~zG^*Xoq4>e#Lez%#Xiu%V
zoMcY3)`-?;aZxnJ)j!FJPX85*m0_5o^a%HRL7)p{FO5j**Xq_mpO3<ls>db|8ySxE
zPzAa&9`@5|fgEc>g6G|=&TLeYpn}9V2F7R9%*@D>;w^y4Wqdp@)eyHE60}m02F9iR
zI)fFeu}#E58A<i)aYX?hM at PKYHevT>gNoF{vb>8-YLr6%M<l^a9E_eJ-`+slk at pQt
zokY&ZECQwO(*Z#jh43Eqp<^DFJ<?CTZ-P1jt8OMg>WXiwE8d8FcGlASe|wD+Ree|r
zJSxiT<+hn1P(RcyQ$)j-1eH8_K|No27Pgq1qC>A7EDXmKrcua{#Bna0@~4mj0~gBd
z+)PwUiEAtxYV=tBal)yBPA%6OL!3IQ8NfZ{M?4y-4*fJw>MLPi-9jv920TT at Cb=)Q
z at A!U#*-%w=%m8Dco9 at 5=%5Pb)4AOxdS7IOBkqJp(`5)OndaL-4lYT4Sp%3h?u#^|$
zSv@?7jCMC9-0)HF*U2JU1#+0Rp+ganCX*(|?YpE7$XMH?d{>0)4`k|{ydq973325(
zjhjSCHeZeAi2v|5jXm}x5{!Sp%TH0DRBQSVg5PE~Whz$@zuh#G-}#sUA2Vw49XS(n
zBoFxX*OZ37J;b_i^j|mQeu7M+CHs&L%Ox9{S)+c$ugo7K&A(zc04zEZlx!?G>+>H8
z=V7<?rJ#__jb)enSnBwm at a{uvnp|m6iUuF!euHGWi$<V#5{rVXB!}}PMYc=fK6Y_X
z_9pxh(-|Z#bZDdwe^YsmtslNzZpusWSvMl5W-Oe4iuYl2g2^Vbs30q9gtiwOruk<=
z`p3lR1UPWi#|2YWz>WfxAk%$bt4k1Da2`OBfYnnJ_PJ!OKiO-B07>(=fw8~4F2XAC
zcK*)voR}E9MXbX4RhMZ46f7LnBt0cu?p;J^n?SPO=&)Q6!_PSC6F9!pcC at 3tkSlRR
zTINq0nLF`whUH>asgz-WcgHj<U(i?|OhdQDjT3XQC_QlaB8#!hM$l&g(e#<r18!wl
zXN!?+n4lrC=xWhe)%^Lt<(ibrMbv}P-_<2G`8m|q(;ndkebU?{TJkyVtcY&29m4`q
z825K09!5d*SoGNQFb~!;{iD^KS6_)$S9yYD9|@jhzE`8AET}m$34vV4uaZW;`nW`^
z&dlhP*H`1ZG6AH}UO7xgw+hGsDvayutF5!~ibcWoqyZAETA!koH+zAA>iRVo at k)Z(
zyh<VF4QBDD`@rTOLFyZ!aGp(9C-bO7<j3k_Rd_WlKWyeEo}#7=v*|O*bVATQ*UH&I
z&jJ45mRmILK-vWQ)`9?Xr2BH_{Tt4-=h>xi^ho5(%`c(II}Xn}LXEf}_szxYT?#u`
z>xczYS9s?4%4xrrX&+iRqYyb^vw$0_R=nFBh_kbr4s$t4Fp|D)P6#|NQ9T>I*1abc
z=3JU!hxD3sBHZdzM$~Nrl_v3zsRW4^ddR_Ry_YIGsZLY;1wmn;TNi&pOR;pzEtByD
z=8Sk8k%7}#RgNRDVF4wI87kXGf|bv2M3%~LDx9_<GPHf!g2!o1&bN=IF3`E2-I>HI
zJQM6k2F^CeIu at Ade|af9>CN!cSPf#)#9)pQbyb9%sShJV&3n`@0^Gp2ac#5zimr!Z
zJLYF$W#@(wtMrA5++eM;4W^5~5#^tZZ~G+N`+&GH0jwg=T;A)i7qW&eA;Byiw1|B+
zXk>)0D9JGbONtun5fYnY)v>M2%JsuMoj&`f{wGx&$zl+_GmLOs|CTwv_>lkmhfDV#
zajhW~vuQS&D4vOUIaY26WXZ4bLI+nEtJ_n~C{2p;6uLMWczm`WFhXqvWXv@!{Z><h
zhkinIcr!n6S?*W};wN at 0)6Na&QZ<Rr9&Ky$Bi9ggRcm-}i?}po8G28Z?LWjOqmrm-
z)Z#=BaJAJw9)E5$U0(mA-kBuN at k2l(?@1i;F4_G{LmuzIodlmF2XJflWdD!qUqdoG
z(^VTZ0Q*`a6+2JFm%DX1)RJ)7a>WB3#&qIfP&wFj1gNcI5yj>!Az4Gl4nd^$x9BmQ
zb)EMKC~V3NrB2xQ#CA`QaM~&Ce6f#?sHYMLj260ODJRY`G`<{SH?nogQ)6RX!&*K8
zH%=KqPi)Nf=IBY{C*B~3JAPE1=0BZ;iZHy<_Hd3#o9|FXnW-{8##fp#y(W{t!T5kU
zOU6;pzx!%_Gk9dqtqA~uf6_UGuqzN@<9fg=5!@(+bM)a}f)$>i4m-=Su^j&z at Mnfd
z$>1;$=^Q)2qsn||uNWRz;`11av9(jg)E`|lr_-@`41I>UYj?jeH&TZ+pL|^vO}5%l
zkh-e1S3y2vDpGnur0{AK#d6KO(f|^Ij-cH&9P-QFx0nuww?Dx7>NBE(ro}P1Y^Bi4
zrlOFP7?nw3wiHh`)X%1>@R%y&o!t7M!x$xBw9i&MeCPKg+LNxIp>^7yhEBgQdk7n=
zNjYDmD at fHZnsR7AeHmRuYs3!>@W`YF-?Kt9LcbZxR#y8V?eM>{g*+qV`f3bZFZIY#
z(a&CuFy6W7&=E1+C)XV?^Ul~Y9qzPBp#>`<85q&31`9p77^XDDh{ozg))gh at Q@Io)
z#x-pERlijW2)Q*0qL$+5nN7SHZ`5;B+Ayag&{wI29H9BA-!|HrG_pHppC=|;TH#n#
z($UBJU-DedWhnmfHq-C{XS1gmA`?g7a6FT at h=Ct;Zkom>US48Kf2?{+zWdQBH(w=;
zcR;PNi`jjwq&jS_h}p$xWGOb|D`MUSRka6~IZcQ4XDVcMC)xp(F at O}Poe*a~@m0C^
z)V;>yzs|UoXau&sX}tUZf)3&D6i^R1w`h=8jSdF<%5=LyuopAf1}%6DavzxG*~X7i
zCXf~Z=7zbP>}!oSTvACSLFP at 990|&C&g~s_5BXU at HbhP%q|p&eM6do~t7%;1zsnl@
zlO at C<emc}cc`Qhs>}ugRVBOR8_kxjQpQ at C4s2B~jMMS>+jAHX=2QEVTO19|DFFAqI
zw4*tVcalLffDY*_n-`TOe^@^uKV4QayLylm7@}f7N1$H;xR>9HM!ljswaRV3_qt!A
zD0 at woThYyx7`WyB(sh|sgE*%1nZP2ghtzI>9)4mE;>KfE!sj#(P<9jDy3de9gwx&T
zRd`&;+=T`8FWr<7w(^8xNhMHw^tmg%H`i^FXDOpG7)l}yzLGmY5UWijs1_mhDm+;Q
zNvx*)k60o_wJxcROMX7cCejFSXQt^yheqkvxuU<+9?;vX8}u9W0fW#$?m at PZ1r`Sh
zUNec8I@@%DR6ez_eyZqLz8Y@)6c)Z8F5{7qli;A9G7Z(OIr|n+KwuD&-j~yRO70Ih
z`4)qKeM*GVnP5-f;)zJIS(EM;Q&oRar(8rUTVso~2hms(8BCQ9jQ5#$P)YGZ)~yQ;
ztLnqAa!rF?Ej2rE&S{PF0hf+ at -4?b~_B#~S8tgnHIJ8tw!^N3z>mNt*{qN2pLwTqY
ztNn->^59_A#4pEIObg!w_cH)%Jt{w5h^6IqFz%fK9J3l;08HpV2e|ICqsDmMMVHJG
zSmWp#W(}V;agMqtw7yWfM#R53m4TFy#5zEY?Psuwzr}4sM<5(cY9cz}PW`KhPmP$1
zw at Ev)L#~+arE<LuMHxt$P&X6+3GZw#*?@1GfA)aKs-|YULX!kjnN7tiH&&xLdE3dT
zc?JuclOcXccKsm8FjmNV|4r{c_hndOz-EfzY*)uJ0mcTbcj-C78K1yfX3C0;&E<{v
zV0zX|u-_~rM7BT!lxSI?2&MEYoBAv_Hm?K~BwsF%-gIxCQTiZL+*&tN at 3K9aa2=)_
zM7v{+7qAWg>WIjM4$0eG2ClVZEpY^?r<1atyIfn{pptU0XD1pk3;Y4Xp|SbwC?>10
z6VM+{E5#T5V54|Cjy-M*yF{*h at aeURIV+LwW^|C-{z*myi4Q*I$&IHpDk?7fZet*v
zE%W5KjD=<SIw_MiRHW?NXb7nK;PwL5o578}*qTZ%1yiCthHsANnRtviyFseE%enq7
zke7!dl%)@f&jKkW$sxp!icLMZ`g9t%CAH*=fPHIywC44yn?@dP4}@;TVU(=W5ruj>
z6gg1yg<#&+lEpMB=JpL9_eUVG^s{Wfz at t46-acnb8)%R6fKl^DVM%3W4Lw)gk<nSB
zwe-%)WmB<~$2qQ at qnlGA8_&ujB4w(~)FDql%I+Nh$$M`$*q_>wD)*-4>6f~xT*Qeu
zmw|*?o(;jtU3niHF|xqi+U at az1@LR at Ge>s9xSb={2%<DVfGCd$L&O}t%qRy&19o={
zMqKV~u`}jIih`E}X`JZ$do|@vWOl*jD&EPFf48PrFu3pmU2wJ!&}x=j^55h>QN<0X
zE+aN;>U~!5)S7(7<z$5q3$BqwS0Mw9k?0Z23Z>fwShI517Xq?JnlslB(w6gZ!opCU
z#Kvl0g1=rjTj(X*GW&Ld at Np$M$iyGHDa+bCJQ~mF+;ZvL6TRG5)gB`qG1CfW=9Jnd
z$G!saY?bF84s*8H;TDrZgi at O1zi&x3ciq#n6l$Gj(Inn13n^LqW9{<N)X}3Ey)g3i
z&DqJFjlCZpgHWP(7|h>XCv!W<yP5)Z4=fi}Dn5Nxv$LGNX>0)~z<sEVZDJoL-QHyo
zpKWcfF<eo~HY>e#Ct|^b=PRM-AFh*A9E^{vx}0kE6`wP;v%%jRrF6rJ$*3f;05q;=
z;taC}QbtGIVbigX8?@Yw*twCG+StAVP(P1Io76F+6iQ)#`gtxT3%=;9J%Xhb-P}Kq
zUH(-?uIPYMiA}F5tCS<b`T~qL6%`jQRORy`yV6+*)q_cUt$CF+Hl4oISU3_|Xk at J}
zGG=Bhl8m92gC%|fhGK3%a<t$jF9XNZx>f2;XKJ45b+VzHrE!nCkv0Ftxh at nWZj&eM
zavOk|Xzln}P{lpiK(#6OoqGJgKwTloEvUKt0*}ijKIT8;D+)E-#T?^d?p!!EX#hVK
zVtXOD32`%g4qmy%FDjR_P4G)v$p)ntaQ>xq4w+PYw~;gZ3~oNp<e6zsb1^Vbx>qvg
z)qWJ+3^hw6kS?2v9_e0~iM8ibHVr#jJ8)=BtAFEmm%P4{x=TK#i-9z3_$WLKY9Mks
zDBGU at Qz$Z(ykU_Ru2gDOYbS8t3QrP(f+)pAp!O|7B$o58&Nvy5$Nh=gy(-eSpy!-p
z4C+};;5HI&POBxJ3ax*z098P$zlR1;)|uN(b<O~&uEcua>*@MT-^mYHMsZ`5 at _ne-
z(j-*W8Bus&UgEY at sN7#9 at 1u(`=?a8oSOTxySXEIyJgR9k=@N at Mzjdj<&o#pE9!g at a
zQsfGVmArnkn}|hH`WBW2RK_g%es<@Aby9$h0q|BeN79IA1B59A9)FE;EvLtr^jO`U
z&cDv%c)nAy%(00e+=&pO77wc1zJZD$aMS}^pZ}!2FGH3OwiVmmpEnREZP}Hc-CB*O
z_Ski*bM~`$prC69Z~?&3cjGm><$~VXfAMSV+)I at Czb&V%39yS4(|2}w%^ob}JOvM^
z_00(0$r`?Y?Vo!kX;SOxZGB{1J1qccZ=OEWECDcV5dLo>c9fA?H9a(w#8k~6l|6Nt
z?2#5OKJ2&nP?1+WVdDp8 at VY_E`h%k$bacvhT_KKEhm+BP>`|PZQ<qEsj6oX*ydEpC
zkcD{zOOzEGAz^$j2E#ZkU=?JuXI`d>LIN9ecojxFuPo at 2R;1?kb%eJe^lg4Z8|FO{
z8Yk}c2^;Cb at S4TGT+MsKS`X#1)_r5>iBtK=aQXlJV8}ZTfMt05m`?8idgOm>Aw73q
ziuM=kSV~O9)$?&DIMA4Q!s|=k8%7N at Yo2+xVL9pjhd$Q0Z~VtuY~#Amak;8xPWYLE
ztatRAI&RQqmnOgyJ^Zh{{X5p*S-l}461aju+o%C!BYBzjAEvhRNMSXNI?u?5L|B2O
z=MuKso8!8_G^bcsce&4YKZ-ZQo1FQBrw-1z*pykdbmrF>l%jh$)ju<0)d81|qn!x4
z&)*B`pfPZs{sJR$TwnPV0H9(EzAI7<ON+T0 at Zg_Z|M5x3QLy|`=H&n8WWEDhP({>7
z#t%|4XqEY;ZHNeF+_g0e;w;>6XVOYS3e1PiBZjfmtQLoA@$iTXY{Qwwr3o-vqiJa$
z=DyjY at 9V%)Due%o*<CKCDqG%)xJ?mi&BByMBXn*Y6KW6!FV+l3?-CTaNiAF>>=&?x
z7O4L{t33deOrP+5RC(CRh>l&-7V}%g031dYDlp)AeT>{)dz;5HI6jKe5M)?QHn*iT
znf`QXPrsq2m_IgSHe`J}w#2jIee6#zxSi_*_!S&ber`wo;Q^A*@0S$tIZP}H?Zxvm
z@;Zw-zeR%hG6^e5?%%Y4jG=<un7^ZE2pjLT)a#EnsM>9pSnPP~eYpV{<scRnHn94x
z*#6Rrkr{nj&K_XZcM`s$V$DSXRm8g at lk5W>X9;ECr2 at y=W)-ZJ_-{I2mJ+}X1CyPL
z^7G(ZaU`MfxwCCn{p`Be)ehsQda!WSaK5jU^A$a^&5_&KjjS-0>fg~n^5etGCwmH>
zfO*Gm^Y?pKFhZ;kBURbx=<rVPqy at T3l4F{u5(Zi?8R<;*d$Lvey{_kVj{uThUTP^)
zyCAf5hX(jpPUG7XRJA+LHyjxL&oBuMDoejU(JPG=EE}cRm1T?4sb%tAK8vtM*4+aU
zQ044-c=*!>dwkrJ8h0Gk4DMot?J_~9gi3~hM-!F2PB-wjIl&n9<wj+y$7!^|wJR%_
z+oln32w6E4RDJjfuSMaukclNg-;+ydD0L<Nk^(_iTN>#zUQXV{o9^{fGC at 91%}Rgb
zFNz|0lTH|p#1ZV2i4>LrOVGvRICcj0f2;dyEj<$se9{5HxZdF`erDhB7QyPmEPz!?
zy6k!Se9FV8!~zI*U>{=QbpgH$<TPNO1;XLg1b_^tBtm`T-gi^#cQvMIR?Rf(ZDJuC
zt{FWupjZadbvyr5e4`gdgA;g55Jw!|e!(_yi`taW8$fcx0WZY(kX;0<d8&);nMhn%
z+p+A`MexPMTxZ+PYOmT+TYHb>XXpU-IbvBYnIVS~rBc>9NvgSEkGGr)dEcuBHNrc}
zhO(YwgQ%<wlCOaD;)g~0{4}$`1D0DkE8m8<9I3ajRcC1kniy<d21JyLDGyqirUB at D
zmUxc3AC^}=lOAmkafHATK$G^?N!yH3lulh*;Hk+V?hAXI%IAr)=;s%3Ki>CUF47?;
zFlA-l;im7zNYOmSS~(FiLDL%_XV*Z9Pl~`Y#(6<r%9UD}Rh$g?X=#V6Y{{G?p8YUV
zcS7&-e^bpP5srJZjM#HIq$G$R`0-fm4I>{PA$x_>^GYzRHn1=@hQK^CFf&W at -F-JQ
zgi#;JLm_J4v-)`QJ>Ov?3{ma#-B3O#(&qXy>p%T&o{xa7epOnDd at D7uAR&t}isRoH
zOiO at uzsNWj2KBe}LLC%ci<i#5wrft1kK3PnVUuoyIaLlS{fJf|i0+;HQcdrCui$;W
z@$*%rmXFfaIphpq{2ugu&MdE*i;{(+-!49UmdAZi)t}eZ6XNX6e$RR*>*bIt&%+(5
z)5<VcvvY$Yu}2~(l5_THl-%35{oQf+iKRy$1_hzZ-=o%|DHe41G77Ym2h?j<e@)wN
zIy*f>f;Cx7Z`RcBx*{SG{LE=JUB9;K at 1c0WP(0245|N9R_j$Nt$uze3 at pyjnt!h at l
zZ#_%&RG&a|TYM5uXJW<7=&7v?VrC98_IXjI4C+-Un<@yvDgPQ$brpp at 5`xy#_J!w#
zTomtKMD=ndb3f{Qmr$b6yE*&utE#62p*wge>*2yP^<&rn&LBBj2qBYmMW$8u<i29<
zr{JU>@H`i!7*q at j;6C`CFi0RK5F=D4jo)*o+dwz2UwGW~*GrYHrS%Ab6=Ep!BnbQ6
zJp`BQY3%mmGR1;Zk1cZsNOlPdYQF&1>Vtgf{5ee1mBkc~Kg6z@$bCiaMeo#Vj8iSL
zevG9{PyOui-t<a535}5k-Wv1Ecdk<Tc+b=~=mQoc=10|JNQ=6Jtfa8QDMXRcW~W<8
zq>hyxcn#Gp5sk%oqeUdr3&MxmxE5f&<c}4)9+sq8U|-RW9pwjG;qy~ZWpsFdy}q(+
zT}-Fso<W#UbYVP}A|xjWicmwdH at d^!d(D^N)=)7N+d=N89=~_ll--2=It+Yav4^PT
zo%y8A4=q5%kjP<ufK^kNycO9!w1$WI#60(d at vUs6#)ofW!0%UZcf=dK#58Pq;kmf<
z^VS03#DT|+_~&7Yxw}X>P0<z2)K{rwX_n<5qgTx8AV3bfu}Yu2t&{$>vyZ99;D_ug
zg0d2X8+%_ZT0sUIn1#d=xk(aq3VR)j0VL6|<V16DtXjk1z0nzSUCaOys)ZLrgvyg5
z{nd1vbt|?J8#iE`ABoGT15{FTO+gr$C~Esf85am|(e*HF4c at I>5i(C4^sjyJ#4;5U
zEZza}BKD$aKq2G(?QPOI5oId%d0&(+pkJwiiXp+ltp8|FgYPBl_u3X at eN4}9C;Ik~
z{F9=(?aD?*1e40_4#Hrj=n!C>9B!r(ADU$sg~#r`(>9}0Y)H~LvXEwpN$P#bBbTT+
znbTVoM=8;d5PfQ8`echVytLOAbR96_x07MFa?h(-c%fYLl8b$HZ{_a$^|H2)rrLR}
z|Al<wrncVkB`H5b*vFumyzEC_Yk6GC5!lpLRGVc%%kbE)kAFcOa@{u8^DWEs-F}(T
zy7d)!^b|M!ZiU(d-zw?oMpN at gVE)=k59iqKkvGZCIEu`gNNfV7f0N0;c;7p%_pEZu
zz0R#p>pvDzb<y;_jNn{r{RiDhns+gvQ|=*G!MT-*rw^4wUN-}eZlm*$<>mV08TFwE
zHr{daw23%lY2k1lO9frbOGUWmW1MGIZti7!z-7_0R|Fl>WaV)#D$2Of%z*(j3+ppz
zsWU8-o*TnGClH!n<$;>jhPHT}`tI?rPn<eDY7E8+<6ttRK?2RZSh$`eFa<w<r_Sj%
z<J-5A(#yrHo!2oZ5w<X;dyzfu-{xbSg*-jV>x%VIN$c0nQd~-87J1;^4|%tf4dmRu
zYyB$I|GJf2jbQE+0;Gs&k%%?Yjtm)xY;Gkfd!!-{Gfizb*FPyMmfF>cr(m=uobp>Z
z^B4_d<tF;MP|JTPeG87~82y6#lW55yS^)(KtgXx at 9ST-c^21tqh-|^e=FU>T%(4N<
z<bfz<7jeO-+LLvJ(M&>Nv!(Il7C_IH0o-(}Gx|{WPch;k0d`=o7emgXPtI(7eX1Un
zp!1?4+H$1v at 85E1&>y<*Tqv4ks0VONS#e`Q2~~4dRh at ua)FT6v)y-HaJb-k5lxoFg
zyjI=gf$<3fI4+r=TpEBtcMr2H=PSp@(a+JQwAu5{KEfvM)#ekqJPiji3d{tO6OeU1
zk;y&k(kQL*ZO|`^lyLm)bBR+IdJG&sE+{3S0$?llcO)-!o>`5e^Mz`U4vUb|zUgs8
zE<AKF3xQu3T<u9`We-P*ZzHqFfka0&98zF3`6Xz_?DT%a;J3po!DA%bV*zW`qF7c`
zBPb=wh&f?IuK<1mFwRnOROE at A+E0Z9YFzy0TfrL&s%)~PPxE<wPA8-z at +sK5NOk*l
zIO<kL(W%PbDv#zKA!}zS^BTLhB)>ZfL-hRA`-_bb$xrK_4ac&ldZbaH6z>N3i|v1|
z=p7FGz>YT&MBRq=r;IQT4BhgLGxX!_$ESkcH0xUCiS;bj;hZQMc%kAnw)2K=VecgY
z6nXw at ZihL-k5?;yo{lb<BGTZ|Cu&9aVS(mbbSJYyJN~cwgpm5pbZr!?WIcf2?H=u4
zd}<fc7B9{Yej$ZL;Cfn1b9&D{AYy{=ss9FIqiKQh+GRvudz(XAScHPI>4rAP1%cRb
zc)7>d^1x|1smAgeT*<-&8&4(X at 8!VJ>-b|B4CQQgCdr!}d;A8$y+BazU=3FMY5cGO
zX*Z0d!3fnD5Ij5ncxiNFc+V}rFG?b;C?t}HeFuf6{l4c7o=c2__He at mrhsgiTGg2m
zq)9YLD|%@qF*)s_Ta97HD|0c~RhaNdu}FCq68!6_Nr1W?Yx*QNydS`Yh|0#AG{+AU
zbiOywo)aqgLYAiW$wFVC^aOV^SqJJKM_hl9s?3P|Wihhs$t1HXCg|ntDB%d6`FFoz
zp9K+PTx4VrT5Y*p5dYklrbvAt>G8F3X$`gZtRiv2V$*Q!^y+w2ip4RPGel8;2dK#X
z5UG0pahq6?(ybq6u}a2vk&JGzoi(wHg(T-A#we9d5Mbo%rLty*OxGf+!k(bSCX~=v
z2_uaFIQJAcrspLxELuTYbUIq*u_uyI9YgG#WeVE0?7xUUN!*wHuP>CaFM3*dBHLSd
ztxtCL(d3W3)${&F_>8UgfSlb)259|HGZ(lh(Uda%(Qc&tEIG@%722gVGrb*suvrZR
z(ArWT0#IOZFX-P5EbpKGt<>l86&~a}DBBNk&Z)}wccssZ!FQ!UxXL^@aZtaetuz)#
zq8hD%LA;`!&J>MLWvB=un=;8QIEnamIh()_cy*V%VuM$rzD+FI7Pf9+q7SmN3o-1e
z$xFt}QW-m3U>AcHe)0VIz+}~H)$9}qI98eHrwI;Gnx!Eh*<iixZo=mNu>?8x=0UQl
zK+U5*)?8x~fb;v#&B0H1c at jr?)99VdsXYXkF4|od0R3A7j2vkOd at Ba^oCtE_`}fp<
zAWWZ*NRqvF%H0H~EB>`#)!~mVZkZP7jpjK38Sg+B_){D>9Qy#kP at oFo<2aF10#_E<
z9OHdRWcZ<iXj6oUSr-#ckghLC5N?64?U!lc61m?LA={xB8g>HaUg*p?W)h6F$+xNp
z_`L9ygV%3UCZloze{sCJ{<;t;6Uk{ln4E`gwa&)Rj{!y;h1Y~Q#Ke7g_}fa5LvU|t
zR*5NhWu^DhGwl|z9{d~3+{|>L8%7+X4tP|>5Rmoz!k~t4^71{G{01D>O#I!HHytE}
zcBR;Th`L&2sB?h5N6<Jn7t#Z;^D;Ycr*?QTt)UUW;_nP9)tY>T;R0gl533nK)HX;z
z_K~krliA2M_{LNWGV?3~<xq-*ifM|!K0}s)!rtPV+{pbZvjooE>}KExx|*z5?8~(a
zk!voqUC+|Xti|ei2&9L$Juo6RA+|#vXfNiQI7I*izt75C`bjQ+R42>n%X}W4yNG0x
zE?jnKJbnq|rKVmHllQ52EBK$Ql-}#CnXdyN*}r7un|4+T(t?t at Kyl~M{0r-Rr0Ku5
zk1!cVn at VwU`VP66imR*SyLxCFX9t!aJkR<ppc&(kdAYWeQ-8cKOo^9X{-AX|9t*1v
ztnd?0O+xt!Ygm8x^{FqEY$qN?%}2a0IaLtwj-Hbzx9YhNfM6S4L0<evX5uS$l at o!@
z;`c(=K2~yo+NLFGWnb6g*>>$4_ZV0RSz#7&_?Ho;0J>aivoonoc+_%sqPJS-Hw1sg
z at 5xY^M|=hX?xyLcm}R#qKbH_1*Z9?~O|K`@=yre#0{YKvoQ`t}ry$MO+AgN5#~Pw<
zO4{BDf8=7ETNF==M;eDPiYMj8X3}z6p!+LF=ruTG_pog(kKZfhuSe}DsxBWA)23PM
zL>b)Exat?NL#$19oW_^<y^s(;e;RBL-Kj~dp3Z?wKz`CgM;}i(Ugj!2i*^c$B82d`
zrUJa(O>=WPn$s-TsAJgp_~EUmYgB#5N(^T=gGhBp1R^y%7!C99t%vRFyRrgqh3GII
zZ63)tB6%ru+u{HA^odt#v-NF-?hd!a3NvELFdAuBjD at 9Rd$&}o+vz%gGvF%+H*cmu
zIEd(<#fSM0iKR|(4n8^-dnQa2Zz3Lg8a!ct-M#hUY`p~R0+QWoC>&bOLAgT{zL=JI
zPgpe71xOoVVOx8HWsI`TSXv|V45dNts76U_3P7n0_NrDA?K at pUDO<2z*GOaL`49j2
zn+WRH46(kt>}ir=aY6?U(I at +7yW$3g-GjPtdeKZ~S(K^t;acGslr5tA5@<u=35VQB
z2^9dKzE`<a;Xm6PG)s5fCu`*lJW$zez2{pCq1&$9;*d43e|75U=&(!C-LH>IoFI>W
z8COpg;>_j|PlBAfC^$Ugi_Rt1p<Dz-EEdsMI1a+0t?B^Yg|DIP4!HO!+-YBmdJ|B!
z=X~lJGnZ8}2i8_^isQ9ApLDY+sF^PwF(|~zh;aKP{n$SE0~Q?>Hq{MXL+P2xr(HUq
z>u)lae(lv68;{tutSzUut^l;_pX5aSz9fdl{+puvh&0-ZVo2e6dh-WI<<Slm1OW9F
zfG68;W&`Ej-6Xe4lHyDwuqrV)oiul>{i9r|81=pcLm`Nn60+vst6;68mnwG3Z%FDn
z^ij<iA~_sh4xPedog?uTL4o+<K2H;$;ns{w!0M#{GwYY~C>LgKzGo&<+zt1e>~*hJ
z`t2FlwGF$_maV0Tk$%WCn&YjY0LqDHok|^TD3<OkiZn4a>00nPO*Hn6StXy~q5nMx
z6!70lB#}OYe~R>$Ke-IA#zE_?SJsg*@z1)2an;pXE)DxX*P1$lke!J8;?(A83Y at EP
z`-qbln8}Q9;i*1%u}`goiyq&fcktAR;;X*EtmzXvvmvY7b6Ilc-l+f^rj^N*_qf9Z
zhb*2_VGwj?sQxj?Mj$qE$e-Z937U6al(9X9dse--DO<}hm+>QquZUUWObyj~O8OWG
z31%ZuRKMQwjveHL>!0`u0p(4HRxjujm;Rv8&`JbX3bHN)Tznjg1i!W=`$`R27dn%H
zx*thI8CS&C^m=X|{ZkXwBhzhi*_wJv5s2l`!RzTm at g<kb)kzJWnD*ubE&X0afaRDg
z93A~IbAABg?&*c~GDHY#$kR<!<cR_OA!qlOyw9 at z<vV3ayI{On9tj>!V3NGTqx%%-
z2esK^H<Uyt+zW(bizWB=8Zsmfve~ubp3NGArHjOLQ`szO)%f~bRT2vgj2VO5%MUm&
zPe at 90ZyBM;nUPX#ZCVf`(zfyc{HMc#Hf<vKdC66oOvnX@#ghm!lRf+8k<5U;;8ZS+
zFO^Y1h5<n{B+*-+i}iS5<!B;hQp}D^5KIZJ3km})@^tW+0!SXH7O-`13A|FKw|%kp
zC at N3%nGo8mc7HIjvlZnm{CRagcx>Z=qo9joH$oW=0Y{GlaYp?7=B$greTi~TmP-xx
zc5*{fM9Vz!Y$B4aXe3qVhU~J1`?0?*$Nd03bcc&uSgo}ovtlof!4*DW&EPA^ZVQk-
z6D=`Pa6xCQY4vVp0&BBn2G91KnhKlCR>F0;Rj}4x+QX2Gy;sPpz?7)3>=voz>fYto
zUMQ at TRCLAa{0sEc-IGF74~EZF`Rn#Y89}K`o+jC-INuw08#0S&?quVR^^EQRk7FYU
z%9XwGB(ja&j(N>Pv}|5tJVvhb=SlVU at hYxXE6x|x+St1BS?l2mm7<c^>%p;^uAv+0
zFA=mHmuVDm6O?jRRi?(6Tat?U)P<M(5>Of%ZA{N;oiy9P-Vwn)CqNhHYaFBw at b>~G
z{tNYk=&--OQiOX-qnu^R(>YPLW&jiKSe=0A<rY<y3kjBXo4mZ5K^EWg3`GT{{=+6N
z5<Kzi3_hM$^IR+gpRCq-I>E8ov?^$)RN<j%GJ_D<*)w#9CXfyPg1X?qfmfGP#wWc#
z^>{lssSZB*9fz!3Q1_4%try7PTT#A50ue&QLsxSrdz$t4uUeXgPxhFvQ2c64#Nb27
z0&{-uN661gP#imy<xyqxko+iA^a5+DOAZ=9BYyQZz<a!IEOWu~JZuNGX+q{?I9QWn
zHa;J4GckM_k>3D&Zn<gmF4VXLmv}nor-{Sq(_>sJF^f|~KCVuO?@3AA#G(#=xYO{<
zg6Me<-qorP=L>Qro9n#&GocI6riuEcnG)|!Lr3dJP-_E@?0#}vWj9m)$<Eq16pO=C
z&&h4IZN=dO5b{|6VBe%9*mGI$46nd;XM|({gz>Uocm{z9xC|u%?>@lI=lU!^yEUec
zvN9^O%2!|DwpN!m<V9W&ePQ=d<n(9@=kad|T#XgeaWYG<xcU&gp;G8UR%1xzBVkv7
zu{Kr?)N->kn7~C_sb{Yh$z<1C1bpHGUF)Jx>&<305spMm!*?_G7?S^rO&vuR3dNF%
z2uh979`WSrI}*$-uIU at Kc><7(rTif(XTtL0!xe(V`(G$YgEoKKs~|yq53%Pa>IZ?Z
znwi-)j~}$xy;5_^RSkK!8Jorh0<h9Q5+m({Q4K64)Dho7g+j at JcykTU__2P{8LK5;
z<}3ZaOe<5m+ZsstMK%ghi$)%2t3h_1dd%BEe&*~7uX`87s^`2K`Mh?ndUT|N?LkV?
zBuKS<sK19oF8pz_G7S#_Vsiz1l!QH<HKu~$F4VZsHPEAhC6GHjaEzje=Mg5`HC-$B
z(KMZ<Z4elk1Q2Fd;k*Hkr~s&U>v_Ttw?wf0lZ4z|v2W$^g&BQE<ZKN{14301GJW}Z
zeRXl<S_C*}{G=3?3^WgH3r^C{NvP1~Upkem#{IhghyMR~)ygN_w}=v+V};)wf;VT@
zVa}d05P1g-5a~cBn{>=45sDQmu=;hDp)Z*0V_5kqBJ=kyD3LeB7eS?Ke2Myy9tOPQ
zW<HDVILgWkCiYH!iFmTa;@^toD_yfnYBdM+nU7#%3i<6Zha*|dS~$WQS9y(d{%V~o
z>ylfX)rT1DfyS6HuIEo0p&P1BGC21)>SS{g1CcvbOYnB9u-4PdZ({c-A(WsG&0)Z+
z^6<C_zR!806o)olY!-(Pr)$Db5f+G)#ydG!9^f*h?q|k05kc at C_zGN~rl>^-fY)F3
zcYnujs%Ju8&-%y=jgmTk3YXC)PEV)@MqfP7Z>GWDiVO~Rgs8(m-Ye+r!cW0ObTe9`
z_3n67uD|=m$j`T)E~+<zHB}{U=7qPJ|5JM7UlT>%;?mvlreGO%!<c|*`#8DN at c9>K
zCo-V=)rBSGc!gz}nm5OR%t!btGPbj*l?c*BtDpMLa at ErXUokyNhaaS*7TOzcKEGi1
zpgx^Bw>Skn(f6gRFpO7VuzeOF_}~iwphTz`V&@kr*G3}?lZ8~sjxt?|NT1Rnz^0zs
z44H^)o}pPaz*r=|=~V4jf4H4yK<Z8&bCLJ#Jd_9xDYkQBqW1SKH<+X0VBjZf*z0Q9
zQ-qP-5Pm3<j-+c+x9BRWvN)ljL#dsa6IlKkmi7-o!-FKXV5QzT?)%m__En%4IRjT3
z`yMU)d&JW at XG;&>14z7P3lO`i`v30x5cT;}&DU3IOTS*|C9R<?b~UVyR)`>F!eDC<
zv7zQeiYjCC=cRv)NewXUeU`*HxJ$<u67o$zLy^Fo7K10~^7LejU*p|^oCpD1i6lT9
zd``M()ZcY{vy{xtDL(Yp30p%ET7h0b!K-BA({p_j7-9>e9b*;chJT(;r+H;5v8R!;
z65BV+J2{Q_?%zkXPUMXO85oGcN3XRmEkv`*Gmkd83jW!yxu}!B^Ed16*S~sM?oEZX
zm^#n*;e`Y=qj~b=c-9XGQA=MI{U?b~lNmj)ST#SPqAl at kcvL&a&#NhDOm&?Y&5KsY
zc(=D(=Xe)n6Z3DnBL}EiW!Ipp8i05>0u-;d>Bk>bP0L`gF>X%Zh35wC at M(h=nP=C1
zXx7jB&nvY|1mgJr!zG+6OHV7$`8WHJGWF5#GMb+UuUJ)n{(~Y9D214DYSL1mXN89&
z8E|CuMxdo($<>UZKXga^AeR$(VX;zb;2$5ZWVyGRHTfW_2tFpLsboqVzTjoWv)Rlm
zpYOS(G{!%pigK`YrLC&C378V|r&!>Q_PWbsFw+8Zd53%NSRo_d5i8W+?-Ih+4wue^
z+_06yH4r8B8UvA*3VamoGK`7<hF3bM>Czcm&Lw~bWJxL$WvZBhuE at z%1fHj4q`XD2
zh&W-XWtxK{ki>b#7HZ;rUNjf|#~;M#z^TEtIj2i|P;a|=4wKilkh}W5Hs2CIBCvuL
zkXl&bl%4oaLg{zjNpv+(z3mqL+1*RxXcv8<2~IrSGaaJWvZ_;!3Or{E>Y+{Hy%a~M
zEYkZTA!B*m>4ppf4hU8Pkb}e#uS^9w8GAPqq<aWoO_pCVMF87ftcC5=hErRt)nmIy
zRhwrNg|ilZ={*LBJf=yq{?tVQs-j%_VhGf3_B6nNj$s_GYt%gA-w9}PhWI4ob6^UR
zN(Ehp^$rl2X9rt-pT+GTUAI2BAD>ZLSO`YbEZ}cr<J9-*a7C`XQtGfG6Z;Ie<;MdG
zc%eo at tsd9#p{G6ph9YM2j38blA`)c3pqd2kpM$ee;F0IltQ7hT8Fbnb;YzBa3YlSw
za*9geafYW9w|;|-a#FMsIXDr18wvG*hwUN at Twcjo4F^JAdeTR-VF$&WHO6QOD<<fj
za|snu{<~=I?Xn+jB-;Ye&wppcJm;2W1;93Q^PLbXnpM1U{GGXD&5*C}HLhg{l{=aE
z4s*8eJ2`kf$xJ+MXsDYX0}(<~OwPMQCylrwg^@v6<QKb(606y%v-OBRroh<AuISZu
zJ`NGxif)@5bNNwLq1W~VXSf_SEZx<Xr}Mn#rhI7WLaq_R-oC&H!U$!?j3czC-Drg{
zUqP%LB*?X-RI9t#Uf=w|)kkOfX*pZcg077e^N`YE*he&OIX}=K2>$d4VY|212Z$)#
zQW0Rhya)Iy!0zqkPcPSCX1dKa{f`yYDk#~J+;Ao-L*6g8jvRagBVB=aZ1%t4J1#+O
zJUjMJi0}}f<7;Trd5|CPTaLbBV$RWUc|xXOTY(T_ at N-#4G-q&k{cx?P`&R^nE9GyB
zxZ4c`<LD%=eej8Lm$%Ha3GsNgr7#>3d=)KBQlyHG%Cm#N8 at To!Cdz#Fius03Wt-KR
z+3%REJZTnh9Fw;mCxgGPlOQX`S~7<H8~x34uuLs06^Ibk6R!#w0U`|&e0<6!j*Q`x
zto^D>=z|}*=QU1H51*di2lk*^D$8m?5AUI2C3pBIkz)x?Q~s(O$VjMnJKU!bUy1N)
zhnyO+WJM4>MGHz<A5L at -40H?j`LPxap%g7pgwed2p87a4sawG^U=3V5o at sj24!nE>
z#_R>EhB0vMS?LEqTnEK&+35n8y%sh(d-Oq>abKsaErcFs9iMJ`czHJ+wC{m^kf#2R
z#}ox2D$`o{l=~3XMmrQ^1A=R_RDwW}fkln at hLw3!+xo9*vDCisNOc<JYo6 at Ks_djB
zyOcr(o_`HzSU`G5sT@;e#F^o>DiAM|#Hlt=YF6l*R4#o{j68L#4Sjr}y4qGaSXxWk
zn(n{G$V&i6&g{}WCDpSrmCYU=7(|R6Dq;*we-J_diRwX2PsiJaLfEA)$0lQ=%ZDy$
zwjDqKG5A?g8s384QJQQ16YS4#JB1f4=9AYs8o*L`CoRt!j{J~w7A}b+LTcAk8)iGX
zpD at HxEQvyrbsG73jAJE)5 at my@y~F??FPGQXB-$6w1XyEH4y`^dtSm1eIP;#{eCfP>
zr!i at ISR>*lFUsEob{d2a!1kJ!>Vgk<njw{TBf#D_5*$E8v<}WyEqP$3(wUBj5=cLM
zpf$4M!B#fU at H0D!N0;0$Ys6ieNkF_Xt*dj}<@}jvSk;h+PRej}hG4<abD+1Pq^yEq
za^-l5j>7&QiE+~$VJ8%_PsBLEphF{I!i`s_6|C>{Arrt^rgzcqTSN7f;3)px;e1Ov
zq=~b2vbu|y^pQAD+S|?MtUI$D_`RY}f5W}M;gtN{=sMak-h?$>4EZ?W%49rz9uy2^
zzf}j)(W_$PXs!r#9lGn>9`Y->#qGw0Za91*9A$ERJw)|Q636~Vb<&hOg9~w8Z at GBG
zwoNIL`AaI5hg{J2*4c*<>F_nm8RKt_87_&e!dx|kx7I2baUK7+*>n-S{vQ%s^E2gr
zM|(GUXPQ7pHD`Il?tyS$Sab?I1vNJfl`8F+KVKe3!-^85W%<M#gG6e5?7`hvZcJ+9
z!B&}i<MW^Eri+J7OloLiwF;+L;DYYM7a at ZlIAe7BH2g}+X?UqOUxL$`=N_Sdu)5(t
zBK^-qwY*SbkqNYo3YN2_nPXANm69GIcIoCGy7d?b*ji$1yb=__XC``q;Uo`)@J)RY
z8&$cqK0GHel}y at 1*QB<dCsL1hQk2rBE?p}MY~wtI-u)9w0n+|QMG6H6cMMEV-}I7#
zClYmC)eslR#befC8~TE4_X2hWP-t-|4b_pI at 8)!gyCri6XoUnWXj=D5fM=WWQ&O|N
zv-BmHO#1zc3sySNK+*dL at RG$l1Eww4BiZkeYepZ_r4Mg^Y#8u(GllRkYC!_voHpMp
z4S<ie^{`zCc^_vmsF9vb+`O#AqFL at qyVNVYk!N-*4!~G`;yUv{T-$7A7`mVzc&sHA
zbZfMQrvdN<Jui_0Bu;z{UmiGo at D$503byHc`F8GBaYT5JV5KsYGROFgE%64X=Phw4
z;lTs&9<3HviwNrkA`KU8*f(3oG9M}JL)kEPjDgs`Z(bW6Ra1^J^#E(>1`?LsU$x#s
zxD+3ZEcOP{NzWN{VE9<%iCh$*tO9~Ax-Y at Q&YuU-|3|1KHFcl1NZpE`Z~0YjzHu{)
zBALo^Flr4y9GIcKw5INR4z0e=;Zc=bE&5-EKtk90x}Z_)`WeFfaP8N}Eda1UzxF#-
zbph?;%p|JW^$T*ED&S-WbFpBUnJu}PJK~Zxs>wp3-|P)2i!V at 9xa~YCG at lg4S)5jm
zBfc+ii&(k{q0^No<Uwg$biSXGC85=V3;>M-(8XL5H9@{|=6az$dX{>YEN16<Y?fZd
zE4j?zaYN>C)hpt@*l~ebXjFjGLX7Y&{E(zao~d&Uk<SD?;B|4TZg`yZ1!H>}U&|+0
zec#C#GI+KIHgo)}u7L~KuswmdhStWII;}dR5~^|_<?Ej&vr=#9q{DMS#!a*UKSUUg
z38l)GX1V!QVsurj*P%#kSgVK;`ML<d!=P~bp$g942$-3EJamDzv0H<qy%PqaO*ci5
z#YHX6C3NXE3-uUnDh>riuz^M}2VCa at -Ktt7n)RQV8oOluK|*#bgWDBJN>5X2u7j>t
z;GJS!%VbgSLNtE!)?mNj;Fs*DGnURvo)#)#BvnsYjuZW;?)c9F(A@&+f-Jv`Ie7j!
zf+r_3h;cfO?Ics`za4LU=7&}5t2xt>_ReJM3IS(9WQk;RCNe+OuySWEc|quA&)oBn
z$2$1jDu1>iH$Z>jv%`LfL`k*6t@;`V6(!a^iZtJZN!FXJR=`h<BUnl?B7qiy)r!2;
z%Dx#qd1pDr&$ikoyjm-|8Zp@|9IRqcEXyGP`5b@~3)T2{^u&Y5AUP5>O+r?-)NfSN
z&LSZt0eu7Sp&^Mnp$z?Y26u*98s_Ot(3Pp!i)pg7dE3 at WS#(fb4Xn`tLuUVsPv7vo
z63cEHtEmA|=Yc#&y$0l_DN&hSiVwS|yHVOlBtBh)dNx at o<e=yHy_qzKTLC+UhkT?U
zMsc9wR`nBEHIA6 at jfHjgIqcyakyIhs(kTN*L@(>1g{;pI_3Bj5Y9;{5d05{?%d0mH
zEk5Cf1izQs%+20U9Xm$UmNS^4&%9zhAD47lJ+a72uq}lU4SOc(2upGn at X&Al6qM^^
zpylg~{KOvi7nG3ZO-#-^SKopD&An1c)kwoeH}+Cy3Pu at qq3$;9x5~nN9z(VFxo9GO
z9Qj{ubnxTQbfnLa2S-3?yejHz37gPdL|nd~IniA;srR+{FmvLqff<)@gs!+sI#WF)
z=I7G7g-Ic-fq7{TgvDBf2{wagQ7n}E2i0il_rh=&p(!c-fjK05XggU4lpxR~x1RlX
z2qGL_lb!$$E?`8B(MFfgxb3ug;=$+IbZk~jfh%I(#m|Zf7^DL7m7+)5?9%$Jc?LaV
z9`MGrxG+ffvGpK9wB|87d0};AR#Q?1OEAjx2mK+aavPbnTexy>ZthkCX<&aLqZPH^
z3 at fXZjm^#kD0o6_S^by?qhp4u>$`%H8dh?q2bQ|dM at A7xNhsn-@+|iOym_C_*>Apa
z2X8q|CsL5l6kdIG;kA%P*-?_}5|+U7eIz`&<Lg-8;cS31CPq8LQepIgcXI4-G*!;@
zBJl76fG2MZzESD2T^NB~eBiiJot&9k__W>vqf%(0Hskkvib{L{HYq>w`xq7nwF(Ke
zCG(D at kRE=KU|UCx{xkJ^`uj7x0cv0fbSIP^_c<AP%V at Wo${Zks!1Q097uTFXv`_Y&
zbHYyG;^T63Flu8~>;gb)ds9v>8_~mrd$OrvB*Ws8{4?EXN09Z!neU4|m=I~<Jq50x
z=fTl^G3g$O$aQ;k4|7iw34^v{(c+jl^*3LB*WlrLnWu&_RyJ;z%`?0<%o;5sg(A5J
zfTbq5)54s<Rf{A5OXEC(r%T4g<O&l>T8#yC?O1${tL3%$k&RAYsw(PcCDVwuZRX=U
z_R3->C2vcVIvE2d5NhQxQgfFtGW~X5(Q%xVo#zOhwHz}{wuW`-^m35B?z)hq=6`kk
zckJt~>G|S{&}5)b%J+X8BGkTN67_AbaMuK&z&5Fb!r#p=)|JIL1{zE79+%VTYhD6F
zEbd<vZ`ld?Y(lpDo6<uP3{Op`zdhHm7UQkiA04s*r-5f9;j!JjVGOms#?*&d+B-0-
zI>6}8y+i&RM4|Q%0Ezc}RB!1TUALQOT6Rzxf9wXQuJD<rs_*cd>Opr~m(p|tLgs8&
zmMa4lEpSN;#1ohWp<DYdi7MK%vFNAH%uNyf<WSgNuyW&Wb|y+b%X6TX*3 at I(hr*cU
zs}I;AmoV2i_V_TLkky at Z_I}98!5mWT4_043ik29yUwc{Kk=r}&A(fR<JZSdf>#4-+
z{hch;-Xy9?VwbnT?uIhvi9BJ3z5VEd;?^NCs+pTx`CN4Zkd|OTGv at vAVjSRgUo3mP
z#+gJkHdGb3mzly$S=7Eb{51EOndnczIQ-I#t{LQYZ$GL{qnZZEuR(S3-;Ol(*v?A{
zoB|NJ(OTv;raQ~Pg~b^p{R>JMX2V?YLl+xwJ2;-0o6RMEggO*FR~bm>kP^3Pw|7NQ
zB=;rbu*_qJ|Fv9v0mmC67{GQ>kKj|YX~0Ti9eEIP6PSoI@{jClQ6+HOeo(Snkd-{x
zO`J$vCi`F^B!6?E6vH<#h&v{MTVKDe?IAypb`ui?kT~W+Ak@!uF`0ngJgkYHY&=t`
zl=U8z*0W3Wol%^T3BLwnMkkNA;@X%rwitwt?jC`LJsxxzb!ryCXD=%~2^-EjO?qk>
zXs-v1Od>{^gh$)ai!Z8}$BGg;I>Ng1iv4SO2k+!%yOkb6it`(GXg3oPfsdV6{KbA^
z$D5>erx`~S7ex(7&RrqA&CotMGZ$y)azT#8xj0EDtS9nB1gr-QcYj1 at 8f%0g3<uSb
zLP#dcw&XL;kye&Jdl|=c2B+iv2P;K!c0K6Uy@^yUc;*Q6i6n=E?`zSxn3YwI+ZJfC
z(@!;#Hg+)yE!yx*L8?$Cpm97{!hIpvW2oHv1JE~2u`*)`)vdHPk8UahoeVn2$mqbA
z@;Duz at 855Tg`OT#x|<#P_+j*dqw;9#7^<WEKAw)dvvqSWjxR6g*IWu!bPR}0lS*ty
zBhcHOVtU$C<>e|wAO{vYYB1)glco|Y$X?szysfD;Is}JafD;Nr_5{Y4Y|-oBrQ>oy
z99>jjc<p&O$Xc@?-ozeWCeG4+euK^}FIZxIPodek?1Wy%qpm+DjnD7kTpi#ElC--X
zn&cmY`A<H%GUb&m>V|}fX$RVD9T!VxMQKpgJI5_-!Xv^RNes5Ls+2#)#2qkW*Y?>b
z%hd?48i?fFzz5Omi72Ws6WZ-Elf}FtHy_?Kk2GZ~slT2zk#Z3Dz*un4X-36$D}LNN
z&jDnUUXsx$J0Qwp8P_XKn%AhlYNRP~`_}?Un>rtFRlU(X>B?mDg$R_FeE*ydNQ84-
z<q#uh^F=|y1Tiw)UThs|A&KOhd;`PV0mtsMT at 6t5@wzC!j6{kU^CxVM*T!}-IOm{@
z at a-kNU*zSEXJOo3w(rO!{$c=BHmOSFVYMgEM=RCmuB667O<7Bk+Z{7#8;y0-j)u2v
z{>Ij+DgW!SDG#L*H%~vmtaqa at 8&ynIasAPGh=<VW7 at K?6zaD*sJM;BIV?e8ix2Ari
zJrdIUw+!cIHxg_)drk=MPL#W=_to|9WD$-)RGcV{S%;iZ`TSf1YN({U at 3|)UTe4q`
ztD;I;MqchaB&oc{u{^QJOH}(i5kSA8#5eh`SCGq!+{K?)%q=y?oJ;JW_8FO$1=@kM
z%Zh6YUi>30yjYspx2!(Uz|AhBr=z6D#Z!oWvmZcGhhIx+JC{~E2iL-U)8J_|V!+2)
z at xY$;YK1RkQUr;ce6>CI*($L9cm^Dk+K at GrE_;e+3C?a=L)1fw at YDy6WunoyIGePI
zU^ed0>jnf-a<9cjq5T*8^6=d+iagV%-UXs~a&H=0PaU*FhT)PM*H77J!79D06Kv~0
zhwMH<-jiwXWEKZfg>~2Izgdy1emkftwY4oiG7W{5Q=Pzc*fsIjPl{JPuN^_3^eGh;
zPGpvu`vEgQQy7&${Hs>f5wN~f_<4ke+{8a=9wiHxckc$UOP!sbtDZ>z)ph5IgO_S>
zwo-O^&x7TyQ0->M0iCA&3ja46CniTw#rnYQU;44}IfI!RKC&{B2D#HXyj&O@)J}+^
zm0oqkf=R;%E&@2!iq_ at _xX!kk?~uW|3TQUKl*F}&(@OjT2x(sLO1;=sPURW0u9CS9
zi1Eg%bi$Ye>|LesI{*b?`ix;)0vh^@Hcm*_xUGC0K8$b|?g;*~o|`4us^yf>S%~^B
zsqdocEGZxf%TgPgc7R#ONL|V)wS9&qiG?gMu37#sp at 2hHq^qY->2rCt^e_MOa6HVf
z_n&6%DNNX-ak;{C{OHu-1bCSAu$?*3)`zwm+1orC>`x|qSpA~^_#Qq-<E3>y6sZ6?
zmqgZcvRB|8^7Yed0_G;IgFyPE3lC{34ZsGiJRip--loa;P{ipkk~SUdcqFB)#gGb#
z$Kdt4fL!qG#%_kGYhxmpIc;9SnRAaoo!bv=x?&lLiH2_UbU;3)%GqPjWY?6gvmCvg
zGg+>gn&QliEd_%~M2Q>GMIo9onJcCu5EI*)ZHcz?sz5+;MPFil1Wx@$sr+b*9jZ-h
zVUi5+H*Hbs5J19o@*$JNk5)M?gYqb77RE}>S;*+T;X#*Cn8K at i{h8!0G3cA}3us{3
z`g5`98oH$}oNhs*_za=66HJzq>Az^%*K}l~Y9i!NXcJ3lzs(VO){#$UFs)I=AYYnr
za2ut7r6E~RX2M!KI_8?n%5n(*;phIm#}i$8U<KE&kfFD2X*%%T6KLI#b_+OQ_*I^f
zcc<N(spEHB3GWY8*y^?cE*<1Y8`E_WHFpd%#39a$o!c=UYClF>6WizgK=b)7iQeJ&
zwJ{9bnBTu7Gg9&tF-u^9-5ARLxaW1Ub6Yy9KCyRq3Do{{31*{%7c|>yh>))2?c#;+
z5o}Q_hpE(TC#YjVK#kP{VY3F=mX}rSoj=tYN>yfl(->~53axTBxiVguma2WtlMC7-
z?}088Gvh6V2)1{=K#7;IUKPQ&4%#Xhlrh0ZLh at u2W-3jXrOLuY-H7TdhVFUuB_-7u
z;@!{h_Jcct)unMuGxla(R3l_x7+oIBSw>nc`sTD_his9uCmZc_gzt{obRQ1MTgD_Z
zanfjva(m_ibmnrqp_*HW43drVb`F_88|@T!EC$yW6U72%ea20;>fV at XFk62E+4luV
z^ahBSp0HGmavraj;4g7hPw?y}aNWkj58Ja`J4Osn{Wz_`s&u>}zC5lccg`(*rUq-B
zh_uGN3xd79$LU9+ykeDeb!k5^0|~Gos&kDnW6*)8+KHK)zgPM2clFydFti(5QAf$f
z=kHQ3d$K~_lHqYjTAhLs{i)}Sl4u0&zg at QfL>y7Ly4`|n3H-E7=6hFgxYARB2j~sk
zA^7QqpI<bvi_bjg=C>F*BYVp!C{s?+Id#~SH)#Gyl*bWM9d(n<uD6n>REez23C$RS
z?sU;rHWCQ)Brzt$*|O037{WL9^GSznQ5bO46m|9%Ox7>Q(Bs%L0w9GiQhG<XpUFS7
zszidU0DdE1XaXsYtNd^wVx3cu+uzF4FDqA8v_~2`UCP!+jEg8Dg1bR__`AY at rg8Vl
z at sSh-uyu`oXmxv>V<Nf14O9)v$i=f(cht1^*w)#7X$B|P`XN!%!pp*QfqZJnIrV(X
zyC{Omy?GmCdWABI7wgz|4(u25MXN#2hk6;MYDdCPYzs%N)~`2Q#kc~LOfw0qBn{<s
z>b7AI at _Bzoke#~35t>|+;YGUjH2qs8KB_`+3L^4QI?zmybt)^IIp2sB)Nr++7RA#&
zRr|TNLIH}-vM<wB|Bn at 0dnPQJIjVzA@|bSU#oMtBDGSa0V?4qRx+)cu4_0;xt$6Pa
z6jZCitFJN0lyeWQKn#?_rFgR36Y|VtvhB4-{--GgNJK3+04N;-dVLXn7=_v8c!wS}
zIU;T5%_lK`al%g=(5(tXCZ$PdL91QNpH;bG=MoyT$#^Zji+o8r7;E;;<TBff`^%7D
zF19Mbv%EZUA~#NaArw|`c~N^kTe7R}tc=)cG>#IF%jT`CI8+dWaXWyoh|QUK#4s69
zA{K?^E2eh%#Qq_?@S{ZxViDc&$v0CULWZ_5zrtq{XutD!K|O#}5vjO6s!y{N3b8`g
zKI?GB16Fa^<L&G#yPXq1Qs8EDCT=*~0=@od{ns9sx&tH24FApu<8w}{CZtdjrKy8$
zdLQI<>QieK@@F!<{)8n5jJ9J|p^C1w-wJO(^BmA4*;mQ_`@T500ZDqsX;1<(HwfGa
zhQc1rzs$c+y~1x(Odn$2mD)tfT)$~W(uh-7%{U$WyC1ldWV+Jn#ccA4l%$n9K|ub)
z<DWd%00vdd<9FvY6yS;*E5TC&zOrPp(8-J3D&_1>191ix=uUg!2+YYC0Df?CWyJr8
zv(bdr7wW1pk-6lJE1qkxT~E?*;ICPX3pdMyd91m_!H#WJyfE=~uP{A(=kqT6V at 6KU
zNW$}>yJg-{xDa98gZR<RV{Af?jPJ{4^764Is6CnLILI)Lln{cqv(&!dM^*4~M(a8s
zt7)eK8PaP-P6p)>-U-?uqGYY at S*NM7uBZab0%p?Z76gsa8-K?p54?zvASAv;R=*gj
z*GDmm*D7?{!e#iG#_?;x*ai-fRocW+v<`t1dN*$$Mfu}X3jJ-q0V|^V?~wb5HL``c
zK{o>abXu7)26)^^UbjPO;-s|}XO-=hie<GoWN0W*l4=!jh?I3(1Hr%3^Okn0#RmZm
z$s?L7C4c)bZPJ3?S+NORa-LtSYN;?%wzRK0E&4}8cb_$JjI7$=>9o%jt^<#9 at Xc|^
zrQl&cuy-Q?MeXI;Iw at TO6^kXdimhyPCBy>gCH$}TeZX7Ac+(8jpjF;qo<hJXZ^ami
z9uZC+8sr1>E3+y5FjI7kP at t7aDqV>BhymrUw4k|Q8F2MK%bMHpxwqVxT#;IBIodol
zm|Ddvd6WM6y`y(5&jP2OKSkNf+x*p7lu%?Up4hv{Yd4^reJ^;yS6s8Hi8Wj(N at 8&u
zsVu`JMV|O@&M(jb>Ul#BS75^9vcE!1V~BF^_kt1lrvJbYwycD^tHl5rUtAnp$LSiz
zUWC5Ck{!XoY~BPszTem%62-P at S*~%GwKaiqtw-#4UWV?`jB$?b2{oyZUmLi7 at aadG
z$S7mVwcLEtW&Nij;C4>jnhor32Nku+d1vzo`@Ef1YIUIclzs3|bOQ=8nmbN%OrKsD
z8r{16i-m=#JJI9p&Rbw8SHjWEVr&bs7`gNDps(b?uD6;k+1<KSg270RL(ejl(%)mz
zV?>8^y at Ru&IN~rsGl$njIn6Z35*9m`x3j4|O?R&O>+Y&>3UwdK51tkWS!+skx<M)K
zGlhPx7cVp at Syv@uR=rW~uB8aAlMt>f at W}or(=IQ at kRZW8TEfMYnz=;g1l4 at IBt9JO
zcC*8vfuo3`RYJG?3O<)PT?WPC=tfo|;?Pw_Ur`q^HFHzHXpn&7`H=kIr)i}y4FSSE
zM=x6a!hqJ()E~p5L#aiE@|yqg*yof*igt|T7t=kf46 at i6&6L|HHIW at 2Eg)uRxPl`O
zXy-z~(0*LzP#xCOfFxF74X^Y;d5_8fn~pXm(LgU&yBzaoa{W~f`HN&&TUtfyIdz1F
z7$lI`)~WbxE$D>g_}KO5`d>R`T0qux?que`rUwzoh^xEXa+VN)2SAolqVA1Cg{av!
zWqbO9sOlMpy^GZ9+&U?D?*&@do|6$mOAwO+U~7Vue6d4<sZOmu7%Xh>&Y8`ur<Pe=
zZwZH@*zpWD3<g56X&M1pJulso7m|OtFpUOk2+%|cwj^pg#>=|8eYI994~?@E>3ySv
z0v4tk at 3_{tH9aFs98rU{k at eF;tM at YCO^<l;{*MfBc>SQ*9C;~iaT`S2VE69wf;0n!
z8)uF(*6EkkBEq?pTbA2b)L_pj<As?pp?c+NURIP>BJ1Vbz4rlH??Bx(D}{p$&(b)f
zW0D_N3$xKC$~d2!834`cbcnjZJk{v4#RhI^(j~9)>f59m2GI2}nYE179PS5)w2r^G
z7<mHW40t6ZNq&F1FcSQ}cJ;jgH<=Xp`OjWzbDp)pQ(wpWI($>svG7tA)pMbOO&N90
zSimoxdb%^sH^HF-%uP744yk6$!>7Dt2@~Kp^g48-8;Ux^=+pN>%Nn!k8<_i#>odJ8
zsYzLFa+kms^R5q5dvwcw9bMtc5#Wj(GgyTsMu1D~0@#ebr}VJOalaZx+?S6f&&Wp%
z6No8E(4qiUK&rn;HxssV5*`~5C^mIJYCcACBC9jtRHZAfkiC;9ik8En`A`0+klbr+
z`tJhKX^BH^y*Mb?cUPe9YfH>n!0 at +mB$*UuRu)S!XNo{Yo<R2bG#lSCi27q;G8pRO
zM6_ at eGd(j5?5Crjzap{!9+=skGOA(x^O^uh+x3Uvo_;}lN}X#v;3WsyHwIh!uOw~4
z96LByEZu8ecG|xu|NgOnmH10LM0wm!xj?=c9%(I2m<c11C(|#w;to0and|Q+as=eh
zQNXbcJZ7-*$@{&@bgam%Bu+tc><Grv>Ee`<MX}drxTvV*w~MX2LWr_Y-nR>&Cv0qD
z%q0Sp6Fumbn7kzRC(#p4c4x?1()XqQ1TbQ)h|{k-Cu(Gwr1Q at 1-3>@sS#HJpmx)Hg
z5n*59^UfRGlvW^E?~p}w9Eg+zNSq7M_&dN4ldzZM9-#q8bV;Ip=$DEFZ-MMwOkHOD
z at HB2apzOkEQflu9MK&-b#drl4Y8Id2U{)tj-|$h)y*en{fH;uwaI1>gWwo#o69{N-
z3_U0Xp5tz88p>Du=f>YEqFmw%5(LQIMUf<8mzk8W at grRH5o-O_AKc#lUOw!YpHC9K
z>b+~P?kY$sjXr7QH;$$X3(vEFH+KT at rq3chHeuqulc$pZUf!o-UstyK?J~;t;5m|N
zn^k&dS(a)Ec4mUD>yz8$im8v-_HqxMAL0-zypCmF=DR>b`Y_}Y=p at -tg9JFl9U$|B
zhKWWx>tnFxDe24pws`s=ambY>sXhK1+b={zs}49)7w|rUEOdsN&yr)qvhm&^`;>ZR
zgvuqvrjI<3bfapkCE>ajMo<_PElIl=I;mt67Z1aD)wvOHRSFqPIqW%uGCi2Xsk7KO
zRe)i7dCT560L=88T2$>YKa-pfzz+o_jrHs}f`(ZInOcJ|1tBObzBVEFtyzwdyV!C-
zNGYO6LNXub>jY006`;&M6AcACsflDk2#C2)uMIxWfiNx>x?52U>iaS8>ZLzXnPZ-o
z!Zh7t?%M<ECi<nb4onDJHpj;UsgX9$DQBi&HedCbfQl&l%`YN at EN0+;+l~Se>E(18
z)`Q)7=*JAhSID+0Vf5iYx>4{cp^$^?_X at gPp+|C2Hg%;u{_mMlWdTRY$){@5Cr~I{
zT5|P_B^t!TRzi>sG8zu7u9O9NH^IAb_4zj+eXFZ2C8(C$KtT~{JpiE07&AkgBNTH3
zv_|Ue2PK10Ud at D`)M$xQ1|bRK)d`I at p@I+o|IKD9ML%-U?dRm{!-rspX~tPc1HD2e
zV*I)lyr71NLoECl$&jf(%8n}<zzN6*L4za5;i4Q88-a_g;q6p$NFM+w>1H8B)<@F2
zh<+2CBI<C|0&UDl&gb$1>CY$g7MZ6Y_OlggC_!)pOkaD}5`#U5*{2eg2|{Ko;d<_;
zYj$6?9+z0TvYMKUFFfVr`Tychg)W&@fp4foHMZSg&HM2c8sitFysjj9%@{KinFf6A
z=Rau9(!q`SF8j!tb)T#-MR at isR?Qcgp1<@6DW at 3JZ9w<}Ac(f6qHX35^xJ5TbBBl8
z#HB>R?B_(EMlW2U#b!kLS%bw5K?64gwSC_{21uY^oGf-NuFX?RU1g`3M-D!?b*&=#
z*#hGt%jQL{Cx{*Q$<+A;8R${vQGfdw3vq=({&m3K4V*t<v_VcpArG1~chn)}z~1Ml
zuC#Q(RW at zrqaTgmZWL!w|1VXnrZhM*oHXM1LGUFOpdf5(ck{<HigrRVgp}&tL^1&e
z5}L#8iK1T5I{|jwsto9r+r^Lh0EWb6f}C3lHbMYJX1HXmP_2LE%Lb%(%=ttzP`ePP
zlTH at jFAaOSX#Zg?6 at rQxdJw7@au`Cwp{#n17-A#r#6qF%_0y8$gk<DZ>+CFVEdO_S
z<J;F>PL|_w1VPLT*C(`}vZ1`ZZ=y?$`pj0PW)r7)LB%^un`QT}-TD_d$0Zbwjz;D3
z7!qWH$P0Kqz4~G9cMeI0U at 2ZpL}P*mh{fAos7t<_ID at S0y!^nOxt3lqO at 1JV?%c{u
zT7_4pT#v{S-1onCbOnU<(vt2uWqJ|S{0dWpOw`nGQrNG9^CjnlcRz7Y*Kb1x&$>7E
z=lFQq^6i|{rD`Sx_Q487S`ylW=trAZr4fqkQb3EU?~qQ7qy*7&9lZ0K`WuUV*KdD4
z+E<`RZ9qI6<RP`)J8{Gm83|y~Ym4O9(w2M|%N_qYTdTfUZVkv7_1VkjHlR^F{s)9%
zDr;V@`pF*zW<ob}+ZXZalmaC~W(8YX1|f6FwXWDn3mA at Pw1|HB%RX;65s}LbY`OWm
zLHKz-w93ZHuYxyZj3sSe%^~*Z^KyQo?1h%`AE19u#3SP at l6h#q84k5aC_9SRKyoS;
zdMCIriBbBh7e-^Z%Ms(qyV?ZPf6A7=o1fY$)r1Mqxt1&`>ma8Mf7u0nKeLWh{!bsU
zD6Dsb`>4howWQVtW)oPIi at ZFA9FVB`Z_1F2w%o2?@)q|(DhN_?NO>WTzEc7Iipw&{
zOCLKYQ at a&*@-fm^byj~LFaU7m$o0DRc{W5C9=mAx5nvBZI%T`{$8xgu2KxT!lg{HX
zsC=`<cZq_5LnxQ%MS&6<yr)3i-{KCi?tVJV?2aXc?zJS>Y2&m;d|)!dD>@&8B;W at _
z5 at dHCTbK3Yq&-bu!}EKF2Cp6_(fFy(>Lv?<UuOdJn at 2Syz;$&#MPBB)!clqc5S{1#
zA<;nRYleU0?^+ at l6x|FD>5!*RYS#?2$ZqPonX#r#-j=?T`4)%Pd-awUa35TC?GQ at i
z9gbIvZoto4okHEx6)$>XEbO1Mc3qMsQb)&5a)<Abg(`t95{5R(>%hQhGB;SP>UG;H
zb&hiF<iNH*{h+RV7?rSjYWZ>7cOs!;C77v9qaXO3HEf84!KF%{>0^%Bksw)a5gdFr
z&2ax{_Pm8MafBwFLJR<j6Hp!hb{C<Qd6Rs6m2*I0d%WF#lG7HUn!2Te2e2hU^nC6l
z7V7Sb8Ymw}jcsW!mamfj!_)b59~uaQEFvOH_;y_m9#`OuQiQ!I6OPHWJ;0)*lVgvH
zJyqIQ2U~n^xvmjyZ#U{;vY#R1qNXAOQ~}b_!KmhAx$)J}T5G(v$=IHpbBe0 at D#KoD
zdbyE8%qZ;)H#cs#1dk!H2FOq`nGsmODx=WA*8_Kmm9QNIME-1C9c2MY!#W@@W~xQR
zT4fuqvSg#XabNEa$}_=Xh9iWr5V{CkWr09i8o?*G%y3^L{OzbTs^-F%(&>SpumZW_
zRX62-vsAZQ&UyE$@4bL78sH(S$MA#FAjX<x>0I+UmgFZ1m;2j9A0<m{-pa~pXR4b_
zw^0>##)c)%(yZhc?CMYV>@AA~<DhkyTH4G~ojXv-QE#uxrb at 9jFF77Bua-w}k5#@t
z`V}aI4o1Ss!6212*~{?_io3u%J~XxHnm^GwidLfhp6(OO2%4_9Jy-BfvIQFdkUl&^
z%xBh!prd|gI#npX6y$qb7uh;$H&NIs81h>`<rig19^;#M5dqF~MFtaR5fmPa<Hi0~
zVI2E&jU8?K7#VPS6_$LXe&&4X=fCa8Z-nxrPwTSs#TCWQ-^?jLU6ZsnD+AmM(*Bbs
zkX=iYDT@$$wSW5jdvOn(0d#AJE;lH`$7YZ}{JBkhY4j`H_w;y99)H1Q*KvQQ8_ at _V
zm4w}aG>!yu5|`H;t2P7OeK6joMx)MVY3$_{#%fkPksF-<n5i59K8hG5l2sZq(DZv%
zwjpDy(0H>_rMtF2o^GRFF>YQ<%TZ^g8KPBR+Sk)Tnc7<HLDcRDo{SL>B~F4%mLEiE
zIW1fnVSyp9>Zb4vdqjz&8kFA2wg#6TIa^LZgVh}F3>VhzbRDE`(`DzDiyU-%0&Ujf
zX*P74ysr0k5<S{n{wEU&V%n)wK2m8DD}s{egLTqHpuC<lWm^2&aA?$>F+<PDEDa1O
zk$UF10N-f%R>SW+%Iw>LnNZTgv*v`h$Ydj4<~53<fNzZ1(#BuHRJqBsh|h%5U#Jk^
zg_&4=cq!vogzLbW%1?k6m^2;Hwd!kG?*Z>uJ8Fw#M`#0Ur<R}*RELN!2AOv7EOa??
zT{^2*bl2Px$%?u-|M-&mwr}Gr=YmN(r|d~Xb~6x-B at JNhVf_2D)VbcJT*#uWXkdf}
zFXK~}8cHT_f}@~Eby{Ac7LOiPcqea8PI$610(app<)wUuP<R^t{)>3Zsb?8<bCftE
zH|k_h!_Rx9Al&M78XrT-Us@|BTy}VdyNtXw_=ljPt5@~Y2QSghSx{FxpUGUJKFE13
zP8|FU^UpODKE7 at B@Z`*L!2dFfiDP6@;jmbKOKyS1RwOxw`XOi1VFqSNlN`B``WU97
zt3P{3tvN1AUm<ecgu~N}nI2<p8 at C9?%RjadG2p(Y2`s6o0J_5s;1fp52Z^XVv4?oM
z-<fMF`lu)@zHrA7Do)G%r*P?kq at io8nFC<^c+Ga&@K_SbR#s8wETF9-RhcQsVcEK*
zrC~n_3)lIo)21^X2u8Q4r*ZN}sUH=@Gir;oOy?@QVH1_V=(0}p1rXCUr3{}G@=&j0
z at CHZ<Z<XC at 8<ONG9$cUnmOZ?)(397FG+{r<ot1GkP#ck0#&oG2Y)a)k_7ld5wFLus
zeQwXu`-{@on^w4oaw>Wb$k0$#*Ph&|E|MWz4!Bg#LN1EFUy%Q1Lb6-2=PfM3Oh{;{
zo9NbNW1xlmtL~`CaShnT(OoC?P_L(QnnwKFKfA;D<8#bCHXwJy(>4-661e#3>~f-c
zf at hR+6Fm<e%eb&Ay8tZ8bANK3g!s2;*O+M)-dr{caRt%xTG<x9F=7;+FEvrptY02z
zp=bp-4!73;mjL@`Q^Q(kKr$0~8tR1=(3~FB`t(=%q@>H at NuAOgS_MLR%--Co&&Tt4
zVt;B4e;bIVORNI^54#p1%0Tv#{rO4M9^jc at wG6a1PrD0mEh<n$BNkE1C0 at p)Ey2L$
z3+;5)lYzO6-IL-cKovf)+MjQCZk1vB86xTEF9_We{zpkkNv?Y+Z~KOYRMCevj<=xJ
zWO&Zgc^)o*(dVtRSA`rsqjibtHnU)KuZzm-_`B{ht;>>jiaT!h?xfHdIo;z~%nW=Y
zrqwSv9L^6JgoD<!@GGnSsx7yRZW+tg(25Xwe=8NxhIAHD7sXr84uE)pr_CC=<pK9$
zWxwq`u~8 at U&uTXbBH0FWwK9!fAY|$8BL``=)LsS}&M!=6x?H(GTI2S9eB4kJkA6Gb
z0kU=}tsRputsy!ZfiN#C&t+j=w|5DKTM&Aq7xADU+M+`iKRIa%W~oZ?XR(m~uVRy~
z4n+O2Pj}~ylzuETcuLbs>&SDsnp*bnLtp`+hG08X?tBmzbi at kw>ZiB$N*`gJRB)S&
z8(-O(>5Ko-E}g0_Hu4x?rnqil;)K0J5ZL*-KB4Xt!pC8ez~WGLGjyAKqa{X3+*@-{
zm&!NA9MiaQ#Y#?n6&!i!?Nb at N^}Icc#tQrlr(mDK|6I^~i9fnQpwZ|h#a!<U7Lc;@
zA(354X at x|3VcW#$F|!L;-3yN+!`E(Vb|n!8>srmdjx8VK0w9tH__THt%HGMz2o_&?
z*HYl>Bkj>MIlrArUsc|&(&`|`y~p0xLs|9L_T>puB){4N?xfb at 2mRV!Mr%?YMrL1&
z_Om$k^mlYLr^HMpm41vdJ|V=oMZBs17Uq=MkZOk_+iH#OO=XUt at tBx?;4QsfPYZN@
zD%~meaq;_3<;j!v6H8VD6JUCBE+QZ(tg)N4S$uBS09O=@G<>3Uo_NM{e!HEbWs2O+
z<Tx9(h$oF^am8Bb at AWv2Ue7S?s at Is$+xQl_M7K|PZ9-2e*6LsAp+ISM`JjS821&|}
zV(_xA#Q96g*IRp#jQ+If%M0*!K=kk;H%rG%00GqOr-j7S{ycCwV%1ikQEFj>yDt~U
zTZTb$cpUSeXXepaar=8IEvGT~1CY}AUsIstIEn&862XQ63)ATdRTnDm9mCj2xnTj&
zp^4CN*Q|N*LR{lj3 at P+Q_a=T=-iJs{L53nw&mZWdEt(Gr7G!?ZPwzOJH`Xp><ZjhA
zO~C~2kQ1k5BSk6<J at 0WRRGq{|ehA2$K+F5Le9B}%45VM<{2G*ipq{2C!*}4;vC^ev
zk74+=pB&gMow}DwNV%`Mr;~v0h(%^I=$=W)Jr^2cPfZP2VR7X2%Rn;yJ#~4E?D|GY
zCF%2VAgDeQY5^@bAe>;6px26h#>T3XC~w|IQ1&n_SMQArGWAL at m)Kvhj#u&G8=$zB
z#}vsrr&irC^rJ~lHRgFG+uXDS)kTj{GGO@`vV&<04U=Eg)m)%|gJ3K+o=E}BXy5Q2
z`?AmjkN1k{V5P7llnzp0JVv?^IN?^+QYt-*V_P&jOD9#hVEB1(9pqp36=TZ?*XSPu
zcO8$<J3=hT`&Z at -!LAt2CZdNlFCP_gPSvryJN_A_Ni844X$F7#wAIEd=r+Rkv-ce)
z!x5SJh;hH9Q$eT<3y!l7&%rep%S_S+EiZo^XUGy)>gf_G at i_KyqGd`tw#JmUmwG*t
z)ZIFnHo~Q|g3ran>ZUu39&a}~yN=1}97T8wk}St{Ev{PhYAc|go%&TaThIe)<M;o9
zeJwC9aqOo5v0#??zn!B{mC at VxrSvl201NX&JIxFCDpFgd*_ at I+-jx4DQEdMepw!uW
z3W?P9GNw#q*=bGFW1KfDxHufaa;qF|g0{(LImEnr?v%?c;HVh{kLv4{`t2`#YAO;@
z@(hgj79x~PIsiNj6ib?%d=t%4uFOr<BG6p&;qZM)6HS`e51HUV1QEROO)cKuu$n0X
z6Q!EL*3>q$j*hW$DcJ{gj#hYt;=JBcVCG^7tvt>?qi!tFJ4WrT%pk8KXNczy<}l|_
zg^bVR#Qj#<(_k{>Rs7y~=4OOKuY3_&l;B^TmdIPaOa+h7);}l at JrWoB7#~#_U at 45C
zi;+`4#0MGqVD32d03AJKqB=ffh?ARxhGz#bN9?ow#e2ZudiG{j at 5ueuZOES@7k8H5
z(fcFW+wf8wbzj)H7d|&m&c at +W$^-(`rrU3z6H80<1SP2TQg(Z<8TzZ0G{HrV!p3p=
zxL?Eyi+GT4x!}COcpgX`lhUEy#zR(C?D2D5wLNE%WdnbRPNMluzAk78RsV`Cnr%Lz
z(z-hmG0WmrcpZ(BpFx06K%@)37@*<e!3Z9^B+%N^qzULd(FK`W)^6m$Y5YB{ZaHI<
z{x*=L4IhC_jS|UF2YScHRJF?(@Wvd_TdL#TATdONd92PQnz8s*BYt;vF!M%w?pG6Z
z@|A~E6H-Fz){_k{U)Mek4Fm}z+&%Oc-yPuea-%Maf<;|>*CN=cWNNtUguF)sWBtGU
zvKR)h09hlpiFMj`^Dn8P=_~XijEDFY>r5-^ktmh(_Yo9h0=N-&TKTLFhlTK7HZxtT
zj>z+xzbnVc3uA2zMa2W&3SZroGGK$6uoG9PyY6)uP&LH#U#I_R*fkpVHcY$Nm8hI!
zi{NV-5G(!}o_ at J^VvxDC{-<w{61NKT#~**zI>S86GA>@^P?Ni_rS1#T0iCdN4;k7%
zc2BZJ(Q$Zo7dr;>=wl(~tyYbn-*Ua7mJbQdkG641FWnvR_ZO1;E?6h{ugSGM%-h?W
z77(eH6rGbhG)pD6WnMq}QoB1Ejv-Z=F%4GPozQcIQinVQTe>2Un(<#a=cPn9aOOnw
zel_ at DtfXaZ<|0f%=4E_Yuu=C$r at mq&%dtV*iT6V!Tj=X;fLTfcreSvp0xnJMA!5y&
z931x6DE+!3r7wJu{3JXKdcW4;IF6usH?<z(F;&DS3Djxc5Z9$v1kE_#X;5<gvqAd*
zCq06|>8lFXeo(4cPr(lv#n)?3h|!3mgUY%cg{K6BQod-$w@@fJBG*3FndP1G*Bc$D
zkwm*qVy-=?06(E`9Iv$?Zcj+K-y${fi6VwjrDu$Mt|OPb>~aVet1p?*mfUf at -r3i=
z6>O;uy;KfO7|!;X*4OdSPL}^aNf;!jUn>${=nn`Q4YWKDygj0VSDSRoq@{_EUPzIb
zh^tIa2=r}5)GB77`_b#Mhokc1`{t8VGb-`rO{zC$g?HQlux`c8y(~7?4a3kroH%Uk
zAKrG?;4H&197ly=21@^u!e$K1B988No-v}3E=@bhdJe`V5NUtYIf}uu_JcIwj}i_c
ztgmyzH~a5G)dmaawQop at eeuC?R~S72Q)0~hgmWB;nW$bs*2gkJ#EkYS7~(d0%#ItH
z?V*_c$T;^!$nBc=RH3d<;YlOuYROzyOdTWmDd_2gzzEkiC|cptT}MK=KINX%u?O2a
zqLkD<Hukgv#)h*fII|uY*!rVrsDCbCb@>hrU8UoA3KyKjpe17ir%~N3+WD|JsvGo?
zRShB#OYF%AyRir>=Ej*Y-(U~zna`f*H2)g2KK%UyAPL6|VkhGIqdPW$v2KJS;Upv)
z9ILzpvf3XrD(b)tYJ4V&aM|!VIPw!lC&Vb=@-m2Yem97_Wn;K!Q2R;(JhBS9-eqJM
z>m>m<I#}n{DhoE$!~b%{kzXP~lZn&+8z1S}G&>+KPq<lJT{{U}2A<x}LR)@@k~I~V
z;{zeoe`1`BOVYDxou(A#A2AOSJ`{_5#0ZdrX|ul)lIBFcM`lK#RBI3IbID%^+&L3Y
zHoh8nZ?jzrG;CT-#Tc)RzRDFQ<mWC9vLhiJGKakV!ewJS2FI9A at gz$wkh+63562^d
zE1LE`mUoGn{>#M4X3e_)0wxX$%`)j-8)O$NR6SL0^A&hm=w`5i8yFg5yW5+Wg6n`f
zLnoX9*+o$<_f7(cg6rVbbSK%5ia9sP$FFtI!0nguBccFHJ+s%@@&D`Doc6<~cT6Pa
zUuOwhi3x^fxK{4OE_wguF#w+S7Z_ZgCi*SQscf|?eXg2VunRMd;<sG|@wjt<B~1J{
z4GSLFoG^b%%$X>!T>5j7N9BE!2X7qirSsUTF~P at a9=Y}+iwLKNw<d)#6#y}!bxi%s
z@>~zy5+uYojeP7PI?rs5Yl=D;Tie5ZECURIb{dQM+sDJ+e+#gU6RR5G#rkG3_kC$H
zhF+AB=y%ALYT{%Z&;fJTQ{NAGRo4V|(NX_b02y>iW?D`wS`BHM(!Mw~x$%4R=N0c(
z^UAfxgonn`_x5TGNObNdsqB_+OG!`Y0-kQ=fDvfjvFyf8EuHm9@;oJ`wtzeb8SU-+
z&u3TGiE07;7=LeryvYlG9%B`uphFzb!Mg7#T;|AzE$*Kb at sf5u*hG9)1j#%zC#Y4q
zi8yQ}K7Lk0#8>CpX(!|akElI_dUIMG{bYw4 at WgyBQhjCpEkaN}|K&ji{cP-qd#{-p
zc~#^c*?NH~-_4_R(h at 4-QMujCQl4;}s)U;>RMKRsZuyl!*TVa2Q|I#rFF2|#O_PM3
z3Bf%CFv5if2=PaTYdO0YcQwFogyP)3hYG=mEP!S0cz|!etx#Dp&rY>XI6*`J)Ne}?
z%hc2F#bB5N_iGX3IUo!v8AYAaz)@tjzMLc1Ehd#O<f=SEdKaz@)XfidcKmT9emgGi
z at w*xJa+sS3w1E<fJK4zR!Rl4^0f7}2WWoR?j1X7pK8a<<>*ou+!kGmA`*%@rMwS~|
zO&0Ve@?BC~R-CN~VRg2U@$o-v(aO|YMB_#o1uN0b49$}e96~?x*=2~<R?1eL0?Ycx
ziMDMFY{v%J_O3wNhXa+Pw<SX5UZ|zyr6hpgLZcW6Tj(IH2Tgh!K2bxxcxd#}v+Cv8
z;2#YbsC}wH2pg$|Ugvk6=>A<pUh43H$Z=zdU-wAXo+#Wl?yp0v{~99v5aIHY5Gm%o
zqk(ORByc1|E+_ at 8y3X<LDctq`+8r#}F=yofPw^Vwqao@@458UJv|B>&tNYFW`gJfJ
zsu7Y at o%3UUGj`w~(s7>?IQELsoR-82ON;3td&WH=51bt87~7wG8D_BCFKog`?{KEC
zVayFSqvTWwrr%PTy&Ija8Eg4Q^LQZuMU<E$;JndKtOB47h)#npB1xp;ZMIqb`CN)j
z|9sT%d~TubVyj!(nX_B}C_hXpcc>C14l_;nbWVsh)ha^9hbI5(9z&zUlxoJYO5|aU
zasy=NTsDmBDUUZVsnQnuNH1u47dRgrQa9J8qsIs#yC6+Aa4c3Cb|e0 at xvs-H!`HbY
zs+ZS-07^0U%Z(qH!rXQLahBdeRrTaAR{pINfAb%bE-H||1zgfTW;mPw=BBPdZSSi5
z1FVe4DAZib+69MG3O5^2<e2s4U<J6zXm+bEBuwVITsm|QVB^x>(FdwuluCpjkt_0s
zU^Yj~wa67B7jtdl8Zev;j_!a%{(ooK$>${<I`^1tGdPSc_(1<9_cTvsh1ouMAA%5k
zk;M-+Yf595w_t>#9FM$ZiN4TB3-YIR&j}h_rrR|T&5s#?n^8UmTkj;;%dO0KCMskY
z-?9oIJF1xpu=bA<3UAik-!|EWd?5``Kb{W=Mi>f>JGN{uJ4J2vdd_MqfY;PDU@%P+
zA3tR6kTR8G_iAxO+YAp+Ux4F>UFmU`6CWi!5)(H*0B2hzg8(DxqJhP-0iw`M|B2Ug
zFnp|n;7RDfhHszg9zXgT?i^2({v0gY<0u3!GQD&Ke6)ht;yWCwEvBO5!HF~DvkrmV
zkfgz<uSOMAqe8~nL6rFe$-iVUk7tSQn~zB at +fibJ!;|^Vs`=IC|L#1TbG7Ab6KD7Z
z&svu;pmL-R<J at -KSn=6UdMZJ$Gx>z$Zk$EU-oTWz{crKG?6eyLq`Rz=5tsTXgLkqD
zu{Ej73D<$GCCbGqh+p8A6ZAW9ke7;Ez5m9UXKv_3-${;aoT-~%=~np`$`Sh|6p9Ll
zCjkfwgR^U8zS=Wv-$Ut_9tdD6YBgKZyErEt>Ts&)O1+tkUYx!xEJgkBNmlhR)At8^
z?rMz-a&xpQi@#}e)d~R?B0Tx;eCqO^GcZ+qH6fVQn~a;l*^5rg(2F7iexRtiPJ*G~
zpLktt&gFPh(PrrPR;j;Qc8>p-%<6zw>QgK7nwGXMbAogQ6Cl$$<*vfNz8jo`?CKs6
zo~@&CXIN%rx^|_M{uxj5dCC6lN9OI at wUy3GLv}}WP;CU&K<ZJl!}=T at Fb_fuj%&iS
z!_?w at gntprCj4?p{MK~rhLS9F$9~4;?yDRDkdzfkK$i+DZmh=a at bKfuKr%Xk&^Hy8
z153fd2Tw*uvbBVlU~4(`y`l7?-V!?&&h at Ghl~9;<k>RCTpQ9SfX8;Y=HSw<hQI6A!
z^7wKwmUaZF&L$X4I@|(NcLpQ7nT&@(y8My!NKUvHOa-j3I&*D1#>9HvwRx<e=@WPV
ztGtUY-DcaLG^!c;)Rp^s81wT2tEGCGCw5Awj1(Pku0m4dPHP6I=;rUH#AVK(JQ+q!
z0~6Uv>4>-EU--0kK1 at yUet`2Ivsp_gIW^Cvrc9J!@YPjY;JexFO!LgJi$##{5X}q)
zvm)p+LAb3;a%&>HeWZAQ26gM5p!DSOc)=k31`!>mi};A9p61%L|DS3dX*qi;M~W!K
zTv#ruN<dn#h%JT=$yWH3C#^4SEpO~2da*PjnUj4H*Yt;=Q7F6Sp&Ao%J2vRB;nazW
z*4xw4jIq{&dM1qyF}eKHNI`FxwDGK8S!%1!t=2C)8 at JyRVjc`<sMc3n;0<tUk{YK-
zG`OBjG{dU*lmMtq{R7NzTxlksV1TuQ6yoiB{9$jRu~}Xdz7pGoRF0chVL#{rKnbMB
zvV5m-)W at Bb|21HPI6JHGJhB}E<D#d>)$|uJ=F7OHB{DHujUCh|4>mbdL_-z|AqCaf
z$!EcjGciX4 at Sd-MRa<qYxGXz2skSctkuegq_Wf+(Tq`{iFTw>`5+dn$n>3 at MbGSr)
zOQR@}|JI#KGv8HrEz^l?X64+LWg~v0N5c|j#(I;Au%@h(*PhreezP=L-3=bhG{A^P
zy~qM9K{YC)A$7)rnaxmIs*BhQH%T~<Bt6)eR$L*4{s^Y(VVqLd#%co5e7z}$gaMR#
z9mla7<d at 7A)$1q$3>ws(`Cj02tMG3r+mCW_8`%?P`ueo+B#JvWod2z(0!`UQlMk$*
zO}R1Id-!0B|IJF>@!I8$N<Kt$gelrre~6%ydk_ at vP>>k~jHmk-l~CkO^?5q9uuidS
z7Mzef_HV5exrnI#v}9`1Q8vwvY<LCo23IkQB*}YJ>-8QS*q`~fv+_D=j=|qjm0ym^
z-Ma?@qwf9SVnn4Wx_W*7qBPY~jV{Hc^Y>*&F%x?xWZ**k$cheiO!hq-RE at 9n?kFLC
zaisA8 at u;JaxLh|Um>=S!pC?XE3llK8z5PWG*WRGB25_~K;+{Y#9V*M+$HERh5B4>1
zWcSv8MYsU at _neS`P8ceO()jP$J}23>ggzZiN=#R=Q5qlu8;mXlw#>q6ec!}gdgRiB
z&;HGLqqbCrr}y@{tblrGP~s+e4J12>+TaSTodJB=9}%=aVb1G}7S-*G at q^@hRGJ-m
zou317GjNPQZ&duoPR%#$&&SF<Qg+#u2K~^2pXfeM^I+*C<H`NViv-`!Mb$@K{;z+&
znXQ+6v1!3+M2JcOf!Bcd*nQ at L;t+0XWR6%7tak%j(Z4}cIv+p6o+O*$BBwOSHxAMJ
zKSti2mItTX1`&utY at FqCdsMbp<IDsc>_(llYQbu^m2ZRwuSaEHtW27)LF?YkL{G!W
zfIJUUy*SdW321&3x?T;Dz^*6rE`a-PHfA|PHY&GCW|B6K?MZJy{Zp*k9=LG|JrHP=
zMR@}iTMrbH#Hp>XuSE$h%dYP`cd_9D<5)&Z+;!iZQIW}NICz8K&AFWDTgxk<R~47j
ztnUEho-J~s*8drN`GZ`$c*tJ(Cmrrs_^4{aoZ(BxD~Xa<K)98nS4?3lg-#JGf1D!+
zM%DN#1^U+R;N7W$LiJLNM{Sd{u^BnIZSCkVIp8dDjiOaZhV4B4#^q&)ey2O?!?60u
zNExmJT-yLlWo-<PgUJ)rWI=otE-Q!5bsmmY-=>+d?B8!elhl;9%7j<xTW`V+{cf*2
zM=VdQ at mtOxq~8 at x(kf<kVjkm-9Xf-fW?ITuMGx3LG2l2NvsK at ecn*+kr%lJfi5U%{
zU_P3+ at s~uLvR8)0m<5fA&^>NimGoffap9-gl+5b`+xkYiV-bXe%<4*^e1qKGa1Yp?
zFb;=&kKI!<thoO@(E1I(Al5sN9&TFPFa9P!9Gx*xj>NvuN2F6krl45irvEM(L{qM}
zW1%Ss<^*7Q>}3WaMbeVL5<JYRK1+hGeeA;9%w`{*JHu=2ckoA$CZ8QE2YZNXf>IbJ
zdt15S3Pk4bOfX9j`n)GWxb(_3Fx{(-M12n;ikyCU5^)7x9O&VF1wEZH1NaqqNnO~>
zq}*(1Khokb|7sxO2^GAA(f9sGl2u2^1P18x$ky^Xp$krX^6J&-FA8pz(XNmOUv{<e
z>16tJ%3)ncA*;!zYS*vN<o=zKSL_Ta!ZV0h&lhM9R%J7kO&&OmE~|2qLbZlg?HO>c
zEeDtlYa4!|BsKZT#n*BAu(<E(R<z~=Ku_2Hj|hZ2ahyFJRL3sPYJ+MoBx&H5r|7~X
z&{}^w!Is**KdE)31|YwM+}rBs{s??wRhNpzk<T}UR!e_Mt7yec?qvbzdDh}X8UiAl
zl+S^qJ`u~rZ)U=6)88{kj24|kOqea12h}tD|Dt>$aYm}n`X_a&qjm4+{Iz-gTmJA?
z=_vh_l%8J~@QV&PdELMKH~<m2hG%w6yUZn!7)D06n%Voci6a&-e@}I26^<QNgqi~O
zDmppv at 6B;<78J+zhYFbH{+4I1$(_jSfy43udx<_^b8>#36zLY|Ugw)aH=9-l$le at V
z;l=;5$8Y|(ERx|b)$jI008jU>|I-!W{+pfs?9e>x)yy4xIBIrMs9af?+fOcru?9<N
zZ&|%0m)Sw0>%QGd`{m at dba+iye35PdJ*W2J(o;6 at xHP{5l~Hk|7|~(*o>4$*>Xcld
zgn7)nG((CgssTPnPJrrBo<#aD3tNm*m9+sJwvky(Bn0cMQv*!ac{1t0>07(0v8-sk
zg4l$-9R;BMF_tOy7UQqp7$r)}0ZwM*<S}s#37fd<l`j8D18mVghLrUbhxFX_Y(!*!
z82{*i)kZTC)(ki;PZ)K1<SPu^%(Ap{i=tnj*@c1e;W1}~^*C at aNPw;WWgc(47M>o3
z5~XO!Bflg3Mhv at RBen9<VF~Sq7KHT5z5EjG9M?!iJUPIPSbaUi>4ZB8DHscgYlfwL
z5dg>JS_7_CZ&wl54=pH~P at L*PPcmvx(u`S&nw)zr at a#fHoie?O|EM(Dpqsj7Vx$Pv
zh6ClM#F at 6iWk0%(pq|ZzTJAa;>BY*sC>8%IWQBKJzc$))74vuP!4`^h;skNDz3PH2
zaFY(`%}mqEeHyYXq+ytc&XPQu_h=c_8hW$*Y?|rGkH_6o&`4cEZTXSp5CP7e>HCZ!
zT6IFeRg!S*GDW<lcGRe~5809mVxSOvY|JubR&4_j?mvp&QypJ1%>vv=>%R=IK_fx=
zgEkEJZ1ryJ4z{MQhU`E7mLKsa-9gDDBxOa;dx&cwa at a2mL);Q-lVTdmn9X6@@1C;u
zHw*|%?NeT4+YV1bbr?4n&)BNRBLiISv0W7=WchJ~QSBKT2|+CZ$Q@|k!x9e=KOVxk
zO5YDR3OX5QHZ<dJHQV(eBc*JmOxO`OZSk|s-HByhVjN<U&?V>XjDZ+V5kt&{HxF1N
zMU3l_Y{b4aAI2DCBo{J$gP|%XiiE%*{6X6|^8!Kkt75#Ew*5{p<#bicz;L0)#T#)s
z`~rD9iD$11f6YL at jFgEm#Ih*t^!*6D?@Eejgh`OSV}KOun`oCyiSP&mc1OCN*98{A
zSxracv)M^u3E<JA$vP+Xb1vzKrUlb at wuXx=6t9rA!8G$ib~C$o=_f3Ap+ at O)v at G8$
zB1J!*9*SDf5>t;`&+HrKVX|O96hOG`@8WhP+U*UK(#h<;bRXFFKiYm$Al3j<b*YkO
z7NYn at 9<oV>_OXyEwzn)?D$su6KIituam8E at V}O`>G3p9P!XnxN4%I0jOtmEYW^h`6
z*9S?X48%7V1TY~+o^U;T at _-MMfGFoy@44WYva}FhSdOc|5X*zCM1>-hc9|#tMJH`M
z0S-RM0`08t0cwxQ_0_*A_+T-~%Wo*+yfAdPI7ZswhvnVDolc$mlq=@MZxQc_ at fiBW
z11PXxxjkrA#aRraP5_38fF$OxvYQ)5u47ZGc+s_l1LzlFb?w^K&3Ho}3<NOXHmjeF
zMcck5N at 0uVs;$oS_H?y>Ki!E|@4uj+<RcA&zIQrrvfJ%Ib79IWe$dbRi%q0L-KTqG
zf}%ZhrALmt<g?po5D5pQz&HBYNtFrUm!ybqFvW&gQHL`=KDT%%YWf0?voUUk-I2S{
zsGpIX2<--r at g&lQ$CLV&o`Xn}tM1VY&Us at k+5F#si!5$!CWPz+%&g*Sm7SdMGZn3C
zA~5(UOVP*!y&U-a+C*1@)+I%2M+zAc#{;FP$Xz2!1HbCRHI={AEaN4}GuuFq94W5m
zP*D at eEZ7L{0Ha*8BZcdEnU*l;j894s$W0Yj!&DNVQ=PBp*oU2)0#ow|w`7=F2Iepl
z-Zin>eK&_Z`TmE(xt~4>F;mFrF@?Uc=;-zKL5kozmW}_siD22QecAP9^s}3+x%x}R
zIGpyzkwqXtzem*(-{UeX1A*K||LWI2zwA-}oNew?p*710yj~k#+0X4VFA-iA_j8cl
zYWv)SjN4x<dH|%)_9G at t^2KcU1oE?iHS_%2A!~y0OeVw}lAIvY)7SOx1)4X;2s4oO
zZMQ}~DNrVKLNnRGQx)|zY}+94$$4kN(8QW0X7kp{F==zkGsOJn1%U54+I7ZbU>=Hn
zLRREvYql$BwY;aSR~^D+*>_gdFf~4&b|iZdsq^>EnnXmJ=vm_1F at U)^OUGT=<D#`2
zcZv<sJc~0Aj6ZCV+GQ&jS&(mhJKYCrXK+12DS0PZFQ;u`_f@{xL!geb&DX_}UTvQM
zQjZQldA=+SbG1+Cn=u*qnpxB2&getz{8%)iL-Rz{ln8;FhndjJ7~PS$-f{)_4lU}E
zq%4$P_+f2=l&?$giXqf-ygjxUcUq*VT6<zB+J_9Kc?nF^@HdR8bp66v0_BvG0Td0=
zr at av#^^|<;38TpDGRcE}lW3-7$yHj4y|@8+^NgD8EBU3p+V#II)L-%!YW-WnSpDR5
zemH&vzl13W%~3|w4}_p6#)jlePLIr)qnKg)bDOEH8}U8H7`1BvT-A1wpJj1f(6_Yg
z1PHc8D`a$+`3Bfq;}4lwOufXqLSsKmRTh7N_T`KZ at Ww9%6_~FT0TSD at 4thL=ELfl|
zbM`my$>lRGD&Ad$6cGe1#(v+0fF=B=td87Su%{QT+*1|d2cl(jdG57h!R(QRxfPvg
zppI*!(;rE(7=k*Vs1j(QZBCl)vDun>9B~~AZu=@`MxAKqr?Y-KBdQ`+yPajZUmQ&H
z!p{CVEq>Hb9BI5Fh{J}b>bSYJg<~*9yPf3FHn=vh7>9sT?>5nAlMvdL*XS12Zy*K_
zTQ)+3#`-GB?(q&YGW7$_$DWl5?%kDZKXAgbM&MGtw=4&`8pY=*2?YHnm~LW4k<y19
z)qmpiq#-ElE+R*Bmlks2O?%HGq=34y5)1e%C<R{xv4?6-!(=o8md0qH<`aeDA*Fr4
zo-u=Gmd!rt9%*LsN{aA`ogJ{;-=TQo{#($Ci9U%FmS|}u-o_}sC$$$2U&NU{A8ljE
z-dttb#s_K3|2x?AeS(*e?6K at La!(KS(<MT78&&MuR7>xMYAuToB$U}lzhaE+Hq!u~
z7uq75pF~u5Xy@{5%H`@{uH+ at vOrj0(eebRt$yI9-O&KS$1$G9VklW+5-SQkfF}!sz
z`&`bE4`Tdl$fwW=4;D+N?CRCJa%@*`ek|a6;}D2h7Pnu`LH^&u5C}%hZ=Q`aQ#>J%
zr~6;ybhSJp(=bvQPyn at iwGBYpT3Y!+CD?AdEP9~?I#YY6=*1>`00X-|Q4F$#X)u2J
zwjo>g43!wW-SwJzNa_v&dr2FC=bl<w{#O{dSgjrMOO4?N7{`p`anzLXDwb$ze~`9R
zUz4+Oic6;KgOv4&%*^b2f*h`%?1Zri_yI3AoYg>X*IY`6Y~cl6SSHW7s>+?ZX8pNQ
z#!1M&rbyCJ&zeZ+%_E+cn>N~cRpWbB1hqm*s~EzJvr5PTK9qNhe2BmoT;`Jh{Tyb)
zkJWxW`=i)H=P~N??@W-Rw}MG^E=7kPH5xwL`S4d!LKRLcH+af1!CY$aQAb-btA`84
z6Jko5BP1K(P<kSxX+I^kg3NF_d)-b#h5SO)L?1WkVuvzP0&B?y^3&%O!hOssgXvE3
z at vVt`BKDyCtm*PO>Pf^^H6swc{l+M<h&sOC?B%^945k-!2O8cfn|s<Xuj7#gjEqeq
z<6IDqGXkWbPe2<oSE}8foNjl at EjG^$V`yTZ)1U#`c(A5jfQz--;(q|Ltw}Kfz?}G@
zYEGt(09soitI}jCOR+V^eO|(v`eJ~AF{X3J79+>vCRM4{s~|yAw1cD(WYY!`afTrK
zGfr(lL%v>rTHHG!mV<s0a=y=gGgR2=4<C27{Ih(^ftK=QhXtVq?O_PDcGT%hi3SH$
z2ZwXQMH*$ED17|qH9#sNK7#z7`A=UtemBDMM at RqlIFk7@7L(v}Tz5dMl!o<4TVh0b
zpRluaGD5DHqVJH8<T&d- at c*#Xlh9<(BW2EnDR6{5k at 7cg7@ete<?in)w?kHf*c0MC
z*8I at cF1A(kv`&K9*b}UM9IL(^EKm%1 at IGteEb)i(+`|Xw3kvB?X2jtf%;$)sd?c|t
zrq`>j`TM)T`(`z2Bfpt=D9yv#_ax_79(aHh^%f4?PHHrhU$p1(cHoiXjgJf~+2KDE
zg<&<tm(-UsrOZP6uWj~RECWy{L9Kt at hwET2Tn!OQ`Lt$hlcdfMYG+IvYCnLsZ~up{
zM~jB?bYLE9@^<b7btbDsdn%Z=%(bjo(Lp|NEoHmLkKp)KZ3qU{p+;THa+VM=4VgaS
z4_zx}>%Tshr?1><(t|}P3pQr at Cs^N2j>=$Uw4Z=BXUJaL9)sKZ-wJoD_$ElHi4|^$
zMxX~hI706V+Kd$PWtuh<78Z`NMK>Q-w=ZrQSrIp2mV@(6^}}R<ORQC&L4>C&w`p7l
z`<H80oh1CtCTS`fBh>0v;ge=qJBZ5Rk89`gt*G09`X-z8aqrI&zhLpUl#*%<ZGmc0
zx+<&VqqLo85IPA&0 at Kgds`yHl!z9wmCJ3Gm;TVaq3O{Z6z6aMi!}H;{8k*be>TQh!
zq5}1&YAl6d;}JaIiwDNidUZ7>46#9;G!f&55rj{Bi`PNrgV4i7S4Pabo>iVgAx3`F
z;llQActe at I_@$xr#uEyeu8#kw5-dU9{7y+4Ml*MbLbrw at KBbC*fM;h<nhEG5<K(?j
zfJzn?yB%^1 at T*DvfjtUB%4aRjGWMC{MtMhWYGgTnJ*UG6kdaDz-hX~%R)O<%gasxd
zcl|fmSEyJMM?24brJ1j7XDUZG(n^yZF3?1Sd^*7EM~Dn*+g+?-_6KG9skm$~^Wu&g
zr^#VDbhdFGtW7w+e!=em<$d>v=$wVR4k-p(66)W2{w0cC9Ofz8Xb3#3szy9aa>z^v
z^1 at 0ETNIqYu*J3HdWEvLA_hkKmmGHoShdP<{&&&1G+ at LHS2%v at 5R2M1Uk!S&o;0O~
zLvrB4T6aF1EmzheuAN5}%&=C#7*2eZS>(E at 11>F$$-jhM&{5#wL)1{7V@^t4<|z#D
z&?26}gX$c5%x&t^m!&BI>ylx1OfwE)jo-hYbG2{|sY6YStT_Q;YeV|+)a;|0kv3DS
zs|sc{fv0zn5pHko<h at 7p0OH*G!kv0vF<(6pS5(7(eSne`sSsjko#1MYOc7-Khqn8*
z;p_tkC~|@h>$PFVe3Y`7oi?JLgEiUSWwY2!s6qg<t_4sjhIszNnS4?5miaLCKxq^E
zma<c=-~T$^`+u0`D)StcomP!zCp#ay86Qbh8`8+bxCb22;xx at cTs=RMD(#o=5?fpn
zralsba)Xbu_vYCZAq~a~c~&CXu~vKHUa4VdebG@?x^ieELvnK#Er9Psq<1`d_}yn`
zbZ&wQUKb~0xpd9$w;(ot!NSSX?>u%Nx6b$>S?B$D;Ph5XPLKkVfpgh{l!y4C6~nk+
zGa~0pt9CR+61S1^hc0oZT0Tbfskf#|z%rk2M+JsX!b2(8w>iQLRPo;V?fAs3p!$m`
z`YpCMbH`JgW{baT$2wiG!o*G)v$k#^VH>F}c}?w(h`1#W`2T;-lbjn$$2(_bF-LO=
zzN{5^mV;*e$-r`@xl6HXK-GU6qztQ at keHkl23p6nK*cByma9#t2;!yZ4)t at v2ETtD
zL|`#Hc2`nTtGrq-7M*0{sxRjszXp5k9H}#qAjNLX$yAk?sm9|b&!S^5xU5$+QMZ(?
zF3DP(1geLDs1g>@tST}Qs^^RqDsBmGa!rg6wSm+mHTMMK`)e{9>m$r3=j2dX0bh|6
zMP$Owb~4_Pg0QECWa)t<=VtTRry6KJJ_(uGk?%DSNzlMV$w|F*6%tsv-OX(XJTkTQ
zoFv?o|C0l9dDZs at kIFt)H4*4Bj)yy*DJ2I`FlhJJ%>RE~pU#J{mQ-g?jtuR3jY_hn
zm1#tlOBVO#=di7}VP6xRax`_z2t<F~SYpp*#>Oer?u27?|0&&D!(Wcl6cG}4(Kn%~
zdKA4S<p}N5xK(uKQxPi}tuHXR5na1450X(zu|UY at 0A^1Tj*-2fV!^t;8)<-}c_^UH
zfU^~gu#l4H_5wLW+!L(LEK<?4c9>NvuYr0V9|a&G-SzIa(ar4r(_2|bHtar9sbkiS
zW`tsdTkjx4`N`0|Z-h&*sh=Rs+ at g`_1V+nf7^q~9;fLNnGmt`#Gq#CV*YMis*d;6S
z$HWC)V4*z}u{marYvuE&>*2(@xnM$a#X5UV*Lra_VGUwaJw>*so|u1qAX_c_?=`z;
z2?Q#bZq!!InMSuG-7M|iC3Zb%<*ay**^n&+nb;1UN6=n#>JoX{66)bFxT;0pp{XhQ
zGU{S_A&jp(P}vhufl<H(7hje9{3CY&{sKS)PPVVzJ3)f-bA3KiNh+SMHYVwVyO3FS
z;x;uiv+JbFM0v+a3qHQ`WkpKl+D`yy(#IKNPqIuFzv+6S%E@^Gx&F*<Y<lfJof-tS
zaA<x)kiY8+=d_{iMbd5<m~_b6pJgT#nm!`j+CmOM3nJrevbfhY%p5I5*XsZ$6|dT4
z6o!~Ota4e;JC<ym8(aduPSLS@!a|?g0&o)gAwgQ_{-CSmzW(h!A~zz0JwAMe-dbG|
zhYV%foHXbwgr&<yLUp<-Aned+52jks5yacs(gqx?rF5<0+T;eIx|ht%!EX77ou?y+
zOa#A!jD5U*?>JOK%l!nk{$$-OS_CqY_YYWQEvU7a^QJj`4Ei2Fh7E|?yHBkTpDg)Q
z<1w3?*-$hPpsOQ`aLauRBdlkb!rTzW-1oUa^!0d`H3z<7%L|GgeVhj6P>*mblFPpj
z;q4o3qY+$fWT at c1mIrCP`5ppZjajEyAl(*UsFZ_Ad+XQxjXjnH^3ImAI;VCq+2dzb
zU)v=kr^Z4GaqNv!agNI%pM4cOM}1m5E{10ZWk9~umw2-RhVJT;x$yX>dbO>7N>ml|
zqn}kFaMx;Q{D?surJ>oRq at F8&N1Zmiy~DiQEf*{oc>UIz`dWEq?+cFz#V^;!+guim
ztpor(3k4Y<E1eiPzA+sgXH@)YDBU&q<I&6IaR`r8xk0)mS+Lh+#NVsM^Gm|!Y6Q0i
zB$LX~<l6xz9pcI{0sDQgvM;8_<`Nyy5MHWs1`|dY1R=q-5BnA#b$;gq9<K{5*QEJ-
zKh>IV*G86|cH`Xt_b9Tj1!b9;aiul;<y*Ps7Axd0pAIOrv3XuqOt!EhH%X;GYKBFI
zso^=H4hdQ<oW=qN9?$~?(<ef$+wx^g9v$(-n16QSa#`1);^>2^4r+vWwm18A!PU*l
zO$J`v7!~oi3Z{^*2&Uop56KB#^gn6k@=>`8-W`I8Udm$|(cv~J^S=OU*Ik|*1oM9M
z at rAC67)H|v^-P<xa4_z0{^0Hnz*ZQ7idx}~e)%SkY7Z-EE&`^Eor<SFCfY;|HrOD&
zbU3e#N5+oxd%M6uhCd_>*vT>B16gb^`%Ib1<}mToj(^!8No|ZUgyM}5 at L&@PqS&wb
zq$v*FNqv?K)_zjzPeMJ}oR9~rLp!acDLBOW`8ZL*NZa|Q94cZq9U*{U(L+--1p=07
zL*`#i$o8 at DacHv_Ee#cEHA4ds%Pk5 at e(?scUPW at k6>q{c>rFgOjqyFl+4KZYX)B}{
zdm=i2USm`Ib;|KWc)oGR{4n5!t0jPn+x~*AVGyyF+r`?)c4bdSZGlBRDERD{z&?h!
zBUp-J+w<^l;0=|&B^PjN#RRM($!I?e*2f`bI{o7zOSz9U7;(G2cVFD}3$~+3=R?aa
zAnGNW&=3)iXIhsW{nVr6 at z10!oIQ(bqw at Mq@$s=b&HKCK7`|FYo?WT%i(7lC04YG$
zzf}mDNJ#@V_LbMRAdpgiPZ2}&rv}vkRIjfcs$B at M?)9>ih7J$NClvEF4Xzw*qwDw7
zEU at QxEhUR5Pn%eb$-A|`M;W$VVmFS(0LXHhS@;dx6ptfL<4iiG3xsvV8u32 at XwMa6
zf<s>)zZ;jUW$gv1OYU<f${SUE5-*J9%<C;8>kp;#_rRR1o~Zz|0Np|%?aB+)RTLEV
z^pkm)owvRmQ1la&t|sFTQ~_16=Je}}lg(ZlVB7e at +CZ0rb?n~3&1~HI-c at KcWnV-N
zB>SjUb%2{VtP~vSYLYL(1C2{ZSL4-<S<E&dlidfa>&pdG!4W#ffyTiAtieh{GGs$L
zM;`fsB}K&zLf~LG at 3k{XLX~k_>*(d{WMwtVEm;hP#iDu+YMXf)*hNuhHuv~gv&ugX
zQbB`Q^{&R>{7WnF(LKc)R+xWh4l&tGY>IeXXZp+-y~X-*6l(?8{{PJg)gjxGCSs^%
zV#a+WP9<7?EOGY}#@}{AFi0pbH7QbSEpJh0mdALw3Mp~Z6pV45Gq<{_XdYJn6J?{_
z$kHr+PQiC~A&l0{adAN3<A|86KXP_y(=_M3Qu5|^?=>ncOEg~M)}-UqsU@(c3~XzT
zqGrSx1G+_Qg$0e_e59E!$BUQ at JDN_i*bdqE>}C!+1e@$%ob&KCAyCt&QK4{71risP
zb{i{HVv<h7d69DWMqs_bj{6Yk@~A^Nlu)TCXyh&J?Eh2cGnq?u*mis6-G?L_9}uX<
zHEqhar<hdIOob^?Yj946%wrodx at faG3HXiFjtVwIZ^;0yi71M!OK|rvM4M#AL}!l8
zd(YzRW1>UBLkNzGWqbrD8-NisGEf2=rkdKsIa}1nE<|u^G+jeSwUB+chf<~gD_6{-
zcR11lIr5X7f8V7~(%P9mXm`6u;)tjXu}wc#Gz1jGwM#O1$KuD^u!Y!2tO7lz4d{HL
zNVqL49#aSxCs|7S&Plxi^Qwwx_PEsXJ<m$#{@WV@(%oplsG4NR$M9?wD&Y~i0qGY1
zX0%0vz1)#;4DY5U)vh+OcL))`C8f1w^7SIr-TVr1zXUL~i8fGzKXaOpb>t3HDlDOF
z&wUSXrUv2&A#&uL21(1zYZuQ68q>^qe6wjy_;$T<u*_In;?V26vZQ$sNIdY7dRW#a
ze4CetbetXtyJ5uzZM2+3RP%mJ=?rn;yot?4=RZxuQnR+dYYy|W3%-#lt*j##GQ<}o
z3D03i!35jLxD2|D>lX8FI*V8lZTsb7;%_QSC&^4#o?cW)ZL~iUui)w}y-zk%Jm)eo
zO(7J|Jxlckd at U+C><wkQvfu(0;Wo35{nm<t5wds8Z3S_RsDX%=1pRWc)KXC>;4_gf
zPG<3F(AHEk(VKQ&1iCX?x7~=7wyR4_eI6O$%y)TAVg|24mcN?)mT6ZqTOgD*^&4n)
zg>FE)&1{|-)2P=0{VtZv4!kW+n)%(%x#kL_JmYj`)-0uM;;)`^f;vP9H1)VrpYIoT
zGA8*>9S_^J`5N86+1fE*5ft_zgEjB1B~((pwP(8-UkTPZfSmi$6g0+r$4znUpjbSF
zGQ2yXQej8NEAwbMAA9eUw|?J5nXb=sPa{KrRys3<#fbQrC0i-F#3D{|C%E+#oF6e8
z3Z24cCJ*CwT;qcR|LQG(vKz)i+z&QpyF&@1qP;3hRaM4xK`(~IMi3IEkYcmowdB}`
zMI(}j?~Coi1 at 0R(+hD{E`&bqa<wtr!LWCyE44}*D8;UDwIi9-it5e8}s%7Ev8l9Hc
zW at 19nWYh4(R~KCY=AHDOMxjK;pc7}&UX^C#^*3<{{JO!QEkJK`{cg`*|IgXnrA!%2
z#(wo^`}Zr=5Ezp;)dYc=Z&tdpS<F56D^{u4eis6_{s3#Iv%_w*ejD)hWtglx*`nsL
z)8yKO{ujj}nfh+>3UibOhR3(miTQrl6H$eI20F;*n;~QH=kL8+fp>hZEGJ2EufgwZ
z#R!%fi_ylP;;`uud5E!ql7A_eK*FlELoex=T91YFhXWUQ1eJwv%Erc)GM&%xN|PNr
z#$5i-10cT>e>40&yc#Wr<%-Q4l)AheP at p*JPc<}P at pzlm7-v^DhEoHob*JG3yVD6)
zigA>QuFj~pvh^}Q(EJ-hqauBPnj1d)90Io7infY)cBKV-WFfs7Jw>u>_hl?Ksa>EP
z=uI2EmllL1WQaqGumXkG9NN at k;x#tgxeOol2f>2M!@<p%+V8VYhm|YBcg`dG$`H_d
zM6LW1#A`pLlN+<~j9OYRo&jQy2}=Cf+;?>l``-$wU<pDR9d at uLB}brI-oL?H$U}qV
zg-jxprOw$Vy;6!fkvOHPzu%XT=jQ#C)$N%WIM~&!E+dM?G$-9}T>6P=A}k&K9|oh)
z{v;X7+@$LTcQ{JmL;8|Krs{BdThe~Ri at h~_J`*L7Hc+<UF&b)P-v>`o$PnyN;QFi%
z<2T5FXp>&e%1OoiHdksMMNm{=n<u&Il^dk-6nkyzqx$3-1*r_1`wjd6zsh7q)%nDO
zCVR>F)UE=_O5t2-{81gHsRFs at z}$Jpm#hv!T at 6ighE|Pj=qrulz-=#m2<AYM at ASER
zypu%C=1nbTy6 at n%lbXqjmnYlc{jPj3-JPzFsxNV^;A8~ubgY6E7}26wiq5{8uKU2;
z%emWF)(`<Y#)*M at qknz_!MOt#dYAcPkn&FEz0Im8!o^ksWG}XOJ+RJUfyh#L<PJjd
zWY46Hr5m4C>6Cm^Ji9GNU`+1jwF{%~;iy{i6PpJcz55LMAm%u~=pv>?B#L76)R}pS
z3jysy8-{~Yrk at ZjFwC3Z^45MDmgmXpVpI at lc*fEf?wHe%AXcjf5d7|kd{i#udOocf
zy8j)OI<@Ez=k`~$El7;cg8<}5*H)rWO+I{cFJ$?03g9D090Qcfgo$eNS@%UGzM?-R
zGwZzwFAvtN?K9#{A)~OqYQ;(Fq9EK9k(az(69j7aaFLw>?6K>os=elV*&YMkcg)!Q
zt`i!ZA5!vLCJB7iyW%9hl!iOc5RwRL4s4l=Sh=I29I4CXk`c)9*e6sz0 at rjcI(OEA
zs9n7~m^aCJSppV9g2O+Zr~KRG)q!IEw;&=;8vN<-DKT?-x6eCx24xHWAGzGi7}>Um
zP<Dxo(rI7N%uka2Kj at MM{AUQVJ5kN26V<4-f4)B5K~hNsxOvW=u-r8rGNvsP3 at Fm+
zW`a~C#loBFJ+bY275~Qv>${n6I$P_t8SR at A+l#w~$O>?VDVkKsSA#UbX;Z53RdN1g
zF#%TmGQPmmE}KYZXy3J8i^Yw-4eb&pR<v7DB#Tt5;NGA0U=1B)A8{kvIZ7BTrp)3j
zE|_3A4&5E|`dt$gBj)Yu- at HCsvvwt$Sqo&@0|SDgGa;hw6YXg$D%bXMUtgm9GdTh@
z!GhVLl123R0cnu3Hai#h4zPs-3_%tRkb1}TX!u{}St(|olO*)55m4Q at xAJdyFL*#E
zkqp~+da%?=4ucYn5N*yT&eka3oAfSXv7>GHa*nq#rXJxm_ at oW^OLZ#65fVzHRG>Ib
zoUFmrp`>Yz*_cuF*IBZwXdOoicUX?s4UcGVyfFK~`aCWhn}y7XOBnk~YR{nHSsRWe
zt9 at P59vVMwdjydi3raiT!BEM5Ys;#58~6MH2{nfu=9jWvK#F{G0MA7IeOk1tWpoMF
z1KqANOV-?K94duJ`%1;|6vy0#Q4YVuwJc*wWsx5S;=8t>kGgAQ%{a{aZm7`Z-bm!o
z at WMnRoMfM(cdpsYY7XmW!j=@|QTWt}1UKA0ep})P)a2WnINe!1p4G{I(p&IjuRLk)
z)L=VTohfTsYu?DM1lz=kf2!pNyFD@*!9JYHBr6@{+Y|Reh#+!|eY)3eBC8>EH&^sM
z>&DLA;GhcN7&X+jp%{wRB9Ugf+%UaEW&f0wc*)u9R_|t-i)}UMdF&zzSFF^Ne;-r*
zeDG=VaVF5VDAaZ_O~RF#GrnR(XqX#rOMmoynO8B$uVJvg&|?j4jy9i at M7cATMSs@4
zW0)Ou%Pk3&N-5scW%S{Ky`zTPt^9dknd-PCnvb-bKTWwz#jS^8OWRJR8Nz|jgA(Yi
z5A?S+huAii at a^eu#-4LkCu+La- at 9%r^pR#1P2Sc>j+N<G at 7uR(akIm^ShXLNe%O`R
zUeL^Mn<q1&avlW6gM`C}J%9uDBFxQ at ZHQB^--hBZ1ne<J`tznFG3&&r!4$*A;+qCz
zcCT*j_qgCr)@6m}1!8 at Tsc1{go6kuASk!L_VY;P?8RDpBsG{nr<1ij5=n7X=VD(9y
zYWw+KfP24PW+xJpUSd6>?f^sJPq34}zzf6?^LtcLbyj#BNRNUwiU=zrl3CA25mYc4
z;4B9&atMw<+nvsP&j#K0=ZGFJ3Z*Ds%^UJz7MEV^VU>2z9z?=47In9KSl_-g%{ZSG
zeqY_k^gar^XiIJy=@CRzAO#Ce-uCHlq;K&dP^>m+C68#BTCZWl<{~i|_;?!eIqWY`
zJkbs;jZ2<X93(J{=j1NQe9RqfE{^{R1Up~}nEYVY+CuD*n#LHth7pegVXe1Y#?@V*
zA|>%E=zCmn at m29Pa($UT_pLpC_F;ZgRwd(r;N4Q_H&!Sh1Px at WH@S at _hLzEV5Lr(K
zT at hbVG=ow&Md;}6&lb>op!iF3H)@R{tOe#W*n@;P{G}-We8E8r$?g+_5L|kyTd;b_
z9i0|gCez(vo2slm^Wbb_Zi|7Hx+cSXhCM{QP8RM315#lboIswr at S~b(n`=!Ml8xcg
z?r-xN_z*(1i+KN=Up%E7enEI6o>e`%$pX3RX>wHa#q at F5A1Y#S0sr~m#FDE1`4h&W
zQP*us)?@(2D~{c*4Pz9B6cYhI=$SkF!pc<N4o9&@-tvVwXg>m%VXX at sjUS3sb9rYY
zvt!Ekb}*zfumIZt=K%_GE0S+wpV at a41LD_|Y|Dry_%mw4zQ5lpBDkNieO$MWcPXS?
zFSNijJCk1!s1vufMGsOunN-lWycy_4{7z$*uQ>5W7Jy}B+}i?mWes2aalZI_p)|>>
zi)M0z*cdm7);dD?Fs<!;b+jgCU0g3iP*LZ=6Y6%13H?@Q*$^pFuy<rt3--I`w)X(5
zR)0ArU!U68>u^aYqOiQ5epmiEKj at oILW2sOmwRmznmv#7LullNT9#12)<J!uZ%KHz
z(Dq(62);v0X}F>CH`;pAGg_rmNtAV8iJuCjcrJ~GFjUeHyhUm%SYl1E8M}&<A`O(z
zOaLViKue?GttCz;0ER&Y^<-uUn#*E&J5FRec828y$0VJp3J(P>h1k{KxxFaed(Dw*
zLbihwBsh_3*|=zq-HoEaqhX$#^Nlx(tm2}%8r7Rs|H&+q<)4PUul#_hD1chW(N8BF
zw3ee6B1yE`m at 4fwZ?^Q{aNx_H at SIN~n1x#0LRQCo1ErBY+v4udTg^G^b)bu=WOrk^
zujw(?EGSX(ERl{@Xhk%;(7J<M$l%?i{UB3jQxq>~t7}MmI3cf6-%%mbR>`h}HVRVl
zcvVSG(Na9Yb3aPon1aFJgL0~D9PyV24XWm8-iDKFuG&(!C-<k2!8C+4Sm-~3f17`7
z?_LbcaP_<h+6FMa>U&9C#}OQ25ke->Bi<YwNF%NXMH}N4jw%!xe?Nb~;KiIS|CS8m
zN2wSDQ^fux^-W{7r41vLxyChnN at I8kUSGsNy*l6EVPK*R!yZ5vbkd9j4mBlw at eDUP
ztFyU;#zj3ADG!YVPdz&?IyQaAI%w|RkjLCN!_e%1O at 7Z>pFY?CCGc)9oj{D6=;^aS
zDdQjdQ7<FZos>2)%BE8u_6?qL_`!Im%k%eGZp(ij?evhh6VM-V+iP+ZfFW(y6GlKg
z^v&}h=CN+rxml~X6NuVB30weTL`;s!>N%rA>1l)!|M>1Qwq at ybIF$yRr4mo<%6YIO
zF6?qUAVzi^5XQL-X8LbBK3*~i at 1FWWB_-85i3tf!?hUZH!uJS!ASCiO@=VK?2lx;8
z6k%3 at vTrAnBGyRf($H+dTP%xpgb5;9A&5!-0?^6fuU!-Kn4kbW=xsHoxP9oor;7mj
zo%7^8ztDpYKG>#)UR%NL-n-t}R~%9*{tWcI?$<0Z8W at -AL~k*g!**u~9P`wx(UaX)
zZ`wSPdl1CO8OlWYj`?;6LNIz*mF5Ggg+*m8UxZ&1D_cVhFfKK*+3s%AU8R%3Io#H9
z`NYNX%(_LofHMTubD#s-ZRKXYFgK*vinDjdbM_X1FA<eru?&lBn~X%RzyrR^R>Vj_
zAvRM;jA)!Eo_~|+o68_>={ye{&`)%td5u|5CN9c_uoraQ7U^n at WgZ8fpMB*&J8>VB
zEv`ep=b#9=NBFKDzZN*@2lR_%N=;ym at gSc&=fls(yaDyip*%dqW&^P5n2%>5zthm>
z#0 at fqw|bwz*e$Al1-g{5RJz>C8HJ>lY_GE1wq9mP+pqKLlmDkm;zTGWQErV#d5SvN
zL8S`F%E~ni>Sj0HDLn_|l&`eZZsdxTGwu?TU4=nYH`R@=ht78pfc<-T0~TEKT{q8x
zix{-B(U1ooz$bd#ebDuJItOTU<VqL(FN(0>4dx%Abrrz}JOgwQdbpn}ZO>)LVLW<+
zQ;pHYy$|P4D%g=y2nkX94Xvyqp?>D(0%rROpRzNCb^WK!F{i=Qog|M;N8|0g<1<bS
zf{&2OArE4#<*y>u4JF2^hJe8hdPD at 0DX)qxZPyJcN|t{uY#0U?3=Y2_LN1lDfZZh^
z&*?jCH+hdte>x69wAYxujPS(P-#g$`@T<7{azVVnb{d%49hX*7YzW69^57OHUp2Va
zAo9yJtDa8{d(3W1)l5J>A@|2M!8d{#k2XaOGbti3nmM*y3ssqre^))pWTY}gs7yE^
zX78f_inUe77;i%~zlam}-gz=;`>H;j`6`8r70hl_PGiCWwf at kmUUUM`c+fe~4dmR$
z&Ob|(V=jIvXOCLirGRhnX8y+fNFj*`zHHn6oJnwdUb!xjfN!0EZ18*9O;T674jSx&
zqld_Aj+CKL-RiOYq?Rj%Rnkzd3c~e$tocZ??l?}ewE>vRjpC0qaUU+<_>pFB9&xyc
zR|-6+)lrHrF59rtS1Pc>UgzHTpn!w($gO%n`D-p%PP~2W*%K{xc#lXrme?66dYcOh
zHjHo*Lb5B~>KQg|_a|kQ(b>EfG{hW<Wdg63LgGR;%+XfGrXfH_zhFLiBeaX_sx0MU
znrj=ef_Uh7E>9a`td~Ez{Ab0*!RAz3gyd!XvZRda7SO|w;*QFo^vLK=Fb=Fhnvjpa
zkF5GnwIgq-EDLc at fPwx$2|^78uxa`R(GOsWf3Iir_xe7iJYS5*2rd%8s9Va_IBS*o
zg_5*SqiZUipCr1)*z&_+;yocC3deFjlJ&%ut}5sz+<W|0F at G$q2AR<faXQ}2u5ib!
zZ)oygvUwhoQ{l>sr!pabMdZ$2%y;GB#$MV#Gt|RvRsigAIYf<#+I&f-io*J%<)wb)
zLyva&s@?>*R`C6WnGPkQ-y-xP>zdZmDYw&KiAW at vjFmJW9j@Ad6uN0M>NO>BKWqe-
z*U at msNH-C8mKIy?#zY2>;nksZf}<kaM5P7zdY^cNrxZ4c1eI3#{+ZGm&0G9s4N^c~
z=erXe=SJui3jL3jzw36)&xL at Cf>-tRPw{rH7Ur5!^);P-spCCh(z6nH^?l{<CyRh8
zga8OIbNLWG$VwH;x%nv7%T_LR at uBVG{h^mKA%;YxyC>VY(%ZU|b&|*-b(hi<5o#_*
zY=ogv;p+OShl0YH7r1pLP693E)UDkYLyKS<kM#4a_}|Xy0Dt~LTWGtDaK$Or?XmQl
z34{;e6aG+O!<U|r>wJT4C6DaOmU9u(;o_nYG1vT823>P=a-wi>l0p%{KEKyG_{kE1
zP8;IOCZvQyTR=ukTbMu_hHw|ge5H8pY?#Zw^7uo7U2w|jGB(`s`-tWuy1pYjcjXBO
z7P#CTAN7BB+>zJ9=b?BblAns*05)C$nTZJ1+19h&KXC2Q^g(%{88q#!uJm2ui|(oD
zB%y at tDhd3tFa6e~F*;9Jj;@Lf2sl$JuMZMvH at Tbd3_ouc&rNac%JB#%%HemyehT$$
z1yGwx#hG=X|B1NHw%CLJdAsRw$>k6*)kXVG9-Nj7Az6Lb`UmHvQY#9eu(QzAZA#QM
zYK)Rmo0E5hWi#OhBGP~!s-}(XFt$S~0c8H!@SJq-l$fgbM92q>#u=xKBqrF1ix`N;
z70>y#H3W5ff_kc7V4*67j$_tr3l2bp?(8AIhCA#yl!VAf-XuyC6#Vm29=f|WBq-dF
zIi$`s-(%qqxd`}<$G*9n;_5P6L&Ktms5Q(sprpa~t4jk;|B|NQvXGAO(NvH#!!<Pf
zFuV#N)9XyxqILJoch;n;a#J~4MhfvWAS at mlEMMz+n5=uSp+yn?i|<!NCfgetwaYvi
zbhgi0UaV%|{SyB%V@>SDa))w2aG#os{phq}EMc?j?_XcQRc%RaQg?l^kwi&Qvk!zm
zs_jGIr9Gn0hH1XdX5rCgq`wkM9u)oe%$AByr1(;A7~N65R(iUSIv;Up!O+t=Jw=t1
zGyI%rjTi!!Z6SQ+3VCyu?3mBHD~MP10SKaL4nWwWL?99hGHug{u=-K+VI at Pc=)`MK
zg?;RsSOL7ufGLAnnS?~I5Q*lh$&5$&-SW=yb0iBcFP!7l_m_eJeHBoYRN&iDMl(_F
zoKh(PF+S5iUnd`<1lEdPdhTggpS|d>*sn=o2#L=2qs>Fh#t!iyXSEl=8GP7;hLasQ
zI}Z7m#&cXzHIv&qj^0e5^2z44$EldyN1|k%#~`>)BO(EhaXm$D(KVs7EIRQr4w+k`
zqQAt+>|bb*=OPZ*^G(q7>t at zW{0(kBdGtxQjb(Ewgb}+4tAMZLMOY?cd;8)b^*p}l
zBVkz2|J9*1^9Y%F1<}X{Cr!uI8Q=fX;JNkRN8;4$;Da82YB`eSOc)0Cy$o~UG!9rt
zPjo9PMu4nwNz7<$FN)i8^hwF~H)$*QpG6D}4Y#u|o_{=j!;LuJaf)e{jRrCIiMP9y
z^tkUhm>)7JrT4-3zYbfmtE8d*5OQ-=i?4Z6)j{bM8C1Tu7_+TXcFOA%&pD+Opx~fW
zK$q+qMVI2TdFErzsB14#4D<zIq>O+u-%<~Y(E)R&)s{10zM+-1{zRzi8|+#3kJ0ts
zsSwvPUMez#49nPe`?$Q%Ne^(FwgG4eun7N_Nr%wyN4_We7KV)}pj{|k0F&iu(kt2(
zf1vx{UYuqfVZNaT>3YqG^uD;{lj2&m!Wfq#bUv77Gd`?F?R5QcqZ=8eh;*sQoeYv<
zs6yhltU8W at lw<PwxL at TY<Nak>KX(|kHaWSjZT%ebf{uDT;MpQd<MKVWwn*fIT7{tF
zKJ5#&%B<sjsd9<y5IFME)9_B0Ai9gnWk(rkT7nsI=!FGVsRw+uB>ED~iZk+-ri?OH
zUy6!Y72I}*DZFCiF5u5>DF}0WTa4m;6H$3|n$k<oC#VuAx_Gcju at 2-Xv#?Cv>Gs<m
zM22}GpTq{%Ijo=2K(q^18yC+R2`LnmIB3uTb+wbd3&a1wDkWigKc$0di}yGtFB1!P
zb1FyX!Td(T;=O_|acE2eOZ5;(FM_K<)V{EydcNs}q2%E at m7C)?DphRar`SKMX`%<M
zqn|DS*|#X5RrTwh`|HmT<+38$eNK>Z+)aNQ#^sAS4ZSU9`LbPq9BOs_&e+pK%UQDy
z`}`GEBouDIuz^iSp*xLl9#uGPq`9n8!4~Lm4f{&L9BqN!Zc-Hl64&fuD@$S0<SWc%
zgQu$WKzU({4=Q=@bRz62U>vR7vw^$wpOJYFz0q~aK)x}7qrK_CH{SX7h6lY at pf$Gu
zTrlR8vvfT8D22i=GFr-Y<OJh&CXuID4+5dM-8=WOCULII#ueFx_7?-tCB1b at debUo
zp%^15ATFqkOQAI1g$1rh`q1q9=R3p|54uJ%jjmATrXdvnvH?rBT_sodT3_Su)3&`t
z{vEPSN=r7ykj7k{{j1IZg at dX$$T^}Thd)1ietV$ngbuL0=}eDz7?)<_f0Ze*mc&`%
zo-QtEqn27J%29i7Cp1tDO+f#1KT=oJqH at u}1cNB=w8%&RrZkEI2w40_B%y~%jfLvF
zfR&LuA at o8AU|B+z!Q9wWO|mD7tFt7p(JNLT{4-qZhh!C2v$`&S7Xf}XkSUcxKeUFS
zYWGc`0DfsKC=Z_@$bMz;)`3Lr?I4B)_6-IIikHMDkLC|MoKpDM)zz1jFVC%ENr_rN
zAJusGjlu<$0!mqtZ at 8i?VR~k-yJCZZU7q$d0~u~sF}T^%AVy+suR{x5LNJS&)x+W#
z?D^+d394?b%bfgk6RO{}4~HLaR|anTIB at yL#M$f-vVop5zl*0n-P6ZnaX27l$(&gA
z;7?kL#b)`SEqhubO_E6{wWq>#u<Byd*j^R>RPm$H78pl#i{mxRcS=*;fO75(I#v)F
z-n;3;0=zChFUajQ_I-O?oNGs7;mVsLf`5G(6HFsTmo(f5A^#E0MPdc^vMW%;yS8iV
zic1w~gc<-<%&20216OE>Mm1~Xd%Kz!A`DAvVfVSxN$$PvhyA3X#QCAvshy0Z1+I{K
zh!fZLe#dAl_G_2g`}CjF>2QuyT*X`>e210ojr^T>f5wBX-&w%=KnjWod*BxiJO<;9
z@|d6BF^H*tX>&}6f>NC at 1z55RKeLf)`jd+9FvLp|^ZKruW@)|IworHI2c)Vz)uGDd
z--gN1ZWUDc|9W|r`?Dc|b~=yux`!DNU9i(kkf*<*R$D2MbenacBD^g!5lc;ICC at 1>
z&h9LJT$tz$+_c5hfSbOc`65qP!rz8o_6LAS at QDC>tmduQc}^;51TV**Z8{)T000}n
zN=$8C00~w8x<S!UDkMo*wA;}bsHx5M5^Dxaa+cxt(QlS|$JxAZyswk)pmKjmCI8M<
zqoO47>G2Wb=X|v|wV_!a<(}=2 at 58`%6icKu`V)!-dbWi~n#li%{y|Y$zfnBabi{2j
zaRDg;z^cO;-(xxDkb!W1LtD$pd%UfpoIEE787o%VOVdYV^vBhPZOwUnr5AOx5uCKN
zeCr$*D}l_PqxN$mhM(lQht3R2Ft%$G!kvrAboGvjW%zq66~aJh9DwlmmZMksYf}WD
zf4T at aJb?gFxwhKf?Uh>BrkV`wY6gv@#tMwT700lLjICKuWcm}LMB8|!sng?mhEnN1
zSAImx<0a5&((EL2be at l(j`}U7+h)9bd)QnG3pfuM?Q6P%o1K5T+v!)1ZI*Fcp{Cqe
z_SocJ9 at G>6xkxvdV}@SW##pd5n}G}j;8{>J2dy#ovDR?&;0~S-sNE8wP!>;t at b9JF
zwcE0b#H!UGUuU({hl_uwbGkrQ=>?X3mDYJ;BgZV&>?Uv@!{ipjCIC-%Gm!|p|8msy
zk{QMvW1vjl{e5fy{3G;{=BEyn9fnqHkjY#b1soRqVJD!L_FoV3-~Ix?T3dm6M>Cr~
z7J+yPK;pn-nmM>Dl?fo*k9M9;(UZ>-Dk+iWx5xtKbyqlR;j9DyIqbqWB3ROPajYLw
zW+aRjYCm0pXi#<WprLNV0y9ggbqe3kcfc`EKhHo?QHCO~2NM4B^>$>O{dCFLYzkgx
z4m1|QzwjgIR(F*P4Z(bnlrUEWU#m<{sr*mB83o`c{xz%>%?$f!kt(v39_qISY)iIa
zF&`wC#_elu(vu5NPZUd4yXcjNa}>+Oofd}bo&8+FZ&mGqbaCZqTf;5*1dq$O35Gaj
zsVCa{2b;9-+W>WDMgZf0l_HctKj)cOAp#rz<cr(k&8!)?RI`afsb-F)Xsh&+iG3J$
zE6zdSwN1 at Po*CVH*OrbOv5l2U%L6dR7GB4#D?zv;OG5-2eYb|lAzrh4-iq%|S?TT;
z(6uqUiyR`V+76{cLjB8&`C%}6ruB$?P69PsRxKIP<O&?9bfxC_d_^}Kl*%d3?|7H5
z;a+}gF-B*4 at mih_Y`A=8*t-T(Ug)(9gN`e>dcTnGC9iI<D{Q$e53|TXQEHX^F`MCB
zQ^Y}5rk1hRQbd%0ZCiy8N@{=mTBnzGuPuVt!&qLJPVHK7&XyL0*S&FxjFz&@Pu6D}
zBP{@9F!xYm5(tl6GrMqH-*qlP$tf{A|A&K1-00uR=l1h^hHZ&Hm1V>#lbQ}!Me`^{
zOD+dOt%=;*zycC8D`3MFw;f;r6B9Yw7{I*G@`-zy7N$vEd^}$eu;v9YL{=&YOeLBX
z%nuzSShKNBe2C<FrMe(2IcaC4VU_l`Y?eb~B*53~1RV_qQ=WaKY5klTb3 at NC21IN4
z`~ly|ZjNeEoWPd8#p|Uk6XZ5M50W>lY?d0^IOXUgWg;_##HPeb-9sqA4U^PZbKGRb
zR3S4WoovE)jWK13W1CQOGiRbwrSEsjlIYXu4h(0AqGNZ}=>FWda_9CcgPRs30p0cX
zfL6OU0_zYu0-^m463b+q#fh_r+IEWlH7|3TUKy}X3<L*3!Z)vEo#3^(mZO?e9vfFD
zm at i8)%XFE<-fs+M`;-dqy@~?_2)zzurRuAk;zr8}bp$7w;Yv*&Z3W#?j`5zvRF_hK
zhF^;scVQfL&IJi(VBOi-F63C5_ at fLF-QWrrRQWBoRgc9s68yEq_AFd04p*>ehrFkJ
zPBTT_v<wrb9WL-OY0*WvSCSEmAtu|>?zR4BCeC<v47p8&JMr?BP-n7^{-{Ux*z%4I
zjr_o+Ru;=#h<3(iZRUw4b1p{!;T(U{AR4|65Lx1fQ+L)>#wuTbFM+hM41N)CwOz&O
z*TQgFMiN$_6ba8Nmzybf*<I+hHL7+wl+Ra^6GaLz6HNfnNNCb`Y2rgeUb^aTN_-yY
zBrlEvz2$Qz*CKN<pQ<_&6UL_EsDk at T8?$~uu6Tp<M8ka&K3r$x<uX*|f17cQPb)pp
z;?JU1V487tHHR`fbY4>Fe4l4xvyv82kGDn_Gc+Q2#Wv0@)Cd6xL|Fj3i2Pr`M#OPC
zJaMJ}N`ju46GD4RCUYLUt45_+4{ys6`;kmd46k45{I`(Y<kaBWNJBB#h*wtJab)v|
zagLr&dAmX`=V~LYgttSs_E<!m_7qp}5b~+g2uFM`B0eWTXcsySW73iO=4vX6B3nZ}
zq<}Z04hPdB?Qthn*F-Kyy75lkDSBzI!A1%y2E!H{vN`ke?K9<Z^$AGgPi4p5a%E at M
z$u4|;eZxnY-yG+2V)W5JZaV$6ego3*9)+!R<0*)XB;}>psn_`bmc4~zeS_tm7<3p<
zmk$@+w^%@}2f}d&BnEO_*wDy%kg!h<pj*244?9$(wGDjgPCtPgXWO!1^E2mhnzRRO
zsjhyZBcgtZ9nnc-#RNL!7ot(m&)1`nMzh1=&!wp6wgg+a8G2~$nJ`2Qo at pgM97PnY
z)kb};Diwoc>6yC*EBB|m$522um5U$WAW=l&Dn_doaFDjf{HfYsuVz7<=)<hy18<UG
zO3LLHnngy*BJGH{&Y%sCC3ickJ8ODX$L>RPUxK*@QE+vH$zK9^OmF7~AR{2PL0?q1
zb<Fzi5pMy$?HU<KB=PwHZ#n2cS9NUQ9uaMe*g-~T>!QfSw=&{Kg_WtrQ)L_ at q*KgR
z3AIW$F{s1cRKK}Cj<Q)e?Ctj4{sOHAtC8Y at m9~XF;=IC>1ByJTne80}a0X=E^;#kn
zyh3 at 3>?FqBnsT!?r$}^k-UUKm_yPye8w#&A8E7Cgpt!Q(C)<?p_&ja4ST|-b9 at wcf
zp}jt+r5~3OZK16~c)uh%oS|l%c0vyF<5i=K$QuuFvf8-HrzPn$RHILIA%iw$y3|s{
z8IA#>VKTx<GuA14eeaQ=Cmj-`nWd%2Q?4wOw25VN*q=wU?;laD at tZ{x$sSc!LjJwX
zNjA+1Azf?`W#gWNJm|=u`GRJ(L?A~tK0Sy`c>i?;d*Tzmf%b^kYRqBH$?arP>pZH{
z!h#YGqQ-u8x)32DEg^R#7<p4zL$M7TE%IN#b4)C^#RdYWo#}aR)6-pxDDE_u?ZOSl
z)2aXcix%K<U!Hm4*5X%B$OG2pc*{3oP{Mc+2tC;alRlda_#8}1A0Jt>mSjOFbj!o>
z0A|O>3n<OeNp=J)4MFss at 7oM^1y at jl_OiRt>W07MZ+KsTLC5Ve#e4#+Knp8YfMXE$
z&iPJf1IKDy=Ncf2JtZo!YN`)G)*T`A-uYuG15x9pvfQ=Ugf&zG9{j`xHOvnFcY!(}
zBRej at q!+4m6Dd%hhHd81%CoKFc);3MrGbyorI#hzD!9<at`uYUd*PysCkPuE at 2^5y
z6;TocC|se*ABNJ9V|y;|RvauVr7xp%{)!gOFoMdKb4aTzecxe?Hf)D{&!8<)^glNX
zeUur#WA~v+A2y<}!beCs2s|}c$_1nx%A*NZ7}Wj;K-`niorc6m80-O=G>+-#|FRoS
zL$l4B|H<0C*mA at B@2uI6<95 at ydX=k~vQb1&S8mPdI2FXgz9T2I9<vH8ase}k$938@
zT_^2^*9B9P7v@=~RR at e2YYGx8wI2iIS~1?}tM6W0ExhMg5SnNY$b=*-N%hGe*<Kd7
zxk<49!9S+#e6R&7edyfIgPIlmJ9 at NF!#PN?a3+dsZ@)%|Yvsl!Zi}o<FYVgJTEF$#
zwS({vAPbAGy*jkg4;n64>vmA1Uq~^~Lnqg)trzUdjzZZl2}KUt(VXRyp4(ZpTHUQq
zFsMA!hN))eqP3OZFetO|X;oYb29(7IK72c6P-ty&r1xF7Ot at 4-B<6N?Woglcs#Tto
znV?yQrVKHoV)3*Dg%*B{e}y>0`y3vw3*H14)<C<cT0jseL*gTdimVVgUj*3Wb?6QD
z3 at lqj8nD|FBx$ZF1wjGr>d|+_L$6P&V at vfo%`pjuV{tS;W+RD_?Yb(d^|4DEoIgm*
zizSPkV+a_Io~mbAQBJ*4kximmU-P9x3%*b>*u8bO`?tpByHm{-d`?j3wNhT5y`8;n
zBIET0aARClJ60eSk0Ua-(5P|vt>{Y}@NnIsJsi-~G~}h}(j~Qjj=5sUrD()v%U>x<
z55(1WTJHZ^X?u_M(@}$gHz+8NZcf+zPG^=fXwPhiNNBFTxmnRwFL2+xvc+94?_{xN
z%us(fgC3=`M^A5cCzha}+JLV4PzKzExD_bN^Qc%Eo)J%qT95(_0~?RmCu3G^FhLK&
zaVTFUSXtjc`JO%@;yRE2(jgz8 at c(IJEL5%wJ0jfG+c)2aowR^`V$Hk$!0exkb24TN
zAkuPx^(81b{-iD><D=Y!iS#l-%9j at D71`Yjldpk>jp?L}lK&ns;__!U-CnYGC<s{}
zjBGntg#aik=eh-vJ5jl=UOG|O{7eDyI!PWi!BPJPv_=fMGoacI&+az at y*&5_Ct4Kl
z=w-_`dEBsGF`B)A at FP}i+i~Y{q1~74h=dB+;<OLaWMB$mI&f~fyzmSDoG(*h9fi}s
zCGx4~teHvGYv{RzZl7q!*rySX-PWo=8Tm6+J8Y_g`AOJj|D1{a;{~@G)4DAv$0i1w
zo-5@=q`z%FA|7(r?&nIBBf{1MN+$ESu5JabH>`nvZ+KWBk%d6|FGKdSS%9DP2pHo&
zBr=(AFa1o^pQ5g~5rDat7gMcsC#)bB*L_rWv=3`C>FOf2-lsmbbwzZvh<sj_8#@w7
z=YDF&Oj>u9QQ at -HsFU0CMtzH^=gS_mV at v5acfOyZ`=zOs+|CSR`)tV6^??FZf3mo>
z$6y3bOAtLKK4SiLB)l+`)e{-=m4WHD3tIpWv44JRcn=c%CMA|94eo%eyXVMBL8YFe
zh6vfGv=qm!^I$O-_jWb7d5FKbKf|_+Y3tJEC+q^awlROV#i`#0d_MqJmMwQ7xt84g
zZU|1yt_#kd#zXtKH`C@@W|H&%jTNG~fZdLWkQg~f(C)<i1+vj{HR-%ISfDSQyQEJh
z-#GrVsRC1oguo2*<!-FZtmed$sX9qfapGM0M_MpRmSt0}?u7g~?w at 45vNT4qt&MFC
zNY0&lrbI*<497dTq>rx;+Ng9_sux*+-u?snw|5ut{~+X*vr)KLPf&H%F}No at x6=4U
zFfs4D-m{OY&@I|xd&4Qc8c^ST>k$-cz^Yc$tiVE;v;2;lKTX7TRmdycM2nQDI-$)0
zVhFNhTC@!-X;gnO^+V<=<`J1K)@7A8MiMC- at T=vM<|qjq796FliUT?l)^tM$hNHRs
zLtWzyG;KD;u~h8}V&SO-nXj-C)@Ay|k7V%JYqjEkXVBdN_VuTBi9lOkOI;^b9`{O1
znH5J>K8UKk4-!Y;!-0))CNh6RlSmPi;@--EsWR)|h4 at w4cjkav4E=mtcpoKGN1z#H
ziieHH*;y20y||Po<o2rMC_JS+UnIP|fhOIx5B^o47CfHnv%<?1Tj4o-znmoYI_OVc
zMvTw2ii^cf#DWBogda)(FzGJAZFKo&%c6gLH0_s5_ZCZZ@$M|-U5?hB;>ss<&8k(U
z;KEC|f7uZitHqW{Za<q;CQ7!`bxNN2FSIfU3}j$?+xl69YP$VH6D$^8;>aS<jHTy7
z at Hu{oO2v-Gsw(J?tsQ-o*{U>VXFHVx0cN4|;rLYE0h?af<jjP#207t%TMH>i%yy?y
z%KxJqMedKve-fbSa*0 at 1ei>1xtKs$+^_s4e0*Qw>-dWH^Jvx7DZaWVh{uy!>oEP$7
zCUTrtVvyw)#hMdO?pYDr1raB%R01%knC}JljmLMVh}2lm8tiYyppRadr(GX5_})%k
zIwV<?cvd=*!(KL#VkhC)nOxZwR9kT&X&T|g6k}k44@=;uFtKKBD(*>R!kBPd(~}V$
z8&v-wNs~V^k+uIr|Hd5s*bY~?pIj$@7J^N#e3MBQ{dBc;xemU<1*u-2Zzue=t%_!3
z{X(e+t7Lkehm}CaMsoTv$)7KED+*!PpptALC1z>SZ6Z8f{xc2|)AX8TS`rYlJ}n7t
zYsD>fulXcpt29-3A$`_x!s_?c19xl3TA(xWwN~4$m<8L6=un6mIS`HF$DRJ&3{*Jn
zSs*hJ#1GoIME&qXFn?-`ni^m0^MkRvZSLR0#aZFp@!p<X=tLr7JIfpgG>F!_I5sMu
z_RnRIdWIDA&-KGfORcX9?aVVnFf at p96Tjs^TNLS_{VGUeOuz>QqR8~VnUOinPrIn5
zwOs0~ah2F at ehWp?Ku6O&ZkRu#vp59;FrpT~q)U*-I at fVlZKYXi0f6s3<%3VA<Gp5h
zs*r(Sg2<AuyWhd^Re9YJMg>+_o3#O(YTOlpZ-~|!jMgk^ybkdHsJbllW1ruzr+h|R
zV=|6-1>OvhD?^j<LfH|~y8cGOB!0qr56~29uandvDcVx=TyM}{DOe~YtHl~AqSr3@
zk3IB-lj_JX4sl@<X%}keO_g3y`5jF`+GF&+cya3Rg1nJ|)CyY8INo`)&iU8^{<@)`
z<0WQK4{wTm8Gp*lEgxl!(3H&XYnIs?4q)|AgBdm}al4 at E|HQb$l(03?S5;p@^Zu?v
zw-~Q`9B^aw;a!rVd!?QF02u#q9^PI0Ak~rkvdOMWwB5GMziylO9hhhL3N9%<yn)%Y
z4_LJ2L0Abegvt;;Ey?s{4EV<fFaXc(WdrpuzW+;Ad(I3CHD_cM+e%vdy`W at WmusyE
zvrK}Y#d;B|<}Y+hT=hN%-iItvgS6o021HlD0)dKh6PhKN$$25PiJ?n;@>fmzxx|`o
zN2SAgGop7-qt4vPKle${9MxG#cqyaK_sS4Wrk!89H>8#0Ltc0-RzfPTj0Wj&yhR%`
z2zMKqkm_flgG(<sR(!AJ1qp%k+sE^-Q#IVZiQpkj+^CT0H|!;M^~}%mPoB9nvqYqR
zMdn8tb4L8he79_sGA&KSyl}FG)qVz`x;&D3{7lsGzF~2*Lr5e`N(n2A2Rx3Q4^v+N
zKB^FYS!7*!+oV&6V8Vc%4{8E=IFvTJIa(1xzZ8VBy-po6?o`jI7j~MX<b?P1ANpXu
zeY5^(OT85;>|ut*Da{ql=CF__XP&!T9oEu$6MW-JvZ>+lzc__g(^%X}x3gakR18oZ
zyBn+ at smJnR!2-nmgejba>IRp^zBmN?$v(QHJKXiT%F^aB+O2fd at A9HG-5z&E5<zw=
z=gB+YUf=EN@%qYGdvEGT(2X;_p$pHNXP8Ql*H<)tFjApq@}xMthzy+ZDDeFy)%g0%
zk=|-K2w9l!#xTurEt&P#=%|~D&?{pin#ZLlTsS1C`Wow?;0hCUHt!j;BXIF>Wb3;-
zAt&hlrsaE^h4G2Lo$ys`3kQ!g at HdzIYu}$v0HLL}*pMU?6j<^fmQ3C+^urHHS(Ff%
zFPMw#3o!a#HR^B=GXCfpJx^{zj?d3I;ncL=x_UV1qZ;p&+wi9GB7`bXz3PqeaLwyx
z5g8`SkWys^HjWB#pA4sl^@D5W?Mk$@AQT{}EzxBl0}*`HAIZ3I%ws`)CEeZmHa0-z
z{IXk$`|H-&dUar`3||bUmX4=7;UHgzTDR{h55g^mx1PV0S9_Qx6RcilqAUYZ`Ed;<
zoy|xZ%jClcbf8sPg)C@>&w3(DK9$r at dsjZ=;9#YO65TKLdJmf+{VS1`-v+{u4O8F)
z!RL?BQo=eLWOL^<F*Jj4Z|Px@!cH0h66RYxz|H&oJEk<2K>C+++VX?CG6dn{Dci|w
zq8&e_2EOeW#0`Dak`{G7ljR5uN2)9 at ANL=bdBA^ICDaQE0*8ln(A%TTH2Sx36-2%K
z$r1r1*QeFf%lz~7%e<<{AC`lpd)`QAFq{}XYcaqr?G&vjlvoYM14lkaeoB87DC%i@
zDNlQ^S!|_o`Xc}kNP1 at W@*S;G0{39*%C_ei)dnDcQhof{VRgVvzxv*9ok|A@@3z^N
z$tJ at Lg?~}GB6r7c$cm|g#0+8tf0pV?^3 at LUi>>`y%o#|Hh6`1Dh1NSPqw4#f<fhl;
z7MmI{HmuPbAWOhbP&{cSU`^AI8x1suWPoi14CYM8gXh&Xn+W(SK||Q-r)qFu at _-8f
zH4zdX6h%PHaUh9JOE{rj=e4Qhsi|hzvv6w1h;rJo^?yBh>JQgBe`r6^zMQ%ad<I|H
z4ru&1&s#rlzZ}cSo1&U0#-$fe#9S~~10^Jb0^n-RP3l9}JViB}qWxD4Q7_!=Tw+OY
z9WU2pfo~6}VpUgNl0${EN=cdL#Yio!jkMb{`!cX}V~;H3(zvpao5U+u9804zoC}Fb
zw#?sU`ed>aP<}lQ`#+5wF2a%N8RO7;U_D`#n*N at P_72lUxC1J4L9;uc)3~T}yQ>M-
z0DS8f%DuGh9&A~kBqByhblDz&?1ByRp)4jn%cGeqR6++&V;-QKPpmC5(!U#TF>xj!
z70{e0HFLYg>fRLTj_6Ru*E-{=W<q}Fuqt7(_QJHHMajc2UHdbMp6{Oh_AVJipLB6c
z>W*W at HrGAFMnzM`YKjo1Rl|sAFC56<AsaTSBGETOHfUomdV^7*T7z2 at -Av<y`4s^p
zH4WS)?f==RbhCgJ*sC;(`dZ!7<6o1b at O96^Ok-6ap0L1y`rQ9?wL>LbIUzbj^DEN$
z3kePJZZ#22fbuRYYqg{lRPpNZR;Zsq%+3^8JPa;WuBC9tc(4Tr7|xI=p8<>m>KEtk
z2#AnuSsf+0NVUJJMq2Ok-;VcmcGrY8?O7Xbz2 at D0reuSu83x!>CIBj|FvBvtKY32m
zPw|*AZ+cP0yW^l4-trM>g}b_hTtH{RFenYr(XUSY<UNxLhHncSg at UR@0}+L1_`@%s
zak&8(?3=cQcsLc6b(fM^jxV4QafGI7Au>s;?u=?KWlTrMkUi at V)ef{bpgY1EZamp1
za!OH$sW=3g)fECNU at C4knj}W#uT9wmk|09s>h^UI(87#&+)ZIx5xLi6Y1JdKpSmJw
zt)o(7G<VLrMD+?4d}lvBacY2nc-C!wj&Ewua4f3~KUwxuUdj`hSF>f3X4$qFLD3;!
zOng>NbY+<_`49ELK~+_r*f=PUeH`rX<{0isS%+qyM*Wf_6}D}Op+ at s8?6_msU at G^0
zfY6dJ{BQdYmsa6ZVYWL8o|dPj4dU*SGGryKjI3-O<{7v#-C3DimuX4p2%YACOl4Lg
z3eqbZuD3z(Wa-#o69?aLjrmPN<Eat-%d)j#lnh93j2o%kkwlQ(K;aU-PAjSBZfNF)
z;VPF;EmsoRt$=p=M6mVu$PiP(i&;>$;;0aznjnhKCM+;~6Cov?UT17SKP-a7e|OVY
zwV(7I!a7|nBGz at 4Jpc7onY3e(5P at o*gIH#+2iO3)Mz!kU6tw+6Tj&(<LkdgvPCfi5
zIhp3xBv64xR)9)i at Vk-o60Bo0x)iz}tplQEFGwt=pSh|0+5^f~b%;Vog+2MuEEAXr
zX(?-CC{h0cN`rU+s_Pm!2>q+Ymx<Gbse9P7qRMsXyhH<==smK2bZ=86Q%QjMC1V==
z9P02Xdz2=FitvEIE`@T4`V4FyQXDx{iXMgU{s3E{dmkPKEMg#LOS4D-XFEjrMcU&~
zb`ok9%CF6AXA7BJtl_<ZlDECFO)iEUYopicDS>zDxp!7b3J2{X><4VE&ugtFV$)jH
z`0#|E`d;V_A<kuYf9c6VoO4#EN&c%n$sCE812pYB^uLc08cZ_;a`yyIWOkB#^{1z(
z#xj=FZMa70=s?ks3~CYad%K|IGF+ryPgd{STGk1tE92%zoZ7lUF=Mo`5pogh0aO9K
zMHtV~@T*Q%u*tjc-4d$IV?L1DK<;le8|UDmtnDQT)pLcix``PYm#JueCBkCAsD0ny
z6G)BOzjW1-PTn)r;7UR}ahArq1yohXe*@)L{PW at gKM!BZqx-~Q$<2wy8(C-}!t*ae
z7PkYSV*?c=bq`~f?R-Ii0&BzyTBri}9QLU7`=q6??dv?VM6>dMG%6`=Y!DY1R2{k-
zr<tZ3i*uoSt43OS*BCo^>6H2HgytCdZH~vFCV;{~vHPVu%8h+3`-T5L2DZpXOQ56y
zCk=_a${}j0tYc%oAdte`SmK2h6{=Evmc%p{bpv55%=ThSTeXD~74KKVwegqFQxx87
z!^gDGC?7{uLViW0Q+Nhy*XM*GR+&<xC?K3SSTeGY;OpH(%qaQk-VVFFk2hFQb=(wI
z>J$N9|75 at NQk9zm$9bi}iMD-&0sy2#4Tnk!6^!EPnRPO#V+~6e{xMo&C>|5tU<`|)
zTdTg0Xi&(7u~{LlTIi&dn0P*neh{wRnHxgP6baaw%0xw8Y8Cw*ekQ;gY}%Qc))O)e
zl(~t~EtaonBe_8>cal3xo|Q~VH?h4FkW?fkL7fR+{HL_q(}tl$V#j!(49XQP9lU98
z&b%vCXJ8foJ-TWpid5JSp(M{DrAx#94KdP}=P at D*_Q;Ru-a{MG61AO;jF9 at ikXLp+
zFjFrg{XypRF<jm&)TZ_zT*%zlWf$A;-CX^L(+|OH$Du&gId#QL|MMl^tokLtot>S$
zC}z3R!vTGvSoj0PX_{#^_s7bc0jZZ}40>n>cs)2U_hi}0S-&c`=n?$MyH)@}K)%03
zYJ0u9$_lT^$`4cqa=O7v-P63Trd7cISKIxV*ArX{7%Z<YuN+1da^pDFhtdys!Y4NI
z5z*5Z at X#qY+rp5Id3F{^-UWo!Fe=<-#VF}b-^tfrmj96qED}PVAeC{|)+JHik3FL4
zN=FFDC&okfTz7N8*=e74D~{5<2E5_ZglAmWfhcCKA~E4Dz7>z`tX2$&fK%E5pm1u<
zt7^|?fn?kU;uWJv&?m&;Z?VN>m97_i=_OLOzh=cvVc#2f<egI#1DnuPq at 1G$|9=Kq
z+g~#<7^O&#DLKBc&$-TO)BR41SLpk2E#mBT!rm~+wb!e&@ZR!eCGC=A at TA=pbc7tr
z3&#*ki66y?(gYUUL>|NLkoY4X@~=;6LtP&EViiW8)+Z+M_A3Ja|DEU_W%B?PzLdM7
zO6p}=&_f6C^glK)dI5U)Ov*gM<4$+-ESe+{_1xa)FtwBrhx{u#yz`lO?BO1^vrPN!
zIrjR;?0mXVjWrDfE`d!aGIbCK;u{rNt<vf~4hd#|W*(R`&rq%%A=QUEBpwAiXn1-Z
znB=~U`o}@s0X`ySRRQ{f!B%1epHj1?B%U=8F!$2DEW*X>pZ->azfi^iH8*L)TPC2L
zB;e5>Am&`y&QY>=!My{w7;-k*YaU8`;n`e<xs(*2;6eDwkAs+k;-<c}SR$(qZ5OYE
zMXeLJ+pR~}RXOMugT14dIT*A7dMZ$ut%xZ6#9iA;`e;~kjZs*MH&F!D&q%1{oVL*2
zo(%&}Rrzh4aW?L-S(>vbfhU$M2e+c(D;A(tAN|v at 2cin#w_EtJ#ikV|9~m3x*R>w}
z#{=PtmG=-S-K1Y9I0X>l at BBE&P;yDJ0BgO!GmNXMk_p{$p9>|{*Pd{R#c_!<BguK9
zVVM*@REKK|?rdR^r*{B`vq3DGpdX1b#Lip`yq!!r at xTai^o^a$^fvgrKfaT*@<gCd
zmD(m37tfpiYWcLCxC?`q4Ge~bHLJ at zPhuo3ofwuc7snd~eKaiyQbn)|$|Y1xEY!0S
zIRXg>nOc?a89QahK<ECJh0rjS?B++};U(JNsZ;Z<@`)6he<Y)c+8r75{Eu|H=5i6&
zTmACt#;7}E3;8+%@Ix#E<}i at S2W_M#ziL~4BZH?82^Dlkjx5!DCIMmN=&~YMjxhA`
zlP62d@^Rj<sZoQZ1S@{pq4+Uoko=4G at iv%cEaXAh+$@X>N(}c4PE0a%#|6${u^^3W
zzKX&*HtnOqAtR57ehhWiG_(dxZ}c at 8pP8sM<F57coysN5oDb<XWhbn&xY(G{FENX#
zB61mCPw4dBnvFyfDT=8CJJa`Ea}s_zhQ<rcjd?nGKYBmwv_j<w5#eH&r0+CMTP7`n
zp)dRna{5HuB*6KTc?QD|n1c!V6a<t3 at j?TlcZ~Fq2ZRZsIrK?EQ#~QS$=L64<^#wP
zk3{qx*}KFenBx_(*_P2%B1(0N#zFBR3*myz;kZ0jMZJOh;rWB+)$}@*ne;v895U7@
zr3pP|U6YmyEaSko?u4g-v47Fr_()|wx#^(XZe-3*IIcRy`Y3LHZ8+VhwaM1LWr at i@
zGlZ76iv?}F8?^{0ePM*5 at dprqi^^h=9)fZJc9RRWGiHI at LvE{z&y|<9U at +^UzeIs%
zX#L1PS5-!`F9W7H#GhZ1dI`OlIn$RG2CB}ZK5RimQxXhC02K6so)ZuHcI!_;TV^jl
z0oa3C-<zE6_Fc{}Q;a#)c{cot?yr?mas_j1=Y3$F#WRPjh|+4&buxo@(HmuAwOFk%
z2hT1j4srS<Bkr at IW(}7R5x-Pqz{OKSOzs45sLNST7cyP<q?DDMx_Joc!V<IwufKoE
z^{vRteJRc$59PMZ${d*gkL>depfk3tiWp-tB}mICc?B!mY${(TPSekStO(-ZCD(N6
z{45rN>E-f?iztE_kY_ogIiw}M6p$Pu-B#ihYk#K~!i(rC`Qed8o0EI>jM(&>f}+5s
zu0$TQHP-lt`fG295Fj7krcVsKCh$Z_Aq08D%7?K&T%ihYzix12Cb-uqQfnuUnu|@E
z9-P4hq5GGbI{=6HKE)sX{(k3oGi6j)=sYPnVr+^f*F7X4TTrb-hCp&O<m$dfd|Mnx
z+6k$@>sKlTbCgAO^XVAZ%yFb{apXUt@)ci5AF5&9;0V&c<U$k?P!1(8(t_DtQI%30
zE?~h)sC$5#?Oy+O3Od-A%hg{}I(}9+)=&m*5y(24R*WDP%5t^se*2UKWTC>Be}*18
zKXKowNf8a>tGesTQa>~%g|ZmbQ)wotrI1 at Jv=&$J*XZK`l`=3?YAyxo>jeiGO@*IE
zDscUC|69pd<o`YTa5v-Hz70yjd4XPD#v}dtb9QYUKdpBk>>fk4%|PSr*@n{s+&XT&
z?J_=>t7G+-J5-l*k#yq_5^!1%xrCr?TR)<{9yFwkd4+3y`ug0?+nubAj~}qO0NZce
zl&H5N%?+j}vIFd-TnoK8G%4Bj*U5~jHsxed$*0w4iGgfuf|f5U9`sfBX5cjhpWprm
zqzwB<7}v#LRk&A=EB0aK&OtZ>I2f(&@Zo!AuUeJ0bRUw&kxbmmqT>_RT)0(nJqT~&
zjVP}j->tu4+C?!yQt8m-(xY3BK4aaE4C?HYRX_GBqEs at X$aH0BBOO9f;qpQ64-JoL
zEu$>BbojE65zPb0YSOn$lHR{8OS~J^-g&`QEz)!@ci-D*6BvZ3liyDyNGbihJ>CQj
zfO=4$K`F7+d)^y6C!BcGzGFWwE~!-;9==SfFPMm|4Uj*1pn&$KN)BG4s4mz`8g*cT
zCP`IhV28a(pSVT|E<&(U8V%B9z`uQt4Ei$!nW<8;Enfiaw`>(6SBk=ldm9&_lEA{k
ztpI0L)r;Gm6}CZ*1zpPamC}#h(Q{DEbf*TW9vtq)>f&umD>e9Q=>G{#ZKA%5G>(7v
zzTqUF0~Q!6Y(oM2VqJ)K#rXf*Yv;d1O|oht%`^7`Z at k*7I#VGf_`X91-0p453Jhxn
zU!DuG+PKgAh+<<E1om#0M{QoXep!WvuSjqBlyC?qN3vDK;TH|!|L6yt&*|{p+ehrQ
zO9q83^Ik2mir1U$bfE!Z=%}=o=)RUapBZjw_0lC;+eR6CGP7Se0xdcNEEHwNVylqb
z1EB@<B7_5ham(mK9G?S#wb3PYzCy|kplmcAOu@&>y#(y4W$3|ybX9hO%`tXKYf>jn
z20Ta$H4!SC0l4<iDK-==kYP?+GEY|UO7YLm9bS{Z<-kkE3;wo<1jsy7OfyToTuZ_s
zcI7a~3%Mpa*e6KgLc_)~Y>QA}t`(=h>sB(Cze_MqM23#De6k?RNpLlpF9E8^5*yQK
zJ&NgqVWRBLx6|y3DA-l!Q$I1+Gto(Jqhc<hnD>S>nqNohTGWIV=rvS}A3zHKA0`r<
zz>HfJ`46av^I(`tQ9sp`OgO~GImx;1r^d$|4b<A70q%-rkd~0ve_#{@WW3~w4(%S6
z?(_qeb9S%s+3BvVF`8<x)^>Z5?iwCvfV=phKFuJ3DH`~uyOXqKD*Mm%G`s8q2h<|)
zR1N0FU__q<hRUgRxIs*zkeQH}%|6lYLY4_DjcmQ;rA!<3r-#wsM3rP+EPNiXUH;~*
zAH944dfdAM9L(t~|K>o{Qwe4Vfd0V&J%PkA&msv=g{l4l6B9|;fzrr8^PUnH51iL8
zz>m#JoMKB?rK|7N!{+;gm8Md;<m!5iUt+tuNbshBAhF>{l&Ay8S6 at 0B`lbuFq`$-A
z+Xrhmnj4D*R)?z}{qKTjFZk#~S6vvqt)Bm8deGgC(fZpNU)1^ZfN9&8D6bwIc=hn3
zOHlGWA$-)4*nYwepe7{jj~grAJU?%`K(lL^x`6GZ=1P+Wu{J^E7fFU!$}y0n>Hkeb
z#S92<r_e=QhfOwZUzMrq7mdTnK+USlG|+Ql>YNY|Fd319vkxtNs(q--6fUO$G*|c!
z7{DUpuj8bt6q-Wd`f+Uw!brL$I&AV+Q3=tgnMwJX=GoG-Yr8A)`eyw?- at KJgBVKWG
zijm+bqFmS*5-d|qqK<Zxhe|T&p^UD4$Oq<{M-F}!Yns@&#;3wCd)b5&obCxyaS5t4
zRpEDb&5jsvvrL#z&%yk+Q+xp5F49A3%>-#%8uM!ao(cN$A8o^kO+XZ~b5^axW=W(E
zp5|5jVR-~({GUiQv`^*|XN5th;?OPIk}_h!^@Mi-Z17>1F+Ak>{@IlXu9fu-&(r%x
z49S|%{m8i>1j!;SYuL%VZ{{s<1AhHMDs^lM)jqALQtQz{YVUx$6OWolp3~04A&?g`
zDvYMPWgCeP`bcjG=JqkkqxiFd8`9ZlCe#~$06dbv+MVN%)=ed8#91m`<VpL<^sGd)
z=}UwhU7=rerHvIa8U<jVi}K7AC5fLBQM&&v)J^Ic2AeTJ;NNCac>HTMoGbc3C9D}Q
z6w5FY2sm{ADu$rpUVu!W<qgHFt=*~+b1s3($VbMU=0O^b-tbBC at eupD#4#`s(zd8M
zcXVig5_^}0eG#)Pyy8jaroP_h%`w9=-Y^=41{qYClrXWLuJb);!>rHQec~>FHT)0f
zPQsRef?Bj at rM_4LSy(ng)FlV|wm&^%oV0O|?)ci}i(ibY`ye*kA>dYt;t7ha5pVu9
z<qXz^q at s~Jp>%@IV$Ld+3bI6OR~pnbcRe8 at o_<B_-k+m%!0Xl==^a$BKWQ7zZ|Mxe
zQ-l6aniUZqCexW(WJ6Cp#5*&|Q=q3#W;?@*Kl9*=lwS$=OM#mguPu4zIeZiC$M!GT
zGGVC5+q9N}^jJ&zh6z!-EAwD3my3jSSq4q#2z!f{Q7^0H0#XEnZI$kMBD4ZyAeMc3
zi(_e;k_e3rS*X+<$s!53Go6p1tZ|2a4NPn;^={4%;;YsX!aIySCDklU!vR_adb?<1
zBUooInSzJgDFS;%=(}&E;u1us#!CLIAO0*ZbHdIbfWr*|TE<#*-1B<Y|CJ<p`63X@
zb-y=br<J#4hpkr#O;8dwyscwqx9k0VI at i#}`e4D=I at T@4&LtJM0faUW1JQ`$aFXn#
zV7{SRD~$QNtB=`PF0I0X6GQzcpX_(?E2LQ%Oa*JBDh<Ydls{2{nXoLYMp>|Uf$Dd7
zVg<I>u at sS+SW49_KZvI2Ub+0lj{2sq%Wf0TYg;uuTIny4-ZiplkKE%mfunw!k;Fpx
z4z&3nq3As69>#@Du$tZn?z0J8?mzJ5CT{{))i*3nM~)Q5{&S!xl1i2TXZnr7ut|Wp
z0(1|FeicEDa5d$Z%mV>`K|>oWv6ZCm`)THaV1N7Gj+dcolVS8wTz+?(0T^nFnqieK
zc&Pm(*ulBo*q+psUl|e_Cz{ekZ#z-^pYesjVjB- at O!H9w1aPql$3Ed41ZOApC2wg#
zk;masjNewwKV?{7&y{&UdUY${G5DTvG=x)$fF^BrSeE#JiWy0?NciTu05~83G`M}U
z at VQtp4^g{34xzaOX`k(3at!u7L$5>|8ueM+CVnX9L!{SxUPF%#FGAlkgWWEul?R3g
z8QlSGUY^Mt7Y_sM|G&9^Z;0g6wpT*C7a{!v_%3_Bw58ny>ysH>*)}~C9T{wQg74&;
z<?n5$b87TTzQPrseniOoW*eNzBW?>a)r?{B1;<YB?LG>-JJ3iCGI2~dVIW44Pa<pu
z at 75`6cp38S=ex>=YntbD7%HQ>jrv(a at xO(KGQF3TBog at xXO5cg`y~X=d)k%mhDs9V
zU_2i06`=7Mk^?*nMxbbhf|1DKP*%OYnbQLgQges0D!=- at u`S(-mBTVN+4a>zjr-5j
zPfU at S9dI<~xq1W#%6K>`jD$?XyZ54y3wVahJ4>xA at yU1_grueKGg`Xw<Tt)47zJAJ
zd%t<?1(f0^)RQ54Jr(Fue02NY0QV<d@@RF7!<I3HBMhgIh4mq88)IKBEcJ0#I#$uw
z-4pcN19R6MojKK}9mOuTBt>!U|BAwILWW8nO)dwRv>HG`i+O<jO!k->broil571Fv
zBqJ1Lqw>GVDlM_Pa??<KnB(l{xrbqRJrh_O(e~Zy=Yxq*pYRYp>(3BUlQw<rt-sf=
zfILiNUNIWc&$HR50tvUe0M|A2#P2i2D^!kQ{o8SF4*WEhEOp+C6wv9((>Lp~AB2P;
zyIg&{@MfwJ1_XVvF+H8m#yt=2*#NKsf|mePRhaJSR2q=mfBJmt4x!4OQ>^&(?6mr{
zh2-weIgv*^f~T9X#we41yz58iU%)lgf|#;K{U88*mu*XuiQ>2P5)8=uo4#=}u`rer
znF>QeocIRTmeTQ$lu4(X at 5k`N!sN2NCc#pcSR>;<XyO4MV*^eh61Hb7<98AD!&O#7
z`HHV)e3LVd6}rQf`DCufjnmUZs^}8HaC}}EA~*pB5f<#nikg=aCc5zv$DiN>61d`N
zi-wX}#%l-S_Pwx<$9vVMJmmVK$E&e++(vIXA_*laI;7>F&x1$tg-ZCuVY+ObCr{4A
zSc3gSz%oYEGB<xoR!}EKs#fP2Y+ at sg`kr7D`a6FegO%E-DGYogn0 at dQ1;^>WlbZdr
za|wsiZ1pSmKtdsVg5i7>P9efO%`Tfnp&9K6blsEjJDHzs2Xh!|3O2{Iu%U~GUBWO$
z36U#k%aaiXYOay<^{|Y2BTz9rFxr!l9-2l~Ijjy>jpCY_&t#t<77VuaT*8Prtv}0*
zoSI~{mNO2QU%z6a7Vqm$iq8G=boMACVi<Y1eE5s`gmajkBmk%Avo50fYgNuMtHCJg
zhs+^KaI+00526Bgf-NyFW<NvBjn?f!HOG0CN^^Ld6OQxbW52`t;r5LLZ*bWukr0UV
z{0pv$x=dlQRx31Zo+nx2_lqw%ZykN#m<UAYHGN at 5joy?&{h!_9N*}ZI5`(Aui?}=^
zhKtA9%dnJ~Pwt?y)`#+IpHoosHQdf#Yr+DO^Gb1O%(dFqw5xA5(TB2`<mtd^r6Ai+
zoZmz~jdhs-vqini5G=nO6843eh7<VQ53Gal`K1|o1Hrb5b#r8<xm+=u`fk~&VWmh%
z7*?J4UjQJ)@$Dzb+Pb^E_PRQp2NgSj_!=6B3G!CDThrV}%~%9VglEgrA*tJq+mYZT
z`W`legb at YH@qw;Mx~&Ift#pI=;<3GVFa#9ngk$tipzhPE$?zG#@OJ+tT>IF!XW)ea
zyu7~BWk at Gtbyf{et078heL<>2ttHs!KLl;S%r-$5DpC{7W6!;jl!w?ULa=5aA0INP
zwtOKFD>Eji&Xv97j$0^j0eX at QFI)GrNLrHCnfrNf_(j}cvyp;C{(nRrzkp6+Azf<j
z(X=X!2VZhizRfBdSE;Xut4qhK)C;T16Q6u-R+-lYVi=9%fL~sx(?sQ_L`uu*k)j3F
z^GG4T8CGO at OoQEil^%u$yPBs$1byfNu$gu?@krz%yj{VEq5EDZk8N&mNs__KDY;b;
z8wd?)qW>GCIHaE1uqNMeXTL2;w_$Q7=jEGyyIH`31?`Tx9e-Do129CpIEc>Q`b%*$
zk)B=nfD;g45tzYrL$#68so{M#t-jPOrYSj_3q4PD2JE|42qDRV1vV7PaSY>2X at wcm
z$k1~lZ@%}JBp8|W7<oX(!zAZ=`Sk?D47q=Y*iR5Yu;^IljNa2696k6(H!m$|#_ymg
ze(b7wau^Sl;&>B*b>GDztt$Rbsqi-Qb{T`%t9ui>$$*e#FCiaq%~mJt5LYFj7bC29
zjY!D#h|1<0(m$_rQghOn(Kw!(q?4T+kkHPPvpnaD0+g6MaP~G&S^^m8oL^dJ|Ajkm
zOvxbfpO2&9+<tAA^%a0FK3c}(Clg=6OOy&&;Vnu|!Fdh;cM7ut-+8)ujVB`vCFLF)
zXY8F_U5$p>3&71x18N%8$VV>I;w{Dos?F80;=HX!4J)d9GF^4_u*@l0Jg9S=Z3U_i
zI1y=9_KP=6%wfFQE{2 at dI!nvb2lsN==G{SdV#;5mhF>KccKH~{pO#ofDslEgIdaei
z#*caQx}XyeOV!EeCQ;d*?v9J09^mt;Py5vcx7{P?)t}H%2f~@Bh?Of+2;VJ;MG;87
z%?EiJ!d8XyHJS<c0)?ZClZ-=z{bowwZp!ltxXc^AS2G?_-N=<;V~E+%(WVnD{XNdM
zw(V>ix~<!=O5MI)h?Kf`|9j3&v%&^H`lk3`!6#&3JBWy+=Awn0+&IF%4aEAyBAqt>
zwMN3YLY7rjrUHeNwDM7RKW%dcGN@?q>VD$`X?^sd at kE%|!_(Y%!87z8A}s~^)Sy!X
zyBK)(26RLMSEZA1*v#tb at LsJMw9!%{P at qoxLR?*S83;5EGS8(zTHSWA>OqHwpGn at c
zZc5j0Fixx&EjQepoqyU+(Q;1^i07pJS98qWKH-`t`TA1*e9`|&6$g6Q at HzotaVhVr
zleV?1ytmU;|98>%yI&B}yMhC2ruut`9CVd=P$^Utn)Aw!;9Gttw2I at +dDDTr*M>NE
z&}QMxQH+Mvx*xi;BUj{QU#Y#xZjcQdkh3<lQGBq<m2$tZ^f%Z=;N0DYTCR)$8Nvz;
z<dtG?I~^vwsJ;7%$s}AgvJR(eO6k`V8bR78Bw|~@^T%$XV`fqAsAWC+RQz45j+C!T
zr4I$Rm`!A>s%r08xd%<_NCQRlj{X3<`IqK=AW#_6Ys$B&+3u<n1R=lwYrru~<7OAS
zxYLb%WI+ku at l>gYdCmHw(RXE^wCCCbsM`3^T!h5Hz{(Lv$3%9ee}SR&%zl4KDNW@`
z>q8PpSIMoJ+rRz;IUzr|U5M!W=)ygO8zdZJ$+AC6;9VE|vk`d^hB&kyCojASsmi0i
ztAx6=!8Kisiik#ri$d*e{WwxbWPPK)Lfd0<S)9->7R>AMx9iNv1f-jeZNBakI#0Pg
z&i at wabdRwP0s(^b*H{B5&|)bwdBZk7ok)eHiu`tqbgUK|3!B7UZNOV=_<Kn)>>vyK
ztBrG%J;MDB8(JV8X*nCw)*Gh3gzfq1M{a*9XxdL1;&zytQ^d*igXVlo^2Fv<2 at BJE
zFo;`Xy51 at ipUSmq@Kouj+rR8pPC_tcBfZ%(<@%q at I6HSD3grv?m_Wq|ktn1FzL$Cm
zb=aVvPuR^@KZIV};iDpSTLZ7{5sbtZT?m^qCHl)mB<~4!hzWZ*P}+&RH-RZff(P(1
z&|p4(TM5ic*5~u`T=l;qA#`{u4LJss<8;>Hjr>lK)wHOh5<01C%o!C%q#pgX49z$u
z9R3*&1F%<&jC2S3uI|M*f-bI5TWPYzboS-VEi#)KK9>IWXR_R1>tU!c>Ezodx0VYC
z5Tmx7^vvR{8HX;06QiL~E6Xvi52p(lkwUI`{fI&Wf^QbIvB+x0DtKI{21t%`Ft*In
z<!$g at Qlz(UE$V=p*)sPhI`m66)`0Jqe^5dNMVt-~8y0bH@~5Bz>;783{Pin22amwV
z>JW??>(GUuw at Zi(#4c1zSv#9 at pXZ-0`@&4O63>F;synnMiQ(xrz+TN}{+^thuBl=T
zZ4MEC)?uy3fQcG#V_30-J6|<Ag7o79g*eB1Hy2M(O5<noJVpRv%ZZ6NEBd(Mb!{*j
zAI<V=Uj3YJa9}`#8&JEJ>}f0x#>m(EQUkalV0qH!eoF$KOxVJTId6GLrKwSPQt{IW
zZEW9}?CKh^E@|j`oW0#*8hE=J*P$yOrVJMWKmT4Yq$zpZcNe8@=7 at T4hZ%XppWIV4
z>0!6~nO$cJ(~TbLwpIiSSOo*E<^={D>XT?ph*Ui}3zE+^&7TTx=XhxFsSNy`oY;1`
zQ<4kLeLNx4miW-BNh?-AHleg_o#{S5ehvR-Jc!-Kp`DML;GoDCZOlxiwnOO93_M`t
z-blLPA8B2PdLcXQeKaTx<uU*poWsiE&dpLk#CM0r1`LAWn4>6txRD_BPy2kvankCB
zfnQ|fy?>CpxvpNnLYgB^Xv_y44hZ!--y at MkyRcJ&Y*J7f!|8K@=_7wgk+8!XzeQN&
zvjAJay4OF;!Z{>GuFqpyx^#at1{=CtZ{}N4W2;PsJ_R~FW;i&Q84#Y2k>r at -u-t_6
z)_rqc6rD=>Z=e$6jQ`PbVjd6LL)l=5iT+yX9N-)~Gx-mlvQp1mKC5ouUv#97x at w==
z6X~w^T5`BcB#OjC4Nlala&0?ILOlzcSJ=KO*1xlBbr<*NfP}DUs25X|PX>6eA!AOt
zebYgK1e;U;ddY}Nk9qIO{sJO}PnwU8+(S*z)zsjGCQHHgKWIQFyzA$cL}?7`U_yz$
z;4E>Dp!N8OJn$Os&82f;zo>@`%hY8fHV>*+=eI5b-RyGPoi;EZYXsAZ-O?qsgrPB+
zW{#0CS<--08c>Ah{qjc}(E77ctZkL5n>NGVsHP$>{!8+>S+~M|S|m&iSrr}tv9zAn
zSC28?`+eCyUX~V at syKr6vSAjbSCYU(W at NCi21sJ&w2?RlLs59mW(K6qgcHZIj=df0
z`4j$<NEJNHuHh*lJH+LqZY)#?m3NGeD03l+1;vl_xtgY$$v#ZGK!lyNh(mOyCa}#?
zucNWv4FShDgaQ#V5!1h*aVH6TSh)*;_#e%*JnH at dcWt{h5$$}J7Nt(|VkPUIBg2lz
zt67d|A#2pO&oxP_9XGQfK9R$u-p&r<SaLkdbn>2VlT}9E(B>7BdU#*W6x9F2cYBC{
zM51!^bS;`o3cVM?aQ-}z%cN#J3Ta%`?RjEfvHR^%MdNN!9u=5&w&BTy!d{7Ir1ac2
z#WC&%(9bDvo^&nWuLyf$eLd9Zf8;ASZponOMiYvaqFDO0-+8EX{KiZ<{C392dy$Je
zwCf+vtDP_UPol}KflzfL*>gn5Pm0T$x3&(l&*tSn9UJ;8YYY8u>(Bgu at sZP~rAIN<
z1lBUcalV4ZQmMe&4$MK32Omcv$!-8BMummc6<FZFvqZn`QxRc1faI=iFHYM!J9WA0
zXHAriGFQ}{hH!CAQQBL8{}czM)rgGemw}6ZJV($5R;=5KU;4}2WRaFDvLm_n^VE<V
zZ29+eI4~Ak4#z#u?>eiJW?STYuvKP!s$4A8wLyEr3ov?e6G+j9tEamLgjAhX`~WM*
zpMdga<=Gl6-0KS=F=Md?oH*-}Z{3t44}GcD<$>zJ<?RiWWac4YLTU6BYG$r<DX#qI
zKi=$_{PkMzDKBJZj%;@0o<B#BGcG#(A>(bmKGU|-H-=}<keZT#`EWFimH{Z1Boifh
zYb52s{rH(L7R;0#-}MhAvun>VkwT^?oZt$)&dz at f8_%;|iDer+(1tJ}ER#t+GqaYL
zA=^}N?JLKMF)V$R>&*TcF1;!id6rGYh1p-R%&B7`c9~RE(VByLnl)sno|Uvtbg6NJ
zz_QrOMO1zOmfIf%Gf&Q!rf!EY&+v~A9%Sul!jI^A0M*9A8SQ$!jDQrwWJFGM5dVfj
z;Y2PHu}V6J6FaU48xj>duVm|&G&>5Cg+R1v$OY{N0xD--?EWYvC`Qk`2>$XNYUQf6
zpa|+yh}>Gmp*fk-GKmB4ets|X#PiHS5@#zyAVxJwW|gO>o25nBoiSA0ZU$D*H64j(
z$IMZh-T at 0tlX^KM4O;TSX=O40c(bx&EOC^CV3DkJ7`u?@(mp%3jjhd^;*j*+-O=kL
zjv{(#Mh<^E8j+$Wn<JJhW5x=oI#h>^<3 at 6Vfpq1i-8zW~e0*w5MX$Bs=8PVB)B(v+
zvw(1%D$9Bcnj}OAtyR>XBsP5g?2ELdkpxcoG07vZpPf5HlrgonU_4=3*j_#TlfE%+
zx^ynSyvP at 8{0JFaqd69c{i-jCvoX~&Uylaje5S9MJ>XDr`0WCT3cD2;wY}MAA}CT^
zznQ^%Gwu6HBu3ZkR#AC~3psYKB)$s03sg|xgrmA?)U#4NYM;VW$&S~w!sa#!x&(c3
z<4?ZKhR~`l^4gmt-&w|+-9juydFAA4a7qsK3hZkUV|p^1pqB$}3G&43-wpkfDHLOK
zIe0s1Me$5YF}(wVAMn&&ATd(_GVlBt>g#SC5Qan+NAvTftlwfmVJSv`?^7gei>xk1
zSyu16dGtv}gEZXE4XgtQQhm0{@(9bAO>pHGn7;E&HFLn$8Kl;K&4RN^5l*F#V>-)@
zOJF}bc8opJJkStJ#-L{>>ba&H5Y?zrJs4RmS5G_yTdtlUdJw!OHfik2ynbouPUT!T
zQ%G8AUZ$4e0WwpZ^^A%#m7$FE`QK847(U8{T`*9dlXvi^zMX#%eJ-szjbLaMoM0{!
z3kGw at yrZ(vZDswM%Ke4epU4mUcF0}zi+ph8#a*3cx$a=>*aAUNw}=>eIOR6-B3d*@
zCr-?qt^de`A(b-pX|`09hiK(0pP$E!({#3LsfkJSkTB^0ltQZ<n``*?MpRmZ&YTPR
zp}N(?6J at jgi4&6|^L^s5`NrF5akq6Yssb}w4sLC_Ro%sD4cDmtQTkEIY$+4}@HDZ=
z7I;7$`Dr)5^fb1+Eg!$bU`Zy&IkGW40b}Jq-N*`KQGf(jl_IgHxCi1k#?wK4f3a0G
zuzq<bMxK;nQngD={dHC0z at H%O*=!j&78^YnB_Hb6d#o6r^{@oNNa_Ms#ih>k=tL?C
zXkoz~DIyOE-M<{DvDlcn?pippteU1&`ZB3x6#oll{;qT3GJ2Z|dGthj)tSRWNbwDm
zgMfOba%iLLnWjyrg43($23@@ZU}|b%pquQ&S?ZYM*}<ld^z9)dR36y#UtmgU;`wuo
z874fvXWA*B5hr`7D5J-|Nn-a(HDg5=w3PpB#;Y_Y?;vM~Ki$AgDQg+mp$Qm!b$&ao
znxd6VY?>h#6wDo@%^q$w=7C)hiF at GeK&e|JRNY!O8lE#>Iq{WY{NGswp1=)rh?y8#
zT`}{Qq&e!-Wsh}qiEy(CD5;(07_YaLZ at f)W at H&ZPU7dr%A?QNKUFrdSilv$J^cDmg
zQ+8FETm}@f+HK>6(9vhaJPf%8mE|_kX1 at nHV=fvv6%d1UakTfw)u9D at A2kkLuw7Dj
zO1JEa$i<A2SKdKRq$ZIO_lC%6Vx)wsz|h`k{p^=StK6Gr_}eay{Y4g<#V6u~9u{`j
zl0SPn5hZU*CJ_*geS&l?x;_FV;6AjBK16WlL~tB?<vG<!M?aR4)Sw7&7=P{9e{YpJ
zt6z5Y=`lKRD4O=}%pFmpBD#X;$K)sxB?Mz+dRs!6$(HH5qX(*i=BoL&o$Q9v1Ybpx
zPw40b3Wwn^R}YQbvUB6WJk~2d&v8mPU&cv2xo2sRBO{y|D1xdFF1-=X9$-es at q$vX
zBd`#X;X1=dpW<%Ws+{9L!br3-4s6)NV#QPX*ybi0%2d&D%?JQ*kqO{sVB at S@x{hU4
ztD3O~uY*w<xm6|=y8v6$HXVv{=#p;6B${6-#B0oVvftg-%W)_oPpDtfsTWb?bJ|Rw
zk#X&yG`T?xoBd>Iz_n+<fqK+ICF22(O$93RGnY`Ij!*sXCZ_G-b3KmIIMFBX4!`>a
z(OLE54g#_HAstVV)upB7y!@uQLbJm%MDGux&&9DOKv%<FW^^_EWb%pTxIWV2F4zlE
zyiuCs`u{o9zg)msrCkQ#gq7pz?p4XJ4mRTFmq7a+7 at -cOnq8ODm?>Nd>vf?ti^vXu
zA;8dCauot}u90+QhWd9~y-g07Lww3OH>mX~;Oy-=CNuaATR73`X$Et<2G_R;ZLsjz
z1ujh!5wo1cWXVGJXD+SvznQBe6-v82o~hD51eT|;vrr%`f}jpFt<<Wto!FeuhfR7C
zHLb_Xi#4 at Gt|?%E^w<}qGvO{7>bZrT<|X^ZdV%nR>9kAisqBTJ_BqmIe6rk7!1qf4
zO~d at IVxMT2OYE6q>S%YI%boLfdZYb&q&;4vllbi~aUD2=eG0<q6$qrznTOu5x13K#
z3OHRfaESQp+bBGAvNEMc44cl!aF*LiVl%#Rnp0XAx9^}^b1e(TwquDkCmojiDN8oe
zfNThoX^QY2x<_>AN<NVxh;G#k1_k2XVE!Bh%F1*zhkT!e{K+E0?g=uxhxy|7Si~rV
z4?BRG|4Z=d&9Tv2S8ga9(=z?d(#qHp*FK7gw!E0>mzX{kvw{tF=capW5uNoeF>5qd
zL?;o!33X+R4}SSI;Almrev*cV1js4dOno6V(ZI7GkILI%<dd1t;_;;ahzlkTqyffb
z<pF>J{t(hJ?yH3Eh;q*PX^X**<9wAynKU_gDAaFhv<q$;<u;4e19wI%#{B(KHHS+;
z-E};}uqK4Z+8}{nYLA&<RVzO1(ZQ0;U=R;82be^R`JMb1*n%o|J3m?1^%xW#L6K<E
zB7R#z at BV8&xbQ%3O+Ik>Z at O0&3k)v|jUVWv(j6#bYK4$v-*FR;h7Zv{*!z%P=yz~<
z-nfz}O|Bk!m6-i>>==+97+jOyHM3x{Z3=~6<(hHTs30Na;nrE5)ybUYKZ^=rDd6o-
zB0VY&rhn`HL7PGT+=f at 1yp@QI=tD8*NRvdU-Fr^`5qBOaKPt+BulGZIb- at OQeFqGq
zr^ZuASk>54G=6A3QpIvi*^LSoNJOVt!L{2RmHiENM6-q3#b~M+6%PQ<@BlrU0 at 3(V
zh29y<n5Lp7Lw?h%e`-h50bv()3_AdxXmh@~DwISEm+;_{EJ9^AIpH4YvAv0COK?{i
zqOP97Dmw7r`f3nZ&XvLK!;b?yrU6&1<`4xOXKp72UkQTJS{JZ1*z^m=g~TG--xgA0
zVr)$8!jNOqC2=fmn=k_{8j-snKDx;{Z0p8KKxNqy+lD7+U%{E+ at 1bGmcZzd$z;jMo
zXM|#mU<SAcbiKHRPo+`_s+pQFCs9)`94M+viWsk?%jXLYp<z7B^u;4pkEx{OFE-h;
z<!l!4rnV at Qp#Is`x#@qC3?D=)RnhP6LLKVoa$4<h&Q+xmRjd>^9Ftv-pZuS!I5B`^
zb~VG1(2Vw+Y>F at pVWsT9OjnDRQFyy(wl_%uX%eS!c0zxz+COQ!y<H<bl~l%RUvW9E
zClY!XK1xXqI*B&*kIWPeQXfXi+<aqkG(h*m`Zko*0Y$v&)fgm7T}dFZ-#f)A0?;8j
zRA)bIm_Ks7rS<KVcL5e)Yi<q~io68WgXdv?N^{8VM7Rs2yssTMh+8%}$3<#?w{kHU
zxv1OxKd*$x<qw>%#<~*ies;gc2pf}|?Peh!(Mth6W8^I=TBQ(l+=T}B82*qShIsDd
z!B_!`#HJccV5w8QNr(d9Z9#nsJyGp`1N#g&5_3tJMf*oa^+G{9(HP+IjBY{rK>W>U
zUSXD8tXL1h_gkINT#0lmblv8GM6))ariy3>RSI(ST1EBcv at U{uF2?JBHbb at Ud|R at -
znXZHz(Q0ea?cpH^;>)VU-{Ek8l|X>Aws<>+R1)K^k}7+8FEcxZc)@>bZXJNRR@|1$
zstVGP4 at 3C>GQufoF}K_cs6)i8hF<EMPP|>6 at mR>M;F}7;@H6-zpa>d~kjNn1b-~zW
zr5Y|Y|7(jaHW7Uk3cREGPQ#nEYwEa%X`iROwQi;_LOD9Jfqv#^y=!g>O2Y=Qw6q3Z
zj%W=|G-6x6?=}UA|BM=L4Dw__$>G(%Y%-AT1yT4&M+wURUTMW;QKYn_auMduAhZ3g
zQ^)xU(AO4$o_6qnRj(B7C(P>08KF05I3QMVW(5Gb$3OAj4bOqRUb)D|=JA-Agn=+h
zxc!(vW0gImi(u8nn2H&sh%lo`1nr$gqgK-Q$c|_<QwN_elO?Vm;OIc19epC3%`dVm
z*VdWI5CXxVtx<-Zuaq3F+H4j{V}EC2Oo`>&eCa1JLi|>Ll|If6BlcAqRmRPaG~i?f
zbdm*hD`Hk0I(x-c;14^6<-7DXps5kQ=W_{IKXZif17cR6GsY=lOd=2YQrQt*RS%bE
z?c)_Bw%kVjQLD75*a#h4+8Pqhk(s8;BdSeow8+c3360&_wj%7CBJ1#1bB4V at cK{OO
z$YUx5RTm7*hJXUBLSk-fq_2QQR~O4JAozVP at ADt#kFzdrCKD{@gY5+AC~#cM5TW&N
zJ8vUpr}JdZfDQ43^{ByODCt#6Kq|Vp$p7*Tcb_}=1S at wF)j8&^To#+>*a&g?rm}&^
zJ*E81#lF4u+k*p5{ux2XTPilETKGAqPZBTa73>G{oaS4X4POf&R;iIE<QxSxi5i$k
znKkc1+R0AbY2E#F_-vXQ01~In$v}l#kvdTHG~4EwjSdr7N@#5Yn08X3><1~bTCB<Z
zDNJ7L&)`rDD1nvEW at oncAuDw>y}n8g#eEd`KltUVwdt!MLC^noLDZSJzo^w^LQ9li
zNR^h9UD}haQ;M29m{2cZFcc+?uA*-K|Jx*@OrfCCY*UQg>bUj(nqt2Ku^yY#Ej|@~
zjvYSy)B%2zULZP&{DMSH4efMdMSxmKL1G5{Yei><O8hJZr?q4zY at SM5L6B@WM>waK
z*;@vOn1gdSTK6B{>52nQ1p4kO0GY7j#_t+3?44wsL`BN&_m=E}w at VYt{Ea_SR&HAQ
zuk#H$HP0aaPE+Hq7(-sSnn<=2PNfI*vc8`gtP+9uBw>Z;>N_EG?=<pGWt&(BM_XIX
zD^ko<k~Efi=@ULEviw9)E>Ks<Csb^TvoFOHyMrXyU~#WqRvb`AvagiOku+6=_?AG-
ztg=_4AqS{`V=IrK#@P+nI1yuDCdLQmV1a4&R<@aMdvHEC_8CizioY5KllJu#C>M3>
zuD`Ttc!>c$M~m?VwhFv#p7aZFtJ1VE<fF)0T^j%tV>yW7P|F?E7wi=?w5$(j#|d1o
zmEBu`2u)Pfa&Fn6ix|KA{_bPnT&2qjV*E(lU`_&JTDIiT?j(lc)RnOUbc)8=7`LFw
z+6NOMojU{;;vbA?LBvwrEt0cRM%s+Y!FN{;?D(7xoS>$z8853R#Kf~j2*Yixxbk4F
z>B$C}LQ?~hGm>|uCN+<DQYg$Bc5|%vdvn at tp+g!MFDe13jhMY}QHFYW@~syxQ>V$y
zbKOa%0Jhzi5H1#rs;=|Gw{ODqZ9O;-(EH1Y2|Og6xW?ERS~yiROiY|5US8u}3bI at B
znTUxOkY06AleqUcOp^-|b4c_4%C*+uqv|YHKBz5v&-lAA<Pubm28SvvS#DskvGG(Q
zDo%$hDV0Ll6zax*d>-rBzP6XqbHv+rYCewL=dU4qjxdAPtwm#_g5ffgFr(pT0u2w&
z5=v$P9oYbQpLI?hVcQ(~lI_bt!%RTmEs~V!LxR<yE-?7&9Em_62shgdw6HPbjeun0
zGC>5d5R{-l5IJ&++}j0OuLu#KZ(__6;obYb_(H7YcU`wA$%<g4zN{x851=xY#O{55
zy?*7aO at Iq};Pkivm#<$W8wL*z(Kx!gds9XNfz|4aswUtes*BiL9=DPA#mG70EpavE
zcr0SJ(b$D1KR$6im?bR`=#K`SDvrqfeU$ZXvLOQ10N&L^qzge9N{eM2a))-18 at cm`
z_E%(SU(jwTAirt|@@a4dAdIkgUpy}nHp?pw@|7YzdWPdWob(Zt&B^q_%*ul?B~!MG
z at e9BPoUoIe668lM&^qH#yeNq*kIId6iOra)twS6pA!$KmGJwzK3D5e0K?u@*nYU})
z5fB&E4<>e at +k(D8e at _9Ldft_bQEX3!4*~+QXZ(flT~C5$hi0}b6Ak4qNJOXmIR(AI
z;kJ|9xB9S$oW;3l0*C0AN}?Xw-W9>A`;x?|X8!8bEOe`Az at AZ>hfV6w$t;UswkT^X
zUCNxXC_yBLb(C?wTJw;kE9|wNqq(|l+X<b7uU%=?G?p}g>-Pd5#dx&^9K_qJDE0?`
z)aLX^9VG3AnJ<XGu$lE!x*yK+^nGdk8_6tsKMN5(WTPV|)`!+BpCt{K_UpE`OA$2D
zhoGCuRd76yyohC}k6%8Xv`CZe6OWnjmOb|GHStW0ko+eQIZ;R(TE|J}^}xPz-cOh)
zfNoSDA5bLxq{0rHhB`dZu7>gv7zim&$luPpp9WuxBT1vcD$Ck4gy17SOgKIJF)8V4
zk32<K0m)~&%gMWhHl8IDnf^??gL^5IgtD;Re1ZFN)G=o(Sj9ZnzSnr%;$My%q4nO1
zR*!b=Kux+6*w8o_&$EiR58cq}o38H=R*BARR>%;KkjvhbLir#!Rr?;^P=|!9k+`Xs
zSS$>_Z$gtswNPFbgU(5NE1}8NO^$v&=CheA_x`jsp(L;8D>P7gxved|#r!{)=3Ct*
z5=C&y=<-7ejcLXNfhGZ!^Cz47=J9|i76@?5fT?}g#Uq5g{+d^>mCX5B(wKGhM#S_d
zdf+@~yS(n!PTsV7qu^4au+V!>?t<oGx2ETH5<zX1ZekACGT$u9Rcm}xyIiKxJL8#x
zA47oh39hIqRDXN#Rr<HMJtcx6cA!l!L{mM)hS20e@&z`a7cV{`_=qfO()N&wd-h1n
zk*T6ClL-tY47%2A(bH{+V)ELl#+NK`ayeIILa2x?!$zFF|8{{b-?*HVuHRVXtDz|>
zh6G^_HF9gZB{Sf*6hvgQQN}SNUKt~82etPc0mOro;7H=oDQV4J+k>;P)p*nCt$S{l
zjYsxbUJPx8btUEh_re6Z=Ec$azD((^d3KsKJq?83mafn&u_t3&&c#oP<oqHHy26>V
zgfB;DuJzWOGH<0rX|7{d(u<q#kyxt at R|Ql|2!74(Q6Yy`gDe0L(k0XPI`s2I+eXfg
z1Os0}`V5vI*44DCK0|=Dn>Ut&d!6!bL at 0&Mt*6-#LG{%Ai4dR~aw9|9;l_WdBh*GD
zz9zEp>-%xPT23n(B`-zV-&!`aJ|sj56g=|qqiNu4c9;fpMJgKoba*fMi4q;kEl=a(
zh<_dcdWnm$W()CSiIt8 at aCy#9QyOx$)`*57gq4v0V$<l{T%}5;7vf;Dh0irb0|SGp
zJ-w-G#m7n}R0yU`|M`4zkw2sh;TA9_x7vJ-ACy`^D|^?R!bXaey}~uMs=k{F<vn9c
zyn1xcD*M4iC8P at bz@(8g0gTfu9gZ&R&RfiXP0Jb!1|TOg-IeZffw+l-{@8QFnC~x0
z1~~wAJ-{+a9V$w8Ag3?Xt1r4O$K&NS53Q^CX}1((Gu5#^)oF#;*z<%QrYn>Ay>i6L
zH?_M^tFlCGH&a{Wf`onD^dXS#a4h`K=nQ*}IrFe=WT87Mgs<+KVDqC7_$#*brs=XO
zWe|f=le=uPu{R55CY|Rk#EG7$ootipeNilz=+g>Vg|p5;;;w7>az7)4{szJl)&j|n
zylOnL1tkUK_&7u8w|7^I?XP(Yp(tVcnOfJt>b<gWpy$_a6rhauN}X1POoBh$n|Zw2
z$i8*yrb|p>bp}Hjx>|iQvk at IX4fShvvrK)Cf`7>Gw!89~Mg2F;v00%- at G3Ojna}4o
z#{hgxb|W1wKD))9X7#?h$>p-buB+_QiN&S4eqYITREtoUPW%uAcliUQu(UlU&EuNk
zqx9GIA7$Pr^euh+{Q1Ru5yp^Wqu at kQ>N)4 at K$v0?w}0Zpc&=VTeJhSjbQB3vO>9Mw
zzy at s4xsDPs2@dKESP636+_ZCjAdDz|gRgIRozXV=P=z8H9!IFQm90c{0qZv)B6A?q
z^8!TJis`r-25gfSGZ9cHnOYIsGHL=`*1Ext-Nh3c2}U#1d|=(mgb?{in|@n5=#;o-
zkv~u+$Jx8Fy~@YM&^fPtS$37vNG?Ys3zn}=`BDylpCnbH5d8D0`UFX)_qI&)=w=Z0
zM!H>>)Vm(zrToypyQ=eP!Y9yni>7|E%{{c7HEet(UFJhtaiKKd`+bqSxP$emRWUFE
z8dw*-0p at Am8V)j#(yn|T(<7Au{!PKM363r|JmZQA+X%yBbNLeJ&D%(dgq70izM{7k
zpp(v{enxAj;p4dEeR+O60QU=^|41}0iWaR4Hf6+ at 46AbhilY#=@l3&-uzhyLx~iYo
zhQ^uX at POkTmR3@WAD*dMT+;rcW4NiGC^|JBiJ-RG9Ee2c*z0NEu`kcge^#^`3Z`yo
zoXy*`sy==Ky+659(*_XF;;gvgj~%wPn$067ZPF~NuB_&>u~%XHndN(ozOj2w;Jkgh
z>zl3UFWJ$OF-*4LlL!jkunjQS0n<74q13wdFA);<!*92O!uqDf5i%0yq#{dam-}Xe
z!`AI|yPVpD at iD<W-R9ZQ{;ad+NS}hrz+d?yC>6Q3eQK6gIzZN)2MN6hJI=2giol1l
zXgxF>DlPW2ab4}&7s9Y52jolJJlp5$VH#r^kWNNVGEwBU?<xxiq(t>sR^V at t^)3`^
zAx^Ib`z(|oL@^IzYr8%E at wK-cq2uVk*_G)=gWhW{sGCl5dXhi(xMGTIDb<vpV|>yq
zwjW-o#1EtsI)I?bbv<~Fl6hk%OB at f_6xEvaNU_6AA|#NUbj_=U+V8-k8D%V$`NysZ
zj`$zFWoJI7e!p*p7WMQoMWj@{p>LkM at lP~3dmuu}*VfmrYv{CLI_ubdAlM{K9}7xN
zQxg3SLypf^Ldt7BBg(~da7*+Y-KVCBdRzb9RJG6XC?mrm?+zbSz2Dc_wsOql>{mY|
zdZD=jZ)pHQczIDA7D=;uG{6SYX0I1R*v*h(_u4?_)R#ckj#A57f<&caVsZM|x*3`;
z-zmTU5ZzoZ!%mfSH(J)Xt#PB`0|#Qp0gmdQnln_N<nVy`LEl1`8$muF(MC`$XKgo|
z$3Xq^o;+h%TxQ=M&@1h>CKUr}`=jCUBm(R4gT`UNu^_cYsix~|G2wXA5*vv=KFL&N
zqBjR3g-*0Y6S7kW1!l!8Sc5PF>PY90bO6`v?FA|(GnPIFo^1cAS@*k#NEDAZyg3)L
zEL*NWAD)yGuj#>0&c~#?t|C;&ved%;d*Dq=-SV}WaLG0OW4>Lt-~^z(^ojh4dSdoD
zc};-ht|Z{EDyrPzHP++}C~*}|@yiTDC6=>WCp7W_@?dc|C{*G$8ani<+Al{%J$X<R
z5exF?3OjXEd!~-N?20-BTuZWZAd|UGZkkeIkM3To$tDuQ;l$|r=^-kQrcKQ;n!idZ
zXN^qc6L|9$Gydf&xXa{=XRK(K9M)g<nswBmNpJ%~I?Fg&7hz<f#i)u*M_V{2OA&@l
z4cAbyQ94=^xxi%aCYhYb`UY0cH=uSCI6{q-*EU_FyfuDq-djz`8T&KQzh}^l)JghU
z-A8 at m@ABvInc!@L$%l+o%LLUu*aK;_dD*kLC8${@K;~#OaBSmt{2Lm3&6*5J6_mFv
zzLlbVj#grOytx at 0N*aH<pQH*%&FV8p-`%;>eXhRGZ0%&y2#<Ni%BonsdgdVp^SY?M
zZ%S2>aB`7VgTEc`Qa!^vKYTpiaT^t?fp_$?&s4j=t^gag{=MyRX5je$F;e;Re!SYQ
zw6ig-I#G`6sLurUy6dkTi88FJVdv_AM^D}>!qLx4tXDk&UC%Jxlm)zN*v`KBcR1J-
z$q%e10impN*A2sjnDvU)vM_#pkzYfYI<G+dJifSeHoS`o3a8oZR14U1 at +&6A$@*`1
z?G?hnw6-31!u-S2h^>z<Rj9ls{rT2~V9cR)Jd(a7eiU<$@$=|(0DL%P)+SfdJBMO6
zIEEp&;^S$w;iK;ynXhxzQ>Lfm8whG^04QmMWk0bjIKeC{-XTODa-1Fb_<n(FX?r3&
z!xXCMl?zY(Dwb4}$yWGw06Rd$ziG(1V|CGZqIUe$%%2)b%{VL|+r{Y9S4Agz-GKV_
zBcUx6Q)>pd=#G>1VwKYmm+@?>#lvv&64a_Dj0Vi8AmD2r_HgHGWsW@*x>(<}gC7EW
znU7K!qSsqxk4c6cLF9d?mT|EoZY49JXq4?3X+98RHas3>X+yWZnE$lU66QmIgn;2q
zIx3QD+Kul)2YFS9Lk&!|L4}%U=CD+}-X4k5XD>5C6STk^PudSq9hiqV4kuz}1rBt7
z+>Bt!ek;te71QQCPRqAOd?=QRpy*!Jf1OyVP8$W0uzTc11+v5&HsFZivs{hfo4TLg
z%Sit<I9qc2Nh0o2M;aIw5^zImRROsbikeLt-mNXb*>H?@W3PV|roi_tO6JKH;5S$s
zMNgoh^Qmu|&?NJnc0~7ehT$%-bINraLny3q;pIkGFE}FqXTb9?dbg*In;6)yQ{T;J
zRwPtqp>fgZ0}i3*{c}5hGPCGl^qmcFPs20k_Nb*AAh-!Ug at BvLCe{wC at I>&%IIwN}
z*OMYB31Cx;M43HStqiy+Gc%p#)t<QIJT;`>L<e2YS3I_3 at Inm!gBju_$~1nDE6n-V
zlQXU-5XK`EewTZ?aT?$<4QHq2LO;TacydDE at OuEN)?Un|gcOR8OE at bAm|)@{X;qOp
ztgC2ISKUnvwwSg>&mjL?$<N!+C~u?Q<@nJNPIwaMk78BMN({HHRm=EDJ$b={8?<-)
zm>|rta??ua49TO}5J-fO-ls~`#bd)X78A%KAToz8xnm_tiO05tmaeYo<@MX+j=gG0
zMAV*cPm&%rzi&SqREXGZ*6spdM<}G<>v+mJ?{&89W6QA#-<2`?P?vbi-%Lz4WYL}u
z!|d7SPSeDxi7);YrQ!8^gt>0f@$|uu4W1#a`5Pm5qR=x!X^hn*#?-Cb&^Irkyn;!i
z=?}3@<JXoPo2IIjw3iZQz$E;FGl$ezG_#J+r}?A<Q?9(3=PdR*?Auy)k9(i~`Z!8$
zIxt#CXrT!e+Rb!EvAn388f+N{bwFJan`n8(zZ~Om0dPc{{ft8vQ7*#Z1KV>r1ORvi
zeZLk2?U=yYYF;;G`y1x-Ww}$2ho_AiabB+od6yPqRY#7c*$snxBTK+RYRhQ(WhOoC
zLrSI^1r_w+Us^(7GXx_B#@Jdz$(|n(+ at J$Tj}vRYobj!i_xeB)qm1f&7`n)3hG1%?
z(b=(<v+%;KqxRMZDy3flDQbb>7UU^3#c68*^O*E{TFAVKJqtcZXp-Ze$S<w<I}Ufj
zkl8E|x+*6b6K>^ue3`zV?)63j5j1T8=eqgMyPe!;uRGbO*Y!1N=nLd-{qC|zyrs%m
z7==+I!<PD1%GnrlpS2%lmee^OYIJCs>$wT!(yh2{h|qZd at g44FE8)7h6h&xH!d9qS
zpA}?{{h5fV%yEh`n+Iuvgum6-EFD^hCn7}q(sX1Ch)uo?uNCOJ-U7!GN}ij3y5xIz
zeQMTtu8n)*Hv*djqQDkO|D6j6i28hg`N8q{Efm#%YM$brmctF4Mxb(rsfbG{VFT!m
zuf8a%*%gj4X6EvX3Cw at GC4lL7#EPdngZ6pvOm(>K8zguSBN?HeK9 at Ywx^~jh#MS0=
z68mr|k@&lSTlnv2{+K5z!Ru_tsm_B6c}RN4Njg%7K<!Cl=t-;IHe60?1Uq%!hw%%=
z?9+wNWl^umB<wVF>U1J>Y_HfRt%wy^CfG50u$BivLB7Yo_*t6&UCTDT)V)+sm0r?_
zGzC5VLDo0+r`^Z`1`T-x(UlQ^F1`!{u2%NJKMtNb%&({JobyN_T?GhU57JU2(z~X@
zEn1f8(@jYkz2g2zn-!3&sGqFQBzFODx4;deCy91Vq#MQP5|qv*qjlorQq()qZODy6
zEiu9>ke*8{p>S!JutE*bve`X<h&x~=Ut;ty!WRn`D)x`8XFxq%FLH(>+})u{+LV~8
zJGySdTJ^hvdfzF07deD}_3;z?L>3-x6g=k$y4YvEIbOASFqm7nhWJh+pR=obAK{w`
zKy;;^McEB}LZlJ~6R{tdg*X^YvOne+_REz}K6;lW#DR%=H^Wo#D_;<vz4d?Uhg$pj
zhv5MFQ67O4Of&NpXQ<cZktzieat2-ZQ>OKpy=xjw0LKB%An&&`r at gfuyffv9G_`4G
zJb6312T~5y7-i>@*fvv#-w6W2*{^D+7IDP!<tbz(W=dO;1aw!76^TMgpF$nr0P)Ik
zd0OJnyOs2URw)_G)QYp^cHcMZWC(w1+#6=o&Kcg<<sUU2cczt+6O?UMLA^BH_cw=q
zxS&dN;I{(mB&%8`eCFnyJxuKpruQ>`HX_X~vGokh61>(FDR#H*HyInI!q2ur8&pHT
z?F}A)8h-KEP=<kFF#0(V<e2srB1XLvm+?cD)Md=Mbn^tiFsm*X6s|!67SDGnarGlF
zIIJTsc-ayiQrR+sz6}TE-`<iRs{y}Yayl}jD{YCs+L&?yFg(CI-a6E2H`6%@#s>dA
zjhNhx-cUrpcs8n{1DL16G&VZjRWL6t48+}%UOe?9JZYzk2D&ey1WpdUW^OXIQlhKl
z-Z0#m8+8uQ(^4%-UKeK3MxPwKKqrQVSm&1p*NhE^#`0J&<1npl5UL`%_k{pjwz$%3
zl?;d9BKJAGfA*JV|5|@Q5sK-jO+K2N9$bo~3>B5S%wy#2^!Uc?`Yf_mgt*MEJWbVv
z&{FB-qp{a8=%yYUdvkEC2sz|gL|X~zCB-<D1hXi|658?Mynfse=*!N}_-N%4$6Dn9
zDlTw#COSK?FUAmnU{y)XM-S+Zwc7PB=~>}ri7V`j2GbW5?3K{7e7OArzB?7p=W-n9
zh^MuJRw-HVhxf>$r-CXMcbH$N?{6n?US81(hpYGUPpqd9aJ<5>I|KY`!pDNLiKtYU
zjJkvG5->@<WK*4K6k;?NZsn`XThA8ZIRjf#SFwFH?8m_radk%zLw1UtC7arK6Qu^%
zv at aAC!5zN8k2PI|ur%Q<N7M7hA_dhr6DR|WR(3Epbu^5<MIN8l{!*mnnWM7nS#eMg
zZ at kV>;$WG3NTM8JRI1gImr-3LVpNXUhR-p(GU6X<Q9%nrGCSAq7YH1kO!<<Fw)S9h
zh&=e$#vCB?5&o`dXJS?uV=S8?;os6j8zXC%K_fi*1=M%kvHA0iKDhVtLfs$}5#E-w
zX!*tBeoZXT$f8#pbYp~o3~pM+WFM<XJ`lRhM~`B&(}o_Hlvl;ZG}1 at VImiGR?7W1l
z`HRCG<ygk?Q&Vd_(Lw^F2G*Uamv)g^B8@{~pNTx^9Dwgk>Bhu)f!2`N?JUc(fh45N
zsJVpzIWpmm=o==?FX&=V_eRn&M8tpfbV|aMQZ~XyPgh#^(c(v8M(Oz%^s7f%;6uyH
z6xiqdtE>?{>S)9sZV~h$E52OIwN<ejyPQjRbp}o{)nygFXEB~C${t3YOyh=`Jc<5k
zN|F~4&FBpwft8wAaF^47*JjIVfKDf!433wA?BR(psTd0E*p~DN64IJCBG{8QN|Ku$
zO at bO*7`jFod9~lofC+mL#FD5fp=2K*m($n~%YWXQhhh7urk+ew7G<zMx%*8xFwyR9
z1+umeLn#^yf at HGCss}1bQnzP%N9pyWIp{YGn1T>S2tOD5LqCEK6dt{wgi~>_6X4E8
zE6`f?Q&_aKx<m0ra(AiYSFRS5vHI(eKvu9nGcyaQZ4}k9U<*|2?x9w7N6tGwCgURq
zIM at z{PO|rdxdd&0&gHe67HDc5Exl^^!abT75~r7^ircrvlI88ePO7U6SlL=rV&bps
zgoY%kkgK|*4yLZ`RJjPU at T5~-6t;v~EyMk7af<-hFc3Joa_98bEc=VZjEhgdeT#*S
zTXWSlAGooE_)mI>ZdFE$RRFfY-At1PgSI}Qki<uWRj?<%_iuY=>IZ`*ba~dYi|BqW
z2Fn+6s5=8a<=OLvw#fb{22gWmz-p at POhAnF+s_cEL7~5$Bi4^}B5ObvGI=`jOektC
z0 at HfmxR~{qhwy47{@*bzCb2~8gMt%#-c at loEo31WlmgHMC_ep}3XYg&u63~B_t>P9
zN58_T{*evfsLXLS at SQ94w6p(YF$wP{9{BKj(Tw(X=d<3?8^M17_ at y8fy@;D%JyqiJ
zpCDP^KDhD)?<&9GyqY9grmO1DH;{KI10h8}tqKXD2nvknCd!&eV;+H+D;;`<0H&<P
zthXUuA`2%ac%QCRsEt+p<EFV^apHd{^tHrhOg!IN=jTATMXxx#0ScmXnrg5Z23?#x
zibQ-JOeJ01{4py>4EkJ^-?Q1iUynQbh}1(+2J1TznLTwu!=Zlf?KC6!KD{WvQVCJs
zjm0xV=e^bg3tQO~K*gYRW)sKl1M}VG+|CFmjxJQ848#2aYuK;9!Z$#6|9KFCl5~rT
ziaTx|SNDr at lOWRz^p=#k<xjHU at ZGD&2s9&O;(3rr5Dm)fb127Jv#A^&)F`D17&0+3
zMT<oGf}TY1Ik008^Hk=+X#iTGdK21rYWG?}Sl=L{^69Gf5ASVn>j=0yUlYHV$4MW>
zo#D+}Q+4UKg2-x-pu5m%H0rlG4>{S3kXw?*V2sy%f2d8>wzZx|Nd<$YjQ4|p2^B{P
z4V%PK_&c?WrcQl~iyml)G~^+9O&SS+!3(aP!ZYAtMhm&&1e>NNdfx7kpePXB6x)7!
zW>&{y_I&bf2_VU*wL)pUk(Hy`ht{ab)1(!|Nf6WsXuq!JYA;l7AjgB?l)Da!p}*L@
zHOCwoDCP-F*LNm5;Swpe#9pu{(G`jUaY~V0<?CMYbTX!U^iZ<ZrT-X+-`y*1QVHM{
zuDs;~I;W|YJn`T^GihZf-g$hse|_G;a7;4x96e0BF1>e2y at uC!CRG-=T7_2#n!$SI
z6g=m$bjzk>tQ{v3bP4o`=WrFiq59ywVBI@(TTkT`#p1MU8lW%-U!3x%v*Td at ONkPX
z@)8P()ug$_4g0_0X`a-k*GS5;TUT86PNmfBScQ1XdxX}bA_(xS)zWt-!e;1Z!#a=i
z<9|zQXX!}&=Y-O6FoA#0cr!xeumjRmikG)}*ydoE-WECzCfi=ADJlxLU=16nTaVE=
zK%HT=bz<Ej^C;aPY|o8Xn<G+|HCJI_X at 4!=N<)$rC|*Y^bn`5-zK1c<*DZI_;c690
z4>`hn0m#~|bl-4}j*}tLD~&lG_*3~Qs|795rv0op|4S7V$%%4N6NP2#9+Q0q;OCEc
zyTNgt-?TayZ}+(}-^#pdgT*wl at N2FRc+cyofdrfs(VISmIuUJ!CU8L6zAlDB7G#xi
z at T~lw8_4yo0Pzf1vWn<|SbB~^OimvU!d-v+Fcq6>P|SDaon*^xNj=?@^=lDEPPsrJ
zSt8-L>CDka+!3q>B*-VeW#K~bo{l=BCWZb_eLILENYG-_51;LRE5q;;mctj`0a2#*
zq)%ew$6!)+$_ at fDTmKf@8D*2jjQ&P#LOfF%rsRlEx%52e8jGWGQQYc*hKc?pSBxX!
z2xdq{rR_CrrQ$;P)RGO6N?#5s9P(4vHwvB%31_aCcfO!R#(w>VCB>*a4pLhm$QmP^
zIm<0;-VSJ@;2kOPBNYEUr7zu7(UhPb;^5qUsCzl at l|BD8{^{CzF;rWSeG+v6w81!w
zO&o%#a-pxpK{6!!DQz;HV|7`^EJtrG=R)8JI?vwXTwpLB%=`oTN~u~Na)fm;0E`z9
z@?QGp1<Ym`+uV^;6xbDgm^k=L<7*`Jok~pCp};u6_@$)F7Wd1AWM}<>{uZYdEHr`P
z048{^p&5`hQW{~0b}I-y9gnLkM3BcW>lnUi?V4QodA8NS<ot0rYxSQm`QX^WV at 311
ztrG>&SO<G5O1rZdlI?kv$6^?PPF|P$*IxTgz4K at lOS<dEPmM{)FcfEyOHis@(o4Az
z!iJ^-UU|3si)_&x^1}e`mvzq{?fpVH?iWY-D-3BkWhu1%F2Z{U7&ji@@x{-XAA}8j
z<DF<KtDC`N#}GTK0ur$++Bm+eLO<CiP}6qtuCQerRfebsBq<`@zpC9vr&+d+ehJ73
z at _YVHk}r)gScD%P2MCs!lF-wh<Q7WEawRq at M|je9W)g3 at oG%cRcj`@nzd;lvqN;&p
zX9M(z)RI5{p10Z*a3eASc*3Ji+CKc0LDh-c55MC%F^l+%B%}}il`lz>O}7S&QOUSP
z2Ca+<A&~1IDL~PcN+mfqu8vN<ccZpjxI~nMn0gxEg<^Yia9rvLhJcS(Ok<T_jupG%
zla)!t8O^Kr=Qtfaut!A*Co@(qE@=r!U0>MTe-*G~+Kr%+<&$!hWc>rbXAQ(Ru1#||
zD8Np+`&=ZyE&N1RYtKBB5k*dA-p}cX+pn$b=#b8viMSd11ZT@&i^4I@^yxOO%`c*(
zoM*~J&kS4 at e5!88|9grCDYFEH?-f~bnWkGS9IL at vp%eVstr9R$YRa#Pj~f%&LaYhu
z97>2PH0)c)`uJy4{{<F$YoGoMn2z3X!G^7vC3+gMC1&55bUd!Mio8|gENUCpy2)({
zET1*eulIRZiRz at amX+=)3DEZ at M{SEW&#Ta<cfeqwZaS<)7g01BE76(EtBhZ%h54et
zKJwQV6O))FxpN?E9LHR`ck;t#UR$V_Q3XJ9atp{EntEa`TJ1Ez0U17e9`g2%+(+BI
zE>6OLQ|*$q0)O^jJ_GJCn^VJ7vp+lSbP3%v1#I*N;lx)QwZ(vLi#g84=f3h>64BJP
zS{S|12L_xL#G~*+3C5_&BMgen+ReAZpS?QHUNn5i(-V;qxVFB2|8c^EA&r>BfnEq@
zcKBB3Pa|YuIGr+Q{v@@**MyL9-@~8>iWir?OdruKAdk4l{QPg&VeiVMwBa9FDoVc6
zpiRZD8 at wHj<S(QNAgEoV-`~j4weSZfCCsj731;c`Xo^M8;gL>ssVb<F;p5b<2E at Xv
z(#*uR>l|HYQK(~Kg6v7tu-Wt9Uu!iTBGQqf2TwEeK;*g!0;jfPztIC}#RHD;t{?Gm
zOxZj5d_msvJrq^=j2M!;0mar|?XRKomQD5qvUwR84QR?>Eqx0u?4SQ;=HY%9 at RD6)
z*J19T{$i60kyLxwf;iz7VFdmXql!+*TQ%Uou5U!`1gw4 at MifX@O;`&)6zbAN(O0>;
zWsX5$<{WnyFApzPSQ~>*sg0|Q=R`=IFGnvXzofBb!5YNl<)hc8A>EcB35D6-+mr|M
zDN*>7(CMbe=*m2C_I-%Wqh1IoP3<Ir<sbhKq&$N~LF_Ste`rxzoYbebUDe`c$*}wB
zLY;zQLFc-Mete;}82XB at 2&pm~QohREqsO;ldaXz|p~r1=KlvbN@>O5V^7W6;vO6sH
zAw0V-`(cNFaR+(|Ul;^`^1b6d3=sGls=|%%&y>j(&R0J<V1U{Z=!~Bce`Tsflv&OY
z8PO#-fVrdk?~=DvRcJaD9A2~Acd80T7^I02=X=SfM3ITj^=boGcUwVUmON1}j3S)(
z71Yip!?1zTe)ohd9kpnv;TTLDoNV5=5OZ6;p$2^-OG%*1xZi&}EVhY5!I$JGm at v6{
zAJwZkO&I#jPBjF17M(SWv(UjRBwZ0!5s}pC=8DCd503Eoy6=juEn?Tb*@+A4(epta
zzzKe(Sy?!}>ja%AAN-q5uc4tdu|u%#63HPnin2q_N{K+|CyIn_OUE0xG<?&IFGaFG
z(N*i$lhbGQ4 at 176Z|fEHBiZVlQYmmuc at _tG?dLB07R!%6UA0pnj at Tk)BT&^%*a&5G
zSOrkb+_^Vj%qvBUJaATD4begUT7P7t^E^ckoO4JG^ZIi`9Ob~Je0c}W*Ky9G`pLQ`
zj at R%=ah9QM81_v9d2en@)HUN>$BT29;49OND9ESqoaE1h`qlCPa;TPp*?*&oAU5`D
z65<Dk56Q`o0*TcEpw}1$jg<g=VuLREZD7?fh%zf(juVQTeD8HyE<L}1#BrN>Efg(u
z9LpAt7nafuppo#}-~op}x%;LbzrkA(jG<t@%TiPB5fE)8LyMX=JeTgb6o-b;=i%my
zmc~ftp<e`e-ryY9I8jGqbPNmS3iheYyo+E8GkgMzMJ>Ne=&Tpipv3UfdX03yeqxmA
zpA+5pnI_qgh{wUn-x-loG1EC1?LJPLW9GX at jBGQc;CP|yB4L4z5oJ?mz)$%_KhT;e
z!{&geO6(RlEQ3AKc!8iiV-S*ZKPqkDXJm!_Pbn*?3ozl{<9~ICR2+MrvWW5aS3Ezr
zOr^lCC^YtPQX*wVx9W`G9Nx&;qy#!}=?UCCAsgs|pwg>0X_EQP2^2d?UM{W7LpJ4o
zpi+f>xaTv<=T3u*wd{D~+V+b$;!s7QD=?IjmI!MtusfcJfd(tZWOt&)mJrOo6r;^I
ze7cp3Ag%mFC>7cLqs+|-?d=kV9shl;_XM6I(<*6bRx0P7O|FWBrbXNKF*R4W+<COv
z6TW5hObp=dqkFtyoIFrw_T5JvT)|r`i&K{<M=TKg at Uz-3ZO&IsQLOR3{0>W!ujSd8
zDR8F^S=(6C59ht))YDuMi;30UQI&p+95SL<?faUgb;7WO0)t?p{4x}-zq7L{mQCX(
znsTaR5u0QjCDTtar7M9f8b=_kjFM!DN01q&qm+th64_li5p%H)5o?$m<*HFdK|G$=
zsxNch2(*h7>}1L5^W0snbv=BbqC|k=O_-nekgM3%7}aMYjbv$04Sq{Fa{}|lzR>Vg
zwK+x4XGcf&+R^&~5XV*WAR#t&?34?WQ<Kk=`fqN0YnzpGSYcMZ-}!>3cg4VL+d(lE
z{X_^xj;<>AX(r~70^*K$qdVQpC<{jcdsZOYMA064Rtz1<>=4M#fYL)|(lV3F<Q;$}
zB<~)MLfy#72+^8Phr>W(fCs2opJBc+5nmi8nfv7j?&a16y0kB7=Wt?FmOp}4%Cx)j
zFe(SlRKo^Hx6z5br#$#lc^W(T at m2Dy)c7oXQ~j|5B%haYI1Ybk;ZjZ1ztj+GiDp3%
z5G&c$WBVK=G_(dHa6o?_I8KW=9A(aMOTPUM_Hf>8hI;MH^KL$KnuFuu9xb$04zxhr
z+^^k)`&qV5v8(mB>G?F&{*<41u>S^yA6yIAkW9!IQMt}drvHSP#9Fvu<}mUrgsk3~
z1-Rl0%x$a6xvli2!VrnS3jqp15(-?DT7h=$N757Pi_#hpR|q~d4l|IGb0|YCGZm=w
zwyIrUcUlvwLxbfMW=q2bYlkXvIAT!CH>bO3W0GMnzX0O^w>0ZeMe}6KT&u$|9SqlU
zD>!#}mQA7$U>(^ckbW`*X|Z3YB<u4HDm520;zcgV80`BUerKY8W-w_XXc8%<Py{g0
z;h@;pKAdv8V3j4367vEHIs-^&o*5)?1lCs~84(c{8<2e0#mpIEe8fu@?+gUG_30D$
zD<K|m=$Wb0W>|0$KY8$?Gho&~^jhKl3#$<s9AD$x%IyVgVnO?(V8NK%L%i@*{-cQ4
zOcRwFwBu4wSPqsmN|}RWD+Cj%DOk#RcIyUiNL*gDvjx)<6w+5@>|1tD-LFY|zk?i%
z$x3{#jxP{-8Djf1CErz+CMT)8I!c)kb+;)H&thkk=C2>f0q8q!9CTwlDoRl#+#Bs4
z at 9qHI|K$6r7Q0<`I*og|-!#Kf!`zM{H?9zf2_*QidNnYLsyb$gF30?>Kckz|j9$~F
zD{|@tPv9c_cf$9#!M;WN#$^D<Bc|G%9Fq%W- at P4KXbkMgESz8uHY*@;{%jo*Ht-j3
zo- at j;1wsv24k{}<{J_zJ=l9y!yL+n_PsVKR-3chu>o0V+D%b<hL3+>i)^}jNl-q?@
z0kNj>8#LK0(D at 80Kw?_ydvUJ4KJeId<oY3&1r=fBJ!8<#2ULR<7QlbJ*Rr2#&^LJe
zq=sY{fa^@ScH!K#lfr}epR%_AJx<K>M)j at BL-@&HR&MdhVz1Z=6hv3XpNdv+7$wgR
z7iH3F`D8y%TbRec3f3RDfu`O7yjHE}*&g=a)*BhF_~1QA$An8E%<edFW;kNKJY~MR
zfEaf3lb;Ik(@62?p05v}M=gR7-mw>ZCxUQU2uQx_U2!a62Wi_vyX)gw8C2fP*yrj4
zV$m@<S<KeDOt7M&67RZ*1O^#~V~oxdyk;bi2$elG{=e#7d}krSs#%q+ at q5oL4zY&`
z!5Hi{#IGTpvf=cRnu=YrRjX*G$RZM*^_!oSk)QA>&Si*^j%o;!?-6K}j&xu$9A}yy
zcHA`7tl7Q-HJ-=e)K!S9uy6eIy at v5~wTDsRhGGH9dxr3tlvLH#ilHR*nfXe?KbK&E
ziU@>OcC&exD_;cLNpDM}L#X0p!5m?VmRb0d;{6&^r!$J3&T$VP*p42v#!zsHqyb$-
zXlyn_Z#)7PQZ__rjs_n8j%s&A(h43`G7ly`klMCnERIzRr>HA+%@hH~<zq4oCPxT)
zl*L#0jfA=39O at y|yYwa=&*uTQvk#9e%Z$mpJqO2}nvNixYk|%wOX1s|vxNb<Uj^&(
z=V(d##JJmq4JOHv*nw(*?@kc<TeM?QnY?Gm+z3dE_g&vRI~MNAo*06n9iu}uQ;9y-
zh&@Amh!eEYIX%46Nl0=yI1C&@5_q|prS5^`Tz0r0RUM=N-}4K>0aAX29HrN7W}}si
z{q^*RCGIbmkJ6UY6lJcdkD#k~d;vV}0n6O0oMkj}af$YENqiH6*cMu#EVwSDnVZ_^
z5Tqf>i1>>&K2Fl&oFtuz)WkVk7q>yyx3TnH>njnqmyM+5ju~S~)t98%+S7~=QdJj~
z5I<B7;S;{MFK8~!m at azGfVBDvAZ%x9H-Sa1Y at 0}-C<Ah=V5uaro_3f(fspNY;z-CA
zRzE(P*pqft=DX8I+*6?zb)}8}0lw9-uAqDgl`VXaLRskrH#e>mYZ_DB3>mhlo($`g
zj6x?y6i7J+pC7?*M>4l-`IsJ#VY{~cboIQnWD4|eavOv_STy&%M8Ez*Ce7r;Y%-Ap
zpwTZw;blXXozV?xd4KQ*&ijZ(nR9pQTl($A{*OXQtA}0+*TiVFNAt<inS1^yqaGf@
z)<|w&sU%c6KI!lNQ{)X=l-X5 at _Yq3QE%_``mc%ly0B%Z_hp6QYw6#2oN?_pt&X8eL
zAvG|Z at 1PxS^kTeZI-<pFD(8H5HKsEQF!R|7re8}H%o?u?y{70!aySc5dxFT{$yzcS
z7*Ya2;nhRr`I2kjo1u#3i-Pjksu&=#nrt0HUgaU?Q=EOpGH4d8EF#(qVCY)$8I%4q
zM{Y|gHT`%}D%N=s?73z;RPe^8fCV^B!<i{m&r+$y2lbSK%-FXD%$<wL7uFb<IQH<|
zpk{}H>8Qr#=<=h<D*%zd+{uLV3gwrcdinYIUFWt09$6<uZjNyNW!Z#jn3v2HYVn+|
zj_k5 at CkmWQT?j<DY!73H;1f)gt|+bh&r12=nqCa?i_su9SfsA#30~T7zDL2##OgoD
zZ!^DfntN7x?G41MVc>ayhmX at D908fdrvuXVAx+o{<z$r_t5NXggMWPA22t<%$K8l(
zgs^sI!Q3xcpTI0Zpt`uF2?rJ#u>E_9E?Zm=Q|I#<)+VhE=Fa#??M^kW#EtWtys_t@
z>CU#A`<`>qeiTD?GY?NSE`t~yEF_AEB3~%f%@EI<LnoqdvMkRylb0&HE|b#i0}7P%
zggy>`wDYdZA@;&Gnd)kw5;NHdnda|vfzP at 1cR57oxwyXeNYP@~m00t^dwew3*Uipx
zI-|Brt5KPjAL3d&|3mL$2`?klm--pa>PkP<8HEF;8p8?Y$5U)Bz0p=2##VE%v6VM;
z%t0iT!?JY_<YM0M>VO;xac8*HphL%5fn0k6oL{la{`A)UH#?}%+jd?TQyVaA8Z(cf
z!+<&B&x*428k^=2rPT&B2qm{tB7Appn{owy-y2JcPG;-c)2yyV>sEF5+($}`XlD_;
z-e=UydH?PpOF&aMgvDO^<k8&Wr^n6_q{cx&BOs(R<XLPBR!6grh>Mcq9S~B at tL$7k
z))~5uY-9!3-3xB6)Rl_MQsY at r=9xEuL7 at kI=xjn}r_uHANrbr;uJ~!^2j4|hR8DzI
zvoP4mag>OY at yeC9i{G$kbI(IqDSh#o9#`S>;ShR7c9g at O_g3}oA4O!vT_Ex at S#)Lx
zBZon4NS}uVN|;x!k6Xut at XnT8Pa@qCXf?&;MOFj;V-ZsSufrKv%n=sFI}t|W_&)$q
zBF6i#^nXC+2vRj#M)bP9ZZ50Mh0AIuz2e0{l<%=lmUQhGY83>J at P<iRUPah+^?Ugp
zdskM;zj5YCb({}NQxZKE2M6WCQ!Q%dpwxjt`Vz`>%o-<M;B(`S<awd-6zVk=A!Pqt
zrEge-|JuZ1Mv=WdG2Mm~Yv1mk!L39lm2P7yLe(;d+=B8$t*S}UvVb^vZj_UWga>u!
z{j)dj6T*k(cxR7c007Gv<SXLG3s&Fvm>h^QjmPymKcSDcH|pw575irkrFXObw#PT6
z%N~bjw5h5|q2O9gy7|)LHBfks(FN<r{%<4E at M_3DwDFC8I8=OfiWm=_6h%Rk9V at Z*
zT>)WtZqKNbK{Jfxi8c7(%_k9>uH~{i$&Rbio|UDXZ*fvyMs8~-=5@<_8xws_T~hrH
z!_O*A#D13tg+XTX1<Ac53`n}C9Gt2o08~g6pGsOU76+);HX2grh}k|o at 4CGc$2_Dt
z^BXM3!$!7Jb=8<x?H0c;w?rbWmS?&|(l1>)z2HoCCc#svEp1XL)NuuhNB{mMXEyd;
zs!(f}u<e6laX#3vZ(LZ)rWl=3w>BinOdv3|WW)5%sqCp(sjBtpPg6b+voQ^>3nOgG
zDsUvO)5o?EX~Gev$+k;oe}>JSgv68Fsoa2&5W{xPa+p7w$<z$>&3__5VmV4dD&pAq
zDw=wqWyt5qn&=Yzon%s#E$|E`=i?SD0hQW564W`<b)6F|PRDu6wyF9u(CHrhk;LiW
z8PIFm5J)YZWok;=V4+lmw8c)RmahEWb}s`il`6B5-zg;aAN$q~Gc{u<7+7>?V{iSn
z$?=4T_iT!mpvXZ{V;KmjoKK{9iM2`UO-VA7$0K?<$5O!e&q<Rr;p%@1f=qN~++B_x
z=~)YW_ucOwS?Qc9T4Dmz7;Bexh?#-e1cEqT|D$A%#alJB;$su`uFrm8<72sPNrXt_
zlMAuNDkF)K`D7>XI8ZB=C;&fwDl4FRkp15$w^Ow#X}OifKlJbpWjdwMMQX at Dtaz9Q
z-V4n at Ln+Z{6i!+8awkym7yll^#;rMGHMama#e4<K_PALT^ym5phKk=OUZ3)dd+^*r
zGGIaiFo+M+8=^Y=+3pW=6R=Zyi}WjH8 at cU(e0sNNu_g6=<*K^`Y8f0K)bz7j2W{H`
zmGlO#Pqt at krE3Gg%M~!GQwK3>##RPA(lP9A+v42 at l>bW!>C<G_a;2mdLoAl`F1 at yH
z6*!}s?YqLUakcGhGnL at byoKw)oZFP!b>M%s^_m^H+BfH~#WwMmUcNB8 at ReoD75iA9
zKLHVo%08I>AHo*k?gz at r^X8-S at WW|F)D{{BpNXXK7 at _F7zq2PSWvQ9}@B?MC?Pc3;
z<*hN3-0=`OBE=o}6$Ic}WclYWkjJ${l}5MRyRWPehFXe3nyalhdeV{VgS7$q0>UOj
zJEe*RjK^Z$W9NykrtSO>6O?Lr7f~+<4M|ZIL#gd!AQ at VH#Y_prAN{^GE2y9PKh15J
zR_i}nWn(gYRolFXDJjc=^xSkP&1?HF7q`q?9*=;oT{p at igtYka+qMZH8%-g**6ptx
zo#m_0XnuQe*U;RqUPgsUqiTind=Wf_E*dVo;e^tG at MZ5`G?LE?j1R3Wh|gOKu<^7f
zT?_LMZvj*PegtLV^!ZGK5s99$2c at u6{aH{#@)@$RFEWMf<-V0c(3)eCt#=`ao8?+c
zfD;T2nS3)a0NGPuTo@#KDy-?g?5u5zf=F;A$y<%j{wd4ZCpznIbE}V_R3nf?cSn13
zwv7qS>-#%4hl2`J|4=7rJEFcw^miE<X!MBgl!=Az+Li1Zw;~GlX at 3a|Z0WNJ(nSWQ
zWw at g#23)q3_H^eK4xR7MC7I}%;`N{o+pcEi*|{Zlr&v}VE=fzKCzhXAug<u1vurv}
zE1(d*8GD8)tV1)o8KxpWFZbXTx?zJ_zDS6r-kSvj?To2 at _&m6m0W5<Jh`&_SugUUb
z6lildhrD-VG)@<ECk_ZK1|$p!sW3F?!*9&2v;t|hDY*aG8`Be{i9 at 0$1n#O6U<+Ci
zqOmmnpNOxE9JJ>dCbra=cd*uhVVZs>Hz=?pC at h^syXYcg<2xzDUvbf0!}|pJ&cEhY
zG^VBC?B3$=S7gW(WALO0Ehz6a<Dejb9C;)8sdURcR>x8OmR7i00TK0}-57r+g7>x*
z`?DV6dbA2|r|R`z))%{m{XiJ&qA=1{LPT(@62RnTALd9({Q5@)Hxu0g*@sOr1|Nji
z at HZ}`O1$A707R@#7Q1;MQ#Dv_=nTkjP#30sGTcg%2cO*yVljhOb5h}cESGkbA6HSC
zfKohnzE%M(__q8b-x?3SjD0Tn<E@{fdpfrTZ><#4XTX8lp8Q~{EI_=%=_p<Rv4Nia
zaQUtt3$Apk_Pu-}&mYZfUF_s^-qR(`ew3CKzD+ at 65Lq^(u1EA!&agrEz$j5qbX7Bf
zR=gr`lM$BSYWwFB8j#;<6H+BtFn>%+jLJP5&s5!Z@*|I=-{@*c&M^E37-bFhA<}np
zG)5VNstg>Jo><If0=V`L&_d1dx&>b0rw+*KwqEA6YSh{RYI?T8gJespsS_#DYros6
z`51g9poF$r%e*ywxwP;$57AM*#+3pWa^F{r#JV+KSJJp&E4ady at d!@{a(WLgeN_(S
z<@|!sh6u)YVIli_PgBbi$zF~ZvPu%Aq5^j+K-i<xrv041^>US;>tXaV=Wxgxz3i7y
zoSZw6A-HTubbt!56-7(Jay~!f(9H=kJ1g*2B|aM;K>N9ZRDU5Lwo1WYX8<s4C8WX)
z^qrUgz94Xc#&FdJUH%m!xY-=69mrlZ-8S1#tdViTpdW)kn$n^&pRwRXeSoX8g#EU(
zY>D1#OO9!P#dG3Ii>`)wPF2wWe_(5 at zLL>-*k?6((=G?Ye7et)(AW_&``On8h7dW^
zUSmwrRpqy+Jdvlp|0nD|gcD(`a<n at xQtppKQVOw3Gbcf#l~KAb>g at Y^DQ50q#pfu|
zMXfVcZpF`dO5>7H3YbH}t*!thX<#`O>7A`vNawCl*MX_bKL1%rByxa?tnHHv;zlOD
z5<>ofc4x1Nd1-6?W{E-+^c-W**GTMZJp=)Zq;K<k&b#x-0jFt+Wh1sU^O-#tq7nC<
z20Mc4ymY9c=pkfp*2qAfdt3PyKdE4C5pypnwuNlA;7S+G3RQKH&N9!{c&b=LIcVhv
zv7|lQ(UDMZeXWWhJ)U`nk7IEi+r=b5`ICdjhVBbQ9OnYv4(;P!>Fk+4L4U1rkwMKo
z+GsQRw21$Q8!bmd{qzr`Ky`;#RsgGu804fX_ at exZT1zlVC=Ue%+4)h|8I8jMQS*X$
zU2P94wU}=~N}i$yaN!ztb1P_M_K9>PrrcP>PlB-VmLOKeg*{$Eu&@U*Z4r`9JCeqT
z4kvuTwy;j%udhEnH`&`kk}7f%U7IReU*4nI)i%`~j;M3BZib`;wQzgp=T1j7Q%&I&
zyqoSO*mZz7XayX-2epMb(+rI}Q_k=vR4-HGkhQs8O&Y5WC at -bH3u8g;X-vmN1A!5*
zgAQ(Yt(GU0Z9QA+czGYuwALK6kO{x!-ECp<g#)L?d0P^b{)z~ZOV|Z$7QY*d3pMqg
z22b0M$8o-14U|#Xqp&!`*s*IQn8|C_-ty%5q*hCCEL-^4G at 2tO@J~4D^KB5!`J at 2m
zGAZ+Ef<y%VnbaMTkAB06P)f!R?RNZ;v8Dk}{>y#tLK-`Z*zbptexA|6y#8hV_ml4I
zc-E}iTV>-cf3E?#ebIwGWo~NelH2h*Ioz0ROmjJBz=!(VByh;Kk%P1hU~$$PEvi&~
ztRLqO_{7$Uq65a5oHTjHW^DB6OY?wbJ_E2r;=*|a9grN0NI^T3Q>2?7{9_Ayx at EL~
zq*)_}f at o7{Z6o+xz?me`I4J|hpwg!=Ln_&E*h-L*gR(nEC+gV{ki+2}o at tfy-|HV(
ziNpLKqX_z at TNecJ^noB2U28UiXHQ!L17P~b4m)Eh9n!h{{x)Vw>8;=(EQD8A^5{MB
zKj%GyT>T-gnkjp5 at x$$u#x9s=^$h-aX16s?`OahpGd{=?7QjmPC$-i at f7vKiDW)&=
z&srTjWXZ{tdr*d<{_%G0V(NXuP%xD-mTMkt(~dxtaW;Oj9T03x0f3eQpwCecT_m)U
zC59DO4ArjtLgC^obm^jvYbdcnOwA1v+2&9wQB8En^zk6$Ng;$d5)0iEw364=Rox&0
zH)uK7kMqM_z*w<uLK|?I at BBORIRnd8+(h&FBJ4cUxx2C74Mc~%z7b8}hKg5wKrv8n
zk;=WH=YR0DI0shbXZJOn<B}j?^2bBPOtoLo)!nkxUEIZ;oFoCmBVH|ChN<@R#NE-#
zOs<zi?55rJ;N09`n&lIF=zmiv2g}PS at 4Y3=?qEKfS5an+1wCT0{te5wzq9ip6~v+N
z4h&<?Bg$slKT*)9ir3h6X93t<A;$JC&Y)^*BCsjB4>hwr)_|26N`B6pO*ci#nuOI7
zhqbPa(I*kj94896rGW6pCX4Oo=lt9x_Qa;8x9OrV0XI}RT8k<nS4+A<T`}c at 8%)=H
zo|g#6NOU~}b&6H00OcVgLm5N&_hv+F?kEFumo|3 at t>D)dx<8E%!sf4Z-kixiX)Zqq
zjtNlaDpJlUSARIjGD^Cm7QOsuxvWNw9R^6rL$I{fzV`R*f+u(yz9PDHvc3=VClo)f
zRul#T`RMOSOlc5Fb3<Ay-k5a1jDv;GVcZm;l@}3HYXkOt0l2cJ!SFK$27M^4 at mX_g
zxroT%Gwk`|6j+o7A)$`T8w7H9h^ZcZ18>XZ73+Cbfqe0GHfAh6jK$Qhb8bg?bO3ei
z=4?bAoz$_kvo%*-_)3;GsuKP)G}x!Lye5!#TJ^*>rqL6BMd9FqL&Ka2sph!a0(ES0
z5Ds*qh%Up1lpL9oj3R*_#07~*wim&t!=DB)5gBvK<d<NDrRicd4j10aq^MKu<n`39
zId;F1tMRh9=7PT8=qlO)i~_aAubL-j;ax-Xb<}IVK=`A5%u7N>DV|1TiOklil>tNz
za+lp!a^#T5JtW2%b3ShM`yvTzcAW3C4_^gajX at WP2@K=kUmtoW<8;kPa1~5EhOplo
zO9}+u3R!$MkL>G}pd>^MBG2re at GEue+zayfpqS#b&i4HlN0&(xDUB{t0Cwk at Mx$b;
z3lGUxJP>0z+T2jNf9up#r#l+>N~V=Z#Zse>q$wta*uu6XvDpf<lDjI$FlDD5%GMAV
zpD;!cPA?L<N9;yq^oQHj9)(XhHmb*MSj4N6 at rq_ys*+anZpTjQ{m|HeQSe_xOy%cn
z%30(kj#l#7uvT|)Zs#ho7UWY?tNG%EPjqUI#=6dH$6)QN9>34RsF@%@DZEy89ejg!
zjLPQsK8g^MaLew$7J7xYoc#*O63<hY0gJBCd(b&J=NcsP5cHasTLah5e at o08c+ctn
zzpNn at 0r2ULHE{RX0-eTwovAx|xq4UfW~35~&ItJNoeMluYu{{wKkc)+{gahbAp2!X
zp9!c)8HX at c+uRaqeTZV4YDQ-lZZ+xy<B5Jy+4-iUP*hw8gUf~TEM7$MKe^(;AnnLG
z;o>sX-<*BsQ$7TgFbmM&3y0FrvqE@*#<LP8npOlW*n*OcdqaZY#G9Rg0e_j991`o(
zv}(q3l|_QMDM1HzrOV;1keEU5E~5~H!4FX%J-0?XVho*D>hL(}o!#m^B2zgv&pjc-
zc>LmRc(;4^BV!>xSQj~*p(kpJbzk}AtZoyCII7rf!^m+XXR377g4zoaj4P1IX2?o$
zMfCAPM#*mwQJ-xJq&^Id!HT*wAi*prGf!+|zVb?0xL;1Wr)xR*_n9&uvfn8)7J3gO
z>lfb|_Pc>iOia5?dT<7!jNZ2jpE#-u?MNEe${-^g!hZN`QRO)?S!g&(cfv^USzC7!
zCKf9SrFplO*-`6e)E52e2g$0g>L1~7)cDRBt6q9a04m>*@D`n<W&zrN+A)u>=*eWl
z2?6shc92x7TYj$A!eZ6Q=4xXkAi-GW<-wG1=&JP+5{6F0;Rv8z%p>mR(anC|#Xq^b
z9t?$2rn&C&1$0ib@{pZG!LlGR4|{`8n}gg^XT(>hMx_!Msy{W|cQZsWR$aN-UeA`>
zD9Kd*)NouFHxL8c8Ys at S*5dG(He6g8|Es*-u;}+)E8s8t!&Ml7 at e&!%>F%5oS>2Yc
z-^{{jn-aG;`rf+6Ne~EiD9YhlK%{<`uO_yR0^VlR`_Q>HUCC3Lx+mFwUk{gzQJoMP
zA97k!io|XGeZYIa5P}on%3axMlMQ<TnvdGW#F^7EH~opZ+f*I-cn7Y_*X1cHGLhRl
zk>lY7rwg^JQsK|Kl%+f1_Rbh~*}A2(DLsFq*!18?k|z0ugW;+qdvc-%bP7v1)>lY8
zuM%)b<oFJ_yZMJdEB#3*-qH6fd at V#h>)v_zOwl5c$90C7Dr*-~A6w!-(HegXtG8m6
z1E$NUK(Q`eLTyl4dcNjhJ3 at 3k8PRy?>Shh at wgIDW-yegS)wAi^IlD1$8q{in%egPm
zNjogKsqYzc_Hgw!5q``7=R5bELBfFuY at 2mFYG$xTB2q6C4vDed5hNvnKJB}8opxC|
zr}q~!fx9FGoWa+s8_vM)`>!;Y9PY*kSx}cu;GxCbKv#^l&BlJ8`)7SQlKzb8AIt^F
z>Lftu at 9I(6g__(|1O-C)`Ki at X@KaZM6V=&-$;`TC-pyB-kRhU3qjo~B5f<-0af3M8
z$sCRu&(!B1gs2V8*mH+1l~`xY=~koQrcsb7F&jvPrLIN<W5ys9oX{V@`1{QCblAKg
zc&wlN4t~~l8!f)AZ1idqryT&z53MJ4EkOI_hG~L}6`;bfWTul$Xr}NowmZfiaN)rr
zzk#j9l(EeW?#dS11aYPOA7DkQbIG-R1$07+QrRH8?3&qpiJ!aG&XMFlJRlk`oTfRi
zE1|1SZ3g=YY;umHaX{h$T=+eGwGdx~Sil!)3u(0`rQcZ-m2Fa2;bK9)5p}G`$q^cY
zTrf`2y=jO5RRWw)gLs<M62*lkN+&p(<JwbgQiHH`e30quh!XPkc0h^$p{C(O7jQe)
z$%`C;8TfB&{RKG%MQBbH*vqDItQjMLZ8W#(YcTV&NvizgcEZyuqS<S3gt7v^M_7q$
zXuPmeqAA6;XAF2qn8{=%ql#0{NZoi&m#xPwRVka$5(ayZ8G}-(r_LlO%%CvLi|!#e
zX+~;N{p-{`oN3g=!DVp2f~{nCyKF)5HN)Yeu0PQgYel at aRPB{;yoJ3#nZJrcyKO-e
zTF|3Cic*?xpEo}buwI2q90C~k?m(l?k$BP-u+EC5y#+m~TMTO{=>!|c&G6AcyWK!Z
zr_*cthHa{C1|fXo)s5}vMvu`ij<pVodi&`uHZ(Fq<4 at 5NumD4|!YsVbwgmYBj5b6b
z(FJTrYxVom`%&Qlh2N7dZ{|MjT?G%@6pLl5iYeQUx8}tTnTgL?!jIzJlNMagEft_V
z2P~=JGtJ|&(H{EAxbmBMSKvwcnfy`OZnJNWZzrX~YM3YL=cak86`KX~xxYV4m+W7S
zdj?48f?UUsBDxKVO;N^gte_!S<WRi30W<>4N6Xwj`myqQObdSfLPcq_nMQ_~Y5ev&
zY`isF`syoE3>mkb;>T#?UwufprHNT9N9?a{0}N)4R$ggcmzqKhG$Fu}+1ceuTz?1i
zSjB1=SgVN6_1=ENq$wc4vdj_bka!~@28V9N^_C^5LMC(_E?DXU!-4eWZlbvr+R(~K
z33by0l&F$C-)%guu!l4EtWRdIMH@{KN!4F#kf>sJL_HSm+8umrmkRKU2_c$COCZ|o
zSf<icD$4L0=grSj=7SKsY!Z~qiQR=z<)%@Xtm`6W_<t3F at y-o8AKH;isZkV0<{-MW
z1fZZVg(ek-vD$0puRgaV44-0}$o;*5Wa&`W`(A4<BPZl5&g>eM0?kgZdim|Ou at QU#
zO}J$euMx>Y?|-|LMFT5_(+5l at p6IiNI8P>7x?eaOrMk3k6_Q4E(daA!a;qVLp1>Z0
zx<99jhCwAURL<ONGl#msmSS#pqY-Bl^cL^BaXTdj+yHkZyMGuJ#GgTDE)HRJ-}rr?
z>s*O4{zz^0s%0~AJy#RGWej1dzYJo4)7|!i0+7%moXXG8icPvLGj;qxGdTs}E4or-
ztdv~(2DtM=Ah=)?_a^mXT=4tjgYdM_{Fnu5S25Q)|3^o_`ye97vnKmlkSqGU%0qAP
zUuP{HpbQ*vG4k1Avj*VQQ_6(uS9}(ER|thI47*@E1D5y`2uNoLUl+Ij?4b;6Ou4AA
zKrIfxj5{B!q~u{W2lf}^XZ-VLJf+g<HCi3YQ{hZFPLdP+9j0hr-l#qb?Qp`D_i+uZ
zI&K90==uKbE)ViN$9o-Puv=3Wqye at u$}7KF1Xb{eSqPA^9)6#v0SwwFf&dJpk{4xe
zN7xhyZ$DE!tkQ&X>(dVzbc;>rTvd8k%TVOGr3lvtzo+QOz!cI~d*Q;5#AC$_b$*aV
zLs8RvA0nv8eTwYUd01>SHiiiPpMynvt%VZ3%PI-S`?M?e)tD04y(pN^pyi4Ge{uBT
z9A@#P_P#kvTs4C&s!nN;1%DB;IuvjH68NoSL8ID2&)d=>wKj7Rd1R{lgTYVNvbWFs
zpUtMj5h;oG-D$^}N}DBwvX5!B`HBz#4cS}gRGA&2*ahg3Kr_fXUYtJ^mOE{)XTV!l
z=L0aCV@$E at +1vpLkC!lV>3^NBOU%}7V at 6E$G3Y=+3m)cmYJ-VkEH0pO5VB-D&|(Hb
z;JD5%rsok>a-HRp*+=R~#HbIt2~?=pMj@|)`gnkr48Tg{U<Jt`Ub!*!Iy$?O4o~u@
zr@^bMeSb?~ApmIFTu8z&e*8yoeF&tnHlGQ}ixAA;Z-qTKs?mv-zg=H|4vRcp(-(*o
zAwY|Q92|=MW=?A>fatmHuGxCm;3botW}T{%^%@5~`jVVXSn}I0rx!Ql2e*KFoKw+s
zqjW1{s2@{t2-;w0G;+3Mv1aj<Tl(|S%+g_QM9Gl?C<e0~yf*f0YZLf=^vdmMJu^Df
z(Sg%cL41tT6y5I^h?@H|gmqB;R6-|o*{@NfSk-Z_I)VA=7Co5CejtX6W;SiN(WtYw
z=hv}j#>a-cF)Dg-ef&J`FgkT#P#a$ED+%%|SG0{4BRK1>o#15(i?LJLe_n7#E2%Kk
zbLl$;ThLf)&uJCvjcN`Yj#<<@MvE|UP>RL^V^EeK+~fQ)uU+W~RjBlSgWUS8ah6Nt
zKhAuTPvKfap82~c at P8v<W;DG#{3sALXE}U#u+e7E9Z<Q38`A&Q1 at m>#y|~mhS86Ou
z+7ueM1wcYvNj=k9yRl0AdVkr4w4A+3eoJKKh1Z1p05m|$zjFk34kuZrj8;4I2}xu8
z9INUzEy8>v2hl+tQ1Rpu%U8{lUB at -UL{kG{Yda`4s8GF=y=BYu0ClE^&N<hxrq>lQ
zUq+gBV&{{r_E%F$tlt2$FRJ%E(~Mn3I3<pq>F|v9ks!nt*bRoh&=UpdI at LOaZ-Z4v
zk#kDQV8i_}32Z)YCYCJ~6M0&F6ic=dh9j&#CpPcS{V0si2y5(KOZ?b^gdmS%0Q|I?
zf(o at qeA5gz=9+gVr@<lYNlCtdC6HVbegZwG*QI$NK9-b2S9u~cuyEF3A(2#Y^Qt{z
zjU|||Y1m0CFNfd~^E@~&CqNWQg}k>#@=BFJuFUecMhFhfz#d7X^4j`Av%Tre<4$S}
zkkiu6x!IzMvss4U31r*B`(nRbe!Am6`7?W&i8idI at AtTPSf#-$2Wp}tuC(a!L;j#B
z+D{Q2P#n#MgO-W~<Pc)M_qg{YP at YOhO;8ixj7T+iIS|8rty|-H$?S?XgB*mYYFau7
zMiQwjkI(GQ#xvGKO at nM{G6%@n{`lxLuMA)}ZoyBugp!;N5LL~1jQdH0T^RD-ECHyO
zVmsenP&To}oi?m#aumkVf(K~$jC(wh_2npo&kNp2-p*p(0?RYX^^jxexp7=obP~FH
zLBM*P^RR0U at 4{5QTzmEb4Vx{V+{73w>E)`ian2#=I*QO>WPZE0cZdXTw>8n&X6^8p
ze>vL1eX$=jxyrq-n=HQjIAtJUYcc7-BZpdt=tmCZx;?EruV9F4#_|?7C<5&(31lM~
zqZe4tQ3^3x<3XNdjA8^{VC|px=7!{Jjr;&PJrr|I1?w=>$?=U!g%1Bg8SwpZ00w7G
zVio~GFKOU?JN<;LE!)_Ep&5e+$xNuVE(uUAnxx%4R?&z<5r#&ZXuGJ;5sx^9XpPy}
z(j7!o{o>BlWHULq50OH)pnc@?gok#nMxgBaFA?BppV7}Qd7Y2aL3b|QTP?y8Pqj<q
z&76(*DdqicuEsNjP?eslH34Vf2>-_g*Sa1NA<Qt~qWv==W>D_{;;rd-*DCf&VSVh@
zV!?;K?|OyxYQ at e#FeqqkrgQGk54c2KC4w*q&_gqXTCltB8Legqd9<82&7_ at J%U$Xr
z;L;=H2KdFmtZPrCSBI<?QLj6ARnZXyv;=)cMZ+LG8EkmOb9pA^I}g}ViU!~QM%}8I
z*vjC^tb8T?f^?iU(P)~xKk3liV%tt^)j7O4_K`LkV=fw^SXMK|tc$M`3>gzyxpSQ&
zv+Ug3;}@HS`>&4HQD%;(BZXLRflvY$MGnEEZn7mim$n5{n&14X)KBPHVL&Y7h%_lf
zC5(YKf3LE830`MGR|8X%W4XSnm*KDrr{JL%w0w%`y+b!+3&d-H<6c|~Aj`z6uaKNF
z1(MENlcr!@5Bz)D&g}dqe$CvJ==$oR#nTJF(_TO?R at di56`(WV^fdNXiVW)d4zvs}
z7>+^!kfQJ^PXupp&Hvh#XLKqt*$2t(-UWH=r8x!|1!KlL*{8B4BOuW(#QJA>iAep!
z%mA(cW#eYDxPC%G3CN0t{<kfSk%xVoe{b9!^2Gv5uzP;tBFMQ~^yT4j|7hvl$V20r
zrt+!XCsK2JU8o!A`c^w^;sN!5{|9T^vjY~B^m<8-(1cV_8e at I_t^uv-=~g*34&rSo
zX?o6xJkpNnmm5CrP6$rdz~}p at -p&VcRq0!Ec)-ReVbny-Q|`$EoTVEVFt=|ToO+4s
z65k{;2gU)jk%Pt)pmjYE2brlw7gPqt;Q??-l!fDBWjk;ZNwc)v#Tk9XR2puTZP9(Y
zmGg6CC(F#C at 9k>csSagZ6U#C}qY!`aNLtmJGF%IZbcyUhrLfusdg3D5cQ=3RBINF#
zD?T1$7tQ7}Yt1(qxSfPL-dE-&Of!p0(p>#*8*G(185F5P*ts^dmW5}tqi9q<7n85&
z(3!GSqX##=)+Zt}Ua(LdsyHuFIaa at Fgh|=fN2*Bo-Uz^x$hyH(#6Q+j;f5e^@WlFX
zN+D|C^-dtapZt&-HuiBMYz+e7-l_J~mjJ0DK}Em{U)+Wm3@!Khk)y)ob{jx)0~wc4
zshl83vEVD#w&3jWK}*#FwnL^?+=0+riAjv_+$)OEAZ6 at 6xupbIauJ*K1u-x^@+f%T
zh-nK1aykG`2Lh3=o0AB5LH=zc(2X?Xw*-t<%UJ`fv<h*pAx{|YYTj$|OuCT)7~jyh
z-RuF5XgLq;=zY!pok5S{(|D_F7?Q!#b659f0tV|p`lbH4-}h4RoCnIPoyvOB3-Xk5
zCqUxN0&q1J^i+oeO=EClz`D;(GWH1-1+&_t&dd(ZGAa_Ja5kB6UPV)`RYMDFq$|#t
zfRuNdScS4vn8AJ7FS$4)g+zTB<biCL-7(VLYYgN39#`H-0$)QQGlF-STEj=;g8r84
z9EO*d&IvSf{2#FLK~Va)n*u3p$+Hf4(w1=mcx4ZDc9o at 1>>8gF-5AGJ^i;n=#N_I(
z9DC82`D4h--C$ks(kmFuJ)~WwV=NyFzsjEkiS9%Giy6qj+|pP$FO>c-EoplWrz?fN
zgTr$jIGC%}Z$71{VWRaxMq%gj$Kdasa7#oee=|<0l4-Opn2%qaR_KYz^ICf#>fjf?
zLUb)WZ8FW7{J`UM^Z;pANS3LN_Q<&dbTp&8>RKu2)`_GwUkN6cH{}A{h<|V4T==#N
z?l;wbb=L0`y{W3Q2BqqV%aYe*s*km=r0o74S~oX at I(oTMQXEFU$ZjZwLkERnC(L<o
zctObTsA!O{4;ZpVNL`g>|6vtSApZDd`aoxLPH%izmeM84sI$G!E;4R1`j7*%d;J0&
zYr?+7pN8qOOPlGGk3visA;@RmoD5$_7)FJjImq5=Lmp=l9+6->Xu5iS!HoS|2iOQd
zCVBaxl}kgrlb8ArBzwlAJ=0p-+_%rFR*#B?37XyBX}?gu(-*-u1S{@9ZHDEl@>(CT
zln!YQUD4}^IpEs3$_@=(BfBxt%Yf?u`v{<QH<l{R3y&h{dJ?iU#LEStJ-}U{%PwZP
zAOfg<sm9K>_Ygt at heXfr?91WFe<rLoR*7N}BLZKWsA&&KHma#aAGV98Me(9JF(`Tr
z<o{3Esk{?|$E!mSN=IqKp at +Zr%YZ(sx}T-XQ-bq4-CVjf)GPYuUVTDwvRFTwckqR;
zUmnibcbSr7*@ZO)0|v;Ky+&{9C+B$xVUhRMzJ{xF4ALUO>|qT5W`iw- at 2zpY9qZuT
zO8PT|^9($vTy$wO?={gy=pUklyH3fmzp%W1M5E!0hBFe25y#x()iHUG&*oww%>JX5
zF-G`V;Zd1XLIvl{XGCz}2T#J%8->A8mu at 1;IY|oi(kHH7uz}J`o++5X>NIkN;{l&b
zX-er<L at t%p3Mm})n2t3GRI%okoyIAQ6$^5HDS;)GEERp19DwDgvo1w_KfE`}%Op&Q
z*a}GdEsDfNNPp%nSwC5Gynqk6t9>fAUoPA79s5)F{tX9*DC2!tty47D&UtX)8o&Js
z3kwM#g%d=Zm)$oE^S!GPv!!e^k1>_eI3Npnjr=fVHrMB9dFpjQ$SC9D-WMLs#TE_C
zagXmDf^{C+TUM>q=QI3uAZ{b)B%qf;Qyyc6iP^#H0J6Ujxd)U)q1*tKA|Dp3xCcDJ
zh;_FZ7Zk^!K(klq%eBfCtsA3fL?%0l76dLzhV#Jb`dnQk1d>+ujCzGYWTnF*5cc}_
zmX at jt46%N=x_1G)hvXG-1<k5V6R=*T!EI4Z=}hVuZPF&-JNuQ{<!A;%8$tiZVU!Hh
zhw1$D`?zVe269~)$}T)nu^!m>{FCq;^o428HAG<FqTdJ7J1*7gf#!%wwXNOH=@L?5
zJpY}xeOz~#R3~k_E{0Y%wCZOu*se*kfxBf8<cI^s=_&{m`S1rc1ynPoBh?^&V^$zj
zq+^OuJIu&Y1G_3a at m1xLRv3s6p_i#s_8F>LFFDr1&4UXOdUUel!iw#CH7!cLU3iW`
zw<1v8FNtj8+v)ng-~0&!652$>-JpyL)_W|%4BRqjRXoD?{~1#7XYC(uDM<9&iEuY^
zS3l>YM!XbV9rMVez at h+a>bx4Wa|SG|t*r*{B7J+U(iEy_88o*%3N~H+bTM<Zb1Z;-
zd4ObSpn&@Nw-wo_5Q#f{9{*amUNTm{g1xhJ at f3~D<nKk_3ilqFJu!(_l}V*LQ9unU
zU*|%>vD$;1d%JT4z(oQi1((9qXEVuE3pcvR@?pS4PLW7C{n&U{0;R|v at owrGNAe`6
zfb6Y_n7k*vllE>#lungS6{$&9hM#deKu$S&>oX1)9BCIuT9tpZf47FYo|cJy65TY*
zaH%V!I at j|SuWBkSSZ!83TAHhY8~rgmd1*Cr?DT|PM~&>HqEIl%+VraaCH>tf=A|Y}
zkx at gqp;D9JWT07?!sJD6IsBCJ^-^B_!jC6;fxBI20;}Lq!VPR|RX}Ve(1t7vmd|{*
z%+y+*WhyJ}98%x*Tj#FJri4)9jrf!5{+Hk2qJdI5qpZ_TzHHW5&O6jkKc!`{$6}-p
zVWg)ED(g&=gPnj(j_6HYB06MTvob4Bu37c2+diQ|2R4!-gP-QUz<^S23uJifqL3kL
zYdzK at 0KMXyBgX%##4#lNKo=68!TYFz&uq}S#a`30GI2wGf0lb7p`06$oxaB8ZuneZ
zetdHPnCR1JO}1#%c3)>R6t at aIXA2Z9OrwXUVi}q%2V_`XBiFjkJa<<VIjuX8cG=3B
zOL{%?SvqQ2c?32tb<-+B^cK^p5*8cKqtwccrsECUF|DCSN{015K^3F`a2jZ}DI`W`
zZFP>J!k_r`$(LeSK_*VYgo*mjI2?!f1*PNN3`TPi<-dUHVxDPUP0~Dk24m$sQrEUD
z`8|PjM`)B(*Q*k)#|-x7+407e+x{#G5LO-d*`Q^l2x(_UUBvcr?ONMa{#$KA&zbQe
z8cA!;3hN1nFr2OAUo%NsXRCf`C5wiAq0z6~%!|}O%Q}gmCg8m5Dv$yaXPBb~@$Wz#
z%;P^*(aohTJwVVBU<Ay(q62x*0(4#e;y+Xxpk|Wi+mhcIn&KpJ0?O(LrBI^EA#2KG
zPiP#vLV5pZfP(apiP;mwbDqx9ECv_fyHud|(8+xWl1(9|Oe#X!xDrmwNER1cpz{UN
z6AN~JwJoe80b+6tHf+xRl%^3^3JDBo;UC?>w>7VItJ-pJ`=K8UY&`QEv2%i- at J<XV
z@@8V+4D<OnO!Z6OC-;{+62S6cgB>u5-m7`5L1&bjIe^nqYN3sV&jb<-#C5dwF!PWA
zS at H(xnIyx=VWq|fW-9*N78N)lf&>h4_MLm71zbW|wR`s`M8h`=cT#lSGS^Q<zPDUK
z9s?8f1wp<H1}XX_m1 at j1-oI7k#rTr43&-KIz#~Bbt7jtR+;gP$1wdjDHZD^()B8Qj
zHHo4WsS-IL9v3(|{+6n{j-NayfSZtMLqp!^yn@@;7onhw7N(3se6`WoJ}82RZ`99*
z0HO4{WU6t at vUm%d4GKR>1p@%%uvspvm{T{NRVl6vUP7}S0>^R4F$j?1(x1-T%al5G
zw72xRUfT#$rkIiJxfZKo?AI?q4xwKRwPCmJ3AC$J3Y(w9WVb0hy#UZDnynfOYe8X&
zgTmbW at B(l#`v61+OOLhtvaTrmGgj<Lh-Q&O!@p+gO+<^~q}1+!HA52&5@);W?8z8?
zvzw(`DY?T#fy$MDc_2VVdKYP?hbm_+3f9EY{TgI;#VounSOZq!3WI+liOTq9X&t3+
zE-Al<Z9&cOcMMuxQ{U{bY#OhgagLV?btv=~TUa95w*!fY{j-#=Hhu$2O;J>p<`Z5o
zU0EwnUla5yV)^^&uC<cwRAVOoTcgE0Xal4r at tB0Lj-yR+qqN@D$jO3+eN`A$XuhYi
zt)h?S{XX7%F$Es>^<bzFH9J5ySM;>e_y`7fa|Y4IF9gp1%TO`AZ9DPvHs;}P4o*nP
zFT=mpOHnD0WuVq)7MGjdnHFbA_kXbcYq#f-qS^OB)K9v!RKxp%`F0kMDlI}AJoCnt
zDjCEgDyag*GB-EgY;)a9`>MxNC_nr~(>@TVn~hNcw0GNmi3UY-Tz)l)ev=X*<Lm8F
zE-hB5-cYl~Q{j6UVyIu?WQsl1$VN1i1NO+QMY}VYtu&^?>?%L~v8vcB&YX)7aNu5*
z=k6SuLYH;Y$4;T~*)i~}c6O7C>(*^)3IrGxF7Rfv1K<5*dat!787J%DgRdem3#IeS
zyRCu7iuJTz{D<(<N-6Er%5mOb0rT7E27e%IgMVdpG*03 at +D&1rdvydBoS%f(<E+tE
z1aYfjpz9Oa%fxIk*zs);=3&x#MFz+FdxIKJl038DX5gg*`j}}m$B_uL151g*(#bYg
z{3dNSg`eSoS{Q9(U0<WdR!qe%uD5 at cKWPRqx?0mRSO9mnR89uvJ-GIe9Z*g|ip{zT
zbhESyeo6a1iJQ#;i4_qcRA|quQ5#xcqb3T2VilbmR*tp5J4oj_N;x@<wwtrT$y4Ep
z>M4MJ$zU58lKUV%w at TFX`_^_wT9T^D1jTH*FNX7)6=+h_Kz+*+Y(`_l>YD&N9K6
zIwr=!T_y8^fi1Rh90_~slH!E(vI=h;id1d;^F?>00jUE7pBj959yf<|E8g#|O~BkC
z#g1VrH6IXriTR1s_T`sXYVBi?PgX{@al;v3yXkc(>s=B&0h*MDkwl~$nh{5Qv08m|
z4i>!U?LxJ!Mi+JnVZzyhrRj8mRedr=OJ1mmPN(r3O|B4E*g^L$U_1c#XVbd4_My}~
zlx1;E1B<e3k{hYqw<G(O))(wE43P0uFo;`sX-O;$6u{=309)d546p*bGj=fK0ygnu
zr)kq8OuSwJOXvLyD|)6sHK~bxqi91DIH8!pL^l5OE?!#;aF#H*1apZ~Mh4f_gixbL
z_;71B{%l5VX<BH!W at cj>a&p`4q_(ck#Wj3x5Yhf(e#*%6K}s*&mAo=ukIesqI4l0H
zGEt1g8QbZn at vII$jkkcq&`76*gHV-qwiTuDleg>|O03{7J7i)s*kKMrQ at 4hvh`}_8
z_r~t%d=@amkqeNh<3j$i3QiSIXY~o`G;6`x15{*^_u7yEjWg`le()Q(LnWq=T7UmK
zm$2d6gl*ynk?B+cwv(%B7M6&s*gjB>v8l1hgd3KjV<7EfblH&pcY&^SIl_3rQp`Wc
z(V4lNrJvm^T7t&wM~8W1NVkp!{mFb-c5)eZYzeR-FT3pqK#_kD#cO(A2xXcB9{cr*
zxAoL58pLpE-D<|aD8VY`?*$B;QKeAnAEvct=M%CMYdyZ6^Nzi1rquB!Pe=jBI0dR6
zqZF=X54*Hha<ehEQWGFE+GrJ5P!JrYG+%x*OOJVET3koyy!h;~9E|vHAc1xjM!uUP
zUH4P?T9^AzVEbb#)@31}`eEkGMs9(=p-1a!y7qTV&!0#IeD3a-Fw1G-sh;Bl_k at 9L
zHK^S&xYB?ICB)R7eVuGMv~PYYr$wQt8hK=f+a_=7!73H42%W#QzOb<rVWXonUDd6&
z?7E>gQ=0Tz_Wd>XV*U6qAK`vsNojGixoNoGt%xY2aq0nL_MmC^EOx_Y{hf0Yo&4ZH
z^p>PNr-~osZshY$6A7tCSK;iwXyUK~DCrgxXO{g{cBoqo+qlb*J^5uX;L?f8QieG?
zBn8c6NY1jyWX}5tAC)S|_{VTivY9bqHjV7%R}&uU;fNrrj7xjCTHE at TJAy-}W$%}?
z)<>UFup+rGtVSt at mtmkLi79(Wr5v|WDIxAUS3|>hyj~~1ZlUM5G|nC-$ske at z~Z`v
z#*)$Dvm!#9r0?t^3iNFA%vYv@*_K`$=*vx3{N{S7$e<GP9RzLMkMnvPC*+B`psLoc
zg0sd;e8pN6P at bi_!DB!()gSEpLy4MqQXF(cdI8i)q%9Nh_deB<I;>)bUQ*%{)|)iQ
z;RIS-0RBIR3obXDUWgDMz96;OaTE#x&(r}6Ndz6G(j?>zhkF=323|iR-ij+miDOH&
z(Y6X|pHD%A$+?=#h!Ajx(tXyZ#2^S5K1&d$nPt;1*kBQxXA$7!46CrphC$tds(*^u
z!u8H~$+yZF`%!KEe>FjjagIzy5_cO0W%I^?4q%)g#S9xiIXo-=_D=fI=57tGtSUQy
zpP<>Wb~(<&KH_E~tnlo3t3O7#OPAa#$YnJ at gq^k+A>fE`F>4Bw7>~kNbaFzSDI&(J
zhzLn<<)ZLLk<Q)sZbt2xZnCKJmriknyIX3}n4VE1bX#W$OIm!WjYcn=A3(<rP^$Jt
zkIL#PVEQ+*-A>%@%ns7$0q887fZdR91yM8xr6OtLcdN}3W^-uWpf>-$!g<(NMN1H0
zvpRBC3Z at hlx<&)lc^+3xm-0OKD*Rvl*Z)@)1Dy+aZi-#c{(qLE*@Z`D1+lYdCiwiC
zSHS#SBWhQw8s)%+P+mSh9pFTt108y(q-jcWe8+G3RH>MEy0s%TG3Ur8F_qK6ig|Zt
z#&$nct$PbkN<##Y3dtmp13xyi+Hm8378`J|!X0EF+m>KG9rAg<=y7^Y_>G#n#3OXt
zULx(wK{~SG50){sC%Z2BDs~boVz;mUTh={oy`H=Ggg at Am*44xTzi9cWG`(ZcYvl4T
zK&WlE{mgWQH1}dB<Jiq%1_K;KCUG|loO+cr#bP%tBk{zy7AXC|E#p$eM-Y6>ldDJX
zp`ED_MbxDmF^wbj_sPp`8jzRAss7(;>CRylOM}Sa at 7A9qdMk(N6W`a-)7j~pj6VAd
z0+pn7pluQthy2_S4dtABJ<~m{XMY*6o0j!9s$R94`ie>=kXHrFK&h<L%os at f-5F(Y
znYZcuMP>ujfOs50v at nbGyhmJdHwJ00OX#mL2K5tY6tLZe)b at LE3(QGQ3S)TM`u{M2
zYJ9Aj1rLZ+)wIwJpghe+z?`UfChHxYI$(sChM`Y%R}0#K`o|yu0!wb*29>jQt!uK_
z;~Dv(uV^wU53EOU>CU7q0tUfGCwzNG&F+e$)teH at Dp3YBb71<_R_WAcxz11OQA|W*
z0p7SRYQ@@sVsFfz3_BNUabb<Eakv8k*TZlrBH?GtyK=S#d%q@`$5pBx(7nS(mINjn
z3K`rsG*D{2=;#*oLtL%D62rkkh1h!Ns)MYS)4!dB51BnpW0$k0N-RUl|1{;?A*B4I
z2Ry~|l~U7R1jhSQk7d*2QzJBiJU;3=X~yD_fr=HwKDms#FiF*yO0|*s+N9x}xl{!T
zmA0`mBAxpJ<Ml$h0F_t7NR2pU+ at koCR;7Aa#j5(H at MFPEZe##N=+}zoTmFne|NhWD
zU!I5q#ox7W&6<qLW^QHsP(h>v35ub at JEf5v3{I=ph!sBZM|~fa{3iRCXV at AW^=fET
zR at mDxP^68ECLLBKt<z!ku!f0#x%wr}MJa16%T!w<WYNPcpu-QvEa1X0lK3C$v|oTE
z=zvn1X5FN~2QA<&5Dz9$0Twg5f;8jblNY5*d?mL^2!*yf8D!!148fo;%qecHme^VK
zJrsY>n{?T4c$F%XSgn$~KbQ-W$q9vwS=0vkT|_*KB83{X2v^bady`HeqN*MJ9bp%-
zv>%|CL%0OxlxEQ)vGR3%t)JO{rMdbP68t${fJaz67aEYOmNyqIU^nyKRNf}fVI)_l
zDRCxm8Fy!hYaAVMfsfL!buIzGFNgG=Vzb|A0Xpkwx*o;zjfh~C^X`krb={sAeiw{5
zcp6V3qyqbXMMJ$RqZ&2%wYDsuG5PE-p?LDppHY65E_L<#)8H_T3*SK*Z!i%A{#%VU
zJC^9 at Dl()=R;oIB1h>~#9vu$fc|nRQ`e<m^{fevXPqOlNsSxKf=SN_F at 9YY7HP<Lt
zn!MSZ2xV(nang|Za#a*JL02*7Il741`rD>8ssa^JGmXqPRiv(&lj&lpVW8raJu_Bb
z5^#;nYSzSqqhb~!QH0m5?Aq0`k?q%yQw6hzH8Qw2IYbT at 7y^q!wH{_WhXauhkAalo
zcvEzjqOUg67qFurN8mT0i;ckwjOsKVeX=`)#0X0^0Ywc2QcE)o*rjhcln)t+bCGck
z^}HP0wlhRZBfvPg8I}kQwmdvva|Q+uM%CYp2T&x5wX{wwWGZy|>dK@=;T^ojt(`J1
zV%Y*FaB8`D8;AC1`#WN?5T2ZUG;OF=P9!3%|KnNJH!_}snZ8>^Qr^qr;J&*dpyg2=
ztw<P`LXO?;_C>Qzd<4e^Bv8pp7q<p44J#Vcn&EL{Evjw2F6F2gfR7e@@Nq7V1nqIQ
zSz9os9;0KX5*VmkDPUxe7xRp_)TJPAhh#T-iVBckJ|*zDhV!aNmj at qzC}ZlWh_ at Kr
z+=QFJvi~LEY5rD at LO2P2I-N$lWO^XJ9l{6c*oJi*5S>jEu0Or{^8rw`I17 at hN4QDL
z6kYR&<+$sBukGtoghpbeTNSqW{KWfoC^bn at m>vnsP5Qz0Mq`|_s)CJ}Q5l!cQ*kFz
zS=PdF#y?Sbj(N{|`Hdi(v|n2iOk6;p!XtHTZsSZ9!l+?I%}&dG1RJX(XU5dOn^NUR
zs9_eVPBr@?uwA${ohqXl%I$ud^15EUsaU4!H at zz+|CXR%p(YhQ8D#n#gm=*TjUDg^
zS)@R!DrV~QWcE(IXD}O<D&&@DuP(-y2DK4 at 72N>4#?m|u0NlsgQ7B at FbFGgy3-FsB
zUz?SrxGu~0Ujvh)mJ8NjjSe3Qnd;ja2&4X0_cd=4C4!;g^+t8=dXsoVFsHkDm)_Mc
zd=2 at Yfnpl79th)kty%fH$M$b9{G8xpUGQp`AmxQ8RsF#gnQhk+m1k=l0E7w-1MPat
zS>9d5(Js60T at ObVdh1TA>7!nVQCDzy(Ly5ZfZwq$dCsr%?dm~e4T1jFU5W%rYhWhn
zxAe+CfI+*s9^8k<mkpepAR<}g^-}(95!%F4CbraoMfvI=(v+%*74PY(f>mV9PxeYb
zFqJwDIywc_cG9Ru%tJc>yD}#UY~qRGCH5SX_*H`>+bczdHv5Zo`C9}_P<lICaTr2F
zdr3D#4~;<4&fdF%aBW~5h{5a)uaL$BSFX@?vmvin>|~yZTPG5lS7O+KTlOH#aRjcQ
zaWv<GB4LCSxfTcXz(dX8E%F}xfAaI@&FgJ$kOY#Ge1b5T0 at 3tIxabQdL+A)e_G<(L
zpylE-lx)9qyGKgXwDwx7QhHWd-78E%b9)r5msA#pF`29LpRH$EPs at AMrZ4sOYNqqW
zW4HS&+LaGs#n_r5Vhe{bi4qNt^4`(VB&+IR%o-`**7H6we0nS_m at Ju@!C&72ZJr%>
zwK%<XG-eD at j?y3 at dI)l2Mz0VGOvzD_O3snI5}_1hfyrnwGS|e7{=SkWra}Wll#1Fq
z(oNIU&JWaon8(y{=--nW!h1Z`Z}r7mm<e3P4;^+<IYCHJS*_1Jgs*vttjj(fAi#*_
ze?Tsfv5&AR7GZezEsMXEWop44wx}GHogA8e<PRlIj?hD?X26dY6|)ubQ~c_5O1-pT
zqmj?E$mw7`8myxW`B)0HwvZbDlCs6FqJ-&2bX`>#o;!;2K90*Y<Yc>WaD69jd$`mm
zUQ~jvWN`$VmxkC8V-E55A^UdKq=H^Rp8VVAWP~JVS7=~NKXBB6-I~9r!%DRPT(I#B
z=k>JCT7Tc{p*t7heFgVQ6GhXU&%^iC14NRqHCJ5fKbpn3C7X9b?E&^msN|lsJAsIh
zzCXIYeorLwVYvIWvv1*HU at R=fdS9l>np<|$IU~KL{Oo{#&es;|>Td#Pk<`2(7r->_
zFywnOy4}#*d%*2A4Qdgc009Hx*%F92B--XqZh*4u5C!}{*-Tj<byaF$o$?q%1w1x|
zZ48hlV>b`O1mb``h0W55ey)Rs`d*v{R}-!v%YAgO|6ZV%zs9wwBCeV>>`q3S3|{$`
zmxXUDP4e|dbW&Y**Mj0&lQ>%L{nAkE2`R+m8!LrSv|@kvDl7Tqn7Hi%7y5O{ix4F4
z`AqXg3ue!+jwx|ktGzZ_CF^j72B at vlT{zU6toN!fSS81uP_+qC8Q?(4zkUK#Gu9;}
zw at VEJ`3WUQCdl7WXeRva%$FfOvTGz@<)>P>M!3F1%myA+ua*_=F$E at U0}?*j8vaUM
zD7^DU<Cuz-ty_w-$$}1OF at _(s+4OQ4e*M~b_$;dx9lj}k)eE(bSPwJF05R=U+cfZi
zwS5m|#|v at k1rA$g-^b|sg8MM=0G8la{ut|!=2z2~=Gj2kxy{aJyI(VeW=Cx!6`x>?
z7Jk9MU}OTmvj!q(eP62bb1%LUAP1HeF2PSZvtkSkVzQk7meL>xqR%+xH}R!u8dma$
z^fu>QK01>{7Xg$)tF&<~v+J5hR<MTKqY^o*?K95BqLVqFN(>%_4#h;6L0z>t;CyTH
za{wAH1U-NPZ>@MPfo>JC_-Vpq-8`^%#j#l?qDAl`w1i+MW3k80jF#TRhX}8(PN=D7
zZ(evMDhB9S`EBM>wc64oae(32X-Nio&qwGv&im=&_pUe>`#@~ph182VP!A)b5w>{!
zp6w()Uo%~9^Cg5YRXD-1%JE!6u>Hhf18<x2Aj0&h1R2Gwt- at x}NbVnFZot1BYsFc|
z at 05r0=dC0qCmsDn%>O$n9E(H<rXAXVS8N{LrniUskSs+LVs%yTp5p8^Jgq?L8Erp2
z0+fEHtZv-Cxth}JA5v)mTc?ctxH at 0VT-5v2h+r>dpjv+qqg{b4zp?M9Yqt?xYA1 at s
zA-OzW#SW$i6u01GI(+_JQ-W4(<6rWF+#8Mn-1{lzq?8x9)!5HsTUr>Hl|5C*rjAXq
zYqmYx5Fiv*fu9v6m&cKi3jtO%kSQ9}_12rRxs0uc1*}H`Zn4J!F|j%c6Nwh*f>FMm
zl(}81cXa`gKVPL?#T+(lqGJ?`Kj8kG07paL)8Yz^O0eOWt}8)|s1lRdSd8NHL%!N>
zr2A|P&+)F|ES=%##z$xRNkO6i6e$2oG>EB&n=DOCL&-{lg!61rJ=H1*2?Tx9bgiK(
zK6@%3_`ID2jNwi}q-2ACpZ&m@=GS|Bz(RiI{iB`oE;g?*H1Tc{_H8{)Pm2GpK+!oa
zhq at UBXJ>h7;jJ?i%jakx<GuFN8oEiSv~O8HBGA?Sl9iGB at WJI5NcW5NWcFZG!y%%0
zHFT!C=s<VZS_g<@p?eFo`f#xI?RvdL7q8(WnQx3P9+b|X+~A{*qR`yf(Joi^dXe^Q
z5zp~kZ+ob%^u=K#C3JHLkdQjCQ21vOP2SwQ(em88TW3|9)vQLq=65U2q6doFE;@p{
zM2Sy^d{$lA2r*c&#OxK$Gj1+AQmdt7DyeMC#~py{GUklmT^AS!u($u8=Vp-FK)-1x
z2BWL4QAhP;N9yBkl(jVQ*b)QZ+0vSzpYGqRsxk?WGP;7`rx()mw3i2d(2CH%q@{PD
zD09=yp3DBSzzD*gdyxpYXzO<3Q7T7*pe$M3<emDwie-GNd=}SA8!AuHixlu#uqoIy
z$6L~8iE%>91K{mSE?(zHp(zcVkjs|znLn->S|q4J!g$j^>tAbY{N4Z#4m}|ovUQR8
zZW8d!|4C`4FR-QcL~8Wc#REy&oD(J9&cLz={;jyMMt_M*1sf;x$TbMf|IEkuN%=rp
z-0Q-xRu2Gqu-e at tfp=?H++|ga=8I&M&F5l3Q>sxPx>9zfY8Oe^7-5*c%HNK34Oa7m
zPz?^Lb#g}K0A*%dqcNpn6(S*DWCUhf9T5y!yNvx)misK4O3`t at zNZVwcvs$RNH0->
zAk)FYl<lvUtwgMLrbilfGNB9QQ`SZF10ePUh(>2(Y9QE~5%s9T_oWI{B5{2W)hJKx
zEf*><MbN8Fr1c>QKVZ551NZbgKY?Lx5A(Zq^a3OfCX;}h4>06CSi|%~Ykw>;O(UtS
z`I+U+N}xj>s at P=WB6637Ms0?<2w0Xsr2XdHkh_0l`%UbP;7F6-$Xysd3pO`O2I6CS
zSu?Kkrrg$622#y*wH7KU*h1)y6_w_l(5?7)Fju4K-2LStEl%D?JF^T*4W(squ4;xq
zRP5vc;UAeb4%%glA?5{5FR-O6_=rJVoaglU^;-Q+j|Y_S!1^eg+ENp&qMw$4Mr<8e
znr{}eSY>)O&RY-0SxT}A_HA5k>=^~)C7pn;^#NoW2`4dB9imD!eeGQ~AgkSmskDN=
zXeQEF76u{!nVy9a*i|H1K=9L2-a+!KA=tZAxm+)sI%W164plnZHm4Tj$Cxysio!oR
z6I?x3gw~S!Cw(d!a~(SB7M}kyc6zb7vG9zVz~JW+IV|((?Qo=3Y~;X;_?E5oB{Us1
zGW=!uqgzBa;IU{8e6T%|F%Y!IF10i5UaTe<9 at k|9UR*M=(;zoCC<CfPHqvANbXJq?
zN^{b*IAA=fw<#(CM21bkrEAl9;UKfRQ$J1j5J~<>a9!mVUG48h-QqFfHFzsYdZfnU
zdlclj&UEfB7Yli&sC1?ejdHAB4`jqz{UUOJztY~v5Y|iDuytD!=81VpLov~`;P-v0
z&3{l5Y}^RZ?rRi2OoJSu*l at qObrs3*mel)j8QxY3$R6Bn6wf{#NIAKY7DlpeG-st9
z;-k2~deIZDsG=li2fThb%+IX2&pb2>R(KVdg=h=j<$W-pr(2H*lw`}-OOO{+kmRx3
z_1SVk3sLn|!iQN1uV9)i7c5*9jA!Ccs3YkFkO~pI^T+U6Wk6uC{7L%U7Y39Io~hmQ
zf``crKX~Ci>`vNZV_bj`*8{lk5y`ide`BXAjC95>hvNNZhrWqA`Yez?Qi1jVf$u<F
z1j!B}#<;n`UTVO$zl(*;aLdW9opseQ%2pi+92a^o3^-1gFWdOjw>-(~{2Y7q=X5=K
zmxn&(cX;NotTU2psT{>%jG?>z?b!O5&@RHTWTYKF2Y}ojq7D2-JUg`iiG+nn-v1lm
z8YDQ1BrUv^`C$m at f#LJNbl;V5NPUrM9(>`sNonPf(;T{(c#gjRQTPl?ydM;rFO6+Y
zh_m!CnHt at S#-<??P8lH`{Hlqza@?j1QmKb%Ie<PfMV;bjSY%n(aJT8qK_p03>~t)b
z!Qn at Ce<4=;|5|GZZHwBC6k$XKc6*`prI~sNK1i3imw%lG6SXD|Uk^!zlQ<7?oA-^b
zz)E`mOOVH8z(lA)|LW%zj>D#VuigO-_r)07wo^>>#?{Lp4U#LISbYO!|MN-ozn;5?
zgPd1+s9=owfS9xJCbWbp48}oVu)T at zX;?JrG3O|!u3bQJn9mB*%@mL26|xuaq3weE
z+~$>}f-FD>q&-6q)RA at e$Hmp>%YKK2!Fzi2SY{bl3G4+SelcN<bbli{N$xVYS7Vsg
zf-uNf<v~|S6}AAyXQ>4!11tM3KB?Z*tfvelXP`@p7?8F9+Cl>`y}4EQWO6G8#Zvjd
zdP*SC!n=HW=4S?YUYf9ckgiRjP`7$lt9FJQ>U7oD{HVn}5V=@P(<dNV-1udTd5pJZ
z_>w-Dnr`hILD=Z(Vo9^2Ny49z3d0aV)C0j2{|756xb=D`TXFRY_)R at QUP6?oBM#;8
zN4u-`yq5){!~8GO{~N#pi;WE4v0*)Q;X2<c%Zxa?9t)wxC&tQfOqnJ26}f_6u;px2
zUfp<?3^vI~j2B+>J<7CWj&zRhgD(KUp5n^@0bwfsd-%MY#O3v+$~lfrr1-OKL8!c9
z(>=YQuvu>?6KCyp4Mxhof8!)RhE3MY`%BAj>RXluM+;khO<!j8ws15x=<$e-)Ld=q
zpu{qto~K)rZ(r$IO>TMZkTAVvGT&YZ8eB4l*lp%JfXATV>HNF#7LAL#&D3Wnl<iJM
zMBjZM-e5Dyb`!l<3C2ve<@(lD`4XBA<g^?KS|d2<6F|mJn at h-EI;RG&o9=hoVz_wY
zE4$5kbF(^Nbnc^wv<_5;Rzc^$7Qc$|T^Kwy(n=61N$SSZAJSy2u-U?;aLg#*rMBZj
zdOEWWcHFBfXV9u;#ijM5+FaE#feW7}Z1t+=mJq&AA*s~X#%upK(0LfIq#Y(z8)xR}
zGmf9>*KhS5dQQRJVY4SZ$D^K<k+z4*|8ujk^ICrwKa4jW-(&=W=s^^WUNr49uID$&
z)H=HUll3mQB$6+&BN6NryLrsB2-hdIaS=Hk{=0`VtE61orHSILM8UAT`XncGNtht0
zcA39?mwq?b8Q`7fW>f%xDpk=#+n%&N{xr=DutvLILiO6SWhM{H9&>Ep_P7Z=h1}0|
zzMS%w+FG8;subv3?oRP~+{Hrohi~`l=$>F+X1%CjJ7{|&GJ=5IrK2rCJ<Q2i)^tO?
zt~6Qv)}AjE!#B7a^uP%q65&ghMA4J;4{l1	SmxB2yaWyZha}I*8q>jryy_6u~R^
zuCLa#KQ;VnL+<C$3>WT-V3{BUGpmwDZ|lx|FmX`Lhm5*q{8SbpEAw4mB#WK~*r6<)
z{@GtF6~HfDD3UR6wC~+bXW4#h?(poVUGvh;XLuBj2#9uTtU*5)L20n8`PzUidcT3&
z=1ihoxx{1mtL%tB!Fq8VjC4sXjVA*|{vO1NKYB6Fp@!=HZ)qK1O2*b$K|6G;hf~n=
z86AK;fo0`THMyrDy0#b8Ot+s*&c~ftF$6EilyvkaJEh#xj%foyMfF%+dGHO822tp}
z`!Re&cy<gRQ3b1=W`WgqH)S&*&bmSP&m6u4H9V*ZW7>HS>LIk_ijQ2^wEiy_5F}UW
zZzD?CTw;Y7{kAh;n1Zmq^oKDC1#wHH?UixCJQi2U!@B%JkE~jeK5^+$!r}qMZe`Sy
z-PFl)LjZd)C~gMPZGWF_r5Y6{Z1(ScCJ*c?h(OcT%q4dZ)M80BeRMMB8lY4roRZPL
z#F1_~nT*n_%rJf>#7{g|j?ix}J{;>#@p&NcDI?=nIM;0PMgM?d|7tZFUOa~lTM9;I
zs7f(S2poBkJ<27~N`lt#>PV|-AYEsiJUlj4nK{QX`)&C3+9wvBw%^|;)*Xy3g<HHY
zPa}$ynKFg2R_zTdz#j>1jlP%?)RTJYs^7md0aM`?zKRK{S-rdkvG6fkn`XiSO_g-|
zl;G-$7L~EQ-PYftgiKE<Q45^)mO9Dz40yn%mR at GJRS{X_?GyQE05S7YEmn*~q9}2l
z?W%I~RPt75ZVMujb`jSTyHlx!F*ZtedhQIe*SGmEOf5Ch#72$Woz>#oD7M<Y=i_U-
z!a>xB>BHj)WyfQh>U5?5wO<evgVeqsoI_9y)?ZLYo<CuamAyrn*;fhJqyy%63E05c
zFBsFtTOd~<p0N_jAH4={Hc&*I-{Z$hpJ;ew^r#NCWGj<{7nO>zAVFO9*yLcTR63AN
z#{KXbrS8}DhG{w2Kba8t{CMHTxogpy78={GQ7RO^tBJavoV8ofZ>;O5K-Ltulc5iR
zJW?`)#Wxqq&WJeomQ(vz|K8mcai9)~p7`1`^n}E!I3-okrss>qcUQ!>GT`|^brlF$
z<$6rC95o!*RY3>0 at u2&Y!Y^WD6&NC}so}suN<REJoFckUleXkh8D4XsuM5(rDgNyT
z7cMN+=*&>71iuB)@BM#%ESi0cm|v at i>96D+UsJC}0mqc;>(hmRI1)@2u#bs&CCVAe
zM9-1!EMQinw)VjpX4U-o%C6_}!`$(NK&jlZd^!Ow%y1!^o8_687?9UB8tTfsj>Nlt
zsW5u>5E7K+h2=;f_I at R@U}dun-d`Zd-p``Z;gYHh_@&$Jf`^nu5hXh^E$gHeY2@}^
zXYmf7@!w85TnW~X0kKt$;t at O$K$10IOLq<Gj#i}_8F=Gq7rUl628fC`$Aqi|&>qY+
zH~({nZ3VCzP4IjX!tAis<mC>;sBE<OppoQ3lNt8^CZ9MP;Sjq~H`@2*Va;z$i0j(_
zqtW`bt*P-dRYpSwH)GFg(}YiLmJ;<gO|B=qK!2DeO9vcx%29>7_<n%NgK=W-lBMnL
zN^e*rY?NyFq9E~!pBR`EwMXj$nj3;NOV3#>3g6>-4Pe0#kfiv}VE(6Pau}^9c`ZIq
zN3T$K5aCCxWjgW3;V;Tqz_DA5E!NnSE}93}vBbJ&<AX;g!Es|spB8M-+Hj1tNh)%5
zO!~z>wlaz{MWs#j$4-!@#s!575EcoChFqoi&8$-fW)PeW85Z(g(qux-M0$Lj1o3K=
zWh?J1iD%0hKXBoBA+SQo1l_*mib;`WOT!r;k(g2-b-bE!AVJc}k<SM)x}OQe+r9Z#
zU^~c>x%62fq4i0u?U)K>n&CegbeQp-96Pk-#T4|@;?c5H*I!v$DOLKs<Rj;tdr9?C
z`tfc87mR$4MN#z;A1!N~N at Qo8MRJaRf(aAP4OkGr!&JhlJh}czCnB!*gS$^k{?c3=
z-9 at N#@PQ{YE)c&!&-cD}K85v2GN|sv&rZRUg<t2hGH~VHZKoP--dC<*P4x`rM6sFd
zBCNCZ;y#63s_NYo#=lhJr)si%klwq at DMCroBD_lL>&L}d8W}0+q3XZmWwGe~t-bVo
zo)f?QpsEI6a>&=W7q{isef71~={wz%mvehkwYtieM;DGEBDtwmi{SdPpO>}1r#0ZC
zJ(CWCG<g`s?==+J?ED!gS9~*+m`*|n(1IK^5~XiWs9oZffO;gFM)>ZG2On7EiOpDn
zcmCk1Poh9EWowG?M!Vm<W2~AvfjVH#Y%(V16hX8f!`x>ut at q9;n~xDD&oqMwCZ#bB
zc at G>TssL0ZofB-I^>c7=O%n*RXRjel<AC3K*EQq8PhKkP@)zUCL!Wz!ASw&%X8+}C
z*YzfrWb!xojksj^)r8p`0buLc?;6<af65mGVGK1Y6FRVO59f!q?)+#ehLBlrerkzK
zn_A*u)3SAlf28q<Zh?E|W+6st%OV?Su7_i6rlfE&-9$SVRu7}ow^3d6IN8mk#ZJ1Z
zwuNsYB=D+DkAc<nbQ9KgXulZ$WVMG^2t;NAvr}-6Z?jP at NbS^PpjU6s_cU-%sj6xx
zGIOQQ1L2<qwXE98IR))=$z;&Kjvd3t?Nix&QSK-|*Zp|2C)4D$TN^y#gSr#?n3waB
zZrsU1x9_qSz}%UhmWGx-*hO!&o&n9UmegM-_ at 01tdCVB=5dP7 at +C<raseQ at UV36ZN
zK3Vra4<G6sBOh}^afA~V%O~l8K-jF4_2#KZQi1t29HRKI)Mw)uZIv;w_9>}K-W_0A
z;8>E;57g8u88j4I5LnR!%4%#ssY^7`1jGSskn?3!SSevF+wHX$Z*Ev(hFh$9Q+FaZ
z3fgK)s^^UOgNuf`*U>{YSw+Q?H^c7my0!FtlrsHRQ)Zj~;!9!k{aMzIHpApSjN48r
zRt3y)+|9J|BJLHcucC{Ep*(ml%TdRj&%UTCfxGPa#|Scfy=2W{tYklf19oM=Gh#1)
z>b1upx{v7Jq92}cPho~qI!ajcU9iQnppZQM*;pZw*|?>CnSzNU79ImV`z7{Y0 at hQz
zESE`fqD{?{I-!u$FrL!LLGYW+WEpJn)=wu&v=w0@^8%(hNWDb2TDfBkHk~%11+A+Q
z!Sy#gHj&jYZBJNtA)xAc=ikAhXsQ28jh-AUVBtXtb7qYXmc_<KoH(COllm)dUxVV3
zJvvA<U<(LJn%Cz at 9MX&1JBjRfAMzWetKf8e%AvdqI;}|VY4{`iA4$y@>i7;(0X1#%
zmij2z(5{}QsQJ(T5XHIr<SCWaW4{Or+_eDycn$&?SEcfuTZJ;EJh+;X7uHBSSf(|g
zh%W$)%}&0+2VPA<<-s}|PtO+|+z`Q3 at tSwg<Dbh}P!)ARxzlFPA_znnKLef~xU9yi
z5*mcN(Ddj!k740VLiIhhSON$U-~?YHcO<<2P--(QB*(}Qj={9kaJBEfyUHVAqSA+R
z>3#{YteQ<gkzk2Oc+7UdNc}9QR;d~enw4yR>KT-CDZxe09Uw3iD=A48-Y40lX}nTb
z6p;&WQ22!unWV;)q^ihPs1_vTQ*>nn@@t}W$cR#|FOcSm-%~*8^V`m<Cm=J~WuQxq
z%LYN3f<7I&j~SJhNlr<|uGHwCdQ1xQ0Bv5g!~8E2Db?5Tmzm{o2*D9$n0|VlE0^Y>
zU=SNMz71F;{M6$UeKATN7F$w-JJZ at Vh_JYTkm}m?!aI9PmO`1<)fnO?1`gn?I_qpS
z?y@;yMquSkN2iu8fw8wh^j&eZlYp)c;4;KTLjh9XzyjlYNZ0!ruZ~TUgH}qZmjn~S
z$)&3$=E&r*$LjUC)?@6pXEkZDAbar~8cGKsMzHX_ODM9ix}2f9S5fKpH?I*WZ`2I@
z2~?as;|F-q^1U5F{7OHANX03+hLj_<nK))P%3E<ZJQm&;|A=J5)QqKn7roTxzE^CF
zBfQ^H&|>1-u40!eFQUwdwx5Tf0Q{)=&X=<Cc1J90qrujaDK?*%15q7fs86Yx_0n^J
z^NLX(6-z4|`#`$jyD4LE?WT}Gk<13SQt;BCF}+-$1AXz&d1oxN(w?HJ4<#+eQgkJM
zJF%^8--R7k7jOo~)OnK!zxGSNme0FOg4JC!NOPuF0LC*1A;3Ja03IXsyZOgA;L?6k
zoFAPonzKb&O07ohW>t|5QAk5`1w?jt!?ooKQ!bZx&P}<$!R&k`_g)Lj-hkaj3k-8J
z3)c{#K+ug1q#rIz<N8{%rxVseQ`Vc)feL6j*<kyzh94A2ti8pX4}|LOERV{sZ~ofa
zD*~hzitpK!zxQtNCum1%!QTU;M{C=YMayrrkoDYt5zEw`g<F%E at 0w8efMW9)IqBoq
zSt)kVW$xujCdF|+&o1BL`2$<|-ywNsaK7uPrggC}#x4RuD7 at h_TG)odylyVa=NPjo
zP8)jFrNQMHUeZ-n1=Ky6b|Kb;BV-IZ!t)nt0dblbR1v*nXcagq$m4<YVGj&NkOI^2
za0EXE?_zdzn$E|&B?{Z?`QXg0R>fe*+J6JIksv{y#`wgB!qq0S9iX^pA}T1<1CbCf
zoFqj1mJ~@QNsoqW7Leg;oYW#&iTow}jzD0kL;`&$g7*S;5Ux%AQbrIC%V;!El-T3R
z##Mw8>ftDG6Un?9LlJ}AG5vep%4C;!MrL6TR=jv)41y<+4;;QHcLOTGXsrk at wrb6N
z58UsdeoZfB2E7b&isxcUWh#9huGAV$^S#Ro{3}L~c`R`2w5nKiv%zQ at C2;##{5F*6
zr$debXK3D{&&UN7iT+hx87H~lem%H;3I?ouae4ivOcg9&;)_GZG=RJ|_e>XMqlEUi
z^BcEi^5o_Lq-j88gLpb_&<WCi7?N0KwfKX?@RCK%T4>)w at 4w7LV$}Ie$uDa{Z3RiU
zXMUegYYN!7cDoqwxone`${@|2#PF->x_tmGL|9pm{%78SE+!z#?qIFJSHN#&D<*jg
z59``7xQ8A>G^b6uhvi?!Og{m+!+w_UhHE5Q2dDfDd_5qZCU5BPmt`peeyA*=2GyPf
z!g7d_&yknV;Uw at Z`W8}8`dNa1CMnRI-%3sM0f((i$e;U_u1Yz1%EXVR)qhV-LtkXP
zcZuw`B*lH@>SCQG+!&36z{J&->Lmv`Fzjw>B9#(Dy9w`H&%(qR2pYJ at u8;@2v~r6A
z0{=XG^;qR5Jy~+>B_9txshe43Glv3eo6`oJ+ZO=?DHm1`Rs=zf696$l&c8M{{R<nv
zj(*3^^qU3+ at L}sRr5N=nz(A($KVbHhI(k61RIY&{7H5%zCSx#S1J32PDOgXMV=nYO
zpa*S{T;mjTiR3n~h5FL;pp=mg3Ixs4OS(Ks+?lAS(E_r;{$K;-aob}MNvxBzFLx-1
z%ZH=~-1Sb$2M0Y=zBwxXIB+)v7aju7Jhc%*mx{>6v?*w-ww5^13N~$jG*@WR|E}xd
zy-B_CTJGeR2$a`qX$hXZV?k4+ at S$B;&Mb`Fm);-M!&8d?2cV at 9dF#m%=ik!%V<~;d
zdd~dWsJhpn8fy*=Lred{QcMNTb$?8KY{Q`k#rAFVa+bc at yqAM;TpVxTbOa>w|4nsS
zca!(~j=Ug;<1^9i!%+1>vNih`cE&zybemCC<VliQf~@6BSaY%wfLC at zeW*AziibEP
z5|dHrY#Fb9&X&cAhtq#Y=fWV+iIN0yTUbifxcUtZo<DTh$mWn7X!$ca$`a#gN8sGS
zJxYgP)oHxzjW)Hrf#g~SQxJMbmQ!TW;OOuOh{Y9nLB+!bI|g#`&+QeOHvY9rm;c^C
zWJh))t{2X?lt|2?fS5Fg25E`6>u#(=WJzLzh-?gpty4*Ahz33e3w%&;bSyfsPiLEG
zQe>TL>Ch2dgW2`c;M5uc#(yDG{mu1sSWcRJuD?l|Rf|8EEl~prQV0DO4&(>uQ7ByD
zCJwR+DGo#C0pjmtpua=oenM#MD*59E+njNhoL~!3&{<=+P3f`F)K-ETT+igKm)flJ
zq$TA)<@r1ff=e~dE)+bLfeC0bl+JJzI{<{aWlhm`Ez_C)QTr2Y61!7HG<y})mPskR
zYtRaKsu3N;VH4x6%2CchuM9p%O7F#s!7s+&@ewa$B2t;kxNJxYvfoR}PUNVu?TYl5
z#!MHP770ku_dRHePHnhRi5*Y)cegH?W|wjikCloE;7umUr|*6y$ol~Z_y%`e0|wWr
zK1Ihe=cs;j*NQ`-C`fO}j1y!DG^=wVDgrXU@{?{bKkzUEBEAp?8`p)l%48ZxWzS?M
z=#WJgKt*C at oOFn<z=lZr4*`XX1ktW>F3w at 8fjJ#po2d7g!Z}IM`%zo9Jq{cj<R+#G
zm#sYos#(z6%s!!|t+d8iSq at nQfD5?2G7p~VWwcs!;vt`tutpI{1#PY|w&oIVi4MEq
zR*?**bI*50^^)<}sLP)AdEtQ at u}Z{S{u?4aWq=t`L5g-iw&nq^#0;5$vcmq-_K<ft
z)8#;mRacLBLKAN0IC&`TIo?<-E0$WS(Q&21H*REsPdD5|IAE+nc+XHe1XIW8vu%r1
zh$?LuEy9snp;!C}^_|`r2#bRT{Hk^sJ6|{w9mP3f(cE!*ZftF<4-t14yxYscpv#eI
z#k&TtFP11gQD5P_AqBRReU6fJahqhJ+>0GYSlI}@84`<FL1N=Nwm_4=W;-$%)l*ev
zDqaNf;%;)J|G<C(t{D(oq$LrhwrNDh30Ri64j?2xB(eWsBL-lzr~uBf>bTeMbsNCc
ztIp?KCf84CKGp6M<C2f-Q=}jX+Z0)p7ZUkP>CD|zFTbFsl+Vu?p6h?`N$#fC6x?$^
z|KZUAT1ae5G3JK}rj%DCAC+n1f$eO2gQ5*2y at JZb+EfSO=6O|5lH07RW8|b*?nVDe
ze3TD7W}<zLeJ<<Ut0%A@#kiGc*^7S82CU;L7~B1sI8>$Rs1e8T=C=_Jlp&NtO{H9B
z=MU at 0Yb~o#p3fET9DbB*PcVf+%tg~q8CSjSJ&&QX45plbfOJDs>;QmW%}RogJ-u6P
zyl!Ef5maeMVDHX6&qHRAvL7m1L3~=h#v5B3RbScX`v)%9-AM&~td3+&dZ;0SS<!E=
zch~6ntr+7-hSx4C{hdM0HTs_L+mUPG^S;OtRY^FRmyf3?IowKw(HO@*aMp<sq&J-B
zszwY=3dBY3OssP_l4i=K9^S3H=MrIHY1tG%$ST|L6>O|e+Uo#Ol0#u(bIpa->t02T
zIywDJp|$2_3OE7%P?X5+rpB23Ee@&opt->q00S%&E}Ri%F!-#*YEM$GABEtt6+#sz
z`?ksA*P<S5V`h5v-87{&1 at Q_UzJrMTIx<clpwAuZxwjt>RE9%Ij}kDzjCjgYf-d*0
z)B6(LvSmfuX<E^v8g~Ce6JrI(Unk;JCPyt<3CQ}B;_kh^Hks^8HAghr0jc`?lPb$3
zjweu7{jbeFJt3xN>NHo#L8g<z{q(I}O9(Pb=;*P_vHV3$S?}EDBixc=Xl7biqa`3A
z&9-V7rW0 at hF?8D>2v;^6NJQcmmnf3<4;{}NH-%>$b|W`Z#im|4s9C5T7HU?vt5^~6
zz7W-bXG?X0K+A{oz?Wub#tF{6Ns`W>%_eW(z1ig>r_TD2K6kLzwd4)%Cp1^6_zmLs
zB=hU7z<Md^HV{4zhrmF&^B1;?4{00(j8iVvJ;8}BzK}tkf`(lADhoOtDON4q3;Sbq
zROCj#X`!yu#hc;XJb;Dg3(vVf;#`co7sNWWHg1TNNX+P=vuhVv{{WFuTZ_jKWDr&A
zkh7-&^eaZsaMhW^-IVtF61)%2A=F~Mv>b^<&E^*uTBY1weot^MweTnHPO3C-^P!QX
zfwKm!7oLRvK7Vi&Zl>vN1i$lB->%R~<q`Z%9>5r+D?85=LYPe<MSBvmnoFZ{KC2*~
zVidH>X8l31;DE?$wZQDPkp)^&(7)3X_~hLTIJnpy8b+#L?HfLKpsslF{Iu)=VtSIr
zJs|oe70M?{R=H$+{*X=_Y{jPA_w9uM%gs}m1aH*M3{`lexzWE~Y(D+6$2u80oh at dt
z@~uo_c1R028kCdOK_{!DN}!h9sTv8JTtnkv)UEu2Mp8Yp)0#Hq>m1w;wGIHCcSHnX
z&mKtUaRbuA=f=eAPY2^dKP0|102~nMZBC`KT%cC{;v7Li<*rTE*X7tm2mK>m=~EHL
zY{rSNV{-HD9Rhes1z548l|wZZUm_|f6_OATCa#J87~0Br$2aq~9UL2+>ZTGNLOHsM
zrV_1)UsLJfZcos~e)hZG-CkxyvS$`Z_CKjB&+Ni54+4Om^?Qj(T=us}OU->zf}B-$
zl?T-GrnkJLC~Og|0@|QX0d+eISKe?7=@#yYB3Aux*^g3-7fith&b$6d)j4AysBVx5
z^sDzGk_!!npk_|!A2}|?1CG`wU0$x*^pQ^mY+G at ET_nDGE253^&3t;7)>fMYcPTn6
zS>Nm71KQ!D6mZLM#GGnGljs%`?LS~f|GxYoBnnG|#MQjWwc{f~CWEFPi$FA7X4+AY
zxLb!JA08eUoqc+WZ{fJAsk!zAZfF*Pt#4EP_iQ%sIvAQ<a+8W!lM3k?bX`T6$0O$M
zyyeq7vg&fI(Q+5%o7GNQyAs*mt%pU<*k6^n0Tf9e$D70Vl4^G24>AfOw^o3FcGd9t
zs^!=we}PDy84Rm at w~%X7{ReLAe8XPl<wbfJk7n6F3w*vPQMLb;0^7cisK_^Hm_<9_
zjS3>38X_(zNmZ at iQ1$&k$AEq5>P6OIsrrLWfI2&>BqmGB6dB<~6-oRbtI<y#5gIWX
zdT{W6O|n4Nhd$Fne?kHrs<o|y;0CkA=L{_l95yz3Jot at RqC~S3(AThG#N$~;Uv)2e
z+<)$`02`Gp3$L4YEVI!h{c&qvpbeg%f-MQYS3Ak#eQoCBkKYf^`tQez5XDVy_*Mqy
zZ at uUwEX%X9;}agZe!|bjic_T`lQF1MWp$PXUEe`NeIDrb9d|dv^r4WyDP6ZLsN??Y
zL9=|sa(MUiO7aMuAWuH=cN}zdKQAlM3SCMn>UvW&A)=By_+6|wHHs^bI1H9(gYJY2
z-5#**9`Z}@s8Tovi)nLd^s~DZNN2>Ix|F;1)JYjWkNX163kdr5bsf&tLf-`47Etb&
z%`mbwNha1X$_zD-Pm+)o<TFQ)PWQc#9pnRjf+$_U5CVK93zmzG>T&s{86m%`)WG^u
zALO1<B!H(|Q_MxwGCPq7<x(UTJ(@TXJ>xQENy+_0&Rz^1pOOT)ONnKwy36_ at Xx0fe
zK;vva$)phmzv#(d4zkUxj1KRV(L%S-tP^Lh4mm@{D3eYIbb(CYf1F4V5?|Ftdrzbc
z*g)4dp7-qSQz3R7#fqmA5^K!+)BMJt at a(()jOnRiI)1&s3Ukm}^vO{aRuyyVi^~UW
z06m)6{ztI`jTP3BO^H8;bHX33p`l!j?#QkGa=j61!)M}@_^`#;jz0UgVG{#JjLTy;
zlT8lJSp9fPH-w)Q`fKgbz-jcrRJF++lckmFe>432fYXv)N6UQoMJr7S>}nMf!O2iB
z97zwTzgeol+d+&RP*&{&;D9Y1R%FRC;nNKTrbc4bNRzk`R%7a04hLyVf){2a-Ylo|
zSb1VM<$<_?MfN at h=ZbC|bJmi6`QDmGFf4UCS{aLm1Jd68M11x_Oxg0gHp- at DDFi)W
zlNzJmcj};9J`d&CA at t6QI3Sj>c%->KDqF+7-%_W`3kSeX1CPy6^Q+Nnw&#$`hsNcd
z-1K&cJW7#j3dn*cDW?q6tbI`Ci^_D?j2G3%4=J(<p!x6?zr~vOs at Jn-(F at LEWq(}W
z5z_w>cd`!GRw>~5Z|x5n|25KYC-GGiUW=UV&XvY!>uDIduR*mVa?xD!l3A-agvfxU
z_vFT2ZneBV*v{Jo9VZqs0&xYf{ktvalM9BQVucEVVB{iQ>T3|KCoLcI0PK>Zw74Y(
zxL_V4Kh%N+z5O>`pv7aa^PqTJ0(X3hihkTI>^toV8IN?;1HgP%ma25^$Y3qDeBs8`
z0exTA!_<&uSsTVz8@$Fj>gHStzP#mT4{AQvc+Z3!;6FSfcCo%NnH-vvKY;8PjJ+s-
z(vx!?zDI1ywBK8TZ>XI&1=CDVM<;;M%#G?DBBK1%fXN8G=iVpZfjaSblGkbo79)y=
zNQDW-xYL_Zmi1rqo6ZI32Wo#<TgIDMy at N325-m**=?#dmQ(o3G^dw1S0g+rnyP30z
zg{9oxh2@#7S!U`$az_R}H;4yJ5v9aLEE4{Rm*wTF8A6TZr#EAoeZLyclZ6;wFFy6p
ztbX>1EoxeFZv^Wvo1PpD2-aJY_&%Hc at pPWTU~LFwA4&2 at 2Obx`=6~xWtjq(Y)ZLqU
z(~AabfffyhxGXrt&VZptvTs*4Om_}oVkLfXR(&m>M~GXn5vM-=xElmzTB8GGmcc~}
zdIG^lyLAEh48xuVr~OiENW^sko0{5)M-YQo at M=*|sG2c}2F%C8`ZwPiBJRh0XSFMR
zVX~!VahIBdT>8Mp?r}M1ie??!a1-^{$>(5p{p?mMiD4Q0c;7f>3W%c?j!+D6MbEbI
z7{unNQYcazY)|DVeq<H4ACGM_L%B;T2H#SKVC2X)_7Iq5t!iFBEB6nAHE*gtBnen&
zj{xJ&U87||j)9x?WjL&2@|iu3-U}e1J%sY#QBM&d%@p6Bna|=K=>H1)U?)tbAfaZo
z^(z*ZgxVj3cih|lLAxMJW6fWS(jkSf9<WD;Y6XUcu9G7_807CD5Hr?24jqMcW)3g0
zpI8}l!Qq#P{qELn6fu*ir98d0p-6t*QI1uAMCwghs2<yG?uf-K=~;bf>k9s|BDf71
z^<%(eKB>|w6I1?|+0+FEYd-;O%$@|OLV2bO`7Q;@XEwl(VXnm{PJ$2x+xEs~XF$m%
zNPS<oe&Bl%hkLD at e|%%n?4mP at G~?PRfsn at -Y9R}oijK`!`1d4TbU~t&4Z>f1!-&Ej
zt3I&6aA{W$eXWY*>e!nfab(ah;qX;Hi=(^XmjUW*>Kft%l5ad|sHlqd&0Huxp6I6g
zB;b6b{tkH+6E!t68{M&A86Dfg0*dm;QBzv$s%8qHtRm+<^TJDyCHe#ioB>aE^1g*-
zPpTYauCRnQu$T%Omlf+%so$INRu)i31VXjTA>P1YPS<KAWj5l7EAcP=*oJN_M8^;<
zBTb;c<3b;*uE?=t_l8XFb#TsL+;qpI4bx}Ml|O_{xAs at mHcB=j?n_?cV_n49(8{}!
zD7m at N+1)DA-RSc*a$z&G(sD0!k!cL`>Tw8Q{0+3;?Zng*yK@}cn08!Y^vdY}^Zgdw
ztAKSy5LDkF9- at B;FWR)m3-W6=Be>3v0px5ES-|lnw3WyRQ3iu)DHhS!6Lx3pAFg>e
z67{m5J``<Q@$Bp45m0LIL_LXH8#xK#F^jy7C+aDnb<aMlhzbPp`aV*Xh=Dofs)Oc{
zrlb$ojttV7Q`)PetNL?F9mcgRw1GIN72?EySnJ_%$#Vvc)dt&d`J?8a>dfu{nvGE*
zry!QxNcEgvf)Kv9kog_u#MzVa5^(>tKpXwj_wYgeW}uWP&0+IjV^TAjLI#SBf@)H?
zbdU$dqwKLRZ>AOEr#PJuTDl0)42y(QBG|z4y=5niOhKRe5tiVmvb&bqqy7N|nK4|3
z>SK8M_lgdo8J;)zIkVdTA&|Yd6vL_~eS>t@@qczkn at w1^z7prmdRd{3H|8tttEu3t
z@`_*lV3^%0!BAB~8*H5lDyg>E1ye1pc_YdefleL2RLSKmr)v|wljl%*p<|^w!~v7Q
zCcdw)Z{YmM-IG0XI}7&doYXURyN at R^n at s|ZiBI-y(-rTs9X$z5AOe_`i72sD>r?2Y
zzi6SJ<8O5^=WGfUeT=_XAb(ge%;^!lQhupD{Y>%Mc!S1K<{eyI6GjBoC;Q{Xhi$Nr
zldR3z2UjS`=G96YP^Y8`#jLZiw at 9$ms|Hy_8G*<>EeTlkd(BnRf?eNtR3yNs2`0DO
zlxq)B>fl^xaw!z|L+X1}$Ul;@E1Rk*cF5iIVw9QyTp<)OEq`yQb+aue*lvHEMSL(8
z35zSh+xyx at BZSrt&bF)}>cR{}bze@`{VN6-eD@=!U5`MaetPTHGoC?~!X)+o78m)W
zuB(EH>+VD at o}~o5PgvkxjGb~j2K9D at OBLc@(JPuIhRw}y6Y&R!!z<0spIkidk=vG>
zWy7$v$`xvYi32&5twlqq(HJXu?Hx*yzHlacUiqv@<s(T5-w5QzWUEEkDQ9EnHhm?Y
zuI=?P054Uj!a0HR{1$u;?Pm`rD@|m%-P1~71VjsuW(_MX0<fW~I01X=T!SRzqj0_K
zzf8TD)%!`bfiSDz3{Y;z(E{^<AXLXIo6u*p-n9HCsFn)Qpi9DLjb2<?iXc(_J_EjB
z74L;9wCtpaUc-_AFHmG2kvo<lQSQrTi9|Z0PgqJ<GI(4yeNaI{6STFkCL0(NlI41T
zh$9{1tHY)pulf1j`<PCdlIK^9a}Qnv<gPbY>Ql!YaZ#c3@@&Gnc{vbhsSW=C7);fk
zW!3?_okMlVX{V$6>p(emk>_^zdhNpUg4X_I8-JFyl^YJ9h}Y(>DUcegN5NMOjvmQ&
zXV==8_lnCgq0J{2T6zB+RO-p{v))NsvGQWA-dI?kwF9=Y8c03Clq3)wFM}T=Xi8 at v
zz&?Iv+3446OqIk(erZ|E?|_R{iT<UwIdQ(ICf6;}dlzZsddw@&-SlGdZq#f$K`16m
zn`C|lmtYmV5&mq|`<7B90GQjiUP2=e4?w?~jq>HzLi31TZ5yu1bfye}2SK-lq>8<x
z8NZA|frxoH;ox3pCEga6z<A#xzn<hBZw{kLH_5*)as9PV9*3MQ;Kn+pSh~PZ8i*KJ
zWJi at c;mL4(N&Cm231OJ85~c`?<aChvX!`QRPem=us#2lYUEBQAh*=;R+cB|<4)yku
z$XuBX^}%!#x}ET6c>l!F>hAmEQoGe<DrrS!yzi=bn_}AeaZ>AzGwa75Shy2pZf73H
zi$f%IQpO>|N;1 at BA||7(<;k9Aorzc|V;y8-Mke-pdEp8I2jS`v<yg^i+bb0bqQf?P
zB8S;Lp0bn}3y!70zEKL6pc at V(j(;cupg)whxPyQ?xOHXQ-{*zXotjAmLmWP&mu`D_
z_87aYr at W46+g;1d(_&zg__I|vv^q30?QfbK{h-A=P6=*I81wv#;DM@>9;%oyIJzrY
zVbEb&Y{Y!3#7r*VTxkEM4K(0)C@&-8BhY7Tm-&8;veQ^M{@LD>svy{HH;~u~o?Xzu
zxcl7}-zi++oMV<nLMPbWW0N%4msoZ58w%t>TQNW(3-oq>5nlzunLjj%e6 at D%q%;OA
zLn*jFG2 at Ey(Em%7$+r0#+Y-7 at 8yxYCA_HA+{OFDZTf}DXej-IjjaYcm=LWxi9<p4e
zPMsba!BWTP6Zvlo{X-wJsL0h$=9^ALis8Pw6+)fxu at R(LMQ=OpVWapbQhz^KW9P#^
zr)44XwWm22Xy*dj2d4%I1kxxL)bB|Hec0Kp(KDLjFX1rGmzs1_Rzrxa%T=G3Z4^on
za6dj1!$+37z9&&MH0829`Afu5Jut|>&@>QP{Q;A-%k6vj|I^P&GkuyhvDAjLO*4mJ
zttbTKLIgOhR5Kd*rZ=nIEcxU#9P|w40}8L;0L!Iq>h*){W`37!S6v&C59a;z at q9U+
zZCK41S)gtNKq3#(LH}mr`ej?O$_xUM020*X{fCTksKYU1KCTO*tsmo<r|LaGhfixk
z`We~om_2AFoQrHtLXn=Z;AB3q`~SphV766+W}2qQInDC;?h9=@tH%@b6^?nl{fPbZ
z{A5)9d2L|IQyyce#XUM1IoTiEHo-v%HR!f;J*<mr4cWyv at lT+XeaN$dS~-HxLywkj
zCRJBp_dkBc*P0ld-G<pekQOYUS*@Y7IOz1K3X)}zbE+7(Z<0LJ2s{`!+2OmLz2aLx
zVYqD at oP6dWB00twcfYT|8So%n5GWHWc=j`<nGI_on881hwy5Aq0qHU~RdcgmF+}OK
zLQqNL4KEQ$qXwN3)3UKAH?x|XHLJ9wxpQ1VWNj2o_IsMtdD`JW2>FQAA%QpSS(u!#
zduQ at oP|*~9u>ahQH8YkDI226?LQxVp8sQ5Ditb-?%tdN_B?UPp5xu-loxq=6^J&jg
z<dZg;r6PpM6UYSL7D~Kpz2&9P0dsE6){Y70P_RHhu#rKe3gy)RF*)zXN-<NlaY^Nn
zoVBc at VJ$dLpxT7)o9%JbZMBPP5vbW1s!ak2EBikRNoTM_)dwoe%%xpZBRO19<Lye*
zUNIvN2&)u3E&^cu{ADaT-6|#K?AMJ8NdqJoJrQ!JL at h`dnzR&Z2~R$fysYY!?ECnF
zSX;d44M7tdp@!t${^ZI8-ycm3y%39M&6|2%HYsV>Zg8J(LN9|5s#jzy4Aw at _YQYI)
z?rbZ%)p+(v?&Sm4%@mtIx6UZ>@FXI?C~t>M-P)Vl_VUOh>7AQ420%R=!z)!o_lA$9
z at p<%)4TbEF8NbJX&5)TO9kI8*l%4&<&1b=TCsE3WZ%8I*o at xqORzEZr;gkJ?dXL&3
zYglmTvnc#6J{X~OTw~@O4viY1aevfFHuB4j0ilO)^Ox0StNM?C(SgvO*$K%$D|xMx
zQtARK<s)6Vltc0}_u-3#fcX0F?d4i!NRO5Qe!9{`<DFKvqiz;1>M$_7HKAt^lz~)i
zL%%xv3Q>P-Leb9im9tEEd55^fcjgq(rzo<_bMgKQlJX3POf4_I3EQDo^Yck^mG!<t
zy)hv}334Dr?HI{&7`cb#R}KbZ0pe3U1U?(Jszo`nKA4)hAvB~wb(?jfXAuGZ^}!68
z`Hg#**#Hu!mlRkLlTfktqiTCwO^ENXH<iUg-II?elXDQb6e0(ef5}PS5^sRbu(K3f
z+sf_-t51mwWXfS~!e!FRF+xA}BgA}A5yrAPrY%akUG&h{YI>>I;<MnL(IQx_G-D<P
ziTADu+pPz->$$jVT+D5f{QsJ+D^mG)mi0;~BU$lpPv96TmTn0c3fKA4g=o=LME;Uq
z<bTFKjXwtKJhKFx(U37hrSHVC5>G`_)-Y8;EkOE)#o`6Whtmo_*=OmBlLGG7l&@E3
zS6j(0c4f~~4cpV=`S-^MF`__PTgHG3g!6EJW{oXevHJE!%A)Y##^j`p=Cg?%RimK~
zFM3R_O#e&v at -ur*9_!GCVekRFf}6BOgPbr*F(k(nr#VVpf2`&Vw^dep$i_c?d{kKL
z8l}Y63XcnFPv%{Pobu#fq#^6SBK>*a5pd|YgpP#E4x<VTgqCbJZrzlxoRq3lTaM!`
zPpEL+V5(m&Gj7K0N*R|<n=H at 2GMH9t_S5Un-k|(JiC%ju(<U+FsW^w;Wq83bV`Tv7
zkGo^Q4D8o{g1Th%t{9oo8vs;RsHc`-*Q7sX*q=XW+A=9Hh!+BocfSPlYoL+GiNl8u
z0fRnK!jn#ycwNVlP$!BTpS8|K=!^ScV#PM$fO<skbYxY+JMIjwWH|f=e9jt;CkV#*
z+j^efM at S#2xfDh~Lf?Hxt;Vc};D(iO<=^bJF?1*DHR~KxHJ(Y7nF}{vRA_Y73<L|!
zepQMvas-^3goAaNRJxr#Nyq#D=wZmwy*Nlvmry&@FsfqRN$8I#4=-(c)D(F$S_3I{
z__DEe9g6Rw<#hZAJ5s<KbtVoa^cVLYQ-A3YGwF+FADcjrht}+^YWN*_t)22o9$-#r
zr`mF&;lCM3YnDAQ at fN>Y03=Vq!C<+ogP2|AcTaQj6k`ga$Wz0H)oW<YhzBc0TgA`H
zMPRs_K7zd_nKNF^p$*P*J<y7GBGSiON=nrD0Xj|Du-dc>80e=g`qyp<3X55`fS3P9
z4PqWm_Q7a>w$6<R=gjqv;VBGq|4E;oR+*7njv^sf!&Z>I?Kip-6PMAWW`Zsts32KF
z{D&cT^Ru!csP5gNCJSQ*^r9(;*H-q#1%mB~O|zEsaRT_7M-WxEJo(I8iFSSjwB|AY
zCvo^Ba(J5!kHLdmPpTw3m&bzlIKc=N=b+oel|qPL9^3m~-I~fQwSO;Pvn*cZID;31
zD+aj_1ffyl%U>&UMBWgZ2NTt(_?)MBb%sl96tzI{KYep at 7zYmws6+;IRMo{?Z{AE)
zZ%T=y at Zd0-i;mz0-(b+PW1zLR4J%hvw7q?N{z$`Rw!W2O!~k%y>z%!hj<S3iGas4*
zg&tsvjU376u$PE9yH~k((>53C9;~slfpF}9Rw|6IJkq?%oo+b;^?_jH@$3>cIO#oK
z(m`Xyj_SGY<vVh6mS$ur at PFQ5O&_8W?6(2 at AN<<9iM)8Lah+`*GCk5hOyUnmRT|rg
z*#nu=+N*3h(ku9Wr0v2kKc(Rc^;Lbady2Q=dme51M<A8vv^E<4ua8<W>|=g$;K!nI
z;=&XCb56+u*&hk#+@?!|*1pS1A%Zh$- at O<(3m$-LGEwmU<urJ%XBx-Bf_IALJv@!-
z^o|7m7^?sgVl_F+;4tuh=zL%b5mkoE-q=!xyPXJ+AYe40s6n5Nu;RJ)L^d0?;-YAa
z9Z(~L<8 at Mt7VBlYK+GL>BrGYF-nXWeQkcy#YU-kw<4G&p&&w#;Y!iJEN6YAwp4Mz_
zn`PK~&+YRl?CUiNih-IKRu?*|tcjXpp9(PzckqE1HT6eB$=-py-70?wP{#A`ErM6J
zDtgtX3M`7O|8D*5^rp8OAoWbRCycJ{a~D(ozT-I)0 at wxcAEguCA<8FP{+Gu*YZycY
zcch_n)d at Wqk>y!KmK-R5i(}kT2IZ>ocdFl&_&gHR4GG4naDdM{xZHcb=@>H06BJ^<
zp+0Z1`S3J$X94;hUz7Gw6*&-Beuy*ym(c&tC~WGEJiK)2JZ1?cMUU1S550PwPhqM_
zZNGF#4sM4YcytO{j)4MnDOw$Y!kws*r(?>eF8<f2J1#h%jqkpNTxZY2aHk6%Qeaaf
zBX`Pd#7gq`c?%pvg=gKT6|Xxv#wM4#n;mW7c-CU1y;SA=tp6`0lpxT$s}aPQ-~yCP
zCgP4pJ=tv1i=~%kxaH|tT?h;L6v9mwx5G^L!C+N+pfX2}bP2t#3+M&6xj)BiG&g*x
zP$2)Qnp&con1Jbh*<(jgqTs6q;aJVnw;+`a*HGSdSde#Qs3|5$LIpW!Tn|Mhm<GwO
z1K3=_GuH(f-?sSiE$&}p3_!D+Fjw&tNewJ3)(f18*SL#k^!rjy8N?jk(6P1_{e-GQ
zA5H>K$OWjNKuUi^`^-a)wQhDQQ`*fCBwmYuO4x8w8!M#{$*L6iGPgV_?$E;KJgkey
zE3dpyp>55kP`w_^<RJsBIbpE{X+3+X!((8`>_Prv^NRh|#C`zel0W%n{@C!V;M4VN
zZtL$?Y=9SYfRB84j}M{)WkNZeT%4<;d-I7y1;B*Dv}i%u*)}0gDH7P~o04 at VNLX3w
zcUd7jo;n3GdCV4(Uh4_e&WirFzSjC_Q`_Oc!HtzlFGVpLI<2{FmATf8LT9~|q>@3I
zipkz#;VX9GAeDo5{$UfDqWF_dJ`d%GrMG!`G_>?iYdRo9L>NT1IbX=0O%af9mrWok
z_4ASQ8egrM2RrP860QaVj^D~7Sf3jr)=-Xk&V3LUMFsro-<PS()1%LeG})yR;!fr{
z$NzECiYiz`$teUWqE&+6I6M-n>Rwq1#%qj*Q4_6KSzP=M0H6+9YRYaJxaxXs>cC8K
z@^_OyQo%^`JVbb${j_0I_2LQlL-crt_16>ymHPZDFP_+$mWq?cSbZ}O$}-Zjaoc=+
z{kZ at 03$dp4^!k(pnX^mAux271)DUS at AN=m36Ux>+(Ep_;^FO&t4$slh9oj)r9~Zz$
zpAky at _Z2sc4AM}3o_S at D3IoAmEkewynrVxfM7-4{G at wuS;#*RlMu%Yq6NJ29R%e<G
z0R2qNprB)lM_QYaQLm`rtC&sinxHRrO>zpmr|XRwLw|}2)kL~2ZFIXTD{h#Iw5VS{
zY1Xa6jIYyb$b3AGxD^-@(JUV)Zf#|llx=A!wJwLtGC?V~4CXYfCs~Sn`wx08Pv^AY
zc(!A9BTJ7W7o#(pvq74&=q1 at llRond2~8U5GH7j|QDf1PP!V+UXwxftY}@$nEP3Wf
z$eClV8&p%T<`sN)FykbZcGW^%b2w`x(3nL1_U0Bsn?(tD@)(k^XM!>Ej{nF`6EYM_
z9Dx32Ya0sfBVm+)@TOQj*!JX+6IK+GFBWEzOWFDVI#@GvF3woCSDTuXzQi{!#2XEx
zUWd{Iz(vcKYkc68erISBkmEXXG8#E#tM3QncWgw1V+H;kbs88Kv_?VRR?=(wJX~wk
z>g(u$dkcYVWHJPL!0V(^^sB1PpoBlOOn|E$*q{~sTJTGY{5H{Pb)&%yUfdtgwK4)x
z+*>t3+ZB at 9M^MY&n!1u#GWSWM`}{J?-iM90Dn3NcO at ir4)C{8-*6Oe$sdrS1CkHbk
z5a3|3_zMOw(@4?~>bw3^iVwt(<#SkbW}4DA3Fko4UzJ?vD>3 at 7&J&!(44L at _)&TWH
zinTrCJK7g0p^n=yss;V7tpLJ1_tv+Nr~YW*WY2>-f2Ndx{4 at EhCXuv9m-BnxNUHFX
z{Z;p;5;b at oDq(UA7YABi5<s`l3=ck?Ce!FY)M6|HE at j14fxmi)`B?|hxb7M<frW|d
zT{pPm63@{$C%P-sJGx at fm3VdCMop%N{Akq3LSwY6JZy!($Si92GT=(k7O0z8SzP6Y
zNDlAjFcNg+6(_>j2{mx6PR8Jn3gj_Ya)vw4!xc~BD$P66lM+UB2nDSJ((AFRlZhVV
zFDSohFUTAS<J23v$H($D-1MCeTvxdDmo*=QTwTEu3pq%BbxJKX2tSKA?`Sd29=wbJ
zwf)$?!(uLXVYE046cV42?6kyVNR-mmC4&eGGs~$|i9Zs+l~KC^<h1Hs6LEXv`~Man
zNA4&psvlyFM}xlScrmIe1w0}N at N>E=dBA=}RNAa{Y(>*eEIX0<NXdhRf3avrM`6AR
znMEg97{}D=0`9V at ts$+3E}>6pRcN-8QyWcPv2E~JFTeR(BS5XJ>PDUK7XLn;5S=X#
zxKS7Ja#w-PF{kV(Q~K(|z9z>|j4QaZBgyMVE*`FJn#(<ka*G-*enLNXKhJ^9tA$7X
zI`Wi7tC4$<2c}Ifz#C$G3$8j4f@^9naphJuIb2d&*80XiI8!-p@{}<e{MNE3JtFnv
zR|gt?>WpLySFAw3L2Jl+D02EHr0GBjGR&o}@YHryLBmVkd7tFJ&$_kA!lDpRcl=f=
z at C74)@o5QTU&$WabYNYRO$c-5_v((g4uqXS{RK%ExS8Y at VpvNVYeQ+e3W_xU%f6q+
zah_YDgcf}v-n5D05D~h~R}-IEx*=puM(cHiBjs8nBgzggW1qNJ5*h=>8~nseA$(u2
zne)XbM5)cm<h3XX!2mo5`)ov>p>{1gK4Pm8%Z4IY{n6g2Davw$Nx98m+E+O(i9nV`
zE&5H8>cx}&U7ahtib3CA&#lC=DCMda51+CBjDAGLnq6ErHHR*P=l&@SEQ at DlF@pVX
zzNJ9>ag|7Am}&D;RvIP$<KCnhhd2DJY6Vp_b!f<zoSFB%k<zasEE;}How(L7^0&W!
zA)x#wcg%>q31I)S)NX*nd5hPD at 4WTY>Sg~VPrKM5M}jecrMLU;;U?y$#z|AL6 at f0`
zkhR`O^$QwpWBC$8W at 58$Y1sFNTt#dVL9VIJ9NZsZLZ4{;Yllpz at +3qM6X-fncIHm4
z59Ld7CK8yL9N=}1N;xuDmq=0mZm8Eg at Z3!(wPhGbkr;XWde at Spr7-|#OPyV)X?myv
zEtk*NR8oCK{Yt#0cbe@@9Q8X)KBLgz-YGW+c_Q<};Rm-GTQp|O1N06A at G;^EprW|L
z(K?yc5 at GqKj*+4 at bs~bv{Fh!qA9xyxp#b2S(k?DH^@y9kn}1j>`=xpwM?Il)ukkrq
ztcG&sNI1vtTY1};dN;(Db7YaMBj)<nH0+XX-^PFwr3lfan;ya5(b92?L!13CBcc?j
zD^+2vw0n#Uc^#&$-RT@@Q~NE?bgV4^h#PS4{{WWg6)^{jcg3-<YWC$i%*P7oVV!C*
zQ$Qw7Tsg2t=o)(Q>Z*6SxOl#M-!2DVOq6E5gG8jmfs>jWwj%}T4!SfS!TmzDcS~&k
z>5A)zD)kGIx>#>FgdbX|{R6ax{Ni{awpP#{CM(Wy<M&U)z3RczJEh7)dA9N?P)dQg
z*vhoL4r(QfL>ALBI<u1BzS~GZ<XntbuMGO5?2=iTL8O%s!@_7(G^j&C!L|T6s%7KG
zP?fvWFFHzac!FZakLc`ohTNO<TD0ySd=yYFEYEPREM*n at Vefe?H}9mLwVE3X?yQeB
zl2{~?ZJ}KkFL+QWfh#3Fc+2Vxj|B>JujY&6&B5UZ$!+p7GUu`(ENeIQn}1vbMnJ*(
zMy%$ch7ML!*ORhQHpvq>;xU9L*02RX38?F1utZtmxqfy$x!~|3hu~@E at +_bh5y>n=
zStq`PCKQLx*7)p8#t4mcSfWl1LW7(i-uY9_RL!4=muKy at _o6!(W`VriPhWF`z3Dk7
zgHD`iVQzVb`p=~Y0)t{>Xdw)#KuJ<FH6CvXoLt-O7V|`1CPn`5mmK|I*hNc=F1FJ+
z|22tUlRI}LlUOE6^8Z;F(&gKI0FIcOC%epeKot5EX3#=!)8&J8B&cWH7wN#!G?8<&
z6?I8oWEGLHdHb}Vy`}Ll;Fyy$@ZQZ$0RgHVJNp}7^vWBm2c8 at yOe@}AWU3S$k$%DH
zimxU3&6tiijh=gmGMiCg1oy5J2065<zmNZ8RRV;+4)VM~CGPwqS;|(&UVV%O91<jl
z8nfv762;V*a0ckhQT#sxf*2w{71aY~wRbgfCuI~WpktYV!h>{ji9_9gnJU9>`)yz7
zKzsSn*Scv43nWUo=Vt3ug9DrLcarO;vQn9jWWSRVD7xzwc0f0=Kvur}{L6?km$D1@
zIxnW*_o59CW-hfHnQ{<KY7WwxOOrZCby36E5M(!#Wz~4W{;h3p1Lfe4FThZAR!dvh
znLXwDJa%K>h(7g}5RjaNi#q0U1KwP~Wm>l(+Tv-T)W30RF$9wvjBo+2U48KiguF<m
z>L_fe#$DD5k9W!!UrVXH3<~xH1hK{#7T5-V?r9++6BGy!DT^2w at 3i$|SvLQ+4H!oq
zdacV0CP${Zg(6<ZC*gi~+IMke>lDYh6%rMY=gL<Vu3XtzH;eYPQa*v&f|=`c)$Q>K
z*<8CspYP}WXItab=u at ojs%ZdbUefT|jK=A1_O!@BTt&G&SSV%42O~~w{C%VVel<ek
z^NJ}#rg`&U<r*W#`&vT2B)h6&PG!1)xI5vu2a at 3JLR%oqP;gOHAeg{h0C3TL=Zl;o
zQw?F?mT%(H$X>8k2SX(>;sj#apr;;R8v_z2G}=Y^!vu6bwj)=Jt7$H>YDZTV+uf{#
zyQER8OkqnU%N9Vc$|(0}<119={={?lJmU7IA*`5G-xq{IAOKq5BaS;^MLS-XamaT4
zT=BEbxPUNY9^JJ(Z=<O7TrOWx7{A7=))hswmucAvm%G~B{g|>y9o{KPNlEzx8{S5@
z2z;x$xsQ2*v_=;<96{T0dFB2yE1%P9td#Mt1=}wW-VS$Kq}o73wrA;KNKN39DK!o<
zr&2`-p#4z+e at 2{|kmWzGA))+jlhsvaD+B{S>m~aAB1hf*j at p-7#1#CnmXZNmlEw1p
zz8dZ#lsZrmg0$+ru5DiRaYp_}O+d!W{Wcgh4|{MLE5`7jRhPAMz4egAdXcY-kC$oV
zB;BuHN~{9ly<KhY3`2y;ZNQ%9W+v6{tgtLDTCH8IPAnFD2VBK~sdsp8Xy1uD)m3Zy
zu}!}jyuB3t%jz%N(z-Xwtfu}x5z4<KK6_sc7frVIJ%HdFH!%&^|9iz1)VdOak1Itv
z;#W8fM0{Nnd^tW!H_zm(uQ4sb`-lDN!yJa~jOq?Yp|Pe;MY(i!Tmrhr)NEO(u5o=9
zQYEFr#$yJuPph0~`cCk0y&K`(3^qMEhWP<Qe<!It43|_!r$%cnWQ=AXi%~Kyn(nE)
z(5RbNgtR0}dyqDFn1gyC>D8xqM7YcrPySPmeDd&e0pf208G!<7w at VUC8l0-o@kZIX
zrL#SUakk#BcYVdy+a4$5tAsHe>U?MzbM3P*;7(>nw6lGkHRn;h*GL#CkCP6P>|*HD
z6^DNl at F^D6e!srv@%*FE-owQ^O6}+)m9`&-1Vwibx`NoRPX0HFENN>Yd_(=bXhjs5
zOQ#NB&G|0=8A09fxQ~Dz$;Gu0Ti=X#-am>TwyMb+P{y at 8?!8G&o4<AC at E=b?lBkfy
z>Y2{aKX&H}^Hhqcr8RZS^^fiL**lb3-uMM3y3YN;RsRq;qh9IeAYJpmZ1##X&JtD`
z2M*P*Y;HxW6uaM?ac$E9Jmd_h_#>6y8mJ<qvmCHLr(z|quRuXb$L9#-C##(B^pd&d
zC>1>@KB-Db-bC7#a6n)K?M}M`={!A(-TJnq4O$53cbW=PKSN2;Yj%mCcvSdg^}2oF
z*VR`td81vQr=!}ur*!R at -{|M!zfI?O=dPF&+E&ndp1+ULWQ5H%(8`u`>!h2Z0R5#H
zu;|PjN8bwx<&dOJM6G`#TV0Bm|4D95UMef4jVCtF+~Mrylf9Nz7&<0($we%TbpMbK
zzZAPt*K5K$OQ)s#VMTd8yqsIPrXe4dU-jO<6Y+BQ=YF~?cV*BZjsCn!n8{OdgYh9~
zjW{@kb{wab*NA0j;_YF)V6+v+RK>M5-H2?o(`}S*Sl at i?jZ_-zR>Vf`4YV}=<Ko>5
zM<;}Vy#Q<6IQng!!2VvjS%+ymQ3_i<6kg&UZ)MaC&xIhH8vf3m7oEmbf`8j5lG`nN
zXvMlO>p`Gy!A<iX=O<!MURaZkF^wu<wHQzaTuL^@;k;2X2Wo2`90Q31o4CMVY at 67u
zD>g+3Zp?C!cvY53yg~b8S5}3BWA_7C#JRbzGxr^m4Ok6zy83uH2(50<V^%$XN^0Lf
zA(~W$S9XoKPC5b-`>tzSUPVTWClU$B1FoR05!*y4<HVf@?=4!EwyD7$1=6wq%<f($
zj(Rj8^pW%Y7G>{~o!>(v&LF~f?D$}STy7CZSEXl&MLn*8_vh^aAC#h3F4{VMx_~RH
z)FW{H>Yj{cY}zcajfkRB7?BgPoYD&1YsH_%7>p%{<&9YE8-j!{t;<PnizY<hv^IR>
z&Y}BI8et<+inMuy9J$N at bKz@hfUdm9j(jbwU0Ju>amxJJqeWtJ2#>r}zF%kTX~RpJ
zT2tIC+@)==^ck_EK49zs&ILHnhdEMLo#JQO|AS3Qt#8m<fwcl5PJ}5}ZGe&d5H!fU
zAFoh`<2w6HHmd5|gX!21sSKIoYU~B`foU-b`L2M>rfkMz0g2ecf5e*J1q)||1i=6V
zPD*;FqC6-(w6Y>YiYQ815Hx$WdK#MMgVcB9n^pmXPYMR*cuoI3ijn6e_qBG&h)59E
z;&NVN7+<UT(G}cXX<x at 55&6}9_Ey#t=nh3{;LDV=$rNyeyuZQu)u4=(Vhd}Zw>Itt
zN^7V0%X}9gOpr!iKQ&}jDCiF&n`l9jwxr19Z|C!zMoe#(`gc~L5dP7bdRVxMq7hb(
ztp*nX^jl|#saGiiR>BXC^G(0bTttNqiJng)Nu~+36JH-Z^l&ujqHo<3GNphnDO4z6
zR7|VN1f1Hufi_yHe_XYt7nQbSg;*gB{P<&YX%v=|$%CIQl1Iv)%38Z*kw#|a>ra$b
zJj$h-<>YOSuB%kNjUhXoro%)1Ggo<F at C5%iTj<yC|B5Y)<*|wtFCL^)y8ZY-w_SB&
z$PaRrIb?7$45L&P3RvdKTGZDH>p_t!fVknFk)`$Px`iLx8G-Mw1V><tZQsY>16M$>
z6;7puNO(mk7Ncj}AT7C}2x9}cfv?O_+ihHX at f8V$$M)lvJA!L;$zIUT3Ipz9I%y2m
zSLl43Krck&@|(!W;wQ{tA1 at 8!)w%G%0C1+WU8;XC($p4`xKU!v at Zc5*tM!~<IORXp
z8rTJST(#d3Fv>iJdKf6v|8U+Svv{qRr^Tp_NwWZW^bnYswcX(`X_hY`WC)7fJ)9I(
zwyxSP(*B5pdsbd(W8ES9cG<vhQb38BLnzC*)qCKOg==t6_~_$o(alq5X0&mZnQ0up
z3(sAPQBF6<4h7zR%8b%D-HqZj_Umc-$7^^Iii$3DLxBj_ZV5-0z%uh3#54=HYT>Md
zBQxV*{be_K7j at X&G%C_U&+!L-s+f_!`U$QPu%>QRFh at avN>R`TQ%gG?&uDgTw(X0h
z-p7*0uutYRDEmqx>npI}GhdU0VF)b>%0nPOSZ0e$RF=NC&_aPe{$wm2c8{ueVPHa$
zU;ZlHR(1^~cRmLS14?Fz1sdQ|WrF$aVSS_eq|wnWrqkd=?Yq!nWLw|>C1SII${y*b
zWnA at i^V;%NcfS{b$nQk at p&3MmhE;>IY%{8CCcWe&hy7R<5+79MVDRIokLaOiOK$nn
zPHBcb_7G<SQMNYWU~dVDSQa(0p)u#B0-BL+%b3p7Q)aVryP*#ToAcnPqd{ZB<~rkO
z8%b3rJ2v&>^@&XxK8a^hDm>+l1w_DdlzLxnaq)RZpF(?2DAZLzZ{;{g>a9|n8yh;Y
zdELU at a}V9g$4|Uh$`#45r}d|JjHnQ)j=8_mLu{G#t`NEvrP`!j%uzD1u058(lKAWs
z0Ut!rDX(x}z>THDOAn7#e3M}-Mutbc$TpB;t1cGP;^E8lKoTXR8s3NPlD&LS+g#1c
zDxINhMb3e>Ni^HaP2!dz!!bjaMPpu$<C6svjaTC at THpmfa}vgE2n#apW;`&~jih#@
zSm?|f=Prx+iWsjaC8<p-ojdFiD1%mgJ<2H?jZc0ohvo;+T7tr^6)yNzCPt;F45c8R
zqw<S$8=o5YgO6sR|H(R*CxQ7}KO_|_HKYvy^5XJ$LD!kmvSwjiRz9omKMmcSN1HAL
zQPxEtZGiQdfcsh({5zxz<*M0j(ckm0SHgiqh2J>p!Q#P5;Lp&qstnitQS=&n!1KT2
z-zS{1(Jsn6^q&gzopAan@)vL+CLqJVbE^T{R?tq+BDx!F$|e|=y!5ZktgIF`>^X96
z^$Z^8dzL5vEL$;EnYTtJrJhUZBCE}xv~p at h{gJEc^Bddqzk;f1!fJ3*eYFoREfcf<
z+%#)-iKMr()u0iT-W)i-yZs-DJX7O8)f at ptu$Qn%M(^k!Ko2)mgcjpURWT~EwWl}4
zeP_u2o+*FCCCSrKIP-Xu0kr!YQvlJRkk$>ITVbzeHZD=#n5xurD)5Q*%BRr}e8*Hf
zyC|mo_yW>g`}<WFj}oTK?A(x`%rxu at J&fyZe#xI`eQ4qpS&0khnb|gLXRkm#x7Mi9
zjdJb&V28m87wkvBF-Od6mN$6uRwSipR~DjvzamI)W!lE{LcS3r!u}l6s5wzcoe={`
zbvRE3{+L!k5i<wDa2Ec?>mrDfo8wb!_EQcl4;4>Eo2(18&1F*r2-iF}OYBCihr!6)
zAOvg?-_<c3+ at QTsMNM=6Q0fEXeZ9?nE(!sgnr5<zmvxCAAT1c=_-8=rn<1Mwi?d?6
zj+zzKCu2=v_4gD)?X*t<OD^o}yPm8x^c?zgfAs!Dj5XJt*t1ZOGX@{I!!6q6oNGc}
zy=;zsJ?tpq=#ije8r*anu9ym_O(+O!Jo#gIkCDSG-F)ynQb`@nI~i_6>iMr{675e(
z6e(dV&FXvb(jW7oZi(uq%x>J}!N>i6HOD26d6)?qL{XGm3(Gas+OqU3k{0Zo$w6(&
zGKZ|bP^75Vw>}uY%V;<|eTZADY1)ZDnR>2=Q&4l~89tstA(Q?<S?|At at 35R$@FCGJ
z2p0oCWHw{W_))!S;;XL`(*rPR3zGVW8hok$ay&&$7F;%ch!jd-lfjj*6)gTTnKo}X
zzUqnB5f2p-7$gp%-$l1mK)v8>OYsEp<FWX;Tucr_nXDj6;pE>U_$zOv3)QjIcV4e?
z?kO3s*>=AGnbsz?%y6wmJYS6oQ`HL)P!R~HW&=joe+ZqhPC9-S>L+QkiKj}oQNE$k
z6b}S7Y5;Ai60k at Go{R0PB49rvhBK8*2q-Fa!?!zjqVf2M0!J||dImakO*N+k=d$E=
zsXj!d0goPBuhJ+)XmX;;+DYbbS*qDw8~GgbJL`h>=oz3gaAWj<5A)GA){A6zGF`YD
zsmI(mx)7a!3!g)LeA0z<WLA<*$Y&KY7bH!+e-PesJ}wE*U=WUGGWklj0$2LrT^!vk
z2X(GU$K{1SB|@_=5>lTfMKJ!$HadICQsq82sV(kOef<hFB46tL73#XG at q_U~@?8{a
zQy6ll+Cs^0M-ivllkJ^tW|#RoJ}aZph8iR6>YFS~JZ~EGlS!V=Kt8{wBeK at tN#t<n
zAEJP2k;9@``f8yEfzIEbx7q`9Uq%4*M1|~=I1~)QOfC`&o!Qy`Mx@{SUB|g0a|Qbh
zz#VBoSC7q{dj at 5t%9s0~{kOawfhGxp{+7c%UkNbTT`C9 at 0zuOJy7Tk!^C<<aa3SG%
zY>pJIwHBU~2O74&TXls2l}4bEv(&5xuV#bt-Q7+V&SMCPlX*Es0~`g82wGa}!hn(8
zyjcuTioUZT<~+J>6diNV8ejn+w~srxc{jJiDxKP2C4}VV?BTp}p-uqDTVH`^u{$*A
zv7F(9d at 1o3Wr&np%^wba$`sL_#6IUyUGwMKhh_CUX?}diyDVFhqS5n;36?MbML at d0
zku4c?d$G!V;B6ge3%zBOJ9}n5j(Z(+kT(@CnHrk{`E;_BTeuiX-YV#sE8P}Z?22e9
z4Ry=atrFxHRS05}%FVYi1i!IyCcVz4qN%%|6-3>F_HvAp0UDiBG{7hy#*33)CHivT
zB<KR7y+o}DwEfdYR&C2%(5ixQ>}P`m4E#Tl0>F<5?jlcaWI&=T=~I4tsBmh3`f00H
z>VyGh*A_vX4;0OdU_<nofC$KDWQiJ+y;heHD{KH6XTO(`wJb#u-YEcSivr64X^z{f
zV at NbkyI+J}j|ZdKJ}s7eRxMlMt`Fnn1knjAeFvGGMTvhFT*rd#c&;CY*pEy>X`qQ9
z6_%T-f at Bbg7@;f at h4$7U7$>HUVADROd<3EOZGZj^7&_7afJ5c&OXhd+H+9!U?TO4r
zJqG_;_<37N{!;cgy1VIa`*9)kE#kgV?vS`%k`?kZ3*Nu|O%t-1XR+5$Q(|E$v~PsE
zZkulz$F^Ryzj`)k4E;93c;kf4J;Mg{lfIZ9c*4P-(2C3i?<!YpzK>QaaNBI-dIOD_
z{^rD8XVxt9bP~#{#ditE21r!6wAs>EL#~tOx9Snr_+p47MjN*CEM1`yKgFfld<%&;
zhfhnmvLkF%zQ17FutFvte69toO7&+*I2b?*J$wecQa%c*(2hPmXMncPcY7L+F<KzT
z!gs}Dvx2<a#DPu~<IQ?qJZI4By0fUcegHl`b-v~vve(kKRX^I|aM%+&&!8g;=^WWH
z6Q;?23~hVK00!99Zv4Wro+jk}&yciVl^oM_G(OvBKRA`~^<iuuM)eGzSKv+e9z5Il
zt$ZLv&Ub;fk<-#Q??%;?%1ejBAOS6l8>BO-NdyDa;@&$pY8;`8-Y7agO$~@(t?=2N
zErP%wsZr~aDN_y4%y at JQ?b!K+u?pCXtS8;JXHA;|Y_<~*P?!at(1Xnot{{4D;(qB4
zBZ at JO((o^R7JRHG^__xYfFjs&4y1$T<*)<Go4lKJB1n2%61=_eIXdFp78dolzr%Fd
zi)=)R7Nu>Vt0A>XyJ2{R1d$7B{pPr9{z=KyG{^)pa_EBS#XMd%6)b|b9dE!|<TQ2G
zKX-{0!+X8lxOatXY3O!PCFSNLlvVu8c^Bgn6Z2@&bZ5xA?ulS!U%V#ckG}Kf@!kTM
z)d at lP%L~9}ce?tb-{F^JH^o?qpcM47n_P`mpu#r=PG*eSrKPAxOXgb9=vhr5S9 at yO
z at rTB&mDYum<L?mXYhP?1{ud(gbu|qvyz<VM#<(;_MrGsAI!uzsX^dv)S$z7;9;OfU
z^+i=_eiVU9*M-9p(;7;C;bui(vxPzc?_F`>hMTbr*Di%SK?$w_%TQ;XG2pjJ0Jpw5
z2%tTk?{4q7IG%Z%*$f_v3;Dt-4YaZ&g4yaiRDN>F<&zCQC!2K~S-~zs0cUkzQYjFa
z-#0&N-f#de&L;g=gPw}L4!6IH9B$vQOLR+9)aDCOqdn2-({=+Sv<Rp%CV>w-&0dmX
z42u)I26%X!h3j9iomEEXA705Y5((qZSi3BowWv)gwZVpqoEwToPS9{lgY&lIzn~pD
z9V9t{80|a=(k3dw*tPhE*stx}SRYsj<a_nEbSafw8?(Xg^W?IyK8(Gd5mD{KpKj?<
z;;px)MzohoCnEM6&DezUrfTiHW5I1j at pnN97~YU1RHmS5$;kjof$v0jq?MXG+1HL<
z<6Y|S11Nc%{f_EyNgY!+CyJeTrDM<~9RR&0EQtrG+F(5zO6j<ag<OUd37D3z|F1Fy
z`f{ix2AbW at +LJp1JQ1ZJAEwJR1RM#3xEh&mVVMLU!c=K}M{2kI->dg1<88CdPQSes
zI~V*xNkB?&^2D&Zxx(fECvH<V`A$&>-x^b{c7_1bE0^x%ubBf|gCyfyRuja+mK-BY
z?b+ulsx3yj9>Y{Zy;t>vH&Z~`6MQhgP2PxyrmjHL4dGe!c5+zo{X!lvQgw68HK=jK
zQ?I>Gz=3^R at wl%auXwmom`?Hr^gk2%{S3Rg*38i^x|jsp9TVr3uy`K5u|P4fcDqNt
z4;ENwQ-&A97Q_U8rN4m^GJ7fg`Iy(EV(~I_G&jLMBzH~kWc*oPi2e^1C>j;cVXbce
z4iPJ|{_aHQcoIbjK1R3G>3#zWDk0%A;y3rzIm|uYL|VM85n3ZHcd1S_FDf8kvq=as
z&*w*(Q$x{0>+<bAez0eu48dF(9>aykM{O6Eg<lRnC~2b`U+o(x5D6w#*5C{u{H4}-
zP0fg6qo3qq;H+Y>xM|+=qP)eC3bK`2!Y)=hA4P;MZmb?wje6R65$AB$e6630=z~Y3
z|7T;xGq7j1!yo5N(h)^VvC4V7{;eE*3z_<n9L5Lp_Nbu`xwCc416aFNJWjiAUuSho
z5Gz|BgT-9Z7e0pl2o5JDtEtJ(ZSCLee|48<(N(ply}@fgh{N`?0-xJZ`#!A0t`N^>
zfQeWN(L{Memxb$d+5rdIcLQCyD*K!R at qCTZuzz8OWjeSx%KrtY$fbCB^t{WJcXZ%J
z49p!EfjKy?OZ*GC^g?9_TF%dS{$C(mXKPA=Yfa1eT4F2Sc3Z+9t$GD6;YED89Pz+s
z7aE$de1-ZHB;+0^x$J*W1B#8A=C$Pq5cs06ui-|&J;>gKblIZz(bibo_~h)YWA`0+
zDf1~;pq^ceM?F_>>jy~Dmxfyi)5;NgS#uPLFsM=a<KwgclXDs;kT;qiz>m97{o^gx
zNdq<AONk6$KO^}$(IEmgK~>}e`(*I0N)T7)CXTE5K!uDDhW-m^L)LQFNC#FQ&|Rta
zQCX{~49Ej$Tt_|dkUt5>aD7}bHH`SK$|CM2I=Z&eHQoJllUfYSVL1{2Qipb4d-~bl
zmhaOd5~bNcP at cp>Q4gcUGMX<&yI8i2tPlt&S)TV#3r7$+gc%YcZe#Uj_Kj;@47eQ`
zCeONcR4q631w5Ng8spr{JA3<~^1Mjz=SNrfZ{E#>%<$3Hy8rFEvnm!A&D6k!pK2so
z(kcj}wVYoC8e|5SjSW(n3vDxLVMd<E_}pExqjZfbk#jp;>4|e_gF&|oCpe#+ELm<~
z8*RA4fs}+Fm;E>Q)^kwFAF{ZXop)o*O;=i(WEJyHzYfzQkGp8)eZqW1Mt<%EBO;uS
z(pTqat1<q(ZKY>D&Y$(J&%XB5B_59noA3|lM3-J0HoQy?smhW_UP(`3wJjP2Yg3Zf
z6?vO<&%)_wID*n8zMyj<-sj0j6z$h?;*twWX^y6KbqS&o%x&D;b5MBW410jP%$u0)
zp+GmeWUG8D{X%X31&KBAo8 at 18ya8<|-p2`RstzGY)dxBYZ!2rq!6+NFV7K=?wxnWu
z`phbqi~#S71jl94bHOkVS#r88zCOmoAsOF+<xdz<FERHT9y`5HsdMT$AM&I-+jD(D
zibkU2;OM}H4Dj~NP8uU|Qxz*t(1ycSGq|YwfjWXaRKG~I&#qOv!2rx at i#ngXG|e3*
z$4h(|y1U_Z2)d4A=T7%HUtfh at PBfe5Iy5lcHII#QTpDs^J^An)BpZ9 at KT1z&RY8nE
zJvhIqjH3yn8Mpv4ux+3v!eDQ>V{FIpSy%t5pkOjaqzy8-E<Hq|^>Qaoa?;GLZyJCB
zId3Xa`&)F}Aq);ixO0>#w8ve>$i_ymBFZwUu6v^!RR0ST;Nmu-cZZv{_@(Q@<klVN
zk5Fp)OpYk79vw}p;zb!<pYx47Py|fWC>0A$9!}vcauE~wSKhdW{D1jJM!XksbLYIs
zlaN40c~BEnPx*IItq1v|!||gcD->!C+my9pT#zW$(xjUR^W3?*prz<J=rc)^3AKQO
zn&cEw;pwkjWj1emfo^!f#>j^&$dP4 at A+o^j!e9 at 5CAe}J0Foo^{>yZWgr>Xjm-=DN
z68r<-e_*K`#@Q!qrtTkH5zZ|hwi0tqPs7O{#2>auNhf)~P45vfE6O^|M=d750c7QV
zNMPGx&zH~<h!69Y?uMOh)_m_J)s-0<D6YQ9A4+gvUgg4oLs3MymM!tXD$ofut3c!6
z-29`p at c4eCw&Z*0eM|BM;#W8c_$+Ypa at WBMBh`W3e>QjnRGs^q*B~Zkx#!3eb>#z3
zLYI7A-?tDxTkdl#Dxz<<sq-$!3%TrAI;ULtDcbes^Zs)0DDiY}n#UcqHPc$EjZBcn
z>dH6E>MJ%iAxI!R2BLwOM}-;d>z^6rq&mp7wSiC>)HC12V9GhX^+1ro(1CQ*+GeB&
zX1RUG`%X5p539yONb~sXCY>P-3f=0&Im337$_qY{X1&V4GUv^0hL=jZ)(@+~Ko_ir
zLKJi<D{?e|BbKa{m)CI}Ru)&T1NFNj+bSW4i{7YgnBPS>dC@$#U%r1^hcxoiuX$G8
z!*31g;@uY8`kpLr7C+n*DxdJQu+xJIndTSKJ_hb7(3(pcfWlBswTlX0AuN<~HheWw
zhBTx<kU2lGF-)s_!9q2T1CFsMFUI?fSO#B`n^&@iRJM|EpNn?0Z*_7prY;k@{KC?H
z#m%|AqSs6Ie==oV at H20L5QJXSeZAd%k-Dp8sgB~Umg~(J8P;qVe|YnA#uSGp8{c4H
z*gLD<eMiW=TF)&<(Nm%EX+(vBB_d^|4S(T{uY6Z&b39V7mwR03-so2qqG(pw{piy&
zK=;Me(@*9eXj9QrW at 5h)0t301V74U51qIq(8No;uo$d^fsD=^qyhu}W<QqYZJl2ou
zjQF0e){4tIKikbv%WM$rI!5QX-AUi&Fu`}1I^slTwV0C$1yi{=mY`Sp)1gH5;b1W3
zh4IS3X0qL?%}$~TJZg>*AI8bjiBEqlv*C17ezwn)7zFQEtQS9NvH0 at a7NS(4V7Ih(
z5_2Dd{PdNzA*9z?>T at m`UQ+ipdh4v6`}z*2Sr;Zz&qxzHW?}x>)!ccHWI64HSMoyS
zG(ep%%hQL#@X7WQKqf|-fWR8&Yh3AJivQb4P$>_ at dtif)-9GotKvJj`dtb+8#<vcB
z#uTd<SUWfr4_*NAx#vH2u}~$R5VrAA7Q(+!xNPATp<OUI>>47d%)mBQue6fdy7`2S
zG2&1dsgY&Xi0tBSJbV%GJyauq!+YnG!)Hd+$E?w)@ap2^oa(CIWIGN$(q at at__~UZ
zl~{Bz_}M)Mvd3$QP}$p0YxNAiFErrM(ach{wx at GO{<Ddc9zDW02H<y)CkVI{Xl2<B
zj{SdC7L0#Z4hbX1&6v@(&_*JX;Qe2X?26iW06ROh|K31#ofgNrji=3HWnoaAtlVNY
z<<a at j?EfrWBrBlP%cWS}I>=Wv9?C+cD^g}6ltywVW!~kjmNT6m-2z<CMt^4aNL1)U
z04UdC?fs_8(s?5s`+iggIsG4alLztBFvD=!1Rl`HMAq3_W|EXt^az-D*OuhZu8Pz!
zWVxHbb>kt|lS(2Bu`6{Gs6e4`^JO7^F!|@`1sk>64B7}BqRX!i88$aZ?>wXVbodlx
zP&>5o^VsC>sY8hr^H^dhIXh(WxoYhQ7A;Y-Gvj9gowiV&@7 at x=5pD!EAx}I{m^>`&
z)ew}9<fw;#7#oKTf!%Q&VCrPVn31cslmL4$3~H+n`(AEmbd<(i4vh63e`#QT>H_X1
z6#YYIS#6<Xvf89e0x`p4+f9qkj`ABtaIoubicJN?2gE7fyj+iW%35pQs{^1bWzxCG
z*DD~I3;3EC`7-JOH2s<RlKEaB7<dExNmxO@<?fIRI?XW`?<9WOn8lMvSfKw&<zt)X
z10nT860B8+ysxklhtXk;LlNX)|I8HQ)BJNHWWGVYsqru+uQibb<U*_PzlkW?#?3M8
z8Jo|mLL(r~;zU}~>1FC2k+Jc%(sBn$T{;E9A__%g!6U90Lz#WoQCznps}#g}X|LCW
zP%<roG1*dMeWL?gs|rK_PB5GOnT%DD>krCebPy9LHyE}>D&k+(jq)T?=g=(- at 4`D1
znmF4>xQ~O`&))pBNNQtM(C?ReqJ9Sl>@20!jhV*N_mYkW0l445WiV_CWUWESHug}e
z@}8tM66G9@??rVWQU?F74eZ9HR<K#do$?$K<Qu9U104lHry?T(&DlRhSq~tSAYFn#
zTIaEOFPo^-tpnqbE|kW;mwZ4kUq(RyXaonY<U5d)q^s%8dKU;$?{vnFk0D%}0Y_F*
zZK+MfRuC1>TsR;A*@u26sWFPCp`+iU$6=-{5()oJu)6P{#wKE-(O~O7;W+a;c)twZ
zXSFwZ3Z><y&A5}1p)#%S;RDY0bmuL<Wr$E~AUEVpU010-u%x}!r3>PQw5=RA(rhYx
zap at xRYN$%>Uj$%t9|5$r&ArZgTR9&*M=d>2Avlk9|J5(W_JYwcTOCKzscLLOiRl^R
zsCC?!7L!<8KOsyTi?8U6oe(BnWNgKtMg0cf#(zz?pmon}Q|ETp|AVw<i-xSJ0#Fo}
zS*4CnbOJ2$oJTls%lk)98CyO4ilE^6M5z8(*u(iYu3PK>4|!Ug4oYL)r1c~EG!8FC
zNcM{&A(K9L^B~ZIsU=(9y%9ypJ{W3baQ}j at u?M%AtaX?@U^9-X<vxx!H#};&|53{4
zBmo+wfA^H8EU}4&JPAo(9q-euxK=X1`RU-y at I|L+N5n|kc0f}1-;rhoXlGYfs6_c8
zs+920Tg>VkLy!_IWr->Y5#J&{q^QdY{gk*H;HuuYej+5jFSR)0c!6eE)tWY4tBAuo
z^Yt%syGz&Z1+3Mcuew*I$iv<<i)13|XLI=Y0GA6tc1{4Z`In4 at YB0x!eA=R>3i*>9
zi0rL(`b>z~Zh2l<4T=0}fx9Xjsh3?ggzsgjG3(DcSxJM?o!jC3affiMfLV(eLk(YW
zEL2u-)BbvN*uOdHs|b+351l_l|938hM9#+2B_<B(<JhPa_dhQcL0lEzaZcK!+Z@}g
zlQy6%*y2z=rlG5H3BP#<M>=8-Yj9ggy&oRM3G2&PQt)d>EK?q&G at mqU;<4Le>arEr
zM<;ah{o!sCnjoT6;R2`5*j+f-{oVb<fo%SNq?hkZKi*oTrF}X_>>)wPrP|;YKZWz`
zKDhbAIK<-M_X at DTFp+`bckxKiQK4z;`rh-q=(C;NXKHZ~NUw}>8qHb_RY`kAP?rQO
zG%)x;RVio$xT(Xa8Mg~7>V)bc9AjdXs)o2G&NR&Dpx%WZ#4I<<X)F+e2=>ih=sknX
zV}YXkj^^MIjyl6Kp~$3mPItK8?J3I=AVm%@Whog?>n<rO0-3%~FaiYh<o~R)s_W(|
z;c?_Z>Up*WzEL<eV$)eE5l^{t(`^)_yiYaVaoYct9SC4~ss`zis)tyS?g8IuU1=cK
zE0NbtXC2xbmY2RPV`f(`H{8<*kr6tSxFX{dS)lEP+7p>#G_S4n9Z3ih43dpN9D+MF
zON^`q`q~ZanndZl0fdeS^rEY-4U`k^NxkG~+4)<+V;z(``G;#TYddKAyu=oI27!*j
zrT;5Xl>nO;Z9&r`96kbd&i<BCY|&jccI}}tFqaM?NuWz5tobC0gH)qN?7 at -$ebk1L
zV!7iNA23M?*I-BHK$d9!4khxFX?r}R(6;sA=w2h1yg7G&7xcLI<{ry-4rz%%B2Hvf
z6q($g(yBDfWu0Hl at s&>)sMik^EZ}Z)S`+Zx_gWK^2eLYi{r|fvEZ^B7l2c_nPN9Kr
zz3iMYU~N7zw#leYnNF|JAR@;&D(OY|9Jv~96%%HiNVI=y8`jIz>|9_tU*1%1u-U6k
zq4=Rv-g=Y~EdJkV8o&Oe06QTq6ouq4;KzteZYZ1QjBx~ZKIa8rqn2yy&2g)uoE4Cw
z^ITke*n4i5Zv)wax35G&r`RYgU1-o6sbJ$ZEHzP!)$awAfZrjsVW*-p2#Mey3(0}`
z53W2Z^KIM)6ktC-+0MxyaH!{kt#lFlUp(IcX|$PKbA6Ieyuql?&#GN-)WNxlK3E_G
zL?%s&E&8j&RuXs8{{=4OXx&x+aW7;>utU0;xAp|D6&By35(HOj=aBY2=-Tq(MWC%h
z(HD-g;nC^8H&WkeQS^XcIu?@-l!{3;@p0tyI<GitA*-~#%4Kh at kstzi%MxvZig`+F
zMBa68KzPLv$qwuR=x~9kAjYHUN+*4h;<N^6`3Dbht=LMd59GjJVe?d at NQE|A+Xy){
z8hq1F#0}YyyJt~LDjsVB%slPwrrCm!p^)L)QxpOwE_T4dR8Z1E?IplCNgJQwBsoNM
zEt!BXxq+|XeO97`CNVPa#-F>$-yDMZ>oE2H!RcN?V88!}WUIjj3F6F4 at lY0%-+|zM
zTn)+e89-3q+i9B`&RzcOnjtDK7tMT~2`e2MsY<=((NcS~;@Mh=rx3&b<P!qkXR_U%
zO$~P2^#GyTbf<QDIo<%Z-wo4N(G+q2^PRBBfCaI7lG&*@J1RuI|F=(|Y5;~Ie8`|!
z5{-;E?ZU7Oo^$+Q58Rvd`iqFlp%0ipO2Hj-&GBS>I`<l+uNO~kNU3OIj)c;WP8eDZ
z_|dVT7BTd@`gk&pcv1f$t@%Jn|3nFw;(X(Co|1xIK5W8_7(Tl$6>hUZu!vzYKLt-A
zP-~=@1Ye{W%S>55NO?MnP}Ta=>9b%yhHP{VETL$kU2r+t#DP2qufQLRto+Ri at BrkI
z`o_l3O9!nYzlqC{I#nMYQ)SP;ZZC#mSNqchL<nJEIeO<Xv`aoL{w)ezJy;}EawChx
zWmc7NpS%zYthTlIKt19EQ6;jWq%$EVe&c<V- at LN$r~oX#cZmXb0f)e_U}MU<Fd|Vj
zv8gop0{K+WYJv3*f+%|j->$Els|s;CkG{UxvmJi059^@r+xx!>@(`6e!hR)0IhgS?
zKq=vV{#B^US!Q`QTmgJUs|phh;A}`}=^~0lIb}_auC;(q&-a_f^Ph9);d8%O at ysu&
zn4V%ib_i;uCsq;8o6O{RNblp(<k(#P_%rl1$11X}@9k<3LOzfH5!e|3 at _nQ_YI3J$
zd}l}?PN~5yQ$wMg+O+QaJ#?^_W9?fhem^M6DSPq#A-UdCPbZ2;A|KjO9$1e$C at rXi
zlO*E@=VT<KvE72P4|!fs=-9IRO!ebircdpYV6?yyO=BQleIM$YFC;$7l`v_-dQoUx
zqYuU at U8)&MyibS&<e)I at zbFWZC82K{>JKd&t&cdQ_9;!87LTwWUoUpAU1=Om+S}nj
zar{8erCd5utJ%K at vL6c)gyUP!LY_&_Fa?0Ms!QxvgGUmrEokd%MDcgaub9SNX>|Em
zk=pY`VU>uDh^uJbH{7_{x>H8H&p2$5%aniOpHS%9hQU>Kjvm4(b6t>$myuAv99YVC
zB7(F4wgHE~Ys4NFfqekk at nScFZjhB>e?K}9>$M-iWg3q5E}rvUxq${jN*<b|dhuu+
zzgZ`Y0|6YxIm|e;pwpONM-A}QBwia!LZfu^>omj5R6>BHMrB3-&Qvn{M+tqT>T0Nd
zq1rN0!@}l>RYD+Yzoe at 5HL<4@@QoU327xG9+;izx%8Y at ysg!4%>YWcL65d3oGARNy
z@&I at NL99*n6(2fNsQxIEv2TV05TO<dSv(dv&xFMwQ at Vnjlu@gCv!aE^FH>;X5PC(a
z?yMeaYnBmp`)ml^ynY6_0$p)X8j4#?YMS3!sVXG)&lqmjqA&3RyoF~sriww}Q_33f
zJ=AhsA<c8N0WVP{7A7{JW}c*)2%>a~Cj+2O2RZF&1S`l)<S&4W3pkhcPVnBvqk9w8
z$BH~CciH%FF?*?4D8$=T51|I1F<X#EKdY)}k(rQI>DFW#^Q9^Aa&CYH7!oR_mL67(
zYGyEndM~uf2&6u#Q3QpLtc#tsOCD3UEMjTM@%8q_nts{OWt;5laj*v7TBnL$ISnEj
zhq#nxa_;p&pivU1Yz$%z6&8qvr;AZ}bYSG`n!wA^sTOMUxW|V#*bG}9D#Z(^sgC~T
zZA#Cfc*^kZ(P~qnX6PugW(m=tLXh69$Vu1m2Mr`><5b)#1WObQ=VS=gd2A~`CRcnq
z&wWv9K5s?l{rEI(D)uY9(D&)MBgJn#8wZdt^uv*@)nIiZp0m0kdIMm at YaTMim2A0Z
zL!t9WylXH4G#x^J={UYvb+$7zBAcF5SN`kaDdYq~JKy%dYg-<)O|~VD9l{r#21u+R
z_psp9?z(Un%%9%K4o!&IdAuM6)^8B<+2C2v0m)QM82SledS{xSrW;Bm^GmgS&_T_R
zs6jyoYGJ65X)*kpxuB!jRIefs=enXTtQ7ZctzqFTzRlazDKU#NK*zi1S=_y at c5H&f
za|I at B34WBFjlD;1M=K*Wgf+MZny at 9`80KiL3QW|nthst|+n<aZ%mth2Dkz<!Ak;>@
z9fjlaCwIldG>Q}Y^}@bdlrA8L645U9+T6h_Ns8uL3ohiT at HE;I{qciQca3Kg00Tb!
z$rE*EQ?04AVIC4Li&1FV#q#mz11w<!wEGyRlvOu)0ETH3sxSPd485e0)7c$9p+E+f
z=z9vbSSOhcq&z1Q5P2b&&6#U4FUVsdYCdPkM=X^i3S$5ciap-FVB(YMS}Vo&eA%47
zG`kh+M(<xmIF{#M-iY&Q#w%(J->u376Z=wHL}o+%-o at A?&4Wh@(GlSE at fjkaX}h>N
zb39aB5<DW+H>Y9z;vkTj%UO!y(eZ`$8%x>~MCFh$(6y7;^u<JG_oyw$s&Em}nYlui
z(_>$X*V0^#ogoT|8}b?xMHia&CsNfIgjh1 at lU5!wmZC%fbA~(E2ZL%^=@&hjCeyY2
z)KiZ(8aN>2MN+aenq8Sb*In~GV{64;2&`J$VMYUjP^~Yf6sv7z?b6mvL0eAD|BM<8
z^e+IU#G_auj0(gu at wnaw2t${)PD1|`tWq4#H;W{aIq-k26MmRjpbt-}!7}6{`O=>@
zl9(~5+A)MkN~k!!ouo5hBkBD*i%PrpfWTy(%O%=y?#7P59Z=eJSQX!2(+w}$;6FHe
z<+o3*D{Kr}YScEA8Kv^R##Q~jh$EpgQ3)t#Thd%G=j%Wb;11H>+#7GM1Eln3r?k;#
zYCP5}0hI+{duQmYl<*g?0qu%8#ai(!@!eqw8G0cEn`}KBxC4~%+D4IwjRNK%@dzsa
zL;d7Mo;DPRx;m at 70IPzJ3G8cc_%T_uBqsWj=jk+Xgwqt>Y&~I*2+9CFQniZ!*2*V5
z{|A%WQ>)VOl;`8HkE(mhyivKl^5M)YAwU;i$RO8L8abN^>PV1!u-QqgCdcAFBLpu(
zZp_Tr1<`%}7?Q+^2iI=;){PJ^`R|5GjcFMv``Ehr>RpfS+ufRLDjpq7c?&_1Zo`%g
zZC_6;-9BKJLg`q;kfz8iw2wpU$x<Q91z4-7IKMyaDwwrP*fzPUoSN}b{1EtDt!Gy8
zyi(oTnJR3m8RS22TBJcsT0XnGV*dC>a?8!d42(v5!mOhBdItpRMKqW2h(pJNQ=iq%
z9zB|Nlnr=gs;<VkE?4}{jIwIG5Wc4v`PUAM;V~p2&z3?*+rlTY1l+EjGXO7F?spnC
zX at WiELM8l~6~``8i+OOQy@#XwFe<#6IA25Zgi9%-2sIlTvp8d|c at 7miFF7uvh7Xp<
z+6GWiSTq4Rltj_Q{8tR)F!VBn&7dL%W+x^4BqupJ%>biec;lk-o at L8A>tl743p?-R
z5;`ZM+#>&r1jap{Z{=?1&+ZNFXX_MBs>2$iVv3OXGNcwo*O7)`Y2Xok#INM8yD;ZD
z%G9hXzxJbHnAxCgj!N=*Vk6+8b{^ukIY%S@(C;HSGLUB()OYBFnje52)w0vA4g<Ev
zI*JV5iGa%ZM1V^Ab5b`V;QAxR-JhsWwGtfKV{L11uju6L%9_~oiUW*sAo%|t9<1;m
zX6t(e046`96R!&!<7MH-jlZXU<Zm at dE3)Q$zT;}~zmHzWhSY>R*Do6&h&)E2;fmOn
zFvYJdK0G^NTe8&PePzVY&b9nB0M|-c^^0uwn#b8y1#dcyv8l)_m~NP#6MLk)rnaDw
z-Gu|S#`ZuRUCe at 6B&K+8A{v7W#{c8#{Hofc=u`*ya#J(A#MrsOw``7<?ufoqBcQ;-
zC-lluOs;)6$VzT|wZ?2V*~Ipbc7J}Zz?6NZGh}qk>5sjTh{oM<&Ce)!0?UTVUrx)S
z8cdaxfd5N$_z<nIyuv?hCeK7DVw at S~&3y=7H?r+PdI7u0AF}bL#sF#Ze~fUrd8t>e
zaV4Lv%35P%wAGI$xUu>A*+%H(Td&<8a`o|J%%o_2YzJJa(-8JJn?eB1xhF7~U11gq
z-*|sq5{86t4MR^YX2dTZ>4y#MgNt5h(dEAh#&7=dK}ljEEVyCx9G3{5yexzM{?aS6
z0m2G%)$iq54}%=P48UF*N15$?Z}sx+TDP9;??h5r(icoTf9B^u{|v1-S&%P)+%n9^
z9{rvX)us5vAYWLlBS2-A*Ih9V<18E8v=`XN&}g)5f<hX>ko*fXrTpn>d*jiVD0_SD
zFm-V_ZrF<rHVj38n;i<)mY=R>2J+6bprh;IJ)HXA5`q2dX+!5BTx|@_IyaH`Fx}+I
zc=n}jbZ#&!qf)^#X-kmsiiM(Ahap=#a(HIOP=Gk3;u=;GH-9$<Y(G3t*KTP!mARi{
zv~Eg*-S+8k#_T`JO<B18B4)05ROC}TBW3ShI*DKM1+pS#dz{QLLSj^J_%Zp0xSFvu
z>^eivb?*RDGF*Oh_kxU%NeSA_^_G{3BPXPc;j-7p at T8GLIYF9!N9Y+6C4|?*yHE5~
z>oggHxCv>?OZHqAkxe#9DtLUVR_=QcqZl3e<BcaiJ_aTUOMkkE7c}Z5j<-4qGJ-lI
zDe^ukY2)xZ){jkt?<TDILP`gK0jSIdD+Wf|t`ymfUY^;#tZAQUSPf=b{$Wja(VHA5
z^sz1|_(-b;yJugI{BWnnf_!eoo;^R;musU<=JG&h{ganF7l at hB;v0}XzEF7FV*yw~
zaJb*I9;W5(3{4tS>0qUgDZdg5Uoq+4QM8;=CWb}34feTh-q1op at rA;C2;>^t|8(Te
z{~=~vf;Tp1{Sw at -{;g|>^l?aF<9b6BZeFR(f!`q)Lf|?A$b6V0Ap0*ZskeX*D%o%r
zlQ)r9Ldy^z at f(sDHxxp)vFq*r3N9~JQZe2bk$Kq&N1NXE!u>L{yYxOUg}`7r7|;>-
zAGiY6z?pP2hU7cNGglaCNPPWL^Ui$ogbQfTGOJz#yijnB${w>Oe`+{u#C74ev*V-w
z-$ZK`(x=U&S>qw_I}+Po^A}l3lpFV3wTuOLHPd!H750BzfA`a4Tf_9eYOVKm3c at TT
z=k+GKBFnYy!~U-3LP+}9K;NaNb&es<kOR!V9r#SKg<c-r9dHS at JqvP-t&&N9K>RHz
zXylk%g=LE*RCxwb?W67655(TuH7eEcS;^^$K4leZD94Di*MNp3Lv{dk$jPC|&gPlf
z)GmG at YeQRB)2iPB{>*K7uqV?*rZAY4hf<F6r(|+os#lfM&^zam-4rE;Tpjo;X-O`5
znRFT(nk`JYJOOqu*r=TdkNl>#;r@)Pqd-|G7PSMT=<57u<X8GY{rBB)#r0pdtLdUP
zi~#=iG7W>C|JZW!r8$zyOVfh+7lshv6IiFR>>fiz^!md@*Gl1!>y3UQr{edTG|zqR
z)6eTW13+p(18!lK^s@)z%QA;o{6zKNY5;qiwPLslcizj;rsW>eqGhK(Cd)Ttcs~(L
z%6k_;s8y&vpf=-*=Q at b+LwD=byV?`2fV%I|Fb_NZ!tZe2)Y~{rQ$F58`*zSoM&c$H
zt$V>Y8>>4{MKIJLqx@|lso_JbR(&3I7Pik$x?{0zG`l$FYq!@vk+!)1(W{@gf1q~o
zXUopp_j1wFnQ(1DPV)Nr9S#PQuCTN9%=njito6|FPR0RT43C<~K0X0l^RwBr6fGW&
zTNP82GNl>bn^Bxs7aWK)W3h8embA?w?}tyZyyk1x$uy#Z&XcOv+a6~-C7PBiyzl0i
z%HyyVKHQxlgw@)q6_V+n(3eOHr1Uf+%2qAW$`%aFpeN)AFd5>W%fV96TFOC{DSht(
z7=Yr!g8lm7o0MAnp|e1sVgMMHMVi~jse!ElauHM5Yw$tT2+5}9cr%YQER%@#ydIO6
zgRMZ|cK5Y@=z_AZdTjF|on_(S`=M53wp`>h(gBLy50p*(&aFo4Z`Vy#T;ul8@^VQi
zrfh7Fp>uDFLN$xJQOnUw8;#Y+J&0F7RsG<$$FT;9kit%C{^NSy!_w?LEyVT%{?D_x
zVF$vQ#~P^K`F#523m<{Cdhsj at LkE5WOT6d*8)q2D4>_Hswu7l<rr;wlDWicu(t$I5
z1=bZARYyV+76<dWwO<0PE=S(ID24u(SX<6ahEZxxxeein*vx at HfR}^ZsRfm#vB~L@
zrG>!;WUndjIwzufj^-)%@8=A8kq!w=NTAX*p1X0l%N%NlUTOYFpOb2Fy#_a(v{3X`
z!0)GASCQpizqtt$qMwTI%*8ij+-jpvoZ;zFAh`32<RwZl)=&wI;61q=zr%49CCEuc
zo;N|@1;LN;t(;36ZxdNT86pk=*sq(No}kO>i}ZV{%`-i-wdHMRgER}s8?=pD;i$cn
zXu5E?05e9YWv2-9K;R*+*$F&$Y%q17-)T%XOBi%;XP)d<>Ka at tOVOdT!MqPs=s7JI
zs6{`&P&)o5U>3~YH&W$7gonk}i}5_+p-b9Cp5Hu-c0;OOyCxDS-NMTFC7AzydXFG&
z`a_CI$Pl5VEsBZxlV*9jO{K){QP9kdGUKEj0Y=#5Ujqx1#n&kI$95*~LEmWQh3zA(
z5^r86<MFCZmoXDCzAdJgvVlo~q&9Qo)MD1)<d0Vb!jcqAL*4`y>LBN3pU?66WC(h{
zoYB^f1_X?UpffoINar7c7 at 5SYr)IW^LT6~<Y4Y8XsNp%7?Bz{G>!x;(5Uk--;-E<H
zqtGog1G!@nK=g_3iT|Lck&A!P1IPie!v$@h#c=HRMqMx*UV2=W03q5NC46hL-s9lq
zx?KG$hA&^DGnu;TKgQXNEC1i<cI3(~gRpbxjrN-!a0{a;7~edA?9Y0PdgQ`hHE$8S
zp!V*fdM9jQxtr##-}|O$*@Nb19*%}!d}{s-dvBUp{r&XBrPP5V5v+r&?&=jXt#o-Z
zMgn115Un33(d(LBC)A96--V>2^e+#W(_t1!YY7StxSAaOq60-fErY%(Ho%MGJQHGe
zJCooXQAZje>RhWrC`!D%erCpiqdv_#e>^d?6(1qmE{e_S=R5h$V&gU53*enDjBJi^
zOf1mFy)}>XC&SNsK{x}U;A<80`44^R at YtJs<LQ~yjE<1VwE6&ArT?d(I-?ysFSfH}
zV+aLG+lP;{-aR-3_(z20vgHw-8cP^ioWxkkq1wl~-dbe%)%h%iD5`u9T%k30lqNzp
zRB_^vC9|Gbvo~Uz7}ABGg8qOsJPsSsbIY8`4=V+Mm<=a{__C4kq^dV=2HAn^D%vFJ
zt;F6vX=#fC<1=ROwo^Im++5M!iztqjm*khc2#gvb&R>FNLxuN%1gYjP;#Xo*M0d4}
zAqeV at PK-YXsE~VFkabXZQM|^cRSt@$g*Lv7I|8F#BLLmPb^QQvL}Ok7RU9)mkK8MR
zbU;TvLBjPqF9))H?I~}-C1w+KoktNlwsl4PO~HF~eEwekWeRl7sb{h at UX}jDJhRi`
zA>vHvW8+G*9$Krnh>=i-E`J$!O4x#x4MCxW6~FZ1;W5NdvRr6668+380f7i&tWg44
z<{zB;T%Bh#Q!Zhar&TGs83uAGpBiQ|wjV&-huv<h`>#Y%|IH=auwL>04p at _ryJ_s!
zR3D-7iHBBnSG2k&HSj|=W9&Kv$Wv$%h=}gu7(7#16IIvcW5(1!Wr~Iwy0)0-_nHE*
z=O}`~L1V;CPBfK1O(aa$Op2h)aWa(J7~V^m%27rlZ`RRP0v>&<@(M$c)Yl=y!@hLZ
zxeaJV>zGqsqc(Kg-uxD>0tEPA!eQQ{(lsSvN`y{9^oEY^WYT`q5nmd2F#tG3Hkc)5
z6pVN9sDUwhvuoKY-)6sJCqgIV!xwosA}Rxp^9{C;*v4<v_A35Tl_A0jBJ!(ZI{-Li
z)HGqs1g*K?z=b~!H+OUeiv;A>$chMwx6-W|F{>P|I=^EA++>Y|0PZ at BVr<avp6NnF
zL%Pcp6dc7o5+QiDWiXe&YCw!9d;!MPA<z{N8^MgP93eMnP)4HvmGR>$TaYUG7aH0r
z&%$G(HQ-mlojbe|tPz`In|G at BPoReqXEKX1@7n;8rHOlcsn78ZsWpZ_&8m5G5b0%4
z?-U05>BB7AmL)%J)duud>pkcCUKRf*sE?cZ>ODv0(ko&RB^<8<Kcp<u6dN8EUH(9b
zv!mZXLZGZUY%^-wdPUvkr;z!_42#yo+cUZ4?vD3i at UMZ+x;r#PpCc!;ZR4Pz9Yxf3
zGDx1H)03TF at bDEip}tCwR(|0B<ZH@~l1zYt!KeR6O8Dxw!W3toEUYBhZc(b|ma9i<
zNQX>hOMFM2M<8187qW4`Fj@^D`uiYRd^_QVMxPRU-p1h-&O2m92Y~^72HpR^2dr$(
zw(eBXUCAb&swj=x2bZisT-`udDlWwmo}B*Qp*vry*;2b*PuUtq)T5WeZP?syb2-RP
zgq&$RD>)hUTC~aUt!up6FW4Fgfdmvo7*x`c277uGEYQj#B%O{QOY?;`ESlr$%_f^|
zgFP_3H%P at yHkspzg0=Fbg!^tsFi+5=R$C4p*mpJ5d#xL;sx;*6K176#Q>qArA`xB@
zXEAx?V(MUz?MUVquCy#U^V&^~sju)$0BZp}_e4AT&|~*?Q-e`DXOUPQ#1C%wKu39r
z1UBj`jRH%H4|uY~RDYyGzO at 7W9HAA1gxs9yu!$h;&~6u1h8+Z-+$FhpZ!tZ7PVfa4
z=F!j8z-sxm06e=1;(=rMnlDl1bvAvEjtKsW%3>o)FZD}tM#8*)ec3)V^&QP3t;@@z
zmP}_LZA^tu1l}bMj`IZTxhBv570~0tU$|cJQ=qUEgaf at L8Ru%`YBFM|R`m$m{DTyh
z0HcKW`P__-rb|q=GW260x at vSdl;F+a$@BU~;C1mrJuj)J1y_{(2|(YJ%&_>;P)(pN
z&(>|h#Zl_SO=yGA=s3>L&90wBnH;uf(O=CV>&`9&Nor?XlmqdY0>Gyo1rWVD)9P<*
ztRk4)BHTu5w&{OXiZ)~qrKQ*GZ5ob9j=}7yKf>xsgZ#DL+O^20YF~+Q{x`gD+pz)H
zg}hpIIZ`(M4(@s;y}itPfCD-15!Z}uMqSzUAiq9R;=dbmPk>+N8`tt|yXJM;?RVrH
zdBC`K<93S!hmc~tnO+6FS8V~n2FqsAJ3>Ecn`1T#<#toYOQZlNvm<a&%(RLZneSyN
z;pVd+ki;L$m#SUj9l<=mt#VG$7+~0364A9LsQH(r=0=aLBneL}Mdf}Yk2Z{9ghCW#
zE?N+@=px+(m}i6q2&69%=03Y+z1Q+wbG=1tJI^+t^)3am at c-P{iQ{m+z at k!^WMu)_
zz)>8~Di+5~Z0KB>5%RX!)n-NT6+|7o<K7RYY0+<UWLp{!l9v*2o3N{rQDn+W+g!7N
zn97h6H*o;w%+Ze)FWOEoPx!63EpGHdIdPDmLdcZzMj4D8zyo(Ls3s$b at MO)u<!u^i
zh6F(c+^c%Y%=^PZ7yYE}H7Pb-yh6J+lAL>EU3@%d5H3=#spxpQ#kO%4Z`B1IKwI;3
zFU?#S<Mo=Zm{<>z#%|_85td3(9^GHFuK5E^5VPDUy9nmZR+v<Ye*{~V?t3n~@8`u@
z2%_Qi7G>$ozJ at o>J3fy#6g9%Kp6#p=BI<M8Pkpz9M+b+jl{Q~K$UGP`O609LHICfI
z7}YV(PNaFq>&C0F#p<0K2+%DW9tI3QpX%-<oIMRsQ5c2`rXb6drx#q{S&FWc19F)<
zr36F`Ne}S}npMw9V$RlDpI0BEBLT at t!w42YMD3|vwMkmZU1)o?Z^l{@ZA>7C?zo3F
zpg`T_b+ZAY+&juU-9hvYEiDQ3TVoP!rwNM2)!G7RnhW-(OR8`ndP)=4K&gQ7-W at 43
zP_ at -1)_y-ey|6W}O3zSX)9^7RCho at z2|+#vbwU4#TkrM5e;dBpBrE6xl<wK(%If!J
z`)6_Opb7Vmj-^zawsblUrJZ|}iF!>%ZZ`maLMKfKJ2C2QW%iM*V7Gb<Ybe0JQ)aKL
z{!4-{;AZS9Qkw;ay_b^SpYCt%OFkP2Lg>VV at nq);m2gG7pmL7M=dWUud+J9g=p6`Y
ze^;-B-r4rh&)JP0j11GYx*et{YMx)+HEJt3yLvH at j!ac?Uh2!Y85+w{Dl&$_RDZPK
zP={EoG6}Ss<v?jUcVyCoDA<FjuR4MTF|}Qx#0rHDRSQ8bJYUT%a=?nr2zHW%;?;wg
zjMP|aR8XAc`c<&Q(6gu98b$Y}0G-0>N>RjFT!HKTQqSSYQNk}Rx=PJ6RYI4U#<Lyp
zQO4nD#6~+ZMk%~5Y4D}f0cOe at BFJSYk`Z%%+wnR`0BwCu#Z8lDBMBs0uwJD&>jHBK
z&g7i7dj{40^cCLKSOu^R4T=R?IC?7l9a!T!9sB~^qc%Zqxz7*bz>oxg-b~0~Oiz+~
zD*XxN``ulEd_aSKf2Q>T)nE-MB0+#DpiU`8cU>G7*Ho`*1Wuu}<!ff*<Tro2`(nw4
z-EwEUVN?MI*?k0A at SAouE1}x1?wj%I{|u6nFcS*CS9*LPkO4v0soMVMy7(gzC0^5p
z(%{YyzdT;m5!AzO;NXQ-PE>$$jp6Q-?Ifq&?3*n}am}hWn*zwbu(oM6VRLK4w_DWW
zJ{3WkrTcj+n=+CKF%>Wh2CR~1*rc;%$@1-q`s3bq2+V#s*#(DUyt*9&f&h*i#eE3@
zYf%Gtb~U1O<v)Ii8t(nFrZIEgW$2J at Q}apXIcf1h^sD=Wx%E>h&tpkI3BKbIIUrg5
zcLBGZ1y~5I!wKs(t5x?3b_Rw9<#ag3rR;ZNIF`Dm9SE|}1`#IPit?^Z8C9bikdU?G
zZFoB*dS~T#AMY at Jx(sRG9ra>N$aZ2ogi6_zqlV5xIpa{ma00 at IkHa)vRo%2tE@~Nw
zMAqsFbbl;~@jFx^197`|(frZ at sYWW)IJs)hpj@<-Dv{4`<g866rkw|tk>aw|v7<&=
zj)$wis)jNj2m?>7AY4=v4)c1aT)f~Dg+#(Hm9y)q#P<Nvyow+=<p&AB?9ZX(me&Xy
zek|a4UY|aai}zKj8C};<sCSRhW91F*In77X^}D>2RzvYY at JX%1jGNy!!n$%vj1=#K
z(3NT&M^lN0h?zEAvs9cwm>$W%m`xknAF=#t8>iaeLKuq6A$A|Cqt0L^RXP1q$_Bmh
zEt$5*?OdxijVtr1^^Bqu2zDt2i=1tA1$jbM-nRfY!Z{i3=~2$aMZq=R*}}Vhxiv4T
zNFl(Bd60*`F_I#8V$zNa7Uo$`05TB3(cztKRRV4cfaVts=e#MmhNQlbI5tm%Uy*5Z
zAkG at G?5GMu?=b82vi at Khvq+sb(?BV at O}luE^NpjOek1+tQ17bMYR`t#$HnBr71Y5?
zSB-F{4Z at 7$Z+(L(V;iI at CY)D<il_0SeC`Qqe~fUolEM$foqM1>{iF2 at Vdfez6J{4s
z^QHgBc4wwrg&lZ>#eQaX0Q<(xShIPnd#Ix$t`J at _mKi^TT0<M}IY4DCUR*{-tjO-k
zJZ~vA;IVOuI#H1sS*j)})*o^+{?_bjRTAC^G<@pwG*`St4y6C2v;oBXpKJq*Kcj&O
zPfmJ=(?xVcP)YSdlx+DyQ$IuPQTV!KX_5)WSAOp=c)D~ivKFwFpHjuR263{|Lj{|P
z$Fh%TemjDF$GS(#{kq~oc(eUQB=uC`L@}Bsl6WeF4CZg-Ud~vzGQ)WXMmr7n)mmM$
zy{v~)b}It+8^VsH-ZFP~Wg=;82szhg0xVoxzL|j at n@lTA#le9*n^i`fETg9{c=UzZ
z at zsQ-o*btFkYBc+t=1z<=Xnpn4*Os~-zCc5S%#`VM&02KCyF3Q^!@`&1QNA$l*4oN
z3ar?NRYVux*(iY7hB%v>MU5QOEU2d(8YF{+*X0<4LhTDt{YQKoeP!$<G8&HK6oV?Y
z0G^&eOg<|7lo+5__;5h#v&w={g8&-<Id>Cy_yvOg3UQA=&<W`B(n{4;f;}g>=^1Ec
zgn2pb1GOJ*bT`G2$v&n1K-1P1yM`8raIwHeUYZv$^EOycVHk*k;$M{zSn+OeXBcS3
zwQ_0Qwai=5T1u~5m)HKJBIhk#$vx;SaDEh at 02rZMDXxSbXCdCugM?s7?S~Kx%0jAz
zLGe!vk~4gK#8^0#8q!=z+f+VFja at h!s6a6}6=TWPN-Za%hqe&e87D$f4}48p2}%;v
zzDFD&@}iDT6P;WJc#%el-1Frq=t!JiLpq5DLEpSk2%rXq?8ypi3 at 6Tz(~rw|A^db5
zHqatjfP&1yi1=h{(IiRN?Y;^5$G?+LnPPxpDf8b3{L8C^fFT5Ale^mMSZJ$6v_gF3
z3wk|N--G^A&Z9hw<vYiS=EXcCDo#2-Nx_Hrw_s&!UZzSH*Xc?_$d2f$bvjmfDf}It
z at QETEkqaM$4b)JB8KQ!Xh9#CLmMt||DKd;SCvRLO<3D1(p7Dq)r$0ZltotINL&!%6
z8v$Ue_TvP4V&tii5y>O}*)W1tjI`c%^TFgY37L8b-C@%5Ht at tEshSS)IU^Z1^Oi}u
zki&tZiy~-w3zDRo9)a2aa26iNcT_+WZM)B;{&�)BpBa`O@&pdM at yv9TpSQ<z%mP
zmuid)F&1#?P{QB<f#egswjCb*ur3tA4kSIeYi>lYW0;&lL&3_5g3LQJb?z%ny at VM9
zN at 1CsqC7;u4~ZEhMIm8MIJ4{m<hp6!C<snU8q|J35x?_Tjy~!No}_iNbmGp^7wA8_
zA^Cg~t&{#o<$_l_e8e_Dwe>sO<$9~$)9OgO>&(z89R$IqUp<H!t?jUU^gdAy^BAmy
zy3nrv<6OxCnl<mg2UT27=JS*~M+dOzEr)#L8qJ69WgEE<Fgf6aH%~c32 at P<&9sDzT
z>Q`5Jb6UJ{UT(1*sKP4E7wtC^&&iRu<iELWRv`s at 9)ABEWhO?{0VS1>+q)Orx;LjS
zIoAd`w4t1ds%D{^_PK6-AZoCLRAnk#{>C^f&pJ2Y60SMZ*|3VWfU>)}Sp at -^TO~@g
zA=PM(eiS_dS#OZ_dh_CX)$MEJm}DDGv%M=5_yO5elYziaXUva=0A^$)qDT}zqW963
zCI-RM*f6NKZ0-5JTG!?ph8Ot<4<l@)nrPbx2Z8Nt*`UH_N|iJr;3d;n9J{+87MS$h
zGL=G31B<O)ZkJ#m>hc1Uvt9SAr4AD!1wVW~5{k9wl62M>9K&KiP}Ub3Gz?Hr-uhBM
zlKJ3k_yi+Shja}y at x+?`WD!6+#hc at 1-WK-}O%3f~d7I8#x)wCMms;a?@Aob}l*%jt
zpt+^_L70m80b0DkZ!a{O1DM+448d}~00^Va3hjdJOS6~~3d2kp*t6>?Mn0r- at uFM$
zqeGwA1$=eQG1Yn$V_e`^Dfj5yl}dF?!wc+|M3vu9S#0o`O9+C(jplc)oR_TDSvlAv
z at 4gqy_EKBQyVoVUWxRf9a&LR4tpG(py1z*sQH`9kAr*OZ6Cp|{42e>|;{-XZ$y8AM
zJ+9iHwv*u`2+fuY-4BLPIO$;8gXixTu!^)%C+wBq$CCANNMOEX5VD>NdaidK)p)_(
z*dENZnAx-TsScaPArw*ZsFE6IZw{QMy;>V&@&G}1>z2Xou&f-tDsCIiD)Lp7q|cKE
zYIw|`GrTGAYUe7*=xDwCp2CB{@My8nkPpr2=oS~~!MOIr3Maitg#JXU&(r$YnS?B{
zuamr5NvUmrtW_Ljo?+0;S541QEQ2wSUpf~?pXzS&(<&6ejv=kifaSYylTm|`Y!8&L
z*o8RoK;f2S7(q5X7mKGwa5EI8<s|c(0#iWM8_70%yr*e8D$KPS4W&v+XW=Es at DVoH
z+VC>}OmN%nUznKUxfg^2fZ{sNmM~2uVySF)2r8 at WF;m`<D;M~73T_eUY5-ag0_{)D
zirlOU40G|MFJ+tyEm6n7+El9yzB)N0N&kV_5%HMg{D`rc>N%c#Q+u4V5DD~G)(pAz
z6De_!1YWHA5ueGEG16eOEWGeD@@g+~ggsq^vKZg24UGD64@&;-FaP>m=UwAdJ5BXI
z$i8k6OIfI47gc;z&06dcLSRjL3u|AJ8=NVusAG=TqZhg%JWy*>puuG25y%`d%m49h
zG$3yx at P|4?(E8vD730^lxp#B*aw!@pQb<Q-rFF(~J-H6oGmX?_G1J=quM0r^{~;#B
z`44S#j)`#T!kR>tHGR5Wo-dH%0_)6{TaAUrg^Wadw?&1UFDBq`RRpqjw2!z3dq6?<
zQX)K$iP_|kd+~V~dqaJNTkR#5U`J&!-#okURxbrhR6JBgHK*KpeBN0`Gh at Nnm`s_5
zuD6)EL3Zb%Lkh&`eP|5L)dc?N3zLw^06+GJqidqxwznO8IrWAXiKd<o#2&XUVuG-(
zxV)_k9z=}M{&_O}GvOSe?N}9|Fz9Hn8xJsNwvm<u5U;g^B{xcSk$JoN5NkkmA7#K~
zffPc!Nm`?Q$mXgLo1@%Ceg1#)hb1w}Q6dtX$pNUmQTkMRpdi-ScxpUiv6vlwB>QC1
zM_IqYrx3O5d34ihPfT~zMS&!yG=9D6B0w(mOGU8 at 7rPpUllI7KW%k+H04~~0fr)Br
z8HAtOFaU&nthZUO&gS|~ZWns=s-O>+eMtRQri%YD6;Z|7xA6IbZ2gw{fqXol)|X^h
z{80E(>wb9)SzPJI5&+kk2OyjL*i_NhZ5#$px6Z*73RfLalNda&j*0j at EE4VUcl;R3
zsV1zNROXA)ruvJ*Pk<kOv{Rg_9kOpIL_RU at ME_hu%g+@{55R^1jO?3J8Z;m4+>-Lc
zcF(J{^U>~2Jo}o};VJRo at aj<r8lFN6EFzX8Z6XX8P4<+8q@*gLOFiOUkazoxUK4a2
z9g=G%LecJb_%h(YX{`C{6e~DfiWb8+X}kOBp!1u2YZl8}Ny7qkElXRwEGx*5Z;7@^
zqlx%&nHU_Mq;Q*8p?3T=yX!<R#{!(+$<{&nlcfQGfFd&f38I>;_t5pv4j-vNLmS>H
zfKCmupDmRuOba-sw}D^TPnj)3-mXgqIHxP#-+jodYWHl`@C(qS1qs#?{-~t`YB0on
zM~xU>DiXbx&0TD4kic>>R-z at vFM>cNeyco1;%$(F9f)yRmeXqZn!5GX(YHtlwS(g^
z8&JkqT0VP!WY6B{1rLnTiq3Ru2F`#~uKK_?;2;ayM^2BUAS3`?)zqWe=I^LUYb=+|
zyj_ikVD^^eJv=77UCO_U_vqjMu3s_14VT>q>v$>?!Es_NTs3|Yk{FByQ*%m}Jxvrq
zEp4!iBjUYMc=kGwiU7FZbdp~AH)U|WRJO>Y_eLmsisWW$V$3x;aSqPxAtD_ at VgYu7
z`DaU?0zIC6pCwP>r0O`g@^fm5auxQTWB0W14?y(76^VE#YP}ZmQ>xJKzM6=E;)v9s
zfqLkOh1|=Jhbf!O0Kju5fH8G~FPWn at v|UX7t8!98ab=auq+n+kO2v*TF>SnZL9dnh
zobtnp^f#ysfaRBa9B*|=to^Y?)wZOlKm?k;nla4MstIby!Kyl?%I2>pHI`-m#<@0;
zwpBK6EmtZ~WvDyXf(O$zUTgB7=C<w7e61XDq*3|7dEJ^Uc}n~E=jP6Kn+#UKy)o-o
z{BU=c4QFMqUA>I0L4Q>v^)5lfjIRH{e70OoTlk%gH&ppq;60y?off*;;9xIaBCBtX
zGeYzkS?8Or0xQa6kK9$`r@@$})AWaZ!S-YnCv67!VCCa40q5>1cH_jpbj0us_-WYW
zs-uH$Gw>bli=Fjt^tW5a;B?;L>|67o++F4-PtxGjxy0=54A7K!+6e46i8*&F?h3_8
zUv>VTM*&;t{t)+UpBBsohC1?weB)A04|r?ZA>eD*3Q(y~h{;m3$>)Mwa>?wR>cTy$
zD_7S?J06d at vk7HDOz3LE72?NpSAmaAolcDgfeoQvj8S!ar2Ke1ZQ7KZPEqqVsYCl9
z??7*142|$q0rs7fE09Xzi5=|#={(fia_z|VawdLr`G<ug!Ab+Fb)eFKBqZiet4Dca
z-U^Sk<e>4k;QUwl%TOpN;aqfCnvGewegjSfCxwX)V_SC$K+g2ZXOtkC1&qY-s{4a;
zO3$5~>H6y2$hK=)Sh*hoIpZz0kL(a=@#RdRd^ctg%fVNYCB}OY)-f at qeK!dv{}dok
zIu(+o^ihGp?xF>wRwId>?c^gbP%i(Zj)VWimThnw_G at C3M;Dfiissx58XZz<Wb*N<
z?(u(tlPU at xS}IHob5=f+9ZL?rGP;sKP;5sGL2|ta&z-nww1p92YI5;<WK$oi!4wE%
z+M_J=>3lUh{#|`ovg4E1ic0NqI-D)LSkmLD%Im->&JM4+biJgcPeiE>-Xdz-ffmS)
z=Zs>e`}+_kJ?vX5Bi_h+G>dgQGOiiY6w67M72%04G^x||FdFgUwkjUD4Or?Q{IR at c
zag#04HcyXk+|Fc1BMI^`L}!N)<R3s&X3#3XtU70#TKdE?^>23Izz}hk3^JG~(bBQ4
zLF^S<G at dZwjISQhqbvu)S92enKC$|K<+;}zL at 3O*e0i6VgKo6eEk*3rsBRvwn%>Zg
zhbyjcJ!AOv(H(JLXc9-Ay6zdjeh56EQRzL#oJmfGJ&a)D%XJPTzq7oBgAE;oT(t^q
zpTfK;GAK0qG`ba{wf0R7L$|JVT#gjQx&AylUscC at AL%ccoJ|rd(8f{ge8r%`j06B~
zB-fS{Wj!PGMT2eyLR6XvoSGC0LjgOWXM}n&Wx^$V&1~bkR2tc_0^nEYeCdo333~Ty
z=j|ZYDUm`?AIf6U{y}{-G|yMj(;7`JNlp0Psxt-L<15~qb8$S<$dDUgj43+M%dYr3
zie?%m5}Rr?hV9{_**E6(sxqcbxyPaS4a9FR%6z#d^(9G_?fdKsGPSc%ur#amI?XDL
z1zvS>q-J{$8F{>;mAjqvy$g4geew`yoTkjUIkoKg?X-!*4ya-z0K(KoEQK(P8H7HR
z3*&`X#S%6YdJchSamG+KqUF?3Zj&lkfDTgdAv0fGKT@}GD{<RxE7Lw_mb<3YTapk>
zNU~(SN&#wLH4Zt|-;+SRF@>^wWcphG!8>1zhGZC|zh4VrNr7%j at EJ(fsWq1}hN0O{
z8xtGHcL(gImUY^3s$C^44h<Nq($N at xXLppuEhpQMAaTigFQ577X<x<7+d$f*048^a
zG+s5z%*GI>4;El^kUW#@MK2bxcA>uQ-ysCmQ|7LMO6b at bwYH0SO;Zg-Yls~V6rwf%
z$B at j5LVm4%%->x;w#q?0Z2e2jv%P&$cn8^fr+ghnI0TuGo}s+hQgp~m<mQ3F6!S`z
zz?=X;Jw^ge0a)6aGZ;yoH|quIC(Q{U3O>-u=hF08adyo at 5$H;lbZRJNyL33GW!Yh;
zC8<of&$vvHlR(EppFCt2?HLBie8e+Wc<Nd#X~m>if-kW&;w_$GiUMEP3n4UBM5z#3
zDbkNCh$9d%Vb}`-fOul1nS+++Y~XYV8pTl2eXvr89XjG}%NM<kz(q9TMHvkp4(fpi
ze}TwV#3KjdwVqBvD@?bcbqsBR?__ofJVfEn^EHpP9k9v0AA`MHeV(H&8L at IfsDG~R
zXm&Y}NxP#o%7Q?&sUrh}Iz~7ZXUw<7Cl8V`L%iM3C<En`37mb&DB_(@;=@|8<!mqn
z*H&8(4(^w#?&Fz-kz7`y7+;i&I?>zN0L;H<81J$L5{2{s%XNnxhA)RDXF!61e=l=`
zD=z9FL^mJ5Bc5M0 at 9nDXs(|nO^*7!y_isF&x9$v^RvO_a`js+TD_y(*Z3~Z`(4>0p
zBVMEEA+UE*=@b?Y7e3u3CI;P*7v)2l5N~oxjfxtNV4Kg3z^%_3lpHnyz?+Z<L$HkF
z1)7W(PcQ_3MJn3mt6vZ%sN;q{B}s=-m{(2ssRoxMp4x#gOj{pbp$hixYRj5136*go
zY_?NDlTSiy5fArUFcP6Bo<?qCd7OK<6Fs47U?>y>J=9BKkK27ammPih_)$re{~_#8
z`Zf{c(%f}(W)JNCCz~6{R-|rcUV*F(dBl~yNm~3?F!P!L`iKp}2V{vw38Tov_B#F6
zIp~<hnuY;}R7=t{9H>2!-}y&j(3gunQ-a^z^u#hU*2!4M49WHocWbK2=t_<?P#x{y
zc0QWUjEU7_CBvqbC0yPx?tYGTmKBStx2fOC`i)Jv6F#=W(_}s`^6hgvV}2lsUKLor
zT898G{YTpIHBU-Dj#mbIPDAgz4hOGEC4^b#L-<>rXAi&Z=BuUGYhI1a{4+LYUKQRr
zifqL2y~dzSCfQklCXSR{$&K#;(S8l%*bP)}<}^qp)hreRwud-jk$ki2cL*;)dZh;8
zq#;I#0S_F>`9~I1tM&PXC6O&_+CAo3;KcSb_8~TDkfXY2ocw+B?;XvbB4S=n>{PRU
z?W%p)Dd6|2;8_>G7&YeezdCtra$Y4~;FDgCr8jrU2%m_Rsn{UMw_;FzPX2D^U>yAg
zDxCv_ti9BC4HGBEL~MXo4I~X;ft~azk?oi`1{8baR{(hZ87GWGdc3ppTww1LGE=$m
z30wxyMvIJyjW6tR1wa=}Wi49>tja`P2r2~&R();(s>cY(1w#SUs&SdGRxN2_&i1n$
zXSbc@=>vWEEscMWqz#dObB%Ur+I@}?p*f9Fx&yZ_aIfq2h*8qx{zFQK7D9WZ97XcI
zQtCuV;{uJ&!D{X5r#ZZrg++q^rl(Y7YDs4+O#LAxC2rCqSx3E29AHLRhzL#<fR{5O
zh)>19ug(VBnAk|pr<`!xD)sAL*5)1I2JMYYX|GgjbTMeG_eqz1F^Hft%4a9QMhZ?k
ziqa+nc=4T at e>l(jW|kHRVWjw4d79d9`Y9EKjBmt$eA4 at 3?4Bcd;wH&JjqQ39MC{t+
zlmE)0LwKJz%K)eB^CBJ4*E=QHIGVqbRwXixk6H<HO~{Qpy~!?khy_5uY0Q<MzUM=M
z!ZMO)HcW1cM8_8LpFauGEchD0ov^$!{;0)bIysw?1fhOX%bnN6doNeqRtnl#H|H<h
zD!{^T;_Fd0D>)()Z8M5-S&<3fiY_hUgi~9N-Z%Wf=YiA~Y`YC;Po$O-u2crngW!j6
zH}IRk?zX3b=qA8!ARcvH-_|^r*=hwGSyuz3&8r+@?-pVR6@;5;*oLkxtNGe(Ebb}l
zfjc&1Z(I|<3C)>zyBVJ8(b2;ms7dD+Dz14dN$!W-;6r*|IL at 2IU#=--AJhXM3i3ux
zcw0l6LIhrjgmQ5b_{8*}@Nca5m9^p<{YBFb&18K^rxwv2;vWo)NP^NwGDJ-QcZ9=Q
z+|3`jdE}zXLF~rbsf}C*X`nVpRv)WHhhPr6+Om?mAM+hIlPom70FibW0wom7w`#b{
zF;Sy2TPv$LI-o?4sjGbwbXJWMkF6VQr~`RM`83wS6_%_R;-q&6Z`P+nrjz^}Y1~8;
zn(}7CI|GLTaHau%Oi6z`re7gPSXeaOE(v?NtmWGv-AO2sZon}Soo<0b|0qM+1^lSX
zR@#XqQN&D$ImEKk`#mE$3=hK~G4mfb>(9Zu6<*ShT3i#`FmyaLeP2C8h+wlgja$1U
zH5VKMTFPW8VbI&8Rv}<W*uqJA*rR|N)^rHp8c7 at I)4RS|{{0wHy4f0Xa9^0ER5 at S!
z!=a~FzPg7>eMg8ryySSY5ue90Q4SR36==AnFXfwT6$LAnvT46Ii70y*lOC;m93A%t
zDivtT<Ia;;eRj_6YLknt2Z4fh&P%0svD|?e*ZiUE$#v1s^q&JOOWQsC-q%><xac5^
zUb%sLCS8x>vsm1pXv7Ff>V=@eK+2Zs=`7zF)4-7fEJM$(B_F07_~DFoj7CY($sU$m
z$mzY&LGu#X2W*jXOT<_?+XYy5vx=#e7&$x8{&*>N34CeliX9!@u5yjv4Qk1<DGuBW
zWGM%LwK{?mzIA*6^Y9FOqvD;q_TziDgO|E at 8BF8O=+w|rjnJ!<!A>6#<LQux`nvjN
zgr_oPQM(3v#lh1!#~{aDv4$2B5CBI;UBe)>1H at _74IggK8Jx)gH5;EM$1IlQ3-56i
z{F-Mz#22i7Rh3_Ahb8;CMwb4;w#xbNBG4K0rle6xGkIM4_<H^$_dA(W?W_%9MKnE$
z`*A})j at 4NcBo_aLA?KZQNNYg`+O3Yy27Xcg#Hrg=!U2^SIH9~uDSIk!5d{)b^fcRc
z>KXmya++9w0hcOXgHurPGk6q)#*V`N+-#Eqw#|=5Bt|DW1yoDdpMIk at 9-hERvKeRv
z`)!wwz)DR&+JXIop4ckJ<>1Bsmh|Xnv7B4ZMAtcr1V;`k8cQ!!dL- at dy{y9%ZktI@
z&-CU&DW9nniK8#n-?eJu)I<$GalNi(w6;>L-;Urmf3X!BHw9h at y4=7g4;}F{;$Ufn
z5tX`vtNYzsX&P`*Eu1-9B0HPx=5M4a^gwPFT9rJn=6hthD;<?T?ZM*)kzopVTcI=b
z{wE9%)HK9$Q)?KZKSw#@&UwUDj(Uvp*K(!<;xD8pgdWPOuJTj)aNYvSRQj+VPeDG#
zva9wS(ggM|kr-S|hp-wBN<sP(GdLSn;1!GbmE%D#j4wV${|5)~y_+LqnpAcn-<lnD
zb*SB^LaIHYOlHmhu>{v9J`bx<a=$7%`&ksSp|&nU+C$c7t2X-(Xu;cf(g2w9B+g{H
z)fL`=J7JcPccG1#yuQs8;BDmR%n;hCDOrz~-vQ>GsY(N5V!N3U+I6~Pz%I%zK?4!O
zpcd(aKg#GAi!M%MD6>$3Eg37W4N!^ZljeF3`j|s)vjJ}?cn55^5OW3m6$8??Wkq&t
zkAm__5BadvwJfZzT}+R@#ATx}NN2AY(gp#H-T^;gEL)ZSpad*bjniB`o6D@~o%<x9
z0Pi;@SN)ed5 at A^-D)5h?2iBxd_=NaUOX23R<=um?a0G0#miSX9Aj(IV${0IVuCM|p
zeXQ!g(fli!E<HM}K0iT6MfVa9%_rF?UEJwap&QoMk7r(zhetDZ&u8NekuXJleZDkn
zQ;DD>!vj-~<SJ7PZNF!czu!C6Ig^6J{GRqy(7g659LRa<KCk&j#BGx?px+evnC?*4
z7RKi|HY-gRR^(v>AZXb$T%3o}m+Sm*`#LW2 at pc0IZ~XA-ORn72rFa<d1YDDQ^p8$w
zRg9oG^^Efv5tNLGxgU}WXsu0uVbD=35<CAUySVQmBM?WXXhjQ9+_KVYVsv!BMBC!^
zX?my#e^JKj8fK6h=(1{9*eA=Yv8p{81(x7RPtdIr)94~uod?B5%{j2-l%c|MASCNI
ztANf>ps7s&8H(uQ at X|W&rVGMjZEa!NP=0mbk;lJV)8bmZPiJE(BO?{}uH9dXzbO-D
z*qbjLMX;n&KyDi6h#;{<zrbbj*(1ZIUl}TzKoPbGecoxsm)`m=o91Cut2YFK!_;QZ
z{NToIyLNxYR<w0J6!DUzbCl|H^1}Ce at gEYYq7j0$EZvcL$=&9tcTi#W{$aClyOwgW
zs_3Q_&iEq_Y=Ir8I{}j7%yo*VGr<T`O`PS=u21VdVK6oYgghX*=XMv43SWI*fK)ch
zhHyuYV#5=F91tBVGsGSMujMHS>bKd;mx}(+qmuAwRzvh!?VzNkK5CSC!=)|ctWe59
zMdIZMyLB;lW&<=j8B+!(Oq+OMf2<5*(!vnWQ))&jP2aMI8r+g{MQ|9hlB-%3Iy<eh
zW8rJ%Lv%5W&iq2CeTeawnef3vZl|kr9~~YC%NkQrSDY6cHFrP5mO^?I%^0Byy|rP)
z{#H?d?KC-gP32Q9U<22$^dr9y)=lnBM1%rhNyY^Jz^%fvL9Vg5 at FHFB67M)OjG34w
zisNyWQs1A{S(h|RLtG)gN!5SYob9f?zusfz<&&!ahR{U2++d2=rZ2qCo$_3$GtP`~
ze1X*_!^aH&Vdj-hg)0e at jEyzJla8M^Mu&!xltIz^>hZVL87&9s&fwe78gCY;7>12%
z-na2b5Ayb7!Po><5_&N at LZ=@aEb~2-AT`JdD&>-5$fvyGBtMb47mho*i|?QuO5&>X
z<($sf?jBF4v#P)OTHD@~mmvl2jx(vX*|R<?A&vNic#kE1TtqA)=ob)Xu>Xq2Ps%M;
zoqaTZF0#$b`1HE4DO0YZrl4r)QM%Z$>N>=^jxSjr^|h|lJooW=D2lj%jz>^KY1~<S
zwK^eBV(60}g~$YX>_rroF*}O7bg$|Wn}5?&jJkFT|J`r?4;f+Q;Z|$2;YfjpCB(1t
z67Bht$L1o0?Hu14^l&v~u*ORQYGO}2{$>=2Y26Ax9k$WBp7i#)YT~loep{?)a%$W2
z&t}u*t~hJQJreVgSFm!Rb7LzIBGECf$;Arkq8Xd`am5{jJHO>cRf at k^{8V(v=u?55
z^U$m7Cjs`DPhU7htB^4`_czY)E7JkkHYhI64N~tY^>;io?qAvTSOxO^thdpk at 1KpV
zY0Pvk9&p^$oVI1P_xC?&mOpDYB$=v>0Y!pKqE|hmcKD`F1vlq_qq+>8|9WP4m+ at +}
zkE`#Y!P`zpnm(?luMx+Gxc$6<e$-KLfbO8qKi4k~<WrP^zEbKQ2p9(bJ209 at MW1yC
z*EYHcp8Mg_jKx$!po~vr^a$mu9^CdDWQcZ?sR5=5z)Ba(-^NwpbSG5_lQ%SInh#2o
zV$N>v7vTjIB^suF3{n at p8mUG^z#5=g#DV^J@@ooey5;PM+8FRZ at TuuDTkb?bpZLty
za}~ZhfMYDD)%74-hSA9XaG{)R8(@K!I6zRl$lu1Y%0Sf-7 at H7PEyOe=W3Ma?QyDwt
z%3{|t(>j!o=&1?o|EuZd;H}sXlN4D!uL~qlb?B+!;Xy$N^PHl`nzfesf$I5OLbexe
zAl!4|o0~2BU|-je(h)%9yfDp}LbRI0QGity+ at 1gv-Nw8KI|^k`4Sy;TgEv}}h)d_m
z=mb~7qVc*^Z8S>XW@)(jqpr~eyk~N;Xp6W$g>b;$5$0H+<F+&yMasEE@%gQhUGMFv
z95p{<ZT{r_UH+uh#1r?YMIoU$))<kdl2y3ywT20u;n!ZXF>VW&Z#HjVAn&cajJbM{
z#P`T6!8^#O3{zO}z|Z1JP%n;_vkS8Tb{~-%FA1|6T;MDvnq<k|t at np_S1zJUu^N2W
zS|aThvW~=mZJ-kmj8)+DwP at S%eBaBWHXKCK8mpNzARIw(Se6_4oIlx_p-ynZ>*L$M
z7iZ^N)2VwQQ)w=VxrIVx-%*lzV at s}F<>JT!5`j=VH+3!6)$tI`zEM}rc;aASpNGry
zy-$IX#vdp*8H7$8z=h;)C-6zpbEj2Tm^SVqL+`x-v+ntWZ9E9Z&`@OtJy9DE9v{EH
zJS*X~DHj at Gf(MR#?y&FV2}U~IM73dpBV7Wvzk%Fky&qQX*^W{u^{W24Z^8C8cASdi
z7lbeauS7K0HaK%%=ZY9V^az!PKFldYwj&K;6#Zhca=^jE$N-F`uB{O^9>@EF_<
z<t%hbE1EV#87wYAiTgZpA1V2Kd?18;e+PGQs3jT_)SDE0X{@NrxbB;wyhUBYJ17ou
zb;+IFzcn%04r6gSXyNH(7IFB6%?I#a9D7hpKMX at B?k!IRd~j#s$Ojr!;h>>v(Mev*
zS%PmS5EkL0h^;KT&_CfZo8oC{y(!grhiO1Y1q39anj&QSVk0PIcixwY)l?SGuAOm|
zN_>5z9sV}voCg#mC+eiP)e8)6s8H^c!(oVMlclgaby=V>z!aUYq0QUO_E|W%0FR=M
zI at g*+{nqc2D?vsFd|U4-mj)fO)H}`|m+uf!4GEK!A2gXyUGd&+>Pco%!;4wFq8VR`
z_N*L&a8+_qG!oCLExI{gI2u6>@2wGsl|K&g<N8+e5glh|kdy?wRLI_0w;j97%!uL8
z{zYS&R^OA5OdPU6E|@cz*hjW0MXJqiCMQO-4Ot&)o9i!z0kcBC_>oY%)3)5&he|(c
zqC|7sBL}_fPKM{Z1|vx!=?TGeg!8U1Wbky*I0G&id=HHLX`-U{IyxlZ*25220|}|r
zMOQBPxS}1Cewj8FqIU5GPktSie@&5CtT&UO<MqK~{wSxeQh%}8pjL`M^fN(IQ at uo4
zGSRAyYK1{Q__A7|gK=67DWqG4dRwtvH|#O}Qb0Q$Wi#Ce7jLtHK#5M+QB+;t2`JD{
zy55+lvkzIsN>R?K_g9j6NWna)Q1Kd9H>2BDf2&>pQ?j9Ca*^a~^~)=RnmA at cX-aOF
zHPIqzwPjorq~;E-_S(s@$`-EB|NfBi3KDbjMK*1Y3s%yA)i+cU{f#Qnd~pj}0yqlF
zLXElP!!mLX#Zc+86_(x5H+zVnuIS*=VUdfx8<Qve7>qKub|5JsX1uPKm%BM{(pyA-
z{1O^2TUdmb2sL^9x-Q1+?Xi&_*H0{J6f~VKQ-L;oh3xM8j3a?YVH|jau1L1PQ-Y$E
zY%*j=cxy$hLKaAl=nZ78FH<pc;9#B4yGvcKdLys$@~I)(5BJq^zOBC3Lw&b>)<oX`
zs{z8+eOWFcjVy)DLj88XW8ho+O0!|+mH)7?S=8gEcVQK&&C0pq`fzUOSd0&NU>-$~
zgE?)KFquTaqI~3{Q3N|N<G0A?hQ%ulry2ApQWeYky+Gixs>s!C^zQsB*w!*4&EAde
z0I%<bc;^>CUKZ4x-fz3XcXV-*U2_u0&oc2 at 16@aGY=*E$uquzxc3OjtBU&=~cM>uI
z7h}}`h|QN*+g?4`3+~Eyr#^==>knl%?foAy4h&Ob`9Vg79Rf1}bl}XPF=n8d)BpVd
z1g-LGyKreJPeO`BMH9O;*)$i94myQzEOUv=m<od1y$6vep>X`vn at y?#&A%<5b*!pa
z)w)m7Gw_FM`V=NvkN}-guMeUM9rgR$AH(48l*eVw9zHF~9^E$HJadu4Tkppc-&j1v
z+1px%-kLoM>pBPKpZw?-iu(&28^)rVI at rkcjUHBdI+cy6RwtLuzHVbynVO;D?X8p^
zb_<DSngV?;cqN2^08&TpRgKuY+NXcr!p%gk2Jn-|NaTwJ=<*!yO$C#3&E`!*sa((Z
z5X8T<V?d4418p}p>~?s}{%0;7j-6EcjXxJwaj082kME4Z6){C9<%wh}suuCE{{^?7
zVc%stmi8`z#U8mNGs4n)Bu%+LMb!Pn*PX$-Es|;XXTsbA<8h7rcIgu8*cn_6_hj$6
zY5C_-wpf9dHD=`?2OYQ}vF_!fz_x>HJX{owj6JhAa#L{?@ZUJ&c-<%C*7~i>(uEyp
z2Ou&aXj179yZo`POxbbh=$c*J-Dgdz`jH&KvE#Jlja!XiQO9Yw3L|O3;@b<@z<Os_
zZe7u`zp_>S3SGq_1uZArO54sb(l7LbQ2KA^+?2R{@-93J6B0NF0_sTes>7+m$z1Bo
zY;aq4M^Tp6S1OLc1K&Vz0SJn?JruZ9)DdfiIPF7KdC>yH+72|1R%;BKdn^$~T>g<E
z1nF2JOKka|98|$ZX>w4hOYFWpJjXA27)>5^t)qeqLY+r at hI-vZCKs6c@T9Y#uo4Jm
zV6e!Isgx$egx!ffHfiba94p6yj)_`6I7B1GB`+X}zb-(tO>Ay6W%6?1=^~x_a1dIU
zAkx3ocBGE-5 at +7U+8sa{15Cu`=)k`oNnqb2H2bIE4Fz;f>%1tlJhZXY+wE|I8H=Zc
zCkj1M at nYKaVd?JIf>k4-{$@jM0v}{*3=j%fDOl^kJuP}y1X-1~;UG{fP<z^1oPMzg
z-bOx_a}P|i=z__|sKm(YTM~ex^`o>$$-Q1y_*zeb^<9%A?x(=zx4}Kp(TzlJe*lP9
z_(54lQZvm*aa-FUY=gvDnhbV4;k|$tf1Aa0$mL)-gk!B34#Dgu?x?mlsiRarHN7^U
zf2bx~|4mb<44oDURkY9<Okz7_4RF8f8lmF!aKWiFax)Q?K~C14 at i@PG1I%nJ=u|!a
zw+yz-GxoGy`<1kv&uMp-pht&q`G^}mDe_x$wUo*%$#*AYyggY!h1K=rOjU3D*NcA3
zJmt`d)YO^y!Ls$5wei}0*N}-UA)V<a;OqUi at 0|B_7>IqsM!6ECNfeL9S?LOknWsH;
zx=Mq}pPhrA>ZxBdmi`%-%=?!8SW=R7c}{e-K|Jh3T4%<FDQL`TAE^_Wq1^IfW(Z`t
z1h2ZE(XX5Dz at G}6rI|{O>z`CNdq!-^sIaH<+VvHY=H}KxqROx>Ip)APR0f-_%LfTh
zpghB*E3=s-4yqO2_59 at e$o>EmU at ppu617UFObn~IFjSXD;qqoK#EquA(1BIZP$Q3t
zK1+nonR%0aBhxFUH5<LT8~V1pAU(G at 8{!l}{U@)z$)g~*x*G7rO&~E39uLTj_%2zW
z5Cj0~do~ogp%yZF*Lbp;y3YOEjL`?}ThFQ at idVc3O0*e4A(UNYYIv&C<p9Hs`8fE~
zsvK<S>p3rPIe{)9FaOePZsN!#@kKpl`vNv+T#kcjteb187EhrwOL8=T{a*|d;$6gU
zs)tgcTBn6>>nspO5Ui!vz~-2xY!8Y?oy&wQDP5TqNb#$!;mikYL;}>1mc3zOv0NDx
zdSb8Vi<KU$_x2tnj+id0K#Q7>z92=W8LlgOWrYDzkt0xWuXX^uf-YDlq(l|Q5#0SD
zoWUZMi|sE=ABRo2p8M0R6V|Sl+@&n;)W2>V-9;hS at S=hQf&EfjiMMPsXKP;RjOFp>
zCs?4VQ9&l(SYSF=dEbtYaXo5vIOgbkUIL5D)koVCEd#79kd&c=pXcRxa2BGOa!-gC
zx`J>pJsQ`<!CXOe6)qA-iuv$KvWW*kNb;?rl3l(9?dLUneq^T at -E1BYch;y3LMpiM
z?stl%h+#~+^|V+t{X^g48^gSoFQWYPa at qQ>Tsk|2(BULBB&LInfLn at u03{Y at V<81V
zFRd*Yz3yaA3^BQ^)(z_0M83kyhPli-46a0nea)ww7aZwemfmaXQZ#7E!#p#k2RNKj
z;P*LSLAU3~iPk8t)lY9*8W2^Mqad>E=)oF{*U(0kL at Y9YZjV4I_$jvoWP3i^Yu9r`
z?_s{k0FHMyUxHdi$krEkwijAU@$6?F5BUv8!$fhZDt(VW`$8=1`CH674A7-9njG%x
zq^E1pQNI_NX3!~{Ss_$3YEvrDhul7tIi3Rcf<FHpjcrCvJ$g{^osB9=rm(g0O3n6M
zHnIBy(@{2Ot(bO61zJ8XCKurgwg_ptX;feWm(2NZ_LvkE;I2IyY_bO_7O`IyTIR?p
z_?6$VJ!(PK>$0zFCDT+flyGdZ#h>;f5EM1#<jt(>SZCF#X}gv;xFIO@#7b at plC&LL
zN|5D%gy}{b63BR151<p4MR^1}JLHViPf>dsu2T2LDb<Iwt-nJ2F7Qve?r1(}Qp?&b
zOrDUeQ3om at z!3X|*T#>!S#*LZeIbxdFWV!If%oYXGa2zm`2}s4e-5z9i2xfAHor_$
zP`jn0xP2yHswSRxdj$EAFLTGwn*7Tl at QaIg#f=DP9?kVz$6Hzd**Uc2MiJ1FF{VaQ
zml(*MI_;c><oW4Zoe?KqyTZz61pPOq>l-i{Cl|c67JcjBXhd at ec)g%#l5%Qh8W at Ff
zJ@|nMjRiJ1qmK`A!SmmN{o?^qh^z%1$?zdMlis!kT?1%@CwqU76HUS_N`ioyHOP}~
zf#P}imL<$`N`}&<yFlW)w=c<>Jrip_<!AQ90>PrfM`Zvd-;?+G!Zruip`2ts{&qyv
zOZcc_QQ<Dnb#{fuIj5$k%jkOfajRe8pa65yz4k)3Ta7RD#HmnSSoj*O`EP%=9d$LA
zS(7}r+;Y+D{}|ikard_-!(x(6CLjLkbJK=7{!$W28XJ90pT!9r-mLcsiaF&<3?r8?
z2cH|#4%Ty!e`!`=nT0S{@N(h+m?h$27P!9D;TQVR5=ENv>Z6yr6<i=HS3XCByERIF
zNt(U8eC=Lwk}Jcx**qY^luWG{?`WVZ`HQS at 5I@2mX at dZV;|Di(&!nzSP{U+oh-cp>
zn at r%6*9kswI4?p0M-J=9dy7eJhS6#nF?qY%D&wc>#;S#4CI?+l)E`aO{AIXjQU#f8
zEu4+1d0Jr6TZPc2`>2=3d5X`J-U5YRaR>K9vHTQKkKZsZRs|Yl`#T+Dg+Iigu21a6
z5E%<&QVKmJClVVaNc%6tEcdRk^-0G`->7pyYw)$QDgpkhYl2|PR+Jdpeo#vi-^?^3
zhlU?Vvxl3qt(@dqDJPINkV{wpNP27*O+rP(&wl5Y%~}bFLTZ%Iz=dp%`_dFAlrWX8
zlm!yst4)7DJ>V{@8uyWrB)~GWAKaR$obx%<X_=Brj@>dJdEdnKCO}N;GJa;HyOWz+
z?&r~3j(`AeG at Y)Y2T$E6wQqcemZ;X7UW>dxm*4ti(1|w>jt at 6mzbzh2DDn_%@E`Z+
zU`}Ia at unSjAMX(RjFJeH7KvP_GBL9#f$No8Hbq){=W^m|>L{Ar-#2Np6{Oi-v6l-1
z%0&8ySEdeA?Lb(PB$^U06ANhVV+8kzdHJI|T7yf!5}{h6$0vGkK2Lj(9+sn#=_Lai
z_>9*5gys=YMaftH#AGUzab at p5G!QHVF!En?;-I(CwT4Gj-8bCJQmCo4^In8<3Wxw+
z(;&m(;pj`M!i&_XYNl252phmX*}==7TbP)j$W?Tk-FV^{*pw)pKnl-$K?iN_WeLU<
z7)kr{y{vob(bm^(2zF=v1v!%T_k~|U at hEbgK`rua>=e+=6qM(zt-67nqi}b01Yc52
zO@&j6hiyh|b83FBKulS0Pt?T<sSrdNb?_M*y at ZwhrldDPzc9lAdK>8F?Dn_v^mpaB
za%B$jMpX_5b}wF&G=o1$Z5YZbsML*WHsAAz>~uY69a~F<`4+S at 2A?VRIHjB?OTx4w
zkS+{(bOuh-M58in$8EUqI!^>%>gtc2f=DhjTsBX_oj`r#=c2xmV0<i%_c-ia-^R(>
zE&V5}<rRh|2NZwj)vN>hvLU%nrxx(ni~auFFXmKzPG`uqZ$x|A1Af~F4!s9*;f>Ax
ze|--l*xzY^lb|F=e;NDKZ7~wLpv2-4h at z^D^EN=OUyW&xyX6XBabd6~77*$q9*+iC
zTwT)Js at 1v&M$*QM1PwF*B3n%Wa2^)yDBPAYZiEOD`-|s at Y71tSsFPGpxI}WYYd~nT
zsp1DLe&{&qgafr!Mr^?`iLMtB`ct6S?7cJk%kfeprQ;mZW70d+(%2$@@ts8x9rxbD
zZ|~J6aQI<=HOZ-%pns~g4)F>oEip=t%_CYy&Zh9V_BbBMkcuoSME*q4w3K_xhX9nU
zExY_h*D#pfieSxi&J?j(+m|Knv}`U at C=Dzb3cI7*sKkYV+<%)CN_mh-rOCYaZp4%?
zE|4%x^u85o>X1n%jh^u^Os+b2!qKyDJj=IiSI5+YW4BswmEJh$W(eVpoi-^!#r(k9
zP#1uji&ibkU{o3b8$(pOXhJI^%U@{HCNAlw68o^Eoa&s~vESVW841|>5jHQBu{A!$
zO*<rC4YboDVPHfCOVI)r;PE%Eh=f{In4Q5ZJD&C6tSNes0!|>ulEh9jB_Qb|T8eI`
zsQiQZQ3^&3ZNf=rWF}EmFh7vyh1V at IU05{RI74 at 8egRrH68_A<N_UMH<oWis*?hT`
zx3HFVs<?iaSc<6FRok!*7bpg6#%?T3R^tT>|Mn8Kf?!J6(sDd&v&YyD*F>O_1$|De
z^wRGkK@%;(?<V0e&c({f9h(B6AP373v`<4&xgt!xGFjc+-wsmv)SE88kcjcuRMk45
z(Uw56=n4l&oqrdSrC<zF*uOQ=iB$%d;Oy-+9Ol#>XOCvXq60vFIEIeiLjVH0s^Ll^
zcyu*oysaDjs~etan7||cuHD$pMHN_bn1UJ%p0)X<S0^?Yu^<R`5j_s{UE06!0~N*0
zjBL|z{&q8Or52{MuO1b~XTpEG_WJ_;g>Q526~QgIo`7;7QIL(h4_`2ws(1>WA2J9t
zzW-WM_B{zUKHM9p4C=y%6-mHMTi25L at ufpr2)BV)poHqMzFSyEcdN&O!|k at G$~Lg-
z6kX;Jzr>EjedMCbs%n9TV~T-AsD(?z=dj?~x*FEBZ1%V`JIOHRNzvLW{5^t=3`L%|
z8{Z->DUMG`o`s};#zGt~wEyNbCv`8o7X8jlmXaf0M1nh?BE6NC4}h-U5`FG2|2nlk
zus2bJmt at 8CRA;tJ>lN%7gL6NHM}UC<;!r${n#!GU7xzOz;lJ4b!Tr0Es(@Tdg%#qR
zu>ut1E5b=}^RXEB<flp<jk3UE=WS0w-;!>`Dsm^6n0sSvv221(jJR_#=o<G;n$ce4
z-##A}LqSY){<Jjo#=A|U1t-U1)Kxm^W1M&xTXe&^$VK0^KkjO3iJvpzC&mzrHw_d-
zVH_zW)9o+x!glQ2t!)p8w at b_htXB>$)b!B1z6|8kftMyc)_vRuYMWtbGL}>9Tywfd
zR5tM~LY}_W)ewr~5iH)X5JV$-;^1P80belKBml<0Z9r8{oBo=kv%)cxw-aDV at gVi-
zpSbhIvi_01<xUv3!J}7{P$PD-6 at 69)Qg1!j5qdpkctiZ*`{LsIzUsA?S5{JYd3v>y
zO at TjJ=H#E_*ZQZq6DgyQm8&@dti%LKk;XTG4wi1s$wa)4O at P)&K`kU;w??$!{fL3F
zQsV2g>7)%nIxO9XMP^NqO(I;H?~SkJ6SUGX!(~HwV5Y6(d0%GCav%%|(_SEe(4LR|
zRfdIU{8qIv?^P<1KMw%B2==oC{kK)tRULOYx`Ymg*=}?AW6qTcK%a7elT(9Vp^yK;
zb##rqsKZy}j+c9UjvxjaFs!D;?%0Ul%yJhBI-YB6DW at pVCk$L$7+aj+I&UraSuc@$
zda6ek%yT;>fUeYGhuV4eYD0{z=BbE-9ha$KE?6zHH-iKe$V+$K3Vc!1&@d7`MwE at s
zJtK5>MSdIMF0ZQ#Sd<e5Kj?W(5#|Zc at l$CwAtB#IX?JpIx=g7L5RQCaHAVxOJyLfB
z_YI)Cf(O8~h{`Nlfl`X7*iPSI1jK$*Xmag3=Fsv$8-HG^4T$_xWE#ckV11iKzTtOJ
zCm;9FP)e9-pxo3Be8&(=UG9eI7Uodl9x*2Cx>QaHw`}f0gBi>kpJzE?b`N~jKMh>!
zEN5$B<rvk}a8NH7cJCU?=c4UGo_K+nf>AtCG?VoeZF=@2P+}bPfX7sGSW2LmVY#Sm
zlyr_HE?!@<u7BNH at qK4MO<#ORpRI)%w*|?HQOZli^7L)KXblG at E3>3MC>_h4u0Xjo
zbGUK*BIaNAwJu9_!IN}b$z-pUfQ~kfXwsW at w7L2lQkhE;{riREH?^!o69g%5Pa`_z
zeW}DgYvJ>-E)($&6vD3DwjtKW)RiA0<irBBCJ at yZX@}tKp`&7p810sCb-m06pSNo*
zPrWu(Z=5zv8G at cSzf$6^y^CpKvJQag$ze3&Fy*9jidxUudjo;tljxt_rXN(u)J4*+
zj>h@(LO_4bJTniJJL`-#>V!9!iGyfF)==Z8CI3?Co;cKJJ3hk?c=R8Q41a<Yt36>S
zk<fw5Nph2x>vmr@)b5TlCb4*+uGjk^y48+;V;Ufli|_?KBd<tkN}qk!`fHTGTz*9h
zmJw!N&yswSK7rsjU4^Sz8Mh%<xWzEV6R9|q(AQ-{o23W32pp>{x))b*H$kk at 6wQS3
zGi>9daAPWQaR3_n+O4WdD(q_-^QWyr4SIzo0kqy at 5Bn2aL-y7ohgE#NK*_ at kb6&Y(
zLV-sz&~&u*WZgW>#Ce9T*dv;{S)m)@4GPtI3}>$boyw!T1Ym)x?jEvEdZ%rb9#vM6
z?ubo)#3~A8PDj#suext;k)^=X?#v3rCZ~FJBT4O at c%v3a)O7mJYmM9o>h)@_)XeG)
z(5o3|!9BVwiv!y;c7IQ<wx=$?A)MH!U=^xW+Gh-QXSX{hha9GB+T6$4rjM at x1`=N#
zIGjV?LuXs3RIHZ26lnvF$7b7?qnwSLC4s1M-R>Iqk8#z#6ae&;Bxs%LG}GXpqpW9j
zewac3w6BpsloxOd7kI6kaRROo2#Fe}ZtG`3Rij~80bed6`FNg~;_w=`M5MsQVCtA<
zkK~+kDKJEMh#DkS#me1D1e~B)nI402d at T2_R?J8?@jmuSHbYiMLX~zX0AJkfiy#=M
zBzWk2*^P1Cyi}Mu@;PjeYbS^bD8e_~hflEw4?c-Tc42kg7e(@ih9iQ%GsgUHBAe8D
zevrle;%KLGz8BSze;~zPEvEQn_6tC?7}%Zy4v`vmXOCGeh0qfQZVag}_ at c|Jw7pW2
zY`Akbj0ooQImaf_zcY%wA|<ap4?c}BV1KPwBL1s6p!6<F$$~gT)h$%afa`)eHb4V+
zpmk`GW|j~d!CJy2 at BgPCf^XX%3v>_|?}S{!)2;2k)d`-2<#0`ZyYbNy&$DZjf0Obt
z3M+Z>l*UTK{HVW+k(Surr=MBjqGcFp4ml6&YziJ2;!!7jsN4>;^@w)&P1QP6;_}#W
zqe{#Y)r6H|K}b9kC3PwELr|M<n at H3>YzGx3sRyr~`09`+nNpb0%c<pW3VWJOmAvH{
z1|<9ZapkoUqAes97RyYNr)%d;+=KuQ`dA|n)u5HM(cF7fsP)D3>71U*ETgZL!jk_6
zj%<d!CF_%hOP?kab>cK{2BFrYIWRIpr#q=x5sSRp3Y1^(tr@;uTvtBh(}8BQcPYNW
zl}N at s^Y&c_yQ4Ba40)!Njv7`DsqnROuOrC&@AFw5*u;5Kohfszpth-y0Yzv$Ah^I^
zb8u!FL0B45MHZDG*25_Dq&{+BViN&kXV{BkFwdDDZfm)?;N+FfAVaepZKamz=fYZ4
zzj{sN3DJI$74}rqIO%K#!9_vklLq21>5&T}R-_dq8>>vPt!c#La&f2b{L&E|NXDOd
zEZNQ{p^ABkoFR*=)^uBlEP<#K$Q>$2Hw?>>pWHP5nxzBjS2{54MpJ~^AS at D*fw#!5
zN#TC>TRCD{EBIiO$95NgE#~HQPh>9Kt9uo*CPzod_>m{x4~3{yz at gi||LntSQlAt=
zo;K(IjCWvIPSK_0+g!_x6ay<F{Z~0=+e-n)I4FY>eJHurG=FbsJ;2^w at 1EsZ3c}3|
zM#Me-(GzOyDu-NMe}eM0xrPN4czU3`>+Ecfmc}s|GINdWRMSe@&qN69fp~uIe>VK&
zSDF1Z;H+pe-m2Y19wc!uuH}F2I{LMvQK%;d-&r1Q0%)@~dB56ibO5rXUT_Fdp><}D
zwMyXiqAi0i_7|F7dclGo!5F646g-z>xt3gZnC}j9YHSQeuSfd4TRq!;qAgbeFF=rC
zXDD#mFLuhvC1!k6)MT)Sft&J&TEI)5Eqo;;TjG at n)PdlbJx&IgeZ-C+CIfKyw}Zl-
z)sL)D$VYhW;@q!NwkTH)WAO0tip`bI- at TbG{(bEyle*>*Xo1@*;#lF<^zV{NF!zP&
z;ds<c)GFwoC8|yAXE1{h3~cgADNIg$5s_Ch at Owj)xK_NN!WT=k+7aUr&~Bj#-aW?W
z**brc3{`hlV=r#?Cblfx8_4|JLP}8#xpFk8o`#+k5R^1Cg8?2Y{z*e*=BeqIkV5V`
zmFlh|jeG9;fgKDoOb_8Da at e>;t}XS{3qP**j^(A90#0_-5ZgUSDs*CW*qTdTxLW|=
zszCT<EraI=l5BmH-&}_P_O(}37=b8M=b?^gz|Tu at E3~7e0HK4G`bt^~EX-YyMxx82
z<_rSWrsHiCc$rQx at dH1fhZK~?d=97*_T$Jowd at LDTud3w4h@ri3fIr~gBsgXH6FG)
zh?#vS2%(+ZMx`V5nS%0jG}nDJR8?pT)MuQ{Ns)u$wo706N9`dXz$XNl7NzG}v}*;n
z56L^Sfb_B?0elOvGa}PPWc)Z#RC8Pm&7;+M$bkOh(Jx=LmNdOLELD$J3A^j_b-!S)
zL)}f;OGG(9ln?RUBQh7Z{}LX=fJUWmTYE|Uk&NJKkp+z&Bnlo{w086;HloWW;%uP-
z1#m1wO<z)wCaApf6{&Br7E(4Ea$$La&Yb;ke+X&YyH}eI_Iz91XZY!dd~j3ZdT&#{
z5rrK%m`krR7EbA*5p?}~>+6=T8)8xq3Td9&V9(lV<#jq>@3aV@>lVHoZ!zK_v7~}f
zj#uG#>~yC4VkxU_zBspdvE}M;`v>^b`vjdRI-1ly3RL0NLShhj5CsjKzaL=ExX#nP
zv>pIeleVTEZNI$0hA9gDwm@@LL0d<mth4_;Y>9O<gfgMfnkjSkN{j%39^`N#il at +s
z4sy-M_yLs|h8^D;^zZYmFqo_UE;2&nI!S&E*L7>|L5&xZ)a at YSAUY4Hl&4#WIH)^W
z*vs2UU1@)1FOq=8gzc*tb49!Jepb9^?6n`T`EDM`Rsa`Va~z|N4mYzy at iB~rMKmC!
z at lrzC%y;7^56E#C`*OmL38nt^j5GHp%s*Sc=5Oen<04pkK>$p4CTEiZ;Q6&@xVcB%
zRgQ<UW{T&%2PU)<9<?fL;+jHS(lk2^N$AafQbXDEtI^7=fw?2*>uInoDJeA}va?0a
zX00ge-}=XrN0uIZD@%MGYJp$D5&`KdHkO|k+B2W`$?SmWndb>s)Bbu3N!Fv6D(0Oq
zCzj7Yk2~-(;^Fh+-y=wIPtCO&)mdCz3*LWP*7En-rNs?ADt?dR)$3J-o!Smmo=aM7
z<^_Rit|DEl<+H-o<Vq-kuby2jSIK+!RqK~hah58K?It|8{V(cgc`V~O`O!YZM4%p1
zH&`E~@U4AxTPC!5V!v(|U?j*Yo6ShM47943FENNBMd;3^VpI|-lOjfR;!8LAYicS3
zMwx8F4M^B->?kF2p}cOzvlyo{ktS42 at M6XxN&8CvvmGhvq0VQxc?B}{5xvc>uNPI$
zUYttJF7sEor{-497M30wui$9xsnkk70m+Syr^yo4=pkauq9&So^yi3=NmP5VAs8tk
zWAqr~h8}BXGUVf+6nrqH1q6rYrd?l=Lq+N9a6jJEp$^)E$&j_S`ChUr<wi1jgDT=j
zgn74kujj99(xae-?s=Z^=yz7WfL&uFeEpvzBIPRiF at Y&mvZ;!<H2v%0?Z4FkIY7q0
zkln)VJGaK1-}opbxnpQucdSYQpx!wHUnuLoIojuwC7#2=%*&_=w8&gwQjhwlmE$VF
zP{u%OWIXC~K256WB{OuB)$6<xI~$mN+=?W3MS%poNKvB~_4b_9kbsY%H7-Mh2N6CV
zr%Eg2S0st)`8sGTIeNdkuOF!k-N--SfxxW(6&r9ovgUYc1OEHihL*^tf%d`^K6m)l
zz=-3{uM`}p0v7B6V}w+Vya!tB((w4Mc8e1{G0&}D8-9 at B9cZkr`{!-1rQ7Ih{6RAW
zb5{vM8C6AumXHe^2!3f;TX85q`EMPSXT=1+q=n$lgM;w%WfnG_`=NJVt`TXYp&LWv
z at QJurF8+#JJB_=ay6KPUw+8AmSDw2gh<yuF?aTkY?$<sjkvP#-#gPHD9W3ca6Bq(&
zZK9?ORq-bVR(aMncy9<Y3JR at 51Z`$ISo$P}z{3cl(8!XQ(bZ|e?@8of(2l+%+`p1c
zc1%^dKrLGH-^rV$Gek#pdP2l33yq4B4=>2~RtuiO*0u!zarRAc#Ue0p;cCisxF^m_
zI9PXHqRaz}a{wr_m;E#zld(#eL-2uhNfY6c;BaPJRbSv6n@?xI at r~&`d4NE)41_%j
z(A$>{J~$GE0 at UX7CDX2^v=w(YI~jz$O at c_&ELYDdc28OppAD7vaD6aMWCSP^HAH7x
z#h)`jOQ*$R0x_%n%Djy0WJ?T7 at 11uiqe{m^|6XTex;d2;paestB8FJQR^>%ILlN+>
zUsNt-J6NF-upjn*HD$7O{-wJ93Wd^)t_^q9!R<sHnnN{`N8a#wwkL&JF*8E9cEA(-
zuz#FDVtKx#pjdsMCkqXG0>8 at do3pja`2fJTyiFD;+PKK89<AJ@(<}j+faT-bZx>`B
z#i}_J+(0GjJaE(~osCMmaJweps&O-Rzr|#9hVP0NpzS0LCC;udCk`;AAW+vAXz0}f
zjG-8d1|n4~h`X&&!45{(5dhp~p`N+WhQ$VpySuPAh1Z}|F7=-s{KLIXbsjCe+*hIV
z%+~krdb}W&{sCR&9=!BlLXls37Qxs9;!ilH$HDBeEK+vjOim`(3b`;r#$|pSJmfIA
z8h9WGSk32Z6HWkAnCiB&$DqDMu?}^o11zybBeyFm17w0}i1TNR1(Tcz&M_G-XSc=|
ztC%mW#R2c7zaWSW6dX^auahxE_!eClgPvEPI6Ff~Ye+Ba6&4b=f|!3fE6A4j{luF_
z(|2My4XZj3eX#zK=<v)FzUXyY464E#1Z_8c>Jt;Jo$4KT-qyTO<tPGBI5Ogs-<TR-
zFL*bK??JNDX>rs{IqdVrMcqBEyWb!QFmE-?j}$B+1#!e1=0f{yj`QqMH_{h2Sp{?K
z09O1-|FGlmW73zXVfN?`?*UiLS~Dw}cA%~aC{5S&e&FsVi*dpVU#$&$poMl_dHN65
z7C}D`VQtn{8^yYDl5T?f)e=d_kT;|{-0C+=riWUZLqqpP@}F!T%y<Y5rJ|pWT3a{~
zyg*P`Ue44Wd|Z3|!twGzDj`t<Qt~cI$?NQzw%5(5r6w`P__$s~!uJ)~wxH}8;1$#x
zsr=>ID!~0i0(6du3ElR;LhR#}zO^lSpL%$?wK-tm;k5)toxK!@BXPyfc&bClWhrq&
zu=*D=-Q;W`n75_;6`xoy(+cYjD{E>0jyPmzIb#<gItcM<j2VluNpPswg)L9~tLn3R
z;t&Urs~~%!6?-X-2*(~9n7cPv0KEoZDbVjCM?)X-Iu?6awh_s&TUT3^aL at qBj31|4
zlz|NsO=Fh>@Br1G;P`xyUvC(zgcTVBVrx?nkLuv}NPUt-z<V;y*g?YV^KFxDaOV{-
z`lFw3W8WA#6BW>wrn9S((Q_x&@Py$Va)?4iK8hqtD<9Y-=P)o**WwpOqNdn}wXzZw
zFNPnPi%|QnK*VdbyoI{fA%KuqHF8GWqYIWqtN$iG-{Z~4teh_)kF0O)Kd&H;Qhd;I
znpcy4kO-&_xS&TBc;#4%>XM6iX7~v)j`jS{gOH_JzdM~&7NUguS&s^M6G#w%4I3qa
zzNV^{AN`Tx?H1gej8RfRY7e+Slq)w0>{DKcR=KYDrGSc)FuU+5^FQ7xMEXl^uV#q!
z=u at f5!6j>{F|BS|_jC2<sG&cY%T at p~+N1l4NX0$}7;Mcu*Sy{xB*Z1|Wn7A2Cdww9
zkWGEncp#qAZl+;;U)6ST345=mdZBrF57Dj-wF|)^{|Jj3;YSTd<P;Zc>L+6f|58ai
zi%ym7V5JN=W9`Tde*PD4dAO39KGlcZAVndW->0~^IXw|i%DJ$&1$`NNHwK%pR1oH3
zl?dOzszLb=EjvSy2PvPyBs;-^MY?LMf(Hu4Tcze8?dl8;HR*BiZ5`0T5=eY*8mF-v
zYCZsK9^ua>PZ?W0|E%_WxyNK>k2N at q25m=f>BP?F;2hNsGoZ%12>G~OZi<sS>K}+3
z{*Mo4H-(IClOCo=>dU|J>BZvmoE)fRU(1jcGzie3p6MI-&cmQ!skLiP+?VrNSv`P>
z(}(Q;ChBVGFJISQKqeHC-!Y%C_0cf?Mz&7dQ5ea2#_Ia1QJg?Y7p#l5*Xdt?JTl3y
z1q$7E1?ej!`{1(y=!{Mv823CMk4Bl9!b$&EMi;^-FaGc#YB at XY<T;6)2*Dr*zZddF
zA3Y6+>mc9rg-pkhu~_;EwG~`6=08(O{^c?bt11`cIlJPM8DFA?vWt-mrY)`>FfZ0;
z)5Gy->WM{2<%vg2>w=npVTP%k?ML<;pbi8sKMpt=$O21>_XK=RBq3N9u(VvwHj`zN
z##ZFZb$lz)5WAU?WXx5|Yy{2iXs at j0OL?jku;gO>_qjB};F1_G9!zU|^LOOe(#yCk
zrzm)!z3U51E4m&9k$iKe+KSz#&hs)noDh{;xBuPb at +rd`s;yLu;|>MmB3l(!2J<zr
zB4NF}6U;jeq0c;%`xOC{;bpW`N%G&H=QVCxy=~j;UsnV`ysN|>F>FasWN}2}zF3UD
z7B`%`lGSXoO|{(B{Yob0&9R|W!gvG=GAzq+c_4dDD#E2=Q2v<=G0>hpVon64-_X8+
z-<Tz<ykH=dE&<S94C-Tx((eA_$x5zm+QIL|I?@MPSL<;#sa)7m?i|86;;>5XvR?-0
zBf3e{(AgoJC)RS+hn7jXfO`C<FyoGFn;kO<(zdmTLSRxt$E!654QcuJv(?HYT1>)m
ze4RpX_L6S0*>rA$f`qtyxUkst)t6l>8}=M~cDDtLQd+(x{#>kT;wDD|9m9!(?ey8~
z+4rTl2)SihbRrQ9au<|(DPAja!A5bv`=grWR<A4k;uCmVMf0Uqr<$bMXDHwRce$}x
zxaBImmu|s3^^?kWU17J9(%Ub(rQ&PVg!-maR%M&!?c;ZdXe-#Hhe0R82h8VFGn4kS
zuz`T!IR^{=zj;;bNoEMZfDZd=;c-wS+b=)kJjcmTnw-PpKO#7U;2Dm+zlW*NLUe*c
z5ad_?n9TuK?4K+@<>5A12&Ea${65$&wdcwp&ej7onKW7A%>m2?2??j at mhFdZr>&rr
zJZo#;Qc(wcR~;?QjcT#cAa5xELd&#dyb;+*W$IlxM}3YsIYqqeY56N)IF#!=e(!RF
z`V$}P)@pS1uaxEQEpo(k2uNxbCRc>K)?r&63e^#Z!z{bON2)!Rv5yuL{<?XE+~k^r
z2!?&ql$4k=IU*~GgR}gR!s8^z@(!(8Yrdr;A}I!n1!7petl}s|eYd{mRh#tbrtp(#
zW4^x?SE9>BYMgk0vsw_NIn>R>5Lj)fW3&*&g0iFe;2pf;!%n@|P>?J{E$;M_u4)%E
zBCq12BJ<dDt9FyHSHglkGPNh*62A6%)vo*>r at d8v(ydzY$zci$eMU=z)ikzEL##(y
z>KS70jLZrw*?+^oL47=Fd6-r05*}MZoI at bZ=k=iqhDA^3YBSs$qlYTS%FZ{BDIMHA
zYsHnHeektwQRbrh@}?0k%z(=-syPOzV56=9{86{YUkWJ at x!2mJBeuKIq}L6HL8h=P
zI+gM*3SF+I1;ZS2AZxKAe*tCH2}Nz2Embr58o{-#LI=g#YaB~S9W|y(QF)uPf8|4_
zaVzQ*AK96pYSiX&o>_E{AT8;VL$3&oIEZ5IIXFk*66K$9bds59Yfw$2A$$=So9W0}
zaHdto_Pp+%^(r-Tiq-0!)6b&Z?R&=(XAZ0vw-?|Z38au;7{9gku&<1nzc;jY=Y!!W
zdj-TiPRSLG{eIP^Kw2H3oa)#AXcTV829lSuhh>0)e4i{>U+5cf2&gcKm6o&``ZdS}
zlwV6KWmFJ5X2Zq$xX=tcsubY*cC(>yijcGrzaQDv at 60Y5M0S4$w<>C<2>1mrF7sxm
zj)2KtV7)P406vZHrqNaQ{vzY9jEl at xJlbs71kIL_pj#M}GES6&db9QbYX+}IJY_yF
z2{PEGxL;*Vl!SsmtmHR7#OVQw;VNn at f;2U3m*ZmUn4mkPBRt&KXDxkiz1yf6W<`)-
z?s=00|GT`wSZ}KM#*c}?-9EHP&pEXUuEe~^(d~vp(8#!iP)6!++ULJZ_S<QVE0rrr
z7ip=qV0i@`h#D3d1GjN1!~cqxL5O)uHeb^Yh_VBG^2?#zVnhUUn|KbDzB#Yo{ru({
z7N~+WF?T7juGfEfE=_>ob;@p>&ch6~o;iwAxU>AH^zB{>Bgf7BoyDZr(v?}6 at 68MZ
zSX{R3=3{20lWl#y^uDt35H at nTDK?BMKs~$rlW(-MxwFz50xrUXtAjYGx5PRMA>zeZ
zRp;IP{nO|f<>{>qjQv9+(2hD&@xmdWB>@`O)OA+=f)Be*fMq<gphSudUVtkDXA?E3
zSmnxf7a4&ggX~~uD;yu!SKW;pG|8YgLCfO{lCe^uYL at l1l{KYzV})xSa?n?Jf||JA
zETTw3pP|J=*$-0ku}Z7{3g(pjM}z5?AfGmw93WFnH%%`t>rHd~`7u;cApriH`kij3
z9&C02wHsJ5yM<oqHw&#DHzBJ!uGDLP at ObN-v*L<Qgt8R5I~Ys^{>B%7FI2y<JAoPF
zkK!0%b}<NF-v-1pDBysM$QR4L3_FJvdozE{KZSJ3i`9&}d$v3afes&<O(!aGn>Ykd
z(m7FS4!HsBxWf_!sH=&vC;XUR2qxAOe>Vw#WWf!1t~KQ)@N}4>kAHDR2FWT#nR210
zYOM$jF4qv}+J#*Gy``z#ka+jv8mX`!XbjY8fimkPf6$5`?4o^b#FWt5<f4lv>&SpU
zM+iCPbn7`UR}Q<Kc?+Kg+Nl)hi~1gH(gBfj1;^$-`q||<zL*hi#xdVBKZQRP7fthw
zTMzh)Hxn6OMSd2Ga8xH)&+sBEpucdglobH5hi+UZgtCCqyic{=0+REC?hCy_Pe^_J
z(F4eYN;E-*t{Yv)z2N?&!y=Kx*Ek at p?;2JtGu`rHwdJ>wG&U6V+~G;mCIxli8*}yq
zd^~dL>WpGm|MXd7%G}sAqyo53EDJ%i@|$Qnpf)<UqT)Dh^`?XO6(n_uruS4j->Wb5
zVZucy?dbo)$@owXo-Rmbvd<@6Dj76R!%4~JJx^3nOVQN|{%3941Uddsl4b_G$no_A
z?ZDAJ+vz_IbKs at +>yGUeC<YJi-vv>2_Uz;VG=hA;29Mdl#^6sku*#J2Z5iP{%rtf#
z*~;$Do6M`@<+)yOhmEU?{u1o%<sJ5bS=`kyg(<fgJ!L4SS=?5Oev9y;ooKM=y2h-^
zFu#THo;rY-z$7A|tLQ=mpDFa2dQD~es2U-rKI6tntvU2fD){{Cjg`04abm5x2aFnO
zS)h&${eQDC6)I=c(5-&<@zHK`qcJrAD0*xnKctV<Zy#rjx+Y4_qJn7&x0oDmPWQhe
zAMC%4M?$UGxgkJpEWw7Z``__?|4k5SOEgTI3a4c9-t#wjR<h;L<B^EH!C3XMG&oR$
z at YHlftZ?;*neYdt=md1Pk^fCLV5hr;tEww2`CMd??zm(zi?E^1ZzpE*SkZFXl!<2@
zePM(ZZedeFFnlLX`vDzS7%Qb0+1+1_Q!z1i13eYJ4M1Vv_+bQ<1kHQUm-A_S6-Op{
zv-C3hQgAC;sm)X6DL8~~*gf}c74 at oaUq1@4I+c1`xqTl|lw*%sa8R9=?RY4EFM=1O
z5BWQKt{TJJx<71w(H_$zG|tTy(mNLH{D-oR6ZK;-QngmFbl!wsqsH^QZ;FSJ$|DQa
zbOizYnvrlc^xpwna8C#W+=!q at ZMa|A7!HfI+W8C`T(w{MBaGp`d%u-HVFbbKR7W`M
z1fxBxj#24k!jujCzemes-P>qL)mp*$d+3C5bjb?zp8m}|ls{8+5S)!D4o)J`04tC$
z<kVz5u%0Fwqr2ptNPMkl4(TGw^)^y$zIP`0#nCc$#Kl`r93$c;U0J?Q=`*_dX7|Jy
z8BiAK&n)l_=JCNu5M({aKPn-yo*y?-w=XHwzis;G#??jO?F0p~55IHI7oL$0ic53V
z#2C^--4PGuUWJoh0QDuW0F}Y{pT7UBv)>ibr~Jm(pb$JCw6Dssk}1)zG*syf9vD=l
zX74iJUs5>)^d7Z_Rov^blyQd1Mwnb4d$J6%<I-+ZMo}E{pd{6)T-!M)!Zls$H?!8q
zlEfDnqe<8BIZ{4OCU{`tJ-#_&qfb4j;3OR7zZ^GCQpO%n)H0MTc4a8w2m}ZEK6ObS
zOwv$!LDY|oJ at 1uHlZ1ovX{-pHIBT9+ecB#PK;)z~w+}t$MHq{crZwY^MX7r+&z(B*
zNC`z*;S)`OKbNGig8e1=PDATGYtBGkS{y!_jJQ#??P0CC>=bf|S$<o!zG#0>*EMG&
zB+m$x#M|@+sVacw<8>f?9fgLUv4}rzeyM5{;hR&d-$=b at Gvi9A574ue8ob_^yzGU@
z*B1<NDwD1abkNMc%vfAxbE`O&t}pE#t_HIOlcFbW#496}Bx)eSlviQ4fc#YSuCgHp
zmK>VeaImzx#;u~3&3#n_SB1db=EWkIOM0ZTU*&7Zx@@62-|!ZIco0T*1Dser6}Eo1
zw3FnreFK$1ocX|tlZ1ALW+k*x8$NdCuwgm7iQE!@+lL=ZC at N?50R1zaE7US#s;Q28
zmx6tjf;`(jV4O9#$KMEskLx1=FG_qf<TS&4a}3 at 3sks4e{W`@NwkH&~kzY<lTCLYh
z`}8Dd+i at uw8`h11sUqfB-=c(NH?L%NM)TD5WX#RX4hL|W*zoo0|9fm9Z at Gs$jq<js
zLz;)M6^u~YlEDyt;djuiRhZCO_WPHhpFWyg4u~WoTe2yQN)!GbS!owGHS^XZzBH;H
zJd<fm-RH>S(apUEDaC2KQOuhxzYv;(7C!FyT-XoZg2SKQxt8bdmd&bWqKrP96Gl_E
zk};tazeU}go?_a+je5iA^+`@!F0&^_wgnB9k$a&Q5VY at 8Zlcw-fwOY_A?l$_jU;z=
zs-moZIe^PYI^8wz<!Kf^(UGCkBKt>$lN~FvMn?%Eec+Y1QEi9}%;Iiw-P^-QFTL4Q
z62`?uRLAQ?lu>4z?@RP43}aBK2k(|%d8lIVWo8t~%NKVQ5=JMYt>ZN<P9OxF{!#j-
zU|Yel{7S6h5Q;lO_<ihW8#1pLiv)rwO6MRU<k^TmtSfdD1qFhr7B*nCkM*TFBg at IA
zEZ%>z&vMt*%7jtdYC#nQ-23wIPC>-0c~QNv#@Z(V1kQp6waDiOOo&{WLISUmVibnb
zdDkOe%nX^OwE>yGIx&i!fLN?J-dzTGk%$d{Bv9ynwE{OI$;imQJoX#LMaB+V$r)wM
zhliQ225}%5vV85J(;427bU(81kX7W~0Q=7vi at Y7Rvb5S~X-v624k!}9IgMd5zqoFp
z`s+y8gd4rbuhMRxE75rMKq{}0resW*B58fZ;rDaA5g9wXvp%doQ)`nA)ExiN=B$^%
zlkgoQIsvnLH`)Luv_pZE&Bm02TPpI>y9Ax?O_|QYrWx-<s_Np?4f&jSiJbis7l)tL
zHUrb9leM+wrG0Fq=NcS}4l?-t)10LPP-YcOxnNy-gfhCCX!#r3a29(Wuh}l-;+az3
z at v=@4d}N5eob`8Z-oGVT0M{38hkJlOS08?iG!WQE3Wsl2atwPA`6c&P at NqQlg2$3u
zS!P7kT4FY|fzQo)k$Entnp+*$6zr_4QORLT+ at gsj^!7=1M9wkE`Q27}0uHB}B^kEQ
zAlc8#UW0G<-H_|JHlgUdstP5S$mkNu7Pdry$3jzU9vt5^@K at +471G*ch}vQr-DKoZ
zX0Fj(<hr^!fD{PEb$rTz6N{Zd7FGh;go6(Bl<?`KFg5t2%o5D?0$Rgwgoslgt-5Ny
zNnXatg%H}GuCax0|LM<>45Cy6cmedsd)+8iS1K<uWTe3ViSVgDE1z7(QpRd0^G;?s
zt8+z~QP(3^mP(J5lcBT4BtQ){tMqv(Ddz+I^xILPkK_hC>pe(ETpcwR0P!7rdN$6J
z^<UX7q=CL0n;g2~+&)<uMC+P`1y}yD71Q8Z3jCmM*R2 at ecB9;>(Rg~F#k1opQ;u|x
zs<|siiVR at XKZYn2^~C06vlxx-(d7$1Zg3v3)cCx=Hm7g)Bk9nb#=hW?eha%oqOs5#
zc<4&mzOy!1R3>ue4kkkk(n0Jv!?VvQD<6{U;fes-;zRWh9CE0W#~s)1SGa8}NOmD`
zi at 7hg@MraagcAeG_mx(n at usN%QK{#*s)0>w^AYMsn%;~~CJ{~M$w|AX`HCd#yyXEU
zO_SEpFX}+{3v#6hhQ}|t->Od*XQMf+4=5oL^t8S)8%3PD%uwchjDORO;oV`8S2w=?
z_8lA}<{><w4-9)Rg<4OGba|Z&#hM+9772 at _Q_}yLW--BPNa)7cxaqf6&PAPQjh&lz
zL)V=Cl at 2iI0A+iS&dKR3SW;Yff|p%>#cxu7!0QX!xJgo?6Nodp4h6g#;}aU^H%q~V
zQp9o*O+}+0Osbij6EVARJKeIr!>g#R>T<(DZ3 at R>0I+mx`Jtb_-Q&$^DkRa?#|^mj
zytgjnP4~j;tBDq!R1=d;iQ=o)lA+#tz}zX$6HS`nSW9IWJ*?w3D6os{cb0&Jxazey
zmM^RAE-KZ0^<1SDKl5f_aVgc2yi$Wy=t8UHfr7IH*s}!&fmKa^aUBR2k;6s9V3&1d
zrNBoJ_mk#4!s6ps>Ortuti57EQI6Ns{(%Y;nC6ue7f77%42FW19!$u6h&f6H>4h2!
z2ky3bZmVr4zR<u)rIaf551ocU#t=Q?8vc6tw(PiQ=5k?`|K}!l4zCfE*aL5*`_1cl
zu%oqNAWrU>4Sg}Z(oe9iqoW1QMjGdP^81B|LYR!$_SXA`nP#?4;6lADd2m_WU1hX&
z_RkON4{YMoiRQ803%i12=W<vu^Hpx%SRrQQ9W@(Yt60eA=s#$5*|zKeJ((Xvx9)-m
z6AmElUZEl3^uzVkt#57d#gkZOy}T2 at Sy2Mq6v4po-G*TWqjjnyntcTJE_Z*XZ3Q9&
z*IC-ho_=qvhE<PnSzPMbs-B1~zqcL4fAk((H$iEnTv2u8EN+DEPGH>NQen$xu5XU$
z^>q{O0#X!^V;NAvX-%%iGnh^Ww!0mG8d!0kBX-~kqJ*jk;yvCV;Rk1mEiUFYtbGYq
zha}DLOZJ=JEAr<d#ztWaaF5<uVJs@@H8dt~YCW8ql9i4VyZKub)OjKlXhn5ewIZua
z;_=Y-F!jPw!GouMj<MF3k<hT!ERAlHDUYD20BGAZ4_i(hUUy{FJ-)<S=D$Q(fAkx~
z`k3#W!I`9VrCmmvejEPOr^}_icxQ;REs7O6RY2hWPSo_<5;%7QEyF5o at gPWAJ%`MB
z1LkQH7Y1*gmFW$hwNhVD<o|NBR)%N&)H=LG9+H}ldg*7|csl<jhpUA9vig2n6hP*F
zFm&AqUnf1lfpw*@pvTv{YPHO&2$xRkg?;hK*8 at mz=_Jq>MR9y^lKZ2<MJO!6Zc1Lz
z6q}_8OW|m7isKN8QHasW at xoq$Wc~?hIez9ZVR8(P7k-5yo@$JSEhI;o!bdC78KQ|)
zsps<x!yVfek#7HN_u<`7FxyTqJcS9Ri-*6DtAkIpy2bRROu>3UdY8a#I|>b^5tl^8
zSqkYH4R-6*RA|g2VI>mOq5T-C0c$h~+V)~``7jDS8038$M~_blF+uQnjj3)rqwO9E
zF42p=?z#=hfeu^S0|e#eW_wIqHGBme_I9srp2z!gtmmtI#${u`<Q-S5ZjU&-W5Ep`
z25bV4xL;LeF0|ujBJLR7)XmTSrRh!kLV(9FlL4yN)2cp5?(COC at +N<ljsjG)M8&po
z&3F*@)$RHt(fg4k at YpXR9P)QXy4R~jQ3{TtSTODz1qXWIgF at NILCaO|)Nq<yK+bP;
zfbq&xBP+2PsnU*^*2Y at sdLz}*4Qg4t5;Y+5_m4`Rxh^@Wy2en)!9-%m!Ec9>H-M0&
z at NH;^G2rAm7I}sTCn<}b>+{m5y<~5FLl*<!^*TUfAWED}P|USHPQ<t at v~DO2V}L_5
zatM7!9LkogmF`V at zkk41YXQB*tN1p~UB!^eBmOwsa4BV*Ac%Nfqs(!G?8st5njsiU
zjW9K|GGi-N()qLF_`y*pp`<ROJ;9xP0c1swz-jWNg>b8d<jv2R#ME at WNHM9U*xI=V
ztRWOf$9aINVH0d#rIMX-CcQC|CGvQF36g=WUZv!lyAaijIU8&w-<70En89r>SXfy-
zb|cKi-%}tRF_Jz_*+pxn7H~Bfxs^1d!q2yTQ`Pye>gAvW+oa7Z?9HTr&g`9fhFkR4
z>m`FGP&%M$J1~T at BT-R2cxngkS=M|!t!Wp;p!aJAly<_~En3t><e^-b>c0P?JiqIh
z&JlgMT96A$XXjxe7$6!(aTJ}IFgQ0R*GrU>in6SC`x6OtqdT;ORdLt|y8EDROo0K;
z|H|^>@&qiCGM*P%t+U&PRinUZi|@%uN-QrGaP)gGP`q~3GC2%9p&9W~w>jmd at 7(U=
zV3O`l)r?C5SmdZL;B<GaPXA}Ih3|x#=hr|w;=?27OijX{vLNr=E1+R<EKHhuWjYjJ
zKdUmR(U#qW-kik7*4LiYt at Skt1z7q?nzHk;{&RqNiK}6qjq$}yk1}=JD%|k*c%?Ua
z9-|+}$Eza|lz3Y{;&r8jTd2B+>iAYo{qZayN^;n+aNQ=)ajQ2h9$1mdZRv&-PvC5Z
zZ5GcktVX_*$OChZ_JZJyt2_I<sRtZoNzv2JP6yw^vHTd9kXK4pz))O61=u(MY$Afq
zuaZ~|dL7_aH>bw!AY?}s%&*+<zG`?p?{|PZ at v$bruVeq==4U1Q26X-|x_&GZ%7h$%
z!a9#=y1b+m>^K-IKQj&;^si4Up)jnLu|6^$3X=956iDAr>VbqKDVg;W2gNgrSVVWn
z#t)4RjuPgItBXTKpn0YzvLk~Wg1){iSz}3sSH at cgV(yqa9kx95BS}(As!2^{Q83$<
z_j;wDV at +yaEr2zvscbI35x}Q)Ar3(Y>W at MF(jTT(yIuGE+-D)hx`K^wJ4FX>2twNF
z92uwm85=%jNk7PsyG+%0dal9WH(|yn(9t0gn1L*av-7O0cJK1dBr#&(v(Gf_iY7c+
zn0(meZ1t6K8kVTV7^##iMydT6vy|VIRJQO06aJ=SCl5wE(VZ(-m4)L44aJz0n<a~f
zAH6aeMB-0`Dj9<sz4p-HnisB{mkNa+zz)yOXNR^m$g|m8VmRorQ>li8r|19)kqiNy
z1L%)Da=zsu5>^QHXiuunt0Br9 at ->b8-)Cv_bmzKHw<a!}z+R#`48t_heFoP=bX*|Y
zO(gt~Gn{Po19D at d*}uR*>P)PitCA01ipdF_9THtiw2)R8gIcUVBqzyp{WV2LiKnQt
zYpP`~OhKTrU*u8)S(kE~N3#^D?nlPW**v<uFY?GRddfqEjr+Bg-CtjDcbPwGFd+V-
zz at h&zU0uQ``#yoCj=d=khhvbX(@%f_SFIQmq$AEd<bCl_?xJup)$OsE*ZFzbI)yIB
z;uD{}bCa}|rRB?h?!KWeRyWrof#_cNv9Zre^zIT7B-qO=D)0R)%_(HQ_0%W`kIrO<
z3PL5EO+{V_oRE;#U7;_*S#9EYnMXl`Z#T!=jpgprUepi9n2OgxQow-EFek)eOP
zo`j}ov7kr4U{t}@zNqE=E+XJjBRP{zQv<kHrz2moN(G3}vD6^FG;aiW`{<~E*4=J*
zE)9qNY(WQoY at 6}(=~Y7tFKt9@>~WV~6mI92**H^<h)9g$fqUK${7sV)xnyp%_$i$v
zn}!w&Vpt#DU<rl|8grUNuFuy)^nls>qw6+3KI`z;Nn;d-2etb}5h&C6UDQe=CCipA
zG8ogfb$>NYF5mCo)E7WyVJOeim1gL!`QZ`vwm%6U)Fw|ZYCxi`M>N*u#2H4u=r{L*
z6VLyQgKwcS5Hz<@I6xvOnvUKp_Wjj^iL}(R(G78 at mP^9**%zKnLhvDgb?lgr1|}f$
zlwH)fLb3iy=1tWx6Kg0QYJK*t!m%PoflN-}!i^+AfTn(5TFBhl_wzg-&I10ABi6=k
z4)?w!o#HO6NFqZjAc=ZliWjA)N`L~4bG_7$cCb~z;C{Wjs*buXB27oD7^_7ViuW+F
z&&HEP^G6EijZ>GVA7V9|FGruAd)CqC)G+A_bTCIssA>Wr4NAgkzwtMeGyaj>3a+r3
zSYLajoz&2uka}9$vDvVjU5NuaUp0~&AK=h>g!OgI2+tyW&tyO|vsCLmuc6>^^=%ll
z0t5W}D9s33aT>k4&u8#O;5Itf7CGED-xQi$k^qNhVLZe0l<6J44mGGZFKD}tIjaiL
z5P>m83 at C_l7e*aRL?D)?OPOg#fzjF5F$k)Nd1~IyPf+xqh4<8#^RxOP=sO~q_^l#s
z(h3(I#ey_u{NanLW1mwG*{`e?ag{<fyF-_Y7e6g$8*QX#eYnf8dlo251Uz1$5GL>Z
zPpWEE4#IqS&iw_z^ph}d)M7&t_u25&1#4=GD1t4P%Sou92 at q*;C&SF}7v~d;!Et`?
zb}ER?$tsdccJ*y|ZR<D<Y$7E?*Q*dJwg*#&B*3o^j*@XDT&g7u$QvzOL!8uT87Uoq
zE&ObbB*~y1oQhsjCH<dNw=hGke7t;Um%K{A{waxI^C<TKMnFcNjm!2{JI0wVI4%bj
z$%b>`fsqE(YsZZD=%=lD2<YJ*5(fJ~sO0QC!&<SvRF`n<2^HF324_G`r`L8Xjupqt
z?r`U at VozI*8LJ=%$a%03oYYvq8?V9uE<vIaM&CIW6`5XLF5PKuLtOnyiV{23E3FXn
zVDx!4iR_vgQk^FP%fYd-;*;0<@M>Ouw4Ju%4paUE38B3Sy&z}{T0&I2&xeJ>@Bp`u
z&Xf9okkk*c1|=u~c*?0z`Ig9Vv77Nod at wO#QH7<;!ghU^Kx1wwb<Bi)CyEl4o8G-~
zx})4+)W0mrkpM1hT1GWA`K#?VzFSm}hwfmYF`DOn$@O6+R^sC`<<xaxBoUv=oCqeX
z6It1SA>Rd^PrGH9=l)Rg<fJ?pY=P}kq=dAZ7lgYb0fR}E8;hGgL0dUZ)j{$sajmYt
zog(0n*xJ=8{WG7yiLPK;sZ{q(IhEYHqruXLh=K2CrzE;QK*mu_LhF7Rl6vbUG8*PL
zk>P^IE?q?)u$O|Cu3bxlWM~32Q6k^HE6o+90n!}LZ!if`$7|g`$AHgJxh>hC4$s&-
zl;OEEPWo#jQ9fgt)Au;lb!bvEG#h3weW_wc$}FT7b&)ieNf^skvI-PXn2;yB4uNdN
z>8hUZVXNz;Rym1r^y_qKNzkmd?gc5RLI<B2+U)@aU7JtC=o&ba_3h at uU)(uIhy<S`
zDQ3lONV9w={QraFwp^$ARooTPePBwdYj2h-;c;z1JP#g_#>D`Dctw<){NK*9qVR+M
z=T50T8(C-%q5`Q~g@|w(u(CZy8W*!A`~nl5+Qm;fgXDsG?bk`1veR()gp3gJ17p3k
ze~%~Pfh4mxV+wzl=l)wLIvEu3 at I8Yq^@VHs%6&CyoJbh9pD@);`{uZik{qD$wXC_p
zK at Bcg2CBLQXZGep0P_RW+)(CTa+jJK=cJZo6;y<7x3x;NzO*Z>FVHrXL1bnS+bIfL
zdlb+w$mOZ!_1xt?gKk7~=-x%4ZC7%K{>J~@@t{?HkQwgJ-G7T0^R1Mz2qt?hJ{q}6
z6?)=Fr*n2=47F#whU%^ECsD9rK;>T>cZ_K`JDMD4)bxt?=4omRKA&^L!<R~1tVCCZ
zhgJe`|2^J7=wvQ`qj+_M{N(QyhF|ie+P`^#$j`lDsaA_0e)9|+*rf+RGppO`IRimg
z6Z88Olf5sQ3iLc>u=MsBM5x at 3@G%95{!&3Bu;zc6Wyb2H%qn9-3Ak||z)zR{r1q8V
z(qjfKL$z&Zk;3(KH`ClTdK%c_7{8qpvCo7U)q6zv`)jO3D>6-BI-7w-Dh$Hjf}BZM
zfbFLio&JF`gO1CmjT>Y#e_oLmyIR>QgLkp4%KQ(vKpG{wuq{L=-!N3i8*`AzWwkg?
z_dFjh2PFftk!$Ng=@>U*C6)+=!u)CFh?pKyO#NV+OS4?!CQ>pW0dfI{z2i&CajH&5
z>o)D<q=#x~k`UoKZ8;@1FqGYt8LWKr8L^*C!)V!1#BwbAW=9d*F0_C)+O6Yyp4pA`
z+3C?a;NlwN+DoCAku(e^Jj<b-)-i)84bs9vB9)un_j+WDDWs|JmOy-X5ldL;3ND$y
znau|C_uCBkS#AF1AZz;lICA`v^d#b>e{lh5v7@*p({I*k*HL8(ssak?^yZdA?fOWF
zH{Er6jF|5G?O17*bVv}^VvtJq=2_Y!K=Tq1p6{>B#3&E2fYHmc93Kv(2-Ay`4!=pz
z^2Ue_hxM!)MG;EqDa1eAE0GL#!+Ee%I3u}Ls3O$7;haI`E1HSJ2g<S=Tbeb|oSYK8
zWn?vZDv1~^RhzRe!;-Iw>{Ceq37d1%l=Thyj)&UvcVWNf+5<35K2sG46|2&34hV$N
zIaMonH5W`V7QL2wjMH|DO<mA~)aht`>ZiJAIs|4^C}x46^|$ekQPpkP8bqlP#M+Nz
zNez-)&@mv8j{f)t7}yOZVwtTSjCa=;cnSOomd_$^2|wyk0Y4`g4r4X7=F}XQr<g58
z%D!*+rqHFyVQ+o at xcy>&BOtV_%n at r(U88WM2Cz)5xkZ#jW{AH1dtzk#IiAa|fnPfl
zO<!Y|TroI_wuC`L$A_1MA(ff8xMsr3+J2`uQktnuZ;K#j(^0H3>lUo#XSji at a>E>;
z*7%c<iN!<Rbb7DzH28}8nsRhLF(bq at TZBh(h7#HjA>yWX3Bdh^B`?S#=q!aVLHkT*
zW>iBSef;dH8Q`0G`R?Cw!X4z0P>s@#gigpPV`3WaQR*Vj75#_T4QBdrv{_43T^C`}
zjOe&0K+~{|IuK790Oz)|?#w?H)5Rdpd2rdvs2K=?vYd^0`%$8hK{3W?t&h8 at 2Bf@4
ztDL6)j>6a?xH>M5ACm2Ek*4QChyzsU9KTt-1r^AULitwUktlmPv=q`755M`$91zSG
zS`*o0BRV4P%5yTEnVEVqh=4lRsxagS-p6ue{+!;|J+nNY9ij^(ehO`K5MRM3r$2T#
z at EX!P{1tA)i9t?bOy#9gkIw5SPC+P*gS2b%;7+ofx1_MbB*^n;xQKsoynF<~%ecU<
zN2{+Wqi`U|iuLSgf*u0zhhr;0zi8}wQ~i%30EtO74S%j`&<x}7Cf)ys_Dz>bM#{Od
zf4>?ChL5$_F5yA%DzK2S^+5{i0#S=O_{I#j-dWHw7m8>$?gbx1J;l)CHV#JVYdu*<
z^}kLcagNJu7l4yLAGN?>oCucL0-k=Irtm>+&H-($2~Foifv7K>7%G)DH#<wMIEimh
znh5c#K+_!A3&<{Xt at s$*ozZZ705qj|*;Z3JuY}f*TqBfaL3s5M;wS-2LRp at S8|#6_
zsXuH25~ggdi-4{)sJ6&`2prUc at Y9?Gu9ps()pUQ<<gN5Voi|oE!rv*0+hGIe;g3oq
zvk^4I7PF1rlTjly0u{ac$P{fN#3dB~rm<O96BnBiG7tuQc<9CMurnL$W|<`)6}njD
z#_|wRX>^1pfa;+R)-p*~J*PO@`#mYyhfu>8lLio?eZB2zBh37lH34SSXgUY8izc#N
z)KQL)t<Au7E2g0Db2fKxHcRkSL^hMxvA(>EtUvbVli3d)gYJ!6M=>i^mP7EkH&w^+
zfZ9+eyRtPO<1DHko3ol=H}x-9(~3TU<B9T-*z`F+^m2D-?`Pcp6Df1s*kh~yB?!PI
zIF9aVvSW}X9U3{fE^^xVT@^F-Q_E|wosgp^b;Pu)6}cmtt|IIHMK6wh-r?F57b}1a
zzJURfB`y+&!|kY8ir2v*%z_<L)1eQz((M2>gFH>gI0?2Q){Z6A4H?P+ycS-$Z|&R8
zCBtlPd~o{i7}}uKo8k)+E2h{G?(Pq{1y?s46Z7Ran7sShx(C)l){wSX$KJd8#(~{F
z>gd>zo!-H*m2QsR1M(6HS(Y>i;7SrCbC{P6`-k8ykd-0)kG~B_w!`NO5+sN*hubTE
zzw5Sf<#c=9yucMRWz*hAZ(k~eHeS)^=C_q!!|7fAeN}9{Gssr}9>oTiViEoMg=9<S
z=m|1eQKmmH0rPE6>ck2$W6-VqA4$3fkSFGW36^0C0CCQ;9cdukJr{+eE<x+!wzQV7
zu>C&2nGnX(sX^uVDbPk0OnCz*M1TlB1~HV$cy46laH3trzNcVzu6UYGDKGj;oCBep
zLq(>#vGl{hyw3D4N@^U&Dcm<wg4*tuxQDo at MfLcu(A?Yg0XXt*9<MeNNNy*f4;D|1
zzc|-)$?Zdee5nRagqjDxH-n2;*O+g%DE-W+?OUvlC5;tz<GDlj-F1OAKQjlYW>sNf
z&Kd3!H%2wqjIZEp!KhI2^k|kYbgaqbp}x6d`pPEW9vM)r1p#LTyCB;Z^M=kA!M)f4
z5eRC{o(IXLbh!F@#M}|iK};@0mk+Bc{po`<z#?cEIT`C%4((+;%!GieE-U_zF^sQ^
zOR0MgM8W3<L-50it_Tulr!VLC;!}E}Pg1Ibv)i!+Vb5%H-D5ng{DmiS)d)^W#AxHX
zwzvk9ssih`+I$<V)wVMOi7YLp0lnkuR3#0##y(K%O2{V5mavrw(kS-;q`>;91^<rd
zcrClSMdk7?3s0mV_&HiGmq^)AF$}}M!!Pk~80?(64A>i02)1qz`^UChoV(vlbTtAI
z at 2jww%Ae_mi_MEULPcqG^N at H@lL>u2L7oAcTmh&rf1dFHI at GQ}o68N86A?$RzHr#F
znH#{n##5l1wMr at mkVL|~5}-5B)x?2bIDGO$<1!DMe_~A at _Mz-h9KQdWy#w0{iU>cS
zsU~rKL?OIuSV-}9b^NhA!@x0>wl at A>-bjNy8#IQPT5`km$k2KkSITnW>C<$7*nYx|
zm2JrVWU}f45>@Et1J`NJUe7$_ at fmXX&R16hANL~crPH`9us`9eoB#H`f0 at TNepPCJ
zimI#a&V_p5xs<7HRRVL^T{QvZn6-Ou(y$9)0(9Z?_2WEABXs526GR5`1qpi2b}^Zi
z&hz at h*<t__(LOf%5txAWk5JihfFFXin^-sBPphsiI$pJQsy`Oa)<^%)#UI-Dq<@_e
zXn5VOVWjV<zgVRRV{rU^VATinp?T-jI106LO5hhiw9-So-yuDVMZ9 at T|G<PMp>gRL
z<yN6MbWAsl1})mDu?)`$=&VYL*4dPgFIT8~zQ8e(o<6l1ON}K)M5}s%SEoL`lDn_1
zc8{qKE>{NfdAoFJ#^#_!6bk$8G7i?RNs6kZ$aK+ at g2DqJvuVIv`E!n}hYi5ZLPZWE
zgV^27htq at ikHIRF$mL$ywH8n6t at 3lbSYWSmLlV_3Pw@-pxduogY#8TksC_ywaayU~
z5nZ)Iy5d)ACvzys#vov`dz9*`McP$qr)z{^rnxtG>Sl<_CMGQW8 at qQ;YPr?G_iP)Z
z%Yokk(7H#@5$bV|)_OCg)8@}OT61~ii52hal{v%2D7mhyTV)b5ugFUznD~FBRf3yb
zDe8c8a#0Xb_&Na=aic?aI+J5-jGo{)+*L}aJL8(rg-%;R0zY-Qo|7rz at eNUTkdQ@V
z0}%cIAidr9NsyW;v}rkG*M>}TG&uyJwF-|^ISIrUsx5)Pf*U=K)TfW)_=K3nUHhNk
z8ESKywJ2ovoQ_g`Hz>SvB$l`GgDZ+M^-zkzuxDHfW at C{;sCO|%w{gs!)~P<*He~G=
ztni0B75k;0h{afFNRqiiaqb(V*#BNsux+;^Rud at HIM7`A*{zG+zgW+!sbjYmP}#+t
z`ya9h$8D|~qRcIy at U{}+DA#2pLjw3g?|XEsc)HQN95)ofDH2&r_(rp^5ex6a-I{-v
zGx<!XPpe>0>Apaa%gm)kA~8I%`_m$e#k$iVT*vua@{D8ZHYkhL4e1NpvV-(va at JFz
z5QEL}a at jXL%AUsCE>UO}cwj4lUm^%T6keC+1W<0(4K)?*qE8ARDZD3n6Y<Pf*c`_9
zGwItADR*d5;Ta+fFMzZ372yJeI%=E(iJy?xu=MhXKHOSy2b07mzK}_jC1*~SJOZ3{
zI~>vNtdH{%MJ=kb1I8uth)cY4<2WG`enO;KD8}@JCZP-wH(}OOz35MQ=`=Xg`pX<`
znw96UN)8hmIz at fOT+U;MorR@|KnF&3oKTcL1m`=5mQaM_sL-ka_`6GF7bC^c`n2wF
zQHhnq06n6n?enICr;B%Dou5r3z8;Utip&2GnHBsI6{<k&@S|$%h?kkkB@(3t`L){(
zG=ks}B$m1Byg836j*IGsZ?o`QG+{nS_~_)Y#0)2-GRY6P7A!^+k6(FbBRTR<rAl8}
zaE1rnC}&;=>8gENfy^~#G6?{LvBSQ9Yy*)VDAoET$a`PwE3W~erBhQ^Xb8}QDVA&l
zdUr^inv<&@;gVjV<6Ql2uj3}4|LMqZtx at OY_?Fa)CPoo7vx$UA04NA~*XHT9bDq79
z&3GquxcYtIujunFAJtJ6lO38d^%UEctFYt~JzQJ3z6t?ya<TcpxO@^EJ3)Ydd22?L
z at E&r4kL{T|R)YBOukTDRL05eiva82=*18v08X!iF3cTiwqupaL+(bNts0rzWl}gWt
zT7V?A;+(P^N3KxV+ at mr*M-Sr5m87o_+aJMBuO!QtSQ08~dqXL|rrw{U88ZF#PLpJn
zPP7RNH;)F3+Q0Ni*p`#?n0!~boM!A!HtC@~3bY)j`vwM7E^3rAi5cj`<3itRmCC}S
zVJxsMf4z)FO^@_<s4y^k^IZ&^#{>ep*DhMTBAv1zM*O?T=cQDCEy*a0bxdilZ^GUS
z%`K);;)rtC)3&}uv7L6pX&tjvc{#8%Gs1#8siQV at zW)I%OAbn;o at 430_qeNj-w<Vi
z9A2{Fs;mG8_cRYii0w&@#ZUALI??3dbc5daG$*2YI%tN*vnRj;o>J$A-LOw-L9V{c
z`ykif8t}FL^!v5 at VkTdB3{`~3CRE1X_k5G||A`PmFvt!swK^h#F+Wtv at NF?08L=6g
zRUOO&Hm!DSwZPs4Yda$D>FkHPKCl({(4-s~L4&Tvf`RyD`pwkD!v8Lg2nHho78pj(
z{3*|s({y=-aNVrVlA!k<H*{NN7uGBimd)*5SmKB`EOqK|$NHM-SA4gUYv<Gg&Id5Z
zRmDUmJ|fG{E4TM&C<ElrU%{hqitpR9F1NAZJHb4zw-b11BR6JB$aV|Cp9&4mu8Zyt
z^-#f0dTRYVu`kjvPT%n8Xjx_s20cgP$8iMQQxTZF8_HK6XOK;>O4eb3l2wa`qsJoM
z-$pVZ?5n{MQj=>p*^7pSm{KVQ*AnuRFRya}h%HfB8M68udoM)FO1uhXF%?8z_$*iv
zWysWh+ at 68mcvnSACw2d?WPJYnIpP`I^sK(wGIUyf7q>!Omzr4%5YoQ0?CG0?tr>yD
zt}8R{rwK;=xiPCq;pkKM1A}w7U{4Zbdh6y(H-}q#i&m&3@#M)e&KOpb?!P81A(rAX
zSzgmR`KgOC&j$B-8RfQN_lU%tPbG&s2tq04A-_PavKdcI4D{&r0%Xb<`B;|hK5S9V
zPrG_2`_A_KEK8_!?tiK3hv<@QcfH4j!2*JsBnAy|8gtutaN6>`{`0Ce`=ZznB7{YH
z<3LCu&CTFp>B>+cT~Jic89?}r0pKemP2 at l$84o&ifTrYxvdlPN0n8|%%o>1iWdWyj
zAp%+hR$N=rHtz<1r0YODXs&<vb>)(D+hOy4UW|-tOQNvr{ThN+b&(M0C2xRc6In at I
zeuF&b3B4>y<kl0pPy{dN0eR}1!DudcH&mn}*rc}Lj9y#F;xN%@DlLg>uynBu?V{$d
zi5T^b;~)MZmSAI9=LsWs5sjsa7V0|(!~kL92a|l+*J4 at +OyKqO_tu3jH??POrD?;k
zj&G_O0+&)1yDij>8SmydM0R~!bdR0MX0TLvcJL5~tJ&^UjvB!}GDRCuodD?=X%@^n
z`&ZSqb9^JGIOtKYpt6PG<%(uOZc5t-K{LSKdnqDKlfwu;9dHKt!d;&|+b-JfXn;7v
z7tQj^TOUBLyK?jF>lUO(0#XynF;XI-`X7O(0 at D5o)bt}82_m%h`x+II+ICbYtQEy;
zf6%XO^(fBp-F&=$a91j4|4H%0r6-Hu%tV%+hX0w$+Z}$kd35P8kgRZ|@)@U6zpt#|
zlUY=oP%JmM3}6cZ{?v!~2KAOvzlmnNm{YfP9BaCrP9=%Nv0tRJ(q4JZ56%uNp_3rI
zQU+Gi$OVK^BbO7)C(G+fXn*BsuBi~N47c at CI6a)-XBPw;qpV3O*DLg+Bnm``j$l(*
zQfRr>>1KMzR!I2QXdEt+xcVF>dai)Aijx*(8gDH!d)Yp$K3JUIksCMD0Lr)VZPPaY
zN|+aGNu8PtKiAmy##}~{F7T1hHtebdytkD_o}xGlfc!h*_<x>_!2dv5>J^}QGJD~$
z2UlW*+Uza1iQ9CsUa(QpvF%|WaS`wL(VsOwGv@`Do740+|6-Lxg!!PBWQS!|<xpF8
zo!=$8r_iW5=Dq>-lymq=RLWl{_2EFYAE-cXOuNR_<%B1_My&X at Eg#r&l*%iq`tVI|
zklgQxi){f3GI|Ii0^iQTfWXpQzl^NS_}7Qz#Y(9ngiza%hE)C0mQ$H0Yt`>!sf9s8
z0E3PTaE|VlUV&Z4e0W+xX`L5T3?wJ{Q3!+?ET8#j5Ola~pUwr9Ys``5*t%&CL4ub4
zQ}+d7|9YFdk5=7aZ18qJ6=!ae0!-1 at z&|+CGsBP^8YiEGkg<y>f}wt_6%NfgNG5B%
zEmClM2_CHfgP}fMicpz>V<cBI`>??vQukt-AT>@PEbz<lU9ceU)_K}JsQ=a+FzFIA
zYp_f02Hyj%d9 at Nobr@nk!!`-*pKYK1ZhlkQsT5u&mYX2A(wtjbUD2wbX#1kPK~50H
zUMU#W at T}gHTP-GX760}Ckiv$PX3cp$8851 at _PV<^>dKiKjG+rRNDTW+@{}ms_|N{+
zg<yS-uD~wW=>R at J!M{OL$$Di_+Mpls1DE3D(I>6+sDta_RQi7-Nt+Jhu%;mr(KM<-
zBU`L%T^%Uta{SWPN7kN at s`xEA`0y$dl8Y~7F+|6ZOK9NI0&uLkq}0U8InMOaw$u6X
zK2M2&%1hY6F4m6UTBXa(p}*<hNh={u_ek7%<w|0-i!4;3B-V-QzVXHJmz^<f$~Sdq
zECQuDc4669ZMT+QLxmGrraG-WG;yj3kTWtDQ&P(ZNC36w613$sFp`S_eOO5>GgDMA
zft$eQb4Qzw3)x+-8hnOT%6VZ622POkdo9q}vwgap$R4GTx#(U0OzEp#%NDM5OK%W+
zWMC%4J**X;h_*QTG5PE9;Y at ZRe5wuI<BKq|)*zn#PRiLv`c(J^X;D4*U1Zd5u|rX7
zfN--lL+c4=<iJLqrK=)#=2 at x}ejeITCKI+1rrip(L!}<OS|**e^F^59Yz?H_re~+^
z0<OLm^P>=h(Q+Y*K at CvX6~f|;U((WA^VnOc4+$yZ!tb&>Nq3|j`)|c$JOj!2Us~|w
z`Xv|7cR36A{AFh>%`(;*w+1A#pM6*NxL>w~H=EFE*0D+1P=Fjd(BU>&(w8b>7e&h6
z at v;oUviUB8+UN!)z$UE3#n)B_?O71L=BYHvH03f%%-AY5h}z9sH5hQ&l<wh?4%!_!
z1B)qu90EHc79$c+P~ta7PR+$2f?6Uwp96q0oSj4_84b&RM&RR=GymB^jK;XRrZ&jF
z=C5M4M1jGj-mte}=e2i|Es!D3_S&73vcbEC6%MS;2<7$j>4@^|_`LizAOJ-jwGmO1
z5?{m$zL8`%f)zk3`V#jXt{+Q}Fl6@<g<&kWmP at -DI)SQNH`N5D6Ota(UV*JajCL#c
zMFzuO?()@t1HG|Qi({!!k*hLNExYvhtV)DV38iT}vU~@iW`_?i$~SGD-h>YFa0V=Q
z>GhFN&wckZ`Qog2%2M~^5VQYe|5kzj?i6NC7Ca at vm1m+8BsWy$-4}7$DcHR{eMF`_
z!=gC)^DCUvz4!lL*(yvv121}a-fC+E&4((#BeX at LhwRxdJOK;YqGsm%U45w&Pt=hT
zS->D0ICPM(9{+Xlh$T!wz1k(7;k)tSny5gLSpNOva0;A3xm||fL{pUf@$ei->rhlD
z{xsZJsr;H*F at +{9ei6v7ov##6xh&uMD~-*?Z?i9Hgb{f5VxBjLpK!- at wI|mEHi6Q*
z)XVR+%H%%U5d)lgvO>z>3c9P(l`6YTQW7DvMf`*5>oI1KJ4EF(S7`-iUAAv?aPK at s
z!ON=6ZIQAtj2W4AWVej3#x>Vn91F%Hc)z(=y6iWwV89}2W%gf!K>PHlZ6TG+-hSYv
zZSpLrC?~2VK=i?YXF>H)>w{41iqoT5l^~$Afi$BLq)Ihtnkb9_92)8tmPWt2Oe~FI
z6A!x3s?3rvEf0=Fz$i5Q&s4oD`&Qta*_(t$N&l_B9nq at C!9b0}7>Y>!s--~SHVPrU
zlKbXy2pNg2$;2~s?@715HmW){IG<??{O+|oj%L&X{hgQ^Es=FoV_DxkL%$Rma2E#T
zQHnic5oDhheHz6HHc%)u_0B?o;@d(ebakWbZ{<iMC<}SVfM#)?H9W at 9I2C=(H%QwU
zvHDcI`6~|hg}%Fg)Gk_xjfLa;7i)tDld5J|?D9M=1$oM)$;oP$LMb(FKV-*0(0%{?
zDNM^))7oJCL;Frt-&b}T*PF9fCJhc9?8*O+j(_XtYiHaOZ4fOka+2KBXE?!N>*G{b
zK}+752~08vq3uA8IDN{<5&0D-k>I)8`I`a<8yO+Z?w4E#o?`=uw+GuuSZN)fC at oUP
z&vCyCV~JgKNQZX at HP4M9@t+C)0bf<+?vB5;OV0{A835);1I*z)?qCD({wX_wcd6-t
z50%qMOpg_+8oQQ#Ork?kL_Ty!jHj!_TpLJKZPad$Q=njeF8|eNz4GhfO-lsKOZG<L
zb at 1-w#Mc&o3h8LTFu(S~FU at d*-V~fbo;)*lK3lkhZS=>c;=QV9)Va;ky5d^XI4AK5
zbt))_(a>-zU87l5M)<RfCSlr$mM2X<p6eS`^Z;N-2yQmvx~i`fl3%=;jX*6QhHZr3
zayTX25;?Wm at pHhc5r&eAUM%m2NZ#^h**#y`J?&Ff8`3R<fgO$q)7=)PmU(E>A&$y}
zQl23g^!zN at S-8c^#873Jo{(81)%_&?*B)zAvYK$)$#6P4v}rb&f$u*W#c^QD45U%t
zznXHb_9XqHm)n#|<oV`yFeS8#ToL-NBgEyR at +jPu<!sb^LNTrh#66tiBFhS=LGM2I
z at s_jgo9S@|<cjb{DWln-ry)mjm~~4SyGC>oHsUGl+wC5ZGuQ<QkA2(LqeGKC4bM2L
zT=@g{klZn`sNbrI`#_SO$i{u-AtpRZzt&T0kJ1jwBEQ=-mKY1f9g&P8B(0f>T?#p;
z;gSYA5tvu{NEZn!KPYa;Q;TDo16v|x7X47w6^lB_gj7jI-IGlktn{f#vsqQ9pS+Dx
z7TZ=|kSsA|LC$K)AZGoklm<4^Y3-s7#`s1Z5Z+m?&ro3)f826)jRNjXtS{^O_G9vQ
z9rGn_64~|gf+;l~b(itKk|SF~kJMUrgb!OD<9s!@I;871l#7R&?IQiq1Np>>I?on2
zdJ3VBKhyFFd$5I_f>()~@HXTj970;74lPW$2g6HC3H-vZJsYkq2%>g)s14toS-$nm
zygy77U%?D+t=-~qETEq`cDlk$*xw+85T)7Vf?`m7xTr94+LM5UwD42O^uYr#%ew?|
z#_WalZo7~Q@)yI%1IH?6*3VY2BrtYIWi>uio!S@<t3%0oI7i4U=m-uhoNw(3 at o@kd
zhESfhDQ#Nx`4Z8UC)kTl0IiNt{Io`uaXaUnJQQ<rLA6mK3H<P%U>1x^tbx(^*$ya=
zpcUg7MfRqu?T}X-8b}<*^2#}=_VtLW;@ZwG;5&_d3APa+n4kj0#I2`T;nLH;dm%)r
z1kp?W4`6`rsF<)-R_=hIOh(F at nP{{M%u;VSmn7FNz-n*qbru|*(X1g{3w_Jd#3P at A
z0rK;v9DH0Ygz~-Hzd~;|okI-QECa>?p)_dv56bR^65qE_opGd}l&dSm5&(e5)Px&e
zE*#jEwu=qGyvdz$0 at 0BX+eaKyO&V8nb=X9!A?X}*^@g8M6AZoG at ji!jX@<iG?3E8E
z#Td#G#|u#6xPXgre=&UTPum3{FQY>MC{)R&*<w?kp_#9OAeHn$Kg)aqMH|bx&;1bO
zoS`M#7niovOqudK4VA)Fp<d{>KgtDoZDH=)h3}m}^hRDE{~%M)35$!098&FtAs!%O
zf5>HNZ{y#KOg;{kDHOGxg!Pk`LzF*4dPTqy?u1rc1<^1n?*8~^6(<huTC$9o13 at Yw
zD<vsjA*Kli7Vd*~ULvOvvp5%+7$rt`sbAQM0z8(DacPN&Yb_Vh%)a!e)YXAWxj`|R
zgctPkU&Jva*OnzpM1xkbY)Wlu%xWDl&9s(l?!dx5Z)}Xw+8DZx$uulsl`6QEK);0$
z_Qs50pni#f-%W5$bhd&Lx at ycVL6wYGLHmF$ggT^{Hog9j{k4L=(R}9cjvSf01uI>D
zb#}g1Lbt at nMAD7-0PWN_eLjXD*LScNV!-q}V)Y2X(3RoN=;doJ`Y7z!wVU4dM4_h%
zv*S;RU_yIYeEH@|e7V)4RX at wOO@kD!Ex4aJy8ddxxKj8Mtcz_Wk3eQ1mH)f}9Y|+g
zAkzR5A2unw9sxzzgOq(faE17_AtR43RPu76m{=8jXYmv87kkexlcS;_kgnYbRFCq8
zxDJ}Cr5?=TxF;e4#X(JkoQ9E&C77E#f8^S=Ud?Ywc{rh>H*Cy*!=(@n#eDeY-p&!q
z!_GUB%hs3&E at IWhy3W~Ycg>g&85QCUB;__NPyyDMW?TDZx?V1-8H|hkMB7iNx^9Q;
z4q{gJgLRd*{U$yP!%9WMf@<5U{+a}NtSZ5muj)zW)<^DiI8`xpsbz-8J^LUk?J*I=
zYU;QK!W_9-Ie+Vzog0S%6gej-3Nebjl*NjCGXBiCCy;W?mrfX655Jejt>#e$39G4+
zaKaNOxe6VwL8yrx<jUOJu06|Fx)Q|{VanUO3rUtL4plb+)MbU(euj54-1J(nm=a6I
z7hNu=?`;aTdca=2m$0A~JM6pSdPyVvi<DQ-l`keiH|1>Y$g_-{6|YK?j&_U?iD?Ox
z2LpFDsHv&KTU<pdG}k*uMd+?p3~zfF^LR8AUHhK9S6tNbbQh|ujq97~^qm!!*t-8$
z-R)CP!%=axQi-mQYiv;qf5de*WGY62g{(kKRmKuKgxOj4RJHQsEqSz`(r#6gC!$uq
zzIt~;mtS&y`G6Lg7yR3Zw4LUJYI~}w!DDf#cpz2S&p%Vku<h>ao9RXIO)hUfI}xjL
zN>qzs>$164Ug{GU5UO;7vm<*HRNTo9XX<*QT)muiIzO%)HYH00EyZKu*R-t~@uLoe
zr~j}(_7~UqkxN^=pZWk-A*dlg7dlw^z<XO~Fx2uo1)d+3lfAksNc!_TN%|jfFuH^9
zqXtuuqHH?HDf94TtevtQ^ll^a)`)_6GNx%3d^uOhHzF<3VV|%!T+|JPMqZ9^X;oMJ
z&m|`CbRz(BxYJPdT3CX>G^(y$BJ0W)LDX@%`ELJBm9g=ipc0|zjD(QGcY+?-EcD2F
zy%-^lG?Yc$kzG0$U7;2W5(<Rv%{$0wml|K9_NPZT_3Rpi9ZGa;I!cCD>b;9UWSC$-
zd^??~IEqMZf=E5EsV4jRc5!L)U|Lut_kmC)HC^^&blQR6jv#rW6&gMA^aV$f7H4c2
z7S>!23RBX54Pfm<aP41RekDqGJ#p0X>FYE+{uD=jV(?VDRaNP~l*hNZ+x7oE(K`}P
z`SQM at 0gipkOzph8R4YT!z$2l^xgQF$AKra?mT}FxHovhkwp2d_!1Cf}?kb)On+0i&
zO7>Mr;cWc!nRPB+MDk5iS2~rNg!u3uw5qH&pA&`WdNNTd1YfNXB-mq^0WLIr-$`h+
zh+K>!$IT1ioMYxvUl1x*sORW=rh?^zxu*TrBZV=ms7K`{PQP`hoTFisCsuCE$<9fN
zulcIqUeo&KzJ`qFsThe(7ZsAG6lI?so%CNh*Npe%QQ_5hE|_0LX-wmWspOh27cGv`
z%|{I3`i^H_2&E==Qh9O&*#ReGRKy#}+1#cUr{LG`!k7}L at tF*F46K~O*Qe^4-!S63
z4*$=V6W<l&Mjkx|lqzb{xy at ak(Zj0rsHf|UVd#z3Pz?T`d at Z`pqS?tYh&S%S=vMTv
zGyb`xR5H26Y9!Ftk7yWBtT83r{%uf|dtY>*UHDEMxa<vUhr)eAM94I-jU;VvT%Z%X
z9uzpg8p^c-Kt7ShR+5yo*6qUA87BR@%dfnh%f$#v(X%4_r=M+KcRJK~VcpwLK%uV7
zCY8Zp3n<h+Y_78ct(2Ki>~6ilsqUp at +*E@$?1=vBy?o^zzq*wNvceCi)wNlO*$1RT
z?@NrCfnDZLyYtW6q!CS)tZKFb(TvQnAG$cB+iD-7 at yas-RpWrafEf+-TE1pBWK{&2
z at w9;q1VY>-6 at kXky)AsK+o-z3ED=;_Lw!JEZItMZ<@cEL&nMTbDV;P1Eda$yxD5C2
zaQ&e=1SePGcK0CVwB<@2dbn~80n2amasXZ-;b0Dm5*gQ5MI{iYx3OmWP)XEl;u8vH
zWPf3%aTl~Ge$|*@s<g^VufZew#2&x5?L1M1ifDZ)H<!#Mua0n$M^Wmrf<AphyM$1Y
z(b<9ZWj9g|M%89xDR&1X`b5Mx-h!gwssGVXXHL^FNdCK&YV!in<0k$l^;_WqkN}@W
zGaGBnD&;onq081P&Vr_|*NU8f{{F+V{AlEm{|1AlX`r3H8n4arAqU={NX<{F3($On
z6ANEQ{f0QpG^-%F>f=k9w!}=7XnXukEm7L{7H;Ym_`3>U{Oz4HA709p3Gl?h;Mqk2
z{a$}cvIlUqjub{YDd6oIvlieBi~ap_&S=Ir#9bf5tvfk5)Q;XfziOwi`d|_oSO4q;
z+Jj8d#p&t?7^;l7R`ClsMrRL<+$RYGZEVY)=_I_Hdb;ZLba_i??;m`Z1s7qrqjV-c
z22FiAGdJ<{TMjOZ9xs9*x3Ra{YTfB1Ax=C`|9Q)x8m(;w;}te>#eGAHp85~uJ7?>z
z<Yum+Ue5HwFmj><y6B)tyw!mFmo4O*vRQz6zS|r$=!Aop5(yHywGDr93 at zaVcNA=x
z9XokxVYxq`y!Q~iq(v$OFzZyxu*<yKusvMJR0Ohy9MW8=5f9&eG+}9oP+w5;UN8N9
z<?19?byLIxz|!^6*E-s+-58kVu1~auZG{>Fu6<vXG_1n@=ehJtR0Sd4bM-U9czYf0
zue}F>c{wmTiTjvTGt#Kvvujm`((QS`HB~E;D>MU6ECYR}AxME9OGN7w^n4VM!I+KQ
zhRkrtd7PKRUuM`cNQUPIC&bcpYM^im%N|UE%}I|KyPwd9sRN-U@#yP`Iq5v1do&K!
zBHt#{I0sl^yz4z2<iG&e0v9RuQYg(~2MXwE9$N-dQe#$O*gz{q%;yyPEF$D;B86a1
z!7Z_sE>g=Q4t=G)4uX`nkn2UJ(_CKrNkCnKgrwdZ_caSLdg*lz^j9jY4iSogMbkfT
ztYKk8yDum7_x|U{7*95T)>N730}a2k1T$TAV$V|!QSdpZzCW|Kh4yR<*gLvJ1<Ni|
zg{$#r>M+xiAF^`OpYbis^gQsea3-9vl8sR6a{(Y6e1d7V9glUgl-E%D3v%i#VJnCF
zj`DqD at 4GmtB^3>dyxrv9heVk#+~V|wh|7}QUXVqKF#j>L>&|0i_yqQDk%xrnCQ5BE
z02pF=BB`8 at L3^0a!v<7I<Hm^t)`_;@?_g?JhWZs3Q|dk18P|2i*5Qo0_s)0wBC94s
z7*Jv~uV2nSDF58i5fEXup1_nAER at F9vM96brwT`JH5NJKKx?M>S*0O&&`5~Plukas
zxB;*~R0pR+WhT+c-^#cfq*zAk)wz_Nc_4?=5y;9==_q>_?8ANLP6Pnl8+Sf$xaZ;m
zbPISaUfP+Lzc6{k%^UU!LoxZK<eWFJ@{x&6r0xaOjEEcQ08)t>W}06Uj{irCqH+n6
ztGN0nrzH_mqha=m%d9;~$LNWT2+Sa_+SkIye<5i&)Iv<61|%EFUt2;01a-;!hT#y4
zgblIg-`P0ZroKz_Yn;oy!RZi;r6p*Jhu7k55gBdDtDB>j-`zAe9rbOVV5lCdo8JZW
zz|PxU_zT6&;0A$*N<&zN9iyxoz4c}O%;;UsLfV^P#to^tnpdi^CtPX0z)-a*2*-pa
zNx&i^Dvoio8bTStkZRfM!2FYAczv{vgRF->QHMB=@oDLpm1ixen0guuV{@&WFCt%_
zjq=1VjCYD)Wy*)_(+_e4{($e{Pf?+`Mm~&}&H7d$b*`Ov2nKT)Y|A5(l}{C|Q10~B
z+z*~I#`~I7o$j$lr#N!za`!k*37Q48$nm5gZT$w+sR{ZUBu7Ki!Ru4~xbBCaL#FY9
z!CX$au|<7hckT{*B|u#HCZzdVS4EBE9^5?CmH6co5o`LQ>1ANe$>b2m)Db;fc_qKn
z!G7*Hu+~e4Ix}-wV9?cbaRc)(9%h&ZVeGDVnOdQa?k`GL9v@~K!DGJRwG%FZe2Llj
zwa__9OKA;bPtyszR=Px^*hQUz$2t9y$*KnonA{6YzYz+MgGLPkPh7OX-U}tLK)#v$
zj8(b%tw(a91@@_cq2Lvh`nk!{zd`_x(G5HgG7i_aFLUY9kZra8bO+NZYl(reAqRA=
zk)7DcUkMbX*#%{?-JmP3*>=IOd<}EACpBs60^sf0gt~qq{E}BeC|Ed=QQVrpuSgd@
z6pAK;CbMhg%1VaUyOEf2m5yzxJY`9i>nSZTOn(^nI@;VqKn?F=wcI7#KaoVgoG+Vn
zc5#&}H!*AZdk``~MKXVUjrw+jp1d_2i!Kv1sk)2EqeX3ezCj0UEy9vGVW`%_YGTg+
zxBYuxC|^#%O)Eiftxm<twruD~c1pTS(!ER25~fIfkH>bSm2WuGrh5otT(uoDNcrC%
z6s%o*Yn^~}&EJ|qAFb5o()31i!DS$JKwm+;4gJ=XjiWpYqIV)Yhf#ipB|>3$HwrN8
zc)r5NQ!$8LOoc?ua^F3(z$iD#sxVN0QWT?UCC4bptf-*4X)&?`4Z^y8)Ew!8qf;$}
z)kq};2p-ZrlgbsJ!X&qT&ct`;0zw*EqPrc}Bb5~K79y%9dvF_7=5UHGz5V@*HK}_*
zM|RTnEWPE*Lv3hVkM!yU_;2V6eSL$^$@9$qy^C5}LwpdZcgTv9<3jGIhQ)8Qcbg5*
zWheKw`tTgZkwEk>bk=reT+1ARbWLEBs`<gOXlyc=69$4oZ|y}W at aR$SfBF#b54_FT
z|3ZAXx!&`8Jjg_(kV3td_%G7Hx1#9$u|5fU3DX{e4ZXrHO~bYrBg`?py~czviw2ie
z_MYL1-{`n%v4Cl^M?UBFeY08V%(}igBKl0}t5NasP6m<&{l*_N5BQdOc<S!eEw&nZ
z?1~N0e*7XB_e0YeNCN76b1ZmJakx`%D(k~piGslm_kgJI+NFp_C{eYs1OQ7~EKWP(
zk7c|HLW*DVaYrZwXL at WQYZZ{VZAnK*5%XhFK(yZscxOX!u)09;h`v%Z-p1`}TqU+p
zYxRM~#SQX_H(pE4yvoH+lppb%Bt#LG?4v~jOdY}kyku5=VQFD%9BQD1AGx&f!|Tj1
zh8ZR5kWwTx>k10i!Ddh#1egoaCV*lhNO(E&JtuG^b=L#F3DoGu1^)?#%tKe&5yF_z
zdIe42Hb^Axvc%-Q{_&DZHzvqh5<7t*-i-T(0g{v~JUP%;igjZ{``51bJK0ib^|w=n
zx$UPsh|Xfiw2<ggC(|EZ4ax1P%- at tDnv8xA-{-b0&%W8F_ at Fc=n*I$s=MP at WV$RuP
zUUh3^DfW?=Kyg;_zxaf-obov(E(KAzV{$Tp)?8ZtO#olOU>q*dK?)3`R%H#6 at 3AwE
zH34=cP(R=X&S!pIi+XRif}k8mmW6URnAxn<E%h(b{w7BmQe&oJu_u$vi4WIHmD9li
zbIHsy)AbqaN7?+45hK(IDE7<WOgx-Ypo?Dq at BaXz3t((S6Ed`1vj6Y)yv{ST{*Fv#
zoztHC2`va>2=X`vv=kPx&QEk;pzT3E+e`Tuw?D~-%Z8u}9G7vMSczzzo~6f}QBgUs
ze$dF<uTKfW at DU-~x0^Kk_yPdf9vm`%&2LYwl0Mm_f;M191$Bv9pA0gjkaiZ`(kENZ
zboF$?w|imW`3=x2KV~+;EDx5)X1ED#v!*!&POT5HXEVgOT3Ow-w~m4vQfr`QAtevk
znLR*YrU-OgOtgg at wUwN-N+R`_*6TGG>85X?4z;ayGwJ%wz!Mkiu0E$dMhF-FJk9Mr
zbSqCW^Dx6F>>vq{mh>y+W9`%mF&P}v_H4#)@X)$>kbM>s!kH{7rATvo0*UD?2)GS0
zr*#p3U&7Lv(-%^B1jT|$iqC5 at lc|ixCB|g*A7q|(fWI;8@=yuka}eHxUx0*daT^rT
zH?u(Bx%(V;qzxZIY8QNxd`1Gk at M0&`Ho4_14R9eGPekQFUr%o5-n`;MGQrK%**PNl
zf;fizE;R9 at -?3^+;go)OHx2I4g2ygkXN2Kaq;9cDHgP|6WIecEwT00y+H6Dcz&lNV
zKi<f(v%C%`Tg-EP&oUQJXFzU|w4i^<h=w?3Iq#tvxSUF)&F;@Sa at zYntvm2+QZC!9
zrEBhpe9SjP{mhD1W)0AuY7O-?3&(oc_Sn(?fhU*__kEB$SKey0R$W2{b|U3TQ5G(w
zg}ij(FjD?G1=_jWV{k|U_=U5_hmh5PT)cak{OGlDOeQXOel7Abc3EyPY*EX4;t_<C
zzClBxRfpeL%LAwMIE^Q-QBt%U at q%Gy&n at i`8A+K0e}u0F_iZch*G5M at CCGJc<FrMh
zP4 at _y40aBxuo!1ECv*)veCMs=IldNJvMxmvX&~8=T7f*bXXL<@!!^U at -_2?&c19pc
zp$N?cJcG)H!J5O>fy^H$aJwBoLq;#Z;pX{wP0TG8&XVK-VfM)=WBKz!%lgu?RwZG=
zNNrDziqdz;%joi)d7Dka(c0#q$jKG`0Y%tU`|xp+53s7-N$MB8-Blv()IB^j!eI9}
zUKh=zm)aZUjY&&olvR_II_u}(4hYao!@+aP2sNlQlDM;>rh(O}9JLt}j&nroH)!Lg
zhL;7?*E54XhbcAliTYu}9JTV26Xx}Ue&<h`2%Bm-YrqnUgVh=Ktj~odw!LS5O9sI^
zM#j!-n3N=Wx&UaerZ0mjubqJFt=D4b?0^=ImKh;C-k(IXgLqJ!@{%Z1C=s0?45IZ$
z%T;52YR_ctS$!9!X}C)y6H{ZXC0lG6PmFy;AjqkJ5CzlFUNS$p`-^<-Kn=X{ye1xq
zSRB8U4FlE$lmHU)4Y?i7b!anrWu_cc^doRHq!bSUB$__$oyclw>p;DYn6_Q|t)1Ok
zEu#Nn&^L%3 at x<gJ%Li!x7)g^Hq4(YS)%B<-^;RWflVm|eM<nAi(MPz+%$xw&dTFxI
zL^m67nA1u0A3~4i2cmsE!E<Nza9bCbOT2p!h&Ee2!RAn33tQhdqIQz!t^4b_zF)WB
z`{xFt2A?NWg#h2x31wU2UE~Rz%vj%s|HmV at 6>U^qsRO!`dr`KD#W7paDq8Z3wPqU!
z6zv-@(FhbgyAK$_(3{2;>l8!=@s6k_isx=WUc2RV^9XRv=W(LnD1hexQP<MN31fbU
zuIf*x4oZVYm^)<o&Am53+9qhAR=F=X`ZX`?=~ehCeIL307enk{m1>*Fn+Qtc1Tbcu
zwv^MaIkMM#7DACy9u+<1W+|x_v;MyArv_RvO<7)hXW1tjNcp2tWfec?z{eJ}td0zv
z<A(+y8U)}}h3tSP7=7SssJa)`04y4b0h+_N693l(pV)NkfGf}gN at 7j8C@7HxzBf$W
zMxnAO3q=2sGh_fdvwo*7wc=D%!Cz(XSa{FDMdilaI#l#2S(r4GW)s at Yti2bmnAX;@
z0{2`)o8<ebZ7KrDX at u+_s}9b(9F2bi^;F+EExyOJUyP#ru9#4O8y#_|^mHNPnzU7i
zT at DOp7=PIs%S4`m^Yf~N&_zmXNy1|3zj%&M&ooJ>MQ{*ru7+=R|6Fea??BQ~q$;%9
z=W at HYcRw6-h3*q-rKPCEDNx88li>*LKrp7ZsGNXu7;-o+ux3AEehVhAzF~vI)CU;W
z{r2(&ek~I}jE400yuH@}au!mzZX2Ep31f3ZE%e2hFk%>g_S)+b!as_OaI_a!mt+qF
zSOBvz5jIF)tRTSpj{h$fI$AsU)FF)Im$tCMtjNDFs+in0dTJ}#VAw25c2lS;GO^*M
zDcZ;XWv#){{`u}Ro6&r)41Al>D%k1ai`d>Sma&PkKKiD*l at yjo5XBWYXf5a=){}q-
zs-&XJee&T}8##Wgig9V_rL6m>JgmGx$hmr2t&r8%S_hJT8-Op-X_!wirYqwdf at Wxl
z1#2vtWGdM)FJp8p>e*X>{S{f0j~XE<xlHz%i?$zgm*KVg5<xGD%l%K-EW6XyoO`X*
z(|j)=h*HANAMC8uFpr+sJ at JbwCmjjG3DGYJ(a`TrTnFNyq~oC&lN5-4Oov(NR#T*s
zX}SgOtxS$VzVbGC at QwhnL^8osnXaywe%)tDJ1vq><$#0_=DadOT3j_({}#=@X2Ai5
z`j)=7PPW`|#8^k+(`^N#i~J$fPUA!B#eK{C+q{YWvoL%~vA3Vy;nDhN;v(uwNZ?Se
z8RntBs8Hj1#a$C at V*;9DLi at 1a&|O_>bE^_zPUvlRjnoaxJ%@Vi_J*3)g6S5(A$F>j
zF6sCUXhFlfEZWlD>HM6!N^xw%kTeDe;XUtwN<$45iwK2X(k#aJO!Jj)D26f){(k#(
z<})hQxZ%|PFf>=h0av}Hjg24Nf%S(V0XN=*UB3O$SYT$n)H#5NcW$1~ULE!nM1U)r
z1M}z6BJcWFP(dbY1n$LbD=%jAdzj<}MJ9q|)?(OF0d%g!Oy#phKjAe=;DqWZ2*)O3
zE)thRbse^topW0-q^%xv%*Gk<Y!rr3H at Z^e5=4#KAzPG-RH;&K23jA8<{?LxWnhA;
zAHU$$K~=+35VBd3u at U*8VhC|rA{Ph{K^p<ln-l_g91lrdOQv?~l1YNm3k-2#t7lNs
zK`pC09hv}DT8Gk^l<*{9iKomX3`tc+N`AoJ8L at v9>|)CHme#0)<N{~zCI%OF?ADD&
zbQc}tGvEu!MK{B8Ymu0k)unLaCXAr*fh8{}VvQeLwC=cVoJmfqh_yUy_wpHTo=R0W
zRm2=^G^rXLEZH1*baJ4j(T)Bg|2Muozj+p+E0PnjV>Y+9j)(}CCpLT)K&J#u*gzsT
z{ERT4ow}=3KFPA&KUYs-QbKgu%_oH!>xPtNLYRUqE+Syy^!pnyJrvR?0cY&&dg+n~
zbI<$1-MkA4cmq+*51s6jXQkrT$!LoabeaRBwJ||SFi!s#<m{oXny9_v)|mD4v|>{y
zHSFae at _yyTeC;MJ8clE?=+B;VGCK5pWGy+kyfw;5d^(4cXm<T4dn!2kg^W~(G=!FD
ztT9;tDiii-22i`hLl)UnuC$1spsAD4!z146-0lH7XO+2aZE0U5REO6}{+dyLo!O*C
zF<O&zCYTt-sUZ at vmSFBNoyc&aSe~4&of81yLkS5)$Wc+dg=`jvP!RL&MNQl+!{zwn
zBiTn9t~xBSbA|1Mh$%W9m*>e3SURzmv=FE#V|-6LFUjS=IP>|pw1Z9vzB<{0C`kBi
z%c-Ri&HxX}{M;pe`?#&cJ`4UnOOf}3qKLpo^#ORKsSfTE_<r7oeRdsYq}pEnrAtgh
zt<UpQpfTK1L at u=<D9<@V*u`+Tb<7B@=M2f;A!fApZ>(k|3F{oScTBUW^4SscW6d;5
zI}rxf>t4QW+^q#<vPKn|@bnR at g?PnT5IsuiWCBj5ty(qBJNpMYpBz04Y-rvz(-ESI
zVv~$ecnkQ8hmGr|a_oNJO>g#nYVcqykWuC_hH at FAmtPnixUu(MIX!9?%fM|wkSsrS
zZuGOQjVQPTAVd^(FF|$`ZWaek4t1L-JS5skSz{Z0y<>x~P^l+MV&fsky7`!s1pp at k
zak7Bg-!3)*()9kbAb$TFoa&x^6X}G0!sNSEYF at B<tPyPYH=rhaOT$wxQ_O`~hH~cL
zJe5#U$a-Yv9(BJrkS^!T0TzsakG8gID?S=Lt||lspe|hPb<P*s|J}Km&2Ihm;&lGR
zn_Qa$zejdmTWs at I4rm`!3BaC2VPM1>kbW*k#fa97F3p865-sX;!^M0{W2z#&=IMHE
zkrDRX&VL1rmR5L1e<N190Dz_Ja$8oX!_}Yw=j9mu<GF?wbaWHA3c6pSPs3(t<2}pY
z8y&PrqKchg3GmS{y%%&-WIAccz!RB<PJh<D#-I+9n;=#)a_N%FwOX&Y6Pas*=fU8i
zaQBUyVw-JXJkONu@<_lX&Vd(C-9Kho=uZ4=Ar&_PnCx|lBQ<;eYK1x at A?3o$JGC7M
zFcqu%n)J$&e&Vq9F`xyk50@;Hq}o*gln_Gv%>~a3IB=;I?Rpqirfk|Y_jTs|P&v<)
zj7vObZ#kr(&UxWkzWdM7k>nY5U*&UaY5wR65~?hsodb!o3c&@EB#t$ZTUPTeub+ya
zW=R}irigH>K_wbd=raB`ST_?P;#Qv at NdrN~*AQW}1E<5-x{*hOTFe3E)&$*+s4)rh
z4C$we{PdVkrQ|wJ5cI=stGKiak;LTPcEx*B>>ot2lca=LnS?m=D{F^4m~HR(lbQB8
z$YD(;srJf6;R`zA?F+pE{4n_|4lyUx&HNS%fOhCe)*q$WItXTO&OY<v#|dwGb-$1D
z)t+sfO*KScdypG>&+DJzlvh9>w2aFJF7f32ZQrsq`suLKSYnBSevm1c26_Yhz=W3-
znb*A-Y(Ds6P{nrwdHhY6pRCTtcQT(ht|iSRrXO()*jyf|NiV1bgF$6oo at h{B+NVJO
z*&NA#R1^~V7g_!CG2(Ac>aDQf!%;4d=)%*Tfo4BlrQ{H~6nfI9AS^XBD-_e?1Za=G
z*a{eKTmv}xqL^o=glgB at a8I_4j;78#y&yYg&_A}$dZkOh+TNnR<u6{#eTK8j`K>3H
zTa^;}wWTlt`gWip3|jupxiG(9NM|l97uqS8YyI{OgE)QpuexO|wraOIuTk6~F|mX7
zp=S>p6~f=J3BK#VRP)Hfg;$0Xh;SNjK%&hr-uH+fyb~s3dBNq&lptIy|6Cbd0Jj`&
z)%mbLwMKgk2x{65Q3(*dPdL&A%AHwmU2XDL3Mxurxe#j!_${(U3`S_9SFJ^e at Y>(W
z2D$3#nG2j<_W?(!UaDN)ohw?OEApoy at 5NuQS+KtKg7Q1K*iJ(X%Ydk4XdFE;xGPi*
zN<x4A9$>(+C-a8ep^-`v*l^yt7mz1jPJWt~yiKbyc-4rQ#sm7&`igpf_%%8my{gFr
zr2us1VtuUXCc{Jg(SZc}+Wy6q(F?f}<#4%7nD%uTK1B6G5CMWlGWBhU7~fY_Kzvw2
zO5I8zb(DCzBan(eFZW3;2qZpb->aJu&@8ZD5 at kfG{W)}8y*qUwLdp7Wg3nYsT-Aue
zT&h=6F0vK_$sfgfPWn`E2ew1<+qtNPyBu|j4mxrBJxUO$nq&AI`0Ba$-!s^!eyiMs
z)f%=t&Hh-LnC^JsDOP>e{Sd92id4?~*-Iach1!t^H3f(sr;4n2j=7ye(4;$ihj~V<
z{d^#G%BA19wVnn=g(`qS&7+3*GUWC|!3Oa$tg_d1jQrX<0e3|%$A at 7D!AkxqxGbVW
z6jzJl=dgb8e~Y}N(FX3zm0$ul&n#<$)HZ2aQ%X(Q=UgJ(JgxqtLiign3n76K=sF)J
z7n#qKJ_HD~E0e at W`E=3W{(sQA_LODDh2&Ra;xYAi|L9jlW<r12JmLs*MzyiE&8cgW
z825>-LYU=qO}mmi4l^n?GK=r!yEA79w4bUa(^Km?SUTu3fBswe>_LsBN|*=mT{$en
zwSY_6K$7gfiJ%VDsauPFGU9=Z-P-=TbW(Lruj;_qujwhFjqL(ZM11#({g(m!s~;Px
zHCL#6tY!fbGcD!~>^2ZQ<S5fO2^Z?IO8XY%YR0bbkb=2uocrXdRc;=<njjr9d0)Hp
zBpiq>XqJj7U4Sl!8I02-NkO-%D68)BAW+`9cZ%Z8SFUccDn;Bt_RjdP^-!!cT`id5
z1#|TP=88L?7tkGQN=jLaxgxCO6KdYu3Q*e2(4qhta^-+96m4{|SeU2<c5 at 0b@pNbu
z>1Gb(?@wMzaO?`<a39z^?zVm1JKZN*5(DB32yS0h_k0Y(1)Q7)c(f{9i$x|P-to+$
z!*u^j!mhSDa|inv5ZH%)cZgmSt~fWxk!0Z(w4Frc2Z=_qs?X^LRnF;UsC!1Gt7c@$
zSM$(c=l^20^Z7=Bg<+?6i1>^g=%@^4j6=3WG%MOC0(QiQKbCnd2fY_ at S~4pMx(d?*
zE1AFs13cQf=?l9m#}}_g#m!9*!%se|5<F#|fRaz*;x0 at 2;DA*VA&UM6KO~`86rw8!
zEJDcluDv2+*+tE+tqfMhaxczx3QpQ{Ob$c`O%?z_1ZMg0)pdYQOY{?2W>|YEoOG`1
zzIZ9}FczB6Up<$`zahK%NB_^crm%7Spd1go(yqw$0JTf6+m7#o^#u2-t&{ZvShRc*
z-<Pfqh(fT13Na}gS0!SKN24$ath&8bIWCkzE7}e5j2;$t^ja3Zn)<gx^VovxD5WHG
zH)ENB40>^ez}W8t+LTvyuvJh5q1caS3cRiV<qUuN$W}R at TzJ5QM1Z_sb_|(&GC<Bw
zzN-)Gl#k46|G=;jA!G0muexv(Rb2U?LAnK2N#S>npUG5p>;pHLh|}XvfCvc|e}+1s
zXzMQ?i>tGMWYqI8|9Z~{v<#0(rL*0<3L7oIl_D9wrIfhyW6Cjpz(p^{&%t3q?d+l)
zqZ+^9Ww>T;l=W3&`wMiUrXns)u@}tvGQnS5oUm~>kW}HZ7 at k;~F_bK&g}^Sz&9JkD
zsoJcOTJ_2gs!Li_G77e$JYuT}zdzD*YXyp?VbSMpy3o+4`5lt_DPipu`d)(z<@I37
zCi9#`NWV0(^fSs7QL})QTN4~CmUzdoPtaqlbyRFg{Aj}6`iww6F*$s;1(^O}uScw@
z_q${m+=)TW67>{b^%NaZrCa|W-^+L(H$^cJlmWna{KSD1%JQUwTqPwOtAe=?Al)z~
z|4X06p+ at sC>X&Cl098FJ5RqE7kHr}DCznD&`ipxZgl&)%M~5-8MX#c)PNgC)%zZg=
zjaIK1dn{IDySz2zppH&%W#R6!@+|YP#COxbOWXUNG2RL7EX|d1D=Wyb2ogk_!6deO
zGl%c%-bnst<)+;J+eE-f at Z}xVm3!G1nFTi$Bpo8T7BoAKb8{|EW+NR}(&MJqn0j08
zO<NJHb|UA1TqQrZagpG|2!SDVhV_b)1d+P;oXy7$C?_Dpx<a6-8&`GZB0 at 3b_k0;&
z0Eod;6-WEk8eFHIY3s at iuarL^O+mn-D?{YqbeoA|*1GF{WDPh%VV?*KoLCFW6wP(@
z6plLS*YbsZMN<;>KA#FA(c at f4?CCo(4NO+OjpyF%ntgEc_ElZWIg&EZJ3LBYak;Ca
z;!#P~`VB{(E$|(R4%In*&I})a%v5?>j6d>Pu2DX4vncrDeTu8U<r5@<y4`P!_SP+C
zzT;~Cq2?uvK}&l+-#ct+YJG`5(Ds@>HIAd9Nm-x^G0P1GO^<UToi4BJ{rv4<9oXXK
zX2+R~s)~?7mJZ&$Wa?a@!|~=E>Ga=1zc47Nz}MF93?-aPXtJ$pFj9ECn$r?77ZZmh
zY3-7a*ylc&WH0cS4okftr`7scrYvRB1f01s4X=(Xg={WVZNaSZF_T_wnK&Ck;EhXX
z9?U75vf7nXL7e5S5#<rd7rC+{)A^8oF4FcZiEZ+?Jz|+AfA=XF0PW<c3WdJQU+`(^
zr$dA4PdKra2a9JP3Z#uy=aTw_A~)A??gcG{-6BL&o$lJb5QjY}G|xUj*nS!Tz0we;
zCnd7NSz?uaIIlq*HK3evR)>iB!0DFB9ojU1*ITLa*vfqYm4 at LoN0Td#xo%F(4aRT2
zbR^kxFSn(Ip*{H3O;b>5uqI6{VP}sGlKw6ILC<W7A^FWP2BD&<q>qj0jYLPT9bC)!
zvnJL@!SF%-iad3kA`m74<`fXfEV#^gdOo)4)z$q^ZD-Iy2CViBljs?^f3c=P0 at rrt
zB|gOU28K5mJn?bbF46EB3 at 4Iv2I`?lgfjL41)ellYagt>eInKOMYE2S+R)YB>_kZN
zLLf$d!34*OO9Leth)tXfR at D4;wd2R~<H^E7<2<MMK1qI{CTnPd48|nyI|r#gg{IWR
z`Z``j61NtPlGK>}GVN!i7Lg~nTz*1WX at d)~aBGZ(3sry0AusHCq=T<;)~Ni~03K49
zl=?s=pfDP~8p^v!D-9%&&a8FFC;ZFhQ(qZiq1WG_4aW7Nq{296NYX_U3cRik0-?;i
z)gs>@pZNP?tVGmxTGX?HIwd6LC3D2`wwoMzF&t}*mH)9c*={iKZE=414XUK=LHdpz
zL5XLGjk-_ at XD}{Wa2ZKhZm;4wX}nA#Nz!Ip%=Xdo5k0i|(b2S=LWHZtBXutk0{oeA
z%n%$(#w{lYF at b-~)-_p97IWu^6M#9VmWZ<-(f}sZTxY<yrH2&UO<FFtc<dkGxJ_*+
zux at dctrl^$n*t;%?H7o at ulqP979(rwiV^2~sJ|bK6AqnunMh2Vof9U99t01KP=w=E
z3AjC1i<(V#=<QV$w(ttGD}~E;Wjabg1o;MEpfmMVp+Hzghs;|^N{Fi(n*)iK$u2G%
z92(<|@m4R?LAmgQ*4uVwzQC-HNV{(Hg90vIYbsccf3Gmi7OVrGrb?hm)tc5%aznCV
zV5>~wkm{JAJ4uw%NpQo!5!&)$X`|fR){crVn4qP>hc at t-un{WZwD^I?A$R#+bs@)+
zjxOSX1NU6`XdhST`jXv`;8P<c${oS?D6qKLF at y_-4&yi^5M_N6%~>wUkMgpXZ(MJ=
z`P9^hFY^6U3TpUl<}dN`uU}E$*o+VG>WYK9v-IVa+H-E^+7`G-VcZvF-Fn1F>Kq4l
zkBA$Zc!OYZ)bMb99u!uG^crYvI(PAt#u|UXlL6f&b=NYHx1z4lo_Kycp2muPh7G^}
zEE8sk0eK^g{PfGOF?O)@55uQ$ElE%TdpOaKIntw8(ov^1vn>$L^vl#=6_|voMnM1`
zcm7c3aTns at -+bMJ3M~XC)sOyvR^yNh)F=j~%=-^5 at Fon0S6=L9)TsewgG*rG#SYnA
zM2{_BjFs*SOF4!TJKNQ5Aup%QWhAGRKdJdf%f<K#+bILQ8Doz&v}f+15Al~22!~0B
zU`}HN8h{LWpTXVjrLmG-TG_3iSz=RKH)pfCk~2~=nlj7uU4d4Mr9i01-NXx)NbjX*
zH15gzui9g$J8eN`fz`R#_ at S(H^Ca}F|Gwm+*@ydDC~&DdR0*)AU{}&_m8BEmYg>K$
zWAy)S49GIDwCa^rgFF_;h%j`^Ms!9rF?gd8bW?9IUbH7v_(Fa}hm*I~1~*ZyTY%k`
zibjYYB)^5SPyc6R_IR$GKh(d5`gow|Vd1;4<3o_}>~fot5PI?Ap2*U5EC!=<f!EW~
zbfpZHEuo}f)I`M*6w=Ti7>?1^>^&Q|yz6Baj0o5i6V>{)%n<Z at 9Wy5o;{#N%o)Eq-
z%BBH3=tGBMg^tsi%?RZDG0zPNuSlvuJ4ckUupru?Ik6JH*RJIhHxtFFWsqt-T9Ce3
z*AKcD;6fY?mP!AZFm)z0V2m~EFES;7puX<h3>{yg at g?O(*0e}IuC&vA@{>9gfG;IC
zG^N>ZFCFqkuv*QfJ)~feHu0&CHprX%HTzEd=R#L(UP>w>$_9Qh$L%2cd1l_n^NRCn
zDeZ5rP)E`fH_>tc8L|2kyFz>E4qQvsz}*R&ouJZnxm47!rUm=y!$GlcZ5p6xGnZQX
z at cWwElyeUtwVQ%9+ZEm*a&kJb2tTk9_c`%<kV54L*bPJ?C*6}KBB|BI7-TeX at mJfz
z8g^h{!x3kxbt&pj5oITtHIH at 4f>&^8RQ;+TQDC6hlV3XTbc_NUfXY(fw@#VE#O<uD
z%v)!E?iL(8{Sp*$$#e%xpqZt6jgsetzMfEJQKJ4zu`YgedU7^QIPQtTr{%TZiqKTf
z6vGo7qO18!pOqPf(29l~41(^wqIzkG;ZdQ&&X6Xf*{g^@L|LN%o%cODCa}zeo)msp
z#K8k95#Myelu>lKH}CHNu|tqB)c~ZLYW27~=D?-y`>kyKZGM})ItQil$(8frOLwFC
zsiAJ(8w|pW7O*l1qDe#Yc0Wd9fSHKn1+l*8)&UdlU8E)^qB)w`v8_R%&m;cJ0Y)dZ
z+@~K*_9}4CeEGbL+Auz*?f)$0RL?}-Mm;@#9JSTN^z{IuSP+Di+xRX at Q`ii%`eeEK
zr|m?*-OsHT9fBmovZrdXj6HBaGQQF;GNiIV;rGRclq(_Nkty0G>!XSc7_I8Q at TIj6
zs>Wn^AbzG;4~+`09 at Dp+Zv?zoLjs9n_wB>hOq=v|ycD{vj2z)$gC{`pm=L--yJ$Ig
z{5?6L^0B1fPkS262ojzDJ^L7r3gP`j{;85J0UoA;=HB5JL>J^LT_%9I=k+Dg<bsxB
zv>Tn?B?hS9Rx^|Y6H2<?w7SU3MH|bGV6`KuNNl{W>)2f#vu7Q~kRwAFIMilG#@6~p
z{?7A!DPKDage_WzQSr$_WU?Y$sP02^zc<jp;SItu^H+KPopJ?-p4rYF&i}Ww1;``|
zZ1dW19r at in{TKi`bF5`A^()Q^a0^FK1K`ILs%&~Llz(T{JGq;RzOt(9K6CPmNkWgZ
z!EC;9JTNfa662gQYBV1?ad(7hZU>|p`{;#Jhl4wx at p`lvLfqYrz%h8+Iwe?%TmaFU
z_~Mn|>Ct2ST=yyBT|U|E#-IQM%EsP9^Cd1AqWx^uX^+v<jK?|hy+ahl3uF=phRr#`
z&aYHHklox`HUl|4!XJ6x$BziOIoH at WaPEt|$Uw6_PzJ&N(w62N4AN?*GPfyLs${+{
zw9?m at 2EbDoybeq{z%G{Om<*)cKpz#|OzWUs7Q(LC`EZIT7vLb27%nge6!bW~A2G4x
z4xA`eb55Y*2-h71f;B%J4W=uG5Upc}*_nOAoip-^!6<l_jaML`N)8b4AeX^66cDZC
zw1J8s(a~uS$t}nFtQ#EV+-^~Rz~(4kn$3H4;4fOpWM`ITgGrvqC60#ciL3r9;nr}M
z=|UQ2r8$8E at wSxrsHWYzVT1RwAM;B at Bq86rgTGa777N5$yKSJ>2&+%(y9VOyF03pn
zZu}Dm;2sK at 9d&NlA(V-E&g$Xe7E|BEJIb|)UO9;!qP^nPFb$m-{~npDdG8NZ9(K8%
z-~?YFzzh+bo%iZ6eX1Z>FC!>5&Ew}<t7U4CLGEkV5i6AXAIE)?%u<-8l_}Zh)bz*`
zf`#pfwq=}UBdLS_MZpw{8_d7KgXY!W^8fy5+XTpnB&T_A at Kw^yGS=*VU$pg%g4|V!
zOX|HC<~uEAHhK*qt)~;OSthA;(Mi7>N5i+45bMv$vR1M`UchZzUU59AO;Bm!TK6AD
zn$h}NJ(t>ksm;-QFa$?&8wy;_^q2TxL^<c+4IIhQM*txC6mBc<!bEKamn7kLJrN!w
z7Z&$+zW#u5e_n2!D=TtT#2DJPx~C`MzBN^^O_SFv$4)E~O5jkwL?i3glUyqJMM*>`
z(;n0w at nMzc<PMj3jepm{+{qvejO5K-fpq@?0ZOvs_)_ALa51o^d7gJfT1U9 at K-~>c
zA05iKw at PakWsYR=`K10k)|4C3Eg({{0ThQ at ULs+-pW!WQGLB%MqlGMGoZ)&w{Ykru
z%VnV7ZFN`bHRWVQ7I)w<e|tk@#WAMl{f$O|H?$gvz709hm-7(DFh2r5q4DexN^&)J
zwVFVQQpnxf3fYMFr*%>+X67btRED3I7d1e>VUmB==Sd)EdJQ!`difF^Ft0-r&wjuT
zL6be$Wa^A0A9frTFb*$COAlj*9F~fy$YJ{or~(u57MoCUkAofuyAnI9i5=H_+aJ(f
zGFX;R%h?l@`v|{S+8%?|rpt+{ReOWLW99WT?|MPqV^f;hq{@U!=oGU{{ld2;l$7}B
zs*x{RR);vMY4f7JiUWn9 at G)&czWX1rFtsd{-ZB~)n9s{44UPSBEk%r)Ca)=IXnkCD
z?z9i-3W~nNC;Kcx-8XIiC#?8-pnpys({HEWuVM0I=Qy>-nmd7vb-z*<G%8ZODmWCh
zg-pufe>avu&aMf2G~+A{C+vNeaD(ds(u&C+KDWnTBh39l1gffndwejQatRxYi|d>-
zM%xMVjbG5!)ebFGnj4-07JXmY_7n>%<e&_k04+e$zZtO?_xZ?QPsUO|T3#xunqQ7R
z8y(A4;GG7Pv9i3sx*V|632%o!?s|1%VUEIZ+?%u6&h#IlWN{C*-io>~1&4&x0cO;m
zk==;AUP<7uI#4km6VfT_f*-N>#+6=@?8fh7q-?;J=sW at d&FTub?NI8{K*XgEf}!{J
zWyzyZ_q{5wan0`Z!QM8E9V>JPy8`jYe}QUM>-3jX6u at Nrc}nAtYASYn13QnR^S!C3
z2k7~5x}KcH#y45VLF*e0AB`M*Wuu}U0VFUmEZejOT<4!VW(qQ=<oNrcgvjMW6&bo*
zf%h8sLM?_vW)(Wj*}Y0GqOnZ0T|V51mAu3LTMD2bc^f9ut(1 at gJS?FkmG65V1&Dy>
z)TWnu;U>S?S6tPFRlA4iLAQ)IdN4q9-134mgoS^gbr}*BQ{CYXl3U5bS(qcJpjkh|
zpeG_(>@B~bJ+EIDG&gBvip81O8!75{n$(Ou`-H}#uVo9&tnwE*H_T>GpQ9 at X?dQU=
z-DCUMX?emb1F}04W)rAAJ>*|}EnpYqvLfYI!@<X-#Z7seV&fh at TWO7U!d;!2wrn6y
zj*Ib`Oscfdfp~-SI-FeNPCjpuWUth3Gshb!$nY9meWD9qOt`7QaTDn*W+YAb-RWbC
zlzS~l?*?|GTd?xcyfJ&zx0^Rd8$!=cH(E3lc_h!HhaO{Dbxz|MtpNf4Z*n9}q;1EB
z^aW#>!Nc!7P&FeVD(wZ*KWoi{DH4{9kW1Wj{TV)sLh)KWP>BJ-kSaq^wWW7yGf$R%
zaidKR_!m60ztfez03ntap7c1KVY#5do4qM_xm^mPv7(gfc5Rpa9 at NBv!CVO<2({Wb
zX%_vY2jDuFV*u+wdz<=$^@tHx?u~`*E at Eb$A+${jyLk~~FopuSzX|mXq$(Vh3%nxy
z0@>;M5^A)-xP1nJFBeTFI{1PvBZX8SAo_5wg;Q)f-{#c;)lA6dtn0~1S at DPE<JvXh
z)36=!faL at OYg4W>^3;YLuYvPJkW&E1IHwM~zXB`yz_dXv;{aj$_PvpW);HMT<MXee
zk-SI{Fj=@oTi8}>)ytv|qiEmoFBNh36b86l)A9&%i8q at wP};wlIE4#L7}ZW6ukF^7
zYw2W|oO!)5QrAv%<}L#uc at SGH6>d<ak-4m?E#fVHkVk|lgy6T5{`AhbmIJD)__1-a
zW>D{Uhvg_}23FARrPZk!aT at vtdqW$lJ4L*|uMk7lIWg!rkoS^sma^G94K4|m{5g?r
z(=uru0sRClnEYSdZks+%DuFr7F7jS?(%E~wf!e7;U4M+$u$Mj4#THu$8fxtZ1o6Jd
z^hQWrBp7~SR5_H-L(r!Bg1m&dP-McWlMLl$Yj8^@&%%nIEn78FtXbFxX_54ebd+A(
zV|H=6ccs3wsV+UblWgrTAeM2vP=)vw at F*Gr58-cuQ?nbE#^~##I7Uxk0C+;cu(NO+
zFVT=7ahtg<@EVPDptdTHH{g?xSnuM`UBQLD=7w|~@8=L^9Tsz5e^t5Nm{+^-d{X|>
zx7v2CVW5NJZ}}&|yz7LPykX?j-`_d&(Z<H!a1sSZ;)^rC#=<ey7boT*9Lge{E>9}a
z#ESzN_lcD65v86+LR&7qvauy+MYKBh35zc<L2v_F?h*kEdfmr%{3KsxY^^hZtbKfP
zLxdI}f9&3`BARF+n;7grv8Ej%`dy6K^kKCNjC`4u?ch-zGmuXgF=RBv*4xFon5V0U
zh%rn2>xVB&>e`dHM=@zYQE5rV2GT5;l}{7hmeqwCaLMRZy)Eav+cL8ub3<$B-Y~EU
z%1#kiQ3pjOL)~YSaii|J1JHac167&Zd<f at 35N&u1rLVtVVAh^<Qt>P_K*+n)cHjGZ
zXys0#-8 at -7aP>qXgzRLT#$B@{+^(I&VU~JhH7`p~IbxT`j5F<Pj(UG=di$x+myH=2
z=0Ho5;X!bbmlPTElr)-YvM(01E(*j6PMIB%_@>28)S+o2yFrFu5^<@HW0V9s1(ZP#
z`}aNUQE6Hjni3f at P8uWd1UZfPD{2J3w{>s|Q4^~zk}@E6;iV(X6NJ>;$|mlU9Aj2@
zJTiz1$#s3XGdHY6S%3 at XZ`!UUnSO;)%0U%kh0h`}q1Of2u(EDn at hHjpmMC8-O<d3|
z){iunxR=1(7Vrz3H^s|kDQ!=(KN{7Epuc`RCJEqwg}dG6bflrq<IUp%n*(rrHQxa`
zTEs1&6pd5(yY|P|rf>?d)(0laT}u-KZ&rJgpCZrVA44+f(@5-&ardCa%R{)>cl60&
ziTk$G-Hw=*lX~|XK{R!ZZn(UPeU&$s{GkSU-S+6yU~6$psPa{ER*TIhn5~l(^h_ at x
z;K8yUF5SjW`)CMqw<}l=Lek6axDz^-+Z#mGznJ4Ly01}B&rM(=xusZZDFE<dPeR9r
z9sSz3!TCtNFZspP at gxvOG!0iv&V<q!iE=p$E?rbb8-^#Q4wn%G2CTw`>eBVD_KAh$
z!luQV^b=xQWFp~i=_6E_&I=5;4>(Y^zFXrZKd1gwd8R{W%~h9M*4z#uNvU^6J!Cq|
zW9pzQu+e?W!&k82GscNZ!Phx`O+|4XEr_dB7Syo%oltv>4jTJ<OIAqeh!U}`;Su*4
zw95LG`~2|2Xkajn?I21pQFm-Q9b8>jYd2vTi-L>Nf<^gjn)@h>k)OANNpup&7PS8c
z#m9dGtyJdWFijf`Fa5cY!W|l{6krW;p1WyQX-@|J1Zfx&jMEoEuoR*<Y5 at s^LTSq+
z(upT(i7A(Ra2`#-VHiS|_mptcZyjm`pM21dM9GtfjVmk9??Y^H4-QUS1iq~}_6Idq
z_*kCGyVl9y`D at drDMfb>x5+ at 521~>OiMLWykfiA3&YIw?9m8rh8R at l`7^qnhL#vbF
z`JD5&<)bZnzbGXlt<U7753Z)}B#Kfa2lPH0Iay0um*07N3yo at E&<nx1OD at ChWijhq
z%LD>`Y>qsL)51o)WQeio6gG`{GDBF$R at xA8@H5|K$4$O!8e383Zf~hcomN at xw(Uw=
zQto*^E`2rVxUTJpQKLGIkW8Z}j5m)CYc7?KZ~UY$M$Qx>pYMZfu+BLLo^kLAdG+~^
z*gy$>K}yWdUqOcSxxV3MDynPMb3$95xT$Q=H*?!Y`T<Ne!of0K)8JLrCQe$fhLB5d
z7KJ3+kZE1e6W45S!N)1lV-HTC@@kpe2X*d;s?Xwc`zR`M`&gu3CCi}yBTRG at 7Rao?
z^saMTv?z{c^4CGK=F`&k)xQ|^o+ksGAm*8~po^hja3d5O6!Wik?H~M{H<)Q-g at SNa
zq)g#IuUdnf;miQ^=65-$(W0s<DsbqEwLJGO)_Ssrh%C9}%)Q(JUP(p_gu=Lfb^rPI
zlr)g9z#x(69TM%U7{kt3CkYRx6?3QMU;GY57h;~}k@<*1!g!qVTZ6~&t;4G%t3}#`
zyYP*SiKDybX$_RiPj{GP4t?by>U0U>aqws$T<;}9tVnm9>b;rgBA1sWTe#L#J%HH6
z)cl?0O`hlK;)X^}w(_@)pDz!aXO)o}Cpu^vK|z~!g8 at y#4xN6qNa%@s9Za#8wy4F`
zQtCeL3}zs*wNI7PH08wj#!KP5)ZZNM|0~Wja46vny%^`S#hVleNP}7u>7^BcNNYYG
zOn^<AZT<-hB`WZRV91Z6p%=VNN*20Inb9l{?*V1J(>v^<+?QrxLI(&nX4){<3H)PS
zK%f<!BdcJ9%Vb0UanG(#Oo!z>Y-q*HuHb2Zv(oA5hz`<hBU3NIgZW at csU&A~G%he4
z;m*^&%^MGfG#|lxGL1!01tG?cpCN4GFhB8i=Cb|S(do^&=0;00jy~OWI$30R5BEP~
z>Fz(FCx$&RO34ZC=%<v24JHjY_tFOQ-*|xfj?eU{xy-e}Ng(ZuTDAYTBDuTBk~S$j
zC}alEFS1l|i4(8v42l_>FOB(le9{q(&**_=Zb66dBp=SabD=?5?f81RMBFsUTGZ1+
zdht7^It4f5 at h1v1iK+a*HIs{d*rM>q?wJ+XE|HXTIoN2;20gIzR9Js0Ex$r0jhqbR
z-h@{$q=sKMyzaJ&r9PqWJB-_&=40>4#B^4L`7XC5Sxh~gGb~$MjA7^5l^NGpW^tQB
z-%J^+lhiq+4=OR-0kMw}w?T)jFzxF9y|l!&xF8`fMp#fG9OjbA!{^;kNIa(SvQLeo
zy+jB_Z)iNr11sBE*V|ifKM(Yk-2}dD9DW^Ur`2iK7H5QaMB--?Ob~~KzYIm1cAgde
z(!68{<DxJxKx;4pc at yn2JU5!moKJox^Xu-S@`vJ<b)Lb3E9a3{LW2NWM9SZW^7==w
z at kVk(w}zSLaU@*^iz%@qCy^4md_Lx9<nxZAC&m0Ad9FdG2NfDy-+nc+rXejn`4I`_
zHIXixRRqvJ>q&k(RlsLo(jG^+2S6pVORK=saK!m5FU~y3Lg5q at n@uKFSihSO5i7%(
zJ=%g0%Q5;;N*$@CJSdt7L#K at TyDzjHeR$XL1JLS;E^dm9RV09SMf(m_mGZXXMP-8`
z7m*bY{^8HAxt7-HMqzaI71RQ&IEN-h;GAcSYjY2zd26jCQyt;se6UMXnkIbk&XA@;
zlKV5wKG)+MDAJN<$E_C@$+h`kXy#mjypWx`F?f3VXCx(tf`6^ZK`;Ii6bPh5OMzqY
ztYPx$nLn!O5p<JpSD{PD%vPhz)iKOQrXjT<2rU4*H9HFmL{dy3_To$yOZLH`xJg&?
z4J?Zrn|#u-;H&*`?l`4UAp%`gbajtq<RY955U5S7Ww5Z(z{g}u687iFG17A9<iI8&
z5Ew(5sV;s(qg+X&>v8?rxTV<T(A&hB<{hTJXl95&h^oZ8(W_dVE#t9 at pP|^@dC-&8
z8<H3QaPk}*$nx{6G?eaD at 7uzMWoi`uR(1Z<V~)q9&?UTE#D(MR^}<3i!BhnVhz-l>
zeZ)0|;LlzJ>@DbiM+1y22JPxm3T`r}iv3)xnG`1MAe5s^&Izqhs_zG(F_eSZS)kA|
zb5tp82*qCIYQa;yNpyY}Vv`CKMF{AYp_gq*5f0aM+iVAI8^efOz6aTM1lX;wDirsM
zFPExxiDH&kg*%wIOE`LTB_e49DxLXD9&<HBZ(X~n*Obow_WqKndj|)uSbKdpsCC2O
ziT06ci<1-BFQuwY`h!P<1eR!XrTaQRTtVYat%hAS4=plSM6VRi0dM-!C33nWU~gcb
zcQ+|mZCqq^+kZD2xMu5Wax}<)hW;nslJ6Xmd*>$4md&B#VQ>h8Z1zA+T}Zc2^5Umh
zOZtTr<QST{*9;~}e%4shFn-HTjJcO^L`0AOqv~yXoI##bcE at Jqur8690zbT5wG<Mx
zyL*oRiMBiMjX<rG3qX+G+?Px0)%vx*M-52$aEC>~^xNSJvmlyo93*LrY!6tR7udhk
zI-5>@^m*2ll6bzGsBmg%OoT06u6CqD<;tsH9DrCTB2*MtJYa?B+{zjw@(1(yZi-`T
z+gg-$TDKII8uj_9o-SUAbL6LiQMn at 3o~$;2zB1SoS(D#b<&i+A)dlEb?zp>Rl!mT(
zy<RiIhz^iv2H`mbUW5lODq$r=mHrqCT_Ou^HgF+mAu%7w at +~(HHRI&U{w{N$X$wxQ
z0WC&FbC>BB+(=skyYLw)68y4R9EFVR1S at sV8TD`WRl}}kM9r*Nlvgy)dSV7o^4?y|
zs|yB7+P<k!YDB{mbpaA}$XXB|7`T}Nj#4c!^?GHg1#jgRlvLsE58?W`!P(_&?8K%O
z?K`<PfD!nU?IS^u9|D5U%h0Q>v*5uD!9N)Iam#=;Lb3f$|MrlIWEB7xA{3H9B<(LS
zY1c~2AbS|@k{1Xlbm-{H(ToE+?q>#i)tvKWcB}y;e1#_>=$-Qm?EHkAQrAYd6C~Cy
zepAAxvA`^N$AV2qVjctU|JD<<$1)1qATJ3eVT8C%N}~B`uRDUKO;W%R{7|qtO)|Y=
z#Z at 6ra-`VvnC%U1J7PezVJs{#z8&}6W4pc%<_t9}Zd<pt7fKW3Q>~K5B&PwT8ejeN
zRi36$Z8+vF$Ri>uQfN``hOd at W+P#7ml-i#En4kOh)6)C|Nkeum{g$P9R|F2ZwvjYZ
z>s4^w3zALz+M6%)Dq}17Ee<SJ)0&*wNhMQsj*00W&d>7$)6(8G$Iv2d(66&;Z+H!t
z{p;rJYI)H|$caHzFNiCyHia4BhbmoD<c9MsvYIsk>}aq6 at wjNLdmc0Na3dlY;69u<
zyMjlQq&mwz$GX)icc?Nv7b9OXcjUEm)U8_%>b#|70;%e2)EtFfdQ--qH0(8~NvbJa
zTXTs at DA@F=wpv$hpcV4P at bQlAa#84QyATV%NK+(O-_Wn#MZ?+)B{B3#nne{F6Gc(~
zr%<TC;i|0fm-|aHzVUUsBq(huuxN4PLZSh?bwxsXusF&y%t708ggUQ(1mlP52OXBy
zb6DqZC_<U-k*}fkBuX at I&PBtC3FpMbj7!vwNcsiQLYGqdbFy&Eq+kOj@&RwmYgzW?
zydK>P7a!MQz}NG87Tf48G3L3YbNd-6)r9$ufx?X)!@dF5T+uE-JMmmMZuM(EJxW~z
z0J)q{#}50;&K3BnCab&_k*x~XH$d~IZRaA3K}fzYt0&#%z;*+-_<$v<`tiprE1$5)
zK+ESI at TZ)bZyZ|Ad%+jW-Un|fvRS66)K};mlS@)K0*B-$ie?D)e8OGX{?uz6eNZBH
zEv_N`I- at WuVd0|;qbpsG4vjk1j at aX5q*E=yH4d22ODfnayQ^-|LIFsxz7rk4$xUbj
zxK$3w4r3^(3BI1Mq at EJ7Sa`suA at +uHV)8clLlQyxLOU%J{wh?&q6j0vTFnY1N<y(<
z0K%SWgr5zjnD`DpS6_JZqHfriU2T}W)^H7;C~sFu{LxDHsYr<yQp8OjwnQE=#x4Iy
z2jjvrB at 90qwC>J-^dZpE>0gxbWm@}L*QAk1c_dpLS%@R!<Tj~e1d!h at cCY`KZB4S6
zlu4KOCJkv{ox2`fevJl=VR93l+gxDH){^ZookHN-fp=#~zVI3$sybl-^daTsp=hm2
zQL?L3w=3Vo_V`e{I-R4rM^=1;=gFk?R)JtyTba5 at D|5MYcUfts8QfC<wUle|KbJRE
z8m2wn*ju$6Qa(eSLjAgHhe!n(qk%7HGp08Lm&P4=TTOou1i2V5Ni#({Nl~=fng8H5
zsQgla#To at 5B4VXQA43BK^Z|cut7WA=ulm1!<WQV3AV-zefC`a}B2O~GPdSEOeesQw
z9bk<ORwJ))bqx#9RyZuZw?&QJhmKJP5CNcJuZXpqsXcjM&IwD0EU-ea^~@_y<LXQa
zk~85`dN(RC9l_7y*`VkxgQ0P>_U|!5WOO7HR+dQ+UgDl at DQ_kjG5fKqcDH*F1_yKy
zHRi8(*y%am6d`AqijRnWhg65Q at o;bHKD$w*mOHtc?tJ^q1u%{?cQA;rn)^H1c*G<U
zr}~g?cCR1;YO~Ktx;`)WYT(N8ODv1f|D#@MzL`DTs1-<6feNNb{y&)pHSF%5NqTQ(
zM_gn~ZowH>0GBoy&Zd-;1!+JFX=!67Q9hvLGU0A_YMhKimFX*{K$=n5_og1HuHFe-
zEhggMKAx-Z)vT{DgC1y#HvTvMvh%r3iu}Ap*zq-ouJ<dlZH}&g#BIveybsDmTcUz?
zjvT~D_%ge7X$$2}_zFmC09)~B&rH2=#Kb7%R4Ggc%NFJKg!3&WAz=93AD##=4Hdg2
zp~{B7e}|hTC0)!5lPaGf{#$8SjQ?ieGraHx>$6L-<Gdyl^b84}WA#U>*%i!A!P49e
zv{46%m1{HP7viK3WHLhNV7sCYl*JO?kIUZePbP+_Y{fmdxM}D_|5 at vfT3JV_+^t9>
zz)U+A7Y#|=oxZ?4J7idm_0jUKV-k7+V1foj3j-J`TOSVGg*ZnW>@aI}J^!QL$yg{u
zgvnXMirsN=gw)QQ-PDE%6Edy3RQHA4=!jk4S-}<FlrkwzOddL-K#g1=nr8YK*POn*
z at U$nlku-_p{#~c;W8R+ctkpN_tj7)v(Y3xvqA3_hYD3LP=*s;Yop;;}yT*;z5iGfM
z(uFUW4Dkule&Nz<y{?Ru?ZTf?j5!$&RUqEJKF{*396QJ1N at m;7^@8X;ZCX;TZ|nkh
z5>T%7qyN^|k67-ww%GO7)c2n)ErB_wu at exAIsj%J9N*&P@|E3KLyy)6=pHQfMW&sb
z;?4U%&4j0N)aADC>wE?Wnnr8ud?VX8^6k_~IV$si(9h*(C`-Pl-?SmP6B<tXut*J6
zi`lXEneMOsPi2E^<l9)k?AImM0iEe at cQCQc@CmT9py-02VRyg}m$shv*2)*dbBB4D
zIi>UM;DmO6_~Z?ejaM(89e$5p2TsM}9Vzu59yIUNwlhDY#0M-#d=#555Bn)T2cVn`
z=xJGC{jhpGnaXpo at bVFo-e~hE<q^tg55?stG^#kMa-!QeEG#33^7ITiRQY1}Q1L9d
z>uo=%wJ|!?0&*H7)&EGh;_tLy(nc?s&IQB~0&dso at wwy|x at jfRY|JjcHL}4j-cnNc
z>KN}j9kp_8S^}(xXcsf2hyiZ<bE$kSwR!5n8u^#BGx>vGk5P$IJ1LlLC<ia0d}VX2
zw$BpQ!TFHaqtSR}i~@Lvr?RjHkxx3{=B5PZ0l54 at w`86 at 1i7=kBzXZ+5HpDtlMnE=
zf%-#VxVhv2*JQha4fUgMRktr&Wt<)xrn*Op(AEX*$~e`C#*n<458~-{TO7dS8RbT^
zT+%iN636~_-0mWc-%W;IcoY21OlNl)`FGEQLos4}8?;NS(+dg7a6*@~XJ8*HC$BT+
zCn>ihQ-r8xsGCnY?5jy4YIf3*%6f6gL6}`4J69h$v4}aSFuIAUW)Gr`#GAL0=T5aR
zmqQ?=ncB&I7u`hdl>6ly5?$WW#Lr%5Ud?ldSG%%gp6f8P7 at OPA>mUmhsoUDx<r%zv
zZ2 at FT3$_)?r)A;0lYKw|TB0JNahRMw$*pF5xPYUpo3D!#pFoQ31uZh0eJ2qhiR%||
z^IRLg!jfKza*zTy6+3238EV|{4f=<WrV{;c6>WgkyFholEm1+m)2jU1nln4-?byG4
zO8pwkTel>3D^l?gb%HkkWT_c3&op8O$y_NAG=4yZvqzNIk9GL2>gL`8>vnms<t#JM
zH893AHCz7O>(g at ah16dlM9)aes)47ASd>8?q`966Oh7C>XM%GWf&Q3OOhnPXEtzXX
z%Zd6H38eDswN5C9qW50KI*msrWs31z0!!1aCax8yTGW^~Iz{DBF>5}g$`=wPd}>ka
z1Op_$HH)1Gf{|&J5=)Lqf^5e%Sd~?5j0(3m9{t4U$G0c{uup|CV(rR;6t3xN3s?et
z=g)xtV8zh7Jd0U%TrD at 1*Ws)YO8}&my(2{$VY?`fc+=q-5<HNX{^6=G$cJ70k^&gw
zi)(TVsuxmp;*qmtwHVnj65~WlQRiw5ta;6f{^8hbQZ#~a1BH8}x&oiOJKBi at R(x*0
z;lf^YKg<Cw&`)`eFUQ^?4$Nq{^>#1MoU+2Z%Yg4(GYCFX40pB_6cA#11Omr at MHhts
zIC^D`9qWbP at LDwTivRs|K#AYO=P$=Gx4PSc9VKiEfy=t6!JN;lz2eEDngFld2MWVk
z-yqa<(Q=o-7I3Ady$j)*g@^-(MXvP!_2xuw9H9SR6RTlQki1l-o=5)>Atx)9kbt`$
zFat}5wjQ%1OsQj at HK%yKvu~KrMO6EI0%kC;sE#!JhtoRLsH4ipR)t$(s+sJWK{*s}
z!l{wS0os|eZ{;wIiWGhcXD_1Q<Dk5H(JuG;*PV<R4Ec8%9@`Mp(xa%Idh;%R?JOmr
z!!4GM6om_%(JA3sO)RV``BuADfu;~VJ-Up2ZDy{)__#7|pcaRyda6a)cD5<G<V|aE
zx|9JP0-d87o6KvIEf%m=bjnU{e9NSHbUInZc&?I)aP1w+r}19V5tb&ukE^sa1InI^
zRf8;M3zY9f5Zx>VhE?qBUcz_R`Tko;5zWc3ocbX8f&pu|k#jO;65r+>L7jzwd8BP!
zLuW>MzCj-MNp3f}EU2V|%}_-)adwG4g^vYIl-2|Hus02cT<8aEhEfgTWpTM$ZLpSJ
zQ@?ldza>!OcvMAUOL<;9VW-(>(s at d$cYoXCteo=R#PPR73teLDtT>}@$Fy`!KKRcm
z5 at b%KftJCfEH<zoGS1}VdduiABjhfm*QJ2xKW+SSll!U$xtI1w(=cZfiQF_W^>Ldo
z9VCYFk$d!Tu$T}j0rSD0NN2U=xi9|+ksD&4uxn+-(`tK}19q&3?Mh+Ya|U8*h6ZyH
z3o>JQKMXo4<@E-@@=5&zmw^@qz0)c=phqwPVWKg>OJ)_30}WpyHR`<W&bZmlTN=Dd
z?S at 8vF8T>sP}ZEy?hII*i`G&CRMk^hxXABm;(!yRJLd6QrMpRD7ko8o`9x}J>}e1U
z at t&0S+hWvvCNw|=NPnj2r9kxI5QHKXYlML-csUbL3<~hG!)z_dRR)*gzcZ#cej;Gh
zTm#DP2?UsPoco1PK7ZjS3D20OHMj^g!h-XS!sX%lbsABw-<*%<F1)w;PA^Fb;@ya(
zV#yk57r8_zSyX-bK<Asy;_cF(_0vYLd?sq4fGJ0 at oft|%MJ at KN?F$fg-zN?Z_7(U!
zQ}+A=+ at W2`J}Cj9C&O?6Zllm>*qr!!gN}o5e%v}}CQ;6(ToG at fppoH`aU$8oDsgb%
z563^T`;oX3r7c8$mzCGd3<}J_dvIaF at +?RgA`}|EHXve6_!|_nA`C~Du9RvIWZe{&
zUh+1dy!6zBP@`d7K1uMb&>~t#FsEm4x&+?=CDY9|L9fMK!8~uj at W&$BpV#GA98PhA
zuKb0BY(W<?hqgCN^BCAhHXfJd_u9y9Y9^^y09F5y&7w2QSlf<TB)hOcj^A?T-Z=04
zZj;gJLU58Ur$0J@=479!D3;JfN!e!GK1%x)Y72OMbM$EWxjJy6@$+;b5Z?=<fECAG
z=1nPD6xh{j4;kI%?(wlO_f~ah0p-0%KPSz|A%l9wsy+{RpoagQGri>SE>8t?VGNzp
zN{8{PL)1&9VO>v_XCyxmeM(}h?l7b_?dY%C9D!mQLF{F2ic1W at IbyuE63iJtYsE)$
z4_YbG^AdJ81N$)b)FkJ3(xEw69$2x4)qJbhKEs$sxkIiLnUR0a(T5Yf$zCeD{h)_p
z?L<j-k;Z<kWhi~?xQC-;jMotd!5n at Vs+9z}-xY(|D(?NA603c>K_`LSx=ta$$^dLr
z^o>K1vdpBB7l7ebVIX;EQf-xRgrVtqb6q2Z{}v4ORlLS46gEewZ6{?s3+y2--;DbB
zqF)SFjzk29UWMhq_Q${++{Lwa7(_#3PvPW0O^}I0(;Wf(Jq>Gd<4)<iS$PcY2S2vB
z-=<`UGy7v_`X-qA)XO+LV(e4Ip9vUdh7wp-^%-_5XwlvWYF4_Y#3TvBd}RP!=A<pu
zvtkcy<y(jUg9ERn7e>AZ9oj#t=w_v<dba}m9rkZP*1usi2>{EBV?cBVcAujH#tK)r
z95U~GdsF=(%Weg86S=qL=6{&?2c!p|=&1t$*g_6#X%IN440G<SS6;jova;dpY#`Er
z(LF}ggp$q%F4%{icP83xwfZd;j_FBxFzzziTAKbw_`f6_P4Ct**YUu_x`@=8$tvL_
zgRU9Yp&aSk4}lwAuH=A+Xq=KJX2pW3ULJ-hEwSU7OXF*#+Y-G>lk3w8Ph$`Nr?Va5
zE{T{{R;A<snTbiz?X{O>NCp>P0NLanI_mfR3|;MZ<)IB}iAf`BSQl9Zdpb1Z4Z_i3
zVZNd*L<<F~B7}oN!W|5PnY|KTO^eg2SiL{Yt4ky5nzVfODANQJ5#&73qUiHSV^IVU
zZG3@(IaLLK1W<9LyT9YdO*v6I_6VX7*Qu)hM1bK7$hC+N+)fY?DcL~x?MZ at L@$BvB
zsqMXL?5&3`Y<}Hh5WLbp0^@E3H*6xhW7gLtE6>MY1b+5*`$*!PoUSl6n_}|GLj~@a
zJmYY6>Ovq&gO6{fswK!M6$Oq^-B}>xF(k~=3;zn0$gfSn25%-K8;FyjV%)N}Y`d+(
zk*C~L2axXObdnZ%6Xq<(Xkt|yHO2?dy3zSD!>4uB)uW`2BQtHCt+wB<e?Z<pqk~wJ
zw&l!W1hjbml5%l@@jhU7`E;R%0|bJy77Qkwrx({LU8>&NF$}JD_B}+7EnO$f)rzrr
zG(1dqxKlup9PVe>SXKt2jA7N9Mwq|eak+r-hIv!nLyetk8gm__v1q*vsEztSlPJ0^
zwBkO;o2|i}r1UeR+L-=I48ziSX0^dJ3Y*PRH0HfaK?aBu5^MzzC-AXEW*DZn*xguk
zp?~Me(Bq}k^mhxE at qCB6AJblWqd&KuuH*urDdkY-9@`|Ad349z7{?qkICVA~_EvXZ
zqx%EEMWSn=;$@r_)Oe%Ju07Ai3kNKal$w__ByW8PHM`SJ*(8vHWJB1%@z9$2P`|R;
zEKv<t!5+4vm(iTlQ9i;v at P7K%;>%lGI-sU3TL-RK!sqwH;3JhG8 at e(iEATb;t~1wP
zo=QXoSPU96jrCRWxrd}d-WuY+y}an<vv3c<=tRc=Rv>)OHlFS>Z9ZUzAE)nMZ?}V=
zSj7(6epM1N&gaSz at Nhy%_s5I}3l2y{t%HIN;cnlLY%M at fPi?)&DEQg3MQLfI at XTR~
zOBj$aW#&)xXx0kYCBp at KJMP2Wyaj@`bZ-OUJj&l?wN&Z#_&RG3O$P8Qb7*Sa<)8Ka
zSV=BIe}R*pq}7hT-s=8pUx7h at y<%>%rjBsZMo<b=5mcrQ6(n=#l0LC8;*$&$OSdR)
zy1M<%>9v$*0|@T!pc!|ob2yjsfjo;+?-nXf;G#f2_oLT?7!Mijk~8bOx3Pgj>jrkE
zqrJ-3tesQ57<XJoe0*%x%@Z20X{|8ja-7rflQTNQFn#AK9M at 3Ls5wN#w|u^Kh^@ux
zFhj&OIb}oG*r~GqoYZ<Kh-?t~MLf8LmmrM=#3#kk;cYh~yaYA!f*|>>jZ7QNkEeS3
z3z1IQnm*hA(Gzn4b%+8SKF~=6nvMTR_|k9H41gJ2;|*=u0H|9KJ at +Q;!rrCbwOIdM
z=c@=EW`qEjA at J(@4&tNXXH`{oQOcg(z!|WFBI_c<48|ffM_(XiQu>><;II^0QO3_q
zz8ToGpu2mo-=myKq{wxyI>UQB#b*=Yqerr~dB+(@`^`@fYBD)_;p2Kya*4_yXS!d>
zrqCtNB>-q)C~Oc4(56SKefBMYVWOJQ8zphp(Cw3G(0&GmdxneZFo~~_iFEalT|V>O
zHs at 0Coce6r%{s{h*44akATW=6WCn4y7MiS4J3H)aL8gy+*KVN=ewJ)E?Roilt9zsy
z$TJr9G?=s#!3SEl7o1tylQpZ0kRFpD at 5jSjhjWSjLfKxjG06jb&4$dRViDZOw3584
zc&cJoZ(uWWch3mot{IGODauz;31htC;C(RGqeM_i#lE~Ol+yHjEafA%in+l;UD(?g
zGCSl|X at 7Yh`qhfoVo62h9MLt~!c7h}X5p+K*g4lLP at fXf!YLNBDSX-EM-tetH6(Xa
zy*xi9W|G%}$z0EdnB$H*2<f=H&O6}Gc9#l)0YwJ at MgO<_8c0OAf;~R=g^-gVjxAII
z6`IZaI~3#Tr}A|d+}q-EeT0#vSw}fR^@)4&3zO=ftOHF+1%|Dau#|;8Bz+)IZsL=n
zgRW8Q2Rc?S>{^vJpsX-;C<-SPhqZAe&&nAe_F306*cr at 9rfgu}++b_B=i*J!C3qB&
z1F*m17&c`Ja&X3JHS6*QitQN`Zo4G9yi-Q|FeXsto at 9G+Y@yjly8e*%5dhi)FJNi)
zPi*-9#5_XSXfAy{Jg(t0v&ZXV?ZZblsCdt-n~AzO6w-|CRq(SqMwPmi*{B=k+Rf~=
zk(>%IUtK<3cVio*i(@k6xd4U1268BS71PLEV9A?m%mAJCAO&|_{C}S*N)}$3^J(jR
z9KX{OL=OJvz7`VzW9Fc9_+knlKCsVx5RZ9Ru3AAZ`_isW#K at BamJr3~H3F-k at w@p&
z{!#>3>e{8_?AoUpCKJ)Yh>s9 at 3*@U+J)ytWl2tE{a`nF#?b0IHQN~qXn_!)Nn7txh
z-?L<GexfrO>w(0f_1xAOJ7$UvT=_Fgvx+2-T28)cKP?LOLHD`#61Rn`<3>BewgP`5
z6d*Qz;XW*GnjYR94tG&tOzlK${f$FdiBP#o+m%1^H$Kno($gyX6qo647apTHN#cYi
za-vJC0b$P(?5SJ;vE=S*?3rRDm+Gj=XGV}YC}8rOkTf-qYn<mB7$?%ui4u$7w$u*S
zK9ym1D49df`w1HRt&mT-ugSI2{CzhrBAxvbG&2$P2QG6TPQ<~q-AGHmOV>kCMj=rC
zDjxMXo4JpQQm at +gVA;!$fKY}&Y`C57tMUT2&)tCS1xnj1HK>NVvfO~=&+R(PhU-r3
z7+R^WGiw&6wGqq+$L<kAn>f;*k<7OzB2b9t-69poL1?LdD#e$(Y;DLrmZd1LhJ~kc
zJ*<Y`h4!_`eIM`51Vb5<09J$31Jw at j5q2ImWZTgDbDjpngH9;_3};BZjoDVZJC&3*
zEbeO(8nltckwd!iEMu|CFm-0uOH1(PARDrSORt6)w3G7fw874aZN!3K?IbE7jKIar
z|LB~{ME>>o`JnVt#+PvQ%yxP>L8GA)%6C=2NM=ijK3aIVaOS1nPQYDz$?Qc+;%aTa
zOmQd%2~-jqIgBr^?xzBpG1Uf0L~WJB`9 at 6No+Kpl4gzKMOE1*5p at D3g^SGlVd|4{f
zzOQM4rSM68D<w5@#sAlMJz(zq{(`&TU3Fu{0JKV(m#|(r|0eXT9P!SH-M2mHKlit3
zEWm5*1!}A{h1u>wiT2TWFzG!=wMExewzKUev63W;QP<6Mo;u($tIqQ&EXv7Ze(@1P
z?W*FjHQ-cP=moYAg&5Sj9&9+JE0PQm7fsviMA94`aLUh)x9lnx<o4BM_RjKwsI3+I
z$bXSh1T~C<R?R=$penU<h_VN7rX7xOW#aN>I-&#ZaZ$ifLi!0mzDqs3IehFIZep!+
zW()+zw{Nfb!OOy<o>9zLVR1UoeXo+*q43Hh!fVkj?xai+?USohKI8pkXIXmDU}x*`
zdRR9K at c(j1cz6fgMRLx0Ij5RIyF6SyfXw~N<KWGKB0jf#eMLQPv}-49*D+Ol{2x_U
zoqdxqx>-UdI+28(7G$N at 9^$a)z!e=GsO*AoD}=%_t#z7HYgyjV1F4Y{Wj%Ymg(`IM
z=lI{nSCwo2E0gZ{eT`;js~(J;LO6w~S$5rZ7^}}s at uqvNh0&n_4kug}7=~Y=`rO^2
zgfH!Li>75{$BmBt1Rssu0qu&4R^K}}Fv{vcptL-}s5|(uze9yKy at N?+zs{6NiY<M5
zscbB at p=t?B at r;X5wDZK*Jdial_P7=<;Ck^A at m4e>FK^aKhW>gSydKK206MzH&N&&m
zV`82pbcUo6F3J%E8H2-k8ZMm$-sOifMw{Di*K<#qV at hINf;@DN5+O&kT*SnXts748
z?D&w>ij`^yT<|LQ=}%cxYevR|m+vdnvM@<!MP4TuLfWU}F;cxo<;8|Q*>Uh=1;=;u
z<yX;Z`Vm|v$R|@OcN5B<YlfjRhG*t>b3bs>*`?)G`!2Y2uXgV(jLCD3aos8N#<Aw7
zDE8osW-(DdmcP2 at zG&l=&#+Hu?*QDJ&vVt6WuN&i4sh6B&bqW5W_7lM^^*Yq1+ZgF
z(E=auHI_X_;u)*VBgX37D;`VlDn^u(Xfk%jdd#TSjZD1kV?if^sE5m)-H}47t1q$8
zv2<jQAF7#vNhi_FY54^-C*^E>bKs_><5O*VO`97$e!WUWV2oohtv+X^auo(^$+PzH
z)CrnqSlkMc`lpTKcvuKzX)|>(abF}xCDq`GOJVFvcN2;J_bzGv?^y=*@?CF$;@5q$
zX<I84YSMUsUCFugCAisEF8BU^Y~k#Zkkg}w1sybY6)Wp^!82#A;FC>GJqj}ps_VAp
zsm&+0S6h8>K*}uG;E*uh%=bPu*1p=;+IM8Qv*BX$6De`#ljP5!n&R;kjX{DEJ6;%v
z at Z%ULvgheV19mY^i at 4Y+m!- at Dia|k&j3E}m at F$Opge=Q>mTBti2A%g6w<XO<f?;>}
zh%;h+H#4TSOR)NepjeV5W!e$_bVa<wTQ~)p8JlV2)2H6RCK&5-!rGeMMZOV{SBPh>
zmt)0?5^a<it#b-gQvC)YruM`Z-IFf4w<KbFX3_s%!zc~|HF9sE_`!1DJcy1&2kE?A
z%xdLHaE&pB16__!`63L$@(Fuc)mBYp0%G#uI|;r(i<S~H^UtVdg5*V?!d}-h1bK7i
z=Zn`=ce0L#P+F{sx9A<OlK0x=*K`J7D0DUCw{ob}GWOOQVWC}k6hp0!yI`quvr(*S
znAO>tdKybskIpZul?K51UGUs|JKh}`Bj+!!m$GK$WVUc`78iwPCg^N2 at FHVO`Xf>!
z%M9_X^<G)8h&hdfG)L;)bEdGE487NwV}uC at svy4zW?}?^!4%6vYn+jxC7p3&q|6AA
z%~?-&d)~5>wT}R99f|MMQrgCp at wJKq>h0 at e#VE)=GKNkNjuZS!&#va<M#QyNE&tkp
z_SaMNu`tR%746-m$i3JhOIozzL>%(Z)xqshx&gG~VZK_oamtxeBUDa3MJb0xinhj8
zvVdKryMjIz7$#~}z{U%7yR5r at L485TKgTbOp6u_y%DZ&vpC#tKHE$<Niugf1u`U4Y
z4W;l1ex=K4hZ7Udd)~ERH+(9(2*aS=Hm{X<4g%)4?!B43Hkdp<%D8e1Z2+4@#0z?!
z-vTrAl}>Rcc_Bi8?&<R+3-;rVQ9fkq@??=`9!A7!6<dQ`$v-tQj9GvAtftt33`NtS
zM#isSZs?!5dcEHex88<9_MIWZqr<qU#4q;Co<MTUwIgsO=}*;gtQsvN1Mmk0o`J77
zLZr(AYVZnMSLl(U-;K9YrqIBoW#cv+h;}c+HxN^J+Q>J4k2C@>vWGqC*ZVfRLxfCq
z5X2+X&<`nY?dP2O&HBFVg7TGc&tFAg`&}?oS836yA{ERK=w_{sZ^F2Al7;($Ewd%S
zX1^Vb at mh)7Z|tA)4}mB%T$qfTKw+T!$#?foK!%XshH9?sky-g9h#qLAdit0vlBq52
zpLpC5mpH>}^&!d3SD_-ovYM4OWff!drjlOW@|@xo37BX?ittRgCjrjSA{{SRtJ{_p
zSmi^{R$-#`>#nH}^0X0$Kj49Xv*`F7i at yBnf9m$*TuM^X{h4?#`)=#EQ(qg<$pmW?
zs}G7q_vA-FeK%CQcJI at lnjUr$49g|izkYk*Ti3rgquMz2mHi^;kAfYZ!8U$s!ctRs
zBHO&0W~aBLAp4%1G?oOgxsr=o{gUTtQiX(_xNncDZ)?2lp^WOJL&kpg8uO>m=AKTL
z*C@&5fY8#1c7|^kkn9LEX at C`~@%PH#mNFUxg92_GQ&bTANFba$H;~u>jG-EHFWEZF
zgx6G()Klej&-<WMUAjQ$+5UGF0T~4w+~MlzWHYzV78pp$*7ISl;d%Q$Nrduibo2U-
zcyVez6dB_Oyk1jOSb#U at c<r*!VjP~!G!|>q<IrXKX$9T8%pCH&re0kfMF?d|r~>ry
z<DIk*`{G$ZlB+SqSf(#i94nu!j7%hw$*tC{)MvE57xDCkB2_*{O1E2MdQi2fg95My
zz&=q4>cZQ;I<kzl<;{SX2c>3$-(;sYw&_ at Qq+GF57%N*|HgSvBWkk at EQ6eaM_@DyX
zM<ce^;JDCxC&XrXp6g!B9$7^CyH)JnnTqyH=taIOyG$*C6OWI#v8V~cS1hZ|5SpN*
zNlr5oL#YUapJ!@<o^=Is>Y3lGy7#A9fR!9a at 3dsmZq^TSa1e^eQkTOn)*_sEgET3J
z0||lX!ShFygq0#y-E?yxs_NU~#XH?mcXe#lyT*~pzz!m*@|vPsz2X)|9$n$alw at a%
z+D;(NbigW2s5kE7tRt~aw=03(g2k~#TU6%g&lA~Q11aimb2oVaFLX+H2-RtsRY1-Z
ztS~K+iHlZd{N|hblGN<B at O%)jVq>hKXG4Bx-Bo8&(=&A!ZIz!wo9O>1x-~95zo?Sk
z at 0_??2x%$7HEmLt-toT8l#wqlrR^SxT+S4Br29MJkqvWb@<4?3!{4BPngpMkchUSQ
zNI}m+$g;vydC~;HSoqr+u2m-Ivjl6~1nL214P2xXR^`&jVd3ZXofyV-apr0Z7}l#?
zd2sPVo3IGTXYiG)p)InGIc!NPHx02P`r;gLm?F-$PB3i*j at eGPHZ>q%*^zVh8oMEu
zsxgOu^`*FC-c)WV#nj1q1oy969X<I$3XnCbzET&Mbkrj$h+C}sPg at 3l4iM-$&G&RS
ztbi$@&`lmnp2#OIG5bQ-Igk54trMK3F7!Uh6o|npPokMZa(m*993bvi2rATblQ*66
zgTiA?ghj>=Vv$fxvs)ML9zle`*{88<b(rK$y+y9G<>xvrQ%t;$wq0i{WGat9!kaxJ
z at l5D(Q|dq$2H6BljGw}OXh_N5hr^x+0BriqpfLXR?(tA%pe4XtupuNvxkdE4_SRji
zlX7s>UV<S6B4`Qw&SuC0W21`u`lN7tj)MOCZ--bM<kbGG`V7&3Lh?d8AC7%(ZXjG;
z7oqbSBjCv<Z3;^J{1dbtyu!4vDM#7ho^7sYGTK7K&@(vBHa%pQBdvjFXh~^J^kCl+
z8Rvrh*LCq)d0q{OV87B1(?|ad^m2$kTYI_!HqZq~=oU`)w_W`#Z}Ne%LrznA1F)l3
z&~$m43v}<wrP}^7!>c<{m2b+XFXkLOw&Jh_C5GT29}Q4}UG?vg3|>{v!0-d^;=&gH
z4uod~3aC_D;oez&cYXLrc02jX3S4L&x<nE3Ll9ev01)0*=M{}cl0Vf1#QLDX!yqmf
z^Ok3F_EEzy;=}q#&jhPd8qqh*$(n^SzDcl*XTK|*=yzuhO^v>A2#B2t%)npN2I$(e
z_?&2x@@;?)c|UQ`?JC?mh5%j7Ut$S5!v{@$l5QjbG>>^ZfE=84jdA-{R?eiG at DVR;
z_WBJmkwo<&BL(|g?Fcj(D0(nDx3CQmeG~<_1z>L*;;r4X_ADujfBZy`5WE0=j7kV{
z*V1Zvi2%vO?Tgoka${7e$xMjp(M6Flc2zk{j8*Mi^!F(41Qs=Q at 6kRYQdstE9i4Gl
zGc!_W68{rBI|gY35*C6#O~mNbO7#G8R%$i5QZ4gDMuJc?Ez8*EBTLQjwj$HPc-B}P
zn++#-R{}(7LgMU6K|WuMrM#Y5 at Pw=T%i%lyBtS)*9=R5}EQiRi7~3~5d5h8uKNX?1
zgZX^1FcH`@<5Ha~2*nbYi5%OneuA`dX_xx4urWE=3(v!h%junyYy^Hv*m8 at R$JA!^
zpQhpMObbKCrqX{p!3(VbF#&P9JX-1-v!YbX#^?-8wYq&Lg)xkv)@cBb;@-S~NXPAG
zFX19+=W4Ged?B%n2hF`3Dd^fVx7}wvyB)J91HrL4 at c}js0nC2tts at 45G0Y)G>8 at 0O
zU!jsBR-5iD at s}G-R2y!F>BbXmJP#CXcXM!hEx*JLT2Op1MLM;bS(>}0TJ;`l at yej`
z?#<VJA_t;e+G8<{RC6g~g_PJvv1gi0VvrWt55VD<t-H}8<m40hi!*HIaC};fPPPLn
zfyWU)<>B~!4pNen{g<SW2=zpk>b-#shAX!FpXo5BxHmgkC>!$@jW#QA)66^9SoIsX
zs)&TB@^OelBSXXp9@;YGxkr75kDrg~Q<&4Ja~G8jAt<Sbc&agj0->2c8 at k}%9xNTx
ztyBbMLevFHKuR%i%o-FC3n0JvL at 8?8_>$CJ>5L4bRymBl553x=dtjZ_6lqN2X8pzB
zPrlO3QZ3=K+`A(K98y%hWn#?`p}sTlNxo}5NP$Yry*{$=bTEUox1NZNNdet^=AP2o
za?>Fm2V^GMZdDqv at fEOpLeC2sC=i4KO5o&2B&oufzq446m1ECsvnGDpE%Lnumy6H9
zH1*CP$&csu#)jvGG4baWE}fRXjhb$#^uuevFITXp<a#`hWzHw)QKT|>DgmL)>E2g%
zKL+u>1*G!-+)bhW<;OMMp%k&<P}G}FK21*e33_R=R#%aD5NNPPznWnVCtPRJEGO7Y
zX6LH~H{r6w<X)Yq*);TRVnbfez1IP)%mWW;P&taq_npYvt|}Y`TQ5(H)h1wmx7=)S
zvPH%_z_0tKEzOakh+I>ZDUg={Qbb&zUgl2xUpUmXw+&6-bB}np)Od at pEK>`{u<tMl
zVxpEbJ3or&VC!xO9OSIL!s*LT^dABuOItF5%W!6$FLazGR>#&b;RKoM2dE}4JBdIS
zA}p5DRjFGc3ZaH7VUg5Y5TfmX5S{u-c5N7IzDt!rj3-eu?Uc$gs&Rrxyo)OyR#EsW
zSH at d|w}8|<zJfj at wiwcB4{KG;j>M$;eRyXD=;2SqCXtm_KC}L&NO5%;|Kl|^TJx+p
z=tu9I?2Qq)m_19jNeH6o^d5jzeTWbV4pW*d{bTKeSzZ^QO@*bBne9V9vKG}JB16>b
zf=%<8sEHfMe_hpPNtceLws-hZw21?3ss?@1j*}s?S1?s)tBbj1t{`Z18r+Rl{M=-n
z8d()HT6UysD;}JtxQX$SO{jc0jmAmtD0;{wFWeY!BSR3Dx1Siw<UP>sJ)G at f^p!PF
zVyS9%S~Lh)9p$&V0NepG at -J@qGR)Ng6j)S#j0#pP*xZVB`4ON|5t8I<+MdW*j$!BA
zf8FRK50k76%9BXa<8t`1s?9HU;5nQUkZA}8cCB0fcqyL<XjvTk*E7$t`!^%G)&ZLU
zknJhwRL~Pqwca;EhAdS=J1I5i=bcZ97o9RQ(_4~O$ygJm#*MQ8C$mnuLTqZ=*rRL_
zYm(4AO)5<O$gH?VMdM~~2O;4;tfdz}ARjUzNiCE^O2?C_0_|J_PFYIw`4|bSR}*}D
zNNNt6-i^p}hNsSG?g4iRxG*o1F?relCj2ll{`uyn)z54d;axsV6uqwd=1Ia4dyGgz
z4q!quDw#LyMcv2rE+mms<}&(e at gZ3kr`7`xUOXdwgFW*}%r0G+CGA`f!NI7MM6TU=
z#;-c$f9d;GTBv^URosSb1yY{oK8ZMs1mwbdwRBVu$ao)s;X6}`7i&-^;V?{LSrV#V
zyG%hOJPjvtCYtBj?FqMijHe5d_+27uq;O~`O%Wig#7c(^Imw!-f$g$%#ebGnmm_(7
zS{63rj9Xh&T;5=puSW^+99p)}m+29?^_~Hs!!q><osj|}8Dr}Kcggu3F;=dIitQ8V
z)(FU{{{6 at L*Fb9^2n+Xp0QRI+D3gk*iAost0oEjKBG;8tXio at f?IB$%DBe2^_IZVg
zCDbY;<k(^+n+Oe^sqxXTY<ED*CPwEVPWw+sJ7Ew9!v{Sxq at X7xj6JPBytDiiYZ6T3
zQF}2%(+wMfLF;vgp15cvdLBZ>Z~$`0l+Zl!lMVn#K)1h6Z%_-7Z6Tix6!jF=OQn>C
zue)7rorM8v>{0F#;pK?c(D4hu9#*!ApLRiwy;o0t?x$q>U~Ma#2~zEx3>cQw at lVb7
zPhzXGbRnvnwVRRphi*#U(ifSi!j9C0KC32|^piiFRD+Qi`CBW;aA``+6LmVkgb^kS
zVQ&xPp-78Q{$n*!XOA9UX+xX%-2K9Pk<)~*;Ib^WfRY_n(*eh-%^j#BwLljO6s$vR
zpFelf>^{KRws$8W*x34W*`ec<X7U0a(eF*@^34Uq<v3Ah!a5f}89xSI0K|M~Lf^IE
z>I?*YV#uo}h$_Ga^jD&xxNlx7UJhOAe@|8h^|8q1LfX|eO)dW|#hNAD-VOEejWL7H
z`STT}x1A#CaLYnl=8httUiY`??0kiqvCSIS_ro*X1nsKK+wC*zhJal>8>L%$g4^ur
z79EFwKKECt5*Gp}bThUSO33ozu5ZsRb)dZ6ci?&K)-helW+7IxcDyA=Txc*i#@+k(
z?SG!`vp+eUuTPMnHTU~O;1CVKs>1J(sK!qD%<Mb_ChtHPuBHulD$jiVH)Vi(-sxWP
z36H&iv=HPOuj<hum_>HQIhXcv#rD8~Xk5SdA8v+!6p=wzmBZkSYm~?twe0HQ?lwb1
ze@<43xa_AFa#q&O4CtzyRt^{9?|=WdqsKq24qxocp{(dGNsY$2WEf++3v^qAi&&}=
z{n7Hn-+)Uv-&6|qpi5z+iHJhgGvzIw{U58RPVI9J4o3(<KGU6Sj1~ur+<%J%8Z|xp
zh2gjL&2`ALsab=>RUGw5(SamL10mbR%6gU$bK*t6kWZeN6V;5)`CKv{`6v22M at W~j
zWBn|k+FX5?n#wJ9mT=7bM4A+lbVM8hcyF@)U|2}l?*F!L(gq%Bb&(hBIzA4JKdYxA
zUKe#`!5GML>8+`Y_*=EM#b$%b!0;-`S>Y2b?t^VC#JH{pRxI9$o3}NA_#8GZSRU%R
z%M$>C7fOl-EfYkn1Ad)rfO4z at J{>FrCvy9=Si_M>eSkY>blk&OcPo?=Ox>9K9zhlC
zsNiSeUC7G?)&utM9(VW<El@>$lJssyo}w)ffOQu*_{LArOx+?Vw`zbam7dEJ7HZyD
z!YQ_zppw{=i2pN*hQ^x}Wp8m;{TX_Q_(*_dn1kD at Q$`IkR={K at I;GC6MS{NPtz3Mo
zqup#UO->EJQ7&cV(5BD?>@@?BT9elAA3bW{_G&=N+={YV*Jb!TYiaXFJu{;M_=6Qe
zlvg{PLV%DXQOEtyAl?XgGUB2kP0^CFiHO_o-X{AJ<)_mVB)O`p7iV%c`d=VQn;=}H
zfx0-8H}Dn1-CY^y<@7Od-|~^Vim)e at dS<7+DEDK|M%uev&hN6F00t;T*|ja{)i3LW
zF^Bk3wC*F>ao^?zeDr5}je32+8 at d-=V4T6*dtdKgJ7PvQaSoi1y=!+eZLxFF4lF*-
zXPifcZ()U@%LV_?lQ#&YobVk3_GSt)%HZC{UkeUV*N70*3>p8aU?(W?c{L7a1~l{8
zH!1K!DRB$HW_9B{LcPcbwoZs8hJ0i}WFfy}V at +NeL}Qui%4>mEkN=qMZagxLLXV|c
z0>Sjz1sMtt+_MZa2R~P{K)d#&C|y3jvO}MFAZ!fW=)ivI(DjysnRmL5+qv|!DK~er
z!7l$f9zDRF058iYssQ|>jHM?R#HZ8DR^+C0=4I^y@#g-!zh{or(6^~vLH_+^OGWB<
zoOybXd)A_{))5s<IU)L)kJ}+dE?_Zw!D9pUy$!JBw_7H;;;dTcP#G8<hg_XjckV+H
zO%!iFj!2Tr4{QPpIUvh4<B~IYnnfZcF<@OiHth{ER8bN$-}RPm_cOSMhTN)20Nen8
zGYo;UpA!w$W^%`Ny{iD*l>fnDpT9*C$Jn62$9+=VmcukAezG)tGVTYfjN6|QZQXbJ
zJq5kZ0MeK;5>R=)LSexMU(Xaz*1p8FNqtC_>bT5cb(M`=<@9K{6QN^Ao2Ucd-X`ju
z+9%q<uIeg{DGo@=h1gDED5;}knF8VlwgP;|o!3UgdDd}*HX!CXz3;xyCusjfmx>}-
zR5BPsEOZYQ2ywLY_N0eM+S?O(F%4SJD76-}qA=DQWfV!AM;%PRY)%J>T)H+u0bM&;
zc1trHK`~*80_6Z&ML2`Oi$AX?o at 9U9#i^fll&hf`YUx08P8)#*;GuJx)X6V%<35iw
zh|XY{MQXeY2wM3PLgX1sX$ANhWMH;nT3}_wCDw}86#(1^b~yrFFl%2ebvP*VGvd?D
ze$R1+K0rob7tonEOEqqFm2x3 at nDm1#f_k$%u+3iYkmhAbYMTe{+NCu{6Ir6 at TJkkd
zR9foyp?$R)wyx#v>BU26>GG!!d<^M7c#sU^xW^N at UXP9}1`bFrj*F8>O9Ux@^CViA
z|6e6 at _Y*X?t!N1lqyyoka%jQm$wewWlsrhj^~j`q&$66yOb(OHFH;@QkN at O0HizQp
znUT($ai#QUpgBuoU8XMss=JO-p$To^3M}$e+v+GNa-#8^$Xc<q#IBj!r->0vMxy3l
z1OX0U;i5~r#g2r`$0S9M%mt{u)m4HG=PRI?{dA_Rm;=nKI`HB_c(!=y^u_tayDA;=
ze*_H<3(5(V+p4t6W=n(Q1|(6d!a0_P&uV>1CC<FUzp6kj*|Qt#>f^wRe-)H;`e>pN
zf$&^Ss+xnVjh#GlP1J8L6BvLv6&)U9T>oU%<p5~YIy7$d9Q at 34I<7)&MHgV at NyToX
zs0ggJ-^g|OI<#T3=64(=Gi%(ZqD{(`6HMsStx#Ooh2)=E(%fz)tBn#G!Z>$(W^>|y
zyVeTA;C8a51p?<mWHVly1#=w!X9bOL=>AC8a<qVgOE(P`add6SMj$@ITD)N#C&db!
zuX=beO%6API~M0maaeYXpMSAn3AOu_o}OYW$9$xRU%6M7LDRT$o_0lo)X#7lnOL}x
zTf(Pf^J3ODPZ=$MRDoYgS+GE9>XPy~3>#-#c-eFN*iC?$pgtmtFWB*_C(1JSFb`$b
z5L)kMNYNK;>6vHtIMK#7n at YqLZ7J-*zc~9M&`hJ9pr&)kS5JUsvs3{d8Sw_8MDAjU
zT++o!bJ1CVP0q=(hK^S7g18{J%sr^T<IBPV>L3OWLn+>wRrcCEr<U#QXk8MXlT_lc
z+Jp2G`*I;NvzwJfk2?eAzTF7Y0rm{HFf#jeR8v1?viK~!lJBLQl5XHGEyl7bmFQ9x
zHH^1nvtsAF7eV5(X~|S2ai`a|cR~AHq165sz*+(2AU9L3Bd2 at TSe{U{H-xsm1)k#+
zcJ2-wE&SrscSO--oWR14>#=g!K|!_1fD1A6 at gobC6DrCsH*aY7Me`D$Uf8ZVd6Jtz
zqh6Y%itGsYM#8Iyn;dvU)jVdqw4~!UdN^R3&PQ(Wz!ybeeUl8n<9KF5k4rR5mZD`^
zi_l*QcQgw}nPeu6yx>L?aKa*=b(F{VM!ptY-ns<8<`p?IWiRbRHP2%UN*YjYGI<Dp
zdr4YJAAFQEQ*M{x0>fO#Es4;%9%=`Zv-|TiF9(CH?_CE4xUL<FIvDJBu;Z^D6-Rn6
zvBBNH>A{eei~fKyX;~sfFcFJ4uFw1N4$FE5C~sHb`2#sNMaSIS;2rjFNEq0>Su#7b
zv~#mFfOh3&uy}B6ybPD{(ey(^_9LoxP>ltmCYZ0k_VPO8_drrJI_(IxmFSq&VBq?X
z`7sN4HY(j*Tos>rh!x&;9H(*D9oy3idt<D8X!Tt4v|;UyITcFdDMCNJW9aRZ(ui|Y
z>e`9=D(DBKt3oh>uZ)e0d4itVY1VITBv<txIlUDs??dez(f$%p2frM#*;vQh=9aPj
zD)V*tmYVkYmK5z6E7MQwR9^1AJ!TA(z0T*83#^VLNME6DZ-Kp)e+6yfk_M2Ru=?Tb
z<zhJQ>}d#bytlrY0)DrxxnakDvR7+qhxEn~x31&|F~L9OUYkzBTKOl>Brk{)F@&6J
zCr_FEXPBIes}BO$`V9NJ*%70hpZQ0jDssY-)`{*yS75P;c4xIDbDCGYZQ)W(zsVtL
z`+&%w7Vh89;#}hcrKF_LvTn%rCB;?=<u>XrWFdC<Fu_#w3XZ at 8->Tx*F<$uGLu%nQ
zi at 2~Z5Vf9z(UM;%ECIo<`JGSLp+>`!+h40l%o5P6+L`weCiNOpr8P>!S=<oT+v^Z+
z)*dL=#tGLVD}Cj{uYc3`gUp)=n8&c(#3KqZPw^WcW@&i3{)u=_!>ETLoZG at c%z;tC
zzKoa2d&EH|E*1Xer`JLuozA{cWAlG_YB?q<TVQe{f#qLX;Y)zfPVe(S%v=5XNl*?b
zXPVXb<w_H2Wud-gV6pwua*z)5^Ww<iiY2+PyHJwnWe<}ycBXdt19!rbdti^%ZGPhw
zLh+j<49AzD7eNRBvqPyhN0wcxUrvMsbs!t#joSD1rH|M&A)=rgNJefoO)L7Bwa<Wm
zG4hqYQfmcOQ>h>#Fcx)u?=%Xdel)tD%7A&NqVVO0-Yvlbi_sz_Pk0n9f3rmW-#T8?
z6(!;+QJYAb;CG{Nw&jx-cWoEXG9FI`Cf`LQ=l<(In5 at XCN3DW*7<XaU at qsD&rVk+G
z>0#x^?VlZe&F{Yz-+RP4ArxeJa4_is6ijyyAC>t~PQ)7p|AZSrDavL|C1mRvEDkXf
z!+8mp7e41()&O54;)_Qn)slVPZHbc>hYr)-0a!W1E#ibQ&G`F?`;{;y3T4X2mM+lv
zY_jpy{O$g`^fLjVCXwwN3KYix*RMB=xq5L~qpfF#ywr}<w&ahY6dmdRq9K5yOQfN~
zpwd>hofxIvs01ER0 at wBjWQ;1sGw()^D;AkL55_VDu6JPS3o>v#I)>MIxA at GmuNSJu
zcTj9*9N(AS2jgfTe7<cG$2Y&c^gJD+W8 at j<V*t%UM at 2!!0L)v@#^<Y6sULa{A0IkS
zMRphbMn{?>TfoZo0{S+O8da=IH-0xx%EM0iRVt_#SoELm&hOMy>ObB~_mG#E`nWlX
zCzN at M)p1AKB^K9Ve<_FS{4BQlpTS<FY0aOpwcGEn){4oPF%CpEx-MHb!A+>q%_Bc!
z79l&ijx}oF9ag>JbU$qnwtl>T?UD`Gt+8bcNg>twQ76z*cCS_cYpvlFGn)@DHDqnD
zqkGmFZ=Jn!i3^8dk;;rj#JwhNB_H`4SplZ}pakW@*2Itn?H_#*jVk#QJJIy6Q5LUD
zm)4&V_aFkZbW5Fbarr7G-fA8#R!pk6dnlU+I2aTX3G3{)VHHiZ{!1s-r`LAE3aZ5t
z9}cayOXcys;Kl}(TS^PH3ZuWpT6sU|wlE?8-&XoGeHD+;?EqqjKse6x-{aMvhw7XR
zbBA$>aFrt&GU0HUN}4g~90myXUH8s{G;SixR{djdb;Q^{CV)gc+oN4DPz9X5zA^p<
z<KQ72!P|?Ot$<*|w~=8!@*9g(k^{cnFFqEHgU&})m<%e=OO1LiZcMU-T#H>6lU!5L
zTq?Y5kpt$M=74TGO0gJ#=- at vwLEj_Gi}DHaEZ;A-#>_}UfBm`$!4KI4xemK42Qf{c
z9;HZ-oCICy{~k06)%s4V#VYA$Hg;3@`<#fW3QZM--dsv!Uz)6vGY<@iYgW=&r!1U9
z>{EC5k`Dz+Eqyg{G3l<XDr at Auy^?v0X3)jZ>ZO{R?~__HM5wuURm3}b`G}wMfYuWr
zT$f(Tu{V{LnQPe%tSnR(ExV!f!dqcA0-2}>RFQ4;U(vw;Rsht at vr=9fJqIL09!gQt
zLr_t1>6pya>RLYUv(1%>UP0!7L>0`aa{WKcHdr)7U8d4vor{g~6Q0+|;c#jz^?oZj
zH%EWXaC+L=_J>4vl#j(+$3y5Eo;RCV=AdnNO^|(UCcyPyQfPcpFb<N8fUi7zhxLkU
zEYcr{{3tssI$PjW+)xFuCNXR+7;jjSFtGsthaCYu#H%wC-(aFBB(;??tjxmYi(`8;
z(S9PzEde`xCv+6ua0Y`k))RI71|~s!pgC16&zi45-N$6IIu0buF*d_Ij->Y22$*6U
z5}kR$C(;omQ at FZ1_@=qAj}!k!PC2vhj$R;iOy6w@>j%0zwb2Iu$=b`OOJx6&ZG}J5
zV$1hFdNUXf?YvA9EvND+59S4Z&K6I^;T)5X{7TZ#c-DPy0?XfdfcFzUY?jY1@`ILc
z((e5$(Y!!WdPWROT&?w=@FaU4ANlVT7J^>)mU0$IZ at liafI6g7(W2?QFK`Jg{nJSF
zHiQC{CoJ3R+pIot%|Pj*$woiy!5+q+gpT%9+pPJ+t5XfgBIBwOg^yYut4q~(5hobB
z9T>L@$a<0S6@;G5VhS%y6sQz#YoQ<o0ZZ!E60h4M`t>C1Y57w5Q$ulLDeQ8pH at 8wY
zwfy7$in0mbCcuL8SMU$Q38g4{x1->}<hfWYNXh@;x>=JWIp-TGJfn4o&VTE@#Nz_F
z{T at F7+>|}NCyZL^)7+Urwl^E1Z at NGZCOGQ_Ta?#Emq3UM*9~j(OoLtBRK>%dEQv1N
zSv1Cy_v(mF%2*^Bc}=Y-a^LL6tLRnulLG{)_>_lPh^6Lj2i2 at Svs{tSi#t+pTV$C}
zX+&o}9i;CGhe#la2R4wkH19wGA_5_^JQ<#6D&av|%@YK={}O;Qr$dF9&60=6;%me6
zIIkbCxJ4}2>MCB>c>w>fA at 6utOTmpsWnR#Ng5p)$>vnhpkgmn==D>dq$OqVS9Jh5j
zqihn^$|>)`L~@aJ at 4mxjb<LGHj}%AK8}3Ggy9#@iM0!M>Mek96r)r+GE=$L$^aF0G
z$y-4ds<g~?{BwhM5N-?paKN4!Y0C~`*po%EFBUVin)XH77zeca77QEbxs39x^f1vm
zjml5%n*H7$*3XdA?a6z*6E5Gm(77^!@W~XAvG8D}lE8p+?Vn4J!>q?pHpsQ1*dUHt
zwykO8Bs9 at jyfa%!?D}u34YS2QTmh_QesN}`@qKcf4l92%hWsIHGamqKY9izyNuk5f
zdh{1cRcCeg0Vu?EG-BNzUTjd}&2hDuU#5c&{paU<egA@#c0OSswHX^PL<~$yBCcTx
zDIgh{qa3x2%x^@*QTm6h^}f|F-Rc(|{NN;nYnvvC3z*d{svMdib;df{aY!X{TF1-h
zuwnqR?H`?{tj^wqQVG^_o;iB<AW>1RxHzXe+~!y8+}vGMX`TWNHiPQxvZ?qWtu3lK
zsAN#FGM<&Xd;!d+g1HnXX_hx0f-iJrQ=y-oSc at uUW!#drRDrambpjUq-JP8O6dlSJ
zD7XT at VN-OdAbRaf;T$Ku^S$~VApN<_QgqqJbF0+-x;JDfI;8;LSiUItdg8C9G<=s!
z3EWxMAaAVVk$0D+#<7DALSedeNBIF)nbtA=S$gF-1O87zA$4k;E^9s~a-<ZnUQ0*>
z)-Ossk#VqlcK+($Wa6Ki0NioVVHmVL?=Uf)VkuX{D6wXA2Y?anWk at A;yYQ9bTD4vH
z%*xBr_sp8_ajD(Vq^&)+k>Q8`fuU24hAxPOT-T$##+D+~GuTD)3t(Ux$|syJEwpyi
zC5rcTOV?_&tLYI%a+020N8U&(_B at UrvIA~?CIA`WhLF$!2UP^RcLSj)YS_i#;$OkQ
zn_32F9r{Fb at LNqaG5S=k4|VzpR$_R08PpXPxYdXMmc2858e15wuK-Ctx18k<`$Tke
zj^*6TG*z#+ULxB<QEzzm&IbdZaT||JGE)iU+WlluUJaGc5NHZ`v*I4Ev}xW*1;K#)
z&Zg$YTyO(oBTy)XuQ6Ptb2SIHXte9b!1s&+*c8nx$1FliY(`-mW<s=O9+KOIymOv+
zb%HT6f$H#rX-{8n2m3|pH~r_&t#UlZmr3G^_)XqK^VIDi>cKR>a%3|5Qig(+n`4X@
z8<%2_J)WL4N)>_mo&ZytSKXKJPYWTOG$r$0-)ht#%~4Ffb}Dy3;bAM at +*lxV%yBf*
z at i5O@;CDbVIGr)ut at 2xaORkAev4kVR-T%DZfZ4pj3qr2KIvBc at M_}PUWnkB#W|PZ;
zU-ZtK6PrFoc6Z at HGg8ARc);6wAGou6`W&u{|2qdg;Wc at Xr*{S6E1km$OT>|VIWb*-
zfSU3#laxHcY25VCDVpK=&QRxKrmj9McTa2g7n^z7(Kc$!mh?bNjw!61&_M4gmE5-M
zb=&j-&Oc{^|Mo*lFgZbC8iX#NnRgQss5~CviU8Dj-<WK#{H3jQ-6Q#m13Yg6>}amh
zsB=94&)D8MC8@*#Wct(d7Kahtro=W^Q7QpG!$KEC9!$>_j_wQC5B(9k98#YAex3tj
zkEi=+TPDJPc=kzVD8$c$T2g5?Bmp#4e0ygZSu;k*=6OE!)v&<8wr7wQyA%=aRdYUs
zJbt8=z#dAWeFP29Q{1MRQM=D}<>KQUR>k5r_>89HtXA;uml>8E0pibPxWMj!bt3=n
zvNYGo&4KWArsB{;;c1?i{+>=iQOsO*CJpKlA{4$a#sUGFd!<p!bq0>4ZU<kpX-7mc
z2OOS4tKHKt{x0L?go+uirDU-T&suxMTk4G0qgryT=1;}?)kcgyF(YZnk5)A75i3Fa
zYFnUmm^>6123=IHs%cl(LzP1a=nyQYh}<`67_P=q_nQ(&C8XWyd(X<oZs2z at 9+&*k
z;GbI~+2fgQ2qijJoBjliAe637$i!uhW0it0+R^Pci!~ZglrT;0LQ=Ok*!5mJq31_O
zZVDT)j_qRdUA3Z`VFaEH&-bf1vH+I2QFZ%SM5oDfM2DDf?KmAnWy-6zJ9TL??AvB5
z8u`&v(P~$D$6x{$+|nws%x9tAdgC}iIb8uLA(_Fz*clp(`Ei0s*{Fj8kC#d`oAq!^
zAqXwCj_6W=2tiI<&S=|aU(b_Yb}WRN<p0qs`4B~kTKHX<iyX*AH6^~sR9KYxkvN~-
zDg5pvS#cFD%Fm4vs5!`mj5pX+^?y(J at n0os^&Z+pu%&2-SdAY%C at u^dmkvTU%ZlRh
zmQqN*5~Rt*+-+6?d#uDI(k3%h7Fruj9-x+X7Y1ltbtHUX97(_#RtE4lk7Mm`*y72a
z$sBo>{O23X0GGXtpVi@!Km~|m_3r8vw6ADmM(h-R*Fm!fMwcXw7mPh8Qf58Iv|mo0
zRaxl#8&A`r|6Xr~(rrEV7lG3=9mDimrGfypspOGT^9R$KfEEQz=XA+{;9rJ}9l1wI
zDl at McY;CK=SXIs^Yr~#Y$NBga5|y8}J;qmU@^$P%%kWW0#eubN`;NiZgcFCi*)t9+
z#RZ0sI+ik6q~m>}3>Z%l#!2%}m;VCGNCTln`vqFs^U}5BfhtIgJAyEI_5l3i-D*JO
z_sma{Z7p_R`@Q+B%)jj0hiSZ{n4;_F_hOB6gCUPsb>)NLR~gcaQJ9ja?{Kc47C(#d
zU9T at zMh3^l!SC)Te<c~#Vm+&@cd8tsrsNtCJ_(6n)pQX!a0^h!=*>csi4{%j8_Y}L
zFpI?ceu6-JIxP+l2VgQ;-7{N=!FVX|>E7JJuGtsvi0RlXOUwf@$%R)3m+*<P!;w=(
zC8;z$Q$V|ko|~9=^{Ku06R0aMr`HRQ`bZeAx}Q$IIp8XBzKpk=ch_xQLYNQ>0D1TE
zZ$YYic4KNvsf8XF>)Xyl5-fj>^h!4WzJL~u7{4Z7(&W4<blb86a42(_NaZ at z^-IG)
zT9xLh at hR)EBOP;a36hR|%CWU64+6G{4zCESX$bYI`x!I%hE6PGe4_!;vm*9rHTaWN
z1UA3=C~?q+h=Eds-&ivnIU~m at Wpm5-O<<K~w9*H^|EI at Ad{AyOATXoP_}G3_VnDr$
zk0W7)=u>pT1?<&;>wcRkr;X{ZXU)^Vd)KA@#7uVT#6Anhz~x-PhovRGg%?I)(g%a;
z&H}CbYT at Qwr`dM$0<M~3vw3~!ySPJF#fhNx#CL3oWZx~}IP}#oBePLdTb1NlsTMZB
zvnBhZB4e<PK6yns at 42*^<U4ArX;Bw3M2+5#Fe*UKjvhtcxeo$>7Rn>VV1YzQ+5Dy9
zg%;a^a><e-=;3o!?U0L-RaGxutHAPFjS-(36vr-D3V_g^xb|Kue0Ps~VxPQS*)+dX
zAU9m*P`!&zfzjjQ^CO`K at G!D`<30JT37O!*TIEB)`)?Kn>c5NvkXrC4dEEYDoY`U<
zqGLZs`tD=)X0nShnW<kFb56(Vy4UV!!5q8+>l!@%ad7LTNjkP8i={CozT%hq3tK}+
z2tImrL$4d?m}OWYraOP`lA<DNU6eYaP0g6NPc{To0Wh*KH2%SeK-Lch3;#?nt(980
zOlZXv819&kmY0nn>2g_a=8frY-kahNLWRJ(ZlfvsNNc%+Bg;-y;l2>NW2M7YV6+xW
zqD>=ce;T5tDt at x~RV>N!SB!WWV%=FKn|(Fo-L79=(Wdf?=YaJWgJy{9T^!sTD$r8q
zdjb8%H!QS9q|C?StuYM5gS>TC+ZY264AeIEZ1Xj<;(3wz8 at mPa6I_dmi|TfL6f063
z)?p|bdT7)(N`DkjFfeRwl#y8nJgH`3w)C*vRBJs=Y0UlPj8|Pseh>oVGFQlPTw}U|
z_NNisPvGPSdKLFA>yvfyOP$|W5{+C8nYdh<+d9G#4SNSx7puBU at fmx)jk6lu5wIZA
zH+94dTIR~GuKkK&no>2mFWx={n}1-?LJj`7!vd0s_0<hEQ3*6)p)DD+%*n6B!<h~!
z(gbSpC;ue|u6Kxu$r#qb7bDDO1pr1t>893VqzSS-dkY`Z at +B;3k8cYTMJ{*|CD%qO
zl;2h;CVpRMN*um(5i#|9K~3D3g8bzXrtuL!ME4B-4<<;SD at u`}qG#qUN+PJCm1EP%
z at 6Lf+UBW^0XsnUk-`vB$z%ZDMn)P$Zl;U%t)%3-W0vI?yIzx^BRzqB3_i at d(g{9Qm
z=`Q{JHPA&eagEbl-VwoTw;|75j=*c*_z{jqf=4GDC9O<aUXi0ObsGlMLdXYYeE5+-
zF;B9=MZ?kMULc>*uk%O&j~O>0xi1((y=V_>>nwpYP=himhjNhyOmErufVD?~Hp- at p
zAAEx^pRm2Ebt^CkDzd>S3L~=D3GkD9dL2_j5h$dAUgF%Tx^^jAJpX$iT2wi9{<R8J
zElYMvK(iSo2lCY;H?9FI!m(@{WJy@<#k>t!tdC4zoa(4tRxUxb=br!A*E+)8LrQYc
z(gT^?5F-i-`>L2m4)xJIrT)>NVR2tlkDdc>ubnK6UQ+}f-u`p}L%E98)R{b8YbBhZ
zGP?2Qa+$#}%ximlf1Nt6p6GD8_eTjB$lZ#@+==E{TPZ9q7Dsk84{~UGo$X<W2ZSdg
zLbsDBbELn0@@=A65bvZW5)r%^j}8^dh2y=t*els at EO*-}%C~je-hps7YbsIZqprwE
z(N#wmy}ZT8H%Lg`H|jb}q}55QXtXP<i3%l7b`kTfs#u>hhL%dnH+wI*%_u8Tc<!?K
z`Gyg^$reO&+Jc?e)C62X>fmln?%S&=@1?*;^|~BJRGe+jmh}FJ_Q$kr)}(fU8<in0
zc&>zyQvs2y!w)AC{3q1f1~FSI_6bJ at pTsI{TC)%`!ZA at OUJyOR{lO`jGWz=d%IxHZ
zp}quBx*ZX}b>27si$kkO7x at bHW{9+N%B&m{CM|F!NL^PPfAfK}a0h{M;58+}P{xn9
zW2}w)O)J1&En=Hu4&E$u6ptP|o4EedXKms!az4XXHBRDc&}{!tG*p|<)Rkt&>h1&B
z$oGU$yd_gAYR^7Tc-C?6S$6g`E|vDt2wPI2gjkYnL3%iW!u$>rY at Z<~n($1>+d^8I
zprv~uuU$SUmii{_G7AnKiGR3XmwiRu47*K0dV8MIrx`b-4<gx7z`u#EL~f~YgXpBA
z%SuY8F1M`U+d9`eXpry%l&_D$eo>uEq at L%}4JRJ>t{4)Dhp3U2p at tQ3F+J+EI2iFl
zkRvxMvOXCnaNZtxT~idh5z7Wm5f|0x7B?wq_>J>W^hZ)+zf58L19BGk-8vt>iTq_E
zMS1Z%LXaz_msaW5<U?VHmkzTqC)mse91K at N8c9Hctf)Xi&_LwVZO+Ib%Z1)Fx>2gy
z0A{wG*D>#xJGCrjNaUrS(%A21)Oj^^)*+mk5eTPon+gzO?iRBw*L#yWF98IIUyvwi
zdoOP_%ZI#>=S+nhJ3hdXjx<K1VFA%W)O<_rb5qvypz&@7AA^-InUsFsC)6Sd%^L%$
z^g`ofhBAs#rVI^}sqW18r&(WVEoVN;ckj}SWz`(P+Ox4Gj}%8R88d at c?W!756wJZ-
zE3hNkQ5_6r0lfubGg=89StM-(_KGQ at SMA#U29YKv(h^ZRj9)phW+*bKsIP?*{8WN4
z`f5*EGI&z9OA|eA$~8NDkM<Cvy}ffN*&;9GW=3cq_VEktO_#m(HDDK7+4&w-$}{9d
zX*#b*(kWaeFDr$)9u^GpOw2AXxS at eVc)jCpa}eV^(3z8jL#_aP0oZB%Tqyj$#`F&m
zpY*sGOQ8&~qZx;*W;Y|B6>5UtAFz{J4zbzDB1JHaCMyKS at KR4`kh2^*2pb4`Zx-Y)
zO{wWh%>Z=Wj%pZRcHapcW;8 at it<b>2O);f@<y*+KajXWFu47uOVufQe7V<rzTFxI;
z=<$MpC1+nZkgN!hjdAO_%VntbU;2IOsAx_NLO{mp|B#TwYmSA&NdUaei%PpY=H}a^
zcY2w3H2LXRM3w<@Y=G_ds_+`~cC;hApY8UQh9u^=_u0#Cy3Ffi|1TrQbc}Q>DoViP
zJ*uxm-WDO}zuv{DPL}^Qf4$lgD?D#qjrL=%b)Ee!3D+7+*cqUo**;Olf_$<f7{}wa
zZhzUEqz~N#^7frh>WxSMrNME!^Qc*s?yY|Rcqox6b1WW)$-{`-6z2F%4?7<pS126P
zyF}PEK_f}J#$_5()6=y5|5riuhrQZ45Nn1|4=Yi1OK!V?l|DF>Cq5S!vX2SLBnVIX
z7D*Cs(kWae!Xlsdwh#HTd=aNYP)lZS7vPcKERxp)3>%>@T_qp+6s?_<Mv}(tNBVNG
z$}Xw*F<~u_1V%j;d;|x6FU!-try>U_;c*uA!xRTl08o9XO{~<+kjf4hw=jvmKpE5i
zhII!;2e#f`4)svP*lEoJYFRj3)7SX*L0YcY#JIZ?M;~t^;YXuQA`3KzdHHrcyr#R;
zpU360lyLjkvuLtlC7oWQ65mU(6rl{lg3?EOML>7~d-!nBq>|Fo`@2&ZWO6xWp0H92
z1{YD&bXt?|2{5#RP_~a|o^S?Y at n3TagX=Bqtkxf-<~7sfYVm12HxRVihAfw*FSkDr
zCvA6=X(PUM#OtFu2j1t>F-C3Z_6^aes)WnlUBLke!-zGW_rmjd9!Dx<|48mr4Y&1?
zJWa7*X!yOQ7yDvt(50nSf!te+ZA8CO-g3LJ&lgX0M%8 at KdV+k9k<J8<Ki)TG(Q2&l
z+p_X3NNC9d0z+7i#K)F<6bz7XIqlUJ{@v37Q;)^8XI^W2KnTG`PkaV1P-HRPOll17
zV*;|U9M{Q5n%Jv)1~x7px8<68VfCXLU6Bhv3iCOTl9D__u(4^}sYbPE?$i+8Qdikv
z3Uue-7ZQl!A|T+$>3p6`oy_nqs1DJL9$eDb_JxeO-QL@?wB|!mlbVQ3blMA-94pq=
z at x@h^rRLLlqC5PI?6MlDCC1N(5`0OwIm&{a{au;e?*UdG|AUI*ve7<6 at ESofrZmkJ
zuq1pSultN!xMKhcw`$Egnr6HT36%c9PWW=b`nJ(0G!UpCOJs;W%j><%!(eMKyRsE5
zCAUQ4uAkHgG0u2Ek!fxX-B<&`u8jcLesH8p$#o#;{x3aok6Uj$l3$USVDvG+P{euh
z4_wMWdRpebXzvd*#M8A;v?POJZ*4Vbxk5blx;Z|>kP`k1etn{MMK!&GX!8wv+~Pog
zBl%iDR$#u|C`u+yvw>cF!_R#J at n7Lq#It%G3JgkJ=3$2tN;`<XFeGxFw`n1UR6_DG
zA1@}4&uJFen`WiRlhsK at 8!~Mzt|dPat!<Zd7ovIXE$r6jl=9BU<9-;ccG}FcS)_~D
zjYf!*?t5I|ZvlQlKCRL$U+(9V96ovXjt_uxtc*W$kELnF8?&3g9Hkq%4pZb at BLxQd
z;jfz4mBMS{q{;)@xuRfY?Sn4UQhX!dDRuaZpTlp41wt=z1>IjxB1X&KhSt6_fjXb8
zHJKUW<7J?St;od?!=NCd9i{5t9*`eXcMh&8zu@}NcgH#9#A1qt!e at ipmAPv9E8!##
z|BcD^!5Ar=SD5%~iFuw~1#7sM0-<odBJan0f1qzX)r`V1T6Z>eWUbGkc}J{A0W1T8
zqw-REZ#0dI1f=~XYIxaA!gqFL!j`%CMVwh#@_`Lx1h(m?VG~2~v5GY#z8 at eufV=a5
zmD22uUvj<)ZTVP4oGV83ZT?<z$SQ-gG(Uy_{)yd;?AU)Fq+|ZakLV8}nJY3;jzv{L
zfDc37hDq&|3mI5Ik7it55#npRdDME1c!#l~TZ4ge`!ZkVT`0dPGJgEro88 at 8@wVe$
zplxe80 at 0`DB5Ce=3l$4OiW><Co=Rhe&(4Rxp3hTm9xKHO2J({!oBgP^mc0TU|1%d0
zUvE7pT4g4qUZT}3!kqexHesLM6pO8H)r~ceRg(v&1ELR!st1cy{2$M3T1B&Ru=sms
zi1C^lpeKO6#96Y2XAO-F5U{#P0us9`O>C%N7G2u?sExIFREJ&f47cM>LTjuu3RGU#
zf8H8XaAw|b at 6LF9p09pHdq(`!*hP9GEX5<-gK-N>+%z(G+am(%3?P)rM1%g$s3PyH
zIzEb8UX4}c^oASuALol}j|oXwVTcQzd*j|?DXJWQ6!L-#CwD+JDkj>!F%Kfqci(`c
znhvr%0X87)Z6BZo;(pBY+63rIkC*>O<~fx{bdwa<v8UZrwRtiV48#Uapx!Hg?)C-L
z(KCqUTln7$?Oitj4}hL(3=FSoEYtW)o+iAWydb2F((4~FJk4b2HrnP9xoSCg>RtCh
zYOs^S(g5e;;f2h$a`XE<Sh3c<%gs$U%Y|qNH(o9XwvCP~Mg;MVQs}k#`%_oi1nSgo
z#oSbI40MR=w#u;|ThDv(F;^9L8)BN9dkrFFgWsCje$B0&4<TSUh}^3j5H_!J2U_kt
zM?fq~*Xz_8|Bt@!O}ilJj_wxpE@>>v7;0O(Y2}al2JQg?)Z<F at H8UP>e2%=mwIHJ7
zSls#M`A4tX|IjUhA8nSBesF+-nQ<G}p#weXU$%HItS0nqbVv>y^~-K9H!<n#UoH2o
zitZ1&T3O2arDLMsCb4tpKnkJ%cXj-<cEW;l%4Cwk$R)0tM4ZyM at j6DQe1u}fJT`-M
z2<(wm3!<bR5~sE#pvt|@7CCt=U(6-~Rt=dd9%>)|l&!hPFO=VXYtksLV5b-*&5m;;
ztYtemZR98!b2$$H1uqT8J{7QcMY#ZRAc`GA3SAm^f_Ec at t9EXc2NU35T?N^mq|KSd
zz1?^iTa$A;Cm&m-s?U^}z#^2Ta2aurwj&gG<xU`E!t(f=$)`?3Upp*`UtPznSv4vz
z{ePLEE`G*%KhC|QU0g4}v;sU|;o}(0uw2EvGK_)L at CBm2eTL%hC{X*b7tOpwJqNB>
znzuE5M|p8Je&`mhf(ql>OY2!=uV1Hx5!CPE>J{+GDx9r*u?FaI_fTV9wrvpLc at oQ>
zxw?mee;H%LIwk)1eiS=Lg-}3#9H{;@WL{51CPO1|2drDH?b_LqRZSvbX$6a(9|lTJ
zRKrhl_(zzts%<kA1bsUJbY^CGAkD{27Xiw2&!6yfe3*5w07NjJ=#=6ACPJ1jO-tYl
z<(!0&1Z1g+2FF6<3|CU;Lq_Pi<bzA7W$ekt7WrM{Are69WL$;dZ~o$I-N!f{XV&nK
zQiXD2-7bX;IvcsxH813FSrSDfD!gVDfy;+og-q<u4)R at QAlMgCcz$Q|0gukRwp18s
zV<EoMoW&~-TuA^#7WR=vaX(D4A-~>`7i&Jl@!T#XK>7$e)DJeaRr|t3GKBu~+~ZN@
zip7;u9-1S$w$i2jm at BD^Jh_bLp0dDA|55nzqaxPut~N?vgfaN)Pr(Gjb2#XaMa{-o
zgMNav($Ww7fhM$y0oWr>LqgxXf?&6bb29Rm6A<lT7D9$=1d>L#ZfGg?(4C8`QB0n6
zki+lrxdm083VL$(rZ5kI_-5T(6j_Z+=|FaN7Bd(~EUn-1yn43`sBS3+(NSLK9quxw
zN(vuX9Jmm-e%QuBBby|Cyr!3SB|*f)Ra!I<H>o2#W#|HR30;jq1hJnn!w(X>Z+vwY
zc0#wCYKo0bDQ@&nu5xh%&p3 at mg~z9Rmf~lMzPLzH!CayBn9i}{a`bS%m)E*1^{&=Z
zXs7ko%(3&SXFm{p9VIRnf-F(Lq?E*9Xq1hcmN>a8(tBEgk;4*9V)aGME_n$?vuaDM
zg0dT-lSHkN$aDtTPpj<YIv`2MHtJfQzTiUbo^^~apCz`E$ArYKD=Y0mMgK&6$zV&%
zon)-ea4{X<_fT<83DS=yEv}M;x-iOp7X=Kh{5Vf=!s`)jH~IY4 at lKY|2EAeivat1=
zd0B}s@(}`9z&y)PF3lGB*yqT$kb($)>J?nY$^$|#cRPK2d9$zv_dZ9|>{_PH$el#)
z%-=}R<+743#YG4``YFcf)`}`#H;@0 at C8*|MUMFXhRmqNqOT;ThDCG?rR9YvX`MgnN
znYq+UOa6GL>y2($IJV_Iyry!!IW=ivYUvqd!KVzCC`#>`aY*uu!gv+&VAJ at o4Z%I%
zD at aA7ps{{~6D3GW-|oy7pumSRdNS2Z9sp?dY7I?hZ9DB576}+X*8V*7-ZJ+)Fh-=0
zIGh+b;Pc5hMs127gZ0yy*vz}CAUD?wUY8hcvPldSX2T|`dK<x)$dboUw{K%NA>}GU
zZ|%@lcNmvr`Js#?ONa_Rt5QM_-xR?_aoHQ$SAf3AMfJp-H+)%a(qO39O+q<_#XK%#
z_rWnd9xCznXDOI*Pd=t~KRcUo)z#{0D?<4<emKEn{uoO!?LaNzdSnQPT0MOIb5`##
zs0hd?$fKqZADGW|=E at p79E(SzennJ2S>Ily2?`tnV4u{2k6gr!$7v~GaJD4PV9|Q=
zCgd8iXIlS$J{E8+_%Dv(d8avB@=CqPRA5najsuUeA2QMk(?Au01R>s3_6s;;s#n;f
z_}%^YjbS^v_Y3jz(VXtQLG4LK0F<fs;t?w$@ZC%pytWeQ at r7xmo@-H?=~dNbv}?47
zq#jBpyqzk!uw%NbY!X#6#y+}xABZOQ|DMw92h_yoqTp at ZA?Q4d5wDlH8zs1@=%(;%
z1~|VlQv4Ws_-odP=34j$ini5 at Z{L;Ye`_G*!W&8qy>xdz>G!;DS>Y&5W1IzfLT4Sb
z=VOK7m~&v|GAJO7DA at 6s^lde3bf?g-y=U(GaC5Om+~1ShlP|%gDFPM<pL6X-`?nQ`
z+t#lo_U|a=Lk$P;oYs~P%cn%(PC5jh6-gqVL5u1?8hgNJ?2(R8)0(CU5lgR5(LS1{
z`brxCl`@@bUAK8bk<}rO*o^QmHp>@u|AFn*TZsu>Om*(uks30AOjy~C7*&#+(hK|)
zgqtULYv&^hM^Mq75bETAp}r(i#lkXYrrFyjL+IuL#q5`Wq7=Gf>-;`kw?&r*mUh5A
zU4Odo>=5XBKLp!!&t<vnkuLL95W}_1Ww~l9OJUty at ex!c+-hmH6vNjo7zAAic0!X+
zzSv9KHBL1ZrKQnoD?+ew<{pBde5#S^XTL+|Cig-N;3in3ym*bEw8gMyJ0`%zDj3T~
zP2C<bzMBRg1B0oYrV?@|#4pVyN3Z5ze%{VWx5(%)Hf0#v%3jTi1Za*e-ttKPKTqiW
zb}9f2qBl6hWPAHF5{|FfP0WrHTnpaAk~y=(0eIcBkft?KhIF1W at tRS#3c}VF<Om&S
zxV9G(G-g5mt|;r*0NYRE-HSnSB<UO-hv%}PtK7I+JIB|rJK=-9lz>|aY1_Sd*(gAp
zw<wW<H=+_BP#|}lPTcO?;N!<wmpUmPVp0pnv;@2YW?`y9ebdWg_tV@(M$Dm&hFqK5
zr4@*?lnholhYi{8zlK+3gI%N#Hl3PyR`{PoJBt(u1iYw#8(vlw8GI+7+*iW$n2!%>
zSHVfgP(iVpV*gm94=iisMJCQoyDh?vveD{tg<qR9pLTh;m)p){KwD&K>V{X|QT?CH
z)1PxU9b at DSZnvCU!X7~@bGK0 at HrwH&>-T at Z9Hi3NYgiCFu%n$><g^a5^-VD_baD4;
zTj5AyZ5)(7Y%(+9n_4=Vn!-ilRN#=#<ho#^@1VB)KmTLh!6v=bs}zrL(adu57UK-{
z-TzjTYkyEokJF?B`*G4Ej@|zz41-wX@|A*e>G0XW*XtKp31$<JrR>Q)-TVL8tFQ1@
zbXaNn->mGfAv%S@@0 at Ud+UEYpI0POHkwPVx8`ZL{26%wy00W>~px at x4SdQ*|Ff43^
zMOVek6<_AD9+7at&7bX!A_kmyL#Pni3XiFyMqxnOe{!0wN3C$%x`dHsfB5r5A9aux
zY!6f?O;Z4uw3W=JVk)H;oD$4U(OyuKDg!qSTPnPaf8X(Q%{Ew?bz*(}Rna87hxJU#
z95|A|Uw~K7HG~$is$hrZ)PQ?3EBJx&hd+iyB?u`isu3q0F#VB4*5bcp#ku<xTGS>S
zqC&h%ul5i}D25`SKD3QvrAO1+f6j?De5!`(g+zR_0s+_1V8${*#i8P;j63=pl_ at R|
zH|i8m?GuSfu_pgaJE>|4Zl)<8c%*@iK%6Uf6Y7a9Bjv%?oMedk>tn!ZhPYmGKODc3
zjOpV_a|8|)Z|ob5DNK27{9ifD&7G#K&!_q2&}JGPzi%F}1QG=ZZUrMC!uevc#xF0#
z4EBtwG*O7=Gosywk!U=*HHvKA5V<U!-q$Dui^+GNkSiSYB9~Rc=GtT#ukuaL{{f>s
ziC6%rhz(%)<4Z>d(T1MfhHPtJ&oyA*nLT<iC at l~tv&CGFYYIi2x|8?~W7jrD6+l)|
zYP=&wuN~>%mm at kp4;=Cr4q)~1KPb(Pd$QC09E~TlgsYO_s6_=&13et*PlTAilb};Z
z5?ca0Q(@S6Wx_f-gGIUMz5<LkWzYsU8~Ebtnt<kZxJJR4km-}Z|CTTIjY}UO1jrtz
zb|RX>?5m+?jrv8@$m3C<7*QwOiIC*5pK;`>X#E}oeX at oIUjMpByg~2ui<;&$VTmC3
zeL}@d8<t?Giz)!kTe*7D#6l|KQ3_3|D)RQr&cLCe5fX{dslI_^{RNz7IQTIGf^iM_
z+Hg at iF<kY}V>X;ErB`Dw)4ojdWoaDoa|VswAr`@B&&|FkLHOpm*3?5IvcXxx6xtaO
zziG)EZQi?h<y-a<LH~^~<l*<Y`AI;sEHRwnh&~j9-=bhPsP1x9FFml3m}KEv_hK%0
ziklTrAx}XqO*AJbCS at WP))oUmHp6*Kq#0~LjMBOM+`N|V<<S&N(j29Gel$V|?eOW=
z>_Xt$Z8_;{MUSDzAR=+*Q5()C#*O+R>cT%c;d}g#Gomxq042#{QJvE`-FMwhtFiZY
zJG!IIL0c1`eap$Il7<YA8urSD+9dG-L*J#0-5oIC<ba at T3hX{ZIw?$TG<|j+#Tt$6
zqITq8UC;B4O4cmuo_fzmr)F+u6Pm%O at 1{tP4hWB0d=|^gg1uC4mC>n#$G)sFs9ZRI
zKetNV=Xe*DNq<k<c6SY;w57`<LK|PwIyp}oUaSvWnmc6HS-L(<_)E?@*HPmOn1wTp
zAj+~JZ4s6(xuEG8WBsmCy_z+01O!c?;njJ}{)qw(Q9?GZ_%;aL8aWG4P2w^<N9V at N
zq#MWOZTvpb3qH1q^BTIRhT__RK&%S=`Y-+oi)Ur0E2JL)+RUJ at MtqUyNpS=o$D$o2
z<@UPWPDwvQ)(op785$N*#6m{Bts$g6zwrwg0SLuz=NONGwu4J?KGBz;5WiD=yw%1$
z2fRaMR&imJFn-r820Ob6yoZe7j!ke^&`XbQ8^3`@*_e#nCxe{4H~6>^iCy8)GoT&q
zxa~1fsd0VJlp~keYk2Ejf3KfD1ul7eE6x|qu5(%`0IQ#|KGW at 0|0Hf%|8(<!g>@*9
zf-DQ(u~rx$HR7Ady=S>+?0N6R)yinc+dn^9Dkzjl0*5&FaP$MPT_D!MaSmzfQCRC>
zDNBBvNd0d*tWi|iKNY(m$d<VeiYmZ57HyLjupcM$=4u3u^fS#f#GJzZs7dM93F>@l
zb0A=$0c-})Fr~pQLgQxbWVw^WcsZlpq}h3E$ZnUBC5 at a+R{oYKdr&Ng|5-_RR0)|{
zn;c7b58(?^WWg+V89>)rg=s87^p$o#&L^rarD*y at 6pgXTg-~HGp-H-Fx4;=C!U~~P
zGD33Y9cdmcVhnws8opr%66qmovY53>qpo+db>JeDF6^#DVW5ZmcGd#vs7E8l4d%6f
zb&ZJAEPAH=XJU#`8NUaIY|i14kV)e17n#EHZ}_zrJ&dvO1UVMD>TCNneV)gj-Q^s_
z#4qUe>RBk;M|pr`f)ie707$?<_gV=W68?yx9#Xx+5-*Vg$zvYM=5y96D`CGwijW_<
ze$>dYnG at u8M4`edk|Z=F)aHFk+%ptLa?j!MK*Aw>6(J>S)>;D@?SduvuCRqm`Eqql
z<1VIEhuic9SYZsojEBP8_R_RLhdyMD2tTRMKWhfrp_xj}z(c3)?4%u>KVHpU(sVDz
z_P>%g(y27C{@rc|d(vwTkWqf7NOHhP3GQMyT52Yqibb&f52olLF|?LIn$eriW~Kv!
zaM>|%h*Bqm&V1Qhb>sDW*}Siz-84WZcB%0!DS;OT>z|g%3uhwzuvgqxd^hvxN#=Jg
z$JRq-cbi at _J<*t6<FTZa0>=}j&^R5mr!8 at SHJIi3p^;N}?Yn-Tv)P>a6%)x8X)^8u
z1`cz-H)Bf!+~n;L(R2)ipYSu|O%lobLW1F&O#i>)Nv!tV&98}B11-4l=g-hIllNOF
z$S5J|Bphz(YylBYl>!Oo(q=cIZH{)zy9uf)|A{cl{FwiZF#9$9cXACW&*6dx41%BF
zJLKEukbTV%bgu;Y3pq-#<HD4_ffJ1nY&_>imU*A=gDfy7B#ZIZTpfy#rCYx|V?|Tq
z$}|;iH#8 at H4sysKoF}G{kD%{mX%$>)ZQ+y*Cwl;arKY7*Nv(_Lc#4PtBIlv-)YMp{
z4|=`!7GUp*I?QI~jt#;$0-M?qY<8%S#mQ1~>*J8hjaY1}HB!}Y?EXCvlJ-@&2LCAq
z--u9cLN`Jg1vXi1sTFow8p=2CsTn}OSO;s+*B=O<4F9Y7C(2iAvF5z?=fH5hbOShU
z at HZq1L9m6Pnn30>>&fBz-3nhk?j9 at _`N|7Tc(ukGxs4(nSnOgGUA=Rgvy6Mp>QQ1!
ztw at l_pt-97d}RH}w#Sv*1gRKBgRJ%|RP^Vsq5a>|to(2&f`C>)^Q<JK+nnxG$oM-M
zN=CYGu`++}GG)(6B<{<Rj2I*^d-&7z(Y~<;3#`Bb16v9BZgk}$!BHuO>k!@oTGJ0T
zf7FF>uxDNcbdJ|P0e+-lNH!~sz_pal>BR5zU~C7txX07*4~p#g8>EF{v_(bW{XA>m
zcj{4kV^pXBM?kp0j89)RSxkF~yU2nQNEN`R at cVCQT+stG6qSF%HXrJ$BnXhQKMg<-
zraNw*tfSjBNA`W0s_xF(bD2;$a5{Kl8sXav?>$+|rhyRSZc+{!017r!u9V2HG&-Nw
z`Mg8GBv|4%UX9;U9q{4B!{TLf2~=JTA$G0wJys|=;plSAac{KeAb~zsr{UP+LCGnq
z15W?XXnry6#wbb?B>BLT-TL`GGHbWuI!t(VShOwY2x{BYLnO~#>oP0NtrxBS#5<4n
z&i;>@y&D<7Y~r$unZyzvZ%$Wm#Js}aLW=X_nGH+5)w}+(UK%?bn^H55<TL2A44crw
z+)e at Y7w7SM(TM)kd<h})x|{c7M4C(Dmwgzu2;}-F+f}s&u%}P_)>=*(^$Lh#WShkD
z(?mz at YHNNtI8!ujQaQ92Do*YYWFoim)HB=b=u1S&NnA^_G06}gNgnmiJ|f_Xk!DuJ
zLXE`T>*3DQns19weFy^g7~MFKuaei}^QvP?`lNJKj~hU>k<MGc1(o++ykP;nbn!tg
zZ7{Y?0af?O^l>(W!qH$qV^k#rPh<#eJ2*hX!H`ud#IOW&*@#HDka|FH&IWl|F$!Go
z>0*Kh(X+BN2}~!U32dZ4%6Yv?VwpXK$14SS1HW?OG?{6 at QPM)RAK1nGU2asyaV{l}
zFg_WtsoR2%QSBPgYO_6BWIG<boha$_i;eCxs%y-eOAf!aIPmb;DSiY<2-o)AWSo^r
zA_~YDlOAjkAMc)X%4i^4L7V<T_`6fV3Y&3{2s#Z8=Nlge*kt&cdq^7>3;xcXQGc|f
zNE(GLckH||*R7QL=U7s6AyU at QI(GrR4$xWMIJo_uU4GpLo|Y+GXKak)ts{uJ=AHSS
zU66=M_y=h*zLLx)UaMT%GQWJ;j6U#ENfNxdI+)ZMgdxOjZW+A1(b66cKsF+ at zT-HC
z_GL<`MZ2gD&yM=hB;EHe(b?M^&B8y8!6m3 at +PNrCSOzoiY=Bvj&Q6O*TlUyBhL`Yn
z3jDIBk_;5PSXBB2Fd)Xo7~-U+YSHm#`5F|DcocGt?C#BTno at GfW=szV6Q8NMXI#Z`
zhDw$nGziQ*f|CN1%#m)MWocW;HVn>QpRpQ4znZGzYj;Ci)cfSKi+LUEg!7-2`irnN
zE8POn?8m!qf^3XLDKDVHoY|BPh8I`1HP?CGCEH1rZ6!7u^xHFKgloO(J)t<LXbQ)l
zd;e4ks6te?!U!Sep1z!$I^zriE~UJbm}uJA{uDpM3$cJqKlbYTZUblxgIscioNTQj
z{cuyMu}CpVZW%MgxrQr~Kis0gq at q|Y?ovA71_=Xn4yJbV^i21#h%Vyuk2soB%+7{d
zPCZvRr9AQO9QH>?G26^F;p0k$1bKxKf062J{<@mq=b#o`<{cIk!<KAxe%y*chnHc|
z4NkYsoo2if6ZksFiSPXt;=T&Ef at H)aFVPb%!Xl;@(M&)V9qLnwjo`?Xa}Ko)4}#2C
zcbHJ~p{6CRvC$x~C3l&JTuoa9-1Jg`9F7NK7#R70z&k&5a=<z}-Tl-6yCzvRkUZ at L
zr54D+?Fu5r4aqqloezj2++a*J)g%4?kT9A=)x7gWO1I3qCnjCf;9|W)Dc;3>28&_5
zA6;=x;?q8|wXy>80J0w5w0vgQj87(np%Pas^A!iupAfEovF*|!SS4|REV>bPTC{oW
z6G}$80KURh8t_^0%u<ZU*jIh2*p0|AMZp83c9SG<ht3Yc{`jtt=$>xOu$GX!*o+@;
zMf<LDY6R6g+WT{3Y2l7GJ(Qnu;8oPL at -N2&NW%=lHpG90#xJN_4*2rjjCd($bp2#I
zXT9qgb-rTohd$!UWzGBwEr!w784z*V^5WKB%!)?~UCw`LTC0m0SCC-p=rd-Llzp(2
zPcRw$`$penh}$dCxETkG-ocN<-1nc4418N&?c0s^8T3oN?1bx!&rAr7Ts78Kbs&pX
z&6O9*{I(n`0uv&)P>o(~9jJfvg_ccuq1B at yZF*y|Hw{+X1frgps%9V(UNx=ol;3m~
zFy!f#_7Kj|u%-+|A%MdqW`kBN3(a%lACp8(9=AO+tt&IvkRs&QYJpceXwc|4b-X?N
z0litB$wjUbT?K!vf4RPUUBLKch$MR=-sPn=ZJgF=8^wgVReOksDfpP-Bj?lfGspxk
zWZFg-9>dt#!iST~p2yoxfXZ_3F!*Z1eKuz>BOU1rts{&%WTx>MBA@)5u(5bZ8X>>+
zSK2?%%x0l`isrfqxgej9m2zOZ7aFp;0jZW#HZE4h-qPK at Xms^!3aCaqh at Y|LitS`@
zQo>?;<X{KGaX_r5F(R!#4D#LU`V6P8T(ms$)RjVj8lB>(pxZ^ih^QU$ET>CxsloB`
z94gfYEBN#TLRP!Y*)zFoP4%{l249Dp?@%TjK<bh|4mAU`+;d;@6=(L5{b%JjpeZWb
z5q;GrBxYA@=gJE@&CPSdG#~1{K`SwCs*dvMtT*6ze=tAWX#JgoyAa&_%6q}MaLBO>
ziBUwG>*cj_i}gf6QBq5xPp5Mz7C~fz7XTUNYEo0r8hrti^uU;qXT=`^jqOsQ(jdC1
zG>L`$ovB!@4KQ7asIPX&ig)?E4FxP%?_^yKR<WwO-ro&ViN}657xI;%B^WS4s9{iJ
zK0KcM{<yQ=;OMxp8Vbq5 at 7h753^D&yGjj9wPs>$V*X?dENq$Aku>oDvni7(N01Zh=
zTB@`NEyw#zINq*s!tb&9Bk8SU>7s?_-1^n$sAJ?@-D7DNV3)8B^daJ1&4=;}aY`ZE
z-MYf!mIiLpvhFl$Zt9(B8?RuPR$k5GE<RYX7`D!e{;S}Dh!uMUujTR58xR%3X_P=S
z{t at w9bcZuMy~CKG%b at A@5c1)4uFS^?30U+}-|BekCnrzMR;fqE`|RSC)YKApNv at SG
zt}Wu|inrs_8u=BOhyAtH*KZaUaB1dqpy5Zg=5;-#w%ZuOhSTX}fegh{&8ixuAL2&r
z&bQE(qwfJJ!vJ34RvngUVc=A>-2 at sq5MlS>r6wUjW_p6eN}RD>D#PXoEQTSr%{eVS
z231KpG8R6|_=Cs#w$jdY{ivu&UZLvouo7g-6r=+RSxa2|6S6_}BSQ-5YWlnKXlA0;
zDHZg{#b9W~FigvK-EsnjkRFu8or$g!t0dw17&|E0*%?h6t$K`k!;sB$o_0-E80%r7
zs&2vOlf3MpPlLaO<4K-*N5D6H?v&VUFU=yYol0U{k~d(Kn9u>&Qs)*0pDggcAkIFU
z-vBi$E=&J+8V{pWH0IhTnc1=}v{{3(R0_#*b88|TCp7OvlmY!iBKA!vP_O0c(bxi?
zs6|YLw%Ht;Q+7STCDZLBDGU`czV;!v08aZf6g1i7A*TcAg9$;$3P=~rq(h=pkj8pD
zCSqU3r8QW=K9oV|R=&5;PErY?{`cBH{~B)_Y1n@>qimdQexg&Xny_dWaw`S<#hi+7
zB;_f{$m at P?StNeoPEwB`YKi!-`RP_~hCC+`tsexWNhK9;mJkcGcNMah6dEaS at BiHi
z`cK>;cjh3 at PH?_Wg{a3eluS<iZi$^O at p|bLskK}N-GxLer1udoJ8U2nAcx+VX4Xo@
z??HuQ8J1PFB$#M$9akZwK-tO#;<;j6W)jPs-ylq51PJ7FUPQG=xwh!-T6;6SOmdES
zyuBz)og0XU#<aeM7u6$xn?to0s#^%lN;dyr$<9XD^IsEYidr at E<2D_9bYyT!T(}z)
z)hQ%URYKAtG*8DhA37+Evb+bOmnYKojQA3n at g)}o?9?n;;+SY1`DU(Wpzjq~j$NzW
zmJYb{Wds~k!|E?ztcu8&g`gjv;DER?GU6=kNId~Sfi?AW>;h`NX?&qyk!Y#r=}DfR
zl(0r5n8k6d9nDuBksvE`U at 9DNzxSQz08!df=M;H)$+vg351MRJh3id#nLC>XfWdOw
z!Mf!?xMH4?^p4{FQl}UQ5Ay#>zl=piwF27O?vQhh`k^m|;MN*9`EWMIZ_K at Qm9`03
zzI;9Np?{QZ;PRi0ur}w;b>fr0j-bWBfJo)bzH+$z$D2CbeEEt^?07*WYE?FK2_C~7
z>}||hAd5HeS3;O3)rdQkYJOZ*>C`S+{V!INKLOiR*{WY61+?R_!ps44ahK6x-?zq<
z@<L*;oK733g;&nqKnOzH0h#Q9axnY>=`zFK$Ps9~TFDgK6BtWj$ta^GzDM$hn{wW3
z%{zYcedA}M=&wPGi`AoCg?d7B8S_9ih$Y&4lS50!)3o$fIPeRPzrfLhQ9lQ at u+6Do
z+2ygl9jf_eWYcec3-^6km~cZ;>tBkCXT9$82v@`vA2*t%LAtq5wY=&xyjE`sAr3or
zbB5L!FexpF at A}PQYNTOo<6L`SbcGzqfN}mkopG&rHB?glUmTcJwk}B-iv}S+KP0OB
z63~yz_Z@>JbTHFErCl_ruW&|3X5-+C?DfTsDM`u(kvBKYN|^h1-;(@~+AlZgHa`R}
zDFl+eyBuN|Bh<aPw)nye>I1gO<BGO(I!X4U2~AF>i+R&3R%|ZlCS7T<1Iv!0u?K)(
z8$M74n at tFXhPrz#0l_`w-{;e2%f{{b<>|ml(MKsi8jmX;^af%nXSoEh?89R6WyF4z
zffgJ;%nqvbEskLd;Mcbyl6;Tbe*J3bhLDW0QD1Dy{u>1urM at vc=U{`ijBksNtIESC
z6f=>2;XCg?V{InKwW9*3)w3YZFfluSp!hYzu-{>+Rt2^tg`&3yC8jY7?t}=u%Nfxu
zfxOmt{-1INHj~3teU&DG3-v^j#|2?12f+DybF69|8RuQwJgVKJ*%zJQyB6!Tq7LeX
zZqeyNz2QwPGT>)BNG?ZI%q>Wh&Nl<_4O1|x3IA8Ae3-n%Orf&hk#DWBv3 at u_CNQmE
zvX%#O6lOzE?oW9*lBCT4zJLu6FngBuF>$5@<vzpB)IViW#xX3rjY>@(>(84wS~X*w
zz;2XO;n}b$s2yC!H-!+HDx~fQpC^mKSEuoK#RO?&#{EFe<OY`zdL26^ga)M5u{qky
z8k2vyp~rMGSpuSVsOg31ef5G&-JrRP?b}n`j$@Q1j_GF(EUYc_nssfZNC`r#wKutU
z027&w&y37A9>C`(+L%g_v}@(zn&ZIeX$ks<tO^yD;;-$$3Y_a&+`UY{1MBtIULN0O
z-~VHlW&Cuupy5by^6+m`mes#<ipfe$4F-OA1p7n&vLHor(!Hx7og(VR+GfVIs|Y)4
zB{p^(@VYjrgxdvhCo0GXxlnq+OruOVBZ^f%^p-?OO?IH*G5`GFR~5s5$&s$VKqJr_
zp!+~`JO>nMfHUD<)Jb6jmSEif<$LHd$pNIOv>+CYayQkdHYa>%;qJ1q&<Bl at df~s!
zxQG}4%XEu?>jMAwoLhq{4vmd$d9`VvH2DF{pz4UHCq{_ho0 at 6xxoHcOZcCs`R@%CF
zqDNK2`^qFj$7y+=INCQ0&HyPzrypB?pi0pk)k+pJ?P15{#UFJOF8vJuq*>t?6=N$-
zKhYXJl~9CtU3am7B&5MtZQT-s2!KEZH*)ruw7MSYu7U$;^xCh{;hX)9VRlfv7&}=l
zriOmY+lUQleY%H(rRn_2|M;Pv&VM%N!dyWXrlJ+>c;rA4ZP?hEf`_7x_3ct%0PGBI
zkfX_<aY*{OJt8kv1;9B)@C#BlHgl>U%iR87SNNm87YhTH6|zN^SH-%01#KwllFl&e
z1M^dyKXrw0h9jf4FCO;fi%e8%gn>r*V1Omjzc!KCH2{@HjP3sxnfo<wLws~ty*54`
zHDYcE>CH>|>4&yVl)PGxRf-B$;3)@=(}(Z-ed4=J9uvB{p709%N#v-gPudlNU6(K-
z*9XJ}Z(?YgAP>;i_!JeCWD)~W at LbO_pf!BKvfw%;$bQeWDP8xD1mxe1L_Frx-3Pa5
z^(Ydz<Fft;S#}0;p~n}x=F+>kkbf&*poh&-pwdUC0-?wnKbSTmtD9A8J~S~RN(#cr
zN0U*NSTS3k>m8zgOY1<ztvOS-kkb&oBstk5;*S#~Ik9^ypPfUIvDZD|!7{11o_h$=
znmq9<v>ZV8OyI|yF-y$|I at U*h*XbEN0`mvdE6+j+9vk9ZeKuj~I_hMpJ3?(^b>VJn
zxm(v?Yr{w;vb>T=cT9hMg<E=$#8;+P#K7tFS+-8dtX*ZZin{ZY7$srt4jimV8jR<J
zS0KN at 6zr!n6N2&Ozrpx|0YN(){}LSARfstepJl2$rNWGYpFP9eY&z31e&o3#VsM?#
z)JAMD`B<ojPqPA79gF&2eH9TN1wAmb5b4uVwXxgF(*FVG7bu{MZ19zyepG^lF>^P_
z6h`!`NpLGn at M>K&s)FUYi?M0-Bg>JgH+L85gQ5+IGQ?AR(<I1_eJRsn$CZ}fsOnNu
zw5nLI`)CHA<J%RX+2yV?2zJG+&q5gM0Qy_D>bVZn;2a*=@8GOUlXl3>k|-Heas~9D
zYXR~#${5{B5yo7nAip at s#r^;x9mB!gGG{6tn|pyb3kg0|aMsWgmJcO6sFm#n?%8}<
zHA7fOvA(p!KD=3#zN*kn&9bpjk84{~wv00#K&Q4Oo-|DZPdp?t19=Z{$(4WoU)9G*
zlX%S4XkHkyS<}Hrdg_p<893*%4ug?R6HzW=alAkrESWfA59>K!?Gla{s=WFT7JjUZ
zFYBiRG>(6OeWos#i5Z>@22BhI8DdA1fImcgA4WW&E{;#_Yo8h27mkOD$mRb0&noHx
zM$ibJ|1%EJ>(oE6#q(XtkwG1-qFIpex|UV_c~uHLh)Q`0J=?BJ$90UDg-;esXT;s9
zCED}}!xbVRqI^~~^ASn3safpRn|n}o=l7J^f?K9HkspNGAC+B=mDMi5n23MaNZ2p}
z+fP=jZ%+iDEvcIDah7(CFoo#liA}Ow-h1G8g#Y)Mk1j0Q`_#_qV2htee((0RzFY+~
zMYlFH+3P0UXT^G5HHKzIk2H7hBXAJCU>9W?ZaY`QC6}LXN{sgC4ga3;f`2nlUB^+z
zGx`;8>?dK((R;2VV11K9XJzh5-UMS~NN$`FewhiE03r0}+ at Kof<)%=|<b*h5%s6G+
z$|n~oN4>e1cDUK&nyMTc(XT4xhxN?T#@%``o^3 at tvPHQ3Ro#jN0!_f2jxT^HZ}Q|W
z&ppnEMg>PZdVhjA31;!7kCup(f1c^KhCZ5uwYKTV&6(it3}}Bv^iDe>pUW0&7k!bj
z-muKuOYP{{P&|{LHn(4s^a)yXIQx(&0_=L%_ at +>9SwBjITvlkLV4t!}VD#l~vc at cN
zES<fW%*_WN1oFH8ByXQEGq3z1z)kKU^QvG|Qp{|<X9~r5ipoIU6Q<nB*9_(1$5w~@
z=QK;MgXVRY#6EKQOE|kB!`>)pi&UjxjZ9Q6#Dx?|o%At$<Nk9wF3HY|;$idj(5}=L
zyS*;ZVIQU@`_+TI<M6K_<U^LFtIlrFW6EHF3txn+3%e at H3r^&pmhv at C0?QATQ72r7
zA}Z}enWtGBTw=}+ at Q2G^#b$x0dE0ZCm2|5zsqkrQ3-vg-kBeI4Q`9$RmqRs>zSckI
z`cEB$GeRz{_(&5TYL`)Yb{nE#Xt{ob2g(N#bXU(p6o30eoqgn%FVZ)r$><K$*r>8Y
zOd}|;pX|edjPR-s9p~+9%C4fVHq~P%MzK(>>UW>b(SOqFg4ye`>GIK#?`^cMrR8Tx
z%KyYmkw_|rpD|+2sX&bItV*fWsy7*OIU68rOAM2c!lTyUP7N0-pvjil$SVXpVT{_T
zs)k(8Cazf61r(;!^TwWe?2H@{088eAl3g#d@`$5Oh;CDebH7gXn$-1B>PV0!y(=~H
z@%?{vbz5=tR?#`JvLq8~{;|*3uLa02O}n$w20`RX^1%kSs}~aRn6Pv at z2EpSW~NZQ
zVs!VVY}oYc3 at ReeQyivnJZ2H2c&en=t4ln6+qz&}7A=frafX+)Y`j?ZCm<K!)?z->
z5bUxi#h2UXd6h%P0Ov<r`lWPbh^;C(7+x}Uptw}^AH9QbN1e;<v(<^3?nQqxmr-=u
zJl`00*QS|xy?8Ks8<z~{c`(+gBY*hfa>^RCdCa*0$UH&cP)F7+ly#3BduL%?9f at Jp
z2aqGfg7#VOn(LC#X_?Sg3phY&;_Fjb5aEy#xVv3h1gv4uBfapN^<)eMO at ej3k3-ua
zXhyC%wbBRG*yB-BU)h0ZhRL58 at kQ|+O$0c*_l#?*M$r;{x4FK#=%bd!-`d7wWyj79
zf+dUeBQg1A>i%EE8udigQ7oQNLmT&&`*~=4xs}B=x>rAL&|7{n^5wL(_16QJ!nAbG
zd)rWIlOpiWzu8rbm3O#6!T0 at K`nNM=6NfZa{X=Y$k?rdNOVf<{_sP1-7RZ;>=Yz2t
zPMfm)>+EY|J7duYw-AaS3-I{|?_^C6U1()&UDI;RKCG#gUB&JIS97(zko*i*j0MY6
zBT*hNmGyveP8=omSsiZpOCe@%T|R3MGv}V+QE{+-4G2 at 8@z6f=5HQTiuLzcGpFm{o
zPPzLY?MP5(4RLWUYKu*Iqg?D`I)Q!x{8(f-QMeu>zNfK*ACEw9a~FTRZ1t$ayPVlq
z;FoYC*$|1D<s!cq>!BwCGsUp#@UfA=Su1*g3cP>95g0EMwt13R4_>1Dt&KC^J<#W4
zhygnCYu*^KvtFJkq--KQ20$)2F7Q_wE6v9u^6NhkYPsJ>XzZxs#J(V>bYw(}e7%z-
zE@#5i^|b<>MoGC@;cF;<fu|hN8`)8ry8p-6prns<O&LPY_Ygk_ at d4d%*LNOO-2O&_
zuW#(Bd`!H8@~?tS9K*c|Yunm_vsN9*>Wd9p7gB;VTgu)1w#S=UfIA;c--QeIm_JR@
zl_B)bC^0%b-Ex?!_y7ih%-%&K58y>(`nwVX`HaEc78tiz>rDxek>(5k1Lqx*8S?A2
zcg#;tMr&h?E2h@*?yN}`d+hO++sikb1Ty5`w3n{7harFB*`<!~t=}X(`Ia!(#?Q<~
z2D*OwQ-Gh%ALWc#HNKt9g1F9~b0p^S^3rOrnN8_~DR%8VK0S&BLX<1jp+#lIobu%A
zyWUO_X1C!<$xgD;%B*db)d4bL%d4#hfFtoKG5|U=D(62`k6cTN8lbCUcPwj4uz8>J
zU(x;|Nlcx1!{T$v*WssvzFuwf4|bzmtPPl-mp4QKg!nTtB|MO>WO2E6R3DI!h2fC@
z#RLiPK|5g~MFP*sW0kD?NxJl1#d{N_2RA5=%6gHKSV35_UgeRY5Y$H4Y7lV*`+E*@
zLj{FM4|4A%wc+}<3{Skgr8n;%5YvgtQWlRTWUgtxmdOJ5TAI8hDN%CL)%eaET+%pX
zhGwQQM1aLm>N}L}xma>P#_IS2P)8l?)qV5p>A&-Slvg|kn7yqnH}5BLupa8I6yzEx
z)5%QT at N}dRAz(y(u}8HanOawj^y!9Hu9Mb9q0I*M+?E+ at kjw-PvMw&vDJBUN4P6R1
z2IK%}W6(e+6u`aYMiJ1B<RVhghh=Kbl==0e(M(|@>#~fS;T0FwOsK{qPhF!c|8vwH
zkFdKpfODJ7vLOS2x^=i at mHfgyIvq}_Kb>LN8H)VDS7=<f|8Tr8{Q_(yOBuUDr8{4G
zgBP_Y1^Y5duQi`<Kr<(2>URHXpH1>wIrj=db#58bRxHDcL8e<loMG&pbCDWo+Ge<f
z;Y4?nUWf at U2)*jcrjog&Nd`OVlj_H1CFhvkI!Y#xVPl9YrfK*;$h-2PWl5ujkw<!a
z@!+3_w-fSWjXk>SB29Ledi^Gm?4enEcX$09Mw$LVw|%Bz*}HXOhcJ_W(T3q<t7k;}
zM97KMh;e}^4~LYR>ES7%6%}wXg>`BfIV<)r1^|r{5%VP+4o508-8m)dkg#d?iYbE0
z%HRm?v|}*7H?L)JIqDp`iOfGtwR_E7(=>iA6qG)|*s6^m at 1)hzyQkAtXP-Ff6*JUS
z;6o-D-%~J-n=>9~0$47TD%v`|+U#d+YT_q64JlF=S8b82FPj~9&Kd+Lrh6_{77Z(e
zW0#kbl}AS`FH-U|LGQ^_fu2b!K&T+mQ*gVnP!*^Wi;eR&TQ-3QjY$?uZs!?2(&-b9
z)Ts>n7w*ZHE)}xbo#}aR3v-;pDRR at M!xd$H08dFm2~FuhQkNKJbQ%X!jCr^@TGy0F
zb$P285<b^RjT2-XeJeS_J3h~xI{p~f-2xvH5t+CEjsugu=3py$B$7q&Fc(#KN$TQC
zOw7t_sC)i|qMK?uXZC0Pe!8vE>go7_K2+%*WyMNdWb^^vrg(f$Yi2AtkH}Zv5X8cZ
zuE^^m6qq|Z4D6;y96Q`Kg8OP0AE{31f at 4(0Yl!a(jA%P~2Ue4xjzW-+cYIyw89g|b
zk}JB67$=>|NM?8rzKH7nh*f%3GwHeq!r`+7;VFTyHQD&UNOJyg=)%npi`U6VRK%%C
z%7ro8sH^XS33pdQFO1Fk4Iw#a<Ox2NZciC1G&%&IcY^%0N9rV at TqJxRgC_<+`HO`1
zQoyL_${lrNv@%i5|Eg+^;E2tI$o0l^8`USf>6Xn|h=_H!RSU`*=Q0JIr)+~-QXMVc
z;}(AF<n$<jw)2<Btlamo8Qqi*x)mTGuouH_R4mJ+IAo0hY>UH`4kkKIWGd at zK;hxm
zF8L52W-~<#PQU6Gq4jd(Z(7ia16Y<5$=nf{Pash;eI;pT3L1G+!$o2aGCrk%VH_AZ
z1v82vdmJfnlF7wwk)^0AY4Kq1ImIpPpX at Jo;;s2mbl*6c(@XXGjVUOC$_q`3TNz6&
zYji%_=?}n^3_O?%e+%rq&7fXrsLtiS<tN5XvDG8ORkf@`18xdgo2V_hD#U1tfE4qs
zCp2dy{}3Xk$8Z~&3cP$-1nv!_^HWp at DWi_L^o$aK<51;hE<kGr-pvR!T+(tgD#+c@
z-9F5)yoyGk9%`uREg}-a$aH<qxwh!tiX4L9G)u==Tp$~oD00YCJQ4^9Bkt)2wJxh2
z+- at 7#kMvEp^JLo7D^;m25b-Edqc7KLlH37^J}@(Nl3U6n(Rc+TU!&y-fd9dRT%4c?
z1gB<N&2<HeczSp(emD+UM!9>!>m079!9Q48`D_VDH|oM>P6Wn<m^t`I1P>kOm2|!m
zNp$pO5g at +(bh+Pl_cZDnszTK;lrT3ATMM;mEOmE75=Ec{4RBhaZoDp+r>n95lD~wv
zk5OARSo&B1fokN#*8rdXmq(xK*cM9GhBiC?9B`d)@q%z{OBYUcPsMm*@nu8{r?|r{
z-#*i&q+wh=f?$^!x+gH2XSy+{L~EtjSb!U)5Zk`=M9XWX#u{Ykj`>1vpC;e)o;Rop
z5KzIlzRWg3;(qg^Wm(I!VrMh7CP{yk5spc&W-I^T+r=Y2BrpWLL%7YMd8wDk_~mA{
z>T#pR)P*Gi#sT+8yFp8p;bj=Rl{>$(okW9khukQWl0hSRB?D{r81j%QZwTYM<ci5}
zb at o8!`0`DrlRU#cau^PQgWC-*5^SQ!=#BvBKdgMB>UPleT!z{APV6_txdGC+euGkx
z_H8SJja(89wPLWqYTN@^;ZT`an?CkrQ-o+!<!vAvi{9v1L+AGM<uKI{zHypbxJba6
zD_Gi<!KppC51N+<jL=7DxtOHH)ic0?0nv?UgP73QEPm1F36VWkjyu6g_B;&5jj+eH
z;)QZs4#f<Ns^*78n_pclk5LJ!gGqc=OoR*HC4>$CeP;ZHsEbN8#9~aiTBy6sQ)KwH
z-zc6SHJlUMKm_NdJ1e81?w4NgufVtJxYZ}Vcg&U(qwNxUd?<B#cTTh^$*m1n{IQ#+
z$51x}0iWYJpDP}b#KKE at TxX?>$S_yf9R&A$7zM2Yk^+GLbGVk&8oP48cb+sEHpVoC
zFHW|eGf)!S0%+RuMahY;XGJ?p(<1apo+C=W0EY0Jn%dRQHAa}`={g?UaR5AK9Q6rt
z2=gP3Dz|5?mCp_9ITa}RBby)Mr#C??F)b{~RM3#G4$yhT4v;`48jjW&K#a#LqjeR;
zQEunDFLA$QP1CNIB|QCsBdXB5!&B+FEPZnhLx7dJQgR{{3zVuXfN=NXT at b>l<pCNq
zW||POqAF)Yi=)r4fiC!aqFk7>N!-6Btk3~xAC)vbmIY=1c$)lWxxXZw*BVpQnY at om
z=v)R)9LaaW&fP7jF|#MgS3vwlB;cNJ^mPp?-wePjG|n|Z{6&@+!+6|=-uer9W??c=
z#Q8H-B3oCQ*6SK%kNvXrgHM2}F*V3MfD=ubVEv7T8VcU{L+4*Jf%TtK{1asu|6$u@
zj9MU<w*rhYbVTuZ5!Tf{WTURXQ9_?&OJi8nYP7`hdqqI&Y6*efcXaf%iGihk7--5c
zZmPMafi$zwf6)m_KY|vF+=ZVdll(q7YG3$X9R<qMCp;i!pDCl(Muwx2j-J67JvuW-
zBn^5?ZWjn<(=g4O8NT8NNl7`=Csjb~;xyI?5Ivn}N_%V^>Jj{u*W_pE!9vcO9z>SW
z<w-yMK_?BQ^@)V^V8tXKj_y17B^$*H2~U$Q>t(iNU;(Tj+HRd+I|$a|KNuMmjaxE#
znTW|5B~P|3KYyd+u2!i0jBQ+f6}MQ|wr%^NvLyU^?mN`w5rnI3jp&txv%XIVT5o(r
z%RG!2QnNB_F`A1r>KGw-Qu;lq5KIfOmaY#_GUqr(Ls&ErWcqg6pN?3klW%eR4 at TYo
zjtHaJumkjq{E{U3mCL7?1jX_PFm|{A`ada_3J6t<ULEKY)C8N{$YeH?;qDxlQKk3c
zmlL5(AXlLf@*Diuz0<G6W)#e*%&-ZC0(W1vXW*Z$xoc5O&C$wY<t6)CP;B=@>d`=>
zReK(Cqs?EMl-l5mdSx3$v}&51eKA3I5pDxIQ<?V$vJ;kZuk5L5brx(E+ij5}S~;Wy
z-rJ>$l2F23Mww*&d!4*&qeD&LwtFE at z?BtV-!$(w#ry4TSQ5}S5meo!3biUGf_^Zu
z1F3z~LOa!cNh>v^=U7Q125mOsGqeQmmL+9V#Q91J>jR&X(}N^s=F|fqxwE<}KP_j`
z>L3pE46<}kq~BuI>%-{Hwh{)%s#Ud)|hlDdQ?&D0W_uCX`u at qn#bmu$9dR*W4p
z#+J-Np+#Ei4<~TbVLZb7L1)`mMv{E8>6oQ}^nXyn_0O6KgWEKB9_(4sOJvtf5$r%_
znvFb>;Ec1C&Lx<?AiCZCt<}}PT<&e4(Xeqe7e-a_3c+$QZ`Ys$xBOGuQTf4TWBTq1
zK?K5>qNr1BO%#fnsXAKUHlhYhTvWx5>iYi*=2!<GP{Q1zOYxma4Uf1jw_#m~R6V+R
zE6 at p7O}~7Np!a~hJhPbtUBhR*Fo|nT6#Oljq>m?sNJ_A4b&!g~O^dMf=RZm%Z<81r
z)qhprfvws*y7UG`5)0XS-w-oRW)J936FN#nq}_q9<c=dKrgt9lk)Ps`OLRR_OGL0`
z6O|=P3gqLkIo;s5KTj;N>>__N{0l>Abtw1OLOJe5&_7G=xy${U@|(`Y90xQ~BE at qa
zXrpti=x(Iz5AW3d{n(+m#S|yS-*=Trp5k1d$u4k}45b}T7hY#y;=Z{_A-AayPDZ74
zYIuL1a+MD9l5QaT20{3=^BDA+?x^F1RRg~WlkR_>?Y5vWM0=UGpBJm>oALvOjnJ{k
z(9oO_A{1Af&R9rreXcat{0H_yM9J1_q_6isFXOW^(KL at Q_8EFTq@l{XK`1DYz3Uy`
zH~}=po!gOaf+;gxUQx`DV#%Ec!tQGaPT*D4GjGU`lpvkfV^UH at cO2whvKYhqS$$i)
zM9HWPNMWtKMMvTWc*A0hBVLn7ux}&YvSm0Sbh?yzIRleq>l~|OikY^>E3j(ZlOLTM
z$qi3zB!;H}dz)v0g6g=66IO9l^N{TZY2huB?*0Naz%x!*+_U()I}_L33HWT8oj at -e
zuY7BIR=*rxUD#2Qw;wzN1ep<3UPc9bDRpR4CwiUWqmm$o6Hb&yntI5G3{j8?9OMZ;
zQyAi+v?R`vgLbi*mP?AWaz@&<0q5tzbYQ7qv2(i!UiztDzT#y9HR_osyIzndunRF7
zRXdLq$tM}q$mKKa&$bBGn()u%ZLY*34ql;`WU8hQn4cDFfPDr?tx^GGU`v^CD)-;}
zY96{kUB~t`crdE#JioLG^CfNe^BTdfHbcv|uC!_rMudAJy*zc}PdngTzr}(LMd)J!
zp#Fy1$2<=$<SC21PFM*t5r9&b`QHQRcVmECf%ZP&wA6SnmgR~-31=0G!#R);vz$x%
zPXaSz_wS?=-V0=1!EVArMg0MT!icGrz*U7y=$OgO4h*Ed1rcWN;H1K~{;)8Cwczw(
z4uj+v<9T7Hbu!`qE7J0YwVh;{l%ty*`R#!CLuDJ}DkGGY{F3)kyQl_bIaVuP0Xezr
zj89oJ(S?j1lcuntf@%`P!s}`1MI*A+>*Kg)DD_EP(5H-5&%%bMmc-n&1*n8WfCK~n
zM>*t!`F+G*9X~OcO=p}s*Vl5<SVIb&4o$z`Zq)BDL!dH=|6o44`l<^;x(`8p=Uu*3
zb+GDMiP?9r?hlfls*@tLCsaZ0 at wQ-Ymw{-a+OO{lO34Ws@#hI8$4Q@<Ko3WU>0pIl
z{!zP$YY&JtsZywPtdMprFGtCq=)O!0WN5C{(PVFDEM-x<@Q9iWLobT6SL0ZrejD{Z
zyRQ^9zVN1a at f<UeWOcT8uu}ePTDDizOv6E!h0z{W*_jQ|3j$3!bu$`D%Ye;C*dCYo
zeXN<RWc7Baoul2zx|}`75%n14zCF%31#8~!>RfkyqZu>B^;v^hf_bia?@t>U{tYsK
zs>0j)QWHIn|6uDy1&XdnKqV-)d}%7orLoZltnW#X0IVhKuG`F(vjT{v-rmXK@!)Ou
z-lpiV9;^<dt at ut?HgHi?(xJ)nqW=E?9%bYRkd9|7^CE at sZuVWMI6zU_*f<*uD#@81
zlu(lSnhL{p1jPNh#l}Z6i=J@%=p~1&_8(7tqv%vZERY?zCDZA>>&;fXHtZdg?}3~m
z{2`o9jggCaQJrn*5_^8>WdF$+TKtzAaOia>{1WMgt)oiPJ?g;m?r<;IkTFdhFf#k7
zNNs8Fa}?;yB=Ll($0W5k(d_H2UC1Ek)TF!qAfZ=40QHP#IeUDe4+c#j%ixT9%{QSr
z<lTdY0ddZdgt&;?FkYde(h-p-B_UOTw?u3QrAutVP4?`v0GjKqD&LuE`fM0Q$_=NH
z7^$z3mU>&Uvh38L)aNiab&n`k<Q#_td1s*J{BzlL=JuG+6N&`3X1!aq9nKasCk|Xi
za!a?n@=vpS%zK{-^$XGvdH&GmfL2U0YV$`Gu09%GQj~@g23v^|BH3i8qb2jVGmi at 9
zW~dg1yTvNTFO~R!e=|Et2cFWaddF)AI9iAfayGrKlWQdVnyEtITxQ!00I~BNStFw*
z8=Jkx`WKM6lg|`$%zRI%d=B6)-#Wp=X=er*LD?g|E==AU8MuV4DDkyb=(#Xdft0Vf
z@*#NID-=IXu%Gv&iuYAYg0`U>`~STMp>^M3S3xx7G`m7=0dz_q05oZx!My73_bFP-
zlgVt)h<1+wWr&KS!;HFUC|e5oLiw-|-8eB^cSdJ0QeiAJNU<i=5mMwDWr%2pn2h)Q
zghyFMBmWY03}-mid@>6AgxwF(aJkZ*hQ$0rjDEwOY@*8~;4G^(`)iZJdDJvTFl&}#
z*(fld_te_P=28^A-{A4uXNh at NJU8_=j&mo@%_?q6H2)RMGqk4z*&eC9y&eYv1=XVC
zwobZ1s2Zfp5}pKrWG32A-_QX12|$_Ycx;k4c~Es?nxCk&b}QS2ICb6qYp)1X<;E4E
zVmvk0M<Gu{xcL;=VPlV|4WtorUCjcJ7ZD(4y^YAF$Ly>}SIpOty(*aA0Ync9%_@)P
zTP%Sy6VZbOR)v+u+dYE$(Lf+`q^pv7hFZKjRF8`<q!OoU&n>&R%WBz1b(&$05dM|Y
z5u*CQO|_$$ls at iJNBU{WHm7k_SdSJ#C*O^0zes9zfO@>$FtUI_dh06$?fKh75b4&u
z+r_i+Wn^OUG0*x at VMqKTHGMt<o`=7SEIS<r%^{!VO5EFPn0~S>CZc_WaTzPCoVuue
zjhRmFnT9<=kk}-4R9C`2?c^N!5QGySSBfP57}l$F(}?(9(97VAS!3hk5o66n?!<I}
z5>N^a6d=y-V{Fr at iqp7ISXvwIex{g$kEv9u{}u#(vvS;mAU0CV&8h%3jnk`)k7eO0
ziY>B=JZt}*T#bt?PxoBEO}epbeB%iH at u+xU0XNilS+G2O5Ewm2>OpDbP=Q at YBS|Lg
zQe#Lds%n`iE<n??7c&IyqUyGl30HHt4pJ6!w>qKQO+h9S7pFxjN&m`@XuO at dwk@3F
z{K+0Sjwf-*>@Wk)b1S2QRGG}m>SaB-tzaE6e_4M^C9i*bUrFZT5~tXILhMdGCcTfr
zJ*U(2pAIiUz*ZLK2wAlt!@Zq=J^Bp<{(5*tm#{^f;VOn#Ue7!!IQC_nyqZ_>k<}n0
z)+#j+%Fr5QXr|doVK9{odrN-*h6-lWRCy*8co5#>E*Li17>#<S7V#-JO^{8F?dcmN
z$6E7g%q=vU&nrW^A0~$_&+moxTZBb43Fdbf`~aaE8psv;Nqd5d4*bb*LGQu84qgQL
ztu<_#BY*8iAh3Ru$;9#wN`ka0Y|JnuEWy^3WyL0%_vVV4HBjCgY5$h3w?BEZ`S`}#
zb?{(tM_lZRG1uf_jJq9ifJDs}dso->=QZYzV_7}{5|Uhb%tMk3+U6lMc5z#gCH54*
zaL(TMqADrG7z={dKCU<Zus!BBbdbhqWftkc8UmZq9>*J)MtF0LY~n`+vO$COdsDbp
z3g#+H%_ea?F>@1qC-Vy&m4L8mz;U39+H?fG%QCU4O*ZN*b0$^rsC`J?GJfX>|M%pW
ziSmLkSmM#-c#8{8W>1Ico1(oT+*@#F;B{PY+AP^)B=6cdfYD~Hv3+y9-9;Sw`wV;F
z!^(hVKVt}HPezAiW#J{tg?zEloWmm%hO!GXEA0gR>gE6&n=y34nuvX+ZlGt6GNQGJ
zr32Ts=Dc4szrHBLJ0EU(wzF=<V*%zv`%Gfx%aQs@$4p|lI8bK4Cq-0)Dyrn8u65YO
zSQ at OCVdUPdlOsXV0{vP4u}O^R?||{w;iUpRz7CsWV01S=!IJvc3SDKWT=~Pv+DWoz
z(F;Gfhw&0_+}Lf+gDcYVid~=DEY#6pW*csR%6sWlw16+ZL0rerz>7xRdA$i9#?sG^
z(t-z|@Rekxm;*Vv%H)eODI)`}-`Pc`HG3eIoLaXQp!Rm&)zCnd2)K;Q%x0lefhb?W
z_Dp9R(`HI^q=0<ViPh_{pt&KSBhV+RVy>$hK|#7+s7EccKlr3 at shIBrKo%gqE_RJ%
z>$rcsrOZjXNR`}6ApaLw?-w7B<@oF7UKqRp3|4s{4Dn{+wm*51iSx#Cs)%UJHYiYg
zawJ`_d(q<<&>o(yB!?9lR)lp@<@kOAZcGW}s3jUmL2=l6J$7n%He8Q4l!yro%49`-
zGWX0w&FQo{@(gKQo8yJYuL?l65h&SEr2*bRW*%I!f2$FX at kZ+#ug<B;EpFGMF0O-w
zPa1~jYn*xG3sA8-xfpRXWR&|$o#O!CE{LIFYvsYNS!yE-#TBfpr_;r%3{<fmR;P-)
zun^i(`qK=d(}z9#;tlrVdMwhh<<p7jYcaL$6>f}*0aYWL8}Cgq$pKm at 8z18Rql?PT
zt5DHBsMu++;P3Ljw4DR7mMLyYF3^9Khkm0@{8=s|P{5vR(ureTZbo(LmcHe@;i!tJ
ze+X-vKbKYRH7|^y-h{|ZZp>k|xKfZaBk?^TS9Fl>AiWsFz;kku$9=1Yo{<bdlHsl8
zNf9e&THht$CaWY)`{72DMa4iF&3x`wZ1#h3CwnA}!+<;ZMSh!3lUZW@$Tx?&LbMqY
z1%P2nmRVLad3z2W!T;(P+&6#&Pgje4v6;96#KuiL2nWAfWfTdo0e|{UcSuiUV{d6=
z9BGJab~9YJDl*AD2ll}+oXlF!k}&BfDNuWi;CN)uNr>CPNN3+g6epqFq!NmLgfYyf
zKTGsPVZb~h#})neO@{fU^SH4yP&My_mvNW;viI_?fyF`h-2YsF3|CkCpa$K^SFT3<
zB7}~wZ9hNjy&;rS%q+aX2W-v7NV~p75S$oUa9S1-We(^p`g};nRNFVuNj~DR^Dt5H
z^eJU>e;I_~j(S09g14s8D79pxWpVk}OB~Y0sUUh%0JB<K^Y7%$2QT$P1k<HpAB4pe
zy^dS`()#de5c8~QC)>%_4b$2!iejHrBU?<l7Kn~3-ffUzLY2{EsF<Zs{~_v%5u*F1
z3>4dkv%7sd{11<`tO<I4^u9L8ze8$256s^2PK7&($BGXXgqM0(a>uE<yX~r4+imK#
zM?Ahlm;Ei$2H!;CJ`VaaY%PnmAhVooNhHbw(n6C+zgD$VEvS;Wh;g92JNKPToV?zE
zGC>dbwlP0)Rp_`=;1UmF>_FgIv&06n`|slQ@@EQ=B4X+ at CfaRcLZ*F^?Ax&ZRQN=@
zabiuO*TwLy9Xl&Fd{w=`cCVYX$vWmlA6{lc<VS+Ii7=Dc?5Mk6hY5R3YP;I(Kg8-D
zVZn8aE3st{8X+7O1rc$p?DG^~Hmbm$c8d?8pqy4%)yHi9 at J2k)3Ua!e{r0gE&M3eu
zW3gR*TPQ%mwUA(#jmf{`a+LkspwXe12Z^!?i8YcQ<J*D}eMw)^)v8G~z8V0w0F`~m
zV5wD*;1%4tv~;X4yc?EI#!slUrEG_}dQlbdvDFU=p!uq7^=nc`r19|6p(V%=S+0U%
zgcP?^rn-72rG!h!_Dr&CKr7%d3b=%$x(yCnShVkx_p&8d&j#6`v7Nqzl&lG_Vr7M?
zaY*9rha!Tj-wSaM$^vS(#E{8+db&a`6o at pG!{~_e=UHt%m}3KtfnoxOPyNRl1D(b4
zn9Aw<49jX8iR><E3pP258hr1u!oQCittL at KhXc|Gr1F!@(|MY-+-cM$<<iU%>Q3^&
zc}K4l7^(WgA+ju|FLzL6X3>I+18=lEego*L823sS2`n4rfPs$9c)B~|0n25Au}VV7
zmY~OP+_gWVGgif7txO%41ntQ9=RnziSlj(l^X@@Zx}G+GIkhk#<jr^ep5wdN$|K;W
z?=KCfT=ZpRqd8Ck;TKLBADi0+7cRZUsBDU;nwgZq;0ALZ)~un>Ec>3^#WNf<{=p<6
z?X|EUJ40(sHhwcW6&~8`;pmB9#(rzKhIo%tbN9L#D$6Y_H8hqwsHZx|UyvFNBqaje
zhFngT8p9B4t|!oA6n(%i<cTiT*+udnW*_J0%RC_-TOe!ap1OwU`bPV2LM9{$q#O}_
zq!^UGaAB6Wtq`q*>7Wz6uj6MsJo9UZTP55dX_6MYSG&QRgrR;#6Noo>{K$n6pzIV^
zX`_IFLC`$v>X at 7=+YBA}Hpsc+$8NQ^Y*lR=VLddarfV@>@TcJwO5X5+g$Sbj&;$xX
z)PUy4m`Y;x(a=9r&OwebFb_AnWQCkfZ1AnR at ueDkQwU?1O`%)<jO|OS6vhV=Qr>q6
zsH{&*#YetB$X$iEaJoUgr#C~Fi}D1v;69v+N>4>EvEbGh!dndCVRH*Yi6CEXDZr}-
z`53x^R at ti~CgQsD#0A3fFIu5d(MO}*#lay)$uM&sD`3giVQSPZkeH)XGzH7pXw}Rl
zf2~5~)-Xc=tIt#IT$|VOuTwNryl`Iks0HLbb>$$n`I%X8SrM9lRX1jD(MS2*m0Y!Q
zAu3)IET=r{i{{$GLKcDgwHG#Lp*B!xL8{=|&Xo}&+OyAUzaHe$cZ-+IoutRlcDs6|
zgqGb31-d}=%hDYRic())DI;^L1w`GGrPYZPP-c2iE>Wy{%aeAI0GK;I=l$39vmfI_
zYZfj3QZc42sn2{FWo`Png;lHOLxhnC;M*+}YT2jdBF+dv<+oT9%S6HO=}3u{G!Ug-
zMVy{{w=9+-VkUBrE3I7F$4Q~*g(>8Rzz?0qW(EXhiXH*{;X|D))QbRFM<9{DOm%0D
zHJFh9tqBi2lXS=3 at pe?Zfn-VK!J712tPjU=AMB48EfmPuF>q44O+`e;dJe!HAoWBk
z6~=&ky$SB0M;Nw{hUA_)!W^~NlKGd%b5YEqkYy1ydBmOjU?G_W(fQ~g7yn=g<36rL
z6cnFxbO?$44x5Gl*-m5DRaieoNL^NRo>7Y%2oQC6&S(S9W4|Xxx-gdW2i?v~Y(^*l
z0M%zed)GeOc-7Cqbyx8zNN@<tads#zMsG|*9y-#KSfh9s{nW~#;J|0cnd-M>F1G2w
zNFmev40I_F(>x=?ziW9NGe?79=nqD~3$#E?YlajghNx38ujx>f?g58a^KXsD=?Z)a
zRhqYgQ!tyG);*v%%ad_-Ej~IZ!WTvf@$5N1z at Fw_m=7p%NvVOgow@*+)xbUro3K&O
zeL`19sEAofA*zK(T!0?DE%lxG=maq<?+Y@$$9+{kAkcGkbLt8mw%mge0G|k(cyDdM
z*0~QqCg*e~Xdo~Slhn&cZ$iRsR3`OFF{6=teW8%!HS$62^gHA>uosgEzM?g5_%beD
z*tme4_|5TP5RNk*zhkXmKv=wu<wRG&`aK+mPe at Wl0!9JtoHK!fK{{R*2}<0`SmYgO
zu`lC~@%O(H*_<3YGF=*m=vp&U!z|MPFCC1c+8|Y2utLOmw4&Yts0Z9RF!Fhvtt3*l
z3eMza?PUv;e`ayn^}VUd!p?34OfS)BEI1-2Z$6ZtX#mdy+(%iW+17cq<z4BBNl{ox
zxJ9E+$)}lLIhRQiMoKC|dqy}%q2E+eK4Y9MI&+Z+iW>(a)MRC~J}JYIKew1~56><w
zz<JnawBMS>;K^SDsd}TYrrV4*M*nr^F(Y5GtU9&Y_omJ-SQ7rTV`*tS59&|)KP>n3
z35z_O?$d8j7i`(-5ITo|ag#AnY^zKr+UD at xV;CvvR6_^TqyWdQ3vfs7ELMhu?G=X2
zcq3XH!s0z13_D7M+Ca?v@#;cG<%hVxVZQlE%F)(ig-!l3cM?67hS=K2Ls71(!u#%$
z0jK-RUMHUm7nEuK8o>Px%I%KlqJij(TJoo#5?Ee`F?xH=V3*M*7NSUXypM}O<!udF
zN<AC0K-_YC&E9>^;v707FuF6NSrQL=91PHVq-#*IedjQ{rWhH36<6pRZY4HibZkA?
zi(hKvYOl)XL}vseB=63<1}!00VGb-RZob;pB5pJ_$6%PACi8X?vz_kjNP&heb#S_A
zEX2S5D~pB4SAnk#=pdw|?u^{~=&EhHfcLX^cta at f!cJJsPGoFP9&jQ{%*EhoB)_R`
zY69l%_*D%U>r?{t#X{o#8;fGYje8D*CF>?(<^zpN%p=bQHa&@MB-0W1JXXS!O?ni!
zNBOzOU7_0bmQgf6P?puKa#@0^UJJQbFkqP^`zH27A><Uk>93Bk#nbr2I=TXrU;{d9
zJ%is{20jDnK%+9D9Ee?qCF at 3za^1*z)IT!RHeQ=!%!M$rO)ej)62>w4KkCOZ3G7b<
z;HeJuV&4u~^Fbx5&vXI1HOSO(WIp=&@D5yU9vt$Vc+=egK0v|0;9+Vt`Bt-UTFF8j
z_@`I?Gs_Zg>p0!i3QHmyu3I%0r9;J~fArSfXPZg-mLY5p;49c6+ at XKL11!hw>}rFz
z+HVtmN6C{x#B<iv-wLvH^E@>0zBAxj<zD2hr+*Yhp22W7{!Atg2Pt}x-kp!Kr at s(7
zfKbxSYi~BMiBEB&Z<Qj~kD!faZ$)!^rm49$Lgq2qs)#>}nSs}E^VtTg=AKCk<D at qw
zd7rpjhyek}<d-N^c at 96cE5n-i9up>b5T5zjINr{rW8+Aq64g#A66gM_E-PkGUxFiT
zs(^g_X-JC*Q?9<ccQK5esQkGwc8kJ7JXcL>qFZ;ow-ZU=4(Q~Vt;6~g!N9lAQJ5ne
z*b^y=>G_sP3ld<M8})K8!9Z3X?h1?B3mx$xq2tyC{2ce2VsAy+Tl7{&NcGc;3_ghY
znj+gWldlHc9Nh!xxhAdrFs)_`YpNtXu5X?O&ch1Zp}dF?odoRJe%1PHR4EC;-&#G_
z-)cr`DCWF5D7iG{QP at yh)msxpCuvfL7T#7CB<(G&n0!C(Xiae+lKIw%xxD at DF`Vp`
z-ony at u$p)_&G)mQp2jQMI_<|R!e07+;wahu5UW%G4&D?@L%mft?23NP1R9>ai`wa+
zbv;2W#VbrrkxW4VDTJv2(s7!lKT4)ajfj%fi^l6vvXN^BGa7OmE`@h78?<d>Gg$4A
zQdPLlWc~6Ru|B?W?AYX1Wj^x9gcIk8PtFzAJ`62k&`-b?yJYU6QD5L295(VgA1?^$
z<z7mC7r)79kPkLMFYFznB*_#1!+#5xJ_6xLx+d)O;83zZ!fEGC-j4pmWtjMFF(3Xp
zd|rWp569{rBQy>eOeLRPN~os5ZI9wZThjwVSfDagBw%|ur9MM5X))7NkD|hbkk%ko
zBZ&ngc%c?DXz}V)zYz`R=f at BRd(*oNC7Ym8<)Q?Bgdy+W_@{t(g++fdsb}uI!$J3;
zR;2ZPgT;8#d3tcDorZG{GiBdOoti<sr2|0E9R$DV&tF676&2fJrqRu9s$axro3895
zTSjDHopgD)5Ri91!=<}P0e`S_cA7a%_X~bbX`A$5O^e-aiiqf3{xjD9bdkBND%<j%
zC6kbcx*g`Ta;{qB at VdmV$*)Dl_32)(-~`N`l9r(I&PM9EM;bzS>9+Foi>sr*b6^I_
zFV-Nox7P at d$pelR0+^#;C*wLe47)7zmAWxe6)0l5UIVKX>id?tpE<vU>&~C+NxfI%
zJZSHa&9d&`0ZsjV at h`1{<%Sa4-h}<o0pZdr1|m+d)98SC;e+H6Zq)a}n_>+ykPAgl
z8~9yz5`Xwx?%0=TX|bSbCzz`{8hX4LaCvHiXzj;?0N!hb-`2&O-}H%vo$^tWZ)kwS
zz9kG at _s(Dn7a55NT(8=g<V``IZ3|A0503xu9M<I$NK10!sOZt8G%9FPEETzou8&I`
zeL~tc&r&kbq+Yu8g!w#4bhF(~R1NDLXPWtINKmbQ#do^C>E1lo$t>F9zlE1^DVzpc
z1;p4<aOCGR4)F`F5V<Fvs at +^vO5CWqe4G?&!2xC|{NZ^za-Mvn-kL7Wnib+^SM7`?
zjTi}5XG<-~?~tx7_4y8tbB9%{%kw{I$2F>OtHWgoDgTb2JdaXylq^yHHl8x)iY!l-
z4&L#&6QhGohb2u?L^wD=3HqNcVk9iBr^S?Bh9G)wpb8CP0O&W>Ik)70m&NzkI at yvs
zIJA|e$uZndJDdNP$_+eJG at M1}j#w_68*Vg5VJJ<NIf6>}r_q#)2!E6bcrokWCGx3{
z&hY1mEv`L+eZ`%pPfwW*FOn19Jj+lYW0>JF6O!*Z*+Mf>8^^sU5!`w39XX1S2?U;=
zg{>Jyn+%#>uh0^$U!?&-mi59D at gawcPfW+&oTG6HLJh;sM`E;mdeEwcC4||iK<+5F
zxiK|4x0I~*jI|Qw!@gV at VtzLcC8r{{`qr^Y`5#8A=KuUyEyhSoyK=q-RJs-q^yJ|W
zbkgJ*xQcxK7{Saj at H^Z|K02jbg1~iMdj*M9!XIFwV~yhPwOHRJZgGaBfzutu_)ZxF
z8~DjbO)y_<o#5D%)j~+$3p4L>WkpVa<+I~<`hV=>6YgGqhT{?(we;Bi{tl}n7Yb#K
z1IX!qm&pxj7~S|Pn<<~+KtEbzA;dwqo)!JZ^KRtgYyAjYL(C09W}lzj*Smep=3H|1
z{;Qy-He2FW(68aaV0*?8&m)q5r5~ApeJkjomU;K9#<NneX4&m><m-jXKiJDHBdj|2
z@$FEuYk>lBfAF)4_M)SeQ!P#1loNKEx*O2PJ$@PajZZ)DbXiAnetPoD<95-7A{0kB
z at lX$Z$!~<+pJ+u3fX?1;Fcdxo at o@rm3p*3 at k$l%74~sjQWN%}n8FAo^D2M1IcB8O6
zzv6u0?Ryg{L*l%9PyqNMHRLt-nj+|PY;6DyOw-_%&nei9pv_<ooA at ki;D`IYl74d<
zruW96El8WMJM}xuf8mso2BlI{vJvkohZM^HF%~j?VH%yaJ6}K2EK!H2TSOm=x>YM)
z>bfSDm}RS;8=uf#grYMs>@5?Ft<hL1Mtce9SgzELdW(q0)9`VT9dV$PEr*iqanW_O
z5$-Y6{XpEz+AetVI|_bHy}ESL1U9)n8{+q3a(XDMPvS0~@`J+}n1C!98b{{hptTh?
z%y(mbzJ$+CD)SDO=!}y|q6jo+C_f%VklUHzee`itv)z5L5H0z8{dzVo;X;0x<p`eO
ziW9Q?jWRmhP>Q4O%3lU9gULqWj=dmM$v at Jp5iXHbAu5(0=S-69j%Uz12h|qa$d*nt
zmzgWlMHC)axy2Kz^Iry6qdL;Wql7UuOFabT=PD1;=Q0heqo^kB*pO=6 at Jop%c7f=a
zXZ4{MF|RT+*Uvypt<gC$z6?s?Gp_OaKD#f#w5YN7QHo_+0q~eK>IPa;kP}WHO=UPj
zX9iCRAR*gnKTR*v40j2%w6YwsD-HF=rVhwe+<%^ZGK-+FL%{IT*w0#z(qXCx0?w=4
zFGe5$%nAF=a7KmL&3DcoHL<*xhFp{`39Eepx3^GcFSmaD+-EaLvfMZ5zUD40IKsw}
z2(&7uHinkhEj6Sggo;8G^miis;{~S)?rTK|KiY{r7Wzho){H|!tBg_W|0v^uu+VSG
zummxZ8U at RVL1Xh}u)@!jTsPRTkLe`pfto-Cu*9^EH@(O$r*%+7a4^lCi;+p|p^6U%
zHs|CZ?CCLY{XZ3g>HvTI`?s4YTV9W#^FAt#+-+D&^3uy=j>Z`jDQ3y^56zcLz0f^T
zU9e(Oj$M2At{@}tA&4JJ><Yy{j(rv!t#`{(KjcjK&Q0lp1ysyCCO~X7t!kTq at KCH4
zsjZylkxS41a3WKjlqm?1f*U|7FcF=Lp$g4kApsarE!^Z;AoK)=EEl?c=4^M>D%QwD
z326Rc3ZXCt at nbtwC>)S`Dnu}2XvcxIGysK5P=1gA?r$+HX?p6tZyMDan9zO-hZBa9
zjKrfw<a4$^gmOGbh)zsxQSsU>SwVr_9`cfJ7QYmeX~O9WThm4P6MLf?SHJL{tfyi6
zg#u=6C{{?cGh1^kq|7KlAM0jOQUCLFvh0`ITxu)HhW at Xda&E{jG0&S)@wH>TR^9-{
zbGDlO+8(8vs33Wq5_)YEEwUJH#RQ#mPwW*(V7y#M!PZdiMYD$fMAsp(|C}Q~T~uuQ
zs#;2s1qYkUd~}EM>)-88=prOXFIceYyg5Iet&$h!r1HPTIzNa)=~`xHY(BuBX7UMf
zK5gl+5@@jHkimi8C!OtUKuW5&8)07>uJ5?1DaDD>IO-qEOs9W>LtP4A*EvRHTEW`t
z-$E`@jyq1?dHAI|ywubD2x;W+5L1QWcUPfX-+Ut!@YA|2%;#1IEBFG{d_FI`?omN-
zPA|aH>hl+DIV2yU_y9o^K%^H{m%raGov!M8Zb1+KYGrB@*x(i%PZFF7qo%C!rO+`8
zOUsVHjF|lytin*=es?V)4e0h;1 at B+aUsEKVBdcdvA#Q<@2xT1I3TqxIC)^Xfxsa8U
zZeBP3n_?-tG|vAXG)k`RPIwTr`e=P7uCK9$0WSF%Jv3GX2(_!2nf|DCYd(xIv`<J-
zm at l09QLg!?dxW3~4bR6zEWsY+J$KiJD`Hsgyc+4&6RZy=^Q*@S-#$I&d6h8`cVw}6
zBI3;1O3C)ot21SN_;0UQ7Xdx>Q#Fl#Wu+97SJCJJEs7}IZ`?Q_JdcU(9n(0XB^PS)
zjF(imAqv89!cD|SIbegu>EfZ!@G@@ZsvSL2nTDB>*~d!2U-6WlB3pH+4GTLgMxCry
zY=vhO`<7zp*>|u at xO<-OY+$Y$!7G4U?LKh9a<oQtq at 0!K-6a)E4~{w|HS%6Y*z%<d
zftV8FGfhV-JXAoQ$T^qN?UHpdplh~b-iAmo$3l{#!I*#R*Gp)a;3t5(_{=;@;}`dt
zO0cz40`=HM=Is0~McxGl6FTYJvOAt!+F=3IVVsZ{UItuAk38zjX at 2Y=5*^Wdm(z#w
zjZ5H)W2=l;3+}De<>FNGSCuE+KVbgK(w$U4mENTV0I5Qa at L}gZ+D&f>Q|Qnq9hKQu
z$uD;MoTDqNEJ&6i at Ixn{<r%<0BmZ0|GkmxBc`<cw4>`R?VVR>A_fT~EWzmi75Gq?D
zk@)+tZX^$zs--lm&%bC_z at g_@gTca;5Gd_{ypTqJ<|)U49VmACH&Sgi27byY2m3i`
zyI&?aG_aA4iKB3^A_Eq1Ns?VAK at 7?i2mXE!gh5nDz&jr{H_X*WNj6Hd`yl<^=AskY
zsXIi1V!>Ty;<V6NzSeA($juc-t0d={crhW!k at Srds+I4tJX;b+LuAkJSc25hnNAAs
zbFWchfwApds&Cr9Eh=uv*km~=%!*9Z80Uh*3E)B9``Yg$tcvtwkF~N4Uo--n#&4Eb
z=!ltzE+fvVzyH68SQOwzOn%=rhBAldakjYYXLnl9c48qvn=M(FCEa|qY=Xc8J99 at 9
z<g5<GyO;?Vt~2-lgDBt1^$-a+^@UC at 43MQQcadE!Dd(~X7G5B3DU_2=_$p+N%xeD&
ztoN#~zJ!@z|KsPKC863jEvKu7FQs-u2|eyvVW0tk%+YnJ)F^L+#_FD7aFx-9FI$GD
z$`ky<_txXysFkHWXpqgVYsQgk3;whF(AnmC8e2cR5E%~-Sp2UfMkdEcqw%V#8QIm{
zo69+(bkN5IWLnpoqmL}|gE4502;**?5|SLisvpl=zG!9wy<0aUh`qtX;ym2x94`ub
zK!fX2AVUOCBs4N}Bc2b3F#!AxQE09*MbKT&a)P4Kbd%@%@g+$B?E+NT!!3SCK0-n_
zqSHuKVK&E(0SWRL&MMj!#6$%g7un&KjW4V`&c^5A*1blc0)nq)dC40CgxE}*L=jNF
zLEqz|<e&S>waaN>1e_(QEy5SkT!sJ_(3QHaOExmuT?m|qQ*Gf~Q^3b0!F3Z(%;6&2
zMzXXC%Z=`<0GLUwR4tSJ>&fbL*hkIzKqY**<`F45mWU9ht%&jy;ph%hL%)UcwFxoS
z`@hg^fT17<W6vn16#za<srE&7>%qd-1|PfAcG2`KhB_VTifA^S*i^kd{6|&zfORhH
zhs!;J5Z~f$Y~6~Zep9SAO4n-A-yTnid9dLCH9G8RpRh@$4PDO>ENx2Ggh&B>>oy7P
z5{qh=ri4 at SKeup-LU6PzCb_uZ2x2M)Y5LotNQ?Nk<|^~dKIcxeb-Rzbtb*6>${xcs
zC2UoEbGV`3n)(0Z!#iaPdGDL)$}k}muCEEpw=UKi?In{O!(PF`6`LbdTEws#%U$JD
z^E7Q}O?7;!j=Tma(U{I*hIjn at UfcZPP)J4}3;A%3w`qMc8?HJEO}G849@~M2%XmFz
z-A*=w0;nw5-dxl2&%wab^zvO;BL_8WB;^XDkR(3w$ZcVSpW=QRsvi>J{`#;PoR+n9
zFV}bbCRu=8mRcRS^3ehW6cNzDj71FS@<gX?(<Nsgzn>g8bv(HuS%WUge_>Ho?zmCw
z8PBP(*F;8l(@On!%L<LbuPKTCH4{;GX#?$l6|6M7BB#_x=yX{aA*}qyFs)~Xpf65g
zfTr*|wV1jWM`lZKrFZkCD8tPSGgXZT9T}SD!coKcf#axyd~fKe2H5y0pzeUFq7AZq
zU5?Q}&G0fYF~)TjtAatl19!49%P*kaa8csqeb5WIP1Lh=YrkFf0fv0pcr?@ycb&RQ
zTP1;wYdv~xUo;-}y*7r(DaJOpALQ8r at b7>M7Y?nY^$_3=^ikRaXHjR$^^1 at WrxQY)
zQMXE{sGMfa6f$R$8kPdY{;;u54~hE6<?%J+qGsyi at 4f)Um~30^KDS1g`jKPSbfkvN
z2Z6sWyYER0gHtBg3MRq|Wj`Xp3;0%gKWKvIy?1;|UY`nR{`gJm^A)wQbD|coF&Evt
zF{?;8XNjfqn8&}LJRM6a=@tME2$rOMQkdSg_(j)@?l!ldo34+%cfsWH#o$nuIBxV~
z^j|y-!gtOwi%hB*dAeW9QCP}FTGE2+C*Owb=;+o>IV}h`s75(b>{eFjjAJ at bwn0}O
zwobQl_H79nJ07tDd}ld6s2nhEqsv43OypM7OVm40=*c#s-h6+j?F%!%heuJr^H>l3
zLA||;Ba}&C%@?#HF2ifuw6QPk%^>W568f_^)CEw^yf?6J2-`BJL>vX=@_0j8lCebG
zhnvJ}h4XLP^5$LvIL_8iv?fEAE+r|K09*U#3ZBocj9E|3_1_x&-=pMwZ&Rle`Y#+X
z`MYkhLz6JJl3icO+RrYYdvneCap0YQJELvo=B90Vyi+o73i-70*I8QhKcei~?c}J}
zaaXH!V3 at ql1b6g%mXPQ6eA#EK7}&{r7jb}B?5?xF-VW!Df_ab;D&F60NEM{PNIeQj
z9rAKD^9xK*5kc2imLGmx1Ban^t|>m&o~lh-+b7aUH4FT_{-3WY%taWh4PL$|S9z#d
zT5*y-Y{f&RBjRiENdXiIqv#-p at Anx+NCWf6EY;#P;O^chf`va#Iv at 8Nji+geSdzF0
ze2|@nB?`?wCuurZ<%eF<*U!<$>LhAF%;zw)WfnueZrqaI{)2O`;Cj?wX5MQS{${uR
z3!p=vb+1;<;83?#OSg|iEZ}$fu at Wcpj+@|$$LXJD(wDJcNt^v(ONTVTqqTMJU`D%M
zl{gLX-uLSj=Ph}BF=slk7`n|@(i<w_ at cavw)-P6Fn?N)3X;UcGZ;CSb{yO;PACEG$
z9nrMKhwLn5_mPwK8?41 at NN&7z)gjQI0>>A|hUK;asO|UOh%aq)S=Ioh4ZT#1Ov<L0
z^h&mH9CBD=6DQm(L1<`A<%HEDH%KEWLmXy}j<g2!^%Xcynk>7oQpvv=q|X9vg|-`9
ztP3;ppDdBP0J(roh2pCsJ4_QYItOblNgmdlg-0hV7&%Ui`C%d7D`8lV{_o8gS<Bc#
z#SbPhFWP}HR{3~QI12LLEi|B}y{99P6JdH{9sYa265hm=*d2`GKRMD2&7^wSQ~)fM
zB4v8Lmr`j*lG8cvo81yADI$QHPJ(mPdP$PF!`q|*z)+_{=+%tA3(E`Yp5VQqg8jRL
z4qy8Jh`AM}!RDM4`a^)e-^u^}B&h3-H|lb!RRh$aD)5KGEX_)!_N0)c<5Ui}LtA}O
z8`{-9c>;0N9l!^w5d_Dubfed}ztB+&G1p8V(yXqpxm(Nfu~ss#>x%GXNf#6<vRQd@
zVUZ$}_$qr{{bM<oKtez`RG%KE-F)tIHBau0wfUhx6h`}SjCt}ngD%Ic$Wv>CvU0QW
zWdzn7|CB~r2Sh0@|B8b#Hg7-jdPewrE8J6FJF9}qtz_98VjQ!;pFm%0ss<YVIgB2)
z9^GyZxJx5HJa8|LsZT`G7P)PjRA_D=a>x1F1yorzq6Hn$H16CRqTxElu?)%9TbX!Q
zOGX(f{t=+2Deb(Mh~vqfI94_W-2t6<LlVQfeJ~1Ut@>fO5MxOvpy+aDy7L&pC_vSr
zHqbm3LS4%bWiWQi3F{Arj=NEzK%SjpjH=ODl!yuwcePG!^aS6n*2Ux8I29Z385o0$
zNSSQYlS7G&eOM&uaL5T?mA)7hhHTFKR-N^upLS0#Gcy{9CD*`q!eUDxmU5h3&ECI7
zi1EUO<3-;1bA7XBi0Meaq<E6ULXNTT8iU)))$ezfuy%u(To}~g$mkIPTNnw_QNNy0
z)NMyqV)Ugqzls#k at HoNvH{|5MLFM{_c`Ve8TJ37|$Rm8>A1;K(J`f^Kk5o>tAZCQ)
zBg;+OM8o~Ek+#zvbQSO^xvjB4Z9?_Vcn|0`M3EaWUcmjDoHN~Q_`wCgJD8JJ69jbX
zNCFB0(GnUWsng#4f5fkic}S0IvbmLDjQa|G^B$tU=xjJbFWSi=lYlc|U+kQOUR@!%
z=XGiMWKy{Jk5*$`u<%8T$hZ>#*bf;5yA^zVyE^|N8;*rDmvlm>&tdsQ?O6Xp>==~_
zr~{~CNUQZu=tBf^*^5P)gDSdfEc;mlw$Kv!Ezs5DNBD0Y2<6;x?Wx~o6N0e>ybs_c
zkprTheh6$V=77=D^L7w~$njYz+7|iQ{qM+YSsl$F=4EE_^zgG~@Gik9W1NBM%>C2b
z+A0{0TC&>y0g-OZ*@<{c`R at 67qe}7!!?(F)(vORld^V;$Zr4#Q{lDgy#v?MqTdoE*
zENU_1B<;VjBfSpT^nk0ML3b~H&mo#Y%k54?8R!YQvA!(K=9wQheihd=TB0T;?|Q>a
z=7)z*cua0m+3yg>?!QDyxe-E%rGxO>d at 3;-P8x?EX=7*D=Ht1`tF at VVYtaX-9ko(o
z09ED^=PE)vX|R_zJmnKAO{`GL at eJ8EANl#xD4=WbFny7|Gob~tcQlKbSko2OZjIC#
z41zem%th*u%oI(vQsfV$50^_e?GNjuzvzLtAwWJ9$r&dmAp_x40BqfyS$R}_n6j at J
zkMhjJ1#eHynn#8Uq87!YRS+Y9xOuAY^Z$FzZnK?N=DJuXdA41hQCI`6HuVZ1Vs^Jv
z4*F5)`(Iw`50)`Awij%w;ry|+yF9#j4wMNR!=9jBk3zdKr4%OV5AG!8-L<_J+1BVB
zr9Z*q1p0IR!g`xzc=OSk#`|rI_5dVc3jpX6n;%O(v+38}&H7XDU8&_tFjLtBrmJ3w
zA<E{_&ykUOXgN#4+i?`u8 at Vb1g>oa1zE?WVmOGV9h)ao*P at R9aA_}Q3BvOFG>_CUf
zc at FBuLmf(|dr at o$dp)CzArM}g$RAiIvxCz)54DE8AW1TTTIo(zydA^P-49 at P(pdKu
z&_4tOYUx%!snxr-YaNVHZ+8G?KZ%yoqAf8u0*4Ii5gtNqu^hV<H1HXW%M$3QT&oIJ
zcp~tmC~bAP+EKN{Nh%`}rd2cxD%j;9IeTe)Cp!_Z5PoH<`l7DQJE at yw4?4+t&krqH
zopxzxMuHiY7Rk(4u60!}VVCCnLMVV53w_eGYP=^%Pu;_QIkAZ`!MfNd7@<batX;}O
z;=+B)hv$p0=*m!;U%1^i!u;CCr8ruld=Fnb;wIv{!7HK^8KYUR<*|G;ma^*=cei>m
z9K6+JgmH^r%1>0o*gRNP1Q<y~a4Wk^$XVZmk1}`D)&Ac9+C+256Zz%(MlKVkQb+H)
zJre at 4FTMYz$xbA~AY{)*HPm&Cm^3!*3RctuC{G{@vCV1N4NMI`eP|U4hEq_o5N)Ls
zC-BH-E9v#qm4n*G`;dJhKN+ERb=pm&ML!Zv>-o$N2o(=EZ##r-V>r(6cY3L{1?AOR
z$!a4!vxCiUHK);w<gDg3?>CaI7G`;}VIT`GEQL!(`TRO|M|3}F+W+W}UVh*MdB!h!
z=Pf$B>nN#ZKS>b89JHb)lXjNGBuKskdaGcW+=?Q`HO<k{S(z>!?C-vAsENB?gGxen
zDGQkwlNGkWY^;b at bQmi?;vR-OIR^}mTT;uJuPwIj?0%1j<t5yg8IGpv)V&?s25l1Y
zL;yE+8v|hK|2MrzyO*>C*_i~(%iLpF!8YWkI1r?(Gu<JHD*3~E}?d897;1pA+|
zax|f8Q&+rELz%{|npu2m7o0tntwUpo+Vl(ni2g*eBH_BCtn%*pZIC(Sdf4QI_jbUO
zoZDfH=hXG$2|ex*(?@_uEj0XBFlbBTEha{bg)fbj<_HC%j>%9v20~tkVP>8X&^B^G
z41<Tcup|j%=U_1ZmI*=(O*}lRDD>1HZs0<p9FqIhQwpo7<kPFL(7B=c+Qsbfx-_ at _
zUtVkZ7SxpkFbi6SGY`Kh9mvG9P>aV5<o};kZ#q<Kw_FRe3}dp2Om5G2ZyrpQa4Iv@
zRw=uS=)o9e6H at p+Qm|CIHKMwHr9Xmbh#Dcy#_}W~9xh(y|JSMolkq95c0srM{i4&A
zRfhLBx;FYtKf`U6&L($(W4<hNxY$j(-R%<Q=TEcqDDNFyWMC_%HJQ4Ctso775cOS8
zS_+iFf?=K!2lEgZMQ1C%s&*4LVXL#5qPJQPB~HB7koGaSQS^<<5yFthHg%@2D|Di3
z_y8z&_z&F0&mI&OQD#(J^P`6Dp*je1pe8cmdg_A&NuFFio=Wvaf6#~+g<lHT1YYHD
zT_e?0*7FroSehLtY*}6Ru?C0~;s8-lxpI{Tmg6y at FbCC(PLd|xf>DS11bBx($!c@^
zF^kL1(o>jXOoT=;*UGD)p^0?Ds!apE?Ypp`W)EIZ%9hwc9qV6L81g&mYF+e&uUe=%
zp2nfjMXtZ6#4!^KP|i?fxbzZEd#2EJ(etRIvPK8>^<W#+9T;|-=|X2|)%566s&ib{
z)_8==SYL><C6K?8EUfiBj}-V2ro(wD&_>h>)z*nq3LPhqmk1S>{VW$8W>YXZd1&A)
zLzqg$$i4hr4Fs9OGm79lVvYKNvh080p`$(R{gJke<xxTw_c8Az5g>d<l~q=LmjL6f
z*NW0<=IY!!Th4th2w$IMA-h*FIC7Rv^Jz=H<%o|2j1l>c3XVGjdDF$Pyb at Y${8&y*
z{O_F*AqWf?9;8Vj>aHYr`QvGj-_Dqy-_@{;>_j%*s_W%Qu*BUev_3#oR(U<-XVJGp
z^9vCu at 4%D_{LE~NE2tQ=LG7eEF$T|r6|b^r{v*;XIOpfk1nKAAwskVE)NO at r5PLqY
zQpE_ggvJcc97cw at 9jB}W`06ar&okm+A=e3sSSuiwZv_Lpd`N(<hAwcqxmQdM)PU~E
z3q{zv=J+#G^{`qX^EYBJC=T^h&gpXtO*E%mo0^AFrP9!{vEdqnx0 at 4aM)_KMrzUFu
z?-Y>!fnm;AL-=eTlXD3ra8#%=kJfr_e7I|A!Muk6$Jk^ObZ4F>9EV};{_mm8YS4id
z!F6=&SO{mVG&QlzpvL&7(2y7OZ5E(V<?1s^h)S-~uIpzTCmJrX`*q)Wr#ev{n(%kN
z`5mY$FZySVvt~(j{2(}<w!2~op8}+f3Y1vZKbJLsRVP1RM})M0$T?1bQ4fGxS#6Wj
zY$ML*k1PM0>=|1iUfsxxmTHx62+B)_*a)$wF!8Qi1tG#8>p-VrM48t<fKg3|%oH-1
zB(2TKE#(9UHKShO2fZ>%NvNq?25((mNs#t@<o-4m>Voz|)tbq;IW7!X0~&V at Ye29;
z-Qns`@@oUze(F25UFdtkNI}>nq*oj@`eJi}jtQu31WK>UzuLiDE(lr7YE5q2Ct;a9
zQqpQ|v4wmeKS3p1T0Qclr_Vj|_i2|FO&^uTm|_qfm2-H3f+4jCOT^R5LV&~8g5RpR
zil*>VUD$};8e3bT-v4#B`lH_KB`<gUy^eaNO at n6s?!(6?dEa#W`m at je9yH|ImMfCw
ziHkX|#)WJSNC%uanGr6I#+I>|8}7Db&!WN?0#KfRi8Y3)9;TMEc&eFjz9Smml>`dI
zmwdD=*BoPR6-%VmDuBqs6!3|AvY+fQi~h{_X35Sis##N<zB6rG3{(xSR82e%wlsmI
zFU+-+zXLjCxWt^BIW}I?HRgBUkFD~<ruxN;e)4A0S!!&^6Ja&qXuPD9*!G`?<A$j<
zy0N$+K;ksOUfWesuq6nhlYT(sH5`IybEzOSh3oXBTS at guUNw}2Ghk#$j>$S#`5qt1
z29|di?(!_W`O>gmFLwCPa?X8B#<1#$CAlFv!H>#L2z9<QB{x+%+SlUE09>uyG{W+m
zh4;=n9Ec-ZTN`SAoI8L=zY2X-;<lh*2|O`dUJEs9d5NbqiXz+~`ox9Va&m^hl=9MK
zbFs`|L^+*%HHTBFG<v36pT<k<oH@^^^bPlqxB5x$MYn_fG>M`LO)o_w<TyLzZ)j?6
z7o$=u%yh|CVyjC|dw-Cgnqc$dv<p0+KQ$99p)f<lsP7?&|5`@r803afYgdTQ9vK9h
z*cr)iu8GcNW!&YS7ShvgMKPIl{6!NRvm3)bb0r1TBpCh(8Y2o~tk}5r3;`(Of41f4
zp at ro!x^vN6Bt!}ncU`~(4k>DG&=Cr4)4dq<<Wi$2NN?2g6-krbw}(Oi5$t1kKnl2=
zOKKK%Z_|a2^uswO at 2;mtNhdPdi4##<v|Fg%=z7;a#leu1Z&U1T0o)B!tx1}S3j at D1
z<b3}_4*X?!^%SM)&$rCg1f2Wa85bw<8^qkqC_YVJgj0u>Z#PaNL|RO%c(I6+9#KdZ
zMYG{jx%!LbE8IjzTum%w#;?rv*^9S;%5(LApT8^OZ}CXW6>>eDo8^zy<Gcnjc$jSJ
z`~>vQE{WtV&2`@vE1$Th9tUysZBrihH^tj|$3I_m^`yjVro+rqgEKpwF}tYpg9QN=
zu2L{O1nH#aPvP5VqvGyZGMGnH0^9088x>MP4Kr2u=cZei4*=Z9l~+{0yT0U7P17Ue
z9qiI7ZShgM$4OfpTN<G1b(GtsuRnn`BS+ns|AJYaw#V}LUV%ndF;YxO?v^+yOZWus
z64_yT;s90tL{+y{$~-dc<2vYMk}RSRILMe(#EMlC7&BBkoiVo)|0%X%%(H@%`lrs|
zOnY)W&J}~KU=<Y}RY$2o0YM%)%#7&5kDwtl;yfP at iY$;Z<r at 7HSd+(^n?oczB1pi}
zMaG=$58mGA4VwMEZTMOG7Oh%GAB8cf58diUb7}}sS_HLH9TggA?f=o9p;B&8I4vnn
zax(wh9>p-)Z*Se30{Vd`DQn!6r8GL*)06jk*V-;id9YxHi>#3)6yJ6NXysc;Hmo$u
zVDk2J6ib_;onUf%;tUm?agtsGopplK_cwsn8l!z_KM>u`w`yUm+c>Swkv1eRu2~aq
zL<CGO)D=ZJS^UN|Y)1x4<Oab=fFeeoC<wiTK%F`$GP%kLL3K~Ek(&!)^6unA7EmAC
zjjq#z$se+3&-)8E2~zKN>jrE7uwQX}ZA=WrrwAPmeyt7mhZc;y=7OVZ8eS`Y at Qgwl
zaYUBK14S(0y`$Jc%$*!qI1>e`u=;iSQ|4A0v>-?abEdutfSt4>R7xxek&)TEn@*+3
zmK(CU&B%}<dZ3d{l~S at i&NB{jG&5!2U&I;1Lf8;nT+tAiuL(UDTFmwOD^q++zlBR^
zudXkKc at CRp{tXhQ;-7ib+I!?y)Vf(?J_gH$wMS~3<QyUWr&q6qau4eh$PsawVC_7a
zC?O<%6)FK1kxxLU-hF1gReMA#xLlce7l$y|$RQ7iExvOnp_nWY8W&06>g|~v?CcMZ
zzoDvh?!r5Pe(2MZsLl02bRZTD5kXphv-?iTV8xu2PUun!a9{K`AT6^v)V~Wy4qw!0
zBPm1}mcL-a%ztc)B#BQQuBAmEbR=0bmoyT^t2`a?ep}IM8MU>y7=HgA+>zHmM^6(l
z+)Hj`)Y=L-p^~fxLt-Vu(v7!Y$5H(s5$~;0 at 09}<?=nF$w%$i~-)&+VDk|uQR}SE0
zd~T?aYIms^&z{!lh|;O@<3HKd1y0kXV&aqbX1GlwnOBvOfZejr<SsV!<>hz?sMSMv
z`s-d1M37mOKUOVjdct9v7d@@ohBP3CXr7qfTtO6>eeKj^*3pN-!0|<mvjJH`o at e+O
zV8tzQAhpGnA=3jX(xO?mA1+sW)gf1gHS~Sw5iLS5Ynt6@*ysYlziTl~agV4AzTX5Y
zs{|wi(TUl;!y)^iny-W(zF?`GBrGOxqcg+n_0DRDna{}@{%(!aV?vhixi)Z&rjopi
zc^?~n4Z#-o7NBITs=xWfm5~JE?YW6&f?Ln>2T}%F at zGA|F$luq<nm9ejnZ^>ZT{04
zn3VIHZQdzhDLxw_As|@RLC<?<O7VgF{ju_T5yF&dNS2%;Y)hokQCn(ISgBp`60VF3
z<!G_;90V!=^Z@>APr&mhsI~mNJ<(tr9RE+juC&Hd at ZF66JX9`k*Q>PP?qr+zX)1F9
z3wejFQSDyG;DQD5IY<iTgB9Oa;+{iS`hUmr@@LHXLgW3~OWvniHtM>EZA;E>M{RP9
z;3c_k!Tx#0P1L!*P<(~&z?CV7nCY8Id{Ec9&-|5uNE6V)2p8>wdJ#ivjQ$8P442fN
zzojXFeRH}KJ#Z^rh?&jVa-f6!dbftt5+_kRu<`$#;$+sKXe$@2yh~*^OGR?v!+ux`
z?SifFiI9tW7v_)d91!p01o)-~-9IgnOPhcGr0`y^I%B;xkU3_0{1fyt{OVjJ^VRCz
z!t)Y5Q``c3Fy^U^3`soj_z*khnpq@!D$y<DySd^yx{sa$nh(ZdJVMN(GMiigx{P$a
zy*P6!>BF9n2GvJ=Uo?cf=f80)BYX5}H<s<nn)bYKsZ!4_F6C1m6ZoyTK7P`wA0-*R
zkIibD?9p%-Mu(v1LiyQpsm`!ujk1e|94OC-RgS_!X+R3O-mzfX-3<RcY-r`#^*LsF
zA#G`{Q%=w@=a)M&r3#)6lt48=+atN-`nhnM>(0|xNC?YIQ|dbJ9BEdHfWf6o*3++X
z-F97<z<g#zOyi_oRt)2}SXNhIyVJ!GAh3J{07?G5S}_wm&e*q}E+4<L7ncj at t(`Z4
zTJ at +&SPVJ(z*2HSI#7zARR+J_j1+z4eDFQmV^kdczg9kgfB_Svy4}1{j01m&aCy8Z
zbY4B$<?^$qK?$C;<#ljlAr#<vBVG({b*{h5!Iq-)MArH5UAlloV>qqOWETPkRLnR9
z56<4Vua5oBx`d)LP!W82pLxuJ*(2bgaO8e>u!w- at nR^Gch`<$?%<OM9ekc}1kwCGm
z_(wyvkH~c0;2uahp)Teb-KaD$7CxNG`q*nM9IHkUX}jG7a4C(VlR6+n%ST_ks3lck
zSCkJw0MF}grKq7{9{RukPJ)|vMM~SI3~%y}bjP$oyY3+(yXKoLg+RktoNR#2%Wgv^
z(+3EUlKs&XaIh>BV(K3|^=7Oe#r5sk;kV3sHK%sAOKHL1=3v!(=+(7=pwX4DYAPk-
zcA!Rbf*qIwQ0Qns{lu??DUl$8Q3%AY<X%|aS2#9M!*C8G+Ny$|2r{#1up7!!Jv_A`
zPNwU+50MNd2AUSRPTnx#(|=lVcsYBXG7k>QEAy<6r;DvRy5?v65Fd`5t;&HH+1M>e
zT5W_pfh$+|rszIf!p7d&rHmvsOIX_HT9;hx<zv&XLN0*59d%eRQ)9TR=Mx*Jf-pqk
z8?A4qaNW+YU(ckc5j&&7?g>h$k*uW!)GQZjb7$wrZES*D0Y6<Eve-RsTsYi<_r@$x
zdMNnldXGA=s>i{RnqhBFY*0wOPa^On)qJ*-p#)zaEMJJ>a7yCf9(4wL|H%c_GTt{E
z|B%Wi-11)HE7~rcBWicuWB7qV+_+gib6Hwx`b(#chQ~%0l!yJ0hmPL%nqajJB+J6B
zfE#30sNUqsa7=heSi&mUej_Ju+w)0X8>3W*te#B7qwjL<h*fZGn(PRC=vyTf2eE&;
zQ<k1jF%JNfhmi8`XzKhZmyb;f$BWAXE<x3_#lRjt26YH+m$z+72F^;uSez(zqfn?S
z1ItY$UUN0FZm8LAm-hO}7(vfl+3eS#jMW|Smk?LzI1AuId#nge9Ik(QtLxVaY~3PP
z{s7lq0fc+wjkxgHDn$^7D>$-95O(lqp+68U03MQwAM|GWEKx8m%HzzU^Cg(xSxomh
zqSUQG4;mV?Tb^%l1r8iBlNME^<JCMh`hg^4*8LClDYNdlJ5;v9y`V9ZfPfrvIt3a)
z1L>FoidTbzD)B9S+nE#ky#G2`r~khb6Nn0%gMh>jlh at ukwdMbaoRr4|9w1d<r_~m<
zXmYC%Dz^}jLt-U^c>IzzP=pqS%p)a*>n)?kx{m|<lSZ-(aLq|7P2yx0>4c>A0ZcP=
zLvj&{BnZ?DQoJGI_+!N%4|bO{FDH|?W9>zcW<OGF0uVQF^S5q~mzmU-cC;sdpQRBh
z_-7w3wd}B(htzEw4?KwSUR&B at db#9M!qEEPOMs$A*_s<zOriaD1NnE6yS&7sAN6sP
z98_#~mmiJAi_!!@m0_WS^9mYPQiE?+Dai+4viv0XPVKGWOR%Zj+~c=Ya=3ElomSdC
z2K<fa6Q;S$@EuM^Thw$)L)b-|#mPS)@2#6z0+Nfkp$!s$gM6R_Xq?|WU$*X~aFxy#
zv!z(->LQt)CHZ_}q?kUo5<Rg_TN~<m{jNp?d+M(6z{|J%hdDOIzFd{T&p7?)9RjvF
zAKR7Muf+#m9|+NFqax_Mx%TvAu~7Ozk>GMb$p2Ki$+(nW=cW3<Rgan3^l&n0Js{kg
z6^mHPEmARX^xOb8eN|w91s(t!))5OFrd7l^O8qY3|A?2m%)aFdnV4T{9JJ}7e1#?A
zg_mlp5;Xsn5fw=@@-0U0N=AP6l=b<`^L2r^c8!lv#?fjZ;h77cMUxtc4Xh|E-HJoc
zqwO1ym~VBouZccY&3 at yXP&ioes^Ge*G#8s}^fF;0+2lfDQ+SiB&$JTl7kh!^G!Ofp
z0!m|UN<1L0m5>p#E61KmRc#+Zpjc$#jS?v!SeM5<2y&P~`-XuUqdEE>vV$4%I8UG@
zuu+F%tsd!N43WFgKfGD--#g6Cn3KiauLYGoG#FOL%~J(zuu$>-J}qTuqR!42x%Dxz
zH-G$gVmZt3eFqPdTuc14K)`c#>w3%~If3nDJe-j<cku$I1}Uo*?r0y}M!G5dW4r4W
z#nG!lHPO5So)_2BX;<G)ehg3^L|qx>v|k9L;&c;&Ker+kr)t2!8$cABhYW1TWnEqh
zeN~%uTJeq<T5!Yb$kI<je?dJ&?rmZru&FNzE(dKbW-pIk7J1$$dR4DjPs_%{f0&W3
z&d)>oH=Stt7xqksQ;@nw1wgH6a1XuYyAZv?FI+)XfBP@@vmfhVzA|#={I0!|RbtP_
z8}?JV__-7Awgk>U5x!m>JCG#P-tVcDuN~#^Mn*p_siD)Aq<>pnsOzzys%9|}xsX|Y
za(<Y63QQ2EkEZ at I*s0!11r2`^2{=kRFk2~IBbka?K7mV_nTT%N4CILcn@(t_YwA|>
zAFdEEI}Jm!%)a4 at uyRo6OjbR<p!ZUFVO?c+o9$t&8rWl87kuV*>k&ixI(#OCfHb}g
z$n`Jc^kc8{aFHEx6$@mOmz|F at F&{=k{@WZ&Mo?h0p^Lx!%>^RgEq`pFc(wY8AlRmC
z>?c@`s~#c_FV*!ztJCa?vSOZ8VGyiK&-&*$mq=jOn@*2VPh at eMe;5PDz7!>(mRDp)
zgKo0Adlc<;Y7Ev``h+FRMTL&D06K=V(8Y>GGkjvyIxogjA-rb|_Uc2mAjqFYEe&_T
zg^k{wwrjF-2`yW-F{i6+CR+v)ovc#H!;++rjYa}z|F+M$;NqzV+rb$ZiIp)>4C at wi
z(KL8jtHm*0+*9ZU<@9mH3mi^a6!?`9E5T3D at a9UYOmVRfs8i`h-crkt8l4EXTo>tn
zt};VRNRv2x4%&V;QOqw;yWrtxv|{6;#(D%h1F;&t0SRv4!cV7<ixOs}sp(xk!9Q4*
zOn`Q^dHbt9?hOwbqLCoeQ$M_@%KaXi at mOIY(aX6Ac3uNQ-kShhQzP3KMGjyHQvTB=
zPYkwkg at 4^$zlk5kMlv7Q`<?0=keGz$=x!j>#RD*(*o)gccUcJ~dreP;G5%L7B5uuj
z;J1_s!LOy5Eq1<qQof5CuO#AQ^`L^a!S`oVK=Rc at +_Lpwd&Xp=6`}+deen4as?QW?
z8|Ow0R`qAY6XT8p<~phgN}4p7`1D;K8LI~x3BTWBvQJh(!2_o0Afcw8^~41~5~>2U
zGLHh3NpoA*9mBh9dbdS3RrxDUIbpvqoPXpJ)-v)b?Ti9k$lKIP6L?g`C-qM1f^GP0
z6}{r3B^PRYXCtw~H*@+Pr2&Ys_z1pk)Ue4<kDJ3>Xm(Uy;Bs7P3DMWL)9XGdq;ZXj
zOQK13a<W;gIZ6EmUJ4%c&4Y3(N`P8}%a5>TienoHQyjzHrdnR6Vw}XaH@{20%Wskh
zN=`6{@ogkL477QHg0rjU{)jj2Gj{+SA(lN?qh={ipV4&MVFai{3sM&_=WziSSJ6rs
z1IOY_*fOS?i=n(JiTfnE3JFP$#EveWm!f7R3l6_hf?$Y40~2h2Gde2HQGvuuPBpFI
zgWJ_v2A7zL3N*JO7(dPX*&Zk)3vu)ZG#<U7y5q?C9uO2}m`>M?Q9_^!S*WB891;{h
z@*}%E1kdBWyn{!~M_qL=8-_}zU4Y{qhxOz)QbmPFp52%ovY()sZQY9kz*3>_H~q`E
zr7FY9A6fXc3ZijDRL3iwYxBA(&IKHSJGkxKQ-5J2TL*4lk6*DS6SRm3A;u^I1uFgo
z3cS!R%JzoCY+f(?rF at ZUbs<dt%*4bWuY&C!r#ykgRc+N5C0ZqvfqT^h&z8;FN7RxL
z<KAFfExnY>vJ)p!W&|Xyu`(tnC1T~2Q1#QN1cgf(+SzbRcJAOeN=3BmkdqHeT6Y!c
zX%-#RO8#0{$US|NDMmAUH9VMdtxWW~lXlOYwNXwo7wicCfMzn3tgdHH5FXtjeP0BK
z3g0Vxdnr4M=*-r`p&8)%Z7yZ*1=gZstoXgoIaE2ir50A*$ZG$N(*g9N4JGnDnr2FI
z@%&+-a0NUf;>UKD(9uF|DCJr*dGJfZ_&CevxHP<B%#w54geWE>!9re@#_EvXd1+`?
zor^Z<Sl988!!`t6_!`#8R7!me*(|_xvUxA~q4NJLPFYCP at 8WQppr?66CfOX~M6W1|
z6ko4Sm=jA~2^lUvz_yxR5TX#$-IC&i04Dto1 at 3xE-l*YYEdfrVySnR~KSf4fCvU3S
z7#AZ!SXeM|y6ugMCRZ+3ZH{<nkn269UXA at yh4a!T4h{NDd;-2y77DlFjv4|)<T0a2
zna at bMHq^=R&8wM&qsyL4B(-6CDQ|ey?9GCO3Fwb@{IG${Ab1f3;&>Z`@Z3VQxEmBY
z=M>i0%s00V24F`%zH;MD)sw>UyC3YMI at m^4^Ah!>_ieR)vNPvX7Ab4pI3q8}S^3mt
zKfVb#kk@){)wjUFAA|(%yY(JzU>i=#;QP79-l9gqkAMYi2D-=PJ;YxRcxI}s;W-p5
zX%hFc{Sp*E*|kKSR|C9mtaI_68UI{aFew1bJoeQb;HmSK^Pa3sw{YBa2 at F^546Mfk
zUw4-|YG>>N+VC%9E9g%umQkb*;4y(Z21K7(w;+SKBUUAK#;OK0`Z8fF4n<+m*)1_!
zMRV`ML}<gF>7EgClKYfib~8TW(^Bl|D*yjON(Opt->KaBWQF(D;ACvD2w&fUc(t9E
z{o!Y005z2Es<wEa3Hi(x?fn&o+F{@ddyc(krv1|p#YPQ2%f!OoLd>+7VboKu|9oKy
zK%5;5foyU_4DW97Mwt={{i!&Hd*dzu6#-v{f4_D5eW`_WZ6zeXs=V8nt~22F!PXG-
zsSRM|snMz8Xg_B_{3`dxcS-i(d3f9*5MY-Q;Z%XJwb<?+U}W$``s_4pY2}#o*<tn4
z%kd3lFvCu84{X2n_veR3+-R7JG8Xn!$h_g8=YUq>$+j28 at Jww}69=Y5HV`65n_dR2
z^opLejd;RrMf;-t-&!e1kR<a!PDX%abxQiv<aP at 512u@-Naog>@=YRF?(nnbM=(WR
zz&&d!wqIxa39 at FVi)7VWq;PmL9_9)a?;9Q(N&<&-VTpCD|Da=iiDH8-LSLpiFp!^g
zelV9m2bUiLtgQ8 at F3=~^Ir1s2^1lnaf;#P+->M5sM00qCTpSnK|7(wesdS~t4;UG#
zV2+;X33g(a560s{1o4@>XX}4#186FO3*J&=#K5+HbI)qo9r-3 at VA^VW*jja1d)QG=
zK)<a4NzU!OD}V(@9mEqN;zJ*H2HPMcp3%E!FH2s?nBe1}g)InhX{&cb7EgC|=OpC4
z)-Am**%X2GWmN#Yv%ST#hfbK5_`bdi(1AA+H}N#btv$4sW<N|BTu9}3WDL|2o8}D5
z?tGgc1~Cs8u-w#&5=BF?9eXI|#z)EN-4I8QrjwydelSFagKoqL7jeFKu&bd`a>rg)
z$OL5!Cpyt<Vb%h<4f(ZhAeG*e at NL0Zzi{*H5Zc)H-h=l!{-`)ih8`$qkHiKg)bCGp
zxfR-hWV^-XGLcWgt96+X*E%KkJ0tC?o|y+3@`e^~O-1kza>#@&VOm=C<G1Cd_s`&k
z+#xa|E2eDL4Vqx=1vo|TyQk!61TdBSJ8f56u!|Lz6Wl9j=^$zqw6eL+lUDOQxzz0J
z&YsqU7CMU&M1H+Oeq at 3A8KfLL+c1S{D)?JL?))bW$%32*p&gw*Ycj!~j4nj^y^mfu
zOkk&#SccNUg6foDet=u%O$d2zDKcFl?H+vQuY>C3OiyL%mrWRYkShYx6rt8Oa$s`e
zzTyVhQCLVysf&s2#olSJ2E`Ug-QN^pz8D1!SQK$Q>*6#Ps7G?P?Eczkz$Y^7V!9V4
z#DP%uQpp7Xd#pUwmLdTmH+izA89v4|QBYeB5r6Kt`fdC+^n<_svB^366Vy=cM+0d1
zl1EUU&5`8XNJjE0<ayq`n5 at 0vqLVgWz<#p1#Qz^F!TjXh<VDv-`xU(=wQ6NSl8F~H
zGFji41=DLY*2U~XknH|gxW<+zxM;YH&%N?kNkicc1Lw=*{ZbrnR-^mgX}zY2k9zR<
z{R8`EIi~%$eTv9Mzw8QlSP`bQB(hRWX<cs)T%iyMl%;Dh{YIJz249BMRdnTv-h5;3
zZdpa}F?*C at sE#X#CIr^E(G|+7L7y2yjngNB at Cd5}DLjRT0<`rM6a)F|sop1F3^EXH
zTI|g<Op@}dsAljF%Ji+oSlha_+({XK1x>?ChY$9_nEj`DkQyFY$=8cyd*4OWOph+m
z3e9iyf#pYx4j6Xt?&-!=5}Y^aY6 at ZNdIYznOQ83-5XkRG8jp&peSmBb7mlr(71bAO
zhE2aWW?|qRjS_AY;cbg!u}s-}j8sdkM;CIt>AhpCc;9e($4)Z`JK;|FfXoFe4$hb0
zrYd=|4ufV9mcH*X(G)??k7{71yqYBy%bGPnkmiihe2S^4=86#1$+3zR)XJj at K8S92
zK{@XVSq5}%pamOvMnzWaR#fd6Zq at xTCit6&IFJNJ8)?1C>0xb=eN0f4W^&E9^cP5T
zMASA3k;ENg?p@$Pj9QHYr)ia8q44SKrnvd9{u6iduga2rvwKGs@<E#!S)i6K*{ma0
z%<KR}K)b&@B{F%-|9RAy>Q#laCyq5mM at -8Y1PHRI0HAFvgt*|6DV(z-m&Yn^(z_cz
zPwHffFZOV8gbdTZ?hy>G7Lfk>VXpFGNwYu-u!c-u?gSpRZg}<7)itINDnFPO2bGT?
z@}La|WT()ntH017JB_ug)epjsl!`sv++xPGmuWEP?5Zu9Zs~R&V8X<J0iSx^!Q(pm
zoQS7t&)hsPn>`_DPDQ^#U+8=&4X1#cDsfu&<HM}MK4%(VwP|CukfPym6pbtn5%>29
z)90_$_Ui`>u;a|axK5kM(W_{4pt%=fh~``)An)D$s<vmyK}nkhlcbWA*WS1T6zxZq
zYL**L5&dX5P(-p7g=6KY2|S^5Xz9!%E>XKs4TK>oT1q^$(i4r2K2si_m*bl(0uKq@
z#~uL3{@!ajWJHOx9I*&Cem&(RxBi(cu5$9mE$HcuaIKefYm(!B$x%N0kH`hzi?<+}
z9(kSIrDvUtbAiikKmF|S$zFF=;0%O^w$b;`v8;Bwj8(Yq;Ln9wGvP#K$IGq~i0Mu8
zY at N#$1-i)K86=gxnD(+PGY_Ube>tu0C`CP7c32xa$zuStHSE2$%i$)ldsH4s;V~(i
zm(b6D5+O+Mg8Y}3o=6(C%2Wb;1SRa!!xMXEOa*6BtA2F#b{QfWWf}+m?-Ub!P(@I;
z5p$}ZDN at 0O0(t|Yy&a7Meurfby|y1VXH9GG^nmFAqX`XIezLacMUWQqwTJl?*kJ-M
z!~<nsta+f&$|AoN4tb|W4W$Ef{O2VG)dAf{H3Lr=3CGM^RQcK}zZzx6vrsE6vr(D;
z*Cr5abi)OeTbX~n%9}Hw=1UBN7{OkKRkDX)Ro)hSAYRrxCkK{K^$Ol0=_C9vj<K?Q
zq2*lQ(d at js7o2vFOQIlp8{;seoY|yEbzCqr=&T6vxmbMKpTF9r;Hh?{;wyU-m5ohY
zC}-(OyH6 at xvl_gS0it|NvA)HMyd|(F*%JeU-<bM)=0}0ZiMj-gdKF@(5a?J-zuEy&
zaf@<<bldzIL$r2wTO(*Nz#pa_j<(SP$2GvBX#+b;Jvj+hu3F1%1!ABaz|j~7XP0KZ
z+?@_eyNLa&&}n#tB3r|d>XJHaPc1BT`8Uo))y}fk`YDQ;tKZ1j!kuX)ve0L6rDyo7
zrZ{PJK at C~%%a?k+S_l$}N>7hq4UgvXtJIVU(oq-75Wyoe-kw`DQ1`(hz%+|oU3<|`
zjwM(FzvZqy)D8d5d~?z}s?9}yoRc40KUkMmMl2UAjDss=j;<6TcpKE@=J&>-WsjIx
zPnf{B{F=&4fpaZ`yR;E$z$*Hq(#(g$Ke*$nWlJx%6Bjoxildj+p>CH#|Fh8Ft088p
zPindl#Kezc4Xk6tOuO=ua1)>n7J*JKGDmHP^pOYY>6`j;^YAa|-i~MhD~;CEiuK0g
zA3%>22YaRaYHZBsia>%3AVS(qJ#2}~k=-z5z}ZiwsnSzKGo?ro?VYVZq~7Q;<Ml{r
zMp at ZKVYNwQEoyrN5$?GNm<|3>@d5C%hX70Lek7F-opb8k`jhp(8gLU)qQ387%2UE>
z8T?PLUn|M&tCg60-?Zz5QGn&$4V4qUaWSONZ-1w+y}exwJiikwP!<=ro_PjhASqkO
zU~-9LM- at F$^0m)edP}w;__($P0j7QAy1or0;jlc&FcZsvzRgxI7tw9LMjfHbK@?J4
zaX)45xEomS#X_k0{md&FqcI*Z;t+ug^z=Xxs1P_Hd;1nH5uE0lKtdCtWwu3mxIhUy
zsweh=t?^Xu5_Jk%y38pTa;01F4f_^p1??2CXgdz`y=P*!MrKh;RhoOqATTXbx=G)w
z2-G6YOB|>Mj1d|>r;VZ&BpFwZsq5nT{is7qKnWe=3>NlY%b%q-eklxA18=mHu=s>g
zS0dx%Jdcp2hXig%i25+OzY1bgeA_bt)PEVd8p`WfqZv`)X0L0wg~;#Y6Oj%tuP2=@
zRls<y@?_MHJIG@%-QS7v at J8S-NyD&c at z|%YwD&uy1KotliD@|cm$55&_*-H!ceT9o
z5+JJxvnCXu$Ezi!Xk<M!KOD1YDFz%9iti~v@;HFx-0Qj*vX-DkwMlU1JCkWeItx-n
zIs(UOLbK)7CN28LjF;+>-eK_v`Nw8jLc#wVur}~B*<nd&M)V+GP-U at 2z^D;;NY4i`
za-7PHRECN=TSyR&t_Y-|u$U<`qO`L-10Al7A2*^zP{fsh!|oKVEG%-GNqc8ZwqMY3
zq){wmmnpx(ZP*<9Z*c89 at B-(7Cuu^>Q0r{^!qVe<XK1>&MuST)<)E*p;sTn1%1Pke
z-@$plnyR0vEK;3}-i8$;N8mo?{6m{2#lc*pzvLFTQFLah=nkT6e*K~J*20I^dK8Rr
zm8{&KXx>8z9cl!jrx=3`#t8MvA55B^j}etNUAS3d75 at XBsF)ginXZ|g(7F=Uv+IR*
zDygK(s~mfIz^3t@!g#Gj%?$3CkKNj?7 at FM03j`hYFczFXMT8NDEqR>(=DX{@MZok*
zY1<f|=)S2sAaZ$N@`d1kPDdV$`SBrw5uRfxHX1|}%}Eg;oh5LFb1%W!jWE)Bl?-Od
zD1d2Lgl$XWLG$3%&mu^MTcTBFsEfMS<cyCoord}fec8>Qz|3%W;!CIegAD+fl3W+q
zXCmGSe>Ho56-iBq)5YpYt7(l`fI5F)m>yu<TF<%57l=HFq%6<s2OG)%Sh5Y(INM%V
zBWh*^qtX1iC0K^f2Mny2fVh`rM!ua`rF+%R`alFNj|3GFJ!#4pck*qnozVG#-zvo1
zdrxc at g2D9R0aen~U at dReSoo(q<Ns!qqrI1d2iv0N6f+jo7SY@#0Q;y-bfE=?E9oHo
zWb<0)Xj2#b at dp9`asx#BTQ$2NgJ%sWi?dosatQll#Br+WAR(;alk|m$UWs)fwtCg}
zS2aBX6VSTq^r!i at pD{9RZQYjdvQNi?ocLpJ9f&cD at uL~K<hQMNSIqU;W)9E+vK-E6
z^K(<OFd)OpahFkd;e3zX);x(P3Z0~_tfJ~Q=U7#VG=%MQl$$nhCW4H{{g2mDHx_6I
z{70Ztg>hmvW0jn2sKzo&F~(kG49tK>4UnKAYdz<Lh(<t^4Fh0hoqX~*QE+_=(o|`6
z4%+2|-x)bYQ3FSV@`8KCm>@A#8y{29NF}NH0K}ys!LFeQ9ejPwHib^ux8lc4bK)X9
zTtL{?pvo+z5~Ck{c5*$bKCGs3oWfTMs^H34jB}Cl42=5sDQM8OZlt#8g|Wp_7AQt^
zlvOdfR_Oa2qxpa2UW0G90bc<yE6eriH1VGXq49qxll6*yE|QvR!u9RzSx$Gkyk!og
z=kOGsO%&8>%(^T7rLUGSd7ywsOI4ksE*NWD2e*rPGWps64Cl|z2Gk7Gw#MbaC<C+o
zW|1&p4)9!9n2^7>lnqw6EMKxUg>t6kK8C)|<-~)6Co at qoD)iy_hpJUIdFJYo#TAM6
zj?QJp%9Wz4b|&5$7dzs}$>5Nv84F0ff&3`PK$3o4Pn)3&1z2GTmFimJHkmWZlH_#*
z??Qb6Z#SSRvVPi&@`mz0E4q{Im|~NaK2xlRcY6|6lkf>z_Vyy3trVNO;ZUO|2ocj3
z>nH;E^mOe$p+in4axR#n;ZXOL;RtHNlv2PZV+WHEu)1f9i~9fiEA8scq#LYLUZc}>
zPrOm#$ktXMkMIi%S8jJXZdX(>>X8;~g9xEn4$cJ<YJfb#RsrWg6RLn{3^(X*JiJw|
zG_3LaEBN_RFVrRgRqJd7aD-_lxMQQ|2rMu9^OemdA5O-v+jR_razbLx)|#)zkawij
z_*iKf&K%mOy~{PS%8>-FwW8OW9eEC^n=o- at xETB%t;ynj=1qMw=dMb(h at aMVE~ius
z at 9nb2MBi5~S^6L*`g5*6Q>nJfopAI(=1Fu~WmSRGK6_5(P|We%NtX)Ji4FNWvCA+y
z_<!yyi(Y^N!pC!hffzv43FT<%R%Lj1U+mqC$WhEZ$P-XA!H6znaOfG07UBj_$#$RA
zH-8L_;0Ic8C{6}RgcJvF?|0JK*qle>5E=Nux{o}XYf<}Z{p8is#<~I)TR6dE2GHF^
zy{R7g6_Z`wZB6?iq{4c-*~iIHp=1F+DQaNaZZSfk{N3KBbX#L6_G~Ek-AOr&_^%1d
z2!r8OMB~Db?S9P1f#@P{eA>mZEJ{sR!?SVX`%&>VP at PRhsM$e-paO8g(goNX%M8?>
zzFjD6R>FtQ*#adOtuTcS9+wdUCBG$tS{M=X2j)MIYnN?b`izNX2AjQAwVR=s`TPBJ
zghHvo-(u2o!+`q{)H9~xr@{ph&RY$l#l4D4Sp6cK34`}^-!>@700+EvL<g_|Zkjqg
zzVe1V$}zxFn6pC;%H)^rKH38J{-VDoq+{8zw=f5D3(4`x$E4P|&%h&>&Q7 at Lk3pj?
zDCD#IUxi6)E|HvbqE+Q4wj~|1jT%R)6LjbaEdfm<_mGBcCvAIxTVh6vyHe6A%bfbP
zqP6huCk;!gP?z3zq`7v{;uh?0lfbH;AmoLii)GHhL$-6Si+k$C$B#6OW9X_g&km6T
z7WJj&fHgvEen_E>2?v{t!=+Wwc;P4^3}F+mAZqGhIhtW8;nymkU~9>b2<$t3(DsiE
z7?^Ba`HvsvO>Pu^ld&-9FCxy#j{Alpxoo0Bf;h82i7vg>k$<;Y8{!a0S$LH8KdlPO
zD at v(|jc>(+ at Z;ZsROBIHqRA at k0D(0k5|dp;NAxlpTCLcOO|&0Sf-gm>9omIl$hzH~
zpTxP2Jr at Oq;#68s$v$_Zx5-aQ<VvOklP!;SDfiu>f4?gbOX{2vIoLR`)y}y7b&Twp
z1pJ1&{Q)b`G~6;)#~T(J_6#QFIF}$Mp6khIJ}+5YzA3Hf&pK*B=$e at dD&7hSp9lHl
zA<4*B at ExK2jXf>E?u0we`xLU#omCgG(Ul3;Ek#_}qXwu6WUd&3t@;65$+2X at hTv
zeJ at s<6NNHsxoFQ9{dU?qsI^FVeblSt9gSJjil~zENl-I;p_*1eB^cpicpYXr%7F7H
zp91^ijE?WozYEBoeZR~c^!&`PX1<Qu_+e+euN%|v|KB_BHEMUwtXM=GW-=_PZ08;x
z(|>IZf`(*r=RxKCz(6Z_R9*?^8<PzWXf1WV<KMnM{UamdPdyYWe+34wGEB^twXaxF
z49&j6>B0sXAL?a;gk|vfmY@!qx|!WY-MeXSg3m$K1oI{Psw-crN at AUIU8X}e{!Yqy
ztPVui9r>-H^sD^M<x~*~C~C&@d5DB`RgoN9&?S7l8$fzY+k~)P8+R-=x&-6kZ6R<>
z?`3jfaEzJ=QjAp!Yisr$X(E|;<?|<{2{*RK0Y8)nk_G#2rq*f}${p|E>!DHsYLdLN
z--2=~zbZIrhCTbLfLHNG{p2n0NE%j9I1!-N at 5D_TMc_Yw6BbsA*`bHPjv$rFi8Voo
zp03}Fyt3+xfJ!sLpl{~nxSe$a34tI{y0-Bn1Rtt4jrkJapHjr8i<XbWM*NR7*PW}0
zI|(xE()#I`Fsbv&3c0_S?$X3>dRT7*Y^;KEWE{4ec0jfSOoIJQ!ABCMZZ9VH>%T*|
z$BhV*1yWDtSBudvrvXN+7}mJA>dCdmq_T0ovhbHZRNTWzq%@I&G%cMuA`X}=;W1v<
z-zN^c8I42cwoh at AH6N>G8{{R8*>-8xmBwASbhYZO+oM=Y7l$cZ|Bi^{5B+^W1AJ{@
zsG+snd_H_9F<DhUNqzs7%<znY-4G18rI+^mw~SzxFseZ}*xjM%ch)b4)#J(G2z4^y
z!vu|~#{|Mj|GA+7m<5nH^jR0^8l8#)R at 0wrmKbfm3y|WUYFxP-mKV>~MKB at susU|i
zhKyiz!Blxft*FVwItFZJzAoCcd)OfjpHwGZzE7h&#V`Y%w9UvLGVaRs!odf=8*%sK
zs2sOU7#Sx9G9#8?m8>m=;7mhYmtblZkq+Bmoj}_+GPQ#zpZnU;t1=zHGeCNH!%%u=
z&Z~R|uLoi|8qAea at A;<pT@&m^vXegfk;E~j&f=-pT16wh<)SiG^8jmJdiV4Sug?TM
z>m2N^vS1iXbC^xFb*SQ9>m^X;b!Ck&w16hDYcP9n#*VcP>IqIkz`{MK#98QR4%ZSm
z;*QDwMJ9UIZ1Vn-05e)!D(;5}H=_25Y7l~@vV2NkQxSBxLE47^-pPi5%6DHo56lG1
zYknk<TA+qjNGsS>j`;GqsMbO;{E$IZ|HaeZX}bi268-OmLxoVh^vRy$TZjy;hwPwn
z>qYUQjeUlVr3LitYCwj%#SD~ya#jT4Py~+y6%w<8Z~vz~H$ggfHY2}M-EO?x8K?Q+
z5R~USq*A_?6%T}Z1`krm{gjYBqvcCtv at 3KScmSAi48V3S<P9*j)HLp&4AwO9eW*yV
zF)!4t-%VhZU?<*`gu at i$CV6Ht*^+B_jTVI#iOgKFd_R8CG(lgC;?En2G@`RChVpc=
z>6!&3Q)g{eokyPAeJ+-h_)VvePs|{upEHAbfsNue!By^k%$;CD$oZIsa(tVNY7
z<oUx^zp)-!dDZU~18UYGw}_j05T1m8tWCGxbx^hNXIW?KfBmS-C>oR(nCF|STC?(V
zwAD0JZ>|Fjs;wANX0H<F&bH30bfznQ*KOdaV1>pxR(9#7v&%N(r5KxnF427B3PT&c
zKaSG<Z|IX7V=f3 at Dh@|YpV0%>PM{+_4VO7K5WBz?qDOCSqtIXLk$jpld$vZc=Ig%f
znnqgbR>|5b`5L<)3_<DTJp;UMAT!%(b1E-0<`dy;oi7MOrqz9#+3~DhC^w!egq!-L
zong4vZM90yrVMpXI!j8WY;@hqDyoh_{MOk+{jb#npL!n=ECgB?8?})7cuU-{Zqo2f
zK9wEHVYrX(XLz}c>vn%$vYh`+2bcCVlZJ``45XHfuW`(ClQRuWM>lVTW4${80CnFS
zC^&{tI5J)$+CA{E(sV1hL=ykNi=(OmnT*dbJNYNWGG{xkT3ryYVaFBY{XQ~XNA^9V
zzA(yCBl$y;{#dE>j~@3!mTT<KzN)UErFJXZ3vZI7Evhvl#^r0c48JAii-&81B6_)X
zw38|6Ei@*gC)uw)QMGrAfc$p)2G<oqrMskVQY{2XOqF6iUc0vpb|qn^V+On=^E{7h
z*tXOX!epR#?8KHfE4Jd at 5=fqxcPpTsw_QG at rF5$_jaC_q7UnQdVaq%cLG+(B>S2H1
z=8hNlEtHP9nan}y at 9(d~p+ngEsjMS(WIvwC4 at upeE&@ip^DcikjLqq3gIlqotTOKo
zL6K__=9WkXC7bPs<v!uTji7M?_J#R46h>i(pasI^fFquJOF6XCzyM-qUPLoOr_kPT
z-0glG at 3l~BtG50KhmiS{#4wi#1aTY>$S%8kQVI&4D4Jq1(+XTW%jf7a_NHe%=tAgI
znPA|xYKP+ORx1Y#p^QHHnSo8q6OpPUPe};Jq76GUZY-M1T8(j~r`Z+b48kBJF8h*U
zyf_p()&p at b{A at Z3%VjA7>mLtot>)GZu6JpRb9!<K*47Y_l7HTXK0=Hjis9M0*|lIh
zeZQ3aN0f+a6qk+8FDG7FAi`<|^VD`x?HIxSL=j_8!6T{TkTcBSTC0j-kc{NmQBDGr
zU>600$GdVpjzHGr3!LqUJVt8Kq#|2nL6T=vrP|;mH`Px<VLQ1~RG1OWOtbfXlMqGy
zfhIhPe&oS+zINNvx3IFYJNI?Zhj{ri-`AUf<GKnrpNgjeuwksLOXoQY4*@M<>lqI9
z)#IH=49Xe_g?gkYCu6z=;6Pc70h64ip5)OW3#m!akH90&HEfpktRP&(IE;d=_QV0b
z4?$-%jSN_?n<FF^?th}YV}$ZHb6se at evC9bs`o?_S5Vt$uE~+28XaGDBcwW9)rqPC
zdUWNdpdzAT$P70IEC`+a=w~1pI%E~MF1+MJ$@ql5RsqG!R1ot*0W@=w6A`nRzb+QL
z%HWDsS=W{%9rjHUeTrXC*Xjb;E%51uFSi^!lp3!ncA}#(X~Zmg$*~{qro1^<@O1fw
z#&&{IHNnXY9MfH%imNnTwwdKYZYK|O1 at UOYX%wAvecHPGL*!l3-APLPY1vZZF)nTu
z7Aa{wdL at VmT7si$c%ITwF=B*d7-zPUK9J*RkplZ&=e@(`8tsfMo(mlXQ#>SH=6sG*
zX;fH^$sLbT)bD$H$cO at D>U`ra1^|4)V at jw@W*c|UsFPYF1%CisB4TwSFO}=B67YzX
zuo#Smw1)7eDcn46DD}1FtRvOZ!8*ike-#)zjCKCHNyk+r)RdR at U<2QnPe4%2h*|;&
zp5Z5ulqO!SnW!ph#nf&lYXRnx7LXk_L1~;d_ShQ=gLFX`yjVy+w|Os!0j7UL7-IF1
zbOo at U02p^-9W0f$mjMYCjE+W6tsCYP>w=GHI=Z+5IQ(RL6X{@f<G;gvg=*^T$F>z)
z4A at X_L6eQjXESGEjum5R*Ta@|n=j|cH^K$?FxB8D+>n!egX(nOklk;Y0|bJ at k7N*K
zQOXP(u|JX)I*qNNlED7PE#_q!jfLlX5JAk}1y4nQN>Fyov0=SZriZ(PeF^GMPBzmY
z4!omdzkCaNbd8_3CrZFDxMZVkXG%*WmxH5i=0@=v4;p?VS9EMtCfDtFX5lWimg0`G
z$N)Cs8_{A(r;4eR at z$)!r`IS`2#FJpfuzn2&=-O=HG3}g4BX%pV`(dQTdjw9!MU?o
z|6nl-01=sz1BMBsnvdh~v)B`}F7hzJb5tLJ^`SAx0 at o39GL5$9z8`+RrGxa>&eqzw
z>Lh^}qKNOUIqDy1%cpZoj8aN5htpSl4yL8OV`nI<zzbpPu;SJ~<&NL>ski57FdGu5
z4X-X-=NeJ^M(QZP><vXx)u5^xvO5fD5dh`%D~Zelj at Vx>+Ju%+o<>j4%x;i13!_Yw
z)0*A#8;9xMmj#bb_2N_)RZvwx+Fet)DYSXyE7Sp70vPOnHED0EeIyYb4JdpsQb0v5
z%Ew*^mmYl0!-S;))h<D)7v;6$uH7Twy_DHJf;BAkGa#W^(H~-6f=#<MDI6u;p1{Y*
z0w!;cvJ4nCu(!jXE1OJ!+85GljZW+d$Co}n>T)n_HttcskH!OOspNwg5KU0Yvhz38
zJ!L!C0iVz?<ot!UKD_-<!lya=!+CuRRwz_LQ_>5KDwVdeKBmdN2R;+qN2AANHD>m2
z at Fo5Qb!Z!>?m;THHjLCv<<p_J{KmXO<5;Y+ at So1K--#MU+@*q-{L~vbuI`%lCRvEJ
z%w8>>B)vB1QAJ7qn|Dh4V(9MhN%ztbpWVO4q-etM`3#)Dy^FJD6g7%b2J@{z;&#jJ
zqEbGUDfJW$%f$5Xr?j2K*Lhel$pp7!ih~fRsvTXTl#j2L$92-hUNU=>$cZT`Wmn=R
z4)xosj2*YCWCgO7?Seft at 3ER70OoUp_n(5-TeQlq>H?Qf{Ocd;enk-~Ll`8Wq*yTs
zYYpF9TB2Ug_VjVw2<XIb1|}z6KEsp)JxwkDYrAM!!}?{xy}t%qKlKeiN}V;4L~6Yf
zZB2BCWPqP9rV9S&I!DArc8uFubi7k$x=uyPq^<3R;=+sMS`>0Ig*IQCXNlDa6xw0$
zdnIE_QRcrM{#alPV^gLM9*6antbK9XAs_L~C~d;_cPn8{dCxr1h=YJE?6Y%bS2?`6
zn at RVKf0mlag1XD*Qh}|a?jlo)aAf}I^8Wb%9}2_YK=!1;RgbE-6ZKKnaUvl14{(`A
zbX1AgQry{nU7rTurvvHtE)QHr%qEltQO2gY_&i!ZvJkT at qUuz#3_p(e8Ni9XQgp<R
zPKx5H&v6=`{zQk>);kEt+7u2XX;(>>B7RjHaA9`^USk4}@QidwuN+v{2{AV0k=<6R
z#vIWh4mTG0uq;D>mrh}JkA at n;V~HTt%`hn9Y&qBIGP6?6|HR9N+>bP`*8;R^8Wqiz
zs88i?tc*WzQ@%Ksl6?CgUnD*1DY2Vb2g?}d3Rc?@0j2tGn)A58Mc~WPc!;JEP5KAE
zJ-z|st(19!74+f5>IMGo_l2QZm7LS-+K&P_y_U;mQaCG at V1@zv5+?~9B<iT#S>|<w
z2w}VS8v{6N${r*gix5U5r;tv$(2Bu^j^Tr at b40AR?ajJGf4Kxo#OdYOV%g at y*8)~#
z at FsiNSv8uJb$(?P6SRyP7X)wi^J#o=F%i>w=n&ZqQjBu^{dC(`H5Q#va!tnpzpPiH
zK5hy9K6vsnRv?fPDx8eTy9-~L at Jq>Nk=$u!S&U`Xzv}pMcM-vtpc|p4bPAJH#aRf+
zkj|hKA-)xMUGj(bwmVK!Hw at O+qxo{2X1xKNmq943fF``6BW8X<z^lw*%X!l;S6UIu
z9%L}Hx~$V?$69s?Z;p*z(1W$1lQMX%ia88-PfAOOVP~~}ip96*oO`m_Er75uopJym
zOf#-vcH)WX&PukT1=flaL=-p}A5L<|ni=ZYOfPE?kUk)ymmo&&_MoM at cb?*+JV`ua
zI_R)c<UivuWLM#Kl`4|hXmL|wF(!?!-#0qQDG2!J5A<5Hsx&yZN7|g}cp``I!+xHc
zgj6q6w=aa$N3qVAi>ZK(tsX|O4Bl3U5^CXb93*3lOsg>~^s#SZsD(R{i{iZ3)E at 5t
zj6de_fe;?^Bf?+f<7nIfs6Lm>fI_!@SbHAo at EEYTB&6R8SL;T-mI=Q(q<)f*;*k6D
zaw+6IK5NWx(g=(mui at dOy*@ybQ-5B6*KU^G!{8J0^SLyn(NV^Ob}mY- at M;~qCCv#>
z-ryofL4jR)VzHoG%}~{xeBJp;>NK+5iKox>{Ghg`xGxk7;FZqvP~mHsZpUR?I#>)@
z>$N}ZZi&MJqrgy^j2Y-CvP_P}d-~)$pL9H7ZtJf*Qxtw;Ydaxtel>YeD8Lh2$Tba+
zq(v=E?Jyp`^06ByD48Vv1Hj|^GB7COFV;xNorZ6IexJTG{+ZfSAS|Vt{G<A&JufBq
zdQFWTdtd_sI&)q;poa=AUc;|K`ZGzf*lILi!xR`ILflgMLJ+u0D-tX`r>N|@3)WH-
zCeE;m9brXZirBo}myX${$<Z2J73;>&QtpQP6iO;wiuc4LQ)6>G!HBllLDrThFeU!|
zwzQ^=<RNr7<L`mF8A2QpK4FikG^HY+8$F^vf2K6u$P8lPDz4+1mIrA(dS>bS#xk8;
z3?P7KVqf?&=p5X!@~6}ugrJm0^3aN(Q2c;<bisW7FwGp<*dKq&HYb&<vMLxnA#no(
zs8uy7GKYI=&v9<|xgL)zBK!4y{`X>uDZk+CT+$}uz?9ZDDmwevv(r?_rd0hzK`(kU
zG#*e6Gc2?&9q!oskwRU at A)DMf-pIlPlXxWO%hVTqc-7{?>o9Bl#x6^u*DX2{ix at mF
z7T`WZxQc}=nf_J1l at 6+;$%0M~+7XMZB5};5s0Rx_fsY}O_kzOIw;3=tL3W3!$<nk)
z?qxe`2HdL(wt`P5YaW$bThL`CXozW<NAFXnKNSeE#V(r*LpNnMgV3gzbhbg3BITK|
zTi;31YfEdy`G85Erqd(o*3XKWnq<BoN at rSH<AuU=ldWcxVcD`nNb)0=Y$zAvsGD{8
zMGTV1A$dA1&u9U_#D2tB8rVFc`^CRI|Gb6n*1?%TdU^L1+w|1;cdymb+5nf;-QUlu
zqaqjx<gCJl)w$OU?q3HH{D48-Gqppf!O<@)l(w~s5P2$4Z%i)-=BBZ|K*2vp>gnNl
zybJq6%D=UULYlZ}OVIZ-W5~=7g;+%zttdygv#CG>AMZHHY$dE{nj|u@#^;NxLTMr`
zxh|&}JN=RSBRM0zAU!EEm`hqle>CA9ey`$M2K{H6A2C0z>og!rjk@{I5x=P-=@XnS
zqRyIfqAo<j*zhPAI5B at D1O+%4kNFNR$IgAo<q1B<D=h*!8TS|2MK}c8ke3IHkmKp>
z*|j7`7mX at p)YXKiu~o<(9|WWtr~3|s8s9pWDe+r;T4AASJBHkw35}iRO!OfaCr8_M
zw5mBhe=4t^X at OveOh^Je5P~ZL(oVj8rFl_lV9AnU%SblM2!|9`IPogF);IfENJX^?
zAYpT+>s-(bAG|6#&LzLFCR7Wu$)&V#wUrU3kyZua<lyeH8g_=K*&*)IP|i+wl at Ka_
zcJ?5tg1x1JhZ;$6E9NcDtT;pcdxsn6yP1y84~sVFwn9#$&7Qr6(sFH%2tKNIs=<jK
z|0C&#&fyT3NVRadd-41U{oP364H+-AW~v;Wkbqnb(>$F(pJ4W|-P<f}O3n2b2?F9&
zN>D@=L1kE{<G;zp^hz~@#K7GmSrLs4cK>p0YjopK_r%8B^ffDsWOsb2u%5;;is4M&
z`t+WcZAlY2hW>AeofFD&*f}UgrOl)Q?Y6Y+k5nvrpB at JD&(!;yTcqRa$9vyc2D(be
zw2EtfWYx@^4WAAH2#R~%Y=F|TDOccPU5^SH4GXi5%)>NC at T>mPAdFKh4brj4k0nW1
zGf`5M69|A3 at LWI-EU0^;0s6#L<#_ULnjt#VyErOY%&kwN`0QbB`So-Igo(%8Rl?~<
zE*L@$Wi4qZzvD;Tm{QDIkEo%c{03AbZa|pc^d^h9XYdN at jnHXT&l-~Wyv=F>Ao_Eh
z3Fgz(kL?B4aT08(0C4DO1)w~Ikks$1&J3`P(M!As#l?aum%kqIi?{INFlS4p at i4x2
zg!fSoy>iGhcf62JDI~JaTW9UgWkbb(LA`w6aEm*p*n|d&_FufmWWqi*gqz4%E7m0s
zh_q6nB6V(!<q at 60$r`V*PO0|+CCwC-Az|2~U*HiJl-P at Z6&Nw*w(jk$LeK}#TW^&G
zu9g1%wE(7}%#hgt4mHljd_S*MGv-}o3qW~2M2*SwH=XBynJ8Aq*%EzYH#pZ8ilfIV
zwcMEh9;n0a0r*DSf_u+%`D at SQ-pJvBh}=O9y9e!5HfbIVregAMkIN&Q>3w3jB29nl
zqvv`ciJZYerjpW-ArcI(X+>9N?HX_2#P`q4bH~LX!l9B{^&XgVOX=bLdDlWS;QefX
zd+WHvBj#|OXQfCpWWE_nD&q3ehD+S0?|JrL)|Qtw(21+UXO6B)1pGUegqvGbQghsS
zEBQvi_kCop$J at 1e+q&KP-_pOXepQ1In^Y}PNaCh?PzU(2HB0WJYUYQl_<hoGdTQyz
zT)XFZt{<!1HX{kYlDh_o9yg!Lx2silQ}uiQS96q0rxbP<F*BQe5p+rQNBog9tc2D>
z8P+5hV-M;qn$u)<<5<IFr7#LEFFADJ+NZq!_I#(-v7fnlrwX^rBFfy*{xiYa-UCB=
zE>=_G7W4fG|FoFxKNxH}7kjgiJl6FJK7Rv!#qC|^$p^1j$l={h2&A&RTMUU^d4wEt
z0Zc22y%_#Zz8VN81{BJ at kO4@<w*+%M$-I2CXR2Hk2 at Dn^v;~sLq+Ze#XI`x1jifSf
z;=|=?XHT=qRldr%yIl_XMsZig^Ess3{!OVT5N3Tq>{qStt%YvQh9Gd=LqMZPfTi}@
z3tT^r{OC+Ly3JhaVX3{>eMP%BMdv*rsnm1ctuyfb6`;R}9|eY{loKK~HjYfBZ^!GC
z`1r at L8JtZ8e5%`2Wbsifkc6ZMG^- at 3`d at 0XQQ4`tzla$}8dW1O>N%u2znDFungrlV
z&Ju<+uetOlR5Hzneg>WMp=+Em4{CjdxXzVwEfu2gjV94oQ4~*ldD(A5B+KBojMNYM
zfZjo^j$aNpA8$|va58^o0`EO-G($ckzIgzsyXrFY9}_e;4#-l_C!$cNJo*$&>rz;f
zVy)rk$zW)p&N!KZCNTB(QW0X{bt!}4ss at N}EKKtjX91N0(Xvs4&{|f9jgVzCpX4~_
zu0UHEgX3Ty%rVy-KlZP0{*Oe~&}5Lk5IhxE^$hwepd`{PZr=brhESexvq;LJaSf;|
z4NB4ZF#aYRI|E#hY<=SG3O*rDw*Wyvnyl+GRKV#nO5CB35+{XiAiHn3QmGZoox~V@
zy}j at ThGlQ1$k(CpmkyFLZN)o;ypfY78+tae70y}F1lVtceEemXZ{kvHg06Eb8B6Rv
zF`7{FcbU!-EBAl0=tTr#!!#`R>2yG7nHkjf)L}{X{V5knc6IdTO$?~x`B9g*?Yy4_
z_2nA^S}3!}lo5M)cvHa!3Ncfxlb2QJ;;)|={A at Pg&T-8+Jk`Itl+CcrtbU~HLDm1W
z+<XI6|BMQtfEeuUglO23zS2Km13j$mjDZq%W)KyVJUDQFL)uFNj*={P$4Bvioj-&$
zIA*!g1BMssnHhlpb%^bDpKrL4P>P=1&?|z3A@{emnNbfczK8lbs!b)hBH}p!ye!N=
z=Hu(Tj{y@~NXNi6V@$NR{-FLPP+_D~;up#6l%>8R?(1uLv2vfk$&hEo3{Cev1(8IX
zB6=Mf*g?|xejT;Mmee{=%X|=JwMD#fJI#{SMMLGqPJ?Uw;gy3&Lg&9F{N!n-Fs|o*
z4!^5sxXeccGDA#4J at Z}F^l8>1FUUm1UEaNLv{pOSRt0=enJ^^+`(F3TmCB$K7GwYv
z#`;j6Y6+)SdDcrx>4*=PXOfKNYrH&gNRLgV-;f%(=-zV?IiWze#C}B1#pu<z!KInW
zI}NJWrnh8`yL+c at R7C<P8K!pOArfvv#<%jpzI9ReX+x!trwKD$l5it~AuzN4^=?h-
z_BTjJmM-M0ST(IVwCaaI>BN(chwCafYOeAT3zV at Uo9|h*0PqGvT3OyJTJE2kVv>o-
z^Ew*Oa?G`u1vfy^KokYS at l&t60P>Gy7$TC_61m1--tl9{m3$B{0+DZQJ6<hXX=_C*
zcd at kR-TA1h@G?HfMOLe#X0q&PKP{nTez9TBie=aZ5fd(G_?l17;$#kk&WccuZw_yx
zl)gRa>AQztQm1;m)*+#}Y8M~$<S3FG8&PDN*zS0?y*e~ZbjwQUS99(C6hn=k`842e
z-yjud^{E at bu$adkDk5Qg>l%;0>(8#!!9u%d;=B&PtR%rdx8>U%zJaf%`tCcu+zDe+
zL>bU3g=&XyFHR|Zg|5i{#UJP at JXLmQh?hcPLOAwX=eWDlm)ivTYjr>fP=e)FC}+GU
zEtyyi2<xhF={u^#!baJW$`$xQMTXFeDCTl|_Q6C}tXeSphqz<aWYmw<dw6&XEjAak
z!<`e?O}3DFzGaYl3c`!ahjS{HRUG-#y)_yJ118B{#x{J&7*fA*C%3w!p=)f#BT<vY
zeyK$7sW}i7S77l&?Sf+ZJ*kGuVGf{1P`W6 at xDJfS25O$_10hQ#!c*DvRp`m*k6|g=
z)#uW=dw+L3H=UVrR>XkgSx;J5X3Ovck+k@?F%SX1LQ62=$RU?!R7yE`Ocms9t0C)*
zz(C;z-s2PRy at 2l<kx2sKev+fAJ{0;AXeRHMny>Z=|D;@-{k;!Qs1re(e}!4W%5LHr
z`<EZgu)A<3#*GX%1x5NVD4J}$)6g(f7Mnbrk86r at DQ+z-X9?bhnDT5FsS9rhc_8Xw
zoja~UR){>Dgg>#;8q?!<fOBAByxCQ%BJjP??JiSA&7^mVD=^M27ayp@=s;*Z1|U0B
zyO=P~_lSV1pVjfas`hFZ%CY4K1N^Q7Ufg&OmGFrYO$miQjc_N^t5+Kiuf+Mjk~R?k
zw*I(L??iW|Q~s4|aW{jwMyUOAWRON?jrr=tB<0z?Z at g9!xZI))FL-rWwu<o1`E~Ls
zwaIev<0{P<-KQ1Tk=O8KHF|L7Ct!kIK*x%Iv=?VN(patKuz6ZveKzwq35u#@RBORa
zj_u`-zy^*)Svo&JTgjv~<=u(w{q^NdO-spGm%i$qBJ4_cY)JcYH;tsMPpM4a<9Ahs
zMTmQy>fyTZ6bo_efFUA)N<I}@Z&%+85;V_pnXCf~DZ6XZHrPfwMel~kwr4 at 5vW$z(
zmC-J89M!{E!slH5BR5q~xiCjsbR}y##*AV8B$ZL4DG~&hngwzAFv!apCSsuX|MMy3
z`g7so3O*EF4a1h_83lf~%Ohe`B7iGSa8PN}jEY0MVrbAR1kS^)pWARm65PKYffXn5
zR-{V~O}?2qqKEQaSz7<sEKjW>4G53*2XfqX^YEdPdE_QnL1-U=W+PC?Y6myppS(0P
zY4~f!KWN+Ltm}bC`Irf)1HUNR%xu<V$c$u|Zcl()e^7c-=s>u?I)DXC7W?IC>?Z`>
ze-luk-9*k=Cs9(UG7C%B0mU*1=<^Phb;btXL^eTE!IHnU2S0H#yj~CUvvw^lQvSYN
zu_Ed$r0$!TtIp@(o$DA%sRz3vE7II(d5wu;LAEO&Kdm)}yKP6{U6G4if>oM;NMwYP
zO$;(Jyz9BKw|!N7MEJH~*ioam2!%G1c6QpWT%6dcRmvc*LN#YU_LE|G4_trE0KI4W
zq|ih?eD1PbU(45QUf6n~xpk6P;;-Y$HR`<Iqtjo{QUpT600WwbXNWbYFbi>bkXBJ;
z$kG9jFw$VT#*Ihdmp{hc%FMc|co&K;Qe-yVobIB+yW=M4Y!XB%?G!xsv_p=hc(04g
zeUc7vFgN2zKY2cAAnrVAwz6;NRVA96ME3R5&zUqdQuy6(sN`v(VuXwb+Iaz&;SW8O
zF+r*vnG|(?gRJPl<mFhPQ3tNOB72fm5&d$Kcw8iyahVAa{EiMN#>2Sj+vwAnM(Inr
zzJHVh%b{NFqECR~NR<mm&2JI!#Zj--mv!h{Y{|V)MNSr(O$p^{wyN8bU3Rl82+mhj
z{QTX%IL09T<!o;}cRLS!0^UCf0e&q%FY{F#d|&2!)8V4?#V0CcY}C9~pph|H(~iN{
zH&H+B2CtD6X86ON)CCmpdD4VKpBQEKxw3S$sg;c5lf{OXZic3b!a3Nwyz~j<xQH<D
z&d2|m108<F2klfgw2tkjhpd`ijcGT|U|I0Ik~Hry0=Zt1pnf-FsCUO3OfyB at j-FAH
z=HzK@=&)5jPE0we3#!6+P<Tc!#nD+NNJLa|cXDipq8|&XPOj4{g&r#65+tyPKQT5!
zb&{(#d|Gj#O_$01Re!UUIsf%q-;K*aWT06ADe=yw at Svtr!(0vmWuNJQl%?>x0$`v>
zaTL9rox!!w!Mr-o@!fsRuqs)bq?@M+90?4Tjy9Ysrbu#omSyH!P8OoW;QGBv4v$7F
zuE>UCu!o)f(;r7N=B}Xh_E$ZCv!8{UywuQTRXtV70OkJ~jqi|Lr(|V4!tiI5o841v
zN^m7AL>yfO%K%+FZfc4(`s(?4KOE?}csoKHMY1<qL^cXwgL~_J-vD51Z!^5wa6pYJ
z1YgY)$TNm76d#NR8q3Vde|b*vis=-`DT&0dG+GLj!q0?X*NIgW&wh9%Fa5S5d0~XZ
z%lzfCql?{6pz_r^N+kfH<6)W5XD)67+-A9ME9N|l#FbQ5D=A4yx9JH at 2B&{y_ac_8
z-jv8<rWg?RhpKeT=*I#iG`zE at 9Y{t^OYoaK-D*sdE%nw)kIvV}Cl>;B7rwtYK-riB
z3pt!Jkc#a)P%%KZ1`Qjn(A%7tm-A~JF^)I~vzF`R!75kr`gD(~3{@h=Z_-rwFLf^(
z3Q{iKV+#gN>fvEI#w3a$T~cvYTYF|j^;Y_K-5D%D^$9~`v6;5kCqGiRB98i;2Xkht
zJ=!?5PHyX;{)EU+LhSxsan}mThTeLhJYFD4$Mr|FF0JdJe+QsxxN2)N`r&-$H+V+3
zUw8r6$DZ`UX=FVN&xT4d`cnT=)A~^F)d+lg)=6UOFcB$c0X)w=4pH5i=APdC5Y*Jp
zL7crwVe_rl(C$M)XeTWPZ0GAi0~gCTC<gjiAkcPXmM^M>c>qclEyGWVNfFz`y%l*4
z$68=@5(>>$+G^Dk12lU5_^kLpm?`H*s|aYYsc%(d<%CL}_Zx>GRyIy<mb@(uHh}AR
zDYB?#5W*0pQOJH5yIS;8_5-(heCr&W_VBsDHG~zx0$kCi8|};2LOtcmuue)6=7Yw=
zh>Hq&KrgihaQepdp#IL{@97`-*l{{qPZnf~)7D->WZq at SS}rQ(A-(YSP;^5)N&Br6
zfO)0>ITUBFJjhW)8 at w@O6h+32pvUGXv#P1<b4ViYmN}puTm~*VD+5-%u2EFj1r-mb
zlD=;EOLlaN*9X)<rt@$BDBMHYdp at 8}GS*|^Ali51Gq9oscEPx}7=;(WZ~-^QrF7A1
z8f4Ww6TIjFgJ7eDjL&THqHI8z*l8W95}frn>8MV5r-UAq8=vXB^(FDX+O$9{@NSr(
zxm61 at 5D4Z<`6o(`gz2gDrvT78D|863f_EshynBBA<}DxEZ-Ig#+Zlfp6xsnZf!60s
zoaXCdL2=$JM+OKnOE)s8>1tAa??l$biy?4xjvaHnuKXd4XcR}^J-ORTQh17Q^kG;A
z*QTWz1&w<U>ymCx_ETfR9O+SkeL?!xwP0ZJT-1GIRr#G!9KR~2n)T88RQQ=II+wNE
z$o-3)%#P8H+JT}luh0}fdTbGsZExZe2PWyq$SussVy(_{pz84}B)HrTMMmmU!A1qj
zeGErgz8s0qwH-smD)sTGD)lXL>NTQscAOUzUD>YAsOl$~$D%s=W1#NRLBIhXL9W^M
z_l+S4eS-R#z2&I`dFx-0OkG!{sG;nX=F!MBOk|iP+T?Z%xLT#7*m;_(&}|lz`=Xi_
zS}JAX>l*1y6xaQ9y{5yFg~=uLDd&=WZ`Pjq*pd%@L1jhzVkK&5rI{u$tD^XhH^{i1
z<Ia_!*cg at y!+Kf*Ahub>O at P*v3ijXmNu$8EB9}L`$QYffuF2t0JJ(H`;+UH#wmF{R
z*lx*X7(b>@1W^gJ61V!<xW(DeT`@)s9UuAYqpB{^Z(dm}RH3*I*6O$g>UBpBJF_CQ
z>)5cbqIf2?0?B!a23tgu<WC<wFx61oFQ#8|ErNYPzOe6bd5zphtyy7t3J^s%HemO*
zwa38%MVZ&W{T=R$R5~oo3TQbpZanc1*sd8*zvfTB0)*$v(Zdj#gp%Tit7*xY;|6|y
zC|onkRWqJTKV&1CmOx?qs)(k)r~a7&U+lV<R)t--PXBGTWDvhx7=(Y){p1r*P*RN|
z4!ebxo(+~(>-Yojfo<HO_hgPdqqJB6<f;S<`_WV4xEu&@-Qq=Of$0KPd5Y4Og6D6q
z-thC#_B%(=bLLCys|lT<{mDMUtYlSQtP+!D)JOq;ZG$u>+sF&rK+4WPQ5#o9!ypo8
z14T7pEqqP|qX3+f*XThcUrO8<1{(M^G2yVV)DPoo at GJe_{4;3_Rd^UJv52A7U4K at h
z at D^uI+Wxav{q_Dk-AOEA3XlK|sAf*umyJf}F5tGMhr={0m!$lqW2&W|{i+1NY(go<
zFHMk_2yXM52Kt at 8esp@_w%(8yZ*Yq&wa0kE9*#O9(aX|4SDlTVnbIRH(dn4Rl$39F
zUZ+zkg=L1`GS+JSwrG|pSTjAcF!>lh`h|QJ?5r|M_)W)|H$~azl3WW=<12rV{iO#4
z#I=BFSyPVheltEKo1mq6_Yz+wP1#h$gRx0^BK|bE1=gjkHOfAQ?UjN<&r(+1Ewh?`
z%`{BVXUzcGKUQifR%*5<sdmT0(ssT;?MoPIOsZirPhWze(Fg!$Qx6z8W71H+T$T^y
z_w}KsKNAv-EBU at tX#Dqxnrry;@XLxg@{F)Y8!zVJB8 at +7gn*q;upK6 at Dc($e%>~lQ
z%WQsmp9O`yO`dijDE%f9<)Y;Pv=oKY6@!Y1!`gcqUVomuMp~7u_8e^Gdpds8BYxGo
zAsUc>9Sg)1{Y0mijRxD*@A02}<!{vHh-n|vE^S!6YDt-ccj{}_iiY-~uRTKkD%J_I
zs>}RaBKs{H^0Levf*g)Gk1QzkjGDC8OS9NiUZQYrs%yu*b)p{Q$g6LhJdxd%#84rL
z>~cFhoN##7YK%sIq{CQ4%jFpt?MNJ|=06|HB0Mo~G~{8{HG`a>I{o?pQ0ex$#5ZHr
zwL<<nqg3lD>?Wv*Em&%~I$fEb(&iH~QS=u=D!xG0Hga at um%vqD^FwQP62?=*X&vm}
zM;mZj;iiW_S}`Q$-(r{r at wQSQs=dWXYyC<ds)zzAxYwDjg!f{DWvLX4>LX=a#0$-J
zoq7)#iXL3H at 8<hx at 2YN6oXKkw_SXa;Z$f&aEcexLFg*DH-G+7Wh8s2HLKv&(Yn at Hl
zVR*OKrqo&s8P?F~WoZ)wW~owa<e%7x&- at y?J3PkVO at edvOQR|33$E!=(;&~5g*YKE
zsbUW&fU73jKO|Ok`pfWMgM!<FO`mR-U2-k?Q;nJ4o$}daw~<P}${mzT)z7&BXL)YU
z;!O2o?u;o?Mom9jVGM at +%JPc0*@@LIcw8pYESaN3nf-fDEpSJ71?z-QdN2Oipt|(%
zL>IB0wy!m%4Ni at YMCNvk-Mdx?-wxP^*T9Pg31#U4#SwvdbB47#uZ at 2k3;3CuaQa8#
zA$rl at b%Jk@;0{o+9b!9I70ni&P<zKsz9$tTyB{4-EuCVJv~rOByV1HSCyiW7jBn?}
zzPl31gD+QCNTk<4PTo*0p~|84)Zwuli`VOvw!P1IaWuweRa4L;%OLOqDFr^C<NnKr
zQ6yuJc>72qPs$X6F)2H`9f}z5H8lsUk6OQ at Upr`gEN=sko4W0Yd(`5hPn2DP&q@!>
zg`SniI!pf0Bl{#>NUQORYM(3<(8%2JH?OX8Fn9D|dJTXNUInt*%gGi~Er28&r`1r9
z at RMwfS7ay2XiHb__+m=@h)l%BltK0i)xKd$km$!I9n$3tXReOeeWD}w&O%@biA<^F
z+<Wje-|v%zd at PItmxA1PC<6f%ienrwg}a+6iQl=~1jQgu#i}l84D!6{*s0`6xtO_5
zYZbJ18}t}irgHFPob;pl2h{PN99so~jSXn-`)_|tijC{ndyM<?!*@?lomrPpkC3EM
zb`IvUCOzlhpwNAq^Kbs9JzTAPo1m at I;0fuR=n=-Ao$9#XF$Yt6I1ce`!GjNeKuwic
ztk6tUp8KU>Q#nIeqqnRYcb>!`j&PizD}0^ewq#>KrGuArn3_#?id>SeD02#=J2J!~
zKn&ct#X!LwQb49#O-wYNp(7M>))&HN4oB*v%TkPHJVK8n$IlS@`6Ef%C^Zq(*F!oR
z!RAgm%1G-6Cbe2*5Cg`}0R-L>$1AnXBP~g>nnhkk#^^%RDo_WXV~*E_`7T$u1c7ak
zl=tDn=D at 9h+z(c9mnm<1Dq>->*^<yk&}MK>ao7=5{WIWwTduX$jg6r10^jMJAW8n0
zptQ=61ys8_`ZL+7_(m>z*}@hJkxz7o1Jg$P-K#^h3$l at VsdXI|m^5x)D1`1WRk$>L
zpKrKzR`m!8Y%00v*mDWjt}53t3jJ{>m2b6H`eNdYk{|z4vWZQAXKGx}e^2o~y;#F4
zgTIf~XWdIrp}z7FwE#>kPp<H#th!~Q!43ry%OUcbbana|I69Y;e at 87<PJ{YrX&f{!
z%+0<)(Z;G0uI5{QyQxYv_!y@|N)R~gjq8vTNpQVNJ(1y^uiNTI7T<wGQMb_te{V=q
z0GsVBxP at XrK%m6&$AMXhP><P)#qgSe@&D`IYo{h+PLXZr4m%RrJFG57axO|excw>x
z1sjx&q?eO*s)_W9Tl(u9Ebq?oJum4eCg+s_hX{E0$vOF7nw3;)&bG>|Fyy^Y?a=}d
z9hh$@HRMEq@(}*u(Y`UO`c$F72O9>^qj3X|Qr%bT%_BuIGX9*dV<F7Ozj=7dfjE8o
z=Y*zQ?DXdb%JpLTu=f~;CzYsn?1L^yuC^tp_h?{678G-++PXTxZH9Gj>V?>Kqhv1*
zksY6ZD2QM=i=k_lONA;H_hyu{f|d+1TQVhoZ!`TQ`9 at C?k1k38qhlQt;wSrXp#z{J
zj@}fBZ;XlCEZ%9zm2Xij_DU8SXwbJ0InU^ZOn+_ at T_VWUWqL+|b>3n0kJ15!kAYf|
z#`u+^b&hN%@pL`MF#C8zij at zRyDkgw$IP#B<vTr at G^5<o9NK{)j4)N0`6jXvlNc7x
z$LMer&&9TJ+UdWJRU9d}Cx}5AnIIBJ_pEHnJ01Vjx8V!^2>iv0E at W6v4K?;N!DVd^
zKs1$w0f at PR0uaHJ<`74U!)AVGIZIc13as6TNw4}X|HJ1-7elSLwG_Z)tTJ?w1;=cF
zU(UG571OhXt8S?myl-%*w75~~0F(~?dyRc{vb{`Kf%oo}q*2a}%*E3wJ~3zCXH25L
za$!W1O*f3TQPC5n%C4&B8u|)@tCL6EmIIE=GAzsA5)mu|?^$FEH1lH`FDDaTW3^P4
zDvw-3$%s|^tF2Q6R9a;LJ0gKpHfH6?cB*?Q2xBhrXFj=k+e2aZw1gw`>55_4>(xrc
zgNi;ONp4+<`Nawu(G=_O2}=Dt7P(iKc)7T;;Q1hGgBtKg3fJ4aPqQL}$z+~Q at kqwO
zA>FH-kfTF4X8h$!;dS7FpTvk>EPs6{in*Xj6{A&-3QIm%Ns+d&^MB;P!sDA-b^aP*
zxGiW^c~hc0$vv+yV9qwXQ2~e;9z-|Y;|8(AR_bU4C#*cXdEQ+Xg;q0<9nWHph^H8>
ziKZ{)Hwc at 4{iNf2a9a*1BY!ugNya6UQ*l(@;VHp1ex!5^B5vdq!oJ+{b=ZB0 at gW(3
zxK@&I7<JNsWZV}xRuJthDaB(=fo!nMOke16!EE&LGfS1gBj at U%Wf)Y(Z4MQ$n~W*O
zsGRSUjOU%t$~aLsSCEp77KapCal#$$Y8V{fQ-_o4$KlV|L67?yl{P;CrX7mhhPFAw
zqM`=#Xc4htv+sAhOP&wYn$Af*AIU!f at fUp#4Y_kT|If;)&q$Q)!V=2#Lt(nnw%9^A
zt$vb_Fmb!%SA`>jU3p-7hJ>Rs at KfwfSIdadn9-Z$P`zPP%T$P>BzhRN;_Acqj;qF?
zn`G{}61|Yk$KB}SOH~vsTm6Qm$R$w3ndB6j4-aSwn52}S0Lp8|Oh57hZU!Mrb~rk7
z8kseN6z?Ly9dvnLHg2s2Zytq?ZZ~Kc)b at 5nRyv`PdYo5Aw&;yI-6_o|kY^Mker3d8
zWf`CSpP0y0gcfJC^=GVy)HRKRPXVqlfaD;@QuT2hJ#+DuN|N&*Ok#3NB4)FPkBa46
zfQ&I+@~6+k+U{U3tTg48a%|^K;~%!Env$rDe+8n!K(uL!Kvs_oA<UmE-B=Gi#L`8z
zR57i&`}7Wt-433r^0<|>qzu|L?B}fQ>qa$qm|SX8`xpzL&maSzTX+;=jrBB|iWP(l
z2(Db>pwaGvD{?d<9i7GV%|XWH+8_^uTk~HEi1Gber15%HT%Bt;_!f`PX^;QDXZ59n
z6=1X{;gYHwGjwPojFR)O1c$ys_Xq26-Z1axE6?@nxE3rM3bH%e at 9&6Z*9BI_PIx}j
zSdp74Mg`{V*2*5l1zccSy#q70X`q9lpO5nqN7K|w3d9w#nE2ai&kl-vIQ8UGw&>sr
zr06YBq8VMofs*8o42u;<J15o%+b}<wx%SA^_kIl#Rx{rd?)g!H`5;u_voN9f3kwzc
ziSjufYt)#5;%0s+d&x>3!8&@~WDI}tBmD3>7ir$n??2FMw9jB%@$|8zt>u7%Ls4-d
zCN-|FMm@;`%jm3zDrqQmJLOt3BD7{Pb%W- at jGS}x9mH|5;K<m4O$OYDzF)B4toe?D
zhU`<qR58w{y5ovgPW%F8GJN>!Y>czl7D_RZ&AgO$jr=5nD at cd3lg!fQRi+T6J+MqL
z{eFt~20hRR86dSUwG_Prb>k|Qp9b}8Zk2{3iof-8(HQj at 5OR6y2V&v;jU5#(2@#Rv
zN0z8b9+=Y~*^U5L1vq#J&B7C>EYbW3-f!7sJ9Kx7Cb-P`vP=5xxseMHd*$Rg=wDtB
zGLB%SeR+m*4KffFK^7KaeEYwK%WW@@5-;eqVU5CUuT8w<{@o16Yu>zs9PLE{wli|C
zAU~;Ks=(%@LcNAZF`S95z=^nB-&neCuaHq4Mf~n#A;~!mB`-uYKt-ArNpoBp#79~}
zcCe&&y5}C9P#ydx7sV95qcRZL**DOB)e??IR+88UmcdXDe|Z1I5}<2)@9Z*6Q?k)p
z)d=<TF{J at K%R92bG(85)BmP1`cBGii8oEkOU_6P_jR~6TonlLO9xwsl at 0q^JYCfN5
zq2kwdYV_)6SU*!zt+icN^I-cmO~a;pQl+IzIWmaP at VQz%G`Ah}+nbL{d#!AYR0ifP
zG)Ju_tyJ6h1K at FKB+{a(T)^6$uYu&n-v-3^)p0)x07EmkteU}Cip_^?6^0TKQ8Kdz
z3CD>5wDG7%b`vSWk?6v{K=XpRJk|~k4&dYib>#ej<QqhXVIk`HZk2v<^i?lu&;v0~
z(~kV%y6ShX;Iiy?#8>$D5^`)*H_kkmHK+;C7vY7(7HVu6+H>8VYOzX{FKVcRJb*fz
zu%!G`Y%il>2OAvVDF&1**Ra#VQ<5SsX?Gz$LEea5 at IgP6I<Tky5nm+wX>tH$2(46W
ik#(8?0nD8ofUw&E0000drc)dg7dtQm000001X)`7U)Qz(
--
2.20.1
More information about the pve-devel
mailing list