tftp-hpa/0000775000000000000000000000000013573461024007476 5ustar tftp-hpa/.git/0000775000000000000000000000000013573461024010337 5ustar tftp-hpa/.git/COMMIT_EDITMSG0000664000000000000000000000143213573461024012426 0ustar changelog: revert the default back to /srv/tftp (LP: #1855490) Signed-off-by: Christian Ehrhardt # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # Date: Mon Dec 9 16:04:13 2019 +0100 # # interactive rebase in progress; onto 48416f8 # Last commands done (2 commands done): # pick 7aac5c6 Revert "debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp." # reword 02110bf changelog: evert the default back to /srv/tftp (LP: #1855490) # No commands remaining. # You are currently editing a commit while rebasing branch 'lp-1855490-revert-default-path-focal' on '48416f8'. # # Changes to be committed: # modified: debian/changelog # tftp-hpa/.git/FETCH_HEAD0000664000000000000000000000000013573457576011703 0ustar tftp-hpa/.git/HEAD0000664000000000000000000000006513573461024010764 0ustar ref: refs/heads/lp-1855490-revert-default-path-focal tftp-hpa/.git/ORIG_HEAD0000664000000000000000000000005113573461024011577 0ustar 7aac5c6e35d7332a03c3ee815f0996043e947e1a tftp-hpa/.git/config0000664000000000000000000000117213573457576011551 0ustar [core] bare = false repositoryformatversion = 0 filemode = true logallrefupdates = true [remote "pkg"] url = https://git.launchpad.net/~usd-import-team/ubuntu/+source/tftp-hpa fetch = +refs/heads/*:refs/remotes/pkg/* fetch = +refs/tags/*:refs/tags/pkg/* pushurl = ssh://paelzer@git.launchpad.net/~usd-import-team/ubuntu/+source/tftp-hpa tagOpt = --no-tags [remote "paelzer"] url = https://git.launchpad.net/~paelzer/ubuntu/+source/tftp-hpa fetch = +refs/heads/*:refs/remotes/paelzer/* fetch = +refs/tags/*:refs/tags/paelzer/* pushurl = ssh://paelzer@git.launchpad.net/~paelzer/ubuntu/+source/tftp-hpa tagOpt = --no-tags tftp-hpa/.git/description0000664000000000000000000000011113573457567012617 0ustar Unnamed repository; edit this file 'description' to name the repository. tftp-hpa/.git/hooks/0000775000000000000000000000000013573457567011503 5ustar tftp-hpa/.git/hooks/README.sample0000775000000000000000000000026113573457567013645 0ustar #!/bin/sh # # Place appropriately named executable hook scripts into this directory # to intercept various actions that git takes. See `git help hooks` for # more information. tftp-hpa/.git/hooks/post-checkout0000775000000000000000000000074113567270544014212 0ustar #!/bin/sh EMPTY_TREE=4b825dc642cb6eb9a060e54bf8d69288fbee4904 NEW_HEAD=$2 if git ls-tree -r -d $NEW_HEAD |awk '{print $3}'|grep -q $EMPTY_TREE; then echo >&2 echo "WARNING: empty directories exist but are not tracked by git:" >&2 echo >&2 git ls-tree -r -d $NEW_HEAD|grep $EMPTY_TREE|awk '{print $4}' >&2 echo >&2 echo "These will silently disappear on commit, causing extraneous" >&2 echo "unintended changes. See: LP: #1687057." >&2 echo >&2 fi tftp-hpa/.git/hooks/pre-commit0000775000000000000000000000101513567270544013471 0ustar #!/bin/sh EMPTY_TREE=4b825dc642cb6eb9a060e54bf8d69288fbee4904 if git ls-tree -r -d HEAD|awk '{print $3}'|grep -q $EMPTY_TREE; then echo "ERROR: Empty directories exist and will disappear on commit, causing" >&2 echo "extraneous unintended changes:" >&2 echo >&2 git ls-tree -r -d HEAD|grep $EMPTY_TREE|awk '{print $4}' >&2 echo >&2 echo "See LP: #1687057." >&2 echo 'Use "git commit --no-verify ..." to ignore this problem.' >&2 echo >&2 echo "pre-commit hook failed." >&2 exit 1 fi tftp-hpa/.git/index0000664000000000000000000001466613573461024011406 0ustar DIRCN]_~4]_~4S(k{SЦ_ `͔[6CHANGES]_~4]_~4S$TҲ|GmY:GINSTALL]_~4]_~4S @?;<[Ni0^ INSTALL.tftp]_~4]_~4S&`:' }G"f MCONFIG.in]_~4]_~4S/ !Cٟu:{0W=MRULES]_~4]_~4Su,-R1AMakefile]_~4]_~4S? hc>˲README]_~4]_~4S dK`՟ a>README.security]_~4]_~4Sbwv.h5aۥ8 aclocal.m4]_~4]_~4S r8 8bxrYq0E autogen.sh]_~4]_~4S"5%!4ZٖT;RsHcommon/Makefile]_~4]_~4S#0ZfDeswQ%vVcommon/tftpsubs.c]_~4BS]_~4BSS'<>mѠ`X 0 }common/tftpsubs.h]_~4BS]_~4BSS( !-T :"f8~Oconfig.h]_~4BS]_~4BSS)pzŪSUANfia configure.in]Ju!]Ju!73/?""pu].debian/changelog]_~4BS]_~4BSS,cQDHk`WcU4@ debian/compat]aFA]aFAS-ZJ+'ƴF}3debian/control]_~4BS]_~4BSS.j2ivedebian/copyright]_~4BS]_~4BSS0._m2OS@sgOdebian/po/POTFILES.in]ag'~]ag'~S1h\ep?d debian/po/cs.po]ag'~]ag'~S20hw=C=8< $debian/po/da.po]ag'~]ag'~S3\_,1WR-7debian/po/de.po]ag'~]ag'~S4 "bgЩDk̡HIwdebian/po/es.po]ag'~]ag'~S5 0i$#debian/po/fi.po]ag'~]ag'~S6iH nOP8^6debian/po/fr.po]ag'~]ag'~S7 / TUMtMyn| ߌ%-דdebian/po/sk.po]ag']ag'S?OV*$ݵ}@debian/po/sv.po]ag']ag'S@ t^ʧs /@Ƨ1debian/po/templates.pot]ag']ag'SA ([1P¯ XOdebian/po/zh_CN.po]_~4BS]_~4BSSBLx?ʭL î]I debian/rules]_~4BS]_~4BSSCEVlU}5),7zidebian/tftp-hpa.docs]_~4BS]_~4BSSD)꓉V .xU9debian/tftp-hpa.install]_~4BS]_~4BSSE5b8%* :~t)]Q\8debian/tftpd-hpa.README.Debian]a9l]a9lSF^uqЬiΩ:`debian/tftpd-hpa.config]_~4BS]_~4BSSG >p+g'Y:debian/tftpd-hpa.docs]_~4BS]_~4BSSHhhs;۱Yrۿpdebian/tftpd-hpa.examples]_~4BS]_~4BSSI\jJz0 Uzdebian/tftpd-hpa.init]_~4BS]_~4BSSJNP\YJdebian/tftpd-hpa.install]ag']ag'SK 5b ǚ2Z: debian/tftpd-hpa.postinst]_~4BS]_~4BSSL Ëʋ.[3debian/tftpd-hpa.postrm]bGX]bGXSMbf8w\vZ\debian/tftpd-hpa.templates]_~4BS]_~4BSSNԝ"/A+Rdebian/tftpd-hpa.upstart]_~4BS]_~4BSSO9B#VԌc install-sh]_~4]_~4SQKtftp/tftp.1.in]_~4]_~4Sa2^] ޒfX tftp/tftp.c]_~4]_~4ScĠS5޼DcY5!3tftpd/Makefile]_~4]_~4SdlhMT'Q;\ tftpd/misc.c]_~4]_~4Se 6P+lRGqh?Յtftpd/recvfrom.c]_~4]_~4SfIwsF/ 'ɫmtftpd/recvfrom.h]_~4]_~4Sg22o[@Ȧvİ)lp tftpd/tftpd.h]_~4]_~4SmB\7ʦ9$̇b9versionTREE78 5 \I'ȭV$`Glib10 0 gJ咛1+ڟ2rZtftp5 0 (}/ 6zRxStftpd10 0 as`މրrxHcommon3 0 E>)7&2ɘ@debian35 1 *B͘!"%po18 0 \[l ix/ܥ1J)IUo'cHtftp-hpa/.git/info/0000775000000000000000000000000013573457567011313 5ustar tftp-hpa/.git/info/attributes0000664000000000000000000000003013573457567013415 0ustar * -ident * -text * -eol tftp-hpa/.git/info/exclude0000664000000000000000000000016113573457567012665 0ustar # File patterns to ignore; see `git help ignore` for more information. # Lines that start with '#' are comments. tftp-hpa/.git/logs/0000775000000000000000000000000013573457576011324 5ustar tftp-hpa/.git/logs/HEAD0000664000000000000000000002256413573461024011740 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903102 +0100 checkout: moving from master to ubuntu/devel bc4b0efc22d8f45dff44424c070cb037f6e19c90 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903288 +0100 checkout: moving from ubuntu/devel to lp-1855490-revert-default-path-focal bc4b0efc22d8f45dff44424c070cb037f6e19c90 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903304 +0100 rebase -i (start): checkout pkg/debian/sid bc4b0efc22d8f45dff44424c070cb037f6e19c90 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903304 +0100 rebase -i (finish): returning to refs/heads/lp-1855490-revert-default-path-focal bc4b0efc22d8f45dff44424c070cb037f6e19c90 5c49ea217cbf69336a1d700da59e66a8a80d9173 Christian Ehrhardt 1575903308 +0100 rebase -i (start): checkout pkg/debian/sid 5c49ea217cbf69336a1d700da59e66a8a80d9173 44b048d1af79661b17c1f3e940ecbe8af704bee3 Christian Ehrhardt 1575903308 +0100 rebase -i: fast-forward 44b048d1af79661b17c1f3e940ecbe8af704bee3 5c49ea217cbf69336a1d700da59e66a8a80d9173 Christian Ehrhardt 1575903310 +0100 reset: moving to HEAD^ 5c49ea217cbf69336a1d700da59e66a8a80d9173 e18bf2c1f513571f5ded6750af194436ca197640 Christian Ehrhardt 1575903416 +0100 commit: d/tftpd-hpa.postinst, d/tftpd-hpa.templates, d/po/*: Default to listening on both IPv4 and IPv6. e18bf2c1f513571f5ded6750af194436ca197640 1778117d2d00b284fb147b8e2bb5b2d6a1896338 Christian Ehrhardt 1575903438 +0100 commit: d/tftpd-hpa.postinst, d/tftpd-hpa.templates, d/po/*: Default to listening on both IPv4 and IPv6. MERGE 1778117d2d00b284fb147b8e2bb5b2d6a1896338 6fed5d53aa3111ba2558973ba31703a43a961933 Christian Ehrhardt 1575903466 +0100 commit: debian/tftpd-hpa.postinst: Add -s to /etc/default/tftpd-hpa 6fed5d53aa3111ba2558973ba31703a43a961933 6eef502d6bd9dc0b8984963b7a739c8c6a3db8ed Christian Ehrhardt 1575903499 +0100 commit: debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. 6eef502d6bd9dc0b8984963b7a739c8c6a3db8ed 143d0ab1946a5c1d519ffb20c0b5f988d78891d5 Christian Ehrhardt 1575903510 +0100 commit: update-maintainer 143d0ab1946a5c1d519ffb20c0b5f988d78891d5 24ec7197e4ba2f8eb086a9e3b2ac561b0dae91a2 Christian Ehrhardt 1575903528 +0100 commit: changelog: 5.2+20150808-1ubuntu1 24ec7197e4ba2f8eb086a9e3b2ac561b0dae91a2 80c46ee65f349216029705c1a6a7fa3e5c7650d1 Christian Ehrhardt 1575903531 +0100 rebase -i (pick): Import patches-unapplied version 5.2+20150808-1ubuntu2 to ubuntu/zesty-proposed 80c46ee65f349216029705c1a6a7fa3e5c7650d1 04b952d48f83854c0240fe256a62cb888fbd95e2 Christian Ehrhardt 1575903531 +0100 rebase -i (pick): Import patches-unapplied version 5.2+20150808-1ubuntu3 to ubuntu/zesty-proposed 04b952d48f83854c0240fe256a62cb888fbd95e2 04b952d48f83854c0240fe256a62cb888fbd95e2 Christian Ehrhardt 1575903531 +0100 rebase -i (finish): returning to refs/heads/lp-1855490-revert-default-path-focal 04b952d48f83854c0240fe256a62cb888fbd95e2 e18bf2c1f513571f5ded6750af194436ca197640 Christian Ehrhardt 1575903556 +0100 rebase -i (start): checkout pkg/debian/sid e18bf2c1f513571f5ded6750af194436ca197640 37d9a1f9169ed544aa9125242bf51e551f65d75e Christian Ehrhardt 1575903556 +0100 rebase -i (fixup): d/tftpd-hpa.postinst, d/tftpd-hpa.templates, d/po/*: Default to listening on both IPv4 and IPv6. 37d9a1f9169ed544aa9125242bf51e551f65d75e 893606628b4ce8d10a2a0bd6647eb74a7cf6b441 Christian Ehrhardt 1575903557 +0100 rebase -i (pick): debian/tftpd-hpa.postinst: Add -s to /etc/default/tftpd-hpa 893606628b4ce8d10a2a0bd6647eb74a7cf6b441 7f33bdf14cc51cc0a4e19ce6ab002e89c1fa2182 Christian Ehrhardt 1575903557 +0100 rebase -i (pick): debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. 7f33bdf14cc51cc0a4e19ce6ab002e89c1fa2182 4854d92355c150296e24d1d36880ec7d50036528 Christian Ehrhardt 1575903558 +0100 rebase -i (pick): update-maintainer 4854d92355c150296e24d1d36880ec7d50036528 630d9b9439e89b8173d865b8549f3181acbfe761 Christian Ehrhardt 1575903558 +0100 rebase -i (pick): changelog: 5.2+20150808-1ubuntu1 630d9b9439e89b8173d865b8549f3181acbfe761 a5a402583f09c2672e92510b7a0624384b1b9546 Christian Ehrhardt 1575903559 +0100 rebase -i (pick): Import patches-unapplied version 5.2+20150808-1ubuntu2 to ubuntu/zesty-proposed a5a402583f09c2672e92510b7a0624384b1b9546 ecb101f61338dca238981050effac87588aefa69 Christian Ehrhardt 1575903559 +0100 rebase -i (pick): Import patches-unapplied version 5.2+20150808-1ubuntu3 to ubuntu/zesty-proposed ecb101f61338dca238981050effac87588aefa69 ecb101f61338dca238981050effac87588aefa69 Christian Ehrhardt 1575903559 +0100 rebase -i (finish): returning to refs/heads/lp-1855490-revert-default-path-focal ecb101f61338dca238981050effac87588aefa69 630d9b9439e89b8173d865b8549f3181acbfe761 Christian Ehrhardt 1575903591 +0100 rebase -i (start): checkout pkg/debian/sid 630d9b9439e89b8173d865b8549f3181acbfe761 a5a402583f09c2672e92510b7a0624384b1b9546 Christian Ehrhardt 1575903591 +0100 rebase -i: fast-forward a5a402583f09c2672e92510b7a0624384b1b9546 630d9b9439e89b8173d865b8549f3181acbfe761 Christian Ehrhardt 1575903593 +0100 reset: moving to HEAD^ 630d9b9439e89b8173d865b8549f3181acbfe761 2cf9717c5aa6ce951d85fbae8ff7740a24aa8228 Christian Ehrhardt 1575903637 +0100 commit: Replace the default value of TFTP_ADDRESS to :69 instead of [::]:69 2cf9717c5aa6ce951d85fbae8ff7740a24aa8228 6b3dc5a40bb5d694dc2117351f025011108fb659 Christian Ehrhardt 1575903651 +0100 commit: changelog: 5.2+20150808-1ubuntu2 6b3dc5a40bb5d694dc2117351f025011108fb659 5746c88cb5d57c24d2eb57e20dd30284148c0c12 Christian Ehrhardt 1575903654 +0100 rebase -i (pick): Import patches-unapplied version 5.2+20150808-1ubuntu3 to ubuntu/zesty-proposed 5746c88cb5d57c24d2eb57e20dd30284148c0c12 5746c88cb5d57c24d2eb57e20dd30284148c0c12 Christian Ehrhardt 1575903654 +0100 rebase -i (finish): returning to refs/heads/lp-1855490-revert-default-path-focal 5746c88cb5d57c24d2eb57e20dd30284148c0c12 6b3dc5a40bb5d694dc2117351f025011108fb659 Christian Ehrhardt 1575903660 +0100 rebase -i (start): checkout pkg/debian/sid 6b3dc5a40bb5d694dc2117351f025011108fb659 5746c88cb5d57c24d2eb57e20dd30284148c0c12 Christian Ehrhardt 1575903660 +0100 rebase -i: fast-forward 5746c88cb5d57c24d2eb57e20dd30284148c0c12 6b3dc5a40bb5d694dc2117351f025011108fb659 Christian Ehrhardt 1575903662 +0100 reset: moving to HEAD^ 6b3dc5a40bb5d694dc2117351f025011108fb659 bead66ddadcb231c9e45f3232790aabb171d4684 Christian Ehrhardt 1575903679 +0100 commit: d/tftpd-hpa.config : Add version guard to avoid rewriting TFTP_ADDRESS bead66ddadcb231c9e45f3232790aabb171d4684 48416f80e88439da8982e41dcf0aa632ac0809d1 Christian Ehrhardt 1575903688 +0100 commit: changelog: 5.2+20150808-1ubuntu3 48416f80e88439da8982e41dcf0aa632ac0809d1 48416f80e88439da8982e41dcf0aa632ac0809d1 Christian Ehrhardt 1575903690 +0100 rebase -i (finish): returning to refs/heads/lp-1855490-revert-default-path-focal 48416f80e88439da8982e41dcf0aa632ac0809d1 7aac5c6e35d7332a03c3ee815f0996043e947e1a Christian Ehrhardt 1575903759 +0100 revert: Revert "debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp." 7aac5c6e35d7332a03c3ee815f0996043e947e1a 02110bff3aa99337274e33f466b12405cd80b177 Christian Ehrhardt 1575903853 +0100 commit: changelog: evert the default back to /srv/tftp (LP: #1855490) 02110bff3aa99337274e33f466b12405cd80b177 7aac5c6e35d7332a03c3ee815f0996043e947e1a Christian Ehrhardt 1575963367 +0100 rebase -i (start): checkout paelzer/logical/5.2+20150808-1ubuntu3 7aac5c6e35d7332a03c3ee815f0996043e947e1a 02110bff3aa99337274e33f466b12405cd80b177 Christian Ehrhardt 1575963367 +0100 rebase -i: fast-forward 02110bff3aa99337274e33f466b12405cd80b177 8b478ef6f3d3f3f182efe041c0a7eb206f4f6a4d Christian Ehrhardt 1575963367 +0100 rebase -i (reword): changelog: revert the default back to /srv/tftp (LP: #1855490) 8b478ef6f3d3f3f182efe041c0a7eb206f4f6a4d 8b478ef6f3d3f3f182efe041c0a7eb206f4f6a4d Christian Ehrhardt 1575963367 +0100 rebase -i (finish): returning to refs/heads/lp-1855490-revert-default-path-focal tftp-hpa/.git/logs/refs/0000775000000000000000000000000013573457576012263 5ustar tftp-hpa/.git/logs/refs/heads/0000775000000000000000000000000013573460070013326 5ustar tftp-hpa/.git/logs/refs/heads/lp-1855490-revert-default-path-focal0000664000000000000000000000370613573461024021472 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903288 +0100 branch: Created from HEAD bc4b0efc22d8f45dff44424c070cb037f6e19c90 04b952d48f83854c0240fe256a62cb888fbd95e2 Christian Ehrhardt 1575903531 +0100 rebase -i (finish): refs/heads/lp-1855490-revert-default-path-focal onto 5c49ea217cbf69336a1d700da59e66a8a80d9173 04b952d48f83854c0240fe256a62cb888fbd95e2 ecb101f61338dca238981050effac87588aefa69 Christian Ehrhardt 1575903559 +0100 rebase -i (finish): refs/heads/lp-1855490-revert-default-path-focal onto 5c49ea217cbf69336a1d700da59e66a8a80d9173 ecb101f61338dca238981050effac87588aefa69 5746c88cb5d57c24d2eb57e20dd30284148c0c12 Christian Ehrhardt 1575903654 +0100 rebase -i (finish): refs/heads/lp-1855490-revert-default-path-focal onto 5c49ea217cbf69336a1d700da59e66a8a80d9173 5746c88cb5d57c24d2eb57e20dd30284148c0c12 48416f80e88439da8982e41dcf0aa632ac0809d1 Christian Ehrhardt 1575903690 +0100 rebase -i (finish): refs/heads/lp-1855490-revert-default-path-focal onto 5c49ea217cbf69336a1d700da59e66a8a80d9173 48416f80e88439da8982e41dcf0aa632ac0809d1 7aac5c6e35d7332a03c3ee815f0996043e947e1a Christian Ehrhardt 1575903759 +0100 revert: Revert "debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp." 7aac5c6e35d7332a03c3ee815f0996043e947e1a 02110bff3aa99337274e33f466b12405cd80b177 Christian Ehrhardt 1575903853 +0100 commit: changelog: evert the default back to /srv/tftp (LP: #1855490) 02110bff3aa99337274e33f466b12405cd80b177 8b478ef6f3d3f3f182efe041c0a7eb206f4f6a4d Christian Ehrhardt 1575963367 +0100 rebase -i (finish): refs/heads/lp-1855490-revert-default-path-focal onto 48416f80e88439da8982e41dcf0aa632ac0809d1 tftp-hpa/.git/logs/refs/heads/ubuntu/0000775000000000000000000000000013573457576014671 5ustar tftp-hpa/.git/logs/refs/heads/ubuntu/devel0000664000000000000000000000032713573457576015715 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903102 +0100 branch: Created from bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/logs/refs/remotes/0000775000000000000000000000000013573461024013720 5ustar tftp-hpa/.git/logs/refs/remotes/paelzer/0000775000000000000000000000000013573461024015362 5ustar tftp-hpa/.git/logs/refs/remotes/paelzer/lp-1855490-revert-default-path-focal0000664000000000000000000000025013573461024023515 0ustar 0000000000000000000000000000000000000000 02110bff3aa99337274e33f466b12405cd80b177 Christian Ehrhardt 1575904497 +0100 update by push tftp-hpa/.git/logs/refs/remotes/pkg/0000775000000000000000000000000013573457575014521 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/applied/0000775000000000000000000000000013573457575016137 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/0000775000000000000000000000000013573457575017361 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/buster0000664000000000000000000000026113573457575020607 0ustar 0000000000000000000000000000000000000000 c2b8713ba0f469385b5600222e0d4bd60646a6b0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/experimental0000664000000000000000000000026113573457575022000 0ustar 0000000000000000000000000000000000000000 f01a9bcb12f21e6a9dde0fa5579ce54599fe0ee0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/jessie0000664000000000000000000000026113573457575020565 0ustar 0000000000000000000000000000000000000000 7156d114b1d60b86cf2192a802f25a78ec182153 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/lenny0000664000000000000000000000026113573457575020430 0ustar 0000000000000000000000000000000000000000 d8ea5edfa5e1bb53999b9081c94c4f51f032f8b0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/sid0000664000000000000000000000026113573457575020062 0ustar 0000000000000000000000000000000000000000 c2b8713ba0f469385b5600222e0d4bd60646a6b0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/squeeze0000664000000000000000000000026113573457575020764 0ustar 0000000000000000000000000000000000000000 250c6888e017e0a0da5046d9e3690abafbe635c3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/stretch0000664000000000000000000000026113573457575020757 0ustar 0000000000000000000000000000000000000000 c2b8713ba0f469385b5600222e0d4bd60646a6b0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/debian/wheezy0000664000000000000000000000026113573457575020616 0ustar 0000000000000000000000000000000000000000 d933fd2df75ac0636a20348c902a8c6e18eb9dac Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/0000775000000000000000000000000013573457575017461 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/artful0000664000000000000000000000026113573457575020700 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/artful-devel0000664000000000000000000000026113573457575021775 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/bionic0000664000000000000000000000026113573457575020646 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/bionic-devel0000664000000000000000000000026113573457575021743 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/breezy0000664000000000000000000000026113573457575020703 0ustar 0000000000000000000000000000000000000000 577991a94fda41b857796cef3cbcefd6825d15e9 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/breezy-devel0000664000000000000000000000026113573457575022000 0ustar 0000000000000000000000000000000000000000 577991a94fda41b857796cef3cbcefd6825d15e9 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/cosmic0000664000000000000000000000026113573457575020660 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/cosmic-devel0000664000000000000000000000026113573457575021755 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/dapper0000664000000000000000000000026113573457575020656 0ustar 0000000000000000000000000000000000000000 0aa88140426c93adbfc3ab2912f2e7aed09c4d65 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/dapper-devel0000664000000000000000000000026113573457575021753 0ustar 0000000000000000000000000000000000000000 0aa88140426c93adbfc3ab2912f2e7aed09c4d65 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/devel0000664000000000000000000000026113573457575020502 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/disco0000664000000000000000000000026113573457575020504 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/disco-devel0000664000000000000000000000026113573457575021601 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/edgy0000664000000000000000000000026113573457575020333 0ustar 0000000000000000000000000000000000000000 57a88808920ffc57d835fa6ace5f28e003fc7973 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/edgy-devel0000664000000000000000000000026113573457575021430 0ustar 0000000000000000000000000000000000000000 57a88808920ffc57d835fa6ace5f28e003fc7973 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/eoan0000664000000000000000000000026113573457575020325 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/eoan-devel0000664000000000000000000000026113573457575021422 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/feisty0000664000000000000000000000026113573457575020706 0ustar 0000000000000000000000000000000000000000 36003427da410abd8248b4a2f3af4d0c01ba65a8 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/feisty-devel0000664000000000000000000000026113573457575022003 0ustar 0000000000000000000000000000000000000000 36003427da410abd8248b4a2f3af4d0c01ba65a8 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/focal0000664000000000000000000000026113573457575020467 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/focal-devel0000664000000000000000000000026113573457575021564 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/gutsy0000664000000000000000000000026113573457575020556 0ustar 0000000000000000000000000000000000000000 6c57a148c5131cf6b303795e27ac33e45b462f08 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/gutsy-devel0000664000000000000000000000026113573457575021653 0ustar 0000000000000000000000000000000000000000 6c57a148c5131cf6b303795e27ac33e45b462f08 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/hardy0000664000000000000000000000026113573457575020512 0ustar 0000000000000000000000000000000000000000 5244b8335b152ce6c30875196cd77d5f0b8a6779 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/hardy-devel0000664000000000000000000000026113573457575021607 0ustar 0000000000000000000000000000000000000000 5244b8335b152ce6c30875196cd77d5f0b8a6779 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/hoary0000664000000000000000000000026113573457575020525 0ustar 0000000000000000000000000000000000000000 490487259f3ae3efc4cb08f2c79b06694dd961f2 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/hoary-devel0000664000000000000000000000026113573457575021622 0ustar 0000000000000000000000000000000000000000 490487259f3ae3efc4cb08f2c79b06694dd961f2 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/intrepid0000664000000000000000000000026113573457575021221 0ustar 0000000000000000000000000000000000000000 c86c1379f8497ff98409e0017f9ea55a15fd01fe Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/intrepid-devel0000664000000000000000000000026113573457575022316 0ustar 0000000000000000000000000000000000000000 c86c1379f8497ff98409e0017f9ea55a15fd01fe Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/jaunty0000664000000000000000000000026113573457575020715 0ustar 0000000000000000000000000000000000000000 44e5359435af779989f7b92dcd980c1a44cdd11d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/jaunty-devel0000664000000000000000000000026113573457575022012 0ustar 0000000000000000000000000000000000000000 44e5359435af779989f7b92dcd980c1a44cdd11d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/karmic0000664000000000000000000000026113573457575020651 0ustar 0000000000000000000000000000000000000000 bb1a7a1c3fc956797f9bd8778ee59c8124392732 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/karmic-devel0000664000000000000000000000026113573457575021746 0ustar 0000000000000000000000000000000000000000 bb1a7a1c3fc956797f9bd8778ee59c8124392732 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/lucid0000664000000000000000000000026113573457575020503 0ustar 0000000000000000000000000000000000000000 1ab140d17c8dce63e4c7bac63424915e653eaa55 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/lucid-devel0000664000000000000000000000026113573457575021600 0ustar 0000000000000000000000000000000000000000 f440d37c9c2b2d46361ca09996f2caef37a804c3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/lucid-proposed0000664000000000000000000000026113573457575022334 0ustar 0000000000000000000000000000000000000000 f440d37c9c2b2d46361ca09996f2caef37a804c3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/lucid-updates0000664000000000000000000000026113573457575022146 0ustar 0000000000000000000000000000000000000000 f440d37c9c2b2d46361ca09996f2caef37a804c3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/maverick0000664000000000000000000000026113573457575021204 0ustar 0000000000000000000000000000000000000000 3e927f935d3886d49c14b03df6058c7c39fbafbb Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/maverick-devel0000664000000000000000000000026113573457575022301 0ustar 0000000000000000000000000000000000000000 3e927f935d3886d49c14b03df6058c7c39fbafbb Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/natty0000664000000000000000000000026113573457575020542 0ustar 0000000000000000000000000000000000000000 95296d2a1c4ae18176d9a7cb83689fcc4eb9608f Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/natty-devel0000664000000000000000000000026113573457575021637 0ustar 0000000000000000000000000000000000000000 95296d2a1c4ae18176d9a7cb83689fcc4eb9608f Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/oneiric0000664000000000000000000000026113573457575021033 0ustar 0000000000000000000000000000000000000000 9724e9bc080049c20c8f9921543e45f0b6e6ee9a Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/oneiric-devel0000664000000000000000000000026113573457575022130 0ustar 0000000000000000000000000000000000000000 9724e9bc080049c20c8f9921543e45f0b6e6ee9a Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/precise0000664000000000000000000000026113573457575021035 0ustar 0000000000000000000000000000000000000000 18ff52960ef4b8ca4a6d859357820f17619370f3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/precise-devel0000664000000000000000000000026113573457575022132 0ustar 0000000000000000000000000000000000000000 18ff52960ef4b8ca4a6d859357820f17619370f3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/quantal0000664000000000000000000000026113573457575021050 0ustar 0000000000000000000000000000000000000000 47e3d55f68466ec651ca198c4792e574e2890499 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/quantal-devel0000664000000000000000000000026113573457575022145 0ustar 0000000000000000000000000000000000000000 47e3d55f68466ec651ca198c4792e574e2890499 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/raring0000664000000000000000000000026113573457575020665 0ustar 0000000000000000000000000000000000000000 47026010c8c49cff7290ee96c88ed20730e60841 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/raring-devel0000664000000000000000000000026113573457575021762 0ustar 0000000000000000000000000000000000000000 47026010c8c49cff7290ee96c88ed20730e60841 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/raring-proposed0000664000000000000000000000026113573457575022516 0ustar 0000000000000000000000000000000000000000 47026010c8c49cff7290ee96c88ed20730e60841 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/saucy0000664000000000000000000000026113573457575020527 0ustar 0000000000000000000000000000000000000000 e42a6864d7fc2e93c2abe04d652a081a453e6e15 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/saucy-devel0000664000000000000000000000026113573457575021624 0ustar 0000000000000000000000000000000000000000 e42a6864d7fc2e93c2abe04d652a081a453e6e15 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/saucy-proposed0000664000000000000000000000026113573457575022360 0ustar 0000000000000000000000000000000000000000 e42a6864d7fc2e93c2abe04d652a081a453e6e15 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/trusty0000664000000000000000000000026113573457575020755 0ustar 0000000000000000000000000000000000000000 e42a6864d7fc2e93c2abe04d652a081a453e6e15 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/trusty-devel0000664000000000000000000000026113573457575022052 0ustar 0000000000000000000000000000000000000000 a1c32717593549aa2354ab5629ac5270e9f50691 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/trusty-proposed0000664000000000000000000000026113573457575022606 0ustar 0000000000000000000000000000000000000000 a1c32717593549aa2354ab5629ac5270e9f50691 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/trusty-updates0000664000000000000000000000026113573457575022420 0ustar 0000000000000000000000000000000000000000 a1c32717593549aa2354ab5629ac5270e9f50691 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/utopic0000664000000000000000000000026113573457575020706 0ustar 0000000000000000000000000000000000000000 83347ca5ec79d7bf1fb3272e46c0192c108be4cd Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/utopic-devel0000664000000000000000000000026113573457575022003 0ustar 0000000000000000000000000000000000000000 83347ca5ec79d7bf1fb3272e46c0192c108be4cd Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/utopic-proposed0000664000000000000000000000026113573457575022537 0ustar 0000000000000000000000000000000000000000 83347ca5ec79d7bf1fb3272e46c0192c108be4cd Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/vivid0000664000000000000000000000026113573457575020524 0ustar 0000000000000000000000000000000000000000 c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/vivid-devel0000664000000000000000000000026113573457575021621 0ustar 0000000000000000000000000000000000000000 c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/vivid-proposed0000664000000000000000000000026113573457575022355 0ustar 0000000000000000000000000000000000000000 c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/warty0000664000000000000000000000026113573457575020551 0ustar 0000000000000000000000000000000000000000 d97575e72e01cc2c6d0d99012d793818f458ab83 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/warty-devel0000664000000000000000000000026113573457575021646 0ustar 0000000000000000000000000000000000000000 d97575e72e01cc2c6d0d99012d793818f458ab83 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/wily0000664000000000000000000000026113573457575020367 0ustar 0000000000000000000000000000000000000000 c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/wily-devel0000664000000000000000000000026113573457575021464 0ustar 0000000000000000000000000000000000000000 c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/xenial0000664000000000000000000000026113573457575020663 0ustar 0000000000000000000000000000000000000000 61e6432cc5c7351084db9877323d989a3014ec2f Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/xenial-devel0000664000000000000000000000026113573457575021760 0ustar 0000000000000000000000000000000000000000 728539c01eb4abf8d5a6ab29e91c0b741b396d40 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/xenial-proposed0000664000000000000000000000026113573457575022514 0ustar 0000000000000000000000000000000000000000 728539c01eb4abf8d5a6ab29e91c0b741b396d40 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/xenial-updates0000664000000000000000000000026113573457575022326 0ustar 0000000000000000000000000000000000000000 728539c01eb4abf8d5a6ab29e91c0b741b396d40 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/yakkety0000664000000000000000000000026113573457575021064 0ustar 0000000000000000000000000000000000000000 61e6432cc5c7351084db9877323d989a3014ec2f Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/yakkety-devel0000664000000000000000000000026113573457575022161 0ustar 0000000000000000000000000000000000000000 3b13a4f5e020abde57ba5413ef379753a60df23d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/yakkety-proposed0000664000000000000000000000026113573457575022715 0ustar 0000000000000000000000000000000000000000 3b13a4f5e020abde57ba5413ef379753a60df23d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/yakkety-updates0000664000000000000000000000026113573457575022527 0ustar 0000000000000000000000000000000000000000 3b13a4f5e020abde57ba5413ef379753a60df23d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/zesty0000664000000000000000000000026113573457575020561 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/zesty-devel0000664000000000000000000000026113573457575021656 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/applied/ubuntu/zesty-proposed0000664000000000000000000000026113573457575022412 0ustar 0000000000000000000000000000000000000000 67cea9188216356236f2047b02fe38339581d5bf Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/0000775000000000000000000000000013573457575015743 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/debian/buster0000664000000000000000000000026113573457575017171 0ustar 0000000000000000000000000000000000000000 5c49ea217cbf69336a1d700da59e66a8a80d9173 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/experimental0000664000000000000000000000026113573457575020362 0ustar 0000000000000000000000000000000000000000 512f181ed625ebbbb70af3726540b83621682153 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/jessie0000664000000000000000000000026113573457575017147 0ustar 0000000000000000000000000000000000000000 bd767e49a89d139b10927c56477892534fff4308 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/lenny0000664000000000000000000000026113573457575017012 0ustar 0000000000000000000000000000000000000000 c2522a7dbfc2373c3dd26824731cd08d86da322d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/sid0000664000000000000000000000026113573457575016444 0ustar 0000000000000000000000000000000000000000 5c49ea217cbf69336a1d700da59e66a8a80d9173 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/squeeze0000664000000000000000000000026113573457575017346 0ustar 0000000000000000000000000000000000000000 a7d09184612c33e8104ee7e4458dfeeafcf834c6 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/stretch0000664000000000000000000000026113573457575017341 0ustar 0000000000000000000000000000000000000000 5c49ea217cbf69336a1d700da59e66a8a80d9173 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/debian/wheezy0000664000000000000000000000026113573457575017200 0ustar 0000000000000000000000000000000000000000 4fe6f206eee711959b657d3d534cf91b88036a22 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/importer/0000775000000000000000000000000013573457575016362 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/importer/debian/0000775000000000000000000000000013573457575017604 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/importer/debian/dsc0000664000000000000000000000026113573457575020277 0ustar 0000000000000000000000000000000000000000 a01679b61cff5dcc2c49913c5dd9556855de0944 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/importer/debian/pristine-tar0000664000000000000000000000026113573457575022147 0ustar 0000000000000000000000000000000000000000 1ed87d5787efb8ba812fa26f9c15a3fff97c69f3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/importer/ubuntu/0000775000000000000000000000000013573457575017704 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/importer/ubuntu/dsc0000664000000000000000000000026113573457575020377 0ustar 0000000000000000000000000000000000000000 4305dbcef2e6734db3f46a4c390ea7b46f2e9707 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/importer/ubuntu/pristine-tar0000664000000000000000000000026113573457575022247 0ustar 0000000000000000000000000000000000000000 6b82f77c1c0dc93196aba2132eeded7c1915ed43 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/0000775000000000000000000000000013573457576016044 5ustar tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/artful0000664000000000000000000000026113573457575017262 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/artful-devel0000664000000000000000000000026113573457575020357 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/bionic0000664000000000000000000000026113573457575017230 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/bionic-devel0000664000000000000000000000026113573457575020325 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/breezy0000664000000000000000000000026113573457575017265 0ustar 0000000000000000000000000000000000000000 cc67b930cee6bd60508748e8d18be6f7a1e1e0f2 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/breezy-devel0000664000000000000000000000026113573457575020362 0ustar 0000000000000000000000000000000000000000 cc67b930cee6bd60508748e8d18be6f7a1e1e0f2 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/cosmic0000664000000000000000000000026113573457575017242 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/cosmic-devel0000664000000000000000000000026113573457575020337 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/dapper0000664000000000000000000000026113573457575017240 0ustar 0000000000000000000000000000000000000000 57f64ea1681b979ce8ebaa1d9276cea83e2d19d7 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/dapper-devel0000664000000000000000000000026113573457575020335 0ustar 0000000000000000000000000000000000000000 57f64ea1681b979ce8ebaa1d9276cea83e2d19d7 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/devel0000664000000000000000000000026113573457575017064 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/disco0000664000000000000000000000026113573457575017066 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/disco-devel0000664000000000000000000000026113573457576020164 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/edgy0000664000000000000000000000026113573457576016716 0ustar 0000000000000000000000000000000000000000 23d92ddf8bcfa1ec50fc00dc0932c62b2b3a972b Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/edgy-devel0000664000000000000000000000026113573457576020013 0ustar 0000000000000000000000000000000000000000 23d92ddf8bcfa1ec50fc00dc0932c62b2b3a972b Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/eoan0000664000000000000000000000026113573457576016710 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/eoan-devel0000664000000000000000000000026113573457576020005 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/feisty0000664000000000000000000000026113573457576017271 0ustar 0000000000000000000000000000000000000000 be02a01e9e961d0269689cbc3d4c686e5ae9edb7 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/feisty-devel0000664000000000000000000000026113573457576020366 0ustar 0000000000000000000000000000000000000000 be02a01e9e961d0269689cbc3d4c686e5ae9edb7 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/focal0000664000000000000000000000026113573457576017052 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/focal-devel0000664000000000000000000000026113573457576020147 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/gutsy0000664000000000000000000000026113573457576017141 0ustar 0000000000000000000000000000000000000000 693fd5b609fbfbff3b636b651dff2f3aa4f9131e Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/gutsy-devel0000664000000000000000000000026113573457576020236 0ustar 0000000000000000000000000000000000000000 693fd5b609fbfbff3b636b651dff2f3aa4f9131e Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/hardy0000664000000000000000000000026113573457576017075 0ustar 0000000000000000000000000000000000000000 348da8c88554f002e655db9640d03e49aad7b210 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/hardy-devel0000664000000000000000000000026113573457576020172 0ustar 0000000000000000000000000000000000000000 348da8c88554f002e655db9640d03e49aad7b210 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/hoary0000664000000000000000000000026113573457576017110 0ustar 0000000000000000000000000000000000000000 e66f4ab108a70c40535cbaba012b600294afb60f Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/hoary-devel0000664000000000000000000000026113573457576020205 0ustar 0000000000000000000000000000000000000000 e66f4ab108a70c40535cbaba012b600294afb60f Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/intrepid0000664000000000000000000000026113573457576017604 0ustar 0000000000000000000000000000000000000000 b8ddfbedfae71e677296e6455e237ef82270e588 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/intrepid-devel0000664000000000000000000000026113573457576020701 0ustar 0000000000000000000000000000000000000000 b8ddfbedfae71e677296e6455e237ef82270e588 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/jaunty0000664000000000000000000000026113573457576017300 0ustar 0000000000000000000000000000000000000000 25eaf63790e80186f8c4616e189eadfd1c11dea7 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/jaunty-devel0000664000000000000000000000026113573457576020375 0ustar 0000000000000000000000000000000000000000 25eaf63790e80186f8c4616e189eadfd1c11dea7 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/karmic0000664000000000000000000000026113573457576017234 0ustar 0000000000000000000000000000000000000000 c6dcd455fede015c47754ccd5098e079f188354d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/karmic-devel0000664000000000000000000000026113573457576020331 0ustar 0000000000000000000000000000000000000000 c6dcd455fede015c47754ccd5098e079f188354d Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/lucid0000664000000000000000000000026113573457576017066 0ustar 0000000000000000000000000000000000000000 642e5e7f3442b50be59264a929a1af4462c487d0 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/lucid-devel0000664000000000000000000000026113573457576020163 0ustar 0000000000000000000000000000000000000000 ff5a77ea5c9e5f2210b13b5ce0df5e034d665568 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/lucid-proposed0000664000000000000000000000026113573457576020717 0ustar 0000000000000000000000000000000000000000 ff5a77ea5c9e5f2210b13b5ce0df5e034d665568 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/lucid-updates0000664000000000000000000000026113573457576020531 0ustar 0000000000000000000000000000000000000000 ff5a77ea5c9e5f2210b13b5ce0df5e034d665568 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/maverick0000664000000000000000000000026113573457576017567 0ustar 0000000000000000000000000000000000000000 80f5918faa638c1ba11d190eeaf887c54b0f7e12 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/maverick-devel0000664000000000000000000000026113573457576020664 0ustar 0000000000000000000000000000000000000000 80f5918faa638c1ba11d190eeaf887c54b0f7e12 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/natty0000664000000000000000000000026113573457576017125 0ustar 0000000000000000000000000000000000000000 ceb71e55315ce00ed3994ad101211c9dc3e3d73e Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/natty-devel0000664000000000000000000000026113573457576020222 0ustar 0000000000000000000000000000000000000000 ceb71e55315ce00ed3994ad101211c9dc3e3d73e Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/oneiric0000664000000000000000000000026113573457576017416 0ustar 0000000000000000000000000000000000000000 5b33583bd3e58940c597550729896a6b6720ed06 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/oneiric-devel0000664000000000000000000000026113573457576020513 0ustar 0000000000000000000000000000000000000000 5b33583bd3e58940c597550729896a6b6720ed06 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/precise0000664000000000000000000000026113573457576017420 0ustar 0000000000000000000000000000000000000000 b82367c18af0f6167ad81c90157f4ab8cad5f7db Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/precise-devel0000664000000000000000000000026113573457576020515 0ustar 0000000000000000000000000000000000000000 b82367c18af0f6167ad81c90157f4ab8cad5f7db Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/quantal0000664000000000000000000000026113573457576017433 0ustar 0000000000000000000000000000000000000000 957b3dd9590885cef265f53a2c6ebff22da4de51 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/quantal-devel0000664000000000000000000000026113573457576020530 0ustar 0000000000000000000000000000000000000000 957b3dd9590885cef265f53a2c6ebff22da4de51 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/raring0000664000000000000000000000026113573457576017250 0ustar 0000000000000000000000000000000000000000 3a70ea8d6d216ce1910a365464e4759b36da0720 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/raring-devel0000664000000000000000000000026113573457576020345 0ustar 0000000000000000000000000000000000000000 3a70ea8d6d216ce1910a365464e4759b36da0720 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/raring-proposed0000664000000000000000000000026113573457576021101 0ustar 0000000000000000000000000000000000000000 3a70ea8d6d216ce1910a365464e4759b36da0720 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/saucy0000664000000000000000000000026113573457576017112 0ustar 0000000000000000000000000000000000000000 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/saucy-devel0000664000000000000000000000026113573457576020207 0ustar 0000000000000000000000000000000000000000 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/saucy-proposed0000664000000000000000000000026113573457576020743 0ustar 0000000000000000000000000000000000000000 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/trusty0000664000000000000000000000026113573457576017340 0ustar 0000000000000000000000000000000000000000 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/trusty-devel0000664000000000000000000000026113573457576020435 0ustar 0000000000000000000000000000000000000000 46f823cc45172142b2ef2635589e0e6daba6d829 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/trusty-proposed0000664000000000000000000000026113573457576021171 0ustar 0000000000000000000000000000000000000000 46f823cc45172142b2ef2635589e0e6daba6d829 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/trusty-updates0000664000000000000000000000026113573457576021003 0ustar 0000000000000000000000000000000000000000 46f823cc45172142b2ef2635589e0e6daba6d829 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/utopic0000664000000000000000000000026113573457576017271 0ustar 0000000000000000000000000000000000000000 be82e55981812491d046cd4778a896c21c6a166c Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/utopic-devel0000664000000000000000000000026113573457576020366 0ustar 0000000000000000000000000000000000000000 be82e55981812491d046cd4778a896c21c6a166c Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/utopic-proposed0000664000000000000000000000026113573457576021122 0ustar 0000000000000000000000000000000000000000 be82e55981812491d046cd4778a896c21c6a166c Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/vivid0000664000000000000000000000026113573457576017107 0ustar 0000000000000000000000000000000000000000 8d632f7903787dad498b3635102b93e189562605 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/vivid-devel0000664000000000000000000000026113573457576020204 0ustar 0000000000000000000000000000000000000000 8d632f7903787dad498b3635102b93e189562605 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/vivid-proposed0000664000000000000000000000026113573457576020740 0ustar 0000000000000000000000000000000000000000 8d632f7903787dad498b3635102b93e189562605 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/warty0000664000000000000000000000026113573457576017134 0ustar 0000000000000000000000000000000000000000 339c1a6e58d04249785c8844d789c0045cef7407 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/warty-devel0000664000000000000000000000026113573457576020231 0ustar 0000000000000000000000000000000000000000 339c1a6e58d04249785c8844d789c0045cef7407 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/wily0000664000000000000000000000026113573457576016752 0ustar 0000000000000000000000000000000000000000 8d632f7903787dad498b3635102b93e189562605 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/wily-devel0000664000000000000000000000026113573457576020047 0ustar 0000000000000000000000000000000000000000 8d632f7903787dad498b3635102b93e189562605 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/xenial0000664000000000000000000000026113573457576017246 0ustar 0000000000000000000000000000000000000000 44b048d1af79661b17c1f3e940ecbe8af704bee3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/xenial-devel0000664000000000000000000000026113573457576020343 0ustar 0000000000000000000000000000000000000000 fd8e94ca67e7f81ee3499b381281f6d330647671 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/xenial-proposed0000664000000000000000000000026113573457576021077 0ustar 0000000000000000000000000000000000000000 fd8e94ca67e7f81ee3499b381281f6d330647671 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/xenial-updates0000664000000000000000000000026113573457576020711 0ustar 0000000000000000000000000000000000000000 fd8e94ca67e7f81ee3499b381281f6d330647671 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/yakkety0000664000000000000000000000026113573457576017447 0ustar 0000000000000000000000000000000000000000 44b048d1af79661b17c1f3e940ecbe8af704bee3 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/yakkety-devel0000664000000000000000000000026113573457576020544 0ustar 0000000000000000000000000000000000000000 9338ffa8853eb4b5c0c7304895c7163c4a7ab655 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/yakkety-proposed0000664000000000000000000000026113573457576021300 0ustar 0000000000000000000000000000000000000000 9338ffa8853eb4b5c0c7304895c7163c4a7ab655 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/yakkety-updates0000664000000000000000000000026113573457576021112 0ustar 0000000000000000000000000000000000000000 9338ffa8853eb4b5c0c7304895c7163c4a7ab655 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/zesty0000664000000000000000000000026113573457576017144 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/zesty-devel0000664000000000000000000000026113573457576020241 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/logs/refs/remotes/pkg/ubuntu/zesty-proposed0000664000000000000000000000026113573457576020775 0ustar 0000000000000000000000000000000000000000 bc4b0efc22d8f45dff44424c070cb037f6e19c90 Christian Ehrhardt 1575903101 +0100 fetch pkg: storing head tftp-hpa/.git/objects/0000775000000000000000000000000013573461024011770 5ustar tftp-hpa/.git/objects/02/0000775000000000000000000000000013573461024012211 5ustar tftp-hpa/.git/objects/02/110bff3aa99337274e33f466b12405cd80b1770000444000000000000000000000157413573461024017116 0ustar xIFWM"*ty<`wP (e]VQ|W:ѹy< (%hDM(뢊(Qa(I"Q(ڈO $FP!RR (KDU".YPiѱ":yD~?GuS8wUѡ)!fmxs̵e{`o[qN88P4 sɦX+Y Rn]ygt1R>̪΁ύ' fKfuץc{mcbbٿx#r@#, ݭvY7_RЬkVu M*-(:LRV2Ym|N|9l=dJ+w-ld<*9@rU1ՎRZ0U]mA啷jB^;Vs@'ٻs")x_s4v!×C V=ޖA7"xBmzj*ROwɛwYxͶ[ա4/}4czϚ|W[_yBz)tI=\J>نvWcpvk 谭yZKBۼA !p_n I= 4r>$sD}>;חҥ/[ ܉}80Ӳoo0g~D]~c/TfwÎ~3M;֦rNq/;OyUlX VV ֤qۡάտ5yTgd_e$$;q+ ttXZs ~F:"I֤[<}o߃Vؑtftp-hpa/.git/objects/04/0000775000000000000000000000000013573460454012221 5ustar tftp-hpa/.git/objects/04/b952d48f83854c0240fe256a62cb888fbd95e20000444000000000000000000000211713573460454017314 0ustar xm[6̯ԗ`.jCBWUe\%3Kd/y//_P^i ϳ5!@CK>8Bs%,Geೢ0U-G !xae#!]5X]ڀY C%{c(aXȳ"0Ԩa[R5ӦMq~KS{'ڷe84DAf8q7i ^c 5,slwN )LHu=kO'zxRivd\wE3N&[\FQe .ک*ɓڃiCriKCr‡i,hٻtupٟhFxlv]g˜=aͶ.pJG\\WDi D8aMtp3u+s+qv̕ 9. k* ٕt. ;FJ̯O՝eY-R̈U ZԦRH[,+w⋳:'L(n0oN Dkș9n>HpRU7kɎx{tܪ`vPI яEHH͓֕hm֜Ğ/ a3.v2n7iA9o*yC*5mZu?u{r~HJٱ'Ɖm(P.׵rDT?\R fM<׾7wj'B&ml\c]FHN"腷kwr=BgΟtftp-hpa/.git/objects/0a/0000775000000000000000000000000013573461024012270 5ustar tftp-hpa/.git/objects/0a/fe43820769135428133581b76d0ad8ea3a28b10000444000000000000000000000025213573461024017112 0ustar xmM0F]'1&#xR:JtE;/(7`[@5N&iUFztMhdv\8M ^yvU Bv+sg=>  >.u cewsrAVM1 B\?-s( Dtftp-hpa/.git/objects/12/0000775000000000000000000000000013573461024012212 5ustar tftp-hpa/.git/objects/12/332f04b9a2903ffff3222270750f5dd72ee3890000444000000000000000000002501013573461024017202 0ustar xrY}Oԅ%V5RBTU# $,Ȣ#O ?IN$JcP7I =_>_7 (VUh Nwwƭny^&El.iOQ220扙Eq#fv-WSEQV2ⲋ\<^"5'yv7ͧ8Q܄Ida,nyk.|ʣȜsffIh)}85_uǃAyfyuy@͛2fy6#iI\t1LhjXO;iov:=6ݱrEE<7lfg T+NyEͧ>ߜ S@Ѵ(Zrz_O^\QY8-S Ɲvޥ%k2-DBn[r/M1LfdA44ޥABhrEbc:28ɋ(nm]O 2r48 Y E/JE\F^Y*15WȄ\"^Fy?]Jaosntp u_$Ŝ#8\d>5% %iWjk/GE9E|{0mn#QFc5_0%#zjfO+ "ғ'vd9X!~-`g&a4}0/C soOTEđz )ΦiQ KONa{j?E+/ϐbfY缝7#;x<.ʰ٭,PgԭL*j- 62H]atz97~Heyjk. ՂEA5&A=+WyEI/$Wr1n7UXL/&vqNĉL]gY<ڧfs,dyQ΅Fm ^w蹞lu|[HoG_G]HۚW)vj^U~(1\c{}eCLa0?sվM \͏Bon>z4o!H+xXĈ{Lvk/nT~"Cyٻ&!GU12.bt n _/2hf|Jb?N_U?Q!jdr"/Tœ V+>{b ϳ =+8[Z|"[puLD*ژu踉Q-7(cl[4r(Io~(-RqqfnvD"MWfOU{ȫ~)sQjxtϢPaKgr*=GB:yjoN)I\D\5[}u}tNgq-kͦqreT\j|W2_@|w30E2D8z&)L1<2dbeԨ&+ёdh0B`R,of7%tQCDUĻ_^Ɠig9([A+aO C#.mf+V9{p˰\IX`|>[%6`k9Nsw\VwR)HYfOA}QCCtV͍7YxV_oIw}x4mvr?%Eʩp  SaûK˕gyѕʫgiز۬?uRY 3Qu`A".~5%:c;±޲ "hp{zZ4}@tu:bE6"6g蛠{{;vD _>)nt s%jJQ\LOw&`αW;dwrړZï6`{;XmYߪ[ഇ1.*i`v=S,X!i 0Yn\;8o`>$3zI'.\<(fJX! j?1֮ko8.<|YD>C=Q&icYR!Wi&6@qJep"cy}d<8z/ě#=[37#@Lm%LMj7*6IBV_ǙD@dq,ϩV<:= v,=K:K1y˼!1Y?ɱLR.1/w0Yi!R#OAe7GWA[쎈Ȣ<;ͦ28Z@Q@p@H?| |9~H:LauF8 =".r6 AYJ+ <߰;o黷m$X^@RͶ%m '*v쫪uZb$'o]ݶ\[VSE4ܫHu}Tpʚ U}|1UMwL:DrL5ax}SW m2A_{]xQ"/\ޚ VLI=H,u@vXklHcZkZbr4` 1.to *4 f/!˸xK縌 /̓\hىiUet a{HfXYh{0l - {1#l " @s L[?kz˒5Tuc!)F_̩y: Xb5p~ Bl *YIC;{hv8"w";VYLhWd[N$%=WD"#_1/lV ݙE_lˍck鵘[ m%]TP4zGnBrWd>\EYBCk}wƓ)Hq|wab}N_C$Iu i&L_jg.Is?$Blu2w#ޕqdt{\,EDM%{Y.?-( gYdu 8(lûbpe0݋WoM4J8j }$Sαma) hl59j74ɢ wBٚ)$YBANx. 7O^6SJLU>QL&$'J(h)M`VꝥS+M8Y t&7%x' qp.eIr٥}.|E! ƈFG1o?i*r'bNU2Wg| oyxgYX"S) ѕDX̏修O6CZ\Sh IaY? $۔SVcEXGS_s;p{ӱ#Oɥd|rB}J qK^cLYL\.f!"Mf' RĐ\8#I۱dKn*{Zv={Zs}ɔSޭ2)Ix{2%Pذ}ȽU5Em+iK5ncQGZ$N4H5THZAU+;fQQ%210(jʱ:/ieoI5 Y($x~^i{vUM&C $Jՠi&),İd-8у3qe*XF**d[7 aJ0ב;PSH?ŇEh A3*DжhHZ +ʺ6A!uew C܆Wg-_^CH3XWA.5nu(=u*אA k>BmN (\ B^mn BX5,ԺQo 'Úm<,9Gv5.edv 5t>ŬB;(p*iU.Ņ H6waw唄t>7&- eW+Q/\Gڿ6,BѺ:=pLg騨ؖkw~\nmD.XaHq)"6HasF7=ry2ݠw0oBXajW0段-z'+H :Pmx=%+[9&?V:k v$*!!ɺ DJ^|sF4Dm21D%. Zo?|{FX)g'ݷǒ9_,L>-w*] ܐ^g$ OH " Y13Js۳kYrp"s "ԫ2,B؛q-g5!=sȡ%9VO&לf%]$G MTג</0$MpUC ݔWbCk~*%MYJ*sZ^>c8zp0bxR ݓ2Eg7؊{ ̄B -mҟ0a;j2ƒTSIVpnʮz%\҂%8Y7wNoX/ 1ǃ66Zܽ2V[ua}CMpQҖ*I::V֖Zn'iRJ![JE 8n3^4H}IcCK1Cc^AZ$wt%J%1:hoHmPm ^w_&.Ug0։A 8t:Yt*&mG)n &]C dC8Ht~ (|Z6u5kg@XߠR 81)ԩ-Ġ;`JQ4lɋ)U^js#*U6eTD \T#̤3Z9iŀ{ 5k>hԓ)/4m3b* ",)<NI/.ܡkO,QO6ZIsFtqf)9#p9հ-ڒoTuzl?DEV~̳8b^$6N7];/mz<^+A?Zǥ-TbFt>+&[{omb6Gjߋ@ n^v7|ĭwA$kP#͉l¬)z7' &n ! 0A(3־t$p_ %n-aDwza$QΏiX"%'VhDd=ܞȣ?Iq!]-ǩuY}G>KoX1NIu}_ܥ70*miznO43Ӛ<̙Z?Y%.lK\AsP&:yYS+H bO3ZJxls*>Cq=’.PʋPǏ4<^G**Z מnSP hШT NRԦlk)&DCUꢦ?Pj3I"Ɋ3|+`pWL=-mm{޸㕻$X'Q^%)DZ#֛{D,T\ #AzgAEb)Ys!EOxi+/TA O>,[U[4kw/c@ƅ$>~bkMs%; ߖ$bkoĈiZSUD\ڥ[Ix׳ &}A0_zdәk$: ^zUAٺ%U{vvQ4@MNZrhWtm B}nC{u7ԩߨ{qƽkKM^P:cHɅשR|W^aEyi8E4^CB|';(@j6,]J-qx t>ǐZ:|sgQJ6}5O1g*yO1(H,2R'jQU$@"XAMJ6 Az1moR$fhzK`mlr>Hb3$9KkJ&~-ٹuDN1X E]=OaRC&˦FNq8kI`%J:6 +F7EP\3-o0yEb1* H,wf@掰MAumF8m#Ѧeoċr; lnEܷ_7HA mֆ*Xt[1XL=Pd= O^#.)ׅt\F~p=R  =އXG-7kWX[$8\ K7}O"HyXh,_ ++  wwJRD%fޫ#O qIAE21+'SYԹC1 ֈFټ{l$TjM&{M;[(@'Td)3FUٞzren R߈hҧ11xR4faJ+iR"+9 [Cv5!!WR9WbHH !aq@.#-[H$ųtK=F6[F$^9T#z{@,rcU'Z5O^e|)mV]Fgx^D &{ TTd:]Y>p`I"},A6# rʧ=hRƻՃj%0Z%KrO69lڝ [\`+ߝKJ,o x,]pw%.=7v =U9e˖P8qURH%_Z^vB0;$lUlڒ .[v{E Gyd#ބPTB|zz̚CF"[V4?8hF RG3^VMRQ-SlkUo$fZ |ޔ%X V2ʤES?O'\`d=g^ς''Kn*@ l C) V*HsIAglM[ Sa1evj|7yELS^WX90d<)Sd1b\HU\S j4f:1Yq5-bgI^ևxK [=d4(V7d8kİniUjJn:{vxSYEY|ʻR`wTYjwg9a"^'$@C~ygp,/TGc0Z#ֽO*ފe3m]j/wc0솬ul>W,hHYoӍe;\"9:" e uD&tftp-hpa/.git/objects/14/0000775000000000000000000000000013573460426012221 5ustar tftp-hpa/.git/objects/14/3d0ab1946a5c1d519ffb20c0b5f988d78891d50000444000000000000000000000153113573460426017361 0ustar xΪH{SԜP>Dn¬(("2;tY]i賅~`C^ݗ<3= SVi,ӎl1=/k=<9nR~}#IeGje5M,Cs6sȌ:<(Hj|R(+ԇWpnǵq G#-GGQ<{GMlM=΂Dͩevy^pj]% psW/NE!.{+20|w >Uw`vVf:^F8lbk"v$η)7'8vlj$ yqڶYU+dg=ı>-h=SEZCº#ၢNu/l}tftp-hpa/.git/objects/17/0000775000000000000000000000000013573460316012222 5ustar tftp-hpa/.git/objects/17/78117d2d00b284fb147b8e2bb5b2d6a18963380000444000000000000000000000162213573460316017206 0ustar xKV3Wq9o如PDgQǓVeQ*=oJAkq H1IlS1Ecfs*MS(\ !k1h1 s4 f)/pie>$,E r@#FZ9pH15> l%L7@s'Q ˈh"77/FThWwA`|<ڟ@ldyrEVEjn. )Ӎm֒53]lVV 0V=b#]7NLy7YYExfk/8fCݞTMԾLQYX<67 I*@uSz1])VҖŷpwqgKhX>4TjGvE.P ]Oq(H}Ff/(6?<۪^ X\[-o5ZI ':27 }پ҈JƹN M-J^ ox^E.N%OO>F?r:x-\w>w&}%( %kiU{Enz"%%s6(>4kphz>{g9mf2zЙ'i\\i\J?ˡyeli`DɆk\4#:Vy*>+{P2AV")0 q ,b giElUξ j78~x1(k~27ܸ{t*h8A6 ח`ѢWNX1QǕY gOO/w&AxHZc%5:K3Վ=V4hґ2!OR覠*-U'4+8KkipA5TSUuZAv7 Z^QRot68ECU;H:4.p4= %- M @z-8< r LPs/dup5ܑ}Ȼ^ ʬoKc/=#h Pܲ3AsÌn5ŝ aRѩ %doV߼NwgS'qֺiY Co/cڳzi&:XüeYZ)vY{^Xoye.&Hhq|/Y(1ձػ1]-R0Yq"g^J7_y3ð{dž ~[cٸZy{OiZi2OE@7 ~_qJ̀aqEahXz\U0Om_@t;A~L[bD] ?Yed$F; SUtYGɇtftp-hpa/.git/objects/27/0000775000000000000000000000000013573460352012223 5ustar tftp-hpa/.git/objects/27/f4cd8bf5dc839d68dbb1fcad7d11549995318e0000444000000000000000000000107613573460352017626 0ustar x+)JMU071b040031QHHKOOgf2o(zg`s K$|c}4hxrpy%E9 6zG,8s sWυ+),L(af^֮LF el[{,u&@PϠz*{mb1q = 榦 E9 {|*Osإ Vf$'3p a?􅦎y֛U3f$0vŜx+9zIm WG_W=Ԥ<ZwxɪD36?CKr~^Zf:FrVjߵ0Ԃcǟ{Zj˧oPPZ[ R{32;:oo,:t{bт32Kc;MCyiE% soPZT}:6-tftp-hpa/.git/objects/2c/0000775000000000000000000000000013573460626012303 5ustar tftp-hpa/.git/objects/2c/f9717c5aa6ce951d85fbae8ff7740a24aa82280000444000000000000000000000157513573460626017620 0ustar xɮVyGtmcc&`wYEWRT_I[~P1BfeIJ+I Lj& rt )HVbTXxs$HS@χb 3r85i_?=M $m 0$(4'r iO{B"o?J3 <K` @oWMU5=SS0t+uy鮓3|wu|l-{tWt|vJQ:Jr.δp!EiIk?&Kp^?_;kJhŌLںddlT9[qa>X7i:Xnj_ L7Y~ ,K6r .Z<]qа/yu'f3se>m|3vvk/T{ J7q M=nj239zfG;H1v_Vzz;\Pzp[ڸ؈J ^Y f(?2|t3\:˟wp1)c\ne֘#]߬5_ǛnuD%'kVEcvؿd^inL1*u_s*-Td-o\Qn'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤym2~p P wi2un%Ժ mIX^jZŏ7Ֆi~q rc/4cYƏ_ھ5|VٙIctf]tA w շ4;%,|"dori4,N^xXWvKiFjxI<(BֵòjƩz6uQ2\"a,J'LduhU6hcu ,"w9GY%t-]?Ƌ3w<R/j`ImR`M c'OM`%h+(gvhh[/ Ψc?(ecj:P>zub)ޙ˦/r[IzJ{Ecn?k:Нz!fJ4֭IS.ԔP G^ow1._l{,"\!)p׼;/'-Ga^5}h{?=:75%<fnVE oy'^p[W[θCmI*w%@XwTbՓK .*axҿױ9ۨ*tftp-hpa/.git/objects/3e/0000775000000000000000000000000013573460742012305 5ustar tftp-hpa/.git/objects/3e/540eefc4434293c6f2aaa1c406a29d1c3ec7430000444000000000000000000000025213573460742017472 0ustar xmK 0@]LD`颞*sx'܀&J5z,5e`W:-_#sa4{tXR2#tudiL>q^k|܆jd2o#ڱ{H۱1eˎ4tl]^ّ5R R w !z3YCtftp-hpa/.git/objects/40/0000775000000000000000000000000013573460213012212 5ustar tftp-hpa/.git/objects/40/1aad4b82df97ab96e5651f6de9e8646ab8cdd10000444000000000000000000000165013573460213017665 0ustar xVmS6WW,s:9a\ J[N4ؒO$+R8Ϯ}8c8_Ec#5}E5{UJ4J8<̯BU WADu*rLi8-I QeI%yn>bt}M<':ƣ~hThv6e&Z >G)9_ *e |8?77gLp\.W;{O)Z(Ϳ,ϰ7E2pu{z @L->*^o0V+Ҍ@OHcϙB﹡K2n5_)] oN `j@I|sG:v|ǰ:tftp-hpa/.git/objects/47/0000775000000000000000000000000013573460677012237 5ustar tftp-hpa/.git/objects/47/9fcd1a7d556e1271648d0d797427b4629bee420000444000000000000000000000120113573460677017241 0ustar x+)JMU07`040031Qppsw fȮ>'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤc]1"$$#)P>H[C/dĸ2g5ċ YA ԛu_ֶ  %pnؙ@$- |I]Hdɸxfkcxݎнs1 훆Rm&Rt_HN^IQs9ch9R.-kGL{㝪&(6&<q/?.4~}XiCyMrBV~A8uT&+&dJC e֬`ad|{67CJQ}Lut:zg`"xٖTl<s Ӻ˿x(Aؒ(4#z~o%ۈ tftp-hpa/.git/objects/48/54d92355c150296e24d1d36880ec7d500365280000444000000000000000000000153413573460506016724 0ustar xIFW (/ x4 $JJ:OTe~PWa=! ERBT"9$*"YdRDM5 u'-j!i^@%2+YT%,5hU_?Y[`W}߲pK:÷o R.(r_oFo ~]KLw}zވsM0;m7rVQ/K^Uvx6c_e~r<,ϸ̿h,$Ԃ+y|ѵ{f3ҊJ}w^G}cwN V9*u<v! ѴK?I2/xmn5&?Lthzձx-O!G&%i}Jû?,%.J,rg^ ؔhIw"J`KGȍx/wR k әzy<HiN4(IX~*@MkMIO6^ Nf;fϴ9۲+%vy:+~p|ߜQ#df< }|> woV:m7/irc_!_*1Y*-Uub-R(HcbaI\Zq TJ';v=*&*ausmVƁZc9]e;L%M-\Gw{MYV(`s_gWǗNCQcLL_I4΁q:ck 7t9f}9.˖(>m?`Ktftp-hpa/.git/objects/57/0000775000000000000000000000000013573460646012234 5ustar tftp-hpa/.git/objects/57/46c88cb5d57c24d2eb57e20dd30284148c0c120000444000000000000000000000212013573460646017264 0ustar xmTێF3_R^@sFk0Q5\l |}Y%uTuTIuvZy (",pCD ,Q פhpQ0BBC0fX@)$SkӲ]:_5uAWkXD B@&tےi5m Q ?W} qQYOB$"&Ud xx4,,7;8(ƨ犚#=Ӵk2lxWiv漹<:s5?q 4Ws?gf[&YǓ)D:/7Z vWfޔ"Zwf.P@< gžût99"k!gf,ra ̎ZJRqB-VWi]*Qnű=o[WӋҳnFZl;wT\:# q[E/i'). |YQu ت jI71_$ɻLTM<2yj.ĘX./2NDu|8hQ,@s6lPEDeU*zĀaK#:0BW)3·J!*t3".='  [gnzxL]}rvzYyfo:($J3Om`001wsSsЯNInolr#zV|^3tUɨLS{+f n8kuv7l6\8b;P≄B0y3]N?K R.&צ-N;V .y/r& #[6ǬW (/:u$yfU>O!,OvN̂*-Sjőuc%-O£;ʆ̪Y3[Rw[% .6-)a3uTj ni &et4#lK 2[[JkL*\ᆨDq gg~O[|]x!r>i m?踩۴yIxDasӵJ ~,ݰ3XK ͒˾%Rhn°kIѥG  `tftp-hpa/.git/objects/66/0000775000000000000000000000000013573461017012225 5ustar tftp-hpa/.git/objects/66/a13814fbd7cfcd771af45cda765ac9e9e75c890000444000000000000000000000121313573461017017676 0ustar x}TMk1YbnIq(%rjPfY[T[vrqFo{F|ˇa->0ȔzRy ɆGNv6-ܑZP ̙PCSJIMksD:4tSLe#E F5&<\l/ĞsQe*D_./&$b>v}gk[  1 c GpV?+!! mA|Zm\Y X[Ҡ+AYQR.SQڥhZ}/aYnJn-UIY7eC֒FOj6'%k/eF)Zi~,,:dP,?F^_wӖ K՘7"l@.DBa{ڑ&A, YXޓz=_cp_c>EU.`G Α:[$(+|d9 ('r3YU}jyfsM(@$LBN,NnM\tftp-hpa/.git/objects/6b/0000775000000000000000000000000013573460643012305 5ustar tftp-hpa/.git/objects/6b/3dc5a40bb5d694dc2117351f025011108fb6590000444000000000000000000000154713573460643017175 0ustar x˲FySH7`éTQ\f r;6>}vN2Je m[QD)ˀ!,Ih'CITX51/k.O a." d: PT$df'$c#H DBHbL~Z9UwZTJ/c*%ͷoPĢk|Wno W{Tc8GſOg*u[zMHno#p -Xʽo#b+ZQ95ˊ5?yKߕjxfdanZܮ'BmwڑyX0q~H\uq5=[W.cUɥ{2\z}@F!n11R(W+aWpѩܩ˭gNu먉a 'uۆL !$>7i:FVvc_˩Xle3ȗ z}|aB:=FUeAl}#p) oaz^m^gyq^:m76{JѴW+{-\oOazꍧ '%G /_-ڍ&Fs Pi^V?1 QWZm(4f';l1L6g)gN'-a6hrq^1E[I;\I6RG5r&q8c~tŷܛ aޥn;ڼ-mq?|g7ä%銬@XA81W]v#y}o qtftp-hpa/.git/objects/6b/e724908d9443b06140d93f8335793afc820ef00000444000000000000000000000120313573460413017135 0ustar x+)JMU07`040031Qppsw fȮ>'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤC_g4i "JP`."FgWDi%RUK} M]m#? R Ms){re;ko,oErО٠,S9'>֛EhU`k/hlE`,.svZkn \!5Ø a&s䴠 |_5fS^ߔ{#HV괴 ǁ&Tќ[N:<)쮇t&e p+|8[C세Ӷ;95lzv>zk&;ĆS`.BD8ݣΉ;3[b3$#}Q[ o `&40MT]G@gP#(]q~j>)X-N?,oP?~tftp-hpa/.git/objects/6f/0000775000000000000000000000000013573460353012307 5ustar tftp-hpa/.git/objects/6f/ed5d53aa3111ba2558973ba31703a43a9619330000444000000000000000000000156413573460353017200 0ustar xɲFE+jO Ǝn H Bhh;B$[vȓ nr 4I$H\*Bʜ̠H~WM*#!iKDN>=)ÈE4 'R1HI6SC9Neh@b$pW&Qw"/NI34M{)>|Yfhyoz @WBE!KM j91PIyT\p#pG`MjyG .Rm;!Re\6!E ..)U^Z ) y켜̤qhld͹+ICV0?~׭O7hߊ@pDI , ^}ے#eL[(TR+ _2 /1~O\ؾҫ/?C9TyY!f.>Hi߿w9Kw,!hKY/7by||ҥ۽Шhu' 0Q>HS$_6]§|ڨpiz~:}J86H4K`zg 1飢B655z FfsV %w̉0fTT%2@ǯP<#I`rgmݥbq^C ?Wn_X꧅_XY8~lv1䷘都^f#yte.YaȞ]4^,OŻ䂣=wںj T~%fؼSUO%7 ]b7u>?3@iGE}7N_D|`€JBi=V8ye^Stftp-hpa/.git/objects/74/0000775000000000000000000000000013573461017012224 5ustar tftp-hpa/.git/objects/74/6d48504bed03d0a01866863f7d88b1893b87da0000444000000000000000000000120113573461017017222 0ustar x+)JMU07`040031Qppsw fȮ>'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤ<)~X~lr3Ksrtnx$&ӕwa 1&'3aƏҽ^{:iFEEnEf^jI ӯ*H {Ȯ!ġV_؁D>Qqr0B:Db񿄍:/\kSqCjKYjQq&0;Ŭl8`~j}Kq3I,Ctftp-hpa/.git/objects/74/714bcd3bd3d51283b05d22f045cfcf051e233e0000444000000000000000000000110013573460677017405 0ustar x+)JMU071b040031QHHKOOgh=>1b:yõ{&LQ~nAb Û@o 3& O5q`}"(?anTVc[(3=ϛyY3-ܖ9mٲԕ~BA>Eo9#!B 榦 E9 {|*Osإ Vf$'3p a?􅦎y֛U3f$0vŜx+9zIm WG_W=Ԥ<ZwxɪD36?CKr~^Zf:׸wJ_zšϭJP v4]Îi]-A]. CejEbn(,^J(谾1E ^c,aYY^Um{(j`߱pO1f$kÓ/ K@ǰwČG5}dqw2VE oy'^p[W[θCmI*w%@-ZfBb #'..4CyiE% soPZT}:6x4tftp-hpa/.git/objects/7a/0000775000000000000000000000000013573461021012274 5ustar tftp-hpa/.git/objects/7a/ac5c6e35d7332a03c3ee815f0996043e947e1a0000444000000000000000000000165313573461021017350 0ustar xɲFE+*zKc*&aBT4|}E.Ndd͈IsH!@*˜`Q"%C MIuldJlq-b4H *&FiJ8IE4EFh&84y,g(1`KȓZ|.2<)%׵̄6>z3e^!M8m>Mkkϐ;=dc%/4T," c3Y_;kt9pkugWtj/Z3E/hNmsYhgscpbWblxNu,ύ{VQJrRq?T{kf,,7i76^+6BoW3;m_*[UtԵfAٻu7Li6{ŧS]}JiHF,ٗvv ҽ8M8]Zi* X9n3r)DZU#>C&T1v_ $U1"hYb6]yt~O%Y,`^4=YÁSvQVݞ/?63# xݱ0)zx)зɼ.o768ܭ Vik<29Js‚%x 1/bd4V?8ßxr |$~^ҡ} Vh @ L *@h@~ &BϦokBy @O%ƩDDDHfB4L 3R$K5tftp-hpa/.git/objects/7f/0000775000000000000000000000000013573460506012310 5ustar tftp-hpa/.git/objects/7f/33bdf14cc51cc0a4e19ce6ab002e89c1fa21820000444000000000000000000000161013573460506017622 0ustar xɲFE+jO%/iU_Koyګ]2ݟk+>vC`1 k(ҎzI+PN~^ TxOzg%i^R-xtN {fTݡ.|KW~4ڰ 2߷ϩ"p9<"*ҕn6٨-ԙclˍu p4wk j@|h#?rcuRZ)rp|g\kƧ+ZBYbu2o.5ZP3;t'3v0 s4}蓒%7p pw4putண?ABR4H J@n?z>Pd-I>4o02 tftp-hpa/.git/objects/80/0000775000000000000000000000000013573461017012221 5ustar tftp-hpa/.git/objects/80/5694ff1f1f9d71f0a74d27dfb535131d50a7340000444000000000000000000000110113573461017017264 0ustar x+)JMU071b040031QHHKOOg8}qO̥#0E% o]1x>p4<9āsQ ^ZՏmiZfcʢ?oedp[̶gRWmb  c>o{_@<ׇL &*3?Vb6xVZQVRQ\5,Z:YoVMDWW\jrgs_~XK$)`S\]|]\R2^[j%@ -yi _+}y k2?R*C-j ǝedžo 6OM+='گ91a^BWhI=oTDwKNd ndor_qH*.RTmoa>ss{f2Hlaʊh#4^,WتiC^cakr]z7d8޿Րf_%%Y/V뷻RM/nf" @m˵*^|G鸋Ԇ6+*+F|ө OAĵyg1dtْ3Ix`>gf71UMGAiaqۖ99+(%^9 r#횶əN9}GGgNI٤SwgzET:},heFe\NHP|WICFb,2HEMpFh!Y$'eEb)JD,K[, znnKs b?'~0M|$˳"A3vI؛^ dYG`5U <Gp0 80K$YBo4]D/Lf/ZK:zMHR1 O[kWgn|q6t?fT^%^CgtOv C-(,߉^}{_o44AR&߱1 q{ŕLȏaE7{ں9ZMxʙeZ"eb#YUr 6z$O+'_Zѫi>-{K0,kݍYVjۅ5ic]욫v|ysp3~ 1򝓪S/c{*+,؜ _OZ9xH 6 T A2ErGcK{3}=&c)n6.:I.,W/=Rx!J:8tR%(3 fU gGA OH"' Ń* 岗a&3>yfBf󀁙]|lۭ9U3gO Pb_RjzI UoOrԣ+ d5Il(Ps,b;({ˎ/2?p[( ,#ђ*-bرT|emtftp-hpa/.git/objects/8b/0000775000000000000000000000000013573461024012301 5ustar tftp-hpa/.git/objects/8b/13a65e835a906fd5b06d067c53bfa10b3bc3450000444000000000000000000000024313573460775017422 0ustar xm0={'&Ƙ?di@kp9B7ɌpZCj T% DɒEhvHh 4 S78OUsZ5:Y,f30ý =^~;9)nb\AUʢ99*,g( /C\tftp-hpa/.git/objects/8b/478ef6f3d3f3f182efe041c0a7eb206f4f6a4d0000444000000000000000000000160213573461024017652 0ustar xIVFW\)D5011\y06_wY%S|m[. ie˘$RH.ᣔa"I:MY9x^jU\4=U~p t]EIX*JV/B刵Ź֎bC=.,yparV7Xv{Qwsݶ(f=N{vߡ'bF֔ dHJz|D:Ayug}pI.b6 y >jOtx۴p4ur,a 䑂Lzxg۬Fojv+2'1k]NԹeՆ('K2SټV YhjOS<9u7#OY) !Ή[>dcD:{8<|h' qI"a9bSV1[n}B^Xb^w,^S1Lw=睻u82)n^ψZ2sO=0AK31 _1Q23_ht#anfd\z{:ƐjD̸~%ts{mm:zi,H;v/j6(fڭlPWp?3/)ܡL*6,:ˆJQN[}_l($Ew00fq`6OlɖawgZDKw0}-~|tftp-hpa/.git/objects/8e/0000775000000000000000000000000013573461024012304 5ustar tftp-hpa/.git/objects/8e/7f5cffd24927c8ad56c1c024dd60d547aa14aa0000444000000000000000000000120213573461024017635 0ustar x+)JMU07`040031Qppsw fȮ>'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤ<ZNoq JK%6, usf^qIbN.͖]$ävҳS=,7!d&1PsO'6׾5ߨW1h׭K-Ia`\ 63~YA|184^+U;qȧ?*\FH0H,^k {8nUxHCm)K-*{MO-o)r=%tftp-hpa/.git/objects/9b/0000775000000000000000000000000013573460316012305 5ustar tftp-hpa/.git/objects/9b/3e6cfe14fad8c18aab6131b58f0ddda8b5de830000444000000000000000000000120113573460316020061 0ustar x+)JMU07`040031Qppsw fȮ>'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤ'ܵ"yâ0TPsmVג[=ӤanR*5[{l~ ௫ud!u9Wu,wܯ,G_Xxt6î\ nkufP[,6>zŋwu= :ݨM\Dpm4Ύ9p33+ώY TV#fyYb:d͵80=( i1IWGQL}p 0l}7U_`xcJDfwߢ 6x?b٭z׳=apqmِS.9Z=[/lmtӜ{RdCqa,޻pWBlmDE_ oynS,O+qo'q<Hs9nNCCmd5+2>l+`1 2wnʯE-Գ7s sߚϲz;ro"6\\}gw߮ߘϞ16,ꪡF4HHԕF6J =,AS9 ~6=h>iT7U]$d#k2qJ>=Aaf *cW}2QĜSL!J#h"GLQDL0҃q}/7)i_;R( &$B]N U>=YiR^^a UG P7 41LZ )?n'fY  Հ  "/̿]tftp-hpa/.git/objects/b2/0000775000000000000000000000000013573460316012276 5ustar tftp-hpa/.git/objects/b2/64538d538fc1f7562eae486bbe311579f125e60000444000000000000000000000107713573460316017314 0ustar x+)JMU071b040031QHHKOOgf2o(zg`s K$|c}4hxrpy%E9 6zG,8s sWυ+),L(af^֮LF el[{,u&@PϠz*{mb1q = 榦 E9 {|*Osإ Vf$'3p a?􅦎y֛U3f$0vŜx+9zIm WG_W=Ԥ<ZwxɪD36?CKr~^Zf:FrVjߵ0Ԃcǟ{Zj˧oPPZ[ R{32;:oo,:t{bт32Kc'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤ<ːj3w#~_2O,͙y%99@7[vuzçEVۺ> Kٔ^#7;$4·4 Z HvDci;;[\ 9 BYLy,U8)ZuO |<4p󗋉Ӆi*pQsNƭ0M"N,y])q,Es(AݾJ}߰km`^Qw{ZMt뮏=_cS24v$z#c56WW>Ly(r& DD:MW&PO].ar*xm~oti;wsO AT˾O ѨhRG1ƑK4<`A`mV8nb@uu?3^'Lujjo{dôg9vliY =zpX+[e]Sing|V]oeN32(8|glݿ5_iIGVU|u0KAfA5@0 ihW 2na0aS~-{~ooktftp-hpa/.git/objects/c4/0000775000000000000000000000000013573460242012277 5ustar tftp-hpa/.git/objects/c4/286cb6de402c05e2cd8de6f66d978e030617440000444000000000000000000000121613573460242017360 0ustar x}TMk1YbnIq( 95B(Ҭ-Fa}GZ9qӸ`l7y>|ڑfB`ތL)'lث{qty9~dlc=Ϝjǐ a}=;٫+Rr~ R+) q0pt̪XJ_001(?Q9ڴV#MsLo8M7w^V;RޯbTciUB:ZB4bbhL"3l#u>`00Ĕ%YL(|K +xjǟyiʷYQO5,.`l@bL"eEILG-kMz r[nɬJ^Z݊+#0zJV9)[-{D%Կ(8NJ}gc qh%aC׸bS3 ]ΟkuGm3)ٰ_yZ+"K$]iNO_ɰኁ]ty{ÀQ,or8 Nhvԑҏ&y%Ey|\# \_@?ɗ!͒ܬU/c5kBFh"arfpZ&t#Ltftp-hpa/.git/objects/c8/0000775000000000000000000000000013573461024012302 5ustar tftp-hpa/.git/objects/c8/2a42cbdbcd98d0d521c0b022a518b2aef31c250000444000000000000000000000110413573461024017576 0ustar x+)JMU071b040031QHHKOOg2gٹhJJw$0It1#hPg*JsF5xiOkU?n/kJ *23Jk?m3֞-K]9뷉(3Q9\2*O`njPTZ̰ǧZ>W]ɺ[jEIZInFA^J~r1 װCkM_hꘟgY5=]af^qIbNëɝaw_yWbc,ԦM rutusIMLcHzm{ߏJ4cc,0$e3|{' /<~Jy `Gu>y֥"0TV$ތ#޿X5̼%Ϯ}U5BaQ  mI‘k6< | ~'qp9>KxTGx'cU]wr~E?Zao1Ԗ}X_B ϟ-s,14 kH]]T0wv7HwcsQ;u4,tftp-hpa/.git/objects/ca/0000775000000000000000000000000013573460352012356 5ustar tftp-hpa/.git/objects/ca/684e6b6c29491da9999f3a13e9d6f5054e9c9e0000444000000000000000000000120313573460352017473 0ustar x+)JMU07`040031Qppsw fȮ>'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤ</giq{㟵!3̼Ĝ]-::I(Itgŧ]{XnBLbctNm(}kQѯ(c@Ѯ[Z0C lf-?b8qhW0:v&OATNa8+X/a qܪfRZT N1+80ZvR\L{%Kvtftp-hpa/.git/objects/e1/0000775000000000000000000000000013573460274012303 5ustar tftp-hpa/.git/objects/e1/169ea96d4c00a64d96ff0d406f1341204741dd0000444000000000000000000000120213573460270017251 0ustar x+)JMU07`040031Qppsw fȮ>'taٌ< wmvT_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤ<++Eu0+mwP7g$lIB9Lj+=+>%rbLNfÌ[{>tlCq[~EAv̼݊Ԓ_U`3n]CCEYձ7| `t Y u^ְV4;ԖԢL`ȽwYqԲ*gړ.Y\tftp-hpa/.git/objects/e1/8bf2c1f513571f5ded6750af194436ca1976400000444000000000000000000000161513573460274017301 0ustar xKFFW: ݀\F  ˼<ǓJYdVRUmΗu]1ا)H<12H8g9CPf{3HHYLjSDDKi,(E_c}{2_=mWI[ZXu+ ^o .}#pvQ'Jxʒ$+DRUocu8!RV\wLiTSd咒ͺjMc O?lq@ؐ+áKpj X^'.@Gց{Cßm޺q.xНLVx;=$AMMdO@Zy:v`ORm rV*S+s @aRjoFFqG퍑En_,ZCuf^f `̒g׾?v`nCU˰{l6$5^|P\_\ >M4U>勔g/bU]wr~E?Zao1Ԗ}XmtX}-wz3 J..ul6j51tftp-hpa/.git/objects/eb/0000775000000000000000000000000013573460625012364 5ustar tftp-hpa/.git/objects/eb/cc63491b56ab518b73dc4173190ec3c425d6580000444000000000000000000000110013573460625017341 0ustar x+)JMU071b040031QHHKOOg`^n:5/^LQ~nAb Û@o 3& O5q`}"(?anTVc[(3=ϛyY3-ܖ9mٲԕ~BA>Eo9#!B 榦 E9 {|*Osإ Vf$'3p a?􅦎y֛U3f$0vŜx+9zIm WG_W=Ԥ<ZwxɪD36?CKr~^Zf:ÒKg}z,"<"ìz Zy:v`ORm rV*S+s @aRjoFFqG퍑En_,ZCuf^f `̒g׾?v`nCU˰{l6$5^|P\_\ >E8%ft<#Ռs.ex;pSz0ujKRK,o2l ]Eo9qqK .*axҿױ9ۨ/tftp-hpa/.git/objects/ec/0000775000000000000000000000000013573460510012356 5ustar tftp-hpa/.git/objects/ec/b101f61338dca238981050effac87588aefa690000444000000000000000000000211513573460510017513 0ustar xmYF̯()/In͚6QP,f) Q^SQS_$#4ElB%f &ʲ(E$+P$bɪ%P`8Q3FM8Iʉ,ː8WUQ(8`r <&S~_1[2&s 2 f 0ԤNa ^@JF|I~jSeOCQUE0[KtSo?s-JӬHHx҆ʶ}y)0T:U3GEZmfAdάntp*nyvOȚ_Pp#],n܏1*| vԽ C}.WI\nsR 'q(%yq߯z(mjO>4ly>$I+gIɓJ "E&}O}9 IF6p1Z_+^qHU^krx  ,5>HVbjv} "28AKQXcqu}(6<DJU\dku| %1@LS_flu  -<GQXajtw +1>DJP[alpz%.6@LUY]djqz>Sr諱'Oq.Z&ZRQkؚXť#J3;)_$QWa&x;S^Us|\r' ҧo1!54+oP8{$8y0j.lY]:^_﹒?"K%˹c^53 7a{{+ ]b=V^6ڏn 2\EMZsbTThsI8 ue ڢZqi݋R?nEz ɦ%H(ʛ`xSV-y΃7S kFvB@1\p5.A ͝ QYgT|)HJ%x~ X{!Dۀrz2n< ʚwɁN c KH!pq|8e|ATc I0n[ "VqFJiM~_i yk;)x҉(GL1WSQڝkSC,&w,|gpꚢPEӱ2*Qn#`Yrk Si fBWCr8͈tLْ揾^R,;݁}9F(?v?<4d-,ø'k3%zǺ%\%u²/g ގBWEy y*gKxF$񇙆lF7/w;"*M"yu e2K@H'U]!tNZmxxOw,u#&|"\(H}I?<\%LE#|}eX i]:aP+VG7~K|)XB ud8FNYB5N!s a06껷Cl豋oW)ه,B&co{N3:Q6,}eˎ۵}OϜ& a$x 5HXoPbCB河慅6.<36Hg= Jr*#~4m5̩־q)c͠ y=u*]dZ#XԖ*3/VIF\z$xMBڮMceqK˥oDI[ҫH[[WrhMT'Q;\,҈D^0lJl+J-[/LDP\YJg%1/,yAY|m & cŨwxs c&{#6,YxSN-!V Ԥ*7SmSi!Sі Gwz)3% ,un 7&x8j:?K [wMƽYl } KMD<;c #rvvg=c  G0iɑ܁Zs T>ɏT_Jf^ ϲJGX @Blë)МMe aBF#(Mv % M@ 繲U(Mڛd ݘG".Ycw|Z4b ZKDŁ4YA6 Gdžo9feB1E 2[G̛ ź/AuJj7宠lx )QSt-rW-#x) vl 9'58\d :ƆEh7ԼqWX yU&؞'WVE ^b(J8Cɡ ľP~IcED G LęAfD`^Y~ Cw5\L#Op hMDwӓE dȜJ4x -8JK?|S nkd ,EĴmN6X(| a˛xPi "bgЩDk̡HIw >p+g'Y: f[ mm<,^ sʍ$1Xpq4 {k'0byLTz .% ] Ū$:bEuɞ sYq $ j{Ļ< 0"뀀k: >% +m Y?N T(.>' R#yVii^PA WG|(;X y{[xlmLW ۞~)_l)t;; 3ϛ:nKQiz %-^z̶K ،Q8dhz$8oXvzy4ce5Cs4I2SSf 3jCah0x2YA2+ʨ~S$U.00L5(bޮDQgx7DTW@Bov"S„Ti$ݥAi?lxbsْo%zZfˬfp4I;7= TwDv4@D͹K 2xEη2e!@j 7Dca( <ѳ@T2[-evV9.N^*t~l*f{Re_ny:.J#fBmɖ#)cEptۊE"ډ]eZu#o+qR|dk$@IZjbUͨw lr6rWŁ/L˹rnKY&F2pz.+d"J5G@+* ~5T[1p Pl[{}_ \jJz0 UzwcMBAz/'{uLRQ?CVgu9G'l9;^h)J 8!ojXPl=)n(R\7M=p@ݱ2gJ5A*_1F:<&[V뱆EhD2t$m~1,,V`wsk<70#-b6 *)izkގ8#VQx-;U5r #j%CjܜJQ2zlT)M!9>Y=G8G=ye[5baxr9G(uZXF r" J]h ]G)utywi8eJM?"spp}(S ejRNk!GrC_#kKcAS`ڨr)F ;:. J ̩xG.~#0QN0R^`qxb=-(G<1M#< ش0-Xz`< C A(Cr[}RSu'<2mkʤAO[ :O#_2]'GH*qI&| Yڎ`kSڜ*e)&6xL4IdjvJ~&17^b :<3(В%i|;_a uCBѮّ*8qd-DA9i!z,`uPHŇzz`Ԯ%/0`gTjc~Dh~N7]0R3rM/ ~5hL;|ҽ^sNO~3%ź0WNXEcF](!x_Oe+:Tv:"j)8$ ׁ,~YʨYjbg?^4}i"[io?fkcblYUsɴvd̈9astmo 2]P`#\tF=sVUv3%ff$^ӓ[P:!8 3_h ``ȻWxWtOVt0.t >wl3$;s0{iXש^ [V$i?| *"EVfot]@2=u+,ٝ3r'c3EFGw6WWRJmWap2BBH蹶8H3NGԒW]r'A5v5`~40txDR`%-,H3V$$-l']&(ëEj?O5o*U1@|cǺ4$^e>UR] D/*y~S?$UamA %K rX0ڣ.+ |KE>](i$u*jDamxZ;ƚ–9oOR]zr"ŝ!JNQnf5_2C:%ʷ6!oQ>~)m8Fbz 1ĥ[ V' 1y꧅D'Y `&J yHk2)Aa>1]zpLw:(W}+̸%}W︺/o|id1HC =]S(p8|KƐXa@nDw]˳+X(V/Z^&# *oryS$edM>%:WfXs70aL*Ѫ u`-(Oـ塝5f3 ]/,fѷڠ! kӯ[= )R0;Sx 7ߦ=m|V+l :kdXL7zgxsی Qo2eצq\A >)’:}~ m$ ,)"ԤFuf !.F}?OR F` OhE"Z Նa;%FRCQzM aY*Jk#e]!ӊLJ^!JRHJ!5&#Y䢓bSA!LaǧX*v8c!Z%ر10s5!lhj߄{Jor SHi:#L-[ =a3`#G,4mTu7#-ߋϡP 2++:+# ,y3K}p5$$1;04u$a7\j3Iiᚩ)$4*ۦf#|S+8ai$S3E {Jx$Ɍvۚ?}Ie7$uvt# Ε ^ $3kx#w=aE9$x\!ENԌħ$JMfNtY-E%Sgjʲ!% hPFi 5%.C4"!^ 05內%TYVfAQP %~ jb:PpcR>%tm-bzn*%j]$PĹ鑕3%@f8 %4[krsEk%7anާ&Ti6^&ɠ>*t*yU@&'Ȇv6V5&IXJ6ύgOĀ&VK>H Ņ;rn!&VX%rnue#\&`:' }G"f&V*ǔP \&aCNCm]ޣ&q/.y<笲&wcf8*< 3oK&<۰A@:s6Ɠ<&ڠacBSiXE|'y<Q"Sc9'/G,DO&*h-Ex"'75GČ ]aPB f'&%ܾ3婺'JrThCQ'\ ]te8w8'dxXen'јVO44@<'j6lŴZP@9U(xʾdj&N(_%FL:5)(q_*`d凂ڝR[(I2oB6wdΥ(,h3G9o+3J(/ z/!W™C(UV^U9NQ41QHI(o&;İU)i(V>LUʖXb3B(%,"G(#vPB { sË(gsj }okZ؊u(}/ 6zRxS)_qJθU)np]ӑe6\ؚL)93OeUaX3)mW+M:k)wCƣb)Ƽ ]kOA,D)զgr=.,*GI۔~1*>!1wG$Ca*FTlEi#$%nH*襕š*O~I?|Cږ* .>s$$+ ns*3-gWj+?}&ό.+_;ʅ)EQ=Y+1f*EiW߶+T˛IeeRq}+}N` 6q-ׯLO+ȭA-S$u6{+3@46Rq,,v4[Qs T:T,,0Ά#};AI-#Ѕ Gc"-G-P2kz-%,)E9`EC-98D} BJ-J"m;<5-͎w~=)iTCؚ!-ߊleID?tn7- e>ua$$[gC-; ~kS|V.- =?A.'R7-hNg.&@;Ihk(cM0y.43>LgG&y{q.D#o=_C3.ltݹmƍ.~8/?/Ds|%/J} ;0ӭi/6r>?pi{?Ob/ ?]5ա|B62/S`h5OZI\i/P mm0 W9a0؊;~R_10$sK倜m+0pO1GT\po9W#0ʮa#΢*02~.`*oH˖2FKVcjY}3?ddO*n@|0(03mK_`Mplñj3Zt Y53nXBIx\D׉\t3lcäd}bTC3\ULV4B?3ȸ!h /3'CV3ܫLGM 1l 4@JIh(nks[4CfQtopA,>4eLI^O΅4n N*8H74r^Dh*_.<+j4yאtSYbNS;?u4ȅTUۖ@>Iײ4iۡ 18SA)"wL08a;-[Ez78E)i>3)"8ԿX=P$1_#ukK89 պ߉'vz9х]A+36l9>V[9=t9u[e9jm$9T:Fje^-*p9YtXNk<DP~y9f &)z.] Bsd9B#VԌc9qklVc9F=>0Y:(GF9uh3YF9եѡVdWCu::a&yOtE:%gۿ=ڵ!~:6j*SMC@PAb́:9E̺8/.pv:mNi JL-sK>:pm!l 6Tdu6 :r 韥8_J~+`C:}-s /evƈZ:xӆ ?TI?9 ~a:2N<9z O:X:%>˦4 طI?ZZo:^mt^͐5}a;'1]1;2tHj;)(; 'ld5>³`'u; WT7S =;5|ڷ@n5+Ș;hf ++1S*L;|?)I%-;@3'Ge;>N!>['ާ {|#;3׭t>;_є!+;_tyG/P^<P}%H'5(^g<{.ēaP89ԟ<'Yn3 `[ˊd<,ۇL 1j'<4)dMۻ9|<~7 D*؜, ~F~1=K=d"iSOL{ݮ=ԅG8rx=P=OZ?Yt=\$#2#{&=ESdvx@yf>) =ZWTKMs˅>n=pk#ذsMq@>]8Ԝ=|9>Cuis#q@E>d,tŰbKDr|? Fh2yU3s?1#ذt i!?8iNFdB?>OYLlVXX?N'*ry4>0 U?N-,6`V5Ao-X?P}ζ*X ;`&N?nΕabjT?b՝VeVf+?f ?@ˊ#6\t"2@[y JE0!@%$"_j𮻆q@,wػʩ8`q@0 mVOP1vҝn]`EshR??kEQEA[9^Æ05TEOnl̨Z*ER䍅0\kYw]dwEhPu:N#] IPEJ_jrhDZ@-VEuۆ@dME)7&2ɘ@F$7ngp9(BF tApqFk$F1i%,ZjޥmF|(N3 oHHtwF©^̠pxk^FD9Yu?HB6TF̊!^0 pF#E!B&5Xm)G`ĜrȎ0AG4q;bsjp0GPKLpYG/׸ef8G]%&7xT WGC576FHwhG nҠ拢_pOG q^^mK"QXې#O_tKeT@lʓKx iXF_K]Bn`K֒IK,4QPOuKzVāqj> K|JqE=ORnK1fq=Œg pyL3 k`&[4ŌD^o6L42rf/I7 eu1wL=SuPd9n Lxˉ`Fd|7Y)L}gˆme,v`MLE\sذ+\Ll]u8Õ,SۗLMVlN*~MBmo%Os"%z3MJ:7yூ64CM$MiҨ޽*P}3:M!cm[]1䊅M`Ik=1WLMN34E'?)N WG5sF/[S$Na}Z۸0v俥{0]NtG5<΀ S~N!n_clNۢ<}gƈNg|**_O'O ,K=¿"hOρ1|5~52SO)rכP0i x@OGݞi]WQ Qne$GOnAswz/ 8*3N#jOıg:{{XSO@m {H;O966O Me3*OAG3+VOLj K{ Oe}=SLj"PqsEyQRPTm_a_P6PhG^$jsdFn7x/\P~ a#[YP>ۼIe1%P1 #%В2 vP7i?g$FP=ZT@C P|y/q@g5wn0PyBﳔ43P*&%= Q~ JUqfQ/%뻷 re@6!h!SQS{O; Jjp-OERqQaމu+ 5|IUQnb:Kf&!t2qQFxrCO.]3?Q ?Õ_QHbMN]/gQ7;Ku[B"ڶRPɱxU3R#hNҋ,%$ZkېRA9_q< gN,i RD3[,ul}_ gyRg,w헀-셠V#RwT+>5r:R ̓EP#|YSJT1SANYbPLz9S [wd璳%'_ؙS8OڵR,SwD@=\gtTj*SS#>/Ź4OSuNsSiq9-13SRK^pNz} TNX._D{BruT=rVԂV" T@R]B,h<+d-T ғ$5 ,%Ӄ9$fUP|J98nw4B>UdUs^9Uk:ɥa4e U  8P kI5UX7aTz"kOfȓ-Uk+ e?UUU4T/JY͂BBU_*#(9#Vx jO OYI왽-XG>ր.GjXK$ב\K` 32p=LXZW՚5ubK_XyKLʹRR O:=B:ؗXy#>ݙ{XNVBWQ FxҳX`ÈqyjW>$XyJ {79<>-Wu$XN֤KtD(9XƂÿG@ #kXM P;R2Xe-a)SCXEM;7W}['WY;9$P#YNi]<'-qbJ03Y W߹'p9v^FY9=UH,M@IY\v r:m2Z`\?YTlZl#uz@#-Q~7nJ'Zƴ<:;E8uZ8$U;Q-p`BrYZ:*o41Bgرm [3X;@ŗU)jkg [39a?|;[(wX;#Bnz.>0[DWZv([{xԨY+nÈie\I!|i3jp f s\d!̍2%0-57bN\InEg1X \}C>B\c Ձx7\>;Fy3r?5T\7D/~X \"B dr۰t؈\삪µ&XݩЧA\_}T5]~#BM,_"]zV!ה4i7]S$٫Kw7Cz]2Gu7=}%]DXFWI޿+_]L.IE1<]P\Xmu4Ϧ)]W pҏIf`&]eһ(Y piY8]*:ؿkUS웑]$3ߝ<h:O])i2^ÆU%96]U's 3wN]ڋjÑ^x"yj]oɊ;U}:YTi7]R& wT^لhph2FAly^a+ ӃI龊c) Za4e^\wHV67y1f^ [&EPS^u8;#!Mޗ0M]B\^2 iѓ No[ _00Rq "?a_1]v Ŏ _I@OGs4R;G_m$R |K@rCP_Ӟlݠ8nPbڅ֟_:9KR-j=_ҹ``RD4'7@_UYxS9Wum_hzfiDPj`\|`U`1XOWWJ':e.XY{naZ?dHL-4%:1a֥Vy Nӑ,ea{ e0'8}SaC,5ۘw2=0/bل/(^@Q&+UbRיG)i۔bc,k\Ye"[9bAgʭy$^=$J2Wb\im*!n~Gb8%* :~t)]Q\8b%_ECq³c#QH#c0lpN(˄@:٭^cgVU߬7ǟ4ϵcn+T\MM'csKCwx ω!$c/?_8aO: Yc4NaJ` c>mu"Eϒ-kcoMAq_ŧcc1rwB).c}BʆEdH=d&ҸkvW^C d$9:JƎ*B[x d%nֆ1Izyd.^4B d)Dbćd6hOڟ}-e.@Id8_)F eg%Ad;A&aqOB:ӈd>AN3hI3>EdK`՟ a>d\kl>Ԛ G0dv.^6od=!dfYH׀dϼ '<-~!d*ۿPs/@GeJ#t!p}GzȆe(uLVe84,Jeq i6]3SV ez}aڛf7qv&wN;yf c&[;PҪe0f#f%X% f@ı=`DBZI+f}_Hm9l. fȆ# F<1f. 0d*fԲWÂ|?gS,*t\~ge0'hs\Y}gwH^meegp֟%30e$jkgΩ5b6{83տg^ԩƈ m8hc׎u0$@lh1LSL\1?hhMjovL|Uh[[_\zhbg\&GL7PThdi6W♰2 qshsO8S8bi|}hXDU0oDthy*!XVhL#7B/>i/ 2*QsY(iHpnḛf:i&o)}^2 ͆ki/V O8' Sqi;(U :$Wi?ն ;cke/:iK?? |/KqSCiz}M1ic ?ع)ūi0{]YHpatcf [ =juR؈*{OjOP@*͂jG9YgLw1Y|AKkE:(17ZkSr!(ͶSZBk-`+fv6gźsSk@Vܥu:`խ1QkCKɞj z#kp3;J#1TUL+k{SЦ_ `͔[6k| 1.|CkR$rk%K5sYDkܬL7SJ=jkܬ &VNRk',Ii#߅kzj+BHY߉2y\kAotl0>%SP 0kKʼn.l؎։ kH9liLkѯǫHXIl#ܽ^]PA/UfwlWHy^'3[F/ldJ|xm}Ep-g4MJB3,Fpyz>5MnFpك8"=n+q L\7h9qΗ9*X>x?B7ҝq=B }`8ZEމqRC3p?eUBګc}qV !Zx!Sqw:pM546ԟq~>,gіMm8qЗO&kx=wVqQ;cZmu,-R1AuJdYlBC=`|noOvndqw8Bvo oik O)%aXuvwaIq٢3 >vBv*QO SNv?z|Y'BvYb 2-1F+|/vQC4(5E/RFWy'vɋ*e%N'f[evG&LbJ<+ 8yv=h\^lv42 I,!Aش w1t\j"`4!H{w6άd6wހEw?[e3MtlAsDaBwH?nzz* 7b3wsF/ 'ɫmwb!$kL΄ewr%D0^A-wgwo6bHKYw/Uc v^iaQY~w0U̚ɟo[+x*f-ClrtsBJx@]F@rp)~ xCw*f Еb]xGOıՙ~B곣xg$ 2__TNu`pxib ;܈{#x9C:GaX›x)_{jb^8ߤҔxFYyb)V=>/UxϿ o!fB!xɱM*vn\ǬRo0x\&`|(_5'7Ely$:>CO&=oy95Hi1V {gA~y@`?2MN&NT_yCo-[1mSyI!N1JA6nsɢPFyn| ߌ%-דy~UDdX| bcyGf/4pRPywD{X7K)qyV$8Q 0zuoz %p1 2Ez?FF?xGz/ !ӀvqVH Wcz;o~AY+oPUGRzFz1C;B'чhzMsgM˔LlbbxnIz^Nm-e>_zi&XckFgz{~ՀY̬ӛ[sz܌#5%Bشp zŪSUANfiazE#~Kڊ yzH8*RaO3z-<ο~s1y+{-,!ɐcK]2{W%蕡<Ģ9Hu"{YKYblʻ{=7>)\d>^Ts}{X2Wh2G/„{뚿` !Lע0u |o]Ct% }0|MJJZ6Q=4-|.*S't<(|6>F:wG+E|q<i EJ.u |rMɎxM`-;|t )m{d}@2%6ԑ>D{C }T/i~=~ |ʱ_8i~rG; P؜~?]D莑6s~>7%WAQ ~BUZ.ۮ~iQuNK-i<,~! rI o{X?vAڑ@[rh݃BUZN ?%㩊O xs>y\ˆ=`C۝,(&1}/GI q}ei\`薖#3:u !YgEM% ݷ׀ kh=D0kMfsDArŀsHiqMȀ7+PF9k]=-N.* |&ϞUr" ӛ)UX=; [=@r㝢OR; F2W̰ MDŹrn'I@޷cہ$5-F|-n=76[V~DY#xZdzw osr6m%3J'hʩ f&V-C^o0^3Ђ%G_:-fxp^^J \p;{2ݣ|hZ]7 [ٴE1>.6w M҇Nis-)?o)4|y׿'.F,̓OͿW dENˍZlNB0 rWlkb n2CYM9׶n|yU6#@RV⸃\*󐛨\n0E(<#Zs J*j 'Ikְ6]=Kfce‹s]g| BфPlawN:ޡR΄Zȴ(0pĶF?~6wi+ "j'^pU`\y~ l5xGK>| +Mo?';Ԕֆ[ K[7 1>ޞ0VMw$lz~YEP)*~lKJCL$y¨KBe%5 $$KMӅVNPw+ɀwA-īخ&V=ER,Iͺh9k/sEvxóA8ٮL9…OV'M+GA-þ*({N.;,9IkLm՝h;*n= $<_ڸ(3U9~ņd6Ugz/3VLI8lmy$Bh*+G4Jzf^/}DTh֝ N(5 hχr/2z^?6e%CPؕK?ˇ9zu((RɿktQ*si:w s=%˪e/kD:Vz&ɇdɌ<|x/ƏJ& 0uaC@?3eň;hϴ jz=?هhb?|%¨V?(>Ow;0܋7(iAB$^tӢ?a9S]vqp-o_,1WR-7i~}c7XdUxn}x)4bdnRpN%Vy|^^Ѝ$u_{B ,v맱oeWKlezD@).a~ (w7n<T ߌJ$z֔>ܧy7Ōw2ڎ%̓5ؘ=3z^&Gw#w;UXwFXv HWSu A*TVNdË^GܖDfDeswQ%vV֌bgZZA{;dO]=SyY[l⡞$_6 &7ZP#pӄ=erEr?{]u%`Cw@ys;l;,i.vy'zj{O 8Ei L%~~ ! 93+vE7c5s|:6/tZfJ%M&w5LgBR~B)0lE؇딺ömxݿŔܶ@+tE ތg۪xU0i$#O)A&0fTs-s屁שX?Ot?mI'gݜO$z;|Bz| 4zomy4YWw=Y =YJfU|:(ʺvGy; ړICg`"~ @?;<[Ni0^^^%3)wAmì%gӑj=@(BϏ{Uuo"QC1gKDU7Ksʑws6ғ#x!^Ӝ? hc>˲.LȲ$<qa,>+]9nT׋o&=m_#j|I0p/6) [FX_#n'e* >xouLۧpXJe޿+?KCG (ɽmd Sbeb˼6a )# c7$˒[ -J?^4>Vf.&pX}AI;A #uWJ2翭}R15w" ȏۈϽ)&\iPj+iZޙF%.w}&8Proa|U}I Ý U . &FԱ6qzT;"utuΓ8>0H?0“ y#N7-oV F0r$u*, ] ,%$o;ܵAn$%xOUx?O%활3cCLД\'~~'H| YPam}زrKBjq^i1Pj.8A}'0(Pɇ/Wi-IsOfb}^ licp&XX:-,rф~ZC-ITG"_9g#: lat|`X4 j:F^|:f| s6Nlub3PGۖDw:I!ÜH́\E>9  ȡ0'g.?"A#P4 (ZF״Vē;$I !T>EK"P|-c-]1wAXrId|U({] Xjռ.pZGlfb# p)B9a!B>(mdx[3\ȉUf?oJ0K@d1*6SѪIo~n]%>ۄ$M[.e?z]I ~Kd^`d.Je.oWKWɪQxqҘ/m 6Rĺ9b0-EM^I^{'axb(&rdN͉o  +r͘ł!yZ\cXg%i#r4ԁ?!Ej؆nTdXQgJ咛1+ڟ2rZp{1Wn}{W@8uPdt|*ܙ1ZU4 M"jQ8 )%G'[XD;蓽'@ +{JB5c5)Q 'c(~TWB5 6( TK6B`PἋ&'g#`/JXa@$ʒ.gꇐnMfXŧAz-atc3ODS3֊txchMԏ,sѨΝf FA8ZG4H-3dNRCFL'ayy`d:/볁Κ|vլ%Ee_-x0gA9  7 C%䲲ӊ,:f$lD\XDŚ–4s54\:@2fP煃-2,>*4n3 ,;s:?R^TF1`6KS؉/<Y$& ::/Μ,-c`Mf1L@%jg )$Qڂ|Wqݜ~@9r)9%±)h sm+?U3 AǵT:xZJ+'ƴF}3"/A+Ra2Xկ&I(t^snKuR^jhi߹.$o8ږC*]|9B)H(penLP'Sg8˜T7QO&=#:f8~GA,ҞB!Ӵ٘!ȳ T%(#gRq'\@'O+ɘHVeyކDX=s 8;] 9TmZIPuqߞ S,.ㄞi'S>Â"ᒂ5N]Ax(L(8z`flڹٞG9F~ zo6oȋyt1QZ$+қK)ztK閸C;6-?蘸h]2hԖ9DVQþs:COJrLZ'g#nnQyM~q*~6:ed_Q%kH2iQ9}i}V)ܱg쎁0{+_Fa@*[@[voor~Q^ʧs /@Ƨ1-յ6JpyWVlɻ6Uԣ̛%(aG׸ Ip)s2BЌ?X0.hEl]!y],I<]UhU D-O,3)ءj/=hS5޼DcY5!3gCq *Y7a=|Ҡ?ټ DU .Π[φmKnoX69Yn}):Sq*p"P̩lX9/CyI ~Joh8fyjAYEdlbPeg^jsA( 8fPE6k>2tf!堛ᢖ`FܞHPy581E3ѠR|cujFceVۢtHp:41J) eրhf$b ǚ2Z: 7;߽fv%?dP%[8;"\s{.HrBYIζp>ܣtw=56#]Z>/ 0(& u9 Ic5TuGvycr|٤ J;5VF;/1uQV7Y&hLu/,̅^'!4e#~0 g.!Wc/2(K?>*#8n6{)Zŗ?#O|i))#wLǤrze"+ZNI̟*|"39nAKR7+3&g_77lKlg:]P/MsƄCN[K#3ryE>NF^%hj|>u_u Gd0[l;)o%?qrzܫZXb~wʉko@Kw ͺԳ/:iHOp*X M3AujZmWx*׼I"4 ckoOu $7eVy<-9؉jp^KP (LK빫a`޶Kd.T#p䘌sNh 3T[va2v"?C1u#I 0/m 5MjUQ?;D O,59 ]vZ5Zu~BU7ӱ~O',$i&I{jK\1tY6;3aБf+jOZb 4}-z`O g?éMEqC)V&WY F &(7>"é6όJ*gwթamhl/u82@[P2pZXW9jg~ !D>xe+]E2#(ӽLA/&#z`&3H6꒪864 (9^F_Bjy,RY(vGjUʲš 74^`uTڪ Sêj,Ȫr Rlmb2jRT \b`>6 ѲGw!AtWti=U$ Q$633CdzqЛcYXe@2ʕ]OI-LL jAU&Ewݾm)h~^ (<>janݟm&lvX inYuns$uުвtE_9s&8Ts`ެk4AłEoCqY#3PJx8xu݊ Κެt}[v^ U˃J} N'Uh27Ajt)sQQǭHo~Q^n΃q۬ܽڢMo)>t 1LTezr=Xw}kgf, %Cose/#c)wEeG `cIbLή&|>G 3)xk}||8tLԙ͜%_m2OS@sgOvGBIwxz}4'&ேa@دRB+nF=xY#C$篟lQ~c.'⯵$wәm6Q࿙7 lIm3EJ%| 7V#Mӆ7623F' Bv}e$עSgJP|iI$\y]^OѩE|l[d)⹊\ޥ.}zS X7h}8uʵú bװsm뎼WaXEhJ}>Ldp:;ϝȫyJ.ZְСT9ӻra vuW;6^98QdZxw&:PKR(;iAA=ٌ%VYB4 d@{(CLH SgڗHlwd^`:j~:&a*:~}pS>;}Y""h|[~w<]} A汛zS@_xRn@0bO{H f/Hȱ:\Vz g-#ە冕? UZ?d c:Aii'WϲoPgk6C˭c'0{-T :"f8~O.׆Xe>Ijaa˜ʳe<@we*ogWbM³V5PhA.7YMDzsR5IDh9۰~Q'pٲIϷˇNͨ<3LܜCz c7﮸\ܗiuIЯd6hdx?;|/g>kj^Y!@*O+{1CGس!B8m\'|uMS4λN- ƞTbgW9b4 ҳ8޿ #Lq’i \ Y@\\љçF@/A@ ;K<>mѠ`X 0 }{5: L)8\PG糴5vbϔmT}#Ei(ԭƕ/ZDYiӶɦo={*G&{Y5ҕzߙu>-;pjv|NZn` 7a{8]lIM`yյP,#_+NXBރӜ_0കd!lzfZh24D]WYUu ͽ"8wq:;(qC tw@,rL)̵OyV,q 4oQ( =xCk+zIԭϵ\ iTYXb\zK~2PIaUL)Pz6H0`Y[C<i@"e|fgp͞VE6C&AAQT5p>qMbzLo $r&n۠(k B|qfd=iڿͽkL5lɬbٖ\fwTX+GmYlY|#3nWR2+LM u>I䉕"Pz+:ny ;ոzzY9M)&#gzJ۸+Q $B& R\8lh+aC~o  +[;W7`0?c!i>Z[P Z8s>VGkHt);ț)n]6DYFgrE^#~"p刹(X&\#_r%s]UlV"ʜqr;1 c2)m5?nFG2~l;0YbGΆp/]08di aqGuQGy=nNH ȱ^鄔;\ Xo; Bjɠ`aLxMB'Z~t¿'';_4Nz?Vyw圁$9'2xc+9yf 1]*AU+\Aʛ=So`h-u:T٨4^zG!5dtˈ+#^YBv0=B]7o( M6'.6ʦ; hЊi?UpOcew^EM>@W)ș[[\9;Ax5 U}z rOCSuD2,md !p`d"K䔈dG({1zSH-St[FTduv~I|VGxSOCy@K[}Wj'{#L ӫQ H&e;JL_QZJr,ge?w`\[p u(-#ϵ:OXؽhZz;2˽2P~ Eox%jor7 uDbŅK Sih=LhnZ p`{6&xrIGrP GV%&{i7[%j6gsؖu= ? )\֮-W3xpྂY$FGxjlRxzsYAUĝPA$n+F5v|BŪ+%lS>"#E<%vп*cc\z Q Fh]Ɲ -oCLl6ُRUs)*1tڶw *#}A4:&zޘU%xS׿t0Tƹy6ƚrF}0XXx|"wEyŬ(V(xW7.76p')~Ӫ:Z"96?vFZK)g3` g?QA9TT86K r:R?{pCwv.h5aۥ8I͟{&"c'd@+'c܉jFes *(Hz2W;ha^'+S-%B|n|)@Ƶ#R Eoz83FpT9oʶ9xPYh0^/8q9;Zct.V'ZM;$'~C 1V4 n:z.oNr2>"n' 8涉'[c&gR*}7<=h$sЍ2-S>@3~55`EMy̶.L `| l¸q;i8[V". KFϥ>|GC F YkP y91*YX12xNU&bFÐ ߭zt b,^Ûs=9aJ4mw-6~g^`8|N%=kupeY9 ;ЌN榣Aͬ L+'h;tβo'`TFݧO5Rj( T(hL&NB^b 9Gaw r\`o.Q-**J{,6S;('6: >L5)aV>N2m.CMrNs,CpMv^yCJ.YY2U+zRKiըX 54UeHB#,4zRb ROiq!7`nkޢG(EӼC5HM`N͘< R2O&qlh,͂ 囶|lHƪ\;!5X")T[U\GuLPy5M ⌴֛Nڧd ^?ƅlv&!s9X6pc7O_T+ST`eٻܠDŽ̓*"QْuǓ=;}ZX%Rt~$Ncu:<-ֆ "t~30aY{"x_+ )MjGwr'nhSe \Z=|5pƨ)q*lyI ZȮ TxxVkZ^f6ܑ9z?2 ukkFY{k u{~$&rEs :I9ʎN - M'k"`8mɦU{$Z#Quɷߙ8m @k> ba=KԮ[:f!tЪ6ŤE*W6F8 P-M9!kۥU~=A7p+[E8$tN Uʩjn;H+Rˏʮ3 5COqmq6ʹslȨ{WZG\ʻ|15֌LiEQ;م+|"Ʊ{pΦeb⭚& Qƛ(߹ER(SwG Wڵ>$ƞ!WLGꘅџ_+bopoѐJ1ԃ7uBS:4ys{kyp9VbDѼ\ҌˏO}6]GsL)`JB|iJOu}l^ֱ6ݓLeo=y&qs&%e Sk^>qg0`PHы̆&[\4`V?|4I.̚W<ͮhBVq[X̻D2] i"O>.h/͛l#숦YXoԀt7]p̊+I)I5nۚ_C2!A0?4$5/١as`މրrxHZSwdz @[;^LQ)~!"ҙϰq`}*;# MV#iV$Ɛ9UW~&i? 7pq́,zz|͚gs]g4kvz͹)39"J&va-Q6͹̆2sI$G; '֗kB -X6KGeηU1\әJ!>ιVxͳ -Hc 6pr OzI1w`@G#o֯&ܑѮbO C,1>J"Sc<&tG@O$I"d%F^\?Y*YېV#tj7+'e^ږ` ODG~1UsNU7a8C~Z袋=p}\[l ix/`#H5}ϋ)g||*ŲϹ}a?n/(@hzHIr:Z;x<.$7%\/dF$ mKw_4cQ2J#Z1I'Jx@/[iCyj,>iwy҉|Ш̤W`Ҩ*`& ~à|uJxӍf/$f"^ Ӝk#Ƌ6 &&iQ~ӤG[9q~OĜeVҚ)"!Ҳ|GmY:G W@:g71XkUtbN0m[kIG!lڡԈ9Pm "nwԯI%C BKcwʸM1y-"! L[ 0P;.R:JuEq2ٍV_ښOt'b8EcwG@8&PT )ۖ!`p cL@_#Ձ;u#; Zh  YՃ $ VS 9%՚csy1bWD >D5_ձ0Z*"‰(uiQ0a~aPUEB;j[x lkÌh(LuDSu-#̰VO}ËeǏyL[xfVE$C('/q^0DT9au_L>咆Ur9%]d .da5AOEE׈R`q;[^ɕY/׌u(RT׹8(%<8:6.ބ|jԈ߾EXJg'5g?^`YrP+lRGqh?Յ9ȕ0 ~BH!w= ZS֍Xt1Dttxwݛ؁u*I˕Jйؠ #G6i~Ӕfxء4ؾ 6l %E:l/XO Pezk<)# %Q˃;%_W߁^ߥSLOQ2 Jꁀ^_x-m6XPz Wrߛ*r15 %?jK {񐅐*3-Zcj 4*n띬G"h0Nba@uu.,m -y8XنzZ-¥&8jV?9ٔ b!*2qLvшٔKo dO\jJ:!Q7ٳ7bAP84p+;.dat0_$$Quޕj tTNrG񟨃CFE Uvy+kJNJF>]7M Z|7ڲ bRQnXO}P5bڟ;$j *:=uk%7؀Yq+ ,@Τa9pO9 &~{L4H' 4% VB=4Eۙ j@Y1"۞1Z:CrKdmH }įt8q͡$זJ/@yVNm\Q,#u]^t I{T {iQPN)2H#O[U2/:X.vmu]W|. Wgܒrpˍ6ܠyCЗ` `?Ǻ3[bXw7 l`1iLH%NsB|~=z|l<$]g)$6A!vat݄-Jm;LWK݈(COX=݊;B` n?aMݥc */` rLݧ& mޮqݨӵJWq=d먳ɫA6,2œ(ruח!dPv9נ! RYX _єe/FS<\X|ny5pz>V³DePJi Ј(GGeFl R7 !Cٟu:{0W="ӷ-EkSlߕKA;ى%65i?aav7DCgKKwL<,&z:)7 L~>%ߛ7t2\  #P;֯߾}Y75P"HSBtѓ` JՊ(.;2#?)Xkm[n@fTAmѢU~fǺN#6|pEgyV}(|yϗp!$B:cZ'c9eE-Ƴ$e,]9ɺ814y8eʻ+YhosQKWr%XY:58qLh\ჾ۞;i0ݧG ~+*y( (c$9a.l69l,[e9 "Zؿ R7>)lpC$ctXk;v݋`Te &z<ޤMF?ѰfR79lB\⍌c~le:TU4sV}8ޕ7Q5CQ&$uSl⣴v52U/R?Te(JÞ}iÖ/GU>p]y_ 1OJRd-3#k4统r/!i;m=$Pf2455.يf׌ҰTUg.J{:|h`U+'PQP@VN A x6v XҲT%XQx9>R%y1KM) a{_X3t]Y י\**hd.«Me*E>n.{-bM1K[Kz}AԸThtVyxo;)/s`ԹuxQ%՚P>5%,4Y@eXC֪N%^)p_-:b!:= ^IK0^H䝮cmeN[ o`umRjJB;9W)TvOP)O㞣ߕO\J'nѠѿ*FоXpܐ?xSxtClG1]x" QLKc9q7渤;.f{zΘ]`')2[=ZPdY}Y `9>C,ĩp# s<k@gcA0 TUMtMzN֓BV i@\. zMB9E4N9ޱ!fHXE"s̝_Ki.FCڄ6tz ʍ!D?ݤ˝y3}p=RV1 {o=sXKd)v4 ~_^HR뱼9cipT(OD8˲ƹAJcFEVlU}5),7ziX;j3HztDO5U]Yll) ʼ0z^@'\dnwc!Bͽ$J>0UU Vi^_q^ _Bt`#Z֊'ѧݝ_-J!u6 q/UHAlh@k5,n# uhhs;۱YrۿpD/E uigiq #<鐋jqdWtHD K djjJWcN0qSU-] \iJ,o`<ߋ &;AX|v?تj7qџv2rr{KhSHVl>b7-pVofRԙ0Kˈi>ZKGB&p 3`MI3^+xZNvjP3t7: ꓉V .xU9#x29ɉ@- /R& &壢yvpv3[`H͹&5`p|K3M'@ J74hdnׁha*<@JGdp>t'Y#]X{0\VVN4^!qA`nB8nGvЁC^KwXz]{lF1BTy>_h1 :f.fX ;=re_%Uyzܑp}pyYcQDHk`WcU4@mW dW`_8ҫQG*4\ 4-s-rᠱ{Ba>^.bzn`}#E90K/B^ nU# Ëʋ.[3y+0hw=C=8< $4fO5l_)4\S )?3)ձjAhf:^zUCahC1YYjRe#gXX)_u^\{UnS-U\*Vt72 ׸) J`:=zy=t "i|xd:]c #7 I,C.$1ZlDyqS*i Xx5oy[2u}cCYGKvl%8**&:'b 9F xǡPXX r‘qp,q>`@9Mr9iyxD?Bc-pYK1iP3$4i56p h3l.'kEej\|@iSrOf[IeSﴼZoM?A=k ?vO8ZO7M7 ~Uz?I9BC֞Wo>X"&jWEWaM&,Ts})8v=AqA"##wO^(`yu#0#^\FP0 - {:TP"6`S}tӝ>4`\ xu[n]S䏗6-y՘.96C(pH88ߥoL]vV婎T6~,9hKfA,*6`4;IrI9&[.Nwl N}y% +>LkjϪ̱4IJ®bTSR.hJ:4MBf-M;,Q H羖o@|+-F67gtbqt,u@LzReJٻ49|g3܆dMH'ƀ2.܏ȕE,VJ ~Fu}ճ(H%0 עFC|'{0˝DΠkWMn PھaƖ݇e=nv^|'iOЈQ†A#2OcV)aS5rL"i-l:d,]c$*\wYga^JZ[fQK_1{:oo/?o(J[_*3C6*i}8@;M)ï1 n/*:T94vOfddsE{b\YU}}bi}5~s]uF}]/k1u_y,mYVD 7\2~E0OtqZݟ*~Lp9BCR>K?z3o_Nm甿4mbgNs|[0 ;A|Rvq԰H,tUN8ؖ!mF ijPq"Ё/Z/4,v4xͣSӢ 7k\5*LI4`sfh3g8NX|`,1h\ep?d wޓ9?|yv.ԋ  :\$IC6dkO\ bCsj2iveZnJ `XWzG3t%^JWu0MM:([1P¯ XOV(FM߀mhuG"gahr,1\o u^ݠ[ >#~IȤPQ"q9tgI80dvqpn`Q"z6ejK9^:K&P\ xys!VVqu i:ם`KeOӒBPIC[Zw\_";\^MfUhbU^Va:Ѹ_E*"_t`h+%3 /tk19 8>ݴ%$ xHie]D[]8LJ\It$6"1J͊!\b>h ^n;V֮+Eŝ\[R͗l"N4*_jnE<^"ĺ&" CžA{Wxͥtx; 8%G"] *-(jd*E1ޞb`܃P9k !%+yRktѤ?onfW/k,$)J(P<r1'z1y,aFW(Ll^"אm7(DJ?&A~{`45S #yÞ2y$c)+i 7K`0~*{SA ~C>b;Qx#t{?[l͓lT!hSh*V n=Z;Z|H4]d-翺Rrf.>!QD2.Ҝu8eQ'NZrw94~71X[:td^ǺvK`4Awjk~r'tNdzde+v=A{VU!v+*)Jk)Jk^8tkkvb`J'Kh1 VI'X#OK.~dR@1TnRL[%j&Ǟ^; X!FH7*\ ĺd2=)JK݈<Y ϣx*`/ʠP|)rRn|;,{6wdYuƖZd8d18cNTSQ%P9> "+F:Pxw 3A~8u?l0n8xH+ UgbF\WP߇ohZwaT(W2hC+HZd`WN!SxU)TImEsFZ̈́& i4Q's}|w'jJ?'+à&A#x|OD5GSzlQ #'y8 -b)Jkbg~6Y.CiQoJԟ]SLJ *MK= lCX`Inwef@. zerXkw}Lc .j]M,!Mzܧ]V_ZAҾnv?qHc=8F Tf4>-˜Z6pl`O :nl<䭡T8T'~y̨4نl2/-z\ fylx4o+ݸ3Prwt%6rGD$tRpRLN)7E!&x^Z+a,CA!̈,RA4x*UBU[s&Xv=d-Wpϥ2@qlجd\QK@*^'Y,ۚX( \=]O'?⑷: T!ziwTzԮQjch >ξr/A6%Vs Dny_IjlA&<^gӄ+==5/q [  yQ%z ɼ jՊ^"grStF&T鞖5gdjY/ۘWW `vUי"=X4l]U2ðe@>mm3P%ד*A4 XFI\+ Exj^hkģ*J m8^"Nf2Y0Ed)Lo+5Fλ[q(t*Hd`nDM"@YV,OOJ v`1/!輦q Ulq QQWau 53[E QˤE ɘ2Y=E{5꿗җ>_Wp⏰Eؒ5Teo,DJlTM.}? 6I^6RDz ;[es3]ڣqA^Y[8W-0wKq9kGkNgm|'s¶BXhiL-hi|))3mJ5{ZyLK @e!S_[%oReW6Pi64 QToU\lUaW5 ȝAmiO_q jhWU<:`QPS߼>iLp{\Lj$A0ZɏJ:w̚jm|T|?Kſ7jـH\Kt}{e5?A+w5!¼ϔfRA6'TLէH?s< 8W%7`QmVL'c $hAz59 KImkӢd'IQNMB`B&1x 04hK| z~ݩۧ^Q '6PsuR6Y (/vwn$ճz+[R&Ӹ ZvG7#zѵ heC:[R7lZn[QJ3q\1F }\j[WgJ>jqL~ `pC9T^ 9- O>'rͽз&Nr0SR;,,j(>@Oh!/I 'a1wRr`P|GgË1i9Yaέ f#,<` ) n\U.Un $P"o2FeEA׿^x} C,1v#ć~)g ZrY cD27").M}$Eu#sN+0WbMku+1RU=hrHY; 癹8|e(цاL9dוI7+|?VΒMSy f.Vu,fOR ]4Zu\a-uqϻHœi`ͬ(͵/>OhUƠruI6;Mr?.()JkmugZn[<; :8|R[a:"(#q_O|':tq@$ybm\.!uO57DŽwc-34\ⴟNa꽨WJ}ܦx;G^U msWrqru&eRPCž>%0W:\ 4wzo4#~B\ WHJ֖!]8Xn\%~^匱BQǟ[$`<@T;Xus ޿vKamKgpiFx#$I.u>+XeV$1JHTE ߉]YŒOoafѧ-#ce׆6QBjnHNJza#MR8l>tZgJ/^i'?w^[(V&|k'@co8O!MMO!  čn3طtJ])HSo$[OʦNT1NgAdznlMwAVCž=mCž-Dyw$ʽwIŬPJi]?o$l y|ׅ;~B::|\u^S5ڤGZGcy6KSE$/q%OBTxw&m<xB*{a}F>4֝O9,R,zb9贻GXCPKafO11Z:ZN! -h5MDEfv2_KD6 6l#*&r5k"j@kfJ1(haLX_uwV:'C h@^zjSŞIe4 T!3ՀOc*J!h UA.tԐzL؉ԹPCž,jk8!! 1Ή_$ ngJmOh%$К 7B:NfovKlU&:YYqM hb#.s,t.(XVL%+AQ2HbC/`"}. 偙%[$7TLM}*eaqB?ӶٓbEs?dYsM93#r!^?fKV`wbH|,t9ALeI[ůz:6B"ʼnG{֧Nsq HCžbde D`\X$h kw;s3^سCžb[\<:ឌ)Jk t-bn7"5zo}9V!(S)f:^",슾^"eiӉwGbz6زτ=<%GEۥUKJNDfjѕ@ vF(.KVFo K\*Oc-l3BDN[&B".vv(5erh0/%D#Q3N(-#dPQg~r}| *?ú[HqiaM:N-G->qc֫^"szhR̗m5U_[74Y%MF~ SqAT"z|osދ  g0YfKi])^"gz ߩZ9PT!<G!`Ղ<վO;V^Rwc7LWT-rZafŸa79\2@sD2<Mh`Q>eANÄ,V8S8`ި%1dd޻H qv`#H + 9-HX4 u8["I~XuS4 f %xSh"jN iFyW^ǩ:nb&p1BYFGBvS17d =ʈ9}G}T_^(wȞS>8<{qYGna[q? (!oCyqF#9A_V$!ɩ ~^0 =ҥe]%[Kb`bf.YXu\[iS?WmXj2\nL(gxD]0%F DC k|O7SZ2-Lb )۔q+\.xwrlϲ{'Hw O蝪`XYOfdhⰆ'Ky_8cj-W\}AU*ӕ-竴=7"W' \ .*yY[:Sf6yAiI5Unh)p^  HJ;+H"?@aZu,Cžgc49t!޹>kLJxyQlj7UeA*Y!!֩ޔ)IvghG]N01 kv- 29CWkR'LXsU'*^VNJ+xjU5eء?s7#rQX lPM`uԽTHdo$"1Gt, ߤ̂' _"lpCWlsŀiY'̧c( d{ ,K-,}t 0wbgQl`%wM5*D=&ɿv-_XH&݂rʼnjb`gMb¯h'qQ{V:, d~-Q}:Usxcvjc5)F+ ɡYW.g r -.FA#ūFg bGw1ձa5&{x &+uaXt1dM6?ҫ*=_3cfnAQ)eYSu6+8!=*ۿ9Aܽ,*Od N"k(/6}~ŧeư !=7[ 4¼̲Q&.DraL B h:>~e^4}٘NGus+k݅8ΈU'8c+%U1X@ٍ#fn zHIgAw͢^AhMW4.|=? aP$]'Ƒ\[7g` =FSyCžxRPtnn'' +,2IrfGfOi/>SCžg;c~lS,WcJ^"ׄ1sK rP*F(r]` –9@ hGs=Zme銕7Y+ |}Mt3Ot{BVLW9 ]fz/l1Մ9^"\;ojU1*rȘ ƧڎN͓QhtKJ"Boݭi&y#cGaIZK|Y&߱:1#h^N^/x#44\C̪ 3_}Kua1V0\Y}_Wjx qXJǼZqY I0!Pa: Z(s3tyWKVw|s|&':Cžd(}l5D}]g1RR6lj0^"/)ncQUԺ d)Յ,ޗrr@}$=G族~hEkf;Jse%Nw(ߎ_TSyUYr aeBv89~`ا9ց8]X~f 0u P}3%^{q/ B_N syc N 5*G# o I<Ð?oӉ6ZT" !d6k h [ b8  YO JK/4 Zs I =c(9 wH 9 2%NErO 4U L 1Ae* %,T X+&IS XQo 8 yq- \ |%D{ -F+$Pq} M' Jnx L @J™`2 J xl (9]ȸC/ 7aJbCuG Nx ;rX1AB ]d" NÒ _m qqo x 7;ɅDD P0 .l ;jucuyrORܤ Bs p}ASarCb ZfΈ ]  N \ !ի ta5N n^ (wh% ,BA7 D\l 6l> Y R P iS  [{ hg= =  s[$(A'X ͗_,h=@o% {UBgv8Vk" AC ArU v q[ )wE 0} ֋ 1l` m IC w. v"1lHd0 ?0 ! e rw 4  F[E RAH|QV voX C k _mdUBs%{LsG Ve> T 1W^x1d0+q 06! { UlK` urg0# A q q $ M.TYPp< QjO F9Aqc H|z U8[k8u2adm  t  o?A >V[Ʌb  |c# K_cL  P U-~rmm ZG7X  Jl3[Am J y!!]u Dx 64 ^, 6l M \ 7. i7:W`7߱pG rbx pPb Rnx [  iwEn\[Hq ~z~ .XQ tgi  Gh/ @ %g 9 5@yDbiR Z [To 1 < s  @Lx,Ts N6ٲ ѭ L^ 2* { \ MD (% |l qY]p eVwH /01 ( { <$  jVfa(/ ?FaN(B CFmw['ggo6Gc t# ]}") g9Rt TW Z R5#" ae ~(!b-S1UD?1$ m;Q<5YoB]/fnz B/XF_IlI/" !B+ JyaUqi w b` h+ ZBW\kN w9 ) n Aw ,;nM: }v] @E86X Ww 7K>R {Z*s4'6 L0:soW H y Z Qv tY;C &3@%pAryp\%Ie]dہ1 ;3S `+>,~i \j maKOon\ S I  }p T?| UA?B0_} M  ]p-v \c x t- l72na` 3&DvDO %?.=4XF#  $z[ } m xTxhSz [3a=O K+ @z}e P! rn ob( W Q<ly"5i V! u#Z j5V H bC> ~R %A¬ _.gj'I  Ci6 |SL" A3 GN CG ns '27 K1}U[mCrG N y, $ !_fV( zHC Q>n9KccjM e E NB wCYOM.J  z$kCȏ;&  Xn} <7yQ6p( Uq$k: |}HxY0alsyk [Q6 RJo^&ǥ[8=* P"Wu Mr [3Y8Q= 6h ^5 hj# mSua r=D kE e iaAhɗ +%`:h S \ Zqc7˧6 K f\( B>P)yK 0ma3 l g.|c # ['K YJ {! U ~ X]W % K ]0O]'3 d ¯!D q 5 Ye _- ަ -73myis'x 3 kaN u} M B 0[D( vz^C,n6 H q-q vN( ' s9 jP6V S ODf s k  1l*RqVٌbnsA0 S* ~mk } zcDL]SE DNe5 UY 0V^!<IS VM&nL  x $ ce -/O~|$ L pji 0/ lB%bi. (\*Dwjn n)'m ~Vvf HX 0QP x nA) D"Xi .!F |V V Waa^ Rj XWt9 rG % P\,} {0 8 vWe2 *e@ -u X| CF s б`:\ 1D' cZGE  yDD-lq`$ ]CQl`q'&3tu| 0T W4T J 'z  Z No 1"o$sf @`e 5o1 uH @`~ Q 9q+"Q 9ɼ 'F(`rRlw-=Bm}eQo. Y%^\9mpJDU _/!C] mK I6Dav z*|`F^ 0tt 7   Uoe; m|o u6Ol wTbJAi<J %sdz f{kEk ! ߯ T) o7e h ' }A|&Cpt#  bI(bÒyPzKb8 M ~ BHS~ k DHoУ1P:^CnQ_D3L]/ ;  6m) MY P|I\ z5ɛsin5% b  }Uv [ CO Do I}m/4G  }& t e+}Pzt3 m oCTE=0 8e + iE( {  T  WIe^ t#"f}0 Ca jm5#lAk Dn@5n iЮ . IdD ^Jr Hl 'R-l  QtD:B22I؆x(Dne\ 6. O| , sK c9FO K~ 7M.4CTȠ D6 y/ Y )ka2lC v} " d& \5)  \d 3,d;G b k OG u ~* r1.A_Ra %BǼ'dk  E.kb?{6 `WVpBdA c GB @ Q Tg7+1 E]s -Z kU4 ФX$f q+BGo4"j9Q[O } J Ss O )+ ߙm}:nu  c7 Z z Q.ȱ9Kh2[{KE3I%Y P !l'YU SWl_&ؕvO@z !AG@D rD&dְ7 O!ݸ+p pj s7/t+GTXM? :% _ X V؞  pR -n e ,Q 3S;UM q aMs61 "giG ^ٽ ~9 )  Pr3NSa. ޏpb c+ "O 1y@v WSzaX ;  Rw# < %  }Bz=!mT| HVR, ]Z3~f 6Y}n72^ Y8>,=; uR' ONz/ 3< `CQ d  pq _p 'l2 fUk)Z[[8UP> j p L M wZ7(aIf"DaR> ]C5N`Bj[C l$x OT  NlInv![ F!c8r@~x;G/u [ ;I  xs  !0[Ua` Tr5TTJ .G\~Xs} zD`tftp-hpa/.git/objects/pack/pack-35bc9db6549ea8544a0b909bbe2e475cc67e01bd.pack0000444000000000000000000240337013573460710022272 0ustar PACKјxj!D^\uB)wJ] FO0ޘLpI;&B^0ZphfJdڣxPa xT'kgD!dC]Qk?jZrm u2:MGb/W|.Ɛ2~̄\xKJ1DYE揄ΧADP@wm%X:S5w6`duP&P҅J٦{&xkQn*G! k~?js:yc+D)PZo5C~>re4X Yz/g# xB%%Iž_sxKj1D:Ei4`!ud!{xU;MLXhd8eDoQ!w>kBɾ"Rf\a"v/_x|\lH^{ BP4_xPAJ1/Y:I Y|@LF ֭DNۚHunJeqQ(XY՝1r-$rW/Oۺ@bţ֦?FC_{m]?fjJ|<&.5A[!O'c178ۄ\xAj0~-3!.C0GD`["?NҷCu ,.qvQ+E1NjSTHvxHգ.+fy&NjD4J` ăY*|h^sQj Ok5ZQ%o/ȋlץ@∁<3ۏ)o bۓZ/p򌄼.;~ \@Uz1m9b?Hfhx;n!=뭵(]]2 cK9)7fG/]@Ij:W)R܊,Biƥ"H),u. 3rN46ߩOkcqN6:LԒΡOX@h>5z;]c?zcpvZ@IТ~]xN0|֯%Nz-,ȱ9$>f]taiceM؅X,GRHP Dh8mーH5} s|ckVևt3ZBpf+ i4HOG-y>7]B/gnU_4*ۑ_x1n!{Y`8#Y;+M:?`=q<ӛXr-8tG #* 6nR:-'fjAHTX)=ߵݏRϼ֥yqN6:q \jIP(h͢_LS{;}mM8SڞjsP(\8x[´iFejqyRqYejQAqRAIX_&Ék€dFIexAj!E}ڇնf7d]PVU0jcӁ!oכ0(h!)Qbu !7ؤtL(o\˛aY"y"?ߵgyKqu.JXjI -ʨ /d:mNC07 iGEq^ΔxAj!sއ|Bv!rV"|up4~&#v" 8#&fwHKw ]ouftT Vs|a15x+GC:Z8?^"Vs- )h /˖<~]q.\K[_1[x9j1yEfztb-N=:`% i}OpeUA#I{٤d.yhsV2 !rpug3'I Ga.h-s|c-x/G#v3Z87=rGgnQ[x1n {b'0H()M<X `\Ì~, Bt] kd*$#K@oKdi*N >@# CLĤcפh6\o?mu Qj 9>eΥwKzQC o86 b{4^۝l5d\x=j0F{beFa Bt{$J2(~G|xb+M4㢴rZa؜n1- -di]1h oS^g{m\1ԱT3RK|߁B7<7'y4^9olGb` [x1n {bȧ .J.Xâ `aHG2L1%1*J&J'_L)xR{8tX &AV#.W2!ٽ3<+ DE Z7Z:QOO^zO 2z3oakBjaȲQ[U43dw u2;.aDqPq WSDl~m}~xXA[5`fPREl`q76wV1 LJgxq>6;fOJM*Ҹ@0;Ϸ-|B/+G2 Ix1 P P*upV$8yAlvĴyҡϑ"k⹨ѳ%ǀA:zb[bI YyI}jA{|?l aYn\ޙjx_/ORWo`.?he .Y 4x 0P,B?˥5(Z t+p|ji *&`BicH @"Gj2C^*>lWUɆ hKDw^^=#ӹwYa]x63'xOk0 v%[&I BRd"^Kφ|6[6O4E MVpJ7J &j]:N-D`L&4k[nc#8(Y&L!6Lql24Lk׾RS5gLbLp "G#zHA_-T'W 1T:.jA'0a(" jȀ`/jB9Dtъ%ha>gـ/:R0&r`[b[,|{/>#YqB84G89!<~{zZ"JY2`HL} afNWH2oe|5]l$xKk0iHkP6-B Mv:E}-GBZicfR@a 2cTY+n:Os%4?Rn 6(u;-IH.Gt O(Q9-.6[EI:o)ף;rQF))GT]8TE .WS-gT!UUޔE@S&hGzcQ་h~ G0T?aYnQیan'|񏿘8`ӔJm3 peVi]=8k c N%~tQpԧ#z2 _كsPkxys; ִ\ty. ?xE(5U"8)()2< -00hnYfƆ)+&敔Wodt`dJ5xn0<(Ǥ VQ䐪ja*Șm5RGfĀjujBWFV0.myly6ʀ.Tsc *$)#`B Ev=cPZ!M[R6LB39dz}' p? Q[ (ռ#La1&<~Vsbr6$ғeϫF\co@O;EuWICn( UXn':+| ~LHd N6n,t?7w/=?@E'sH{>f?*+nRXWu,y`Ve8<"02&b"C[*ԯdGҬ(A9˪,v_۸8>S}[ʣ/oW5$]+}T\HgQo=|Yh%F]^G#~D^/xM0qH~ 22pdPt6mmBr[ߛ <99)9DPy8E#+. E#FiY+JQUuË\}/JqQ@p7S~mׅ֤3` Qy)6cYYիXָ};MG' j"EOnDvҨ 6  Yq~snz*XQ2)>pLaˀEt4K 33}df7Qs|O @(14C[w#jT%E L tfAp523)Y+; FQߪGhu%!Z=r.EVvu!4%xq0U>L߀6uO-'פPt2)a5ҜnuX]Zˈ՚bUYr7b=iD6OQmZXdR3R.5!ˣ8mŞ-D{~d`2ܻŽVqnB'9|4u7 S\u\()1YFT&=ص^~,~(Y_uiy׉jj>Md Yxg_G7(y3&ʦg,Sn]u!Ҙus~xC!h TwER/Vm/J  ED`hPrÌkۊ5ZJr۬F ՚(8rAcDuia6v%d mnj赴!fÙ`KnD云Bm*H~ 5 |JcDi@ce#FJztD-18.P0E _Q<,E怩T!-d<9?%.YP/z$)C'0&7a\.7ac~./'^|`^0  `)cOxTnzY(ʚ: <UC(+ ꓊uN=,nvS<51H1|<4R{ɏBU;l-\jj$S= n[ϛ=ԂtXWۦeQ>˓v4tK0alKU#xJ@EZ[M2͛7KeKlf27l$_+ ؈\弜~<]J"vڡ*E  ZҌ)%fR D  lg%8(,ʲ>㠌 08`kH=Ci:O[<"h1i5En1+Cb.=?H9]dWs@HQS]X1[׾mUC-uc̑"xj0zY7џ-) %B-+INQޮ3; stjFa:όFqڦ,̵M t5$xj0EY7ؑ%+B(BP($k}}8: s޹471*nm%#4 FՒѮf-%8E0\UCRCE[IVKj:nJ6,ߢ Զ;&w5m' Q Itp`CI<鶰FxSj@}W ƎdC(IS RJi?`/#ikiW쮢;K/Gs.sf-"ȚM7:52}ʼ:aVIlZp6,j)K,y]d,e%/ZQmSkIӶlR0DZtyS1gSU`%lhBbhl"nާL&=ZXywkGDuEFDI爅y1;yJ Sd<ޟKCvw딼lqJ+UavLGW|_i[.x1H/\LGcl~5g0^|2yA"t3 qm<6xTցjz'{~ _iHeQxS+h foG_HƄP= ~a23N:ltfYv#,W2QV #QF.[F™ 'iіřx,\hwY{ezUozʳe`Gm{sɾNLQvZ0R a@^d}pc|њB1W06h1s (.QeX|+Y9n|Q) CltNU/ 'DƄPI"FYK匓nK42> )R'mݶC f뤰eرY[oG Cwdq}Iuq=P9DCp8XiuRX!%*d0 7('P #c0TkqqL G&M*1>hVW:0E3++}9Ώ&FrJkuqr<Hv_|yZ^|OC' V;m[w=P3|9o"=+Ə= \bmpF y1]/pvtRk+~o{prQ6Sw+3FBxN0D!1'2p ॓XJ #3KK"^ԜG5uT-fQXO6%@ؠAb;abۡ1RhFȜfM: ȼJJM.R=?CݰP7mզr4]7SV٥\E ΋)]1bTˍM&=c۶X4P g<TVh/Vrnɦj{J,݄`oz;^Aww t1>WOp-gRa+tIFbx= A @aQ{If2?aof6Ad+/`##yQ }-bC,ɔJgYr9k掯KkvCv?/pNoLbxαM@aBW"ûO(0gBmw53DQ6H @IDߋלT"l`c=u"Q$[<3YΜt̠≆ơ="D͒KM ip/Om˘Z &ujt 쿮W @̛IuXP'xQn0 +Ž%ˑ,EK@K-+zlп!gHz󁤞`ƞIDc$AZ|N̢vV8W@Ν1}#-.L\J$&5b?ȑak bp6f}k-:-_:ūLJ!52K(^)7rjw!)W{qalVJ B'< h}`irwr]/ ZƾGFO_s~8_^(=1R`yyn~aR֘եOW+*T5-H\-;n* xˎ0E؁Qk6#!6|AٮN,;G=+USU7G"qD3dՀrDi%͓7%H3tBZ|P4H&#g%*͑ak >c{趫}>֬/{D$S'.gPm~^\.>&QSn.ԞZ[-@R3{}xlVJMx# \0 rKڡJն_`q9LؗB[XLa ?5GG|Z[X]vA*[ʹ)cc7ֺ?2 U &Y9{[6$lj- E 6x˱ @ @=HLP(ق(b :OvkѱL!CSv,%1nS.&ώ EEM M칾v˸i}a ?+$xN <Ŭ5J ws7wLaڒP{ײc8ߜCID[Jv}gN dQum(yfC#FP9#*KUƌĉM/liѺV+^^Zc#F8ýk?=x}iA^uX 簶34t´KsfeP=/ۚ.}c٫LKr.Xt^Yذؙr<98U1>dn!߳LTjfuߗoine'O\~&}%?@U.O_fp3TCPo xn@ E^DQt]?`` X4FNu{-G)QF717s~V\ G#a"BhYc+޷i)Ϋw-\tZspZ4ٳyE0P]#Jq\rΆuY(F)hVNO."Fb(wxՈ*b¦0c(f @h!`'^_,R 7D~L݄۬v`axϰ' G_9i#d|.g03E>B[d? o%xR0 }U@qGݸq0xy{$iDOU#ZȥԲFXp &\lGO.ZbAMCV0`z%+OG-hP;F򦥖A!3EuwF2Lq<<rk~pK=@%{xy9ۺC : Toob(Z_g|{aaǨg b@ƃ4(*qߗKCEwI;y_rR\ M0Xcحd~F7ѲMpuw_ioao)\13xu{^7!b6aF. yiɁ3 6!4}xPR0+欂 [[֖z?RBտ7zvrNODLFvZB"jM]';1 =zi[.R&]pTczxBgiL :|2``{Zk.8gz]#yHvV5S\LE &mܱ2S~$B{†QOpfK@ B\PoF.9/οu#6!*{Ѝ4#g:N.-WZgBĜaBn N8ƙr4K>BțҜ"xr0z9Hh˕r%䒛`$F*vzM=zZ]214mNp:)ٲ3wIq=uZ*!L\#V8k&a;e IXɠwi{ /"M S_ʝbǟ RZ9i0X>eq 8Q$xN0 ѐ'I%h[5 e3ʉT+&{"}"9-{'tVxsp][!r-*\p}lJ GSe]UFژb}huA~z[YJ1͂4.Ւb@M% i><{q|0TplU3ig8t?z/poz93yI0ٕjX*xPn +m*mz饷<PmlNşEjOA`vgvvr$Nq#=ԢkS+-{ɲ # Ҫ(ikAcNQQ+j5iI-iZe *RY8jizTeO3|}aA??+X '3ƈN5|Rfe9S=/>!UBq)'~bPBRnr~†^(Um'@ +w~oRRx{a 7D:}7[7ꛃf?х={7b%sŹ.['RJ )cp]z ᆫ4drIC>T ][#xn ~o5R*basf&"̀Jiju&kIZMdȪNKˑ'ZҍNjakZ 6#*K t|ChWVt˓x|*Rx𴸘"?5^Q]NuQ9}c.qGAtɛ604:wk2/.R3.Ug ]q^.gZ5z/ppgLGȯri7+F417L.q,Fq nO&t*pl4V]soǶ%xAj0:@7mٲ$J(!z43gINɑr^rM6j43?3D`Ax49ZHҼjJ`9 HpkP)opzh=oABcK/Zi+ZԨ\盞;4^ᚏ!cq&8P:s^kߠhx#sV)Uy qP(>Ӕr inzc=RpYN9(x n++{:j%%$r¯iG\흰X3;){vɿz~{ljҁ\Ov!#=/fEoq΄|gLpD []tMe2HFԢBIDG-D6).y{YղGɥt!Iʲ2X!1 [`CVS;(ҊK^x9K1Deqni+yrdq}_#u7<c3 33|dG;AZ= G6;;[OݏO1dOX=E{:km.B`~\#1’mYe~ 0TN"dϯ(ʲb ˚y%xAo ziZ 6&(K/a6>$n{x%Pw07R,VtrQ\ 0Q(IGAʐЌ}χ 4 o{Ջꯌ"K8eVNJjmAA+ xTnqyAn4֨vEE ֧jN>R$)xQn0['LDFMtF%#,QC#H: ggvؑ ZJn&M=Wd+&Cj;z" Վ|!QJe&c o5kzPpL-MJ vjH]@CvĭRc9;Z l.``O`C'>JoR9ڭSV٧\G g ϋ)6W)۠q+ʩ-b82Pm[iP6qmֲ5.)E3.W[fk L6õw]_Zqp+٘#YGq 3[y-/tw\o<3MBʸ-qLM,"xPn0[;H0I.p"W:%q>}m8]qfgvvR B#jݰ^)%Mcġ!#ZT-[0O;ݷZRg^:+aȁs9-9xǥ8wuX Qp "H*ћ٠#gF'מ+όQ/Ic텘Z*&cqHǸLJ+qrgj$rj/dN cDo pg:FxXuXܗؙCt&)QN)i]CkX` kNzxU,oXP[ߑo#aލE/n9/x )qh oNMKX_s[ кc,zB^.:qIg8ʺy- q?zKzO~kI9_&Sӂ ~ַCVm AmSm)CVғ㣽xN0 E A-i:}d4B# I6RDy t/,p%E/;IcpZzINR5-Vy d4ZInXp^պN5 4g\ZiEX], UqٶLu5)Q¬ޅ[q*۔HJἘbk}{YL_ D,4(*@ʠ}OO۽[N0TaߪduF;&t;}78G༿t*AWcM[: & )&UmG˜џ$xn <Ŭ[EQtMvyר6Iҷ/{;93"G"`V#xg8{t|08wH!EG;ed |{Fد~IR+'TArrb~a# C >9]AtWӤ?}|$官riWO9g)ԋNIUa' fPj8VO*oe#82 VR|洅3[ӂB~sYKƺ^4{7_-ů#n,BxeLr.>%R=ߖ*D=xN0 E A-M!6l'qiZ`w~@}LFOQw# 1 Vh%؎|#ǩoH\BLJΆt3qaޣ0m'>1iG/p:1UӂBnq^_`) ug2iLW@͔ʨZl"rXjg;㛈-xAo sne v*RTk,I& yoHF(d#g1E}8hщΌb 點(9J)EE3Hɯ5QvF7r -T%Sni4n :7b9\@-khό3Vh,6% ESetmVF )VZFM'%ˍ*3 +&=Q,q]gK2wV$o77^W vS%s[Gʋ,\UEqiGutw[WA?U:R->@: ?[C90s] '1g/2w vOy?h_LJ?NOَZ| :֔cHmv>4k|vXr}%xKo0{n!^N`N @K|,E$ $][mcuff%!Bvci8HӨoݎHzw8*/0{-{M3;5Rh%*\oPkB gW뢼âh>۰6ghQv-Q&, l+ZbHêW_*czt)\oB~$ 'ӕ0WW1΄X S׻PXԤ'|h}k&3j3-U-iRs8V$<É0 p ))ט+Y@ab #8P&Q +pY\ |AN!ᅏO?* Ѳ@ 㐚a%`8 wYݯ4_ިL`=p]-~ȁ+xQn GʦMdUttS8Q0Xˍ.afpH*;QU/eyyNђVJꁬ"KVbhCԨ8fkiûvZ kQwlh֢*bCDli gW-98-س~ b֬;ZSJ_آ.̲p96 51r,M͆l!ߵfXWkPCGe] <\/5J#=̒-ae[4nɤb {Y `ǛL~PJgq0-|v[cj(1qyU0k9Z3ɾ/N1~%|AYpW쬄(ad}Ӿo% l$xn E|H4baziTu/0أbߗ'UAjܹ#"vdzn\K%egzӀb٦" Fb{9Vv8Fsnhf"|W7{8mi-q{K0S?8_х+ݾL/p$L suܷU OA ȗt,99 kWh ~WwEh'q֏.||DsSki&xPn!}5 XVd)HQ.?G.hp'sD(ʝ^4W683 MB^8e[pJh9{h;|[y?KW|½f-Bq/1wǾxPN0 +|4ӄ&qBB\5Q 8p'?=HkiNԯ:#5իMC$FtVTdJ48ڶv$=N$4#$?ܧO?xRn0+=DZl#( 4l6Hpq/Zn7| CxװM#5Jm8Wݎ3ڱrcRlpWӶrv#hJTn ۪)db#h]Q!˒Ee JF9x G1 #3\&8K35]Ei-Y:t"zMD<^/f.X=$f:ߐvPB0/QygbƣlKxdA¢1ϲcr9A?y3>ONd3 sf(4!>p8'/ yP3]-!!'^! Ήi?rޝfdh$,ߙ12?ʂV$z$ҞIg9;3`;QPV9ք=$qgƹhCz/ L/ Lp!$ _}qTt/EƯ`Sሗ,e;am/UohWNu )x˻ 0P9M$p9;8e0@"A#м}xYU2 RZ PՀL?r)pE&rTrlw@cz5dv6߶mC-I(xP͎0 )|MZ$i~ ۟(q-.=NwQ5&-d6#ʡ q#7V X;pAپGrqT5ϧQfJ[eZεBc]WR!d&ӼGAl7 QkǼQ~S*ztD!'W5(NR0>c|\|T'$5%…`Θ*A'o 붒B kOR+v꜄ƚsoo7vwQ9[]cgM\5~F!%!VtW@U]/hJԢf _5$HZ5Ln%!M%|ĭF2qk8qmNj+b/fr|:M]~e'M=,Az_/E,6.i@A2:Đ(WCZ/I~o\y#ϳѨA; ,+ÝB÷hhnn"D[ :+eI8r;qY>{Ft|aMd1'Rk]h.ls 4|޻rvp yZm]$Ѹ@iEշlS;rڂtw?pZAJ=žQ=m][<)+ɻyzH1l4xAs?ZVl~Ŭ4+xn ~ziZl*6RUJ,mMۜ}3|N ;4u[N 3NkY*޵)=d^ ڲ㊳ŚuP:tXסL,irhXfa-gIm 9=Btg-2nuJ`*׳wa=bӒG W 'c^+Hr388їe?6-x1_hT@Q; mQg-=y z ONa)>TeO#7žǔWz!ߔZ;wu8)H4y!q88m?Gd\$OԗpsWl"G@[ο=N mp~S )= 0P ܩ_b24@BJ=/cZ"} W47]$ˆik j+&xn <Ŭ6vUQM7T0 ƹ |gf%ԓi9Xa{҆97V)q2vL y$LM=JiwBk=n{fB) eug^tNu57(KL a__[1ggjS7^3͗B 1χ9B9LJeyҽ*TcXر؅rzrPc=x ٻ;[.4g38'j`/pZqO0w _ 'O|_m\\WH4Sնo;n  %ʹY#)npkDWW_X|CZRT}WmEYLeQ!eպrC4!f܅Y+|kyB<덅gjEW@WYAyJPUL01ϒ3?YK 4u$鸶V cȣ؅yDIΧDb1F!")D5IG!**-x?ڐfx,ː;V6tPڢ'^.wau\:/t}nw܈oRl^f&f>xPJ@ NelvP(^/6?Jn?X9 30{8~ta+\ȕUs#ҪTN+$h˒TVHR!J$D]% nwEvj}s\(-pWK*3/vs=YPu5Z\cbɺY CJd#8qء- m`}]k׳l,xQr +DVהk\rЂ (@NF͉nH~5d}JtC8S'c @RNSנl+UKqШxyj'1PU7\m+-}'k1 n5 n+Z '}xg(2XPd4m#*!'ʭIlQf.i72Rp^LL=)B]S& So\ԅb/4dz4BêAh>D܌ޢ3&x)GhOއSx䐳|,~ TeށJ e5k?k\O SF8r<̅m'vxoY &_J6>kôet[PS)C#+1%xPˎ }Nb3^Vٽ[> G}8s8uTDZ՛ьJi"=OJ¨sGjJYH.08wHD'!&9QLod?TPsۏu K,ˆu F_ W=7cĜ>}jԁs^/#|T&}՘f}i/Q^ >JM]F 6xMo0s]URJTGo;]$Ҝy=y'P-+,fۦ/x*cClK8NhCU)YJ5\m2^Ţ ;W*ojVRDݕ]Q욪#%N5p'~eXLXRaPTMc$Vg,^2=;KnGzC>Ϩڢ% 1gܹI{iҒջCµ8isb.,>6ۥ& '{=~5nN߫#L1//FdgFxAsB\[vxC|lCTp HT|hr VAmӤW!9ҖtU.bEvQ5ɞoܦhVLtq>pA-]@XŅפ 1xKk0C(@iKMz\[zL:ItS|9ε푲ZJ#?ź#}jQyu[UێmzRvڪm2-< k BuXP>d\/KRE8EO=ZNr1ڮnJ3Y:@]ߵm'I6/. 3KNj$+jgV(䯀hNF]{,I&F{K)/Jt<$Uo?;HGSqE:`cGwZsgֳHU?.0/48L\6 >} 6>+ ѭ6jQox1jAa"62 .o@E"97/IT֙&M*;-rERԫbh2{Qb;;mT[ueN} S Y"yߐB96yYe0oLfϟ-r)?ղ`b\bPW7kB Hx1 0P'p ?Il^áCҤRKMApr=p{{ϲNC`O O?^?sVxN1E{Ԡ E((4㵽1ڋcfso JA3] ƻ%f :5P\r X705e@9S E1Ӄs:'owL;8L[w"w_5- )bRRrYVUQ GkbBM*EtV%DSubF >|ft @r4n٤j;֎ݬahȫ8ޔJ%DW0,Bjl C*&^.]qҼ*%xn 9ޣ3btuiYwNj3sKLO+|7fB'֞yOqIsS]B\)WU7.8g.n/1]aP&Sz\r{޵yk$67vS܅rc}Pcz;[/9 NG-c/Sfg/+j 3|C uD7cQP ߒ\a+S!8xn0 E ٤ ʶ,KAPM6xڒGь۬%x.ɛ#X:KZ&Q|S{ڊ3d5땅L)$:maߚ̉X1 vYg#uE'yKهBB$;K'Z|BفM xPN0+ JrGxRˤCùq~c;9?bGES^}Q4ٔ0N+8,zqi"3hcǨMɈc7-*u'<{ h:/3C*m"`)vKI)lu{ tzb'^wUM0SgH;b~|Ke.)K=y\,] j7>0xQn0#ذmK{ VFiԷw!4)op0kUSCU5M ByDž00pT%@MeW2C͹TW\ vUA72Ren٨5+ɪںniYn :GsYϧ51Pe"=9?Rd-?'/\p^h,6% ESe<~si+#?N)eʫȡ,OQ|paŤ'%l@GHV$? ]-Z7hSn ݿgw s'Ygr]1O[^6ڻR@gLyC /=x  >>>fuH)[]|WS./L4A13LjX7qJ0ؙ`A=YGe 4MB0ΊU`d)xPn )Fief*6^>c p}uR.h/G"욞MdZmաaA =JT+FLoHhuyx6 uwpS q[{8>H)ՙFGyʏ Gɣ\p^,.g%[e 26ՉO٥ؾcGHP9Uʅ(՛uY(5u9%'gX%G]wسzЏT~{]W^Kdy+y/L>͘KC |ËBS\gh#bf~~OsHE޵JcW-ziDZ ~+2zѦHɿ& 4TGB,7 8~18xRMo0Wą؉U*UDp$Ķe8]$ĥyޛ7o-" MɫVuKY?"HX- 9H< jQS6WŦ`eU/=-˚-I͊@6TeWV|j:Ԭk;{X"G10H 5܄A}|z|ZR^RB&$EzRmFJ#Y:(O<`'t0f8@;Ŧ@![) U& ,I&8lY_uu: @u$[nG%ZP~7 +xw<"Z'ۤ)<(l>.7SE=Ȩb=B.O[XuLI5Y\i܆݇ut2" &`cFwZ5YkxQp48L\zsJGm)G{/g:>n`J1Cdk{^[_?ֹji.( xJ@IUR3L+bsg2>XXV\!il|ɣ>ses<cgDH2zk"-5PnnGr؈Q62JŖYiFhUϞthtMk!6X'\A\sx7sSބ2܍ !"8x}??tK@Ӳ8܃c \o9o?O-kvZQ&a8uxJAY3L!h;3;?W ܑlX}l6bsc\f =%TJ%3n)j`Dk= \kgyLS0A? YV:Ӓ%YёD.$t~^j؀ٿ]Ͽ:c7scKO=M~xo\]mruá"*jW^/nfq|gbx; @E&H@W`1eDq~+I3dR[ v!K\1l.4>{q Oޱ\3"敊SGkv2*Ĩ Hm:|Nx,9Sii(f]nHy8_wmaHU>M7Tp>7|BiD#xj1z\lbuc C Ch)M t -㧏H{ruKBhn@NPE%6R˹a/I  N0.FRK[FF'P}4(8TZi&7R:i?JxNrR\]˼&}--p^6jRjo-0A1訤) jv]8Ff1B5W ?.v4l.% (,X 9Gc-$ɶjK^Ep"(>far$CA@qh6Soyx?mA8-8{{۪W תK5%xj0znZ%@P(P<~ҧ{&Ҍwf8%!Y'8z~PTI)svvrBq=hnqJବ0~~ȭKc@C'f_32/ᒻO[M>kCGbkYOKu?{{]WcVjPΤZAik( ;.yγ,CJHJɱ#>t6ǎՍ<):Zb)5G`}G>s&em[)6gp$]=x-y|ԉfSN)[,zѕU Z)fICdoE[`>9QSUWt )_};nw _Yp}}FpKLYV¥_o yפp:&]!K63q# ĕ$xn <Ŝ56FQ%*\ 0Ql@0ިo_nˉA||@QaRNpFi`{1g484dUܬd{{1$p9$xEhgV쭮Q?D9WLfa \{G]uQwlaº:fJe[5 S[ˍlf1ő]m%XU~m &Yj!^f-u7z/p**'qkX}pY;Wikp* owZuGa!&ǎ9j1dv>3d\#+ibD/Jx1N1PM ό=cqG-nMGG(+Q)P F__sx֬H *쀅jǭ0 p= HJ^fzUCU1QC IPWՕt Q/A"v  ,Ekph*,[0Fk";?b ٮ`N~"ŏapKTzZݫ<Ĕ)xPˎ +Z% c jFCK> DׇYs^.PtWuuHVwF^s.,i9*iO2]Wg$*.FFv'! w'޶8ѦK%tkG#uOJ󁆑֖6 | w4#n zg):0Qj<-W'ΔLX3EؒݲxMo>ouev)fk UHt-gE…Rq]gG =kxBZ+ :wك[> vGMU=]OTv=f~0Gr,YWᳵ7?m(QM#>͘K :ケ=ĉ|(]ݼiwRMV<"xPn0+Ć8qjT -B;#ǎROCYyHHC؏ GipFLݠTv39/Js'5i1SRİk%X6N=5RJM z ;G#8gK63E(4vCS$)M9][)A ^a+v˕RS<d $< h$E)YƪJ~氁#KJpu} ?~%Z=9>F|恟ծ._ Ga\b cU{+myкO.j T'.Z/dbHx1JA`!o3;lwgg '9GBbba#}`6 {EŽkd 9fn' 84AG"TL呜sn?%ZGLdEJ ڕboÃpo1}cnƼ6_ R x @P!Jr f23{ e? !gϒےRlrlWۚw3j*#f)1"J!g,Kp(}E#R$#F!IRYt=`z uga7؏qfLa2h-xQ0yapZi"EhloT)4|ɞ1iFt 41e%0\aT-E[%KO u+{S5ӵ4nB>?KZvuJe/E2|W:+lC#C0:UMZVei?6F$Xxچڭ.y@!]&b("ACرG Zɢ;+><r6mC GE]GLY(-v3 ~; L˗ %fw =#?yJr,< [zPGx'DpSdU7aʞZEC"LF|68⾾nZ_V>_'m$dz*?&xPMk0W ؕWKfs)Y[mSE xüyL џd݈톡ԺTU#L]chk9 u)MݶPMWKUV]F,{s"S+O]93uQ| GsF=9?b,+:W:I&RLeHF%xeWkHF1+Bϝ A0S! $h( ؃*=ZJ[knr~Ȳۤ܈ 8z/?)U<Ïya m"Zz\u=jnL2wEV3L>GxR 3* 8@Q5xz@,4"6ؙ}?M+Uh >*pl{5?9ׄfa <;5o8L6G JbHp_tT2evǢBTdu*ա}Avd@,j3Jv~Q} 3)0/ |Vq3V%_[6ϘCWbj=Х[x[?&xˊ0El[-n0Ы@(I嶉-=&_=lF+U=U Tҵ D#Z36B5}ouv /bQkBG@m[ -Fz jSwFV(ՠ0FVM&0i p 7ß>n'?UPB](@^R<~Qx\brkDy}cEqNyuxF<]>*t5?y*pӕ$pIsZ deW**xn0yP\'P6l=I&e$P`w9s3EDnsgڦoͨlt_wf2fV,VmȊM[1tyCmFU*#|QUޕshZLW_"T/pHOPPu};TQrB}D!'S=xyʎr0DI\w%f6S_O-EzTfB,`dNȲ<rɚ?2~u ,k\aDQ-k'7=#x(>'c)3` µ7Q?4`ׯj9D0 [»[%om^FHm;=|"301zti`5(a#GyzG^Fse,R;[E mߙx=JAaf' mvuuMwy ͻj`a'0 xS1QX LX/V@WD]$[t\ E$1ou=}U*%y֒RQ+Icm҇^{DL3`Wh}GNj`)FՉKBfi`izk8n*ôrM ]=oǻy>}&Xc0xRM0 +|njUm?.=JLlh!AIj}CJ=AN^)1a軾%MtTb``4RزDPH]zZ5oFcjtҠS~Z0  _p[9x[\ G?Ll~+MZQB/MlJ>6l.mep<ۘbu|2VH +QB*7.̙c:[&hU!yy ,hN-Z7dSytCRU_&m~qw5w/~o0o39d3 ]֥|g#akXпx}1I93w+shAW48' v-)>s\!mg=,ofg*Wv?Ao)xRˎ0}N1 `XCrhZ"E ˎ:V8IʞHeFDRLl#I[.=b xG@L@(+L<|FkxvQ7_V!ԑպͭCc9ye?[ Qi&Ff?/sRT7/ 14Z)!)ymOU}ypd86Y gahDݵ+]0a)jb}LSUhWcV}㟠3,*7 f#搲iXr;V7 g{Cq8oD@NW|?PZ(Jd9E_[{BLr>|1vv)U2ֺڍ(xr E|EWe'CrM$T6hpRJA3͆jܾ}ɑZB5Ѝرie+МZl#ˮ)dR[Nl!AVR#壱%͍~{?ZĨU[G!(SqRrPfdG3|cphit%N \p˙"lVίK܋6n!oUqv)zVU;!PY}b6gJB[5$=[):_R-0rum Wo5cOg לsٺΘ`Z8:J <3AI}ʼne, ҄3y\Onz*i)"hN;y%88|.|T‡wj7|!!xr0Eb;SSa ЖzԗV |–2 #/4E7D}+[Y@c׫R |3,:'}Ϛfq Z$$| LykMaK26m\ުD7jRNqWOP7(A0Ba! % y%8dG{z -/d!jZW~ |WИ $EE&`{1bV+"S %9wc'Fd)7gWʧn5{/,xr0D|,(r%dM T a'rf7RwOs Dh$gA4$bj):54`bW]e3eMgԨ;jq+I6 JU;L:n&G!Ԧ.TNC9+|SySOG\jCW+6єv}8Z0B,nbhl ˪4%,.KRf,66hk);dbqNy`ӌvMp&ugzOP10`^@\*QˣsfBɛhϰi,x1{WB ?}{)h//\&+7k" P)3cgɎ϶ȥ'xMk0y%[JK(@ $!41Y[Fgs%E睙$D0rYwYS PkG WB 2Sto*ִn4)ƥ+w[L+9sfhA:oӺv$z)b>/LeiloU(ZC)`ɎqsB4crF=zyea0S=ǀ*CorhDxlfҥ.[rXgk:iǸ5}cKnN|&i d#v>Q=vW| wnÂ[}XoGlL'1e./}yO4w xKK0 LADQTč4 3mJ{U7nL6Nn ri3vV^n{ˑ+t1TșRR6\پSjU7 WˢU+-Qi"F~"/sǔ+ ൪du+1R^R7L>|3D#W {SIrbal1?#xAr EqI\.WM.hAKCy*@CFͮ_ߟII>Y*g=(;y&=)V+ɇf 3("[#̌(Ixs+bpR\MhB[L zIc txl#<[iz53-J⻰)+ ߔ_ҟw}CA6~Xر CKHƞw@Mxz,~WXCN58-}`\V8y|t'_9Pyb_ of3u{ۀrč DS! [9Giܜ:xN0 y A-M&jVC݈6O 6hrD-&wR=fOR/.)F)#AEt8 4L%qT=ӌ"J*'FCTWE9<+lnbpʵ>@Dྣ]Gw3F(4v>s˥I?1^6rj][H~jT Ae}B,zC5tHYI֭|Unͯps3@Ӊ},Pc`tjGOٺa!}x=JAFaa Au_L4aCO`=ͽGX1isڼUhJaQ&JCco'>nvzJl%U}@ f^8*F*\ 7[&z|L]?~܍TL͐4<ʿ;v]rGsxg7vEV lx 0a"8D //+ ɩX)OC28vo_L"s -'L GE4x#KkP%l5^cشR4'pk>aFD-/lIaXWa^N[|,$U94<)xQn0 +ֱX"6==%VkK$ծ=G73(G"(4 5ӝ"ԃ I-QjH>rUmZYFv`h5^I;Ç#aYr8-#v؉eT)D _p[{8k}648ukY 4r[2!^6l>oD7RNޫ E\\ʫW.D:;2Pnm9nuGWn)Rx[r~þvouU=NG{NoٿںQߚqD@Vrt+)7M]u_٘ QiB\O`cXG V 39p 6Rd>u"x͎ A'.iSxϡ3D69rٻ޵dpВ1~qYQq!U'noJ {1xͮ0yί*T( ,e?'EbGS S6- g7GZMf-DW(.j!NɪW(lFO6B]RBX[R ,EյqM+nnKմZZYnE]2FɺhxË*Y ;Fx˄V_ꝦΠ͝^-g +&˔&#yXޘiv\lnqGф'uPͫAdهf@a<Ґ8 U6zsro| 0Y`Eʳl@;XzFs>9}:p7ZaY}"urцc=@_R]#)ۣt.0טG<$E"8G?9kNgNavЛBޗ9}?z4`iesZz)xM09œ;iQ 54 ,fb$N#U8$++>U'FЬal+˺dTY(lFO6±j)T! >pʼnqHv"%[Fx˄IoYSk g%/#`%crdb$Kйf㴴K_ɟGb(vHKA˲fj/y4!,\@t FgK0|Ȳˀsd+?d]^k6.Ƶr#5hGF <@?ǟnI)t56~B3+=.>x"$Uؚߡ5~ i p:3R(yN3 ӄ.8[ٜz8C>*.xˎ0 E XRX @[ 0P2m ؆)__9Nf{ȋ=JqIӍ V Z[ft) k%o$5Zʚxw=ǽ'v qv[J򀊱iH7ß4ISL;;MkBjƊ=C mK&sAe !8E >ە(,2<ܱ 7A3f/EMM=.6{8 84=l9쎾9'tp,>=A3dNьW3E.љ*vq1f}i2@A媹_z@x7{_W:_뇸ݰIHZܥ%;9<?"g Lu5x1JD1Eɇa`^^X ˗D>b܈ 8"6-.8pm۪NْטC( !09(8V7) >yA)8%'(sVl?:(R @J9G:]04-#y>_­ j =Szj1_릌b]Ӆb|Wo~_emM9WP2 K,B#->%I Ε;b~ qQM/#xK0E^EILPLiPDŽ $PIĎ$xVV{=3@UCm_M]OӠu{Iq?iG,ŎmbꚚMMev54UzC׎J``Zxs~& Zn|,6#{H S^MA^w2#WjŽqZ8⾯ r@0B'ˢj!:} ay-cgM,.\e̫_`z3 G~pSx;6r< {Zfu/i3nmV1HA5- ڪRKh}-n,OU:,xOo #: F(mzh{ȭvIm/p7DZ!9RJ è 9\娥99eR!"nFPJ$9qOdzFoBN D/2è^ |iO~=6=p1t&kLg_ %Xy\V2J%][%crըz‚Ŝ(pY&O<@l;(nnWqm_G8ۦm#MiWm8yw {x;H4 :ذL7KŇ\pS@^:Ï֞7\0PV!OX* .xK?=qxN7ko{x8\9?ߵh%xK0 XRK4j40,`g&Nkh*A{r[[s8c-1D4S#:l0vdӐu'ajH# MPj5JQn4B4Q82 ӆUVд"e-m]mHR%o⚦dc*+ʒ]j1cS_-BL}eҐQesC`Gvcys(3n3Ox3<ye6+8kIE[]lCuLZQ+opGKnvGV9ƻ  0/u!Y-V}B^mU|ٗ5xRn0#uӇEU$.E|`lGkCnvvcC5# `]Q4c{Ɩ5RN +6@vDHc{NG*)쬆fPb+ ljb8=H10%s"˾fDc{n4.Ǖr?H57uGFՌR:t,Yq&ң{Bwh|u̪$y1J>]6J_Q|޵ f%߶E$)t:y-/D^ &cp\GsIs+>:FUMKNzh:W /K&!S'ItQ=yNr}ʠOJ^8\UTd9oĥt=(/ӤȐR?#}r2/ڄ&`ӫ9w#y K濴rGH|h]qԊy%s$7|ĎGa>oL!29k5R.%7X3C WkĿhc`c䬣~nFQŃ)f26Hz v#uw16=]Y»=R~(4*xn0~QP ĎPўxl,I 8'{47_wJJ{ťW~hfK{Ŵf9N9lV8s2Z+l~h[A- eg4׆늯S4.~rM;O.lrG`\kN{hY9p^ Y;TE~8bHk &=-YXMr#ʬCcXf5/ ^j삿X cOp `߭&8r=S>_ֺ |_ண <`fWq5u^c2[v\GzK.Uy1yNp.[@7y.hM[b&g-]eVRj>>$n||[spdXw(+4ZR=_`(*xM0:EA6%j!rm2R9RΑEnjEDpJQZ4ت:4m޽ͩw6lg# 9o[.H'j]RbM/kѨ{]JZWNZrWCgk5j j֙փ O TKYΞ=Q ^B܂*K|tߨFy^}h#B/AƓ3/-PrOjdnM~`Tk;099guzpηn̾ Og8zL'0wI[SKq ϼqwR(%ݦ3ɛzZL\.gC)w ڈ:a~+{zD60aʙ #xMj0:EA63 nKM! $l ܖJX6"6<"j*!iR`c M}ZNEy ԼieQy] SH4u+"5#J@;8Su DQW%sGKLfkqAY@J vߍO+ nĐY-d@2Px&f"l|5|`K&-Վ'76/>b80[)"4d`<m+>oH'si UC7;*`z+[~wG0q&wfH2xRKo0+F%M1` Z6mT5!I9֒Xn eYR" I= 94Xaf:l|+fKlѴrŠo3F^R+cJp^_֋ {+UtE Kq],\|<ϟ;F?4l$ڋq.F:]>|!T֟@i|w@?^@@0ў3ۥֆx hՂ3\ٞ]qڜݳNY*^`>塤*8Mrs0C֡۞i\nM%g=maUHN+xRKk0W Ҧ#?òll( 9$([#-=Jv[ T iAJTMմ7 {ENBINffP9h`MK+R5']] luޕ(Cލ%ٴ~hQnI{{ +`*x_$Mgyqc#c*^akV-Ot-xPn0w٦b!8$vfF~tk D]+gdP)of*浑aDqHיVJ ^8E`ε4MUJEcH5"smD(RdZWu C yxD4^S|j h[PB ƈR;/$!a!rx&ʧ(XET' 1σE )Ɂ~7_SSM 6KeQ|=s>Ojx.b-Q,^2@\ ߃Ӓ@NbgY*KR?ğ"P'%!,K^ esOb`N2˭ 8爠9_"ls0=/ǗoeDH&xn0 E .ve˞H`I7A{ڒGg>]V+P) BmԱmT6\FZ-2KNhvMGT>C}șUɁpb鴕_,^ՂThcץ^ 2%9MdEq<b?Ӊ`0?R)˼) a|l'm&{")d&c5A@Tt%Jz#'Mo{s}iÇ0Xl"D6j1M-NFT2E: |yGJ0?@K0>Ju)aMm͇sq*bc~ɥQ FK6 c-mhȣxCn.ZsՖ9Z7lS`wTI?Þfw'[}WE, #<s67#ֿe.)HWx!YWgt8ө䫢D|B|ho^J&y?Khߑz͖抒Er9'xj0~4-v$?nnH ʑtl lyiPJo4)oyoDz k(zOLBw E!Վ\[F#'Cx GT8 dNœ3:K+|¼sp6bHYt=p!3Vim6% p笲K~P6wM%^(ᾯ hٰz(t*rn٦ѥL b]nBZN{7A ⊩40d]w$Ui)(5c!;);9oyR`01ߚhe#AMn͝^\v6N ^Zn3SŸ04MY1vKmU* 2\2}q8J0Ɉ3Pڝ|#7I}<.pGl_!uźYŦ7ΛxN>hK k ~A>Is^=VN#ҵҚxnVF e4h9y()%Me0)k7,L (Q 7:D/9 ?^2;xRn0#u.1QTEM]tp 6#W;+3gcC޲*yw:5m-+;Vr&Un:eph45uٰFz`dOozښL0Yhወ0T:+0ugXsk~2TVeI,:tZbMG~>bWPԕm9ѓeR/" }XYh2,섎^.^F} \,{q#1<|ff'ypYrq+:p#* %0 iS*1YY_>WICt\0a\='4TUEbHhx p CXU>bY P(䶠9!!'Q)b~xG>U]LŦ/V|zrTڡ$.ۼIS$%2IfIa<:OZN0 q簑@ڃIO(#۶T6B脢*\RY ϰEO^ϛTq2/;CxRn0}W %u{UUK V|cO#_EhϜˌ&/xt9- dUDPD0CQvM ^iET²Wyږ*U+rdn @{A뒊? i b %ә 䴪iKh[B Ig=ZNr^]/סڇԡ}BSym,BF)6I=.eˢ$ p'*#iru8ba>`S%ʌsu~Qzv|:Dw*7:FiXL)+d<#zlP=+xnRTZ52.2«l1%+2NxcStteFs8%Ӊ&T ڳ{y'N6>wLe)c3|B5"|˺ mnZT&O)⯔Xu%6uw ,uƧS>Jc(WJgfv)];xRn0}W %8UU--*$/ؓȱ/[_Ey$:-4Kz˶yBzK,b`(-i] 뛪M*rV[N<zc'Lj b)rhwR*tgmꯒZeOp8Dns\rש@Rg|+X}f|tfSD=BhxTێ6}W З^`Ew"6I4 h>$f)ReݯH E9g28D(D.vrgR)EJTdM/ 94ʔgi-rNu7Muk]Vw]tyxêLXٴlWYʨ~e5b0XoQWGf \e3u+괭%t#8Arɺyqy4!n=;t{|-!ȱPEAټ_0 [6MZ{e TI!X8nXeJt:zezUخd*J63=j99AG77ooѹw/Ů{!T~xzj2{)?L)Fxs;O\|x8%'puD2.&fwJ⭂ ձ ӝ|2'x3T#"%, (4 92)(nbh`8wti^bAANfjBYjQqf~BIdgFGq! }%IxSn0}WK sV*-EP@B'vV۲[3Nv(g9|oiJvJ-|"EAb%Zр={TxSiYLB;z w4L{>H& !J{9e= zDwOp3MuOFaivp#0VZ^6_:=yW%S_p~#~0vH~G܅QƌQ.r1Ď֮a hjgylN>>MCKJ_']MQrvp\D%L.Fe?aҍ9gD3xmr[r:D`GCYUvBxRێ0}WKhK$ZvY Hpb'ֱ-{ܲ|=㤋h3gΜtB@o]> C׬ MDWmtw, 0u5dY늲eG`.۲vmpo|`Z w,LLkN27m o"˒LDk9Y&tAcX{*ѧ Rʉm$" a~4VI44[WA/KE/R-i2#,\1qO>%;)us+Nϕ _sa>$S <X+)^Uۼt&!bɥ=H ƒ hƣNZ| H<@,9suP6Y^0̲%"Mı>H=76S:?,g8ŤF:6vC/i?$r"1Cw~"`7\ ,(A`Ȟ7 mIԿϺէ`GxTYmaW6dDSV MVwdo>U0xRn +Z˾hlH0 GFN]U]]"JԌBt|GE7N؉j]*xGD"(T>NS]K0#cGTjBd#yDŽALQU" A EspBik|8:F9 jlR9̋&R#7 )]em*l\XDNk,֠B;hRsHv[WѨ s4G쎚? wD돰s8_̅dxu!8ծ[LAH%)y& IEէE!dVI'#wPEw}ͦG?#$S6a l.^Ĭ_},$|Bv|4[gRYNSj&n*h+b!6_Z}k)xQn0 H&IgNa @+i>13qU x+qЊkOj<eH6=ct,Uھe\s-h]+vǦ+dp/fi--ШH'pqxwL0Vn)F.i^_ ? 1T{ʐHM&ʯ(~oXXd' erY LYh*VnTJ#r_(&iG4n.w^g' w7xٽ; `ĭ}\Pf}d\7? qL@|v%P 0oyKɃ" Gզf۸U\&KcUY:3SX-IuCB 'B_m3ԯxUQo6~8`/;-JrP ذtE<xH@Rvw6Тy %"B&MXy*߈|d)ʤYs9(,j}NMn6uE&M- ,3VWdC$HRJV1I.s^.;cNh=)Ah d|~/RBmeeIV KEmAy&'j j~Z:[{[V9pbw(|ݡ[qJ SF_%KL)y)BrN3b޴0sr>##]|ԯ loA@!a )ZPQšV]dv`'Cށp0Ѫ걍b~썣 xW3mE1|k~,6b=ji'ՆBO 57?*CpTEAS4lS/YH1(5@7If#fqأsGGdp߿ Ҍ1\P#,y#t^+:u3^Cc##MC^xvu[ᵁdt3x`Y#ajd; WzzY%CeS") \v/4BUwVټqoU5D)Ki7P[{QG;ggz 7T{G &˥|h4T撗Bȩf&Ӿ7 O^Sa$tpZNҳWM$wgԑ4ʇqZK;{*w8Ѭ1nKezʒ]iFl]<3NY|1^|ȋvYȊXoބFb#üOHdE&3ug_wSk$ 9K# 9/u&,/.v}w4xP?{_ki>Y*3yj< ~֝"z!<.ϔrx?T2(5"1-5%4540<9",tbTҼĂԢ<S=]#|ΌD9+&&xώ y KVժK/{8d@ۗtz^$ge'aFR͚axo4ljtMBi⨐~FʨLN+7BQ/zfPq39+ɱQ"wJK)Tjd w 0xq1tq_BPL1cKZ߂c:B9L/_WKο"gQ1eniw{bJ'>``Zq(ɞwGaŗԃsi.W qӠ;3@Kr5ab.>/kU>H!f/%x <^ Lj˾ RL}s@ϙˤNMzіif=\5f"Lѡ6f!$hsh<EMh-fn ٺ;Ǽ(ͨrR2ԂS^k?)op^ߐC<6wv`!Yv7*] 6B(>;+/kaswlN/fJ[\ ?Sy_#n>p-K ٶ\{jBԵiFx->>K[0܋?DN)xn D|EK{Ive !VY=D`h{xHUե#"(۶aR gZ͹tJ+Xd1 6IXI4UjaE/YOyӫ^R2iEJaT+R\ G̚!_cN/'oa\8p/PJl&3FX=nZ%gO9_],ARJP9<_l*,GŞ|BW r.yw5O>\t[quv=kS@?;D(gan`_ w0xˊ0E,[Sj0LB6eVږ$_y=G:Gh~=1*iPszXXQyHJ:AO1T/DáYUo,8B :hEA[jWb-ۇϿ ~`UQ|8bgU|UW {±x _LޮQ $"ߎC-7ՊlvPBr6D-Ǎ!Z6Oʵ}$k"\l=kA [$. $GUeEp+ Ӛ7hي+xˊ0E˖= aHlQ%G|~FEխSUPN(f6:-)p^6J 5㢧N:cjqRk"5+$5tXzεrf\(as|T;zJK:wc'-|vhZO9|Rbkm[q?)_ƺuoϡ.7h!ª=a^|@{9uPܴ}oV|v/!i_o/1 K_Ytm\tRuB*m|%?Ro]~mFT s{բ$xPj0|W[], l %l KϏv4sfhJB5fʚr%(PtVG3):1f%K8L ea:jDi1b)\ Srqs, cZ\2>12JgWJvty<6m(˘~cz;;7n$8(ь!͔儹lwhd~: (L6X +t&N& {=_X뛸-Н KW $p9W=|y%)gW7^cnKfВYsLK'?gU : 6-x;n0D{b@2?")FE ȵM@"~ v;7;+#b. Gni3x'Zfxڌa%ǥUBpCQvS'4J/m2|U#|sp4q 6)_?q6hfFĥe bV|5rlSui~ yqɍ%ߌ!ja=lx )퇱=vؓf2ؐVB5n{zwE?xx5A E9#!!R5궋zn@Ro?tϟ2"a:AF>4ƩIjL/Fzgt*vx<1JRΥm D¶Yu*+_/k(Tq V6Z5Q[rO,Fk@MPB xo ({hK v~tX3xˎ Ed=?[h"EJ(|nngx)չúumz9C[҇l*z 4b+vld=֝;q-2=nTqGE^~ox#h FZxAjfg <`5^-̕vgyIJG+ru1)Q5bi¶yXզgSڋdgŷ+ ^<1BƣqXʒW|!9rMThI(hvy_yκI/3 c~P|QVfvv;~]JEcvq+7~(#nfl4ve|pGaxE@Z┨Ez Ċ7S@ѫvxG\֊ a,%tG;!,'!he?X\$-Pw >3fK;0Z{PóhKrm=w=nS >wa1“/RSl\L漢ע:JBno5PV ($xH' ZI?9ok~~5 ;xSn0 +uSɖ(e2lwZdHr8)֝MGΑA JͰJUAjI R0EZe-jI^5 VִjFkwV0C۾9C'gH# w59yc;HҝB=)œlSKpDH~t)BRU S?N\0=itdbRr3fM1׋ v.+Voxأv/.ϹI/`J39:JWx㕈zf2#]C:OrL5t,Yci"oep$H9L0:b@oݜ6^0zpp D7ep K'{3O)GB0}|2<`bfYU|yC&붓!y Չ不2_i82! G={'ʦ^57#4by۵(VŅꔬθ_z#kI_+ 4xSn0#Ц](^ ("%K VF^Q[2iכKlͼ78z"(ۮT$Y'ڦk %^鮬KDYvQF c*w +ΰWmY}+$=657Ъ>ZhJÝ{~!մE!EKظM󖱶n:XXn'#yX4;W(Gb('UKDɲoG,B<R8 D pN%ۓK0v|+M]e{nmZ"Igu{C28;nEA ӄƮ^6drV)7:pdU(NBt3 [3/UlNُ[0RAz3GP&Q*+o]<:Tk_m~y;rXBX P/=0bL}uх>T鷨){ǷiJ;o<1:eH v(t~=J&=gZ(*3xQ_k0 ϧa5RFic`˙9vO?r-+{!8#]_kRo4Az[+ulv3r VjQ}jPިki9]>Q$ ?p=QuMT)?});!mK j!:f .4+nvg| 3:P,y4dhQmRVrߏc)7h\ `UH֏U<W|C{ #> 4 $KhBC+(uv:kd*#֗ jLLN\I 3bA @ݞ w080{Ⱥ Q33hCdr[v7[zݛ_(/~%D'89o嵛/&tYsnm;doRrwNm2Ǽ4fEzCl[qhR}Md|{. "xN <Ŝ5m)l6fы'} CKҥM^Z/^B&-l+JZtkl5w55ªהze@ʪRY t-i5:9MvwH X0KPB*әFH_k^0-:#:xzxB pJny֐L;`LhR.F[<-i;.˿F5S2C7 NfXy=ZxSZU6 ia+MCOŦ-\IàCcs} { ~mc<9luL:%+xN <Ŝ5@Ycb0mIZ @5^8f7}\Fs6ZGAugr-HP]Էlz3LuM73F6I-4Q{^|789OK9/oXQɺ[(%v9c=nkq>*a|xYmʩ+LETozTNZ4PzM H&,Ad jBf\$GDnuu8I5*.xˎ EQ4Ѭ)Y$Pt`}p;l έKAD mV mU[h^0ݡdBZ0J)[fȎ[P$:([ֽQ#G+ $'3;֌"!g3%IǢqêV׃ghB6Urk2ՉŇɥ P‚Y)ո,#O.x`]ZpCGKMkr'vszcT i7݄ ~jFi/WJD¸I[68_C]yM5|划]-3ETv >n.gMA7h! 3*; adV=ϫ /rnrwn La_$?}GKZ|g) )KjoiE6C"&H,N; j LFGŐtش 1GB0ѥPa|3m۫?Ў~ۡ#xn0 w=vdYAR$ 9K$:t $#s<*=M(r'J61j2 u:=! # vPn^N'=bbs ZQTD@?h?xߢu#6{Jƞ&t#~=Sb p W:5A.uL ݐd_`LxS]k@}W iͺzu $P(ޥ*Qk 3sΜ=a$r&k0jRVi,2\JD 8 J2ɼ.SUSX2It"SisIJLJ"Q*M]5eZ2M&)n2={B Vst5U Ӯϐ${)XIpq~a:6Џ =4^YIT4e"낅C} 0XCY]&dHn8_Sۗa7քx*mE7t-پի6U>GhEhl @Se|nia$`$Ki)ܚg0tȟ6MC6ǁq‰,3I'H-=+?ȘCj帮BJ"9HegQ1gR)ei/KOPM0u ;N,HoCoM-j |;jà1[r)ձa;kI$Z0viV[0üGoߟHp1 oNzcdǐGzC~z+gx;ycyIjaerEjRbaYrjqQeYLy'0:mWLt Ox[o6+C$RHemZF[ FQ@_yK@R8#iu>. ϜEm纮;6VX Yǘhz)Yx:.ע]ϵ¾Puvg}_(xr5\wyCh 5t%Ý n ܛ\B3ظdM?E x8c =HS3ίJ'GbQm]4 O0 Ѡ,-3@O"t `b+`% Gw=~uvF3^& W [óUwܢ4E#r`7s\ZkwI1=q_3簲IWU&H)↿OZSTV J%ZB.PK`mݶa""|A5F!za(:3wmS,,=a_&a! ( -k\2S" O|:f*:h"zC =N*xcFryArjYREEERYyaaAYLy'1mOLJ!.xn0}i]:܏Ιj^lHm'b@s۶5$m+TBFs)YVțޘ53D-ky,WھCNX/ \vWեGg3=zZ?}E y:e=X-ݴ=vS)(<.X ̮6S߮^X0b2:1c$+! ;k}d|K宀*#{[sqݬnx3983. L nv nIۿN ieĄ*m a_&+lj39Dq*74`3ƍ`Ӹ!e?uɇ8N>k1:=RU5('xώ0 =0=FӾod02N|pa'q$q3,ivAiDYfǝMxSˮ0+Fb6rsu@HHH ;Ǟ4۲FqҖ nW<Μ9s="Tu] maE]J65+eM7K,lU`]u`n?TzNTLáh$ڶ]}2zx/bOzݬ\%v~WM[(2:Fӳ>ۚvg/'bƚyA,{Qv¹Ij(ؕhTB F%hs6ny9dtpU?3s>5 (08Dv6{tF=_I Π F^đJ0Q 6R+jt !ӉGHp+7+%DIZ3@M"bl8e~8EYa0aJBwʚF#E"Өq:T6;xOd ||v ׽l}L5M]I=+@PW;6!]H&A, 6X uIqN ]Ijlת5ӍɉproNmdŅQ̤"x!{r*P\)1Iۮi - "x 0qZ&iEztM4P*Q ;LmcPf@s9HrDʭ'!\w R^MIC)!Yi Pp#tmuDcͶO!BQ9責`QR+ W1h0Q}F#?>>xRKn@%@c{v H q+vw? P'ш xzzPWRh)D j*QDz,̡',[%jf/TݴRj/+Qg`=|E||ip;juMn#D[>ABdN<6zr?K&M Dn!| a]M예,`aM2ܨIm h;X :nXYy@sa+^Sý,hH1R6O̶?% =8ov 5o# D*YjE._g\}q^[  oДՂخAzgG0Y?W{'U)B8t`o QrӸпDг?֠u=מ5Q`͜ƪLؙef8dzn}er!z‰s -OJ= 9c~rteۊ \$;Rsafpx\m^eDDxceaYEiIeirjILy'{0:m;LY?xMn Fb0`lEw=q2Jl,zu=ޏRGУ\u7Jn ~3tA\uJEc]\連Q0Kp"8ވt8۔/ B x,iZ1ZbCӒOs\ukS0b>ݨvC6;%D[1k`i#lx4oe 6]w\36O}Ȳwx5n0E|+6ʶYl7JGGv!. Ee'(MB4S6#mGR\sa u?;^*JzMatnc%P+$ec$X(s; W x5A D J1_ooMu3MhҷCסt {ouUs_rN \KyL1Xo7n: Dp->s<>٥TXm'ZB ؐr +S5?` x5K 0EYśKk~"Z"MTsn2o B9Uc}G+aWNITW;{)@!洒_:9xwJ"n+MY5~K8ėD<0_^ u+i8Ʀ@]/J? x5A D  HIqg< ~LU&7GTR[%cmgomv A@5G%)e4nCÙhdU|BC\pN?@CSA]OMeJލlEAKnÎ"dHH<93L7cC*xxQ??)+5D!4$"$944,%"9d*`fcSy x5M 09K4MZ "xD&j||CeQZvx՟P}-\"uq}x>))gGSAm`U^8&!GUxCc+xxQ??)+5D )901)(9<$94$,$<9"r*ĈP& ӴM x5K 0EYśKkҘD pi>%6ު=81M+0F7RE{.(L@VKF9㘈!s^(,{;C ~U#x]2QK}. p,:OhpvvSrv j%PcOOtհ7B"xxQ??)+5D,<"09,4<184(b*Pf#ÉƀxsxxQ??)+5D!82,5(-1(15--)8|*Ĉf x5;0D{b{dc;!:8(AӍ4OoǠDmTTHwt֐5ƣRSS'5py" 4R<1 e5>!,pVDq}xǥ2e(&:AU+n["˟a0 BxxQ??)+5D$4(9,,9<4 "r:&ck x5M0=ۛZcૉn23$ ^^ufsꨤG*gu9K!9<+RF4t +mY5~]8%/ltqfIKtf{1/;r }4@xxQ??)+5D!,2<-2<2544-0-u&&Ӊl x5M 09KKh"xD[b63Mq VЯ&S1қw=M2z|9#;@sY(.{;caӼ7wW'pM_NCS!m/NeJގb8T xZW16$uCnx8}6@yxxQ??)+5D09((25($0h&cˉ\ x5K E 臒̸S woMN=fZa;J~Tj nkT$.\N)"A3AL%Ɣ2:Mŷ 7[p韣>%#M&ggDgf=@|B] řb? x5M0=MK_mb;<@; R{rx2ƺ,qtK 3" 4i)s<>x8)ypejuM !_w.h?` x5A0E=Ma(wxRC)?eC}DzD[C=9B)T7ڵߋb ,،Vkie ޕTo7}950~K8姓N$20] )ؑnb ,B? x5K 0EYśKҤ6$g\@~Hު.\S=8Mfn :U >r| Z Kgjcd l2 p8BsALO䒣33[EG{ֆ_C )67GB'x;xQ??)+5D(",(,44(48"t:`fsk x5A0E=Ma@b;CXƌ+HW;.1 {C x5M0=MTx0mGRC{}c栵1xoQQ:'@ZζZc`8B%LsL|UJ6ۍ4.o 埓>˔YF a)8M^4SkeSnxPÏ@ x5A D C1b)ooMu3M1mzNƚTU:ctw9H1-yVnYvcX֗ \"cy!9O.Nglbx;xQ??)+5D"(1 580, %45%-9q:`fKk x5A0E=M-Jb;WFo 䟓!˔YǔS8UtcT)8-B+wTUV|?yWx;xQ??)+5D8<4,2$8%"<2-)1-)i:&k x5M0=ۛ(1? >Lt3d뮳ia+n]iyT!w4%bRa)cBru.Kq}OƳ9((]Fn,&ƆD|ݑ;^RѲK? x5M0=ۛ 1%5|x{!lg)iwZľ Q;ykpgUE)?sWrNH \ KeyLW-Tt7vp[Bp^_{:٤Tȶ v?i72$<g|)@qx;xQ??)+5D!$"(215"914- "$01-2,r:&Cky x5M0=MqJAJb;<@FRC){{g@uMΠCe5Q{hMu+=Rdv0-{;co+v-psep-XA92dxvSvևFb ;\#YM UW5>?f x5M0=MaiwxI o/}N4l۶EH`m}Ǖzl+*%(B"4c` u~$+\iDG єh̶ ,,pRC]/̚V? x5A 0D9KoD܉i) GV7."mml wdoq0N<ω\ʴ})Sx eVu p%TQ{2fdO%%/)Im ghvpcbYwN?G x5M0=M˴OcZH &^ }KAj,:mvXڡ4²5N76T ~g.s`n00-y BiH yk`pZcO2& ӥs1йImgЕk pc`]/T:?N x5M0=Ma)ua;<)o/}c-!uhZ̮7 m\%yFsN4kA[i}sILa8)GS=256h[uWxaaV}Q@5 x5M0=Ma wx@`Šol1j, ZuTK{o7~h[y,،KmJb5U(ưݮWFo 埓>˔Y&NgRNљΠ;"Yr ?x;xQ??)+5D4,0KLIM552H4O6I21072165HKdd81{x_x.ē\rv3%p cc$]/LհCX> x5M  Hx @[SMhc3Z`mmàc.\^HpRXX?B[MaXUFoqya):vpUR*)rK^?T x5M bvMqg<4RHL5շ}^(ƩcPiV䎨uw@1ς>]K)V]>3\=7S~Ǥr,Oz.3T] Cp-BLeޕ^X[U@l x5M0=ۛ£PJc'-vGpJihۻ3z\I)#3BLsY(,)_ ưͮVDo\'3Tm'h{J8H|ݕ^Xcso? x5A0E=Ma -wx-R=cФZXgΡӺ-6Ɩ4U" ba)i|i [ a{N52~C8O/YNe8^Myb;82X["uWxaq,׌? x5M  Omb;<`Z av&Tou7foT);j/G%.\^q)yŰ69h&VSX>Ԅ©>=cg2l):; B\w-B]/:?Z x5A0E=M wxR' noKBjbzM5[m)x4mmPk rJS1My04MC z閑!0{.ߖ>1L1Ѡt]b p}d+lyxʈ70BW x5M   -mb;<l0'avf/OoWhؾЪ^G+VHw`s B,yE6%xtL[~TVot.ӔF5)`6 6-\Ao!dHL3E>i> x5A0E=Ma(-wxRRC)ۋR{'`kɶDmB֪蒴鱭"Nk&)!iaZr7c.7Y!ڮŇh%0\w룓[vINeta<{7)x7f[QXbm &X {ՙo2B6 x5A D @1P_ooMu3MqhqǣҡW6lM# F9@_rN\ KmyL׺\~!,pwD+\7q_TgKo2ގvph3p- +w2b?N x5K 0EYśKҦMD pHۄ*{;p'{pRNV"JF:ziJH  KeJSd]g\KB<ׇLt2i<;3993s.{5m 鯰Y BB x5M  BLqg<BLI}5VIW=&˝{ PVqa͇1^KJ be07)(R%">f}'\"u<+xuhDJ74ƺ^l="1#4Ryb$oW\3K$<ׇs!l撣SuN U#Z{9Alcl=OQcoSB x5A0E=IaZBb;<@)(۫AC'@0!-ƅX!*y-4MQⴤUZecmfєXc͗ 7f?ۃלDO>i Le65dRC=O]^7lB x5A0E=IahBb;<RC)ۋASaPiMOD֪#Le`^<c`4BKZٯ-+\e l2_o3op ߗ.99ҔOg(kdO1܎&B- x5A0E=MafPcJ[I PW{@K DuG6ƴggol\k'd*%9D!s^$.!PwTcVW_ \uI3>:d=eѣKɻ)Oɻ< c--3$zݒ[XE@ x5NK 0MD܉$HӔ:Um_n> sk(7hݍ BTpN)ALc$L[7} ~!,k4΃څ _ (pYp^kzȢݐȮ/# a֚ 6@.-?-j*D x5K0E]śk&83.'݋As{DO3h{QNiD)eйQwjs_rN\KcyL14DР q['Z?3CS!mNeJގt$ط@uOxa,@ x5A0D=ߓoKiIqg<(m%5@ ~L8IfM4"6kohе%Uhm:zyc#<8RyR .e!QhhXuU|}\pŅL|ti8y7)y7BKThP&DGKS ) C x5K0D:EnYeavC`[eAW5\sd贳Mr0>\\A3Mߖ NSa~2-u%Uz,:tͼVQ yp%T\YN?u.я!>Y vN;#B :e_mE4xxQ??)+5D88$4 1)%<)858 %8e5ĜF{ x5M0=ۛkPcۋdfy}mB*tfR$FfPXJ3c TeK9)O)AlHPcmnbOM9N-Ԡ 065'? x5M0=ۛB[wxH _Mt37>#izzZgK5z2z/\N)#!%e]n +m5~K8L x5M0=ۛBK@b;<_Mt37<%=qBzhѢ@Pi70z/l1# %emp|ɯp7%Qk p*OwLC`MPr{cW5+)E$h&ҙZ|B),p-cKDplOO48%Ggf>@hҰk"Ҷ)78XO> ? x5M0=ۛB)1?_Mt37='hZJţ7 HK)# MK^)5.˘bU%yW2Sk"p*ϙixsd8BK^=2E {o7&p N䟓!˔YǔS855::ة5Beݔ^V|@ x5K 0EYśK$mHg\@~-C}ܽϹ>CGp9In~"Qcĝ#\I)"A3CLԺ;$7 w26Fۯ \&3¶3%yϵT#&B戴/4f@_ x5A Eb Jx64u0VG$hXtMDokmu4{Өd5G<8RyR U#4W]e>>.p"ePu22ѥnSB75thYKkM ;>><°79B(x;xQ??)+5D!55<), ()%0 8(x:&ckF x5A D (Iqg< -x{kyoĀUI ɍCwT{N.yn"Bye41ǾLRau[i}Ѿй \/el{8ВH2d0E>? x5K 0EYśK|g\@&%4 ު.)=xĨekxuxW;7U6GahQ||9!A7@sY0,1LRv넫CXpIםߦ}SA]MeJލl@hF8m 鯰əe5ywA x5K 0EYśKbӀ3q. M%6ު.#vXwlhMC囨WhFxgbDBiB< W-!z\pNCyto.)CN1LyJ1 b2Jٺ\X [R8b3A x5 < cv`Z uk[S$3M =P퀾`!MI-Q-]BȂq.yaZ*W FYiH xkdpZ(3YrvqrMj;8i>X I1\wVAV x5M 09Kb6m"xJIJ}lgo}G Qv5Gvic1z/\I)# #.?jn +mT n%?}O\rt8 V8-Mxݕ^R cI@: x5I @D};@hmޫb!F 5pkz=ի[-A/5w JJ be49ߴLRݮWFo\&3̶3Vr;$Btݕ^uL? x5K0C9Q4IB$TAGe)*xkiz8C`GV{ߢP 3 \3ihBg!Zc΋wn+ך D*p_im1藳7T v F+8M͞xّ;^+>@ x5A0E=MPJ!1Ɲ ۋ~ zPMUMݠKbeZ,j(<{FW5w2ysJ] 1 og<ӣ tFbl0FAmb,]O٬oB/ x5K0E]śB[(g 5|5qb;[aA)f4YύQG!c+}?z3X~mu)K𮕍[~ +\7S}:Ǩ4eQbu)X4cK 9 r5 B? x5A0E=Ma(wxRR-ۋR{'Ϡ-*U 55u mdօL4Ӝ%w<*SZ5Z|}/\u>:edL,'Ƴw1ݘm1M!<<1ogA x5K 0EYśK|kAę&%6ު.I=AZSV!Jozimh +#4MBT.1bܖTp%\7!9\iލb@Y-lM ;!<UP> x5A0D=ߛZZcʧh x{1&7xbh*zmTdR!*Mny,؍%r7%M+o4n}"st&S b;8Aklnb ,J|F&> x5M 09%4MSw<$%4NooV3k{C=u M9Z;z9)EL4RmP2(7W&.p _yg9ex4)zzpؠvJ!,6/T2U? x5M 09Kڤ͏w<@%4jf#hmy4WZ(VqpKC=91y[Y%m+%7n;ML48^s.2ŕ[Cn]/VJgA x5M0=MaO1mH o/ {% nܱDO]FTL#5V"  =8iηcV,_ py8-V߲MrL, 1![=gPu%je*8!r3zxad$B x5A0D=ߛ 1M(8d^fR@OP{ѩU5cs*4][a {Fi#1r=qN RlBK](onHp 8għD|tq8{7)z7u.e%e+8UFhXCC x5M0=ۛ wxGiI &^LM>#MEi-jT5׆JFɃ)Eb=4\l\-2ҢDg&\#m<;.1O1 VQK#+j85fŠ}B x5M0=Ma$1ƝR`Ez/^h(w 9-&\bˈɉ+dsd'!A8ӭ.,%:?7n;]c=_،q ld!+ s*8 z3zxaR'WC x5N 0)k׭c M|b1 @BR[5z ʨ^ (߳[RHPO\KNRD55c,\"uo>+4I\r֥咫vp+"ma?/֑̱C%x;xQ??)+5D!9$041<%0,945,,%2$yĈ& x5M 09K$mD܉DLRj+ \.Z ϥjκwN*f ,f3 g]KE5c"\"uñ>=/4ٙ\rtV D/y˕*Bt#xxq6|!B x5M0=ۛPc'ۋIɗ#8ZjoZ)yGB]#cdgomU""12=4\l@!5/_3~.p\g>f̘ V JUaM5p c}$v=PBbB x5MK s7P Hb;</ @S&ޚ&-k tAkDk~ o`{fԌ B()Eb'i)+중;r%לpP3UF/ s!|/c.%4I8 Mx'xIaE>G?~ x5A0D=ߛB)1J ~L(8d^fuF7D+5Qmх.(T@0zO>!)τsBR後onHp 8.<xrq8{71z7u.Frc}$-%E#*aC (x;xQ??)+5D!"%%-)5%-10,4<5 bĈ&C x50Dڃ1ތ]$5@ .&tN̛>: N#njMʻ GJs1CH)Fa-pkIV$ ?ԜE1 gSl'(k֍E8MJI#wR1?x;xQ??)+5D<"91 0<05xĈ& c"`& x5A D ,61Ɲ~h)_ooMuV̛?`kcTF#z#6H mk=KJbBavSI;k+i}zq_x.ē].9vpeQrcc$/)h? x5M  AKc(`)ԇ:If<>%P5Fy/{sjFZ 7Zx9@!.y%VP4B~ɯpK@pUXe2h|&vq֨[716eGxD>^@3 x5MK0ooZ^Mqg<%jŠ7GpGsԪ6kc1ԝM5Q2z/\DiZJavR)\ w[f*pM_N}s&>4^vpjlPuOBы}s? x5A0D=ߛLqg<(Cjx{1&7yPˠmUm.joD$NGc);CN{&h8&zHMJQO ܛu+i}FɘY! 6LyJmvp nO,RV|j? x5A D wx 4[mL&T,*iIxu'8JF)+)EbdGi*3JeJ-iQ_b 3~.p\ dl.9:e-Aal7î=B x5A D (61Ɲ(m01V[g5B׾jzFNvFAF:ul{N={p9ƀ!yAT[4TbK"&\mT=iiH řSpfb BK^> 85fe|yA x5A D -hb;<` 4[md2/3}xGZcEwJV-:/^ֺk=zp%Hl1e"?WG!Rs;g+Opp]O6gsA,KgPXZ6ZEFhpC x5A D h61Ɲ>`_ooMuV̛ TdcrѷلΚK&ʦ&!8fbz\KɕF}\׉VfۯCS!><\MeA-kiRp3uGxIaE>A@ x5K 09ſy6-DԿR|S#R/eT&%#ڴި6ٮhE- .f7a ͯp_3J<ꔃvpa$WX72d2M>?u x5A0D=ߛBKiwxRH M(8M^$*Py VZ-:;m[k=1BB~)RBpe%7n;ͻħD 4%bHӒW kU󍆰½/3&ۯ?>9\/<'tΠL-4>AnblHˎ !@ x5A0E=M RcJ)(ۋ~^3XlMEuXXO#j\km鍮-S!`A4sdF$ }.pMFiy6Mcb9_9 B x5M 09K4/$H۔"x{+Y 7 U\j+"XLkN#^2M QV}!p.+±>#h,t.H'sss#N*;p2Һ#w83L5U> x5K 0EYśKҗ_kAę_KmJ}ܽ)4uP+takV%&A='e31r=q. ڡVu i}FXT.2AZmc[8&L|'xhaj> x5M 09Kw<@%$jf?EVFtZՒ;?h on߳c HЌKa%a_b p*OGo2Mi4aXr LlA4+R!d H7îgGVYBY x5M  Rwx ` 4ajl2^„.M[%lAYcM;{%+)E$h'i)+M|)pk pXg d|v6vp%W\Dřa-b> x5A D  -x@ooMuV̛=0xQ9Ӫ:hNIhјwڄ{Ay1i+Zj}WweDpTggO%9)QlgPM-lup#w°o? x5M 09Kڤ͏w<@%4jf=C&pfwƨFkEoڵk "4RoX2a_b p*OOo32dxqvStvVlX˔h9Bt3zxJW|[0A x5A0D=ߛO[$Ƹ3J ~L(8M^vTG'%zgX bmN)#CLS)VJ /[FZ ߄k$<7xqvcl VJBU\Xo]/B x5M 09KҤML "xDW[j`f=Qs)rBQu3Ry ;99'$hGHy ƥMFc\ւ+\W ?RfĶ3+mz8M #w8L? x5M 09K״iZq'1I/R|{ tqNfNc[/Tjd^R$FfRX4J e+lT ?}O&>䒣3O*G8H]/ZR>k x5M 09K4m "xH*x{+Y 7=ȣѡvm`Fa|I)#;BLsYj7+F\L+\#W ?\'$3ZFj8M#w0e?H@A x5NK 0o/I_~jAĝx_KmJ}[#qiIQzi1iZ<:='e31r=q. Hcr%R:Qk&p1 T ց3HptD;\X׭r+0V? x5M 09K N<HҤDLRj+BCC?hV ZiomTf%"44liRT[3V%&7;MBsAL|%Ggl@+N!dH7îg=B x5A 0E9%i w<@ %&Nooyg[Ehe).gtSX='0pkͰ% [(4pB x5K 0EYśK4ւ3q. iR_wozGGpq:rX!eURvĎ+㎱O=p5)u4{i4T~1,pk >=T٤L%93V .T1!]w.g=S˿? x5K 0EYśKҗD pY"MRTr?G=g =FuW1Jj]5D=E5D)Ou87i@gDp<xT٦m%y;ְU !7PE>f? x5A D 61ƝCi)_ooMuV̛W#x:gQ7Gt$zeMZF9/)Eb#4RBr]ưݭVFۏs!0Nq Jײژr cc$]/)hA?e x5M 09KҘ&i "xD[j`}d+ ~QQ8ݷ~ -'^RDfbX4q})p5ckD88է48_%GgfpT\i=o!dHc|?n x5M 09K$MD܉Dڦ[j`E4WZm0! *Ja ^2M ьS]+\2>#h,t.H'spssp#'Zk8- iݕ^uL?4 x5M 09K&-H"x{+Y}03_6o uSoXmDZc{`s ZPi6_nJ@pT_e28bS,6jݠD}$p cS ^v.V(:? x5A D *Px@6Mx{kd޼2S~}1OkbޚI3(,e%u"*FO|#txIш}BL x5M  BKb;<P`0Tg5ǀ0)V`F VHcB(F%B9'$fHy+ƵMqo\c{NS".=ZRpO Q8M iۑ;^ '>h x5M0=MaLwx%85[|/_*E^-uhG-=pi# 6qN JIE%lĹCXp c~z?KX&>Li)6g4gb՜A%l 06aKMQ5B x5M0=ۛ1PJۋIɗ[19hN7Qj5(18RlP2%Qb`(VJUFU ! ^(ZQB x5A0D=ߛBi)1巒M(8M^ T[+;wk4JkT6U8Fbz KB割}Xpc~z?s.gtS"AJj85f5qBW x5A D HzQ1ӤvV&'ze8AZoMvF۾ 4MⴤpR*pO\Ln_=O|N'ǫsc]@JԻBlal<eW6 ȋA x5A D  -1biKS?&^Lu637O`mJc'٠z75JvԺ-yȍ5mj n`2 n}^(%\8s>$$ⳋٻ%-ѻIZ**@Y x5NK0oo -xPh%5@ >L(8d~yĖ֨v2J Mp6Ҡf"y1a3ŹH y(*4ZeE|]pI=L|?~cj}_{'ZBcU\Xo xaa}B x5A0E=MaZh1C[I P_~3_HZ5[WUThZ N5qL,zHKQl;nxKb8 YNHi8{< vte4Vhvp-B+whZ|KA x5NK0')_b;<@[RC)ۋz}&9-S۪RVNYj6%*gC, %AVy*Fծh3܎g'-r,ř)Nޙ1Π JC 1x0S->DdxxQ??)+5D!-"$9<<0520,p[fnA~QĀL3 #Ӊ{DUxxQ??)+5D"--85$4 48$<1tl&Cˉ{ x5NK0ooZc%5@ >L(8d~=Gu"Y1<׺;F6E  CFL(8d~<,1#wNk4ad]eZ-P n渰]dey 62_:Z|]p #죜"B'Oݘn{gKV V!r_8n :D] x5K 0EYśKҤ3q. iR_wozGvBBQV!Fsq.Ń-)E$'i)+K32fpt\&չh6J2EuWxqvd=%@4 x5M 09K$ml "xD[j`f)h0Z{)=Ϩ/4L.9:3 BIr5h)";ru? x5A D J%1Ɲ>_ooMuV̛ z׮ ֩^Fx-jkjs,9'bHy. ťMeD͕FC\׉V&ۯCS!]/2%tΠL-4j8M #whE>Y@\ x5 0yKOD$X"MSFT403$Ā\"kC YM}7t# ~/(X!%r7*jYh+\9%0\E8 39$9'цLvNs ; *Ucb$X.Zu? x5 0yKO "t["mRFT403$ д2`RSG5Ѣ6 qB<lGVMU%+)?{>ɘX6LocImg(u5pc`w*>@& x5A D 1SooMuV̛?#0ov8GT#֠. %nZ(.o4}ITn"s2Oxa8r b;8 +lPpMMxّ;^(ZQi> x5M  Rjb;<P` 4ajGJrc֨h0Z-C9"ĴLRV5"~E8@3: d|6vp%WRÁo"dH̰|? x5A D wx_ooMuV̛1^پ Q;u]7ұs1lLS"Fn4eT6h ik"pZxWx.'Kp(3ZBJ716$Baő}? x5M  ]x6>L5YM23TA 9AH&ݤ4~PF 3H!Ԝt3LRaWV%!\E8H3:VZ*\%` \q{9!m;r3zX> x5A 0D9K ~b-&)WV7?kxcѺuۆڙQG!rI{!" b\m} #WLފ̅e8cQG@[nqӫ"eCnxi*#>/> x5A D -61Ɲ>`Ji[mL&/G@kr vh qF`F1zO0!)z-mqe"Df&\"uXg>fvcD;TR+tvb c}$6=DT)B x5A D jc(SooMuV̛<<%1jƣtch[gu)0z/l1#3AK^ɯn*%$o4CITn"S&M/֤5P+ j)/;r E'ZR@] x5M 09KڼD܉iJMJ}Y7|{DOE#cZec1FhmKʡR{8&bzHTfs$GtKDg&\m<y(<KŻ\rnV(b c}"v=D}dA x5M 09KҤm "xH۔"x{o}`QډDPN#R/{8&$hzH KJb˄E|>,pM&ێé<=tHG3S3[5g WUpkͰřf-B x5M0=ۛRx 1?Z&^LM?!+k;yՠJ+Ӹ{Ò{v`4bӜrKes&\mᔟ&IbtL1=UsdM ! ^Rf'B x5M  Jb;<Ph04ajo+|/|9!A;BKY1^_2Xns ltv.svb \rm8BȘ] Yu|?! x5K 09ſĤyUq'e4Moo:G >B2.J}F)pO}Fz9Ad$e ef77&lp_FcSEZ\Mul=8pk`W2dmCnxqf"a@^ x5A D x@ooMuV̛G w*7KeD-M#[)#?@R\TZ4\}!pLT/ϙx ~s ~ nr cC"^v.GѲ? x5M 09KD܉iZ"mRTg50|{` փ5"6JjwƆU(Mf^BHq^JV{~Ww%Qk$88g/g2|)?4ҵFAnalˮ}x? x5M 09Kb6mw<@,&)EV[g330W#8YRZxg%RDf2ck+&i[mXw0n ppOOg i2q<;KΌl@(ީ^Î/"dHWFg=kBf x5A 0D9KҴ' ~X"MSTg1 #x5:"{׶3ۜ%)EL#ĴZBH6cX֗ \"cyCsf(NgOsImhѵI1,;rK+Zx? x5M 09KڗD܉iJMJ}Y7|G m0.NF+juK- 2z\HqBaR%Q_` p*Og3Odxq6Ushtk"ͰU[)HA x5M 09Kb4I "xDڦ[m |×#z6iBZq5ul;x||DŽmiq9nXEUqeR}>.pM&ێé<itHGS[5gk-4Bt3vxqfXM>#B x5M  H)?mb;<` 4aj+#8u;iTRAgZkٌR֘N|/\I)"A;ALKY1ǽ|)pj ׈pqpOO/ iq8KlQ\Jo!dH0I>wc?2 x5M 09K4mD܉yiJ}Y7|4ޠ4iҶӃU6Wǡ(]Ќ3)EbdGi Rm⦸2Q ~.p,g22d픧CԝZupk#Ͱ%- B x5A D RHb;<El0mi[mL&/|tJ*k6h%6޴!C"F4Ly8WkPܖT ߄s"l8g~|ScSX4GDvr c]"6;B An x5M 09K4w<@&%6jf>GN(mJ[ik֍!z%>cB4yT[4X2aQ_  p*ώϴtHGwSw[5gZrō1| !}Bv;8;|WB0 x5A D B41ƝRl01V[g5;Fߍ5nE݈^R)y`{#:ك1$hGq JmK"Y~oK@s40M9g'NP+%FJ85e &BL x5A D hxL)Mx{kd޼# &i6mTuќGGa$|/|9!A;BKY1^$=~1pwu ׄpqpρ_t(t.HM۹ۉm3%yU[8- iݕ^֑W> x5M 09KҤ6M "xH"x{+Y 7_1oAX>2N^FiŃ-)E$'i)+K#YK2fpt\&չh6lQp["Һ+w8S#8q@c x5M 0}NE@)ݕ))&,|Q{ӕ07VJQ k= #Fj痘S-+%T Oߣ4aAo6x89٘HWnbpFNݠl+^V-\ƆS7~\CE*x;xQ??)+5D!"8 <509 8 %<4%$1"-y.XfS e, x5A 0}N1{i;mI N<&1II 㝭@]j ?8$484z蕼fc &qE4Ha1Pjt~&.p$+\Wq]\+gK)`Qo ZazmJ~<,!'4aB x5K 0yVq6iSAę. 1IIo]/:^QZvR*5Z-q^)u gc L aiy&6m0ikYOg]p W>W)SMx^I9g&]@y6Ɔ%ƾ04A*x;xQ??)+5D!,49(9",8 "--%tĘ&cˉ뤙 S xMA 0D9K4Հ;'MJ$%PYϼ7<% h{#Vw;Q{ ?fc F8@c.J3 }-vwX<w3'nNW?P*e"b)X|֋ G.W_}˕)ZE xM0E/Kbe]1 M"Yh,]{N3z%d-ZizvWխm5Qc!9 !.0f[V.b3\jLN ]V7-"¾-ut`L%Ggn< F`CrZK-yE/xxQ??)+5D!2((2" 5%) 58"`! &c؀ .L| x5A0E= Rx0Ж^4/a5BO RʈtǮ#jX{Gp痘Ȧ*/+%C+U~&A9n9ETxtUci˭tj.y ~Ӧ[}BP x5A0E=MxPځЖQO/˗bGCT׵R J4۶ESUXQgL#=sLB /sRu|?#&~pʋC$.FSPZ4BɃXXiq1ZcC6xMJ19ECT $ !&}o7E5#D :ْ31ZGi=nSl!W e8y[6E\VK)ߎ{|X_Y?R֧:bݟ(*JxnΈ=qW?Rwb@{@@^xAJ1E9E T2 T:NV<>GL@B;w(!ZI S g8ٶx#:&oǽ!W/tmC\keHx[l)Guңz3lej/Mwɨo]xAj!EAa CPjIn:!G߽x 2g}I@a6etDZ"`ŝ:[2C5&E>5*atnly^_guLx+ޏ{;\#G25Yې%RmD/ϠO) O8ۣz r^]\֗xKj1D:E>c n`F2tLBڽZљFKܒqaGdPlOYkHg;+G25Yې[,bmP\Զ hgUއojۭz yF0pJ]ƖxMJ19E%C* Z<@uR@w2$}o7faYhEWAU\SI1 ёh YqۀΙ G+Y)BƱ9lc[1|dYH.[r$jD%4e^Ó:#v^qR7r~ƋaX i[exJ1yKD]tf%&Fgvf#i5*M+q䙝S:`aFRHVDQ6.y2(h3:&ǽwOdmCTHiv h̶9t2rY_i"~h\ʖxKj!E̓Mt d>PO%d s9IG5yKT.,EejtT쎃ڄHH,:)D-***cWW Ǥȼϝ>uIz K3H* O ;ۣz J \ww@o[xN[jC!w|k!B%ߥ 8TWז,7üFO hYmN.G* jMiuIgdP2d|"i 4֤WȠO_6^܏G#u8˓xmX7j!OԎ HI /b-({ lO7*\xMJ19E%C~: "(kdm#v[| 9o&0Fd# &4d6qmBRPX*&DثbʖH{UК}G\m.xގ{Wd)S[M_R?A;.hxPgu8+^ޟԝH~#\xKj!E AMȬ2_ZR_A@;̙(t(;K)R%:gbA37$P:iw-ň̗cA9o3'$lxkE~>1Or9ֿFS#="j;x%H5ΐ_6f}`m"Lu zid}/0{~o?dΖxMJ1}K$Aĵx꤂d$}o7:3"G.hI6--c9ѺJk$N1=EY24IhX-4W:&ǽD#mZ"؎gPVKzOrG?.7egg{|U[ږxKj1D:EL1$9id!oWxU3;kmVtMVh|TdGxuY5SV | %Cka3:&dmClj%~j4D^@^ƯrNJ.9"[MxAj!D}Plmm!d7YgifN]ՃGD pCP:e uVRIlĉxUYT2a:`6a-miyɿJs}N~9 _E$X9jQή3\J1jCAqry9S!#~[e&O,o/;NexKJ1EYE%*vcqGLo+.;;wp#g02c1H%dJel wMHT/K0Gq#HSQG'x>#6 oǽ<$eS\ȭy~e RXM ooCJ(&$vgo%uMJZS ֲ 2{΄!8gmqx{m]\׮{եv}|9 CP=s^ )i~vfs\YěxAj!E}VVBvCuuFVq7st Gy Gg]tU6ݒ3h4Re0ƯH 'Ey!?["3%BZ%;6k=*p- {oӀDkbk6;Gj0VF9 3ӹ(O.5 1A>s.Qβr'2qdWxMJ19E%C* Z<@d$}o7:3M50YXEB҆)щ{\xe0aq9ad|*!2;\-4W:&ǽGrk!TJBiP;AQVyDxRge8+^?nΐxR-[xAj!E}p(Va CPZJn:!G{$ V{iy}E S;9dt:8eu k1& ufS!ߏ{#uyVo)n*Kj_b;ܲ|:c Nz_x\$^@!߂r7]xMj!նa COup!oDm}H3*N ȑ겉[b%SŠ6`7Y;׍݂~Q^Q":|YDŽ2>u>,$s yP[-)ԎgPV8OxFQƏ\v>? Ju]xMJ19E%C%' "(k? t'CLox{9r4]YL-!6aSX͐'ōGnHSQ>d B(*a\CBu35ϰ\V'>f𸾓$SOypݟ#j+<qGwz g(g{A]P\0xj!E~S3RHdS0w {bM'cüz,Y4:..`F<|Ki6,)5ĆhYI+t6_ucx UԒoВ4𦎈cse/W|.!vRqhBa9\8xj!>E߃OKl *ft$RU#g&L9M!/i6PV;N^Ñ])XOC)Šg|Ƅ:}cdK2u{ []πN+'uJ^n]u.h B\xj!D~E߃:B`B!`kK]& ԭU(x K.a4 zGqǃt%Zm2',)5H8W?fޏ<,럓ևc^SlK ࢕QjO8ӽqR7r~^.Jb (~f]Hxj!>W?B:RaFrvY|NHĜ᪒BlKe{TBԋ&Ha o)+]1yincW[<'xml1VK )PKYÛ8Žv/Z/^ Ip4/9[ėxNIjC1o_xP -C}j}GBBD`uJNjw&Y.[E$\0#{Nu)D&bpVʥ1jUt_=:&|ys<7^G([ Ւ~Jxqh lG>nﰕ`['B`?C/[oxMJ19E%C*ӁAq-T0Н 1x{9A[c5#yI@9>4Gw&X[8z˥lALxsutT=*ʁ|:1ym}eYH.[?%jD%ie7Ag{_xyRwr~v%Ѭ9H\xPKj!{[a CZDDŽ!PAV|dwebHfY 0;vHe&zJhD:| oeyo}P|$^O6xX[-Kl3HNo[YO׏r?f{\۠77\FxNKj!{v Ys?O"t`1CՇ $kz#N&uIkL>5׸tpp3uLd}p6aU(}gp=unpQ?&cvyWjPW@:+m 1#ߎwHygH3D?ZA\x;j1Dss#oGgplZ]$=Oo|WQ4s>vOJVƔUqɄM;6pFL([R6dj'm\Rf[l{F'WcIy|&^['~`}ElՈ URKV{TuYT[BY_VHg57dxKj0EZś-!@tO?*% ]B^;zJ3eZR$=R9kQF\VfPhv{fI)R.X4-cgr"/k|VKu m0Ze|v[rY󳙐 9f[2xMj!} AՁ!drS3´z@UQ4ū-Q1]Aksnz6`b#$=lT&U*5ƬajI>g<8F]gy!R?^ڵ4ً\VzTe/w>6e `eB|Ia/zenxMJ1F9E%C*= " kJ{oWK$\2l,v)* rδfC G!m1YR9L>65h9P,$Ŭ_}g:E߃C9<@?D$R*j QX)Ρ76cH=ޣ3EXc42EVOj>YDŽ2>R|DYM6e \[-%%xѴgz_xA.{|~xIJ|/I\xMj! C$[O'v_-S$Em=J1irQ&yK T cInJ$F2ss|7?Y|Gp?xmoVKp BI$$^ ;ۣ?s p!/<\xAj0E:h,2Rhdr4[ tGx&+[6;ƐY YIW"Lܤtp<%DDE%Y,Ue֥y|GUy{ \jɁS+G8L /ձ2>&x^x\2xKj0D>ABK` 9@֡nƒѴ7s8#vUŃHb!96y-|r`vXic '.9cm,4|C|GC\+miDY.[gA}|dh .`ot[_z}'FaQ\x5ce'xMj!}pYS"t 9BjWEU͑3L.\Pf 墽 T|2&{ͳ)[D@ Dh L5\N~yzNPOqĺz)ԏg MZ)vG?׏/uϼE{bߺ\xMj!ƪՁ!&9?%uDŽ!o^?%:8}h̘<٤.!$(MOccgm󊗐feҌLXқ>è}[~x$YH&keZߗ؎gԪ OjF(^q\v36 \#G2uKv}4dq{?׏e(gu:kw7b[Xxj!E~O} RHt꼡Œ_[ {Vd58Fk 3*hFCMڲ"OшL,v&Q{Ǽ,) s|RW8*ӳɵ\<|?%S,; 3$Ԉ\yvm85_Zҗxj!>E߃KwKl :D$R*7(ɳCt"1ZcFQwߤtpc,xeD3YYC:SDӲ*?WmFr^[:9.e󥖼hb483xSLU7HyHgX4~X}R\,xKj1D:ELK}L86>@G3g|׮U1bJ%za6x^ٝzQ:Zɮ:5D Ad4Op _e~o}<6NeT[-Sh;-QBbGx-}^/˖ H.`\ߙxJ1yKf+g:I32֭3(Yt(Wz239l*LN\׌sY,m0jB@A'-h~gmLx{?p,럓ևܩn/Zo5Ѷ?r ^ O3a/W~ܠԍq(]xMJ19E%d& ĵxb`&yF֮=%]Q9hI %.f3wS͛+:XFEcufVs n:&o:WdmCOVKp%(Kbg?劗gHghj.( ɪ[xj!F>:PJu\J yN owArB2!$ q](d!R {6A$]T^eF+(Sb&+ ynqos:=4c˼[|ú~%lՄ9UB '8l~PJPlWYΜxKj1D:EFLYx$!l|L GH>"jć}*庬v{_z٘IeN8!!!<>[ #E&N.n/exMJ1sK,!(k;I1xkWEU )J+E/.;Sݐ&>ܩkd9u@Α=&"u:&oǽ痘4S0Z 60O-gz_ f v]oxMj0F:g,B)P9,"߿.v-ui^lpTdafB8XGi:(yNaZ"9;iB;49sau]lw$?dmCn1VK 9i48)ma2튯rYQzR_Z/xKJD1EYE͛4UI:hDP`ཤy .;;gpk2C!jt*)\%M%ZspG#gg-5՚#&eBLAc} 뀷}x.,Cc]؟n 5ZB moW~@mC=?߮ꢐ ZRm[zxAj!Ee0B!P$B}t G`$KN9yXm$$d1rpD}8Mp&[!eX^xшƄD-gx>W:<{c1y$UZju{ͱVsܮ/8V{3\:owYƲ. Ģ@5'[xKj1D:EL>6CВZD0#Es!GHxw:x/>GC:?ISӵ s"VK Zp!u{OzlbܓФ~[;xKJ1EYE%J*_ı|1Н:-x?c.x~WH!XHm.JoeOFBm6+^?^`k;v}7-5eX2xMj0F:싂x!(Y`<Q-U][[ec2=[$]Ikz3V z]aBkfne5^U 31Z!xMJ19E%Nfz2AA\O7fGZT-љYbxFk&v98i51wuCe (if$G1 n+m^'|>&,eST{[M]Ro8Be^9qڽv+1hxZxAj!EnaH dr-Эc?w-t 9 DLy!"Jzp:FdZoDř8;8-Q1[xq{?Zz<.Sӵ s+Vem Бl(9N߮z|\6|~v8XxKj1:EF?KBuZHF?cvU [mc9(ѓOdESS@⎃*Dg9&>g<+k ffXHI{;| _I2wV Q^i o8Vڮ~_ԕIʼncZSxKj0:E}ma uZRli9BޮjQE _Dq+R0 hs̄ZG)zp:ℼxgLi D, 5U|+u^|ևtϤtmC\{j]bo`o ^9uڽv+ 3^/Z&xMJ1D9E%I@DP:I3G<5Db65'rT1)0Iir_`lZ_ YVy9DNuV9t13}1OxW6xGS<Y?ҹ֧޹n[o5vI}CHa5i:U 3]6~lYexAj0 E>ŃJ)@r,QCbs#[<"3:Y2'YkbU39$yp: fCRpt׉ԅ1Ztq[?Zζ6e{]ZV.k_Gt !߮jQ9K&Z4SF9FS<}qmBBRRA'd+rI.[r~&jD)E/lx[nu>J]ٞPzYǟxMj!FA˟( !0uJ-Эc?[<5kEk6ʗXj,&k$oH'[ŝ&)?G *!%R9QЄhkc} _cxxH!XrfꣷL%CeImoW}ޠ?YxAJ1E9E%Cur0 TR t'CL<PBUBH_d&I0KZ̝ R(^E9B]tZO|[l#+ݶ>u{zK,#n'$$S4z ͜exAj!EAK9%up9"p1$\XTѹd1ɩ{&rLHlKX(yG Ny!|um1eȺ]>zMVS\Ooo`g1/:ڭ?sJ]9P[ ͠XПxJ1y%K~'vA<ГLGUFgւ9x3:1-p2R\Xx"Hf+l!%@v`\uu ~Z>LP?0YHxMj!.[aYҒ:8Ӂ!oOV1_6)U+SZ &{O6&.Q֖V|Ξ"9U09\BpH(|uc̲]>vOVS.7x)hEg_x|R7r~ƋF0Y*xKj1D:E?&dgrCg <{6>}&#vUE3gHZ`h3ʠrER{84r^nvMqZ-maxнO Gs}Rp9׿S߱>>"jć}iբ ޖ3\J1j˜pBBB(y*4}RYob?gdʟxK 0EYśKJ  X\@h[%xg rVդ*+DyD=*d5-QZF3 &%A)ƹ>NZWm[R{^kq{{~D}vMZΔZ3j>Ǒ JLp`ns@LKƁSN>!Y*xKj1:ELHB%(g >Bޮޢ9rEtԋIcd * iCh=yry?rAXfCgG0/bŖB~?}=mU'|o>f&Y_$SO~FzѯطPL-)xcx:'DJXGxAj0E:Œ#YPHd]z4[ |#M0r~I& Q%ɡA -bՓyDd1.Ga9YQ|+;0<𕎾xo >ǘ&\gxwl=ce.y7V }E /;߽_z+ԶԳ^WZxAj!EVaH drЭc?w-tf@9prnqi%o'Okp&'$o1G\AEǔ/irDgDc|_2c>x.چc9VK%Z esNv/] R69?iU?ZxAj0E:ŒI6RHtrK[ |:#[<)OB z8S`d#VK l2rl y~Ɠ?Z$xKj1:E>-y!l^@n"#śrB&B*;B!g)KZ6]4d0&FRNB vcҀ$Yl}-3[q=}vFY›:&h+ٝ(YxAJ1D9EONOπ t2 ${7ϙچ9ωk%qK|~Sjg׏1f]YDxKj0:E}ܖ0@:vli9BޮޢE2s.([4~18 3͸0DA]`-)e,)d&Gs>եU1[2c>x^mvgmEg`"s|2~Uo&fm=Y#xAJ19E%$L@DPIfOjc~YxAj0 E>ŃJ)@,SCbs#[<4'u3B$#lkr(΁iRK9+K'qj>ףʀwljaXW"qH_܄3: <9sڽvl .h YxAj0E:HHRHtrY-Uv/7fpi 13- G2Lgub}!!i\R4k2ό)đ#Yk;l{m|QXe]n>_Zr 4H:8-WvB+C:?Ӏ҉?8@YZxA!н}0e0  Y֒q`0/3( ڒq!eBXű%I|A͑-O^-sD#8CzHSY<֣ns'd.wK-9 l N8Nu_W\HycHgsF7XDxAJ19E%N2̀ tfO sh"s~l:1eu#n}Vԏ'0d!yOe:U/P.PtC2Y:xMj!FlJ30drЭ?[<9rؙlRȊXR(NkWJ$[W"# nɫI6Y¤…YCƤ}W8<^'|>fz$YH.[ru{V.ohAdωu6+nW(uPtA XxAj!EZa uJ-Эc?w-t&Y":h%.̎Y=K`tnD$ChlLrV|+u^|ևtϤtmC\{j]bo0Y9uڽv+ 󳽠Z xAJ0}N1{L'mĵx43@V{7*(jSZPyend%!ucs]{yra/HJQ.Cݤs|Y oeqo}h[lkVm#9jIqv<2΋sW̵e׏eWYxj0zYJ[\V @sfax H.GmS/KY'bVU>4zȍa]1yJ0szUK1ZrD) A :|_}p~<$Sܨ?#j3j(7uJVbe4 <mGNg<]cݟxMJ1F9E%C~*Dq-@w2m#[<5ȧL>zhKW9pb,\ );M *Q6hmII8/B]\-IkL,G_}noCNm{GoK7!z:om r~cUYxIj1:50`_tKFVvU͑3"M`FcwR!cB$J]c# ƣw=,c,JPJ \&Kp?}3mpW38DinXK[.ogZ0ɴ1rحvqR )_83YxKj!EyP,B2 Y@yBj@;,ö;Yhf6a)Jl,͈l1&r1VK:n0z`28'gWEk"w:-A&xԏW9r~sE~ec'V84}6>M..o8exKj1D:EL/1B!h`F2@Zs>`rVfANc)e؃f )RMF'FO)*FȒct1+}|1Wp=},S-vIc0+$vҽ_z+ԶgYxKj1:E?BuZHF?cvUAe^ "fcS!RI쎃rM6JMAC$t,>(D~_um1iy}ϝ>u\VWܖ ZX#s{k}R7r~ \-Z8xMj!} AQ!d7Y>gifN]E1⢲Ei mѸSJ2`b#M$-hP+ B0Rb@Yɾ`Js}Nv9׿sߡ>>jH}ghJcgor{_z1jCN0YVTho)6/7qrq{-?lerxUJ1ElT4M2I'idp1"qGtpaoXSΥrD~ikǙ}GUF MQmTj" =ڪX+1%[SDxZJHp7aw:skx_lsi2ZʪsהQr%yugJ$a¸?S\wz{.4׷;1 6n@HER# ] )G~_^4̓]-PAJB2TRoɈclWVuhxU9n0 E{}bCd Mir-[?22MXKD`%ΒLiBUǭuP#V:e/̌}\Ĩё 2]#|%xŮ::OݚS\ZW@9*8rjur%fۃDTt&B}M]!m}wv,NPO;ՑϐW}R52nB\4^NX lxUMK0sw[|E/^D,fMMY2ZFX/:;&UNrM^^ lD P;)YZI^XMUNff KbX&ʭCqK;:5c nx9reMX֘҅a[EAZT'vƅ^^UoYUjSbajx-n D|m" lU*K?A OXFS2 G>h}4`qPYLYn1,aXviͣыQ'a$!I{w6x0F8r{P| O\r/2v>=ߎs]j,;(Rl(Gfy$'@mJ AJx%({[Yk6fKo/jPVG32x>pXl x=[K0+mi.mRYd7]dl Mc:tÔl- I'C]ڋT%ǁR!}$6CΌu (p|s99Äe{  p1qAN ;=>./f7%[wDzOoe뮬 *5N<ُ)o ~.XWzj pQ eJ2yT}~N?%,zuRlwx5KN0D>EQ8Fh@Hl(FjZj&&}YF9yB9 ѐ(PhV3Ni3 v1'OEbtYiA5+l[jc^l;lp=lo woO 8+g(ǑtV 8S)Zm((Pjwƻ7$40T@Zm+"*ԩ 6? g͝#tW Vi7=`xU;N1 șdA+D+*lCc'yx@{$P):eulZ^ ik:a[Ʌbn"k-jG',oQwU镆9}}.]mowDkiM%; JD1e`M2ǟax RO$Bjp?v@C^l̲3>MzW5$$f9_\A!}2 sؾ_knYd?[7jxUAN0 E9iҤE#nH6!qbd ^}ۜ4^VJk JَhK+Kt08Ž0haM7~$;)\5$xϸD NTrpi}AqDACQ1WCs1[s55GE\̹!v=JZB1U_!<3Aťy;JPu;{z[F!SlUGl ~kxUMN0>ic'iU!v!$Um,8"9FwF+1Vӣh6p'6cIg?ttJTP ʄqCǃl Lo4,= zp Ǖ.f.-fV^B+J`[]/q UׂJk$Q n cuse֓zBQc4vrqzQ-@3v2zx9@׮&;ԟGmuxUKN0D>EQǿl8!M`b zU]W**)4i}Ҡ'2\̨&oQ$ÕdERjr!'Q1Iv\\%xϏcq{Kq>8WzQͷԇh!%"u8ۑs{H@ 9a?ƞUfn5uJWud:ˇy(,U4^x5KN0D>EQgb4BBbvG1J0PzW%10zaSrA=QZej(qRqZ&Y=Z$I;^Tx;\w a'18hx@(\P 'wa?c)jQj9}qm!YߔQyhG-B< x^n27RJl: f;t˚[o_1x5N0F}N)̍*qvsS II;'ENhⴚF%;)F50qPfc3f54NfĨ5&x# ިtp)lw;sAn~֭ҋٸfׅUSRӷO-xSP/FB{u 8P dDH1(Q3gÜ34ebW^x5N0CGr6 hĖ_S jO{c٭x1#TV\nAG-Fi4hɩO z't+̌TAto[.S;~r_/R=Ga #6GlM8sK7=>U_}J*.8"}ޠ1s5QRB9}|=JOFS]^Ux5N0DXhfFH\vV'0PzW5QŞL4э*p3C'v`݄B(=BruOG:^qKۊr ȧvR)'!`ӾVJz\o[m]ER 0~*G?0v T- "}PX8co?te̿4z_Ax5Kj0D:Ed˒0 ls5}rxfHJbϞIjIHC Bף{- [֒ZL)!U022 >q .+Jظ'l&c H%R8Aӽ\[M\rd<3BӭR )Be?+jœ?Fa xe;N@D9Ek@0x"6!|8b RQwuR@h^)MIȮJiVN+l@sklqkz㴕(}ڴQ Ü%S\ tnsʕ_mPn )+4T;>N~#:AZXn in`Y7%KU=ALWޮAӌ9 ӏz>ц}}7H#FR:]j8Jl5֜~MMQץpi,ZBLp"J3ȁ ӄ9.Twi\]\F/8Լ?M7X ]l#xeKN1D>EɌd!D(j|đ8À`CJꒉ)ɝvJP/Fն! zGKi*;mT:8-%I׫k{Dph)a)owu*koPp9K&i_5 kRP*uSy‘!.P5z``m~W0bh2C %?Ml~6aqmxeAN0 E94f 6M8܉sp1^eI!;oh4yU@ΰ1^.Б9ǎƹ`00{7NQ%&xϏc=% Y^.>ih nHJu;b_!׊ۚ%N,aks}r $Vׯs=`ۃdZ/8_x5KN0D>EQ8! xp~ Wz#38krMzks{+Ngpgv)2ClzHs;#;WxѾm?،;t1 P#ض3G(invX\} )'y1YHu1]=u~afOe͐#C>*cB|g U_<)Oz^x5N E|MJy5/iL  )-_͹97DhOer I& 3 z֐&܌pF%ʋKU+)+6xquǸ/n}a4ZNjx1N(<}{2G Zm((߶XjwƻW4ϓcᣕ l[B]|ѩ3;ZկKv_qx5N0 Q<ڦA+ $B8jV}Oc͔DS$Qh'4\y;m Jr+ -iTp$rfkYv›wm6w;wJIjxsǶR(A;yV]K2oJ5MBPZ cQsOֵ@&B:hE?s؇;ϯgh’\Y_Dx5IN0D>ߣXA-Bb<|+F14Ԯ^U͈0[< M+'TB+2i3ܚaB戁."QNqClˑ W۶}fz ppH\j6J9I OL0FmVJv\k{mCR }0ڕ(Q!JѶB.B> %ˇz '^Wx-MN0 9M&E#4BHlpmD4d²'DBk#td1jͲw;kĢN2ꕥĵ s  帞-%Gw Q%#H|X-~#j3U0y ̓kٞx5N P`X+ehq?SͶTP(QmwoHOjƞG+<l[B]|ѩ3f+~bu+T`x]KO0^#y8A \8McyG%=ܾLDSYS94]#kIZ FaoP%ՍUiPIUJɲmpB[mJKl Y%{bxxt&x .NK&1v@M m \h!XN.FBݴ.#ȟN.PԩnEc'n*qyI!@cf_ *G=}bc'jBx]Mn F6 Ѩ]7]Tz&&ϜDU>9"ǎj-eä:(YOlьb=N'AEt퍱jD!,+Z1jƅ$3D_-*vjAǸ:QJr%f;'\&a|`[ʩ${)h/!p(Ԃ}m^!5!⢢Rwn;B}YXOB^*>5ϼ6a/lx]MK0mIM"{""xY7ovIZŏs{f)Jr9u-rBb4+tRKl-WFJ"jZ{w:A/ef))sg ub,5N4mU;=lsP %X0O R)1CZh{NsΣBȁ,`{'4VLP|_{;WOEkֳ)xJprx]N0{?(ItBGEC}h$1wԐ|eDq@ljī7h~mg!YMk֚6RȊ[7 zK e6n}̗GFmB4:4p/ 3h5ueRW\ץr CB`xeKO0^#'_B=!! G^7Q~Tߓ ni^qÂdֹ͚uXw(Le 8ep* Eɕ@rxk)/$~lMxmpu]ʔKj.i(SU1BI2 lC4a u QNj]龄tV:L\m`|C>푿[^ԏJ_޴BR:PB>9|~=Co^;x=OK0$i&"7.&61MWVWs!m+Hi!Z5zi֢ =[0Tn{gTcQUAQv'(í s"%mi1+p1)'.8g~X ePq9n6Z)_(R\Z_YW~ZZb>p>/y~pW+>!`f .#vP:cR=,~$kx5IN0E>EQZAHlByR8xjT50 N YbT(AF4QaZ9dEpSR/ taj;\wZC'.08#<82}5dh~#Ͷm[K-x C{T!R*ЋSPSv,7{0NC\ ?4^OxMMK0/{Qє4mTӊ (I I͇7Ź=30) 1#0r!41@kն =W.=5F!HU3ʆ!LG%*T2xtp)xg?͛kM]sҪM 8>1R&jchG/;źFw@p0PbVLːxd7]tPk#gBؼ}=^?^$DjxMMK0sw[ҴIey"K>&@4]93S2"h{#L?8?t"\2Ìb਄'θyYFd=l z/ה1MzXӬClm8p. jP f7ׄyMNٗ7s [ȕ;Z'84-z7T'`ku 1Ys&"ŗ y0k~ʚ_ٮkl]xMN0D{Q"{W - %q~`9  k;gYjF%8B؉%.B(fqJjQt@n.a5xw<=xuJ>Ϸi}ޟ@LH0p9tOD@aHˏ6jC+ۖ*7,<.ƞG!.6{J;u ؋;GbX:H~.]ٟx-N0 E UM!$l'qMBd=rID 1 9Z+ >N=Pf2QZM1/`p D0Q[4mщϲ7 םkLaIs[Ȯ>a(w+pԠg8R(]1l3_J}%wYW-ШWTiBP/PbWLGh6]~PV߹l.`qKx=N0DD'P!Uk{ZJ`;E=)f53ڒ@){rv0c \G#vB*b & 5Nj:lz>[-5#Wn6vh%õc' &xu`o7>,)\2x@x+e/4yP5KLWدz e2 sͫo [&^suXlٜdס4<hkZ ~f,ч@nZۃ~`t4+/)W+m1Ke5ztTJ䗘t[H$:90A§}_)ZBG?pS\Bu[ u9;w9|2ЌucYʜKNg:ˢxQjh楨/fxeKK@^Tt¼" Š'E8t6Iw|Su}Ep L^j2F.,AԊ"7j[=7mڒaxcr#L PV%rtL}Qgrm PNiK 87K^G$bxǰ;bjx49ac O|`,ofD)좪nܿ]$G$3΅%Cd dxe1O0 *MZN$V&N[hmxz#3œpb+CD{96h ZEvn: I8(uJRJˣ,*:#Pׄ+IjSxeON0g Z(Bg5rb8Ya94#MD0{F9A:Õ5UKLA Q%40BPVNHj{knMo-.3'x2 ŎY467jPmK j??TϔW27:鲃)2HOg90;؞m)h1٣ %BJr3~x&_IXkxeLN0ۣDv; :Ctk{^^K3 HE$'O2JPvq4NXq`N0ƻ1ΌQA" < Oi]vxE.i}|kuu=Ҧv2v;yB0SZBlG_3j wu)\GJp!Pĺ2:Sbtn,h^A&Υ=~u7^=xeNKK0W {Qєi#,+cNmZPV=:͔փ֬5N[R8ejzǍqA$Lkﭖ^Im{/*k]'.-2 nclJ#l/U[ckBN93Y) jh9_fLvǐKn閉uh=BOw(co6n@ 8~}@6!䖯ӳ BnBޯIZ3 աkhLbofxeN0 9`o[gf"J V\A{8jy? 7 YLf=N8-IM7ì&t8i G]cxb-1ɾ}19IJep9k}2u۞b6_+?)/[/2w\6Q+^JcHb+xdK`#ȴ`v[X.B^ŝ[+@ƞ=ݟOWY jxeO;O0+&GbTJ lʏ/Qiſǀ`{N^2S1&d7$q)0vV{!PP؏Rksp)k\`ޮm)[| s4(%՝C)a[}a kYCU)bf|yBUу)X0Eg&J2<<_Ms jkxeLN0ۣD ^k]NI5>D4 "ΑvANQk4hG9a+cbtIkM'̀:LS:(os^ ސk?|۸!ѝar R:3SVc7{.;**e\GN8: S)a[*C(93p>R?W^wgK2]x-N0 E UmӠ!$l7qMBd=rID0jq2T\gm8b?(,b"_@#fhV$܈uJze oz鮯1%QM!ez* T'5;KΙ DZB !N_&Stݷ\r{SCb+:, A -vd lpLnKy  eE)6?/Uk- rBx5N y7%ښs4& P5-TX|~ѣ3WlfAֽRJ^LZEIkͣq8g EALޚ!`t?/(uJ1WiM^]pW#\/s-c)ƴۆG'AA(!؜c# n;ΔR}T u ~x ikۆ{\\ "(o. g͟#-k᧣y_ex5N0CFIڦ Z!qt&%ӳes&eZ;c ֚v4ƹs4r6PVz)l-Jk5[m%jBKoh"^HelN%lce+P˦MM \(!XSJ ǁOZlB(TM8VUNf1xeN0 E UCГXEB|@^_Oº=s$G98N^x-WJt($ :ґAk-jGe\wIk.y9# Ye DK`OGiѭ\wASTO>B^qO5؋ 866o,hxeOK0sw[d&Ȃo"xY&t7nkT8a{LDzdF:k٣Ay\HR#vVt;A ;m1zTKv#➼"%_๞_er)-\ZwI1H{A笺sș"05F8S7ci3BHP{7!T4DsY\txeN0 E Q+i:A,"y8jȃ_O$ su[3hq1 8&PG;iN& $3QjBvAYTNZ;5zTAZ#\>[uu/R Z4P#FNPslf;R9}qK.Ɓ5m] dn"(PFb0B{|]s+]x5N D|{Si1/iL ؚ*\~Ogwf2*"w0J=ѪXPҽҘfP.*fԨǔff ):c :-+n9Keo|=jy@\b+=kQJJʾDXyoqXt3azFM:q^Dnx0?z#1A߈7TCZ8"}gxxeOK0^T4%iI+,+1I'۲nA?N3ox)7JZ7]Qx\C(hZ('HJޣE`krmj4xO=%V&~eL'.ۼ\|Bk^TwR9lBe H4AU8-n`E;s>KGx[.nb9i.V~HfP&dxeMN0 F9*$MFh$lpfچ1;l=%`|pVz9 z+$ZIs,bȹ1V9AڠȽT =FMPZO(Z#R[,p7ںڻc{qh=BYp2jc}}?JTjkxeJ0}{Z4M9Dp)rejis9OoY#"HN8A$ZjG $ *A#!V1ͥFΜ*`H$4ܰqhTv)YITtr̾@?$H#d[Jpڄ]ʩ'₍GM .AMgт9@}^Fyy<`ӡ}xB߲ *jxeN0D|(QEH|^+|=fgtFÙph( I+ѣbB[J!L;CT*HISB$JJFI!ycHtXy>2<5k ׯRnםYkwcLjl Oʷu)\E-[-m1%+CB>>2tݳ?{E2al\Þx5N0~ Q8-PAH\ylP~3C ֠OQ)fr `tJ`hv؂yk(?2Niݯ;N' S8IKdњ )_lmJ~Y;_okoHHO\rVfc(G",0.͵DmX\X'zoHO>shxŶx^%g┻M*{sAZaɯ2exeNN0W]#_B0:ucARz9yꔄJs!=ʰn(2J=e|j%m؄1w^m'RZr0e<\ 5XfU0~k_c0Ow8QQfUP &ّ0-s%ɘ0?B.7rZ4ׇ1 a@@NqB!4,˫y #5#pZfɈaj[g xeN0 y ߡUҴiVho$6b ӓc7㒈@.bH Df^GvEL LcZI>,$4N*̅ab\ֲ q5c(Pjo\9kK5Hk2OJ%@^j6E`B X$`j/W%hN-ʆ=7#cO&v/e kxeK0+4MYdoȒd6/de덈^Ӽ7oR$-)'z i6- Rl $5Ma`;a^RLOV4x͈a%php>oq}[L/v(s uA_{UOЈ׬7Xkl8xeJ0y/-479qJ|\iRs魈+g73|XQu2*HC5\';H/4G؅iTskr+)F}+9bL^Gs0]9`R0 wTSJtOcsZo!cR)Bh"n:4C_oěs{ͤ@ΠF[ҮnPlh+b+_ҫ^!l:l#U#0xU4,NZ`w>sʕ[;u9$np-Әȱ㴖dYv!)|R؟ǘbhִaxx4)ƭ|@#BDOSp cʟ?nA(#񉦢aOZ1j f:x]N0 y ߡUI3MhHpw!8 ~}KbG8qPGZ0y"b⭀ӄQH4X FS z- ksXUӾ>:(yX RI)t]J5nYc#[s"miVBǀa-╡-!5!SXki3?qvʌ-7P׏C㏬i"x]KK1}wgH23DYM"KcEу}+sD΢"]'WKop`tpɮ#^9aGt`Kp;+!{g.y"Ožs]3lS:S\Z-w:F{*pCK#䚰앬5 i)_JRԠ:<=nU/ !AUP9{V¼Y=UǠ͌7>'-Po^jΔx]n {b LttEHy "O(M1P^{R; ިI 8(tLa6ZVI;];AN 5Sɦ]SRh(rU xo/廮kuڇc{đsm!je;J_1_ץP chtjmzB0JPb!-38vi.(\^xmn Dx8JJ_T6pm]gFgVk 9CPƞ 7jvF>nwlZ6^iI?H-Fs\ե+\\Jp~_k Ò+KH/ 4Rx.mDXթ۞oZ_|aRe?Cuhk+AC3#ѥ{{ \R(,)exUn0 w?ֆD+NE] }Jl#QӡO_RNwGG0Gf0 ^"1jh,WuOG}x46"o񠴑Vzw;zh Pu*UfŦt-ltv__@փFONSuΙ#y Y&˜rzzuB?@gpV y2 ^ec[YS#|n/0J <uPKPz4g燩.\ĐKF.Gy\ۖkrP,-9䝮@Ȁ7 Mtۛ9-!ڞwstEX,,aŔxUN0D{(?/%|=fg g"2w"Nʩd *Mq #ΐigpj&g<鄊d [ &ب'*G;5p+r\{_6+]Co²[UG͂wS'(o~6lkxeNj0 +t/ cqYB)"7fGC.{H#$"EJEL4/#&eDs1,5:& xD;9C 8azj$fkYk|6ZS#|xl/0c8R 5w P.lgK6qyLNC.Zo۞k"(- ݆h]$wwvE8O[pzRa xeN0E{(؎1ZEH|%K^c K[݇LvRJT5g#h3 d&"%D.EM:YMW /s,[ uc{CQСAfPKld _+(֥px&!ӽD+CB>>Z5#즹8?3\'x-Kn0 D:},[ "(Zt+ eWNS.xpL`G9D0ƌժޠ+٠$ 1S@zRWȠE`,&8[wLxöbJp̧'_2UsږDrV^m]cumjPS,Ÿ=~9>b# ,SXcw_?'{{R.4v8 fx]N0 E Q&i& XEB|@bE%SƑ 7ff1G‰V='XӮK -6}{!Z؇JZAnG'{9 ^(S\R_$Qj&A\|ky {)@#~=RX}w~#e]x]N0DC";vH"!>nwM_sOժWvN!Z^{ǂtdaq@( QvZ9le)x*3\ˆ)]+G.-3n4vxV}͙"u5Y_I(^5 c = YeY" "6-LFP;Gȋ=n{uy|; ViAx]K0+hJ6EOzMm7Cпހ|7{AJQu3碟Ť"8Q0(2M dGm0)ы:%; J>F]Gxcw9ٔvŔ5֞;`()W3UMu3F(i"~ " 'ɧALAAq`c|Z/2\`5$=#mi-Ёd^H% :[dx]KK@}wf2GdD(L:f0/籢TUW)eIB L=f( BF7j@kBJrD72UdE{%+iNٽc yv1kʍۖm4FrbEUiq7TG  C\Έp>a{YqgJ0{P*W73\0x3A i𪺳{v LԿecrS9i<x]Ij1 E>iBCrrʴk^q謢GfD %Qұ d8y4GafF-'$ɸUVZ͉+EQ#c̳ *2KL˞eipnɕrmmn_N)cinBI+î͎(!_^NO]Fikyx5KN0D>([`ۓvfD-JzU{k`OWERko W0 hd*#7Xm=PYNfk]Zqo.%~; Q`aXRm* Wzi+*t~[U,?XZG&hv:N1 _m+C^r&NLYc>T]\8Efx-Mn 6C5FUnp4 P=v=9'"QwRݤ&cgՋ^pHDYD>Q"(h4K/P Òް=\쟾Z6:][-NTP-ƾLP#91 P!0$Z1Yz xP|yx?iܝx=j0z76V %BoR®NrJ߾e6'f0,e׵CcKY݌압)MX0qȠQ`-iB=*Cj--_b 'm<:4ʴJF p#)s*?/1}a-Z9]9'R}ר2T$tZR< ޱɓA\a'bHCǼTo /R+k x-Nn sTjU굿0AMHcl>X=$"fHZH|""/&79G<vbX@kzcK=j#4Iy0vȰH1Xw.O_ـZWbOB cC)fׅ<]\.SQn!oa4RcXlc!0lh7>6g Bus~bYV 1a8x5N <ٛ6@K77jL 9ؚ*?>իf2fD=zPQ`7aH a+p''096dYqB-%H̶ /6m7$اB΃fkH͵X[W(Qmk{Y$9t'hRmP,BNBMpWwto K[^:x%Pn W,UZ_plPoxF#LA^hmB+k )xn,1S灂A.Ah ͈~p'6aSޱ\?y"~7{mk .ڦj K- 2(xg*-es?T!9.gkڻW;?9avx5N0}7bn՘Zz ؞}3PA8j+C$*7>bTќ`","sfDrNN[m&h\է7xm)-=bX}sx!Gi\pΦ+h5v~ ZU,XZןk)+=N1?[%8T2KG/)笯 :Xo}H@qDug*#sRWYDƪeCTpsD]ULĠכ봆$?U7=^2Hz |Е.bQP'vĺBm5lwߔ0H>lA"mc6yY9%hqWRu6TF6s3H"1L+!NTIjm?Vd/LX~pɱB<@+%oꅲz+::hd̄+31hZ؅QHf\T݁7'fQGpEaT[V1d)X-}ϭgWKE8A]PD>a`# 9gpw^k6NtAOy5y6Owup@Sg Kx 2 ':(v kl<⡟ʚBsNX7H4bׇG(76Tߢzrje'+@ΰ+!>XC+ۮfg8p.ٔHWW\o; Vu҂}s,3Tujr{d6'_t22 \umkijx< rAj2!M@\_v,Dd$ETyM' 43x^: o<q)xIWh@{Lq4Z a,:KwҶ_m/$ς+ÝO uc)61ݖҋVmO2^u ]m!·f gt~s(="y?- :iaOOfW^+P3lO/9|5:i#*vWjFٛ9HVN4diw`/@%2eNҰ}C/Ͷ|*r9W+,\4``۰2֜NΩU 0dz2EkcX`mm} Y?:Eݥ]s~QН5Qx340031Q(I+)(H7365K)Nfh^=L gIΑ}-{Xx340031Q(I+)(H7315K)NfX'j*w]8y<kx340031Q(I+)(H7315*M*+)5K)Nf[˓,*2[N؇je6[:Sx340031Q(I+)(H7315*M*+)5K)Nf8^>a%߭j9x340031Q(I+)(H73153,M*+)5K)Nfl. |ŧx340031Q(I+)(H7315,M*+)5K)Nf_zwWr*Ǽ5K1Ҧx340031Q(I+)(H7315,M*+)5K)Nf`3[j}9 ^l_r2\x340031Q(I+)(H73153,M*+)5K)Nf(6k/~N_o^. Lx340031Q(I+)(H7315,M*+)5K)NfxyOo;;Vu =x340031Q(I+)(H7315,M*+)5K)Nf40ɄNarwGEex340031Q(I+)(H735,M*+)5K)Nf?/ɫ7ڷc )0x340031Q(I+)(H7353*M*+)5K)Nfio_yꎔé6x340031Q(I+)(H7353.M*+)5K)NfHQ͓عZgsՙsfx340031Q(I+)(H735*M*+)5K)Nf0|oR,MC*}~¯x340031Q(I+)(H735K)Nfh7[ݾCx340031Q(I+)(H7352,M*+)5K)Nf>Ň fJx340031Q(I+)(H7352,M*+)5K)Nfxe8mfz x340031Q(I+)(H7352*M*+)5K)NfO.%]mޫ/{rx340031Q(I+)(H735,M*+)5K)NfXzRZy}ݱ4 x340031Q(I+)(H735*M*+)5K)NfW\@qkؖUnʥx340031Q(I+)(H735.M*+)5K)Nf}vΑ%, Z.:x340031Q(I+)(H735.M*+)5K)Nft;j_/r Vx340031Q(I+)(H735.M*+)5K)Nf[wwAnrۉ+MΰĮx340031Q(I+)(H7362041035.M*+)5K)Nfظ*&j̪9=\ʋŖ=#x340031Q(I+)(H736204505,M*+)534303K)Nfp>ZduKK 4W%x340031Q(I+)(H736204505,M*+)534343K)NfWiCNwdyGBx340031Q(I+)(H736204505,M*+)5K)Nf- unOL$J\x340031Q(I+)(H736204505,M*+)5K)Nfx4y s`_T^DBx340031Q(I+)(H736204505,M*+)5K)NfxHR6s:W>ʴ<D/x340031Q(I+)(H735(M*+)5K)Nf=qEKo3,Cx340031Q(I+)(H735,M*+)5K)NfXZ.yWd*]x340031Q(I+)(H735,M*+)5K)Nfp0z9wfاo6zeox340031Q(I+)(H735,M*+)5K)NfP f;ܺQ^3L)x340031Q(I+)(H735)M*+)5K)NfX^%YWx340031Q(I+)(H736/L+I,KKI)IdzBC)(cUf0:lZNѤ?vfqc31bEF<;^OkzsBusf,A@+yҢ9poƼNXar*w9b]7p7pV=vyqtI7,X6-G˿\ksǗ&ZVx$&KiI$뫱be"ۗfn{)jA@+j4[o̳ OJ6cg`Y)'mVU ,e׍˛-̫P+fXS=l:\ۋ ޱ9$JR%B:>rYw]?۬*vf XX`b{^jjFNgw~zLہ5FŞKU[cj36204103E[ :x"1fknF+6o]gTomjz[(Y=Q8X`u–)"OTL:+㻑 FvŒ33A~,6WuO_`Rqxк=o[ Zz&G떞5%FNGVpoB ϰ}N cx340031QMNMIeXhusZHy5)I+)(.M*Kf9? Uο*a6S^\ !f[-x340031QMNMIeXbpI9\[_)&883=/1G/kp SutSW&q,%157?oY-3c0x(bǹf ^y6CHwB)TEzjIbJJQf^Z>PYE'1/v?C(/(`86LzԂ7߫93CQ4{מ5gL{RQn h UZT T/7Oguh\UJAU&'6,)z%m|-"?Xz{GyN8x/NUϒ x340031QMNMIePr5-߯HU^ʩ'b !jR+JR2*l:˩N{ڼ&713O/aOo o%E>P%i%zzy [#4L?'DVp1vߏ٘o}}oRp:dIˬx340031QMNMIeXlzotHŅ7~iQY{AȲL3wh(5,(?fm W[?*xGz<0ssr G;:ђ29M0? ?ߖ*yNz?:¾lq#TIqbnAN^QiNj1CW[[;Kw}hr= rYw]?۬*vf XX`b{^jjFNgw~zLہ5FŞKU[(~X:8x31=c3]COIm}4a#;)@1dWoi+_Ǔ?S~?FdIy% 77/{g~;q?VXS7"9NLtAÖl{HL a&LThtzMUE/ua 5lݗdi|Έ!i粮)F\!J%u?9ix! Jm5_RjNqMI;MH,`4-6H &Fy"CX:#_ on<-_V!OZTb5x31=c3]COIm}4a#;)@1dWoi+_Ǔ?S~?FdIy% 77/{g~;q?VXS7"9NLtAÖl{HL a&LThtzMUE/ua 5lݗdi|Έ!i粮)F\!J%u?9ix! Jm5_RjNqMI;MH,`4-6H &Fy"CXD3x31=c3]COIm}4a#;)@1dWoi+_Ǔ?S~?FdIy% 77/{g~;q?VXS7"9NLtAÖl{HL a&LThtzMUE/ua 5lݗdi|Έ!i粮)F\!J%u?9ix! Jm5_RjNqMI;M78?0x31=c3]COIm}4a#;)@1dWoi+_Ǔ?S~?FdIy% 77/{g~;q?VXS7"9NLtAÖl{HL a&LThtzMUE/ua 5lݗdi|Έ!i粮)F\!J%u?9ix! Jm5_RrYw]?۬*vfT-Bx340031QMNMIeXlzotHŅ7~iQY{AȲL3wh(5,(?b XG"~at͘#2a |[݋*}M,tv'ҩ3^Lje%4CQ`aX96ٞ?-&pjTTIqbnAN^QiNj1CW[[;Kw}hr= &Lu칒OʷA$sBVd }05F@{?\v]B5+_h9/TEEnbNN~2P'% =obZp\7;**bζ[N wCM:Tl x340031QMNMIePr5-߯HU^ʩ'b !jR+JR28N~*mR|ևu.B&f%3d?(* P%i%zzy ow?o ~ZȊz|_vyc+"wCx340031QMNMIeXlzotHŅ7~iQYpȜW9S.ͺ9Jk*RҊsvd\~ KUe0e"^ţ`or ]5A?S*󚢳7}v܃$!Xq~'#XtUM*)N-I+*I-f|*ǰȤS+I+)Hѳcxz FbꤧO" EU2äe8W{V&Ǭe(J2*tR)ԭ&ck?/SFx340031Q(I+)(H736/L+I,KKI)IdzBC)(cUf0:lZNѤ?vfqc31bEF<;^OkzsBusf,A@+yҢ9poƼNXar*w9b]7p7pV=vyqtI7,X6-G˿\ksǗ&ZVx$&KiI$}x340031QMNMIeXhusZHy5)I+)(.M*Kf,`)ӥ/. 칬?t]{jj+ x340031QMNMIeXbpI9\[_)&883=/1G/af]z?:R*MO*zww Xj'ì`ST\RRZT >eF޾|W; x340031QMNMIePr5-߯HU^ʩ'b !jR+JR28N~*mR|ևu.B&f%3X5~ Y[̫۱}*JJ 2f\'.C&D%3;4;192WUEDGx340031QMNMIe*znrFR|eQZQZ @uSyo>v&713O/a tʸepd&m(I+)3crEП7 |^.bhiBV,ZyWCVoIEqiR1Pe+)JBdS}w+tU )1sY鲻2Ks^rcx340031Q(I+)(H736/L+I,KKI)IdzBC)(cUf0:lZNѤ?vfqc31bEF<;^OkzsBusf,A@+yҢ9poƼNR x340031QMNMIeH_gNUa+B$g%%3y,K/GGCBĜdG~y𮎵|v2 0E%E)@E\ڭcA_f7,ҹ:Gx340031QMNMIe*znrFR|eQZQZ h(^0?'ZN6£B&f%3LM~v^_{~UQVRg;]wjX 6voAV`h}gL<^>T&UYlnvldR*_u1Ue0̞Ǜf)RONp_r`\x340031QMNMIe`\|fQV xQi&78Y/Om~#~}OxxXPp.TEQjrYZQ~.P*)N-I+*I-f(ޙjܷ$ bD'Pu%i%)zzy ޳l5>ԿPT%3,Y#Q*~VF_ָyPd0#Ǽ{>^ |!x31=c3]COIm}4a#;)@&敔2ܼ$KXbے5x31=c3]COIm}4a#;)T >;x340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}MXYbr+!< ΝbNP+ʻ9 [2̼qUboL wQ6lW"& ˺fTW63Mf­^(N6W/!@ ˙k=qfmd`hb`f->8?|Ol{WqDt·36^K͞(M ,:6îsR·)?nJm ̾lW^,9?zy*bs>M_޳[޼&ha뵲Û-n[z>jYENͬl{ʮi[&*Nghxm0yںmٹk..*Ch7J1t[ɏ+i._h*uĒlX Eu~,^E+亮fz|̼y3#C  ׉l!VmRN Mݭqx⺭աC_׉L[7_xxrZȻ|tӌA4C%&>xClyPrAeG:`=dYi ЀJaF~:QA0Ϥoݱ}Q1GE:RUJ$q :n(hQzNB.\s_9nDx'dZveM-BMLV'&(\ΔaW ` * |u-8h MCnuLT.=Ò c+s ngY-Ӎ%Y:imiE't93oBe(@ɗMҝad0x]l՛V#*:}˒{eHgFƲv T1bѰc5M;݋Ocw[!tU/E:dFmdURȲ_1ҹ H"4?̊nM€Gɬϝ7z'+a&l׵{1&HJndTf2Wt0|IoUá*U$?YaGZ| Y Km:Bz7Z=kES*5¯@:x2*SWiO@4t&mP/p7TP8nч1Ĕc}#zT\?0Slwϵ.; 굉u@$NG[7{P1[ƥjmx340031Q(I+)(H7362041035K)Nf31sώjՅ7*x340031Q(I+)(H736204505K)NfPȺ4̽[Zl:?>x340031Q(I+)(H735K)NfpronK2='E$IM Y`%x340031Q(I+)(H7354K)Nf.XeFpK]Lx340031Q(I+)(H7354K)Nf0>$xb#I쟗.a^x340031Q(I+)(H7354K)Nfu^?ٝ瘍u.HgRx340031Q(I+)(H7354K)NfxF؁iK>n(eex340031Q(I+)(H7354K)Nfp<㐵GR{0q(`x340031Q(I+)(H7354K)Nfxvөu0̙1Ϗq/mkTx340031Q(I+)(H7354K)Nf|Xwrg5H ^Ubbx340031Q(I+)(H7354K)Nf:|P{fO̸zoKx340031Q(I+)(H735K)Nfx#ʶ󯠐.I5a_x340031Q(I+)(H735K)Nf+b V\^۞)[x340031Q(I+)(H735K)Nf<'1QӫUKQ>?kSģ-8\ x340031Q(I+)(H7352K)Nfi+ṔS܊﷐ix340031Q(I+)(H735K)Nf8jFkE)"N'գ_ x340031Q(I+)(H735K)Nf ov@%l>f6c$x340031Q(I+)(H735K)NfT_'i荒m٬O8x340031Q(I+)(H735K)Nfzꦂ5.N;Z\3x340031Q(I+)(H73ҵK)NfY"#fkJ\NHx340031Q(I+)(H73ҵK)Nf8ˉuѯ_?hyZAv2x340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}MXYbr+!< ΝbNP+ʻ9 [2̼qUboL wQ6lW"& ˺fTW63Mf­^(N6W/!@ ˙k=qfmd`hb`f->8?|Ol{WqDt·36^K͞(,\ OSfk=7 Zz&G떞5!*`nѵSp3k/۞kgkZ#8ͪ*x340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}MXYbr+!< ΝbNP+ʻ9 [2̼qUboL wQ6lW"& ˺fTW63Mf­^(N6W/!@ ˙k=qf}R5S^gǷyMH'ke779Z\įW}$,VpY{];[MT!8,od V#x340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}MXYbr+!< ΝbNP+ʻ9 [2̼qUboL wQ6lW"& ˺fTW63Mf­^(N6W/!@ ˙k=qf}R5S^gǷyMH'ke779Z\įW}$, 7x31= ]#=#gv g =:vOõɳ/ +1fprTϚޡﱎmSK6p%z ]:*гy3&=DVpo")Iӹ' T@Ѐ]:b;o*,QFR`Ȱ|7nX߷Oˑ11lyށ/d+T!lWc-2^ ]Xſ:=,7 lO:㶓XW2.q7<;}e15hur/אָLKlz% 3ؾCEyF ӧT!)``jSr˕ U׺5IoK>Rّ_ƦD(0bD ={%mL8HI 0YZ,og{L5_I!éu7uZia!B3$F &{)= Ni@IB1sͅ0^sHrōS}rkBޔAz<xV[6>a$ .P1ox)6'/`~ N ~,^vD¿V"-{(hF'&RS*; ɷO \W˿L͚~d]wҷ pzm8!a~!oc.wǭ}{7;n{TH5x31= ]#=#gv g =:vOõɳ/ +1fprTϚޡﱎmSK6p%z ]:*гy3&=DVpo")Iӹ' T@Ѐ]:b;o*,QFR`Ȱ|7nX߷Oˑ11lyށ/d+T!lWc-2^ ]Xſ:=,7 lO:㶓XW2.q7<;}e15hur/אָLKlz% 3ؾCEyF ӧT!)``jSr˕ U׺5IoK>Rّ_ƦD(0bD ={%mL8HI 0YZ,og{L5_I!éu7uZia!B3$F &{)= Ni@IB1sͅ0^sHrōS}rkBޔAz<xV[6>a$ .P1ox)6'/`~ N ~,^vD¿V"-{(hF'&RS*; ɷO \W˿L͚~d]wҷ pzm8!a~:x340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}MXYbr+!< ΝbNP+ʻ9 [2̼qUboL wQ6lW"& ˺fTW63Mf­^(N6W/!@ ˙k=qTէ3x31= ]#=#gv g =:vOõɳ/ +1fprTϚޡﱎmSK6p%z ]:*гy3&=DVpo")Iӹ' T@Ѐ]:b;o*,QFR`Ȱ|7nX߷Oˑ11lyށ/d+T!lWc-2^ ]Xſ:=,7 lO:㶓XW2.q7<;}e15hur/אָLKlz% 3ؾCEyF ӧT!)``jSr˕ U׺5IoK>Rّ_ƦD(0bD ={%mL8HI 0YZ,og{L5_I!éu7uZia!B3$F &{)= Ni@IB1sͅ0^sHrōS}rkBޔAz<xV[6>a$ .P1ox)6'/`~ N ~,^vD¿V"-{(hF'&RS*; ɷO \W˿L͚~d]wҷ K11x31= ]#=#gv g =:vOõɳ/ +1fprTϚޡﱎmSK6p%z ]:*гy3&=DVpo")Iӹ' T@Ѐ]:b;o*,QFR`Ȱ|7nX߷Oˑ11lyށ/d+T!lWc-2^ ]Xſ:=,7 lO:㶓XW2.q7<;}e15hur/אָLKlz% 3ؾCEyF ӧT!)``jSr˕ U׺5IoK>Rّ_ƦD(0bD ={%mL8HI 0YZ,og{L5_I!éu7uZia!B3$F &{)= Ni@IB1sͅ0^sHrōS}rkBޔAz<xV[6>a$ .P1ox)6'/`~ N ~,^vD¿V"-{(hF'&RS*; ɷO \W˿L%+x31= ]#=#gv g =:vOõɳ/ +1fprTϚޡﱎmSK6p%z ]:*гy3&=DVpo")Iӹ' T@Ѐ]:b;o*,QFR`Ȱ|7nX߷Oˑ11lyށ/d+T!lWc-2^ ]Xſ:=,7 lO:㶓XW2.q7<;}e15hur/אָLKlz% 3ؾCEyF ӧT!)``jSr˕ U׺5IoK>Rّ_ƦD(0bD ={%mL8HI ֞k.uC+nzg[ s籘}t޷Jio!.P1ox)6'/`~ N ~,^vD¿V"-{(hF'&RS*; ɷO \W˿Lx340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}MXYbr+!< ΝbNP+ʻ9 [2̼qUboL wQ6lW"& ˺fTW63M`٦x340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}MXYbr+!< ΝbNP+ʻ9 [2̼qUboVCx340031Q(I+)(H73/L+I,KKI)IdQ3/kw\ݐ,1}M^,Bx31= ]#=#gv g =:vOõɳ/ x8x340031QK,L/JeqGTi#ߍ-g w-]fQ̐]|N²y:;% OG˗6ոc΍fky}uYT%z%i% |nYroqPu~nzy j ߵ:uveg`B}NwVAv)ߜ_j%[mn S0nխf^XSvL/?K-vUee<8G{7:7rgj'o TgnjXZWPe!mTXYqM($17N?3ވa::m |L}3x^5(+*R`"ykfi!?r`m@~tU0k2GA6{Ze&A\Ǡ2LDT'TږW\ eWC' 0ݟkM19I 3~l=I ŵo7*u ( Vd楖00j wˏ@RW\̠mVd7gt'w']䱳q>4_+[xi m?믟♔|(t Wwz63cPkR3q)feS[iOd e`6x340031QHHKOOg{nknU3&e7ŵ s K$|c}4hxrpy%E9 $JʆZ>Xn+sJ *23J e7|93-,aWy1l PڒZ0jng˼u)KH9U->WэE3?3hBQiPwp7 ?ww9ҢTs\צKd/v0np:ʒ݌Dba9l?֚1?zjz&̼ĜW;^3BX"M+rutusIMLcHzm{ߏJ4cc,06-3ș$m~Qx0Ԃcǟ{Zj˧oPPZ[ R{32;:oo,:t{bт32Kgc v9KeaQ  mI‘k6<8'3eEE)@̳h=-tk 39C[A~q E8%ft<#Ռs.e`;w{r[Q۾g{ ڒT`$h6 7K| @0d 6xk Y%'W x340031Q00M(+H,I`^]mV({}%WB%BkMq:$?*Tz&$ޔ~'CC˴ 7䁩5--NMM.M/HMLI-4Y{rϴ;~-8(3aݥvJ|9ҋ*mT$x340031Qqq cXZvx_[NJY !ʒ J&4*z\K) UR!s7voSՀ=6?x= uO,>w&lP`+صcLM!Lӂ*H)0)KV-z6He8[k-+(G~㌰W s@ ޹TxC0ݣZ+yD@d_eSoW72k̄,7UwUjhϋo^[7B䁭pS"dn>ǢaU ,ݖ6V{ WR'cěU\Br(g|H UST RK]h֧G?{v `wH3__jqk3O܂p06xr@Ub `V2l2^>CqfUӲx340031QH/M,aZ۴xؽϨop7/(+fPZro~:s?n>%}5,x340031Qppsw fȮ>'taٌ< wmv!D_pKj_1Fv<^a>,S[7ڬncm8:_g?7Ow<ZQR貌dzJi0UA>@';co/6HNMIe(]Ģe$nnCj\]|]&?mϹ-Cd ));цӛPT&eT2x|=|-|<>}>TibrN~rb^ Ár֔4R@U榦 %yz E]r<IE 1Br~nn~}s4_3:9˹_C-KKL`ؤJFi[>޳GQSZ ˪GW.sd{JZfIJԤ<V\3t酉۾BݜW\ teWC' 0ݟkM19I 3~l=I ŵo7*u (u+2RKRf?~5WA͌_tV߻Gvu@ ' fU|$)#) g%%lyZÞ"[P[R3!)feS[iOd ݜ.x340031QHHKOOg`hlϷm9l7*-H,axcFфɡ&ϞU0̍jҞ֪~lK=W^20ÕTeg0y3/k~&2g=[ro P(g8yۣ-r>dU诟4T4'aO}p^uԊ݌Dba9l?֚1?zjz&̼ĜW;^3BX"M+rutusIMLcHzm{ߏJ4cc,0%-3n_Mz')/+pC-X8;\w/8խ+ _g~$-3f!U|  ({A{㿍A B.̦&x340031Qqq cXZvx_[NJY !ʒ d\dN-o-~) RA JdLZ.7y,*o` RA Woi09(U RG3YT~)o``)()ؾ~UzVټyێZ7 =wQ |?/yȷlTAf HA͖]33.?!PM; }_ttjκm? V,U۝y"<~ ulxojZθmjs;7Fyܠ)G.BrO&f'd<*()̫yʹ~U듏>밪.ex;pSz0ujKRK,br3IQV<ǡ2 CyiE% soPZT}:60Ҧ&x340031Qqq cXZvx_[NJY !ʒ ;߰\sA &@$sc\7(4f޻uLA*HAݽ"iݯZܱ}>gs RVEtYt|ѧ<ҿRc 2A |^ase)_wcCO b` jߥnkHm]^ =8AivΡm5@dp,.rwEy?]Oà <:5&(/\\b> lEC3sdDfZ^zz#TA؊K5rRV`ɋ ❂@jO_ˉ|RjUST RҿUs.o/y: K TAq6H%^@O>^0e A$zLv 8u䛲Ś73 JRs rKR}W'i^qGFªxg?ag sۓg=?,s_x340031QMNMIeXlzotHŅ7~iQY{AȲL3wh(5,(?jpGBd9m?.̔:]U#o+Z޷{\YobpU@fXhI?p&EICݟoKy4t9T]IZIA^fCr W^]atr}a(&~]'uS/Vl$<Ŀm3cg\*o x340031Q0000M(+H,I`6Fjw]u=E'U%B$ӹ4M5>Oo rcļtqZxOY TdUBU/UQd=6C$4SS2S|LXz˵^-jRNx340031QH/M,aZ۴xؽϨop7/(+fR]qeEyzpGf*-&x340031Qqq cXZvx_[NJY !ʒ nQXշaQHÓwVz %`vKYe2ø `-|M߂~T?ɽq6R/C 2A k%'wŜ*VɁ}ʿ-K@dp,\d=_^⚡ +>>q߷JW^t:<~?){|uJ IeUPb-B> |rӌ#cx k׏WHcsעUST R0mޓv O,hlulK0⽾潟 }\7a @ bl S>/&3A$cA[u֧ZYvho UX2vRiGy/l/{?[3x340031QHHKOOg?ۼh.\r7*-H,axcFфɡ&ϞU0l]'Y(̱}lgKJ *23JƩ6/@2ri|;<&@%9#|s_nywyyƅXTBB}=zsap O`(+n~YjQQf 5,&ZO}?L!vNV_\%Ė_| vmjuXU2Z9-m_=QCmI*0PK!u\mgRvU4qL~H8x340031QK,L/JeqGTi#ߍ-g w-]fQ̐]|N²y:;% OG˗6ոc΍fky}uYT%z%i% |nYroqPu~nzy j ߵ:uveg`B}NwVAv)ߜ_j%[mn S0nխf^"\ȠhեM6k~} hBQiP=Ԁ5^e^q6 Eɩ 6o~5?Nu4 ڳ$@7 Q/%?kX/4uϳެ03$1ɝaw_yWbc,Ԧ:깤&e&1pD$=w֮/G״U- ڴtݧ}637-Nց `Gu>y֥"0TV$ģoGYėqiOh̼=,g?UtP9XTBB}=zsap O`(+n~YjQQf 5YJN '_+iV_\AəO+.7VE lnoxV9jWlOTT[Z_&q:{T`&]TCHJֺ  )*aRyukFn~㷬u"x340031Qqq cXZvx_[NJY !ʒ j/ۦ˯ RA ~Ϲ1b.3]ͺr Rseֲu:veoZQTA*؊Roܩ&Ģu͆Pi %r^}xu0E q_p>m}BLl㤅Xo@dpk*٨[`r&,73w/]-n yP`+{||eYχ?΁+w y?O,'^KgCkTMQ)H4W3a{ l6C5Kp%bQwmZ܂p0tEߕI&eQ*#dX% aMf#x340031QH/M,aZ۴xؽϨop7/(+f-"s. Z|8x340031QK,L/JeqGTi#ߍ-g w-]fQpf,S[7ڬncm8:_g?7Ow<7- )N{^^h^ePUP]7ZVT$fe2zuٯzT6nxU0qi{m>'KHIى6ԇB85(aʋB6'X_TibrN~rb^ Ár֔4RpUyiz :6]t7GQ/++s375UH,-OO+`f)2L @!9?77?߾v/F/ӡlc3u`*qEi_VAԔ];vj-ps-@>ªΗrf/g]2U+ ⢔Ԥ<%VO-yvX۵ j[f^qIbN.c]$ävҳS=,7!d&1PsO'6׾5ߨW14[Z0C lf-?I^qAj2{>)}ֲr4.tE UT]mr˳8q863)I)~̇nBH0pUFffDG|$ԚԢL`\5c_bweet}xʸ;nx340031QMNMIeXlzotHŅ7~iQY{AȲL3wh(5,(?b XG"~at͘#2a |[݋*}M,tv'ҩ3^Lje%4CQ`aX96ٞ?-&pjTTIqbnAN^QiNj1ǮNYb3h$ EB/3a뗖Y>TlQ)U N2;R(`xxc?)A4sę7L#x340031Q00M(+H,I`r-EJͲ 8H8?9;TYy/ڞeLnAQ~z^bn*TCr_A5oLnnb^Ab:LV!7W|3YuL'jKSusSs *ut3RSR:g,*q֞3β_/he-LIMLMHKO-5352,M*+)5dx4=dwb'^78(3aUV3]~lJcnx340031Qqq cXZvx_[NJY !ʒ pY_albdzk:׈߾U R~礩 (M>wUiP`xo|^h{5BU3t<}'HE?ZoanjPT}Hsųm-v69nhxXs0ڼL&PWf$'3p a?􅦎y֛U3f$0vŜx+9zIm XkxKjRfbC*#I-ur,q0?hDB\ze(a\ZqйOPfi?:PK·?}\ԊPֳޚx326; PY°:\K_?W8m2,*!Ǿcក?c~0I8r׆'_0dA7,(3蚿9 +T=z0MkV_\3TtFN{<7}XU2D[6_c>c-Ju微䩚Q_MR1 T\_&q:{T`p'TCHJֺ  `,*a8tR0msx^bɦsjAx340031Qrutu+/-JNeضu?ߊ|~["cZ~!DarFb^zjN~:ɯkew&}4޴ԧ͐P܂~F Ηݞ# 8u'р׵7=D;Lkw'(3=س}oY񢙂&@%9#BdͬK*4/$mETE>ÝIn/k |>kT4: g:[2':YlsVIa69yL l,I+)(HKO.fxsh M7g++.Iax539/Wa?s,%b?`=ԤĻ0dߤWX+t#x340031Qqq cXZvx_[NJY !ʒ / Ұé1ǵƨ.*HI)4ʽW5&_w*HPE$F}gwc -FVMFӚS/H]ihSPR2=Snܜ 49]9 UR`)bpωv}h2 `-'eSV}닠 A Z'GDVo{_ IP`v0iywk&owES `ZTu;J=?2]iTAqHkR.mrntwmP%9%*almPxXfCVe;[n߿ԤÌ}ɕvsC[x340031Q00M(+H,I`Ӱb[]I?^53-(OKM*{sZ6|2anԢb' ,}Y P 81x340031Q00M(+H,I`Ӱb[]I?^5+N-L-fh7;6LU V".x340031Qqq cXZvx_[NJY !ʒ LU؞.LxY|߄C|duX(JiO AM8ĥ{]+31ͽ U Rٲ9YyE78}|!*dϥJB/z URwmKg]:qŴP% oz Ts3:]PTv TAV"H+[v~:U󙢭P`Z4Ou4.싳{<|3l!os7Bm "yٜWf}}$5 '^% vsl{PgFwPU~ îZ>yAugɋO_R4x340031QHHKOOgpJNROm;\jU[XP(6ҳsu`WWR0;fKۣ.=j|GdAfʢ\q.ގi  P(gXZTpg5sI}GhBQiNj1Úu\y/d{˰eߜWy/A(I+)(HKO.fxsh M7g++.Iax539/Wa?s,%b?`=Ԥ}\ԊP-W.x2gSt}tq9n:3/ACENfl?H9t5c߱pO1f$kÓ/ K@ %;}U8"C?aU]6+przDx-RRq1jRND6{̩'0855w_MQ>2?O.?#u#w{.*(I-I,W Co4"U~ ~r䶜Eu7{Ήx340031Qqq cXZvx_[NJY !ʒ 6Nص@I.r8>+e@|_AZ/%LڿT R&9g?ggy U R\KיWsXgyx=LAHm{u*[j|wm)TAzHALu^^F]7 51CwTAf H+fܗLܝTTAV"Hߡy1Ӵ y lI]%:ƚn,Tv_STAQ)HA5>/+?Z/XVi\oTAqHh`MǕ\⿯\,$5 '^% F)}4/~lªxg?aU%8oqp^б9x340031Qqq cXZvx_[NJY !ʒ 6Nص@I.r8>+e@).g)~H1so *HsBnQveWLO9TAZ&HcSS]i{.m#1=5yh8\ϐ,*H)[ųYIoTQ*,)PUy߰c YbLK A ]a+g*(tP|+2|VT*}OM*(*)0qCg{h;= S~|;sj5@$ë!ӺaWP(vY*ʈwIK6"LY%8AԩB|-x340031QrutusIMLc!vށ''N7^V72CļԜt\kQHlwv0E% u7>Ub5"2*Js J>rQZwS:6UfӜW'J *23J7I;WTIKtM @ a#֋J5i7 hBQiNj1&j V۵㰮=OjEIZInFA^J~r1 װCkM_hꘟgY5=]aZ&W;^3BX"L+z1-3a:Z>R 0>m}~n#ڔԴҜő{>o|n[A ۖ8b [c_qf06{0S%[h:yRQPZ[Xtq![12O뼓-&$x340031Qqq cXZvx_[NJY !ʒ \:ի}5MxҶ`U8*9xMsFq`MP) U~+^n[(WV2kvܼcj"aB}NwVAv)ߜ_j%[mn S0nխf^pp=lb y R_Nhy'L? "|[s>^%pƓW\(%5)31aޅ7ܺo|;qٿ e$g0Xvu1 ︔mBJy%) 3L f/:+#:&3qPd] y:7u-{KGվqV Lx340031Qqq cXZvx_[NJY !ʒ \:ի}5MxҶ`U8*9xMsFq`MP) U~+^n[(WV^rLURZK惷Xox UEmT);bxhTAtōӘ0tY*P% ۷GKn~Kg;Lj9sě~1%).);@.?_Y7 >R[XBۧ7j,>Orw,dĽo n'Yu 9 ?C6x340031Qppsw fPb{VSӫs8RemQpҦW|̹l-WXO.D$FU؟Grt<ˎ{wPu~nzy /GfNS㕛wPmP$LUPI*(.Kd ma*S2sR+gtʝm 8HjB:2L\ڞs[RRv 7+NM.-,dx q+OXO 1*MLON5ajjH í4\=254 *?/-3]/A]m?͐?ÿ(N&@`燐UT9m&Y e3#SOkW"eμmZ2P)TMiQ*$Nml2A@E i@{dui >tAE)Iy xexDkP2Ksrt3,::I(Itgŧ]{XnBLb2Fy\>%'^ 5(5'58UhKduԍ}P'ҐnEf^jI ӯ*H {Ȯ$ez oG_S]wKd3k/ώ.{ d4)1ov՞sN=cLCH0(WX`ϼ[,L+5eEř\ɢŪq&,署ҙvXRx340031Qqq cXZvx_[NJY !ʒ d)ft^` A -XjVzObzlBDy2.P) :Kokqs_a"0I?ϑ ׸J&|Y&Mw?RR2,/?;m7-Ӓj[f^qIbNnqeWC' 0ݟkM19I <[&=(o~˧=KEnEf^jI ӯ*H {Ȯ$ez oX+?m’}9؇䱪꺫 _"[Yyvtg .]S>K~púgj) |ߓv[hK+=k,832]|8lJS9v{ 4Kҡ2x340031Qppsw fH9A|R۬Iw+OM ڵ/8LJM5s#Zr~]U^IZIC𔭥L-;6+y^z:_g?7Ow<^Eї?ϋBrOaB}NwVAv)ߜ_j%[mn SSgש^FÈ%&O U0qi{m>'KHIى6ԇB85(*|= l*pXhUk°uk[\g`H#\U~^Zf^ȃ;5eλS_50X@1}TٴEy6 175)-Jedq`޼٩lHkbPy^WNp)ӿm&@OzL]SMӛޏ.Cm+.I-`x$&ӕwa 1&'35R32*$͗m改 u (u+2RKRf?~5WA͌_tV߻Gvu )+.HMf{U4㧋x{#*<ĕhcO%U\q8i䘩{jbl'!2JUU잞ZSPjMYjQqf~CmK|9]01N:3Lx340031Qqq cXZvx_[NJY !Ҋ  z]zm2-O~6*(I-I,I-+ae[u1/<xu(y*x340031Qppsw frg0|^ib(f3( qa|iS+>n+ܧ_EUWVRzũɥE% WYgwWB#\Xc<sHdD22@\rCO1|γFsJixC17_09n-QNP)TMiQ*n"_:횮 :E1da/Oҥۦ~%}mMM @!%5)31ۥ2u5ׄږW\[`IB9Lj+=+>%rbLNfߋkLgdTH0+/)s" 9=935yOaZlP !гewC(ׇOY'KYjQqf~eGl>d--klx ǽ @ar <wCM炟JD[XY#cxмOTZ{3T)$/Y zB3LgKKY A. c .]=~oΠ!nMO$sxű @ P"#}h)SdS"e5#!^m5=iT1u\T,hkZCK+cPL|?n?mxhxű 0@R2A&~-e yG4Y"b `kaMuZyz3S(ą\˸>1K*6!YkE !/$52Z,. r2Wļc5=5r%X-x Ļ 0PaQ`syZg@db5!+ޡ.2[NXbbLXlbvHJlaڸsMHхLZudlSrSt8Uz}O?]%W2x Ļ 0PaQ`t)sDrk0BWf]uF"2S@ t!51ՆU>L"^iY.\+5r5}o?W;J{&^x ʱ 0@QaQa4}Cҥ-"` G/=f7socS 4)8\ :%z[>SF:ǙC]/=Vۥ3{$n xQ(5U!5,102-0(5291|GeP„M`"$qGx 0 w ԧy#U\H]E\g+OQݹ˺3Gїm2{҂$za͓Q'c %P[JZ J1axqlI$/ExȻ 0P)H>>ߝ*)l\"del (;sYZ ˀ !ܘ3{B٨T;sTk}lTHG?+ؑȹ@r|t$eCx 1 P:!=M_bUȏ]"tERM(wm׶Y(;bC=iPE+Rni v-= 69=rϢkkk,3nD5#c?%AxDZ 0 @]2G ŧ$wYEe^U%uw-ײs5+6` ͉6x"|H0Ks$QZ!ȹCR>;7X6$:xǹ 0@@]J=#3724 B0r_dsmv؇k)I Q*B"T{#& y~ܳBȝ8JNنÐPy`u]-mQ%4x˻0 лt0EF'ERXTr/bL(pxr-9" Jyd/bXz -IEzsp֤0u`,7PĴS-}x &CU6%N.x ʻ @ P)0EF9w,JBI^YUHwN[挬.BsZE0TЭs[GI EC E pZi ޫ5}.0V*!$)xDZ @ P)Lg:Icw)bL(Hy;sZřb*NNKBbldrف-K/,LlZ*c8H?+ft*$#xʱ @ Fa)LoX$]WH* BDIiٷ9:8ԣaM՚V̐j~- AU0/N '$" cD (||_?# x 0 @H`ɒ V8q!W{:[[r5S`IhnC6{-{2 ^ Ns_䒜 >|!x 0@t {8>[bge w.YPtp"ZW4XjqH)Foyk2H"$UkwM6W#Lƅ&fb%xȱ 1 @;!='-^ +0 ;sYmT GpHfksvq3%Qhmx bVfmpZ;g&rx#Ŝ;y\T%hx @ P)H쐞|*)J@QIP(z3ʈhAQ\$v)fQ۹0 4q@ M/=9KDH(c4Ƙjcƕ2p,İ> a%Xxȱ @ P.im·BsEZ (!+1ܷQ"RSDLqϲwOJY űxD)= uGIcQ#Vx 10 @H!;$-NjUHfr˹GH@f sv#g!äHֹ#+̜eE…&BUx̱0;wyBe."(Io^WĦA2g*t";Q{W 0ח_Vid#Vq'/Z_JwxH*P{Ee~#Oxǹ 0 @]2GHOE\! 0,2J_wvm$JIxǻ 1 P:FOE.:eT,v0 kc;`P!VvL-l4]zN)_ܵԑI pco a ux E3> 4K$Bx ǻ0 лTADz,¶raW,UuZe?j칲*0EhxS4ys- 2Ȱ6'i ъ=I2l$#ib[;Mg6=G]`ӀTp"하 `}2/{xؖχ)4x ǻ 1 P*"=ctq%B-A&`x;sۏiXm9ctnq qD]KeQ 9.ydDe[ b wy\[&4x DZ 1 P*"=85 S""n^X}P^K(EͭbcOXkT5\XN *ݬRkjEs{"p w>.g?$_3x˻ @ P)b`).Q"t"2D^阖m>:޺v1ĴBZh[-r;R#n<~pQ&9xUǡ0 \0/,[AY" z,AUf.kZ=5vet#Ru^, +̟v$E .a`L4 rM,U ,&$ڈ"^LR{{7úDS&.VGLah)uTRAKLk{LTq/]-!Հ9G4dmxH~JI]YW{d+"x 0 PKNwJCB,1:;trzi9x10@)K"{k ?*+/str/5"6A,г2SK>:6 f Sn(R+{7<+:?eG #\x 0 P)HvKуUe>,gY=s1Dd@PUD-X{eF!16J(YCt >?m~?!Px 0 @0)@@v,w<$[zGPIO:}{x5ETJhxjhށ:(:ϽJh@3”Q m\:cǶd"N"%x-˱0 л0EFI{h l"-2#@AwN0Ф<(^aPoѐ{Rl }61qA3-ТpUpXZxwU˼G#9%xmQn@}߯D]c@U(DMja2_r#̜sFQ]؏a#ׁ$3W;ѲŰ7u!XtݩʆPa!oX3 Y*+]%ҨUi"~ɟj?j4'E:7[o:ʍW_S=}T\ZɓZ"F9C%]G'ß 7>LLW?6B\'JAZGȪUjcWҾ\IOڭc} P-f=kɇO͚Ix8(1lD)`k\$t Ѱ@aSn0w< !bh ES#8H@j,ldfڈIҵ҂u*8\︂/n)MM}Ҭ$z8|YDyV)v.PU#6_@ykwKyxx1$&p.f_yDǜ{'|<ȼyNj0M2NxmS۲F}( rOPD%5GsR;JjgիQut(p)4]ֺ)%j-nΨQpϨ..@Ռb&3f*PK͌:j!LJBnGU~sWUT=ס*AMҎJO'-NI5|UΨO no??(TI| ta/ %~%JN"d&TTHEYf, d_}vग़d5 r2#Ixq)# I|1K IB'QA pf8"Uٚr cPj*BkQfV篣D׭%k@KM`Wsr]uq}}oS8:O OPMp.'gC-Y|}S"WyAFtQRgI:=+ǃy2>N`GN"j}H[U#GC]&-{ȄuZsܤ| Yu]Ʊ7'M`NPRY^COcsZoz!.碽/J;bI2[LVSb1^%aXlyB*R@œ\^سѨWףgmÞ㣱x* fԝ<Xh̳^f0y hf8Ko@})kkŒMI?twqKUU&O\qLk9aGB= C{Yv" ء=o$Jf#>n;-y\y8l,ie@Q,|iSЉCs; ջ.CIRg,#v=y*9#O}KZ}ۓE'6^QiBVN"6'aPm%W[4 =Tc2MͲ4{҆t<õ18hnL=p%i'ʗC__зO򅀹NxmSَF}qF=K+=Jac61xy (l6c>LQt.T;GOsՃgmLt-ީ,PN4fNYNwWC ܄hFW_)<+BVr'8&. `I?t/VT?@У:E]z|QDs4d[\wS% ~A$0J8I̽C-y R,T',g(*'B&S3*2$_SףIN' TY.ˤgTI,@)KA:%Y&u nF}`ԃoP7hfxtIaY[iwJf"mPSGeXKc[\/HqɂoyΚ|V:u&ΜٺoqY/TVN|םbk+nbrx|ڑXK΁vpޛ[etXoLzP I?Q\W˞eI5,~CMCk=M7bb O3VL&4rS=}Ucgϵ שmvqn^c$yzTkVb2f?3߹aUkg>g [9$zQI f\-&T"{q7bXdY]v1iwC}BDSs~=r1\.jS[wiHrlgV=3 ww`N53n» 2WC7}usv\[*?݀R(|,p>fc/+`n L9L Εj$ C]P 9^d).o9~M.xmQs0)N  εsP(Ҫ&ih~77w;o )&a0=8 ӝF a2rtK%ruUIو dl*LԼ,PS1Rf1 "_}xgdBx!>Q)g[圷;e+N [t%Ke#:WR@"IArFjg*XA!t6,7T5U9_ Fh e_VJ;e笛66M g+Yf1fa< @hV%`>dc3oF& gI(n˙ߋ:C& NWj`:y/w tGsxpۨ7eqaiy:]ہ22ˑy5Ff@VhZ)pW8^µ-}~ܴhTiεTH)&[)u Z3fR[c]!`f,uBHWLr*L96XPj ڈêd~{o];<aW+\'}y9 ɤw_ހN|͋\o]? "*U.@kkx#A W٨7O? - T'xm_o0)jO-`ҬEIiP՗`CCH~:e6K~}i 6x 8BxGt`:1FhAt6*kMKA^4҃:2 #z !zdc{*d7l萉 :lcڅc۶N&&XM:`ZT UZyY:ḅùe+1Q#h\?9X02 /d}}'d@NfqjHC3{Ճ+aKTeK3&§l}}xvZmیH?'n;r|`j`>(O BxeBX^FS4Sd˔$#$sd3dc#dK#KC 3݌x=c ]M4B}2J+42],\ܒ23|sL*MK"CLLL3"͊rÍ,BR}3˝ 2K s,+-J#2L|J ll#tAE!=@!ӝ1$4,=ExSr9}W fVH RL eKx%~ PUJV>}ԝ$qV^Ηxu>_T3Zyu%z]Rn )Av,LC=ht}ax~wrw0.+m3$*ai6F qC7;@b~q6qGSBoǾU~{Wj Z qs}-KUJRNPdh\?s\Ӂvu$#,> M`wV F8^晖\{G@CVXEcBpTEH.lAwJe "̉ Pf\ MyZ'wNr6 a :xquB V3=#=?\'d10NLLJ6L63IK2532K4010HML60P04460S(I+)(H735\QoWZŕbkdbYQ䘞eQl\\_]ƕlajjQh`Rnbe^ϥ ~.  }Xx#?_x;eBwnFABIZIdUNҤҼRCu&Yjhlljhflhdjnfbhhdd`hhha 2)@Bf^JfZ^zdF&R`̊ ǢwG/\*}˪dsHTオ$OrTOwH"oܰ4˒r2t[.[P.]psQpPts rr$H=xn8l3E)Vm9AUf1<8!I_9-R]%@̀eO7b:Ӧ)ɗ96#KlC?4';F>S ݗ7'+;I}pBV;];$&R;t#| pwË~M1Mn5=:^Tx^$h|L[M>0C&lïޟayz &!|xxXK)/g# f8+AY-d0hynJ_T5Kp8LÐF-ImTR* F\?\^ejfr=)/=7q9i9c-|XheC = ]ǫ?:/ 8]L?T!hxuKNA@(Fn9^u׫iTUV>Lta!.*t^)(ªƺW*^jã)zr6/5wফ[&]8pʚJp̆ kx$=^XvWp;&[} pnTǖn_+Өz}4n[v3̲F2#{wg~Ʀ;O}ws9)+k\:+U-T#\J՝2ͻc'!dmmֽ'!+5C7a ȏ/=~l(Tp.0ReLR4!i#CSr[Ye_>HI"c.(d2 8DRX@4ȣ0$N",X+2ŒJkGD01!fZ(f[#̓ F8 *(S**bIQ,k,HNZ;#N` $EL4fL3:!VRd4IBk3M%*N^^1כ8pY;>FMy~|mȯIߞ&,Wo'Dlޜ^]MMdd:byY ۳j6_osyPs xTZO o xu;NAl =Ay3j6ADY33;F #4iV^Xx}WZe"_*"!#x$@>6lkҵyO{`bW}ZDtR+ E% g<\Gv +Ꟶr) AIZp靡4_f'2a]ƀ 8!,&e cF2bm3c9"YΥ%$go R>cƠ48YҼ-:w]![PeavqM&Mnx.aNxu=NA@h &fg曙B N0.Hk6/dePiSXXy/cg5'swCvR;AjerbS#S(=AfJfEk07 -c!p4zNb$d,q gFQI4^0!}W dJ֥ `!ۮF;ףudzn]Xuz\u{rhAü,Jٙ3.rQfowa`dxu=NAl =7S! ~13߬M$BNaaE^M#^_Cks DuҚkk@,@1&cfUaee)OB)%YIp|`2x-@MȂF3B9E-pALVyj e2(9M4=Kw8/n/'XY'R$4S>%NRzȧŽ~ŨZp=`{WлlsJ'ǧb0|xu=NAl =޼fvPC0@3F~քF;-5ʋx; 3y{) S1 \:+FbVhQ* LA C4^3*"VzQ]ـлCPSҊJME3 ǑBi$FP$4g{Xyb2@R;-5DJ Ei=tr0lt3ia-cgKna;tڗnV4盦 TQuk>ęay݋ަc~PKNfjwtxZ`vx]n@զH@~$J̏g<QDڴ">Z1k;-*@^ b9H>|9??< uƼ9dE c E oPKLklauQeaؾU^źw;hw>۲-˼Z},ܡg殆<ÈRFED Ln; j$p3N"|2X4A uӻ.! D i!FcwF-  *JPm;:\Og4àP`Cq {Cc쌕?`icOQ K2ff23S a>rb)qNjL&S:_Qq*4=ik˕[> 'zI" 8PM{$×]Yx`i7`K]ЭHH+vuqi^jPڵnFy1:_ڑ?9 Rn4;_OU bLı (P"!cAYoF |cQ<(RZ`# ~A(0N*ILI3l5P#$5R1(eᘑ+ PrDB"4[n-{MVߗVlf;c,?L ,\'0νa`I*[9˦x/>%gǝ/xmKJA`&*H^ŀ ӏn1H#QPa2Wr3xO<fQ|P~~aCto|d%ģ٣<[1N*uqQ+J75W\X+!!%wB6e&weZJE0L E0TJGP>|J+.MJDCK~#eqBi+b,e)失ÐIc?'N9p1> 8(w"`tbmr<Zx&`禿/Nm$mFQjSڼ]%[#ٻVg͸6Urf3_٫l~jxSxm;NBA\{ 793sH #Tff%(F;Rw\g=g񯧌g   gf> NRiHpV+SϗY7?{0 Ka+&0h+n|)hMhL0ޢGƶ%AG!:BPȬrk:4Amz=@d],g7PBL35j=k^[RwrEbl5 ^.X!o ;dWb[xTn8}WF;$;͍/HڪeQ);هRNh\ u7L/n|:Gd'E>>י^b9W; յ #Mpe _҈tM$Z]zb$XW.pE;@˃ NT).:ϪR=BmOeS)6cRTh VBvuzn JP퀫 g-mL3~mD[ZIV0{n0Pshv_XU{}]{:ݾ4C9я*epveݱhDmlZT J=G:R/U%۷a ؋7}֢n9HQ*iOH2q1RҀ  0I鋜BʕgV:&2ʂrp$YE!ǩ 1CA'?*㥔=qZ"1"SLqA"L˜a3!I9Ä%94 HeS0b<$4pp p0f0#@ {J螐-4#!(I<+TƢI#10 0 "4(a,[ i~ɢų<ѫN7>O>u-kyߴS#^MoUo[QYBRt3Yum{N9wQߟ|h8՗b:߆,ny^],Gsuw:la\]^/7C%.nWUf *Yxu̹NA 3pQ*C 3;E-,v[kK{_q_+w=o/YQ_̞^`,HCi5Ce,/\_eTx19k̉ NS"l(EgRKQf50-@H5OI jgC1Yܨگf5T_S6* Jos^(5y|[QcҺD>7ef,1JxZ*YLtwԹ[vlg=x}ON13'k`1ß!1vZ1AFG[/Ev'N8Pb^FQoVjv/.X 0ӦC~Rd,2τ\+YJdh q|8.U'mS2P$8jx!?^$qI7Xoء0gAK~N+5.6˶8Zd0y1oϏuZȧZ;8_j$!xOn@EZTlY!!y٨ǞqοRTB{ŌIB7Y-8W <mc.jVE ivX؄ʪ,KK+{2-TUOHǑ'}$þ ~`%9;vevNI?үU~,qcrB! Ф%sܟ>⸗4^гİv0fxuJQa&k;sYT4 8NnvHѶMހg6>"[SE  "qnc#N`no.pQ'h;xAkb^O$q Ua֭]1-HV^~b*l1c|xuJAq6x7vf캑bv~3 Rn)nߣ[/{t/|?|7M-`_/ipRx;D 0XHM% fu @}ec\фa뿽לI/TyYe  Ef!h*D-Tr NbSAR(m+R!N3 VQ#_-ՉڣIr28Dbq)a>N߮YUMGbNAw?_NV=,qr|pŖaxu=JAq֏&9 DPY $k!3;3!FP4"v6Ol.o|%ڋv=SZP @4"FX"UjΧJlCĦJM%*<&6H:z/i-ZCPɀFz#b~)+5ad z|J|QY|^7al~?ʢEi'I]L8\΋c1/5I:q!tcz'ͭ bc-xu=NA? 3ͼ)lfu0;3;K$TNC=켈 p[׈>~"GGxR z$ GE"oH0EXZYq%YweHA5’ ^2H A \jR0'†{Y bibJ t?~.v5>$Ci?NN*f>oMu2-]œk y%դwW; iz`Nx[o6),R%idse8IY,j>h;HWl@Qt.>yTf}ޖE۵9gv{VuiAC]a(k{r*- |7hnܑ1aPrZуJw{lGqRШ{'ƺ֕rn.|q'Wv֖QlepY}upZg߶r dD'BI8`b (aJsbBmSS~p,!KAHADOa &woE?g2c$F aJ(p2Ld #B ha!  22HfHLDyPJCyL ׉[S ~F(u{p`<L `@HgG?CDDGX$1O֌ ,wB-TV'ۗgnl\g+[ڼЭ. B_u8_Y?'_W_?\"TLLҗ(ML p%MG~{*}M瑚 9NG t;>sڦU|0XE}|3\I'|*xuKNP8cDCށ&R(:1-XFnp2\I$ߗ)l U|e 'FZ22$n 4&@#"bdh)3v>1: hAcp ИsʑPDMcC"ݣ>k'J[S$k=oOJk8xJ5nQ04Md<vkP]t2[O%FM1y-y,,7 Jͪk7*Vy]]qfNxTn8}W1A oi9Q;.6yYj+EU6__[E%Hr[x?ӫmyo鴘[_.ye݊$a  U#kEjxh7R;_EtChCnx8ng; 뵮m>,P[(PU/?J:\#xp5Wv*-*ބK-{b Qm6pFۀD[6Qvh-S;zH}Tp[(O/еN>YgmoMisJl:[-\ê F@)tR)eytDJx@IbLe(g񷯳WSCǻp!%9k("" 5T !_}lX^,&$8,"FR(c#Fel!, x41"bIdXCβ ga̘B\c%DZr[J4(_aIA@EU~JY"PV IW4N5N 7R*{y8Wf$?`u櫃9o*]1Vi١ۧmgw墱W> P</>i \,!U\YQ<_Ku_򅐵Oks=?S%~//,{*___՗ߪ%EJ3&r׏oo 7Õs|y3-oOZdžyxUY8}W6fj&!edl5`B¯rojFo}gϽ^ 7 &e+qqSTϼ3HPq^=r_?\(a9'KLy波F*:>[lP0b즠hYEy>IWg E~Z>7&yѥzꑨuU}KUPW-n3f弃+"y"2M(者ς4M?eFGPԞP>kPI&/cM2JR~F_]HϤH.IG ģ,ϓykJT?7 ):zN3أ$a) DY$JC8:wlPZ |xH>!k>y:4^Rׅ~X{ <P!HD 0t#,@JayUHXR~O" *&Đ=,RYaQj0tJEey/c(n@VVDUۣN*kEԨǘG h牺HTR1 xbtRun'|LE4ᇨNQɛoE%^0˓!kw7K׍RxIzLts5{WMKP#RO2S92)ˢXa(jU|>LRe1&ҼljȪqVXj%jfIqCSuު ^Ke9FބEAmw(gk.tU0Lϖ[{nB%x3A8Y^&rM{߄Oht}lա]ԑ:WJ=YM[\XL٢q܌nxMv#?_haF[mkoSstWTquRXMaAڮqGx }-L5'^ԉAxQYB3ˣa]:>ywyhe׶e?|iv7hY+wb?Z/ ^rϕi9:nWi7kGlcm= OԝFo`P=f; JFYOg~\7*hr(|qWwXcʶWs2. qhx~1!FQj~thrv[l8$ %D%1 I1)AHaLSń$9nk_G$H9%P$pP 8!? '!e=Ɗ%qͤT$ IHchE%"ipIB2,D@gDa iFA4@i\bDPq!H9QPAL$!(U e刃bQB$ZJ: yD417mpo̫J|ǻ*|/Nmݘum빭T4Zy7y.rޔi=O^LgSQu$4>29-z;|E{_Ξ&x:'yBrtbtcb%d;d6?ܜRxTn8}W1F.FD;IbDmbE\x >7nJǏtv7#.Ͳq9dr@grk5t]}˪;'37Ynܔ54_9._,;]#P%iKSpwP֝}GGll:<9jrTʾmZrY_2}`[:j 4 j4+21k[vfy]aScO6}Fw;hЫۙfydAQs ȍmrFZY++]31UWs4b#ȕe[JNRK◮?K_l l @bT4Dh`"f+n.|,@rBk!QH5B B_A$\@0%xi 2UIrFσBwޖ{UOGX R_F!|@0-d\q),]~FPXPRl8כ,l[n6Yغϻ"=?^,Mnѳtݗu圐2γ0˞oU2y6\M|kSmṠ_Kħ?-|*ۗ{ɲYl1|zϟɛ请Gt<#|x}JQ`L"w܇͹j1" qH[ZB۠z_>{hϯF8K-qR!\(9!rtༀHYkש=6ra׻E$:'-6!j)h!y | @`؜]072 `\h]P ^m;?/oq{28FrGģ4bկU]/+|НOij۲v'ǧDf?_xTn8}Wqd(hRǵwӗ/C[,4T&hHp8gΐWs.j:ЇjLǝufj3)h*JA5)m)AυrsΤR۴մҼ}tEL k:-> =rF`c͛w>4o쀪AV6;nsuVm]ҺSҙ{(Ʋ6M6i!jS<ծ%/'zU#r-*]'^hYTC|A"hUE Vhk?A6ʹ;r] Bf@\^ 9mS"7YSY tn+ *QU/BUǽS=;ldUAT [΋S_Txݼ6RԮn RXPPFQ cưP3,AphE, ytbKgEO7^#*osp$Vp` Db4P*9t= NBfG_h%!:P~(4ReqBfA H)8dp&c՟'_OF73I%ևlv{^s=d;t.t}8GʸxTٲ6}+xLct+3 ؀mb1`޾>ffR5( Z:}zvch9S{Ot Q)k:9e}Bz"*ƴ⬬@ߍn&oRY4Ӷfho]Tc\6S^Idek=#&t6l J=IjO&(+(H¯?=nFYۦ#T=\>qD*04)Ջ $I]W։,^(<4܊"ButQ+=Wt6O_8H߫-S7B]_}# fyQ3 OyehY͓,F&U%σ#c3^>}hx=Wَ}m|lS]Hbc4Y(D"(C# . P2""x]3_#=Kzս)"$Q T"E#1RTB( e]=~Sν(`B 0b`]!H#U5!Ј1&XDNJC3dF1U]XI꒤#RBQh,a!0"`\N*IFHbXF 2A*aXbYmD5Ȇ$Js8g 6gYOk?OvȚz|}n]"q\a˴ibcv+:Ky0GC<׏Nou6]K}kXt.QM+n# ݤcjL/Q'؋t$~]xX#D.vdn4_°K^N TTVɳcbIle߲ꤳ," NȻZ?er<,qv֕Π:{mZ!lm`@NOkq\0fGp︍lA־=T'ܮ/aeU˺0=zun8{mZnV:[8nOu5rpgvO|!oRI=_|[97[-,3W:+}T(ar L-|8PۍJ.QT{0:#'ݙyB |`6؛>Xa{Fv%I&՞Fۜ Yr oknIzB~YM`.ryuP賁@'R/K{}e;XDB%^1u~ɝf}ߥ[[/Թ{:9xUFFV)ܙa`f3_0 n"Mʕn'fqmN|×Ap0"S%2,g8KTLzo_+ C0#5S I"VA&DZ*c*@?s" U>)RHc|ǃVM m+^5SW(g +V-IUħַc\&Am; Z"գzմ(4S͟mEy &C[m7ٲmSu-pz?YkƑ"v:D:=<&\_Ak7:yF8, f],T;pb[c/ e`eVmQ Jm-LFL[Hqh"~tWrSYA?k 9OR/sie2(c4:vK[%=lBeaφ;$x/"8jaiM2.Kka;vDhKab&32[B~N24DvNe};@%#3pj5KƖ^c1.nrnF;V:k!h,6y%wMkeS?thLGiyЂaO XYCWj!&XxTY8~W[Bܮ$|_~B˜2f~3JP_N=e^^XC~n9a[_睑e"FUsҺW: qf}\^OU]0(H{%-҂'EI A:BIU I^R?$7?x./QPVei1ɐX\*z~PuCR$$ꦅ%j"=Sy8B 켳zW HApJ^>]4lLhf?AfD^gH2xeg15?>??R&mUiT>*6>r+CNgƄ{A<'@w~z? \:.; |MTC2HR%C]u]&iH4WdU+$ nD" DdbB HP&Hu>`c:T_ +V&CYutɊ@TuITRN()eȿ@S<",2p@%HWX*]WDM"@ur}"RGA R`]r=$HS % `4UAe E{Ds1< UAu 4gY|;93Ϳ^M`=ƦaðPn50҉eʖ5]m"Y["t]FBY5=ǶBMBryZ%$]_s*6G8Qܡq I_<Fϔ6zC)Kg\`wl)n՝crc.K6Hxd_Avsedh_A1!g4e#Vh19]|F'V:YAkBpf8ܗIB0<1dMXGL׾&Kmh'3(\J\9,mvsdf$,j<Ŷ8=h1,6O}*x9tZ! z gW- Xr\=e Xyy5ܤ  vtHLlEv̓l ?aBRrL\`/~Ξ[Ti=qGeAB.2Ζj(_D'_N)Xzӷß5?xTY8~n|T1pؘ-Ymׯٝ$lU*O_w_s|1{sw 0=n #T%b8 0/O~¼)1}kVݤ@B?Py(~IIZS\7%8Ys&XIiT iYy žQ ̮DMV70CiVEU'hKyďoǺ꒴MU}9U]L=> D sI]u@ˌ{yKRFK^{1EkTVY=' k\ue~'4JQ WJ*{ܻDsGq7tD#φO5u'Ax[Y.x9?WwU ĿI~:'P5&HMSa& (B!K(ZRMDi Uyg'={5*{ B!&T4 #B8%DWF#qHTt?G|=2v85NZ uaԉհ41K5aL-ʰ,̘ 9_I# ש26,h@# D5iG k@& SSF*IT#@~3azս4:e[ZDa̰0U(~?1]3l`SQ"1dA[o(;v1<y}ڋWO\V4dҹm;]XO3,nzղ鋳I氽|KKoL{%2 'Zx@󙵉o&@nRNZckjcō‹sC?=p8K/n~M6} ]!bt:Y1w wvhH8G&jNae-I,f?ŋC m2'e|#fjdϿ9erBBmYg";jf`2M0SQ$mB۸MۉۦnΝv<wY4/lgs-{W?\ٮLrWntS2)W =zL:8Æ텻J.PY\7zlG^5XO+Ahj22ƭKṸu'Vԑ26t.VCLbW$ *N3la^wl~z%qz lQnIL'7+mRNKf{R`TЭE5q},QV$K2,RUgQ|;/xmF@l"%H6MHҠ1<c6 [01wc)EHK&?el)珟?W?_ EDx` Dʐ,b )H~DȂ?olvUqo~k(\&ɩ UXN$$l"(3 3"+ w)0bͧ_eO;+b1q@~Q+Ѡw[_~p v-]^UkF+p SpWvrf僰zglmpRTkKOۆ'P YHLڳʾ1ӭJZMpі S,wu{qԡi[.[a3Oi suKMC* pwpG Cd}yw]l@,p덍; 4-U X%\vc,:zyq-TT=_P=SSՌ-bC'i&f Úޮ(ey̟uo^8Sv+~|nPa,,kgh \p&3HfC{}] 6+žM-W؁%>_IȊ'z.ANž++|ݛڲ@E{ݘkn2yEt `_̠rR0]dQ]FM1w ;5PFiQۏԝVk5ĕUHw?*2!xTWF~Whbٰ E$$$$Bү7ڵ|LTM{lwx7?u Qux惡Jy{I#MI3_Gu! q7ŧ@]oVIqHݔ@gU@ٍ?E%c[W{P7YHYV>ᛎw؅%yP 4HSU?'qUWwSWn@.gQl۶wbeƒ^^ŢbGuJ&fn$>FE%r܊T]m,EYIQAu˰S2L,9uL*j:7AܕGGkVV|{`IW$_xO<=<>{I(ާ+-QG&]!yT+ϮufNo/FNUVBp@FLMC""haJ Q dhRjtFd 2T+4N$JyзG{/=_jƈP4 *d`vĔ#S% Y0$uU!?d)D7ed̈́PU#E6L#bQ*P7" AULO8a#-v đP5LN5Rtl]e&QfȰ5%\hhS'?i^rg0Gl˵_^^OT|NJ L뻾_kъb+ KQ^)j6RDh~$ZKrfis#oBkC@Tcsr$}r9ΣQ\./ wNuJVp=V,4䝦l.x38`tX *=Z'J#cMlcR5<5zcN Nu{)|rX`:]y1Y܆769ybc[-y9ޅ5Ie꾈w`õ3FY?sd`pzkVm62ruYǡ9>sLzRD2QR*Wvu_Q$5Y8 m>5d4Uxu6ۡ_c%p8O0P˛N6t<>\@6x^$".j܋5UU4'XxA.ߟWM;,*HӀZ$C)}ئ낫6f ;yum6y9O@j8qq-OrP8Tݗ&z͘zVmplpD- /vm95!^<7xuIΣFɢ/@1UH$c0&b*0o|,Zje0@o}O~~4S@y6C$H,@H ") 8Hcޅq y#'$EQ (X:%%r&2xŠwD9BJ@$bD "@<})]-6PLH+(j #d 34bm3Tgr;53f`n]MNO"Si--d9ZA ZH2'ݴ|%*lxseY'y-%NvDֵ8oix.Ye8SMc3!D hOJ`ÁꢕcX):B7\++hvɸIrp%T'j uskr^gWlѳN"nFLUG]0urA")n[fk,nP>f )5;j:Y fuf9+(a^R UoQRJV3Mn}%iR>y8bӭ}-=ҳnApVdNt(gӽ/ ЭtqYF\XуNou j}tj]-|!*یiA4ȡ釈\CE7Npm}8=~  tթN*tBmmAczötuؾeMh\'la剭F.ܠkA:k85یFdC.x"ə/&b= k/|uWj*ۘ#ZWre{܁xf8佶S; *|j O]XCYscL„_4JT'qsI(?O'_jWB\qBƚP %jL2͘L,B8e".{÷>n=aP%ZqRDY)*SH)3-e$%KX΅` fY(B2x 2FHTys"`YndLT%"1 %U^^ 1S4¨T'4/8(7k#LXyBr_!_`uᭃ kz4 =/v(_ٕî T]BoayvOʬftIE`v]U|HH5}|(7ͧgηvY>tOxmY~[G' ѻeint=\L6CG+x }xTْ:}+xLʱAL%`wcOlܒXl6_y&wr*R9-vKq=^tq \O3a1.D'U'r=Wf B?Lpt|z]טAX2r~'"L'Q.H8LJIܿ(v۶.}4,ܪ(EaQPM>RL'qU[n9}u|8饹U1˰ρe=I~]XA*"WqΤ4Hn88E3{P&e,/?|"?*2Mt$F!8~a G֝sOGBCY]X쀹`=覡xÞ*#k@uUC5Bj {?=n~yoQ'.SY!tWS!+Hx sEDq?r.yueRTMI(d[BdU6d$@1<_ xϤd2yD=p&T27ˆV L.o\&2f vP+J =HǚRu.NB}\8I7[~ΊU$i!+z}狵owj=o?{i&UQ8f vE!]>"Hn/}OM{Adͭ-IZ;;GWgsyWZ)-Vw#UncM{ZTeh9TN= pTg{M\,xt<ia}Gv\+لvvҵΊ:SEPk/ )z KyB:DSŋ6Tm *njJe<+D ./z ]ժbK2 ,W>󑳭I&9$qmp [4X qeWN7N!gU9 FMgsV4^:ۂ ρɵ`0lέEn$HlGSZnҽp+Ñ4q鞠S6Yܮ6d Ûi3!bO]Kb5OϪL/Q=7|6;] ; wg3|6Xv"|,k}xTY8~W8Mkf4N H&ׯ=۳Z$$rUǾx:wxwx㇭`=%Mh~3/Eӭ3U3_e֋2 /ŗ~Y9⒠v܎ELg^K=򫴬qZϼG& ͘;ݭ Tŏ$.ʢn#zyYB!f7170!9)~`0Gmy'mCWfF]Z6Ui (ˁcGnȊXVD0GXX1_¼9^4a 2 MCC K( 6=€a L J0* `buX205$@DH(O")bWTE%M7/j Ӏ,+aGIAZ@SB HTh"ɔViCȬ苲FWWMn` Ӕ.r(zl&4Ig;\W>dVA_:`i~z%){C)eAtnN]c!5qjo;yvL(lkڲ*{=rp\#Fǡ ϝp;Q5rvtpOvfy=5x۲Gt(6jᮒR q*arnpu6P/&zФ뒍6uXf6Mky53"'YM7 RLGR'ja~&ms8!q:fu}{E2դp7uGlF2\^Z;6C+\z{jX86⺗,\.MVML.-h•5n%C[SC!q[ۙ1i 4GS|0V@Z3ۃ:{{BB>=I<hE~}ur*%|[l,_[,KAkJ)nP2<|urk_BAGsIV&\YGmM,fy|8P'8rj,7B._Rw=Fm RfEogPȷst8n"KuG,U3qfvʋΤ}}ߦwSͱRxT]o6}cD(~2 r ԋl@Y}q(;pm@QAtϽ< S.lS=)Ȯin ӴJno*Pn~nXN([k{nN(}[onu%NX޶p0Fץ.Aեf^zPvo͠6VJԪ~\7֕.uL0kmkmnNev kQ=Bn28۞:)P;]鶍(#P\ (Ra*MyqL8 )IyJ5ìV7 ͲX`)(H阅( J00a :~ ? )Lk4e1aƝFQ2QƒLE* EL R0`ixSو3ǪDSJT ! R3I,Kg {S79(G v' Ma 0(hH8)Q ,9QEitGۊ)juxnvmt￿dz~dZv)!jє%fe$N02H@y@_w9yn_V2=s|Fokt zxUٮ8}+xV:a7pjH!+edl$_?֝Ui$$\>Βum{93XF/?1D0E ^XiuV"/lVy?!c,(PWUu-ّٝi*AU,`UOvfcG!)ͻp{X?M}.i\V5@)[®*Ĕa@L +}3$a6;3S,ڶ$H :JV-,E=q_ >@Ȍ G$'`tE$Hc_XXW4-lާf693.DI?8Gm  KnU?*70"()K#(<3!T]PA7TɚIA@UO]5Ӡ2 /P !𘈊*+J%G?y{nw!B1@uH9B=D;*!x$x^I *2ubMUL@ü.-aeQ$!+ׂP%Xa~|pD҈ !R+.Aԙ5.(h:P:!Ru ժۉ7Y~#$eMX_`_|=,rН blWˇRvm@Or㬾}fsi͡aئ7]_6 :[ppQ-YgZEC4yqF7^q2WaxbʇQv bc:]u6m#"f[~dz/k)CnCVm(%L 2_U_:Xc*+CD#{ÛY4(XRjՒ绫g1"8Ї54K.uIxe)hj 6趫ioJg2ܠdMf4Fe{ٴ]?t fsqLϓlζh_]SZe\Yk)-яt/jsiPiux:{-r͕.y8܍0dlG[}_|o;}H~UBnTxm%9aqrQ}x93:|,M֡[Eu;k]Rv\K^j/+S\mAxgϬVY^ 5UjѕĚ\Ϻ^ۻr[ɂ7LzcF6WkgY*i|%Oۭqqje ݃[qo=g<EIa|#ro*@pvx[8<ΔBBZP=(_BE@.~snPEUwM:n5vxryol9搟[l\/g7J ._xO*ϜV9a/|Y70gD ?/o+fsF%#e[pr6,/4yQtʯ}Y¯4~n,N֥֝OKTE[e{7Hzef 2{Y~V" 笟Ns '~ž֓8v,c -^x-7^UiOO&>:Ǚ9sK֝/<Ѭg@EYSѺ!#確]/3T4Á$TI!"2TyQD?26Ft8/!$EkU$˄&(`@QD[)쵸Nb6qۣƄL Zk@OZn$PAELQD(DHÒ U@8ha"X>$+P(Y Ҷ2?*@1iF@dRU|a T/P۸4ݿ'yW$  s\׃Z/>J*obOꉀd94J3E11te,&ˋu=#YX397RF.zHeMkqwfnL)mG:ONu N,Fr\!yXhŠ'yLd/ԍ%AxQngZP_@= %dkiVڅ(;܋7ef`]ao{{%zhsǝ$f]{C~PnsFz)8 |x;@:s|ؑ5&Y#'A8ݗze,.=?>Xrt3k{a`ŃНmc(靴(wcĎqR*}tRM9FEr|5[IڴcA`ff4y8q7&Z%L ui!kOYl3ܠ^dXѺ!缼m?A\G 0T`!0aCjj 4MnDN!ɶ  -1Iu:%De) v'9?6Sq p]T؄q6܈Q MSUmtKpA(D3 9E [0-aZMg Ř1&5#bu(p<VjDBfئA1mVjkP-j 4,`Ch6n'./8I.8ab|~߯&X~3|bˑ|4h(()_%)Zyuznw[lt |y8㬺cN(0fҟbI(<9x[AbϜng'qnxC9 <:ͽ+%Vf7xihsEɁ/&]CCu&Jw7 [S7] #"^Vi<1Uzd-["W.zemqU|| -Xw+vWe_]-EL<܉^%#IaL Rx1"6C+6L֓RsmIk’N"o o[m{.7Xe?ڃQS?nC:K1? ("Zվ{$靖W!Vh/\e!0ST6$}oA|ͫmByp2rxh1[+U9͝*ո;y9?.%.{#Xzc_K=$HQdp{ "Qn^=܍3t03³X[lZCOQ!Ѩ ˩񊱚P[/Á33K~.VvxY8<ΈIsG3tyY#>ݫ9$$rկʔlgaΖuƞkuM~ ,L 3MV#V 쇼#uɈh 2V!|z[yo6AX\E&-L2L @QT45 I1bo*;!wY8^.oQXV4i1ɠ *|4) eJOHդō |GPfno0!Irz$_O,JӨ|{iB?Qf«l!dU=bw5ۓQ}þGc|+I3tR,"2uYW%x:bEQQ5;Q a1*)@GSUD:5` KP%,z_t<[G+o{cA<@6D" F+}RyDzpCHDH]RUA0(h"c?*DM, ɒB%K@AT*@( ]Ǣ'ߪpF˒ϋ*Ŋ'ݐ FFCU2BF4{ [XO}~F36IH"ւu 0潉.qa4q}}V:]dp7ǖi[ctEHi {zqiT]3N_n-fNv ]]MNnF[Ț}Nwm>1{s'8FIM.$^>G˴S#$]ut\=[Os7m'^c<-Hp,h{噻qvc~xKNOIiqLa] m:ejeh}&>G81t1-DhN b2{YFnK/ߎrk&q}蔚OO[;hLm.1,c9㌡xqiu9OU5ڟq$?ƼHe j$}#T;nxyȫPy^TQ$Q z@!P(/!y =AR4īX^}ATdD~QY$]%P /X"&@R5p'75 &NMݐ^o4&12a<#ޜ `ޣ9Xq ]Nx53bюcKy y؝IYi{@}~oVIPmޠv__56e&:ž4mո@u!J}쇇Sgl\׋Ŕ/GeӤT,sE D1c2}9^-G(oax]j:amQo*8N-#+rܴU&(ݫ>_67 2lmޛ<ظsOFyN%O?onfnmY?\7Oiz"a¥mW Q:^.21#b=`ʞT-AC|Q‘'N|>zZrш@*pv}x#)F.mCY+/zPNŠLp`4狕#\6wn'åo.Wkx;ſC91lx[oVC&l-x[ȿo %Cx[ȷuVJl.^x[w %r2-lyx[ȿwf%zFlx[g'Jl#a&x[g'JlZKt6llBx[ȿg'El _gx[{/V bg(x[s{eV g9x[ȳ{V gJx[ʽ xg[x[skC+ glx[ȳk9+ [g}x[3k+  gx[sK M=g x[ss! <g2x[3sl +gDx[cC gVx[sc/ ghx[ȳc t6gzx[}?f dg x[s}5f gx[ȳ}:f ĸ}x'Z+/J,(H-b%033mhnjL 1M]%E Iy%x@5(H}.{*wO }iYss<;4}w㲛7~|6||fh3Ϸ }ļ̴ZA #OPVRQkglυ qI9{8c׀&n2H71;5-3'TRqJqfz^b^2يĜdr%E)r #b8\K(I-&gSҤbustǴ7(#p6^qjriQfI%lb20 k&NpiQ*K3y0'G]OYjQqf>pL)"3E?73@RҊs IcK D î81 'U4'0g=)   4U]$:ԜDA71B MGta`e/LCwE%0% ˁ${gC…&5_#"#?qL R<̞zkL9'п+fLPR]e{_8CZ^7ü#홴Zi~!S֗?|u:6goNPkw)p6yS_ᩳlngT9o|N:^|Hjʃ\rޝ_hdYq݌ 0MU^;'˿8u9bt%ҽl~37vO|sǶ7 ϖtS6sTgpޗfVYdnnv[Ɲt;Ͽj|]r&^{x_4 ;aoUog<\z2Z>L՜3!1>e9`:˞)/.雫Y)|u+޿k)oYt+艋v'9?[=oEM_,)/?o>B*ElxcHxc/k8ԤV#vlat["Jffs_fݴ%;Uo[uje9px9߬|[Eqa C},~ߜ3g.Iz6{]nu8Θ6G[;W|rC^އm{v|ۗWbIַ־_,ՆD %&=7O6\g}b]]"X8ʂTZAhcpOhD#S\A(bzDc3D#Cd ĴĴD#Ô$3#s3c midlbinnif`fb8Zx mbh 0`Q0 F(# (Ix3304JK4HLI14N3M3034IHr RL-SSw Qx~ZiTSI%؊"Alс$/dDĀfdy"Y rhhEpI2.l⊍# "AP@pZ&4v$‡9x&RzVսUEfn l8"cC$aafDPyff0!M721yO탊O?B ژ. XhxKAЖAG$@4$@D:Ot,Dف& \Όژ*?VU_ͣFD1]1x'c`:v8Z)vS' VBMv$}#S0]k=:5Ѫ5@:O$V(qy Fa^MGh. pH?0 |\vgsk͊m4fUKK>ѡDѾeF}]}e'y;UvɅ NƿF'9 ٹ/7:1W\߼S+ksbԞWsiCwuO,MĹ [ӀSdƒoB/J3#{po90O-l* |Lژ&#X aTk Akgum i|C br|i2D !& T1Q>Mera1ilaSY,.]iwgr,j _cg=}s:1CHX9# e1xW*݄?4e1@|%'@6Uy(1 OeG@OS8d|' ӣ =_ʧPyə8jX,k@rpqۨ˻ RHSkwru<-zY&0T_0@:6x^u Zn܄R3@8Г' ?fjOsblh'^1nCu&~tyG騻{՞b'![ȥwjR[9ͺ9s/Poq#C?~$4$oC0͡Z~?whl׊ګ(r$&\0GMr)G%Nr lFU;f}ʠr}C6_U VZh*$\[oIT6?y-tj}+  }_"v^xM6^cި(7"@o=]=jHW\^]S/QK&,TKXsŒgݳbؘOƴǿiFݤh$BGt~}TX3vxP UR ?¤zO)K.D~5z&]!_5ɲ!ٕg)R)˒{ }Ps_RƟmsil/"ZJjRq=:eՂH)wI&Gn1+[xe=]*hpW4!:kF1iQ<5l!;Nll:{qtOoifq/(>:5J~^~.Ԡu8.K^jZ-6N2`ܩ!ffJWjUcRd]_ǂ|Ojڵ\BV@c]oVvCyskf ]4|:d2?f?c~Lˑ6ozhV+,+"]մG_nZCf|;HMЋiv~I!+g{M V˥`F{=|C5qڻݍo a$T[`_<{ūC/Eb޷1tFx`yc&[ٰgo{oy*z%0e_3paKY:bPxp~jAa'.RIK/Geg?yB *TP_W(6kx35H207016404262MRfF)ifɆff&\N |x8(Z+H425+.e033mhnjL!HԔAn"ҤҼR<Q`adjjhfhhadnhjljnhi Li)F&i)Ɩif&IF&f&ff\Q@MLK-.򿑡z726%i%z&F\\gG?w`4QOGz Q4)_g?7Ow5|g{fb$e称`޿ˮk3W$}uY^UOeܥhwc~(ފKQuC;t0 }=ֳַ:mƙQ{uX޸wo}-g9sg6\U-js\DEE4-c"&n yQ oo8f5;=\9{ކ [YhE~;MԭíDGcԲ_TlOpZZ=\zSڻeϔKM1jQ5>e)z9}v|;ss#;ǴVCf9<^ _,]IKpVx&(7>ϑbos'<ן_;qw {כ }~ o/o&튝s^͞.yvk__|MXVgE韻K՟Bfm^k6᛿I,Rodk8Ơ1H(,H򿁁 z`t.>.?M 0 F Q0 F(`Q0 Fۨ-(/, oxK6L27H1N1L3346I406I34KIK57O2%q# x?DZMLK-.a!033mhnjL!P9-%E Iy%x$@7 Q@X &'&eeeIAdJRR3Ux)lMzx],g2tqbnAN^QiNj1VE8a(5,(?V4vݹ8|S2srHfD{&faזZQZ_N8-ӭK-IA)JIM,N+F)'3 ݧ ⒢RLrsr1$TRU2DN. W^~na.&4 a3L͊Ksih745,RMM RL,L---- ͓̍ LL--,R , RLM,L-LR SF)9%4P-k02e! URKRa00tI栦"WED/tӑA8g8XC_nrK*RDZE׳z ؘ>{4c"iW^DNw}ς՝vٷ~NPGFZ+f̖V1I WR>K<=xp-AfFӝ_/H9u󬜶_9:.lx'"# :!^$k3;\+ syu'xm`ɳ=JAS4b10:a^KJf̚nݫ=MoDVM#SY~3=aK2{{vɈn©󾫯t"qѾ„y DZ>J i~ksw1qU[/Ym7{.k Q1.$ )0D o{WJ};_zH19BZm?$X#|)Gl/esnz.~V["G-1˿ 7|tQYu_UI%)[\ڲ?&m&^~cU`R+Z“=Gm@N/ D벅e=#ܣJ.'ilX/_1LJl9bS_F_(?ԷJ8e-EVrû+zr˽IŒ nfd9~l:哗G:jgEc pfp$A,b޾jof;arf@'#+ӗJ.~Y M?܆'h{]ڷH׭ήO_:~Tvo2ݞv`J?̅X mN_xs:f;<>:}?MMe 5kf'}H{2wqRqLEGX(ȹwŀg4P^XPZDS;M 1f?=|7 Ǽ(/z6a{`q7I?î^ܼnCR_ պ_$k.&l9}W-?b%ut>θA*IEgw:M/5Qauf?8qFxՊb߶yv.Om5Oon5={?ޕ5'/tе]!2;&JMo-"ǿުOyh^]ca&W&3'8Rwi[YM>wqBnq>o2g]T;" 绳Ůu;Sa=4r=1G9B%p7A`Q0 F(`) (!Rx A-c48@yOZG x,mZKI)Id-033mhnjL )%E Iy%x# LEpHJ/JM.JM,I ~!$ٛ"U/Ok^4MG&EF Q+c{}-e[8H߯~)͸CcuK:yڎn*yuw׺wÍ&.ZNR3WGTIU/^fI3SMWJGt3 +ګ?L>ղ ߥs8 Ke*z8\{IY`߃ 6[bVoεx! O+gխrn[7I)9:+:NÎUoHۤ/^/sJr9f3`OL{Վ֬h?WLzذtūqe /ݺ.UY!y_3UO ٩M_g{?QO1g2\`d~&5ڶI3305wB h =Uueq M>qmRۜu'UU68"zޙK6_jTD^o I^ØvvM{2deќEZ=߳_8ZtWNǣO +(>ru:>Ι}KQ@-PRYJk;@Q@s FĂ"A(#C#O 1/@4޹4ο]?kg!խ[sv0W?3omigrmQ?\%-ejiZK,:Y ׸8{~5[zkѷvO~7kGZCw4n{~d{v뎔 {p~3RB-oUq8L]WzZYN}Sf7r\֊$Wp,w4WOIOy'~/@ca_Jfj ,얿` rǠ1H!(H425+.ͥ򿡁!F73II)f81IHL1M261HK4LL607I63L0HK5LN04L5731II143OJm< mZ\BK;LLF?=@IZInFA>**曘M.$(O/\nbf^26GP/3M/8G$&W\ZYR&yiLBPEnbNN~2Ar)FX%p 6yJ*N)LKx[`5Rx~Qjn"؃j܂TҜb<]\Vpis31CBk0z 599'#=R8+X$X\TXtyt:ycTt Lh&X4Vd楖ɔgȸt<)cJ%r-HjҡQDS;a GtƣfQ0 F(`Do[(ICxA iP:8=Kcs(Db| 㸌x7ZYy8keSrRTJ GeW,iwYcI6 )Gi,ʩK"Q_EJ8E%i͌]{羟YB@`E ơh$4϶abpvnnvNRs- dLYj(9JXD9xEeR:&rLnw)7)H3#L1Ee`ِL)%h*L1dPda̕6:ٻ;H J%!vPT*t ;4>l.-/I^P6H䲨tD,Bt+8Y!! kVutq?Ej6;Z*gܝ;'(QIhg/LskGouw!M=Q wCS_ : y~\[5d#rrO/V9yջE,h[#N89zJ۔׺T? K/x$gQL#9e q(śh,G$d9G cA4D[ $"I"E5(W @?:f#1H|,hZ(+1YTq&@<(P>_{cEjBlu1tմ߆Nt_{|F73_tBo9+;A~HxF-š[#*Q,x'niTZʑǖգ~O¥wd(FX_lSPŴua{00E.ڑ;a(uЛkfhR.d$C٦KCu:v)+kIZoKKsvaChA!iԥ4\(Scu1QK IU 8۳GytiΝlM} =9-/ѣ_^ԋǍH?RQpO/۷4 Q۫v3sE1\òVpn-CKG5jh:@?5ie\tqhw8 b݉CqUAMxy=90COO ,tu*̫ \a4cFI!_Ke%U~@^EmdbOݕ~WA9iQwF}JqOٱ@!sQ罳$Nl1;|3m};{ 766iUA[=6Z1/HçY1/?x9C9C+ (QuxI i+L6PLG8' x-ZX{GmfCmcGRƢ1L^Qaq@6⌫1(E أ8 6zPU,.|v~+*g#„ b:Ju~Sc|Q1/0840J_wB6r;^sL[] em nՋ^Ѭ3qn [7_WwUR2L;vj`İNa@tkYvoŋ;- x ܦ&  Etz\Ǿ6UQw\ϔ>qAxixJ볆q e "f3U)it=_%Z5P thܔPp*qO{|,?g)1a[I P6bq`I Dr y{⋓ Z]rUԉ]7!#,‡|+B (})SjfS"`wEn!-I{QY4/%V9IMćaz4YK%7d_؛8g׵ϭh{TI@ݕ3͌3XRv*uH(t2rվT0EeZfxnAhWVk.(DQz-JD lhhd~zzuwSα"V9:Q֕xkȬ94t٬K:7ݿUsb)![ӳ*P=Řn[1X"w\sx'/=l9.Ȋ'];n5tq[Z`f\^m=Ck)bTn!$-7108)v ) wҍҙbtz/ k' z7+u\.WB#/[_RӭO:vnZflba}Ӷ}9!$\uc}当3nw0(LY2b옷4*aَ(.j%6LW ҟ_=یC  % 5%^쬲_,"2տ] :›y s˄e~}z]<=3<}gy~ jb-CO+7 M1|^߹T E}ꏱWzh}% .dh_5]}.sCZ`Ϥ_vy<0,"h*/[HwIuxZw пbT9l>j5懨>MPGk`3GM. >NqjgtC_2LnZh]II͏ԩ /'X?.R*N5ߣ )%I~G*CbIoDĔQAȈBRHt_̸+$iY.Ds`, Y:x$M ( (/ß!(lxI ?j2@h# kO1we`m힤BT ޱxq= ZX}XLi?E}TKlkf93%IJR83sf/ ћX%"(IM"䥖(;mfڮ+.;?Ι}ys=|DeFdR;HI H!C4A4 d3b37$ @, " b@΀'wo%t:ry!!(C\,<=4qDE+@ūbT;WXYE_ZT&/(S8̿$^XWn'p s94R\F!/E1+ $=(p$pL,>_,e(@) *T@Q*?Y~a(s-[T#"s$!9( W.8P&KpŲ b+s$D>Uw}_9ґ01 zg&æ1{|D8ʔ`\q 6H) )9Q)^=lM%P /oi^kAh}WcoQ׫WY<J~7S^H37M9sPj&7mܼ19hemj2YuHI+3lu՝7r+4kwms h-w1WbHbcDS ("L˚ÙY5P x&, ZyXwAX@)&39Q4* kd́A ^EBE R VEWl(ȃTQl@tw'yAڧ1~{;3D$BFns ͐Λ&%vc9Q[ O sn NpTNShLmj(|VZGjdYV5T6-9&{%B3L[Leڥ6ޝgbt=Q5ť졫yA;S+>Nul(X8ދtӳ Z0ag` lmqA0R>!יng些]p9DTEO{bN/vEZ,C{ݛ93ظyBI~ɵ~%[[e}Mr@c?}? ˨ h-߳ΦH扪2S/Z7A !շ9(j`rSV>y{dt_]핢ۦn$zdUHSNjbX˗J 3H í# |v|9鍖cCVtuꎎ$=5֩󗹥ߗ0YIzW0{6T5s,N;̽ٷ6T~֚\">K<;G~=o}{_`zl# $yTI^#bX$B#C?{  9nEF0^'S\ݣ{ֱ%ΐKo,+:U,:ciV%OjoRƛ*I\,^FV(WN *2V;Od) 0iLw*oؓERJWxrz+;SIUW/7[4_Mah0|X5՞+=_ܱqAssC)7J|;IYtva;}!Dȏc]J }x u'13 -I8 0 20. B V SF%!?Ï ueb-Jҵ٪,@i|? $c]G.4z{ +ڻlRGWc?Ѯ5nxhKe8Vs}A7ȐguGA.zLhҟ?_11̶Լ}΋b|'/ɴ2F%S_ܩiv*s^ݲn!6/f;K "_g"k3{ 49Xw]eVEaĊpdz7 S+yZτjfݖ9՜j|?41fӯgֲUg$G`F}(;6}#4s.] 5|a}|^ǎI-}o,NiU+JMwQc0SzSW̓,S: ,cѽ>%ɩJ+Cx9?8R$n͉]=\GzF*3$ušQS VI^bCzF#aRB1g}("럢" S0@ZTBe2HA&X J`a ,H$,BF(TRI%TRϧ (x 􀂌`"ѧ5c+[ @xOo ZXiTY.@; mhBVaUl@Z*I%(C+Dt[(`l@EQZeѴ,. ʚ#= pz<9U}}B !`Wޞ"PM^SHs11z꟨ic/T2|(Fl\  ҁ˵:'ۡ daF=p|&!XA֩G+`\1{m@1? {XCvO&{;ly qe-IH5&(X5Ҩ W߶Yk0K+ 3j.WZxgE[1u[u- uJz=6(7LAv-j<(K.%ݗaaFi|YeE'wq ˻-3Vq1f@pȴK7uX#VJne_\e-{=!x63y5UN`\kOǤ͵`wNu|dFH@"碑(ŭ/ؗ"lso2"+ϲdIf=ɉ6aږȧOݥň}P+d%/ \<r2GkiO=o6xS/)іcYcx3)]0Q-.]/eQ7+siZ^}Vv"5*vhxpKͭ^vHFne07JJhDZ9Ʈxޜ9S ؝ץ,kmYUlqOns=gZz\L~y:+dtN/\7ӹ%ȷ|Wټ\l~)dңJ#8Eӥz&MB );K|nEڿ;NYwVH ;vqIo͉h)F=_ }c)Q9V1;*%dWgΝjHyYW`$=oq6ڦjܬ%.%Ro,\:,8)8+iw?ryD:䰴@{5mFȾڋ}_jy,25djmz҉^ߴtѣ.viI줵v> y[|=C GQwY~M Z(B11ZO'j):@@00>SoUQQI'v5x2mFRNpCla⯪HÐQ75B۶wΫ%OV;ryG{_7Ki3 .uo,*OVp4͵/-}8oEGk`l2GaUwfO+YJ@rE]؍@z0ldmpOzhh?7^(axA i@8_p !ޢ{͖u  x8 Z+/J,(H-b%033mhnjL9 M]%E Iy%x@s^۫ s_l3>;3^A6{%+f~?͛[Oy'oE>bk9y$O lrT6io;wS|0Z9Tj׷3Z'25]Ju? ^ ~W-24՟?i"NDvX8 >?'X>g`8#Ԭ4vl4$Y%YXZy&i)@#Csd4CdD#$sC$(gBtƣxDļ̴ZA b#OPVRQkgυq =C<,r%Eyz%cM*ᛘ**Ғ>9I"%%9yNLI)K&Z4$vd*KRJj~2U b`t6EFXSI[ORs31)JM.K+ŖRs rRJsRM,n0kAJIRcYV@,p%5= >T4W'oXen( SJjNI" TƆ?=GXd2Ӂ,A(5$&pCG>domi81AxJ_(n:21(23<*f< {@Ǯz}]2U9r>P8~_ͭ.So+y7;=ī6yT8 9Zh&r95ԽgXd_ʚK|(=e*iS QmV%:FN[aٽRe66e٥ME|Ա95/no9;c ֛|}˕Z|ED1m]PA1N/iIg|ڻkes9Ev0uԚMq<"&yhB<ٔ=<{xuu>iNsp }Os4j*0=W-Pw6{o^ά?M[*ǥZZ6®G7o}%Uի?=S3M׊6>_ηwIEAMkjN]<1h郓O?ńsO-;ٝzS-.<>+㤤?Ъ31F2pPO\&b^׶Z-Z}_$-zK۔Q$0mJM}};Ҝojv׏½GyR>_#7 KG1ϥ%r1ى =1.lt7OCMz^ Y{DBE f:,xƺ=+V/vyZuWsiY<~sigOsq?mMo<$; 5b'[A܍O[lr/NNw  /bob\"%\YfDU/ӣOpb^YDېƖ  8Þ Xו`h͛~~rˡ|%^Z7ph{i^^L2 '':خmٮ/m˲K8ZTz42VucAm^Ѻ);w_Z5C-Ϗ|/_ͯb}-~oIe'zǝNƟ[{E7>\'m;2:% -'nBqʂTZAx7z~`G(`Q0 F)(%@kBx;ǺuɌLgzYx;zu[F-Dt/0dFx ձ0Z*"‰(ui>7x;zu[F[מ϶N0TvLaɌLg-rex xD?Bc-pYx;zu[FΝ峺 y`2#Y wCx9^\wHV67y1f $ j{Ļ<# w3Ix;zu[Ff[K=T8Ofd: Zux **J{,6#x8-յ6JpyWV^@'\d\EGx$&1}/G#%dxZr9}&͗fEڒomyb"di_=XXhm (s@DjŖJ '3bqVl=/;ۘ)5vojL9 ^6G-(Kh2.Ն^PŎQ !fo QOe~{ 7Fbn+٨DsFK'^ 6wċaz(Ԛ}5ne!{GbRb=3K>ސ6D+[[44SAj WMg!;%_P]YpZo?$DҰR_ 8wNJO"/EOq)/R][( 1]>Ġ $4|vZ/CIm)&PI~GbӉ:]rnҧ+^~EMk\.ND$[k}NJSkބ)æ`.!`!@w@C3PgK- l@(P2@JJ^S =t˼ ַ|vr (UtZ;V7j 9%ypD{e !Ev< Ċ|ŬՅI ;:m'ɚ;+bɩeg8BBuz@aJt+þdԄ=dX+=\yďs?{~&jZ *6++S>kEM]热OXa IIZ %k: R.dM2 IyiP,* S <X)ٰRˊi;u1BESt5.i FJ_2^~l\/2A/'9dBmܺFEE]K+R?$n+t(dO\(:7ʕ'He^p9*UJࢷlRqfPD og /r<.JP#ۅ-{%ܩ[4ƘAFOv̉IT)^Pggq\/ƣT#dkJCUad46OS684"ƣIU/|;'ʩ#^`cc<Zȷ6l!)]+ 9*3'g828Of2W&mBJJXjx]g?,5\v a) /=9|J+-Le^>%u=PXכtC\}B5i&rJ|P-6B Ci #ő1nS>*_}P)nD;~X _0-awИRwF)G |TN|xǼ;$uujG].ljĸ`Gg}0&H>O Q$$}Knk}.B M|<BZi G夏Z>vfOE aeWL4'DXBHŴbfUUʄ߈tvxI (ܝ{ʆHy58hN7*0t~w=cSWylnǒjvxt)xpSwakIúIV ➳A|\ɲ/Wn[r)A(Pyč )fq8+NqpIdlB&o[a9;;> 6.%p)ut_y%<.hyk*~֠M[T{) 8!tj8~'zO>/7*V:S`#Pϟ>U]NI8 bZGv!z8($@uK!O,̡~6ὺjg0] Zf |FRjqQXT4tcLy(_[ջ(  WC"v>Ngwj|0_^e t{9.[ִ[(Ī(Z4j8`t1Q!ʦ~QP{lJ0@aۘ<ږh6U{C_%8ż3kZMӗ:5(Bq+~DEHf}2f8?? 2ga~+6Ur8X|[]ۯ4lBֈhHx;*`cri[x;8o6Fqujiox;{E?R ix;kss*ix;mVCei+x;eL6%?x;xP3J5XLPTDRXH! Q@AeRtx;8P3J5XLP@DPȴ242T(HTp(PP׫4xZ[o7~$c]`7\NI$nFCue~r#hbK~_LpnC4Mc:{RZۭ Vmm[ſt}E?7긵z?ܞ{k鰷[$&Dܺa6vwonwvb:hwtztVQߛMuo:SEmmKg:gV ֺ;n@aw"ePq롆DU5zwK  {~yҦ N<4|Xu$GkCUZU~Zi]L4ؚ)o >2zX1=S+[u3צQ@7uѥ㾏\ 扭SUʯPq [iXM$>]EkF̜T0)ѶdZ?wgdv{[\^t0l~ \qM]wq}<1͇ȆZYr;$`!c~ 6RH즤Q޵'D,ӲY~Xµ;Qjk#2u-M5'8X|ZK3 *u 0G6}tfyCOCV9QFښvc Gg)Yiʀyo@X?+^U䀀ԙFtI#_zm>`ɾ*2xmngKՀӂ_~8V`]5f]#qW +D$;EͭwnC8섭pDNnM]ư<Š>ڪJI ۬œܷ(BwК23Kw1hi"pƱLByOK} I/^ >2Nn QKĴO[$$ ( ބC?L boHrRhRGBU#Nt'\+d WAH1I΍,DMZ [/k|Qihj}+97'Mc4A {tֽ'l)dФs)Pmnc\cP!R,J@=vh66e3SP A;ɲ`rd Ւ~ \+Y FWHZ|9)}s{CN+BQI)Vj)\pC(R|ks wH0?XR[ dr}il{:&孀LJS$Z%sQ(ctA>H!dGj2,!YuRƋ_Wޜ->]/탇/ f&_3\C' &+\HLw(" y·Iyҷ\#*P@T9)Nqj j%LlҽhGaջBQ InON.Ì}_g:vo?|Iזj9+pNP?Ex!4TI5 }4[F PN92 duGa-2:ÑIqԨKB11+ ?g5yFʋT',a.+&-̢izUI*aBpR1a\NН6?ErH 0X#ѭ'Pc$%. /`;BM=Eh{éiQjr1A|feUmm|{( bSfrZ[u\!-՛u[aJ--oLJ1RWd v _vvd >WN:/$ܴL;C'+8efTČ)sUcj>7|WI|:?iBH~MepmMŁH8{sV?y܄2UFeUj冀Z/s:ˎR^~Gfhrv;*W̭epɭKŰI3ϝYfPR2P&t032"Gu2~+n}<1گ,"`?锔E]۟ [Ҕ\6"ӗ?|[||pt $!Q~5XC\mjNjrϑG94T4q 81̤0Aw }GvyQGn~~b^'P^R _,ͣ`>~[\5aBhES|H-r>4at,?_ٔcwm+UQe-`aV& /G ԔZZ[˙}>xu!B$|pa\-8J&r;.}C+r%$bP+rPD[Nj̴nH<"˞7cvL$-h@t ptAysvHy' Nd}FT:e^O' @GԎA@c^> ؍ a㇫oof>y3c.D_ds#xͭ-5dOwr]0m8S[6YrMa I;UcIo6Dw H("pQJF: Is] ؛bat6y{A0De}4/'jO7UfAzPoSW/ƨ?ۆCqv L׀d0xGyc,eS]4T16T| KM)ydzDC6"?q1_2E:G$yڝ aF}`N`e>Vl]Du^sNri}<ΛΥ3peZgddimO^1i"lf4SZ;myLǗBHw'ZDgw\rV| RԖGIyM("mQF'ԋexrJ W"H*CP"we|yyͱx8AUtr;iEPV=Ueii(9>!>cC!a~ֳTxSj0=G_1@[XI^Ph)KCУl!$$y7d{Д.m3ͼysS[=?ޖns//+N'B<8lȄ(?69O 3 -{( #Bq-ZҸoZ=DXJ SI"Ud(; 59cx .ZY5ִԍ>őboX= Ykƀ`۹j/T{8ccBa~ǷA \XH"R}GoP ,TK9!*'JFzlߦbX˳`ջRߪԑF+L($h4" 5Փ-a-d2/Vtkg S.t.&`Lq^拇Խ٘{=il'őPiEK<Irɓ9`SRL8x{Y&n Ϡ7n0kO]x=!ec #gJFo0zx=!ec g^fNBFAkEJFo2N^"9%Po xkµ!er=u,- Ϳxu @?$h݆`aHw]߿EH f}̷m=60Ӂ8uG8{|^?[<&[/Dҽĉ =$ArF"٥YY [ L%S}9KFRj]ZR?>:H3xUQo6~6R^䶃+-`tʢFRq];R%7 ,@x+[dF1?τ~d9;ΐ(贆6\9d(ڕ*jø~;![!I8aUä}s4Lf%Y)wnvK$<vש6Dn|`b6UdfR>HJmCG?΋@f#W^:jl\V"IX_J>s|{»PeՇN DA RMF:ʱ?ê@E:&Xn\#XIm95TTg,,%+?],Nʕ^kvf5ɖCt^P!oګy.Xp-Q=dN&nyM^u[g1! 0z̶#G]Upvl$:r䱁]9m-#Z]>59`ICqcG`0=i HӐ4Е#$2Voy*UVBW)/6을׫1L߭'!yuiЕ/JӼ&l#i<qf#ӓQE.'3M"g!+5TNI?v~Lvs48q}$n{0K,^2bN[Nx<ķWbr~^Zf^^fSZ !8 9ɉ9z&=؝;x;ķodQ&͖L*Vx;ķoBƩŌE7[2qKx[ȷw7278xMRێ0}WL9 SYnH@j mMc".ƞ93)[an{k;pl:գAiG}ڭ?Pqk"*\{J: O AiVuHq]% WEȆ؛$Fη`R4r$+TOK8H -35c jbυP{6H~ ?(߫U:UvGHco ?5P!=]n]T|.$vM8UhN\c(:b3d@rIu\&:AP围 Q>'A}G q$iQF-IvzWK$AWĄ4w GO/7Hv,/Ccv(_2IװʳDiVn#83rx$K![>ltY߾SjL1m|{hpMQ!O#e}H9?u!+]'Yq,Iz\ґΌ2ٻQΑ.O~2x)x*t=B<?{*xVM6=/Pe{ۢ.z] I=R&,*IYq}ߐҮh5 C8_o޼ѫ~{/M:~i@>J}Gcd,], m@3PEVs0GPhP於L,Z^>:jTqyʋuCm_B.bBQY"G߼}?Y6xh)xk#1[ &##py?6mwؿQ*\"/c蠁?wFνv޵3l#㛢h92NuTUm״NW{8cMշ9Tlf#^۲Q26Z2lM@u96wN8+55n*] `LwTsiƼ` (Qq S Xz:`0i&6}&fh}&qQj(r h|FzA\<n/pdDRDd*En\w[2i(BN^(zd&Eٕ6F1p'זu?~Z( ,WleK~W%cLXho'NA5<>EX8 NIeڟS҈ h~+z֤oeL+ؒNXR݅%||U<~e 3%We|8v8$}`UE/}k۞WO!9P sƪET!u@RPiJ%O'WQX,|ʗ9#L_笱9[ر1*FO8 čzWa4''K0[ʳ0—?Na73"zQ`ѝ-'t.x xP{սϕq6P1'ec@?Zn+1NmN+|360'* 8PSOxC4e<1.E肤]Cn0H[f)~q6Hx,e`#w@ga'z mK&6jUV*hn\[oL0H OGD UH=6]YX4%Z iZ"{.Q/F N2I06v{IȜ&&ӿ4"{Tn8]>B&B1"Je# Jcx{ \ĭQE _ߏ)˭)๹J&뛛uƈ!{FOeͪbtk7 P:BB/a綫= nqLi:-;SʍlsNvzS>Ăf>׉|tb4ZH麫΍:z3Ew$_U4|a.oV61>rg9rͶ\{Dk2n*l"C4Mxt[1JRS6{)7*ʴ~'T0 r C ^6/2=Dƪgd4ДA0lܞhbty xp64ȶ1Z xeJ@q%oB`DKLBhՅXK/J[)mH mgb2)>B6.|  su-2t)em a63UV)JHQBV-d5c腬hoU}QL7+C/UznE z8=bc 2X6%.hrN?݀1`8BȂfQM|,sl'7"T+8)Yfԯ7!";n<];B;uh!aaϛ~yĥP8{ WIf9@um(axv¶"u=/ECb!+ES ƺ6R˼gqSq˗C.IgLQƺxZ{s8HΖɏd6;c%e:"$9l.H"|^ )y2[WJ9 nM1ĿYe/?/3[I172R-EпIg43p% RT&w;:d"=?g~ 'DJ"ĕ2;a4SFviv2Vgђ!/2ߕSe4P7pLHF&!8АHArCP\jL^k()v}DXOd;AZ FM6WllɥtCj'`i6MKāqo>ލ$ʈ}b䞬p O a Aeq.[K`Q2?YH-trQ6U EB$ L`$zO,UnړDK>9XB*_JS4b:}O,dѾ.g,ZbbF.`b f؉S!ϙY6>huL>S S`??3>) aV/EM0f|I׃ZGAC<ϖYp|w{u G!D:^Y. + K{`!N(19W&O#s xPQuO'-4D&`"n~b}x9A"/:͠3BJƒ2I@-VJ,c|n@2ӕ:v)EVQ ĄV(R'9" -AWY(E;;;Ż!'G?7CzGn0I+_gSom>OM*b:Svb~0*oRR'\ȥ yb)Xƍ.Q0t9˻C87v+'/uBH2#GБ~yv?`P-O!9x ZQP_Gp9,!/d b{" ~bb6{%yx75 'FxhC S%pOcE sV\q@0)[qlHTE Jo[;6{#m~Z mSھQVZ8+Ϳ\֫] c/$Q~XJ9H1 r;V_)*NMc-(Q%'b u+:ґ1n.JSCz-Rˁ^>³c\$^ԃԯn?ٺ{RFn')*i;kWQ}!O^蝟Pܨ9Yq'Yarw.-!5A#NC\6κmV[$Oý%T7%% eD۬FKjiCbP0p5x#}\"QMW; T=j_^fMƭP㺁ũ5k!֖k+[(l=E@n+U2)zLއ{IB/W ah٢ aU&ҽb*LwqFڵ6GZֶܩʒ) *ظ!%LVR0o$.q9'%,*8aUUrAcW?gMK;I<+ն&jQS[Tv|Z23VWd:Ö֐XJжa\ 3xס58phEMeghC\aC}IVbbZ!N .0}.U٧j&ͣ(YS⤣^P*&*a&r. 8)dMPs")ʄm-7!q0iqyΫ Xv̰"Ta -u\iqv>iti.qODyPOED,jZ{"fBy0s~8tYdz}{>ƣQ%#`<5@!pŻICcOu{쫫x6__\M`I ,G-otݽJn TwX"!- w?pf=O*lrwPIjuBTpl%-㧡*6q0JZL7Z#}Rל/tR&;tLPX=BN_m0B+Jה,DHG}bR" 7à&!za >xTOrDrrs9闓hP.ʑU.+`\#yHewҳvv[vy4UZ{f4#)˲jn uA V>BSu0l(F1~\yp\,03 GD~| ./o1M;P+ AQz$xAf<Av(ӊ*ɋLm+M`PR;=Rj* bؖTe-"iV* = ޺l+ o5X%* a!a#Zư)ABm*M4UQŊJBzߔfxV5EyR#b.*\HC"zk¤Q,H#x_&|ȱo8<ڮiG֡ $ia]l1NV%b#ޣn خ{|'wK`o,طDŽ>O9 g9>gܱ;7r03(w 3||{SИc> s;Zo FF\S0`b`H ĚN_DW4 KSe ӓau99=o X}Hh#kf /d؁fT0 ! n\w$ n5L]a ka2B3>psN&*Z=2""=-0\HSEZT 'fE=da7Sی.q2.ȁ2Yc`Sm5T|匃 x54D`O*}pGqYϾ{P? ws]>_"׹opg㹁v W١&?-JpGU~vzA ;ڹJX&95y1;\B0IC{V>_h )]*n\댊^c>el٩ъƈG[g_\hI]z?JNFAd7_A>U Pt3BbgWw-4yZxD'Lo7!, ʡN ZYUUaul \5J,L?2 LIb2zsYƋ jal4ݠڿDfMxTAo0sMBMہTNTL[58ZT3?Ł;NHUXS=}_zWIH(Jga)fvfgu6;BMhOGg+D&@h„gs:{WcOs1=pWE'*Bpwd ZBZo˫j؍P IgIK ޾;'76M&EÚ5韜\6%"?9!nԉ5Bd+6Rc̦<&bv{a"ᘥ!@\1sh\)<-HۊJ* #- Rib!' *]Ψq#0U t8kWwK)^4 .{WMǦփU@Ә$hi|,Д,คQZi;$E*w^|}$Q6; 0Xhaڰ'wLy5I۩gW&x/y#Nij yoox+¦♲4 "*5x+bZQZS`g`d``ohod`dde`dej4QG jb49%MF &F VVF&יCuM~.W g" qgp&e*hd($($g$)h4t`%M2Puf R ^x+&agFf^BAfrv|A~QI|Rf^H8?9;-EG4MLI)Sʭ1uJ3RS@ҊsфJ5SR2Ӹ_((x+vyJJ R2sR'pCSRB\@^fJ;odx+AM_KA3eq$UxksHW̒IaHɞ/Au "v>@1RI#gI8ګ:ӯ4oٛ3gEޜ7!dF_o8Ex}tK&\p\lLA҈݆,܄>m)=,wܔȣCV>`{IڂW "˼3WrD-uy*;IѥU rqd;I7?S팵c͜'> әS}8GryP'5n~V*:NNl`AAWJv쐝/P#QjwRys42t,RdqynBڙ'In̾DA" ~:U]B4A׆`{U_* ($FkGƭ*dLnA'>[ 7aהǏKZ(0T8^3 7qԍ4TK$)~u*߶Q muѰ'S -U;x2rk8r 6qG jxK4YXs{ܠ5>gW%W0J! i^$ihZ)Л=TCQ-^,j`ÈV<_TӯM!bqе{0Gk>ގ`/ V䧟H@~t&uG ?>?Hp7}L&*0,c_) OBMY)'9y2&d37>@N $n@t^^s(ߙ5YqcO3 Ӱʕ~8J05ǭr$+Bqw,AiC\i1T:֞[>t;{7@/>r7Z0:Hi>H^ M  tA%4Su hT߼s*Dķ?:Ӫy/zʅOg) WD3zJiæ{CFG!*m]}B@LJ2hb#,Izh/Z0;VSٰ򘪏cny^䍃m͑FOtb8/nGm?_mR%^[q^,TB_pԬ0qmax<Ï][wMZ~j $&SP4Gaٮ\ l~0C[!FwxppebjC.2"Ehǘh n!KN6|`knV fSKT.UJax36xrƗo"1812cͨl2lk`eJ6 81 3ѧ|E4Nɣ5YZNW:@*wB )F!QA#`AiyarP߾wʛ?t C `"]컺pp "IdK?m&D$ޛ@,tq j$b:?Y#NqQ ȧJ~L9=Q.TyZ.O ҢG(W<-6h=׆+2b6.(>[w_w4 0$xvx٥S+JR3 Jҭy% @̼ZTz" @I?20+lx6k6pU|] =&#J&x6am+Ux{fhC?)iedheby c7yB 3xkoHs}h#vo"0wp961^_U&t!''|Bc%R, AȒ(IVL*FzCZs'a_?4N=%jsHi7ǡSQ̏_mxp'xdk)6pm)a߹@$hhZmu wvQP/Ʌba\9ZX,* iH|ZA(TEe ".Vo§0JH1^`=Ux.|.X*VlزbikmSrа+A:J̸7}rmӱ7zS]io׍22RI@9rv] SY.+ 9lJԆmd7l);Ƚ:]^F*aXp0א\Fȓh+5p! ^ !ۀ8ΎQe7h0~27h9Y{xkK >$Z^I,_@ș<7! şs_"ǝ%>;5MS vƔ] UH٪uxQo: t_z" _U$a$VҜJөVfy|_ >nX/x1Q 4oV=͕$J9D : 8CAcdѩv@2M@_q!@H랾|0'\5M5E<(⺖6M8קkA C FFh9S$`\m8YjexMڸT46qpx^Ju#<Џ/]kTK'饐Z{"J^mP/Z1:PiF =7hH\tT:F+94F'@]}8/wldrQ;Bׂͪu|kd$Q#/76#JDB, ^9pXl"UrάsInHc'vruO$ZSO3_0fȨ赿Fr~L5j )x`vt+$\F\:8GxO@ßR.ʮ7͚͢tKJ CBHS&)-r"hA _Ó^nыS7Ayn*EAV̖\34+hNJ,5C1uþiH4[zTAp<7|,:#DQ@ab1 x9@} R;ĢcDΚaپ7ģX,AJN.[Q@ߛsrEX fuhywiL<-槞Um Q (Un~׬Smi)Fvj#̆isE@hl3xB'Fux7Ջa֪Z߿ǷI\^&16H.W?[Ef$v imξdEVb4}}L%<*vhLOm @^ݒ(ܦ>e,D@3r p<˕3x3q*X}yK Tqїҋ֒K֔iy)S҃ k&wJ+t% ~#?x[fpRsrB3g7KtPV}.=0k#+uV҂^Ab[8Ry **uo#TԵ^WFMz1_%Kflv:X(1c岵 Y:~KҽdpےjN'Xɽ)3ѪRpRaUmkwDi5˅.H#'v~JNTQ}"Y[uҒ1\/%qPI2uy@WKe-nV?!)@&A )I;H g4alrP)&I2:&] ^*YwQ}yᶙ 7j@,ҧy1sUl˦RAY^nEJ#oƤ{˱bq$ʋӫ?qzCS=8 +R4ui! t7ϒh<ݶwC_73`LAu)DjĒb# EUXKKkkIvִtu?=Zm_m,?tin4l2m]-Zdv"@DG8d[ST_+Z ?eF4,uF|&Z[Ѥ̊g[Ai1]B} Φt2smI69pt0/'MCd0MEzp01::Jp%,ox,!Q$_"QJ_EQp_]uלpqh>_iq'X)P E ,߃PR *^T7BZӠ&IݿA*]+:lӍaLB TS4+ f i&FO"p'vUd x%RSgj(&Ly$(Rue=އa*T!+qUU9|+ mBfem ga6rbj秆ɡGDQ$簣ᾳD8h>5cUPK9y m|FAu&]wQCF{wÀMS'Sv2(KޭQ473 #4tW݄l)R4Q̢!04yg\뙉uظTbU6bE.ZBC5*ɯ^li6jU?}1aOA_Z<032?"n3hdtykw(L8ydI~YpLA2{vٛl 8z(߼aw4Z_\%13Tep:s6Sv?#_"|˷qK l'4{<'V_;PycEvCC: vzZ|37w|ՠmﵻ|8#KM(; aHH;< ~Q4>I} ҵԱ#V&P(o^൴Rre6wXwnjvSE=׏; &7MV:43U*PKB(ɽB_m^=Pu8p,@ ]8l4c0A_E:"bDfD2bhKnηaIw"L_bi]kJ]˾јSR7_CK MȆMA#鵚o҄ UYkl2 85Р U[V9i ;u($+ciut]m}և!rnsu G'$*:XxUn@ Eܯ #uDi* ~# *L^~{'T k?B>=ގttў/d{GYe:!P*z,RmkshċU{ټ⾤>Э|SͲXc6&Q,0~16#vtA:)m!coժ/,@Gfi~F̗(^d.X-v^(`]x;ʹiB_bNgNfREIQ^+nn e%xuQj0 +Y+cPvHspc;5s;'/N ޓ$y VUeGVBt1`Xw9!3eJqa9k!Z E誌!G&'gp-_DP+e3M 潋p|`oc, 8wiY y5D>'|n <6\H*6nF!M ?Br!!y.6YMZ PBfB[1e^ۭ W?TF5r&ߺAF2xDze?Rr~^Zf^F$42J455!B5ķE'[2*N`T\1y3PjAFlLrj@bLLx2K)9?/-3]/Cibc3j$x1O0w]*mҮ$V E0FU|Ǝ!h;㢤d?ݝO LAݚy3Y}!=ԍ9 (SN ^J2mp4:d.:䛀(uZKZ"vY"9W`5fxb 5fXn/[ 8GDW/S6l(D8z nO.mƒvcdJT-+<(yS6O5NpXç"hF(INx=NK0)FLH! [;B&5mѠN8f}Հ5ٷt\}gXyr4fr-m0(Q[n&!*}k&O3Bj[ 4 gXn\leHHF5kBFee\[E۳=?l^[aR7x[4iB|f^BQB^Z5BrN~qF^jyZ&P`<{&>UJjAjRKJڭ|. xVQO@~0G4!g͑QnƲKvwovmEc73ͷ;v=‚f$$8 qArRxR1AĮɽN=0]Gڡ1[$mϣ2*90"X23(ޡ+x<;Gl-9lW-Aͥ~udD ɒ904.ȡ L.큻|aa +pWQ< ?UkL(A5)>k,'vy_{_ g^-]wl:4x04x>{ܴ5ZL, "\`uJHι K*-J..H3ͮ+yiW&z:i[Sh%K7:~: ~t QnY9 Sr4_=V,l]%IS"=2T'$\>.Rטseu6w0l-),iP3Cx bWV9X#C0< *6ZGyz6uwq$ SA'i":N-buX(R \a'y׊]+rHeŦ?%,:\mBaZM^-if|@uN;p>߶qj3aLFUbgI~ 'GW$K(L:J,i x-n+e ҷ-w[4, Xag qȘ J/OaTb߄烪.wf]dHoہ՝gî{$H^!l'?cy+Go](w=0xUAk0W xن{^ [(t%lc, N-üܴ` _o{})Y1{Qͣ#{@ګ׮+Vѐ 5*Tt.Vޅws|Kp4Ez"멊U7 `,<.4ad| *f7zIV uR.0dK݁{$MW"R(񟘙#5)ȣ+w~xVKo6>[bk+8Ǹ΢(Ei`2eHn;3$m 9o^uu%3G)/r<8;s0RځTP7Z:pi)neB1ڝJAՠCX'w^/ c#EYj."w8 hq$?(N87Pa$dF*Q]*SZOv©0^GN %|M?uήޜXM>Y⵼:W8"JJ(XM%\~4 gɈ>V-*&A \a޽zb#UI:Yȥ>~m^YXGy>V6?OיpXmGZs @~nK{yT4($r.4ŤJ%ktSmqZM;U"]i&6IX%DlؠPGa(gR45R7uQKhgppZRd5v쭨z{ᜬ: 줓9-5{\# c1gL}k*J NJru.F:OB݊f+"9i}4S˴@//K xxpgd'xQXnGF߈FCkТX2xf7E C?̛sA&š"],B.jиxSs@6/ Ζ2Ha\lߪ$9!ٌ~c?+qPnR*Ѻg|qq oAïN7ugZr ewDX )F!=s2سygXCy|Hʗ"Fbaց } {ni? 3*Ȳ;ĺvy AdnA(žszٞN\ vݣ:گWѴAmڸre<)n{[J͍M[TȵfE&k"<qjDbGP^g?"4^[|:";~{Ifv#oSsҙ1xKAP)#^yqgθ$G4fTTx QEêWc5Q.PovlBjO/d﹃a &q6#ۥj) 9{RHVV_;rq2sƛq+}w9mME,6O:F߭=gU5 __> @x}Sk0Ȏd0°A()+4?aTYjD]IHJ1lvKݻw]1!UF=Rp^ Fv5)!0FKx"ނpsd` x* 4 )/|HT #Kv՗Uo( X\䗫mڶp*c4c9+ p(% Ng8B1ի<QfWwWW;ҋ{q֖ؽ1?82\,e~ܚ=P:;?q7Sw3QEj 1 ( h7cC:K!4y/qBg<0Á$ >6w2~_Q];v 6%tdōmʹ/.mGuCD?v xUN0Drq"H'u6dc[MpZV seӵN"ap.<7B~ )8Υ5(?T-Y(*VXf:f}J'_wҐtA  ^xgk&F9mBc^aɚE1![QKfU f.1w1>2r2t7~>i.9agkBr __ M#x}Q]o0}D?‚`-{ATcq~JajlMsn MѶifa+@LgUۢQ烝$? `q%kepT2d)fmb&낋j9yHr5Gi~WUjQ0Th:EyZGDak}g^+0$+b83{NɴJ.9ŃGxƲeB.==<q4  x)UvzU}mSk/HNX Oɱ3'a.cٌ^7x$=o'i_-R? "$\ĮGO'5vSoH<uF9"/iY7~S'%L'l5s`ูjD s@Nչ oI0 z5'lL6-g3ǟ{1,"j cpaJi9,#m#͝ԋ}gdC:Dܫ] g N #>xNeG "p² 0I4ss8 ykr! K`[ `w/J8ȄyWo}t`,'6"]|bB g;A5aIZ+2/C aI $c6+NbI乸`,$bpgcd:iwzΠv zwAg{67 A5:X^gk_[AٯV=yB=EH>6p>tF*ٝnms']nFB9{OAyvMw zcgwGzdqx;svy>G% @SN(d~K?vGS7ģ؛٨laQ~g~ژƇ3>|FmuOA95(Y0,ٳg2~M@ץ(ػ Q,ƴ Oγg/] vLX@cv vÝ:c>B[<X`2sC1tcs#!q}Ѡ&z%tS/.GwաzpGai\{z@t Is=4اSj4qz{4O6@1"׺z 7q:vPeֵ$tfW ;(ț† ulbL8e-i ~&f;3~xq}"6[\଻$33l%Ԁ?Mqh!uk.rz݇(͎F}-G#EjD3k7?ƭWO.70Vq*)ܮ}Ufm#R:C|k/ik筪g"k2ӝm!Ͽ-|{C"6dY#te(CemSp\eQHT"))D6,usIM j$)Yʡz˒H1(.lŶ}:k/BW!T6ۨVQA@IO 0*s[5:W=p}=GOQuzO}]m:{w~j`J; w@=a5>?6H >m4VcTG4s e<؊ X2N[.5 vZ[FE@e5'w,3A{51BA">&TfKa4L Dz@ lÍTd3>W;G@Z(?˞w0n*rVӦiF? M8DًcL-U׸b!JB׊Ӯ!9dy;I&.i8}Fz w;ܗ_?܇(dhw\qnHAO H=JʥdL+K1Fq"\࢓{-Bu㨛N'|~ԚF%97+GH(Ʌ743z9/^8o&43yް͝M$Y˺_[?u` ReЂWAk}^z\OVl)u[C Tm/bV$2c91Oǂ.&!CY]2#rr㨫UtYdB^qfs'`'\M}D ;Vϙu]r H8A82Tq-4Be^4m dQGe92׶s&\`]HgVy擖繣E%جO˅tlnH^q`*@d> 2«U2ezV^޻2A4X^/$ˑw>ꎎ{ƀ~ zαve_~m˵[m}ë̕e#B=n:[fʌpF.Wk5=pn#K`UP*5sn~?Ϳ_BrÜ.X}הּw'wr^_Uc2W1ABoyPپx3V|Y'}C@wKaܣBѬ3+ROCbZ!/mSIQCIw$ް_^w._3&5Rګ?'ٜD^F9- pN6dCOTˆ89X,ߥ}Aps M`ߡ-{nX nlD>t-t<{B}< a†Jjܹ{UoțHejj+.?\`x`X\4֬n{5?F י9\sB_<7k-w8wuSSncd`rrQb, j (Y^[89ft]%;+d.P x^G+lȇRMIN[* 3fUinM+w:?DU|hZZы- QR}ջ 'Tflr-{ˢZV.jh3\eePV>/ҪS摆})$B2k?W>疕(7 OsE-P.=I9wRw@%AwY~Iv̞$6&y5sj4eS7V]gl9BF\;סbu gO8R9&,7pq7;Iv4DIٿ-јkyO2ڵj`Dt`mN&3'\!r*W&iO`W^Q#X7;oCqCa/1AM73FY(A-B/p$JМף*>W2o쬫q5 ^瀱H` %r~G~c_YQ%:g\S %hܞ>4{}e>.آO}%ìw0`L:w%0MAA+ նhS؃i"nx;N I›3<3xX[oF~8KBR Yt#K][ԒT\.5PCU~̐) >lP̙sefpBoTTr)_FwTnwUZtW?]o-!%kM^6T.Y=dWF*ϖeUdj@4s*mtfD{EWZW4,r8#w;Ef*7uV5FΙR-+PՎ1TVͦ\d,ṲGҴ&kmU>d |kU2ǬXQZa7>OG9rG.U򁷜;Z_ePg/YLFw=756xx3}_q 2E _ij8 Yec} F~X6$CQl2l|`Q4&A8y)[xq|,'b6Fw̘}"핏*;bxpRȅS{i_^pݐ9q b&5s&.A;y ?#a'VltB_mO;ݷ "+:y;n<ߟIVчpt  C7hTu+ os}[JP P"5~,QUYiSg(vr<8;?2(RBrJx?cm]9識lP=y+0Qz:!NiU_a:[tMB^[떎O^/5R 7*]gF͊4oL6Ym7,­Gfgj1;fX v窳Py=,S0tD/Uײ&nY6uFihm9BJktKy(FP)z#Kn,]jwd-N]ѻg9F/if i|jXtm=nxP8rxxso qfR+ -@ O H}عqv2;62QX;2K Š \| HәCܬTbD4Uʢ+7n9pTZɄ´5z82f^bi>z*+2 N*G8]fؘ˪BTz<ӿ!Jzxܠ^XzTMQCKmYlQ[&JT:-WE;'ߏڗ Kl):~imh[ʤYkx{-D#ȋ=S_l]9]m'|rqő+ wIVl5| \sQT3KbJ3GiC_y.pk;ö\w]f5QV(>qYufH;)W+Qӣ5;V- 8]l}CZfPkwЅ!Gwt,UBײjevcj8!3gvILJ)L}%;GPPj'b{ܶmi;>g.?\iFj0 1r=0xl8>4?8/Hn!-{1FG(|*¿? 2T<cL <pfw:qϰZRy_ꪤ630}^Ia :A{x[ctpBgFlF .ɩIE Ffٿxlvd]|/>dDx;d[wBBIZI^fNiebne`QZQ1'RQibQ%H8LgrmN`<]Ѓyh33vjjx{VwB 1lʳxks6WlqB+IUFhSYrE)Nͨ Y)GBv|S\ӛPǢ{϶t. s/8D OH<t|$b{%"f+U W X|o caY7F8Zb܅(o<Ă < #ܒ#z>ܫ&<9+W@qC^ +74FHsx Wx dxe3oc<_g 42r+d:%FG{8Ò {OrKR{7#HD3B!{HC!p.nl- $" s'Gʉ=%M|ry\~0BfwNr'o =tT6)=pO*lkN窸RYQ'mBs-CS$F.qVoz'AqzbAKIF0ז t|gN02؆Π`"JuH6j;&lH9. oֻ& ѥeM4eKQ켓2Nd,M=%M )tzo,b^/FG-4SdOiom}4p }1Q%{־* `҃8vwQN9s^/G?b $"m:S溸9 `d^߈Mzyj>H#\  S0)R04d& +mT(&\8D6q喳`1j^%ɧ2 uO<#K(-9pz.Fk1(bn55V<K[YvʑzTMp 1XVrKjϱp|ԿAfh$5DQSme Z& YnY#Xo[d*,jẽ !unԖDoB5s9%S-Fer5Ma,`F:L+ $̇T[@OU%X5Cc>p=>&<#iMΨ=j{4&xu-KUFp <T :pǜlUuq0aTTUIUu22RFqx^иjR1H@# 8¯YZh;gıvUS/3VX1.G?eH)HNic2߰NtR{J3ᆠ]tN-OZob@.-'$pP>By!A ~C ^K4͑0az4eQAR_BHNO'"(3g ll%R,qF@PFہ.JARƼ5I2chX pdXal4hi>^aA=bʺ#ǙPgoݮf>FZTm8  8W ڹiҪ @JlnoAӄ@j&]!v Sy*JꨲɆSG*C"df`1pY!i.R6\M Gpx%>lnd|r0UإR=PO+LyWIgYpQ̬z RA HT͍IR p=䗠'VJl\[c%E>bR^X :ފI0S.pq.[ fXt9pM﯍}}N(405*$>'$Uj-:b1y֋`jP\'{x}~\r8تnVɔEH@V &uEFB:J:rk9V1Vx(\0[]=\U)o5U#\H<T쨁,z8-S!CiQTaekeц˛= ^q lFp5l2O fjX?ʧ#soEEUb_e;i?NGY!s ?w?w|wê%Rtvws>\_nw2u{)y\񙅻y{f%#>%VԲv1Il,f\t>Ϣv]]9Ɠx/AE\\:J Q l* e}Jk ѦL/ׂ%h7.poW|Jˊ4/겒*fYD?k{ݗ6= d>^zB ҨpShwa[wa雠*6Lj)tD#OV]ˮ@{bhD ] b[/҉ 'Jk鼌@YS =RmLU!_fDnN=4u)m VK3<$p|:D 8T";J:̥|ZViXD9l\E9=!x,"vJsRc~і1QgX:o|X"؟JJtx;Q>,#4(]֑ʺx;m*F$zַl&B)m^Tە!SF tcBs69ޒ`! uf8*ͪNS?gsO֬"*ҮQm³:QW|j5h_0mL,it)Kg#niCI]kpyW{rVVҝv* *ZJ-?oa=Vc{Mdl n%H_tޯvYI#>U=* E J*Bk߷, dZL'_ftδ\\sHs)9d$.WUo^2rY%'vh6B3t&\anJ.F*tҒr*}sm$^vәiMN&af0_\~@g%&q?&''"票iVb2u_fu=ӣkҢlӻ6SgMgFj[{sDct }.]q-WMaܪΨO5p M+& M4s{E+:T|8tԩ~т,1 f(]Tm1?:? sh02n*΂\]Y6m;U8%tl _b]7 &hz JTrsۋ#;')h9|:c4CحU0;[P,|s#:)b̪ucһ&A1~DW"S7x4$({v/(oMyaMI=(hu)k'z6{Y8YUDlEO n(pw+/@zE{\:˜stTa~y \!-; ;(3vo;r~i8Ϗd,7>mu/.YIpya6O|ZEӐ"#u<ږ@8*ukqm 5 L a@RlnieT -rl?|(?ήl{AuSBZjا1;o.PUDpݫ~)]H+ˋwp>[TJV r_*X wC+?%;e(yp\<Y;]6MfUUxU}XڂO{Y^]8 Մ_W$amW/DZ6mlIq}/>(g,ody#F|7#NޏO|#HLTN1;Pėm!;ۏ!v-Tq``aVW? o!ir#}0q(W$2\TĝZ`m'zm =N!RץXߦ溤@7h^{YԐFf:!ag(b;7 = UT$1ryYRY&bŮԴp9)T&A{d=F0 `M2k;fv w/e=t¿rzN[SЉi-egMf}O#:x{9=rvmqP9߅7} $\ 4a5<^hͲ(Y焊ܵӐSecsJ=ܚ|`Wrŝp,AEyuH~Ž!qBlXk|{JޑBbMw/rGQHc : t_6vՒvdd@b4 sz]WX}{c[V ?T|&Y vpN`i_"*>7x24լ$-jʷ?}7/:8L~d?DӨ #x_^'K$5 l?7,Ix[vuBja '`M+==h*e^6ZTX!3H]bCѵlvǫ`r 6#Z:O'~`b0͑"d+JE*-BWJ4>^B=yzId>wNX9,#JF`fk$"s<Kc B0[@Y; ~yr}I|Γc 8]0@ v@@v`bǜ%uPuTHoޯV3x\aOIշ-psL3Q[ԡ8 }49գRh՚bǦ6v0ّOoazQW|V?z 5E/e+\2kh3?#.ng ?q~Max{L_KA3J!78Y/YLPXP̀L+CS+#sD׊-} \ Z@9(3=mcF#'䓌'/d+.)*M.Q(LOL.S(N|I~'&2ʼnzʼni9 `ښ dBfdofVMjZ]Y&odΝ"W,INN`)`Z?" E"@E E%Ey \ ;¼Iowx{ɵM_KA3e+%d+xYyoH>EuI4B!K 4jԲ]RZ!M{uvH{`R;bpH~̋vś2]V딜ǐ\MiBᖅ䈌}q'sinF`fIJW/K{k3^lB(kJ|АSIbmL_'QL;eOi`4aMJ]br:M_>lGjW0c ݁Pg%Qw`)&zp&IHǎ X# i>-Y\-3ŝ( mRb&I M w`$Aj;M6?S@([q c=)6/)Q+]ⱄp{qwD Ҙo&3Qϥ?^ZƓҺǟ|Y`;kAl동03JQ(&҄3JTc峥п|Q"e).!*6N ./0^D袅bإ_Gb0_ -) |ux@'uˆPDA !6$]1T;j.I<;``s2\ ziFk_n` s0s;=ᆜӟE&2sv (I pGĀ¦wC1AOaUlhMt2_EJ-^Z'į[y[ дIo'YB6ɱ1]&w`F|v) ֚DjK8`A xqk"6"ed 婫36FIX<#WKNF**B.%Uӳ*ON?nrlyYK# (qQ4a f 0.w'p4PS)W!*i ! رN,/7ohpk:Bރx;_XQTfi?)}m94فPN/[}x~rfZJjckg@dYn-승ɹHKl6`RNKL#U\RT\PRVŗ(h)Dɧ&psmkgb&#?YPFv,=dNyɅȧ@4jAXtpx`z`>ZRQc~IYO?7 E' ij*TވON/=_wdn)bE&+HO֒VkWi%7lf{"'#ixTotW]-K8 !M_uphH]Gn)IYucv2Q"N$\A!4 qF3B82ݸú88}{>t)QF?Fc^?}5"g]J.  aA:}0t].1 aQ}9I"XX|ጠ eܥlyv/ [X>>v7t,)ޥ0`h+jlRwn6Vb?7hvl8~.Nlbk@_ )yl=;%'g 3. a)B}7^G弲뿠VMeJK&/Jߪ7@. ~~>;xWoF4 I*[y8Lz+iwq|@4=qk5s9Zm؊]@;vrXs mUbOc!r qo1?.bka3\b|Xek0yW)ӣZL{ @LLʻK(|&a{L TJpql_E'WE(C,g?;?s߂_R$UXޕοS2],۷[7z~s)"TCtwۃ(RaWJޥfstՔ&3!% ?R9",װ.sA >M"Ų4f&istzOmǹ 7 w!Jyk8C7^ǵY:~ֵqvJi]^Ç!չ!ˊU3yMdF0{mH=?͠2IUQBHL[GMҹ&#P6EfU1Ώ?vzbO|Tk[mSNM}-UV+̴e3Ƥrΰ i)mbTBoL^†G aD?0&[xg}¬0yb)((8Teg( 2F+ @qIQirBq~rvbJJVZQ~_2uteCtVhMk.ē(Lxg}¬0ybV]# 0r'gONbQ xg}§♢dNtt i-Nx{red?&Aִ\ɾLMZxkSH3Slcf9.orRE2d7uVETƷauC8wNQ5thMvg#%3A~w@~%L0N{?$;(2d l! y4tN3Fh"3BQHK:g$=&L᠉|ѸYx|u Q8~8%2l!c? jLb؅(F|i{6amnIiiO">iPbΒďB2 9"r] izA:(YcM> #F4$"x˳?{b;k DSwd8em,&"þ֔6_9|::tzpyh 9RADHł4\WH:5X}vz>@iQ@TX(FK%)clp76<lt=C? 2^p]xvq|t A4nr3 0"7k ^##oؗ+^%4 WGCF$(yFDB"u(!CC _ <%W(nɈ?!lH{$mET࠻O/H*C{m3Mp7{ї~(H#>M:MԜ7\MΣ|샆B- َy>1Ǔxг46׸DC x1D%ת[Dڵ^ Tc'Q)ހnlWڻ%/pe#\ );@ 8()J&[ݭ7ٟ*g*g^9{X9ו,@h@;̘;jͭ8tL8p1<*z]NHjsEmHNkE"&no&ݪX-ό8 Pz<У2 i$(o^H#HO"̓S!Mi LǰT0uGVSg8Z h}}vg8(6a,lUճ !r4#7 ĹO а$UVy>U$ظ فg%[0C9;^:7DΩSDPM:xBM.Lq0 p%Pc}OEXV{L1!XCIK0GXy| S@mInBU['1 r2Q:3^q64a^7Ȳ~"Vn&1;S xgipDn Ͽ|Fk%F(Pb8("߿K`[bT$I tG\P!b: h2~H Eu(3YM.*0.B @g0.۾eXIKʓvCMI`wIb\Kώ[q*M9$N;}, Sc8x7r=8?uQZ9 h`Љ )y'aFZJy|X&+qHY[ ~@ɫlO=x:O]?"J7*mU u>:l`R)j6.χFc=VyLRߒlBư{c\λi4*Q7WѪ*O3l ˱Tqék1IbEU+g\ǧ3%|M~8-BVP ! #ݤgr 3J!A8*R ML)LjݰDX#ئ(rL(%ރvKٵQ@Bm']q_?:MT90q*Qv]ī?!rB՝麢~R d6"&?Nc -[ΚFda28bC)T Xp0O|pz6bƐB.栐Wfw:[NxL Ub ̡Ϛ`U *{q[`,rEnowdDT&]>ilFRܓUJ Gf^551ŪlвDpnfHZ !Ř% t@&,oQS?'H,aeD%p1ūhs6gIB>Pك//w/?~l9=ƶ7}ÀhƘ M1rRd\DMz1>Rqf0 ldQ)`B[ 0 dY%T3helH ԍ5IqSnY@3hŹ=jkM-VY&Y{Ȋ1 YLUy:"ߙvE]TRUȀS՜N'.Y&x)؛¿X`:kp˪\ݯ{=uo{7UszfNOAF OKtw8YJB~m2_iX"h(?d?.:S7W>Z|Ҹ(' R{oH?0yP1 wk?LiL=||ކʺm l }3nV\`#k+_XfcuMk'Q>[0< φBZ2U҇l,O ^"Y=쏣*y3F @XPPTSϥ i]'PXdGiFɱ,:n` dt'.>YA bFQɾ/CMu9mn+Q,/(-љMa31F^(LSИl`Kt&CsЄ50J:" ;$LS:Zq!#a1(Gq|F}p_bvJ uWL\TmJY'XE ֈiBF:!9ό<"4"Ǽxf|t\W6@C97ƗmZ8`V(؝;1$1vLYieK !1r|`ۄ ;9<Vw?w É"mƛn_pg!ImPQu' &QNċ+7fjRNrWN~֩$* ?v-vhꙜ9Ӊvt>>Lɧ:/ p}x×OǬ?ێUsKVۢ2ҋf/*P*٬l/*H޾qVieH,"x) zlVZkN͆Q%)TUVS+ClCq|"!]&?OߡmEWոWmm%CTѥTxֵ+ bj"4vV(t+ #]h榙@Ktm!BT 5YHHrb/ |a9gFmys*>\$'x=FjrY2FIl8pݥ (zk(?kx&Mhw'(NPuJrڑNLMtD|sԅ^Ls)π"{aAWCg./֖TIwִlJxkgM(GҤ˅R]˺"E TG Tb+k ydKO=>[mU!ޡG4[<e1fMxďO_KA3EEAK Ȝ81mcS-gtr~^qBrFbVBf^AivAnbIrFt^^Qn|q5gd*h(*hBDK2ҵ+r5 57sQ%' Px7mD F Y&LVf?Y]li  E v  jjP oP=*ܙy% ťI9y֓?py ڶP%K2֓Wss$ENáo9϶9W؆qshdmɲʛmBNRxSAn0Pǰ夗)m&@PED"Uriſ.$p=̒ fdڃ7Ō_&z{cau kY`'Mej?K)*-*.6mCT8k~~uEC lP@䑰E="j?]e y(2wlfaGybب6w"vX+?ÇcYU`ъoٕ(dSSr(%l7zrb]~GRH>ָHdvsà/˟ ÏVuR -thVZ yc&QIdIHWVVɕ?M)L)5*VBN|,z^br- W|WWvIf'YF<4@ pnDwM~dKJIS6ZT{jDjC`gQe97uI:.rON}ڄi 3¦5[Z??Ygxʬ0ab;NC&K7 xʧ♢dNttђ f2Px}Tn0<_s[A| PAoA랪Ě"Y.e'.)6Ї2M.wFHVa:<&mmz6f,Lf|$$dAX0w kX/^DʮcAue:KpX[4.^0:JR+9 GGHvb#lp]om+]3W2+ 5I/@l mQx贗 ü#ŧn#0ԕ%-@VpD>P~ {z3᢮ ١qaXpTδ@"a6;Wq4Ĵ)쫁ݧ3<=F ;3xcp>Fwh$A~ɿ('k6dYWبqP F8Qp<3r%fca}Ne5~0cilcJaY6ǘΦP`)߲KO0CL^կm `˙ޅt$ϓd c{(Dy %M:Kk( "H:"iʚ|&. `GL^a7&q:w0q| γ+AmJdTOMDoƓ_"P Ahxk:ɹ$ ;n/xkɪ♲4 4Hxk:ɹѢL$`@Rx[msH_Qа`l"ގM f>o'3$A3ɬpz,].uAMtˢcZ:Ce FM$Eҥ*uD[Q'}G4K"UNJ*3ɶ&NNNuUcSLmc0 K"01aY4/(MNBUFa^yl:xTiO˂ɬ0ZF MD:JgFmL„j(ćQes"Mˆ&L&M񑿜vciYie^@(DW-2qO"ZDA+ªXGk`ɆX+kX7J6H\ÌPKZkX@?(77"{U&4 ke&iuK;57dHJL!30J!=%^HtY<1kf*ߘFd}YW"vn+w?AG(Q)MGZ)}?UpҿޥO2KWֻ‚=5M~vۛl2B6mϿ({,3no R{;㕰Ӂ?S}> 1fzK7}Ax5@/dxG,C2tGA@0|,Y0`i r,<~:Lf?o3H0}!+&":'$W\@)k ź괱_u?!ގ?7?,U9c|lXq+|};vFWL*o *aNoj:G21>GXǍV?AO?q Vw:+Sc0ܨlR{8VSDD.u_t/YZ4V2|?Q ݉~V醣iUx]1/3 Ĩ0O|zumJ:'yx"ȘoN9B[`^n6iFic앟+f)SGI:OQ-L`O$VDa7.Qے?cõfC6p.`oOL@ڍT =#jsl6;xDZ!Gcס8qwe=䞫 U&i~J)>*:f>QP_ t=1cjlH&cq䣑čpx4ܖ\/3xDeU=) u8٨btS"%=`UX{QLa;߇O[h%y*qUpiRui Q1"`Kv{ov߿7k០?O:V9haF:*XA>&Ş!QoF{N^`FL{N{ccUC& 7^Í>;أOf8Ax"Qt6gbjNNx-@9=x/9ǡkRQxjs)Me+-L3%qyPfZ CTAVL^p jMZeSŵ% L`i׉Kmg<p`U'-0jΎ~>Ir+JB6wrҶ/a ^bz*DϏnr%]E'W6܃ Fe.Yo%@f+{Pw \ %uP'=o*V({JW !^UY!['ϤpȷXxȯPUKf&=ڋG}X>h4&H!I# DPѼ"3셩8TGëD) Jvc+M.9vQL&ٶۜɞDb*^Z#Q&_ Y:*n?q&eckElm)GId{r9 )~ֻ\ Y+[N*wGs@Iv ɂ$:<(U(_6,uR<*=V,ʪ Bc*b+ĸavxYj$N"\YmN[3T˅&S{,0Y-p-QN['o;9T/O0_Gǽθxe%rs8 2H]qfV)#Bɓ7uqf9q%}EKhcqDJƒC? ?8:B oR0tZTJ(W, $Ql#}xh);;i0QuV˦Ӷ蔊QURu hRݭؚZgݓYCۖ Eˌ-LO s B!#`L KSYO9''/z&w{?89:>GAۅi6&93H (&%12.~x̘뙃C>XAf D ZF_Α*ר_iiᖇ;0J$ofcOJ=*өAU׸a6_.+Vw^ɐJ-9@3pzB^uuA!z9kd[V}mMn:6bn1#+!^Z]^Y>uK|)qqBX믲қ7^R)wf{=ⷌb!_FYbbBȶamYɨ(*s=*}rUu< ,CWkꔑ6- ns&[&=Eِ S5J!&.][WL^uXg}>9iu)wq!m|RcwJ5FPFBWVi v}rl.,ʝkt3Ǵp|*WT[bOTT3t6.ꉂAAK\BW>`w޴*aDO>؎3L=J)_R'b\[XuZz4vW˥R40O+"̲U-^< ?;8?'OQ^sZ^lDrB2ͦ7pP F{3|~h0Cgd@ܩ@ o0Vn$2|=0rYl$蹦[8]Ə ~ U6A`ZN7U}@uf&#y*RGUn۶u) x'kEro^U`B{L .x0s7BpjAIjnRj0R4R - ,'ghZ+gV$&g&($dA:f6Jnbix[9/sffܛ7* l>lx d x[%}Fwx Js* ,&ǰ{xl^nν-p%9xے1}f1ѵܛ( lfp jl"xۘ8me͉"(Z8xۘ6nBgDw RJ* &ߙ<]yr 6='ݜ8'r)1&NN pgf$)sAg ]ĝÕ_;,&Os.: Ī|7cf_qDƂɻ= 2 R32SSLv+/(σHl"8YZfQyFej&;N.NiT%D6l:)UހTE@o7dd|L5'%{f?:FưWuK7}fd,ln0-&7q\Dx[w=v.\seFUax[;!J$ EB/3OLPHDRDL! Q@ac/6cԂܤ"3&pn>̵{{1; N^ix=5!]PXBXtc 3;?\ZRbNrs'OfIjQbBFbqBnbQU.MԳx}m{۶gW >Ol)Tt[Nu$INۓեID]wfB%9i]=m, G);Nһ,.Xo ë0.rLYq8 <*ɱ7IGޮ?Fl0dg=X|vq,_Y0fg1ZdS;<~?;ozg'ioN; ǽ㋳ΐ_ #:鍎:ݓ]Y uΌq$coΛ3E0OzS~;AZlt=/]Jg%Btw+Sr|1"FoFbeoC;:bgabmA#5P]q;^{~|@g;P<ӘI'9h|8%u#i%UX,wߞ]|;@@{n7=' ' ƿjۢ)eS9΋@ )B]u`@&?{O{dId/ @r1->zW,WPt<|Ҳ.?1@3q=N܋]1G&?9{++?z^[Cz{Q*g~q60"؏s ]>K<)2G/пA6f?{)!o4]Cw24&ab5fa]xĠ7`Q22@2hj63>>8윟w#O 0䰝d_R{;Q)ֵ$.yTf*gbNē#g{u L949\aYF0@(7,qGGI83@țR^XG4rhR1!~%os|+,BSZ}X]WN0S1>Y`C4O"@Pn":aeoTa7^4~_Y8x@'ʾz P9O',_KT@݃+ =Wpx/Q-~B _EGOK5Z; vr9Gд#X1Ol{99FsnӲ8 #x0h| ԛd:vD.>$_),,/SF/>b?YX{|*W5nhi׆LrΆ;`P `#{w~9vYc8_صY/=~?ma' =7I$O[2HYZ7H&IZ4&D~|!VZ//U$BJeiS !!ѱA:ߴK~PkS btܷ὎6Y%-~׋$^C?{Q#(@ `A`{\7 (xE2 .hxvH J! #E@%>8Z)(9yR@#Di|3EyGmH $ˆ@O+|~Ƅc2z8BorEPO@&io76˗2)kǯ_{fl+(w;hҨe^0!Pf G"n /nob h&i7n dbY)2A!b*yP؋G6RLٓâ2zxsOR/?nc*LYtX,ܫIC[pm`s&;ˏd}r} Dj9ق {:D )cl7ƅABq|d[[cDg?ON~OrfNg N Ȳ5;|a>vƦOFzr c P)DSS?.f |mMgMQ w$ 2FCuAo`T|Ҕꆂc[zwv`>QF?q_R?<0weF/h o&ߜ6VPBhѠp5j8l/TNd,A1 0͡.-˧댩~q@PoH9x\9&"J%,S:L& !<,8`[! qt.^ý|ݡ1^ɠ?n*RA `X0:ʜp0ߍy $ti4K$+&atJ%l]_gI,r},ʙsaAS|?Y$S)[/*iڼm,$b}4=bL]@FcO'\`T0 _c¨Z+rfLbvTM.+ hA!*,4[::Fلo׍#}L;4hY X΍דx7/_kz'.G G'e JvBZ83v {Q M1*8`Z+;:f|ӝ|\LhgZAX/BX6@ȻX!0׾g9(*/@zcHQ뾲yMg'M!^,bOӒb+^yj؏I/Jo cK<=c__ڂvՀ.ott5:i j,Nfƭ͆dr&*05jVռİ@V7+hMGZZ"Gn@k!4mz$MLK|<`xŞnAY:*( UAl(g_n/4PP[/ XY qCiP~*XJB)An⎊B螫Ā0a"@ !酐 AT=ies+ vTZ^E* ]腲pPX ez!g*LHGT,46XٵBCKwP핅((hεB}FvĪ?neEӛ30;,LJ7aC#aˮ|#v"5[[\OvQ _ C Z5;6uE]&Zɀ;G/*Oڕ's﷒F[x `_G")U&zC)@P )Ւ&OD7n>W/@g-7QpR|#=F빯UtSD]TW}EIc¡[(s }em9R1 < S,#KdòJv'Uň' YB@>oC.%1àcdr^21׍ }n4L?my#](vsnVz}<0?-Cd] 34zx{Zs /{ڸܤ:DЮ#4BSN+?hPwt`oȎs>- צᶋ54FkWFi[lz`O,6ʄ OE^|1 nb Ezljlr¦jHIGR~Ixą! )<:']~Li#7Wi+ ?$G'x%)v#0q`/?9b}ۇ5sb97#1*siJ{hS`rfyUujT&7x1Ŷ~NRͷhOb'qA!ޜ@ci^NѮuVK TReЯ|7k뗐I (RP!F"d- "qGuQa9bP["4JI?Zzo-V_XscIU Utkv'I~o=0C){U%5NnAojﲻ@Vv< A b5x%ql_ךkX&z!6a)1Yd֘Y2ǃ~?y=##o4hs XwWx|Tn3O%( G.e'0ׇf#śC3uEA|N쬤yD ml|1Hjն%`$朅i55B l_Oky~/<5?]ɞz}y֖:1,և |]_ޒ}͋T8`q(0-Eފ8'J P+` ac b6)0| !pJXKyUM@$3?TJ>LD3A\{Dx=R"81P"_ktx&FoQjV']0WƔdZXWWlhx; w2275*W,$ZZMo9>Ft(DN "wx_fP~߃8mzsc1ٮ4Ub"su6%zKxeCgK)FI2zwܥ`|Txֻeaۄ?]^R͹]?e Q`bM<{YDTH΢ɺN4R *8Kȁէf\X/mUyN̂fMgK.Zu-0x_;`X_)9UnHz˝T:Š!]W)T¬F!dӬuo(!+e.ݼ;K?PP Fdzx{검g.'1.?MĚo-\wGJHF덞P\mٴ~WMY쵞]P2]֯hT^]b.Ep'e{ǜZ_;EҾu̕uB0;DnXOg %]~ȆPuB!f,5l@Z,Ϡ rK轼TwфVzMd | _46,z'|ړ%wUHT in9A5 º5hwf~F,V.[UwJyL'ɗU B!HEWreZOҧ@gUf!n^uaUI.%|EcM`WaH*G/PښKJ/e\g#8@G< ;-&y@[q_XaWP }3V@-cM|o/f|iT|6()?' }PtCPLL,jEh>|bu1^ yS:.E z ֙]0+wdjaa|h cHÝ6|i+d7H(R}mHDqE!Oax)[Х{ZUGxDIr;xfEE:n,qnƤfL/Aqm\:f$Y~ $w~yD]P˥6S\xӠ9p(bUfTsEEQ.4r]z2$;#|S_ DLX9YJ&T-LNH} e9m53~ 6ukt1R]!/c9譸 zԂ&o&/!Zߗ2$jd9KY,)2Bq&OX0U[`=K"IF_~:x0dOz6~_?qxֺ Niffy!hCvE}t g-=/gXN@1A;7//߄ZT6P^nrdo)SŽ?7=d#x`#A{#1-itah)턷2 P&@hy&hHxvY/@bC&T57LZAtr rAo30u(:q;(]z(U!.@2"q^$Ř -#-òd#@] ENܧbiP,;j1[ifGMI - E%;y j_H]\xkk6Ż̓٢(f Y܇h'a;̮/9ɞDqWaAٳD.v>큪AhK9xFdeX~}?)T(=cQEGAmPG{{p~'r{)n/GΖ8D fr#þ '`&'Ķ*A _&Y$U  DTT voKbj<S7&s\xǏy&IFmwB΀S 83??#'R<j~ >+5a%bjHbdrZ-BLs8BŊqXȓvΑbb'@ xb8y!v3$V(li{cIPj):UZun$ɓθ 4 u+ *ֈ$d=c/$kIs^MKMbf&3&u?eKp4ޛ| "N:ݚ(?O16{Qmx1` K 񢘲c4p1ƌ8e$] nIi265K[0Y'MѸ!&$uԮ8+3=Ӄ:*=LR*2x %DpyZ; rAktORֈ+9[ԱJ]ޱɻR]w B1e%#-|-XJ>XO/7MٵOϭ-fybJ`vAtNΏ:j "F~@bevS7)#_g VwEo) `Cej[/ ̩bcf\%ߵEBs`^~b^&z!d:JA烥Zq`(Η5Cg C(ߝ<`% l並:Z~D,s%bNP/c>x>5RN0)GEy߿Z脊s(8L!QMꊼR䫌/1Wx-##IVTZ$ie}](uNV^*KٍC4Sm*9Cs{`@9boIbMS^讃 8ETH[6&ʽJC$3.JTζ-W.^alD Vc_0e~2&Oey‘aJKfıUU+[r-@UÙ߱I@eb"ڧi'Td?I Y߹DOfy.ѰْhۇݽtOeܳƼ)| XAzpU#Q<:QjDu}ˆ 0@w5Zjoͮbʨ& U^`:*4t* 5މ#T^T蝘(RWUhc_V5 iSAsX0.FaF1#r,2_A!v:A Г3{N%ͦJ%e]ͺdTK2NE?x t008\UIѩ:ơjWb.q< UZ̅*6ܧ5 ԁPQTkK( .ɬFSvmaa1RWȻRoeYU[JKu?57\w~f'A=ɛguܼNe&< u:Go510ռM+[ +͗]a ~(8sy|>ܱ :xLf/y=f0]nFHގWs:ߒ;1)r;Q$1Ej$>E,e-57554HWLTs8B{b~݆qpoj")bd^hë]o8fﻎUph_r~v *n m{"P @`V rSעki3u?N׮]6J=`R |3NF &/ϴix6`V(͒x@$<\Rq>:NNV­-[ -dI!%k41[t$9^DyQڧ/+FBaⷫ߸JhDQe; :cnnXͿU? 6$yiDF`'{h/_I.`Zl1Ԇ"QNVƭr^t–+~PXu \7gǾk|å$l58ki|iʩ);LPY^QʸH<;Ϧaѩ!ڥCJ~^I)K^rR<"<JGҀ]P/*)YŞ>C^\\ȅ%O&,8QƦgf˟(v| &mf m8`(i!Y&kLF6[۫ie cٌVvONQa{!&g3JefL+قFljxdlzOy+H [:>Mkg[VIt⏎6zpd0lGL3 ͵n&E/m6飅5 1ؼ # %dYԊa{6byI~ zc~Z "VD!@xC[ۘ~v()NM!U,o{^w؆NV h4Wȡ@Bae7ΰk?׌/7f޿]!r%$h($46ke5{4L 8U@UbZ6Ĩ&xIȉшsbp~Qf0_`Uo|!>s1 \Y \ eĻUpqHsNZ%L)ROxm8ijIAɣ݃Q(<娅=D,DώD'#SGP艔<?ꅱ衑7~pU}5D*tN\UvN=NU$U];v4L#pFJ'GQ+Y"Vtj?ӂ2[[mdm=[Ԓ摞0#zH ELIkkwdz:c`s 8M8r@E$TgZQɒ ^qz'/?Թ!X@Е0]@Aek/9)uA%yKӢ3t6?5>sw^Y-s^^B v`op9L[цOKf N ie))U[Vg_XG:'Kƪ,咱(YL2V=.LTK񅥱zFPha7LG,G/qژTҲ%p+鎐#t%<&3QrNC§X-hc! g|^DO t3xAb,JlZa J^E2A15$upyj0EsXUdxH.\`dbzT EF4FuK~0u.[H)ޛe1l@5I k|B6ЏVmxc)zBV!Smk"r/`l S#"D^+V֟f&g,---6pF>><(b' bmD {{o&EF+hSV4%ӳDzBkFH &wЅ W T&tT؋uM"FC*-ܦϪKGQx4&I|?V+@usð! L*֨@j%킗C;opPK ?m/"&e1Pd8n8Q.@ε;V9oHp+0EQ2]ܕQ?K>5$fD CFl#xRe.APv_`G%7? '?XԞz=.^'xUDGýέҕ[464?:'Vs (&r@;nb'zE9 Ӵj:rCvxyoxwZaѹå@LѤ#ȔMb::1x|UpV.%s2ׂffkWh}-ŗbbuδwWW>䴼)zx1(o m}-OcsyIgڙ1bhӟQEX`hYɴp_K/3KpZ1&$+'6R<0%0m) [P>cejn?.ѱ)ݬb(V^ҐR2ڜ 27<{LX= j|&'9aK,3a߬$AM6=ছڛ˔%IEs(JnN77l<>RbC <]g18dn <3w|ϔCExSF*#W| h8/z YX*42]n't"i7 e_N+ ]B*4m+[ :Q86xk$:4=m n)CQcy vJ  ^AxM1^cwIsFh3"d>8tMF& 3hj2.'7n1z`\76*m 'G┷ ᑡ8rb9^_O@t3< Yl6/+$QDZ])-nr+&"G#'tN\3{p_XXca ޽Z_R.(fpG-' ^KJ<)k FP'^ ^K(~>CS`yZJ; u?))bTgb)LM9TD$c)~dFB^R5p)'N9$œ;Z(UzqA HbܽI3|nz/x!vκQ:Qfo.ԇwӕ&t2کqdd'Z,+G;>165vxlkuJ,ڊ陦M}3G=sWYp;ðE9(E\ij/|$c7]R-6q$E=d >zlzL׺Q618>Cl.,U s {ì[Y vK7UhUnO6LZ0H52:Sc֦1'Jż3EU@IśJf ؂eIT(`'V #ѲdFX2ĝTb[Z@Iu%j.r gbJi|"꿝?GSa(}m\cTSNxPSrZ*' m}d_ܘi8a Fl>[ȩT T44n41dAr6IՁVJ#)[nQ" cgZl7kW)zՉ4UHj?uL̼V/S;SOl[bLCj2F\bWϸ{gQՕ 1ef3$ujnRM쫆+]J|׋nALp-O7ё ޻.o+ i%絾D4 | eR゜Jejݢ+?*jn:y%od4Ʋ}a߯ G2Oc1MX[] VW {QPewFB$THTL&FyW_)eYB-nEw jζue|Splo}lyPQf)d[  9M,gZ,Gev\j. xH,^ixhF>콥$C#Ö[r\=:[sf4RZq2ج|cj<0t3+C$+z6: ,eJFZUv LV%9ER+҂eVrFxtar={71Q Ї|%[qń ֋{i]2#ϋ7~.&CybWEDP>C~w._6OzpEzn mG^Lպ{[+?z:Cz(ֽM{ !02s!x Ytu}F~$0/eH4@-]'z:[iep:vv,2e\oC9hÅ'08V=$$|3k8sMygMe;7э-5kOxn4f?Ra˸YYQT>.p큍0Yuɷ <oWlnߪъ/-&/K5S qbXC>x-Xw<䄥qC %t*|@(nzfʚGBms%_}ʄY\8܍ٴgg0IhY]Y.xsi)J8u'fʈ̥JI %Y9e뉑|s'7 ^ءZ]+SMG&2ʢ4z7!c>ob7xmUA~rQgYx0,R?o?-r4>ֲ.|Q#d@g\7O?UEM54bJgjZ)~7\jk_v*M tj^$]ɷ?P:*@UCUJH[WW)茛FU;x_o^~~v7.'*?=rg56Vo\{_߳g$&*d:w{9۸ϘSҥ9q\JF q<]yBueMu.1+MfMWJIЛ oՊ_!:ƛ怿{s+߼oVIB?0ߍX)6ѩ ͩ u7ИB[ub d"GGD6"8#AKΘo;*>G{!CCcH۵zcO]!C}QT}tQe8*OFҀ0x}i}jka↏HTV] q(l| w:j"f~]v%_:gU8V}#Bwkuk޹]^CVo젬n[ug߭o,%nA#"-:#o;/Vlwix;Ƽy#.ϹI3OnRr89&;e犏/(OKM|YxS&{sxMNJAUĨ&٘*| "((v5;̄YBW(ADI[\=̓վKyDq'}\.ʛal j]/@C ?Ѱ'\d2Ph 9g ơ %.|]T9MJ@ (=F2[[A>i![ȗz v{fZ6䲓hju)쒢Ld #u,צjg+V&x5/Nq xtgӆzm\i̡ى))Ey iE\y% VNj5W~ZZ| gIqfU*XFlk.⼔̢bkĢ|J$gx3zBIZInFAgS`gj`d``o`oh`ddelaebTZQQS$}9&**Xsep&'%& eVC@b Eednȸy8̓-7(d|_]9/BnebJJ^qf^|A~Q Ьb MkS'*䥖+''(i5g)h$ehM3PY09kEޯ~g} xôiiebael$y3y'O֗|O\ߚKA!3DLG!h 2d[Ғb}C0,/)R M~(!69D`r$S^'CWOO<5Ef +KKX6(`4U]Vϲ"Fn7xƼyÖ͖2lxgO+7xhf/~v|5Y^0%(>@C-21%er`ddU63<ɾɺ+Ry lVk9v3;3q+ -4x33oxsd9VY0oxcrr\5f2gxʱ ERx{iB6&sΓ7\)uBQjrYZQ~^#o+Z޷{\Yob'5oeTR04th.I+)HKfԨGYܼӪ7\xj'27xZ9dK`՟ a>߳M4WLGꘅџ40000 tftpdgꇐnMfXŧAk#+xcc,lwnKrEͳQSޮ*ͬ к 4xccߐ$b!:J+S/o.ab| %Gxc6T$:Ѕe3$uvJ=cE?kuFJ2*uMuj˃otntOVߦT!$?=5O8B"(㚜3Flx}aZg?XvD!9?/-3(U/3jUi(6F۬nά2OTNj@IZI^qAj2Ȁq>4_+[xi uW(?\`CГ5,PZT)feS[iOd ?Olxc˶!is #xccߐ$b!:J+S/o.ab| %Fxccߐ$%K&yb3clm3 K wsxccߐ$mܺ%[YkW>\$~ !xccߐ$2] Z: }ܧuzu6n.ab ?Oxccߐ$Z#qǓ< _º&)F}xccߐ$"y⌫&;3hLɿKp +xccߐ$\ᰧm=*$s60I1 ,Yxccߐ$"l{rөH&%V͵\$Y xccߐ$lO7fiusm&)Fc5xccߐ$b}¸\[6wZ˗%LR3cxccߐ$bwCpcv9깽Ixccߐ$bUShvƚg|bs #נ T?xccߐ$[Csk7D; +m&)F mxccߐ$"~Zjԍ"3OF D/28P:ws # xxccߐ$r^+*+֥Ybs # /xccߐ$%F="O0͐ 0*\$ߤ Z]xccߐ$|H4ԥN ]70I1L  xccߐ$ryb݅uY%gb\$ٳ 9xccߐ$rp֕=Yo߈+^Kgxccߐ$0X6]se6n.ab* xccߐ$dEO \ ׬yZ I DCxccߐ$"Z+dN[[!ܸpss #3 qxccߐ$fW!)Wmovڊ-\$ް xccߐ$RC=e]Y͒1n.ab< Mxccߐ$2 X]"vdٵ֛KGK{x5ჾ۞;رI>ٍV_ښOt'b19vQC4(5E/RFWy'100755 configure0$sK倜m++5]|9B)H(pent|7f7/!s瘓S7>1y꧅D'100644 version7;߽fv%?dP%[,i#xp5m{le{!Itw=56#]S7CNt6mLg%TW@100644 version[va2v\$~ -xcc`,tvx&1}7j73Р ;Yxccߐ$2] Z: }ܧuzu6n.ab ?Yxcc,lwnKrEͳQSޮ*ͬ к ,xcc`,r:ǷG,fʵL8_K ,xcc,YlV~rr62IBXxcc,ҞYLI'Z&gZs4OfV6 ]xcc,lwnKrEͳQSޮ*ͬ к  xcc,YlV~rr62IB7xcc,ҞYLI'Z&gZs4OfV6 dxccߐ$Z#qǓ< _º&)F5xccߐ$"y⌫&;3hLɿKp .xcc,YlV~rr62IBZxcc,ҞYLI'Z&gZs4OfV6 4xcc,lwnKrEͳQSޮ*ͬ к axcc,YlV~rr62IBxcc,ҞYLI'Z&gZs4OfV6 %xcc,YlV~rr62IBRxcc,ҞYLI'Z&gZs4OfV6 xustOLKL@bey%&%zɉ\Pɜt8$--*K-*WVR& ɥg@\Zu\1Z\.Bx[s8+4ӇvdSfgMl6fAl1H{Hgz>+Di^g5!V2)T4k)YHT+eQÇOdҬdDqd)l'2r*z7if45X KnS,vHTeBe)u9$0y4p&5WW{jGena0$KiEoM:5Q?n I1b 5Vm"[ IW .cyd:?:Z0H ,zHN0㇎(k?۳ON.4.%^]౮(GfRo[ A{`ۣp(Ɇc=$ӡxLfgxmt=qƆz4!Tp 3kP6D.NDghH(y;ge_ Ef@ T L

:3f ”m7g*21SeVCgnUFC{ ur' ;paپA7]LT5$w}yj InOA֫K(⒡.](Ɨw'˓B й9+nvqnMiK9 >m |Imidzl7b%d`޿6P-!SoBȸ`k!@8dthbDqT,߁yp=N>MPonN)H/cR(V% 3qJD|C .#cL=q-|0^Ej L,s8^FmφzXHdE^8f(x_ uWzexZ0ܱ=5܆o'і mm1}pBJ"TY[$Sx/`__ br`cڼ>_a/ V@OM<\s 1H`$3jh˥zځv|E췿鬊s?JDt"t 9 h”A@!H/SQk ,={;ˊ?L|H{/ERH8JfCpAb}'^R9 *ڽ}}8g^S?^xKz7SL5?ONςGa4#Nj2˗0fƣ[O><{^˯:hUhYiB+_ Hر@p f ZV"O 0\0ӏ A4"$x u?ÿ_M׸(޸.N+|T]HQUkNG8 kY|/4Rjj֩'%̎괗c$W5Y}[aŕE-y1D6̯;g*i6"Iiwqe]~Ѣ_8^Y86U +y+ ( uU%R *i,ܺlmw(v_̤2 WPS9 6$x@U" -$/E)BvCs:'V؝pzGb@X?CC}^6`2'\@CpWHp+ENu?z>HoɔKղձ'FЎ@l?9HcbFBB b-Aa7=R^& 8pBsdAF1MшXDʏI:d'qУNuc_P3Ė0.&2P#[P2MIA,XqzlQnUT j@'4c1 ;Q0JgH.|b-)"h%V7 ӆe><\z tIhU7)2"SA rBmV@ b?dvtzӗUNcBm_)S]q24Q Tz/p NvG0`W؋4$,ͽ7v x9<nls\ qہΥ0tP% YJPL]~G`VrҺ}lMVuDCd4$BoWŏ_w!"+uuM~\j4ugYx@s|oBȹ!jSC k)+~qҭ-¶`[tk_A9^GtgTWv6vtH1ccgc ۀ8N̓vXq)Vqpy>Xt:PWm1= HqmDX*:UR%óT5Uٺ*`ԯ,@ܿԣg=Z4 bU\Ȱ, @K[z5KŚ8SV+a}i  W ]!Լ`cme{+,!.m@ gfM Ggi]Q;¾| S?T*&-}wlkg&'8EMϐNrwr;-h3{1j0tŕ:d:}PĽ0u9\\iTWTd@Gɕ\6rx%9W[s`*l?e7T+/BtJ5+@L%`h,ΚSkIs+M.ajVaVEcEN0 xD$pQ-+unvQo{gE\Ap(wHG\aw ] JVEY Ef,x7RaUxPҏ\q2G[Z⃻"ϐ7u5.ټB|L[%Ȍ0q2Č\Zt&D}BJe2q`p8jwuJ:c-< H#$7pq .,$2JsG!8QUd=d]=2rOU"MskGs& UQ(18[3@Oa*Cj2>Kf{\Yb0-Pa #SOU_*[h$J7‡5)0HcoceJ2R$lN9-Yn=̖ ܈Qr#JЏLd[_!y[y/>cI <OpZxuE8/H*:H~ (VwhuZ%)TvՂH2DX]QL1xr*NkcQT 'W,VEprc(w %!l}LE$10t"V8Pь.)`HD\{]dto Og/#w΁i Ϝ U" @&O ԀA'"V+s*ž@n.輀k)ǂZ"/ DZt?Q-%!p^֮44q&N"𘁋 U ;[~ľxXK&0xcBnyMb `ԗ #HLr^4ģ(4:;>C|J{~`8XWIPnݨy|>KpPS?d̔4wK_dl* _ۊ``&iHﰍ2mtJS ŬlO8g]OJVT%0l,pBPe#׿u4,DF9TMoQ +W|ixB/ 4 HJB]zm #qT^pk:a,EM Mau Y[}qm3[!9_!1\8 F+Tmai֗8F΂:fljl7|氳2F8 n4b/yg-,!m**[*'wZ&PQM1.VmZ_z d΂Vz-ǥ0&X_G~buֶ,t^e(",EIXscx=>֕~ dI_ul_UXyq\ܥzׄUuרvk(Q jkh՛ҩ;蓛R5Xl@Ӗk|t!N;LX̵#j-QNy"0ҳx#z *r14YX%X<Ν \J" cӀg~,CW.Wĕ;X.`q+:D[ 1a,#M4<#Χte~,hWk/J'^VrfB;\&2?r$Rİ8gcrQs|?y* yeQH; a?g3i(.︩!,(Cgqu&Ā %e3TiR *d=2٥"AR-3)d"p!9,%`4M֗a15R ؚL"CE}Z_懮n"n!jPGOc&,:ɨH$YPT l.Ҭ 2?p̐EYEAG)k#PJ1"MU2?wԡB;T-J̡}۟3=)%Lb_5WRʦ :mZ_L8+;5&u?/F -n-+F#creF,N_dY)nP#uHTd" s!,&퓱ݜg5A*2?5! PvcgpSGݩBS#rfe}F8 /F4PnU|F3?/@tH/SFg}Q,6$e,,6-mZ_ypFb!PFLV>C* MdF8 L=iQݳFd̷ڼG׭7.f3zκރ|oU) oe}vJUf fe%=Ŭ|De{P+HYkKch%OMUlJ"Ӳĕg-0*,In~]B̞QxvѩgRhzӲdgB|D~䴀JV70\PT@FKQfe0YP4\DgT@K \8 F()$𙑴C* G(aQ\>C*8H-K b8 _K 4 ʾ#lL8ˤz2`qk|D,@0?p!uW[cYβHWbBL>2? D'AS2ց#=L}d>-%Ң|PT@p iTl#uHcOdJv\bʧe~dAYPT@Z'[)5s#r9S(L6YPte5D>C* n,{$6#uHTL%8R YPR562YP0}TPLfqT]BMa /]?+Q_6/5&78w?3rr!z4 ^d=2?y݉RPTƲrj;ܷil}%߈pT;񠤸/u,74gAR|e4bVq2?p:3C؛fPsAH5C1+^اx#=Ph?<::Dkޠ{ęմU)wh)d[UX?1z99FX'!םebs~}F%&kҌn(?f zTu9=3 ]{R82$cf+_v-<َ[jrƄ"ohIwl%m:,Kͻv;QާOޔ$S)`q]cTdhDi!v@mwzQ  Izj[LEC#%gJf(/+ ]qΉleןRQZ) )0,Ų,RO'/$j"7tiKf.҃Wx>R$rKp.VVf,.WJR5nLM-!"T>e\vW{&FXeh7YlrjXQA6\h-猥x„6*lekBwudi=ˍ65~4FbgtOg3*q!tg-"mEU a~Mu يީ^FrgV?[̿.^w63@9 Fz ~zȻ:Q|IpH=ÍVksV …W+Z8sM DN'\ 4FJGޙh@O9r|Kh+پcv5:ذ3mi{U~kl=b@R!8D{]24DHFCXDlXhn(-8B#4r"v%ʁfZd +[CEbDeF#K@zM>rKZd v qd$@#š@*,ն#Ru; !H;3ifEųH\tWGEA> 斯0+ޅڅWsX zÌf즰4 IcX:bF9Qu) d4 yFL%t:6_TdGd7@Rx 8T%N:{Yy&BA~RdGiztW !FS( 2H" Mcj;VEF,kHqжhUoյ'j6=tt'a%vzْ2Cq4A9J &}E$`q?00x޾crs9*Cm.5VPMSV^:f6}gTv";vr3571roP]2472E$/hl~<{#e]&") VO~֗&-P|4֓(blF[NN_7~~%tTCoc]U,jY2ʇ`7NJw0 IbRYCG^}f_ec-T^F^ @G!1=9&GT%Gv8}h0CM_9t=d>1^>6&bR#Ѧ[U,3h8}Rs7,WܙdL3i,WHa"+jTl7^45reI+aK`QiVCk'ťкHz61H%pbXx%Q ^d0/i`4(|}>xobe EyEɀ1Bڥ5"ߣ_eDEܝfqU'-1چCOXmC I\!TU())#ɴ2Wռ롌?ewW/.YBXzz&B$T&mﰭ;#e?c8ն=xLb'ކJeGt ,rȔnHѯO߈7 d+S:.Z,y[^H֐T,Sv"ddjTR֛Ōuv+@YAL)WձhPnAq6kMd6Bm6]@?:.`s6y]YgciyPh V*|`e Hr?eñӐS6ka[Z3V]t VɆӯJM?;Ѝ4NJL~9+uhyR@X,`Ի7st"$j;/˫ :RjY5l)5v4WvWPxk ),`Wk6^ʒtA,+L_yd5㴜Y~#h#*j/{sG~3eH4B>)|WL%1Ro _"}]1 3_Y<կ̨~4#iœ1 PGڠ%d Xs#PڸQFvLƯ mIW\H#ڇ}# zaW2JaE,2rreLn4,5x7ؔ|mK6ؤVǼ!Ka\''Bwq8CNXNo:o aoYسV ח)!+U *) \ ޫsbq1D2"+sKX wB(*tClg3 x=!;lҪԳX*a6-ܑ`QL~;h_ ,#Nպǘh]mӞ\u)a%p^GU2#dE͋;ۻ[{To TT!PNmTxbK݀.GzOd հYE2*0*#Bs/Dꨎ210]Zg]GeéK =rjv,r:u~!<-1 >&!66W qmFåÚT1 %`):<'@gu 3$g3n)O[awf*GY;[ bj~| e+oV;˹sigIzC)Mtwi~x5Z an+ס7g^j8Io%?4ozi'@%dVF^DJ-a-ԟh4w^ O#/2"PˀRr`uOrFfF!ϙ}'XMvOiuனl n'I>e- mC*wM!-q) (dQm'f|wYH.&.HtIk!ܻ=KawDYdU,2XhtPi O0$ow6'0Q(]nƅe? g6$ v5MV!,_bI3|}Z3(Fͮ?c~@@z3XOr ,2Q=eMjldǴaȻD@&;"Uc(0lYg%nU܌UMӹ֍Kshqt̟Ä{}ɸ^ˉCT|̭^sP tugKWe x;G@%k%D8PQ1d:5[G)A^ӓk`rδ>xvw_xosS^ێ Nj`Ph˕6-qRKi"2Cy,5g0v&T!-^_4R}s.LHo,{=yNP]FPItIX56):l>PZ0L7SY4MrGCZ Q|a. {"u▔"wARS^ [rnE'9g;yً6ݏ}_ImvM3#xT'fO3Wf.\HV%0"3ls>PZD^nOjg3k[OnPbnGqz]9~v=$ n.xJ;2`C;{Ix 樽zJkBXnL&RcgƂ՗x8:zzzF˕$$ to6MCoIj:g1|P/RXM&it:IP#=.QRӨ@6Zlt@ʙ<z>cs/~$umu#fEn嫚_~CEpxa&}E+ f1mjߊ,vjސ՜2'y+vSؘ8Q+B[cJrRrJC3Z*!dS#Nxݩ3Y\QyFxXI)?\JM=noT @=dzd1Q˔*-.]S(L;S/&k몮QĐ_9«fmHc(H{e.UϹ5LnGJiI( S7(Ee <6wY 2άO_%єUZ:zX=7ypKݦQ*ڐ4N@g>|>Wu]!=zo_>n_-5^9#46m*l?W0< u؎qAtbyްl$f,2G1ArK;? pi#1ZCH0Eh!?r02Q1I wMl&,ښ&#zn]1 \<bYgӌ%ȇb{:D]sЙuX/NK˫bZfx fěRHc`i%ɣgpfyUG J=QU%|Z[@R:B 9g)|&K|=]h'BzT~h쪙6,Ir5P52}e4Y&Q&B ,GaT#3ur~^>.wLlc V\iG=l9z% yGs8lN(9xЧ |7g!Agȃ::k?A -5v®LJS]%~㱩xR=",U;~CĤoUv".;ZAK- T\띦vnު3Δ)iJУ0Z,LkBfUuyX?HlnID *(-=?2P $ =4g3+@:v#tUQf9PfջX*o}X^3-7D!W,аGɃ1B;jͼ^ꖏr"2B\:684aB6㶙C7}㥪!T:q5u4_TiW;Uu 6 wYMNwJwXAz}Țh%ϐ5rwbyǓC܊U-7u='zqK X2CUbK'ۯo!_PaaˍXYXh[_w+d_X{7;?lL9$iSK4ɤe3=!khfL~Qo.n.DjLMs08tCXVvןV+[[1aŒrq.c0pµQ8bqm6 鎚Mλ[f+aN[:t{|%^ʩ|7VՐho~ho؂vJwh:dĺA7V*b>g!$R-cTwQv΢9oȜGJ ʔm+K$q{3xoudc4<?L6mms'!$^fSZh'otz[6BR7ʠYEѪ~+ *DnQRmwA$NɹnLg޴`鈛Pfq|UadQط{"- \MYz[dQ<g~O77ͮOM*lD5*}D GTҚ<6O-ij5ݻPV.)k!¢|!{fO~p;b]0k-1d `qwۂ[xnW,noCcBPnvT0dN a'\Pc *RL4j O y!K~GGhLCD}'6uOg ?pE~R? |CsDd)I1"BUa`}E&i>ɰx$fOMDb񤟊 n|"ʓ-fO6Dl 'lW+QX4}QC&X:ʻlm8u& !ki-SA8*jν0N:l~70&wJ8Bzېq, H?'PxX=E8*Jixc'LB F42vxYM6 0]: v\|4WLo:Aiëi+"%^TDQD5ּ BR`[7 l7) '?(ds\ AG]xWmr骏u뇾p7Ё1:%nwYBIkP|Gg pVF7H^ PtObE SۏM-nn(vL`lz؍#Gb Ff`Bـ3Mn/8b5&z D;Dq:lܙӠKZüW;L7OkϒWdYs` b|PQP[Jٸ_EY^|=w  Tp7},;fB<#`!?^x:<va Ȉ`y]Vphoxϯ*Dcdo˭]xIx׈E۝dIfޓ Kr&}"癊FUzB-A)JS\2|ecGҪh=\22iЧ_~?L. Ya_$L&1 rIYң?`;箾fd ݺNgrY_Bg#g˽ qr\)Q|ٺ{񢚑ɁD/^tS3xq˳+{ 3$]s ꍁc~!@ 624daB08^ (9^EomY smH29W)!"TG ̶}ӻXVwS@]<8?hQ6v ']$c5UizH^ԩ|w[VNR;渑L-,,4B^·0e폙'r@[n~{1\ B#h#@klc4˴1 .=&S8xO^#-4ʹ6!Oٰ7`TI&"$nͻ55dG>QE _|Zs:B$#wB%`^om?9~2 } cЙ>5Xp7!6EA/%4мwķmNs2X:>i|Os|cݚZ|'ihqCi>1 +&wb+|!rTdݍ[탗arYck?[r$DrɨՑ 9n^X.h%>gTL;ʊ̬M{lva*seVr&|˖L5`ztYI^^Y~ŏUUVܗ![ѹcE; 6԰u5QK2:5 OvM`1a 2%+e΁JHh E-+l~IӔ>gc<.˦ E⚰*V$lcqKƩzuo}XhGWO)*))ֵӬdI""])u@,7뫿,7H-AIb`O !+R,` 4a0J+]pKF%6e|3?\So]hi_>^o7!\TL=Sy=MmtE60,>v5, 噃04L=ZQӞ iy\ݪ*J:ӾV9Swl}G5ٺOaLV)Wu#f+lٌl>܋kIU?>f02[w +AܒYƛZug05[6WUdkn+M:%%f!fXX>Dr߭føTˇOkfY\C^3M~t!>ΪPd8DsHm6DqZ§ڡ؎70X0Qov _K!^ѲI6>Tqbָvxjpa׻>s&jK| =&2'ov~گ^B?UOr/dvOQsV?5Bhhb}URoPYo{Y-ҊyA zelXU=~otS-_O  '[^W|UCSP HhTGd2|p{yt\ w/D/)sǼe]ʬ 06z$o͎Dc35( ԱP_rь)\ۺ=%eR~mmX$%HjˑYϰnHd 3CѠ'!~ŷ01=vۘ#bkEkStZ-t-G֤t-]e } U^<0H "eCFRnt'_Wk hu>h\H%S+c$hY>ƨ#}IaD:Cv7Fzp/?!!~upbGo7kۤwB6ldNbe{KuA)[1aDLUÆ-nƴ O)R=~e`at7;Vv ! ʮҫ7+MUv/F5E❐9 6l>}쉍E{i㢽Jls+Dy@.|ATp #\u_)wvw!j٦5)׵eM1 A0캝 OHa;;kOwmQ^|w|c}dWǤ @e1:Ici)o&65|{ ih` -t>'(m%KdW5f8r)k(hE' ?ex)G4@< :r*$҃_|yS:TU_$7r$*dfU)rjLaqbo%|wpJYi?9=)&OU1;R:Ťm+JR΀ʊf-ӔҎy\*)kWj|l9;fZzgO"q(Y[*2i DGǵkaiI)fW;9+R]^]Fr]#i˪Кf Qt\V<[)zc\C(3(߯I UH=\ё&XLF+Qg,]\.-CFusC-7jIAOT[<b0FznLnh}A/^_4TU.vdlmiFaI*sS3l H}&-ð2uFg}h}37K'5 G==(3Ͱ'r_C*nI>!BZ{@*% [|@| : ٚ)A%&,ϙ.K%9ͰuM]tryWNU;XifUG||TAMկ/1߅^G4CH(w3tGUL0zg$z6M)KwGݧCCwu)CsʖT 2$܎_S:(qd$HgV]Q%kQ{;,]d ۲/i/71_c[l,y8:%g\G#LbX&棠ةmIg)\|eow"rv /fI@l7S{] "-%gyH#0EMu,+S3y]؎M~2P\#( b軕j~ a^03lv`C4:Ŵ~+6yyCVsʜtMacZ0Z;䤊F|Y=gbwLV>WcEa6औ.6*|%Om{8({އL}> ]W5 :>Α '҈\כ٣N]z\P5xKM4cscSq-MϭWs_1Vo.|ǻ(9^/]a6;m@}>OlI*7] >Ϣh\[uϓyd~HfUw쨌2ts5Կ]zk1S$!wxsSʪw Zt"T{3&}:Ŷ !{gC {*nWD9DpA{'8h==Gj)jn%߰fXpf wGh-;7(㘧T0dN a'\Pcszkȝz5h D{oպ2O nUq j_2+ӵ@n)O(:?ڕ$(jK]sD̅I>U=[脕0 '`$4Ix$N"KxGۈ9KK<MQo$aCԍ͖_~Bz>xh>NJu^eul Ɖs09mY_Km z잋 sT[cڐ;%! SlCfDZ7 "AMg,zi[4*p>펯]M* ֑6]~otrr"kxW[;|&KjOɂ} ӄ_ Fv0Qn Kv\ހ]a:iCy"j5U&}Bn a/Mxo0 (©O{nͨhID&-/׾BEQn#N7=Q?/+@?ЦT }/nhP:r&v%.4*4ag*D&tmŀ2JNAfvO$VĚh: laX&z~ Z+Y2vu\J:Qχ]`'2"O%B{ OYB>FVXI)}ZdIƝd= $g'rKB vT/Q*YJj$%C<͍g[_6v*(3O5\l20ǰo+%e4TbsW_G3a2Bm&g"`FTpC5 sc\O_=Zl$Sf_Ց¼7!C`.('˪pLaYdB|J}:vL-~2 &1\)q^J㾄)~TQQ%%+B,\|`FrkW;ޮtѩ]oEpևhH&צހy gy0=xj Ep/b?]s2-< sy#?wDMY*6g&GY^2 !G͓=ugiB}HHx|#<7cͮ,,k_}E ]S' dݔ1K<̂`WMew1!NWl!͓ݗsW_AT~ P%m}ZF\ Wxzqˮg]kU?{Ļ'KW}7C؃1F$88 H=x$CZLu}o7$6qߡ5FrUU@!ssN8]ϊ1m̑_Svvol-m_ ޔƒ̧F%^!."v1C?!.Du(Z" "LJ44uFSk7bYzPQn }dHPa ȶd '^}QKauzgs? +?Ve&N(TzTlQio8 wBZGvڑkG'A:wBmT1wsG1{1nImr};!EawvGa#lLVRwB $ w4pG Jj?mgOnB QrvGaw}~> 4AzK^,}')GmwvGoN~dVV,BQxGwQ)|6vP2;z蹣玞Oϯ}:ĝoYێn;趣m2ٖ0oBwBmT1wsG1OJM8U;툶#ڎh;}3o]H+J܍*"W趣ێn; vpq*xf&";J(䎒M&ݦjvڑkG\Q[􆁗tz b^펶;h'mߟ{^g7@U˳QsD?_m)o%QƎ;F:܂;~{ c}|gBfewP(ǀ;nR'f IcPY瓧1vJK@Bjz QbԥNC̳p.TL{4) h`S{GE6Ct}" |aZ:¥~]Hme}q>D8F􊈦ط{"&!.F8RP_)-5]ƹ^5X\~\ChuQy 택_׼f6|S3 (mУ'~j7~,ﰲF}JAMg!eBdJ+i5Oo#.[>z?O|Q?i4/d F4r; mA~KC`QbwB8rP HhTGd=I1AlY~t'ݹtGRW.#w݅|g^”HdaWyR5~ޜNq,}ܟ8IJNӠiҙ{M )R9m) hDnIJhIRYm94݂f#;OBz"= I~ Zڔe]FkSakR;:£7Rd~DNzw]۵tV5%roԊ!*˗ɃAñkvF&(D? nش@zG:RIXa1 UsӍP![>$AԟPr)8ys/6pxӎ;]&Eu;qB|2I'߲T {p꽥zE^ӄǖ(bCL& |bLAa T-Fh RCg^Vm[$0'4x6~*|/c:I:I:I:Ig$NR$NR$NR$NR$@@$i:Y:Y:Y:Y~ s8Y'!+SfCP] 6B "1S?˜Ȼƫf}J erHvF'99R _lz[[V~j[YH~Jv*I?L> w}rA w}rA>{ qA},xĄNLĄNLĄNLĄNLxi:1:1:1:1~bap|NR$NR$NR$NR$9I:I:I:I:I=8I'/)(rB')tB')tB')tB')4I I I I I I ?yI!#I I I I 5 rB')tB')tB')tB')t{ qO_R:I:I:I:I}ANR$NR$NR$NR$NRx$NRx$I I I I > ')tB')tB')tB')tB')')抓:I:I:I:I}ANR$NR$NR$NR$NRx$NRxO$:Q:Q:Q:Q}ANTDNTDNTDNTDNTx$NT L 5 rB'+tB'+tB'+tB'+t{ qO^V# > ''trB''trB''trB''trB''޷wq$yu l Q_l0x8b4hFwp$H~WZ7N80ꈥP,b)KX R(Bf$BP,b)KX R([` K፷az X(B1Pb,cmAb,c X(B1Pb,1 c!"RPlb+[ V(̃V(BPlb+[ Vx $b+B W(BPlb+[ o;[ V(BPlb+[-0v ܁,B1Pb,c o5c X(B1Pb,c-0 Aia9,B1Pb,c o5c X(B1Pb,c-0 }7P b(C P(B1f$B1P b(C P([` C 3`g.Tg8r@'IsX ~fҙ0 g'i){%)g &kxց🲏IR4P]6?Falն |WbEl[xͦLaWaEDzSSU?_Y~F#L|3-O76~_j6+5hi./IBWUmZ& sil{Y_̷ZͷGywMY*`eJ2e.ϸ4k7msut# ]c,"g(O9 %iƘ%j,ts$ޓ֣=g^ Fl:V>:p؆ AA{yM7IS5gI' W0\ac|;C%F Rfkt'6yIv7iҫ*(wPfe Yhc4?4t 7P3Eq/^r- .+\v.|&_+Ҥ,6Tͽ(0YQ5!.7E4/-Jw) :Gq+V)ZRbD2.A I M$R@@R>H2+D@,[ Iy" @It $h 2SIV1Lҝ@M1D0nM$ V"Xf vJc|FOv )IAPo 5tp&?N1;N$AS>t`'Y!;%bKS<=3 =MOV ⧭gjlf'|2I/ ;Lc;d씏5"IȭNFN@# 4pS산> kpjdQ&Ԅ jj i ]bϸ2Ƚ(͋'/vv!s{mqҋ+Cr޻-{ z CQ/6t^(t%+`Sgܶ3xs`;9N>Ŏ3bȀr|4*:cgp2-IgQauss.VC zFC(=ft)L-Z5•Wfj p>CovJO8EsCG՟;ې,qxn8V,/˓9*\i0pcS.Z).{bi4n!lXŅ$s;h)@F…/uJӽ B4|DpxJf`.t4$5Kcu*o oK-ϼl kN*&M}THklp|. 1;[ gE__p|fdd uax4ҹh,͠ByZaqL, ֮WGl }gtyb1U1Ca7~PA=Ǐp@Iz@WuhI]wI=Y{Z-/{N(zw:5g A0r{u:+mgQ4<P"iw:vEg?W)y)Ÿ9v3_=RA~tjEB]ߪMB{, #Y߭4dⶕ%&̫be5I]`b{R϶_8P 4d<?^bssi?{P=>=3c4tp.N dJD/r~!20wt+`0'|9af'Wdz窞ϊ\#m ~ G 9P}#A9 WU1fc5ts޽L@rm(_>f5X}|0Gc"OY89Z&A\+0W`\s +0N܁~ O +8Wp\s νS887'r +HW ]At ҽSHp]t +@WݻtO +@W]t нc@d @]u +PW@]w +HW ]At +H.  `s>+PW@]u {n.ʝt +@W]to9- KO“Π8 NcMJ\@ΔŹ[V .{P}}qה}5<g%2A~d`n5?1Y(%Pn4/yLW_X%,E}EV ր/ pI67H4P8gzV_={x?Z;;[i:3DV aԜ${dYsgw&C&tQC/.GfXD؉~a;wYQ *4VXzajczӝKe!^g5 L6y[`DuK*s$Kɧ"`Vzʂ'|o=ͶT,]x7Pu㧶~:1_ J7!f%r7 {sk{6/llN=[Zk=~ts{ssgA4PUgUUkEJl9)u>und]T*V7?Vp.-o.\mngVʹ>cv [*/ַv6lt:qOYCw~zh 1T7O{0ܲ%peN 3 b)3(8#[0Na?K0tL3V@<@@@BW y}pD) 'P uwaP'G@ah(D7>~r (=}@FI3‘S@Gaz'3-ļa\Aɨ41"d(QT,#N-`"H/  ,^Lt75>{[LJ8s!4iaJ4SZxč~Bq ;28/^ /e5iF%a]e!X!ŘAfgOw^vL gp8u!yHM7nqpӤyf$fL%*7l6)S giW 9'Js"3/9yN&ፁ9~ )ۿ-neN27 \BUFS~$< ޻LŞIAw }&;f *hؾR :EFSš|q$:N`t҉h4Iz}xrVp1T0<㑋^ @,Yx}XeD)R&G',,ɓY<D85Zt}DF6AbwFdzvB%2__p|);KҊvњM5C/ގ{P;w!$gg U̼<$= +9`9ǔLLy03S:)S ~L|͘2_̆)iLƔ_)b))bKdFQߵ19 . (/0kq@1:@I@ u} W JXu_Fv.2ɦ(LvɌh"dd +@@3h&%sXAfx,?{dYQA]%(X42NCs@ODCc}8Q6= 6{-ሒORuhrY]wI=Y{Z-/{N(znpq fd$%S4<l⁀iw:v.<;7]3/:eW npF T/1j* _B]Β = )X|i aֲtsa&yC4[c,qYYu tR=z1=}ԳWj#xB 2 LyiiU iCgyHXAkр1:8pUH JцaD}xЃqYj(s¸ ӳ?^)(E2Z2^U=7zGƪ ,o#@|MHa~Pp(dhzHU6+IKe(&0; c\.0a|(a90}¡@gP[=a #aoaEk^ x-Z;s5zVbƛk;o?Dpj6ɓ x hBPFhxox>t/_ NRdLٍ)+3K|':^޵=[^@P o5 A:^ZSA3e6%,k=~ts{ssg&B4\":+قl"|TH[v '1>b>0 CjkQ6T=l:@;ؘe%ݻD$O׬ u([w>@7:rr:)hwG{h㓋ch_Ht&5:F֊w^/V"dfH.H.)(x2 T*eARX2H( L"QE$Zh¾. v^q,n ;F9iFQj3&q?' 3ЈvA R4[)cLmZwg A"> Pu\<8kqaFrH -vt)/gWۿn=7."\np)Jyli%Ov,4D[w խu 9?0ua'tHTW<ُvoݜ下w(dGPi_•-ҷ.|(ʔǩrr>vhFĹndp4p~dkխC?5:?vǰ$599U+Ҥ啖D.aRvo0Q08'LZ:fxAZ(M;6(AB~}tNTb m[otnoƅ&t$[D4N<.-^Lm!6xnl;>}=36^E\I=$60~h'*"#zßWvFy4(@V:A|@XS\gC稃K=~`6xjC:w6W*E+s,ɋ0ܥڇ2AF;*vF!_20E(Oj/hFHi3${98{ꌅ uZ$;zH { ,W+xS|72.iz}ށdJ1I=MwY\Ӊѓ޽"m?o>y䵽/zCzh^*;/[zf~~&m&m&m&m&m&m&m&m&mvQo6o{mRtþH?n:*O;tX8MxRD;La#9 bUđr W8҉w'#MHى9ʊ JvX1^%WnVǏܹfy)v4/CZw7s+vɝ ѼX] |.3z!W3Wcz%e\7Ne_5װzE\fvwdG^ڄ&nF"BVhRٽw.s N>=8M5ߎ)vo߻;99o'kKIz1ƚ& P$cIfŕLg;(+D.elFL2Qu*@bW/V'GʒT8ܻ7?Ɩ[e/Bu{\ihQ?-A?@甪ytKʬءƼ4| ԚbG,cD93$}L_I,ܺJOғVVYXMZ h4vtkEg`zt%}[ȑ+/ w⿕HܶmKܶnۖx xk夾\j"C߬̐7K|w"%ʘ[.j.Dl.<W\u %]f#u^Bǩˑ5{17 Spݯ)/ uK $Wgr 5P"l\k \Ìll ׬JOcŝrrr+Z=rʝy7&Õr:ob'O4Mzb 5屢In8+ƫwyX◯3]ua3久_1r*8b2^* WQ[tIi^H\Qʸnp13_5WnxR.nUӘ9d4ڄ&'1Ɣr9 1䃜ƼC1 ̙pI,P@3H*Eq@25␉2H"=eIb;xXbRWzMŸ&oz%J\n+q׫JK | /g /%+!z%WGKz%WJ @Hz@"%—@_K |qe1 /Y!ofI | _i_K |  $_ߢxi}3 /Ŭ'f=1I |9)?}5? /%Ÿy$$—@_NcrBNc^xߥrSNcӘ_" V /@{˖.?T::>PRaxFa;Ra~t:_O MHNH=wZLeSh.n 0JH$-c7J?]@5nsgw2@پ\` d^Hl ETp_ӓp!tQ k` 3*$ (H@YLS {6[{;?~@RA߄JkPg^;p!wa* )8\SrvBVCǁׇ 0Չ6l-|-!Y*~thBUIzۉU3G]goꙛ<=V]yu͢fEb\\6_[`)K]ԗda 2[(^[626geL"Ǭ'-^t'fK!.'Դ" :v^\\Tg O~VbCBU{OO?[pi("}4sꯩW$ҭG} HK-$꒨Kק.WH0]]9Y0x7`Nꔊڣhs]e8G+P4k*6ۖԐΙ ekӯqSjIAއ5sɇh#> QY鲲}8>z/0Pļwz.]v'a8j:^\!LkVVf3 Dd5J{kw}{k5TG3rFhY44[.w0C8 ͧ0QϚo/\]aѥD(E8Ħe(ˢTa_~~8IǤf*A*ݞߡc)?!d}J!EӟM׬2RRHTٓayfIJȌ4>sqr%6\Lz..YJzaϙ?d*@~3tXTiXeFg5upfe bLZ1b,(h*fyĈ;Ph0!`< Tu0)VzH3qfh~je_6-hQ~c1vki$)P'4uVx,:.'&WTpp) eJ)8{PHh^f:YmVMt.P;`{sIA9ßIOƭk.RjyaMbiPz <>xĦobc:<Ydiq 9Ύ|]S>''AJ{0Du腸:ܡpa0XS/dd3`i !68pt\4@0ww:a3n-eOLa(ȃAUԬbߪFmVTcz?| =~c8U6:>vwulV.P=n U2^c9 SQ Ob@:skzZ_An滰!cxLfǃd~Wf$'v(eGZ=Y3PS˖_2fTCrХ\4WU`ۀ#ꔾU} :pY E8, RIneu F{Ux6HX@+~~,&CՃF_ _ҋ=|IZT JotƎy! :8)&1sDg~3eJ /3/JP it|)>v_ 1A3i+Xraes$qlKI 4}26;aLyI14с1Ӳ oI' 0}7?|;3 }rj^X n;*gÐ󗺴Z-JF`@+6 rBf|?;>֞PasذW{H ooiMfEXڸP7'7:/HO/EUx-eiPfeĘƆ+mGP-bv3r%rpT]>(ƅ#@k GE"}ROU}9& J%bG`avLy^QReE}ŗ٢rdK9'a7}@;b}ĢT3M -v @P7uHNyѐPjyHYZ}rmnOeGSs>^_Ov.UJo닍*\>npqowcwggs#;Qulc?ºiAP8;O7KIp3031=P{FLp…Wk@;GtNV[~Fg.(6 .0$?GEꎟ)ukTA=5=¬+?c0-:7T޹ns DDHlyrA;А(b耔}LTP*7:Ī.vjv.9oAղ~Tz͍b/с.?)9a~I"e]4e}C CŐh]H`ؗ :V3>2g/JQ[u01&& w>HZ;]ىC=uIA ;bf{ pɃ1ӵKDW; DhįI@vf::nDSAs+et dx'~v& }GU5UOf?E,_'W7N[o.,4;,7X0n}xRaֆ"w?k}(p`%8o9pOĂЋWce&LV>zGa6 &4 R7r|xݬ5SYS52tz@ kuN!`YU5'=8큊x d B;3s7`]1 [+tt Cpߖ&A^9lTU]6N\6-{oie܇u88X{Rm˺d@F:@/n8a ;{7KY)FkӮV~rPiTlxvaA нyYX UHa1!&RV *UʺIXچ* ObҤ'rOObQ~!aUKgEs|nֆ&Ռ)kxrhQ3z*8VxLok_:ܒ~KR1~蓤Fca9u qkӕqo9w/l(qb<H{ݣWd%? @j!j̭vxùظ:0m>:75Z* ʉa+kOVRW/A)ܚǛD94IJ"T h4Rkݎx">6v'.3olu(;\ݠ&]Ufz/J%zjYoҔt=mU)VU@V;g[;Z{''`TjbŇU?9U{&ﺝPm/wGC{73uD n ͪszr]?a4|ϪNdƬY]rb{^qRM*v/,<"Z  T*Ѭ%=i pmý J\~H㘺BU 9s8# d۫Ƣ_6?˩9Ú y˷TG}8\~2ˀcN9vyJZrer5M[qm_2ke [Y4w'ʲѺ&=W^Xu)R i@;EtEN0ǑG TLm(.Y[V#J>zW%2 %}9A&ϩ 4؁=ѐ=C+HK(hMz(d<>` TSzDn k:"h&vEau& >!T}g!mdgE(ϫ[4sNԤ?eBgmT7d"Β펴=Sh[B̄ z!09oa@ *= Tq dSʫAq7Uk}E֯ IbM-jԈ%m|>Gb`RWr{m,rY$ Tо:@"h_Nt`: spx."ϡ.>N}sQ`/9ˎ66(B24:YbT^@. c/CXN;/^o?_"z8({ik\ꩳiw9Į*:׈c6_VYGaFt;dL.Ռ7;zЁo: OM蹡m1%v#x_-7/V՟w*!=tkWϞX/yi@1vr\r%OseFY(-#`@2ΚBSZټI$;mdhLWizUpЮ`4zvoNdG '5(+QbJq`DUk~@S%ہl6_iO3-wcB@kriJS1?Vid~ )CR&gf1Sx3̨ܠ I8:Ջ0yrT(J&Op#XYPKZ?\ׁՅ=S1\k!8t&8Cr 9f_}UW9ϸA\F'FlHɗO}ן}~:!;KmȟLMAoȓO)Zf|EY)dN2W:CJL@O HFnEnM=Z2NZU[Xܡ\Y6=Y^ t-1mk{lO4ذnU*4s~~x=c-:S3frnړd^GNڀj2~0o魚Lom-ۛDkZ&]<ͷ'Y"D=L!*_R;ۃZ8'hdZ,1atСhH>a(ͭ'{ʍurp]!ԮXK3$1 u^#W+DϦs2Xd4NЎ=7gh;ӷ"^݄p8tٺڋYq-69z>2j>L0q޸WW)j/$1 &9rpe%&XPZG$!%cg>`yG1f,f|Oq,'U["+>ߓ7Ebs6X|b\U⿟䏸zݖkAwY:?C E0s$ Gi5Y-aH~0yB7FTc褭gZn B뵣= ML3>;# > o4*Dz ǦjCx|QuKŞ%tj#Q]w6Z>17< |4\cҐ=y建z,/B˥~qVJc ⡎,VT,3XNN/LIZ#eDjR%|PHBgCih;D,HaJ2BC6k1#,:D4L>>%v{25I=Ɛ04=s4:"qsN@GIKSE x܊]n!tsPS=5;g1K8%)ejD>y\K58ѣbna 48]s>>5 ÉJ;*wI1s |>rhv0h![Tn4wc LIw80  4Z/U.9< a}U )I6lmj }9 Yc,UA;5E.ZV+jZ{s)Ur:RwFDt8?9;&w8|5+gN$UtVp2idw]]o08[6qȬĴG2> e˞JRs6n;`m%Ȅy{010)u唜 tZLQӍ tZOt͖AX朽hQGOmnC' 8~YRG@q "6 ǎZU z=됚| *ar*LIc<@D~e`kG}>zMSBex&P;Z4@U-Rw|w8L!b^)}1`G #^a~ZI2BPU LWdȺa7Vrm5χ*R&`?Mʁ&=N) *[YSѐ~aML3]f֤O7K>'l(&TRaM避:L[40[HcrTxSQHIٺK?Y Yt?*<` 3Ԫ^iBg4"It@iuv@1I+HOgv%ů|I ,!rxd3Aurtqa?m?v/8x]}2uԌ4$dG)>E볒s}s[g&Mn}ՠ LzHUoMacu jC?3}<3eRMvQ`R~$(3:}EL׌&q -38lQox5a Wu$;vCaJQ цg AjChuIեts0fn pC<{>]<. f#5Ԇ[FΈxmVڲ0PY1 $HB 67wD/ͼ2_?G;mMfzC<f"|fG4!z3e ss!Z 0ǰ^BePZ+cK<,7,+xRt%;k-H@ӟ2fsQ^LC{*tqݴ}2j$Pr㤘3]/ǓtϨD4c'_ٷx* ei=ʎ38UGC'Ѩ&a?ELyI,dsq_C%0&=:?`Dǃ?蟦 lV72l"Vs ca.E (0 g},UR^ҵ} P- | q` ޭ]7|~gΚH77ZtRٍop\)_Rfj"#P`dkEIꛧϷ6ޒN/pGxMtJ nv\pw?n>mmAMZK/Ə5U #ߔ8ͪv`T2QnvOӝ( Z1ކAJZЏSsq2,k-gD`u|SXWz򍬤H!F7Z`x;\Ԩ?k$ C@0cp$y4Ld6iW.<ǭ3gЉ{]/:_-eaEK0ton|UGG8'X7>FY^dVRhw7/qsq63)_W=3kyq=`F#oZenMN:NjXg*1SqhZ1z0R hדqc]^Si9ϗɖ.] ;N=Kn!Q=|ɪnoSQq}Q:w R&t[ID짡MD5ƼiVK +Y`,?p|.>w^ x)(/zMe]=r?~ yl~E3/~_zW =+}j_O17JB,K;QCA5aJWmmfEU$D[0 b-Ύvb%}kzi_"|bY#GRT[-,园]Q)KƖ'Fǧ5ho ̖ϓGjIɵ%Dw0;I;E%,,NnNb?)p44N%?e%gʥ8ViOZka2}%(.5OE9}}RBHASa2~U $+Y|UV'ƾ/=7g3 Ⱦ;;@7~^wphUZb{,c_'D]t4cp8p$(,)aՆ|5Eal242LCyT4`3'Ư&G8LEv*AR-_-637DVM%:(gc9Oѷmt2H&8FpݝqlX _?W@RuU{7~0f)kY{V+#0CM}#obAT:O셣oRxgsQtfYiLE)5UHYJQSxķ\{דMgLԷonlL$^a\h\ 2 0;bԽař'WȢ:Sብ;)x} |יo$ 6C-s0_Ȳ4˒alQhtMӐixMpɶ mض6mRi&M6GCz9{3FҌ.?4{E=8.nPWVOKyxgk(2!!FaUp?r8WqѠCkPQ2++E5p Vj NC/r&T:|C64B!BA+t#(p#~,6|y}q./o oO>Q .@BFӺ-]mkbx1*͍(‡**p\^-0) +/qw2Z9&+v&淎y@nT`E%%)ˏp+53y[p˙? LM; x? ` {ӅQPN,"BBEFBHVMiŀQJC?%A#iBґ.?J 6ԋDj4UX &LB4Y‹_ g5ġOzHMd\7k 6$J#=vWAy_0~"nD6߸"$*iLn.&K烹8d6dm^/f 4D*BqBׁ)˩mQ^#hs=ēns H4ĂT1g&~UFsr)mV5#axԐJj(S[:,R'(1l2`B uԠ{ .@V6Ĕ?袴+4KEn:!AШװ{$~7‚+*>R@.ApSG9嘄!7(idQG Z( IJ>X JX@81UZќN]LPK{ukY#D=M6m! q}5n}f#BZO(brD9CN OrdɢlvOzXhC>VEM4F$6dT-U0"eFYMqL+=<؇M @9L/r=Q򛪍hb2krqz˫E@aᒛ5p n=L)l],_H\ϟ8:q,n RyCgz54Z"_`gf 42l|BL wQ&ѐxl\8Zvx)B ۭ uŽbb+Z+mh҇VX? 8Sl;|+S*1g] tCMbl&_8k4-ı vk7NhD 1"def±H!캈K5hh1h-M> ;`v#|z#R)֢=&]Rsď9 lߨgffZ-P5PJVd9%KfqUrТhr1e fI5*RUزf ʁ$ܩ [tCM#ijbQ͒=RQIIL"xCy291AÅK{n S{>AED_=4l֮ddHAȂ '>/>YvTiɋn p\.l!>lYGj*ߩ{od:Қ%'UM"rڥu'599§{gXB⬾K 7 Es,'>jz&\2&q#nsE2;>&RJ.$&9ic۝\S5`hv#!'/kU!W*G_tPWS,ђ-|\|jfmjFQqc`p\R), c*dQoiaO)`LwHQGh#<Ҍ+2iDdhZJN2"niD=~lfWM٥5bwQ=63&h{ I.ai$TFR7/dOy!aDJ Eh=SsG}esG;*i&dĭmsv6b)XE/(,O*:#ʇJya΢*-'I H7kdV&q(6yESH.~lm 9zZ{=7GM::?h50;t<ɞyrN t(8H+Q$imׁwKEST au+ЛKKɑu-ixt j9+Oy$E䰰/ĮZDn{D765H++ج\1}%RDݠĹ~ͲD:aVD3E8X|EOwU E|[hbQT!+'ۯ抉'~I‡O}AЉRܓ?amȌtrOwf+q;K>rwLq?!wi 8=IJOS&syi?*6b.Zɽֆ\ $>%0SRh?V2ڽMYTT_,ThB ?|s$7_>y/칰/^}L$1=g`qV<~ swBY~SDk\B{~9p.&} egu3Sg̼zd?E[P\:3O͚CSx7[&:PY\\%w8Pk Y4&vW-"qPS\=wJ\/|xx!Tc_>S? OLC}s\l-Ԟ]FQE&r 9aNe wh*6c3qG.Sg24Y<mJ;BEdiJʎ@9vaއ9d,}wP|4/*'uLȇ5gF R!/-dL oD2Ka/17,IG:OeVnhniDe0Sm i,GƝR-NDZHHO :ޜ9-oQDo Sp3_~_w1Vk?}FPsk>vic<ФX2$ԼEBXOo^0#70+Šc]EKN*FO~ vz&Gxr* ;#$U6KA|&10Պ~c`Di7*gr/xǧ2 i,Kuq:GHS83,f"gbkdbd3x}6Sov`Dɖ_f3tD$(YP۰htse=<)H7<|PdY|f6F]YL)ps)]6_2tO.¿n {SoJSRr,eR9evŊ2,eLp)S8Ep|orϊW0o,ω::w@=fT t c/>YSQJ?8;›1ir˙y }3W0W1W2א#{ .Eܱ)NLkB\ȼ %fpm!+y&pFR[.?;@I&7Juҭ8YHYlʔ%#x+qw0sp]v1>e1&ը6vg/u0ӛV@܌ =LvnameFU[[_ʬïl$Sm=ժ&#urx; 1tH? /ecq3 {eZlC\2kuiO/#9-<7E T!ǟlGFm^f_U=N_U=l56aC&xս*BB#Z:6 Af >kkY:a|Ս I!kd$rO>]aƞдH a$;1)]Rtw0qc^}^f>CȁνLthс|YJ&y<&rA%ҧ:>mP^|3s~ff갋-oa/I#2ofO1S/}L%qO '+5]?va 2PԿVfK {|5skf!ʹHΜ J#5!i7Z Ix=|vep]֍xG6zͼ0L2VbyNsbJ|7u_DlZy4tj>yƫ S UߦkzSZ984 sxb-/8)yb܆tE;%"I(JjMrt;}"˓5+Vڣak^ZB3%=G9>>S~EFFk&a'gy|szTszWAİ=dO)TB(2R3![8TV zk&C/AK(z:|DSTqU1;1?xA;==m>U6*+JF1JMwv[aTdr/RD$iqr-V zQ7;USR]}>.39 v>un*^Mgui!;4#7ЫT ܓYӱr/~*S7oZ^nuŽ6`Ql# XmI,-LV 7l!qj\@7}[FcVjh]Ԕx 1 WkZf&U'#I65-1lmn#VN꙾G;`*p̔pQ^Nwή(C0tFjW9 4 %/ӎү!v=~ءD@u>೼n ~7G~)}} 0AiGLZ3#O#gw$">*^|>X08^577^lVE@ ҞQp.BH"37M:)v^Mo`FFȩ`HWF)!2KVZ#EMpbutst$EnEoݭ];9O-ߧ3*.xr~. tbɁ9݁ۘ9ˍwTg"'0kSwVǗ Hy֟!jAD!s^Gp;;ovnJf3?ffGkӈR7O}]7-iuj7yY7ZܛR =gu$ZDUo-rY/"hbM +8{J.7hf[%TP]A(z;cnDw5$q{!*5VZwB/3%Tf&YΧ #7~3~>w:⑐TPPm|}t?uE UpPHG;v5TjaRT%hb%m?|@ 7tw5w7ء2 aH^TXM2۵# =g nPTjX c%۵y1ܚ"e.g祂y㱓'9݀\FswSg{OGJLE@)3Y X:AYꊛ(CԄ'KJb5bΡt롻~7!WVVRBϥjkcTGnwkjvsWǣ"===F 9ȭ܂y\4T@LfuqfΨ1~Ѫ (ɖم]KIC9Vphi9(8zn6h͎m1?#>~=,:vrp73jyds!BMϰj@\ZJ:SBxVvyOiޏm"i43腢_Gar7'oeꥒwҝ(`"}iZ.v}X_}aD ?j!])i/P']l@ś?߼EF=E^ m>5nd>K2zqDM}lg:b[™[]M] O<ݞϮ~#E؃Yali{ٷR |c߂7$jzPWf;F7)eX R͈:E ;}_eǿ\ b~="1;WU`T!D!UDŇ*  '`\wS_8#NSdxIgZu')x* e)XT|Orr->bٹC|)cMIR&6}*>D$c3{gQwISx#v ~~"Y:.P*t:F8fS˽5+~N"$m#g@XP~"y &JMʈSk+W\Qk[nN\?d-aZW%iUl~VbE5h_mĔ,Q,?SdI-^$ժ;=NR@,͟oe9^cKf$okOb] 1~kDL(R/t=g/ b}f>6(tWF5[e[+}e/a ;LƿdF{k%j3G-Pg?cG<"H?Ͼfo2̢"j:3~M}JDz8Tl/>+ߪ4. Ncz}L1)2RAD"i*53\1E?&) )R'd[?q ԈRV@Ym[y;wAouA- Zm5]b[QMpZ7W,~Wz+EzWzk:L~υ8KR}\VAFtk"pE"R,*}F`CԌT)&nujݨYkA  P6yr*jzf5ӬWz㠾?լNI\S͚Vk+=c^uUpSmz}MA{^hVWL.\!S.}AFz%AI$[W~e(wzG=U.V|ǒOijss!uwCxi<mCuj#Ujt=$\Wñ{q[.d=ŠO,I8x̝zc,qzGPfE`?%H2uW,.HtԸ<ϛt(3?-^T>!T9$Ξ*$cB-mX b}Bm"y~H>7E&*zN͹txwTwOlic2!CAԈ)Qߦɔ(1[l/[W^U܊u)&wSV{-ҽB~*,x #nf&-`7NsmጉݳJqmi~j+T]f)ZkزB__GWğRBLUGx=P"5sTOٹTΙTʳ \;~i7wV*zJBE> ?Ig}[K:߫3{}NUh6q\!NA5|IdP9)0+q8w`(^;ewq Ήp׳z\۪ݜ3&m^tQy U ܺI:&nv^9?`sr5C\7qu}}Qd%!b\v+{+יJJ@͕ o:Vn㯦D ڭ?ۻ涮;<)׺®;e0l^qFUp+E{9jբ"׵{6]Z453r&8q*7).s[{űf-D`k60>cFt C2#{ ZXaRy)GFd$Z]V)Ԑ(A >Ʉǚ%V][7̹CC&٥N#G3™Wyx\[9s3sW{A,/p kys]`=s>s?vP DlNW]o"1pt1--u mD1@`!.c ~ Hp?r8Wq!ķqo]ceԳx-$ZKhNIT?E„PgC!0 ˅N:%n$sx}Nw`S uy\6_n(^o?@<|g*jwThIޡj&ۈz)ڋ> W >g $+6?ha,ꯀxFk *J%)ˏp+#r&D,4+B=*Ep]s'z( V Z;! WT8i('=,ԿPٴQ GIax6G"[#e߁BUuveRH3j'hZj#puצ #G饊T"zi}4&gg:v-6;'"29@$iTBBЦ¨#֎X9]C>>d,AULY/$~Aa$??Wڐ1yQX\#u q`ʣA I&Kbe30!JC9w qQwƣ-L86 HHD0K,1쁶b:YؒC𿥧0-$\/Vr&T3@ҌIm' ! 9FmP:+0uĹ^+ Ds@"B l #x/o#=tE*0uځ$;6#[Otۜ9G@^R(Z:Pu0UFdjL[_+h;rɒV 85UXoK !z7Tj`Hˢx |.̺ c9D;xHOCE Xc*J!y-8GB;є<4'p܎5Z;DШj !IJ"d?33׹?ӏs *ϙ᧟ྮ!)A6;| ?{ACZLHFS9O۝NbS*?hRE' YrsZ'[LD**DL@ GjᦓLA ! Rt3 8OZ.c !he9Hu⫶KOQG:`].Wcpw90kueujYB_ҷox^R\\tՈO#Il4c;vIrһ@|&?(N6@!,xx{,G JtS_ԩP-a @$5A;ݠ`#Ġ)nVG[P[WiF5u&cAOd)AԙVS b'ᶟsSeas6\ nSvs+˓ߜ ӿND "*>@3>.3v*^AQ__nA vjE4x Go)b" $(70l$uڕ#ȔA6?"Z~P@s>Pեnbrd+l{~eWH*:|9n0.wm_~k׼SzۇW~E1,Ú"K+~l9 9OT~hXHn0?oe >p=.n1rs~ϡڲ݆!>!_$ﳃC*AhX'ZV,X)B81[RG*{-&yֈT*bǭS^,EqK@e "l~+Ʒ/U3JF~%mffaX`̩䊝 =<?y GO LiDȋ"hʂ/+cngWQ"FmB4P /d+Oh3\Bx/Om]F 3:"$NE CF?UW ="-e플UKd܂gm.·MΦk2?25 1ס=kZ)YP=5-cmoQA9=#?kgdPEnVFa Av2 zW9\vF,7^䆗hH䕙q"V2+! ;NԼ 7 k_LU703Ѽ+?!tOKx= xE_MH&!Ig2dH$rE%0d:df@0(+*`EauW~wuWſ瞐YcޫWzիtp[b[bH`AeB7w3TtuNGحx#fvN-6ЭfwmjNVrs* Twtܔ>οMn4-Umvj*xD*rf~^L1næVG9756W6 - MŨӂ~=\~c6kFqNR@?C&'gqu,4TWrFCEESes3ŗZC \Hnj**[jj -5 rc]yaSeIfDЪkl74] :B~a]eSM9m44V6yTV6E-HRi xk 9j̯6Y9$Viy 9N&+SئEm y幛.(!6!s?}ωLN ܓT jNnioaw>⎌Yc=ܥ 9E{@=ٗ%xlS?PΤ`2:E|nen,*ā4%`{b啖N07ٱHVQ(Xm\Q{ė1Ŷ"0;ׇL^驴L5ނ[0  Rs+kkvZ MEM斦joqƆ%wNҧ^]NS%~R<_lq*j6lrvsO Xu͂IC{-Yl^3[~%Cwc%-0AK41+*sҥ^(kk4+ƙj JSe,GK*+(Wb%)+/jE-U-FBUzcP5-(b uފobPֶ=j0Bo2bcD&%Nyp J7z.j+{ˍu<  ΰkF{+lxf5%fV5reiz5Jso4~inިҴ"o3[y0ܶ+C&SJ!kД`CrCr͹ZcquEn~8`8rG6;WRD}[oQ:a@=SS*Znn_Y!ҫ/r}+F^O*n]c%B`Xt <AJ<-Q `78o; fA1tǁ/z7|+H #>} _*q/f \{踶Bsr飙)AE%1qⱤ$ kUL%ģGˏĬo27!xe`d?{@ W^ Rܻn{B&Nt * @4+Uä%`l LT;Lݼ9 n t;Xi"ȄDI|2<V꯱qn33QZ9řy:vAwVA.ã|JsP#.0\iqXyj:^V_A)yTomEzʹUˡ&'\i9+.h0~;84m] Gnerj<}Rhw#5upX} GFHP"b<å&<5\|BlFpH9{e6,!S\W"ڐ**R` #%s"8s`ipÜ`xdx <K0N@',{?gx㩴d?;ڳ4{S'Of+Z ҰS<{*_+b:2=xu*ˎ݃ՍiodVظ6Fucsi&]^.dYr&3qVj~r¤;<^sk9g^kWa>cw*LSy>xԑF-UTD ';D-SnM1%ҷu%2Yl){O=A@) jz9'bK@VHhMίm.hs @tH%gd0naAg?M T!Jfu:Ne^eGvd5bɣC fc,c[@Ŏ›X>ҳ5Q*4 qz A\ɀ/}&3cFxu0ODٱXl;;ϪΆQ|d9{M'o|SRAZT3 []:+!TDDV*d'Y .(0  7@n;㇚V?[DʄY) ZEp4*A^6yvx7޾~xi@9^mq`~-$-XCp~H&%Ҁ,M!cፉ .//m'񣸜i2@3\L]I ~0 oMCuNOpr<>v < ,;IH"Nn6t'Xv75 6xzaL V{D0,0#e$nӕ6²`2u.N*|w.x 쥠袩Ӧ_/QiC'i0im@>6%Ge{;t?_D W+U0+DuEfp:PR4UylT+\~ġ"lʊ2(#\5=22X\Q+Fb8nUTȺB bI| ŸMElj$m*"656ETBjoOzXMQ8X}"Ics 5K}IOL.0-M1=G:﷊ԈMElj$mjձH;^TĦF֦QĦ"656uMEljdm*}tTĦ"656UMMGTĦFҦnlGljDmMEljlSĜF2D\51bS%H*)@Ħ"656E]ODraa=f$ԗ#6 {fRTAp<|5BQCjJ,|axM}iє |2Z, @S P#?1uJMM]ZDEQwGljm+} DXJMb`)U$O%/ ԩpIރ)5Sک}AZ*)5S~M(9$oD:S)!8S筯줦Jt2J4<4uQa9 TeM'jp̱p**N3^I(x38[T&|IW \IbA).jVx[\Ԑ#v@d1d~rW!DTbq+~jW36`#`Z#KyJn4BwUMԐ_I|k7-r#!,'h*yV@ϻ^+(Qϟ[.GSGj3^K=UҖ_Q4M`XgiZ-qm뵔 LtjCM]KM찘`K;Z?I R cor Jb=u3&9Vl̇QmHqVDj%b?nS u܎{厗Z;lDYdzɔv1x+%~(Y"+Y6 4خh׮,nuP1Q3PC_׫LR=~BBv5*n}~/i5nbQF!Jۻ@lG}T4|dکQ1\>!r9v40' w C2C^ (c"nKv80YwSuW~|^ O[徣3&\qyg&/-Y&OMQ!$;F qWIjt\dO#} (Ī'1)I?wNYOz+5 vS>Ee [^mJ~JeyJ ̽/" U&_'x-μ$'d^FΧٺ-rΘz8̅S( ~y'3D'ѥnFqƾEńNAr4 moi|P߽Eec,h%^ՠNLc`TBl820cdaS𑏨Ϗ} ?c<3dSbҰ|h }.͏)eblì|2]\kRyQB~ \Ss1bo<1NF oʀ/ˡ)΃YyD2=l?>,Dz(s,޷Άt*xol)[upAzv۶e5pYjtDXU* d:- e5`5̇SH#mх40e؈...̣'GtuQ OC; 餈Bq.g8=:Y L*% 9 +Lp6٤e{v;='지t<&p~mDG+6|7I9΅,̴oNa Z%k#rׂD_|(䑕tطP `jBC C(:626CiPyfH3A G;Lp9 boK^ZDDI$uAyw#-N&HQ VT9)_X)7-g`za5&D+B$kKqr7q=jP 89\uMBE>p#|twwn$jm!([JA.C W ܅~Bx!bxl]Gw,[Jh\⿽BL?̔15hJV:d'k+sVL.n<=L篗k4;w06p Ea'vӿnm4I*l;It$ =ՀǷtBlnzT\Hqܿ{XG O`A0}Ir+M4<: JYPp2{YL@[z8v=H&Yw/HTܵ$+6@vRQGS""luMh"sGX?44!WCઇ@珠9w%Y#QGhcxCb&=Q^/s9dA2?+˼.I?1EvzNO>S*.ȇ f T5S׭İaWf^iY&".cqP0 gYSX{_c!e̝eKgQ$/j2!WNYL]"ȳ >ZQaG=3&4373Ϟ>nIpaәLgL5bL/e e%1CYr=.?偍!}kiSF7-aLJh7W`eJVJDH_JDXJ,B6u]ulfxv2b56n^Wr^[cZ9řy:vAwVA.sf;/4erP+W70\iqXyj:^V_A;t9M.YW;{ˎQjiBqZ\<4ɜuzuvgN2\bn)_ и6 15leaFv!QFÐZ7=I)eWx;) ]pJJng%;ٵj;یWa6`kܛw%@<&¯w'.t}f榢wvڝ=n5;_b8;ӷ[lz Z't#'`NY\\ n=v37oj4-Umvj*xD*rf~^L1næpScseTZ,W=\~֝6kFqNR@?~6W}ru,4TWrFCEESes3ŗZC \Hnj**[jj -5 rc]yaSeIfDЪkl74] :B~a]eSM9m44V6yTV6E-HRi xksdŭ*-/>~\)lS6ӭhuqWFq Q 3}>\>4YT dMixMc+tt͎MDXmFTcqF)N_\Vw 3zj; NN>u;ܻM[EǽGՊe飨wݕY,\ZRY׈{Zd4a RH~~7 11PPId;pVU<L @:l|k'ӯƱfH7&' i\ZZQtjIϭAQGNjdku!:hP{y{[i ؃ׅ?xM JgH nv|Iv* ˥g;bkb"EN4k3YVT7ϭDN.Ĭ{gh.Ҧ Ǖ7WT bjyP <$G!9;S9b{'g?FxM'oΰnT3f zmHBjlF. jx3|V ʎ4ù{(ў*eib֡WJTB[c_g;Mȣxrq]С~YvD,INh3o(_:W>c0TPCS \E:\TS_C$P9 *Z|*6wNҗ+0:Z-Gy{gi&o4帇3z `ۼ%V*DF}勇 `Ģ3|ߣ>Um}''sS6{;8(ۘe^BzA[ǐ,} R۔.Ά4*P4j !PDe=n\j svYµ#S{CfnV2O%<.J$ca2O!5{N|N*fU]eB:Xx́=ٍq56[P"j ɳy0p4&לa]mq; u,G0Uj;u:=haVSՌV1bYGf'pZ/o8y %E3_xў^8:B@}~k(ri7-kk*XMCo4d孺&i❿/~ˌZ*O]%VdܢS/´w=3—[&zh9zQMEw6lUvx͉ކP,6u8Bރ9ێd̊IcMVeAjqr=v GvC=!i[ܚnKG^'[\1Q5"lX$u܈J(GZDtQ +yIE8Neꚹrnva%WJR p8$ iV?/9 WH]ռM&]Y"mЃ7tw h\l+hdk-'Ħl6:yi ,5wey%ƚSn2]h %yZ[$xy*НVT, LAͭ6xKS3Nj=W*chVCVpy99NAi-"t0.!*!nט$|8N#o鴉ﱯMvh5X$G'ȍE8'O٩zV^ SOep)Af9;+߅r46.K6b̅-ؽ<΄9]7tpj^Z^4<.kE8:Bb\1k$4F̉P:@u 8d$8D~WN(rBHElqJH;?"^y8 kjX&ږj!>"TDas҆p6Cl1wQތӭ~RN #݉l p%HMV?1IJW~9lK,ߑni6:yRnUv-%,KI>?,R7D"0x} |Go]mı'Dzي#ǎgZ8Һmiڸio0Uom A\̹UB:\$ܲZ6A D2c"f! {ld+խ4ֶ **kKwM"U7ck_U b"OP{!ZY[0vӘYҳ:Y;yf߱%`ࡨ?FADu"X DtW_]-YRh|OvX'6uX,z'Za5q}\Yx,<8$}Ia; gkpEJCbᚈP|ډr/[ *XG#u R 1fĨ5`Rrl7fmhAD/[~E>ޚ 9}S,zPWC U)/8z*c ԨYUlݨg7vƘb*kY*J}nMeBPf[ssԠ^ܬC;ڔ݅SLCaZ?ݳAQ(H#:S4uQR㣡sTMQm!c6%4~D 7*=b$tq?Iv,_SsK:3 u%ЪU]>5iP4LihYq;))G&<Y}tzZں'wEJаަa|Ck Q Gv+O% 5ԿCs5GעVГyĹ)q彷ڧ\n1IQh:󓴪jl:x3[2naL;T1~8'FAb÷#dKSNЏZ"f*uerv/ד pK dqCO^R $X0E( `@ A.j=<]I٫jf神:N?T%@\H5ulow6!F5<ԅoaWւiO/Mέ%eǎtXxgȥIX1{ijeTTpGQ966:3 m3LF~c<+_xZ&j9t}6+HP;, rH_5EqO %]6vՅ픟QR^PV 0RxGņ i=^,5^~!hS,9밪r:pt*Q d'RtV6޵cg(MEiG ||UZwT#h p:#$k/ !̫7V<W+')(ZϠ-=IY>ޯ <,ڒ tK.P}"_xd{4Zy0'ɤ-=VwB5FPꍻ7<;&/\ ٫lt,j*D`$ûq' D+l~#H&Z%pU+ P$NR$"~vtI9&O^X;tEGJXE9rO.Mh|䳯r?/?~&I|:_ }3+J(?W?v wWOr_5"7S ְ0\yr)KDςR(VWZJ ObZDv L wͭʢoo)u_~!+*B Y .u-O{ kaK8u,ouz; 五/z*_N]3e||9^eG:@2lgQ?U('rVJVedpH{-*I*?=͚ sr4V 3/ 1Dzn~qG'OrG9کĩ.E< 6A[K%YXV2w$= օ"Az\$R=#范 7W(9S߹?=MR)Vg a)Ϭ4zQmI3Yd;g8-E?IeG'g's3 \c9S\?.ҋԋ( Ǖ"~X8\ ZHq{rEӡlKJ' s`Dl<6|#M&xaJndrBG ݅,59_98#\ n;ɶc'8>u La^g1k~f]J' K,g'*5qq4&_'" }QՎ 8 Ʀ΍`o?(f. YM Pt6İGq6T< wsWc5Lf\ Q_ H3>g8vB" =MS?_P(ڒ$7 rVz;ȵ !q'.Uha|Tna~8G#I~LuQ;2kT oyvmy>ϋ{G#\!v:QWۣ\< FI)wsFR! {Uf_+P<MKY^<*sa/סM7Zzo{qp;ObD :3r#%X9VͥUsi\Zo9si\Zur.KҪYҪfYG7M}_eܦVՖrmN㵃s6Geږ5m6'ľ)79OA %iCv{tdNjV.jSQAnBZ؋Η#ϽY a5| 1+O5ǶppWS¿3RC{ة\=D@:lq5y Lxk<׸ЀdjakmS +G>cn7rS[g*v qkA~3{/mbT=G\pAS:Al9wCrAz(O&,y/&@<3⩲bɰ芧4ljj{ ;s]d!J AJ Ae>H 9iU3j Rߨ4 WhW 9Veb 7v?[b vfSF_=7$G\~!Av>q強!.XP1!.g_a73oM <~vƜ@*'PIr'TNruN$lpᏹ)Æ.ry> L`fKb#3G 2g y1o0tNNte9O RB&07?9'V9ʉes,]&?nr&P/*'P9luK9 TN.@yNr&P  TNru!s^Nr%PwUNr$PWg*'PK6o}Nr$P3w|@ TyrRT]Nz񗓪T]N{*'U9|R5?H^SNrR$Ux&osNr"P}?;DC~:0 zI;U[LNMN\ΩwsɆT])*'PK>Zn@*'PGo9Lq&.X̷XRqρZ/ k5|޺gJ0g-XqdRH&|d0 )6\&+ks3rFZWE]eQyN|1B<=7o[_pT1ޱ/ͫVGm-)K1?7`9#Zu!bRLŖT-&^/̸ADrxݼnba@`˛WvF \U/rGFd4zZFOہ- 3B^Ё4!@@XB΍f_ɨ:·#oFV_h;_;gBՀH@x_)/1|G-#G2Fo(M-i`Ž ~ #wsǡsX!ڔy( [¸tk݄aʼM%xx|eߦ&650-1"B,w_o׎FR JRb\v/Փ>Mx'>ҫmS fOޛ̥M#//Eaby=}٪#/ o?%on=#@ORH*֨'<%w"'Yxun$M#?_7{RDU&,=e;qW f;Q ~?ߎ 8{Z[3=#_by趣JbWXRL2W/=:0{.!c Ť}PL ZIlXųI c" ?"r s0i Xس5;R!5n*H4ǁ_n79Fܗw AA%,Szq]#ɈHL)~/!Xtb/)̿y!*, &vMũ_paҒ+>f/" À1.aqSEJڄ)*18oPX:ycl0 @Vj7SJx:a)a;QHΙG<8puƏ_Q`{D0^aS0/=W&_)IF bҳ)I-QSBhqg Ɂ~ KO E\?~6bxWkuɹƞkP 姄^p߂> cfk#썫(˻;KuOJQ z'}G>7vybչ \^k չ]՟M]<|cn'.Oߞ剽˥剾fzע3>I $LǦBa*?LB-~"+B)8&4 ;KeTFCAr/'b@"D(+r\Ҽ׬P(_؀_q1C;iL_~֛MH2yq1t@{+WԠ "dr+SUBm*hcU/pux w&Bg!lLȟUY)#ʡ Fۄٌ٫ǵRXu-z}'C4TB}!CNmB o ynДAos^䱗ì`? _x ya蟹Jq {Q?,χ׮DrUV5,,̸!iġ8,+qfa%ܱ"3bK!r%n%߳i罢cz7ф{XŸt ee$$;kR'>f[7μт?nNm՛ Ǎ5=@='XL3lQS/ZA( S/?'޿?n,͆Y cgJ׬ܯ[yJ?+7\Ksr.Q%ۑs&-ߞKtEZ9ʻ.Q 9y7u3Z*2LŸMG'5 y- Nr.6{|1ʬ|+$+@2 Kscp3']S\&)-kyD䋟ç Eީ cwSX_x΂X(ӑ$74ѝ=z# 1`Ǟp y5 C1~w[r蹿JiE 8fQ.V_=S,5& =e_)m^^,MN 6<6:P"KDu^pHy/dK$ȟJ ?2a̦eb2?8|p++"9paaK?<_D?,R@J&Dh?iYĪC*RU?i,ElPDO81ظX5nb8WWwm9H4HUmXXnPw%lH<HCP_L"u^<]$v^ɂ_$LK0[$ %{CUؙ\3)2.Njb$E6@vP/}h).SA>9xK\dT+>x[|tQ1I渻dLssFV՘ܵdzeB*h֨V7Ъ6'R&A>dYnu]EL:BϵPu ԺPS0H`»j#ֈ/1ɩ ,\7%R8-5M|[::7RK QT=}YUj ҺBEi"iiݎ4mL7um*q6^rф .*qf!vvFnY-Z.ڐiB.YlJʦ|4VE{!&}0iRktsu{+*}p\ Hn6W 2u))G捭-mJZG\D/(EDA񕻕ͶŞJi( J HD4"j"TCdݑd8ܭV|dV$M"_]).ß@L)c D"#r0ek5Q\Z' ^S'*S!z^\o-y^A>½k53C$A8YT/T3.jQٌZm\вy3Vdq\p "-BJhB'a rr4e˂S5Ihn PTQ)0% ;#1cY3 ]&=1=e6)r&exd=Xbm`CAwz6O%3ǖHsJH )`z@Ce8qH-%ѽ;#Ɂ)F˔[ @&&\U"Am9{2EWV;+B5ah$#j|ͣV@uXNP²Mo#$ Ā}DF<e7[xkl {PV-Ng1"lAqu<`iP=9/RBE|73C*".rg!:qe!<T55ZnkvF $;PL[=c3Xc3٘ v(l*Vl67ƊEG|X ZUkR$<ڵI8{i,dUQOR^,~97z5@OHP a;c`#DdH؈)ψJR^BAg jui*Zj%a[Ucףa #{""gKē)n\θ*b,_%&xj$^[2[w|88GW4:I Ve w$ ~, '[RO' ʯG䌁#LHLWbT>dq\ b;OKrx$(3Lț+*x5]qsKgF g͖Ip&)NCJz8Vw#V{-tvOw9'IF-)b/Y;쉻VyT%tl8)Ζhήe~*0lQpjtTk@vvull]d npͶ-m]:t]-z_4&NH7W(΃jJ"$&లB>njϜ 3?gj)s8Nx Ro) 0Uu`Y'Ep2'! Zz֡5n!m` p?'O? r< ng+ LìmY m#]SeTvCК]ߥgd~| M +dRj1ӥ=I-X43ҲNmkb joϠ "F0O:wrRVKAn!{J:RNH׎ӮN']LG :ZVEˎ֬TsѶi ܱK*mj"Psf]:wel?WsHIb1=$;DѐxYq";= ;j?>JGgsڝvXiT&YՒޘSô22xWXL"&ڿGb@B1biLtH) 6bJn& 2yyRk]f0q?@GN͏dD+u ѹjʬa=v8Xh~xe GB*"/Tqwj4@i9efeM7~mp,-RS^PkzbH8$~Y hQ fA ́+Oeb ~Rm_"jvȪtPO"dANMB9 `}\ݻ-]d`iѺBKq8ԿuvDr|j@9N4G݁ M5nbTaR X~ɉh?LJCxefnl KL^%A3{GiHU΅U#$(2ze@C 1&vؕqKSskI~ uY#m <)=ـ/rZt52K*x ?tZ{vNYyYΌDhI#?1V<- $vd8 똹G6\JqV4_ KCDn{ug(Q+~qi,YSҗ|h;$E0:²I(OEתW\Iϰʘ%- 2KQ5g$ń˓⌔L8+X%bt+$OWǔ#%tSԝzY9X'c zq>2M* IGBk:p$NjyOג>ޤA_?(.zՏIP6 t7V.J20*‡""\guT/e#X v1(2U\RL[nW4.N.vy]g "v12A\hL)SXs9ٳiyME3..;Ҟ0ek`)bk\tcAG׎1(5ZM.O]5*<2AUHI՛iW!BêH %%vegCKږrZ^Єw%.I+w+xo%V9Ʌ vɆ\jR~z ۛ6ok(-Knˊju"EFxle:5ZVۜ"@iq$Q"a S k|2wz~rsǛ.h,VMdi2ŬYmR><ۄys7>ŏ3ʚ ǘ^7ζ.*tGpN%$/)'Ȕ譝hL$m@|p=aWo ̗N]?ׯ]e<..h"1c҇S;]qQV3 Tm$O`b9DB>d@T#t良(Qt&,`8{qv3-nˀBթ+F]@=H rLA q7gcQ*,ʡ} !_;I l$H?1N&,0@퐱u;]"=E͹QM_>$zn#zۃlcI.4\ &ǫ0 &m HiyI?9wg RTtӷ%l.vq^zkaL懚7J}>ڽA*Ku'Jxb\rL ,TUVJ%M50͇YiaG_@b009Xj#ёTT(.H&S;Eg*j'NI" 3Aqjd2 ( #Iюk[mlmA$%~9"HhR78ײ,튩~Fȟφ:*] RG!2.ch)W](;z8{Np9vnV0ۗ84W/IJT2!]  8,M09diڕ%Y&CF5ՈU.vwF$ʑ ]V~0vxolcQjej4Ĩ7 Rs 0%90 'Dݽsۖ1sfȧq[:hG,HoF)jHǑCt6}"bo'XEn,$pF(PPb]%}ij/"X) d  OJ83&I_r$2xQuidT|$Y9}bV}nT47R1TkhEzM =އ𯎊S ސ]<O[{I}_:%LiRl)GlpPE,ꂘeinm5Ʈ,~x('Z[ݷ,cw1{ǵqFMr47ƃUX,IebY!ata$1Nȴšb!n?,Zh$}Y\'c ֚-q22>gOMKOM@NO2~"kMxs(3E Oy͆u1VhrfTް Jsn%kHBHq騦Yqv'q4FGi~Hm>ytDVcy* y\<A%H `STΟec7qRo{Y!z-q| xAfkm:n bI?qOLmr g`tS0a'b; /H?5L ݧ?a9rB9ƻ(h  .t?Gq{/]i(AoF'}k zymDjI;l5jRrsעG`(:5WnZKs^۠iX &7t | tB;<a<&Aԟl-J;,Zkd858~~}!O3S^rao!(˺P$IIy#pJJvԢr}ہhZ7#)n1r`հ A4H:=Lx(+DY߄-ÉKpr%E]1.F\4C1I?8=r*S·qtb d[OFɶi3r׾NM^+V *e$%su Pn6uf눂J*^{ݣu"2z]RPC) '\VR#[L(jTw)R:pYR(ǒfe5)ض9#Yw۾al rͨ[Bt4{Q,梻='m`-qLgh'g h!( [e+P Q d@Ԋ@EXH:l통s濋P}U}nOfM}DB7+)F{(2F 0 r[^CxJ 6bFRשrBSLX l r6GlnBR[jf*E#~oP}7 @ !~2(YUV`~^BDd-=h(<>Bpd:[vC^dBJʳ#ŗ~(T::BBA<.0@%∧y5|Qϣ/@v?-E%ۈpB7  ۇ{`CpK(_B2I*2`uW̒ۮ&\L9ږ'i]V^V$?0CY^i<-v/Gi@}nAT C ֋ iDOW(遂Ak.<Bn`]AX8V`*VPGe]qp(-RQtmME޷;‘w($A6voxg-;;l ;YH8m^JmZ:jlGu!7<%cn\Hm_B'ĉ۟,~B'A$~B: Bȅ 97J6 wteN_P˼*uKpʚ8rA'@]2f֙1ą'ąEe\nAH"֞ZU/FOdXzO ~&sz"dA2Zh\6ڿFu~;K)SgB(}BuKHR&>^E )Qv#`Oѳi-=1"Z׵ut2<$T,n6I6MOu`t-<|}wAa`yV;mU]xădOlWQpe#RSxgab߭|7PHBG؇у~~`~l'GvYNk]tbW#f~>L'-Bt?Xѣ~3- fo~xS/,l޷ZO !nqJgWvw%CXEC}XD=JKN`/{>lw 9o; :r/ ~t ľK?=ͭCzѯ x~Βn4q9褯G?ۓхHGf+,ɩc&ت4ZQPKw~B\ rÙ(\m=o1jSj8Kg n sKޅdثaa 9 MP"l!x)_Z p>CLӖ2tp33#!s`S,@A0 Bǔ$~42~Xnb鑒\3sgJ$Oi0y00}+latdq NbJflpask5 f=r1Օ o-Y9-0^2<]qů9uEeFVî 'ԯgp_+&C.x^)p9A9ne}4Vfprs+[V gp;vRcc<ݶ{MW|IrCȈƖ:QG^f~𚭜W>!f8 %HxUޗ¨יoyzs2N'\~k Q 7BXWH y ffҫ)7\{znۗq?0=2|vux_'f?b'~70l?ryAVo`~$&`M@o}jdorBAq"iӰ6 3CY+֩tO1L6 Ʋ}zNn%d»FƔ6+WOB3OK}yVGFC<>7{t@@u,^gȂr6 ϳH!t:+qS..ӅOB l-%X; rrJBt,/*Y0?;ش.sJ(Ukh79ݨജ=-Qp YakDd.pS!. :Gptj}rӹ4 p.s .E=)ڒ \$Qgr#eôqlc34+ȒMBUd,ʲɘX5N"ԛ5Z9JcلԌD iW*NL%0d !Tۆ΄EVcItQQ5eGSV{[A Єga]aܤJӦJMԶ`rגTjSqQ'(pD,*n`K;KJIDɨNJYL1тkBװ7 X:8JO L$tLVc5zԘM -}DUMA'uiNlpmg:s}qmԽ/ssOZ{vJb+uԵP;|^}pgr1\qGQY aN tj0cKޱqv8".~K2SK325mRZK\Epa(|/grGdc-K*2B<#[QgO+l"ى⎆íZRb$l)'QS-×@D@%d(l{0SSxJ @+rUx|dYQQ"bu]nʹƲT@bLq, NR_Y('-fByI_n_}Ô?"P\QqP(P[VRrc`&o_ xvuDA{כBC.Ut 1!Պ|k 6lH-(X4g3A]۔E6܅E"p?V %ھ)Zk<0OLs5ˬ x 0<*0]t"4F L8MR̭{0h <汏ΐRV(g7ִ֭]'lMƹ]9T07*y mSCQ57eߡPpBȨbV*elαYqMS6_Q@4Tm5\]^|w~rsW/BAx DY~~ vHZ9}H{Uc5\ՏQ/'AiCгXusq6Wo YjSe\+Ud1N^pP/We-O!WЅ ,}橠Iyx۶L1jK#iyqO^_'j\^`E#mJuO )Q"2^ua zv=x%ljGسs8"HG2{:-V2,R~1Qrsغ`a[L(J ǏAi*oݻSi @ s{K8UN=gЛ4ص9C-0ϊ 3kHſVg#]޷- A⮿Gqv?#l ;/ðk lV=j[|-2 FdŃ |Rq{i! 7ذy/o+!v:>13zT!2[ZU^.NJ`#Ko~.} +ߟCidf`c \=v}j'<`H:  A* q醙 ӶJTU3M}a v~P6+>QZƼTl -4Qe{xA (7vP [uITm:np\f ":QjGS3B6M&RkqH"^ (jG4Ć5EIF=ՎZV+BF;#=ǰqdw8qzGc'u Pv@wu ۆ=X A 4Df#h CB36/'pSo2KXqWR=+(h]bA(9|ީw7wL-Jbwzk_6zwlk-Q)Έ4| {1-jqD- n7w:HGf}#I[EAywԬYH{1)О`v)JhOђkjU1j*t g25*84 Y*FyC1SvqF.Qײ}d+7V$E,qPt2cx#~c{FxM| 2Bū.Ax^Hp5X|cUSЙ`D!vIn2c۝nttlzkY‚i*7c)*']xϰv%K6IÜ<(KLW['it1> }$DY!7^8RN nfӍG9Chs}rs<>x˛FS)mOds5ǗJCN>4eO5M=|yӷÿ%u47Z^< &gcjas@B<8PUh ^2D}74K+\I6^)h& 1n_FljH~>PŰ-.5; ]n/N;7/&r0JZDPёf*q7FyDLիJ7{^0uhAUXuMY>mࢺ aةqŰIDv̭E't4gu88 ذZ#6^M0dٵ |.J2j%x!_gztI82C҅%_,r`DJw0{N1/\l[x;ardB$ƨw"&rx;ardB8Ĩ~ԠB+ĂԢͬΒ)&x;ardBWPjNjbq!s~AeQfzFԠB+ĂԢͬΒ5n}x;hrdB8g*trlx;hrdBg"l,x;hrdBg"glCx;hrdBg"bxYmSH|]d9,[6%lP~ؚXhgF'~3-^0lK==O=3ibnba"xf`"yĝ` ~LO+% e[7'7W ߻d)31+WZl~}=:xyp]3"w.BףѱEy\[*B1^5J|9Ssf-2i9kn~s| SwT$Bq\~k*|yס9Yݬ T)KG 3X{cT+)DB578H|! gM9J F u)Onr"[9Ƣ*CF mx ;dbZioTO_J{D\stp{5'gaU?UxUo:(⵸ [w?vBD/ V$k|8YqڦxmjnC3gZ?CMĴPKٌcVm:ITCapS)4~z}uq{Ǜo^:fv B)B-l^֕NgD^^T[ գr{Kl ʹA3zސ&=iv]`ܺaTE"ZJYx"Y=k_+˲'OІ ,^DPJ<_M[`&ܦb4U8_Gz[5. <Ѐ &%*RDi̧#S֔0fzo09]]ljس3"<0RLyMt?%_ 6.Xb6?>hcPJ[.TZq\?^N>`>Ivsa_|.L|x3Znu9Ҷn1|+u8U)"` z3t)HnuDzQQ.qoD WrNc߈4=])3zo1-bt:kiB\ʻKFf:>3zT14[kj[U'z6齉 ZzQ F I4?]fVbԦ/# +/b Qe@{:y`od,=f&Lӎ+Qr\*q@4.~o%U@pvb׶Ya "-rf ՏiĦQ!P0Ho ;FU6kiNNT FD))!$؈~El9$wB-҇}5s`CG@fbÚ ݤ#ji uK%!|bg?ޞaX8;rb ӣ(]u I*mBndL^"WS { (2glV' ?Gd䮤zZQPCP344USo福l̙0[6Ƃ "l(3mC1V co8PJף59Z3Ui0v:Gx+L6]\h"R֏t$mQXb:eMo߉Rv;g;#Ť@{nئ(*=9" eTJЋ^Z t? 8Ө`d)u3 Nqamlv##<]FF$ )vW^TT E'3?7gWǾL!#T$ɱH^c7V5R -<b$!36xJKǦ>Y(,r=qRچK ,^qgq GYb *HqEC&b" <^a+s{yJ*)Hog=˞o|]ʉ.RE0LMwۣ4*)iԺJi{"[֜뤮U6?(=R&rrG~E$ {ވNoȝ|7?(,}e/ĪLq0pq$?k#PsS+(ZL: EсDGob"3~]ZJ`nJiI 0Qؔյ06EaCҕ.E]mEdwFݱ* t8 _㿘p8|EiXlۉߡ?#Tn*4:>9W͕0nw`jт|ڲyyWðUqa;쮷[%%뷗O:h/pV,pruNcx6qWÐJdׂ;ml(Qi˨AT"|n% I|>XՀ  ݅f%" cp ?9udx`rdGԠB+ĂԢͼΒ vx`rdBs~AeQfzFԠB+ĂԢͼΒF98xȸqBtW@<% s$Mr P,xȸq\{. v8);r_0+[ +x{iB%nLRfFv 'Wx{i›؏]ʳ Ÿl_gд{BIZIA^fVyK1w!k坛Z_EQpZևv+_}/}3)NdT/GFx7u#0#^\FP05ڵ>$ƞ!I# x{i]ʳ Ÿl_gд{$bbx{iB%nLRfFv 'x{iB%nLRfFv '+x{i)Ds~sW=2wWtdOFey 4x33g/xa{º  agx:u& {g-xeC g@xze7 gSxúe Lkfx d>&k}xzy.|L2gxúy:F (g'xƼ k:xzid'FgQxô 6 fdxq fvxúq Vfx:q$wexÚ5! &gqxôi # zxSVO/J,-HMLI-3Ҹ V4x33]xC7iEߒђ>100644 tftpd.cIϷˇNͨVu,zűߢLR  x;vmgfi5~ehf &)F t:x;vmHo~zӗX9a#̑ xYmsH ݊c$8{ˉxI6Ky4vNv岅f鞡G49mX>In4M>qd}{kˍ=txv/_>ogO2̢ͣ81a<~<>j/yĿeTqzqTc#F3Eu,hJ>CF%-M iON)%*Uɍ YO-RE~HiH\%o&~$KyZ[?Qh1ySuGDQeʣ8n|Diѭ^D)saʎitr#;is22Wgq3OejY6uP7pJGtx_,x$Wvz (х9Ak ;J|'H׎1bѾ!s2?ekzrlszH4fQK<!q,,q0 wNb_2 OynT0``5:Uɵ R#Xmlb})_Bg0Z/Kmm@"R5E(Se){4ƒ~3Di\#\` WPk)MMИfҰ>XA}fG,Z4Xѐڽ3{}:CĬڽdt1C~wѵȶ5{#GԵ#lk,ݧ9>(tnz,tθxp 7vmu {L{E÷nwNp0ԂӮ90X۳~kЮ[ձɂ)ǚa;9&,2W $z pd#gCfCkXuCxh dwaϧ-{#k0_~ʌ?3P 3qr'6IG[ SZ}1:#V `,7]^XgFUE!obX`A7XHޚsjYy0Mϙpyku> Y5bÌ[q8;sJ]7OvVΥM0R獗G;-$Y+3F4=OfV;?%X$n?R?F(ǫ;3m0DͰB8e|| m&3E*` +BC >E,iNXh /`"Inm3'62dDWpխ@Yhȋ = zF4JNY>$LXۙӂO؊T@iHgʫ> uB.Sܨy/ V11̢A3ǃOoDZrUE>r͂uF(Jf`tVJiÏ,؟{7A YzOE[ $] 9t%b%;ddo!ޛߡmiF'UM"n3&JlTo~,ƅmHIdO)|d Jk ۜk]7[dR E/b@&L2Zۀ?͜=Ǻn=/PZAM}qn$'Toj"GTC]5Y-dcPͮYdgIݗ (g7EIeU:ti`jg>J:(E=VgRYf* \~VbIƵ98fƹݵhpxϋ.b)Lؽ eTȑ+ i-2_ț5<ݪqV!SF1;ɒ 77ٌ2ʆh,vC+Wey&{֏~̇dXU8n`N?5iʋ;~/~PFd4T/:j1>*=2Ddŋ|ahݸ;E(ޅ Hu4< qj756;78@/t7[C' ?"RƝ1>lC*lW"0U|3&XMp__Vrw!xupVwA{SڰSnU90|vQlr_z.w@kˎ_3!cNJrF̔>rKhV_:A3.s 2Pè&wRa8c kPch8Ȣo'xd`z%.T\މ,A+4 #@kBHe`i,H:7%MnTsBV%K090Muc'U27xk8Ǘ:l[ ?OԻYI$@(w\~ Px 1d?/ S.e +V0Fڽr(ksS0$t󿏵@/U˺/{f[RToG zIV θ('͍'͘d҃_։YOƟUʣ)a#[:k`^u]U?&xY@_K$@7 JA3eRœu B;*xuRn0E?硉hMu"Р]٢liӴ1Kv-%)ɑT!w~ӗZяߧ_pamDK.\YF'0t! Z{bfQd|#S"J;wrJ\8E&qvօQ N8ҞGL~Ua{IWF{ -Ԭk@LJYӫF:\DuH=8ޤƠGL_o^9Þ)-l(f %0]|6hĥ77o^}! Zp>L)!15M:v%%'5xR[HYAod%` "47El .2s&'0c Eo[,F,8e5C̩G'*[z{G[Y*~ya P?PBg0ghx{uy!E|Ŵx}Ok0 ѧ܋]&u`vc;˫Yf8cklm$prK*"jM ش"L0Ҧ{I*k~6]y(vRLMm ,}]+y Ye١7 Q-g9+YK]=r3ן >[ OK̃&Tk! =ɾY$j%s~\D_,KS"EW>;BH_jG8w[җx)J‡UY=opuN˰{V"Fj0ĉб x\k[H,Y 601tY_ɓx,cMKt1 dgr·3.oUWcI99jAm ;vxtx|o6s㔵#7cg;n85~je^8haxf=4eS?Ch3S[7HNX 7wKMӞy0<{lƈRb7q;*8I{I{7Y1yK,v\zsvT؝NY0KHe^cC:Stf2' J k{ :ON8YrR/Qo96 ! s 6zH&W &uf1ʈ\f&$"u3`W)(C'AT>#-ucϞ%IaHX_-pl^Sq/'f`:v429XDv{jl$`hf?,vߺHG\RX3nNݹ; #Xò#+č3聥`b8:GBBj+|'fEZrJ E0uXH l +&<%P,F /%P\X} >4z-W{uN>BcZΠSv=d8_ja66!F#kvkcU:@ V¬N=<: uֶ.tt+8Zɺgk^Ɖն3k`jVsnհw5\שoe0ĬvNTXI XlGZ㐖fR)X̋`}KM ) !}? `NaN(n&N; RX#D9S;f; ٰCb{[Sym|.9جCg%d&qfo{5fJd+=ܬ3J1 |M\8"ڹ&:l7k J?y,A#y3ưK; x넂<{H!zY< Ǯ6}V~|Q TMl栬MO7=:C*p 5AS` .FV ]{ r6ƌa>.V@Idf=,* a172WjwBOzBl{?Nh{dxnu "Ddn2lC/do?Ju!{[Բ?LfmR/=KE)d?&N۬A{P'~w ME';::O٨noߺR;W-.Q9h p/uأ4MR={6P)2b^}z)%\:_eG0fX=@c K+ÕK.A v6",qM^K9};u~zyp-T"!3@ĻݏF`FF3y \WBE8J"Z'Y=i@-ܬ6"zd|w3ߺ,KES,MYEՍ+fޚDVgY׌`fmk ;p؎Uv,Y;VR"/Lpy4l'o/.Z7+EEC^Hǿh 1lD'prYa5Z " Iܙ!̗[хSF`4c0@Dx(>~'vi҄+|,Q6$~Vr H5jÁvn븐=!eOսѸ&%ʾix{ NK]vz;䊜Ȣ RxY `iF ELf)npvάQ+ӤdSe5O+q5o>DRE-{&hoLU<6K:ysEcg)_a9~d*T CrwiY yi#=Ü̅Vr42=."W zW.%ݰgICڰ$q`ss+;`=/Y~E[}ϴ18.n}+~>f_:|y*ch\Q\,(h+YRRwlD6{|,LlH/P!ΒV$]\6N#,R{]@JSo r]i& YƎR9NCX n3)r-8r9bY:_K'Gl:2ݗQoY˪g8p)s:.:Q{FOS/Ӻ#,V͂ :NYf{Ùiayyq Y~qBn%G7vД̾¸8AK/Mlߛ=w-F9_hE#kPZV)AIaN={V)y+..N% 3…B `iHI塀)XA=zjKluϸ;<Ѓ>To)Z)'Jܦ+.߭q4z djZîX:E̩Xz:aClS R5d%| j"[[ %g6tA[QWtA!9x46 #t|V T9RR:ҴhAi|Y#23#?Dad|̆<)bx:<7xl 1Gwm:$jD3r|\LN˹-?,Γ[2ˉI¬FlcşF=4f/ܨj41B샆mPA7rdZ|ɵ4\DԚ̧'*D`M5`VRIʐ'qz\MGA撁~tT$ΪZ]? zKP{D.}HUUy.'{luE-X‡{hezՎZ-7r0q< 8 vJ+/M/ЖS@x\'ɣd+J :U\)" u]|ys5e*yhqכ7ܒ3=L=)3`tΎz FH~^.O,L,zw]D{!U"ڨ?n&m<22BlAPi24pq} d' ȳQDaL&)/c2ljBD KDilU\yD, eWHA%,'Z Oz5ǒ]R)~/%U l>G-CZOA)\;%\ x}yjW q1j*%4.%G:*,=IT(G#şGXƣ =G1?Mc;R]QR}!uttb g¡^bL|\㓺CN݅\ŎƎuq] < ]z#p9.aӡ iyE<\ YT1!TUhJH r-=k5wvˀ[a_R .AWЭQNt9@zraz@'a.ǹ]LEmxU™˖cf|#dRr'Aya/8xO8 m' _]0kIzۜ.|#ME)!GrM\pΪ57v)tFzEJɸ"ԛyĘ2cRI!.T}wYם0njrm %Fq¿^<4$YR+ZyR.B)5B?64ri:,^*GL?%yq: . Ωk~ ,Sjmy#(9-Q=৯eQ.Y';2?X3ڍUwn乤w ƻ,w=dqoeNJP4}Wm|Ķܖ ws֯zkT ,PEN x}(HsLΩ$X ǒ 5̑n.i+ n'ݭZ=?(Sνx'Kx:Ս0,A`^ ž_YUKOW.&[Ubpt*Hؒ,RE`mDd:^g{(N2m}eU t؄Ev%C{lF4Q/I"`ݑ@/4CBIubDL+.fON%k*"S.JZs^!>Q[k@'_o@Js<1j@ْ CVu' K7 +r=z6Bժͯk8RbН|܆!VF5?Քݦ,E2A;? #B+xkqًur3u  L ,L+s+D׊ZYO~h+6_uyi\ iE9y֛eȂv8$n|xxq2f5v05x33lx{vm;f &F0x!kL5lɬbٖ(@ax!͹K 2x(@n9xmRj0+&=&!6R-"m$ v%=z4// |W ށVr2N^H"a~{{S& $!@ن¯/ZU='/ CMMas) !!$eX$%K8ҷ6$U5 zKG^hRX`xwDMCla uP>eJv'!KT/JdrSEAPϙ%fQvL![i^֢iePsŸ`4,HSd9`vxX vFQ:HԂ1۸ؑB33;CR[_|V})7m$ A5be!7Or\Z=h&gs%TxC7AX|v?ت100644 tftpd.c` e"i*8ZI#Sx{ID71;5-3']sQϛEY.G҉*&VJ.<8V U0֧YFPEeiEz 37%/y{icU=}W"ͯ$RWc '{2*23^5x331g x;|iC$# lx[fv&)F.x!uBS:4)D5x331lBx[fv&)FZx!z-<ο~s1y+ x[ȶmgF&U x%ӕnx3;#s +:x[ȶmgFކ0;7+BOMڜdtn3;# _5x331e,x{X<s^knx[údveQxZCtTpw3aS9]7| *"100644 tftpd.cr-0 sw{g~I#b.)&5x336ҹx)Z+K-*c%033mhnjLCXM]%E Iy%xk]0 %B#zn-:l AkMO7sS*ۺl/k9#^y?cKnJ:fBW]=Zɇg_iz?A Oc*,Kuىo\=ȯ?%rZ]N>o[-VyӘgr0ަ7A;OJm͓A{-+oO}+oH~o:RglMNیP?~GM7>RELw] }Ʉ X[c'mc{BEUA7c D#S\A(b. ))<%2'&I)I&iɖ&&fi)Ff&&))fII͇ RRsJilod`n MMG?=GXd2Ӂᐔ_\X `]CH7{5E6&4^׼*" hL <@v 98W2Hr34[ʶpVM% __Sq>_ۗtĵTiuM\2;a'µf^tvfH4g2mWn W~|eOKp7Tprw-!l6Ő9ޜkCW?[}喏ٷol}ÓSruB'Wt՝LkՇ]'޺I_c_>,9Cs,fj~c:mgYxOxˢ톏y>?kZo?gSS(~q.KK[ =kfkW. em#E-ȱ>X&kQ;ecV_gYxE I+d~+ϴQP"kfԆuқLyXț;&VqY߷}ZRq$S E,笿 Vk89/DɆmWlgԨ?uڗ͞٥gw4vF5$&]`~D`F33=>kgc:ir##彙r2˱ ^j4G\z]KZb4+U+E{&h3|hyS:r++V$lCc ΀e?A,LrkmfOg`=kca(aA3 zzg2ܱ}\w);1ۤn9N^ݫl$pE3m ZϹzq-5*1ˣʼnӹJ_eaˢ9a8Cŗzgp&8d鮬GCNLX5k M-8MjcwÝ:l^a[5w)0h6H,̩`2ú!{9LZ?Lӣ+NAKg@i xfh{YWRɸ4h|48XZԐު=/DZ+*@Ke<2h{+me=4Dr[z6ս*kso>u]cgQZR"b%V3WVb7/S4k$5Om1$ԗ`Zss:'[Yy+Mre ^lVx꓉>,}K)Jɳz) a?5Sݷ>DNwkSyl Đfu<`eJªpeo,Mc4t&o (\f[W58z{tTxt /gi\Uٲ {=+Ҽa+ʀJ?۟PjL(prܕބ+?+Uܤ֓@t oQ!;bjܻg#@h/~z#wnh>P83O=-`b]F{}[YUo%a1"d0S\0)LfBØ@!H S|Q)b0$DH &2*"1{@$"޲qPV^84I:HDL+10d Y$!wY&~ϙCYB t*śi27zz8m$j cQ$*Cb ç`J)b-6Ù ".x''|ct& D8 ĉNN"b}"[b7>Ƽ꘣ Z$sQ at U\$?tM2'顶;㠪="tVB-uO&'0F.ZUVQ7W9N ]͕7b_8pͧY{ݶW 48ggly:uڹҎ=څ<]C_4yf׍9^"MsBDs_nUFZZ\=gh7]| SX(>i縂uKQ'2$WZ>z?>_9 GNNҋLEBoyi[? UgNyx\~2=wp2P+x3bX6vP?ҩ d[0B0pEGs? 3I,0 ,0X$0H3Â9MP04iA0 iqH8 C% &η?$ !%),H H?V(T?x-ZY{8T[S(D139] :3gLfLsAJR$"q ɐuUEK)$.+2.sL{g޵_a# 8fc~Fc$(!GڱAx|kd_~?)$}P!lhDm _hGP8EX+A\#jc"2V5cްQweȉ*5jk].kp5 S!Te`ߍM3!2C41*G|nYX쉜xAu^FQM#b4iWDOt}Y;Wb*ǙLj&2v&nsw9&Smgq]\],aݶ{fw?Igg8ੇ^sۦNa{NY3t-lDې 545L,hW~ x@}st&:cAyo7,_lX&[,Y"0q?rCK̜Ta?2% aIQXk 28&ʊ R OmU%jĄ=k5BZvEUޒ!0c1{5(u.\͍o“Ut M>Oz㖦dʣk.LE!<]Wx]w ~mgFxO< wXzV͡ zTiVɣfelkj5d8R#I4/9/k~SQCsI~s7`/T2'vjU朁#y~/}L|]dB=g8Epzf 2w{K&/8{Ox|ʋ碈%/vQ[f&ݺmQftpg۶* [{cv=|W076~퉉-**m?0V{'yO|; $kFm$e'^`'1o ,:}gsϵRP+K,H7xS[}+ S]7F}.`u\J ^Z7u{fTg{&Tdo+_QK-9c iҳ0jB`30.͐飋U-Y'Riy}fڍuj=791N{vIAn_!G6ѰyZI7vZk'\'F3q\i,ΡL/ʼnβ  Gp?4FQ|c,Ɛ; 1Rg!6*|6<@Hc0zpY6T6xC'?' ((0AWyQ?QoHYҕ,"͸}"2_'a)ڐo݊0 yZ| { %7p8 (2*NK]\ /q\XzR}C")23d+Y ]rR ƖqfINl R#8P< -6/A|$aI^,LF2ʓ$_Fb!'G .*c@ɴϩB ˒,|ʏgrPyAz_)!+ <+sSR@P@~2 &(B_ԽxmZY{XL?ZZ!+[̙93SB*P̜957gHe~ )P"ѶDJmJĮbj[dvr=̴=>xv>3|/}Hx0JH@uA:[$)d(d* dFI!0fnHR!.P!6Ձ$,6A{*)* L{q$iEa9@6~' A*Yry`|>!, q m\-qpׂ.zb?-Cj A kv/jm~mK1+tޮ#KKIXKX;&-|kk f#B~̢M27'gVY$x:Vo6Ɣ1]whvΌ;xho2s3koXt|lլ)S٠|띗}TFN 7͗GrDՏOѝHnTx`eDZH4B <%kѳ[2.j?rj#m=gߧ 7\Y?]4D,X_~bzl->%LbQi\I|NVmbR}N40+^rT}M"a+'-54sM{ CZ6ޮd߃;&ͫy,{@tS>Xl:]b`M |VqGN}uK,ʣ)9օwlczO7.]"|=9u=m=!?9\k9LְN`"ز5ԫ#g_"y k"Y#b\=p4v DE}F{|͏{3S/"΢QK~ ?SG<;v6lt?6egGt:U# k ez Wy5ΰbM,4"!ZSbzgIܷ`s[ޡbΚla}3t@J3,,Y~ɽ|oLB⍦G>/pU-/şy O02^Cp'=if .+_iI!s\4.ʞ_h𸁝AA_ǜ{qOu0le ^W޷M;ӭlk{&bX`T$W}@5GE!(iɐf\lvTH4qˋMT|ܜguͅGzP^>NQ&QAL@–F(LX$6DBu Q jU(0B"!W̔%(Wz*1EsOŪTUDҐgV}^n=9HKԓg+R\E9`qo;M^G PT'3WOFW Wc%@GHzHY"uWgHMrUB}W9H*jdѓt=[m" ’b(KR5>E*!D:'%'ILr|2316U~@13` 1X,F~i?nd<=ף^UYQ\ndʶU;b#ůgP{nC ٍlFlaGxvKOn5Z'y#,Bqxs/qSen=ʬ̵#W22;8w sOٛ( >,979htpwhXk1Ǥ;P*5IOX:W:X/f~r>J|oϞjjm\֜HAGƙoi~eaS{& \jݖR7,W?,Ia4gO^ 9pу7I6MIuW\[;g8~H^ڤӍէB 4@ 4@ W(.>bx/Z{TwyA**L2IH DB3Eah2y jP/(FT( JT(*.U" h{N9]p{3~s73H,^!24y)N>ʭI+ EZ{_6(fR#V "$bxD8` |WV&b)Se!&0KE0zYxeaL'M*DbH 䣅;IA XrD*$(8A".B j~E"xt*.K"+r,`)g"BTfj4z@ՔME8ZL1|RS _vBʦEI8%"YQlLb|^23BIyX)8uR'L^2h늂EbQ?6U=Շ?;edu|xDE(U*{E֮%?yoG̓0ه'I'z \ q9<0<n#fH_0qv&t,{UO_Pv(搛>vl5 d[hxH+,uqQXM~U '|m;외Q7'($7F#'OKâJweY6Nm11v…1`Im2_uFP]Wy8KTi_z *N49եΗ9ݱ6\^@w#]nD^iwNm+vG x%FKܑQ-1]Zdv٨ueLlFȍ7f k xVyMBȤvI/~ڥvVXd-Ƣ8uҳ|v%J:֘[rS)]mUH_A굒2F)9}GM'Agc^i#'O{pmhB06P|ąkwo-IKlC4paf0,8TdIlKm|GɌ1s~?jIyh^Aw'nd xul~wdωAWZ˚bIzY$lgtc.%io(Ip~m""+ܱR[?ZjZ{ XX#(fy 챂x!Z{8UBTRMRc߯MeRf}/D$)a~Rє 3(fJiRQ${[y:Agy~}- L2DG!a^DG)D,X#(T/L.@Q(@$E 8%?dk59L,N%OQ?/3$dy!<КƯcq$,Kh񰽋gb+ZnE@==\L L`vspwThD `Hg P B &""!7!e* =%7 DA48 f#ɑe6ܤ$`9$ Y•St `X|&UqyBĴdq9 br`NUHEe9B/+ j5iSRI|bn&6D$!qȏi芢L8t )@;C >16,wy ǂ| ('hd)^;i]0_rT{ B@<,Їp#ULc4<K%I  Ld  O&R`a!@"$U#}<>GT?-"Zt%؇cUO66\>3X #?aP:3/P8,LkO~bJv;uTMW;5.kX@5Βh{TYT1le4`JHNںiU~qL&t ȷqlh캵)~9^0gopdh+}Ra刔QTlgodլ9ƒʋ]Ixi)/J=ڒ=r:`:Md15siHnh'-!qyھ)sajk֕YL[d{~KYevn1p Gb{NfW ~c-b{]xOG` /myeQKQ)v°W,9(i=݉S$>U;ݵ&rKi҂/5 Xs&MX^jewl+!?>F6/-rÖ٨jOu4]~=n^<ɨxd=W58B"Y<Ι2$:;[̩l#?tH41U- $B|04vYN$,>^{S{9B>Ϥ5p!:̰otM`͕hZI.iK7K^97Lq{dS1pdݒ5;ƶ[.xP\olufZgu>ev}^ _IG\zՌflplX:ϑP{*ʒ(#u˞t?|xKL1^9wV׽(wH4~XXhqU)~tDV|^3/¶.C!->/£uK J{=a˶96랪+mB#]]Vݳe p)v`{;f>]h>}O+: {Zπ Z!=Qݘumo i4j7`P'`OQOLf7go4/o59laX/KCj7*VⷅP{~IidEg$Lm@Yw~==aWiN)ua(xՖMKuJ\0wCp~5jbrz䇔}B+ 5l\P$vꃏ5vOڪBuKmʪVھusIj}e a|˲)eNJ㡺 N0Ic,6id߼ђ9pP~aGo}O~od킾r][uJtzgMCi6 h8[&$c',J*J*'(zxKZX}coc$-4x7+B~nkzK-k6^D09u kWE)jÊO)Z܃$LZAO<;Dyo] ֭AMU>7ps[熙TwRq!ɪL$b3gӂS.󬉚 :,W{UϘ^ePz~>UPx7iΊT3Ρkf >) ΟYkJEn唖8DffvP);NI/ f)bn_ 1c<1_pIvU}-M:f4D2۶V디O7Ioiz/|P=|VF ; Ӣ-q_Z\)ӈWݓa߾rhTy]Si85YL޾p.z:)aș^5ϫ񮎛#'90~>-oWwz [4c";/'"P(Djc? K}WsS&!{TXCmuuV/|7y8fE/4:D8)swf<@21HtuS/q0ZbrAW.IUm7mQVt r>+qO1{5 ):wze[~XvGYy,a4ZӤ޻qC|S:sRړ0xOhp(@">&r,5 9|T\8\h$A]1R2|(FlU\z t+Ӂ˵:'; e=> U]{6U C ĪF+`\ 8R|ؠ{E)|pyo**6RFK""\4d8|!$D0#"U)c _N0CrGQS£AHhD);r` xhutA aDb.k@!avXEgjJ5̰pB*^TcP:cj1b( bdx;ZXyXSWP@EEA+(!/ U"Rᅼ`^EM€H*% ̴ uQ8DAeQQGdɄjIx ?g-w==ޗJā#eҨ$H&Qh"L#D*['Ч A1HleHXq)  A6"qt2N GFЉ6 T $:99 1VVZ޿ncLG#bDDH $ɀ2=xwOrPdklC",P?QiS~@@4,2K8eā/omAM ÃZ}ʁNV/ٳ[fƃsv.gQ_/uBX†]Y絖X?^a>M#UJ2KP*|_b_ ENI$leCi)M M`lFNxmo0S%lCa[ oO7n:ۮCJbsHzDY.M&rA^@~c3gWW;Z%&xMz%]zB-pt,KMpu8hz-'Mr B,妁=ndmr |D - *'QRB j1!Jr&wM43UB$de xɋB))#JCb~9СƵtl(]!YmhcXD¢VR&}3<:aXz-$z L1z ֢g]P.B6DL ᪈ \jQgGdE( }EO9"o.~N^\ޛWo=Ou>!ib&ǯfe'mO/7_?wUյX“y_{bW]?I`BE8 E%]}<ച ;[">xmO0S%h$cNJHh)tlt~jJ闲 mXd/ugs(xyV<˗ˬwM`[rQN!A˦ou:5 O'Z]o ԏmG< mGx PU {{C6-; fβӬƫ^|YvXUޏJYCS˫BN.7Y3=q36)X5̦7bKWOo|~?_%HRxT]o6}cE)Rh$]eQ%]4\,KDsh7+֭ @+v/n O{a=‹"t[p#BjwWfu]Kzy֕3z`jNBC8~LYA_7i]] n l_!aۯޢeW}9 x -4 Чݗ'9~jGm/?AݚVڹnE>ܘ1u2ZЛ1nB ,!Ev??Ѯ*C??#_?oEL}n~ԝ񛷗8;;ǰskzy4Il93Ij҃3oˇ+W(ݼ4!7L1[FwpeV(9"YM,9DA DsrVq, n7Q= ` <BkTP$ =pR8g.fb7zb–[X*CEw  53DiO*Rq92Plvf;w}9H+S#BhV'17LsS^Փyطa/"zAzөNQvj;ɤߊCW^2j,nzRxTks8_4<@ O-G4ĝf\c &~v-3pu=sZy _/qnJ2Ix9 ]@"&-nzW_'(m.nM hZݿ1w2CgZGeחM=ZK(km^M\f%8﫲\ӷUZkRb7]۪a sKY) ;k|&S|a_68jYsF rUoI[G=gD(p*WD}\2W,5 2ΤqLhrC[|=߮oW󯰬%۷08 Ber7,ֽS<+^ς݇3JR*^'X7v/븹|u,r@Ӯ>@C3MVmݞbGxmo:S媖cl ڪ&[oinB13iNӮ!!|kZ?- >͗,V|^<"'S?ヘu3xo~ .>Zݚ|n/y՜<8[nnVNwWۯ×;_Hq?^>GxS]o8|cF("eAe[v4%OKgET)j9w@KwH,AǢ\mnf[MQ89`m|m vtR`.:uݏz˝Aat o?k! Q^኷nOm%9wWZa p5+<_~-,ys:>5oC>「jl6MSxЮY7Yo0qg>dav25[ŝ7#8,|uTҝnU鴃.>Bvv8ڦ>Ҷ6~|ꃲhB8!EQiS)QJSCdD=ßMf$@L+S*eA2i㘦ODA'1IOJ1ITJjI!P)bpD1I5AaFD\8MbeƓ_;`1)e^HM1Qdh0312D ;uT bRyTQS̍Znl,KpB#44K9:en}vmI|nu;~?.X:?$G/DNE Y|4ݩBM5ǿnV)Jra_]7h]s[ӭ^dl]KxS]oH}_1>aڨ&N+u_Vq (UەZ^szzW^_/*|QjvW9A{1L0Cf?pf &x(vMV/Oo[Ph~AkN0G'Q{N\54x*{Ѷ~}謩,iLUC0\M1CmZ4SY7@W:Q9Fa&Ap<us(ޔQX\$*@AZX{B:w7Zhv[h:{c1f0= P?[rpP]|.b/|V|;cXj]̞on"4<: 9yxS=Wa?}̴XWtxT]s6}W؎6"m v t$!6"+iwv;2#{t=]y``&A4pZ*c\j2* 7ӔU Ԇ7U7e&>1IZ񗕮i0ڴBY^G.#u|7-uV閆4ՕgE#,c/,~p+E2.O‰DOz(X~_Чy+ű'kOzU0zNteK'ʷٽ[/Y}{2Y@i|A^qg+A)+&ԟ~:?Rq۔,QSyݍ,yҾZU){r_1=tgY<(:ݱUY]U,eΧoF/qG# eXJ.)#8(&شM&D:L -laEϒ^E/)Itn膉8p8(D`ˈ0k483EU`1bWwo J1yqMnt4XuxdqWKOEl5檧ҧ[W @4?W(e^n~Z-#-b1rצNxqƊ$6ਹ^K}: .n]y vm>'@r:oO+xF0#rK.zQp),\l3۹Qt[W$' Okv0%9GlNדhp|xJ'h4ɍ2as6t?'\XOd-.(é(+FAyv5'? 7;#Xht^Qkk{Շta%͕`rD4o})U>fVZ #GO(vxjaqB"B܈Ѝ V9C "t#L6&iQ7qB%n| gp,=_o??ek|7n{q~rֳʂ)o)0JZ+b Z"%'IgJJ%-{G{-s6b:0ɗn7ikѠ0jM f`N1anJ'lOcQEu8Q.Vȕe.y*ʜ]ݘ՟Xps*tD,8Xxn8E#MweGSY;N7!9U9JIIܧ/ \8"H}wMYdu1*bg~md5ϙ71aV`IoߴMۋr+s6eؖC#EەM=&Q_qB[(h亩%"6_e ukoc kv<>ָ/)j[`X7z5X dAlߪΟGF>yVǼI Vgb1q ܶhoOI oTSQ4p*+-9jT_]?}kWOM΋~s>6Sv ;3 U*3$ OS2cHB42 qeɁ?&Wr`gHT,%FذTLTƣX Ìg犾ti^1bǜ$S0LPK:T,MTFLJaEa$; ( RODHSrv4C@b D$## Gz<(cȤԉɌIA0CϵG᧞bFVwE~]L<.>WU>]W6Lt2O<.ԣjzzzlP彺yzŞc7w;ݽ`ϰQrKxmo<WbBU# MniWJ4 BCHiN{6iEB96cNg-?ldy.^d,n+)Bz8y;:mp(.Xw̪F_ǕyK^W'7UL! IY5…l*[Ùi;)йtnں-+ۇNuWx)ja.4cU%u 8k'ZC7L}I7I^:;L& dc3}b$ ֝u{(vhۺ=mcXWjdyp)Ɠ4 = wW1_[mk ODTV1b~!8ֱf ƔAU҅2&10M-8J0SLRN%EB7[!K~ p|bqRkc#qm|!F.e,ER(F"b DHsk Ea8aq%NT"$O 1 ):A \)^촪mo!k Vhj BEIU[fі( b58 soW/r w8C}|*W)Pbq%icܦ$R& <󏾾OOޅp !Bp#@XPe91JT"dQ*5U!ZEw1e'Ra!fLĖ{ [_ф#S:LR "FL:@1JaLṴ,dr{2 %J bKNf짜]׍Nv grpaHq 'I(Bieck{LLO6#+)IcxVu;=POEP,:o}/w7Kbp;\ 72zn]~*m~[rn?-eW_͇gӚ8̙]yT/U^bσit }ݿ aCY $,Պ1$Z2Ix*$044Oއrӟ3#R(H)*MB^ՇTb)X1ezZ}I\H`fRQz:$#G5 CSC%֜YEcY&$-'RW֔KS1YL}cIO*Ц<ibKT⇜] H)HRBqҌ仸Z4Y%eRgY?r[+ov?>z)BuPw:.f3_?>ןBEy/R7h4tAxxo;Ɂ@/fq^}8/8sWbGx]oHWe|IXnIVjyScpnn+HHys eYb2,EvZ)ίSUm0,X9۱+`7N˪ӓ}]([t]_ U3)릂_qU}, nӥ7\n:p]uvd7Iߺ;40n391MP>  KsAc)`Pgo^qhyYueE'tdNNأ`8F`bӏ>ך $$.4cN)KM!Z#'՗eTe8.<~F[4P&NHPPF)D`$ǬtTvøDjbǁ$q"^4Dɂ9gNHEb #QF %hAmDEs`qOaXbXS? vUП@,D8kˈD&Z|BQJW"Z0I ~>o'^4j$!lxP=dlWio܇tVn>;ʷܻ> ,i}ʴʷ+$i{{]l,i㕸{{t#z8?f8['=xun@8pXqm];LM93vL:פC9 q- <wbP%$44Osw!]F:Ie:h -@V*/L6qͷkLU>-ueͭ]u19 b!( @D܏I(9aGDwc:ġ"L-Tn) 3X:)Sdԧ)@͘ "*q>S8;V\;Nޛq$gr@'l1:RU$9EIV]2qVppX9H + #}C'>w;n)_ɋ0yf1wkgȞxmMN1@PvdvF# ?Vi#Й̌zj8gp<{k/yjǵWXOiLI۬Npn1NoeEjN$km 2DŽrTH)L<\7s} -քyGCF (((P\rJI0.#䱡N ǬDm/.@ FBD%:Dj4S(9n~-$Fs,O:n|aRLeƈ 3֭琴xeja2]^5.ȴ7"QOE/\}:lxmNA@X:?`qA4qY@љs5!,$|ѻ@{srccS3y K  D^9Vy+8I)l mTܽ+1{1)10Tu&xґ̂I$YF"%B8]JKK$ ՟4 !3&(C%q?̊Rl硛fO],vrNc}_`mwxmN1E m_h`1$($J;mߨa>$|DZwt&'9'wڵ6_ )}nyƝ9ZA"9Ci:U>)tV| &Ր+sm{LJlHF9KL)|% *gkhWo~7l^FqQ'1p1OPNCMO}Z].I]}DEgQ2AA2M<?YϸN?_iExuMN@@fnLHhLP3򧨨T| JxN[=\~_X#=qn1LEHX"6EB ce )c1*|&PkXF[f!cuzP)? V )!x@i0>`ǩЫ `Rܫw/>B8UI]=ɤzORj? tfRxuON@(iHd:LgIS MFϛ"()!aL8 {x o>ٝoE$&^Z㹖{HŔ Ĕ`[@2,Τ2/wbh|?B& F4 N[A@0 jM3h@N[}l]ҬLu9,nG'U.EU~D7"slLkɳ|; j=o_0xu;JQafBs0(#{Ghm%hcJ\;0_'%?[ǀE"+$EdBYD#,G)@R0Yy-pxA6V{ujpܱGl{CHZ $w_pKE$"``6Զq\iv7u3`qf1_lgu }zjO*t&*Na[&W`Vxm;NQF0 0D CD36>y@؋a.5 7";ζ-? s][cgA0kϤ@ R-2",\3Ra{_Sk7Hu&& @-4`"Ej+Nc˽bH{ NP`")&o||W/GI-gւ P>vHb "b. 7OT_lM8\"8$@[fDVoNwg/z^M"Kdz'IWnJa'$I?O_fWqUdR8NCc4kf#;6l _b8xm?NA 6pz̟7;3ź11k7\BO/ w<E@9tv_-i (I<ExY<рd4EM/++їv"2"H0P p#iΙE0|t*4+<:a;}'rHb_fʯo҃<ϊlAͻ-oaJ \T| HxxO⤡QV=@udaMU@'EZ=#\$4-(rd/AFܤ  qӜnxUAaY A]m:O .H= !6Q=D.48$MGC3a pѱgRE._ܤl/W~{ߘf'Z?7~ēxۦhT7eB/]OC)q{}yxzm*}/Zf4:m^K|j25+ CaPgHWTBM"DQE^7z׏ѷ/9 \ wrD0cHU̠A DT5$r"5|/Wox`Jφ޳SdH WY'"Ib òH&/2)L&DMI*, UHPJE-  A=Wf$#k ꒦J*1XDIdH?[5"Eў2dJd( _t~ ;h.8.Yye:mpx6r,VAX\ g. Sdoq Xz(6j۳;MY[1j+ynxj9eiEG4߸,U-SخdX7uo}hkgV'p RS]^i/-0\ wvڧt\h1)nEk\Z ٙmd;miB<8uq # ʷiNⱀ$Ziy(w:G)TQԛt%M/֖fvtx#Jn+B4-exNSY)޽ η`\ Ư"+wVekjDe^&u%DN86W.[paOѹ3_\p[:1KZxJ 1IN*9̄V9LwIinΧPy'ZݦYw$U]F ҆?Kz`&ݦ>Wɔ Tث{l}6 8LB*rϓ]["L-Kp[7oXxmo6SeY)e,v6/A7f[R()rGŭۚ ;Ewd:_\|V]MW|>|R41Z]f݋v7]kz ƨ5mojMRاoik>Z92jS:]Qv_Ohk,l`xw`*LjO2Je1e;4^%y/ݯˣ3PweZ]M0>؂-aTv֝ ʴ݆gZQjau@ wb@~:\m2> QP[G҄_gy* Sa⺡  jͻ3!EVTUmU__Vx1hwߠ\yZ+p;;umk/zύnڝ;߀6ݾWAf,+&Mu$ #+QVbmHIaHTʵ8O!̭Ġ(N({!kplWe01.5 F9t5I J%f2%\a! -T(cDW 4N33W"qldb,#nN_uYf8pf('̕q@E0&bY" DFTP%#E_ۛ/_rVL+AYN:m= #C_}Vpi;C9t4p~8V!;@ }f ]B nTcC7գsپ޺ivU>lpnGvUPiU4aV'謽XXiy,-H1Z"<֒1*Li,?@*^E2Hb͔eLf$((32P§x@ ZaZN2.33&81JQ )LQ6Ib,֙$raQVS+&h-9`C -S ~K*;jƗShJY؈Lz4㠽 l*=qÅ AKpP\?M-5 h(B}6.f+bw&[]|\z_C,'%T\LesyoRܝ/svU'bOu&#i1t-Xxms6)2H:-8}5i堇 0N>}u~'m2O\~'Yq+%64{s&r6g)v܊aB/@ƪ;v4 h(-;T0_-3W퓥=Sj5 U3>vg0}6sD=U3f +Ѡurӎj'r'ZP5e9,u(2sy6X8Ґ|uvOMk[%9s}>e?a #lDxk˳7f$&!Ajl\xk³f$&ltxkٰy Kl xk}Ľy K $xk=Ƚy K7 2xkx;Ƚ{)ɯYGNk3x;kJɯY kIx;}kC,Ik^x;ȽkC:,ksx;=k,kx;s*,kx;}s ,k4x;ȽscɯY}kKx;=s!ɯY;kbx;cBɯY CxgxqcC8  g(xαc9 -g9x1c8 MjgJx}wfg[xq}ufhglxα}vf((g}x1}tf HkxuDm7k-xvu!hb(QdxKwx}YrFN1I#=aU3W)UI)-RuY[[@Bfk0sSdN2=wAĚ&Hbuj^egcپ5YU쑗濳X,q^c_c}l,ؔ=cvϋ2[aJ^$1+CTI`||^}x}wb,[%)*N8ٿM> &,WpE/0C)gl]NI^:Z⛯S{8SMZbVḏmX{l[Sg`ٖW^8{AiqV-9<ӊ݇i͙wv%YY0jCGx@^De(`,d0IC*,*/"=&+YYXKUɚ1?.KfM>S`Omw{ǁѾ`yi?o9dB+>KŒ(` -x9LxA_:*]݇U芙m*DУ,ʡ~\q9ڼz+W{h(3Q-  (9?Ӯx]-KlEܑ5IJx9xH9 H dj䅋{f"K0MҔh3゗%(CIʤ *6J0 I`5Xy%3A Vh9$Z?dMByEL(@<Ǧ꼬 YyJH1/ a-a - PlٍP @]ky@4  `&n<+4 /'Iܢ"e$"x7){)2!'?c??gZ<:xb y~]_{kK4"W9cCT!:=fz nѨy$~l![i8Hd$]}WjUsY+>ORROa|΀9Т(o 8I/#US/xU)Ü*`(cu =W%e [@D='Sd?/s%k! {-KP hDxÞk`;*`H ("'"gpYqItTȋRGQ"a+D )i(FOU<̒ҫ)A\̒ C!1UD)ּZD+pF$:Y,+co紃P I34IټX{`!䧮klDA@m,̟`[;%q`@~`[d&(*p; r*"ɑJ@{n0򜋳@IfL v;@+v.8$! 4܀=7 xm̶6#~qn@o)+vN6*7%xgP} U$h-`.U/Wgq*zG<¡A*ܫ\=ҝI|$,JГ, :tZTԱv>F7wcI[ ge r/Z/VT(ts)kIqڭS8<CL=( fhߡ, AI{)Ċ]׎rĐ8o~훿uX;\&m \SRiA6,|g&2`3*[3T&"N[gxlc7rJ 2}@flDѷƻCƞ?C1Aa9OS22<"@EVm_֫?{]߰>drAH7<#B /|񁗛,Z"R@%*i'{?zX;D"6‡ P<+d V!;Y"YdȬC})_ª>=o}ɘ}/%21GL-̐X=K2QFf>`+^d 6yxrA~T4\wr{O %i8 72 t~-S~~4bfV+d+~2'KSP 􈍥(1擲1^c"n{E 6M-;r  XjmM|G&UiZd<)"#Zs;6\nj$>LKg}80?'a2Af+rY$%{gHw"`.hz$b-kS<< 1 Fs\0n`gfݭ.001z?ڴre ڇͦ{B9h[lm qsZ&^WrW^ȸM~^Ηiߙf"K&:\@xvYpB<c9k@Q1-pu8HV;\Q#Mj 1>;hHY.@JjC4В^MVgyZ,Ķ=uuS>, ySs,XVƆ)2|wɚ[o>Ļ'lc*&ϑ霞ۇޮ4lU1S %*ח QRzwhg$WGeZkbHKD}_P)eOZ965uG\TٳRʂ.exx6.v9EZPcw4uvXMYI(x^yH[F~Ў2X!fuyrL8.Vy90n~roRpm+hͬx5,y2lpTu5M'umwFL ޑe|9GH:`P숤erp,W @b^M ȞQQ˒ҍ1 Vl' ID:CU}4B+xZ]ޯh@Ţ=':M@,Fͮ?EN靸D+ & F?0Zއb>Gʣ>*s~+d qK sxΥ'4}%LaK2 fgɗ8YIMUIeSƤf57P3N$>)1#9襘eM-/.ֱ ɟ.m5 6S ;i/DH:I曧ԄDj}B(T,: JR YHnUx8KxY_Qy0)Д{g:'& pdcum'Aٞ5ȵΎqKց6:[H{@]k'$#masin bP@4)`LLwl[X-cK]g-QI9]b1%=2"\dRS2٧G{$v]@+}5>BTBӺVber! %Tgd^Xvώ[j7F;=MsUY69Ն025go?{GMf6@/KJ ѮФ@Ṭ3vF,jv"jS4p`DJp_?ْzynnP=Esdɴk)yeKU6~vG/4Sj@%pgje';UV Tjƚ H=&ULH1FX)tv]:@#S-˿%'cp\q0Q\F2U1\)*P4Q1 xQ 덶RtRty:. mj g4> ر=i ܿEjTf4 +B8兹 o\f0AqZgȢ&Oܱ;V)WO:ai<$+_U2|dʌH(m ,kfӫOVk iƔ?,uZӾ':"ļ}k{S<`pV4= rt>Њ=F[RÀq0?kB ̙.|#ʾ 1k{7w1dG O| "Gic4:SoYz Ash |7 GA͎ B@Ge ~)ݭ v+U[~Ȁ?p4PqJeL"R3cœ-K q]}`5npZq 3h cU- ٶ+cObXp1 Z 폱Zh{ 285#9n~2nqO}i13(,eٲEE ?ݽУa`RqԀl81o$<b,c`ꔤtB/T܉?ݓP!#Oqhdm"EV$rIs*)"m:O:Pi_Ϲ|ޞǙ m!lB 8exul;@e2yt q ħ_2^RS6czn$Vx{]TX,*\I;f5&Q_)njwM09S+{ν{:捄΍{ !i\Ur; h]^1YkPx[C6&:t~asgSq 5O!\Ǭ\&ơ?59`AfDQB,M~l#j$dO!{~L\KQnx3F&2>Z/Q5:Gd>)K/`MфB9dzɣ* $"t =ưawzFȊ<)&2fh .&􂵶@ljtOZɑ:Pj"т&07Q9z!5+訛:lJBkJ MEdsQXVcCz;ld}W[cf(J]݂Md\f+dd% 4ጫař:EA$cRh(J)U֜iv=:_ERsegtnm$=`8rޤH:k cdbP׮ xjXvLA);qGoru;E/P$8c'BKG.OlڞX~OrDalX@}DE$= i [w|>4ya$RzEMoB `c|X2Y{ #dV~_-D Uٷ85UcQn`G|ɹI[1>} d])MfBڏuKn#1 z@hv;ck=nj&q.zy v Hٛo3tF$̳ޮ#| ٵR֪ p*rn:ê< !c[Tuy;bq^_8uO!}i?Tp%k2XM]RCs}~NuxG&,MX]P-:ҬU#EB+Eb 끏LlJy?^Jiv^#Ş w 6|M2u@w۶}ߣ^I} b>)D*iog\ߠd|i}R 5+B"R фTr:cԳ@eŞʄ)tU!>Ɉ 9.7JH=ޥR}z 6BJ- 2R]׸xFƣ?x*g$ fM~拻W Sx߼GB#z1QP3N&+0xS7fRo9*)/HJ##e]C5(`o!|ZɂP㛁ͨb'x:Pު^9Y$ÛxPx[3i}Fْ݌D S=#]ҤҼRc=CMvw'Vx[3iD rzfzz ٩'oa6WM,R0204W042022h'2Yu#&vuxm*x[3iD r-;%Bxd?-X GX")%+B&/׳n285G8z<BFjI)HL Q"8#k5x[3;qy gkKx[3iml2Ks kax[3M7d.#[xx[3i D&\/dy.0i$e%%&9떤&gg奖lnQ.%^d~J-xVIGx 7zs ъxwOV{J $vg=3FX6l+lUGj$D 5ȜB\IP=7t" t E먗$Wˈ7zY&O|L~rxb%7zM*:4x=iD &z'g12QPtsm; kbx=iWxWW!kEx5TFv]kZx5_;9, kox5/ܑ͎oLx;tq~ɲL1.5ekgx;tq>ͲL@o}x;tɲL38Kkx;tqvY'F!\$k/x;tVͱlO#Hvjx{q 'Qk*x{&͋#"k?x{e#D ckTx{zͿ^&(kjx{Z͂,W"+kx{q͗X!kx{q*WYB!k*x{ la!# k@x{qr쳂 kVx{A#*klx{q"8"jkx{q|Ͷ+ lxt5 d))xOJ= '43JcYrN  $Y'?+;--838skxtq,UMmxtq1ͲɌ\'eEm5xtͧ9ӓ/mMxt>y/Pmextq^ͼ,Um}xtnN|b.mxtcfmAhF.&u'm-xtzy"G-!\mExt}%5m!\+m]xtq" B\&-kLx<֌ jx;<ƍ5k*x;TӮ(gAqS5( 6@u{Vo Xt2S“eth-aES:( Ƨ~6!gk?x]J@<AsBrIΈ\!>ͿɒhemyQ,ALrM90>$ٰ,$(Y@*Bk{zi9 2NCgDM.jkZoȷ0'0 H 5ܗU5IFW]je|X()CXj=ĸCFB LFU=QԿ^~Ώcm.>Ϯ?\l1x{2o?*kIx{2N'f;._x{2vs1kfkN;3m~/ kx{2qBhjx{2qJf)vLfo0x{2l n~7oKx{2l{<77bB jfx{2qO|6Vj{x{2qA Pgh1xk]YJ[iDxk]^9IixRRyri0xR2g6GWiDxR0ks1)iXxR{:}IilxR2is6!ixRW]#{ixR]Ww(xVOoDW@jU-k jv&1U Uv&I2[3TZ%| n(| 9 >߁7&,t6ޛeoX]۹й[ ڜȅҤ3:, tk6H.ų2V?<\fUgtAʼnLDPޙ,L6T@SHHLW@2h,-~ 1%z,NABDNb 'LheW*`YpGZ$&}v鉖'I(MS n}n#wB;T*JZokK/BKqC&l"m8z5߭{ rEmA3"#,$53H_*4Nսji>s -vu_gDK3"anC `7n./R_v^+z= B7a1|v5&-.>^q/ dP2r|9{tMHiB.۠~NLPLˑ&/y[#ڴa~3ĻV'3_u0Yawmu-ëBq;o*v1@+' ՝~/HcEfA,B΍?мQ5<$ S/ "ܽ,g(jc%d^3]dƅvhl$aυdZ4e%XڛzܱE>+"\o*) .ڦ?=x&ЭWmwy 'D +rŠG D`LEd8[-> !:XV+8U <4+ HN6)W e05B}N8bIA: H pJqs>S;48BnsDZi(O\W" j( %Q8Qs0I9e0 B#D=`=I$(ҳe<$rdp `,>~XbeiQxk5L1exkoLF&Ɇ*j62*lW&՝ ix 쳹YX )mx8g\V)GYmxe5+1xas5GKNffBbqNV֘ C O2x~DxTk0~_q%PۃkӬ’%#qޓa];[_}Rw \ڸnY 2P袅ΰ+ы&y\sܠ- 'w\آ\ l2J ݜEe͈J(&ÜsJaJIÄ<3GgRgѬslQqE1QR09;uN,*ZZRa\:837408][VCsm}'k4 eM]Z]L^uL3{' яfI+zӏ) !J[VM+I2$,\d<'}6C0E--3BuۘK[7?iwGck".n) g:n #QS׋vC!*ʈ`D2%qahY0Y]S6@T Z;􆰮F!h i={j PLa3t9- SM_hV[UT"*; R7~ФbfUSa@:n<1)/&7. 'n9S O_u2] krԆvl: "`wT܎;w Ic#8{'%сF)^xUދ=\T;x}JA-QBB!wB-,DBTnn'%ew" $p#|X %Qfg6y7QkrbPsh b4Ӱ>GAq/e 5wZ# a)8 +D0}4.1ř6jUBGq5>+f]HHN( (>4=UFhzu?QY앰ڨnpdp˖KK \R{pAvlOWF-X!E~W[eߗk0|8/<+^ .§"E|<4,~n^&hRj S :\ x(KjRfbB{Q~iMAbrvbzjCa^ XR/(}㖹jEx(ƾZxJ@I х.Ļ?Z i-Z܉ki̤ZuQ_ĽF0sҦCؗJ?Jm0*tp74g kD(B7FD"CXAilʔPB0icҳMo3lk9ۻvl qR,s] Cs*ڈew?M6_?P=rẈ&I҇ʎ?KRSk* |qfA} 3IRP.c'oYOǂ tjjxƾ,v5x #f'l1xľffS="OD=o9xľffS="Bz%։ťE'0j7d4g0Wx1K0iq 4EEymiRw"?.~2^AA-%=1 8:&UA@avK$y3th1TH#%טBm3gLrgJfRDh7{͋3%̘AbFD3p7^tSD5DܢTĚC Cû$I[ÿ)Ux0R`Tb*qx=jc #橌,>#nx0dTb#c)x=jc#橌,4kYjFx=jc_+[xY=jb2ԤԜ" ;[ތ \@5=,sqp xi`5dUF~mԤԜ" ;[sM̤ݔ2| 6QhT(>}[Lfbdn&u~Pzf>T̟N8hVKjAj^JqJunfq%L+qJ,a*6Lx[ʽ{;56K29 Cx5k<ļݤļ<䌍_1I('S4lL ]R257f/jxsƾ,vn&x˵kC(#0%?x˵k#dQFFaϙ={_xsľƛ3;|xsľ6FɢF3^lrx˵k#dQFFaϙ=u?xsľ6Fɢ3^fqQx{ysXnbfCJb^fjnRbinb^^rą2)%Eyi: vI~~NnJj-9yy iEI)0bg>+S;x{ɹsXnbfCJb^fjnRbinb^^rƅ, x̹s2dNfͩ7s2bKjbx={ԤԜ" ;[6k0v nix[ƽ{#fcb!׵xVn6+݅m%6nQ,1ErE)ܖhDeiz*Т o{3"5mlƾFXHF]. /JհuzojmKۿ]^L+x3Lx#`f3\oi>su{Q-'*Q;~wzivf'&=o*kэ>͗5kX e:K0X(m'΄BIbxuqy̅-j+NbY ! '6TJtbXk ȈpYpq௞QX%rpUA @YH=f uuopmaS@D?.3zto{}g3;kFv6ievr)[{`#ܹu`MpTzWj%,9[Iʺ /oo$<8D$jw.XP~E_Q+O0wx*{B`7F٘L|2SS]63rLaԽ )x*.;,=J_He&'祖e뗤 ݌D=M&3N3*H()*9&e&۬˔m&nx*;Uv+f6~4x*{K`7aF .y9 Nyy 6)`^PP^Z\[ZZb哙Wj…1 #nx;!pB`C#Bl(7x;!F#(51W9?$1J!8'3B(?+5D*PUY_k瑟Z>Ǥ71hFf^j4Ԥ<5Hd륀"q! -J!J_fP6r)h8kNb  tdyF['of T)aoxEN0E `T.4[BH]`atĊ#I7T'ۏ` <={GP+aЊB4I伲=r^FTYL!x۹, E /;pQyCΐUi\Z(vLթy\`B !cEi1jv=DMYO.80{Ñ'ד }LN6χ?ۻ$_,V_i5x[#0o;$LIx[#ݱ$#jr>K~y^N~bDO͂Dz px%0_-3'JA9(3=ĊKAYs ^ `d`` $,'3zD," _}xT[o6~Ł;` R4Ev^{$ZbM/6_C q2=P$9s7n 7\K\kx3:9= Q3-FIKnFkU/v3&@0x[KGgr;BXK{˙q>}#NýB)=mZ̧+:}Kgavyy-tL+)'grjtyB򽀵Q|pdKIbN z -tD F#޵29_핂Tƒ RZDCN8>\Ph?g.aE#P 4OG ^ lZ&en <:=SsQRSY=m3t,{l )Μ7"ea#ovƑ ;o@z+:bJsѲT O/r-\P?Ү spx0e\ɋŞP-]kؖYj8@oOQ{c ÏvAiu"y/MT-lFarsAr2ˀ/EcjpyQ@R{@W KF!xBt0 $'$"q`KvMGh8>CDf3a8ӱ=/pWc"-:S IvQWf|f=M=wj)I[ 5-x4wr¦qa xdm$f]`wػX]/vq}Z]-6NU| .Cs!i'^s^`41*TNFM)V<ڡ[؇~ f49`v md=xUGۢhz}@$ V4G:t ݉3VR[~!VsVĠԵ6T5_㤯דL}@/tCLDJ(wktR5ooz%UxĵkXnbfCJb^fjnRbinb^^rFO,ɸ dx5kCJjRfb^~QFO,W"xusXnbfCJb^fjnRbinb^^rDm63a=l2xQao0_4$0LkT4! !MVm&;'iUH|ݻ{w~H0{":-_W6YJ3KNE'\ӗW@mĉ'0Nfe]h.AlZHA_E9Etw9tcXHYyG.N_,gBMۢؤA-ZfF⡏CGGE)X^G_?+x=N0 ;0o?KHْzMb:Ql pn4dW WHo7oGǧ6 ^ } ]4vkgp>DPrJ-]'.!h֩ a 6t@}eu"wq`xYQL->iȴLrفjL!Bȯڏs"DH" VJ+NU3) Yc GgrEEeU2*4@dY_KhsTqx30M(+H,I20-(OKM&$LtKSusSs *ut3RSR<x.,HRHO-)I(/JK02JIMU(I+)H(H+I-I,I-xWn笠BRRR'va ,!;˔APrp`'@S}6-FW};3 Pvvg9܏@ *HtLHv( --{.t*{vwRtu}>+a4z'Lh3pOU}aTm1S!V~>m2 ܕ &2^ 5uHCMYA:EaK$ZPͻsݠ+Xw6?0O緕hލ4`fU߫)['UdGYW{ y6w7wN#ObV% ~z ui oizE5?}y%[̋7n~| ]jݻ*T$pT5}* ׽|PIKä[fZh"(K:Q3cr֥5kFCjVߐOu3`k|16Vyd5Ү4 jXt7?wJkBTcZ]SޑGSLuD;l\=ИBA%$T m\olS;1ku>.'0?,_SGţy> ? IqūW;|6^YKiةYc4pZ 3R3C Oj=lx ,53E"SB)֚5I5aC:E쪨>2 <Tơk{| 4's^>⿌L`Ssabjds#|9fX&B0qbn{!G~m~9޻xR=+5lG")LN^b%& 8.*1TN/6* C!ՠP= "ό&NM = ;GnYD?ls4N)Կ)* c1\Y$%VBk 6q/m9`&w:=+ozEJ%q ?bNmm7m8uyK,qT714O<>s:TO`ٔ;gFNdQZYԮA3  B| sNK;*r("P+\4fXxiTz+߸{2̌ Tx5=~X0Aeя <)&2GWɴsb|U95Np!1~a*Gv% b3}HZ\dThȁ9%lq3fϊƵ r')X/Ҟ L SSsXo#L7Ux̐ns-vLU8'LžL`3#.9.qۛkA(r1/] ith`xr"޴Mv7OͰrvu^{+f^Yc|#85!Cי$qfF(KKv&Svc ŖGASfh|-tΙbEZ'8۳! dOQžL]W5ikZ=r7v|83OosO"HƱHpgn"qP (?rU _(8C:L!JT$w)j( yQ$сX ,sxC%mM 2 Yjm{NBSC%]*¡!<'rqcd%cWFRtb%ɵot2ϰrWXl ]Onv`ڂR:xqYc/dA {lV1V>[xJuC-#n&V]M~!Y &l - xYu*#{d@>K]CC Gtr7^LiRyE%EV NI9 zz&W3O˴m6f!ͧٝ' [MvfR|^8kfoFf%.W09jV3 9.l® .PG0VPrr0ӅEY8xx[:Gu/dpc4BqxTAoEUiԦ$‡+b8uITԈI&;A3̬9+K? j$T T?D|3kl'-=ޙy}o7ǯW^mm(ZʹxE঒Vp}mT#~syތ꭫ЌڭUfyf;z͈>{V}Œh&M¬:RsYx~@0نҽC Y@^zAfIYb:u(% u'ƅ>2E8 a, 2( I|N txr4/>`ӗPxfGI+<#))%xH Niк8'~0-")2$h[CF鎓SU텨EBM;^I~x 3fXWŪ\\_hmX C4ٻ=a,—G^Nlow8LOW$GőR&W骻[_.}G;/$OAbރ!J]SvGK pVq峩v{߽8s}2B :jԙ \]JUΊ }4AGPc.'l-76Dy!%T쑀I 3w? He1DŽUO(hE21)4$ϟ/ƾk)XZcʨ8aJ?,J\U.͹˯ʶF}WsO"2EX]xITB1¤d\V&oM֡[lf|rYiq;ɨc~dJ?Q9OqeԶ)7DjBXs`<&>)xyaJfF64Ll3,ůdۤ },,1WeǂTV\Rj5?vO*3)cp?E t9Q#r3S}1l!ƿ6'ex[Du/7KUd`'p@%x[Ju%d/4ļT+ɫYT6cZ CxRjRڐ99sfAl2_xRZ.RP@t(dɳ84"DxJS,'\ƾy>+ 5xR"? wnFA& VFFFM`JuOK-J,/RNɬJU03؜ƧĥZzxy~'XMY y'% TVZ`f9:6Xq,Lrx[.?S~C2,eŹ&4wxTn[EUZ R*A"Qcc4&R4JB&/7:3Ϣbء $fW<8E9s^ĺKڭm=4[^akF}jCRPCͶyq%ls@j^JRN{f}&k5;kܵV ֺѹ~*>:_?VJm$牨v&٦˶$YgTY#6vUM/]+;{DΕc11 Pr"4˄a$N݃+>+frW Ib|; &HrB,3:3$j!X*#Rk)ʍ*ҊQwŮiPmX]Wo*W24s-Wʬv𥧍4B_9.>]=ꎝɌEyhm%"l;<dXz\1= A`>} }Pl;\F3?Ü͜e@ޝʷ{yEy<"bt 8)G=x9V 1"dHZH ( a |TO/?n wUka\c_xk1%+qM ;SE\M!aʓF*q)lLmyP9 A@, Sr?g~z.ok\-8AgEdjB!澷T[ߎ?aᆧaAAȿ8d #CG-.ONHbmD|+8R1;ZKmB1wQyf֞|y133cF1y1h/&x[.P~C2'KU,e`fq tIx[.\~wLi>y饉V 3y bx;tDi&d]-r8Cx;G~/#hs&'p6N~* V" 9x#N~&d-_s^d7$wUxToEV(ˊ8"'[BzuںBHKT ɡ0ڙYfvKܩ#8p?3Zv,ygw޼{_RݔHn+aW of%dCݼp ;2cR0\;LK"#w<%"796۱  rIDp Q $# @!@G$zTqF4ؔT+2n#^R|\URGXXU7.o'1A! MN40ӊܑϋmۚL~=,g?.}Am2ܖeQ.f#+|<<p? ͙"O*⯥͓-9Ϥst ieĖ N~,;_tpesEJpc1MPb*"Q,d`(ŗ-XAvw&E6G$Ap̗1xtT~1;B} S s1EX֡J!˘~lg('JIDǓcf]˥ҹ*uvVjJdBp\3:ix|dX( F!P 3G:VQNJj\еUɑ)ٗ5ɷʵg)#nRL 7yqO'G1 2'I?64Оf0]Dz^2,yC5kJ{&jv]|}rw*7kۜd~8[g̬lس5ҩSdx#M~&'KUd-`לYu`x#G~ɼLJ>y饉V %1yl&l &+ ~5ۏ(g|7Wn \=0N4_ {=70sϽ%S ` ]cY-6r $k:0l&IQ$"D@հ1bTuT*cMPғy%)ϰ)ފi+5Bh\]qZ}Gkgr*,IrObIAk*0 Yn-yTqn#d&s8@`C}ؕX~WOuR}L"r$/~ca#כشZ{E_Lr}qmjMo.XWI{C:^+!3Mzm(F.tn!;+wn7FxK]CC]CCC+e8&ɕ?OА],1'HaZVFAxۮRa%79mn @Rq@|3nސ-y4= _`-ޓ k2$ s%Bw@QSm'õZe,+旙Ԡv~;Z+KDʖ u>F{)y}7,&i# .X-li3bNSdGUemEEvACÃU&mC0?T$Tj0c*(Hl#l<Y/aX oB>oЦQ,x(Mc%ްu6W"-q{^V`A{c\*d$DFc$AH1̗:K; p!R¦Mƺ/>eNN *hߑ23b>ŽIikkl m==v~ @tBNEܢS{20|iA!^(U}E4<]B-~<[?4nS@5&Oxhj< 9YDmNF=kBvewqO)&^_} ws2IxT焠EI-1KhrqEya^{\~[ǡy،iCX$W0!ɞE#㉰7lvχ'*$}(Ul laq~|?1D!k)u-,WT54C FrV~[Jkk!EEIHSFUDcA* 7pG*޺V-KU&8w4ett-Q$W*I=-xPMkAfJVx"n6IB(W=qyw3t2LBaz' Oh=ywRTO35oŗO;N>vz@mW}\\2AnɽOz͉;{lan;C}⭡@=U2@MSnCo3.RRٽe5W~@q0"#7P0fZ3@3lP Ʉ MLQLXG(pw&#P4ؘBvGQN:g)Bz۽W43P3xv'0H.)F20XVx0 o}2+d0} >KV'rE&ruiϸiL|~"π9 /Zx['.Dhs?;,y&K›f e>gG>qtr kL 6rd] x&Bbn݌DS=]Cy|KS2K&b̚e5gARN>2x.3Ah?#0F}ɾYx&a 7n` xO\3%{柜i2<0ig3`Z%<_x ˷\PD`s$VYEx ˷\R@`s$VYhx"A~lsu&L%YCeBgf[ w5xuRkA&ƺDA9$ـzࡗ͐ݙtv؃Ļ9*О ߬i ̛{ߛ߯UZ;~U uڝm_~z&<bPk폕[v4vdF P Y&d BB M<1-!ow+J33Ba!X ,]/H$\aR 2H#k޻}V;Rg$iƢ{Ac53ȁF̈%9 DQh/@NTg)45a(z-Dj2l+1S4\ tgH+yaN"$p nhtqN~dwXdPټO %3ɑyNPQR!07Or$\pִ;r9puc]{Ϋe{<%_iUʹcjk+=U6soۣ)˕ Rvܫ!P@x Qb;FӉC u  L '2XZ(ZjNvbd6ɳ&KrDl✳`ڛg"X7tWzV5 \׶[pt:ZYo'2B '^=AhݿswV7JsҳQTS$ KcT\>ɔk9Qt|H| *mB0x,}WCOaO2ˍՂ+Kڥ[f^VoW\V?JRο&Y5rUzdu3a^5QueByáӥbvRhO |h9g5_KMZxۨSz"#wnFAd>] #C+ mͻ&s2oeRڼYe N''pbɻfON H[M>)39O(gdO_$%::x#UtC #nƝc9 &cHocɱrr=d?z Ϳ'3rLg.YYN, W"Tbx*zIpC##>Fvkx*zIpC##>FvkxWn7}W $W׵4 AT Py]rKrSCc=]]Ӣh"W̙3ѕ&L(zeCqܘ8:Ԋ4rgsiO?:8Ŗ~pU=}8#nT{3C9 )bT4MOzE`,DY]2fCmF8 4o3[B t}8Ͼܔ}Ÿl=8~,1oe4x& BKgnK2ƣ9?PqJwR5.םҽZNB͹ϓV}4%B0.oC=KEA}4*͌1CXߖv姴A$aL%#&WPYt+&BIax26 z*:Po,W$h9FɚֳJݜn8fg/DWƉ&DKN^WRj%v6i[GC CW˖=svMJş{9ms{ OSq wfx0Aa^9fn;,txUMk$U%ja=$tLI0j`%1F RuBQ,A(]6.B"" n . WɘYC7t8sϭ1}3X+}Nf:6LFhhvHhn_r6c-O–9N;jD۬,G[#5ܺhpeSb8')ek R[*wSamVM$GZ{އ.vSFHe* ?z/*KwZK,f $}MD2n8, mhz.2 `Y0HA[nGƿjW1%($98hUrSwtefpw0J5^fD./ U bkW֚ 6 6iTZ]F'jµ7\.I&9PY3+~E\ =A%"rH%A:6%\`Z  *ηGW>KKPR/>:4H(8{pq-ZћS"xb <#2a$,ang~L.(uq=⫩re6s(u&]ཿ0eyfDt_Fpܙ p`+ }%< J){ϸY8K,1\KoVqiu`KVb۲M8֧\e@ d -oT#=ҖiU~X[T6>q%ycaSyr3,8,&^e GKxQkY'6UD݇|LN:Mmv VX>fN&'3jeE-^bqx.X]{!f&)h߾w~\ H*m:t$}I?wlNl'`hM!+$T#o0LYɈ{"65N^ߨR XCݡ޶Q6CCslgEӺ-%D]YDܦ7S'o{5`=&a !^)xfMkAtP$*n[ la"XPy^ 1y=O&HSPp6]}ic3!AL X6ˑI uv>."uZsziz86>0E\>2p;8#F Y@:Զ_麟˔tt[g b2bddq݊%8lE1V*+։;×+F 7?kpf.Wbb!'קOܨ{yvy![;Q?7GS\/,%(}^,=/{R45X// Bnu&& @l8@>h)?*ϓpqs̵Agpr7?h[KfC9#w1TwyqbY;8ZsQsdQ~=cO>UD1cm?{uZ#DU̟'EX{Pz[S|Q=O;'fcxtJiɱƓosN\u }p ExQ~#(F/aVosNf4\U ! AxZ~#(Ɖ|rA^'x{-X~+8l Bcx;!{@v^9fnb? Yx{#*[7 QT@d2c,ƣ>y饉V U~J&rL`|e/޼,5YgAl0])4ًcdܜ2Vsyr94d@Zl2?9'  (3مwI5tx{#}TpC#tFsɶy&e 7e-b hwMg|=LWr MhYL@r%?6d[NUIeY}>zGVjWHf$Wy2i7TVN.ǦY5xq[OSgmˆy2,](f?s0QNTAs|j<"蜬N$ v$x*1V*C}f'|r':^rA+ޘ< c L?gO.Jqvz[$' }NzCk474UvYR: N= HebQ|=:}|^Z96ړYܞ]]D6֑=Qr&ufr}q8Tl6E?OeVUN_*Jb} J4T%4kCkAA>9Rρ]97 j4n|F!'yyX|/ĎϚ~#an7olDi3 QV4\xF*uAGrW( (;YAgc/RېR b2-0Eۉ[{ٳ =txOʌ oTlJU̢VXjbF,3w-oJz[ǝTګ$ %bji l%C#<a|Shɓf?sN:DZ 1 pp| q why! TGTo`Ja#^GS&5Պ.Wxѵc- b`#YTb 2%NF2d˰w[̻ `pqe4SP'0k>d" $G  lrYV|ɢfƖxE mgA>J'C>#sOQn,EbokFP(Ϭ&)I5\Ԥ5/ ̫ գM-< 樃x7ײ._}0\i #HXw>v]zLW"T 9,Ԁٔ <\yeYjF /190<^i9Ӡkr [%-b[KiTt$26fK D˫͑`\<}|5'Ce^4VLeh3RyQtj:pKT|c@!TݺtEaQuQ|^kZ^ . kT%ǃ;^{Q*UD!q:q_Nux[ڨ4)IZInFAW&F VFf}$楗&Z)Mh6لdVɾCp)8d.M 9f K\'oNeȳ8ۜ8YKz]>~7|Pa 1J\u ) JJ C ]"W\RRK&oqՄ J RLK,-Q(N-JTIUKY)qEmbx =x['7%W,WMNe9(Z\PXrxeqfᕛX&g(LgTRJ)U(.-H-*-,N,I--QHn2s:> 6x&⊘< |{6L3K nK9DBxkTs/~%7 oƩq}fxkTg`khkh`hhe`9q-Ut'szqnb0d o;xo_9s歜7Y*kTxToDVZҤ?ĉ<6Uk4".jDhav==c^ȡ{|ȥ nw- q@Z=}_닫Sso=B {XryX$c5c+ӓ쫅6u/ 粳ٽJBIo =w<㥩]X=#{9c)_1cá*J) Lν8gu\,LJ.Z~4i'o0ϯg{HdIdJ_?gO5"D2t?TNJ/{ S9ù^Ϳ572u-.~6%.F2xJDxG٘0HϠb̘q!}sё:_W?tN;~B8#DRX31d}1˰w:![̅RIG#g#_8\Q7>YjK8{TyFX=:mǦ1,N')93Sp(6ƹjz%0jG'*$~QZ2Isa.nkfqۣCE][d=R KbȰ (ϴq#.G qO6H{>'~De PdZj_pL} j G?YV=#lPm@;{!`E{$S&SIf<$2e|qP4}mN8 -r?jhOx_me;s9y+MVbFqx4Y)_'1/41=J!(&of %x*7)/E,KK63=al®9ِ~ J,/s~o`&ox,7)/E,KK63 gLxSKOAWtb\4$.",qyb 1)fjׅ`sI=h/'yГV"ijjW~)-r=ET0h'ϏόMaxzΏ0T*աr%]lݾuCK+̢ņFiBJW!8׎L iS2*ᑦ$=$PAU3X gsT%v4ͷ?ZxR$I;Vsr!·ư8td *wU$\]7+Ac3*J/:>-{J6U D!z>51 m/XE&0VC_綏߄ |EƮ={4ߒ¸f: eMA+"0ܼTivV2 PH>80X*jPrA N"6-uԾ9*7NƝS =Qa,EȤ'w"%1ј?:tĻ9&|[S|zŜjH R=@ !F"aO~! Av?񎄘SE|9C|iC(-#!F#Jev֍ ̞T^Nv\@hw?lI`!ٕ99=U71y)F9Xq sF"ŊI.tyMdg+m3:s>mU]܎ۆ΋Jb*v9#S_Nx[8[q2Ɠ8c' oĹ msx[xTn##f+W[M⌝%`/+U 1,x[_n##fhmI'x/]n2du ws4l*xاk/+ AxB~%#fw/9& vs3?  zx;"sXb#(tɶ\?0Lb&3o>DO3{1.x0 d.bļn@)ɏ9J`:\.<"Bwks`]MWO&5owAQx;"3WhC#p,ɶ\?0Lb&3o>DO3{1.0YE S9g>Yh!4x;,MbK݌DS=]C?y|KSs&31eof qx;,MbK݌DS=]C?Jy|KSs61uB*x;,qPbC ZkLk&so^5 lx&^bͧ9#3x&^b'#p\ͧ9_x&Yb'#p\vh+ͧ9E x&Ybh+ͧ9:gy;ӸANZݛt󐲇2NŨ# MReGUJ'6==v [fxR9#wq%bu?k(^x7A憽6Ʀy饉V i02MaޜʴWx$-1 nFAƛ̡!ney|KS27'0mt_*x$1Ab7fkL}&qop:l$xh0clfgZ;x`ghkhkd`h`edَ1%*vlf+ -lx0%*vlf4glNxh0c\lf7TxV{4as~AeQfzFKb^fjSbinb^MnbfC XP7 "1qc nFAd @AC]C]# C+#3mɳB@ LLM 6)q)$%$YiTs^zibznHjbB^~^*B Dw;S7LVe7?ac q̛,3YDo^8YSp^.qFWԀK96p$y&DD[YN>γ-l~ϫTa5\ғk.͌+< 1 p))g(()ؓ3xAfw\qIL, T*K-*OKI-SЏ xV)tcÌxVvqursS>zs=#y) J\JvO6db;Z!4m}ɒlY\!i%){Y&pyL~5y='E\nxS&?ⰚRgr6@6d5P-r}7fBxV;*hcClEyfM~a0' dU8݌Dɽl@aOu&KL,K9O>Ţ?Yg&XE̓'`YY,'-x{tGi^9NV<"c^Nx{ԥ4#曌O' XM™7YAddBVAcbx{Ԣ4#曌|vJ.x{Na]ļļy饉V )1y'l`] x;*toC/#Y+Xie(x;*toC/#Y+Xj/iux{#w#fkuhx{#w#fkuhb~x+4o/#(\$x+4o/#(\Owx)8%Wu_sLe|u#<,;$+%`z6dE3'`rc7/%"`x)w=#f,V_>qx)w=#f,V_uxWs_N`5@2!&ڙn%-}CI(`a72'71c')Ewoed`FxF>?tE=0HSG4h]UT2%+=CGikVȱcdX2&E&`Zg)SpEwp\Tyoq"c1uFip9jm)W٢-r0>!|:<g-SIVg_.9]~`CkaMew)}(_SǦ)}2&%`1^4&Nbib@7.F)R8ME`5_3VZ~eF>ůf[zT7xD.Rpq/dv9nӃ0xN}qrp/Vecwj%rsHdP N a0:R"‹{ (ɱ@UpYܤ$PtC' UP4(!} 2^&wd>dԖ#oLne|6d4@2̟Crf>>zϒX0 T`-kf󠉩1]] Vi?txP'"pO<@b> $[TjYF2PJVv.uݕ%8n芌_p 2#9u۷WV@Fn+ܓ.`|c7i{SF+2^MƟxTN7̺bE24]@B@a9 GTokc0Zђn/sx"bwA~~3Q;ہ(&:"O j_C'qGt8l׻/h 6D~%ݾ7iznϢ -k`&* a]j¡"P)Z2pLq~z|t495V gPóP39c7&U} Ru{6:P-Ҁv_)t\z6mU,ށ>le7Tp3g++Ӑ[_sC], SusjC% m9;=3NukO1.(мsH}F*>̕ s q6+b_Vm*hC`>egaڻ2lWUSI.ry(]^TZ'[TBJoazxϰѧzgչ4Zyٵk3,%M!Y-!&TJЈG*$p mXpaGxz#c~*x0fhr!!37h&CP@ڝϷ:+h?-ociU ^2XκiKBUBn^DNlv~v/@C& 8̡A_! f;] }G8pЬ|69jjfG &q×X]#E8cY4#+{8gVt=EFȆ_ZVnQ:wһb=b\ݏTfDnt[%[WlFRNT+7S#yMhWE*h%sVV֞2vT?"{t1ZbA8Qf/S'\?5?5v3QxPmPݰsn˓u 7:Xl<rx@%!L09-11-10 11:05Z]C: &8デフォル" "p KOxxAqv8/oD>/kxxCqvNh+8/gp7 xxOq(d5"L'XMc|7xxJq/F71=cilvͱl;6dd2^,يLJ~ܴq|{RM4v=nlO3#xYbĀ XꂐNƞjL+X'O䱙P@d+s"7xuQKQfڦ]ԠR*)zYǙε'm^ 1-hbiAcrشN.pw}ljSק{߽hYoʱx"Z~(.xK{ J&3#<ʜAlYc㭻ND5 x;'to7#ϬfBxWQn7)GԻװմ$6@ڥVv UƹB. V2`Zq7ofP̕BRxe41dR (3+^t.L=xz|z3+M/EQHz>O}1rZ߰i8QƪO5^\Z=9QI*U&$\X[CE6*}~#~ڿ|r'H l{N{I;Y+vl E<ť\ [m7@Q L x8SG'?^4Nər]Y':z6׶o0o࿨tf2i|ނN~O'qE lzYXzf.R༆l"߇oM[f,mZg&WHy;Hu%]fU (Mrn˼B`qsYfilV o(BPraSi@nhfZi뵣!\NJjKLx?A΁[#oYcsi)3UmMdr 7#pZFhx )É6(cj4Zei\w %-<,9d*fN0@ZeDŽe %IGZ+礥䗬F;w*9PoDK$`XyHLbp# V3_|!PVBؗKCP$֪bߌA#F2)jBJd4sȔH|JqLh6Ĩy7Mq^C Uq޺J-Ƙv.O @Ψkxp^aQqƓpN0do3vsQ[wQ&dV1!PHُ#-F$=0QZH4kfx&N:Q\f,LOFL:Hj!P Х>Csˏ&Db:" 9^0EkŶh0NQ !*$ԜcY5}" VyoGy#3\{ T2B0rޮ̔i2-9$HUƱhcAa!,1 H4x!d`3PgA}& [1q53 d'A 6P%-z;ɔ퇡8*Cg؍1kcZ'sg{7BSq̉6Ds]~56Q|ݶj溽M/Gm>[_Vx;Iv#\FvvCC+e&ȝߜRAK)Da|NWVAx$DvQg8l.gEH]x$FvQh+g89Y x$IvɼLJ>y饉V eZx Yx&In+d7vͅ,rN.^l jx&%P@TpR \J\%E J WM.fc65m&;(Jy'J`/ Mx;%wRpC6#RF\V3La3oVpO6`,Ys M^1*dnNɿl&K'OX%nx;)xw=#f*Vb~x;)xw=#f*VbxVQoH~ϯ IQN!4 p+>,{w}kzz*Q$0xoMXL'1 `>%1$dw0|sHncƭ na~Il}Qӈ)h.x5E|m! gτCLH\!BGr/-zva,pM]:P1]vuj|.zAWP5lӲ:?D"@v#֖ 0EE&=)?Dwe H6֋fFmZʡD%xi~]05z{$$^]터*>ʑ jɒQɜV;Cx)ǩ,~:}߆WҞNb'&m簈 ݤ UڧS/K!OبKr W ԺPj9R&A@L9y1# "NgG%|>~[`0VLAhɩ|,>|ij=9j?lx Wbb>rrVNz:x;c\r3sR2SstKs3&($S lEx;qc\V1"k]x;u4/sx;U$ E7 Q!-H%5)31K6r0**$e(8%&)ؤ)`zEUYN-8x]k0_q攲R&m0Ipҕ"rcHF:r-0|!?z^>xq="D1₧4KT2/eq"x՟Hual:w1L Q]*MH {Cqbp ooR\bIp^u-TQH5v&w9YΟoGhXؾ{ןVp~_ zrMiZ9*\Y vnt9h:XY^KF,h ʅVz鷚Eh^k0p.he~؜? :nϿW~*^w ;np3 a ;~Y#tK=> p94M%S8Šw=v6_iy zLpO =^R(ObQa@xc϶5#yiRi^IdAFͪLhxccbhg8YQa*S&#7l xcocqfULF/%xc?ʶadAFͪL01AxcǺA%*v S#,k^xc<#k> +gg/8b0/4|1PPd^?Ct$L /I0An"Uq \-X!W!ݿbWbWTGnޮ%gX ch 3h3vi Ir[ tt=:T>`JNB/* 2t71v@-QgL:oOU O3iu3LHcxL,$ /r!$eU1p4iG80fZИ!]`);e 8n yoѸ(q؞Ooήn + 1ў x%Ap/i y%%E% %y\% @fZdFŠ E'e#tɆ/~0qx%tIpǸԼ.ê<+NΒԢ"|Ĝr̼tb ҂"@m  E%936:&SGx \`Dq9y%\ .E%yV%i% ũEeE % 99 I%y =  ťE@#82R"\ Ks6Ogd&);xJ@ U/*R*Pi)M m%IRB3m!TD܉>+ n\yVr5?g͙ɛ dayi(Խj:2L 9)Bm%8T #YqdוvχxUrK/Gezf3͎.$"hu(M8v#M]\DhwE;=2,;.{zvMWJaOԴ,268((zx5]QA.Ɗ-t 1iVVG/qmnzF5=ǁ\*G#'i-Mt/r& /+P;Bb_~Ss : $ΎJK? Os5f$399ѯlvnix ^`C)dvɛ܁t L> LGx{.pɷ2&Ngx{.g~&4hE%x WZ%X.Β<.N|SXS+2K 82&׳Jl~89-rmy?hx˳g_@HnNfqIjnqjriQf &KF>j$U%7oe`kFx{&09*To^qV|lJFY{xs{cd%?2Ma.UP v suU-r7g~8d>6%j|x$xQpFÅx/-./N+I+)H e$&恰\R4LBx+I+)H(HR,K-N.,(-/.LI2uK RK!K`: ̸'˾xV[OF~6cRYiiKPHNI2žΌ3N8v9|߹sN >VE 6O&" _7WW__hLT3O|x֜ z%SKgٙ#zówy8災Mb_^/:j&bZ;//G]e~/{dWogtkZ0,֍62  鍆A#ArgɴqWjF~@>fs(oT3@@ HX K@*e1aZf Tq:Mia.2Xr ۼG=a0)[h4V kbH%xWnւ ~#"0htz-/?mZ*/ûyJwALz%U֘OzwcʌK<]7r;?;v_s~zҌ+>·[OW>.klvy`jJ-CQ) >NyA, XFpxT(zx OZ ĊQ6Av*sK ]J!,kw,rh>XZـ|Qrh\4 V9Fj!Q /t{k!}%@Ii΅tT*kIemTү9xwK޲'N2AMzR[$mYϥ6\`[ibY@!Kռ&o/]̻g7p4 \F}FB?n x;'UhB5m80:#x;'ShB5,VVm8OoBx;'ShBΧ :j]x;'GhBΣlrx;'tZhCBl" x;'$a:\BzQjnRJu[H@|hkk]l*Q W3tST()rqrd)"l Ay E%VyE  tJSsSA:R3&r(M.gJ˜c ?#(xk&a:Ju[H@|hkk-l~L lRxkjڰm6?&Nlixk/!is!D6 xxk'!is!-l~L;lux&YpCBV6%M3xMO=K1 X?L{zZXh`Bv3 'n98[+! AL y̼y?WɎ  \,`:jQoD戴x  k$%.B并fTk#yX(T&.TوL(Xf64Q~F,WnФB$1`@چh;({z:HKE:BsBzav| {p xyDYt SO-IOIMK,)/I+)H(Hɧ)(d)Ļx:EBS 4h%%XHIFj\ͨQ+/(92ZFL=&TxĺuN` ?G_׍>0H0xeN` ?G_׉23tSTCB]<\C"kb89K2R&W0(2'_flkWx{eC.'TlxU1 @E Bh&6x X3wad7jeox4`ܤ a>?3涌Ua!&m/u\zsCXB)B'>@$G.Kx$;TR.I;n@ZrCi]3wnжvEFڌWj]AT*Q!(eaA^4b^fOA4A(u9"E>0^zRnN+S<[O;y`T5j=+Gf8 M&m@v3O2 {U;&̫j} oP0DTDlL1Rܚ T^Q͞;v#dwdBx2sW~քL;?@db؀xAE-1#$tTvL_gb)P^Đ!թrLVSֲD7K2+12Zmff8 xkC5#GqQ~IZIn[VS1)kkF exkdNɡL701b? g#x;yWFBfCxSN@}~ J8hԋ"qQY gKR܁O̜9x u6%2gZV<9! :hkt]dS!cX$$ O_RhBl); 5pT4 Wo߽qO;Px[l u jRu7‘ n{J3ܧ-ZO.OFQPJA2Q,] YU#F&dD").r#d'<)0Qf) PhR!cl@T@y)!)-Y{HM, {?:~~<{o*dSdׄC"]qv/ QǂHWmThT =Z6Vn֫HzFa^DS{Y[=Q1xddescription "tftp-hpa serverg6"% ( 6LH then . ${DEFAULTS} fi !$xqeBFZfNjqeqIj.gb^B^jnJjYfrnimNĦn̂ɲ&&i ) J*!n!.A!AJ %y\0%uS+2K 82&cn)x;ƲeB1Qi^NjYjBi9 5x;reBPQi^NjYjBiB~Ì* `xTo0~ Oͤ0vKlkhF!$d~ǯi5w?wȕ:G@x!bI DmJm9C')unwrb!po͟PׂR4. J>=lW11Ri jza ?@ElFqh)4Oo K9krUp KBDS)JDس9e&뷑B2Ee{(üu:\ @QY y]\%=yٳ0B+J~ԙ}wc`YL U9iQD)*,4g1j:M a׺Z~/C^yҀdc+!t]eGx,r0!#&o>hׁ VkS>4QJr}o,LBabJ=AK3t%V^@3J5ZY=@V̋&*Utvr{זeuKQF*u}_YhzxH%100644 changelog}زrKBjq%Hfg\TEW+'eXRxH%100644 changelogѼ\ҌˏO}%H^uqЬiΩ:`e#*xH%100644 changelogīخ&V=E%H>*#8n6{e20w xk%100644 changelog,|gpꚢP%s%@f8 ޑHlwd^`:j~:&a*?N-,6`V5Ao-X0s2d;A&aqOB:ӈ-ͼ<DxZ9dK`՟ a>߳M4WLGꘅџ40000 tftpd#SuRW(sלk#F*_.xcc`,r:ǷG,fʵL8_K \xccߐ$}([nss[I Gxccߐ$}([nss[I uxccߐ$ʹ4lϗEo%LR#xccߐ$ ?'dr\,Sun.ab¿ xQxccߐ$)l6Ӏo |1=I xccߐ$\ᥖrkr4j^I -xccߐ$֒bkq{t&)F[xccߐ$2iNvY" %LRF  xccߐ$rqYT.ym ,.\$ 7xccߐ$y;Xedk? &)F exccߐ$rz#L:UUNhiKd .x:9yy`d:/볁γM .<36HgÓk#vxccߐ$%}J$’5:+8:l\$e #xccߐ$tis3b5ם\$ߞ Qxccߐ$*aee.}Ij 8xccߐ$3;5{&)F j-xccߐ$}1&UƝ';s&)F;[xccߐ$ۼIe1%tOͿW dENˍZKC4Ixcc,ՀsΉ:kcSͬ X ^xcc,m΅zlu09Y  xcc,ՀsΉ:kcSͬ X  xcc`,r:ǷG,fʵL8_K 7xccߐ$ʹ4lϗEo%LR[xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$ ?'dr\,Sun.ab¿ x[xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$)l6Ӏo |1=I [xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$\ᥖrkr4j^I [xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$֒bkq{t&)F[xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$2iNvY" %LRF [xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$rqYT.ym ,.\$ [xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$y;Xedk? &)F [xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X xcc`,r:ǷG,fʵL8_K 4xccߐ$rz#L:UUNhiKd [xcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X WxS%100644 changelogTA]0 _1%1 &~{L4H'j.%@f8 ޑHlwd^`:j~:&a*?N-,6`V5Ao-X0s2d;A&aqOB:ӈ-$GxF%100644 changelog7]p̊+I)%1J*j 'Ikְ6]=j|ixF%100644 changelog2]P`#\%1]*:ؿkUS웑ϱj|<?xF%100644 changelogM~q*~6:ed%1]*:ؿkUS웑ϱj|Smx{MD!9#1/=5'?kN0S:SIla}=w4nƣu_G4Teg0,Sm^~-dVwxM @ $9#|s_nyws$$Hlwd^`:j~:&a*?N-,6`V5Ao-XGd;A&aqOB:ӈ3-D<# xo%100644 changelogyCo-[1mSՑ%Y `&J đLRf1D*ẍ9astmo G"~H.uK/~RRas\3-e> ?xW%100644 changelog2xNU&bF%1~>7%WAQ ‘jPUP|J98nw4B>Hlwd^`:j~:&a*?N-,6`V5Ao-XGd;A&aqOB:ӈ3-6EvxF%100644 changelog,v4xͣSӢ ۑ%1[~w<]} Aj x]%100644 changelogv46Yޞ0VMwF{>7xF%100644 changelogDb7_8,uH%1ZDIÂ^U ]j#[xF%100644 changelog4UeHB#,4z%1ޱ!fHXEͱjMUxF%100644 changelog_UYxS9Wum%gyV}(|yϗp!q"2TxF%100644 changelog p`{6&xrIGrP %1숦YXoԀtֱj9 (xo%100644 changelog7@~#N$4U V%1k@Vܥu:`խ1Qj3-m6XPz*sm뎼WaXEhC_%Uyzܑp}pyYF=PxC%100644 changelogنzZ-¥&8jV?9%'yյP,#_+Nt "x{MD!9#1/=5'?kZO\چ?Dݜ8Qհju27N N{Dni/,L(axeO 96N71ĒbYw:C}c*Ҫ/ΎXi|ysSSW׋$Jto7%uoi30l5yru}^[V\exH%100644 changelog~iQuNK-i<,% q*p"P̩lXF3Wx`%100644 changelog`Cw@ys;%1V'mm!g* 93G`yjh1 :f.fX 껳?)?ExG%100644 changelognOuAG|X_*qcʑ%1 +Mo?'j3Oq.Z&ZRQkؚ*5DePJi Ј(G40000 source޳o^%;8+&tOfaA8Nx3000M(+H,I2000-(OKME&$# dUBEUdvgi7V W>| Ӝ_PYQ ?Sך*}C3911Ēb,Wr/S&B9xčZ"f<)>x1=|]e26wfYRxZJY1ٍ-M Jx̶MD!9#1/=5'?akSWHfsjÿKMT 3y導];M @ $9#K}JI_ЭZdU ə SϿmEymnjPTԝ+k)~Pث8Qհ>ETҎe'}9YLs~AeQfzF -{?]pϱq|6($$g30?~S/J1*(wY-P i՗RgǿkR>< hīE׉Xͷᷴ^Ddu@QNx`%100644 changelogZ -1dZG 99%1 +Mo?'jh1 :f.fX 껳&oxH%100644 changelog6xrc)-]*vqmj%_xθqBtqjQfj1C!GK'yj x{re}ILi > x"v@0bO{H f/HȱUfy8k2x;ʲeC8 ƳSoGx;!qr佌+\`x;2LdasCJ2Vp,IX? F{;C4j2xk` hЊi?U(b>8޿ #Lq’tx"seriesJÞ}iÖ/GtTx6> hЊi?U(pj=@(BϏ{Uu"(Ex;ǸqBtqjQfj1C`$i+o45y]%/ ? cx"seriesJÞ}iÖ/Gtx30M(+H,I20-(OKM&$x:9yy`d:/볁γM .<36HgÓk#Pxccߐ$,A]w8{a&)FzAxccߐ$bezf,/_Uos #& .xccߐ$2jFR #&k,YI b]xccߐ$g)E˟570ޚ&)FW  xccߐ$2R@[dX򯎫m.ab̾ '5xcc,m΅zlu09Y bxcc,ՀsΉ:kcSͬ X x9`"8wq:;tOͿW dENˍZKC>Wxccߐ$,A]w8{a&)FzA.xcc,m΅zlu09Y Zxcc,ՀsΉ:kcSͬ X xccߐ$bezf,/_Uos #& .xcc,m΅zlu09Y Zxcc,ՀsΉ:kcSͬ X xccߐ$2jFR #&k,YI b.xcc,m΅zlu09Y Zxcc,ՀsΉ:kcSͬ X xccߐ$g)E˟570ޚ&)FW .xcc,m΅zlu09Y Zxcc,ՀsΉ:kcSͬ X x9`K"P|-c-]1wAtOͿW dENˍZKCHxcc`,r:ǷG,fʵL8_K txv5m{le{!I'^pU`\yt|tw=56#]S7(L(8z`flڹ100644 version[va2v߳M4WLGꘅџ40000 tftpdCNt6mLg%TW@k#q|(Zxcc`,r:ǷG,fʵL8_K xccߐ$2Ʌܪ[,9q1fs #> Dxccߐ$2Ʌܪ[,9q1fs #>  xcc,Ӝjɯd|2;hr62 h6xcc,rr۹.ںn٤ cxv5k{SЦ_ `͔[6رIh;tβo't|/6r>?pi{?ObS7.<36Hg100644 versionB\7ʦ9$̇b9 =3x:9dK`՟ a>߳M #SuRW(sלk#maxcc,m΅zlu09Y xcc,ՀsΉ:kcSͬ X qxcc`,r:ǷG,fʵL8_K xccߐ$2@p#F푬 74IG [xcc,Ӝjɯd|2;hr62 hxcc,rr۹.ںn٤ xZ9dK`՟ a>߳M4WLGꘅџ40000 tftpdCNt6mLg%TW@k#q|(pxcc`,r:ǷG,fʵL8_K xccߐ$yAF[fi:ps #Dxccߐ$j~?r1bk~\$O rxccߐ$yAF[fi:ps # xccߐ$]`g/yeÐ,>sl.abv Nxccߐ$x|!. "l&hs #w )|xccߐ$qlWdkgrs #J0Axcc,Ӝjɯd|2;hr62 hnxcc,rr۹.ںn٤ xccߐ$j~?r1bk~\$O .xcc,Ӝjɯd|2;hr62 hZxcc,rr۹.ںn٤ txcc`,r:ǷG,fʵL8_K !xccߐ$]`g/yeÐ,>sl.abv [xcc,Ӝjɯd|2;hr62 hxcc,rr۹.ںn٤ xcc`,r:ǷG,fʵL8_K -xcc,Ӝjɯd|2;hr62 hYxcc,rr۹.ںn٤ xccߐ$x|!. "l&hs #w ).xcc,Ӝjɯd|2;hr62 hZxcc,rr۹.ںn٤ xccߐ$qlWdkgrs #J0.xcc,Ӝjɯd|2;hr62 hZxcc,rr۹.ںn٤ 2x|CxK-(J-.SUH,JF椖%,Hx+I+)H/N-I+*I-JIML/f$p{Xqx=10o%QJ Fnf r{auQK .xz{(_s"xSV.RVV(I+)H(HRũEy %Ey`*S2RK*aJ!p;'bxeeW540031QHHKOOgcwlS-ͯ>yy{j3xlx_%100644 changelog`1XOWWJ':Ofa18vxF%100644 changelogoPgk6C˭c'0{%xnwc!Bͽ$J>]ikVx[q.mx"vA":Ne^j2xk`nbAgGm D-coY}D^*Eel@Fb}E9],1|߮fkGٓ[f8˫Fz٣: 6$sV+UwrHhr H'xEI Ep8PJwE\X\Bb6wRiH|yq a \H v7)Fn8W7|5 )d^xdlxLx=10o%QJ Fnf r{auQK .xz{%bS`N7 "-x{iv_u:<2jn` .x{i)H>fgǛ}%qWNdTԫ Zx{i)-󞘖%$wCHWLɞ sx30M(+H,I20-ON-u sSa"&y0[xTn6}W Pͮc7|N H8 8K$nպ!)vlqg턒%|d-Z}>aƒၯt NXtB(0os7B:$=/2 ٨u^b\C46GZ%x´ƌG;Xf@ \ti' s)xӢ^=+ABc@*$xiz,nq`Bzep:lڄR.{Gʹƚm)f+ ݣB7`%4h;p _B1G_ O2JEIbIKxd,^df(ZyLQ hhPB#w]ɉ @+G, +3Bq?>:^wa>hH+ِ/ Ϟ6 {VT.L߳a)dIvO/^&Z [㻄9mͦ-zeMmDEԞ咪ʲ<ϳPԷźYSiTOT"?McmF{!c.fuißכ8 LE!z_u-A6zMY"#bN2091q^f#h g[\?ݐEμhH#%LJbws:C\cba\klT2l8Z39!A*KDz?\ڨm:WT?n-noNCڪDO0"ƙŹ 5' "fqӽj7'7D[u{M)5ʘ77_dSAqwJZfyx4= ^5y9qE Ն5]ΐS4M6sb7r@Ɇ@"p0+ұZ7rQyjv9H?^{= 8/"S :sd[Tx7:XZW՚5ubK_N]Ɲ -oCLiGx9Ǻ3[bXw7100644 changelog|*/;w%ۍh*N1]R& wTԑP5MVlN*~100755 rulespOcew^EM>5jRe#gXX)_u^\^#|}eX i]:H'/q^0DT-fcK :xj;`ÈqyjW>$N1G&Qn7senlۦ'IPPlawN:ޡRαPHŇzz`ʹslȨ{WZG\2=ESdvx@yfVIT^xO: ̩N1۞1Z:CrKdmH3TNX._D{Bru:}"ux7:]G)utyNxTNX._D{BruSFx8:sA( 8fPE6kN9 պ߉'vzFxf: ĽFRY6I{N1y% +wPHŇzz`~ ^b(J8Cɡv.txv:U4T/JY͂BBNxR ľP~IcED G40000 po+ ns*3-gWj100755 rules :kdXL7zgxsیb1=x8:R,Iͺh9k/sENpOcew^EM>9wGx7:Y\=l G6~b*NyA!>=xY#C$V? x}:M Z|7ڲ bNf@ı=`DBZI+D.!A46 Ū$:bEuɞ sYqrhRE-!dfF7ёo=s xq:kCKɞj z#N1<4)dMۻ9|ؑP5:%>˦4 طI?ZZo100755 rulesZ`\?YTl׳wgj3x8:'ƀ2.܏ȕN9 պ߉'vz2.Gx{ξD!9#1/=5'?ʒZ|4܂%Ko90\g<}D^U*JsvI}4ܧ[5(3=[ӨjhlJZw^ob @k3RNS{*j^\ٝ,'2,u}vL }BEɩ 6o~5?Nu4 ڳlQ$GIۘ/KB:N6b ~nOxO:zkގ8#VQx-N1\wYgaPRZCBPOZ&HfxF%100644 changelog9եѡVdWCu:%xxn}x)4bdn #3x7:T ғ$5 ,%Ӄ9$fN:a&yOtEz~yx7:'y<Q"Sc9N]Ɲ -oCL FxO:K djjJWcN0qN1DŽ̓*"Qْu3TNX._D{Bru j=!]xP:)զgr=.,NG1]x" QLұSjRe#gXX)_u^\^ 5$Fxn0 Ew֯8ȐԵ_ WL*@ R`sKxc=Nu[HA== ɍy.  b"Q1v͢l#2=2_\SDf F@0b %oiY2(M )V7*Sv%49nQhr/ɜf2xoRVUx7ǛI v/zgBr{>S(q8#ytm{F]x}sgrxxUmO0L~-7nbE:6v l@2 hM瞻{|^ў նIX A@nA`-K0?;pBDFP G_61ɤkإ,JR[V'?}$./&G^ڻ#UjEfZX@{vYn&D-8?nޖ1|kX )a}GPY G^f QL-Tq+/\U%H?gSͿ֊jB)jr,كBrWP^-G'#GG WkexUvaz086ٲ)[ +F~on9*8QJǣatz7x<#qY`H0FFdH wCƽQyzMQ('2(úRf2㣳YEY»f s3@?VXԡ-0)7BlQ ,,M4:X:&R+K8h%oN33+-5nro-]eمg` jNU1(k=I o#M詆rK=x_P, Y.Ь ,{T&Eg{x[rvZ1vaƘPjO$!6OpE 4Xx#D2(س(bx/S{ \ޞU*qk%`AU.PGaQR]-T9AUݮ7T1A#VUݯ-@$dC NȨ :e*u2SbRW!}iϘR ; g5 ~#luhOMC>$UŔ]TMcR+vst d+WۂV YM^Kl\T˛[k+%iXUqg^`b ^D1[OՀ 4hiraƙ4.ò+C<Ճlb>_],Nn{(8=T񵩂ߦڿLr*|ƾd8;/n쨺_=z (M]qᣫL:,'i: I1З), IyVc^N/_OZ4$e>b =TY+QN@X|2]:6]rQh)9"{x;egJJCnyfIBaifN W~YjQQfJj|JF|biI~|rNjbX9k4ҢT|̪z@R^4IA "͓1IbW\c5y,\"X Lf^ffQx2eB gJjRr~^niAJbIjAĐ$@f^zijqĉ|ťI P1 smzOExyBDFW6323TkfxynyfIBaifNJCD͉鉌z(3mfdg.x jx2A~F4x33x7:𚝥@oæުNxxn}x)4bdn: x30M(+H,I20-(OKM Hox|y4ȶב9ǘGLֽU8O \f>3 +=x30M(+H,Ix|yC,zLs~=yr!c2 .x9<`-(Oـ塝5fP.0j lF$Nb3 mMb%Dx7U,,v4[Qs T:T,iŎ&[\4`V?|4I.M=xm[0+xnnjŮ@&nVއ>zi1,EL\8XDP s0> Eg[wo|Vt<ۤ_> lh(AG1LXlZ_{r@i:Qs\税vBn1 Ol7|tbˤ}{^3c[Sl ѷ~L؇CtN|yHeU1hB>Lesv6nhy 󿱣Df[pW}X~hIZ|`ɔKpȥNi KC9.7NbxKX.Áq2x?WnzN^.<uC z VFVf F&\|>k7xeF(xKIML/I+)H(H+(J-NMM{ ;>x%100644 changelog ⌴֛Nڧd ^%1݄-Jm;LWKj.5%TYVfAQP 100755 rulesd*ۿPs/@GEJ_jrhDZ@-Vn<Ca^>4G Gwz)3% ,unarmEG _I@OGs4R;G'JrThCQ4G&W'W6wzy4-e6Dߊ߷?ZfN䧸 qdrh2Է8B|n)?z"B nb~5Pn!!=7X <,2ACh#!y;gu!f@!zpe BAf7,0oUk%OK^H-]GvuTcÏݗjd2{Ex}#dA|F s'2_{Qnxþ}ɕfzFzF2SR'G11*ln`t`K--.-H-*N-*K-Iy?&yn.b+ wWx}C9{^jIRbqv&MFLvx>}C9{^jIRbqv&;~dxmC9{^jIRbqL?L) 8x~mB9~5fC=;3r(䥖$%Nn alxmBBNfRQjbJNf^n-fC=;3N4O<8x{vmB)G L`zv NxSR@]-])"*UPt2IC2g& 7˳?fO,`Y$I^w6F0ŀ5150Icī+ N@bf{sM o>8λ@:IV 2}r:3[[ؿ<$֕o{1%k܌)Og^RԑV_yANZiDw]fpa;WPfsbM9c_}.uA0$$},U:kĦyJx{>٪e`1e'$ՌɆ bqjT1t<3d8=:}8L d͢Mikd {ɩM^!lRք&^/ƍQI$P#L5]9"w-#)3/ ~.*#-6\0:1o8\Y@TlY@!+hTWߵ F(F[F6JNFL#-\|9xBZR ydH ~*ᘯ26+}h}={&жh睂A(dE o&o<|J5CM~uӫaQYhsT-x m?%Ѡ ][1~y+Eo"4x?kAőĪRTT$" #C#1(HJ0#ievO$nܹr# 8T!MB !s4w37{B-zFYtG8A* VKe6Uf_Ck9_ }g< ȡ_cMǫ*FYWpWӉw:lCNC fBYzBE׾gnHkENq"ιQe\Q#MU~m 6Z ɳiT"xΤ &tf͒of"`uE䩚7^aa=NF~)7FMVJ}wA}cۿ=CLlx@ aA|{T$Ë2ZM|d N'fSh,xs2vLRsQjbIf~KbI"\FFɏ0lngawxUMo6W t)qմuko1=(Ć"egTEn)y&«͛=ЉddBp@=8q )L/ʭmy43#vZ4` (MePAoDE`7 )mtz#kv"FGIt߉" gD heUGowb~I)`HuP9*4rLb-ȧ1`12P[AVz5:u|} #JWRd1Ԙp`>H\+1^^w`g%AsО{ˑۗ83yF&q.yK-dMU4!ted*Yd׹s^i+ۉt낤I }ⵄ߼RBS#sjxir$_痳Og"s2u_bwKVx; Δ=19v~fϟ"+~ly cS_XwI%BxL)Ne`^(_5X\ⵦGsEQ/l_K b1'km3\@ٖ/"(G gL얳"М8&ˀ]dW)[ỳ qtt(zVV'.hC`t.V<8E+!( tZ6qQ^S>*r*Ap7U\0uQ+pp?!d:&P?@}E0Jb(A42Q-:cTk 4+g*r֬ܵ Qis+.뉧etQm*w ;Q8o7pZiYԓ41z|7\<+~P(ye0#G4(q bUrCLqk4P׬\?QxTn@)FͥkG-D@!-RFTme;kwHG=bn8 %3o>adecN 8i}%! "uQ"a-F0f̺ p<;INVtB(nۢ2 6ChYd*Nm@ "/k.CbHC1^7 [ \T72xĄw/;X;h8:<4>:*_y^<6(MΦ,aC.E >k/SO9&5!o?/aGb&21Ia2^H92$;;!>F Pg-#KuE[TYj郗_F}|q,Kz<33[m"/+r}cxeILs#:qmic9L bh@ߪ PBi"qIr;XSjitJBa+T ^6)zo[^w SW+[1b-$h5UZ %a"k&ؽX|gX4dl@rIl@ݙgldg~g T?!M,ޞ9uV +QӴ\gvl`IM@,$p#$Gy0pRGN.tF`o9#>xA0 xczPєzaX-3.0^6&5M@EңQF^laO~ޏk:gQ5:i4KpaU|p *Ű2+}(;o .Vuq9ηfbweg1(,)@JZXR_M!i$n,eyY>{?HËWzMϰul?Z;sppt .Q:K5ؾǓOlM5tjȒ,K'K\Da` 4NZ>NN/~}v+O ʒC€ C)[ \K^T|ȝ1@% PpryT7ZRr:C RAiޒ躐 L_mbxTr4+E&M!1ȣ*R+6vȒGj%s>m+8o&T /\*ӏ=sVLKkH&Z=kt#=It3> Zc(3K4-;2|@H`Ǒk]S:"5ܘZ 7$~fO\tsfzR؈.!]8 k gxkIjkjȢѫWwdI݄L16BIYԋUY><< 8].ܿ4|֏`x25.ߖK-*?4QB>^J7p‰QEqtGTV]eCꢺ憤[akz$ش:7z,&u R롢[:vvjM WQφ-YΙwcWV ^u/r -ujg㕑+h[yoYc̘٫(\&pp跽O9rCYEL:F֮/$ {=9Ol[%tx}F*#kMg-bbe$I`l#EIJ͉̿ؑh4 P &OCvpbgLŜe4d֖qÀ@A(ü'ihp sU&+U]/PpY^Öj|Ef RX\c-nhuJ.}$'b}[HlbIEe>Q 몘tsJɓ|@ygI[5{ (zZAlDof`[œ^`yv.V+><þÍe6m&^Xkym#d]E Wx% ]XɅ'҄_bj*773R x}{;l&i]C]CsC+CcmӘM&?dh/2 ;x;ν{?d!VI>7@?Qxo0+NaZ֭ʺ @[8x;hi;m ~|뻴!"E0,u$FA C]o\^M4!G*|qOSϧ(&純 Y!п54JW"XFd"pA_e') y l0Q%ɶ>yv)U񧣅ѿ0wl"5+ fe*rƱeWҲTxpal 0\,yʆl:ezYҾtóǝwʭcVi77 +"u߮tEJ_#ղ!V"_fUh\^_>tO{eMfAn#jPܦ ;+.GKn,O+s_HE*Bet[lQHCy(`W'(W0BY{[_8\C݇HJTb7jhni2:9R0ۀT|w$Cݾkm&9W/(="ئ[am 'X\k\ (AF$ɽ&!J6,VASJpJj)d JN56PҲ| bgv _.j'wtpye}~IJ4Z !k@:j`)o+T\JLfEi=RF}F +lZ%&LxTn0W\u]I( T} UbԪXq;!U lΏq3UMd{αopu@-W^jz~ k v Z@]2B^upBJá ҔDŽ\h[M#e)s`1йZ ڊ m\m]Y+.֑b-d/e{IY YbXڱ.F[slx2t{圝ZS`g,cy y^Iigkjwl~γsA$UȻ: bv )KZyT`ib xwM˥zUíC=;xjh9RGdPԺEJL Hy';Hp7 8h֣r R6/ Km\LV [&'WH$; 8v4N\ h"P9Iqv'P)zդnvA$љ%X$JJPKhdz!KfJDZk}HZ!t=8؎}PUZɈf/TF+{ӭ:ΝGXn$|=UQV?-__XαtAz x{ޟ? ox;9sɼ& VƓ-Ndh2iff6F%.%X jV^|we;* R@3|CV@KUBu,8h\ 4D6q~c-ho4awd;6l<_kЧ=~Xiwr"y$ESIe\1M1!ϼ b2-c"`E+ƉPEo.U8y'`@'J=jTd{:#—ohbl;4+!\vYxk2eu4}wM5$kT2P;Ռ" ?=kSTiҞ6H?K1y6ixHX.Y$9r%|OݼWlkƑ0sUa?GYBcWgdq֑1I+CXĺ3dSa V*%M3!SMYWOǁ_p8|z܌^*pSwX-ފ.[Uꢠ7n`uaTY⊊Uqyľ1VΰwV;4;\e<ĺn[d=@Fƞ^͍5B}{vm浌60aSA c <0ic Tk/VBwHqq3HFDv  aq"Sdۂ4RGB"aW#oyV5vԛ|S4ٳM92_/3[bGm01}׽1_L&OI6Qn,Į6~k7 ́wq Uʄf'UFVM.P?61ZZ!VT:,YCGa}J7r])aa‘a ^:pc>Iß@3;y7ؙnң*>| h_Rv g>A n Ov $K~| @rGV DX-p)撬qeASрAN)R&h 節W[ Wmp.\%wn(I}Vݡ\wW P (ü~H'ju7{DP3C&foG*zw|D<oVV7~}x8ʚɛt-وxµk#<%.]Ē<]ĒT+#]C]CsC+Ccm͆M&` $'2ƒRBH [4Vjdbj'ɐǐpXYf2,pE܄B: ]fЋ0Eq-N%( vr-B#/6nO?G|48c,j%TYGsu"кH'L OmVAڲ#e L ]7HnEZ%`ե>+IxSvIMK,))VH/R(I+)H(H wqtUW UQ-V/K,LH/Q_x+K,L/I+)H/4EQxUmoF9KۗRNIB"UNbauw!rkc%IE;3<̦♐Y6kC 8_. 2񁼮U*2)dZ,1G$d"G sdnïF\PDGB-EzBcN-tr!3ѸR٘\͡#Ѯ^Bf^Rxq ~"ӔMEa]5#Hr҂ #j x5̔BHH`ʢHg-4IFǞ{:l,;z`c/5lܿ+7^wMF^u8*DʦoG;Mb!yUP㗚'y|D/xs70Ci,j :U=\c^)KKaZeidDHDѶ5$r"m@`ؘ%:/i0Ah s!r.ҠMQͤo wa l}|:t3k3}<qrz)2c=ZjǸ}UO;3z֜a^H6/CNמ[)OC,[v j?^%p6o:8:3zG Vm[#}xW!s#DM# ȿDZ)!{CY@d_솛P篋aΛ !Mc}xùsn_ 'k2uerqN>9-d!2.#]ҤҼR̅r Dxùm䙌26 `b`nghkPS.lV(HSR$S_PVR11- hEȏѲ,+(E=& [Cu}:Uy G|Ѷ |˘YJ]'+ {h?IaD-'=x>pp7mⱯPgG>ښbSz%4ITA^FG/?&:]Gz9cBKԦ6"IKTB& a* 1  ]8̔JN(ڌ1)<6_6,-y*e&iiF J 0((2CfbcqÎ wg|;-%җݎtߖ޲eca5npԡh^=f,^ȴ@dTþ?^Z b:FjVPқn'm皱όh$L^x}KAiQfF5x]j0 DAs_X l,y!_%zͼMBj-~Ft4̵& O^isi^O֥f_a1fԍ#3`!9͗:N !U@rgٰT^&zrYoϙSJ9-;KdǬ)o Cim Vex8:Zu#o+qR|dkN^sNO~3%źyZ?exi:4 ~_^HRN18a;-[Ez7lLǨyNDd]Ka^'+S-%yZ5a^xi:~BUZ.ۮN4hdnׁha*Wx7:Xy#>ݙ{N1_ҹ``RD4'7@@]3^xh:hc׎u0$@lԑN1\ Xo; Bj둓.ϋ)g||*ŲűbldJ$H>}4lWmj΂qq,69[7UvxV'}ˮV%R5|Y Ee%56Z F9k[13YԢ?`ƪښv3W9>'\UXbrŰe&Ӳ, ahĮ%M-{Z;v]iy]`p'4d  ZGzaOh_(+T0ߘF8e2SՊY+Sp+UuK^BAKnyqz; po,(`;W$p&j's8tϷ7/FNz}[_n4ֽ\h-%- ]%c[`+l1d8¸PtV %;uRθ_X+fS4l &?#&(XÖXUOLYR(+^ ]@vHEB p=bƋBp#Zʊ…81˱ֶQ#.uSԳcft7o8n{'E)Bʽʰ)ލdD4'nD z(?6r84/ZUȹ E [z9wg/bcJC П*1 A4ű\E ap%?' dj%lqYls<͢ dG8۴Xu^ϰpijϳ-{w+.lF$ӗ8 1&V0L%3K?W&8ώBPdNaAyb iP GݡoBZ ̸n-w $XZR:"T|dG:hwzL)[ZU[H[}^`x| mzƱN XU H3i62lY+cJ0jS؂6 zZ/)0&h= )3v{*u tQz-=bKqq/YnDpy}R% N؈SMP=ʕCG"!ߡ:?D58;ҡRa6|GW&][o(hqDTZCGL'kL}ip4]EKخ¹qyd@!;s=V)?{~y~ :%e/?E!ۨ@kCjt؝x#-{%C-ہ#fF,qL( k-uD5eEurxUZ=\8pPD?VL+Nj*NS3ґ(1t̄?,ֵTSڧn;=S24ZU4a+$}Ww <Ǜww,?@dgNK8M*+ 4dSf,sɝ=A;ve_PT#ec}!M$^NcoCڈεڦVj Y rs?hpSG gdA14wxۍG/#BfGsHtT,6/M+HcZ"Ir.ߩHZ`)Аў6ؚ;[@~FNI΢0/aPUxToFזET%|P![ƞ{mm6DIì=Ɏθ3^z#R{ȑ^=tM]!$n߼>;&+QIaH /k.Na}kgR*T ͈)82Lw`}neYAIM6#A0FPp\20Hcmv|ƥD ~}3qyui57??@D!/k]1A 3)(*tA B [ 戄'Jr8A'T_Յ2{n~ {ԃ'ĩ n/xե;ۍ &\VO@*t p^p3yz ̅y_;M }SQt<:cɡlTS5?-sjU~ǔvvy&=\lK#n5ٰHïZt+q"i@R|HWEw{٢Ӛ%Wn;):Kn̙Z?6)-߽?]g_p29.麽p05q>uTpVSP+,g2E}efG3.UBiM(9y 2ٟwogVBPu"5I1\iz ڔ<\\s7:S4 I0&LC…6Ґj0U~~BRG4?zJ^~_^Fܲ/o4xg}\hsfFܲ-iyxoy|3]i\i xot*.)ixPbzE>i xϼy_^wNxT]o0}߯Zl( XX]MnĎ웕s ~sϹZY]%X7ִ -6UDCnl-iOY25j`c,X5*YU[pz 3J ,Tr?E-VkzH  Ef]BwOA &ed];owRs,hpw{*xG;x+K]H,}ީ1J& f0XI[JSV;IO3{L4]^;3f3[n>:oQ۽*}qdnƚdْn/ewb9_׌[`!‰-9c87 - Ghx<>{~M⅘8y4}_'v*v:xi2'ӳx<^$G.ZYX#חY=n6as; zaFϴXm'(l*{H9h*^,h.G+?[+򘽃z1JKjU{AH95(ܑE'OQ-KVYw{5HZ(} t=T?z5]cp^t !X:0bwjvxӓ*gL"yQ0"+%{lTEZ9?ZLGx{sC :&[{Ytx&x4i'K06,x(/P 'Q ?Õ_(dz(pdxôq&[2*75TTJ .G\~tftp-hpa/.git/refs/0000775000000000000000000000000013573457575011316 5ustar tftp-hpa/.git/refs/heads/0000775000000000000000000000000013573461024012362 5ustar tftp-hpa/.git/refs/heads/lp-1855490-revert-default-path-focal0000664000000000000000000000005113573461024020514 0ustar 8b478ef6f3d3f3f182efe041c0a7eb206f4f6a4d tftp-hpa/.git/refs/heads/ubuntu/0000775000000000000000000000000013573457576013725 5ustar tftp-hpa/.git/refs/heads/ubuntu/devel0000664000000000000000000000005113573457576014743 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/0000775000000000000000000000000013573461024012754 5ustar tftp-hpa/.git/refs/remotes/paelzer/0000775000000000000000000000000013573461024014416 5ustar tftp-hpa/.git/refs/remotes/paelzer/lp-1855490-revert-default-path-focal0000664000000000000000000000005113573461024022550 0ustar 02110bff3aa99337274e33f466b12405cd80b177 tftp-hpa/.git/refs/remotes/pkg/0000775000000000000000000000000013573457575013555 5ustar tftp-hpa/.git/refs/remotes/pkg/applied/0000775000000000000000000000000013573457575015173 5ustar tftp-hpa/.git/refs/remotes/pkg/applied/debian/0000775000000000000000000000000013573457575016415 5ustar tftp-hpa/.git/refs/remotes/pkg/applied/debian/buster0000664000000000000000000000005113573457575017640 0ustar c2b8713ba0f469385b5600222e0d4bd60646a6b0 tftp-hpa/.git/refs/remotes/pkg/applied/debian/experimental0000664000000000000000000000005113573457575021031 0ustar f01a9bcb12f21e6a9dde0fa5579ce54599fe0ee0 tftp-hpa/.git/refs/remotes/pkg/applied/debian/jessie0000664000000000000000000000005113573457575017616 0ustar 7156d114b1d60b86cf2192a802f25a78ec182153 tftp-hpa/.git/refs/remotes/pkg/applied/debian/lenny0000664000000000000000000000005113573457575017461 0ustar d8ea5edfa5e1bb53999b9081c94c4f51f032f8b0 tftp-hpa/.git/refs/remotes/pkg/applied/debian/sid0000664000000000000000000000005113573457575017113 0ustar c2b8713ba0f469385b5600222e0d4bd60646a6b0 tftp-hpa/.git/refs/remotes/pkg/applied/debian/squeeze0000664000000000000000000000005113573457575020015 0ustar 250c6888e017e0a0da5046d9e3690abafbe635c3 tftp-hpa/.git/refs/remotes/pkg/applied/debian/stretch0000664000000000000000000000005113573457575020010 0ustar c2b8713ba0f469385b5600222e0d4bd60646a6b0 tftp-hpa/.git/refs/remotes/pkg/applied/debian/wheezy0000664000000000000000000000005113573457575017647 0ustar d933fd2df75ac0636a20348c902a8c6e18eb9dac tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/0000775000000000000000000000000013573457575016515 5ustar tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/artful0000664000000000000000000000005113573457575017731 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/artful-devel0000664000000000000000000000005113573457575021026 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/bionic0000664000000000000000000000005113573457575017677 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/bionic-devel0000664000000000000000000000005113573457575020774 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/breezy0000664000000000000000000000005113573457575017734 0ustar 577991a94fda41b857796cef3cbcefd6825d15e9 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/breezy-devel0000664000000000000000000000005113573457575021031 0ustar 577991a94fda41b857796cef3cbcefd6825d15e9 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/cosmic0000664000000000000000000000005113573457575017711 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/cosmic-devel0000664000000000000000000000005113573457575021006 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/dapper0000664000000000000000000000005113573457575017707 0ustar 0aa88140426c93adbfc3ab2912f2e7aed09c4d65 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/dapper-devel0000664000000000000000000000005113573457575021004 0ustar 0aa88140426c93adbfc3ab2912f2e7aed09c4d65 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/devel0000664000000000000000000000005113573457575017533 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/disco0000664000000000000000000000005113573457575017535 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/disco-devel0000664000000000000000000000005113573457575020632 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/edgy0000664000000000000000000000005113573457575017364 0ustar 57a88808920ffc57d835fa6ace5f28e003fc7973 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/edgy-devel0000664000000000000000000000005113573457575020461 0ustar 57a88808920ffc57d835fa6ace5f28e003fc7973 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/eoan0000664000000000000000000000005113573457575017356 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/eoan-devel0000664000000000000000000000005113573457575020453 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/feisty0000664000000000000000000000005113573457575017737 0ustar 36003427da410abd8248b4a2f3af4d0c01ba65a8 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/feisty-devel0000664000000000000000000000005113573457575021034 0ustar 36003427da410abd8248b4a2f3af4d0c01ba65a8 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/focal0000664000000000000000000000005113573457575017520 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/focal-devel0000664000000000000000000000005113573457575020615 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/gutsy0000664000000000000000000000005113573457575017607 0ustar 6c57a148c5131cf6b303795e27ac33e45b462f08 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/gutsy-devel0000664000000000000000000000005113573457575020704 0ustar 6c57a148c5131cf6b303795e27ac33e45b462f08 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/hardy0000664000000000000000000000005113573457575017543 0ustar 5244b8335b152ce6c30875196cd77d5f0b8a6779 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/hardy-devel0000664000000000000000000000005113573457575020640 0ustar 5244b8335b152ce6c30875196cd77d5f0b8a6779 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/hoary0000664000000000000000000000005113573457575017556 0ustar 490487259f3ae3efc4cb08f2c79b06694dd961f2 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/hoary-devel0000664000000000000000000000005113573457575020653 0ustar 490487259f3ae3efc4cb08f2c79b06694dd961f2 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/intrepid0000664000000000000000000000005113573457575020252 0ustar c86c1379f8497ff98409e0017f9ea55a15fd01fe tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/intrepid-devel0000664000000000000000000000005113573457575021347 0ustar c86c1379f8497ff98409e0017f9ea55a15fd01fe tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/jaunty0000664000000000000000000000005113573457575017746 0ustar 44e5359435af779989f7b92dcd980c1a44cdd11d tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/jaunty-devel0000664000000000000000000000005113573457575021043 0ustar 44e5359435af779989f7b92dcd980c1a44cdd11d tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/karmic0000664000000000000000000000005113573457575017702 0ustar bb1a7a1c3fc956797f9bd8778ee59c8124392732 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/karmic-devel0000664000000000000000000000005113573457575020777 0ustar bb1a7a1c3fc956797f9bd8778ee59c8124392732 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/lucid0000664000000000000000000000005113573457575017534 0ustar 1ab140d17c8dce63e4c7bac63424915e653eaa55 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/lucid-devel0000664000000000000000000000005113573457575020631 0ustar f440d37c9c2b2d46361ca09996f2caef37a804c3 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/lucid-proposed0000664000000000000000000000005113573457575021365 0ustar f440d37c9c2b2d46361ca09996f2caef37a804c3 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/lucid-updates0000664000000000000000000000005113573457575021177 0ustar f440d37c9c2b2d46361ca09996f2caef37a804c3 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/maverick0000664000000000000000000000005113573457575020235 0ustar 3e927f935d3886d49c14b03df6058c7c39fbafbb tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/maverick-devel0000664000000000000000000000005113573457575021332 0ustar 3e927f935d3886d49c14b03df6058c7c39fbafbb tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/natty0000664000000000000000000000005113573457575017573 0ustar 95296d2a1c4ae18176d9a7cb83689fcc4eb9608f tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/natty-devel0000664000000000000000000000005113573457575020670 0ustar 95296d2a1c4ae18176d9a7cb83689fcc4eb9608f tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/oneiric0000664000000000000000000000005113573457575020064 0ustar 9724e9bc080049c20c8f9921543e45f0b6e6ee9a tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/oneiric-devel0000664000000000000000000000005113573457575021161 0ustar 9724e9bc080049c20c8f9921543e45f0b6e6ee9a tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/precise0000664000000000000000000000005113573457575020066 0ustar 18ff52960ef4b8ca4a6d859357820f17619370f3 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/precise-devel0000664000000000000000000000005113573457575021163 0ustar 18ff52960ef4b8ca4a6d859357820f17619370f3 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/quantal0000664000000000000000000000005113573457575020101 0ustar 47e3d55f68466ec651ca198c4792e574e2890499 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/quantal-devel0000664000000000000000000000005113573457575021176 0ustar 47e3d55f68466ec651ca198c4792e574e2890499 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/raring0000664000000000000000000000005113573457575017716 0ustar 47026010c8c49cff7290ee96c88ed20730e60841 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/raring-devel0000664000000000000000000000005113573457575021013 0ustar 47026010c8c49cff7290ee96c88ed20730e60841 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/raring-proposed0000664000000000000000000000005113573457575021547 0ustar 47026010c8c49cff7290ee96c88ed20730e60841 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/saucy0000664000000000000000000000005113573457575017560 0ustar e42a6864d7fc2e93c2abe04d652a081a453e6e15 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/saucy-devel0000664000000000000000000000005113573457575020655 0ustar e42a6864d7fc2e93c2abe04d652a081a453e6e15 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/saucy-proposed0000664000000000000000000000005113573457575021411 0ustar e42a6864d7fc2e93c2abe04d652a081a453e6e15 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/trusty0000664000000000000000000000005113573457575020006 0ustar e42a6864d7fc2e93c2abe04d652a081a453e6e15 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/trusty-devel0000664000000000000000000000005113573457575021103 0ustar a1c32717593549aa2354ab5629ac5270e9f50691 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/trusty-proposed0000664000000000000000000000005113573457575021637 0ustar a1c32717593549aa2354ab5629ac5270e9f50691 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/trusty-updates0000664000000000000000000000005113573457575021451 0ustar a1c32717593549aa2354ab5629ac5270e9f50691 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/utopic0000664000000000000000000000005113573457575017737 0ustar 83347ca5ec79d7bf1fb3272e46c0192c108be4cd tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/utopic-devel0000664000000000000000000000005113573457575021034 0ustar 83347ca5ec79d7bf1fb3272e46c0192c108be4cd tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/utopic-proposed0000664000000000000000000000005113573457575021570 0ustar 83347ca5ec79d7bf1fb3272e46c0192c108be4cd tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/vivid0000664000000000000000000000005113573457575017555 0ustar c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/vivid-devel0000664000000000000000000000005113573457575020652 0ustar c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/vivid-proposed0000664000000000000000000000005113573457575021406 0ustar c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/warty0000664000000000000000000000005113573457575017602 0ustar d97575e72e01cc2c6d0d99012d793818f458ab83 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/warty-devel0000664000000000000000000000005113573457575020677 0ustar d97575e72e01cc2c6d0d99012d793818f458ab83 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/wily0000664000000000000000000000005113573457575017420 0ustar c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/wily-devel0000664000000000000000000000005113573457575020515 0ustar c279e0c2ccb62ee14c820d607c0af2206cdfcdf0 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/xenial0000664000000000000000000000005113573457575017714 0ustar 61e6432cc5c7351084db9877323d989a3014ec2f tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/xenial-devel0000664000000000000000000000005113573457575021011 0ustar 728539c01eb4abf8d5a6ab29e91c0b741b396d40 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/xenial-proposed0000664000000000000000000000005113573457575021545 0ustar 728539c01eb4abf8d5a6ab29e91c0b741b396d40 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/xenial-updates0000664000000000000000000000005113573457575021357 0ustar 728539c01eb4abf8d5a6ab29e91c0b741b396d40 tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/yakkety0000664000000000000000000000005113573457575020115 0ustar 61e6432cc5c7351084db9877323d989a3014ec2f tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/yakkety-devel0000664000000000000000000000005113573457575021212 0ustar 3b13a4f5e020abde57ba5413ef379753a60df23d tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/yakkety-proposed0000664000000000000000000000005113573457575021746 0ustar 3b13a4f5e020abde57ba5413ef379753a60df23d tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/yakkety-updates0000664000000000000000000000005113573457575021560 0ustar 3b13a4f5e020abde57ba5413ef379753a60df23d tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/zesty0000664000000000000000000000005113573457575017612 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/zesty-devel0000664000000000000000000000005113573457575020707 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/applied/ubuntu/zesty-proposed0000664000000000000000000000005113573457575021443 0ustar 67cea9188216356236f2047b02fe38339581d5bf tftp-hpa/.git/refs/remotes/pkg/debian/0000775000000000000000000000000013573457575014777 5ustar tftp-hpa/.git/refs/remotes/pkg/debian/buster0000664000000000000000000000005113573457575016222 0ustar 5c49ea217cbf69336a1d700da59e66a8a80d9173 tftp-hpa/.git/refs/remotes/pkg/debian/experimental0000664000000000000000000000005113573457575017413 0ustar 512f181ed625ebbbb70af3726540b83621682153 tftp-hpa/.git/refs/remotes/pkg/debian/jessie0000664000000000000000000000005113573457575016200 0ustar bd767e49a89d139b10927c56477892534fff4308 tftp-hpa/.git/refs/remotes/pkg/debian/lenny0000664000000000000000000000005113573457575016043 0ustar c2522a7dbfc2373c3dd26824731cd08d86da322d tftp-hpa/.git/refs/remotes/pkg/debian/sid0000664000000000000000000000005113573457575015475 0ustar 5c49ea217cbf69336a1d700da59e66a8a80d9173 tftp-hpa/.git/refs/remotes/pkg/debian/squeeze0000664000000000000000000000005113573457575016377 0ustar a7d09184612c33e8104ee7e4458dfeeafcf834c6 tftp-hpa/.git/refs/remotes/pkg/debian/stretch0000664000000000000000000000005113573457575016372 0ustar 5c49ea217cbf69336a1d700da59e66a8a80d9173 tftp-hpa/.git/refs/remotes/pkg/debian/wheezy0000664000000000000000000000005113573457575016231 0ustar 4fe6f206eee711959b657d3d534cf91b88036a22 tftp-hpa/.git/refs/remotes/pkg/importer/0000775000000000000000000000000013573457575015416 5ustar tftp-hpa/.git/refs/remotes/pkg/importer/debian/0000775000000000000000000000000013573457575016640 5ustar tftp-hpa/.git/refs/remotes/pkg/importer/debian/dsc0000664000000000000000000000005113573457575017330 0ustar a01679b61cff5dcc2c49913c5dd9556855de0944 tftp-hpa/.git/refs/remotes/pkg/importer/debian/pristine-tar0000664000000000000000000000005113573457575021200 0ustar 1ed87d5787efb8ba812fa26f9c15a3fff97c69f3 tftp-hpa/.git/refs/remotes/pkg/importer/ubuntu/0000775000000000000000000000000013573457575016740 5ustar tftp-hpa/.git/refs/remotes/pkg/importer/ubuntu/dsc0000664000000000000000000000005113573457575017430 0ustar 4305dbcef2e6734db3f46a4c390ea7b46f2e9707 tftp-hpa/.git/refs/remotes/pkg/importer/ubuntu/pristine-tar0000664000000000000000000000005113573457575021300 0ustar 6b82f77c1c0dc93196aba2132eeded7c1915ed43 tftp-hpa/.git/refs/remotes/pkg/ubuntu/0000775000000000000000000000000013573457576015100 5ustar tftp-hpa/.git/refs/remotes/pkg/ubuntu/artful0000664000000000000000000000005113573457575016313 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/artful-devel0000664000000000000000000000005113573457575017410 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/bionic0000664000000000000000000000005113573457575016261 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/bionic-devel0000664000000000000000000000005113573457575017356 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/breezy0000664000000000000000000000005113573457575016316 0ustar cc67b930cee6bd60508748e8d18be6f7a1e1e0f2 tftp-hpa/.git/refs/remotes/pkg/ubuntu/breezy-devel0000664000000000000000000000005113573457575017413 0ustar cc67b930cee6bd60508748e8d18be6f7a1e1e0f2 tftp-hpa/.git/refs/remotes/pkg/ubuntu/cosmic0000664000000000000000000000005113573457575016273 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/cosmic-devel0000664000000000000000000000005113573457575017370 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/dapper0000664000000000000000000000005113573457575016271 0ustar 57f64ea1681b979ce8ebaa1d9276cea83e2d19d7 tftp-hpa/.git/refs/remotes/pkg/ubuntu/dapper-devel0000664000000000000000000000005113573457575017366 0ustar 57f64ea1681b979ce8ebaa1d9276cea83e2d19d7 tftp-hpa/.git/refs/remotes/pkg/ubuntu/devel0000664000000000000000000000005113573457575016115 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/disco0000664000000000000000000000005113573457575016117 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/disco-devel0000664000000000000000000000005113573457576017215 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/edgy0000664000000000000000000000005113573457576015747 0ustar 23d92ddf8bcfa1ec50fc00dc0932c62b2b3a972b tftp-hpa/.git/refs/remotes/pkg/ubuntu/edgy-devel0000664000000000000000000000005113573457576017044 0ustar 23d92ddf8bcfa1ec50fc00dc0932c62b2b3a972b tftp-hpa/.git/refs/remotes/pkg/ubuntu/eoan0000664000000000000000000000005113573457576015741 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/eoan-devel0000664000000000000000000000005113573457576017036 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/feisty0000664000000000000000000000005113573457576016322 0ustar be02a01e9e961d0269689cbc3d4c686e5ae9edb7 tftp-hpa/.git/refs/remotes/pkg/ubuntu/feisty-devel0000664000000000000000000000005113573457576017417 0ustar be02a01e9e961d0269689cbc3d4c686e5ae9edb7 tftp-hpa/.git/refs/remotes/pkg/ubuntu/focal0000664000000000000000000000005113573457576016103 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/focal-devel0000664000000000000000000000005113573457576017200 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/gutsy0000664000000000000000000000005113573457576016172 0ustar 693fd5b609fbfbff3b636b651dff2f3aa4f9131e tftp-hpa/.git/refs/remotes/pkg/ubuntu/gutsy-devel0000664000000000000000000000005113573457576017267 0ustar 693fd5b609fbfbff3b636b651dff2f3aa4f9131e tftp-hpa/.git/refs/remotes/pkg/ubuntu/hardy0000664000000000000000000000005113573457576016126 0ustar 348da8c88554f002e655db9640d03e49aad7b210 tftp-hpa/.git/refs/remotes/pkg/ubuntu/hardy-devel0000664000000000000000000000005113573457576017223 0ustar 348da8c88554f002e655db9640d03e49aad7b210 tftp-hpa/.git/refs/remotes/pkg/ubuntu/hoary0000664000000000000000000000005113573457576016141 0ustar e66f4ab108a70c40535cbaba012b600294afb60f tftp-hpa/.git/refs/remotes/pkg/ubuntu/hoary-devel0000664000000000000000000000005113573457576017236 0ustar e66f4ab108a70c40535cbaba012b600294afb60f tftp-hpa/.git/refs/remotes/pkg/ubuntu/intrepid0000664000000000000000000000005113573457576016635 0ustar b8ddfbedfae71e677296e6455e237ef82270e588 tftp-hpa/.git/refs/remotes/pkg/ubuntu/intrepid-devel0000664000000000000000000000005113573457576017732 0ustar b8ddfbedfae71e677296e6455e237ef82270e588 tftp-hpa/.git/refs/remotes/pkg/ubuntu/jaunty0000664000000000000000000000005113573457576016331 0ustar 25eaf63790e80186f8c4616e189eadfd1c11dea7 tftp-hpa/.git/refs/remotes/pkg/ubuntu/jaunty-devel0000664000000000000000000000005113573457576017426 0ustar 25eaf63790e80186f8c4616e189eadfd1c11dea7 tftp-hpa/.git/refs/remotes/pkg/ubuntu/karmic0000664000000000000000000000005113573457576016265 0ustar c6dcd455fede015c47754ccd5098e079f188354d tftp-hpa/.git/refs/remotes/pkg/ubuntu/karmic-devel0000664000000000000000000000005113573457576017362 0ustar c6dcd455fede015c47754ccd5098e079f188354d tftp-hpa/.git/refs/remotes/pkg/ubuntu/lucid0000664000000000000000000000005113573457576016117 0ustar 642e5e7f3442b50be59264a929a1af4462c487d0 tftp-hpa/.git/refs/remotes/pkg/ubuntu/lucid-devel0000664000000000000000000000005113573457576017214 0ustar ff5a77ea5c9e5f2210b13b5ce0df5e034d665568 tftp-hpa/.git/refs/remotes/pkg/ubuntu/lucid-proposed0000664000000000000000000000005113573457576017750 0ustar ff5a77ea5c9e5f2210b13b5ce0df5e034d665568 tftp-hpa/.git/refs/remotes/pkg/ubuntu/lucid-updates0000664000000000000000000000005113573457576017562 0ustar ff5a77ea5c9e5f2210b13b5ce0df5e034d665568 tftp-hpa/.git/refs/remotes/pkg/ubuntu/maverick0000664000000000000000000000005113573457576016620 0ustar 80f5918faa638c1ba11d190eeaf887c54b0f7e12 tftp-hpa/.git/refs/remotes/pkg/ubuntu/maverick-devel0000664000000000000000000000005113573457576017715 0ustar 80f5918faa638c1ba11d190eeaf887c54b0f7e12 tftp-hpa/.git/refs/remotes/pkg/ubuntu/natty0000664000000000000000000000005113573457576016156 0ustar ceb71e55315ce00ed3994ad101211c9dc3e3d73e tftp-hpa/.git/refs/remotes/pkg/ubuntu/natty-devel0000664000000000000000000000005113573457576017253 0ustar ceb71e55315ce00ed3994ad101211c9dc3e3d73e tftp-hpa/.git/refs/remotes/pkg/ubuntu/oneiric0000664000000000000000000000005113573457576016447 0ustar 5b33583bd3e58940c597550729896a6b6720ed06 tftp-hpa/.git/refs/remotes/pkg/ubuntu/oneiric-devel0000664000000000000000000000005113573457576017544 0ustar 5b33583bd3e58940c597550729896a6b6720ed06 tftp-hpa/.git/refs/remotes/pkg/ubuntu/precise0000664000000000000000000000005113573457576016451 0ustar b82367c18af0f6167ad81c90157f4ab8cad5f7db tftp-hpa/.git/refs/remotes/pkg/ubuntu/precise-devel0000664000000000000000000000005113573457576017546 0ustar b82367c18af0f6167ad81c90157f4ab8cad5f7db tftp-hpa/.git/refs/remotes/pkg/ubuntu/quantal0000664000000000000000000000005113573457576016464 0ustar 957b3dd9590885cef265f53a2c6ebff22da4de51 tftp-hpa/.git/refs/remotes/pkg/ubuntu/quantal-devel0000664000000000000000000000005113573457576017561 0ustar 957b3dd9590885cef265f53a2c6ebff22da4de51 tftp-hpa/.git/refs/remotes/pkg/ubuntu/raring0000664000000000000000000000005113573457576016301 0ustar 3a70ea8d6d216ce1910a365464e4759b36da0720 tftp-hpa/.git/refs/remotes/pkg/ubuntu/raring-devel0000664000000000000000000000005113573457576017376 0ustar 3a70ea8d6d216ce1910a365464e4759b36da0720 tftp-hpa/.git/refs/remotes/pkg/ubuntu/raring-proposed0000664000000000000000000000005113573457576020132 0ustar 3a70ea8d6d216ce1910a365464e4759b36da0720 tftp-hpa/.git/refs/remotes/pkg/ubuntu/saucy0000664000000000000000000000005113573457576016143 0ustar 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 tftp-hpa/.git/refs/remotes/pkg/ubuntu/saucy-devel0000664000000000000000000000005113573457576017240 0ustar 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 tftp-hpa/.git/refs/remotes/pkg/ubuntu/saucy-proposed0000664000000000000000000000005113573457576017774 0ustar 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 tftp-hpa/.git/refs/remotes/pkg/ubuntu/trusty0000664000000000000000000000005113573457576016371 0ustar 1a3ff29f9f4f3599d56f2a8e55810efa84029c31 tftp-hpa/.git/refs/remotes/pkg/ubuntu/trusty-devel0000664000000000000000000000005113573457576017466 0ustar 46f823cc45172142b2ef2635589e0e6daba6d829 tftp-hpa/.git/refs/remotes/pkg/ubuntu/trusty-proposed0000664000000000000000000000005113573457576020222 0ustar 46f823cc45172142b2ef2635589e0e6daba6d829 tftp-hpa/.git/refs/remotes/pkg/ubuntu/trusty-updates0000664000000000000000000000005113573457576020034 0ustar 46f823cc45172142b2ef2635589e0e6daba6d829 tftp-hpa/.git/refs/remotes/pkg/ubuntu/utopic0000664000000000000000000000005113573457576016322 0ustar be82e55981812491d046cd4778a896c21c6a166c tftp-hpa/.git/refs/remotes/pkg/ubuntu/utopic-devel0000664000000000000000000000005113573457576017417 0ustar be82e55981812491d046cd4778a896c21c6a166c tftp-hpa/.git/refs/remotes/pkg/ubuntu/utopic-proposed0000664000000000000000000000005113573457576020153 0ustar be82e55981812491d046cd4778a896c21c6a166c tftp-hpa/.git/refs/remotes/pkg/ubuntu/vivid0000664000000000000000000000005113573457576016140 0ustar 8d632f7903787dad498b3635102b93e189562605 tftp-hpa/.git/refs/remotes/pkg/ubuntu/vivid-devel0000664000000000000000000000005113573457576017235 0ustar 8d632f7903787dad498b3635102b93e189562605 tftp-hpa/.git/refs/remotes/pkg/ubuntu/vivid-proposed0000664000000000000000000000005113573457576017771 0ustar 8d632f7903787dad498b3635102b93e189562605 tftp-hpa/.git/refs/remotes/pkg/ubuntu/warty0000664000000000000000000000005113573457576016165 0ustar 339c1a6e58d04249785c8844d789c0045cef7407 tftp-hpa/.git/refs/remotes/pkg/ubuntu/warty-devel0000664000000000000000000000005113573457576017262 0ustar 339c1a6e58d04249785c8844d789c0045cef7407 tftp-hpa/.git/refs/remotes/pkg/ubuntu/wily0000664000000000000000000000005113573457576016003 0ustar 8d632f7903787dad498b3635102b93e189562605 tftp-hpa/.git/refs/remotes/pkg/ubuntu/wily-devel0000664000000000000000000000005113573457576017100 0ustar 8d632f7903787dad498b3635102b93e189562605 tftp-hpa/.git/refs/remotes/pkg/ubuntu/xenial0000664000000000000000000000005113573457576016277 0ustar 44b048d1af79661b17c1f3e940ecbe8af704bee3 tftp-hpa/.git/refs/remotes/pkg/ubuntu/xenial-devel0000664000000000000000000000005113573457576017374 0ustar fd8e94ca67e7f81ee3499b381281f6d330647671 tftp-hpa/.git/refs/remotes/pkg/ubuntu/xenial-proposed0000664000000000000000000000005113573457576020130 0ustar fd8e94ca67e7f81ee3499b381281f6d330647671 tftp-hpa/.git/refs/remotes/pkg/ubuntu/xenial-updates0000664000000000000000000000005113573457576017742 0ustar fd8e94ca67e7f81ee3499b381281f6d330647671 tftp-hpa/.git/refs/remotes/pkg/ubuntu/yakkety0000664000000000000000000000005113573457576016500 0ustar 44b048d1af79661b17c1f3e940ecbe8af704bee3 tftp-hpa/.git/refs/remotes/pkg/ubuntu/yakkety-devel0000664000000000000000000000005113573457576017575 0ustar 9338ffa8853eb4b5c0c7304895c7163c4a7ab655 tftp-hpa/.git/refs/remotes/pkg/ubuntu/yakkety-proposed0000664000000000000000000000005113573457576020331 0ustar 9338ffa8853eb4b5c0c7304895c7163c4a7ab655 tftp-hpa/.git/refs/remotes/pkg/ubuntu/yakkety-updates0000664000000000000000000000005113573457576020143 0ustar 9338ffa8853eb4b5c0c7304895c7163c4a7ab655 tftp-hpa/.git/refs/remotes/pkg/ubuntu/zesty0000664000000000000000000000005113573457576016175 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/zesty-devel0000664000000000000000000000005113573457576017272 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/remotes/pkg/ubuntu/zesty-proposed0000664000000000000000000000005113573457576020026 0ustar bc4b0efc22d8f45dff44424c070cb037f6e19c90 tftp-hpa/.git/refs/tags/0000775000000000000000000000000013573461024012234 5ustar tftp-hpa/.git/refs/tags/logical/0000775000000000000000000000000013573460775013662 5ustar tftp-hpa/.git/refs/tags/logical/5.2+20150808-1ubuntu30000664000000000000000000000005113573460775016474 0ustar 8b13a65e835a906fd5b06d067c53bfa10b3bc345 tftp-hpa/.git/refs/tags/paelzer/0000775000000000000000000000000013573461024013676 5ustar tftp-hpa/.git/refs/tags/paelzer/logical/0000775000000000000000000000000013573461024015310 5ustar tftp-hpa/.git/refs/tags/paelzer/logical/5.2+20150808-1ubuntu30000664000000000000000000000005113573461024020122 0ustar 8b13a65e835a906fd5b06d067c53bfa10b3bc345 tftp-hpa/.git/refs/tags/pkg/0000775000000000000000000000000013573461024013015 5ustar tftp-hpa/.git/refs/tags/pkg/applied/0000775000000000000000000000000013573457576014454 5ustar tftp-hpa/.git/refs/tags/pkg/applied/0.36-10000664000000000000000000000005113573457576015117 0ustar fa792cb6da6d59aa5644b00a379b5ca7327ee7c9 tftp-hpa/.git/refs/tags/pkg/applied/0.40-20000664000000000000000000000005113573457576015113 0ustar a7a65c2f2025459e7446baee070255cea9ac5472 tftp-hpa/.git/refs/tags/pkg/applied/0.40-2ubuntu10000664000000000000000000000005113573457576016437 0ustar 92203ecc786fcb754cdba7a670fabab7ae7f584a tftp-hpa/.git/refs/tags/pkg/applied/0.40-2ubuntu20000664000000000000000000000005113573457576016440 0ustar dfbe7d59e2373550224853fa121fef420ff917e5 tftp-hpa/.git/refs/tags/pkg/applied/0.40-4.1ubuntu10000664000000000000000000000005113573457576016600 0ustar 4821736a394c5101c0ee187fa75ef624ac1d7c74 tftp-hpa/.git/refs/tags/pkg/applied/0.42-1ubuntu10000664000000000000000000000005113573457576016440 0ustar 87cacfb40acdf1cd6ae7eb7a3dd8d3e982d33fd9 tftp-hpa/.git/refs/tags/pkg/applied/0.42-1ubuntu20000664000000000000000000000005113573457576016441 0ustar f7b85ed079d67e50dd0c7cdf25c450188dd0648b tftp-hpa/.git/refs/tags/pkg/applied/0.43-1.1ubuntu10000664000000000000000000000005113573457576016600 0ustar 9762b3233ce5754c2dd4c47e4ae7b021d218a185 tftp-hpa/.git/refs/tags/pkg/applied/0.43-1ubuntu10000664000000000000000000000005113573457576016441 0ustar f5e40c049a204a243d8f11fe9e4657ab3facfbdf tftp-hpa/.git/refs/tags/pkg/applied/0.43-1ubuntu20000664000000000000000000000005113573457576016442 0ustar 49db52f76e4dce613aaf02b9a4c0bf6b5feb9394 tftp-hpa/.git/refs/tags/pkg/applied/0.48-1ubuntu10000664000000000000000000000005113573457576016446 0ustar 8c9580f907d21656eb4e64c38b5e0347dc9644fa tftp-hpa/.git/refs/tags/pkg/applied/0.48-2.20000664000000000000000000000005113573457576015263 0ustar d0d0c9dbb75aca0b559f436360eeb3abb76a68bc tftp-hpa/.git/refs/tags/pkg/applied/0.48-2.2ubuntu10000664000000000000000000000005113573457576016607 0ustar e38f672e4a107b02b83a7c186860ca08552b27f4 tftp-hpa/.git/refs/tags/pkg/applied/0.48-2.30000664000000000000000000000005113573457576015264 0ustar 4f9181c4b104d2673aa87b91857b580310f053e6 tftp-hpa/.git/refs/tags/pkg/applied/0.48-2.3ubuntu10000664000000000000000000000005113573457576016610 0ustar 58af1f794a091afe7bad0137393c853e2d577524 tftp-hpa/.git/refs/tags/pkg/applied/0.48-2ubuntu10000664000000000000000000000005113573457576016447 0ustar f123a677970f8fe34fe4fa5e288960b08479e9e6 tftp-hpa/.git/refs/tags/pkg/applied/0.49-10000664000000000000000000000005113573457576015123 0ustar 6ca000a5798ec4e564ba9fd157602cb0c58a151b tftp-hpa/.git/refs/tags/pkg/applied/0.49-1.10000664000000000000000000000005113573457576015262 0ustar 92cf771a9b8e22b003a0bdc1098e8a17c88fdb88 tftp-hpa/.git/refs/tags/pkg/applied/5.0-100000664000000000000000000000005113573457576015113 0ustar c4d7e7210f87371bf7d6d81f0191f360ad6e6b84 tftp-hpa/.git/refs/tags/pkg/applied/5.0-110000664000000000000000000000005113573457576015114 0ustar 7fb649c320717df1bc8c656919fae6f15caae460 tftp-hpa/.git/refs/tags/pkg/applied/5.0-11ubuntu10000664000000000000000000000005113573457576016440 0ustar 46ccea99c2a95ec7cca0df1e70178378886b5e07 tftp-hpa/.git/refs/tags/pkg/applied/5.0-11ubuntu20000664000000000000000000000005113573457576016441 0ustar 21b9181481343427789d9f2bb99f405f0fd50133 tftp-hpa/.git/refs/tags/pkg/applied/5.0-11ubuntu2.10000664000000000000000000000005113573457576016600 0ustar 0ebfa8904112d7321bc72bcaa87e53abf224552e tftp-hpa/.git/refs/tags/pkg/applied/5.0-120000664000000000000000000000005113573457576015115 0ustar e7efa04438e9cbb288c6b9890faa414a63de4686 tftp-hpa/.git/refs/tags/pkg/applied/5.0-130000664000000000000000000000005113573457576015116 0ustar f0b857611117b7d515eedd0ea39acc4d26ee2c11 tftp-hpa/.git/refs/tags/pkg/applied/5.0-13ubuntu10000664000000000000000000000005113573457576016442 0ustar 36ff8e20d4284c57f1bdda47636ac713cfaa9f7b tftp-hpa/.git/refs/tags/pkg/applied/5.0-140000664000000000000000000000005113573457576015117 0ustar 59f7f75ca39a76b7097286fb8f7f923a6d3288b1 tftp-hpa/.git/refs/tags/pkg/applied/5.0-14ubuntu10000664000000000000000000000005113573457576016443 0ustar a0813fdfd9bcae128a20448e55dc0b072ebfabce tftp-hpa/.git/refs/tags/pkg/applied/5.0-150000664000000000000000000000005113573457576015120 0ustar bcfb7a0581870b0fdd724f8ab7e6b443fb537592 tftp-hpa/.git/refs/tags/pkg/applied/5.0-160000664000000000000000000000005113573457576015121 0ustar 23bf4c2d5b2083cd0cfa0e3d9a7f016133f260cd tftp-hpa/.git/refs/tags/pkg/applied/5.0-16ubuntu10000664000000000000000000000005113573457576016445 0ustar 667d5fa8486d1bad39abd66cd71ecb2e8f18e50c tftp-hpa/.git/refs/tags/pkg/applied/5.0-170000664000000000000000000000005113573457576015122 0ustar 4cfdd76c5d75cfed38c39598d32cdf53db97c94c tftp-hpa/.git/refs/tags/pkg/applied/5.0-180000664000000000000000000000005113573457576015123 0ustar aa2f262395da7a8160882633488ce0fa8a36ea92 tftp-hpa/.git/refs/tags/pkg/applied/5.0-18ubuntu10000664000000000000000000000005113573457576016447 0ustar 4f1ecf818131bc7c8135d37edffd1835d13253a2 tftp-hpa/.git/refs/tags/pkg/applied/5.0-18ubuntu20000664000000000000000000000005113573457576016450 0ustar 8798d1faa6bec8fe7f73baefe63d25cbaa65912f tftp-hpa/.git/refs/tags/pkg/applied/5.0-190000664000000000000000000000005113573457576015124 0ustar d78c1ae99f7528a1d806885296a8a9c21254b307 tftp-hpa/.git/refs/tags/pkg/applied/5.0-20000664000000000000000000000005113573457576015034 0ustar 5ff1831d68f17ab366f21d93c26944141c506a16 tftp-hpa/.git/refs/tags/pkg/applied/5.0-200000664000000000000000000000005113573457576015114 0ustar 2f91fa0d3fb4dc5d358ceed5a17c42369595fc32 tftp-hpa/.git/refs/tags/pkg/applied/5.0-210000664000000000000000000000005113573457576015115 0ustar 2dc5cd8e8dc1777e3d9e29d7d46954ee43d89a21 tftp-hpa/.git/refs/tags/pkg/applied/5.0-21ubuntu10000664000000000000000000000005113573457576016441 0ustar 8a2ea740d3eeb49f58d10bf1442f39a8d1ed18dc tftp-hpa/.git/refs/tags/pkg/applied/5.0-21ubuntu20000664000000000000000000000005113573457576016442 0ustar 524199d7395f713c0c1014674e2cf1ef69c40d0e tftp-hpa/.git/refs/tags/pkg/applied/5.0-220000664000000000000000000000005113573457576015116 0ustar 9e2183b98dc1d3b4d99821c8b3010e030ba854e6 tftp-hpa/.git/refs/tags/pkg/applied/5.0-22ubuntu10000664000000000000000000000005113573457576016442 0ustar 52111e5006c9b101b478925533e8e8c1b6d116d4 tftp-hpa/.git/refs/tags/pkg/applied/5.0-30000664000000000000000000000005113573457576015035 0ustar 4c3d7ff253c6ca75a150826411e2bce1396e030a tftp-hpa/.git/refs/tags/pkg/applied/5.0-50000664000000000000000000000005113573457576015037 0ustar 10a50116f2a424db40e6495a6ab16255cda87797 tftp-hpa/.git/refs/tags/pkg/applied/5.0-60000664000000000000000000000005113573457576015040 0ustar f3261e5b2e1fc44e776cc80b20a8904e187d00a7 tftp-hpa/.git/refs/tags/pkg/applied/5.0-70000664000000000000000000000005113573457576015041 0ustar 1b785a3bc69ae28093ae396f4f52875d7a72bfed tftp-hpa/.git/refs/tags/pkg/applied/5.0-80000664000000000000000000000005113573457576015042 0ustar a5ca896b6ffd05cf40104bf0779ffd12f20912a2 tftp-hpa/.git/refs/tags/pkg/applied/5.0-90000664000000000000000000000005113573457576015043 0ustar 6e259be1dd0fb2d81be3e1a68dd71420f7852be2 tftp-hpa/.git/refs/tags/pkg/applied/5.1-10000664000000000000000000000005113573457576015034 0ustar 61e57bc209b58f653027c01ad4f9978438fa7d53 tftp-hpa/.git/refs/tags/pkg/applied/5.1-1ubuntu10000664000000000000000000000005113573457576016360 0ustar 023f136e45977a000bafc9a6a42519f7c10fe59b tftp-hpa/.git/refs/tags/pkg/applied/5.1-20000664000000000000000000000005113573457576015035 0ustar e066e1e29f54d741f61aa96de78be6d1a2ad1255 tftp-hpa/.git/refs/tags/pkg/applied/5.1-2ubuntu10000664000000000000000000000005113573457576016361 0ustar 372c42003d40d12b19175cdea18608c276ee1a8e tftp-hpa/.git/refs/tags/pkg/applied/5.1-30000664000000000000000000000005113573457576015036 0ustar 6864693697e09957e299b0af943200f10c7173ab tftp-hpa/.git/refs/tags/pkg/applied/5.1-3ubuntu10000664000000000000000000000005113573457576016362 0ustar fa3476ddf34f66b81464647316bff3457b8562d5 tftp-hpa/.git/refs/tags/pkg/applied/5.1-3ubuntu20000664000000000000000000000005113573457576016363 0ustar 208e8df32c2919b8220ff910d4a44685fec47566 tftp-hpa/.git/refs/tags/pkg/applied/5.1-3ubuntu30000664000000000000000000000005113573457576016364 0ustar a0046cccdbc9bb3655d4a3cc9bbef4257f289961 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20140608-10000664000000000000000000000005113573457576015735 0ustar f8bd3d6e76e65ede7ca227c0ed69b34fd0880351 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20140608-20000664000000000000000000000005113573457576015736 0ustar 9f29b17a0e744bd0e996b812e74315b63b368386 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20140608-30000664000000000000000000000005113573457576015737 0ustar 7a3b8e1fee6f7e1141ad592b926f14508e554752 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20140608-3ubuntu10000664000000000000000000000005113573457576017263 0ustar 4e94f089b392dbdba2e23c7dca67a7c688c819c4 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20150808-10000664000000000000000000000005113573457576015740 0ustar 6b2db589602b6676bed0e63667cee8c5baa77353 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20150808-1ubuntu10000664000000000000000000000005113573457576017264 0ustar 6bf1483904f4fca017f9196c698ca9d44c1a16e8 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20150808-1ubuntu1.16.04.10000664000000000000000000000005113573457576020072 0ustar 21886c68b76adf84e77b96f1f098bee99eeebf3c tftp-hpa/.git/refs/tags/pkg/applied/5.2+20150808-1ubuntu1.16.10.10000664000000000000000000000005113573457576020067 0ustar 91e86e9d11548ba0ebd78b6fb4263d6d5f23188e tftp-hpa/.git/refs/tags/pkg/applied/5.2+20150808-1ubuntu20000664000000000000000000000005113573457576017265 0ustar f84a5c7b0bbebfeb1182c356498e23b5919f4f19 tftp-hpa/.git/refs/tags/pkg/applied/5.2+20150808-1ubuntu30000664000000000000000000000005113573457576017266 0ustar af764742b349b277787aa17dc53427269ac614e0 tftp-hpa/.git/refs/tags/pkg/applied/5.2-10000664000000000000000000000005113573457576015035 0ustar a1b7880c67dab0a46e1c6dec019f99d077d6177b tftp-hpa/.git/refs/tags/pkg/applied/5.2-100000664000000000000000000000005113573457576015115 0ustar dd8a1a3bbe4207cf60addf0c6ecc3f614dbaa4ec tftp-hpa/.git/refs/tags/pkg/applied/5.2-110000664000000000000000000000005113573457576015116 0ustar 9265f3debf2b3f4b1c8043470b9ccaca14e028ad tftp-hpa/.git/refs/tags/pkg/applied/5.2-120000664000000000000000000000005113573457576015117 0ustar 26daa0c0616342fc5369ab8a58de1cd745ff7c1f tftp-hpa/.git/refs/tags/pkg/applied/5.2-130000664000000000000000000000005113573457576015120 0ustar b7d580dc1ae5b6d7420bbd2a5911e87d1ddca201 tftp-hpa/.git/refs/tags/pkg/applied/5.2-140000664000000000000000000000005113573457576015121 0ustar e71f9e06da84e7f188b636c2747a0d95bcca8d06 tftp-hpa/.git/refs/tags/pkg/applied/5.2-150000664000000000000000000000005113573457576015122 0ustar 6c23bfdcbdfd5e5d07ad9b50412f55669a770ed5 tftp-hpa/.git/refs/tags/pkg/applied/5.2-160000664000000000000000000000005113573457576015123 0ustar cfe9cb8a7c819e98b5d6f590aca5314d76dafca2 tftp-hpa/.git/refs/tags/pkg/applied/5.2-170000664000000000000000000000005113573457576015124 0ustar 611031dae367d3b36348e39cfd2c17f82e03e6bc tftp-hpa/.git/refs/tags/pkg/applied/5.2-180000664000000000000000000000005113573457576015125 0ustar f68d73003829fb7041928c2e14df7263dec6ad12 tftp-hpa/.git/refs/tags/pkg/applied/5.2-18ubuntu10000664000000000000000000000005113573457576016451 0ustar d9944ba4fb6f0c644f5c809fcb6a4a3a2151e337 tftp-hpa/.git/refs/tags/pkg/applied/5.2-190000664000000000000000000000005113573457576015126 0ustar eee51d367009c268e8048e336ce1f980822e27dc tftp-hpa/.git/refs/tags/pkg/applied/5.2-19ubuntu10000664000000000000000000000005113573457576016452 0ustar 7289e51c8b3d30fce59ba32e3251695fb990b42e tftp-hpa/.git/refs/tags/pkg/applied/5.2-1ubuntu10000664000000000000000000000005113573457576016361 0ustar 1339e03ead99593d47adf59cc8f3973813b047e8 tftp-hpa/.git/refs/tags/pkg/applied/5.2-1ubuntu20000664000000000000000000000005113573457576016362 0ustar ecd7ca72b3b7b09de1a0b17b8fcb4261a7ee3e5e tftp-hpa/.git/refs/tags/pkg/applied/5.2-20000664000000000000000000000005113573457576015036 0ustar 03204bea48170e21017089b8719704c7ff8ea57c tftp-hpa/.git/refs/tags/pkg/applied/5.2-200000664000000000000000000000005113573457576015116 0ustar fb4e737c5b049530203b968cb595ed84417c52c3 tftp-hpa/.git/refs/tags/pkg/applied/5.2-30000664000000000000000000000005113573457576015037 0ustar f5de9219e9450f2f852282abe0219fb66636535d tftp-hpa/.git/refs/tags/pkg/applied/5.2-40000664000000000000000000000005113573457576015040 0ustar ea972378c2013239c9894087fab8e52d0d1094a7 tftp-hpa/.git/refs/tags/pkg/applied/5.2-4ubuntu10000664000000000000000000000005113573457576016364 0ustar 67989a70d69f25d433300565fbcd24c3176ab46b tftp-hpa/.git/refs/tags/pkg/applied/5.2-50000664000000000000000000000005113573457576015041 0ustar 50dc7c9a79ce0eb82f7140c4cc67f7cf35776e30 tftp-hpa/.git/refs/tags/pkg/applied/5.2-5ubuntu10000664000000000000000000000005113573457576016365 0ustar 6252f1d799471bda02e4d0fe290869e0db94128a tftp-hpa/.git/refs/tags/pkg/applied/5.2-5ubuntu20000664000000000000000000000005113573457576016366 0ustar eac62fb4aaf95226c0ac0b9500b8b2c126adb3bb tftp-hpa/.git/refs/tags/pkg/applied/5.2-70000664000000000000000000000005113573457576015043 0ustar 70a8f6e7797a833eb2354d8d6e96bce7d010467f tftp-hpa/.git/refs/tags/pkg/applied/5.2-7ubuntu10000664000000000000000000000005113573457576016367 0ustar 4d42af6d6f04254fd7732225cdf17aae87339fb2 tftp-hpa/.git/refs/tags/pkg/applied/5.2-7ubuntu20000664000000000000000000000005113573457576016370 0ustar fa5c59557dec817d6211d4697d0e357ea173ae9f tftp-hpa/.git/refs/tags/pkg/applied/5.2-7ubuntu30000664000000000000000000000005113573457576016371 0ustar dc5532e72f143aedd0582ebfafc2766d755dd7ef tftp-hpa/.git/refs/tags/pkg/applied/5.2-7ubuntu3.10000664000000000000000000000005113573457576016530 0ustar fc778ede93d8393f7c9aa9790413ea762ed48b09 tftp-hpa/.git/refs/tags/pkg/applied/5.2-80000664000000000000000000000005113573457576015044 0ustar a8132e44cc8884c6c57287666f519a3331ea958b tftp-hpa/.git/refs/tags/pkg/applied/5.2-90000664000000000000000000000005113573457576015045 0ustar 3bb5a9dee67cdc3f9cac299a49fa99892595c62d tftp-hpa/.git/refs/tags/pkg/import/0000775000000000000000000000000013573457576014350 5ustar tftp-hpa/.git/refs/tags/pkg/import/0.36-10000664000000000000000000000005113573457576015013 0ustar 5277d4d85401e5049e172b3ec71035723a009ada tftp-hpa/.git/refs/tags/pkg/import/0.40-20000664000000000000000000000005113573457576015007 0ustar 76d1c847e3264cff624a8504833c942b0d0f3879 tftp-hpa/.git/refs/tags/pkg/import/0.40-2ubuntu10000664000000000000000000000005113573457576016333 0ustar 880a19a55b345fa6e84302719d1d14ac1289aa4c tftp-hpa/.git/refs/tags/pkg/import/0.40-2ubuntu20000664000000000000000000000005113573457576016334 0ustar 102d16657656bb39d52e4e5e2aef747e6c2ad100 tftp-hpa/.git/refs/tags/pkg/import/0.40-4.1ubuntu10000664000000000000000000000005113573457576016474 0ustar aad1b247e3779721e741c27457741ddb693d93e3 tftp-hpa/.git/refs/tags/pkg/import/0.42-1ubuntu10000664000000000000000000000005113573457576016334 0ustar 9f697d5684e729dcb1c567ec8e817f1d1e30f312 tftp-hpa/.git/refs/tags/pkg/import/0.42-1ubuntu20000664000000000000000000000005113573457576016335 0ustar 98696abb7a821be8163e6217a2e49028bc1fcc26 tftp-hpa/.git/refs/tags/pkg/import/0.43-1.1ubuntu10000664000000000000000000000005113573457576016474 0ustar 8cfc1fafd0af0cb5db6ead783060607a403ad848 tftp-hpa/.git/refs/tags/pkg/import/0.43-1ubuntu10000664000000000000000000000005113573457576016335 0ustar 14c952aa5ed91d60717862a98c080787973dda2d tftp-hpa/.git/refs/tags/pkg/import/0.43-1ubuntu20000664000000000000000000000005113573457576016336 0ustar 65dc71ddead0040969a936de5d33f55398560c9f tftp-hpa/.git/refs/tags/pkg/import/0.48-1ubuntu10000664000000000000000000000005113573457576016342 0ustar 0089d151577fc1e7612678c2f23bda02ce08f883 tftp-hpa/.git/refs/tags/pkg/import/0.48-2.20000664000000000000000000000005113573457576015157 0ustar d560a8f6ff70bf0af3bde663074ca940faeb5f23 tftp-hpa/.git/refs/tags/pkg/import/0.48-2.2ubuntu10000664000000000000000000000005113573457576016503 0ustar 0811077c6d0a26b80d63c5a895d17778a1731ae8 tftp-hpa/.git/refs/tags/pkg/import/0.48-2.30000664000000000000000000000005113573457576015160 0ustar 907c427ad77c9520f334197a896fb5af11c4f48b tftp-hpa/.git/refs/tags/pkg/import/0.48-2.3ubuntu10000664000000000000000000000005113573457576016504 0ustar 2649e3c9f5fd13dc58ca4a36b1cf8d674fcfc480 tftp-hpa/.git/refs/tags/pkg/import/0.48-2ubuntu10000664000000000000000000000005113573457576016343 0ustar b05da6195e4fd1a9d7171fcde989e7457cb16c5b tftp-hpa/.git/refs/tags/pkg/import/0.49-10000664000000000000000000000005113573457576015017 0ustar 4dfe600f90496b86a0d6df3de3cf31ea02574cf6 tftp-hpa/.git/refs/tags/pkg/import/0.49-1.10000664000000000000000000000005113573457576015156 0ustar e8583b6ab3ab33c5487a74f4fff4444f35a50455 tftp-hpa/.git/refs/tags/pkg/import/5.0-100000664000000000000000000000005113573457576015007 0ustar 78ed885c26607c285f3598a9b389a427a537456c tftp-hpa/.git/refs/tags/pkg/import/5.0-110000664000000000000000000000005113573457576015010 0ustar 7940603f8ddd3299a44d4e19d6ea264e54f5b45f tftp-hpa/.git/refs/tags/pkg/import/5.0-11ubuntu10000664000000000000000000000005113573457576016334 0ustar 3fbb40cb8a2336f6f29410ef5cd5117422ef0332 tftp-hpa/.git/refs/tags/pkg/import/5.0-11ubuntu20000664000000000000000000000005113573457576016335 0ustar 3cc3d4cd46775cf77c05ab197e5bb37c854f839a tftp-hpa/.git/refs/tags/pkg/import/5.0-11ubuntu2.10000664000000000000000000000005113573457576016474 0ustar 6f5b2ca8676f2428ca4ec3f3f4a49fefdccb0dd8 tftp-hpa/.git/refs/tags/pkg/import/5.0-120000664000000000000000000000005113573457576015011 0ustar b064fa29e2b98aa7f403885cdea5eaa72e90e57d tftp-hpa/.git/refs/tags/pkg/import/5.0-130000664000000000000000000000005113573457576015012 0ustar b07de038759abac5c7cab58aa5c3bad2cd0b62d7 tftp-hpa/.git/refs/tags/pkg/import/5.0-13ubuntu10000664000000000000000000000005113573457576016336 0ustar 7f7873fdfc3ea406799cd7f45ca8cb86b4138dfa tftp-hpa/.git/refs/tags/pkg/import/5.0-140000664000000000000000000000005113573457576015013 0ustar bcae025c39ab94173b41783504e82083a455077d tftp-hpa/.git/refs/tags/pkg/import/5.0-14ubuntu10000664000000000000000000000005113573457576016337 0ustar dae312fb40cea411613904a47017d14fbde28a39 tftp-hpa/.git/refs/tags/pkg/import/5.0-150000664000000000000000000000005113573457576015014 0ustar 0b858d03ae3ac6864568dad037add4bc88715758 tftp-hpa/.git/refs/tags/pkg/import/5.0-160000664000000000000000000000005113573457576015015 0ustar ad4a01d57d92a1940b4e05ed27de5568eeea3237 tftp-hpa/.git/refs/tags/pkg/import/5.0-16ubuntu10000664000000000000000000000005113573457576016341 0ustar 4847cc771fb9f2dce53121ea546033c9bceb2dc8 tftp-hpa/.git/refs/tags/pkg/import/5.0-170000664000000000000000000000005113573457576015016 0ustar eb404a4764a270d8003e74061be4d12759d7c323 tftp-hpa/.git/refs/tags/pkg/import/5.0-180000664000000000000000000000005113573457576015017 0ustar 9f5f1051a525b96be4483269b751e639e68b7db1 tftp-hpa/.git/refs/tags/pkg/import/5.0-18ubuntu10000664000000000000000000000005113573457576016343 0ustar 2df209653e1dde75da61248024c3f75b67f9da43 tftp-hpa/.git/refs/tags/pkg/import/5.0-18ubuntu20000664000000000000000000000005113573457576016344 0ustar 0700f23d0b88f319a8bc4a8372f7d7f02aeceebb tftp-hpa/.git/refs/tags/pkg/import/5.0-190000664000000000000000000000005113573457576015020 0ustar 6bd6defe9cba4bc589ef2e6cd88ed68994c009f6 tftp-hpa/.git/refs/tags/pkg/import/5.0-20000664000000000000000000000005113573457576014730 0ustar 8de5b64e0057c4c0f827b696e29b09091dcbe72b tftp-hpa/.git/refs/tags/pkg/import/5.0-200000664000000000000000000000005113573457576015010 0ustar 9905a9b7b41a38ccd9f775a65064c074c17c2adc tftp-hpa/.git/refs/tags/pkg/import/5.0-210000664000000000000000000000005113573457576015011 0ustar a082bea25bcf8608126d4bc16ea8916fcc58368c tftp-hpa/.git/refs/tags/pkg/import/5.0-21ubuntu10000664000000000000000000000005113573457576016335 0ustar a08739596e1b7d2916b89117a4d9e73a53c09aa2 tftp-hpa/.git/refs/tags/pkg/import/5.0-21ubuntu20000664000000000000000000000005113573457576016336 0ustar fc4934c1b060b473f611996668ebdb33f6a9ed14 tftp-hpa/.git/refs/tags/pkg/import/5.0-220000664000000000000000000000005113573457576015012 0ustar 52672c7798b5ed97802d9aec85a056ae95a11023 tftp-hpa/.git/refs/tags/pkg/import/5.0-22ubuntu10000664000000000000000000000005113573457576016336 0ustar 16d4ae252f30606754b1066a637ecb44aa6885b7 tftp-hpa/.git/refs/tags/pkg/import/5.0-30000664000000000000000000000005113573457576014731 0ustar 6393d1df34aa4e614a05fb60ab81b7dd16b5940b tftp-hpa/.git/refs/tags/pkg/import/5.0-50000664000000000000000000000005113573457576014733 0ustar 3aa778b4d38620b73f540fe1493f39a10a7ee161 tftp-hpa/.git/refs/tags/pkg/import/5.0-60000664000000000000000000000005113573457576014734 0ustar b2d0af643604eda9cd68ae8d999464bd78e601b5 tftp-hpa/.git/refs/tags/pkg/import/5.0-70000664000000000000000000000005113573457576014735 0ustar 0058f9c5a52392f44a333b29045f1424921cddf1 tftp-hpa/.git/refs/tags/pkg/import/5.0-80000664000000000000000000000005113573457576014736 0ustar 63f26331e57207b777a8a5ac178f42bd0f29e32e tftp-hpa/.git/refs/tags/pkg/import/5.0-90000664000000000000000000000005113573457576014737 0ustar d4fb77cab84d3118141b792d2221890c98b506d4 tftp-hpa/.git/refs/tags/pkg/import/5.1-10000664000000000000000000000005113573457576014730 0ustar dda8f5d3b5d04ad8577f1c713d64eba8b389aafe tftp-hpa/.git/refs/tags/pkg/import/5.1-1ubuntu10000664000000000000000000000005113573457576016254 0ustar 2e8444236f07acf5e23d5f1a034302e5e7953305 tftp-hpa/.git/refs/tags/pkg/import/5.1-20000664000000000000000000000005113573457576014731 0ustar 0af1815a4bfeb4a4f244adc58134594136178e8f tftp-hpa/.git/refs/tags/pkg/import/5.1-2ubuntu10000664000000000000000000000005113573457576016255 0ustar 643e41a1024e9cb2c80f33d26849bc333e45efaf tftp-hpa/.git/refs/tags/pkg/import/5.1-30000664000000000000000000000005113573457576014732 0ustar ef43d876df3f84d31076b168eecd60414a3e005c tftp-hpa/.git/refs/tags/pkg/import/5.1-3ubuntu10000664000000000000000000000005113573457576016256 0ustar dbeacff72c23755df0d05e74094999f97b54bcb6 tftp-hpa/.git/refs/tags/pkg/import/5.1-3ubuntu20000664000000000000000000000005113573457576016257 0ustar c15e11a92fe2ba183802713914f63bfc5a63742e tftp-hpa/.git/refs/tags/pkg/import/5.1-3ubuntu30000664000000000000000000000005113573457576016260 0ustar 2bc0c8adb91941c1bb2d1f5324e0759b367b9dda tftp-hpa/.git/refs/tags/pkg/import/5.2+20140608-10000664000000000000000000000005113573457576015631 0ustar a84fcc2c3585390d5d1819765a03355a91757e42 tftp-hpa/.git/refs/tags/pkg/import/5.2+20140608-20000664000000000000000000000005113573457576015632 0ustar 90d3c0fca2be0daf1e3d59b84a6697557ce83a28 tftp-hpa/.git/refs/tags/pkg/import/5.2+20140608-30000664000000000000000000000005113573457576015633 0ustar eb0304ad33cd5bee6048cdb926356070971a7c4b tftp-hpa/.git/refs/tags/pkg/import/5.2+20140608-3ubuntu10000664000000000000000000000005113573457576017157 0ustar 5dfd6fc98a0e3b557d3a0759a754a26937188bf6 tftp-hpa/.git/refs/tags/pkg/import/5.2+20150808-10000664000000000000000000000005113573457576015634 0ustar baecc7c9a0fcd3eaf060b8acc8cad90761b74c78 tftp-hpa/.git/refs/tags/pkg/import/5.2+20150808-1ubuntu10000664000000000000000000000005113573457576017160 0ustar 4f478ac0d1dd9e69905dcc57510b516ece652447 tftp-hpa/.git/refs/tags/pkg/import/5.2+20150808-1ubuntu1.16.04.10000664000000000000000000000005113573457576017766 0ustar 9b73ccc83534c55cfe3aa040326650f1b7e78583 tftp-hpa/.git/refs/tags/pkg/import/5.2+20150808-1ubuntu1.16.10.10000664000000000000000000000005113573457576017763 0ustar 0ec7308430a205a802b9ba174cbd7f198635a628 tftp-hpa/.git/refs/tags/pkg/import/5.2+20150808-1ubuntu20000664000000000000000000000005113573457576017161 0ustar 7ac54523d7067e08edbff4f4c54bda8a20ecc579 tftp-hpa/.git/refs/tags/pkg/import/5.2+20150808-1ubuntu30000664000000000000000000000005113573457576017162 0ustar e8fe27d1a7eadd9daf155f2d4a9a210e75b436a5 tftp-hpa/.git/refs/tags/pkg/import/5.2-10000664000000000000000000000005113573457576014731 0ustar c54d3c9cfa5551590859cb50abc90d37c2ab8e83 tftp-hpa/.git/refs/tags/pkg/import/5.2-100000664000000000000000000000005113573457576015011 0ustar 07332fb456e649e5df46c3115c7a24a9784da619 tftp-hpa/.git/refs/tags/pkg/import/5.2-110000664000000000000000000000005113573457576015012 0ustar 1a2b9f9cf5c9202068df2b441e8426aa647b7a32 tftp-hpa/.git/refs/tags/pkg/import/5.2-120000664000000000000000000000005113573457576015013 0ustar 1d1aab190a2bb68f358aac89459851b2342a588d tftp-hpa/.git/refs/tags/pkg/import/5.2-130000664000000000000000000000005113573457576015014 0ustar bc7111f19fe41b3cae5e730e3c09e03fcd5338dc tftp-hpa/.git/refs/tags/pkg/import/5.2-140000664000000000000000000000005113573457576015015 0ustar 280471b1e85f2a6064e58782da9dcc1f52be5b83 tftp-hpa/.git/refs/tags/pkg/import/5.2-150000664000000000000000000000005113573457576015016 0ustar 7f4e093f259fbcff97c092e3a98ad44f0d90ab9b tftp-hpa/.git/refs/tags/pkg/import/5.2-160000664000000000000000000000005113573457576015017 0ustar d848d8cde79821773dbe0b165a5303d68d891eae tftp-hpa/.git/refs/tags/pkg/import/5.2-170000664000000000000000000000005113573457576015020 0ustar bfe01a15b872467d03d03058e958c078c97cd4c1 tftp-hpa/.git/refs/tags/pkg/import/5.2-180000664000000000000000000000005113573457576015021 0ustar f7404b8fad2572ea6da97c4442e67cf9ba608039 tftp-hpa/.git/refs/tags/pkg/import/5.2-18ubuntu10000664000000000000000000000005113573457576016345 0ustar bc28209cbdd2e9ebce174d36272eef36caa63ba9 tftp-hpa/.git/refs/tags/pkg/import/5.2-190000664000000000000000000000005113573457576015022 0ustar cf60859f1ce615afd6f614231e979548357d9ffa tftp-hpa/.git/refs/tags/pkg/import/5.2-19ubuntu10000664000000000000000000000005113573457576016346 0ustar 6dd81c296bb2a52e88d4822b764a18f721c73339 tftp-hpa/.git/refs/tags/pkg/import/5.2-1ubuntu10000664000000000000000000000005113573457576016255 0ustar 594e695d3cb8272d71916203e24abaff8530ae33 tftp-hpa/.git/refs/tags/pkg/import/5.2-1ubuntu20000664000000000000000000000005113573457576016256 0ustar 8bd08d24a375bf5fd7e804b3a713e67bce154220 tftp-hpa/.git/refs/tags/pkg/import/5.2-20000664000000000000000000000005113573457576014732 0ustar 26baab3cf17f8f11dbb041403a733618f9c6933c tftp-hpa/.git/refs/tags/pkg/import/5.2-200000664000000000000000000000005113573457576015012 0ustar c0a8b51a46bb65730ae32a28488d7a32b1573b68 tftp-hpa/.git/refs/tags/pkg/import/5.2-30000664000000000000000000000005113573457576014733 0ustar f5a87f7076f2c17b526362a75e9da6542583a46a tftp-hpa/.git/refs/tags/pkg/import/5.2-40000664000000000000000000000005113573457576014734 0ustar cd024935959a016edb9a125f43e8da329221e3b0 tftp-hpa/.git/refs/tags/pkg/import/5.2-4ubuntu10000664000000000000000000000005113573457576016260 0ustar 9c2c2d8d6317f4604dc166d8310e9bf38e4c4025 tftp-hpa/.git/refs/tags/pkg/import/5.2-50000664000000000000000000000005113573457576014735 0ustar 98ef58e78b67de25aaffa5b3692372c0e113e634 tftp-hpa/.git/refs/tags/pkg/import/5.2-5ubuntu10000664000000000000000000000005113573457576016261 0ustar 80cf9e55fd88d57222e9eee5c220d39b8a1edb3c tftp-hpa/.git/refs/tags/pkg/import/5.2-5ubuntu20000664000000000000000000000005113573457576016262 0ustar 27a6eec37f641b91fabe9478a558a265e46ebbd1 tftp-hpa/.git/refs/tags/pkg/import/5.2-70000664000000000000000000000005113573457576014737 0ustar f3fa2e689b4a3a34fe7f1cbe4ddff7ff1b42e666 tftp-hpa/.git/refs/tags/pkg/import/5.2-7ubuntu10000664000000000000000000000005113573457576016263 0ustar 556bfa13e03ad7c9a561ea1cef3416651e20ee08 tftp-hpa/.git/refs/tags/pkg/import/5.2-7ubuntu20000664000000000000000000000005113573457576016264 0ustar c9079ec81873c90d3a4939dcca8e4ecbe5b50c2d tftp-hpa/.git/refs/tags/pkg/import/5.2-7ubuntu30000664000000000000000000000005113573457576016265 0ustar 9f7bb8cbdc1ab7872bf95f46a86140872a5bb340 tftp-hpa/.git/refs/tags/pkg/import/5.2-7ubuntu3.10000664000000000000000000000005113573457576016424 0ustar 26b4776366153894b02a3cf40a15978ae9336f4b tftp-hpa/.git/refs/tags/pkg/import/5.2-80000664000000000000000000000005113573457576014740 0ustar afd00b6c496dbcb7331345934ac125c17c0a3782 tftp-hpa/.git/refs/tags/pkg/import/5.2-90000664000000000000000000000005113573457576014741 0ustar 3b35b7967cdab7baec406e1f359a96032bf6c898 tftp-hpa/.git/refs/tags/pkg/upload/0000775000000000000000000000000013573461024014301 5ustar tftp-hpa/.git/refs/tags/pkg/upload/5.2+20150808-1ubuntu40000664000000000000000000000005113573461024017114 0ustar 0afe43820769135428133581b76d0ad8ea3a28b1 tftp-hpa/.git/refs/tags/pkg/upstream/0000775000000000000000000000000013573457576014676 5ustar tftp-hpa/.git/refs/tags/pkg/upstream/debian/0000775000000000000000000000000013573457576016120 5ustar tftp-hpa/.git/refs/tags/pkg/upstream/debian/0.48.gz0000664000000000000000000000005113573457576017047 0ustar b14234ce000ab664407b1d1796f8befd28b1d204 tftp-hpa/.git/refs/tags/pkg/upstream/debian/0.49.gz0000664000000000000000000000005113573457576017050 0ustar 6fa8d5b14ac4dbd69e8e3dd20a02f5fcebdffeba tftp-hpa/.git/refs/tags/pkg/upstream/debian/5.0.gz0000664000000000000000000000005113573457576016760 0ustar 23c347bbe32cfe9f34fc6d81b3c954f2e0f77537 tftp-hpa/.git/refs/tags/pkg/upstream/debian/5.1.gz0000664000000000000000000000005113573457576016761 0ustar ab5de94f49abf6c22dbb4cbcd11016b8f39f4c0b tftp-hpa/.git/refs/tags/pkg/upstream/debian/5.2+20140608.gz0000664000000000000000000000005113573457576017662 0ustar 141f0aeb3b17a78a3aace89b01172e8520014aed tftp-hpa/.git/refs/tags/pkg/upstream/debian/5.2+20150808.gz0000664000000000000000000000005113573457576017665 0ustar ff8bc2eea45f452af7a1c0b1aff5225ffab7b892 tftp-hpa/.git/refs/tags/pkg/upstream/debian/5.2.gz0000664000000000000000000000005113573457576016762 0ustar 9593b946c851525ae7d78e97b8b527bbc29d4887 tftp-hpa/.git/refs/tags/pkg/upstream/debian/5.2.xz0000664000000000000000000000005113573457576017003 0ustar e28d8c7ffe07efc7cad3c808637e6c8165eb113a tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/0000775000000000000000000000000013573457576016220 5ustar tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/0.36.gz0000664000000000000000000000005113573457576017144 0ustar bd9b1d51c9c25ae5c2cb4a7288802ce867fd6583 tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/0.40.gz0000664000000000000000000000005113573457576017137 0ustar b874e8c6fca7f8ebf7290289fb3b128e10c89bfd tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/0.42.gz0000664000000000000000000000005113573457576017141 0ustar af876140d8aff3e752aec2422b6efeb046103c43 tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/0.43.gz0000664000000000000000000000005113573457576017142 0ustar 02fd7a8d32196e3c0bd7ca9a771ec9814e0963cf tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/0.48.gz0000664000000000000000000000005113573457576017147 0ustar 3b680766140bee2b2bc0c70206319d532a4c9ddb tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/0.49.gz0000664000000000000000000000005113573457576017150 0ustar 97df33ee985cafc889875566a2831c95e73fe76f tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/5.0.gz0000664000000000000000000000005113573457576017060 0ustar 9dac61f8321058d5af8891f79d97c8c026d84928 tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/5.1.gz0000664000000000000000000000005113573457576017061 0ustar 788b295f7bf46a06625e38dfa48ec1d29487a183 tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/5.2+20140608.gz0000664000000000000000000000005113573457576017762 0ustar 0fa3977a5a66df1bcbac66701c34cc493bea37a1 tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/5.2+20150808.gz0000664000000000000000000000005113573457576017765 0ustar 33dcab4c47d1d04df00c3182a1f4046c8f1d0bf3 tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/5.2.gz0000664000000000000000000000005113573457576017062 0ustar 56f2af1a16c292a75a8506a52f948b6d2fd42149 tftp-hpa/.git/refs/tags/pkg/upstream/ubuntu/5.2.xz0000664000000000000000000000005113573457576017103 0ustar e0f38e95659dcabb2b80fedaf4e38ce259686fc3 tftp-hpa/.git/refs/tags/upload/0000775000000000000000000000000013573461024013520 5ustar tftp-hpa/.git/refs/tags/upload/5.2+20150808-1ubuntu40000664000000000000000000000005113573461024016333 0ustar 0afe43820769135428133581b76d0ad8ea3a28b1 tftp-hpa/CHANGES0000664000000000000000000002431513573457576010517 0ustar Changes in 5.2: Fix breakage on newer Linux when a single interface has multiple IP addresses. Changes in 5.1: Add -P option to write a PID file. Patch by Ferenc Wagner. Bounce the syslog socket in standalone mode, in case the syslog daemon has been restarted. Patch by Ferenc Wagner. Build fixes. Fix handling of block number wraparound after a successful options negotiation. Fix a buffer overflow in option parsing. Changes in 5.0: Try to on platforms with getaddrinfo() without AI_ADDRCONFIG or AI_CANONNAME. Implement the "rollover" option, for clients which want block number to rollover to anything other than zero. Correctly disable PMTU in standalone mode. Patch by Florian Lohoff. Changes in 0.49: Add IPv6 support. Patch by Karsten Keil. Support systems with editline instead of readline. Support long options in the server. Changes in 0.48: Unbreak -l -s in the server, which was broken in 0.47. Changes in 0.47: Add -L option to the server to run standalone without detaching from the shell. Parallel make fix. Changes in 0.46: Minor portability improvements. Changes in 0.45: Add -l (literal) option to the client, to override the special treatment of the colon (:) character as a hostname separator. Changes in 0.44: Allow the client to specify a range of local port numbers, just like the server can. Fix sending SIGHUP to update the regular expression table. Changes in 0.43: Fix double-free error on ^c in client. Try to deal with clients that send TFTP requests to broadcasts (apparently some recent Sun boxes do this instead of using the address told by DHCP. Bad Sun! Bad Sun!) Portability fixes. Changes in 0.42: Try to disable path MTU discovery for TFTP connections (it's useless anyway.) Add a hack to allow the admin to specify a range of local port numbers to use. Fix local IP number handling on systems which present IP_RECVDSTADDR in recvmsg(). Changes in 0.41: Fix bug by which patterns of the form \U\1 weren't converted correctly. Changes in 0.40.1: Solaris build fix. Changes in 0.40: Fix bug which would cause "r" remapping rules to be incorrectly rejected. Changes in 0.39: Support Perl-style \U...\E and \L...\E, as well as allow matching rules to be inverted (execute if rule *doesn't* match.) Fix a timeout bug. Add an RPM spec file. Changes in 0.38: Portability fixes. Changes in 0.37: Fix a pathology where a client sending ACKs for the wrong packet can prevent proper retransmission. Changes in 0.36: Portability fixes. Changes in 0.35: Add an option to control the maximum value of blksize negotiated. Removed workaround for obsolete Cygwin problem. Don't use getopt() -- the -c option doesn't work correctly since it depends on the ordering of arguments and options. It is now possible to do: tftp -m binary hostname -c get filename This was previous possible by doing: tftp -m binary -c get hostname:filename ... but it seemed that was counterintuitive to people. Somewhat improved configure scripts. Changes in 0.34: Additional Solaris gcc compiler bug workarounds; these actually make the code somewhat cleaner. Changes in 0.33: Even better error messages. Work around a suspect Solaris gcc bug. Configuration fix: readline needs termcap. Support running the tftp client from the command line. For example: tftp -m binary -c get hostname:file Changes in 0.32: Better error messages; including the capability to send a custom error message to the client when hitting an "a" rule in a remapping table. Changes in 0.31: Put in a check to make sure xinetd (in particular) doesn't pass us an IPv6 socket. Fix some problems related to timeout negotiation. Allow the user to set the default timeout speed. Changes in 0.30: (Hopefully) better timeout algorithm. Add a "utimeout" option; like "timeout" but in microseconds. Change the log level of client-side errors to LOG_WARNING. autoconf portability improvements. Minor bugfixes. Changes in 0.29: Posixly correctness. Now compiles and runs on Win32 systems using Cygwin (http://www.cygwin.com/). (). Fixed a bug which could cause a standalone server to exit with a "recvfrom: Interrupted system call" log message if signals arrive at a particularly inopportune moment. Fix a macro substitution bug (thanks to Richard Nyberg.) Changes in 0.28: Fix stupid one-liner bug which broke standalone mode (-l). Changes in 0.27: Make the Digital Unix 4.0F platform work again. Thanks to Alan Sundell for helping out with this platform! Make the AIX 4.3 platform work again. Thanks to Josef Siemes for helping out with this platform! Allow replacement patterns to include the IP address of the requesting host (\i). Allow relying on Unix permissions rather than o+r magic if the -p option is specified. As part of this, set all groups if initgroups() is specified on the platform. Clean up race conditions inherited from the BSD source base. Changes in 0.26: Fix the configuration process so tftpd doesn't end up depending on readline, which apparently could happen on some platforms before. Make parallel builds (make -j) work correctly. Improve parsing of the "connect" command in the tftp client. Add a -V option to both tftp and tftpd to print the version number on stdout and immediately exit. Add a -v option to tftp to start out in verbose mode. Rewrite the man pages using standard "man" troff macros. Enable the (limited) use of readline on systems which don't have readline/history.h. Support compiling under MacOS X with fink (see ). Thanks for Justin Hallett and Eric Eslinger for their help in getting this working! Changes in 0.25: Fixed Sorcerer's Apprentice bug in both the client and the server. These bugs were inherited from the original BSD code. Changes in 0.24: Fix bugs in both client and server dealing with block number wraparound, usually manifesting themselves as failure to handle files over 32 MB in size. Officially make the client a part of the tftp-hpa project. Changes in 0.23: Correct memory overwrite bug in the tftp client when compiled with readline. Changes in 0.22: Even more portability improvements: FreeBSD and Tru64/Digital Unix. Fix tsize option on systems on which off_t is "long long". Support large files on systems which need _LARGE_FILE_BITS or similar. Some source cleanups; change to autoconf 2.52. Add support for readline command-line editing in tftp. Changes in 0.21: Support running in standalone mode, without inetd. Even more portability improvements. Now known to compile and run on Linux, Solaris 5, 5.1, 6, 7 and 8, and AIX. Reports of success or failure on other modern systems always appreciated. Clean and modernize some really ugly old code. Fix a potential illegal memory access when running in "totally insecure mode" - no -s, no directories listed. Changes in 0.20: Portability improvements. Now known to compile and run on Solaris 8. Changes in 0.19: Fork before performing tcpwrappers check. Don't rely on nonstandard bsd_signal() function, instead require that the platform has sigaction(). This is 2001, after all. This may resolve some potential portability problems. Log a message if memory allocation fails, instead of dying silently. Clean up the main dispatch loop. Use for exit codes, if it exists. Add support for debugging remapping rulefiles; if logging with -vvv tftpd will log all rules actions. Correct the error code issued by an "abort" rule. Changes in 0.18: Support (almost) arbitrary filename remappings via regular expression-based rulesets. Added -v option for more verbose logging. Changes in 0.17: Add support for tcpwrapper checking (/etc/hosts.allow; /etc/hosts.deny) in tftpd. Compile correctly on glibc 2.1.2. Add -u option to specify the user id to run as (default "nobody".) Operate in "daemon mode" as long as we keep getting requests. This should speed up handling large amounts of requests at once, as can happen when a client starts up, and avoids inetd misconfiguration problems. Changes in 0.16: Correct massive lossage from 0.15: apparently 0.15 was based on an out-of-date CVS repository, somehow. Fix for ACKs in TFTP PUT; patch by Roger Venning. Changes in 0.15: If the operating system allows, try to obtain the local address used for the request packet, and reply using the same local IP address. Some embedded TFTP clients are (probably incorrectly) picky about this. Changes in 0.14: Hacks to signal handling to avoid "zombie servers." Changes in 0.13: Added the non-standard option "blksize2". The "blksize" option is limited in its usability, since TFTP is designed to be implemented in a ROM, and ROM code might find it painful to deal with packets that don't meet certain alignment restrictions. The "blksize2" option tells the server that the block size must be a power of 2 to be usable to the client. The server SHALL respond with a block size that is a power of two, up to a maximum of 32768, or reject the option. Furthermore, the server SHALL grant a block size that is no smaller than 512 bytes unless the client explicitly requested a smaller block size. If the client request both options, the server MAY accept one or the other, but not both. At some point I will probably write up an IETF draft for this option. General information on the tftp-hpa series: The core software was taken from OpenBSD (CVS source as of 1999-09-21). I believe this was the most secure source base available at the time I obtained this code, and it included support for the -s and -c options. The un-BSD-ized Makefiles and a lot of the configure macros were taken from netkit-tftp-0.10 by David Holland; I also followed this example and modernized the code style throughout. Patches by Markus Gutschke and Gero Kuhlmann were the basis for the option negotiation as well as the "blksize" and "tsize" option support, although I made a fair amount of mostly stylistic changes to their code. Adding the -r option (disable a specific option), the "timeout" option, converting to using autoconf for setup, and any additions listed in the Changes list above, has all been my own code, as are any bugs introduced in the merge. tftp-hpa/INSTALL0000664000000000000000000002212413573457576010551 0ustar Basic Installation ================== These are generic installation instructions. See the file INSTALL.tftp for specific install instructions for this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for variables by setting them in the environment. You can do that on the command line like this: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Environment Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it cannot guess the host type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the host platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. In this case, you should also specify the build platform with `--build=TYPE', because, in this case, it may not be possible to guess the build platform (it sometimes involves compiling and running simple test programs, and this can't be done if the compiler is a cross compiler). Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Environment Variables ===================== Variables not defined in a site shell script can be set in the environment passed to configure. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. tftp-hpa/INSTALL.tftp0000664000000000000000000000241413573457576011525 0ustar Specific installation instructions ================================== In addition to what is described in the INSTALL file, the following specifics apply to the tftp-hpa package: The tftp-hpa package supports the following options to ./configure: --without-tcpwrappers Disables the use of the tcp wrapper library. This is recommended, for performance reasons, on high-use sites. Kernel-based firewalling is, in general, a better alternative. --without-remap Disables the use of regular-expression-based filename remapping (the -m option to tftpd). --without-readline Disables the use of the readline command-line editing library in the tftp client. The default prefix for the tftp-hpa package is /usr, with the tftp client installing as /usr/bin/tftp and the tftpd server installing as /usr/sbin/in.tftpd on most systems. This can be overridden by setting --bindir and --sbindir. "make install" supports specifying an INSTALLROOT, which points to what will be the root of the filesystem at runtime; this is typically used when preparing packages for package-management systems. You almost certainly will need GNU make to build tftp-hpa. If you don't already have it, you can find GNU make at: ftp://ftp.gnu.org/pub/make/ or ftp://mirrors.kernel.org/gnu/make/ tftp-hpa/MCONFIG.in0000664000000000000000000000266013573457576011135 0ustar ## -*- makefile -*- ------------------------------------------------------ ## ## Copyright 2001-2007 H. Peter Anvin - All Rights Reserved ## ## This program is free software available under the same license ## as the "OpenBSD" operating system, distributed at ## http://www.openbsd.org/. ## ## ----------------------------------------------------------------------- ## ## MCONFIG.in ## ## Basic Makefile definitions ## # Source and object root SRCROOT = @SRCROOT@ OBJROOT = @OBJROOT@ # Prefixes prefix = @prefix@ exec_prefix = @exec_prefix@ # Directory for user binaries BINDIR = @bindir@ # Man page tree MANDIR = @mandir@ # System binaries SBINDIR = @sbindir@ # Data root directory datarootdir = @datarootdir@ # Binary suffixes O = @OBJEXT@ X = @EXEEXT@ # Install into alternate root area, e.g. for package generation INSTALLROOT = # Link LN_S = @LN_S@ # Install program INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ # Compiler and compiler flags CC = @CC@ CFLAGS = @CFLAGS@ -I$(SRCROOT) # Link flags LDFLAGS = @LDFLAGS@ # Libraries (client and server) TFTP_LIBS = ../common/libcommon.a @TFTP_LIBS@ TFTPD_LIBS = ../common/libcommon.a @TFTPD_LIBS@ # Additional library we need to build LIBOBJS = @LIBOBJS@ # Additional tftpd objects we need to build TFTPDOBJS = @TFTPDOBJS@ # ar and ranlib (for making libraries) AR = ar cq RANLIB = @RANLIB@ tftp-hpa/MRULES0000664000000000000000000000045713573457576010457 0ustar # Standard compilation rules (don't use make builtins) .SUFFIXES: .c .cc .o .s .S .i .c.o: $(CC) $(CFLAGS) -c $< .c.s: $(CC) $(CFLAGS) -S -o $@ $< .c.i: $(CC) $(CFLAGS) -E -o $@ $< .cc.o: $(CXX) $(CXXFLAGS) -c $< .cc.s: $(CXX) $(CXXFLAGS) -S -o $@ $< .cc.i: $(CXX) $(CXXFLAGS) -E -o $@ $< tftp-hpa/Makefile0000664000000000000000000000421213573457576011156 0ustar # You can do "make SUB=blah" to make only a few, or edit here, or both # You can also run make directly in the subdirs you want. SUB = lib common tftp tftpd %.build: MCONFIG aconfig.h version.h $(MAKE) -C $(patsubst %.build, %, $@) %.install: MCONFIG aconfig.h version.h $(MAKE) -C $(patsubst %.install, %, $@) install %.clean: $(MAKE) -C $(patsubst %.clean, %, $@) clean %.distclean: $(MAKE) -C $(patsubst %.distclean, %, $@) distclean all: MCONFIG $(patsubst %, %.build, $(SUB)) tftp.build: lib.build common.build tftpd.build: lib.build common.build install: MCONFIG $(patsubst %, %.install, $(SUB)) clean: localclean $(patsubst %, %.clean, $(SUB)) localclean: rm -f version.h distclean: localdistclean $(patsubst %, %.distclean, $(SUB)) localdistclean: localclean rm -f MCONFIG config.status config.log aconfig.h *~ \#* rm -rf *.cache find . -type f \( -name \*.orig -o -name \*.rej \) | xargs rm -f spotless: distclean rm -f configure aconfig.h.in tftp.spec autoconf: configure aconfig.h.in config: MCONFIG aconfig.h release: $(MAKE) autoconf $(MAKE) tftp.spec $(MAKE) distclean MCONFIG: configure MCONFIG.in aconfig.h.in if test -x config.status; then \ ./config.status --recheck && ./config.status ; \ else \ ./configure ; \ fi aconfig.h: MCONFIG : Generated by side effect # Adding "configure" to the dependencies serializes this with running # autoconf, because there are apparently race conditions between # autoconf and autoheader. And worse than that, even when autoconf # cleanly returns first, autoheader will truncate the timestamp of # aconfig.h.in to second resolution, so on a filesystem with subsecond # resolution it can appear older than configure (which isn't truncated). # So make it an order-only prerequisite to avoid looping regenerating it. aconfig.h.in: configure.in aclocal.m4 | configure rm -f aconfig.h.in aconfig.h autoheader configure: configure.in aclocal.m4 rm -rf MCONFIG configure config.log aconfig.h *.cache autoconf version.h: version echo \#define VERSION \"tftp-hpa `cat version`\" > version.h tftp.spec: tftp.spec.in version sed -e "s/@@VERSION@@/`cat version`/g" < $< > $@ || rm -f $@ tftp-hpa/README0000664000000000000000000000160713573457576010403 0ustar This is tftp-hpa, a conglomerate of a number of versions of the BSD TFTP code, changed around to port to a whole collection of operating systems. The goal is to work on any reasonably modern Unix with sockets. The tftp-hpa series is maintained by H. Peter Anvin . The latest version of this collection can be found at: ftp://ftp.kernel.org/pub/software/network/tftp/ See the file CHANGES for a list of changes between versions. Please see the INSTALL and INSTALL.tftp files for compilation and installation instructions. ===> IMPORTANT: IF YOU ARE UPGRADING FROM ANOTHER TFTP SERVER, OR FROM ===> A VERSION OF TFTP-HPA OLDER THAN 0.17 SEE THE FILE ===> "README.security" FOR IMPORTANT SECURITY MODEL CHANGES! This software can be discussed on the SYSLINUX mailing list. To subscribe, go to the list subscription page at: http://www.zytor.com/mailman/listinfo/syslinux tftp-hpa/README.security0000664000000000000000000000503413573457576012247 0ustar Starting in version 0.27, tftp-hpa has the option of a "use Unix permissions" mode. In this mode, tftpd can access any file accessible by the tftpd effective user, specified via the -u option. This means that files no longer need to be set to o+r or o+w. If file creation is enabled (via the -c option), the -p option also changes the default umask from 0 (anyone can read or write) to "unchanged" (inherited from the calling process.) The -U option can be used to override the default umask; this is recommended. The sanest setup, from a security standpoint, for tftpd to run in is probably the following: 1. Create a separate "tftpd" user and group only used for tftpd; 2. Have all your boot files in a single directory tree (usually called /tftpboot). 3. Specify "-p -u tftpd -s /tftpboot" on the tftpd command line; if you want clients to be able to create files use "-p -c -U 002 -u tftpd -s /tftpboot" (replace 002 with whatever umask is appropriate for your setup.) ======================================= Starting in version 0.17, tftp-hpa operates in genuine "wait" mode, which means that an in.tftpd process hangs around for some time after the last service request has arrived. This speeds up servicing a subsequent request, which apparently has been a problem in the past, resulting in "request storms" as the client keeps retrying, resulting in multiple connections on the server which the client has already abandoned. This also means that spawning tftp via tcpd is useless (in fact, this indirection seems to be part of the reason for these "request storms.") Instead, tftp-hpa supports calling the tcpwrapper library directly. Thus, if your /etc/inetd.conf looks like this (all on one line): tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd -s /tftpboot -r blksize ... it's better to change to ... tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize You should make sure that you are using "wait" option in tftpd; you also need to have tftpd spawned as root in order for chroot (-s) to work. tftpd automatically drops privilege and changes user ID to "nobody" by default; the appropriate user ID for tftpd can be specified with the -u option (e.g. "-u tftpuser"). If you are running a busy boot server, I would suggest to instead use kernel-based firewalling rules, and to compile tftpd without tcpwrapper support, in order to provide significantly better performance. To do so, specify the --without-tcpwrappers option to configure when compiling; see the INSTALL.tftp file for more information. tftp-hpa/aclocal.m40000664000000000000000000001714213573457576011364 0ustar dnl ----------------------------------------------------------------------- dnl dnl Copyright 1999-2008 H. Peter Anvin - All Rights Reserved dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation, Inc., 53 Temple Place Ste 330, dnl Bostom MA 02111-1307, USA; either version 2 of the License, or dnl (at your option) any later version; incorporated herein by reference. dnl dnl ----------------------------------------------------------------------- dnl -------------------------------------------------------------------------- dnl PA_ADD_CFLAGS() dnl dnl Attempt to add the given option to CFLAGS, if it doesn't break compilation dnl -------------------------------------------------------------------------- AC_DEFUN(PA_ADD_CFLAGS, [AC_MSG_CHECKING([if $CC accepts $1]) pa_add_cflags__old_cflags="$CFLAGS" CFLAGS="$CFLAGS $1" AC_TRY_LINK([#include ], [printf("Hello, World!\n");], AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]) CFLAGS="$pa_add_cflags__old_cflags")]) dnl -------------------------------------------------------------------------- dnl PA_SIGSETJMP dnl dnl Do we have sigsetjmp/siglongjmp? (AC_CHECK_FUNCS doesn't seem to work dnl for these particular functions.) dnl -------------------------------------------------------------------------- AC_DEFUN(PA_SIGSETJMP, [AC_MSG_CHECKING([for sigsetjmp]) AC_TRY_LINK([ #ifdef HAVE_SETJMP_H #include #endif], [sigjmp_buf buf; sigsetjmp(buf,1); siglongjmp(buf,2);], AC_MSG_RESULT([yes]) $1, AC_MSG_RESULT([no]) $2)]) dnl -------------------------------------------------------------------------- dnl PA_MSGHDR_MSG_CONTROL dnl dnl Does struct msghdr have the msg_control field? dnl -------------------------------------------------------------------------- AH_TEMPLATE([HAVE_MSGHDR_MSG_CONTROL], [Define if struct msghdr has the msg_control field.]) AC_DEFUN(PA_MSGHDR_MSG_CONTROL, [AC_CHECK_MEMBER(struct msghdr.msg_control, [AC_DEFINE(HAVE_MSGHDR_MSG_CONTROL)], [], [ #include #include #include ])]) dnl ------------------------------------------------------------------------ dnl PA_STRUCT_IN_PKTINFO dnl dnl Look for definition of struct in_pktinfo, which at least has an dnl ipi_addr member. Some versions of glibc lack struct in_pktinfo; dnl if so we need to include the definition ourselves -- but we only dnl want to do that if absolutely necessary! dnl ------------------------------------------------------------------------ AH_TEMPLATE([HAVE_STRUCT_IN_PKTINFO], [Define if struct in_pktinfo is defined.]) AC_DEFUN(PA_STRUCT_IN_PKTINFO, [AC_CHECK_MEMBER(struct in_pktinfo.ipi_addr, [AC_DEFINE(HAVE_STRUCT_IN_PKTINFO)], [], [ #include #include #include #include #include #include ])]) dnl ------------------------------------------------------------------------ dnl PA_STRUCT_SOCKADDR_IN6 dnl dnl Look for definition of struct sockaddr_in6, which at least has an dnl sin6_addr member dnl AH_TEMPLATE([HAVE_STRUCT_SOCKADDR_IN6], [Define if struct sockaddr_in6 is defined.]) AC_DEFUN(PA_STRUCT_SOCKADDR_IN6, [AC_CHECK_MEMBER(struct sockaddr_in6.sin6_addr, [ AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6) HAVE_INET6=true; ], [ HAVE_INET6=false; ], [ #include #include #include #include ])]) dnl ------------------------------------------------------------------------ dnl PA_STRUCT_ADDRINFO dnl dnl Look for definition of struct addrinfo, which at least has an dnl ai_addr member dnl AH_TEMPLATE([HAVE_STRUCT_ADDRINFO], [Define if struct addrinfo is defined.]) AC_DEFUN(PA_STRUCT_ADDRINFO, [AC_CHECK_MEMBER(struct addrinfo.ai_addr, [AC_DEFINE(HAVE_STRUCT_ADDRINFO)], [], [ #include #include #include ])]) dnl ------------------------------------------------------------------------ dnl PA_STRUCT_IN6_PKTINFO dnl dnl Look for definition of struct in6_pktinfo, which at least has an dnl ipi6_addr member dnl AH_TEMPLATE([HAVE_STRUCT_IN6_PKTINFO], [Define if struct in6_pktinfo is defined.]) AC_DEFUN(PA_STRUCT_IN6_PKTINFO, [AC_CHECK_MEMBER(struct in6_pktinfo.ipi6_addr, [AC_DEFINE(HAVE_STRUCT_IN6_PKTINFO)], [], [ #include #include #include #include ])]) dnl -------------------------------------------------------------------------- dnl PA_HAVE_TCPWRAPPERS dnl dnl Do we have the tcpwrappers -lwrap? This can't be done using AC_CHECK_LIBS dnl due to the need to provide "allow_severity" and "deny_severity" variables dnl -------------------------------------------------------------------------- AH_TEMPLATE([HAVE_TCPWRAPPERS], [Define if we have tcpwrappers (-lwrap) and .]) AC_DEFUN(PA_HAVE_TCPWRAPPERS, [AC_CHECK_LIB([wrap], [main]) AC_MSG_CHECKING([for tcpwrappers]) AC_TRY_LINK( [ #include int allow_severity = 0; int deny_severity = 0; ], [ hosts_ctl("sample_daemon", STRING_UNKNOWN, STRING_UNKNOWN, STRING_UNKNOWN); ], [ AC_DEFINE(HAVE_TCPWRAPPERS) AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ])]) dnl ------------------------------------------------------------------------ dnl PA_CHECK_INTTYPES_H_SANE dnl dnl At least some versions of AIX 4 have macros which are dnl completely broken. Try to detect those. dnl -------------------------------------------------------------------------- AH_TEMPLATE([INTTYPES_H_IS_SANE], [Define if the macros in are usable]) AC_DEFUN(PA_CHECK_INTTYPES_H_SANE, [AC_CHECK_HEADERS(inttypes.h, [ AC_MSG_CHECKING([if inttypes.h is sane]) AC_TRY_LINK( [ #include #include ], [uintmax_t max = UINTMAX_C(0); printf("%"PRIuMAX"\n", max);], AC_MSG_RESULT([yes]) AC_DEFINE(INTTYPES_H_IS_SANE), AC_MSG_RESULT([no (AIX, eh?)])) ]) ]) dnl ------------------------------------------------------------------------ dnl PA_WITH_BOOL dnl dnl PA_WITH_BOOL(option, default, help, enable, disable) dnl dnl Provides a more convenient way to specify --with-option and dnl --without-option, with a default. default should be either 0 or 1. dnl ------------------------------------------------------------------------ AC_DEFUN(PA_WITH_BOOL, [AC_ARG_WITH([$1], [$3], if test ["$withval"] != no; then [$4] else [$5] fi, if test [$2] -ne 0; then [$4] else [$5] fi)]) dnl -------------------------------------------------------------------------- dnl PA_HEADER_DEFINES dnl dnl PA_HEADER_DEFINES(header, type, value) dnl -------------------------------------------------------------------------- AC_DEFUN(PA_HEADER_DEFINES, [AC_MSG_CHECKING([if $1 defines $3]) AH_TEMPLATE([HAVE_$3_DEFINITION], [Define if $1 defines $3]) AC_TRY_COMPILE([ #include <$1> ], [ int main() { $2 dummy = $3; return 0; } ], [ pa_header_define=`echo HAVE_$3_DEFINITION | tr '[a-z]' '[A-Z]'` AC_DEFINE_UNQUOTED($pa_header_define) AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) ])]) dnl -------------------------------------------------------------------------- dnl PA_SEARCH_LIBS_AND_ADD dnl dnl PA_SEARCH_LIBS_AND_ADD(function, libraries [,function to add]) dnl -------------------------------------------------------------------------- AC_DEFUN(PA_SEARCH_LIBS_AND_ADD, [ AH_TEMPLATE(AS_TR_CPP(HAVE_$1), [Define if $1 function was found]) AC_SEARCH_LIBS($1, $2, [ AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1)) pa_add_$1=false; ], [ XTRA=true; if test $# -eq 3; then AC_LIBOBJ($3) else AC_LIBOBJ($1) fi pa_add_$1=true; ])]) tftp-hpa/autogen.sh0000775000000000000000000000003013573457576011511 0ustar #!/bin/sh make autoconf tftp-hpa/common/0000775000000000000000000000000013573457576011007 5ustar tftp-hpa/common/Makefile0000664000000000000000000000046513573457576012454 0ustar SRCROOT = .. VERSION = $(shell cat ../version) -include ../MCONFIG include ../MRULES OBJS = tftpsubs.$(O) LIB = libcommon.a all: $(LIB) $(LIB): $(OBJS) -rm -f $(LIB) $(AR) $(LIB) $(OBJS) $(RANLIB) $(LIB) $(OBJS): tftpsubs.h install: clean: rm -f *.o *.obj *.exe $(LIB) distclean: clean rm -f *~ tftp-hpa/common/tftpsubs.c0000664000000000000000000003013213573457576013024 0ustar /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include "tftpsubs.h" /* Simple minded read-ahead/write-behind subroutines for tftp user and server. Written originally with multiple buffers in mind, but current implementation has two buffer logic wired in. Todo: add some sort of final error check so when the write-buffer is finally flushed, the caller can detect if the disk filled up (or had an i/o error) and return a nak to the other side. Jim Guyton 10/85 */ #include #define PKTSIZE MAX_SEGSIZE+4 /* should be moved to tftp.h */ int segsize = SEGSIZE; /* Default segsize */ struct bf { int counter; /* size of data in buffer, or flag */ char buf[PKTSIZE]; /* room for data packet */ } bfs[2]; /* Values for bf.counter */ #define BF_ALLOC -3 /* alloc'd but not yet filled */ #define BF_FREE -2 /* free */ /* [-1 .. segsize] = size of data in the data buffer */ static int nextone; /* index of next buffer to use */ static int current; /* index of buffer in use */ /* control flags for crlf conversions */ int newline = 0; /* fillbuf: in middle of newline expansion */ int prevchar = -1; /* putbuf: previous char (cr check) */ static struct tftphdr *rw_init(int); struct tftphdr *w_init() { return rw_init(0); } /* write-behind */ struct tftphdr *r_init() { return rw_init(1); } /* read-ahead */ /* init for either read-ahead or write-behind */ /* x == zero for write-behind, one for read-head */ static struct tftphdr *rw_init(int x) { newline = 0; /* init crlf flag */ prevchar = -1; bfs[0].counter = BF_ALLOC; /* pass out the first buffer */ current = 0; bfs[1].counter = BF_FREE; nextone = x; /* ahead or behind? */ return (struct tftphdr *)bfs[0].buf; } /* Have emptied current buffer by sending to net and getting ack. Free it and return next buffer filled with data. */ int readit(FILE * file, struct tftphdr **dpp, int convert) { struct bf *b; bfs[current].counter = BF_FREE; /* free old one */ current = !current; /* "incr" current */ b = &bfs[current]; /* look at new buffer */ if (b->counter == BF_FREE) /* if it's empty */ read_ahead(file, convert); /* fill it */ /* assert(b->counter != BF_FREE);*//* check */ *dpp = (struct tftphdr *)b->buf; /* set caller's ptr */ return b->counter; } /* * fill the input buffer, doing ascii conversions if requested * conversions are lf -> cr,lf and cr -> cr, nul */ void read_ahead(FILE * file, int convert) { int i; char *p; int c; struct bf *b; struct tftphdr *dp; b = &bfs[nextone]; /* look at "next" buffer */ if (b->counter != BF_FREE) /* nop if not free */ return; nextone = !nextone; /* "incr" next buffer ptr */ dp = (struct tftphdr *)b->buf; if (convert == 0) { b->counter = read(fileno(file), dp->th_data, segsize); return; } p = dp->th_data; for (i = 0; i < segsize; i++) { if (newline) { if (prevchar == '\n') c = '\n'; /* lf to cr,lf */ else c = '\0'; /* cr to cr,nul */ newline = 0; } else { c = getc(file); if (c == EOF) break; if (c == '\n' || c == '\r') { prevchar = c; c = '\r'; newline = 1; } } *p++ = c; } b->counter = (int)(p - dp->th_data); } /* Update count associated with the buffer, get new buffer from the queue. Calls write_behind only if next buffer not available. */ int writeit(FILE * file, struct tftphdr **dpp, int ct, int convert) { bfs[current].counter = ct; /* set size of data to write */ current = !current; /* switch to other buffer */ if (bfs[current].counter != BF_FREE) /* if not free */ (void)write_behind(file, convert); /* flush it */ bfs[current].counter = BF_ALLOC; /* mark as alloc'd */ *dpp = (struct tftphdr *)bfs[current].buf; return ct; /* this is a lie of course */ } /* * Output a buffer to a file, converting from netascii if requested. * CR,NUL -> CR and CR,LF => LF. * Note spec is undefined if we get CR as last byte of file or a * CR followed by anything else. In this case we leave it alone. */ int write_behind(FILE * file, int convert) { char *buf; int count; int ct; char *p; int c; /* current character */ struct bf *b; struct tftphdr *dp; b = &bfs[nextone]; if (b->counter < -1) /* anything to flush? */ return 0; /* just nop if nothing to do */ count = b->counter; /* remember byte count */ b->counter = BF_FREE; /* reset flag */ dp = (struct tftphdr *)b->buf; nextone = !nextone; /* incr for next time */ buf = dp->th_data; if (count <= 0) return -1; /* nak logic? */ if (convert == 0) return write(fileno(file), buf, count); p = buf; ct = count; while (ct--) { /* loop over the buffer */ c = *p++; /* pick up a character */ if (prevchar == '\r') { /* if prev char was cr */ if (c == '\n') /* if have cr,lf then just */ fseek(file, -1, 1); /* smash lf on top of the cr */ else if (c == '\0') /* if have cr,nul then */ goto skipit; /* just skip over the putc */ /* else just fall through and allow it */ } putc(c, file); skipit: prevchar = c; } return count; } /* When an error has occurred, it is possible that the two sides * are out of synch. Ie: that what I think is the other side's * response to packet N is really their response to packet N-1. * * So, to try to prevent that, we flush all the input queued up * for us on the network connection on our host. * * We return the number of packets we flushed (mostly for reporting * when trace is active). */ int synchnet(int f) { /* socket to flush */ int pktcount = 0; char rbuf[PKTSIZE]; union sock_addr from; socklen_t fromlen; fd_set socketset; struct timeval notime; while (1) { notime.tv_sec = notime.tv_usec = 0; FD_ZERO(&socketset); FD_SET(f, &socketset); if (select(f, &socketset, NULL, NULL, ¬ime) <= 0) break; /* Nothing to read */ /* Otherwise drain the packet */ pktcount++; fromlen = sizeof(from); (void)recvfrom(f, rbuf, sizeof(rbuf), 0, &from.sa, &fromlen); } return pktcount; /* Return packets drained */ } int pick_port_bind(int sockfd, union sock_addr *myaddr, unsigned int port_range_from, unsigned int port_range_to) { unsigned int port, firstport; int port_range = 0; if (port_range_from != 0 && port_range_to != 0) { port_range = 1; } firstport = port_range ? port_range_from + rand() % (port_range_to - port_range_from + 1) : 0; port = firstport; do { sa_set_port(myaddr, htons(port)); if (bind(sockfd, &myaddr->sa, SOCKLEN(myaddr)) < 0) { /* Some versions of Linux return EINVAL instead of EADDRINUSE */ if (!(port_range && (errno == EINVAL || errno == EADDRINUSE))) return -1; /* Normally, we shouldn't have to loop, but some situations involving aborted transfers make it possible. */ } else { return 0; } port++; if (port > port_range_to) port = port_range_from; } while (port != firstport); return -1; } int set_sock_addr(char *host,union sock_addr *s, char **name) { struct addrinfo *addrResult; struct addrinfo hints; int err; memset(&hints, 0, sizeof(hints)); hints.ai_family = s->sa.sa_family; hints.ai_flags = AI_CANONNAME | AI_ADDRCONFIG; hints.ai_socktype = SOCK_DGRAM; hints.ai_protocol = IPPROTO_UDP; err = getaddrinfo(strip_address(host), NULL, &hints, &addrResult); if (err) return err; if (addrResult == NULL) return EAI_NONAME; memcpy(s, addrResult->ai_addr, addrResult->ai_addrlen); if (name) { if (addrResult->ai_canonname) *name = xstrdup(addrResult->ai_canonname); else *name = xstrdup(host); } freeaddrinfo(addrResult); return 0; } #ifdef HAVE_IPV6 int is_numeric_ipv6(const char *p) { /* A numeric IPv6 address consist at least of 2 ':' and * it may have sequences of hex-digits and maybe contain * a '.' from a IPv4 mapped address and maybe is enclosed in [] * we do not check here, if it is a valid IPv6 address * only if is something like a numeric IPv6 address or something else */ int colon = 0; int dot = 0; int bracket = 0; char c; if (!p) return 0; if (*p == '[') { bracket = 1; p++; } while ((c = *p++) && c != ']') { switch (c) { case ':': colon++; break; case '.': dot++; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': break; default: return 0; /* Invalid character */ } } if (colon < 2 || colon > 7) return 0; if (dot) { /* An IPv4-mapped address in dot-quad form will have 3 dots */ if (dot != 3) return 0; /* The IPv4-mapped address takes the space of one colon */ if (colon > 6) return 0; } /* If bracketed, must be closed, and vice versa */ if (bracket ^ (c == ']')) return 0; /* Otherwise, assume we're okay */ return 1; } /* strip [] from numeric IPv6 addreses */ char *strip_address(char *addr) { char *p; if (is_numeric_ipv6(addr) && (*addr == '[')) { p = addr + strlen(addr); p--; if (*p == ']') { *p = 0; addr++; } } return addr; } #endif tftp-hpa/common/tftpsubs.h0000664000000000000000000000736513573457576013045 0ustar /* * Copyright (c) 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /* * Prototypes for read-ahead/write-behind subroutines for tftp user and * server. */ #ifndef TFTPSUBS_H #define TFTPSUBS_H #include "config.h" union sock_addr { struct sockaddr sa; struct sockaddr_in si; #ifdef HAVE_IPV6 struct sockaddr_in6 s6; #endif }; #define SOCKLEN(sock) \ (((union sock_addr*)sock)->sa.sa_family == AF_INET ? \ (sizeof(struct sockaddr_in)) : \ (sizeof(union sock_addr))) #ifdef HAVE_IPV6 #define SOCKPORT(sock) \ (((union sock_addr*)sock)->sa.sa_family == AF_INET ? \ ((union sock_addr*)sock)->si.sin_port : \ ((union sock_addr*)sock)->s6.sin6_port) #else #define SOCKPORT(sock) \ (((union sock_addr*)sock)->si.sin_port) #endif #ifdef HAVE_IPV6 #define SOCKADDR_P(sock) \ (((union sock_addr*)sock)->sa.sa_family == AF_INET ? \ (void *)&((union sock_addr*)sock)->si.sin_addr : \ (void *)&((union sock_addr*)sock)->s6.sin6_addr) #else #define SOCKADDR_P(sock) \ (void *)&((union sock_addr*)sock)->si.sin_addr #endif #ifdef HAVE_IPV6 int is_numeric_ipv6(const char *); char *strip_address(char *); #else #define is_numeric_ipv6(a) 0 #define strip_address(a) (a) #endif static inline int sa_set_port(union sock_addr *s, u_short port) { switch (s->sa.sa_family) { case AF_INET: s->si.sin_port = port; break; #ifdef HAVE_IPV6 case AF_INET6: s->s6.sin6_port = port; break; #endif default: return -1; } return 0; } int set_sock_addr(char *, union sock_addr *, char **); struct tftphdr; struct tftphdr *r_init(void); void read_ahead(FILE *, int); int readit(FILE *, struct tftphdr **, int); int synchnet(int); struct tftphdr *w_init(void); int write_behind(FILE *, int); int writeit(FILE *, struct tftphdr **, int, int); extern int segsize; #define MAX_SEGSIZE 65464 int pick_port_bind(int sockfd, union sock_addr *myaddr, unsigned int from, unsigned int to); #endif tftp-hpa/config.h0000664000000000000000000002004113573457576011132 0ustar /* -*- c -*- ------------------------------------------------------------- * * * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved * * This program is free software available under the same license * as the "OpenBSD" operating system, distributed at * http://www.openbsd.org/. * * ----------------------------------------------------------------------- */ /* * config.h * * Sets up a common baseline environment, based on "autoconf" findings... */ #ifndef CONFIG_H #define CONFIG_H 1 /* Feature enables for specific environments */ #ifdef __APPLE__ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070 #define __APPLE_USE_RFC_3542 1 #endif #endif /* Must be included before we include any system headers! */ #include "aconfig.h" /* autogenerated configuration header */ /* Standard includes */ #include #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_STAT_H #include #endif #ifdef STDC_HEADERS #include #include #else #ifdef HAVE_STDLIB_H #include #endif #endif #ifdef HAVE_MEMORY_H #ifndef STDC_HEADERS #include #endif #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #ifdef HAVE_INTTYPES_H #ifdef INTTYPES_H_IS_SANE #include #endif #else #ifdef HAVE_STDINT_H #include #endif #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_SETJMP_H #include #endif #ifdef TIME_WITH_SYS_TIME #include #include #else #if HAVE_SYS_TIME_H #include #else #include #endif #endif #ifdef HAVE_GRP_H #include #endif #ifdef HAVE_FCNTL_H #include #endif #include #include #ifdef HAVE_SYS_SOCKET_H #include #else #ifdef HAVE_WINSOCK2_H #include #else #ifdef HAVE_WINSOCK_H #include #endif #endif #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_GETOPT_LONG #include #else #include "lib/getopt.h" #endif /* Test for EAGAIN/EWOULDBLOCK */ #ifdef EAGAIN #if defined(EWOULDBLOCK) && (EWOULDBLOCK != EAGAIN) #define E_WOULD_BLOCK(x) ((x) == EAGAIN || (x) == EWOULDBLOCK) #else #define E_WOULD_BLOCK(x) ((x) == EAGAIN) #endif #else #define E_WOULD_BLOCK(x) ((x) == EWOULDBLOCK) #endif /* Some broken systems care about text versus binary, but real Unix systems don't... */ #ifndef HAVE_O_TEXT_DEFINITION #define O_TEXT 0 #endif #ifndef HAVE_O_BINARY_DEFINITION #define O_BINARY 0 #endif /* If we don't have intmax_t, try creating it */ #ifndef HAVE_INTMAX_T #ifdef HAVE_LONG_LONG typedef long long intmax_t; typedef unsigned long long uintmax_t; #define PRIdMAX "lld" #define PRIuMAX "llu" #define PRIxMAX "llx" #define INTMAX_C(x) (x##LL) #define UINTMAX_C(x) (x##ULL) #else typedef long intmax_t; typedef unsigned long uintmax_t; #define PRIdMAX "ld" #define PRIuMAX "lu" #define PRIxMAX "lx" #define INTMAX_C(x) (x##L) #define UINTMAX_C(x) (x##UL) #endif #endif /* On some version of AIX, is buggy to the point of unusability. We have to use macros here, not typedefs, to override. */ #ifdef HAVE_INTTYPES_H #ifndef INTTYPES_H_IS_SANE #undef PRIdMAX #undef PRIuMAX #undef PRIxMAX #undef INTMAX_C #undef UINTMAX_C #undef HAVE_STRTOUMAX #ifdef HAVE_LONG_LONG #define intmax_t long long #define uintmax_t unsigned long long #define PRIdMAX "Ld" #define PRIuMAX "Lu" #define PRIxMAX "Lx" #define INTMAX_C(x) (x##LL) #define UINTMAX_C(x) (x##ULL) #else #define intmax_t long #define uintmax_t unsigned long #define PRIdMAX "ld" #define PRIuMAX "lu" #define PRIxMAX "lx" #define INTMAX_C(x) (x##L) #define UINTMAX_C(x) (x##UL) #endif #endif #endif /* Even if intmax_t is defined, we may need this (Solaris 8 braindamage) */ #ifndef HAVE_STRTOUMAX #if defined(HAVE_LONG_LONG) && defined(HAVE_STRTOULL) #define strtoumax(p,e,b) ((uintmax_t)strtoull(p,e,b)) #else #define strtoumax(p,e,b) ((uintmax_t)strtoul(p,e,b)) #endif #endif /* A lot of this is old BSD code. Some newer systems don't approve. */ /* The type used by htons(), ntohs() */ #ifndef HAVE_U_SHORT #ifdef HAVE_UINT16_T typedef uint16_t u_short; #else typedef unsigned short u_short; #endif #endif /* The type used to htonl(), ntohl() */ #ifndef HAVE_U_LONG #ifdef HAVE_UINT32_T typedef uint32_t u_long; #else typedef unsigned long u_long; #endif #endif /* socklen_t */ #ifndef HAVE_SOCKLEN_T typedef int socklen_t; #endif /* sysexits.h */ #ifdef HAVE_SYSEXITS_H #include #else #define EX_USAGE 64 /* command line usage error */ #define EX_DATAERR 65 /* data format error */ #define EX_NOINPUT 66 /* cannot open input */ #define EX_NOUSER 67 /* addressee unknown */ #define EX_NOHOST 68 /* host name unknown */ #define EX_UNAVAILABLE 69 /* service unavailable */ #define EX_SOFTWARE 70 /* internal software error */ #define EX_OSERR 71 /* system error (e.g., can't fork) */ #define EX_OSFILE 72 /* critical OS file missing */ #define EX_CANTCREAT 73 /* can't create (user) output file */ #define EX_IOERR 74 /* input/output error */ #define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ #define EX_PROTOCOL 76 /* remote error in protocol */ #define EX_NOPERM 77 /* permission denied */ #define EX_CONFIG 78 /* configuration error */ #endif /* If we don't have sigsetjmp() et all, setjmp() will have to do */ #ifndef HAVE_SIGSETJMP #define sigsetjmp(x,y) setjmp(x) #define siglongjmp(x,y) longjmp(x,y) #define sigjmp_buf jmp_buf #endif /* How do we annotate unused data items? */ #ifndef UNUSED #ifdef __GNUC__ #define UNUSED __attribute__((unused)) #else #define UNUSED #endif #endif /* netinet/in.h, and possible missing pieces */ #include #ifndef HAVE_IPPORT_TFTP_DEFINITION #ifndef IPPORT_TFTP #define IPPORT_TFTP 69 #endif #endif /* arpa/{inet,tftp}.h, and possible missing pieces */ #ifdef HAVE_ARPA_INET_H #include #endif /* If we don't have arpa/tftp.h we have problems... */ #include #ifndef OACK #define OACK 6 #endif #ifndef EOPTNEG #define EOPTNEG 8 #endif /* Prototypes for libxtra functions */ void *xmalloc(size_t); char *xstrdup(const char *); #ifndef HAVE_BSD_SIGNAL void (*bsd_signal(int, void (*)(int))) (int); #endif #ifndef HAVE_DUP2 int dup2(int, int); #endif #ifndef HAVE_DAEMON int daemon(int, int); #endif #ifndef HAVE_GETADDRINFO #ifndef HAVE_STRUCT_ADDRINFO struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; size_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; struct addrinfo *ai_next; }; #endif int getaddrinfo(const char *, const char *, const struct addrinfo *, struct addrinfo **); void freeaddrinfo(struct addrinfo *); const char *gai_strerror(int); #ifndef EAI_NONAME #define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ #endif #ifndef EAI_ADDRFAMILY #define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ #endif #ifndef EAI_MEMORY #define EAI_MEMORY -10 /* Memory allocation failure. */ #endif #ifndef EAI_SYSTEM #define EAI_SYSTEM -11 /* System error returned in `errno'. */ #endif #endif #ifndef AI_CANONNAME #define AI_CANONNAME 0 #endif #ifndef AI_ADDRCONFIG #define AI_ADDRCONFIG 0 #endif #ifndef INET6_ADDRSTRLEN #define INET6_ADDRSTRLEN 46 #endif #ifndef HAVE_INET_NTOP const char *inet_ntop(int, const void *, char *, socklen_t); #endif /* tftp-hpa version and configuration strings */ #include "version.h" #ifdef WITH_READLINE #define WITH_READLINE_STR ", with readline" #else #define WITH_READLINE_STR ", without readline" #endif #ifdef WITH_REGEX #define WITH_REGEX_STR ", with remap" #else #define WITH_REGEX_STR ", without remap" #endif #ifdef HAVE_LIBWRAP #define HAVE_LIBWRAP_STR ", with tcpwrappers" #else #define HAVE_LIBWRAP_STR ", without tcpwrappers" #endif #define TFTP_CONFIG_STR VERSION WITH_READLINE_STR #define TFTPD_CONFIG_STR VERSION WITH_REGEX_STR HAVE_LIBWRAP_STR #endif tftp-hpa/configure.in0000664000000000000000000001556013573457576012037 0ustar dnl dnl autoconf input file to generate MCONFIG dnl AC_PREREQ(2.61) AC_INIT(MCONFIG.in) AC_PREFIX_DEFAULT(/usr) AC_USE_SYSTEM_EXTENSIONS AC_ISC_POSIX AC_PROG_CC AC_C_CONST AC_C_INLINE PA_ADD_CFLAGS(-W) PA_ADD_CFLAGS(-Wall) PA_ADD_CFLAGS(-Wpointer-arith) PA_ADD_CFLAGS(-Wbad-function-cast) PA_ADD_CFLAGS(-Wcast-equal) PA_ADD_CFLAGS(-Wstrict-prototypes) PA_ADD_CFLAGS(-Wmissing-prototypes) PA_ADD_CFLAGS(-Wmissing-declarations) PA_ADD_CFLAGS(-Wnested-externs) PA_ADD_CFLAGS(-Winline) PA_ADD_CFLAGS(-Wwrite-strings) PA_ADD_CFLAGS(-Wundef) PA_ADD_CFLAGS(-Wshadow) PA_ADD_CFLAGS(-Wsign-compare) PA_ADD_CFLAGS(-pipe) PA_ADD_CFLAGS(-fno-strict-aliasing) AC_HEADER_STDC AC_CHECK_HEADERS(inttypes.h) AC_CHECK_HEADERS(stdint.h) PA_CHECK_INTTYPES_H_SANE AC_CHECK_HEADERS(fcntl.h) AC_CHECK_HEADERS(grp.h) AC_CHECK_HEADERS(libgen.h) AC_CHECK_HEADERS(memory.h) AC_CHECK_HEADERS(setjmp.h) AC_CHECK_HEADERS(stddef.h) AC_CHECK_HEADERS(stdlib.h) AC_CHECK_HEADERS(string.h) AC_CHECK_HEADERS(strings.h) AC_CHECK_HEADERS(sysexits.h) AC_CHECK_HEADERS(time.h) AC_CHECK_HEADERS(unistd.h) AC_CHECK_HEADERS(sys/file.h) AC_CHECK_HEADERS(sys/filio.h) AC_CHECK_HEADERS(sys/stat.h) AC_CHECK_HEADERS(sys/time.h) AC_CHECK_HEADERS(sys/types.h) AC_CHECK_HEADERS(arpa/inet.h) AC_CHECK_HEADERS(netdb.h) AC_HEADER_TIME dnl This is needed on some versions of FreeBSD... AC_CHECK_HEADERS(machine/param.h) AC_CHECK_HEADERS(sys/socket.h) AC_CHECK_HEADERS(winsock2.h) AC_CHECK_HEADERS(winsock.h) AC_SYS_LARGEFILE AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_MODE_T AC_TYPE_SIZE_T AC_CHECK_TYPES(intmax_t) AC_CHECK_TYPES(long long) AC_CHECK_TYPES(uint16_t) AC_CHECK_TYPES(uint32_t) AC_CHECK_TYPES(u_short) AC_CHECK_TYPES(u_long) dnl dnl isn't among the list of standard headers that autoconf checks, dnl but POSIX requires for socklen_t to be defined. dnl AC_CHECK_TYPES(socklen_t,,, [ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif #ifdef HAVE_SYS_SOCKET_H # include #endif ]) AC_SEARCH_LIBS(socket, [socket ws2_32 wsock32], , [AC_MSG_ERROR(socket library not found)]) AC_CHECK_FUNCS(fcntl) AC_CHECK_FUNCS(setsid) AC_CHECK_FUNCS(recvmsg) AC_CHECK_FUNCS(ftruncate) AC_CHECK_FUNCS(setreuid) AC_CHECK_FUNCS(setregid) AC_CHECK_FUNCS(initgroups) AC_CHECK_FUNCS(setgroups) dnl Solaris 8 has [u]intmax_t but not strtoumax(). How utterly braindamaged. AC_CHECK_FUNCS(strtoumax) AC_CHECK_FUNCS(strtoull) PA_MSGHDR_MSG_CONTROL PA_STRUCT_IN_PKTINFO PA_STRUCT_ADDRINFO PA_HEADER_DEFINES(fcntl.h, int, O_NONBLOCK) PA_HEADER_DEFINES(fcntl.h, int, O_BINARY) PA_HEADER_DEFINES(fcntl.h, int, O_TEXT) PA_HEADER_DEFINES(fcntl.h, int, F_SETLK) PA_HEADER_DEFINES(sys/file.h, int, LOCK_SH) PA_HEADER_DEFINES(sys/file.h, int, LOCK_EX) AH_TEMPLATE([HAVE_SIGSETJMP], [Define if we have sigsetjmp, siglongjmp and sigjmp_buf.]) PA_SIGSETJMP([AC_DEFINE(HAVE_SIGSETJMP)]) dnl dnl Get common paths dnl SRCROOT=`cd $srcdir && pwd` OBJROOT=`pwd` XTRA=false PA_SEARCH_LIBS_AND_ADD(xmalloc, iberty) PA_SEARCH_LIBS_AND_ADD(xstrdup, iberty) PA_SEARCH_LIBS_AND_ADD(bsd_signal, bsd, bsdsignal) PA_SEARCH_LIBS_AND_ADD(getopt_long, getopt, getopt_long) PA_SEARCH_LIBS_AND_ADD(getaddrinfo, [nsl resolv]) if $pa_add_getaddrinfo then AC_SEARCH_LIBS(gethostbyname, [nsl resolv], [AC_SEARCH_LIBS(herror, [nsl resolv], , [AC_MSG_ERROR(herror not found)])], [AC_MSG_ERROR(gethostbyname not found)]) else AC_SEARCH_LIBS(freeaddrinfo, [nsl resolv], , [AC_MSG_ERROR(getaddrinfo but not freeaddrinfo found)]) AC_SEARCH_LIBS(gai_strerror, [nsl resolv], , [AC_MSG_ERROR(getaddrinfo but not gai_strerror found)]) fi PA_SEARCH_LIBS_AND_ADD(inet_ntop, [nsl resolv]) if $pa_add_inet_ntop then AC_SEARCH_LIBS(inet_ntoa, [nsl resolv], , [AC_MSG_ERROR(inet_ntoa not found)]) fi AC_SEARCH_LIBS(inet_aton, [nsl resolv], ,[AC_MSG_ERROR(inet_aton not found)]) AC_CHECK_FUNCS(daemon, , [XTRA=true; AC_LIBOBJ(daemon)]) AC_CHECK_FUNCS(dup2, , [XTRA=true; AC_LIBOBJ(dup2)]) if $XTRA then XTRALIBS="$OBJROOT/lib/libxtra.a $XTRALIBS" fi dnl dnl These libraries apply to the server only dnl common_libs="$LIBS" PA_HEADER_DEFINES(netinet/in.h, int, IPPORT_TFTP) PA_WITH_BOOL(tcpwrappers, 1, [ --without-tcpwrappers disable tcpwrapper permissions checking], [ AC_SEARCH_LIBS(yp_get_default_domain, [nsl resolv]) PA_HAVE_TCPWRAPPERS ],:) AH_TEMPLATE([WITH_REGEX], [Define if we are compiling with regex filename remapping.]) PA_WITH_BOOL(remap, 1, [ --without-remap disable regex-based filename remapping], [ AC_CHECK_HEADER(regex.h, [ AC_SEARCH_LIBS(regcomp, [regex rx], [ AC_DEFINE(WITH_REGEX) TFTPDOBJS="remap.${OBJEXT} $TFTPDOBJS" ]) ]) ],:) TFTPD_LIBS="$LIBS $XTRALIBS" LIBS="$common_libs" dnl dnl These libraries apply to the client only dnl AH_TEMPLATE([WITH_READLINE], [Define if we are compiling with readline/editline command-line editing.]) PA_WITH_BOOL(readline, 1, [ --without-readline disable the use of readline command-line editing], [ AC_CHECK_HEADER(readline/readline.h, [ dnl readline may need libtermcap or somesuch... AC_SEARCH_LIBS(tputs, [termcap terminfo]) AC_SEARCH_LIBS(readline, [readline history], [AC_DEFINE(WITH_READLINE)]) AC_CHECK_HEADERS(readline/history.h) ], [AC_CHECK_HEADER(editline/readline.h, [ dnl editline may need libtermcap or somesuch... AC_SEARCH_LIBS(tputs, [termcap terminfo]) AC_SEARCH_LIBS(editline, [edit], [AC_DEFINE(WITH_READLINE)]) ])]) ],:) TFTP_LIBS="$LIBS $XTRALIBS" LIBS="$common_libs" dnl dnl Check for IPV6 and disable-ipv6 dnl PA_STRUCT_SOCKADDR_IN6 AC_MSG_CHECKING([for IPv6 support]) PA_WITH_BOOL(ipv6, 1, [ --without-ipv6 disable the support for IPv6], [ if $HAVE_INET6 then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_IPV6, 1, [Define if IPv6 support is enabled.]) PA_STRUCT_IN6_PKTINFO else AC_MSG_RESULT(no) AC_MSG_WARN([*** we do not have required IPv6 structs - IPv6 will be disabled]) fi ], [AC_MSG_RESULT(disabled)]) AC_SUBST(SRCROOT) AC_SUBST(OBJROOT) AC_SUBST(TFTP_LIBS) AC_SUBST(TFTPD_LIBS) AC_SUBST(TFTPDOBJS) AC_PROG_LN_S AC_PROG_RANLIB dnl dnl Make sure the install program has an absolute path if it dnl has a path at all. autoconf doesn't do this "in order dnl to not pollute the cache." Sigh. dnl Note: the $ needs to be double-quoted for reasons unknown. dnl AC_PROG_INSTALL [if echo "$INSTALL" | grep '^[^/].*/' > /dev/null 2>&1; then INSTALL='\${SRCROOT}'/"$INSTALL" fi] AC_CONFIG_HEADERS(aconfig.h) AC_OUTPUT(MCONFIG) tftp-hpa/debian/0000775000000000000000000000000013573461024010720 5ustar tftp-hpa/debian/changelog0000664000000000000000000010534613573461024012603 0ustar tftp-hpa (5.2+20150808-1ubuntu4) focal; urgency=medium * debian/tftpd-hpa.templates: revert the default back to /srv/tftp. This was done mainly for the ltsp-server package but is no more needed (LP: #1855490). -- Christian Ehrhardt Mon, 09 Dec 2019 16:02:44 +0100 tftp-hpa (5.2+20150808-1ubuntu3) zesty; urgency=medium * d/tftpd-hpa.config : Add version guard to avoid rewriting TFTP_ADDRESS if user has elected to keep [::]:69 after upgrade. (LP: #1342580) -- Louis Bouchard Mon, 20 Mar 2017 15:50:27 +0100 tftp-hpa (5.2+20150808-1ubuntu2) zesty; urgency=medium * Replace the default value of TFTP_ADDRESS to :69 instead of [::]:69. The previous default caused a failure to start when the NIC is not available at startup time (LP: #1342580) -- Louis Bouchard Thu, 09 Feb 2017 18:13:54 +0100 tftp-hpa (5.2+20150808-1ubuntu1) xenial; urgency=medium * Merge from Debian unstable. Remaining changes: - debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. - d/tftpd-hpa.postinst, d/tftpd-hpa.templates, d/po/*: Default to listening on both IPv4 and IPv6. - debian/tftpd-hpa.postinst: Add "-s" to /etc/default/tftpd-hpa -- Scott Moser Tue, 02 Feb 2016 18:49:17 +0100 tftp-hpa (5.2+20150808-1) unstable; urgency=medium * Canonicalize all the addresses. This avoids the situation of trying to reply to an IPv4-mapped IPv6 address using an IPv4 socket, which isn't going to fly. Closes: #793921 * This upstream snapshot now includes all the patches we were previously carrying. -- Ron Lee Sat, 08 Aug 2015 13:59:11 +0930 tftp-hpa (5.2+20140608-3ubuntu1) vivid; urgency=low * Merge from Debian unstable. Remaining changes: - debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. - debian/tftpd-hpa.upstart: Convert to Upstart. - debian/tftpd-hpa.postinst: Add "-s" to /etc/default/tftpd-hpa - Default to listening on both IPv4 and IPv6. (LP: #1228340) -- Michael Vogt Tue, 28 Oct 2014 10:26:04 +0100 tftp-hpa (5.2+20140608-3) unstable; urgency=medium * Fix the Vcs- links to alioth. -- Ron Lee Thu, 31 Jul 2014 15:45:11 +0930 tftp-hpa (5.2+20140608-2) unstable; urgency=medium * Fix the upstream makefile to actually be safe for parallel builds. -- Ron Lee Thu, 31 Jul 2014 04:02:27 +0930 tftp-hpa (5.2+20140608-1) unstable; urgency=medium * Better handling of IPv4/6 mapping. * Fix the broken postrm. Don't remove users, especially not without checking what they still own. Actually remove the empty directories that we loop over, and not just by accident. Though we could probably also just kill the loop instead. Definitely don't remove users and directories using arbitrary hardcoded defaults that something other than this package might own. If we can't determine how they were configured by the local admin, then we have no business just picking things out of a hat to delete anyway. * Adopted, Closes: #756093 -- Ron Lee Wed, 30 Jul 2014 12:08:50 +0930 tftp-hpa (5.2-20) unstable; urgency=low * I don't care anymore, not worth it.. orphaning. -- Daniel Baumann Fri, 25 Jul 2014 20:57:28 +0200 tftp-hpa (5.2-19ubuntu1) utopic; urgency=medium * Merge from Debian unstable. Remaining changes: - debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. - debian/tftpd-hpa.upstart: Convert to Upstart. - debian/tftpd-hpa.postinst: Add "-s" to /etc/default/tftpd-hpa - Default to listening on both IPv4 and IPv6. (LP: #1228340) -- Stéphane Graber Fri, 02 May 2014 16:28:04 -0400 tftp-hpa (5.2-19) unstable; urgency=low * Introducing initial support for upstart as wished by Steve Langasek in #746715. -- Daniel Baumann Sun, 04 May 2014 15:16:55 +0200 tftp-hpa (5.2-18ubuntu1) utopic; urgency=medium * Merge from Debian unstable. Remaining changes: - debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. - debian/tftpd-hpa.upstart: Convert to Upstart. - debian/tftpd-hpa.postinst: Add "-s" to /etc/default/tftpd-hpa - Default to listening on both IPv4 and IPv6. (LP: #1228340) * Reintroduce the Upstart integration. -- Stéphane Graber Fri, 02 May 2014 16:28:04 -0400 tftp-hpa (5.2-18) unstable; urgency=low * Updating year in copyright file. * Building with dh --parallel. -- Daniel Baumann Mon, 31 Mar 2014 21:31:43 +0200 tftp-hpa (5.2-17) experimental; urgency=low * Removing upstart hacks, they are ugly and upstart is dead now. -- Daniel Baumann Tue, 18 Feb 2014 08:04:33 +0100 tftp-hpa (5.2-16) experimental; urgency=low * Updating copyright file. -- Daniel Baumann Sat, 01 Feb 2014 05:36:00 +0100 tftp-hpa (5.2-15) experimental; urgency=low * Updating vcs fields. * Adding debug package. * Updating to standards version 3.9.5. * Updating lsb descriptions in initscript (Closes: #736742). -- Daniel Baumann Sun, 26 Jan 2014 19:07:46 +0100 tftp-hpa (5.2-14) experimental; urgency=low * Correcting typo in atftpd confilicts/replaces (Closes: #717985). -- Daniel Baumann Mon, 29 Jul 2013 11:17:21 +0200 tftp-hpa (5.2-13) experimental; urgency=low * Adding vcs fields. * Wrapping control fields. * Updating syslinux suggests. * Adding tftp-server virtual packaging handling. -- Daniel Baumann Wed, 17 Jul 2013 14:07:42 +0200 tftp-hpa (5.2-12) experimental; urgency=low * Dropping obsolete sysvinit initscript start/stop numbers. -- Daniel Baumann Tue, 11 Jun 2013 17:55:20 +0200 tftp-hpa (5.2-11) experimental; urgency=low * Building tftp-hpa on linux and kfreebsd architectures only. -- Daniel Baumann Thu, 06 Jun 2013 08:20:27 +0200 tftp-hpa (5.2-10) experimental; urgency=low * Correcting provides in lsb header of initscript. * Adding patch from Kees Cook to fix FORTIFY-detected potential memory corruption. * Building with dh-autoreconf. -- Daniel Baumann Wed, 05 Jun 2013 13:58:57 +0200 tftp-hpa (5.2-9) experimental; urgency=low * Adding upstart exit codes in initscript. * Adding slightly modified upstart script from Steve Langasek (Closes: #708851). -- Daniel Baumann Mon, 03 Jun 2013 06:50:31 +0200 tftp-hpa (5.2-8) experimental; urgency=low * Adding Slovak debconf translations from Slavko (Closes: #704163). * Updating year in copyright file. * Trimming diff headers in patches. * Prefixing patches with four digits. * Dropping dpkg-source compression levels. * Sorting targets in rules. -- Daniel Baumann Sun, 31 Mar 2013 16:54:07 +0200 tftp-hpa (5.2-7ubuntu3) saucy; urgency=low * Default to listening on both IPv4 and IPv6. (LP: #1228340) -- Stéphane Graber Fri, 20 Sep 2013 14:40:13 -0500 tftp-hpa (5.2-7ubuntu2) saucy; urgency=low * Update the upstart job to use the same pre-start checks as the init script. -- Steve Langasek Wed, 29 May 2013 16:21:28 -0700 tftp-hpa (5.2-7ubuntu1) saucy; urgency=low * Merge from Debian unstable, remaining changes: - debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. - debian/tftpd-hpa.upstart: Convert to Upstart. - debian/patches/04-use-memcpy-for-header.patch: Fix FORTIFY-detected potential memory corruption. - debian/tftpd-hpa.postinst: Add "-s" to /etc/default/tftpd-hpa * Adjust tftpd-hpa init script to detect upstart, making the upstart patches upstreamable to Debian. -- Steve Langasek Sat, 18 May 2013 22:07:57 -0700 tftp-hpa (5.2-7) unstable; urgency=low * Removing all references to my old email address. -- Daniel Baumann Sun, 10 Mar 2013 22:00:52 +0100 tftp-hpa (5.2-6) unstable; urgency=low * Removing Otavio from uploaders with his consent. -- Daniel Baumann Sun, 10 Mar 2013 21:52:27 +0100 tftp-hpa (5.2-5ubuntu1) raring; urgency=low * Merge from Debian unstable. Remaining changes: - debian/tftpd-hpa.templates: Set /var/lib/tftpboot by default instead of /srv/tftp. - debian/tftpd-hpa.upstart: Convert to Upstart. - debian/patches/04-use-memcpy-for-header.patch: Fix FORTIFY-detected potential memory corruption. - debian/tftpd-hpa.postinst: Add "-s" to /etc/default/tftpd-hpa -- Logan Rosen Sun, 06 Jan 2013 01:01:24 -0600 tftp-hpa (5.2-5) unstable; urgency=low * Correcting spelling typo in readme, thanks to Adam D. Barratt . * Updating to standards version 3.9.4. * Adding dpkg-source local options. -- Daniel Baumann Sun, 16 Dec 2012 10:46:51 +0100 tftp-hpa (5.2-4ubuntu1) raring; urgency=low * Resynchronise with Debian. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debian/tftpd-hpa.upstart: Convert to Upstart. - debian/patches/04-use-memcpy-for-header.patch: Fix FORTIFY-detected potential memory corruption. -- Colin Watson Wed, 28 Nov 2012 02:26:08 +0000 tftp-hpa (5.2-4) unstable; urgency=low * Adding note to readme about ipv6 kernel support (Closes: #544089). -- Daniel Baumann Thu, 19 Jul 2012 16:33:37 +0200 tftp-hpa (5.2-3) unstable; urgency=low * Removing example preseed file. * Trimming lintian overrides. * Switching to xz compression. -- Daniel Baumann Sat, 30 Jun 2012 14:45:15 +0200 tftp-hpa (5.2-2) unstable; urgency=low * Adding Dutch debconf translations from Jeroen Schot (Closes: #655575). * Updating to debhelper version 9. * Updating to standards version 3.9.3. * Updating copyright file machine-readable format version 1.0. -- Daniel Baumann Wed, 14 Mar 2012 07:59:35 +0100 tftp-hpa (5.2-1ubuntu2) quantal; urgency=low * Rebuild for new armel compiler default of ARMv5t. -- Colin Watson Mon, 08 Oct 2012 23:01:31 +0100 tftp-hpa (5.2-1ubuntu1) precise; urgency=low * Merge from Debian testing. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debain/tftpd-hpa.upstart: Convert to usptart (LP: #522509) - debian/patches/04-use-memcpy-for-header.patch: fix FORTIFY-detected potential memory corruption (LP: #691345) -- Chuck Short Mon, 23 Jan 2012 09:24:51 -0500 tftp-hpa (5.2-1) unstable; urgency=low * Using compression level 9 also for binary packages. * Removing obsolete db_version call in tftpd-hpa postinst script. * Merging upstream version 5.2. -- Daniel Baumann Fri, 23 Dec 2011 15:10:17 +0100 tftp-hpa (5.1-3ubuntu3) precise; urgency=low * debian/tftpd-hpa.upstart: Fix typo. (LP: #911135) -- Chuck Short Tue, 03 Jan 2012 08:18:01 -0500 tftp-hpa (5.1-3ubuntu2) precise; urgency=low * debian/tftpd-hpa.upstart: Fix runlevel transition. (LP: #820698) -- Chuck Short Mon, 02 Jan 2012 10:20:29 -0500 tftp-hpa (5.1-3ubuntu1) precise; urgency=low * Merge from debian unstable. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debain/tftpd-hpa.upstart: Convert to usptart (LP: #522509) - debian/patches/04-use-memcpy-for-header.patch: fix FORTIFY-detected potential memory corruption (LP: #6913 -- Chuck Short Mon, 17 Oct 2011 18:54:29 +0000 tftp-hpa (5.1-3) unstable; urgency=low * Adding Brazilian Portuguese debconf translations from Flamarion Jorge (Closes: #640801). -- Daniel Baumann Wed, 28 Sep 2011 13:52:46 +0200 tftp-hpa (5.1-2ubuntu1) oneiric; urgency=low * Merge from debian unstable (LP: #842585). Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debain/tftpd-hpa.upstart: Convert to usptart (LP: #522509) - debian/patches/04-use-memcpy-for-header.patch: fix FORTIFY-detected potential memory corruption (LP: #691345) -- Mahyuddin Susanto Tue, 06 Sep 2011 18:55:40 +0700 tftp-hpa (5.1-2) unstable; urgency=low * Applying patch from Chris Lamb to correct wrong variable used in tftpd-hpa postrm that lead to not removing the tftp server directory on purge (Closes: #636152). -- Daniel Baumann Sun, 07 Aug 2011 16:43:58 +0200 tftp-hpa (5.1-1ubuntu1) oneiric; urgency=low * Merge from debian unstable. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debain/tftpd-hpa.upstart: Convert to usptart (LP: #522509) - debian/patches/04-use-memcpy-for-header.patch: fix FORTIFY-detected potential memory corruption (LP: #691345) -- Chuck Short Mon, 11 Jul 2011 18:51:12 +0100 tftp-hpa (5.1-1) unstable; urgency=low * Updating standards version to 3.9.2. * Merging upstream version 5.1. * Removing socket.patch, included upstream. * Renumbering patches. * Updating copyright file. * Updating lintian overrides. -- Daniel Baumann Sun, 10 Jul 2011 17:18:58 +0200 tftp-hpa (5.0-22ubuntu1) oneiric; urgency=low * Merge from debian unstable. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debain/tftpd-hpa.upstart: Convert to usptart (LP: #522509) - debian/patches/04-use-memcpy-for-header.patch: fix FORTIFY-detected potential memory corruption (LP: #691345). -- Chuck Short Wed, 09 Mar 2011 17:36:42 +0000 tftp-hpa (5.0-22) unstable; urgency=low * Adding support for multiple server directories in packaging files (Closes: #610647). * Silencing getent call in postinst. * Adding check in tftpd-hpa.init to ensure that --secure and multiple server directories are not used at the same time. -- Daniel Baumann Sun, 20 Feb 2011 00:18:01 +0100 tftp-hpa (5.0-21ubuntu2) natty; urgency=low * Clean up debian/patches and re-add dropped patch, 04-use-memcpy-for-header.patch (LP: #727356) -- Chuck Short Tue, 01 Mar 2011 14:24:12 -0500 tftp-hpa (5.0-21ubuntu1) natty; urgency=low * Merge from debian unstable. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debian/tftpd-hpa.upstart: Convert to upstart (LP: #522509) - debian/patches/04-use-memcpy-for-header.patch: fix FORTIFY-detected potential memory corruption (LP: #691345). -- Chuck Short Mon, 07 Feb 2011 06:07:31 +0000 tftp-hpa (5.0-21) unstable; urgency=low * Updating maintainer and uploaders fields. * Removing vcs fields. * Removing references to my old email address. * Makeing packaging distribution neutral. * Removing lenny legacy stuff. * Adding autoconf to build-depends. -- Daniel Baumann Sun, 06 Feb 2011 11:05:46 +0100 tftp-hpa (5.0-20) experimental; urgency=low * Update manpage to match source code regarding mapfile parameter, thanks to Jim Paris (Closes: #606267). -- Daniel Baumann Fri, 24 Dec 2010 17:42:08 +0100 tftp-hpa (5.0-19) experimental; urgency=low * Improving user checks with getent in postinst scripts. * Switching to source format 3.0 (quilt). * Updating to debhelper version 8. * Simplyfing autotools handing in rules. -- Daniel Baumann Sun, 19 Dec 2010 21:02:26 +0100 tftp-hpa (5.0-18ubuntu2) natty; urgency=low * debian/patches/04-use-memcpy-for-header.patch: fix FORTIFY-detected potential memory corruption (LP: #691345). -- Kees Cook Thu, 16 Dec 2010 17:44:44 -0800 tftp-hpa (5.0-18ubuntu1) natty; urgency=low * Merge from debian unstable. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from high to low. - debian/rules, debian/tftpd-hpa.upstart: Convert to upstart (LP: #522509) -- Chuck Short Tue, 07 Dec 2010 08:17:22 +0000 tftp-hpa (5.0-18) unstable; urgency=medium * Making greps for tftp username in postinst more robust. -- Daniel Baumann Mon, 06 Dec 2010 23:40:45 +0100 tftp-hpa (5.0-17) experimental; urgency=low * Updating standards version to 3.9.1. * Adding Danish debconf translations from Joe Hansen (Closes: #598042). -- Daniel Baumann Sat, 25 Sep 2010 22:38:41 +0200 tftp-hpa (5.0-16ubuntu1) natty; urgency=low * Merge from debian unstable. Remaining changes: - Set /var/lib/tftpboot by default instead of /srv/tftp. - Decrease priority of tftp path from hight to low - debian/rules, debian/tftpd-hpa.upstart: Convert to upstart (LP: #522509) -- Chuck Short Tue, 12 Oct 2010 12:17:05 +0100 tftp-hpa (5.0-16) unstable; urgency=low * Adding updated debconf translations from Vincenzo Campanella (Closes: #597314). -- Daniel Baumann Sun, 19 Sep 2010 12:45:25 +0200 tftp-hpa (5.0-15) unstable; urgency=low * Adding updated Czech debconf translations from Vítězslav Kotrla (Closes: #590136). * Harmonizing headers of po files. * Adding updated Spanish debconf translations from Omar Campagne (Closes: #590664). -- Daniel Baumann Thu, 05 Aug 2010 17:13:47 +0200 tftp-hpa (5.0-14ubuntu1) maverick; urgency=low * Merge from debian unstable: - Set /var/lib/tftpboot by default instead of /srv/tftp - Decrease priority of tftp path from hight to low - debian/rules, debian/tftpd-hpa.upstart: Convert to upstart (LP: #522509 -- Chuck Short Mon, 12 Jul 2010 09:15:56 -0400 tftp-hpa (5.0-14) unstable; urgency=medium * Updating standards version to 3.9.0. * Cherry-picking patch from upstream to fix logfile bug when reloading syslog (Closes: #541184). * Rediffing progname.patch. -- Daniel Baumann Sat, 10 Jul 2010 18:16:58 +0200 tftp-hpa (5.0-13ubuntu1) maverick; urgency=low * Merge from debian unstable: * Set /var/lib/tftpboot by default instead of /srv/tftp * Decrease priority of tftp path from hight to log * debian/rules, debian/tftpd-hpa.upstart: Convert to upstart (LP: #522509) -- Chuck Short Mon, 21 Jun 2010 14:46:15 -0400 tftp-hpa (5.0-13) unstable; urgency=low * Not failing if removal of server directory in postinst isn't successful. * Adding updated Japanese debconf translations from Hideki Yamane (Closes: #580158). -- Daniel Baumann Thu, 13 May 2010 19:09:44 +0200 tftp-hpa (5.0-12) unstable; urgency=low * Updating to standards 3.8.4. * Updating dh call to more common order. * Updating README.source. * Improving short-description of tftpd-hpa/address and tftpd- hpa/options debconf questions. * Adding lintian overrides. * Taking over default argument -s when updating configuration from lenny to squeeze (Closes: #569633). -- Daniel Baumann Wed, 07 Apr 2010 09:59:35 +0200 tftp-hpa (5.0-11ubuntu2) lucid; urgency=low * debian/rules, debian/tftpd-hpa.upstart: Convert to upstart. (LP: #522509) * debian/tftpd-hpa.postinst: Add "-s" to /etc/default/tftpd-hpa. (LP: #531123) -- Chuck Short Thu, 11 Mar 2010 12:40:07 -0500 tftp-hpa (5.0-11ubuntu1) lucid; urgency=low * Revert to pre-Lucid behavior (LP: #518815): * Set /var/lib/tftpboot by default instead of /srv/tftp/ * Decrease priority of tftp path from high to low -- Stéphane Graber Wed, 10 Feb 2010 10:05:01 -0500 tftp-hpa (5.0-11) unstable; urgency=medium * Removing explicit LDFLAGS, did apparently not fix the FTBFS on mips*. * Adding updated Russian debconf translations from Yuri Kozlov (Closes: #563079). * Applying patch from Thorsten Glaser to fix FTBFS on mips/mipsel (Closes: #564052). -- Daniel Baumann Fri, 22 Jan 2010 21:05:54 +0100 tftp-hpa (5.0-10) unstable; urgency=low * Adding explicit debian source version 1.0 until switch to 3.0. * Making an educated guess to fix FTBFS on mips (all public mips* boxes of debian are down at the moment) and setting explicit LDFLAGS. -- Daniel Baumann Wed, 16 Dec 2009 17:40:33 +0100 tftp-hpa (5.0-9) unstable; urgency=low * Adding updated Swedish debconf translations from Martin Bagge (Closes: #556581). * Adding updated Portuguese debconf translations from Americo Monteiro (Closes: #557007). -- Daniel Baumann Sun, 22 Nov 2009 17:29:06 +0100 tftp-hpa (5.0-8) unstable; urgency=low * Setting last-translator for German debconf templates to me, no intention do deal with debian-l10n-german in the future anymore (Closes: #552311). * Dealing with /etc/default/tftpd-hpa in a policy compliant way, thanks to Julien Cristau (Closes: #543199). * Setting debconf priority for tftpd-hpa/directory to high. Together with the previous commit (which has the effect, that it is always prompted for the directory on upgrades from lenny), the tftpd directory gets now more visibility (Closes: #551828). -- Daniel Baumann Tue, 10 Nov 2009 11:26:02 +0100 tftp-hpa (5.0-7) unstable; urgency=low * Removing debconf-updatepo call from clean target in rules. * Adding missing build-depends to quilt (Closes: #547738). * Simplifying autotools handling in rules. * Bumping versioned build-depends on debhelper. * Bumping versioned build-depends on quilt. * Adding updated German debconf translations form Helge Kreutzmann (Closes: #550486). * Adding updated French debconf translations from Steve Petruzzello (Closes: #552068). * Replacing some Germanisms from the German debconf translations. -- Daniel Baumann Fri, 23 Oct 2009 08:43:37 +0200 tftp-hpa (5.0-6) unstable; urgency=low * Adding patch to replace upstreams default server root with debians default server root in documentation. * Installing sample.rules for tftpd as example. * Also asking server address and port through debconf. * Allowing to specify other own options through debconf as well. * Updating to standards version 3.8.3. * Adding updated Portuguese debconf translations from Americo Monteiro (Closes: #542617). * Adding updated German debconf translations from Helge Kreutzmann (Closes: #543242). * Adding maintainer homepage field to control. * Marking maintainer homepage field to be also included in binary packages and changelog. * Adding README.source. * Moving maintainer homepage field from control to copyright. * Updating README.source. * Adding updated Swedish debconf translations from Martin Bagge (Closes: #543408). * Adding updated French debconf translations from Steve Petruzzello (Closes: #544421). * Adding updated Japanese debconf translations from Hideki Yamane (Closes: #545407). -- Daniel Baumann Mon, 21 Sep 2009 21:20:57 +0200 tftp-hpa (5.0-5) unstable; urgency=low * Adding missing build-depends to autotools-dev (Closes: #541550). -- Daniel Baumann Fri, 14 Aug 2009 21:12:27 +0200 tftp-hpa (5.0-4) unstable; urgency=low * Improving English in messages outputted in postinst script, thanks to Mark Brown (Closes: #538012). * Adding status to init script, thanks to Peter Eisentraut (Closes: #538071). * Updating maintainer field. * Updating vcs fields. * Sorting depends. * Minimizing rules file. * Fixing debconf handling of /etc/default/tftpd-hpa to not always overwrite the file (Closes: #537846). * Handling upgrades from 0.49 (lenny) to 5.0 (Closes: #539000). * Handling partial upgrades from 5.0-3 (sid). * Adding Otavio to uploaders. -- Daniel Baumann Fri, 14 Aug 2009 19:33:38 +0200 tftp-hpa (5.0-3) unstable; urgency=low * Removing obsolete entry about --secure in readme, tftpd-hpa is running with -s by default for quite some time already. * Using long options when calling tftpd-hpa in initscript. * Adding missing equal sign in defaults file (Closes: #537712). -- Daniel Baumann Tue, 21 Jul 2009 16:23:33 +0200 tftp-hpa (5.0-2) unstable; urgency=low * Adding forgotten bug numbers to previous changelog entry. * Now running always as unprivileged user (Closes: #245017). -- Daniel Baumann Mon, 20 Jul 2009 01:27:27 +0200 tftp-hpa (5.0-1) unstable; urgency=low * Merging upstream version 5.0 (Closes: #525635): - correctly turns off PMTU discovery (Closes: #501025). * Taking over package, Jaakko is mia. * Using correct rfc-2822 date formats in changelog. * Removing useless whitespaces at EOL and EOF. * Updating package to debhelper 7. * Updating package to standards 3.8.2. * Adding homepage field in control file. * Adding vcs fields in control file. * Adding misc:Depends to depends field in control. * Improving package descriptions. * Adding syslinux-common to suggests of tftpd-hpa. * Sorting fields in control file. * Rewriting copyright file in machine-interpretable format. * Prefixing debhelper files with package names. * Adding build-depends to po-debconf. * Rewriting rules file from scratch. * Using dh_install rather than dh_movefiles. * Removing unused build-depend on libreadline5-dev. * Now running always in daemon mode, it is too error prone and messy to support inetd mode (Closes: #272882, #275514, #437651, #503120, #505335, #505367, #535212, #537476). * Now using /srv/tftp as default server root (Closes: #477109). * Using debconf to ask for server root. * Aborting in initscript if server root does not exist (Closes: #497268). * Rewriting initscript, using lsb functions now. * Updating readme to reflect changes about the initscript. * Adding example preseed file. -- Daniel Baumann Sun, 19 Jul 2009 23:48:12 +0200 tftp-hpa (0.49-1.1) unstable; urgency=low * Non-maintainer upload. * Conditionally calling update-inetd in tftpd-hpa.postinst (Closes: #522780). -- Daniel Baumann Wed, 08 Jul 2009 14:50:00 +0200 tftp-hpa (0.49-1) unstable; urgency=low * New upstream release (IPv6 support and other goodies) (Closes: #513642) * Apply patch to remove stop links on rc0 and 6 (Closes: #493838) -- Jaakko Niemi Mon, 16 Feb 2009 23:01:20 +0200 tftp-hpa (0.48-2.3) unstable; urgency=low * Non-maintainer upload. * Fix pending l10n issues. Debconf translations: - Italian. Closes: #495240 - Russian. Closes: #502892 - Basque. Closes: #503073 -- Christian Perrier Mon, 27 Oct 2008 18:23:12 +0100 tftp-hpa (0.48-2.2) unstable; urgency=high * Non-maintainer upload. * Fix previous NMU for Conflict with aftpd (Closes: #476456). * Add Galician Debconf translation (Closes: 481674). Thanks to Jacobo Tarrio. * Update Standards-Version. -- Steve McIntyre <93sam@debian.org> Sun, 29 Jun 2008 17:14:31 +0100 tftp-hpa (0.48-2.1) unstable; urgency=high * Non-maintainer upload. * Add missing Conflict with aftpd (Closes: #476456). -- Pierre Habouzit Thu, 05 Jun 2008 10:37:05 +0200 tftp-hpa (0.48-2) unstable; urgency=low * Only Recommend inet-superserver (Thanks, Daniel (Closes: #462654) * Add missing dependencies (Thanks, Michael) (Closes: #452536) * Remove unnecessary Provides (Closes: #455262) -- Jaakko Niemi Sat, 15 Mar 2008 19:34:07 +0200 tftp-hpa (0.48-1) unstable; urgency=low * New upstream release * added --oknodo to initscripts (Closes: #433891, #415845) * depend on inet-superserver instead of netbase (Closes: #438163) * Debconf translations: - Dutch. (Closes: #414754, #449412) - Spanish. (Closes: #433925) -- Jaakko Niemi Tue, 20 Nov 2007 22:40:51 +0200 tftp-hpa (0.43-1.1) unstable; urgency=low * Non-maintainer upload to fix pending l10n issues. * Debconf translations: - German. Closes: #400053 - Catalan. Closes: #410217 - Brazilian Portuguese. Closes: #403560 * Provide a crude LSB header to the init script -- Christian Perrier Sat, 24 Feb 2007 07:47:29 +0100 tftp-hpa (0.43-1) unstable; urgency=low * New upstream release * Add binary-indep target to debian/rules (Closes: #395753) -- Jaakko Niemi Sat, 28 Oct 2006 14:42:52 +0300 tftp-hpa (0.42-1) unstable; urgency=low * New upstream release * Fixes pmtu issues, differently than in patches (Closes: #294882, #316616) * Fixes regexp issue, differently than in patch (Closes: #316038) * Ack NMUs: (Closes: #308688, #350649, #332116, #298748, #307006, #322296, #331595, #335952) * Check and bump debhelper compat level * Check and bump policy version -- Jaakko Niemi Sun, 19 Mar 2006 00:51:20 +0200 tftp-hpa (0.40-4.2) unstable; urgency=high * Non-maintainer upload. * Update readline build-dep to libreadline5-dev (Closes: #350649). * Added Vietnamese debconf translation (Closes: #322296). * Added Swedish debconf translation (Closes: #331595). * Added Portuguese debconf translation (Closes: #335952). * Add debconf-2.0 alternative (Closes: #332116). -- Luk Claes Wed, 15 Feb 2006 12:18:32 +0100 tftp-hpa (0.40-4.1) unstable; urgency=high * NMU * Added netbase to Depends: (closes: #308688) * Update Czech debconf translation (closes: #298748) * Added Japanese debconf translation (closes: #307006) -- Kenshi Muto Sat, 14 May 2005 11:10:59 +0900 tftp-hpa (0.40-4) unstable; urgency=low * How many times can you screw up in a row? * Fix initscript (Closes: #293040) * Updated French translation (Closes: #292847) * Added Czech debconf translations (Closes: #289285) -- Jaakko Niemi Fri, 04 Feb 2005 19:56:17 +0200 tftp-hpa (0.40-3) unstable; urgency=low * Fix and clean initscript (Closes: #279179, #279241) * Document issue with XP1000 machines, bug #285134. * Remove pidfile option from init script as in daemon mode tftpd-hpa does not create it and forks. -- Jaakko Niemi Sat, 22 Jan 2005 17:05:35 +0200 tftp-hpa (0.40-2) unstable; urgency=low * Fixed typo in debconf template. Not running debconf‐updatepo as translators propably don't have reproduced the typo. * Lowered debconf prompt priority (closes: #276832) * Made initscript to be more informative about daemon being disabled. * Fixed postinst logic to enable default to running from inetd if upgrading from older versions, and only disable from inetd if ran as daemon. (closes: #276827, #276831) -- Jaakko Niemi Sun, 17 Oct 2004 01:12:49 +0300 tftp-hpa (0.40-1) unstable; urgency=low * New upstream release * Add French translation (closes: #273990) -- Jaakko Niemi Thu, 14 Oct 2004 22:05:51 +0300 tftp-hpa (0.39-1) unstable; urgency=low * New upstream release * add initscript and /etc/defaults/tftpd-hpa (closes: #237949) -- Jaakko Niemi Sun, 19 Sep 2004 12:49:56 +0300 tftp-hpa (0.36-1) unstable; urgency=low * New upstream release, enables remap and tcpwrappers support (Closes: #205659) * Correct server postinst to use correct path with update-inetd, duh. (Closes: #229619) -- Jaakko Niemi Mon, 26 Jan 2004 20:11:31 +0200 tftp-hpa (0.34-2) unstable; urgency=low * really remove inetd line in package purge (Closes: #179867) -- Jaakko Niemi Sat, 10 Jan 2004 18:06:02 +0200 tftp-hpa (0.34-1) unstable; urgency=low * New maintainer (Closes: #136172) * New upstream release, see changelog for details. Has much improved error handling. (Closes: #213379) * Add correct line into inetd configuration (Closes: #150108) * Update standards version, no changes needed * User /var/lib/tftpboot untill FHS 2.3 gets into use -- Jaakko Niemi Sat, 10 Jan 2004 17:41:07 +0200 tftp-hpa (0.28-2.1) unstable; urgency=low * NMU * Fix prerm-doesn't-understand-args bug. Closes: #136172 -- LaMont Jones Mon, 12 Aug 2002 13:33:59 -0600 tftp-hpa (0.28-2) unstable; urgency=low * Restore binary-arch in debian/rules, which I deleted with god faith to clean up but out of ignorance (Closes: #135776) * Reaslly close previously typo-ed bug (Closes: #130801) * get rid of unneccersary bashism in tftpd-hpa.postinst (s/==/=/) -- Oliver M. Bolzer Tue, 26 Feb 2002 08:18:12 +0100 tftp-hpa (0.28-1) unstable; urgency=low * New Maintainer * new upstream version (Closes: #13081) * works in more PXE environments (like mine) * supports tcpwrapper * stays active for some time after invocation (performance improvement) * adds standalone mode (no need for inetd) for busy servers not the default for this package * file-name remapping using regexps * readline command-line editing in the client (not enabled due to BSD adv.-caluse GPL conflict) * decent manpage -- Oliver M. Bolzer Tue, 19 Feb 2002 10:44:19 +0100 tftp-hpa (0.14-2) unstable; urgency=low * Enable and disable tftp service on install and remove -- Wichert Akkerman Fri, 17 Nov 2000 14:13:36 +0000 tftp-hpa (0.14-1) unstable; urgency=low * Initial Debian release -- Wichert Akkerman Fri, 17 Nov 2000 10:41:09 +0000 tftp-hpa/debian/compat0000664000000000000000000000000213573457576012137 0ustar 9 tftp-hpa/debian/control0000664000000000000000000000377013573460506012336 0ustar Source: tftp-hpa Section: net Priority: extra Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Ron Lee Build-Depends: debhelper (>= 9), autoconf, autotools-dev, libwrap0-dev, po-debconf Standards-Version: 3.9.6.1 Homepage: http://git.kernel.org/cgit/network/tftp/tftp-hpa.git Vcs-Browser: http://git.debian.org/?p=users/ron/tftp-hpa.git Vcs-Git: git://git.debian.org/users/ron/tftp-hpa.git Package: tftp-hpa Architecture: linux-any kfreebsd-any Depends: ${shlibs:Depends} Conflicts: tftp Description: HPA's tftp client Trivial File Transfer Protocol (TFTP) is a file transfer protocol, mainly to serve boot images over the network to other machines (PXE). . tftp-hpa is an enhanced version of the BSD TFTP client and server. It possesses a number of bugfixes and enhancements over the original. . This package contains the client. Package: tftp-hpa-dbg Section: debug Priority: extra Architecture: linux-any kfreebsd-any Depends: tftp-hpa (= ${binary:Version}), tftpd-hpa (= ${binary:Version}) Description: HPA's tftp (debug) Trivial File Transfer Protocol (TFTP) is a file transfer protocol, mainly to serve boot images over the network to other machines (PXE). . tftp-hpa is an enhanced version of the BSD TFTP client and server. It possesses a number of bugfixes and enhancements over the original. . This package contains the debugging symbols for both the client and the server. Package: tftpd-hpa Architecture: linux-any kfreebsd-any Depends: ${shlibs:Depends}, adduser, ${misc:Depends} Conflicts: tftp-server, tftpd, atftpd Replaces: tftp-server, tftpd, atftpd Provides: tftp-server Suggests: pxelinux Description: HPA's tftp server Trivial File Transfer Protocol (TFTP) is a file transfer protocol, mainly to serve boot images over the network to other machines (PXE). . tftp-hpa is an enhanced version of the BSD TFTP client and server. It possesses a number of bugfixes and enhancements over the original. . This package contains the server. tftp-hpa/debian/copyright0000664000000000000000000000720713573457576012702 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: tftp-hpa Upstream-Contact: syslinux@zytor.com Source: git://git.kernel.org/pub/scm/network/tftp/tftp-hpa.git Files: * Copyright: 1984-1994 The Regents of the University of California 2000-2014 H. Peter Anvin License: BSD-4 Files: */*.in Copyright: 1984-1994 The Regents of the University of California 2000-2014 H. Peter Anvin License: BSD-3 Files: debian/* Copyright: 2014 Ron Lee License: BSD-3 License: BSD-3 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: BSD-4 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. tftp-hpa/debian/po/0000775000000000000000000000000013573460547011347 5ustar tftp-hpa/debian/po/POTFILES.in0000664000000000000000000000005613573457576013135 0ustar [type: gettext/rfc822deb] tftpd-hpa.templates tftp-hpa/debian/po/cs.po0000664000000000000000000001037113573460547012316 0ustar # Czech translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Vítězslav Kotrla # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2010-07-20 05:54+0200\n" "Last-Translator: Vitezslav Kotrla \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Vyhrazený systémový účet, pod kterým bude běžet TFTP démon tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "Pokud by byl TFTP server spuštěn se superuživatelskými oprávněními, mohlo by " "dojít ke kompromitaci zabezpečení systému. Proto musí TFTP server pro svoji " "činnost používat vyhrazený neprivilegovaný účet." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Zvolte prosím název totoho účtu." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Kořenový adresář TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "Zadejte prosím adresář, ve kterém bude umístěn kořen TFTP serveru:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Adresa a port serveru TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Zadejte prosím adresu a port, na kterém bude TFTP server naslouchat, ve " "formě [adresa][:port]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Ve výchozím nastavení TFTP server naslouchá na portu 69 na všech adresách a " "všech síťových rozhraních (:69). Pokud nebude zadán port, použije se " "výchozí hodnota 69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Upozornění: Pro vyloučení záměny s volitelným údajem o portu je třeba " "numerické adresy IPv6 uzavřít do hranatých závorek." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Dodatečné volby pro TFTP server:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Zde mohou být TFTP serveru předány dodatečné volby, jejich přehled naleznete " "v manuálové stránce tftpd(8)." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Jiné volby než doporučované '--secure' nejsou obvykle potřeba a využijete je " "pouze ve speciálních situacích. Pokud nevíte, ponechejte doporučenou výchozí " "hodnotu." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Ve výchozím nastavení TFTP server naslouchá na portu 69 na všech adresách " #~ "a všech síťových rozhraních (0.0.0.0:69). Pokud nebude zadán port, " #~ "použije se výchozí hodnota 69." tftp-hpa/debian/po/da.po0000664000000000000000000001002013573460547012264 0ustar # Danish translation of tftpd-hpa debconf templates. # 2010 Joe Hansen # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2010-09-25 17:30+01:00\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Dedikeret systemkonto til tftpd-hpa's TFTP-dæmon:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "TFTP-serveren skal bruge en dedikeret konto til sine handlinger, så " "systemets sikkerhed ikke kompromiteres ved at køre den med " "superbrugerrettigheder." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Vælg venligst den kontos brugernavn." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "TFTP-rodmappe:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "Angiv venligst mappen som vil blive brugt som rod for TFTP-serveren." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "TFTP-serveradresse og -port:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Angiv venligst en adresse og port at lytte på i form af [adresse][:port]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Som standard, lytter TFTP-serveren på port 69 for alle adresser og alle " "grænseflader (:69). Hvis ingen port er angivet, er standarden 69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Bemærk venligst at numeriske IPv6-adresser skal vedlægges i firkantede " "parenteser for at undgå tvetydighed med den frivillige portinformation." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Yderligere tilvalg for TFTP-server:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Yderligere tilvalg kan videresendes til TFTP-serveren med denne mekanisme, " "konsulter venligst manualsiden tftpd(8) for yderligere information om " "tilgængelige tilvalg." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Tilvalg udover den anbefalede '--secure' er sjældent nødvendigt og kun til " "specielle situationer. Hvis usikker, behold den anbefalede standardværdi." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Som standard, lytter TFTP-serveren på port 69 for alle adresser og alle " #~ "grænseflader (0.0.0.0:69). Hvis ingen port er angivet, er standarden 69." tftp-hpa/debian/po/de.po0000664000000000000000000001053413573460547012302 0ustar # German translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Kai Wasserbäch # Copyright (C) 2009 Helge Kreutzmann # Copyright (C) 2009-2010 Daniel Baumann # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2010-07-20 05:54+0200\n" "Last-Translator: Daniel Baumann \n" "Language-Team: none\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Eigenes Systemkonto für den tftpd-hpa TFTP-Daemon:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "Der TFTP-Server muss ein eigenes Konto für den Betrieb verwenden, um die " "Sicherheit des Systems nicht durch das Betreiben mit Superuser-Rechten zu " "kompromittieren." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Bitte wählen Sie den Benutzernamen dieses Kontos." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "TFTP-Wurzelverzeichnis:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Bitte geben Sie das Verzeichnis an, welches als Wurzelverzeichnis für den " "TFTP-Server verwendet werden soll." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "TFTP-Serveradresse und -Port:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Bitte geben Sie eine Adresse und einen Port in der Form [Adresse][:Port] an, " "an dem auf Anfragen gewartet werden soll." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Standardmässig wartet der TFTP-Server auf Port 69 auf allen Adressen und " "allen Schnittstellen (:69). Ohne Port-Angabe wird die Vorgabe 69 " "verwendet." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Bitte beachten Sie, dass numerische IPv6-Adressen in eckige Klammern " "eingeschlossen werden müssen, um Zweideutigkeiten mit der Port-Information " "zu vermeiden." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Zusätzliche TFTP-Server Optionen:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Dem TFTP-Server kann mit diesem Mechanismus zusätzliche Optionen übergeben " "werden. Bitte lesen Sie die Handbuchseite tftpd(8) für weitere Informationen " "über verfügbare Optionen." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Andere als die empfohlene Option \"--secure\" werden selten und nur für " "besondere Situationen benötigt. Falls Sie sich unsicher sind, belassen Sie " "den Vorgabewert." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Standardmässig wartet der TFTP-Server auf Port 69 auf allen Adressen und " #~ "allen Schnittstellen (0.0.0.0:69). Ohne Port-Angabe wird die Vorgabe 69 " #~ "verwendet." tftp-hpa/debian/po/es.po0000664000000000000000000001062613573460547012323 0ustar # Spanish translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Software in the Public Interest # 2009 Fernando González de Requena # 2010 Omar Campagne # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftpd-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2010-07-18 10:38+0200\n" "Last-Translator: Omar Campagne \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Cuenta del sistema dedicada para el demonio de TFTP tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "El servidor de TFTP debe utilizar una cuenta dedicada para su " "funcionamiento, de tal modo que la seguridad del sistema no se vea " "comprometida por su utilización con privilegios de administración." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Elija un nombre de usuario para esa cuenta." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Directorio raíz del servidor de TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Especifique el directorio que se utilizará como directorio raíz para el " "servidor de TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Dirección y puerto del servidor de TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Especifique una dirección y puerto en el que escuchar con la forma " "[dirección][:puerto]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Por omisión, el servidor de TFTP escucha en el puerto 69 de todas las " "direcciones e interfaces (:69). Si no se especifica un puerto, el valor " "por omisión es 69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Tenga en cuenta que las direcciones IPv6 numéricas deben ir entre corchetes " "«[]» para evitar la ambigüedad con la información opcional del puerto." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Opciones adicionales del servidor de TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Mediante este mecanismo, se pueden introducir opciones adicionales al " "servidor de TFTP. Para más información acerca de las opciones disponibles " "consulte la página de manual tftpd(8)." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Rara vez, y sólo en situaciones especiales, necesitará otras opciones más " "allá de la recomendada, «--secure». Si no está seguro, deje el valor " "recomendado por omisión." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Por omisión, el servidor de TFTP escucha en el puerto 69 de todas las " #~ "direcciones e interfaces (0.0.0.0:69). Si no se especifica un puerto, el " #~ "valor por omisión es 69." tftp-hpa/debian/po/fi.po0000664000000000000000000000600413573460547012305 0ustar # Finnish translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Esko Arajärvi # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2009-04-07 22:19+0300\n" "Last-Translator: Esko Arajärvi \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Dedikoitu järjestelmätunnus vsfptd:n TFTP-taustaohjelman ajamiseen:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "TFTP-palvelimen tulee käyttää dedikoitua tunnusta toiminnoissaan, jotta " "järjestelmän turvallisuus ei vaarannu kuten käytettäessä " "pääkäyttäjäoikeuksia." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Valitse kyseisen tunnuksen nimi." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "TFTP-juurihakemisto:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "Anna hakemisto, jota käytetään TFTP-palvelimen juurena." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" tftp-hpa/debian/po/fr.po0000664000000000000000000001037113573460547012320 0ustar # French translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Steve Petruzzello # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2009-03-26 01:12+0100\n" "Last-Translator: Steve Petruzzello \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Identifiant dédié pour le démon TFTP tftpd-hpa :" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "Afin de ne pas compromettre la sécurité du système, le serveur TFTP doit " "être exécuté avec un identifiant spécifique, différent du superutilisateur." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Veuillez choisir cet identifiant." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Répertoire racine TFTP :" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Veuillez choisir le répertoire racine qui sera utilisé par le serveur TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Adresse et port du serveur TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Veuillez indiquer une adresse et un port d'écoute sous la forme [adresse][:" "port]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Le serveur TFTP écoute par défaut sur le port 69 pour toutes les adresses et " "toutes les interfaces (:69). Si aucun port n'est indiqué, le port par " "défaut sera le port 69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Veuillez noter que pour ne pas être confondues avec des numéros de ports, " "d'éventuelles adresses IPv6 doit être entourées de crochets. " #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Options supplémentaires pour le serveur TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Des options supplémentaires peuvent être utilisées avec le serveur TFTP. " "Veuillez consulter la page de manuel tftp(8) pour davantage d'informations " "sur les options disponibles." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "À part l'option « --secure » qui est recommandée, les autres sont rarement " "nécessaires et ne sont utilisées que pour des situations très spéciales. " "Dans le doute, vous devriez laisser les valeurs par défaut." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Le serveur TFTP écoute par défaut sur le port 69 pour toutes les adresses " #~ "et toutes les interfaces (0.0.0.0:69). Si aucun port n'est indiqué, le " #~ "port par défaut sera le port 69." tftp-hpa/debian/po/gl.po0000664000000000000000000000605713573460547012321 0ustar # Galizian translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Marce Villarino # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2009-04-15 21:32+0200\n" "Last-Translator: marce villarino \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Conta de usuario do sistema adicada ao daemon TFTP tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "O servidor TFTP debe empregar unha conta adicada a el para que a seguridade " "do sistema non se poña en perigo ao executalo con privilexios de " "administrador." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Escolla o nome de usuario desa conta." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Directorio raíz do TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Especifique o directorio que se empregará como raíz polo servidor TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" tftp-hpa/debian/po/it.po0000664000000000000000000001050413573460547012323 0ustar # Italian translation of tftpd-hpa debconf templates. # Copyright (C) 2009-2010 Vincenzo Campanella # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-15\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2010-09-17 13:35+0100\n" "Last-Translator: Vincenzo Campanella \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Account di sistema dedicato per il demone TFTP di tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "Il server TFTP deve utilizzare un account dedicato per eseguire le proprie " "operazioni, in modo che la sicurezza del sistema non rischi di essere " "compromessa eseguendolo con privilegi di superutente." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Scegliere il nome utente di tale account." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Directory radice TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Specificare la directory che verrà utilizzata come radice per il server TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Indirizzo e porta del server TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Specificare un indirizzo e una porta, sotto forma di [indirizzo][:porta]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "In modo predefinito il server TFTP si pone in ascolto sulla posta 69 su " "tutti gli indirizzi e tutte le interfacce (:69). Se non viene " "specificata alcuna porta viene utilizzata quella predefinita (la 69)." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Notare che gli indirizzi numerici IPv6 devono essere racchiusi fra parentesi " "quadre al fine di evitare ambiguità con l'informazione facoltativa della " "porta." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Opzioni addizionali per il server TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "È possibile passare al server TFTP delle opzioni addizionali utilizzando " "questo meccanismo; per maggiori informazioni sulle opzioni disponibili " "consultare le pagine del manuale di tftpd(8)." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Opzioni all'infuori di quella, raccomandata, «--secure» sono raramente " "necessarie e solo per situazioni particolari. In caso di dubbio, lasciare il " "valore predefinito." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "In modo predefinito il server TFTP si pone in ascolto sulla posta 69 su " #~ "tutti gli indirizzi e tutte le interfacce (0.0.0.0:69). Se non viene " #~ "specificata alcuna porta viene utilizzata quella predefinita (la 69)." tftp-hpa/debian/po/ja.po0000664000000000000000000001120013573460547012273 0ustar # Japanese translation of tftpd-hpa debconf templates. # Copyright (C) 2009-2010 Hideki Yamane # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2010-05-04 07:21+0200\n" "Last-Translator: Hideki Yamane (Debian-JP) \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "tftpd-hpa TFTP デーモン専用のシステムアカウント:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "TFTP サーバはその動作について専用のアカウントを使うようになっているため、管理" "者特権で動作していてもシステムのセキュリティは侵害されません。" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "アカウントのユーザ名を選んでください。" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "TFTP の root ディレクトリ:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "TFTP サーバの root ディレクトリとして利用するディレクトリを指定してください。" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "TFTP サーバのアドレスとポート番号" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "[address][:port] という形で listen するアドレスとポート番号を指定してくださ" "い。" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "デフォルトでは、TFTP サーバは全てのアドレス上の69番ポートと、全てのインター" "フェイス上で listen します (:69)。ポートが指定されない場合は、デフォルト" "値は 69 です。" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "数字で表記される IPv6 アドレスは、追加のポート情報との混同を避けるため、角" "カッコ ([]) で括られなければならないことに注意してください。" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "TFTP サーバの追加オプション" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "この方法で TFTP サーバに追加オプションを渡すことができます。利用可能なオプ" "ションについての詳細は、tftpd(8) マニュアルページを確認してください。" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "推奨されている '--secure' 以外のオプションが必要なことは稀で、特定の状況にの" "み必要とされます。良く分からない場合は、推奨であるデフォルト値のままにしてお" "いてください。" #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "デフォルトでは、TFTP サーバは全てのアドレス上の69番ポートと、全てのイン" #~ "ターフェイス上で listen します (0.0.0.0:69)。ポートが指定されない場合は、" #~ "デフォルト値は 69 です。" tftp-hpa/debian/po/nl.po0000664000000000000000000001023313573460547012317 0ustar # Dutch translation of tftpd-hpa debconf templates. # Copyright (C) 2012 Jeroen Schot # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.2\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2012-01-12 14:42+0100\n" "Last-Translator: Jeroen Schot \n" "Language-Team: Debian l10n Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Speciaal systeemaccount voor de tftpd-hpa-achtergronddienst:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "De TFTP-server moet een speciaal account gebruiken voor zijn werkzaamheden, " "want als hij met beheerdersrechten wordt uitgevoerd kan dit de beveiliging " "van het systeem in gevaar brengen." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Welke gebruikersnaam moet de account krijgen?" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "TFTP-hoofdmap:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "Welke map moet er worden gebruikt als hoofdmap voor de TFTP-server?" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Adres en poort voor de TFTP-server:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Op welk adres en poort moet de server luisteren? Voer dit in als [adres][:" "poort]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Standaard luistert de TFTP-server op poort 69 van alle adressen en " "interfaces (:69). Als u geen poort opgeeft, zal de standaardwaarde 69 " "worden gebruikt." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Merk op dat numeriek IPv6-adressen tussen vierkante haken moeten worden " "geplaatst om verwarring met de optionele poortinformatie te voorkomen." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Extra opties voor TFTP-server:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Met dit mechanisme kunnen er extra opties aan de TFTP-server worden " "meegegeven. Zie de man-pagina van tftpd(8) voor meer informatie over de " "beschikbare opties." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Andere opties dan de aanbevolen '--secure' zijn zelden nodig en alleen voor " "speciale omstandigheden. Als u twijfelt, laat dit dan op de aanbevolen " "standaard waarde." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Standaard luistert de TFTP-server op poort 69 van alle adressen en " #~ "interfaces (0.0.0.0:69). Als u geen poort opgeeft, zal de standaardwaarde " #~ "69 worden gebruikt." tftp-hpa/debian/po/pt.po0000664000000000000000000001040213573460547012327 0ustar # Portuguese translation of tftpd-hpa debconf templates. # 2009 Américo Monteiro # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2009-11-14 01:07+0000\n" "Last-Translator: Américo Monteiro \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Conta dedicada do sistema para o daemon TFTP tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "O servidor TFTP tem que usar uma conta dedicada para as suas operações, isto " "para que a segurança do sistema não seja comprometida ao corrê-lo com " "privilégios de super-utilizador." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Por favor escolha o nome de utilizador dessa conta." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Directório raiz TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Por favor especifique o directório que será usado como a raiz do servidor " "TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Endereço e porto do servidor TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Por favor especifique um endereço e porto a escutar no formato de [endereço]" "[:porto]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Por predefinição, o servidor TFTP escuta no porto 69 em todos os endereços e " "todas as interfaces (:69). Se nenhum porto for especificado, será usado " "o 69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Por favor note que endereços IPv6 numéricos tem que estar dentro de " "parênteses rectos para evitar a ambiguidade com a informação de porto " "opcional." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Opções adicionais do servidor TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Pode ser passadas opções adicionais ao servidor TFTP com este mecanismo, por " "favor consulte a manpage tftpd(8) para mais informação sobre opções " "disponíveis." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Opções além da recomendada '--secure' são raramente necessárias e apenas " "para situações especiais. Em caso de dúvidas, deixe no valor predefinido e " "recomendado." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Por predefinição, o servidor TFTP escuta no porto 69 em todos os " #~ "endereços e todas as interfaces (0.0.0.0:69). Se nenhum porto for " #~ "especificado, será usado o 69." tftp-hpa/debian/po/pt_BR.po0000664000000000000000000001051213573460547012714 0ustar # Brazilian Portuguese translation of tftpd-hpa debconf templates. # 2011 Flamarion Jorge # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-22\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2011-06-04 15:25-0300\n" "Last-Translator: Flamarion Jorge \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Conta de sistema dedicada para o daemon TFTP do tftp-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "O servidor TFTP deve usar uma conta dedicada para o seu funcionamento, de " "modo que a segurança do sistema não seja comprometida por executá-lo com " "privilégios de superusuário." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Por favor, escolha o nome de usuário da conta." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Diretório raiz do TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Por favor, especifique o diretório que será usado como raiz para o servidor " "TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Endereço e porta do servidor TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Por favor, especifique um endereço e uma porta para ouvir, usando o seguinte " "formato [endereço][:porta]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Por padrão, o servidor TFTP escuta na porta 69 em todos os endereços de " "todas as interfaces (:69). Se a porta não for especificada, o padrão " "será a 69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Por favor, note que os endereços IPv6 numéricos devem ser colocados entre " "colchetes para evitar ambiguidades com as informações da porta opcional." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Opções adicionais para o servidor TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Opções adicionais podem ser passadas para o servidor TFTP com este " "mecanismo, por favor, consulte a manpage tftpd(8) para mais informações " "sobre opções disponíveis." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Outras opções além da recomendada '--secure' raramente são necessárias e " "somente em situações especiais. Se não tiver certeza, é recomendado deixar o " "valor padrão." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Por padrão, o servidor TFTP escuta na porta 69 em todos os endereços de " #~ "todas as interfaces (0.0.0.0:69). Se a porta não for especificada, o " #~ "padrão será a 69." tftp-hpa/debian/po/ru.po0000664000000000000000000001212313573460547012334 0ustar # German translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Sergey Alyoshin # Copyright (C) 2009 Yuri Kozlov # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2009-12-30 19:18+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "" "Специально выделенная системная учётная запись для TFTP службы tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "Для улучшения безопасности системы TFTP сервер должен использовать " "специально выделенную учётную запись, а не запускаться с правами " "суперпользователя." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Укажите имя такой учётной записи." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Корневой каталог TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" "Укажите каталог, который будет использован в качестве корневого каталога " "TFTP сервера." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Адрес и порт сервера TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "Укажите прослушиваемый адрес и порт в виде [адрес][:порт]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "По умолчанию, сервер TFTP прослушивает порт 69 на всех адресах и интерфейсах " "(:69). Если порт не указан, то по умолчанию используется 69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Заметим, что числовые адреса IPv6 нужно заключать в квадратные скобки, чтобы " "избежать неоднозначности с указанием номера порта." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Дополнительные параметры сервера TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Серверу TFTP можно передать дополнительные параметры; возможные параметры " "описаны в справочной странице tftpd(8)." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Кроме рекомендуемого параметра '--secure' все остальные используются редко и " "в определённых ситуациях. Если не уверены, оставьте рекомендуемое значение " "по умолчанию." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "По умолчанию, сервер TFTP прослушивает порт 69 на всех адресах и " #~ "интерфейсах (0.0.0.0:69). Если порт не указан, то по умолчанию " #~ "используется 69." tftp-hpa/debian/po/sk.po0000664000000000000000000001021613573460547012324 0ustar # Slovak translation of tftpd-hpa debconf templates. # Copyright (C) 2013 Slavko # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.2-4\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2013-03-28 19:21+0100\n" "Last-Translator: Slavko \n" "Language-Team: slovenčina \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-POFile-SpellExtra: secure tftpd-hpa superpoužívateľa IPv6 69 TFTP\n" "X-POFile-SpellExtra: tftpd\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Vyhradený systémový účet pre démona TFTP tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "Server TFTP musí na svoju činnosť používať vyhradený účet, aby nebola " "ohrozená systémová bezpečnosť jeho spúšťaním s právami superpoužívateľa." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Prosím, zvoľte používateľské meno účtu." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Koreňový adresár TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "Prosím, zadajte adresár, ktorý bude použitý ako koreň servera TFTP." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Adresa a port servera TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "Prosím, zadajte adresu a port načúvania vo forme [adresa][:port]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 #, fuzzy #| msgid "" #| "By default, the TFTP server listens to port 69 on all addresses and all " #| "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Predvolene server TFTP načúva na porte 69 na všetkých adresách a všetkých " "rozhraniach (0.0.0.0:69). Ak nie je zadaný port, je predvolene použitý port " "69." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Prosím, pamätajte, že číselné adresy IPv6 musia byť uzatvorené v lomených " "zátvorkách, aby sa predišlo zámene s voliteľnou informáciou o porte." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Dodatočné voľby servera TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Pomocou tohoto mechanizmu možno serveru TFTP poslať dodatočné voľby, prosím, " "nahliadnite do manuálovej stránky tftpd(8) s ďalšími informáciami o " "dostupných voľbách." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Iné voľby ako odporúčané „--secure” sú potrebné málokedy a len v špeciálnych " "situáciách. Ak si nie ste istý, nechajte odporúčanú predvolenú hodnotu." tftp-hpa/debian/po/sv.po0000664000000000000000000001011713573460547012337 0ustar # Swedish translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Martin Bagge # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2009-11-16 23:01+0100\n" "Last-Translator: Martin Bagge \n" "Language-Team: swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "Dedikerat systemkonto för ftp-tjänsten tftpd-hpa:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "TFTP-servern måste ha ett dedikerat konto för att fungera på ett säkert " "sätt, att använda privilegier från en superanvändare är inte säkert." #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "Ange kontots användarnamn." #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "Rot-katalog för TFTP:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "Ange katalog som ska agera rot-nivå för ftp-servern." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "Adress och port till TFTP-server:" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" "Ange en adress och en port att lyssnar på, använd formen [adress][:port]." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" "Standardvärdet är att TFTP-servern lyssnar på port 69 på alla adress och " "alla gränssnitt (:69). Om ingen port anges kommer standardporten 69 att " "användas." #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" "Observera att numeriska IPv6-adresser måste omges av hakparanteser för att " "undvika att tolkas som ett portnummer." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "Ytterligare inställningar för TFTP-server:" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" "Med detta val kan ytterligare inställningar skickas till TFTP-servern. Läs i " "manualsidan tftpd(8) om vilka inställningar som kan göras." #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" "Särskilda inställningar utöver den rekomenderade \"--secure\" används nästan " "aldrig och kräver vanligen mycket speciella omständigheter. Använd de " "rekomenderade inställningarna om du är osäker." #~ msgid "" #~ "By default, the TFTP server listens to port 69 on all addresses and all " #~ "interfaces (0.0.0.0:69). If no port is specified, it defaults to 69." #~ msgstr "" #~ "Standardvärdet är att TFTP-servern lyssnar på port 69 på alla adress och " #~ "alla gränssnitt (0.0.0.0:69). Om ingen port anges kommer standardporten " #~ "69 att användas." tftp-hpa/debian/po/templates.pot0000664000000000000000000000516413573460547014077 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: tftp-hpa\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" tftp-hpa/debian/po/zh_CN.po0000664000000000000000000000577613573460547012727 0ustar # Simplified Chinese translation of tftpd-hpa debconf templates. # Copyright (C) 2009 Deng Xiyue # This file is distributed under the same license as the tftpd-hpa package. # msgid "" msgstr "" "Project-Id-Version: tftp-hpa 5.0-14\n" "Report-Msgid-Bugs-To: tftp-hpa@packages.debian.org\n" "POT-Creation-Date: 2014-10-28 10:26+0100\n" "PO-Revision-Date: 2009-03-26 16:48+0800\n" "Last-Translator: Deng Xiyue \n" "Language-Team: Debian Chinese GB \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Dedicated system account for the tftpd-hpa TFTP daemon:" msgstr "指定操作 tftpd-hpa TFTP 守护进程的专用系统帐户:" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "" "The TFTP server must use a dedicated account for its operation so that the " "system's security is not compromised by running it with superuser privileges." msgstr "" "TFTP 服务器必须使用一个专用的账户来进行操作,这样就不会因为使用超级用户权限运" "行而破坏系统的安全。" #. Type: string #. Description #: ../tftpd-hpa.templates:1001 msgid "Please choose that account's username." msgstr "请选择账户的用户名。" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "TFTP root directory:" msgstr "TFTP 根目录:" #. Type: string #. Description #: ../tftpd-hpa.templates:2001 msgid "" "Please specify the directory that will be used as root for the TFTP server." msgstr "请指定用作 TFTP 服务器根目录的目录。" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "TFTP server address and port:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please specify an address and port to listen to in the form of [address][:" "port]." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "By default, the TFTP server listens to port 69 on all addresses and all " "interfaces (:69). If no port is specified, it defaults to 69." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:3001 msgid "" "Please note that numeric IPv6 addresses must be enclosed in square brackets " "to avoid ambiguity with the optional port information." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "TFTP server additional options:" msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Additional options can be passed to the TFTP server with this mechanism, " "please consult the tftpd(8) manpage for more information about available " "options." msgstr "" #. Type: string #. Description #: ../tftpd-hpa.templates:4001 msgid "" "Options other than the recommended '--secure' are rarely needed and only for " "special situations. If unsure, leave it at the recommended default value." msgstr "" tftp-hpa/debian/rules0000775000000000000000000000300313573457576012015 0ustar #!/usr/bin/make -f # # Copyright 2003 - 2014 Ron Lee. SHELL = /bin/bash export DH_OPTIONS NUM_CPUS = $(shell getconf _NPROCESSORS_ONLN 2>/dev/null) PARALLEL = $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NJOBS = -j$(or $(PARALLEL),$(NUM_CPUS),1) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) clean: dh_testdir $(MAKE) spotless $(RM) *-stamp dh_clean debconf-updatepo configure: configure.in aclocal.m4 dh_testdir $(MAKE) autoconf config.status: configure dh_testdir ./configure --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr \ --without-readline build: build-arch build-arch: build-arch-stamp build-indep: build-arch-stamp: config.status dh_testdir $(MAKE) $(NJOBS) all touch $@ install: install-arch install-arch: build-arch install-arch-stamp install-indep: install-arch-stamp: build-arch-stamp dh_testdir dh_testroot dh_prep $(MAKE) install INSTALLROOT=$(CURDIR)/debian/tmp dh_install dh_installinit dh_installexamples touch $@ binary: binary-arch binary-indep: binary-arch: install-arch dh_testdir dh_testroot dh_installchangelogs dh_installdocs dh_installdebconf dh_strip --dbg-package=tftp-hpa-dbg dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb .PHONY: clean build build-arch build-indep \ install install-arch install-indep \ binary binary-arch binary-indep tftp-hpa/debian/tftp-hpa.docs0000664000000000000000000000000713573457576013333 0ustar README tftp-hpa/debian/tftp-hpa.install0000664000000000000000000000005113573457576014050 0ustar /usr/bin/tftp /usr/share/man/man1/tftp.1 tftp-hpa/debian/tftpd-hpa.README.Debian0000664000000000000000000000206513573457576014673 0ustar tftpd-hpa --------- Note that you need to add '--create' to TFTP_OPTIONS in /etc/default/tftpd-hpa if you intend to upload files to the tftp server that do not already exist on the server. Instead of manually editing the file, a simple: # dpkg-reconfigure -plow tftpd-hpa let's you configure additional options more conveniently. With Compaq Professional Workstation XP1000 machines acting as clients you might need to use "-r blksize" option to inhibit OACK being sent out as they reply to regular TFTP port instead of the port where OACK originated. This is SRM firmware bug on those machines. Many thanks to Steffen Grunewald for tracking this down. If you're running a kernel configuration that has no IPv6 support (note: all Debian kernels come with IPv6 support), you need to use the "-4" option, otherwise tftpd-hpa refuses to start with: cannot open IPv6 socket, disable IPv6: Address family not supported by protocol Cannot set nonblock flag on socket: Bad file descriptor -- Daniel Baumann Sat, 15 Aug 2009 22:34:42 +0200 tftp-hpa/debian/tftpd-hpa.config0000664000000000000000000000160613573460654014011 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule CONFFILE="/etc/default/tftpd-hpa" if [ -e "${CONFFILE}" ] then . ${CONFFILE} || true # Move from IPv4-only to dual-stack if [ "${TFTP_ADDRESS}" = "0.0.0.0:69" ] && \ dpkg --compare-versions $2 lt 5.2-7ubuntu3; then TFTP_ADDRESS=":69" fi # Replace previous dual-stack syntax # that fails to work if NIC is not available # (LP: #1342580) if [ "${TFTP_ADDRESS}" = "[::]:69" ] && \ dpkg --compare-versions $2 lt 5.2+20150808-1ubuntu3; then TFTP_ADDRESS=":69" fi db_set tftpd-hpa/username "${TFTP_USERNAME}" db_set tftpd-hpa/directory "${TFTP_DIRECTORY}" db_set tftpd-hpa/address "${TFTP_ADDRESS}" db_set tftpd-hpa/options "${TFTP_OPTIONS}" fi db_input low tftpd-hpa/username || true db_input low tftpd-hpa/directory || true db_input low tftpd-hpa/address || true db_input low tftpd-hpa/options || true db_go db_stop tftp-hpa/debian/tftpd-hpa.docs0000664000000000000000000000002713573457576013501 0ustar README README.security tftp-hpa/debian/tftpd-hpa.examples0000664000000000000000000000002313573457576014363 0ustar tftpd/sample.rules tftp-hpa/debian/tftpd-hpa.init0000664000000000000000000000402613573457576013517 0ustar #!/bin/sh ### BEGIN INIT INFO # Provides: tftpd-hpa # Required-Start: $local_fs $remote_fs $syslog $network # Required-Stop: $local_fs $remote_fs $syslog $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: HPA's tftp server # Description: Trivial File Transfer Protocol (TFTP) is a file transfer # protocol, mainly to serve boot images over the network # to other machines (PXE). ### END INIT INFO PATH="/sbin:/bin:/usr/sbin:/usr/bin" DAEMON="/usr/sbin/in.tftpd" test -x "$DAEMON" || exit 0 NAME="in.tftpd" DESC="HPA's tftpd" PIDFILE="/var/run/tftpd-hpa.pid" DEFAULTS="/etc/default/tftpd-hpa" set -e [ -r "$DEFAULTS" ] && . "$DEFAULTS" . /lib/lsb/init-functions do_start() { # Ensure --secure and multiple server directories are not used at the # same time if [ "$(echo $TFTP_DIRECTORY | wc -w)" -ge 2 ] && \ echo $TFTP_OPTIONS | grep -qs secure then echo echo "When --secure is specified, exactly one directory can be specified." echo "Please correct your $DEFAULTS." exit 1 fi # Ensure server directories exist for d in $TFTP_DIRECTORY do if [ ! -d "$d" ] then echo "$d missing, aborting." exit 1 fi done start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- \ --listen --user $TFTP_USERNAME --address $TFTP_ADDRESS \ $TFTP_OPTIONS $TFTP_DIRECTORY } do_stop () { start-stop-daemon --stop --quiet --oknodo --name $NAME } do_reload () { start-stop-daemon --stop --quiet --oknodo --name $NAME --signal 1 } case "$1" in start) init_is_upstart > /dev/null 2>&1 && exit 1 log_daemon_msg "Starting $DESC" "$NAME" do_start log_end_msg $? ;; stop) init_is_upstart > /dev/null 2>&1 && exit 0 log_daemon_msg "Stopping $DESC" "$NAME" do_stop log_end_msg $? ;; restart|force-reload) init_is_upstart > /dev/null 2>&1 && exit 1 log_daemon_msg "Restarting $DESC" "$NAME" do_stop sleep 1 do_start log_end_msg $? ;; status) status_of_proc $DAEMON $NAME ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2 exit 3 ;; esac tftp-hpa/debian/tftpd-hpa.install0000664000000000000000000000011613573457576014216 0ustar /usr/sbin/in.tftpd /usr/share/man/man8/in.tftpd.8 /usr/share/man/man8/tftpd.8 tftp-hpa/debian/tftpd-hpa.postinst0000664000000000000000000000446513573460547014436 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule CONFFILE="/etc/default/tftpd-hpa" case "${1}" in configure) db_get tftpd-hpa/username TFTP_USERNAME="${RET:-tftp}" db_get tftpd-hpa/directory TFTP_DIRECTORY="${RET:-/srv/tftp}" db_get tftpd-hpa/address TFTP_ADDRESS="${RET:-:69}" db_get tftpd-hpa/options TFTP_OPTIONS="${RET}" # is ok when empty db_stop if [ ! -e "${CONFFILE}" ] then cat > "${CONFFILE}" << EOF # /etc/default/tftpd-hpa TFTP_USERNAME="${TFTP_USERNAME}" TFTP_DIRECTORY="${TFTP_DIRECTORY}" TFTP_ADDRESS="${TFTP_ADDRESS}" TFTP_OPTIONS="${TFTP_OPTIONS} -s" EOF fi cp -a -f "${CONFFILE}" "${CONFFILE}.tmp" # If the admin deleted or commented some variables but then set # them via debconf, (re-)add them to the config file. test -z "${TFTP_USERNAME}" || \ grep -Eq '^ *TFTP_USERNAME=' "${CONFFILE}" || \ echo "TFTP_USERNAME=" >> "${CONFFILE}" test -z "${TFTP_DIRECTORY}" || \ grep -Eq '^ *TFTP_DIRECTORY=' "${CONFFILE}" || \ echo "TFTP_DIRECTORY=" >> "${CONFFILE}" test -z "${TFTP_ADDRESS}" || \ grep -Eq '^ *TFTP_ADDRESS=' "${CONFFILE}" || \ echo "TFTP_ADDRESS=" >> "${CONFFILE}" test -z "${TFTP_OPTIONS}" || \ grep -Eq '^ *TFTP_OPTIONS=' "${CONFFILE}" || \ echo "TFTP_OPTIONS=" >> "${CONFFILE}" sed -e "s|^ *TFTP_USERNAME=.*|TFTP_USERNAME=\"${TFTP_USERNAME}\"|" \ -e "s|^ *TFTP_DIRECTORY=.*|TFTP_DIRECTORY=\"${TFTP_DIRECTORY}\"|" \ -e "s|^ *TFTP_ADDRESS=.*|TFTP_ADDRESS=\"${TFTP_ADDRESS}\"|" \ -e "s|^ *TFTP_OPTIONS=.*|TFTP_OPTIONS=\"${TFTP_OPTIONS}\"|" \ < "${CONFFILE}" > "${CONFFILE}.tmp" mv -f "${CONFFILE}.tmp" "${CONFFILE}" if ! getent passwd "${TFTP_USERNAME}" > /dev/null 2>&1 then adduser --system --home $(echo ${TFTP_DIRECTORY} | awk '{ print $1 }') --no-create-home --quiet --gecos 'tftp daemon' --group ${TFTP_USERNAME} else echo "tftpd user (${TFTP_USERNAME}) already exists, doing nothing." fi for _DIRECTORY in ${TFTP_DIRECTORY} do if [ ! -d "${_DIRECTORY}" ] then mkdir -p "${_DIRECTORY}" chown root:nogroup ${_DIRECTORY} -R else echo echo "tftpd-hpa directory (${_DIRECTORY}) already exists, doing nothing." fi done ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`${1}'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 tftp-hpa/debian/tftpd-hpa.postrm0000664000000000000000000000075513573457576014105 0ustar #!/bin/sh set -e case "$1" in remove) if [ -e /etc/default/tftpd-hpa ] then . /etc/default/tftpd-hpa for d in $TFTP_DIRECTORY do if [ -d "$d" ] then rmdir --ignore-fail-on-non-empty "$d" > /dev/null 2>&1 || true fi done fi ;; purge) rm -f /etc/default/tftpd-hpa ;; upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 tftp-hpa/debian/tftpd-hpa.templates0000664000000000000000000000254213573461017014534 0ustar Template: tftpd-hpa/username Type: string Default: tftp _Description: Dedicated system account for the tftpd-hpa TFTP daemon: The TFTP server must use a dedicated account for its operation so that the system's security is not compromised by running it with superuser privileges. . Please choose that account's username. Template: tftpd-hpa/directory Type: string Default: /srv/tftp _Description: TFTP root directory: Please specify the directory that will be used as root for the TFTP server. Template: tftpd-hpa/address Type: string Default: :69 _Description: TFTP server address and port: Please specify an address and port to listen to in the form of [address][:port]. . By default, the TFTP server listens to port 69 on all addresses and all interfaces (:69). If no port is specified, it defaults to 69. . Please note that numeric IPv6 addresses must be enclosed in square brackets to avoid ambiguity with the optional port information. Template: tftpd-hpa/options Type: string Default: --secure _Description: TFTP server additional options: Additional options can be passed to the TFTP server with this mechanism, please consult the tftpd(8) manpage for more information about available options. . Options other than the recommended '--secure' are rarely needed and only for special situations. If unsure, leave it at the recommended default value. tftp-hpa/debian/tftpd-hpa.upstart0000664000000000000000000000172413573457576014260 0ustar description "tftp-hpa server" start on runlevel [2345] stop on runlevel [!2345] expect fork respawn env DEFAULTS="/etc/default/tftpd-hpa" env PIDFILE="/var/run/tftpd-hpa.pid" pre-start script if [ -f ${DEFAULTS} ] then . ${DEFAULTS} fi # Ensure --secure and multiple server directories are not used at the # same time if [ "$(echo ${TFTP_DIRECTORY} | wc -w)" -ge 2 ] && echo ${TFTP_OPTIONS} | grep -qs secure then echo echo "When --secure is specified, exactly one directory can be specified." echo "Please correct your /etc/default/tftpd-hpa." stop exit 0 fi # Ensure server directories are existing for _DIRECTORY in ${TFTP_DIRECTORY} do if [ ! -d "${_DIRECTORY}" ] then echo "${_DIRECTORY} missing, aborting." stop exit 0 fi done end script script if [ -f ${DEFAULTS} ] then . ${DEFAULTS} fi exec /usr/sbin/in.tftpd --listen --user ${TFTP_USERNAME} --address ${TFTP_ADDRESS} ${TFTP_OPTIONS} ${TFTP_DIRECTORY} end script tftp-hpa/install-sh0000775000000000000000000001267113573457576011532 0ustar #!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 tftp-hpa/lib/0000775000000000000000000000000013573457576010265 5ustar tftp-hpa/lib/Makefile0000664000000000000000000000051313573457576011724 0ustar # # Extra functions which may not be available everywhere # SRCROOT = .. -include ../MCONFIG include ../MRULES ifeq ($(LIBOBJS),) all: else all: libxtra.a endif install: clean: -rm -f *.a *.o *.obj *.exe distclean: clean -rm -f *~ libxtra.a: $(LIBOBJS) -rm -f libxtra.a $(AR) libxtra.a $(LIBOBJS) $(RANLIB) libxtra.a tftp-hpa/lib/bsdsignal.c0000664000000000000000000000104213573457576012374 0ustar /* * bsdsignal.c * * Use sigaction() to simulate BSD signal() */ #include "config.h" void (*bsd_signal(int signum, void (*handler) (int))) (int) { struct sigaction action, oldaction; memset(&action, 0, sizeof action); action.sa_handler = handler; sigemptyset(&action.sa_mask); sigaddset(&action.sa_mask, signum); action.sa_flags = SA_RESTART; if (sigaction(signum, &action, &oldaction) == -1) { #ifdef SIG_ERR return SIG_ERR; #else return NULL; #endif } return oldaction.sa_handler; } tftp-hpa/lib/daemon.c0000664000000000000000000000111213573457576011667 0ustar /* * daemon.c - "daemonize" a process */ #include "config.h" int daemon(int nochdir, int noclose) { int nullfd; pid_t f; if (!nochdir) { if (chdir("/")) return -1; } if (!noclose) { if ((nullfd = open("/dev/null", O_RDWR)) < 0 || dup2(nullfd, 0) < 0 || dup2(nullfd, 1) < 0 || dup2(nullfd, 2) < 0) return -1; close(nullfd); } f = fork(); if (f < 0) return -1; else if (f > 0) _exit(0); #ifdef HAVE_SETSID return setsid(); #else return 0; #endif } tftp-hpa/lib/dup2.c0000664000000000000000000000044713573457576011310 0ustar /* * dup2.c * * Ersatz dup2() for really ancient systems */ #include "config.h" int dup2(int oldfd, int newfd) { int rv, nfd; close(newfd); nfd = rv = dup(oldfd); if (rv >= 0 && rv != newfd) { rv = dup2(oldfd, newfd); close(nfd); } return rv; } tftp-hpa/lib/getaddrinfo.c0000664000000000000000000000536513573457576012730 0ustar /* * getaddrinfo.c * * Simple version of getaddrinfo() * */ #include "config.h" extern int errno; extern int h_errno; void freeaddrinfo(struct addrinfo *res) { if (!res) return; if (res->ai_next) freeaddrinfo(res->ai_next); if (res->ai_addr) free(res->ai_addr); if (res->ai_canonname) free(res->ai_canonname); free(res); } int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { struct hostent *host; struct sockaddr *sa; int err, size = 0; if ((!node) || (!res)) { errno = EINVAL; return EAI_SYSTEM; } *res = NULL; /* we do not support service in this version */ if (service) { errno = EINVAL; return EAI_SYSTEM; } host = gethostbyname(node); if (!host) return EAI_NONAME; if (hints) { if (hints->ai_family != AF_UNSPEC) { if (hints->ai_family != host->h_addrtype) return EAI_ADDRFAMILY; } } *res = malloc(sizeof(struct addrinfo)); if (!*res) { return EAI_MEMORY; } memset(*res, 0, sizeof(struct addrinfo)); (*res)->ai_family = host->h_addrtype; if (host->h_length) { if (host->h_addrtype == AF_INET) size = sizeof(struct sockaddr_in); #ifdef HAVE_IPV6 else if (host->h_addrtype == AF_INET6) size = sizeof(struct sockaddr_in6); #endif else { free(*res); *res = NULL; return EAI_ADDRFAMILY; } sa = malloc(size); if (!sa) { free(*res); *res = NULL; return EAI_MEMORY; } memset(sa, 0, size); (*res)->ai_addr = sa; (*res)->ai_addrlen = size; sa->sa_family = host->h_addrtype; if (host->h_addrtype == AF_INET) memcpy(&((struct sockaddr_in *)sa)->sin_addr, host->h_addr, host->h_length); #ifdef HAVE_IPV6 else memcpy(&((struct sockaddr_in6 *)sa)->sin6_addr, host->h_addr, host->h_length); #endif } if (host->h_name) (*res)->ai_canonname = strdup(host->h_name); /* we only handle the first address entry and do not build a list now */ return 0; } const char *gai_strerror(int errcode) { const char *s = NULL; switch(errcode) { case 0: s = "no error"; break; case EAI_MEMORY: s = "no memory"; break; case EAI_SYSTEM: s = strerror(errno); break; case EAI_NONAME: s = hstrerror(h_errno); break; case EAI_ADDRFAMILY: s = "address does not match address family"; break; default: s = "unknown error code"; break; } return s; } tftp-hpa/lib/getopt.h0000664000000000000000000000060113573457576011735 0ustar #ifndef LIB_GETOPT_H #define LIB_GETOPT_H extern char *optarg; extern int optind, opterr, optopt; struct option { const char *name; int has_arg; int *flag; int val; }; enum { no_argument = 0, required_argument = 1, optional_argument = 2, }; int getopt_long(int, char *const *, const char *, const struct option *, int *); #endif /* LIB_GETOPT_H */ tftp-hpa/lib/getopt_long.c0000664000000000000000000000624513573457576012761 0ustar /* * getopt_long.c * * getopt_long(), or at least a common subset thereof: * * - Option reordering is not supported * - -W foo is not supported * - First optstring character "-" not supported. */ #include "config.h" char *optarg; int optind, opterr, optopt; static struct getopt_private_state { const char *optptr; const char *last_optstring; char *const *last_argv; } pvt; static inline const char *option_matches(const char *arg_str, const char *opt_name) { while (*arg_str != '\0' && *arg_str != '=') { if (*arg_str++ != *opt_name++) return NULL; } if (*opt_name) return NULL; return arg_str; } int getopt_long(int argc, char *const *argv, const char *optstring, const struct option *longopts, int *longindex) { const char *carg; const char *osptr; int opt; /* getopt() relies on a number of different global state variables, which can make this really confusing if there is more than one use of getopt() in the same program. This attempts to detect that situation by detecting if the "optstring" or "argv" argument have changed since last time we were called; if so, reinitialize the query state. */ if (optstring != pvt.last_optstring || argv != pvt.last_argv || optind < 1 || optind > argc) { /* optind doesn't match the current query */ pvt.last_optstring = optstring; pvt.last_argv = argv; optind = 1; pvt.optptr = NULL; } carg = argv[optind]; /* First, eliminate all non-option cases */ if (!carg || carg[0] != '-' || !carg[1]) return -1; if (carg[1] == '-') { const struct option *lo; const char *opt_end = NULL; optind++; /* Either it's a long option, or it's -- */ if (!carg[2]) { /* It's -- */ return -1; } for (lo = longopts; lo->name; lo++) { if ((opt_end = option_matches(carg+2, lo->name))) break; } if (!opt_end) return '?'; if (longindex) *longindex = lo-longopts; if (*opt_end == '=') { if (lo->has_arg) optarg = (char *)opt_end+1; else return '?'; } else if (lo->has_arg == 1) { if (!(optarg = argv[optind])) return '?'; optind++; } if (lo->flag) { *lo->flag = lo->val; return 0; } else { return lo->val; } } if ((uintptr_t) (pvt.optptr - carg) > (uintptr_t) strlen(carg)) { /* Someone frobbed optind, change to new opt. */ pvt.optptr = carg + 1; } opt = *pvt.optptr++; if (opt != ':' && (osptr = strchr(optstring, opt))) { if (osptr[1] == ':') { if (*pvt.optptr) { /* Argument-taking option with attached argument */ optarg = (char *)pvt.optptr; optind++; } else { /* Argument-taking option with non-attached argument */ if (argv[optind + 1]) { optarg = (char *)argv[optind+1]; optind += 2; } else { /* Missing argument */ optind++; return (optstring[0] == ':') ? ':' : '?'; } } return opt; } else { /* Non-argument-taking option */ /* pvt.optptr will remember the exact position to resume at */ if (!*pvt.optptr) optind++; return opt; } } else { /* Unknown option */ optopt = opt; if (!*pvt.optptr) optind++; return '?'; } } tftp-hpa/lib/inet_ntop.c0000664000000000000000000000201313573457576012424 0ustar /* * inet_ntop.c * * Simple version of inet_ntop() * */ #include "config.h" extern int errno; const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) { char *p; switch(af) { case AF_INET: p = inet_ntoa(*((struct in_addr *)src)); if (p) { if (cnt <= strlen(p)) { errno = ENOSPC; dst = NULL; } else strcpy(dst, p); } else dst = NULL; break; #ifdef HAVE_IPV6 case AF_INET6: if (cnt < 40) { errno = ENOSPC; dst = NULL; } else { struct in6_addr *a = src; int i; p = (char *)dst; /* we do not compress :0: to :: */ for (i = 0; i < 8; i++) p += sprintf(p, "%x:", ntohs(a->s6_addr16[i])); p--; *p = 0; } break; #endif default: errno = EAFNOSUPPORT; dst = NULL; } return dst; } tftp-hpa/lib/xmalloc.c0000664000000000000000000000037413573457576012074 0ustar /* * xmalloc.c * * Simple error-checking version of malloc() * */ #include "config.h" void *xmalloc(size_t size) { void *p = malloc(size); if (!p) { fprintf(stderr, "Out of memory!\n"); exit(128); } return p; } tftp-hpa/lib/xstrdup.c0000664000000000000000000000037313573457576012145 0ustar /* * xstrdup.c * * Simple error-checking version of strdup() * */ #include "config.h" char *xstrdup(const char *s) { char *p = strdup(s); if (!p) { fprintf(stderr, "Out of memory!\n"); exit(128); } return p; } tftp-hpa/tftp/0000775000000000000000000000000013573457576010474 5ustar tftp-hpa/tftp/Makefile0000664000000000000000000000106213573457576012133 0ustar SRCROOT = .. VERSION = $(shell cat ../version) -include ../MCONFIG include ../MRULES OBJS = tftp.$(O) main.$(O) all: tftp$(X) tftp.1 tftp$(X): $(OBJS) $(CC) $(LDFLAGS) $^ $(TFTP_LIBS) -o $@ $(OBJS): ../common/tftpsubs.h tftp.1: tftp.1.in ../version sed -e 's/@@VERSION@@/$(VERSION)/g' < $< > $@ install: all mkdir -p $(INSTALLROOT)$(BINDIR) $(INSTALLROOT)$(MANDIR)/man1 $(INSTALL_PROGRAM) tftp$(X) $(INSTALLROOT)$(BINDIR) $(INSTALL_DATA) tftp.1 $(INSTALLROOT)$(MANDIR)/man1 clean: rm -f *.o *.obj *.exe tftp tftp.1 distclean: clean rm -f *~ tftp-hpa/tftp/extern.h0000664000000000000000000000367313573457576012163 0ustar /* * Copyright (c) 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef RECVFILE_H #define RECVFILE_H void tftp_recvfile(int, const char *, const char *); void tftp_sendfile(int, const char *, const char *); #endif tftp-hpa/tftp/main.c0000664000000000000000000005630213573457576011572 0ustar /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include "common/tftpsubs.h" /* Many bug fixes are from Jim Guyton */ /* * TFTP User Program -- Command Interface. */ #include #include #ifdef WITH_READLINE #include #ifdef HAVE_READLINE_HISTORY_H #include #endif #endif #include "extern.h" #define TIMEOUT 5 /* secs between rexmt's */ #define LBUFLEN 200 /* size of input buffer */ struct modes { const char *m_name; const char *m_mode; int m_openflags; }; static const struct modes modes[] = { {"netascii", "netascii", O_TEXT}, {"ascii", "netascii", O_TEXT}, {"octet", "octet", O_BINARY}, {"binary", "octet", O_BINARY}, {"image", "octet", O_BINARY}, {0, 0, 0} }; #define MODE_OCTET (&modes[2]) #define MODE_NETASCII (&modes[0]) #define MODE_DEFAULT MODE_NETASCII #ifdef HAVE_IPV6 int ai_fam = AF_UNSPEC; int ai_fam_sock = AF_UNSPEC; #else int ai_fam = AF_INET; int ai_fam_sock = AF_INET; #endif union sock_addr peeraddr; int f = -1; u_short port; int trace; int verbose; int literal; int connected; const struct modes *mode; #ifdef WITH_READLINE char *line = NULL; #else char line[LBUFLEN]; #endif int margc; char *margv[20]; const char *prompt = "tftp> "; sigjmp_buf toplevel; void intr(int); struct servent *sp; int portrange = 0; unsigned int portrange_from = 0; unsigned int portrange_to = 0; void get(int, char **); void help(int, char **); void modecmd(int, char **); void put(int, char **); void quit(int, char **); void setascii(int, char **); void setbinary(int, char **); void setpeer(int, char **); void setrexmt(int, char **); void settimeout(int, char **); void settrace(int, char **); void setverbose(int, char **); void status(int, char **); void setliteral(int, char **); static void command(void); static void getusage(char *); static void makeargv(void); static void putusage(char *); static void settftpmode(const struct modes *); #define HELPINDENT (sizeof("connect")) struct cmd { const char *name; const char *help; void (*handler) (int, char **); }; struct cmd cmdtab[] = { {"connect", "connect to remote tftp", setpeer}, {"mode", "set file transfer mode", modecmd}, {"put", "send file", put}, {"get", "receive file", get}, {"quit", "exit tftp", quit}, {"verbose", "toggle verbose mode", setverbose}, {"trace", "toggle packet tracing", settrace}, {"literal", "toggle literal mode, ignore ':' in file name", setliteral}, {"status", "show current status", status}, {"binary", "set mode to octet", setbinary}, {"ascii", "set mode to netascii", setascii}, {"rexmt", "set per-packet transmission timeout", setrexmt}, {"timeout", "set total retransmission timeout", settimeout}, {"?", "print help information", help}, {"help", "print help information", help}, {0, 0, 0} }; struct cmd *getcmd(char *); char *tail(char *); char *xstrdup(const char *); const char *program; static void usage(int errcode) { fprintf(stderr, #ifdef HAVE_IPV6 "Usage: %s [-4][-6][-v][-l][-m mode] [host [port]] [-c command]\n", #else "Usage: %s [-v][-l][-m mode] [host [port]] [-c command]\n", #endif program); exit(errcode); } int main(int argc, char *argv[]) { union sock_addr sa; int arg; static int pargc, peerargc; static int iscmd = 0; char **pargv; const char *optx; char *peerargv[3]; program = argv[0]; mode = MODE_DEFAULT; peerargv[0] = argv[0]; peerargc = 1; for (arg = 1; !iscmd && arg < argc; arg++) { if (argv[arg][0] == '-') { for (optx = &argv[arg][1]; *optx; optx++) { switch (*optx) { case '4': ai_fam = AF_INET; break; #ifdef HAVE_IPV6 case '6': ai_fam = AF_INET6; break; #endif case 'v': verbose = 1; break; case 'V': /* Print version and configuration to stdout and exit */ printf("%s\n", TFTP_CONFIG_STR); exit(0); case 'l': literal = 1; break; case 'm': if (++arg >= argc) usage(EX_USAGE); { const struct modes *p; for (p = modes; p->m_name; p++) { if (!strcmp(argv[arg], p->m_name)) break; } if (p->m_name) { settftpmode(p); } else { fprintf(stderr, "%s: invalid mode: %s\n", argv[0], argv[arg]); exit(EX_USAGE); } } break; case 'c': iscmd = 1; break; case 'R': if (++arg >= argc) usage(EX_USAGE); if (sscanf (argv[arg], "%u:%u", &portrange_from, &portrange_to) != 2 || portrange_from > portrange_to || portrange_to > 65535) { fprintf(stderr, "Bad port range: %s\n", argv[arg]); exit(EX_USAGE); } portrange = 1; break; case 'h': default: usage(*optx == 'h' ? 0 : EX_USAGE); } } } else { if (peerargc >= 3) usage(EX_USAGE); peerargv[peerargc++] = argv[arg]; } } ai_fam_sock = ai_fam; pargv = argv + arg; pargc = argc - arg; sp = getservbyname("tftp", "udp"); if (sp == 0) { /* Use canned values */ if (verbose) fprintf(stderr, "tftp: tftp/udp: unknown service, faking it...\n"); sp = xmalloc(sizeof(struct servent)); sp->s_name = (char *)"tftp"; sp->s_aliases = NULL; sp->s_port = htons(IPPORT_TFTP); sp->s_proto = (char *)"udp"; } bsd_signal(SIGINT, intr); if (peerargc) { /* Set peer */ if (sigsetjmp(toplevel, 1) != 0) exit(EX_NOHOST); setpeer(peerargc, peerargv); } if (ai_fam_sock == AF_UNSPEC) ai_fam_sock = AF_INET; f = socket(ai_fam_sock, SOCK_DGRAM, 0); if (f < 0) { perror("tftp: socket"); exit(EX_OSERR); } bzero(&sa, sizeof(sa)); sa.sa.sa_family = ai_fam_sock; if (pick_port_bind(f, &sa, portrange_from, portrange_to)) { perror("tftp: bind"); exit(EX_OSERR); } if (iscmd && pargc) { /* -c specified; execute command and exit */ struct cmd *c; if (sigsetjmp(toplevel, 1) != 0) exit(EX_UNAVAILABLE); c = getcmd(pargv[0]); if (c == (struct cmd *)-1 || c == (struct cmd *)0) { fprintf(stderr, "%s: invalid command: %s\n", argv[0], pargv[1]); exit(EX_USAGE); } (*c->handler) (pargc, pargv); exit(0); } #ifdef WITH_READLINE #ifdef HAVE_READLINE_HISTORY_H using_history(); #endif #endif if (sigsetjmp(toplevel, 1) != 0) (void)putchar('\n'); command(); return 0; /* Never reached */ } char *hostname; /* Called when a command is incomplete; modifies the global variable "line" */ static void getmoreargs(const char *partial, const char *mprompt) { #ifdef WITH_READLINE char *eline; int len, elen; len = strlen(partial); eline = readline(mprompt); if (!eline) exit(0); /* EOF */ elen = strlen(eline); if (line) { free(line); line = NULL; } line = xmalloc(len + elen + 1); strcpy(line, partial); strcpy(line + len, eline); free(eline); #ifdef HAVE_READLINE_HISTORY_H add_history(line); #endif #else int len = strlen(partial); strcpy(line, partial); fputs(mprompt, stdout); if (fgets(line + len, LBUFLEN - len, stdin) == 0) if (feof(stdin)) exit(0); /* EOF */ #endif } void setpeer(int argc, char *argv[]) { int err; if (argc < 2) { getmoreargs("connect ", "(to) "); makeargv(); argc = margc; argv = margv; } if ((argc < 2) || (argc > 3)) { printf("usage: %s host-name [port]\n", argv[0]); return; } peeraddr.sa.sa_family = ai_fam; err = set_sock_addr(argv[1], &peeraddr, &hostname); if (err) { printf("Error: %s\n", gai_strerror(err)); printf("%s: unknown host\n", argv[1]); connected = 0; return; } ai_fam = peeraddr.sa.sa_family; if (f == -1) { /* socket not open */ ai_fam_sock = ai_fam; } else { /* socket was already open */ if (ai_fam_sock != ai_fam) { /* need reopen socken for new family */ union sock_addr sa; close(f); ai_fam_sock = ai_fam; f = socket(ai_fam_sock, SOCK_DGRAM, 0); if (f < 0) { perror("tftp: socket"); exit(EX_OSERR); } bzero((char *)&sa, sizeof (sa)); sa.sa.sa_family = ai_fam_sock; if (pick_port_bind(f, &sa, portrange_from, portrange_to)) { perror("tftp: bind"); exit(EX_OSERR); } } } port = sp->s_port; if (argc == 3) { struct servent *usp; usp = getservbyname(argv[2], "udp"); if (usp) { port = usp->s_port; } else { unsigned long myport; char *ep; myport = strtoul(argv[2], &ep, 10); if (*ep || myport > 65535UL) { printf("%s: bad port number\n", argv[2]); connected = 0; return; } port = htons((u_short) myport); } } if (verbose) { char tmp[INET6_ADDRSTRLEN], *tp; tp = (char *)inet_ntop(peeraddr.sa.sa_family, SOCKADDR_P(&peeraddr), tmp, INET6_ADDRSTRLEN); if (!tp) tp = (char *)"???"; printf("Connected to %s (%s), port %u\n", hostname, tp, (unsigned int)ntohs(port)); } connected = 1; } void modecmd(int argc, char *argv[]) { const struct modes *p; const char *sep; if (argc < 2) { printf("Using %s mode to transfer files.\n", mode->m_mode); return; } if (argc == 2) { for (p = modes; p->m_name; p++) if (strcmp(argv[1], p->m_name) == 0) break; if (p->m_name) { settftpmode(p); return; } printf("%s: unknown mode\n", argv[1]); /* drop through and print usage message */ } printf("usage: %s [", argv[0]); sep = " "; for (p = modes; p->m_name; p++) { printf("%s%s", sep, p->m_name); if (*sep == ' ') sep = " | "; } printf(" ]\n"); return; } void setbinary(int argc, char *argv[]) { (void)argc; (void)argv; /* Quiet unused warning */ settftpmode(MODE_OCTET); } void setascii(int argc, char *argv[]) { (void)argc; (void)argv; /* Quiet unused warning */ settftpmode(MODE_NETASCII); } static void settftpmode(const struct modes *newmode) { mode = newmode; if (verbose) printf("mode set to %s\n", mode->m_mode); } /* * Send file(s). */ void put(int argc, char *argv[]) { int fd; int n, err; char *cp, *targ; if (argc < 2) { getmoreargs("send ", "(file) "); makeargv(); argc = margc; argv = margv; } if (argc < 2) { putusage(argv[0]); return; } targ = argv[argc - 1]; if (!literal && strchr(argv[argc - 1], ':')) { for (n = 1; n < argc - 1; n++) if (strchr(argv[n], ':')) { putusage(argv[0]); return; } cp = argv[argc - 1]; targ = strchr(cp, ':'); *targ++ = 0; peeraddr.sa.sa_family = ai_fam; err = set_sock_addr(cp, &peeraddr,&hostname); if (err) { printf("Error: %s\n", gai_strerror(err)); printf("%s: unknown host\n", argv[1]); connected = 0; return; } ai_fam = peeraddr.sa.sa_family; connected = 1; } if (!connected) { printf("No target machine specified.\n"); return; } if (argc < 4) { cp = argc == 2 ? tail(targ) : argv[1]; fd = open(cp, O_RDONLY | mode->m_openflags); if (fd < 0) { fprintf(stderr, "tftp: "); perror(cp); return; } if (verbose) printf("putting %s to %s:%s [%s]\n", cp, hostname, targ, mode->m_mode); sa_set_port(&peeraddr, port); tftp_sendfile(fd, targ, mode->m_mode); return; } /* this assumes the target is a directory */ /* on a remote unix system. hmmmm. */ cp = strchr(targ, '\0'); *cp++ = '/'; for (n = 1; n < argc - 1; n++) { strcpy(cp, tail(argv[n])); fd = open(argv[n], O_RDONLY | mode->m_openflags); if (fd < 0) { fprintf(stderr, "tftp: "); perror(argv[n]); continue; } if (verbose) printf("putting %s to %s:%s [%s]\n", argv[n], hostname, targ, mode->m_mode); sa_set_port(&peeraddr, port); tftp_sendfile(fd, targ, mode->m_mode); } } static void putusage(char *s) { printf("usage: %s file ... host:target, or\n", s); printf(" %s file ... target (when already connected)\n", s); } /* * Receive file(s). */ void get(int argc, char *argv[]) { int fd; int n; char *cp; char *src; if (argc < 2) { getmoreargs("get ", "(files) "); makeargv(); argc = margc; argv = margv; } if (argc < 2) { getusage(argv[0]); return; } if (!connected) { for (n = 1; n < argc; n++) if (literal || strchr(argv[n], ':') == 0) { getusage(argv[0]); return; } } for (n = 1; n < argc; n++) { src = strchr(argv[n], ':'); if (literal || src == NULL) src = argv[n]; else { int err; *src++ = 0; peeraddr.sa.sa_family = ai_fam; err = set_sock_addr(argv[n], &peeraddr, &hostname); if (err) { printf("Warning: %s\n", gai_strerror(err)); printf("%s: unknown host\n", argv[1]); continue; } ai_fam = peeraddr.sa.sa_family; connected = 1; } if (argc < 4) { cp = argc == 3 ? argv[2] : tail(src); fd = open(cp, O_WRONLY | O_CREAT | O_TRUNC | mode->m_openflags, 0666); if (fd < 0) { fprintf(stderr, "tftp: "); perror(cp); return; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode->m_mode); sa_set_port(&peeraddr, port); tftp_recvfile(fd, src, mode->m_mode); break; } cp = tail(src); /* new .. jdg */ fd = open(cp, O_WRONLY | O_CREAT | O_TRUNC | mode->m_openflags, 0666); if (fd < 0) { fprintf(stderr, "tftp: "); perror(cp); continue; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode->m_mode); sa_set_port(&peeraddr, port); tftp_recvfile(fd, src, mode->m_mode); } } static void getusage(char *s) { printf("usage: %s host:file host:file ... file, or\n", s); printf(" %s file file ... file if connected\n", s); } int rexmtval = TIMEOUT; void setrexmt(int argc, char *argv[]) { int t; if (argc < 2) { getmoreargs("rexmt-timeout ", "(value) "); makeargv(); argc = margc; argv = margv; } if (argc != 2) { printf("usage: %s value\n", argv[0]); return; } t = atoi(argv[1]); if (t < 0) printf("%s: bad value\n", argv[1]); else rexmtval = t; } int maxtimeout = 5 * TIMEOUT; void settimeout(int argc, char *argv[]) { int t; if (argc < 2) { getmoreargs("maximum-timeout ", "(value) "); makeargv(); argc = margc; argv = margv; } if (argc != 2) { printf("usage: %s value\n", argv[0]); return; } t = atoi(argv[1]); if (t < 0) printf("%s: bad value\n", argv[1]); else maxtimeout = t; } void setliteral(int argc, char *argv[]) { (void)argc; (void)argv; /* Quiet unused warning */ literal = !literal; printf("Literal mode %s.\n", literal ? "on" : "off"); } void status(int argc, char *argv[]) { (void)argc; (void)argv; /* Quiet unused warning */ if (connected) printf("Connected to %s.\n", hostname); else printf("Not connected.\n"); printf("Mode: %s Verbose: %s Tracing: %s Literal: %s\n", mode->m_mode, verbose ? "on" : "off", trace ? "on" : "off", literal ? "on" : "off"); printf("Rexmt-interval: %d seconds, Max-timeout: %d seconds\n", rexmtval, maxtimeout); } void intr(int sig) { (void)sig; /* Quiet unused warning */ bsd_signal(SIGALRM, SIG_IGN); alarm(0); siglongjmp(toplevel, -1); } char *tail(char *filename) { char *s; while (*filename) { s = strrchr(filename, '/'); if (s == NULL) break; if (s[1]) return (s + 1); *s = '\0'; } return (filename); } /* * Command parser. */ static void command(void) { struct cmd *c; for (;;) { #ifdef WITH_READLINE if (line) { free(line); line = NULL; } line = readline(prompt); if (!line) exit(0); /* EOF */ #else fputs(prompt, stdout); if (fgets(line, LBUFLEN, stdin) == 0) { if (feof(stdin)) { exit(0); } else { continue; } } #endif if ((line[0] == 0) || (line[0] == '\n')) continue; #ifdef WITH_READLINE #ifdef HAVE_READLINE_HISTORY_H add_history(line); #endif #endif makeargv(); if (margc == 0) continue; c = getcmd(margv[0]); if (c == (struct cmd *)-1) { printf("?Ambiguous command\n"); continue; } if (c == 0) { printf("?Invalid command\n"); continue; } (*c->handler) (margc, margv); } } struct cmd *getcmd(char *name) { const char *p; char *q; struct cmd *c, *found; int nmatches, longest; longest = 0; nmatches = 0; found = 0; for (c = cmdtab; (p = c->name) != NULL; c++) { for (q = name; *q == *p++; q++) if (*q == 0) /* exact match? */ return (c); if (!*q) { /* the name was a prefix */ if (q - name > longest) { longest = q - name; nmatches = 1; found = c; } else if (q - name == longest) nmatches++; } } if (nmatches > 1) return ((struct cmd *)-1); return (found); } /* * Slice a string up into argc/argv. */ static void makeargv(void) { char *cp; char **argp = margv; margc = 0; for (cp = line; *cp;) { while (isspace(*cp)) cp++; if (*cp == '\0') break; *argp++ = cp; margc += 1; while (*cp != '\0' && !isspace(*cp)) cp++; if (*cp == '\0') break; *cp++ = '\0'; } *argp++ = 0; } void quit(int argc, char *argv[]) { (void)argc; (void)argv; /* Quiet unused warning */ exit(0); } /* * Help command. */ void help(int argc, char *argv[]) { struct cmd *c; printf("%s\n", VERSION); if (argc == 1) { printf("Commands may be abbreviated. Commands are:\n\n"); for (c = cmdtab; c->name; c++) printf("%-*s\t%s\n", (int)HELPINDENT, c->name, c->help); return; } while (--argc > 0) { char *arg; arg = *++argv; c = getcmd(arg); if (c == (struct cmd *)-1) printf("?Ambiguous help command %s\n", arg); else if (c == (struct cmd *)0) printf("?Invalid help command %s\n", arg); else printf("%s\n", c->help); } } void settrace(int argc, char *argv[]) { (void)argc; (void)argv; /* Quiet unused warning */ trace = !trace; printf("Packet tracing %s.\n", trace ? "on" : "off"); } void setverbose(int argc, char *argv[]) { (void)argc; (void)argv; /* Quiet unused warning */ verbose = !verbose; printf("Verbose mode %s.\n", verbose ? "on" : "off"); } tftp-hpa/tftp/tftp.1.in0000664000000000000000000001445413573457576012150 0ustar .\" -*- nroff -*- --------------------------------------------------------- * .\" .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Copyright 2001 H. Peter Anvin - All Rights Reserved .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\"----------------------------------------------------------------------- */ .TH TFTP 1 "23 July 2008" "tftp-hpa @@VERSION@@" "User's Manual" .SH NAME .B tftp \- IPv4 Trivial File Transfer Protocol client .SH SYNOPSIS .B tftp [ \fIoptions...\fP ] [\fIhost\fP [\fIport\fP]] [\fB\-c\fP \fIcommand\fP] .br .SH DESCRIPTION .B tftp is a client for the Trivial file Transfer Protocol, which can be used to transfer files to and from remote machines, including some very minimalistic, usually embedded, systems. The remote .I host may be specified on the command line, in which case .B tftp uses .I host as the default host for future transfers (see the .B connect command below.) .SH OPTIONS .TP .B \-4 Connect with IPv4 only, even if IPv6 support was compiled in. .TP .B \-6 Connect with IPv6 only, if compiled in. .TP \fB\-c\fP \fIcommand\fP Execute \fIcommand\fP as if it had been entered on the tftp prompt. Must be specified last on the command line. .TP .B \-l Default to literal mode. Used to avoid special processing of ':' in a file name. .TP \fB\-m\fP \fImode\fP Set the default transfer mode to \fImode\fP. This is usually used with \-c. .TP \fB\-R\fP \fIport:port\fP Force the originating port number to be in the specified range of port numbers. .TP .B \-v Default to verbose mode. .TP .B \-V Print the version number and configuration to standard output, then exit gracefully. .SH COMMANDS Once .B tftp is running, it issues the prompt \f(CWtftp>\fP and recognizes the following commands: .TP \fB?\fP \fIcommand-name...\fP .TP \fBhelp\fP \fIcommand-name...\fP Print help information .TP .B ascii Shorthand for .BR "mode ascii" . .TP .B binary Shorthand for .BR "mode binary" . .TP \fBconnect\fP \fIhost [port]\fP Set the .I host (and optionally .IR port ) for transfers. Note that the TFTP protocol, unlike the FTP protocol, does not maintain connections between transfers; thus, the .B connect command does not actually create a connection, but merely remembers what host is to be used for transfers. You do not have to use the .B connect command; the remote host can be specified as part of the .B get or .B put commands. .TP \fBget\fP \fIfile\fP .sp -.6l .TP \fBget\fP \fIremotefile localfile\fP .sp -.6l .TP \fBget\fP \fIfile1 file2 file3...\fP Get a file or set of files from the specified sources. A remote filename can be in one of two forms: a plain filename on the remote host, if the host has already been specified, or a string of the form .I "host:filename" to specify both a host and filename at the same time. If the latter form is used, the last hostname specified becomes the default for future transfers. Enable .B literal mode to prevent special treatment of the ':' character (e.g. C:\\dir\\file). .TP .B literal Toggle literal mode. When set, this mode prevents special treatment of ':' in filenames. .TP \fBmode\fP \fItransfer-mode\fP Specify the mode for transfers; .I transfer-mode may be one of .B ascii (or .BR netascii ) or .B binary (or .BR octet .) The default is .BR ascii . .TP \fBput\fP \fIfile\fP .sp -.6l .TP \fBput\fP \fIlocalfile remotefile\fP .sp -.6l .TP \fBput\fP \fIfile1 file2 file3... remote-directory\fP Put a file or set of files to the specified remote file or directory. The destination can be in one of two forms: a filename on the remote host, if the host has already been specified, or a string of the form .I "host:filename" to specify both a host and filename at the same time. If the latter form is used, the hostname specified becomes the default for future transfers. If the remote-directory form is used, the remote host is assumed to be a UNIX system or another system using .B / as directory separator. Enable .B literal mode to prevent special treatment of the ':' character (e.g. C:\\dir\\file). .TP .B quit Exit .BR tftp . End-of-file will also exit. .TP \fBrexmt\fP \fIretransmission-timeout\fP Set the per-packet retransmission timeout, in seconds. .TP .B status Show current status. .TP \fBtimeout\fP \fItotal-transmission-timeout\fP Set the total transmission timeout, in seconds. .TP .B trace Toggle packet tracing (a debugging feature.) .TP .B verbose Toggle verbose mode. .SH "NOTES" The TFTP protocol provides no provisions for authentication or security. Therefore, the remote server will probably implement some kinds of access restriction or firewalling. These access restrictions are likely to be site- and server-specific. .SH "AUTHOR" This version of .B tftp is maintained by H. Peter Anvin . It was derived from, but has substantially diverged from, an OpenBSD source base, with added patches by Markus Gutschke and Gero Kulhman. .SH "SEE ALSO" .BR tftpd (8). tftp-hpa/tftp/tftp.c0000664000000000000000000003113613573457576011621 0ustar /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include "common/tftpsubs.h" /* * TFTP User Program -- Protocol Machines */ #include "extern.h" extern union sock_addr peeraddr; /* filled in by main */ extern int f; /* the opened socket */ extern int trace; extern int verbose; extern int rexmtval; extern int maxtimeout; #define PKTSIZE SEGSIZE+4 char ackbuf[PKTSIZE]; int timeout; sigjmp_buf toplevel; sigjmp_buf timeoutbuf; static void nak(int, const char *); static int makerequest(int, const char *, struct tftphdr *, const char *); static void printstats(const char *, unsigned long); static void startclock(void); static void stopclock(void); static void timer(int); static void tpacket(const char *, struct tftphdr *, int); /* * Send the requested file. */ void tftp_sendfile(int fd, const char *name, const char *mode) { struct tftphdr *ap; /* data and ack packets */ struct tftphdr *dp; int n; volatile int is_request; volatile u_short block; volatile int size, convert; volatile off_t amount; union sock_addr from; socklen_t fromlen; FILE *file; u_short ap_opcode, ap_block; startclock(); /* start stat's clock */ dp = r_init(); /* reset fillbuf/read-ahead code */ ap = (struct tftphdr *)ackbuf; convert = !strcmp(mode, "netascii"); file = fdopen(fd, convert ? "rt" : "rb"); block = 0; is_request = 1; /* First packet is the actual WRQ */ amount = 0; bsd_signal(SIGALRM, timer); do { if (is_request) { size = makerequest(WRQ, name, dp, mode) - 4; } else { /* size = read(fd, dp->th_data, SEGSIZE); */ size = readit(file, &dp, convert); if (size < 0) { nak(errno + 100, NULL); break; } dp->th_opcode = htons((u_short) DATA); dp->th_block = htons((u_short) block); } timeout = 0; (void)sigsetjmp(timeoutbuf, 1); if (trace) tpacket("sent", dp, size + 4); n = sendto(f, dp, size + 4, 0, &peeraddr.sa, SOCKLEN(&peeraddr)); if (n != size + 4) { perror("tftp: sendto"); goto abort; } read_ahead(file, convert); for (;;) { alarm(rexmtval); do { fromlen = sizeof(from); n = recvfrom(f, ackbuf, sizeof(ackbuf), 0, &from.sa, &fromlen); } while (n <= 0); alarm(0); if (n < 0) { perror("tftp: recvfrom"); goto abort; } sa_set_port(&peeraddr, SOCKPORT(&from)); /* added */ if (trace) tpacket("received", ap, n); /* should verify packet came from server */ ap_opcode = ntohs((u_short) ap->th_opcode); ap_block = ntohs((u_short) ap->th_block); if (ap_opcode == ERROR) { printf("Error code %d: %s\n", ap_block, ap->th_msg); goto abort; } if (ap_opcode == ACK) { int j; if (ap_block == block) { break; } /* On an error, try to synchronize * both sides. */ j = synchnet(f); if (j && trace) { printf("discarded %d packets\n", j); } /* * RFC1129/RFC1350: We MUST NOT re-send the DATA * packet in response to an invalid ACK. Doing so * would cause the Sorcerer's Apprentice bug. */ } } if (!is_request) amount += size; is_request = 0; block++; } while (size == SEGSIZE || block == 1); abort: fclose(file); stopclock(); if (amount > 0) printstats("Sent", amount); } /* * Receive a file. */ void tftp_recvfile(int fd, const char *name, const char *mode) { struct tftphdr *ap; struct tftphdr *dp; int n; volatile u_short block; volatile int size, firsttrip; volatile unsigned long amount; union sock_addr from; socklen_t fromlen; FILE *file; volatile int convert; /* true if converting crlf -> lf */ u_short dp_opcode, dp_block; startclock(); dp = w_init(); ap = (struct tftphdr *)ackbuf; convert = !strcmp(mode, "netascii"); file = fdopen(fd, convert ? "wt" : "wb"); block = 1; firsttrip = 1; amount = 0; bsd_signal(SIGALRM, timer); do { if (firsttrip) { size = makerequest(RRQ, name, ap, mode); firsttrip = 0; } else { ap->th_opcode = htons((u_short) ACK); ap->th_block = htons((u_short) block); size = 4; block++; } timeout = 0; (void)sigsetjmp(timeoutbuf, 1); send_ack: if (trace) tpacket("sent", ap, size); if (sendto(f, ackbuf, size, 0, &peeraddr.sa, SOCKLEN(&peeraddr)) != size) { alarm(0); perror("tftp: sendto"); goto abort; } write_behind(file, convert); for (;;) { alarm(rexmtval); do { fromlen = sizeof(from); n = recvfrom(f, dp, PKTSIZE, 0, &from.sa, &fromlen); } while (n <= 0); alarm(0); if (n < 0) { perror("tftp: recvfrom"); goto abort; } sa_set_port(&peeraddr, SOCKPORT(&from)); /* added */ if (trace) tpacket("received", dp, n); /* should verify client address */ dp_opcode = ntohs((u_short) dp->th_opcode); dp_block = ntohs((u_short) dp->th_block); if (dp_opcode == ERROR) { printf("Error code %d: %s\n", dp_block, dp->th_msg); goto abort; } if (dp_opcode == DATA) { int j; if (dp_block == block) { break; /* have next packet */ } /* On an error, try to synchronize * both sides. */ j = synchnet(f); if (j && trace) { printf("discarded %d packets\n", j); } if (dp_block == (block - 1)) { goto send_ack; /* resend ack */ } } } /* size = write(fd, dp->th_data, n - 4); */ size = writeit(file, &dp, n - 4, convert); if (size < 0) { nak(errno + 100, NULL); break; } amount += size; } while (size == SEGSIZE); abort: /* ok to ack, since user */ ap->th_opcode = htons((u_short) ACK); /* has seen err msg */ ap->th_block = htons((u_short) block); (void)sendto(f, ackbuf, 4, 0, (struct sockaddr *)&peeraddr, SOCKLEN(&peeraddr)); write_behind(file, convert); /* flush last buffer */ fclose(file); stopclock(); if (amount > 0) printstats("Received", amount); } static int makerequest(int request, const char *name, struct tftphdr *tp, const char *mode) { char *cp; tp->th_opcode = htons((u_short) request); cp = (char *)&(tp->th_stuff); strcpy(cp, name); cp += strlen(name); *cp++ = '\0'; strcpy(cp, mode); cp += strlen(mode); *cp++ = '\0'; return (cp - (char *)tp); } static const char *const errmsgs[] = { "Undefined error code", /* 0 - EUNDEF */ "File not found", /* 1 - ENOTFOUND */ "Access denied", /* 2 - EACCESS */ "Disk full or allocation exceeded", /* 3 - ENOSPACE */ "Illegal TFTP operation", /* 4 - EBADOP */ "Unknown transfer ID", /* 5 - EBADID */ "File already exists", /* 6 - EEXISTS */ "No such user", /* 7 - ENOUSER */ "Failure to negotiate RFC2347 options" /* 8 - EOPTNEG */ }; #define ERR_CNT (sizeof(errmsgs)/sizeof(const char *)) /* * Send a nak packet (error message). * Error code passed in is one of the * standard TFTP codes, or a UNIX errno * offset by 100. */ static void nak(int error, const char *msg) { struct tftphdr *tp; int length; tp = (struct tftphdr *)ackbuf; tp->th_opcode = htons((u_short) ERROR); tp->th_code = htons((u_short) error); if (error >= 100) { /* This is a Unix errno+100 */ if (!msg) msg = strerror(error - 100); error = EUNDEF; } else { if ((unsigned)error >= ERR_CNT) error = EUNDEF; if (!msg) msg = errmsgs[error]; } tp->th_code = htons((u_short) error); length = strlen(msg) + 1; memcpy(tp->th_msg, msg, length); length += 4; /* Add space for header */ if (trace) tpacket("sent", tp, length); if (sendto(f, ackbuf, length, 0, &peeraddr.sa, SOCKLEN(&peeraddr)) != length) perror("nak"); } static void tpacket(const char *s, struct tftphdr *tp, int n) { static const char *opcodes[] = { "#0", "RRQ", "WRQ", "DATA", "ACK", "ERROR", "OACK" }; char *cp, *file; u_short op = ntohs((u_short) tp->th_opcode); if (op < RRQ || op > ERROR) printf("%s opcode=%x ", s, op); else printf("%s %s ", s, opcodes[op]); switch (op) { case RRQ: case WRQ: n -= 2; file = cp = (char *)&(tp->th_stuff); cp = strchr(cp, '\0'); printf("\n", file, cp + 1); break; case DATA: printf("\n", ntohs(tp->th_block), n - 4); break; case ACK: printf("\n", ntohs(tp->th_block)); break; case ERROR: printf("\n", ntohs(tp->th_code), tp->th_msg); break; } } struct timeval tstart; struct timeval tstop; static void startclock(void) { (void)gettimeofday(&tstart, NULL); } static void stopclock(void) { (void)gettimeofday(&tstop, NULL); } static void printstats(const char *direction, unsigned long amount) { double delta; delta = (tstop.tv_sec + (tstop.tv_usec / 100000.0)) - (tstart.tv_sec + (tstart.tv_usec / 100000.0)); if (verbose) { printf("%s %lu bytes in %.1f seconds", direction, amount, delta); printf(" [%.0f bit/s]", (amount * 8.) / delta); putchar('\n'); } } static void timer(int sig) { int save_errno = errno; (void)sig; /* Shut up unused warning */ timeout += rexmtval; if (timeout >= maxtimeout) { printf("Transfer timed out.\n"); errno = save_errno; siglongjmp(toplevel, -1); } errno = save_errno; siglongjmp(timeoutbuf, 1); } tftp-hpa/tftp-xinetd0000664000000000000000000000077613573457576011722 0ustar # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = yes per_source = 11 cps = 100 2 flags = IPv4 } tftp-hpa/tftpd/0000775000000000000000000000000013573457576010640 5ustar tftp-hpa/tftpd/Makefile0000664000000000000000000000130413573457576012276 0ustar SRCROOT = .. VERSION = $(shell cat ../version) -include ../MCONFIG include ../MRULES OBJS = tftpd.$(O) recvfrom.$(O) misc.$(O) $(TFTPDOBJS) all: tftpd$(X) tftpd.8 tftpd$(X): $(OBJS) $(CC) $(LDFLAGS) $^ $(TFTPD_LIBS) -o $@ $(OBJS): ../common/tftpsubs.h tftpd.8: tftpd.8.in ../version sed -e 's/@@VERSION@@/$(VERSION)/g' < $< > $@ install: all mkdir -p $(INSTALLROOT)$(SBINDIR) $(INSTALLROOT)$(MANDIR)/man8 $(INSTALL_PROGRAM) tftpd$(X) $(INSTALLROOT)$(SBINDIR)/in.tftpd $(INSTALL_DATA) tftpd.8 $(INSTALLROOT)$(MANDIR)/man8/in.tftpd.8 cd $(INSTALLROOT)$(MANDIR)/man8 && $(LN_S) -f in.tftpd.8 tftpd.8 clean: rm -f *.o *.obj *.exe tftpd tftpsubs.c tftpsubs.h tftpd.8 distclean: clean rm -f *~ tftp-hpa/tftpd/misc.c0000664000000000000000000000255413573457576011745 0ustar /* ----------------------------------------------------------------------- * * * Copyright 2001-2007 H. Peter Anvin - All Rights Reserved * * This program is free software available under the same license * as the "OpenBSD" operating system, distributed at * http://www.openbsd.org/. * * ----------------------------------------------------------------------- */ /* * misc.c * * Minor help routines. */ #include "config.h" /* Must be included first! */ #include #include "tftpd.h" /* * Set the signal handler and flags. Basically a user-friendly * wrapper around sigaction(). */ void set_signal(int signum, void (*handler) (int), int flags) { struct sigaction sa; memset(&sa, 0, sizeof sa); sa.sa_handler = handler; sigemptyset(&sa.sa_mask); sa.sa_flags = flags; if (sigaction(signum, &sa, NULL)) { syslog(LOG_ERR, "sigaction: %m"); exit(EX_OSERR); } } /* * malloc() that syslogs an error message and bails if it fails. */ void *tfmalloc(size_t size) { void *p = malloc(size); if (!p) { syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } return p; } /* * strdup() that does the equivalent */ char *tfstrdup(const char *str) { char *p = strdup(str); if (!p) { syslog(LOG_ERR, "strdup: %m"); exit(EX_OSERR); } return p; } tftp-hpa/tftpd/recvfrom.c0000664000000000000000000002006613573457576012633 0ustar /* ----------------------------------------------------------------------- * * * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved * * This program is free software available under the same license * as the "OpenBSD" operating system, distributed at * http://www.openbsd.org/. * * ----------------------------------------------------------------------- */ /* * recvfrom.c * * Emulate recvfrom() using recvmsg(), but try to capture the local address * since some TFTP clients consider it an error to get the reply from another * IP address than the request was sent to. * */ #include "config.h" /* Must be included first! */ #include "common/tftpsubs.h" #include "recvfrom.h" #ifdef HAVE_MACHINE_PARAM_H #include /* Needed on some versions of FreeBSD */ #endif #if defined(HAVE_RECVMSG) && defined(HAVE_MSGHDR_MSG_CONTROL) #include #ifdef IP_PKTINFO # ifndef HAVE_STRUCT_IN_PKTINFO # ifdef __linux__ /* Assume this version of glibc simply lacks the definition */ struct in_pktinfo { int ipi_ifindex; struct in_addr ipi_spec_dst; struct in_addr ipi_addr; }; # else # undef IP_PKTINFO /* No definition, no way to get it */ # endif # endif #endif #ifndef CMSG_LEN # define CMSG_LEN(size) (sizeof(struct cmsghdr) + (size)) #endif #ifndef CMSG_SPACE # define CMSG_SPACE(size) (sizeof(struct cmsghdr) + (size)) #endif /* * Check to see if this is a valid local address, meaning that we can * legally bind to it. */ static int address_is_local(const union sock_addr *addr) { union sock_addr sa1, sa2; int sockfd = -1; int e; int rv = 0; socklen_t addrlen; memcpy(&sa1, addr, sizeof sa1); /* Multicast or universal broadcast address? */ if (sa1.sa.sa_family == AF_INET) { if (ntohl(sa1.si.sin_addr.s_addr) >= (224UL << 24)) return 0; sa1.si.sin_port = 0; /* Any port */ } #ifdef HAVE_IPV6 else if (sa1.sa.sa_family == AF_INET6) { if (IN6_IS_ADDR_MULTICAST(&sa1.s6.sin6_addr)) return 0; sa1.s6.sin6_port = 0; /* Any port */ } #endif else return 0; sockfd = socket(sa1.sa.sa_family, SOCK_DGRAM, 0); if (sockfd < 0) goto err; if (bind(sockfd, &sa1.sa, SOCKLEN(&sa1))) goto err; addrlen = SOCKLEN(addr); if (getsockname(sockfd, (struct sockaddr *)&sa2, &addrlen)) goto err; if (sa1.sa.sa_family != sa2.sa.sa_family) goto err; if (sa2.sa.sa_family == AF_INET) rv = sa1.si.sin_addr.s_addr == sa2.si.sin_addr.s_addr; #ifdef HAVE_IPV6 else if (sa2.sa.sa_family == AF_INET6) rv = IN6_ARE_ADDR_EQUAL(&sa1.s6.sin6_addr, &sa2.s6.sin6_addr); #endif else rv = 0; err: e = errno; if (sockfd >= 0) close(sockfd); errno = e; return rv; } static void normalize_ip6_compat(union sock_addr *myaddr) { #ifdef HAVE_IPV6 static const uint8_t ip6_compat_prefix[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff }; struct sockaddr_in in; if (myaddr->sa.sa_family == AF_INET6 && !memcmp(&myaddr->s6.sin6_addr, ip6_compat_prefix, sizeof ip6_compat_prefix)) { bzero(&in, sizeof in); in.sin_family = AF_INET; in.sin_port = myaddr->s6.sin6_port; memcpy(&in.sin_addr, (const char *)&myaddr->s6.sin6_addr + sizeof ip6_compat_prefix, sizeof in.sin_addr); memcpy(&myaddr->si, &in, sizeof in); } #else (void)myaddr; #endif } int myrecvfrom(int s, void *buf, int len, unsigned int flags, union sock_addr *from, union sock_addr *myaddr) { struct msghdr msg; struct iovec iov; int n; struct cmsghdr *cmptr; union { struct cmsghdr cm; #ifdef IP_PKTINFO char control[CMSG_SPACE(sizeof(struct in_addr)) + CMSG_SPACE(sizeof(struct in_pktinfo))]; #else char control[CMSG_SPACE(sizeof(struct in_addr))]; #endif #ifdef HAVE_IPV6 #ifdef HAVE_STRUCT_IN6_PKTINFO char control6[CMSG_SPACE(sizeof(struct in6_addr)) + CMSG_SPACE(sizeof(struct in6_pktinfo))]; #else char control6[CMSG_SPACE(sizeof(struct in6_addr))]; #endif #endif } control_un; int on = 1; #ifdef IP_PKTINFO struct in_pktinfo pktinfo; #endif #ifdef HAVE_STRUCT_IN6_PKTINFO struct in6_pktinfo pktinfo6; #endif /* Try to enable getting the return address */ #ifdef IP_RECVDSTADDR if (from->sa.sa_family == AF_INET) setsockopt(s, IPPROTO_IP, IP_RECVDSTADDR, &on, sizeof(on)); #endif #ifdef IP_PKTINFO if (from->sa.sa_family == AF_INET) setsockopt(s, IPPROTO_IP, IP_PKTINFO, &on, sizeof(on)); #endif #ifdef HAVE_IPV6 #ifdef IPV6_RECVPKTINFO if (from->sa.sa_family == AF_INET6) setsockopt(s, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on, sizeof(on)); #endif #endif bzero(&msg, sizeof msg); /* Clear possible system-dependent fields */ msg.msg_control = control_un.control; msg.msg_controllen = sizeof(control_un); msg.msg_flags = 0; msg.msg_name = &from->sa; msg.msg_namelen = sizeof(*from); iov.iov_base = buf; iov.iov_len = len; msg.msg_iov = &iov; msg.msg_iovlen = 1; if ((n = recvmsg(s, &msg, flags)) < 0) return n; /* Error */ if (myaddr) { bzero(myaddr, sizeof(*myaddr)); myaddr->sa.sa_family = from->sa.sa_family; if (msg.msg_controllen < sizeof(struct cmsghdr) || (msg.msg_flags & MSG_CTRUNC)) return n; /* No information available */ for (cmptr = CMSG_FIRSTHDR(&msg); cmptr != NULL; cmptr = CMSG_NXTHDR(&msg, cmptr)) { if (from->sa.sa_family == AF_INET) { myaddr->sa.sa_family = AF_INET; #ifdef IP_RECVDSTADDR if (cmptr->cmsg_level == IPPROTO_IP && cmptr->cmsg_type == IP_RECVDSTADDR) { memcpy(&myaddr->si.sin_addr, CMSG_DATA(cmptr), sizeof(struct in_addr)); } #endif #ifdef IP_PKTINFO if (cmptr->cmsg_level == IPPROTO_IP && cmptr->cmsg_type == IP_PKTINFO) { memcpy(&pktinfo, CMSG_DATA(cmptr), sizeof(struct in_pktinfo)); memcpy(&myaddr->si.sin_addr, &pktinfo.ipi_addr, sizeof(struct in_addr)); } #endif } #ifdef HAVE_IPV6 else if (from->sa.sa_family == AF_INET6) { myaddr->sa.sa_family = AF_INET6; #ifdef IP6_RECVDSTADDR if (cmptr->cmsg_level == IPPROTO_IPV6 && cmptr->cmsg_type == IPV6_RECVDSTADDR ) memcpy(&myaddr->s6.sin6_addr, CMSG_DATA(cmptr), sizeof(struct in6_addr)); #endif #ifdef HAVE_STRUCT_IN6_PKTINFO if (cmptr->cmsg_level == IPPROTO_IPV6 && ( #ifdef IPV6_RECVPKTINFO cmptr->cmsg_type == IPV6_RECVPKTINFO || #endif cmptr->cmsg_type == IPV6_PKTINFO)) { memcpy(&pktinfo6, CMSG_DATA(cmptr), sizeof(struct in6_pktinfo)); memcpy(&myaddr->s6.sin6_addr, &pktinfo6.ipi6_addr, sizeof(struct in6_addr)); } #endif } #endif } normalize_ip6_compat(myaddr); /* If the address is not a valid local address, * then bind to any address... */ if (address_is_local(myaddr) != 1) { if (myaddr->sa.sa_family == AF_INET) ((struct sockaddr_in *)myaddr)->sin_addr.s_addr = INADDR_ANY; #ifdef HAVE_IPV6 else if (myaddr->sa.sa_family == AF_INET6) memset(&myaddr->s6.sin6_addr, 0, sizeof(struct in6_addr)); #endif } } normalize_ip6_compat(from); return n; } #else /* pointless... */ int myrecvfrom(int s, void *buf, int len, unsigned int flags, union sock_addr *from, union sock_addr *myaddr) { /* There is no way we can get the local address, fudge it */ socklen_t fromlen = sizeof(*from); bzero(myaddr, sizeof(*myaddr)); myaddr->sa.sa_family = from->sa.sa_family; sa_set_port(myaddr, htons(IPPORT_TFTP)); return recvfrom(s, buf, len, flags, from, &fromlen); } #endif tftp-hpa/tftpd/recvfrom.h0000664000000000000000000000111113573457576012626 0ustar /* ----------------------------------------------------------------------- * * * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved * * This program is free software available under the same license * as the "OpenBSD" operating system, distributed at * http://www.openbsd.org/. * * ----------------------------------------------------------------------- */ /* * recvfrom.h * * Header for recvfrom substitute * */ #include "config.h" int myrecvfrom(int s, void *buf, int len, unsigned int flags, union sock_addr *from, union sock_addr *myaddr); tftp-hpa/tftpd/remap.c0000664000000000000000000003106213573457576012112 0ustar /* ----------------------------------------------------------------------- * * * Copyright 2001-2014 H. Peter Anvin - All Rights Reserved * * This program is free software available under the same license * as the "OpenBSD" operating system, distributed at * http://www.openbsd.org/. * * ----------------------------------------------------------------------- */ /* * remap.c * * Perform regular-expression based filename remapping. */ #include "config.h" /* Must be included first! */ #include #include #include #include "tftpd.h" #include "remap.h" #define DEADMAN_MAX_STEPS 1024 /* Timeout after this many steps */ #define MAXLINE 16384 /* Truncate a line at this many bytes */ #define RULE_REWRITE 0x01 /* This is a rewrite rule */ #define RULE_GLOBAL 0x02 /* Global rule (repeat until no match) */ #define RULE_EXIT 0x04 /* Exit after matching this rule */ #define RULE_RESTART 0x08 /* Restart at the top after matching this rule */ #define RULE_ABORT 0x10 /* Terminate processing with an error */ #define RULE_INVERSE 0x20 /* Execute if regex *doesn't* match */ #define RULE_IPV4 0x40 /* IPv4 only */ #define RULE_IPV6 0x80 /* IPv6 only */ struct rule { struct rule *next; int nrule; int rule_flags; char rule_mode; regex_t rx; const char *pattern; }; static int xform_null(int c) { return c; } static int xform_toupper(int c) { return toupper(c); } static int xform_tolower(int c) { return tolower(c); } /* Do \-substitution. Call with string == NULL to get length only. */ static int genmatchstring(char *string, const char *pattern, const char *input, const regmatch_t * pmatch, match_pattern_callback macrosub) { int (*xform) (int) = xform_null; int len = 0; int n, mlen, sublen; int endbytes; /* Get section before match; note pmatch[0] is the whole match */ endbytes = strlen(input) - pmatch[0].rm_eo; len = pmatch[0].rm_so + endbytes; if (string) { memcpy(string, input, pmatch[0].rm_so); string += pmatch[0].rm_so; } /* Transform matched section */ while (*pattern) { mlen = 0; if (*pattern == '\\' && pattern[1] != '\0') { char macro = pattern[1]; switch (macro) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': n = pattern[1] - '0'; if (pmatch[n].rm_so != -1) { mlen = pmatch[n].rm_eo - pmatch[n].rm_so; len += mlen; if (string) { const char *p = input + pmatch[n].rm_so; while (mlen--) *string++ = xform(*p++); } } break; case 'L': xform = xform_tolower; break; case 'U': xform = xform_toupper; break; case 'E': xform = xform_null; break; default: if (macrosub && (sublen = macrosub(macro, string)) >= 0) { while (sublen--) { len++; if (string) { *string = xform(*string); string++; } } } else { len++; if (string) *string++ = xform(pattern[1]); } } pattern += 2; } else { len++; if (string) *string++ = xform(*pattern); pattern++; } } /* Copy section after match */ if (string) { memcpy(string, input + pmatch[0].rm_eo, endbytes); string[endbytes] = '\0'; } return len; } /* * Extract a string terminated by non-escaped whitespace; ignoring * leading whitespace. Consider an unescaped # to be a comment marker, * functionally \n. */ static int readescstring(char *buf, char **str) { char *p = *str; int wasbs = 0, len = 0; while (*p && isspace(*p)) p++; if (!*p) { *buf = '\0'; *str = p; return 0; } while (*p) { if (!wasbs && (isspace(*p) || *p == '#')) { *buf = '\0'; *str = p; return len; } /* Important: two backslashes leave us in the !wasbs state! */ wasbs = !wasbs && (*p == '\\'); *buf++ = *p++; len++; } *buf = '\0'; *str = p; return len; } /* Parse a line into a set of instructions */ static int parseline(char *line, struct rule *r, int lineno) { char buffer[MAXLINE]; char *p; int rv; int rxflags = REG_EXTENDED; static int nrule; memset(r, 0, sizeof *r); r->nrule = nrule; if (!readescstring(buffer, &line)) return 0; /* No rule found */ for (p = buffer; *p; p++) { switch (*p) { case 'r': r->rule_flags |= RULE_REWRITE; break; case 'g': r->rule_flags |= RULE_GLOBAL; break; case 'e': r->rule_flags |= RULE_EXIT; break; case 's': r->rule_flags |= RULE_RESTART; break; case 'a': r->rule_flags |= RULE_ABORT; break; case 'i': rxflags |= REG_ICASE; break; case '~': r->rule_flags |= RULE_INVERSE; break; case '4': r->rule_flags |= RULE_IPV4; break; case '6': r->rule_flags |= RULE_IPV6; break; case 'G': case 'P': r->rule_mode = *p; break; default: syslog(LOG_ERR, "Remap command \"%s\" on line %d contains invalid char \"%c\"", buffer, lineno, *p); return -1; /* Error */ break; } } /* RULE_GLOBAL only applies when RULE_REWRITE specified */ if (!(r->rule_flags & RULE_REWRITE)) r->rule_flags &= ~RULE_GLOBAL; if ((r->rule_flags & (RULE_INVERSE | RULE_REWRITE)) == (RULE_INVERSE | RULE_REWRITE)) { syslog(LOG_ERR, "r rules cannot be inverted, line %d: %s\n", lineno, line); return -1; /* Error */ } /* Read and compile the regex */ if (!readescstring(buffer, &line)) { syslog(LOG_ERR, "No regex on remap line %d: %s\n", lineno, line); return -1; /* Error */ } if ((rv = regcomp(&r->rx, buffer, rxflags)) != 0) { char errbuf[BUFSIZ]; regerror(rv, &r->rx, errbuf, BUFSIZ); syslog(LOG_ERR, "Bad regex in remap line %d: %s\n", lineno, errbuf); return -1; /* Error */ } /* Read the rewrite pattern, if any */ if (readescstring(buffer, &line)) { r->pattern = tfstrdup(buffer); } else { r->pattern = ""; } nrule++; return 1; /* Rule found */ } /* Read a rule file */ struct rule *parserulefile(FILE * f) { char line[MAXLINE]; struct rule *first_rule = NULL; struct rule **last_rule = &first_rule; struct rule *this_rule = tfmalloc(sizeof(struct rule)); int rv; int lineno = 0; int err = 0; while (lineno++, fgets(line, MAXLINE, f)) { rv = parseline(line, this_rule, lineno); if (rv < 0) err = 1; if (rv > 0) { *last_rule = this_rule; last_rule = &this_rule->next; this_rule = tfmalloc(sizeof(struct rule)); } } free(this_rule); /* Last one is always unused */ if (err) { /* Bail on error, we have already logged an error message */ exit(EX_CONFIG); } return first_rule; } /* Destroy a rule file data structure */ void freerules(struct rule *r) { struct rule *next; while (r) { next = r->next; regfree(&r->rx); /* "" patterns aren't allocated by malloc() */ if (r->pattern && *r->pattern) free((void *)r->pattern); free(r); r = next; } } /* Execute a rule set on a string; returns a malloc'd new string. */ char *rewrite_string(const char *input, const struct rule *rules, char mode, int af, match_pattern_callback macrosub, const char **errmsg) { char *current = tfstrdup(input); char *newstr; const struct rule *ruleptr = rules; regmatch_t pmatch[10]; int len; int was_match = 0; int deadman = DEADMAN_MAX_STEPS; /* Default error */ *errmsg = "Remap table failure"; if (verbosity >= 3) { syslog(LOG_INFO, "remap: input: %s", current); } for (ruleptr = rules; ruleptr; ruleptr = ruleptr->next) { if (ruleptr->rule_mode && ruleptr->rule_mode != mode) continue; /* Rule not applicable, try next */ if ((ruleptr->rule_flags & RULE_IPV4) && (af != AF_INET)) continue; /* Rule not applicable, try next */ if ((ruleptr->rule_flags & RULE_IPV6) && (af != AF_INET6)) continue; /* Rule not applicable, try next */ if (!deadman--) { syslog(LOG_WARNING, "remap: Breaking loop, input = %s, last = %s", input, current); free(current); return NULL; /* Did not terminate! */ } do { if (regexec(&ruleptr->rx, current, 10, pmatch, 0) == (ruleptr->rule_flags & RULE_INVERSE ? REG_NOMATCH : 0)) { /* Match on this rule */ was_match = 1; if (ruleptr->rule_flags & RULE_INVERSE) { /* No actual match, so clear out the pmatch array */ int i; for (i = 0; i < 10; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1; } if (ruleptr->rule_flags & RULE_ABORT) { if (verbosity >= 3) { syslog(LOG_INFO, "remap: rule %d: abort: %s", ruleptr->nrule, current); } if (ruleptr->pattern[0]) { /* Custom error message */ len = genmatchstring(NULL, ruleptr->pattern, current, pmatch, macrosub); newstr = tfmalloc(len + 1); genmatchstring(newstr, ruleptr->pattern, current, pmatch, macrosub); *errmsg = newstr; } else { *errmsg = NULL; } free(current); return (NULL); } if (ruleptr->rule_flags & RULE_REWRITE) { len = genmatchstring(NULL, ruleptr->pattern, current, pmatch, macrosub); newstr = tfmalloc(len + 1); genmatchstring(newstr, ruleptr->pattern, current, pmatch, macrosub); free(current); current = newstr; if (verbosity >= 3) { syslog(LOG_INFO, "remap: rule %d: rewrite: %s", ruleptr->nrule, current); } } } else { break; /* No match, terminate unconditionally */ } /* If the rule is global, keep going until no match */ } while (ruleptr->rule_flags & RULE_GLOBAL); if (was_match) { was_match = 0; if (ruleptr->rule_flags & RULE_EXIT) { if (verbosity >= 3) { syslog(LOG_INFO, "remap: rule %d: exit", ruleptr->nrule); } return current; /* Exit here, we're done */ } else if (ruleptr->rule_flags & RULE_RESTART) { ruleptr = rules; /* Start from the top */ if (verbosity >= 3) { syslog(LOG_INFO, "remap: rule %d: restart", ruleptr->nrule); } } } } if (verbosity >= 3) { syslog(LOG_INFO, "remap: done"); } return current; } tftp-hpa/tftpd/remap.h0000664000000000000000000000244213573457576012117 0ustar /* ----------------------------------------------------------------------- * * * Copyright 2001-2007 H. Peter Anvin - All Rights Reserved * * This program is free software available under the same license * as the "OpenBSD" operating system, distributed at * http://www.openbsd.org/. * * ----------------------------------------------------------------------- */ /* * remap.h * * Prototypes for regular-expression based filename remapping. */ #ifndef TFTPD_REMAP_H #define TFTPD_REMAP_H /* Opaque type */ struct rule; #ifdef WITH_REGEX /* This is called when we encounter a substitution like \i. The macro character is passed as the first argument; the output buffer, if any, is passed as the second argument. The function should return the number of characters output, or -1 on failure. */ typedef int (*match_pattern_callback) (char, char *); /* Read a rule file */ struct rule *parserulefile(FILE *); /* Destroy a rule file data structure */ void freerules(struct rule *); /* Execute a rule set on a string; returns a malloc'd new string. */ char *rewrite_string(const char *, const struct rule *, char, int, match_pattern_callback, const char **); #endif /* WITH_REGEX */ #endif /* TFTPD_REMAP_H */ tftp-hpa/tftpd/sample.rules0000664000000000000000000000231113573457576013172 0ustar # # Sample rule file for the -m (remapping option) # # This file has three fields: operation, regex, remapping # # The operation is a combination of the following letters: # # r - rewrite the matched string with the remapping pattern # i - case-insensitive matching # g - repeat until no match (used with "r") # e - exit (with success) if we match this pattern, do not process # subsequent rules # s - start over from the first rule if we match this pattern # a - abort (refuse the request) if we match this rule # G - this rule applies to TFTP GET requests only # P - this rule applies to TFTP PUT requests only # # The regex is a regular expression in the style of egrep(1). # # The remapping is a pattern, all characters are verbatim except \ # \0 copies the full string that matched the regex # \1..\9 copies the 9 first (..) expressions in the regex # \\ is an escaped \ # # "#" begins a comment, unless \-escaped # ri ^[a-z]: # Remove "drive letters" rg \\ / # Convert backslashes to slashes rg \# @ # Convert hash marks to @ signs rg /../ /..no../ # Convert /../ to /..no../ e ^ok/ # These are always ok r ^[^/] /tftpboot/\0 # Convert non-absolute files a \.pvt$ # Reject requests for private files tftp-hpa/tftpd/tftpd.8.in0000664000000000000000000003257713573457576012475 0ustar .\" -*- nroff -*- --------------------------------------------------------- * .\" .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Copyright 2001-2009 H. Peter Anvin - All Rights Reserved .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\"----------------------------------------------------------------------- */ .TH TFTPD 8 "7 June 2014" "tftp-hpa @@VERSION@@" "System Manager's Manual" .SH NAME .B tftpd \- Trivial File Transfer Protocol server .SH SYNOPSIS .B in.tftpd .RI [ options... ] .I directory... .SH DESCRIPTION .B tftpd is a server for the Trivial File Transfer Protocol. The TFTP protocol is extensively used to support remote booting of diskless devices. The server is normally started by .BR inetd , but can also run standalone. .PP .SH OPTIONS .TP \fB\-\-ipv4\fP, \fB\-4\fP Connect with IPv4 only, even if IPv6 support was compiled in. .TP \fB\-\-ipv6\fP, \fB\-6\fP Connect with IPv6 only, if compiled in. .TP \fB\-l\fP, \fB\-\-listen\fP Run the server in standalone (listen) mode, rather than run from .BR inetd . In listen mode, the .B \-\-timeout option is ignored, and the .B \-\-address option can be used to specify a specific local address or port to listen to. .TP \fB\-\-foreground\fP, \fB\-L\fP Similar to .B \-\-listen but do not detach from the foreground process. Implies .BR \-\-listen . .TP \fB\-\-address\fP \fI[address][:port]\fP, \fB\-a\fP \fI[address][:port]\fP Specify a specific .I address and .I port to listen to when called with the .B \-\-listen or .B \-\-foreground option. The default is to listen to the .I tftp port specified in .I /etc/services on all local addresses. .B Please note: Numeric IPv6 adresses must be enclosed in square brackets to avoid ambiguity with the optional port information. .TP \fB\-\-create\fP, \fB\-c\fP Allow new files to be created. By default, .B tftpd will only allow upload of files that already exist. Files are created with default permissions allowing anyone to read or write them, unless the .B \-\-permissive or .B \-\-umask options are specified. .TP \fB\-\-secure\fP, \fB\-s\fP Change root directory on startup. This means the remote host does not need to pass along the directory as part of the transfer, and may add security. When .B \-\-secure is specified, exactly one .I directory should be specified on the command line. The use of this option is recommended for security as well as compatibility with some boot ROMs which cannot be easily made to include a directory name in its request. .TP \fB\-\-user\fP \fIusername\fP, \fB\-u\fP \fIusername\fP Specify the username which .B tftpd will run as; the default is "nobody". The user ID, group ID, and (if possible on the platform) the supplementary group IDs will be set to the ones specified in the system permission database for this username. .TP \fB\-\-umask\fP \fIumask\fP, \fB\-U\fP \fIumask\fP Sets the \fIumask\fP for newly created files to the specified value. The default is zero (anyone can read or write) if the .B \-\-permissive option is not specified, or inherited from the invoking process if .B \-\-permissive is specified. .TP \fB\-\-permissive\fP, \fB\-p\fP Perform no additional permissions checks above the normal system-provided access controls for the user specified via the .B \-\-user option. .TP \fB\-\-pidfile\fP \fIpidfile\fP, \fB\-P\fP \fIpidfile\fP When run in standalone mode, write the process ID of the listening server into \fIpidfile\fP. On normal termination (SIGTERM or SIGINT) the pid file is automatically removed. .TP \fB\-\-timeout\fP \fItimeout\fP, \fB\-t\fP \fItimeout\fP When run from .B inetd this specifies how long, in seconds, to wait for a second connection before terminating the server. .B inetd will then respawn the server when another request comes in. The default is 900 (15 minutes.) .TP \fB\-\-retransmit\fP \fItimeout, \fP\fB\-T\fP \fItimeout\fP Determine the default timeout, in microseconds, before the first packet is retransmitted. This can be modified by the client if the .B timeout or .B utimeout option is negotiated. The default is 1000000 (1 second.) .TP \fB\-\-map-file\fP \fIremap-file\fP, \fB\-m\fP \fIremap-file\fP Specify the use of filename remapping. The .I remap-file is a file containing the remapping rules. See the section on filename remapping below. This option may not be compiled in, see the output of .B "in.tftpd \-V" to verify whether or not it is available. .TP \fB\-\-verbose\fP, \fB\-v\fP Increase the logging verbosity of .BR tftpd . This flag can be specified multiple times for even higher verbosity. .TP \fB\-\-verbosity\fP \fIvalue\fP Set the verbosity value to \fIvalue\fP. .TP \fB\-\-refuse\fP \fItftp-option\fP, \fB\-r\fP \fItftp-option\fP Indicate that a specific RFC 2347 TFTP option should never be accepted. .TP \fB\-\-blocksize\fP \fImax-block-size\fP, \fB\-B\fP \fImax-block-size\fP Specifies the maximum permitted block size. The permitted range for this parameter is from 512 to 65464. Some embedded clients request large block sizes and yet do not handle fragmented packets correctly; for these clients, it is recommended to set this value to the smallest MTU on your network minus 32 bytes (20 bytes for IP, 8 for UDP, and 4 for TFTP; less if you use IP options on your network.) For example, on a standard Ethernet (MTU 1500) a value of 1468 is reasonable. .TP \fB\-\-port-range\fP \fIport:port\fP, \fB\-R\fP \fIport:port\fP Force the server port number (the Transaction ID) to be in the specified range of port numbers. .TP \fB\-\-version\fP, \fB\-V\fP Print the version number and configuration to standard output, then exit gracefully. .SH "RFC 2347 OPTION NEGOTIATION" This version of .B tftpd supports RFC 2347 option negotation. Currently implemented options are: .TP \fBblksize\fP (RFC 2348) Set the transfer block size to anything less than or equal to the specified option. This version of .B tftpd can support any block size up to the theoretical maximum of 65464 bytes. .TP \fBblksize2\fP (nonstandard) Set the transfer block size to anything less than or equal to the specified option, but restrict the possible responses to powers of 2. The maximum is 32768 bytes (the largest power of 2 less than or equal to 65464.) .TP \fBtsize\fP (RFC 2349) Report the size of the file that is about to be transferred. This version of .B tftpd only supports the .B tsize option for binary (octet) mode transfers. .TP \fBtimeout\fP (RFC 2349) Set the time before the server retransmits a packet, in seconds. .TP \fButimeout\fP (nonstandard) Set the time before the server retransmits a packet, in microseconds. .TP \fBrollover\fP (nonstandard) Set the block number to resume at after a block number rollover. The default and recommended value is zero. .PP The .B \-\-refuse option can be used to disable specific options; this may be necessary to work around bugs in specific TFTP client implementations. For example, some TFTP clients have been found to request the .B blksize option, but crash with an error if they actually get the option accepted by the server. .SH "FILENAME REMAPPING" The .B \-\-map-file option specifies a file which contains filename remapping rules. Each non-comment line (comments begin with hash marks, .BR # ) contains an .IR operation , specified below; a .IR regex , a regular expression in the style of .BR egrep ; and optionally a .IR "replacement pattern" . The operation indicated by .I operation is performed if the .I regex matches all or part of the filename. Rules are processed from the top down, and by default, all rules are processed even if there is a match. .PP The .I operation can be any combination of the following letters: .TP .B r Replace the substring matched by .I regex by the .IR "replacement pattern" . The replacement pattern may contain escape sequences; see below. .TP .B g Repeat this rule until it no longer matches. This is always used with .BR r . .TP .B i Match the .I regex case-insensitively. By default it is case sensitive. .TP .B e If this rule matches, end rule processing after executing the rule. .TP .B s If this rule matches, start rule processing over from the very first rule after executing this rule. .TP .B a If this rule matches, refuse the request and send an access denied error to the client. .TP .B G This rule applies to GET (RRQ) requests only. .TP .B P This rule applies to PUT (WRQ) requests only. .TP .B 4 This rule applies to IPv4 sessions only. .TP .B 6 This rule applies to IPv6 sessions only. .TP .B ~ Inverse the sense of this rule, i.e. execute the .I operation only if the .I regex .I doesn't match. Cannot used together with .BR r . .PP The following escape sequences are recognized as part of the .IR "replacement pattern" : .TP \fB\\0\fP The entire string matched by the .IR regex . .TP \fB\\1\fP to \fB\\9\fP The strings matched by each of the first nine parenthesized subexpressions, \\( ... \\), of the .I regex pattern. .TP \fB\\i\fP The IP address of the requesting host, in dotted-quad notation for IPv4 (e.g. 192.0.2.169) or conventional colon form for IPv6 (e.g. 2001:db8::1). .TP \fB\\x\fP The IP address of the requesting host, in expanded hexadecimal notation (e.g. C00002A9 for IPv4, or 20010DB8000000000000000000000001 for IPv6). .TP \fB\\\\\fP Literal backslash. .TP \fB\\\fP\fIwhitespace\fP Literal whitespace. .TP \fB\\#\fP Literal hash mark. .TP \fB\\U\fP Turns all subsequent letters to upper case. .TP \fB\\L\fP Turns all subsequent letters to lower case. .TP \fB\\E\fP Cancels the effect of \fB\\U\fP or \fB\\L\fP. .PP If the mapping file is changed, you need to send .B SIGHUP to any outstanding .B tftpd process. .SH "SECURITY" The use of TFTP services does not require an account or password on the server system. Due to the lack of authentication information, .B tftpd will allow only publicly readable files (o+r) to be accessed, unless the .B \-\-permissive option is specified. Files may be written only if they already exist and are publicly writable, unless the .B \-\-create option is specified. Note that this extends the concept of ``public'' to include all users on all hosts that can be reached through the network; this may not be appropriate on all systems, and its implications should be considered before enabling TFTP service. Typically, some kind of firewall or packet-filter solution should be employed. If appropriately compiled (see the output of .BR "in.tftpd \-\-version" ) .B tftpd will query the .BR hosts_access (5) database for access control information. This may be slow; sites requiring maximum performance may want to compile without this option and rely on firewalling or kernel-based packet filters instead. .PP The server should be set to run as the user with the lowest possible privilege; please see the .B \-\-user flag. It is probably a good idea to set up a specific user account for .BR tftpd , rather than letting it run as "nobody", to guard against privilege leaks between applications. .PP Access to files can, and should, be restricted by invoking .B tftpd with a list of directories by including pathnames as server program arguments on the command line. In this case access is restricted to files whole names are prefixed by one of the given directories. If possible, it is recommended that the .B \-\-secure flag is used to set up a chroot() environment for the server to run in once a connection has been set up. .PP Finally, the filename remapping .RB ( \-\-map-file flag) support can be used to provide a limited amount of additional access control. .SH "CONFORMING TO" RFC 1123, .IR "Requirements for Internet Hosts \- Application and Support" . .br RFC 1350, .IR "The TFTP Protocol (revision 2)" . .br RFC 2347, .IR "TFTP Option Extension" . .br RFC 2348, .IR "TFTP Blocksize Option" . .br RFC 2349, .IR "TFTP Timeout Interval and Transfer Size Options" . .SH "AUTHOR" This version of .B tftpd is maintained by H. Peter Anvin . It was derived from, but has substantially diverged from, an OpenBSD source base, with added patches by Markus Gutschke and Gero Kulhman. .SH "SEE ALSO" .BR tftp (1), .BR egrep (1), .BR umask (2), .BR hosts_access (5), .BR regex (7), .BR inetd (8). tftp-hpa/tftpd/tftpd.c0000664000000000000000000014544513573457576012142 0ustar /* * Copyright (c) 1983 Regents of the University of California. * Copyright (c) 1999-2009 H. Peter Anvin * Copyright (c) 2011-2014 Intel Corporation; author: H. Peter Anvin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include "config.h" /* Must be included first */ #include "tftpd.h" /* * Trivial file transfer protocol server. * * This version includes many modifications by Jim Guyton */ #include #include #include #include #include #include #include "common/tftpsubs.h" #include "recvfrom.h" #include "remap.h" #ifdef HAVE_SYS_FILIO_H #include /* Necessary for FIONBIO on Solaris */ #endif #ifdef HAVE_TCPWRAPPERS #include int deny_severity = LOG_WARNING; int allow_severity = -1; /* Don't log at all */ static struct request_info wrap_request; #endif #ifdef HAVE_IPV6 static int ai_fam = AF_UNSPEC; #else static int ai_fam = AF_INET; #endif #define TIMEOUT 1000000 /* Default timeout (us) */ #define TRIES 6 /* Number of attempts to send each packet */ #define TIMEOUT_LIMIT ((1 << TRIES)-1) const char *tftpd_progname; static int peer; static unsigned long timeout = TIMEOUT; /* Current timeout value */ static unsigned long rexmtval = TIMEOUT; /* Basic timeout value */ static unsigned long maxtimeout = TIMEOUT_LIMIT * TIMEOUT; static int timeout_quit = 0; static sigjmp_buf timeoutbuf; static uint16_t rollover_val = 0; #define PKTSIZE MAX_SEGSIZE+4 static char buf[PKTSIZE]; static char ackbuf[PKTSIZE]; static unsigned int max_blksize = MAX_SEGSIZE; static char tmpbuf[INET6_ADDRSTRLEN], *tmp_p; static union sock_addr from; static off_t tsize; static int tsize_ok; static int ndirs; static const char **dirs; static int secure = 0; int cancreate = 0; int unixperms = 0; int portrange = 0; unsigned int portrange_from, portrange_to; int verbosity = 0; struct formats; #ifdef WITH_REGEX static struct rule *rewrite_rules = NULL; #endif int tftp(struct tftphdr *, int); static void nak(int, const char *); static void timer(int); static void do_opt(const char *, const char *, char **); static int set_blksize(uintmax_t *); static int set_blksize2(uintmax_t *); static int set_tsize(uintmax_t *); static int set_timeout(uintmax_t *); static int set_utimeout(uintmax_t *); static int set_rollover(uintmax_t *); struct options { const char *o_opt; int (*o_fnc)(uintmax_t *); } options[] = { {"blksize", set_blksize}, {"blksize2", set_blksize2}, {"tsize", set_tsize}, {"timeout", set_timeout}, {"utimeout", set_utimeout}, {"rollover", set_rollover}, {NULL, NULL} }; /* Simple handler for SIGHUP */ static volatile sig_atomic_t caught_sighup = 0; static void handle_sighup(int sig) { (void)sig; /* Suppress unused warning */ caught_sighup = 1; } /* Handle exit requests by SIGTERM and SIGINT */ static volatile sig_atomic_t exit_signal = 0; static void handle_exit(int sig) { exit_signal = sig; } /* Handle timeout signal or timeout event */ void timer(int sig) { (void)sig; /* Suppress unused warning */ timeout <<= 1; if (timeout >= maxtimeout || timeout_quit) exit(0); siglongjmp(timeoutbuf, 1); } #ifdef WITH_REGEX static struct rule *read_remap_rules(const char *file) { FILE *f; struct rule *rulep; f = fopen(file, "rt"); if (!f) { syslog(LOG_ERR, "Cannot open map file: %s: %m", file); exit(EX_NOINPUT); } rulep = parserulefile(f); fclose(f); return rulep; } #endif /* * Rules for locking files; return 0 on success, -1 on failure */ static int lock_file(int fd, int lock_write) { #if defined(HAVE_FCNTL) && defined(HAVE_F_SETLK_DEFINITION) struct flock fl; fl.l_type = lock_write ? F_WRLCK : F_RDLCK; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; /* Whole file */ return fcntl(fd, F_SETLK, &fl); #elif defined(HAVE_LOCK_SH_DEFINITION) return flock(fd, lock_write ? LOCK_EX|LOCK_NB : LOCK_SH|LOCK_NB); #else return 0; /* Hope & pray... */ #endif } static void set_socket_nonblock(int fd, int flag) { int err; int flags; #if defined(HAVE_FCNTL) && defined(HAVE_O_NONBLOCK_DEFINITION) /* Posixly correct */ err = ((flags = fcntl(fd, F_GETFL, 0)) < 0) || (fcntl (fd, F_SETFL, flag ? flags | O_NONBLOCK : flags & ~O_NONBLOCK) < 0); #else flags = flag ? 1 : 0; err = (ioctl(fd, FIONBIO, &flags) < 0); #endif if (err) { syslog(LOG_ERR, "Cannot set nonblock flag on socket: %m"); exit(EX_OSERR); } } static void pmtu_discovery_off(int fd) { #if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT) int pmtu = IP_PMTUDISC_DONT; setsockopt(fd, IPPROTO_IP, IP_MTU_DISCOVER, &pmtu, sizeof(pmtu)); #endif } /* * Receive packet with synchronous timeout; timeout is adjusted * to account for time spent waiting. */ static int recv_time(int s, void *rbuf, int len, unsigned int flags, unsigned long *timeout_us_p) { fd_set fdset; struct timeval tmv, t0, t1; int rv, err; unsigned long timeout_us = *timeout_us_p; unsigned long timeout_left, dt; gettimeofday(&t0, NULL); timeout_left = timeout_us; for (;;) { FD_ZERO(&fdset); FD_SET(s, &fdset); do { tmv.tv_sec = timeout_left / 1000000; tmv.tv_usec = timeout_left % 1000000; rv = select(s + 1, &fdset, NULL, NULL, &tmv); err = errno; gettimeofday(&t1, NULL); dt = (t1.tv_sec - t0.tv_sec) * 1000000 + (t1.tv_usec - t0.tv_usec); *timeout_us_p = timeout_left = (dt >= timeout_us) ? 1 : (timeout_us - dt); } while (rv == -1 && err == EINTR); if (rv == 0) { timer(0); /* Should not return */ return -1; } set_socket_nonblock(s, 1); rv = recv(s, rbuf, len, flags); err = errno; set_socket_nonblock(s, 0); if (rv < 0) { if (E_WOULD_BLOCK(err) || err == EINTR) { continue; /* Once again, with feeling... */ } else { errno = err; return rv; } } else { return rv; } } } static int split_port(char **ap, char **pp) { char *a, *p; int ret = AF_UNSPEC; a = *ap; #ifdef HAVE_IPV6 if (is_numeric_ipv6(a)) { if (*a++ != '[') return -1; *ap = a; p = strrchr(a, ']'); if (!p) return -1; *p++ = 0; a = p; ret = AF_INET6; p = strrchr(a, ':'); if (p) *p++ = 0; } else #endif { struct in_addr in; p = strrchr(a, ':'); if (p) *p++ = 0; if (inet_aton(a, &in)) ret = AF_INET; } *pp = p; return ret; } enum long_only_options { OPT_VERBOSITY = 256, }; static struct option long_options[] = { { "ipv4", 0, NULL, '4' }, { "ipv6", 0, NULL, '6' }, { "create", 0, NULL, 'c' }, { "secure", 0, NULL, 's' }, { "permissive", 0, NULL, 'p' }, { "verbose", 0, NULL, 'v' }, { "verbosity", 1, NULL, OPT_VERBOSITY }, { "version", 0, NULL, 'V' }, { "listen", 0, NULL, 'l' }, { "foreground", 0, NULL, 'L' }, { "address", 1, NULL, 'a' }, { "blocksize", 1, NULL, 'B' }, { "user", 1, NULL, 'u' }, { "umask", 1, NULL, 'U' }, { "refuse", 1, NULL, 'r' }, { "timeout", 1, NULL, 't' }, { "retransmit", 1, NULL, 'T' }, { "port-range", 1, NULL, 'R' }, { "map-file", 1, NULL, 'm' }, { "pidfile", 1, NULL, 'P' }, { NULL, 0, NULL, 0 } }; static const char short_options[] = "46cspvVlLa:B:u:U:r:t:T:R:m:P:"; int main(int argc, char **argv) { struct tftphdr *tp; struct passwd *pw; struct options *opt; union sock_addr myaddr; struct sockaddr_in bindaddr4; #ifdef HAVE_IPV6 struct sockaddr_in6 bindaddr6; int force_ipv6 = 0; #endif int n; int fd = -1; int fd4 = -1; int fd6 = -1; int fdmax = 0; int standalone = 0; /* Standalone (listen) mode */ int nodaemon = 0; /* Do not detach process */ char *address = NULL; /* Address to listen to */ pid_t pid; mode_t my_umask = 0; int spec_umask = 0; int c; int setrv; int waittime = 900; /* Default time to wait for a connect */ const char *user = "nobody"; /* Default user */ char *p, *ep; #ifdef WITH_REGEX char *rewrite_file = NULL; #endif const char *pidfile = NULL; u_short tp_opcode; /* basename() is way too much of a pain from a portability standpoint */ p = strrchr(argv[0], '/'); tftpd_progname = (p && p[1]) ? p + 1 : argv[0]; openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); srand(time(NULL) ^ getpid()); while ((c = getopt_long(argc, argv, short_options, long_options, NULL)) != -1) switch (c) { case '4': ai_fam = AF_INET; break; #ifdef HAVE_IPV6 case '6': ai_fam = AF_INET6; force_ipv6 = 1; break; #endif case 'c': cancreate = 1; break; case 's': secure = 1; break; case 'p': unixperms = 1; break; case 'l': standalone = 1; break; case 'L': standalone = 1; nodaemon = 1; break; case 'a': address = optarg; break; case 't': waittime = atoi(optarg); break; case 'B': { char *vp; max_blksize = (unsigned int)strtoul(optarg, &vp, 10); if (max_blksize < 512 || max_blksize > MAX_SEGSIZE || *vp) { syslog(LOG_ERR, "Bad maximum blocksize value (range 512-%d): %s", MAX_SEGSIZE, optarg); exit(EX_USAGE); } } break; case 'T': { char *vp; unsigned long tov = strtoul(optarg, &vp, 10); if (tov < 10000UL || tov > 255000000UL || *vp) { syslog(LOG_ERR, "Bad timeout value: %s", optarg); exit(EX_USAGE); } rexmtval = timeout = tov; maxtimeout = rexmtval * TIMEOUT_LIMIT; } break; case 'R': { if (sscanf(optarg, "%u:%u", &portrange_from, &portrange_to) != 2 || portrange_from > portrange_to || portrange_to >= 65535) { syslog(LOG_ERR, "Bad port range: %s", optarg); exit(EX_USAGE); } portrange = 1; } break; case 'u': user = optarg; break; case 'U': my_umask = strtoul(optarg, &ep, 8); if (*ep) { syslog(LOG_ERR, "Invalid umask: %s", optarg); exit(EX_USAGE); } spec_umask = 1; break; case 'r': for (opt = options; opt->o_opt; opt++) { if (!strcasecmp(optarg, opt->o_opt)) { opt->o_opt = ""; /* Don't support this option */ break; } } if (!opt->o_opt) { syslog(LOG_ERR, "Unknown option: %s", optarg); exit(EX_USAGE); } break; #ifdef WITH_REGEX case 'm': if (rewrite_file) { syslog(LOG_ERR, "Multiple -m options"); exit(EX_USAGE); } rewrite_file = optarg; break; #endif case 'v': verbosity++; break; case OPT_VERBOSITY: verbosity = atoi(optarg); break; case 'V': /* Print configuration to stdout and exit */ printf("%s\n", TFTPD_CONFIG_STR); exit(0); break; case 'P': pidfile = optarg; break; default: syslog(LOG_ERR, "Unknown option: '%c'", optopt); break; } dirs = xmalloc((argc - optind + 1) * sizeof(char *)); for (ndirs = 0; optind != argc; optind++) dirs[ndirs++] = argv[optind]; dirs[ndirs] = NULL; if (secure) { if (ndirs == 0) { syslog(LOG_ERR, "no -s directory"); exit(EX_USAGE); } if (ndirs > 1) { syslog(LOG_ERR, "too many -s directories"); exit(EX_USAGE); } if (chdir(dirs[0])) { syslog(LOG_ERR, "%s: %m", dirs[0]); exit(EX_NOINPUT); } } pw = getpwnam(user); if (!pw) { syslog(LOG_ERR, "no user %s: %m", user); exit(EX_NOUSER); } #ifdef WITH_REGEX if (rewrite_file) rewrite_rules = read_remap_rules(rewrite_file); #endif if (pidfile && !standalone) { syslog(LOG_WARNING, "not in standalone mode, ignoring pid file"); pidfile = NULL; } /* If we're running standalone, set up the input port */ if (standalone) { FILE *pf; #ifdef HAVE_IPV6 if (ai_fam != AF_INET6) { #endif fd4 = socket(AF_INET, SOCK_DGRAM, 0); if (fd4 < 0) { syslog(LOG_ERR, "cannot open IPv4 socket: %m"); exit(EX_OSERR); } #ifndef __CYGWIN__ set_socket_nonblock(fd4, 1); #endif memset(&bindaddr4, 0, sizeof bindaddr4); bindaddr4.sin_family = AF_INET; bindaddr4.sin_addr.s_addr = INADDR_ANY; bindaddr4.sin_port = htons(IPPORT_TFTP); #ifdef HAVE_IPV6 } if (ai_fam != AF_INET) { fd6 = socket(AF_INET6, SOCK_DGRAM, 0); if (fd6 < 0) { if (fd4 < 0) { syslog(LOG_ERR, "cannot open IPv6 socket: %m"); exit(EX_OSERR); } else { syslog(LOG_ERR, "cannot open IPv6 socket, disable IPv6: %m"); } } #ifndef __CYGWIN__ set_socket_nonblock(fd6, 1); #endif memset(&bindaddr6, 0, sizeof bindaddr6); bindaddr6.sin6_family = AF_INET6; bindaddr6.sin6_port = htons(IPPORT_TFTP); } #endif if (address) { char *portptr = NULL, *eportptr; int err; struct servent *servent; unsigned long port; address = tfstrdup(address); err = split_port(&address, &portptr); switch (err) { case AF_INET: #ifdef HAVE_IPV6 if (fd6 >= 0) { close(fd6); fd6 = -1; if (ai_fam == AF_INET6) { syslog(LOG_ERR, "Address %s is not in address family AF_INET6", address); exit(EX_USAGE); } ai_fam = AF_INET; } break; case AF_INET6: if (fd4 >= 0) { close(fd4); fd4 = -1; if (ai_fam == AF_INET) { syslog(LOG_ERR, "Address %s is not in address family AF_INET", address); exit(EX_USAGE); } ai_fam = AF_INET6; } break; #endif case AF_UNSPEC: break; default: syslog(LOG_ERR, "Numeric IPv6 addresses need to be enclosed in []"); exit(EX_USAGE); } if (!portptr) portptr = (char *)"tftp"; if (*address) { if (fd4 >= 0) { bindaddr4.sin_family = AF_INET; err = set_sock_addr(address, (union sock_addr *)&bindaddr4, NULL); if (err) { syslog(LOG_ERR, "cannot resolve local IPv4 bind address: %s, %s", address, gai_strerror(err)); exit(EX_NOINPUT); } } #ifdef HAVE_IPV6 if (fd6 >= 0) { bindaddr6.sin6_family = AF_INET6; err = set_sock_addr(address, (union sock_addr *)&bindaddr6, NULL); if (err) { if (fd4 >= 0) { syslog(LOG_ERR, "cannot resolve local IPv6 bind address: %s" "(%s); using IPv4 only", address, gai_strerror(err)); close(fd6); fd6 = -1; } else { syslog(LOG_ERR, "cannot resolve local IPv6 bind address: %s" "(%s)", address, gai_strerror(err)); exit(EX_NOINPUT); } } } #endif } else { /* Default to using INADDR_ANY */ } if (portptr && *portptr) { servent = getservbyname(portptr, "udp"); if (servent) { if (fd4 >= 0) bindaddr4.sin_port = servent->s_port; #ifdef HAVE_IPV6 if (fd6 >= 0) bindaddr6.sin6_port = servent->s_port; #endif } else if ((port = strtoul(portptr, &eportptr, 0)) && !*eportptr) { if (fd4 >= 0) bindaddr4.sin_port = htons(port); #ifdef HAVE_IPV6 if (fd6 >= 0) bindaddr6.sin6_port = htons(port); #endif } else if (!strcmp(portptr, "tftp")) { /* It's TFTP, we're OK */ } else { syslog(LOG_ERR, "cannot resolve local bind port: %s", portptr); exit(EX_NOINPUT); } } } if (fd4 >= 0) { if (bind(fd4, (struct sockaddr *)&bindaddr4, sizeof(bindaddr4)) < 0) { syslog(LOG_ERR, "cannot bind to local IPv4 socket: %m"); exit(EX_OSERR); } } #ifdef HAVE_IPV6 if (fd6 >= 0) { #if defined(IPV6_V6ONLY) int on = 1; if (fd4 >= 0 || force_ipv6) if (setsockopt(fd6, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&on, sizeof(on))) syslog(LOG_ERR, "cannot setsockopt IPV6_V6ONLY %m"); #endif if (bind(fd6, (struct sockaddr *)&bindaddr6, sizeof(bindaddr6)) < 0) { if (fd4 >= 0) { syslog(LOG_ERR, "cannot bind to local IPv6 socket," "IPv6 disabled: %m"); close(fd6); fd6 = -1; } else { syslog(LOG_ERR, "cannot bind to local IPv6 socket: %m"); exit(EX_OSERR); } } } #endif /* Daemonize this process */ /* Note: when running in secure mode (-s), we must not chdir, since we are already in the proper directory. */ if (!nodaemon && daemon(secure, 0) < 0) { syslog(LOG_ERR, "cannot daemonize: %m"); exit(EX_OSERR); } set_signal(SIGTERM, handle_exit, 0); set_signal(SIGINT, handle_exit, 0); if (pidfile) { pf = fopen (pidfile, "w"); if (!pf) { syslog(LOG_ERR, "cannot open pid file '%s' for writing: %m", pidfile); pidfile = NULL; } else { if (fprintf(pf, "%d\n", getpid()) < 0) syslog(LOG_ERR, "error writing pid file '%s': %m", pidfile); if (fclose(pf)) syslog(LOG_ERR, "error closing pid file '%s': %m", pidfile); } } if (fd6 > fd4) fdmax = fd6; else fdmax = fd4; } else { /* 0 is our socket descriptor */ close(1); close(2); fd = 0; fdmax = 0; /* Note: on Cygwin, select() on a nonblocking socket becomes a nonblocking select. */ #ifndef __CYGWIN__ set_socket_nonblock(fd, 1); #endif } /* Disable path MTU discovery */ pmtu_discovery_off(fd); /* This means we don't want to wait() for children */ #ifdef SA_NOCLDWAIT set_signal(SIGCHLD, SIG_IGN, SA_NOCLDSTOP | SA_NOCLDWAIT); #else set_signal(SIGCHLD, SIG_IGN, SA_NOCLDSTOP); #endif /* Take SIGHUP and use it to set a variable. This is polled synchronously to make sure we don't lose packets as a result. */ set_signal(SIGHUP, handle_sighup, 0); if (spec_umask || !unixperms) umask(my_umask); while (1) { fd_set readset; struct timeval tv_waittime; int rv; if (exit_signal) { /* happens in standalone mode only */ if (pidfile && unlink(pidfile)) { syslog(LOG_WARNING, "error removing pid file '%s': %m", pidfile); exit(EX_OSERR); } else { exit(0); } } if (caught_sighup) { caught_sighup = 0; if (standalone) { #ifdef WITH_REGEX if (rewrite_file) { freerules(rewrite_rules); rewrite_rules = read_remap_rules(rewrite_file); } #endif } else { /* Return to inetd for respawn */ exit(0); } } FD_ZERO(&readset); if (standalone) { if (fd4 >= 0) { FD_SET(fd4, &readset); #ifdef __CYGWIN__ /* On Cygwin, select() on a nonblocking socket returns immediately, with a rv of 0! */ set_socket_nonblock(fd4, 0); #endif } if (fd6 >= 0) { FD_SET(fd6, &readset); #ifdef __CYGWIN__ /* On Cygwin, select() on a nonblocking socket returns immediately, with a rv of 0! */ set_socket_nonblock(fd6, 0); #endif } } else { /* fd always 0 */ fd = 0; #ifdef __CYGWIN__ /* On Cygwin, select() on a nonblocking socket returns immediately, with a rv of 0! */ set_socket_nonblock(fd, 0); #endif FD_SET(fd, &readset); } tv_waittime.tv_sec = waittime; tv_waittime.tv_usec = 0; /* Never time out if we're in standalone mode */ rv = select(fdmax + 1, &readset, NULL, NULL, standalone ? NULL : &tv_waittime); if (rv == -1 && errno == EINTR) continue; /* Signal caught, reloop */ if (rv == -1) { syslog(LOG_ERR, "select loop: %m"); exit(EX_IOERR); } else if (rv == 0) { exit(0); /* Timeout, return to inetd */ } if (standalone) { if ((fd4 >= 0) && FD_ISSET(fd4, &readset)) fd = fd4; else if ((fd6 >= 0) && FD_ISSET(fd6, &readset)) fd = fd6; else /* not in set ??? */ continue; } #ifdef __CYGWIN__ /* On Cygwin, select() on a nonblocking socket returns immediately, with a rv of 0! */ set_socket_nonblock(fd, 0); #endif n = myrecvfrom(fd, buf, sizeof(buf), 0, &from, &myaddr); if (n < 0) { if (E_WOULD_BLOCK(errno) || errno == EINTR) { continue; /* Again, from the top */ } else { syslog(LOG_ERR, "recvfrom: %m"); exit(EX_IOERR); } } #ifdef HAVE_IPV6 if ((from.sa.sa_family != AF_INET) && (from.sa.sa_family != AF_INET6)) { syslog(LOG_ERR, "received address was not AF_INET/AF_INET6," " please check your inetd config"); #else if (from.sa.sa_family != AF_INET) { syslog(LOG_ERR, "received address was not AF_INET," " please check your inetd config"); #endif exit(EX_PROTOCOL); } if (standalone) { if ((from.sa.sa_family == AF_INET) && (myaddr.si.sin_addr.s_addr == INADDR_ANY)) { /* myrecvfrom() didn't capture the source address; but we might have bound to a specific address, if so we should use it */ memcpy(SOCKADDR_P(&myaddr), &bindaddr4.sin_addr, sizeof(bindaddr4.sin_addr)); #ifdef HAVE_IPV6 } else if ((from.sa.sa_family == AF_INET6) && IN6_IS_ADDR_UNSPECIFIED((struct in6_addr *) SOCKADDR_P(&myaddr))) { memcpy(SOCKADDR_P(&myaddr), &bindaddr6.sin6_addr, sizeof(bindaddr6.sin6_addr)); #endif } } /* * Now that we have read the request packet from the UDP * socket, we fork and go back to listening to the socket. */ pid = fork(); if (pid < 0) { syslog(LOG_ERR, "fork: %m"); exit(EX_OSERR); /* Return to inetd, just in case */ } else if (pid == 0) break; /* Child exit, parent loop */ } /* Child process: handle the actual request here */ /* Ignore SIGHUP */ set_signal(SIGHUP, SIG_IGN, 0); /* Make sure the log socket is still connected. This has to be done before the chroot, while /dev/log is still accessible. When not running standalone, there is little chance that the syslog daemon gets restarted by the time we get here. */ if (secure && standalone) { closelog(); openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); } #ifdef HAVE_TCPWRAPPERS /* Verify if this was a legal request for us. This has to be done before the chroot, while /etc is still accessible. */ request_init(&wrap_request, RQ_DAEMON, tftpd_progname, RQ_FILE, fd, RQ_CLIENT_SIN, &from, RQ_SERVER_SIN, &myaddr, 0); sock_methods(&wrap_request); tmp_p = (char *)inet_ntop(myaddr.sa.sa_family, SOCKADDR_P(&myaddr), tmpbuf, INET6_ADDRSTRLEN); if (!tmp_p) { tmp_p = tmpbuf; strcpy(tmpbuf, "???"); } if (hosts_access(&wrap_request) == 0) { if (deny_severity != -1) syslog(deny_severity, "connection refused from %s", tmp_p); exit(EX_NOPERM); /* Access denied */ } else if (allow_severity != -1) { syslog(allow_severity, "connect from %s", tmp_p); } #endif /* Close file descriptors we don't need */ close(fd); /* Get a socket. This has to be done before the chroot(), since some systems require access to /dev to create a socket. */ peer = socket(myaddr.sa.sa_family, SOCK_DGRAM, 0); if (peer < 0) { syslog(LOG_ERR, "socket: %m"); exit(EX_IOERR); } /* Set up the supplementary group access list if possible */ /* /etc/group still need to be accessible at this point */ #ifdef HAVE_INITGROUPS setrv = initgroups(user, pw->pw_gid); if (setrv) { syslog(LOG_ERR, "cannot set groups for user %s", user); exit(EX_OSERR); } #else #ifdef HAVE_SETGROUPS if (setgroups(0, NULL)) { syslog(LOG_ERR, "cannot clear group list"); } #endif #endif /* Chroot and drop privileges */ if (secure) { if (chroot(".")) { syslog(LOG_ERR, "chroot: %m"); exit(EX_OSERR); } #ifdef __CYGWIN__ chdir("/"); /* Cygwin chroot() bug workaround */ #endif } #ifdef HAVE_SETREGID setrv = setregid(pw->pw_gid, pw->pw_gid); #else setrv = setegid(pw->pw_gid) || setgid(pw->pw_gid); #endif #ifdef HAVE_SETREUID setrv = setrv || setreuid(pw->pw_uid, pw->pw_uid); #else /* Important: setuid() must come first */ setrv = setrv || setuid(pw->pw_uid) || (geteuid() != pw->pw_uid && seteuid(pw->pw_uid)); #endif if (setrv) { syslog(LOG_ERR, "cannot drop privileges: %m"); exit(EX_OSERR); } /* Process the request... */ if (pick_port_bind(peer, &myaddr, portrange_from, portrange_to) < 0) { syslog(LOG_ERR, "bind: %m"); exit(EX_IOERR); } if (connect(peer, &from.sa, SOCKLEN(&from)) < 0) { syslog(LOG_ERR, "connect: %m"); exit(EX_IOERR); } /* Disable path MTU discovery */ pmtu_discovery_off(peer); tp = (struct tftphdr *)buf; tp_opcode = ntohs(tp->th_opcode); if (tp_opcode == RRQ || tp_opcode == WRQ) tftp(tp, n); exit(0); } static char *rewrite_access(char *, int, int, const char **); static int validate_access(char *, int, const struct formats *, const char **); static void tftp_sendfile(const struct formats *, struct tftphdr *, int); static void tftp_recvfile(const struct formats *, struct tftphdr *, int); struct formats { const char *f_mode; char *(*f_rewrite) (char *, int, int, const char **); int (*f_validate) (char *, int, const struct formats *, const char **); void (*f_send) (const struct formats *, struct tftphdr *, int); void (*f_recv) (const struct formats *, struct tftphdr *, int); int f_convert; }; static const struct formats formats[] = { { "netascii", rewrite_access, validate_access, tftp_sendfile, tftp_recvfile, 1}, { "octet", rewrite_access, validate_access, tftp_sendfile, tftp_recvfile, 0}, { NULL, NULL, NULL, NULL, NULL, 0} }; /* * Handle initial connection protocol. */ int tftp(struct tftphdr *tp, int size) { char *cp, *end; int argn, ecode; const struct formats *pf = NULL; char *origfilename; char *filename, *mode = NULL; const char *errmsgptr; u_short tp_opcode = ntohs(tp->th_opcode); char *val = NULL, *opt = NULL; char *ap = ackbuf + 2; ((struct tftphdr *)ackbuf)->th_opcode = htons(OACK); origfilename = cp = (char *)&(tp->th_stuff); argn = 0; end = (char *)tp + size; while (cp < end && *cp) { do { cp++; } while (cp < end && *cp); if (*cp) { nak(EBADOP, "Request not null-terminated"); exit(0); } argn++; if (argn == 1) { mode = ++cp; } else if (argn == 2) { for (cp = mode; *cp; cp++) *cp = tolower(*cp); for (pf = formats; pf->f_mode; pf++) { if (!strcmp(pf->f_mode, mode)) break; } if (!pf->f_mode) { nak(EBADOP, "Unknown mode"); exit(0); } if (!(filename = (*pf->f_rewrite) (origfilename, tp_opcode, from.sa.sa_family, &errmsgptr))) { nak(EACCESS, errmsgptr); /* File denied by mapping rule */ exit(0); } if (verbosity >= 1) { tmp_p = (char *)inet_ntop(from.sa.sa_family, SOCKADDR_P(&from), tmpbuf, INET6_ADDRSTRLEN); if (!tmp_p) { tmp_p = tmpbuf; strcpy(tmpbuf, "???"); } if (filename == origfilename || !strcmp(filename, origfilename)) syslog(LOG_NOTICE, "%s from %s filename %s\n", tp_opcode == WRQ ? "WRQ" : "RRQ", tmp_p, filename); else syslog(LOG_NOTICE, "%s from %s filename %s remapped to %s\n", tp_opcode == WRQ ? "WRQ" : "RRQ", tmp_p, origfilename, filename); } ecode = (*pf->f_validate) (filename, tp_opcode, pf, &errmsgptr); if (ecode) { nak(ecode, errmsgptr); exit(0); } opt = ++cp; } else if (argn & 1) { val = ++cp; } else { do_opt(opt, val, &ap); opt = ++cp; } } if (!pf) { nak(EBADOP, "Missing mode"); exit(0); } if (ap != (ackbuf + 2)) { if (tp_opcode == WRQ) (*pf->f_recv) (pf, (struct tftphdr *)ackbuf, ap - ackbuf); else (*pf->f_send) (pf, (struct tftphdr *)ackbuf, ap - ackbuf); } else { if (tp_opcode == WRQ) (*pf->f_recv) (pf, NULL, 0); else (*pf->f_send) (pf, NULL, 0); } exit(0); /* Request completed */ } static int blksize_set; /* * Set a non-standard block size (c.f. RFC2348) */ static int set_blksize(uintmax_t *vp) { uintmax_t sz = *vp; if (blksize_set) return 0; if (sz < 8) return 0; else if (sz > max_blksize) sz = max_blksize; *vp = segsize = sz; blksize_set = 1; return 1; } /* * Set a power-of-two block size (nonstandard) */ static int set_blksize2(uintmax_t *vp) { uintmax_t sz = *vp; if (blksize_set) return 0; if (sz < 8) return (0); else if (sz > max_blksize) sz = max_blksize; else /* Convert to a power of two */ if (sz & (sz - 1)) { unsigned int sz1 = 1; /* Not a power of two - need to convert */ while (sz >>= 1) sz1 <<= 1; sz = sz1; } *vp = segsize = sz; blksize_set = 1; return 1; } /* * Set the block number rollover value */ static int set_rollover(uintmax_t *vp) { uintmax_t ro = *vp; if (ro > 65535) return 0; rollover_val = (uint16_t)ro; return 1; } /* * Return a file size (c.f. RFC2349) * For netascii mode, we don't know the size ahead of time; * so reject the option. */ static int set_tsize(uintmax_t *vp) { uintmax_t sz = *vp; if (!tsize_ok) return 0; if (sz == 0) sz = tsize; *vp = sz; return 1; } /* * Set the timeout (c.f. RFC2349). This is supposed * to be the (default) retransmission timeout, but being an * integer in seconds it seems a bit limited. */ static int set_timeout(uintmax_t *vp) { uintmax_t to = *vp; if (to < 1 || to > 255) return 0; rexmtval = timeout = to * 1000000UL; maxtimeout = rexmtval * TIMEOUT_LIMIT; return 1; } /* Similar, but in microseconds. We allow down to 10 ms. */ static int set_utimeout(uintmax_t *vp) { uintmax_t to = *vp; if (to < 10000UL || to > 255000000UL) return 0; rexmtval = timeout = to; maxtimeout = rexmtval * TIMEOUT_LIMIT; return 1; } /* * Conservative calculation for the size of a buffer which can hold an * arbitrary integer */ #define OPTBUFSIZE (sizeof(uintmax_t) * CHAR_BIT / 3 + 3) /* * Parse RFC2347 style options; we limit the arguments to positive * integers which matches all our current options. */ static void do_opt(const char *opt, const char *val, char **ap) { struct options *po; char retbuf[OPTBUFSIZE]; char *p = *ap; size_t optlen, retlen; char *vend; uintmax_t v; /* Global option-parsing variables initialization */ blksize_set = 0; if (!*opt || !*val) return; errno = 0; v = strtoumax(val, &vend, 10); if (*vend || errno == ERANGE) return; for (po = options; po->o_opt; po++) if (!strcasecmp(po->o_opt, opt)) { if (po->o_fnc(&v)) { optlen = strlen(opt); retlen = sprintf(retbuf, "%"PRIuMAX, v); if (p + optlen + retlen + 2 >= ackbuf + sizeof(ackbuf)) { nak(EOPTNEG, "Insufficient space for options"); exit(0); } memcpy(p, opt, optlen+1); p += optlen+1; memcpy(p, retbuf, retlen+1); p += retlen+1; } else { nak(EOPTNEG, "Unsupported option(s) requested"); exit(0); } break; } *ap = p; } #ifdef WITH_REGEX /* * This is called by the remap engine when it encounters macros such * as \i. It should write the output in "output" if non-NULL, and * return the length of the output (generated or not). * * Return -1 on failure. */ static int rewrite_macros(char macro, char *output) { char *p, tb[INET6_ADDRSTRLEN]; int l=0; switch (macro) { case 'i': p = (char *)inet_ntop(from.sa.sa_family, SOCKADDR_P(&from), tb, INET6_ADDRSTRLEN); if (output && p) strcpy(output, p); if (!p) return 0; else return strlen(p); case 'x': if (output) { if (from.sa.sa_family == AF_INET) { sprintf(output, "%08lX", (unsigned long)ntohl(from.si.sin_addr.s_addr)); l = 8; #ifdef HAVE_IPV6 } else { unsigned char *c = (unsigned char *)SOCKADDR_P(&from); p = tb; for (l = 0; l < 16; l++) { sprintf(p, "%02X", *c); c++; p += 2; } strcpy(output, tb); l = strlen(tb); #endif } } return l; default: return -1; } } /* * Modify the filename, if applicable. If it returns NULL, deny the access. */ static char *rewrite_access(char *filename, int mode, int af, const char **msg) { if (rewrite_rules) { char *newname = rewrite_string(filename, rewrite_rules, mode != RRQ ? 'P' : 'G', af, rewrite_macros, msg); filename = newname; } return filename; } #else static char *rewrite_access(char *filename, int mode, int af, const char **msg) { (void)mode; /* Avoid warning */ (void)msg; (void)af; return filename; } #endif static FILE *file; /* * Validate file access. Since we * have no uid or gid, for now require * file to exist and be publicly * readable/writable, unless -p specified. * If we were invoked with arguments * from inetd then the file must also be * in one of the given directory prefixes. * Note also, full path name must be * given as we have no login directory. */ static int validate_access(char *filename, int mode, const struct formats *pf, const char **errmsg) { struct stat stbuf; int i, len; int fd, wmode, rmode; char *cp; const char **dirp; char stdio_mode[3]; tsize_ok = 0; *errmsg = NULL; if (!secure) { if (*filename != '/') { *errmsg = "Only absolute filenames allowed"; return (EACCESS); } /* * prevent tricksters from getting around the directory * restrictions */ len = strlen(filename); for (i = 1; i < len - 3; i++) { cp = filename + i; if (*cp == '.' && memcmp(cp - 1, "/../", 4) == 0) { *errmsg = "Reverse path not allowed"; return (EACCESS); } } for (dirp = dirs; *dirp; dirp++) if (strncmp(filename, *dirp, strlen(*dirp)) == 0) break; if (*dirp == 0 && dirp != dirs) { *errmsg = "Forbidden directory"; return (EACCESS); } } /* * We use different a different permissions scheme if `cancreate' is * set. */ wmode = O_WRONLY | (cancreate ? O_CREAT : 0) | (pf->f_convert ? O_TEXT : O_BINARY); rmode = O_RDONLY | (pf->f_convert ? O_TEXT : O_BINARY); #ifndef HAVE_FTRUNCATE wmode |= O_TRUNC; /* This really sucks on a dupe */ #endif fd = open(filename, mode == RRQ ? rmode : wmode, 0666); if (fd < 0) { switch (errno) { case ENOENT: case ENOTDIR: return ENOTFOUND; case ENOSPC: return ENOSPACE; case EEXIST: return EEXISTS; default: return errno + 100; } } if (fstat(fd, &stbuf) < 0) exit(EX_OSERR); /* This shouldn't happen */ /* A duplicate RRQ or (worse!) WRQ packet could really cause havoc... */ if (lock_file(fd, mode != RRQ)) exit(0); if (mode == RRQ) { if (!unixperms && (stbuf.st_mode & (S_IREAD >> 6)) == 0) { *errmsg = "File must have global read permissions"; return (EACCESS); } tsize = stbuf.st_size; /* We don't know the tsize if conversion is needed */ tsize_ok = !pf->f_convert; } else { if (!unixperms) { if ((stbuf.st_mode & (S_IWRITE >> 6)) == 0) { *errmsg = "File must have global write permissions"; return (EACCESS); } } #ifdef HAVE_FTRUNCATE /* We didn't get to truncate the file at open() time */ if (ftruncate(fd, (off_t) 0)) { *errmsg = "Cannot reset file size"; return (EACCESS); } #endif tsize = 0; tsize_ok = 1; } stdio_mode[0] = (mode == RRQ) ? 'r' : 'w'; stdio_mode[1] = (pf->f_convert) ? 't' : 'b'; stdio_mode[2] = '\0'; file = fdopen(fd, stdio_mode); if (file == NULL) exit(EX_OSERR); /* Internal error */ return (0); } /* * Send the requested file. */ static void tftp_sendfile(const struct formats *pf, struct tftphdr *oap, int oacklen) { struct tftphdr *dp; struct tftphdr *ap; /* ack packet */ static u_short block = 1; /* Static to avoid longjmp funnies */ u_short ap_opcode, ap_block; unsigned long r_timeout; int size, n; if (oap) { timeout = rexmtval; (void)sigsetjmp(timeoutbuf, 1); oack: r_timeout = timeout; if (send(peer, oap, oacklen, 0) != oacklen) { syslog(LOG_WARNING, "tftpd: oack: %m\n"); goto abort; } for (;;) { n = recv_time(peer, ackbuf, sizeof(ackbuf), 0, &r_timeout); if (n < 0) { syslog(LOG_WARNING, "tftpd: read: %m\n"); goto abort; } ap = (struct tftphdr *)ackbuf; ap_opcode = ntohs((u_short) ap->th_opcode); ap_block = ntohs((u_short) ap->th_block); if (ap_opcode == ERROR) { syslog(LOG_WARNING, "tftp: client does not accept options\n"); goto abort; } if (ap_opcode == ACK) { if (ap_block == 0) break; /* Resynchronize with the other side */ (void)synchnet(peer); goto oack; } } } dp = r_init(); do { size = readit(file, &dp, pf->f_convert); if (size < 0) { nak(errno + 100, NULL); goto abort; } dp->th_opcode = htons((u_short) DATA); dp->th_block = htons((u_short) block); timeout = rexmtval; (void)sigsetjmp(timeoutbuf, 1); r_timeout = timeout; if (send(peer, dp, size + 4, 0) != size + 4) { syslog(LOG_WARNING, "tftpd: write: %m"); goto abort; } read_ahead(file, pf->f_convert); for (;;) { n = recv_time(peer, ackbuf, sizeof(ackbuf), 0, &r_timeout); if (n < 0) { syslog(LOG_WARNING, "tftpd: read(ack): %m"); goto abort; } ap = (struct tftphdr *)ackbuf; ap_opcode = ntohs((u_short) ap->th_opcode); ap_block = ntohs((u_short) ap->th_block); if (ap_opcode == ERROR) goto abort; if (ap_opcode == ACK) { if (ap_block == block) { break; } /* Re-synchronize with the other side */ (void)synchnet(peer); /* * RFC1129/RFC1350: We MUST NOT re-send the DATA * packet in response to an invalid ACK. Doing so * would cause the Sorcerer's Apprentice bug. */ } } if (!++block) block = rollover_val; } while (size == segsize); abort: (void)fclose(file); } /* * Receive a file. */ static void tftp_recvfile(const struct formats *pf, struct tftphdr *oap, int oacklen) { struct tftphdr *dp; int n, size; /* These are "static" to avoid longjmp funnies */ static struct tftphdr *ap; /* ack buffer */ static u_short block = 0; static int acksize; u_short dp_opcode, dp_block; unsigned long r_timeout; dp = w_init(); do { timeout = rexmtval; if (!block && oap) { ap = (struct tftphdr *)ackbuf; acksize = oacklen; } else { ap = (struct tftphdr *)ackbuf; ap->th_opcode = htons((u_short) ACK); ap->th_block = htons((u_short) block); acksize = 4; /* If we're sending a regular ACK, that means we have successfully * sent the OACK. Clear oap so that we won't try to send another * OACK when the block number wraps back to 0. */ oap = NULL; } if (!++block) block = rollover_val; (void)sigsetjmp(timeoutbuf, 1); send_ack: r_timeout = timeout; if (send(peer, ackbuf, acksize, 0) != acksize) { syslog(LOG_WARNING, "tftpd: write(ack): %m"); goto abort; } write_behind(file, pf->f_convert); for (;;) { n = recv_time(peer, dp, PKTSIZE, 0, &r_timeout); if (n < 0) { /* really? */ syslog(LOG_WARNING, "tftpd: read: %m"); goto abort; } dp_opcode = ntohs((u_short) dp->th_opcode); dp_block = ntohs((u_short) dp->th_block); if (dp_opcode == ERROR) goto abort; if (dp_opcode == DATA) { if (dp_block == block) { break; /* normal */ } /* Re-synchronize with the other side */ (void)synchnet(peer); if (dp_block == (block - 1)) goto send_ack; /* rexmit */ } } /* size = write(file, dp->th_data, n - 4); */ size = writeit(file, &dp, n - 4, pf->f_convert); if (size != (n - 4)) { /* ahem */ if (size < 0) nak(errno + 100, NULL); else nak(ENOSPACE, NULL); goto abort; } } while (size == segsize); write_behind(file, pf->f_convert); (void)fclose(file); /* close data file */ ap->th_opcode = htons((u_short) ACK); /* send the "final" ack */ ap->th_block = htons((u_short) (block)); (void)send(peer, ackbuf, 4, 0); timeout_quit = 1; /* just quit on timeout */ n = recv_time(peer, buf, sizeof(buf), 0, &timeout); /* normally times out and quits */ timeout_quit = 0; if (n >= 4 && /* if read some data */ dp_opcode == DATA && /* and got a data block */ block == dp_block) { /* then my last ack was lost */ (void)send(peer, ackbuf, 4, 0); /* resend final ack */ } abort: return; } static const char *const errmsgs[] = { "Undefined error code", /* 0 - EUNDEF */ "File not found", /* 1 - ENOTFOUND */ "Access denied", /* 2 - EACCESS */ "Disk full or allocation exceeded", /* 3 - ENOSPACE */ "Illegal TFTP operation", /* 4 - EBADOP */ "Unknown transfer ID", /* 5 - EBADID */ "File already exists", /* 6 - EEXISTS */ "No such user", /* 7 - ENOUSER */ "Failure to negotiate RFC2347 options" /* 8 - EOPTNEG */ }; #define ERR_CNT (sizeof(errmsgs)/sizeof(const char *)) /* * Send a nak packet (error message). * Error code passed in is one of the * standard TFTP codes, or a UNIX errno * offset by 100. */ static void nak(int error, const char *msg) { struct tftphdr *tp; int length; tp = (struct tftphdr *)buf; tp->th_opcode = htons((u_short) ERROR); if (error >= 100) { /* This is a Unix errno+100 */ if (!msg) msg = strerror(error - 100); error = EUNDEF; } else { if ((unsigned)error >= ERR_CNT) error = EUNDEF; if (!msg) msg = errmsgs[error]; } tp->th_code = htons((u_short) error); length = strlen(msg) + 1; memcpy(tp->th_msg, msg, length); length += 4; /* Add space for header */ if (verbosity >= 2) { tmp_p = (char *)inet_ntop(from.sa.sa_family, SOCKADDR_P(&from), tmpbuf, INET6_ADDRSTRLEN); if (!tmp_p) { tmp_p = tmpbuf; strcpy(tmpbuf, "???"); } syslog(LOG_INFO, "sending NAK (%d, %s) to %s", error, tp->th_msg, tmp_p); } if (send(peer, buf, length, 0) != length) syslog(LOG_WARNING, "nak: %m"); } tftp-hpa/tftpd/tftpd.h0000664000000000000000000000120013573457576012123 0ustar /* ----------------------------------------------------------------------- * * * Copyright 2001 H. Peter Anvin - All Rights Reserved * * This program is free software available under the same license * as the "OpenBSD" operating system, distributed at * http://www.openbsd.org/. * * ----------------------------------------------------------------------- */ /* * tftpd.h * * Prototypes for various functions that are part of the tftpd server. */ #ifndef TFTPD_TFTPD_H #define TFTPD_TFTPD_H void set_signal(int, void (*)(int), int); void *tfmalloc(size_t); char *tfstrdup(const char *); extern int verbosity; #endif tftp-hpa/version0000664000000000000000000000000413573457576011121 0ustar 5.2