From ba8f85b49c38af7bc2a9acdef5dcde2de008d25e Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 12 Jul 2008 05:00:28 +0000 Subject: [PATCH 01/13] Flatten bind9 vendor work area --- contrib/bind9/CHANGES => CHANGES | 0 contrib/bind9/COPYRIGHT => COPYRIGHT | 0 contrib/bind9/FAQ => FAQ | 0 contrib/bind9/FAQ.xml => FAQ.xml | 0 contrib/bind9/Makefile.in => Makefile.in | 0 contrib/bind9/README => README | 0 contrib/bind9/README.idnkit => README.idnkit | 0 contrib/bind9/acconfig.h => acconfig.h | 0 {contrib/bind9/bin => bin}/Makefile.in | 0 {contrib/bind9/bin => bin}/check/Makefile.in | 0 {contrib/bind9/bin => bin}/check/check-tool.c | 0 {contrib/bind9/bin => bin}/check/check-tool.h | 0 {contrib/bind9/bin => bin}/check/named-checkconf.8 | 0 {contrib/bind9/bin => bin}/check/named-checkconf.c | 0 .../bind9/bin => bin}/check/named-checkconf.docbook | 0 .../bind9/bin => bin}/check/named-checkconf.html | 0 {contrib/bind9/bin => bin}/check/named-checkzone.8 | 0 {contrib/bind9/bin => bin}/check/named-checkzone.c | 0 .../bind9/bin => bin}/check/named-checkzone.docbook | 0 .../bind9/bin => bin}/check/named-checkzone.html | 0 {contrib/bind9/bin => bin}/dig/Makefile.in | 0 {contrib/bind9/bin => bin}/dig/dig.1 | 0 {contrib/bind9/bin => bin}/dig/dig.c | 0 {contrib/bind9/bin => bin}/dig/dig.docbook | 0 {contrib/bind9/bin => bin}/dig/dig.html | 0 {contrib/bind9/bin => bin}/dig/dighost.c | 0 {contrib/bind9/bin => bin}/dig/host.1 | 0 {contrib/bind9/bin => bin}/dig/host.c | 0 {contrib/bind9/bin => bin}/dig/host.docbook | 0 {contrib/bind9/bin => bin}/dig/host.html | 0 {contrib/bind9/bin => bin}/dig/include/dig/dig.h | 0 {contrib/bind9/bin => bin}/dig/nslookup.1 | 0 {contrib/bind9/bin => bin}/dig/nslookup.c | 0 {contrib/bind9/bin => bin}/dig/nslookup.docbook | 0 {contrib/bind9/bin => bin}/dig/nslookup.html | 0 {contrib/bind9/bin => bin}/dnssec/Makefile.in | 0 {contrib/bind9/bin => bin}/dnssec/dnssec-keygen.8 | 0 {contrib/bind9/bin => bin}/dnssec/dnssec-keygen.c | 0 .../bind9/bin => bin}/dnssec/dnssec-keygen.docbook | 0 .../bind9/bin => bin}/dnssec/dnssec-keygen.html | 0 {contrib/bind9/bin => bin}/dnssec/dnssec-signzone.8 | 0 {contrib/bind9/bin => bin}/dnssec/dnssec-signzone.c | 0 .../bin => bin}/dnssec/dnssec-signzone.docbook | 0 .../bind9/bin => bin}/dnssec/dnssec-signzone.html | 0 {contrib/bind9/bin => bin}/dnssec/dnssectool.c | 0 {contrib/bind9/bin => bin}/dnssec/dnssectool.h | 0 {contrib/bind9/bin => bin}/named/Makefile.in | 0 {contrib/bind9/bin => bin}/named/builtin.c | 0 {contrib/bind9/bin => bin}/named/client.c | 0 {contrib/bind9/bin => bin}/named/config.c | 0 {contrib/bind9/bin => bin}/named/control.c | 0 {contrib/bind9/bin => bin}/named/controlconf.c | 0 .../bind9/bin => bin}/named/include/named/builtin.h | 0 .../bind9/bin => bin}/named/include/named/client.h | 0 .../bind9/bin => bin}/named/include/named/config.h | 0 .../bind9/bin => bin}/named/include/named/control.h | 0 .../bind9/bin => bin}/named/include/named/globals.h | 0 .../bin => bin}/named/include/named/interfacemgr.h | 0 .../bin => bin}/named/include/named/listenlist.h | 0 .../bind9/bin => bin}/named/include/named/log.h | 0 .../bind9/bin => bin}/named/include/named/logconf.h | 0 .../bind9/bin => bin}/named/include/named/lwaddr.h | 0 .../bin => bin}/named/include/named/lwdclient.h | 0 .../bind9/bin => bin}/named/include/named/lwresd.h | 0 .../bin => bin}/named/include/named/lwsearch.h | 0 .../bind9/bin => bin}/named/include/named/main.h | 0 .../bind9/bin => bin}/named/include/named/notify.h | 0 .../named/include/named/ns_smf_globals.h | 0 .../bind9/bin => bin}/named/include/named/query.h | 0 .../bind9/bin => bin}/named/include/named/server.h | 0 .../bin => bin}/named/include/named/sortlist.h | 0 .../bin => bin}/named/include/named/tkeyconf.h | 0 .../bin => bin}/named/include/named/tsigconf.h | 0 .../bind9/bin => bin}/named/include/named/types.h | 0 .../bind9/bin => bin}/named/include/named/update.h | 0 .../bind9/bin => bin}/named/include/named/xfrout.h | 0 .../bin => bin}/named/include/named/zoneconf.h | 0 {contrib/bind9/bin => bin}/named/interfacemgr.c | 0 {contrib/bind9/bin => bin}/named/listenlist.c | 0 {contrib/bind9/bin => bin}/named/log.c | 0 {contrib/bind9/bin => bin}/named/logconf.c | 0 {contrib/bind9/bin => bin}/named/lwaddr.c | 0 {contrib/bind9/bin => bin}/named/lwdclient.c | 0 {contrib/bind9/bin => bin}/named/lwderror.c | 0 {contrib/bind9/bin => bin}/named/lwdgabn.c | 0 {contrib/bind9/bin => bin}/named/lwdgnba.c | 0 {contrib/bind9/bin => bin}/named/lwdgrbn.c | 0 {contrib/bind9/bin => bin}/named/lwdnoop.c | 0 {contrib/bind9/bin => bin}/named/lwresd.8 | 0 {contrib/bind9/bin => bin}/named/lwresd.c | 0 {contrib/bind9/bin => bin}/named/lwresd.docbook | 0 {contrib/bind9/bin => bin}/named/lwresd.html | 0 {contrib/bind9/bin => bin}/named/lwsearch.c | 0 {contrib/bind9/bin => bin}/named/main.c | 0 {contrib/bind9/bin => bin}/named/named.8 | 0 {contrib/bind9/bin => bin}/named/named.conf.5 | 0 {contrib/bind9/bin => bin}/named/named.conf.docbook | 0 {contrib/bind9/bin => bin}/named/named.conf.html | 0 {contrib/bind9/bin => bin}/named/named.docbook | 0 {contrib/bind9/bin => bin}/named/named.html | 0 {contrib/bind9/bin => bin}/named/notify.c | 0 {contrib/bind9/bin => bin}/named/query.c | 0 {contrib/bind9/bin => bin}/named/server.c | 0 {contrib/bind9/bin => bin}/named/sortlist.c | 0 {contrib/bind9/bin => bin}/named/tkeyconf.c | 0 {contrib/bind9/bin => bin}/named/tsigconf.c | 0 {contrib/bind9/bin => bin}/named/unix/Makefile.in | 0 .../bind9/bin => bin}/named/unix/include/named/os.h | 0 {contrib/bind9/bin => bin}/named/unix/os.c | 0 {contrib/bind9/bin => bin}/named/update.c | 0 {contrib/bind9/bin => bin}/named/xfrout.c | 0 {contrib/bind9/bin => bin}/named/zoneconf.c | 0 {contrib/bind9/bin => bin}/nsupdate/Makefile.in | 0 {contrib/bind9/bin => bin}/nsupdate/nsupdate.8 | 0 {contrib/bind9/bin => bin}/nsupdate/nsupdate.c | 0 .../bind9/bin => bin}/nsupdate/nsupdate.docbook | 0 {contrib/bind9/bin => bin}/nsupdate/nsupdate.html | 0 {contrib/bind9/bin => bin}/rndc/Makefile.in | 0 {contrib/bind9/bin => bin}/rndc/include/rndc/os.h | 0 {contrib/bind9/bin => bin}/rndc/rndc-confgen.8 | 0 {contrib/bind9/bin => bin}/rndc/rndc-confgen.c | 0 .../bind9/bin => bin}/rndc/rndc-confgen.docbook | 0 {contrib/bind9/bin => bin}/rndc/rndc-confgen.html | 0 {contrib/bind9/bin => bin}/rndc/rndc.8 | 0 {contrib/bind9/bin => bin}/rndc/rndc.c | 0 {contrib/bind9/bin => bin}/rndc/rndc.conf | 0 {contrib/bind9/bin => bin}/rndc/rndc.conf.5 | 0 {contrib/bind9/bin => bin}/rndc/rndc.conf.docbook | 0 {contrib/bind9/bin => bin}/rndc/rndc.conf.html | 0 {contrib/bind9/bin => bin}/rndc/rndc.docbook | 0 {contrib/bind9/bin => bin}/rndc/rndc.html | 0 {contrib/bind9/bin => bin}/rndc/unix/Makefile.in | 0 {contrib/bind9/bin => bin}/rndc/unix/os.c | 0 {contrib/bind9/bin => bin}/rndc/util.c | 0 {contrib/bind9/bin => bin}/rndc/util.h | 0 contrib/bind9/config.guess => config.guess | 0 contrib/bind9/config.sub => config.sub | 0 .../bind9/config.threads.in => config.threads.in | 0 contrib/bind9/configure.in => configure.in | 0 {contrib/bind9/doc => doc}/Makefile.in | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM-book.xml | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch01.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch02.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch03.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch04.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch05.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch06.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch07.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch08.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch09.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.ch10.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.html | 0 {contrib/bind9/doc => doc}/arm/Bv9ARM.pdf | 0 {contrib/bind9/doc => doc}/arm/Makefile.in | 0 {contrib/bind9/doc => doc}/arm/README-SGML | 0 {contrib/bind9/doc => doc}/arm/isc-logo.eps | 0 {contrib/bind9/doc => doc}/arm/isc-logo.pdf | Bin {contrib/bind9/doc => doc}/arm/man.dig.html | 0 .../bind9/doc => doc}/arm/man.dnssec-keygen.html | 0 .../bind9/doc => doc}/arm/man.dnssec-signzone.html | 0 {contrib/bind9/doc => doc}/arm/man.host.html | 0 .../bind9/doc => doc}/arm/man.named-checkconf.html | 0 .../bind9/doc => doc}/arm/man.named-checkzone.html | 0 {contrib/bind9/doc => doc}/arm/man.named.html | 0 .../bind9/doc => doc}/arm/man.rndc-confgen.html | 0 {contrib/bind9/doc => doc}/arm/man.rndc.conf.html | 0 {contrib/bind9/doc => doc}/arm/man.rndc.html | 0 .../draft/draft-baba-dnsext-acl-reqts-01.txt | 0 .../doc => doc}/draft/draft-daigle-napstr-04.txt | 0 .../draft/draft-danisch-dns-rr-smtp-03.txt | 0 .../draft/draft-dnsext-opcode-discover-02.txt | 0 .../draft/draft-durand-dnsop-dynreverse-00.txt | 0 .../draft/draft-ietf-dnsext-2929bis-01.txt | 0 .../draft/draft-ietf-dnsext-axfr-clarify-05.txt | 0 .../draft/draft-ietf-dnsext-dhcid-rr-12.txt | 0 .../draft/draft-ietf-dnsext-dns-name-p-s-00.txt | 0 ...ft-ietf-dnsext-dnssec-2535typecode-change-06.txt | 0 .../draft-ietf-dnsext-dnssec-bis-updates-01.txt | 0 .../draft-ietf-dnsext-dnssec-experiments-01.txt | 0 .../draft-ietf-dnsext-dnssec-online-signing-02.txt | 0 .../draft/draft-ietf-dnsext-dnssec-opt-in-07.txt | 0 .../draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt | 0 .../draft/draft-ietf-dnsext-dnssec-trans-02.txt | 0 .../draft/draft-ietf-dnsext-ds-sha256-05.txt | 0 .../draft/draft-ietf-dnsext-ecc-key-07.txt | 0 .../draft/draft-ietf-dnsext-interop3597-02.txt | 0 .../draft-ietf-dnsext-keyrr-key-signing-flag-12.txt | 0 .../doc => doc}/draft/draft-ietf-dnsext-mdns-43.txt | 0 .../draft/draft-ietf-dnsext-nsec3-04.txt | 0 .../doc => doc}/draft/draft-ietf-dnsext-nsid-01.txt | 0 .../draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt | 0 .../draft/draft-ietf-dnsext-rfc2538bis-04.txt | 0 .../draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt | 0 ...f-dnsext-signed-nonexistence-requirements-01.txt | 0 .../draft-ietf-dnsext-tkey-renewal-mode-05.txt | 0 .../draft-ietf-dnsext-trustupdate-threshold-00.txt | 0 .../draft-ietf-dnsext-trustupdate-timers-02.txt | 0 .../draft/draft-ietf-dnsext-tsig-sha-06.txt | 0 .../draft/draft-ietf-dnsext-wcard-clarify-10.txt | 0 .../draft/draft-ietf-dnsop-bad-dns-res-05.txt | 0 ...t-ietf-dnsop-dnssec-operational-practices-08.txt | 0 .../draft/draft-ietf-dnsop-inaddr-required-07.txt | 0 .../draft-ietf-dnsop-ipv6-dns-configuration-06.txt | 0 .../draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt | 0 ...raft-ietf-dnsop-ipv6-transport-guidelines-01.txt | 0 ...raft-ietf-dnsop-key-rollover-requirements-02.txt | 0 .../draft/draft-ietf-dnsop-respsize-02.txt | 0 .../draft/draft-ietf-dnsop-serverid-06.txt | 0 .../draft/draft-ietf-enum-e164-gstn-np-05.txt | 0 .../draft/draft-ietf-ipv6-node-requirements-08.txt | 0 .../doc => doc}/draft/draft-ietf-secsh-dns-05.txt | 0 .../draft-ihren-dnsext-threshold-validation-00.txt | 0 .../draft/draft-kato-dnsop-local-zones-00.txt | 0 .../draft/draft-park-ipv6-extensions-dns-pnp-00.txt | 0 {contrib/bind9/doc => doc}/draft/update | 0 {contrib/bind9/doc => doc}/misc/Makefile.in | 0 {contrib/bind9/doc => doc}/misc/dnssec | 0 {contrib/bind9/doc => doc}/misc/format-options.pl | 0 {contrib/bind9/doc => doc}/misc/ipv6 | 0 {contrib/bind9/doc => doc}/misc/migration | 0 {contrib/bind9/doc => doc}/misc/migration-4to9 | 0 {contrib/bind9/doc => doc}/misc/options | 0 {contrib/bind9/doc => doc}/misc/rfc-compliance | 0 {contrib/bind9/doc => doc}/misc/roadmap | 0 {contrib/bind9/doc => doc}/misc/sdb | 0 {contrib/bind9/doc => doc}/rfc/index | 0 {contrib/bind9/doc => doc}/rfc/rfc1032.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1033.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1034.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1035.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1101.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1122.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1123.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1183.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1348.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1535.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1536.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1537.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1591.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1611.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1612.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1706.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1712.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1750.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1876.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1886.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1982.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1995.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc1996.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2052.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2104.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2119.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2133.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2136.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2137.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2163.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2168.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2181.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2230.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2308.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2317.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2373.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2374.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2375.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2418.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2535.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2536.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2537.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2538.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2539.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2540.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2541.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2553.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2671.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2672.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2673.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2782.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2825.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2826.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2845.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2874.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2915.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2929.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2930.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc2931.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3007.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3008.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3071.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3090.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3110.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3123.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3152.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3197.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3225.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3226.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3258.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3363.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3364.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3425.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3445.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3467.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3490.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3491.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3492.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3493.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3513.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3596.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3597.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3645.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3655.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3658.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3757.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3833.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3845.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc3901.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4025.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4033.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4034.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4035.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4074.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4159.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4193.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4255.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4343.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4367.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4398.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4408.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4431.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4470.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4634.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc4641.txt | 0 {contrib/bind9/doc => doc}/rfc/rfc952.txt | 0 contrib/bind9/install-sh => install-sh | 0 contrib/bind9/isc-config.sh.in => isc-config.sh.in | 0 {contrib/bind9/lib => lib}/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/README | 0 {contrib/bind9/lib => lib}/bind/aclocal.m4 | 0 {contrib/bind9/lib => lib}/bind/api | 0 {contrib/bind9/lib => lib}/bind/bsd/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/bsd/daemon.c | 0 {contrib/bind9/lib => lib}/bind/bsd/ftruncate.c | 0 {contrib/bind9/lib => lib}/bind/bsd/gettimeofday.c | 0 {contrib/bind9/lib => lib}/bind/bsd/mktemp.c | 0 {contrib/bind9/lib => lib}/bind/bsd/putenv.c | 0 {contrib/bind9/lib => lib}/bind/bsd/readv.c | 0 {contrib/bind9/lib => lib}/bind/bsd/setenv.c | 0 {contrib/bind9/lib => lib}/bind/bsd/setitimer.c | 0 {contrib/bind9/lib => lib}/bind/bsd/strcasecmp.c | 0 {contrib/bind9/lib => lib}/bind/bsd/strdup.c | 0 {contrib/bind9/lib => lib}/bind/bsd/strerror.c | 0 {contrib/bind9/lib => lib}/bind/bsd/strpbrk.c | 0 {contrib/bind9/lib => lib}/bind/bsd/strsep.c | 0 {contrib/bind9/lib => lib}/bind/bsd/strtoul.c | 0 {contrib/bind9/lib => lib}/bind/bsd/utimes.c | 0 {contrib/bind9/lib => lib}/bind/bsd/writev.c | 0 {contrib/bind9/lib => lib}/bind/config.h.in | 0 {contrib/bind9/lib => lib}/bind/configure | 0 {contrib/bind9/lib => lib}/bind/configure.in | 0 {contrib/bind9/lib => lib}/bind/dst/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/dst/dst_api.c | 0 {contrib/bind9/lib => lib}/bind/dst/dst_internal.h | 0 {contrib/bind9/lib => lib}/bind/dst/hmac_link.c | 0 {contrib/bind9/lib => lib}/bind/dst/md5.h | 0 {contrib/bind9/lib => lib}/bind/dst/md5_dgst.c | 0 {contrib/bind9/lib => lib}/bind/dst/md5_locl.h | 0 {contrib/bind9/lib => lib}/bind/dst/support.c | 0 {contrib/bind9/lib => lib}/bind/include/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/include/arpa/inet.h | 0 .../bind9/lib => lib}/bind/include/arpa/nameser.h | 0 .../lib => lib}/bind/include/arpa/nameser_compat.h | 0 .../bind9/lib => lib}/bind/include/fd_setsize.h | 0 {contrib/bind9/lib => lib}/bind/include/hesiod.h | 0 {contrib/bind9/lib => lib}/bind/include/irp.h | 0 {contrib/bind9/lib => lib}/bind/include/irs.h | 0 .../bind9/lib => lib}/bind/include/isc/assertions.h | 0 {contrib/bind9/lib => lib}/bind/include/isc/ctl.h | 0 {contrib/bind9/lib => lib}/bind/include/isc/dst.h | 0 .../bind9/lib => lib}/bind/include/isc/eventlib.h | 0 {contrib/bind9/lib => lib}/bind/include/isc/heap.h | 0 .../lib => lib}/bind/include/isc/irpmarshall.h | 0 {contrib/bind9/lib => lib}/bind/include/isc/list.h | 0 .../bind9/lib => lib}/bind/include/isc/logging.h | 0 .../bind9/lib => lib}/bind/include/isc/memcluster.h | 0 {contrib/bind9/lib => lib}/bind/include/isc/misc.h | 0 {contrib/bind9/lib => lib}/bind/include/isc/tree.h | 0 {contrib/bind9/lib => lib}/bind/include/netdb.h | 0 {contrib/bind9/lib => lib}/bind/include/netgroup.h | 0 .../bind9/lib => lib}/bind/include/res_update.h | 0 {contrib/bind9/lib => lib}/bind/include/resolv.h | 0 {contrib/bind9/lib => lib}/bind/include/resolv_mt.h | 0 {contrib/bind9/lib => lib}/bind/inet/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/inet/inet_addr.c | 0 .../bind9/lib => lib}/bind/inet/inet_cidr_ntop.c | 0 .../bind9/lib => lib}/bind/inet/inet_cidr_pton.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_data.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_lnaof.c | 0 .../bind9/lib => lib}/bind/inet/inet_makeaddr.c | 0 .../bind9/lib => lib}/bind/inet/inet_net_ntop.c | 0 .../bind9/lib => lib}/bind/inet/inet_net_pton.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_neta.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_netof.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_network.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_ntoa.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_ntop.c | 0 {contrib/bind9/lib => lib}/bind/inet/inet_pton.c | 0 {contrib/bind9/lib => lib}/bind/inet/nsap_addr.c | 0 {contrib/bind9/lib => lib}/bind/irs/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/irs/dns.c | 0 {contrib/bind9/lib => lib}/bind/irs/dns_gr.c | 0 {contrib/bind9/lib => lib}/bind/irs/dns_ho.c | 0 {contrib/bind9/lib => lib}/bind/irs/dns_nw.c | 0 {contrib/bind9/lib => lib}/bind/irs/dns_p.h | 0 {contrib/bind9/lib => lib}/bind/irs/dns_pr.c | 0 {contrib/bind9/lib => lib}/bind/irs/dns_pw.c | 0 {contrib/bind9/lib => lib}/bind/irs/dns_sv.c | 0 {contrib/bind9/lib => lib}/bind/irs/gai_strerror.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen_gr.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen_ho.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen_ng.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen_nw.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen_p.h | 0 {contrib/bind9/lib => lib}/bind/irs/gen_pr.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen_pw.c | 0 {contrib/bind9/lib => lib}/bind/irs/gen_sv.c | 0 {contrib/bind9/lib => lib}/bind/irs/getaddrinfo.c | 0 {contrib/bind9/lib => lib}/bind/irs/getgrent.c | 0 {contrib/bind9/lib => lib}/bind/irs/getgrent_r.c | 0 {contrib/bind9/lib => lib}/bind/irs/gethostent.c | 0 {contrib/bind9/lib => lib}/bind/irs/gethostent_r.c | 0 {contrib/bind9/lib => lib}/bind/irs/getnameinfo.c | 0 {contrib/bind9/lib => lib}/bind/irs/getnetent.c | 0 {contrib/bind9/lib => lib}/bind/irs/getnetent_r.c | 0 {contrib/bind9/lib => lib}/bind/irs/getnetgrent.c | 0 {contrib/bind9/lib => lib}/bind/irs/getnetgrent_r.c | 0 {contrib/bind9/lib => lib}/bind/irs/getprotoent.c | 0 {contrib/bind9/lib => lib}/bind/irs/getprotoent_r.c | 0 {contrib/bind9/lib => lib}/bind/irs/getpwent.c | 0 {contrib/bind9/lib => lib}/bind/irs/getpwent_r.c | 0 {contrib/bind9/lib => lib}/bind/irs/getservent.c | 0 {contrib/bind9/lib => lib}/bind/irs/getservent_r.c | 0 {contrib/bind9/lib => lib}/bind/irs/hesiod.c | 0 {contrib/bind9/lib => lib}/bind/irs/hesiod_p.h | 0 {contrib/bind9/lib => lib}/bind/irs/irp.c | 0 {contrib/bind9/lib => lib}/bind/irs/irp_gr.c | 0 {contrib/bind9/lib => lib}/bind/irs/irp_ho.c | 0 {contrib/bind9/lib => lib}/bind/irs/irp_ng.c | 0 {contrib/bind9/lib => lib}/bind/irs/irp_nw.c | 0 {contrib/bind9/lib => lib}/bind/irs/irp_p.h | 0 {contrib/bind9/lib => lib}/bind/irs/irp_pr.c | 0 {contrib/bind9/lib => lib}/bind/irs/irp_pw.c | 0 {contrib/bind9/lib => lib}/bind/irs/irp_sv.c | 0 {contrib/bind9/lib => lib}/bind/irs/irpmarshall.c | 0 {contrib/bind9/lib => lib}/bind/irs/irs_data.c | 0 {contrib/bind9/lib => lib}/bind/irs/irs_data.h | 0 {contrib/bind9/lib => lib}/bind/irs/irs_p.h | 0 {contrib/bind9/lib => lib}/bind/irs/lcl.c | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_gr.c | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_ho.c | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_ng.c | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_nw.c | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_p.h | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_pr.c | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_pw.c | 0 {contrib/bind9/lib => lib}/bind/irs/lcl_sv.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis_gr.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis_ho.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis_ng.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis_nw.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis_p.h | 0 {contrib/bind9/lib => lib}/bind/irs/nis_pr.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis_pw.c | 0 {contrib/bind9/lib => lib}/bind/irs/nis_sv.c | 0 {contrib/bind9/lib => lib}/bind/irs/nul_ng.c | 0 {contrib/bind9/lib => lib}/bind/irs/pathnames.h | 0 {contrib/bind9/lib => lib}/bind/irs/util.c | 0 {contrib/bind9/lib => lib}/bind/isc/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/isc/assertions.c | 0 {contrib/bind9/lib => lib}/bind/isc/assertions.mdoc | 0 {contrib/bind9/lib => lib}/bind/isc/base64.c | 0 {contrib/bind9/lib => lib}/bind/isc/bitncmp.c | 0 {contrib/bind9/lib => lib}/bind/isc/bitncmp.mdoc | 0 {contrib/bind9/lib => lib}/bind/isc/ctl_clnt.c | 0 {contrib/bind9/lib => lib}/bind/isc/ctl_p.c | 0 {contrib/bind9/lib => lib}/bind/isc/ctl_p.h | 0 {contrib/bind9/lib => lib}/bind/isc/ctl_srvr.c | 0 {contrib/bind9/lib => lib}/bind/isc/ev_connects.c | 0 {contrib/bind9/lib => lib}/bind/isc/ev_files.c | 0 {contrib/bind9/lib => lib}/bind/isc/ev_streams.c | 0 {contrib/bind9/lib => lib}/bind/isc/ev_timers.c | 0 {contrib/bind9/lib => lib}/bind/isc/ev_waits.c | 0 {contrib/bind9/lib => lib}/bind/isc/eventlib.c | 0 {contrib/bind9/lib => lib}/bind/isc/eventlib.mdoc | 0 {contrib/bind9/lib => lib}/bind/isc/eventlib_p.h | 0 {contrib/bind9/lib => lib}/bind/isc/heap.c | 0 {contrib/bind9/lib => lib}/bind/isc/heap.mdoc | 0 {contrib/bind9/lib => lib}/bind/isc/hex.c | 0 {contrib/bind9/lib => lib}/bind/isc/logging.c | 0 {contrib/bind9/lib => lib}/bind/isc/logging.mdoc | 0 {contrib/bind9/lib => lib}/bind/isc/logging_p.h | 0 {contrib/bind9/lib => lib}/bind/isc/memcluster.c | 0 {contrib/bind9/lib => lib}/bind/isc/memcluster.mdoc | 0 {contrib/bind9/lib => lib}/bind/isc/movefile.c | 0 {contrib/bind9/lib => lib}/bind/isc/tree.c | 0 {contrib/bind9/lib => lib}/bind/isc/tree.mdoc | 0 {contrib/bind9/lib => lib}/bind/make/includes.in | 0 {contrib/bind9/lib => lib}/bind/make/mkdep.in | 0 {contrib/bind9/lib => lib}/bind/make/rules.in | 0 {contrib/bind9/lib => lib}/bind/mkinstalldirs | 0 {contrib/bind9/lib => lib}/bind/nameser/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_date.c | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_name.c | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_netint.c | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_parse.c | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_print.c | 0 .../bind9/lib => lib}/bind/nameser/ns_samedomain.c | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_sign.c | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_ttl.c | 0 {contrib/bind9/lib => lib}/bind/nameser/ns_verify.c | 0 {contrib/bind9/lib => lib}/bind/port/Makefile.in | 0 .../bind9/lib => lib}/bind/port/freebsd/Makefile.in | 0 .../bind/port/freebsd/include/Makefile.in | 0 .../bind/port/freebsd/include/sys/bitypes.h | 0 {contrib/bind9/lib => lib}/bind/port_after.h.in | 0 {contrib/bind9/lib => lib}/bind/port_before.h.in | 0 {contrib/bind9/lib => lib}/bind/resolv/Makefile.in | 0 {contrib/bind9/lib => lib}/bind/resolv/herror.c | 0 {contrib/bind9/lib => lib}/bind/resolv/mtctxres.c | 0 {contrib/bind9/lib => lib}/bind/resolv/res_comp.c | 0 {contrib/bind9/lib => lib}/bind/resolv/res_data.c | 0 {contrib/bind9/lib => lib}/bind/resolv/res_debug.c | 0 {contrib/bind9/lib => lib}/bind/resolv/res_debug.h | 0 .../bind9/lib => lib}/bind/resolv/res_findzonecut.c | 0 {contrib/bind9/lib => lib}/bind/resolv/res_init.c | 0 .../bind9/lib => lib}/bind/resolv/res_mkquery.c | 0 .../bind9/lib => lib}/bind/resolv/res_mkupdate.c | 0 .../bind9/lib => lib}/bind/resolv/res_mkupdate.h | 0 .../bind9/lib => lib}/bind/resolv/res_private.h | 0 {contrib/bind9/lib => lib}/bind/resolv/res_query.c | 0 {contrib/bind9/lib => lib}/bind/resolv/res_send.c | 0 .../bind9/lib => lib}/bind/resolv/res_sendsigned.c | 0 {contrib/bind9/lib => lib}/bind/resolv/res_update.c | 0 {contrib/bind9/lib => lib}/bind9/Makefile.in | 0 {contrib/bind9/lib => lib}/bind9/api | 0 {contrib/bind9/lib => lib}/bind9/check.c | 0 {contrib/bind9/lib => lib}/bind9/getaddresses.c | 0 .../bind9/lib => lib}/bind9/include/Makefile.in | 0 .../lib => lib}/bind9/include/bind9/Makefile.in | 0 .../bind9/lib => lib}/bind9/include/bind9/check.h | 0 .../lib => lib}/bind9/include/bind9/getaddresses.h | 0 .../bind9/lib => lib}/bind9/include/bind9/version.h | 0 {contrib/bind9/lib => lib}/bind9/version.c | 0 {contrib/bind9/lib => lib}/dns/Makefile.in | 0 {contrib/bind9/lib => lib}/dns/acache.c | 0 {contrib/bind9/lib => lib}/dns/acl.c | 0 {contrib/bind9/lib => lib}/dns/adb.c | 0 {contrib/bind9/lib => lib}/dns/api | 0 {contrib/bind9/lib => lib}/dns/byaddr.c | 0 {contrib/bind9/lib => lib}/dns/cache.c | 0 {contrib/bind9/lib => lib}/dns/callbacks.c | 0 {contrib/bind9/lib => lib}/dns/compress.c | 0 {contrib/bind9/lib => lib}/dns/db.c | 0 {contrib/bind9/lib => lib}/dns/dbiterator.c | 0 {contrib/bind9/lib => lib}/dns/dbtable.c | 0 {contrib/bind9/lib => lib}/dns/diff.c | 0 {contrib/bind9/lib => lib}/dns/dispatch.c | 0 {contrib/bind9/lib => lib}/dns/dlz.c | 0 {contrib/bind9/lib => lib}/dns/dnssec.c | 0 {contrib/bind9/lib => lib}/dns/ds.c | 0 {contrib/bind9/lib => lib}/dns/dst_api.c | 0 {contrib/bind9/lib => lib}/dns/dst_internal.h | 0 {contrib/bind9/lib => lib}/dns/dst_lib.c | 0 {contrib/bind9/lib => lib}/dns/dst_openssl.h | 0 {contrib/bind9/lib => lib}/dns/dst_parse.c | 0 {contrib/bind9/lib => lib}/dns/dst_parse.h | 0 {contrib/bind9/lib => lib}/dns/dst_result.c | 0 {contrib/bind9/lib => lib}/dns/forward.c | 0 {contrib/bind9/lib => lib}/dns/gen-unix.h | 0 {contrib/bind9/lib => lib}/dns/gen.c | 0 {contrib/bind9/lib => lib}/dns/gssapi_link.c | 0 {contrib/bind9/lib => lib}/dns/gssapictx.c | 0 {contrib/bind9/lib => lib}/dns/hmac_link.c | 0 {contrib/bind9/lib => lib}/dns/include/Makefile.in | 0 .../bind9/lib => lib}/dns/include/dns/Makefile.in | 0 {contrib/bind9/lib => lib}/dns/include/dns/acache.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/acl.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/adb.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/bit.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/byaddr.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/cache.h | 0 .../bind9/lib => lib}/dns/include/dns/callbacks.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/cert.h | 0 .../bind9/lib => lib}/dns/include/dns/compress.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/db.h | 0 .../bind9/lib => lib}/dns/include/dns/dbiterator.h | 0 .../bind9/lib => lib}/dns/include/dns/dbtable.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/diff.h | 0 .../bind9/lib => lib}/dns/include/dns/dispatch.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/dlz.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/dnssec.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/ds.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/events.h | 0 .../bind9/lib => lib}/dns/include/dns/fixedname.h | 0 .../bind9/lib => lib}/dns/include/dns/forward.h | 0 .../bind9/lib => lib}/dns/include/dns/journal.h | 0 .../bind9/lib => lib}/dns/include/dns/keyflags.h | 0 .../bind9/lib => lib}/dns/include/dns/keytable.h | 0 .../bind9/lib => lib}/dns/include/dns/keyvalues.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/lib.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/log.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/lookup.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/master.h | 0 .../bind9/lib => lib}/dns/include/dns/masterdump.h | 0 .../bind9/lib => lib}/dns/include/dns/message.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/name.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/ncache.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/nsec.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/opcode.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/order.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/peer.h | 0 .../bind9/lib => lib}/dns/include/dns/portlist.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/rbt.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/rcode.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/rdata.h | 0 .../bind9/lib => lib}/dns/include/dns/rdataclass.h | 0 .../bind9/lib => lib}/dns/include/dns/rdatalist.h | 0 .../bind9/lib => lib}/dns/include/dns/rdataset.h | 0 .../lib => lib}/dns/include/dns/rdatasetiter.h | 0 .../bind9/lib => lib}/dns/include/dns/rdataslab.h | 0 .../bind9/lib => lib}/dns/include/dns/rdatatype.h | 0 .../bind9/lib => lib}/dns/include/dns/request.h | 0 .../bind9/lib => lib}/dns/include/dns/resolver.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/result.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/rootns.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/sdb.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/sdlz.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/secalg.h | 0 .../bind9/lib => lib}/dns/include/dns/secproto.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/soa.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/ssu.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/stats.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/tcpmsg.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/time.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/timer.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/tkey.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/tsig.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/ttl.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/types.h | 0 .../bind9/lib => lib}/dns/include/dns/validator.h | 0 .../bind9/lib => lib}/dns/include/dns/version.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/view.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/xfrin.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/zone.h | 0 .../bind9/lib => lib}/dns/include/dns/zonekey.h | 0 {contrib/bind9/lib => lib}/dns/include/dns/zt.h | 0 .../bind9/lib => lib}/dns/include/dst/Makefile.in | 0 {contrib/bind9/lib => lib}/dns/include/dst/dst.h | 0 {contrib/bind9/lib => lib}/dns/include/dst/gssapi.h | 0 {contrib/bind9/lib => lib}/dns/include/dst/lib.h | 0 {contrib/bind9/lib => lib}/dns/include/dst/result.h | 0 {contrib/bind9/lib => lib}/dns/journal.c | 0 {contrib/bind9/lib => lib}/dns/key.c | 0 {contrib/bind9/lib => lib}/dns/keytable.c | 0 {contrib/bind9/lib => lib}/dns/lib.c | 0 {contrib/bind9/lib => lib}/dns/log.c | 0 {contrib/bind9/lib => lib}/dns/lookup.c | 0 {contrib/bind9/lib => lib}/dns/master.c | 0 {contrib/bind9/lib => lib}/dns/masterdump.c | 0 {contrib/bind9/lib => lib}/dns/message.c | 0 {contrib/bind9/lib => lib}/dns/name.c | 0 {contrib/bind9/lib => lib}/dns/ncache.c | 0 {contrib/bind9/lib => lib}/dns/nsec.c | 0 {contrib/bind9/lib => lib}/dns/openssl_link.c | 0 {contrib/bind9/lib => lib}/dns/openssldh_link.c | 0 {contrib/bind9/lib => lib}/dns/openssldsa_link.c | 0 {contrib/bind9/lib => lib}/dns/opensslrsa_link.c | 0 {contrib/bind9/lib => lib}/dns/order.c | 0 {contrib/bind9/lib => lib}/dns/peer.c | 0 {contrib/bind9/lib => lib}/dns/portlist.c | 0 {contrib/bind9/lib => lib}/dns/rbt.c | 0 {contrib/bind9/lib => lib}/dns/rbtdb.c | 0 {contrib/bind9/lib => lib}/dns/rbtdb.h | 0 {contrib/bind9/lib => lib}/dns/rbtdb64.c | 0 {contrib/bind9/lib => lib}/dns/rbtdb64.h | 0 {contrib/bind9/lib => lib}/dns/rcode.c | 0 {contrib/bind9/lib => lib}/dns/rdata.c | 0 .../bind9/lib => lib}/dns/rdata/any_255/tsig_250.c | 0 .../bind9/lib => lib}/dns/rdata/any_255/tsig_250.h | 0 {contrib/bind9/lib => lib}/dns/rdata/ch_3/a_1.c | 0 {contrib/bind9/lib => lib}/dns/rdata/ch_3/a_1.h | 0 .../bind9/lib => lib}/dns/rdata/generic/afsdb_18.c | 0 .../bind9/lib => lib}/dns/rdata/generic/afsdb_18.h | 0 .../bind9/lib => lib}/dns/rdata/generic/cert_37.c | 0 .../bind9/lib => lib}/dns/rdata/generic/cert_37.h | 0 .../bind9/lib => lib}/dns/rdata/generic/cname_5.c | 0 .../bind9/lib => lib}/dns/rdata/generic/cname_5.h | 0 .../bind9/lib => lib}/dns/rdata/generic/dlv_32769.c | 0 .../bind9/lib => lib}/dns/rdata/generic/dlv_32769.h | 0 .../bind9/lib => lib}/dns/rdata/generic/dname_39.c | 0 .../bind9/lib => lib}/dns/rdata/generic/dname_39.h | 0 .../bind9/lib => lib}/dns/rdata/generic/dnskey_48.c | 0 .../bind9/lib => lib}/dns/rdata/generic/dnskey_48.h | 0 .../bind9/lib => lib}/dns/rdata/generic/ds_43.c | 0 .../bind9/lib => lib}/dns/rdata/generic/ds_43.h | 0 .../bind9/lib => lib}/dns/rdata/generic/gpos_27.c | 0 .../bind9/lib => lib}/dns/rdata/generic/gpos_27.h | 0 .../bind9/lib => lib}/dns/rdata/generic/hinfo_13.c | 0 .../bind9/lib => lib}/dns/rdata/generic/hinfo_13.h | 0 .../lib => lib}/dns/rdata/generic/ipseckey_45.c | 0 .../lib => lib}/dns/rdata/generic/ipseckey_45.h | 0 .../bind9/lib => lib}/dns/rdata/generic/isdn_20.c | 0 .../bind9/lib => lib}/dns/rdata/generic/isdn_20.h | 0 .../bind9/lib => lib}/dns/rdata/generic/key_25.c | 0 .../bind9/lib => lib}/dns/rdata/generic/key_25.h | 0 .../bind9/lib => lib}/dns/rdata/generic/loc_29.c | 0 .../bind9/lib => lib}/dns/rdata/generic/loc_29.h | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mb_7.c | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mb_7.h | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/md_3.c | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/md_3.h | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mf_4.c | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mf_4.h | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mg_8.c | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mg_8.h | 0 .../bind9/lib => lib}/dns/rdata/generic/minfo_14.c | 0 .../bind9/lib => lib}/dns/rdata/generic/minfo_14.h | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mr_9.c | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/mr_9.h | 0 .../bind9/lib => lib}/dns/rdata/generic/mx_15.c | 0 .../bind9/lib => lib}/dns/rdata/generic/mx_15.h | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/ns_2.c | 0 {contrib/bind9/lib => lib}/dns/rdata/generic/ns_2.h | 0 .../bind9/lib => lib}/dns/rdata/generic/nsec_47.c | 0 .../bind9/lib => lib}/dns/rdata/generic/nsec_47.h | 0 .../bind9/lib => lib}/dns/rdata/generic/null_10.c | 0 .../bind9/lib => lib}/dns/rdata/generic/null_10.h | 0 .../bind9/lib => lib}/dns/rdata/generic/nxt_30.c | 0 .../bind9/lib => lib}/dns/rdata/generic/nxt_30.h | 0 .../bind9/lib => lib}/dns/rdata/generic/opt_41.c | 0 .../bind9/lib => lib}/dns/rdata/generic/opt_41.h | 0 .../bind9/lib => lib}/dns/rdata/generic/proforma.c | 0 .../bind9/lib => lib}/dns/rdata/generic/proforma.h | 0 .../bind9/lib => lib}/dns/rdata/generic/ptr_12.c | 0 .../bind9/lib => lib}/dns/rdata/generic/ptr_12.h | 0 .../bind9/lib => lib}/dns/rdata/generic/rp_17.c | 0 .../bind9/lib => lib}/dns/rdata/generic/rp_17.h | 0 .../bind9/lib => lib}/dns/rdata/generic/rrsig_46.c | 0 .../bind9/lib => lib}/dns/rdata/generic/rrsig_46.h | 0 .../bind9/lib => lib}/dns/rdata/generic/rt_21.c | 0 .../bind9/lib => lib}/dns/rdata/generic/rt_21.h | 0 .../bind9/lib => lib}/dns/rdata/generic/sig_24.c | 0 .../bind9/lib => lib}/dns/rdata/generic/sig_24.h | 0 .../bind9/lib => lib}/dns/rdata/generic/soa_6.c | 0 .../bind9/lib => lib}/dns/rdata/generic/soa_6.h | 0 .../bind9/lib => lib}/dns/rdata/generic/spf_99.c | 0 .../bind9/lib => lib}/dns/rdata/generic/spf_99.h | 0 .../bind9/lib => lib}/dns/rdata/generic/sshfp_44.c | 0 .../bind9/lib => lib}/dns/rdata/generic/sshfp_44.h | 0 .../bind9/lib => lib}/dns/rdata/generic/tkey_249.c | 0 .../bind9/lib => lib}/dns/rdata/generic/tkey_249.h | 0 .../bind9/lib => lib}/dns/rdata/generic/txt_16.c | 0 .../bind9/lib => lib}/dns/rdata/generic/txt_16.h | 0 .../lib => lib}/dns/rdata/generic/unspec_103.c | 0 .../lib => lib}/dns/rdata/generic/unspec_103.h | 0 .../bind9/lib => lib}/dns/rdata/generic/x25_19.c | 0 .../bind9/lib => lib}/dns/rdata/generic/x25_19.h | 0 {contrib/bind9/lib => lib}/dns/rdata/hs_4/a_1.c | 0 {contrib/bind9/lib => lib}/dns/rdata/hs_4/a_1.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/a6_38.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/a6_38.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/a_1.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/a_1.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/aaaa_28.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/aaaa_28.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/apl_42.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/apl_42.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/kx_36.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/kx_36.h | 0 .../bind9/lib => lib}/dns/rdata/in_1/naptr_35.c | 0 .../bind9/lib => lib}/dns/rdata/in_1/naptr_35.h | 0 .../bind9/lib => lib}/dns/rdata/in_1/nsap-ptr_23.c | 0 .../bind9/lib => lib}/dns/rdata/in_1/nsap-ptr_23.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/nsap_22.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/nsap_22.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/px_26.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/px_26.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/srv_33.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/srv_33.h | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/wks_11.c | 0 {contrib/bind9/lib => lib}/dns/rdata/in_1/wks_11.h | 0 .../bind9/lib => lib}/dns/rdata/rdatastructpre.h | 0 .../bind9/lib => lib}/dns/rdata/rdatastructsuf.h | 0 {contrib/bind9/lib => lib}/dns/rdatalist.c | 0 {contrib/bind9/lib => lib}/dns/rdatalist_p.h | 0 {contrib/bind9/lib => lib}/dns/rdataset.c | 0 {contrib/bind9/lib => lib}/dns/rdatasetiter.c | 0 {contrib/bind9/lib => lib}/dns/rdataslab.c | 0 {contrib/bind9/lib => lib}/dns/request.c | 0 {contrib/bind9/lib => lib}/dns/resolver.c | 0 {contrib/bind9/lib => lib}/dns/result.c | 0 {contrib/bind9/lib => lib}/dns/rootns.c | 0 {contrib/bind9/lib => lib}/dns/sdb.c | 0 {contrib/bind9/lib => lib}/dns/sdlz.c | 0 {contrib/bind9/lib => lib}/dns/soa.c | 0 {contrib/bind9/lib => lib}/dns/ssu.c | 0 {contrib/bind9/lib => lib}/dns/stats.c | 0 {contrib/bind9/lib => lib}/dns/tcpmsg.c | 0 {contrib/bind9/lib => lib}/dns/time.c | 0 {contrib/bind9/lib => lib}/dns/timer.c | 0 {contrib/bind9/lib => lib}/dns/tkey.c | 0 {contrib/bind9/lib => lib}/dns/tsig.c | 0 {contrib/bind9/lib => lib}/dns/ttl.c | 0 {contrib/bind9/lib => lib}/dns/validator.c | 0 {contrib/bind9/lib => lib}/dns/version.c | 0 {contrib/bind9/lib => lib}/dns/view.c | 0 {contrib/bind9/lib => lib}/dns/xfrin.c | 0 {contrib/bind9/lib => lib}/dns/zone.c | 0 {contrib/bind9/lib => lib}/dns/zonekey.c | 0 {contrib/bind9/lib => lib}/dns/zt.c | 0 {contrib/bind9/lib => lib}/isc/Makefile.in | 0 {contrib/bind9/lib => lib}/isc/alpha/Makefile.in | 0 .../bind9/lib => lib}/isc/alpha/include/Makefile.in | 0 .../lib => lib}/isc/alpha/include/isc/Makefile.in | 0 .../lib => lib}/isc/alpha/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isc/api | 0 .../bind9/lib => lib}/isc/arm/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isc/assertions.c | 0 {contrib/bind9/lib => lib}/isc/base64.c | 0 {contrib/bind9/lib => lib}/isc/bitstring.c | 0 {contrib/bind9/lib => lib}/isc/buffer.c | 0 {contrib/bind9/lib => lib}/isc/bufferlist.c | 0 {contrib/bind9/lib => lib}/isc/commandline.c | 0 {contrib/bind9/lib => lib}/isc/entropy.c | 0 {contrib/bind9/lib => lib}/isc/error.c | 0 {contrib/bind9/lib => lib}/isc/event.c | 0 {contrib/bind9/lib => lib}/isc/fsaccess.c | 0 {contrib/bind9/lib => lib}/isc/hash.c | 0 {contrib/bind9/lib => lib}/isc/heap.c | 0 {contrib/bind9/lib => lib}/isc/hex.c | 0 {contrib/bind9/lib => lib}/isc/hmacmd5.c | 0 {contrib/bind9/lib => lib}/isc/hmacsha.c | 0 {contrib/bind9/lib => lib}/isc/ia64/Makefile.in | 0 .../bind9/lib => lib}/isc/ia64/include/Makefile.in | 0 .../lib => lib}/isc/ia64/include/isc/Makefile.in | 0 .../bind9/lib => lib}/isc/ia64/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isc/include/Makefile.in | 0 .../bind9/lib => lib}/isc/include/isc/Makefile.in | 0 {contrib/bind9/lib => lib}/isc/include/isc/app.h | 0 .../bind9/lib => lib}/isc/include/isc/assertions.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/base64.h | 0 .../bind9/lib => lib}/isc/include/isc/bitstring.h | 0 .../bind9/lib => lib}/isc/include/isc/boolean.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/buffer.h | 0 .../bind9/lib => lib}/isc/include/isc/bufferlist.h | 0 .../bind9/lib => lib}/isc/include/isc/commandline.h | 0 .../bind9/lib => lib}/isc/include/isc/entropy.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/error.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/event.h | 0 .../bind9/lib => lib}/isc/include/isc/eventclass.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/file.h | 0 .../bind9/lib => lib}/isc/include/isc/formatcheck.h | 0 .../bind9/lib => lib}/isc/include/isc/fsaccess.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/hash.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/heap.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/hex.h | 0 .../bind9/lib => lib}/isc/include/isc/hmacmd5.h | 0 .../bind9/lib => lib}/isc/include/isc/hmacsha.h | 0 .../lib => lib}/isc/include/isc/interfaceiter.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/ipv6.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/lang.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/lex.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/lfsr.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/lib.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/list.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/log.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/magic.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/md5.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/mem.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/msgcat.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/msgs.h | 0 .../bind9/lib => lib}/isc/include/isc/mutexblock.h | 0 .../bind9/lib => lib}/isc/include/isc/netaddr.h | 0 .../bind9/lib => lib}/isc/include/isc/netscope.h | 0 .../bind9/lib => lib}/isc/include/isc/ondestroy.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/os.h | 0 .../bind9/lib => lib}/isc/include/isc/parseint.h | 0 .../bind9/lib => lib}/isc/include/isc/platform.h.in | 0 {contrib/bind9/lib => lib}/isc/include/isc/print.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/quota.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/random.h | 0 .../bind9/lib => lib}/isc/include/isc/ratelimiter.h | 0 .../bind9/lib => lib}/isc/include/isc/refcount.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/region.h | 0 .../bind9/lib => lib}/isc/include/isc/resource.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/result.h | 0 .../bind9/lib => lib}/isc/include/isc/resultclass.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/rwlock.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/serial.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/sha1.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/sha2.h | 0 .../bind9/lib => lib}/isc/include/isc/sockaddr.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/socket.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/stdio.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/stdlib.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/string.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/symtab.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/task.h | 0 .../bind9/lib => lib}/isc/include/isc/taskpool.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/timer.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/types.h | 0 {contrib/bind9/lib => lib}/isc/include/isc/util.h | 0 .../bind9/lib => lib}/isc/include/isc/version.h | 0 {contrib/bind9/lib => lib}/isc/inet_aton.c | 0 {contrib/bind9/lib => lib}/isc/inet_ntop.c | 0 {contrib/bind9/lib => lib}/isc/inet_pton.c | 0 {contrib/bind9/lib => lib}/isc/lex.c | 0 {contrib/bind9/lib => lib}/isc/lfsr.c | 0 {contrib/bind9/lib => lib}/isc/lib.c | 0 {contrib/bind9/lib => lib}/isc/log.c | 0 {contrib/bind9/lib => lib}/isc/md5.c | 0 {contrib/bind9/lib => lib}/isc/mem.c | 0 {contrib/bind9/lib => lib}/isc/mips/Makefile.in | 0 .../bind9/lib => lib}/isc/mips/include/Makefile.in | 0 .../lib => lib}/isc/mips/include/isc/Makefile.in | 0 .../bind9/lib => lib}/isc/mips/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isc/mutexblock.c | 0 {contrib/bind9/lib => lib}/isc/netaddr.c | 0 {contrib/bind9/lib => lib}/isc/netscope.c | 0 {contrib/bind9/lib => lib}/isc/nls/Makefile.in | 0 {contrib/bind9/lib => lib}/isc/nls/msgcat.c | 0 {contrib/bind9/lib => lib}/isc/noatomic/Makefile.in | 0 .../lib => lib}/isc/noatomic/include/Makefile.in | 0 .../isc/noatomic/include/isc/Makefile.in | 0 .../lib => lib}/isc/noatomic/include/isc/atomic.h | 0 .../bind9/lib => lib}/isc/nothreads/Makefile.in | 0 .../bind9/lib => lib}/isc/nothreads/condition.c | 0 .../lib => lib}/isc/nothreads/include/Makefile.in | 0 .../isc/nothreads/include/isc/Makefile.in | 0 .../isc/nothreads/include/isc/condition.h | 0 .../lib => lib}/isc/nothreads/include/isc/mutex.h | 0 .../lib => lib}/isc/nothreads/include/isc/once.h | 0 .../lib => lib}/isc/nothreads/include/isc/thread.h | 0 {contrib/bind9/lib => lib}/isc/nothreads/mutex.c | 0 {contrib/bind9/lib => lib}/isc/nothreads/thread.c | 0 {contrib/bind9/lib => lib}/isc/ondestroy.c | 0 {contrib/bind9/lib => lib}/isc/parseint.c | 0 {contrib/bind9/lib => lib}/isc/powerpc/Makefile.in | 0 .../lib => lib}/isc/powerpc/include/Makefile.in | 0 .../lib => lib}/isc/powerpc/include/isc/Makefile.in | 0 .../lib => lib}/isc/powerpc/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isc/print.c | 0 {contrib/bind9/lib => lib}/isc/pthreads/Makefile.in | 0 {contrib/bind9/lib => lib}/isc/pthreads/condition.c | 0 .../lib => lib}/isc/pthreads/include/Makefile.in | 0 .../isc/pthreads/include/isc/Makefile.in | 0 .../isc/pthreads/include/isc/condition.h | 0 .../lib => lib}/isc/pthreads/include/isc/mutex.h | 0 .../lib => lib}/isc/pthreads/include/isc/once.h | 0 .../lib => lib}/isc/pthreads/include/isc/thread.h | 0 {contrib/bind9/lib => lib}/isc/pthreads/mutex.c | 0 {contrib/bind9/lib => lib}/isc/pthreads/thread.c | 0 {contrib/bind9/lib => lib}/isc/quota.c | 0 {contrib/bind9/lib => lib}/isc/random.c | 0 {contrib/bind9/lib => lib}/isc/ratelimiter.c | 0 {contrib/bind9/lib => lib}/isc/refcount.c | 0 {contrib/bind9/lib => lib}/isc/region.c | 0 {contrib/bind9/lib => lib}/isc/result.c | 0 {contrib/bind9/lib => lib}/isc/rwlock.c | 0 {contrib/bind9/lib => lib}/isc/serial.c | 0 {contrib/bind9/lib => lib}/isc/sha1.c | 0 {contrib/bind9/lib => lib}/isc/sha2.c | 0 {contrib/bind9/lib => lib}/isc/sockaddr.c | 0 {contrib/bind9/lib => lib}/isc/sparc64/Makefile.in | 0 .../lib => lib}/isc/sparc64/include/Makefile.in | 0 .../lib => lib}/isc/sparc64/include/isc/Makefile.in | 0 .../lib => lib}/isc/sparc64/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isc/string.c | 0 {contrib/bind9/lib => lib}/isc/strtoul.c | 0 {contrib/bind9/lib => lib}/isc/symtab.c | 0 {contrib/bind9/lib => lib}/isc/task.c | 0 {contrib/bind9/lib => lib}/isc/task_p.h | 0 {contrib/bind9/lib => lib}/isc/taskpool.c | 0 {contrib/bind9/lib => lib}/isc/timer.c | 0 {contrib/bind9/lib => lib}/isc/timer_p.h | 0 {contrib/bind9/lib => lib}/isc/unix/Makefile.in | 0 {contrib/bind9/lib => lib}/isc/unix/app.c | 0 {contrib/bind9/lib => lib}/isc/unix/dir.c | 0 {contrib/bind9/lib => lib}/isc/unix/entropy.c | 0 {contrib/bind9/lib => lib}/isc/unix/errno2result.c | 0 {contrib/bind9/lib => lib}/isc/unix/errno2result.h | 0 {contrib/bind9/lib => lib}/isc/unix/file.c | 0 {contrib/bind9/lib => lib}/isc/unix/fsaccess.c | 0 .../bind9/lib => lib}/isc/unix/ifiter_getifaddrs.c | 0 {contrib/bind9/lib => lib}/isc/unix/ifiter_ioctl.c | 0 {contrib/bind9/lib => lib}/isc/unix/ifiter_sysctl.c | 0 .../bind9/lib => lib}/isc/unix/include/Makefile.in | 0 .../lib => lib}/isc/unix/include/isc/Makefile.in | 0 .../bind9/lib => lib}/isc/unix/include/isc/dir.h | 0 .../bind9/lib => lib}/isc/unix/include/isc/int.h | 0 .../lib => lib}/isc/unix/include/isc/keyboard.h | 0 .../bind9/lib => lib}/isc/unix/include/isc/net.h | 0 .../bind9/lib => lib}/isc/unix/include/isc/netdb.h | 0 .../bind9/lib => lib}/isc/unix/include/isc/offset.h | 0 .../bind9/lib => lib}/isc/unix/include/isc/stat.h | 0 .../lib => lib}/isc/unix/include/isc/stdtime.h | 0 .../lib => lib}/isc/unix/include/isc/strerror.h | 0 .../bind9/lib => lib}/isc/unix/include/isc/syslog.h | 0 .../bind9/lib => lib}/isc/unix/include/isc/time.h | 0 {contrib/bind9/lib => lib}/isc/unix/interfaceiter.c | 0 {contrib/bind9/lib => lib}/isc/unix/ipv6.c | 0 {contrib/bind9/lib => lib}/isc/unix/keyboard.c | 0 {contrib/bind9/lib => lib}/isc/unix/net.c | 0 {contrib/bind9/lib => lib}/isc/unix/os.c | 0 {contrib/bind9/lib => lib}/isc/unix/resource.c | 0 {contrib/bind9/lib => lib}/isc/unix/socket.c | 0 {contrib/bind9/lib => lib}/isc/unix/socket_p.h | 0 {contrib/bind9/lib => lib}/isc/unix/stdio.c | 0 {contrib/bind9/lib => lib}/isc/unix/stdtime.c | 0 {contrib/bind9/lib => lib}/isc/unix/strerror.c | 0 {contrib/bind9/lib => lib}/isc/unix/syslog.c | 0 {contrib/bind9/lib => lib}/isc/unix/time.c | 0 {contrib/bind9/lib => lib}/isc/version.c | 0 {contrib/bind9/lib => lib}/isc/x86_32/Makefile.in | 0 .../lib => lib}/isc/x86_32/include/Makefile.in | 0 .../lib => lib}/isc/x86_32/include/isc/Makefile.in | 0 .../lib => lib}/isc/x86_32/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isc/x86_64/Makefile.in | 0 .../lib => lib}/isc/x86_64/include/Makefile.in | 0 .../lib => lib}/isc/x86_64/include/isc/Makefile.in | 0 .../lib => lib}/isc/x86_64/include/isc/atomic.h | 0 {contrib/bind9/lib => lib}/isccc/Makefile.in | 0 {contrib/bind9/lib => lib}/isccc/alist.c | 0 {contrib/bind9/lib => lib}/isccc/api | 0 {contrib/bind9/lib => lib}/isccc/base64.c | 0 {contrib/bind9/lib => lib}/isccc/cc.c | 0 {contrib/bind9/lib => lib}/isccc/ccmsg.c | 0 .../bind9/lib => lib}/isccc/include/Makefile.in | 0 .../lib => lib}/isccc/include/isccc/Makefile.in | 0 .../bind9/lib => lib}/isccc/include/isccc/alist.h | 0 .../bind9/lib => lib}/isccc/include/isccc/base64.h | 0 {contrib/bind9/lib => lib}/isccc/include/isccc/cc.h | 0 .../bind9/lib => lib}/isccc/include/isccc/ccmsg.h | 0 .../bind9/lib => lib}/isccc/include/isccc/events.h | 0 .../bind9/lib => lib}/isccc/include/isccc/lib.h | 0 .../bind9/lib => lib}/isccc/include/isccc/result.h | 0 .../bind9/lib => lib}/isccc/include/isccc/sexpr.h | 0 .../bind9/lib => lib}/isccc/include/isccc/symtab.h | 0 .../bind9/lib => lib}/isccc/include/isccc/symtype.h | 0 .../bind9/lib => lib}/isccc/include/isccc/types.h | 0 .../bind9/lib => lib}/isccc/include/isccc/util.h | 0 .../bind9/lib => lib}/isccc/include/isccc/version.h | 0 {contrib/bind9/lib => lib}/isccc/lib.c | 0 {contrib/bind9/lib => lib}/isccc/result.c | 0 {contrib/bind9/lib => lib}/isccc/sexpr.c | 0 {contrib/bind9/lib => lib}/isccc/symtab.c | 0 {contrib/bind9/lib => lib}/isccc/version.c | 0 {contrib/bind9/lib => lib}/isccfg/Makefile.in | 0 {contrib/bind9/lib => lib}/isccfg/aclconf.c | 0 {contrib/bind9/lib => lib}/isccfg/api | 0 .../bind9/lib => lib}/isccfg/include/Makefile.in | 0 .../lib => lib}/isccfg/include/isccfg/Makefile.in | 0 .../lib => lib}/isccfg/include/isccfg/aclconf.h | 0 .../bind9/lib => lib}/isccfg/include/isccfg/cfg.h | 0 .../lib => lib}/isccfg/include/isccfg/grammar.h | 0 .../bind9/lib => lib}/isccfg/include/isccfg/log.h | 0 .../lib => lib}/isccfg/include/isccfg/namedconf.h | 0 .../lib => lib}/isccfg/include/isccfg/version.h | 0 {contrib/bind9/lib => lib}/isccfg/log.c | 0 {contrib/bind9/lib => lib}/isccfg/namedconf.c | 0 {contrib/bind9/lib => lib}/isccfg/parser.c | 0 {contrib/bind9/lib => lib}/isccfg/version.c | 0 {contrib/bind9/lib => lib}/lwres/Makefile.in | 0 {contrib/bind9/lib => lib}/lwres/api | 0 {contrib/bind9/lib => lib}/lwres/assert_p.h | 0 {contrib/bind9/lib => lib}/lwres/context.c | 0 {contrib/bind9/lib => lib}/lwres/context_p.h | 0 {contrib/bind9/lib => lib}/lwres/gai_strerror.c | 0 {contrib/bind9/lib => lib}/lwres/getaddrinfo.c | 0 {contrib/bind9/lib => lib}/lwres/gethost.c | 0 {contrib/bind9/lib => lib}/lwres/getipnode.c | 0 {contrib/bind9/lib => lib}/lwres/getnameinfo.c | 0 {contrib/bind9/lib => lib}/lwres/getrrset.c | 0 {contrib/bind9/lib => lib}/lwres/herror.c | 0 .../bind9/lib => lib}/lwres/include/Makefile.in | 0 .../lib => lib}/lwres/include/lwres/Makefile.in | 0 .../bind9/lib => lib}/lwres/include/lwres/context.h | 0 .../bind9/lib => lib}/lwres/include/lwres/int.h | 0 .../bind9/lib => lib}/lwres/include/lwres/ipv6.h | 0 .../bind9/lib => lib}/lwres/include/lwres/lang.h | 0 .../bind9/lib => lib}/lwres/include/lwres/list.h | 0 .../lib => lib}/lwres/include/lwres/lwbuffer.h | 0 .../lib => lib}/lwres/include/lwres/lwpacket.h | 0 .../bind9/lib => lib}/lwres/include/lwres/lwres.h | 0 .../lib => lib}/lwres/include/lwres/netdb.h.in | 0 .../lib => lib}/lwres/include/lwres/platform.h.in | 0 .../bind9/lib => lib}/lwres/include/lwres/result.h | 0 .../bind9/lib => lib}/lwres/include/lwres/stdlib.h | 0 .../bind9/lib => lib}/lwres/include/lwres/version.h | 0 {contrib/bind9/lib => lib}/lwres/lwbuffer.c | 0 {contrib/bind9/lib => lib}/lwres/lwconfig.c | 0 {contrib/bind9/lib => lib}/lwres/lwinetaton.c | 0 {contrib/bind9/lib => lib}/lwres/lwinetntop.c | 0 {contrib/bind9/lib => lib}/lwres/lwinetpton.c | 0 {contrib/bind9/lib => lib}/lwres/lwpacket.c | 0 {contrib/bind9/lib => lib}/lwres/lwres_gabn.c | 0 {contrib/bind9/lib => lib}/lwres/lwres_gnba.c | 0 {contrib/bind9/lib => lib}/lwres/lwres_grbn.c | 0 {contrib/bind9/lib => lib}/lwres/lwres_noop.c | 0 {contrib/bind9/lib => lib}/lwres/lwresutil.c | 0 {contrib/bind9/lib => lib}/lwres/man/Makefile.in | 0 {contrib/bind9/lib => lib}/lwres/man/lwres.3 | 0 {contrib/bind9/lib => lib}/lwres/man/lwres.docbook | 0 {contrib/bind9/lib => lib}/lwres/man/lwres.html | 0 {contrib/bind9/lib => lib}/lwres/man/lwres_buffer.3 | 0 .../lib => lib}/lwres/man/lwres_buffer.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_buffer.html | 0 {contrib/bind9/lib => lib}/lwres/man/lwres_config.3 | 0 .../lib => lib}/lwres/man/lwres_config.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_config.html | 0 .../bind9/lib => lib}/lwres/man/lwres_context.3 | 0 .../lib => lib}/lwres/man/lwres_context.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_context.html | 0 {contrib/bind9/lib => lib}/lwres/man/lwres_gabn.3 | 0 .../bind9/lib => lib}/lwres/man/lwres_gabn.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_gabn.html | 0 .../lib => lib}/lwres/man/lwres_gai_strerror.3 | 0 .../lwres/man/lwres_gai_strerror.docbook | 0 .../lib => lib}/lwres/man/lwres_gai_strerror.html | 0 .../bind9/lib => lib}/lwres/man/lwres_getaddrinfo.3 | 0 .../lib => lib}/lwres/man/lwres_getaddrinfo.docbook | 0 .../lib => lib}/lwres/man/lwres_getaddrinfo.html | 0 .../bind9/lib => lib}/lwres/man/lwres_gethostent.3 | 0 .../lib => lib}/lwres/man/lwres_gethostent.docbook | 0 .../lib => lib}/lwres/man/lwres_gethostent.html | 0 .../bind9/lib => lib}/lwres/man/lwres_getipnode.3 | 0 .../lib => lib}/lwres/man/lwres_getipnode.docbook | 0 .../lib => lib}/lwres/man/lwres_getipnode.html | 0 .../bind9/lib => lib}/lwres/man/lwres_getnameinfo.3 | 0 .../lib => lib}/lwres/man/lwres_getnameinfo.docbook | 0 .../lib => lib}/lwres/man/lwres_getnameinfo.html | 0 .../lib => lib}/lwres/man/lwres_getrrsetbyname.3 | 0 .../lwres/man/lwres_getrrsetbyname.docbook | 0 .../lib => lib}/lwres/man/lwres_getrrsetbyname.html | 0 {contrib/bind9/lib => lib}/lwres/man/lwres_gnba.3 | 0 .../bind9/lib => lib}/lwres/man/lwres_gnba.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_gnba.html | 0 .../bind9/lib => lib}/lwres/man/lwres_hstrerror.3 | 0 .../lib => lib}/lwres/man/lwres_hstrerror.docbook | 0 .../lib => lib}/lwres/man/lwres_hstrerror.html | 0 .../bind9/lib => lib}/lwres/man/lwres_inetntop.3 | 0 .../lib => lib}/lwres/man/lwres_inetntop.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_inetntop.html | 0 {contrib/bind9/lib => lib}/lwres/man/lwres_noop.3 | 0 .../bind9/lib => lib}/lwres/man/lwres_noop.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_noop.html | 0 {contrib/bind9/lib => lib}/lwres/man/lwres_packet.3 | 0 .../lib => lib}/lwres/man/lwres_packet.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_packet.html | 0 .../bind9/lib => lib}/lwres/man/lwres_resutil.3 | 0 .../lib => lib}/lwres/man/lwres_resutil.docbook | 0 .../bind9/lib => lib}/lwres/man/lwres_resutil.html | 0 {contrib/bind9/lib => lib}/lwres/print.c | 0 {contrib/bind9/lib => lib}/lwres/print_p.h | 0 {contrib/bind9/lib => lib}/lwres/strtoul.c | 0 {contrib/bind9/lib => lib}/lwres/unix/Makefile.in | 0 .../lib => lib}/lwres/unix/include/Makefile.in | 0 .../lwres/unix/include/lwres/Makefile.in | 0 .../lib => lib}/lwres/unix/include/lwres/net.h | 0 {contrib/bind9/lib => lib}/lwres/version.c | 0 contrib/bind9/libtool.m4 => libtool.m4 | 0 contrib/bind9/ltmain.sh => ltmain.sh | 0 {contrib/bind9/make => make}/Makefile.in | 0 {contrib/bind9/make => make}/includes.in | 0 {contrib/bind9/make => make}/mkdep.in | 0 {contrib/bind9/make => make}/rules.in | 0 contrib/bind9/mkinstalldirs => mkinstalldirs | 0 contrib/bind9/version => version | 0 1179 files changed, 0 insertions(+), 0 deletions(-) rename contrib/bind9/CHANGES => CHANGES (100%) rename contrib/bind9/COPYRIGHT => COPYRIGHT (100%) rename contrib/bind9/FAQ => FAQ (100%) rename contrib/bind9/FAQ.xml => FAQ.xml (100%) rename contrib/bind9/Makefile.in => Makefile.in (100%) rename contrib/bind9/README => README (100%) rename contrib/bind9/README.idnkit => README.idnkit (100%) rename contrib/bind9/acconfig.h => acconfig.h (100%) rename {contrib/bind9/bin => bin}/Makefile.in (100%) rename {contrib/bind9/bin => bin}/check/Makefile.in (100%) rename {contrib/bind9/bin => bin}/check/check-tool.c (100%) rename {contrib/bind9/bin => bin}/check/check-tool.h (100%) rename {contrib/bind9/bin => bin}/check/named-checkconf.8 (100%) rename {contrib/bind9/bin => bin}/check/named-checkconf.c (100%) rename {contrib/bind9/bin => bin}/check/named-checkconf.docbook (100%) rename {contrib/bind9/bin => bin}/check/named-checkconf.html (100%) rename {contrib/bind9/bin => bin}/check/named-checkzone.8 (100%) rename {contrib/bind9/bin => bin}/check/named-checkzone.c (100%) rename {contrib/bind9/bin => bin}/check/named-checkzone.docbook (100%) rename {contrib/bind9/bin => bin}/check/named-checkzone.html (100%) rename {contrib/bind9/bin => bin}/dig/Makefile.in (100%) rename {contrib/bind9/bin => bin}/dig/dig.1 (100%) rename {contrib/bind9/bin => bin}/dig/dig.c (100%) rename {contrib/bind9/bin => bin}/dig/dig.docbook (100%) rename {contrib/bind9/bin => bin}/dig/dig.html (100%) rename {contrib/bind9/bin => bin}/dig/dighost.c (100%) rename {contrib/bind9/bin => bin}/dig/host.1 (100%) rename {contrib/bind9/bin => bin}/dig/host.c (100%) rename {contrib/bind9/bin => bin}/dig/host.docbook (100%) rename {contrib/bind9/bin => bin}/dig/host.html (100%) rename {contrib/bind9/bin => bin}/dig/include/dig/dig.h (100%) rename {contrib/bind9/bin => bin}/dig/nslookup.1 (100%) rename {contrib/bind9/bin => bin}/dig/nslookup.c (100%) rename {contrib/bind9/bin => bin}/dig/nslookup.docbook (100%) rename {contrib/bind9/bin => bin}/dig/nslookup.html (100%) rename {contrib/bind9/bin => bin}/dnssec/Makefile.in (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-keygen.8 (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-keygen.c (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-keygen.docbook (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-keygen.html (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-signzone.8 (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-signzone.c (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-signzone.docbook (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssec-signzone.html (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssectool.c (100%) rename {contrib/bind9/bin => bin}/dnssec/dnssectool.h (100%) rename {contrib/bind9/bin => bin}/named/Makefile.in (100%) rename {contrib/bind9/bin => bin}/named/builtin.c (100%) rename {contrib/bind9/bin => bin}/named/client.c (100%) rename {contrib/bind9/bin => bin}/named/config.c (100%) rename {contrib/bind9/bin => bin}/named/control.c (100%) rename {contrib/bind9/bin => bin}/named/controlconf.c (100%) rename {contrib/bind9/bin => bin}/named/include/named/builtin.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/client.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/config.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/control.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/globals.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/interfacemgr.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/listenlist.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/log.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/logconf.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/lwaddr.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/lwdclient.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/lwresd.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/lwsearch.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/main.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/notify.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/ns_smf_globals.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/query.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/server.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/sortlist.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/tkeyconf.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/tsigconf.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/types.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/update.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/xfrout.h (100%) rename {contrib/bind9/bin => bin}/named/include/named/zoneconf.h (100%) rename {contrib/bind9/bin => bin}/named/interfacemgr.c (100%) rename {contrib/bind9/bin => bin}/named/listenlist.c (100%) rename {contrib/bind9/bin => bin}/named/log.c (100%) rename {contrib/bind9/bin => bin}/named/logconf.c (100%) rename {contrib/bind9/bin => bin}/named/lwaddr.c (100%) rename {contrib/bind9/bin => bin}/named/lwdclient.c (100%) rename {contrib/bind9/bin => bin}/named/lwderror.c (100%) rename {contrib/bind9/bin => bin}/named/lwdgabn.c (100%) rename {contrib/bind9/bin => bin}/named/lwdgnba.c (100%) rename {contrib/bind9/bin => bin}/named/lwdgrbn.c (100%) rename {contrib/bind9/bin => bin}/named/lwdnoop.c (100%) rename {contrib/bind9/bin => bin}/named/lwresd.8 (100%) rename {contrib/bind9/bin => bin}/named/lwresd.c (100%) rename {contrib/bind9/bin => bin}/named/lwresd.docbook (100%) rename {contrib/bind9/bin => bin}/named/lwresd.html (100%) rename {contrib/bind9/bin => bin}/named/lwsearch.c (100%) rename {contrib/bind9/bin => bin}/named/main.c (100%) rename {contrib/bind9/bin => bin}/named/named.8 (100%) rename {contrib/bind9/bin => bin}/named/named.conf.5 (100%) rename {contrib/bind9/bin => bin}/named/named.conf.docbook (100%) rename {contrib/bind9/bin => bin}/named/named.conf.html (100%) rename {contrib/bind9/bin => bin}/named/named.docbook (100%) rename {contrib/bind9/bin => bin}/named/named.html (100%) rename {contrib/bind9/bin => bin}/named/notify.c (100%) rename {contrib/bind9/bin => bin}/named/query.c (100%) rename {contrib/bind9/bin => bin}/named/server.c (100%) rename {contrib/bind9/bin => bin}/named/sortlist.c (100%) rename {contrib/bind9/bin => bin}/named/tkeyconf.c (100%) rename {contrib/bind9/bin => bin}/named/tsigconf.c (100%) rename {contrib/bind9/bin => bin}/named/unix/Makefile.in (100%) rename {contrib/bind9/bin => bin}/named/unix/include/named/os.h (100%) rename {contrib/bind9/bin => bin}/named/unix/os.c (100%) rename {contrib/bind9/bin => bin}/named/update.c (100%) rename {contrib/bind9/bin => bin}/named/xfrout.c (100%) rename {contrib/bind9/bin => bin}/named/zoneconf.c (100%) rename {contrib/bind9/bin => bin}/nsupdate/Makefile.in (100%) rename {contrib/bind9/bin => bin}/nsupdate/nsupdate.8 (100%) rename {contrib/bind9/bin => bin}/nsupdate/nsupdate.c (100%) rename {contrib/bind9/bin => bin}/nsupdate/nsupdate.docbook (100%) rename {contrib/bind9/bin => bin}/nsupdate/nsupdate.html (100%) rename {contrib/bind9/bin => bin}/rndc/Makefile.in (100%) rename {contrib/bind9/bin => bin}/rndc/include/rndc/os.h (100%) rename {contrib/bind9/bin => bin}/rndc/rndc-confgen.8 (100%) rename {contrib/bind9/bin => bin}/rndc/rndc-confgen.c (100%) rename {contrib/bind9/bin => bin}/rndc/rndc-confgen.docbook (100%) rename {contrib/bind9/bin => bin}/rndc/rndc-confgen.html (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.8 (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.c (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.conf (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.conf.5 (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.conf.docbook (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.conf.html (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.docbook (100%) rename {contrib/bind9/bin => bin}/rndc/rndc.html (100%) rename {contrib/bind9/bin => bin}/rndc/unix/Makefile.in (100%) rename {contrib/bind9/bin => bin}/rndc/unix/os.c (100%) rename {contrib/bind9/bin => bin}/rndc/util.c (100%) rename {contrib/bind9/bin => bin}/rndc/util.h (100%) rename contrib/bind9/config.guess => config.guess (100%) rename contrib/bind9/config.sub => config.sub (100%) rename contrib/bind9/config.threads.in => config.threads.in (100%) rename contrib/bind9/configure.in => configure.in (100%) rename {contrib/bind9/doc => doc}/Makefile.in (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM-book.xml (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch01.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch02.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch03.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch04.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch05.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch06.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch07.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch08.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch09.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.ch10.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.html (100%) rename {contrib/bind9/doc => doc}/arm/Bv9ARM.pdf (100%) rename {contrib/bind9/doc => doc}/arm/Makefile.in (100%) rename {contrib/bind9/doc => doc}/arm/README-SGML (100%) rename {contrib/bind9/doc => doc}/arm/isc-logo.eps (100%) rename {contrib/bind9/doc => doc}/arm/isc-logo.pdf (100%) rename {contrib/bind9/doc => doc}/arm/man.dig.html (100%) rename {contrib/bind9/doc => doc}/arm/man.dnssec-keygen.html (100%) rename {contrib/bind9/doc => doc}/arm/man.dnssec-signzone.html (100%) rename {contrib/bind9/doc => doc}/arm/man.host.html (100%) rename {contrib/bind9/doc => doc}/arm/man.named-checkconf.html (100%) rename {contrib/bind9/doc => doc}/arm/man.named-checkzone.html (100%) rename {contrib/bind9/doc => doc}/arm/man.named.html (100%) rename {contrib/bind9/doc => doc}/arm/man.rndc-confgen.html (100%) rename {contrib/bind9/doc => doc}/arm/man.rndc.conf.html (100%) rename {contrib/bind9/doc => doc}/arm/man.rndc.html (100%) rename {contrib/bind9/doc => doc}/draft/draft-baba-dnsext-acl-reqts-01.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-daigle-napstr-04.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-danisch-dns-rr-smtp-03.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-dnsext-opcode-discover-02.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-durand-dnsop-dynreverse-00.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-2929bis-01.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-axfr-clarify-05.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dhcid-rr-12.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dns-name-p-s-00.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dnssec-2535typecode-change-06.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dnssec-bis-updates-01.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dnssec-experiments-01.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dnssec-opt-in-07.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-dnssec-trans-02.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-ds-sha256-05.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-ecc-key-07.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-interop3597-02.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-keyrr-key-signing-flag-12.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-mdns-43.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-nsec3-04.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-nsid-01.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-rfc2538bis-04.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-signed-nonexistence-requirements-01.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-tkey-renewal-mode-05.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-trustupdate-timers-02.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-tsig-sha-06.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsext-wcard-clarify-10.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-bad-dns-res-05.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-inaddr-required-07.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-ipv6-dns-configuration-06.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-ipv6-transport-guidelines-01.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-key-rollover-requirements-02.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-respsize-02.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-dnsop-serverid-06.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-enum-e164-gstn-np-05.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-ipv6-node-requirements-08.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ietf-secsh-dns-05.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-ihren-dnsext-threshold-validation-00.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-kato-dnsop-local-zones-00.txt (100%) rename {contrib/bind9/doc => doc}/draft/draft-park-ipv6-extensions-dns-pnp-00.txt (100%) rename {contrib/bind9/doc => doc}/draft/update (100%) rename {contrib/bind9/doc => doc}/misc/Makefile.in (100%) rename {contrib/bind9/doc => doc}/misc/dnssec (100%) rename {contrib/bind9/doc => doc}/misc/format-options.pl (100%) rename {contrib/bind9/doc => doc}/misc/ipv6 (100%) rename {contrib/bind9/doc => doc}/misc/migration (100%) rename {contrib/bind9/doc => doc}/misc/migration-4to9 (100%) rename {contrib/bind9/doc => doc}/misc/options (100%) rename {contrib/bind9/doc => doc}/misc/rfc-compliance (100%) rename {contrib/bind9/doc => doc}/misc/roadmap (100%) rename {contrib/bind9/doc => doc}/misc/sdb (100%) rename {contrib/bind9/doc => doc}/rfc/index (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1032.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1033.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1034.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1035.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1101.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1122.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1123.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1183.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1348.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1535.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1536.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1537.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1591.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1611.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1612.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1706.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1712.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1750.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1876.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1886.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1982.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1995.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc1996.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2052.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2104.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2119.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2133.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2136.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2137.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2163.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2168.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2181.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2230.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2308.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2317.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2373.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2374.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2375.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2418.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2535.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2536.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2537.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2538.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2539.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2540.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2541.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2553.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2671.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2672.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2673.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2782.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2825.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2826.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2845.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2874.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2915.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2929.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2930.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc2931.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3007.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3008.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3071.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3090.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3110.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3123.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3152.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3197.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3225.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3226.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3258.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3363.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3364.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3425.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3445.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3467.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3490.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3491.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3492.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3493.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3513.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3596.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3597.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3645.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3655.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3658.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3757.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3833.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3845.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc3901.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4025.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4033.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4034.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4035.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4074.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4159.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4193.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4255.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4343.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4367.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4398.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4408.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4431.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4470.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4634.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc4641.txt (100%) rename {contrib/bind9/doc => doc}/rfc/rfc952.txt (100%) rename contrib/bind9/install-sh => install-sh (100%) rename contrib/bind9/isc-config.sh.in => isc-config.sh.in (100%) rename {contrib/bind9/lib => lib}/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/README (100%) rename {contrib/bind9/lib => lib}/bind/aclocal.m4 (100%) rename {contrib/bind9/lib => lib}/bind/api (100%) rename {contrib/bind9/lib => lib}/bind/bsd/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/bsd/daemon.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/ftruncate.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/gettimeofday.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/mktemp.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/putenv.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/readv.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/setenv.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/setitimer.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/strcasecmp.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/strdup.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/strerror.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/strpbrk.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/strsep.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/strtoul.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/utimes.c (100%) rename {contrib/bind9/lib => lib}/bind/bsd/writev.c (100%) rename {contrib/bind9/lib => lib}/bind/config.h.in (100%) rename {contrib/bind9/lib => lib}/bind/configure (100%) rename {contrib/bind9/lib => lib}/bind/configure.in (100%) rename {contrib/bind9/lib => lib}/bind/dst/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/dst/dst_api.c (100%) rename {contrib/bind9/lib => lib}/bind/dst/dst_internal.h (100%) rename {contrib/bind9/lib => lib}/bind/dst/hmac_link.c (100%) rename {contrib/bind9/lib => lib}/bind/dst/md5.h (100%) rename {contrib/bind9/lib => lib}/bind/dst/md5_dgst.c (100%) rename {contrib/bind9/lib => lib}/bind/dst/md5_locl.h (100%) rename {contrib/bind9/lib => lib}/bind/dst/support.c (100%) rename {contrib/bind9/lib => lib}/bind/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/include/arpa/inet.h (100%) rename {contrib/bind9/lib => lib}/bind/include/arpa/nameser.h (100%) rename {contrib/bind9/lib => lib}/bind/include/arpa/nameser_compat.h (100%) rename {contrib/bind9/lib => lib}/bind/include/fd_setsize.h (100%) rename {contrib/bind9/lib => lib}/bind/include/hesiod.h (100%) rename {contrib/bind9/lib => lib}/bind/include/irp.h (100%) rename {contrib/bind9/lib => lib}/bind/include/irs.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/assertions.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/ctl.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/dst.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/eventlib.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/heap.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/irpmarshall.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/list.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/logging.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/memcluster.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/misc.h (100%) rename {contrib/bind9/lib => lib}/bind/include/isc/tree.h (100%) rename {contrib/bind9/lib => lib}/bind/include/netdb.h (100%) rename {contrib/bind9/lib => lib}/bind/include/netgroup.h (100%) rename {contrib/bind9/lib => lib}/bind/include/res_update.h (100%) rename {contrib/bind9/lib => lib}/bind/include/resolv.h (100%) rename {contrib/bind9/lib => lib}/bind/include/resolv_mt.h (100%) rename {contrib/bind9/lib => lib}/bind/inet/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_addr.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_cidr_ntop.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_cidr_pton.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_data.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_lnaof.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_makeaddr.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_net_ntop.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_net_pton.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_neta.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_netof.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_network.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_ntoa.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_ntop.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/inet_pton.c (100%) rename {contrib/bind9/lib => lib}/bind/inet/nsap_addr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns_gr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns_ho.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns_nw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns_p.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns_pr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns_pw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/dns_sv.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gai_strerror.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_gr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_ho.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_ng.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_nw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_p.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_pr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_pw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gen_sv.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getaddrinfo.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getgrent.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getgrent_r.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gethostent.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/gethostent_r.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getnameinfo.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getnetent.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getnetent_r.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getnetgrent.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getnetgrent_r.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getprotoent.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getprotoent_r.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getpwent.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getpwent_r.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getservent.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/getservent_r.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/hesiod.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/hesiod_p.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_gr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_ho.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_ng.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_nw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_p.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_pr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_pw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irp_sv.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irpmarshall.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irs_data.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/irs_data.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/irs_p.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_gr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_ho.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_ng.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_nw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_p.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_pr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_pw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/lcl_sv.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_gr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_ho.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_ng.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_nw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_p.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_pr.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_pw.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nis_sv.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/nul_ng.c (100%) rename {contrib/bind9/lib => lib}/bind/irs/pathnames.h (100%) rename {contrib/bind9/lib => lib}/bind/irs/util.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/isc/assertions.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/assertions.mdoc (100%) rename {contrib/bind9/lib => lib}/bind/isc/base64.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/bitncmp.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/bitncmp.mdoc (100%) rename {contrib/bind9/lib => lib}/bind/isc/ctl_clnt.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/ctl_p.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/ctl_p.h (100%) rename {contrib/bind9/lib => lib}/bind/isc/ctl_srvr.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/ev_connects.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/ev_files.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/ev_streams.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/ev_timers.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/ev_waits.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/eventlib.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/eventlib.mdoc (100%) rename {contrib/bind9/lib => lib}/bind/isc/eventlib_p.h (100%) rename {contrib/bind9/lib => lib}/bind/isc/heap.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/heap.mdoc (100%) rename {contrib/bind9/lib => lib}/bind/isc/hex.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/logging.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/logging.mdoc (100%) rename {contrib/bind9/lib => lib}/bind/isc/logging_p.h (100%) rename {contrib/bind9/lib => lib}/bind/isc/memcluster.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/memcluster.mdoc (100%) rename {contrib/bind9/lib => lib}/bind/isc/movefile.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/tree.c (100%) rename {contrib/bind9/lib => lib}/bind/isc/tree.mdoc (100%) rename {contrib/bind9/lib => lib}/bind/make/includes.in (100%) rename {contrib/bind9/lib => lib}/bind/make/mkdep.in (100%) rename {contrib/bind9/lib => lib}/bind/make/rules.in (100%) rename {contrib/bind9/lib => lib}/bind/mkinstalldirs (100%) rename {contrib/bind9/lib => lib}/bind/nameser/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_date.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_name.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_netint.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_parse.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_print.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_samedomain.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_sign.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_ttl.c (100%) rename {contrib/bind9/lib => lib}/bind/nameser/ns_verify.c (100%) rename {contrib/bind9/lib => lib}/bind/port/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/port/freebsd/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/port/freebsd/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/port/freebsd/include/sys/bitypes.h (100%) rename {contrib/bind9/lib => lib}/bind/port_after.h.in (100%) rename {contrib/bind9/lib => lib}/bind/port_before.h.in (100%) rename {contrib/bind9/lib => lib}/bind/resolv/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind/resolv/herror.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/mtctxres.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_comp.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_data.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_debug.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_debug.h (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_findzonecut.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_init.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_mkquery.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_mkupdate.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_mkupdate.h (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_private.h (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_query.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_send.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_sendsigned.c (100%) rename {contrib/bind9/lib => lib}/bind/resolv/res_update.c (100%) rename {contrib/bind9/lib => lib}/bind9/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind9/api (100%) rename {contrib/bind9/lib => lib}/bind9/check.c (100%) rename {contrib/bind9/lib => lib}/bind9/getaddresses.c (100%) rename {contrib/bind9/lib => lib}/bind9/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind9/include/bind9/Makefile.in (100%) rename {contrib/bind9/lib => lib}/bind9/include/bind9/check.h (100%) rename {contrib/bind9/lib => lib}/bind9/include/bind9/getaddresses.h (100%) rename {contrib/bind9/lib => lib}/bind9/include/bind9/version.h (100%) rename {contrib/bind9/lib => lib}/bind9/version.c (100%) rename {contrib/bind9/lib => lib}/dns/Makefile.in (100%) rename {contrib/bind9/lib => lib}/dns/acache.c (100%) rename {contrib/bind9/lib => lib}/dns/acl.c (100%) rename {contrib/bind9/lib => lib}/dns/adb.c (100%) rename {contrib/bind9/lib => lib}/dns/api (100%) rename {contrib/bind9/lib => lib}/dns/byaddr.c (100%) rename {contrib/bind9/lib => lib}/dns/cache.c (100%) rename {contrib/bind9/lib => lib}/dns/callbacks.c (100%) rename {contrib/bind9/lib => lib}/dns/compress.c (100%) rename {contrib/bind9/lib => lib}/dns/db.c (100%) rename {contrib/bind9/lib => lib}/dns/dbiterator.c (100%) rename {contrib/bind9/lib => lib}/dns/dbtable.c (100%) rename {contrib/bind9/lib => lib}/dns/diff.c (100%) rename {contrib/bind9/lib => lib}/dns/dispatch.c (100%) rename {contrib/bind9/lib => lib}/dns/dlz.c (100%) rename {contrib/bind9/lib => lib}/dns/dnssec.c (100%) rename {contrib/bind9/lib => lib}/dns/ds.c (100%) rename {contrib/bind9/lib => lib}/dns/dst_api.c (100%) rename {contrib/bind9/lib => lib}/dns/dst_internal.h (100%) rename {contrib/bind9/lib => lib}/dns/dst_lib.c (100%) rename {contrib/bind9/lib => lib}/dns/dst_openssl.h (100%) rename {contrib/bind9/lib => lib}/dns/dst_parse.c (100%) rename {contrib/bind9/lib => lib}/dns/dst_parse.h (100%) rename {contrib/bind9/lib => lib}/dns/dst_result.c (100%) rename {contrib/bind9/lib => lib}/dns/forward.c (100%) rename {contrib/bind9/lib => lib}/dns/gen-unix.h (100%) rename {contrib/bind9/lib => lib}/dns/gen.c (100%) rename {contrib/bind9/lib => lib}/dns/gssapi_link.c (100%) rename {contrib/bind9/lib => lib}/dns/gssapictx.c (100%) rename {contrib/bind9/lib => lib}/dns/hmac_link.c (100%) rename {contrib/bind9/lib => lib}/dns/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/Makefile.in (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/acache.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/acl.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/adb.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/bit.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/byaddr.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/cache.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/callbacks.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/cert.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/compress.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/db.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/dbiterator.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/dbtable.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/diff.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/dispatch.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/dlz.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/dnssec.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/ds.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/events.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/fixedname.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/forward.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/journal.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/keyflags.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/keytable.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/keyvalues.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/lib.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/log.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/lookup.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/master.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/masterdump.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/message.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/name.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/ncache.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/nsec.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/opcode.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/order.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/peer.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/portlist.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rbt.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rcode.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rdata.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rdataclass.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rdatalist.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rdataset.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rdatasetiter.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rdataslab.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rdatatype.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/request.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/resolver.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/result.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/rootns.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/sdb.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/sdlz.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/secalg.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/secproto.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/soa.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/ssu.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/stats.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/tcpmsg.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/time.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/timer.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/tkey.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/tsig.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/ttl.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/types.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/validator.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/version.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/view.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/xfrin.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/zone.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/zonekey.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dns/zt.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dst/Makefile.in (100%) rename {contrib/bind9/lib => lib}/dns/include/dst/dst.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dst/gssapi.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dst/lib.h (100%) rename {contrib/bind9/lib => lib}/dns/include/dst/result.h (100%) rename {contrib/bind9/lib => lib}/dns/journal.c (100%) rename {contrib/bind9/lib => lib}/dns/key.c (100%) rename {contrib/bind9/lib => lib}/dns/keytable.c (100%) rename {contrib/bind9/lib => lib}/dns/lib.c (100%) rename {contrib/bind9/lib => lib}/dns/log.c (100%) rename {contrib/bind9/lib => lib}/dns/lookup.c (100%) rename {contrib/bind9/lib => lib}/dns/master.c (100%) rename {contrib/bind9/lib => lib}/dns/masterdump.c (100%) rename {contrib/bind9/lib => lib}/dns/message.c (100%) rename {contrib/bind9/lib => lib}/dns/name.c (100%) rename {contrib/bind9/lib => lib}/dns/ncache.c (100%) rename {contrib/bind9/lib => lib}/dns/nsec.c (100%) rename {contrib/bind9/lib => lib}/dns/openssl_link.c (100%) rename {contrib/bind9/lib => lib}/dns/openssldh_link.c (100%) rename {contrib/bind9/lib => lib}/dns/openssldsa_link.c (100%) rename {contrib/bind9/lib => lib}/dns/opensslrsa_link.c (100%) rename {contrib/bind9/lib => lib}/dns/order.c (100%) rename {contrib/bind9/lib => lib}/dns/peer.c (100%) rename {contrib/bind9/lib => lib}/dns/portlist.c (100%) rename {contrib/bind9/lib => lib}/dns/rbt.c (100%) rename {contrib/bind9/lib => lib}/dns/rbtdb.c (100%) rename {contrib/bind9/lib => lib}/dns/rbtdb.h (100%) rename {contrib/bind9/lib => lib}/dns/rbtdb64.c (100%) rename {contrib/bind9/lib => lib}/dns/rbtdb64.h (100%) rename {contrib/bind9/lib => lib}/dns/rcode.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/any_255/tsig_250.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/any_255/tsig_250.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/ch_3/a_1.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/ch_3/a_1.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/afsdb_18.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/afsdb_18.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/cert_37.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/cert_37.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/cname_5.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/cname_5.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/dlv_32769.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/dlv_32769.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/dname_39.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/dname_39.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/dnskey_48.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/dnskey_48.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ds_43.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ds_43.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/gpos_27.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/gpos_27.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/hinfo_13.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/hinfo_13.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ipseckey_45.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ipseckey_45.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/isdn_20.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/isdn_20.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/key_25.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/key_25.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/loc_29.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/loc_29.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mb_7.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mb_7.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/md_3.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/md_3.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mf_4.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mf_4.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mg_8.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mg_8.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/minfo_14.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/minfo_14.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mr_9.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mr_9.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mx_15.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/mx_15.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ns_2.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ns_2.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/nsec_47.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/nsec_47.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/null_10.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/null_10.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/nxt_30.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/nxt_30.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/opt_41.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/opt_41.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/proforma.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/proforma.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ptr_12.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/ptr_12.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/rp_17.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/rp_17.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/rrsig_46.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/rrsig_46.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/rt_21.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/rt_21.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/sig_24.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/sig_24.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/soa_6.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/soa_6.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/spf_99.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/spf_99.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/sshfp_44.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/sshfp_44.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/tkey_249.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/tkey_249.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/txt_16.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/txt_16.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/unspec_103.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/unspec_103.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/x25_19.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/generic/x25_19.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/hs_4/a_1.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/hs_4/a_1.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/a6_38.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/a6_38.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/a_1.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/a_1.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/aaaa_28.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/aaaa_28.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/apl_42.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/apl_42.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/kx_36.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/kx_36.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/naptr_35.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/naptr_35.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/nsap-ptr_23.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/nsap-ptr_23.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/nsap_22.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/nsap_22.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/px_26.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/px_26.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/srv_33.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/srv_33.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/wks_11.c (100%) rename {contrib/bind9/lib => lib}/dns/rdata/in_1/wks_11.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/rdatastructpre.h (100%) rename {contrib/bind9/lib => lib}/dns/rdata/rdatastructsuf.h (100%) rename {contrib/bind9/lib => lib}/dns/rdatalist.c (100%) rename {contrib/bind9/lib => lib}/dns/rdatalist_p.h (100%) rename {contrib/bind9/lib => lib}/dns/rdataset.c (100%) rename {contrib/bind9/lib => lib}/dns/rdatasetiter.c (100%) rename {contrib/bind9/lib => lib}/dns/rdataslab.c (100%) rename {contrib/bind9/lib => lib}/dns/request.c (100%) rename {contrib/bind9/lib => lib}/dns/resolver.c (100%) rename {contrib/bind9/lib => lib}/dns/result.c (100%) rename {contrib/bind9/lib => lib}/dns/rootns.c (100%) rename {contrib/bind9/lib => lib}/dns/sdb.c (100%) rename {contrib/bind9/lib => lib}/dns/sdlz.c (100%) rename {contrib/bind9/lib => lib}/dns/soa.c (100%) rename {contrib/bind9/lib => lib}/dns/ssu.c (100%) rename {contrib/bind9/lib => lib}/dns/stats.c (100%) rename {contrib/bind9/lib => lib}/dns/tcpmsg.c (100%) rename {contrib/bind9/lib => lib}/dns/time.c (100%) rename {contrib/bind9/lib => lib}/dns/timer.c (100%) rename {contrib/bind9/lib => lib}/dns/tkey.c (100%) rename {contrib/bind9/lib => lib}/dns/tsig.c (100%) rename {contrib/bind9/lib => lib}/dns/ttl.c (100%) rename {contrib/bind9/lib => lib}/dns/validator.c (100%) rename {contrib/bind9/lib => lib}/dns/version.c (100%) rename {contrib/bind9/lib => lib}/dns/view.c (100%) rename {contrib/bind9/lib => lib}/dns/xfrin.c (100%) rename {contrib/bind9/lib => lib}/dns/zone.c (100%) rename {contrib/bind9/lib => lib}/dns/zonekey.c (100%) rename {contrib/bind9/lib => lib}/dns/zt.c (100%) rename {contrib/bind9/lib => lib}/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/alpha/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/alpha/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/alpha/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/alpha/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/api (100%) rename {contrib/bind9/lib => lib}/isc/arm/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/assertions.c (100%) rename {contrib/bind9/lib => lib}/isc/base64.c (100%) rename {contrib/bind9/lib => lib}/isc/bitstring.c (100%) rename {contrib/bind9/lib => lib}/isc/buffer.c (100%) rename {contrib/bind9/lib => lib}/isc/bufferlist.c (100%) rename {contrib/bind9/lib => lib}/isc/commandline.c (100%) rename {contrib/bind9/lib => lib}/isc/entropy.c (100%) rename {contrib/bind9/lib => lib}/isc/error.c (100%) rename {contrib/bind9/lib => lib}/isc/event.c (100%) rename {contrib/bind9/lib => lib}/isc/fsaccess.c (100%) rename {contrib/bind9/lib => lib}/isc/hash.c (100%) rename {contrib/bind9/lib => lib}/isc/heap.c (100%) rename {contrib/bind9/lib => lib}/isc/hex.c (100%) rename {contrib/bind9/lib => lib}/isc/hmacmd5.c (100%) rename {contrib/bind9/lib => lib}/isc/hmacsha.c (100%) rename {contrib/bind9/lib => lib}/isc/ia64/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/ia64/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/ia64/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/ia64/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/app.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/assertions.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/base64.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/bitstring.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/boolean.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/buffer.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/bufferlist.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/commandline.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/entropy.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/error.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/event.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/eventclass.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/file.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/formatcheck.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/fsaccess.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/hash.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/heap.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/hex.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/hmacmd5.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/hmacsha.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/interfaceiter.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/ipv6.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/lang.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/lex.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/lfsr.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/lib.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/list.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/log.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/magic.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/md5.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/mem.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/msgcat.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/msgs.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/mutexblock.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/netaddr.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/netscope.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/ondestroy.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/os.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/parseint.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/platform.h.in (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/print.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/quota.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/random.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/ratelimiter.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/refcount.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/region.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/resource.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/result.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/resultclass.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/rwlock.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/serial.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/sha1.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/sha2.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/sockaddr.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/socket.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/stdio.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/stdlib.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/string.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/symtab.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/task.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/taskpool.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/timer.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/types.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/util.h (100%) rename {contrib/bind9/lib => lib}/isc/include/isc/version.h (100%) rename {contrib/bind9/lib => lib}/isc/inet_aton.c (100%) rename {contrib/bind9/lib => lib}/isc/inet_ntop.c (100%) rename {contrib/bind9/lib => lib}/isc/inet_pton.c (100%) rename {contrib/bind9/lib => lib}/isc/lex.c (100%) rename {contrib/bind9/lib => lib}/isc/lfsr.c (100%) rename {contrib/bind9/lib => lib}/isc/lib.c (100%) rename {contrib/bind9/lib => lib}/isc/log.c (100%) rename {contrib/bind9/lib => lib}/isc/md5.c (100%) rename {contrib/bind9/lib => lib}/isc/mem.c (100%) rename {contrib/bind9/lib => lib}/isc/mips/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/mips/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/mips/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/mips/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/mutexblock.c (100%) rename {contrib/bind9/lib => lib}/isc/netaddr.c (100%) rename {contrib/bind9/lib => lib}/isc/netscope.c (100%) rename {contrib/bind9/lib => lib}/isc/nls/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/nls/msgcat.c (100%) rename {contrib/bind9/lib => lib}/isc/noatomic/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/noatomic/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/noatomic/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/noatomic/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/condition.c (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/include/isc/condition.h (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/include/isc/mutex.h (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/include/isc/once.h (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/include/isc/thread.h (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/mutex.c (100%) rename {contrib/bind9/lib => lib}/isc/nothreads/thread.c (100%) rename {contrib/bind9/lib => lib}/isc/ondestroy.c (100%) rename {contrib/bind9/lib => lib}/isc/parseint.c (100%) rename {contrib/bind9/lib => lib}/isc/powerpc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/powerpc/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/powerpc/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/powerpc/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/print.c (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/condition.c (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/include/isc/condition.h (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/include/isc/mutex.h (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/include/isc/once.h (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/include/isc/thread.h (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/mutex.c (100%) rename {contrib/bind9/lib => lib}/isc/pthreads/thread.c (100%) rename {contrib/bind9/lib => lib}/isc/quota.c (100%) rename {contrib/bind9/lib => lib}/isc/random.c (100%) rename {contrib/bind9/lib => lib}/isc/ratelimiter.c (100%) rename {contrib/bind9/lib => lib}/isc/refcount.c (100%) rename {contrib/bind9/lib => lib}/isc/region.c (100%) rename {contrib/bind9/lib => lib}/isc/result.c (100%) rename {contrib/bind9/lib => lib}/isc/rwlock.c (100%) rename {contrib/bind9/lib => lib}/isc/serial.c (100%) rename {contrib/bind9/lib => lib}/isc/sha1.c (100%) rename {contrib/bind9/lib => lib}/isc/sha2.c (100%) rename {contrib/bind9/lib => lib}/isc/sockaddr.c (100%) rename {contrib/bind9/lib => lib}/isc/sparc64/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/sparc64/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/sparc64/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/sparc64/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/string.c (100%) rename {contrib/bind9/lib => lib}/isc/strtoul.c (100%) rename {contrib/bind9/lib => lib}/isc/symtab.c (100%) rename {contrib/bind9/lib => lib}/isc/task.c (100%) rename {contrib/bind9/lib => lib}/isc/task_p.h (100%) rename {contrib/bind9/lib => lib}/isc/taskpool.c (100%) rename {contrib/bind9/lib => lib}/isc/timer.c (100%) rename {contrib/bind9/lib => lib}/isc/timer_p.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/unix/app.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/dir.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/entropy.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/errno2result.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/errno2result.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/file.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/fsaccess.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/ifiter_getifaddrs.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/ifiter_ioctl.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/ifiter_sysctl.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/dir.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/int.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/keyboard.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/net.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/netdb.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/offset.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/stat.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/stdtime.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/strerror.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/syslog.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/include/isc/time.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/interfaceiter.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/ipv6.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/keyboard.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/net.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/os.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/resource.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/socket.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/socket_p.h (100%) rename {contrib/bind9/lib => lib}/isc/unix/stdio.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/stdtime.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/strerror.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/syslog.c (100%) rename {contrib/bind9/lib => lib}/isc/unix/time.c (100%) rename {contrib/bind9/lib => lib}/isc/version.c (100%) rename {contrib/bind9/lib => lib}/isc/x86_32/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/x86_32/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/x86_32/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/x86_32/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isc/x86_64/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/x86_64/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/x86_64/include/isc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isc/x86_64/include/isc/atomic.h (100%) rename {contrib/bind9/lib => lib}/isccc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isccc/alist.c (100%) rename {contrib/bind9/lib => lib}/isccc/api (100%) rename {contrib/bind9/lib => lib}/isccc/base64.c (100%) rename {contrib/bind9/lib => lib}/isccc/cc.c (100%) rename {contrib/bind9/lib => lib}/isccc/ccmsg.c (100%) rename {contrib/bind9/lib => lib}/isccc/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/alist.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/base64.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/cc.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/ccmsg.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/events.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/lib.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/result.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/sexpr.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/symtab.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/symtype.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/types.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/util.h (100%) rename {contrib/bind9/lib => lib}/isccc/include/isccc/version.h (100%) rename {contrib/bind9/lib => lib}/isccc/lib.c (100%) rename {contrib/bind9/lib => lib}/isccc/result.c (100%) rename {contrib/bind9/lib => lib}/isccc/sexpr.c (100%) rename {contrib/bind9/lib => lib}/isccc/symtab.c (100%) rename {contrib/bind9/lib => lib}/isccc/version.c (100%) rename {contrib/bind9/lib => lib}/isccfg/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isccfg/aclconf.c (100%) rename {contrib/bind9/lib => lib}/isccfg/api (100%) rename {contrib/bind9/lib => lib}/isccfg/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isccfg/include/isccfg/Makefile.in (100%) rename {contrib/bind9/lib => lib}/isccfg/include/isccfg/aclconf.h (100%) rename {contrib/bind9/lib => lib}/isccfg/include/isccfg/cfg.h (100%) rename {contrib/bind9/lib => lib}/isccfg/include/isccfg/grammar.h (100%) rename {contrib/bind9/lib => lib}/isccfg/include/isccfg/log.h (100%) rename {contrib/bind9/lib => lib}/isccfg/include/isccfg/namedconf.h (100%) rename {contrib/bind9/lib => lib}/isccfg/include/isccfg/version.h (100%) rename {contrib/bind9/lib => lib}/isccfg/log.c (100%) rename {contrib/bind9/lib => lib}/isccfg/namedconf.c (100%) rename {contrib/bind9/lib => lib}/isccfg/parser.c (100%) rename {contrib/bind9/lib => lib}/isccfg/version.c (100%) rename {contrib/bind9/lib => lib}/lwres/Makefile.in (100%) rename {contrib/bind9/lib => lib}/lwres/api (100%) rename {contrib/bind9/lib => lib}/lwres/assert_p.h (100%) rename {contrib/bind9/lib => lib}/lwres/context.c (100%) rename {contrib/bind9/lib => lib}/lwres/context_p.h (100%) rename {contrib/bind9/lib => lib}/lwres/gai_strerror.c (100%) rename {contrib/bind9/lib => lib}/lwres/getaddrinfo.c (100%) rename {contrib/bind9/lib => lib}/lwres/gethost.c (100%) rename {contrib/bind9/lib => lib}/lwres/getipnode.c (100%) rename {contrib/bind9/lib => lib}/lwres/getnameinfo.c (100%) rename {contrib/bind9/lib => lib}/lwres/getrrset.c (100%) rename {contrib/bind9/lib => lib}/lwres/herror.c (100%) rename {contrib/bind9/lib => lib}/lwres/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/Makefile.in (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/context.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/int.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/ipv6.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/lang.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/list.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/lwbuffer.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/lwpacket.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/lwres.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/netdb.h.in (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/platform.h.in (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/result.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/stdlib.h (100%) rename {contrib/bind9/lib => lib}/lwres/include/lwres/version.h (100%) rename {contrib/bind9/lib => lib}/lwres/lwbuffer.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwconfig.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwinetaton.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwinetntop.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwinetpton.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwpacket.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwres_gabn.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwres_gnba.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwres_grbn.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwres_noop.c (100%) rename {contrib/bind9/lib => lib}/lwres/lwresutil.c (100%) rename {contrib/bind9/lib => lib}/lwres/man/Makefile.in (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_buffer.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_buffer.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_buffer.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_config.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_config.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_config.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_context.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_context.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_context.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gabn.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gabn.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gabn.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gai_strerror.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gai_strerror.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gai_strerror.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getaddrinfo.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getaddrinfo.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getaddrinfo.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gethostent.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gethostent.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gethostent.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getipnode.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getipnode.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getipnode.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getnameinfo.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getnameinfo.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getnameinfo.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getrrsetbyname.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getrrsetbyname.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_getrrsetbyname.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gnba.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gnba.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_gnba.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_hstrerror.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_hstrerror.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_hstrerror.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_inetntop.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_inetntop.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_inetntop.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_noop.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_noop.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_noop.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_packet.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_packet.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_packet.html (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_resutil.3 (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_resutil.docbook (100%) rename {contrib/bind9/lib => lib}/lwres/man/lwres_resutil.html (100%) rename {contrib/bind9/lib => lib}/lwres/print.c (100%) rename {contrib/bind9/lib => lib}/lwres/print_p.h (100%) rename {contrib/bind9/lib => lib}/lwres/strtoul.c (100%) rename {contrib/bind9/lib => lib}/lwres/unix/Makefile.in (100%) rename {contrib/bind9/lib => lib}/lwres/unix/include/Makefile.in (100%) rename {contrib/bind9/lib => lib}/lwres/unix/include/lwres/Makefile.in (100%) rename {contrib/bind9/lib => lib}/lwres/unix/include/lwres/net.h (100%) rename {contrib/bind9/lib => lib}/lwres/version.c (100%) rename contrib/bind9/libtool.m4 => libtool.m4 (100%) rename contrib/bind9/ltmain.sh => ltmain.sh (100%) rename {contrib/bind9/make => make}/Makefile.in (100%) rename {contrib/bind9/make => make}/includes.in (100%) rename {contrib/bind9/make => make}/mkdep.in (100%) rename {contrib/bind9/make => make}/rules.in (100%) rename contrib/bind9/mkinstalldirs => mkinstalldirs (100%) rename contrib/bind9/version => version (100%) diff --git a/contrib/bind9/CHANGES b/CHANGES similarity index 100% rename from contrib/bind9/CHANGES rename to CHANGES diff --git a/contrib/bind9/COPYRIGHT b/COPYRIGHT similarity index 100% rename from contrib/bind9/COPYRIGHT rename to COPYRIGHT diff --git a/contrib/bind9/FAQ b/FAQ similarity index 100% rename from contrib/bind9/FAQ rename to FAQ diff --git a/contrib/bind9/FAQ.xml b/FAQ.xml similarity index 100% rename from contrib/bind9/FAQ.xml rename to FAQ.xml diff --git a/contrib/bind9/Makefile.in b/Makefile.in similarity index 100% rename from contrib/bind9/Makefile.in rename to Makefile.in diff --git a/contrib/bind9/README b/README similarity index 100% rename from contrib/bind9/README rename to README diff --git a/contrib/bind9/README.idnkit b/README.idnkit similarity index 100% rename from contrib/bind9/README.idnkit rename to README.idnkit diff --git a/contrib/bind9/acconfig.h b/acconfig.h similarity index 100% rename from contrib/bind9/acconfig.h rename to acconfig.h diff --git a/contrib/bind9/bin/Makefile.in b/bin/Makefile.in similarity index 100% rename from contrib/bind9/bin/Makefile.in rename to bin/Makefile.in diff --git a/contrib/bind9/bin/check/Makefile.in b/bin/check/Makefile.in similarity index 100% rename from contrib/bind9/bin/check/Makefile.in rename to bin/check/Makefile.in diff --git a/contrib/bind9/bin/check/check-tool.c b/bin/check/check-tool.c similarity index 100% rename from contrib/bind9/bin/check/check-tool.c rename to bin/check/check-tool.c diff --git a/contrib/bind9/bin/check/check-tool.h b/bin/check/check-tool.h similarity index 100% rename from contrib/bind9/bin/check/check-tool.h rename to bin/check/check-tool.h diff --git a/contrib/bind9/bin/check/named-checkconf.8 b/bin/check/named-checkconf.8 similarity index 100% rename from contrib/bind9/bin/check/named-checkconf.8 rename to bin/check/named-checkconf.8 diff --git a/contrib/bind9/bin/check/named-checkconf.c b/bin/check/named-checkconf.c similarity index 100% rename from contrib/bind9/bin/check/named-checkconf.c rename to bin/check/named-checkconf.c diff --git a/contrib/bind9/bin/check/named-checkconf.docbook b/bin/check/named-checkconf.docbook similarity index 100% rename from contrib/bind9/bin/check/named-checkconf.docbook rename to bin/check/named-checkconf.docbook diff --git a/contrib/bind9/bin/check/named-checkconf.html b/bin/check/named-checkconf.html similarity index 100% rename from contrib/bind9/bin/check/named-checkconf.html rename to bin/check/named-checkconf.html diff --git a/contrib/bind9/bin/check/named-checkzone.8 b/bin/check/named-checkzone.8 similarity index 100% rename from contrib/bind9/bin/check/named-checkzone.8 rename to bin/check/named-checkzone.8 diff --git a/contrib/bind9/bin/check/named-checkzone.c b/bin/check/named-checkzone.c similarity index 100% rename from contrib/bind9/bin/check/named-checkzone.c rename to bin/check/named-checkzone.c diff --git a/contrib/bind9/bin/check/named-checkzone.docbook b/bin/check/named-checkzone.docbook similarity index 100% rename from contrib/bind9/bin/check/named-checkzone.docbook rename to bin/check/named-checkzone.docbook diff --git a/contrib/bind9/bin/check/named-checkzone.html b/bin/check/named-checkzone.html similarity index 100% rename from contrib/bind9/bin/check/named-checkzone.html rename to bin/check/named-checkzone.html diff --git a/contrib/bind9/bin/dig/Makefile.in b/bin/dig/Makefile.in similarity index 100% rename from contrib/bind9/bin/dig/Makefile.in rename to bin/dig/Makefile.in diff --git a/contrib/bind9/bin/dig/dig.1 b/bin/dig/dig.1 similarity index 100% rename from contrib/bind9/bin/dig/dig.1 rename to bin/dig/dig.1 diff --git a/contrib/bind9/bin/dig/dig.c b/bin/dig/dig.c similarity index 100% rename from contrib/bind9/bin/dig/dig.c rename to bin/dig/dig.c diff --git a/contrib/bind9/bin/dig/dig.docbook b/bin/dig/dig.docbook similarity index 100% rename from contrib/bind9/bin/dig/dig.docbook rename to bin/dig/dig.docbook diff --git a/contrib/bind9/bin/dig/dig.html b/bin/dig/dig.html similarity index 100% rename from contrib/bind9/bin/dig/dig.html rename to bin/dig/dig.html diff --git a/contrib/bind9/bin/dig/dighost.c b/bin/dig/dighost.c similarity index 100% rename from contrib/bind9/bin/dig/dighost.c rename to bin/dig/dighost.c diff --git a/contrib/bind9/bin/dig/host.1 b/bin/dig/host.1 similarity index 100% rename from contrib/bind9/bin/dig/host.1 rename to bin/dig/host.1 diff --git a/contrib/bind9/bin/dig/host.c b/bin/dig/host.c similarity index 100% rename from contrib/bind9/bin/dig/host.c rename to bin/dig/host.c diff --git a/contrib/bind9/bin/dig/host.docbook b/bin/dig/host.docbook similarity index 100% rename from contrib/bind9/bin/dig/host.docbook rename to bin/dig/host.docbook diff --git a/contrib/bind9/bin/dig/host.html b/bin/dig/host.html similarity index 100% rename from contrib/bind9/bin/dig/host.html rename to bin/dig/host.html diff --git a/contrib/bind9/bin/dig/include/dig/dig.h b/bin/dig/include/dig/dig.h similarity index 100% rename from contrib/bind9/bin/dig/include/dig/dig.h rename to bin/dig/include/dig/dig.h diff --git a/contrib/bind9/bin/dig/nslookup.1 b/bin/dig/nslookup.1 similarity index 100% rename from contrib/bind9/bin/dig/nslookup.1 rename to bin/dig/nslookup.1 diff --git a/contrib/bind9/bin/dig/nslookup.c b/bin/dig/nslookup.c similarity index 100% rename from contrib/bind9/bin/dig/nslookup.c rename to bin/dig/nslookup.c diff --git a/contrib/bind9/bin/dig/nslookup.docbook b/bin/dig/nslookup.docbook similarity index 100% rename from contrib/bind9/bin/dig/nslookup.docbook rename to bin/dig/nslookup.docbook diff --git a/contrib/bind9/bin/dig/nslookup.html b/bin/dig/nslookup.html similarity index 100% rename from contrib/bind9/bin/dig/nslookup.html rename to bin/dig/nslookup.html diff --git a/contrib/bind9/bin/dnssec/Makefile.in b/bin/dnssec/Makefile.in similarity index 100% rename from contrib/bind9/bin/dnssec/Makefile.in rename to bin/dnssec/Makefile.in diff --git a/contrib/bind9/bin/dnssec/dnssec-keygen.8 b/bin/dnssec/dnssec-keygen.8 similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-keygen.8 rename to bin/dnssec/dnssec-keygen.8 diff --git a/contrib/bind9/bin/dnssec/dnssec-keygen.c b/bin/dnssec/dnssec-keygen.c similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-keygen.c rename to bin/dnssec/dnssec-keygen.c diff --git a/contrib/bind9/bin/dnssec/dnssec-keygen.docbook b/bin/dnssec/dnssec-keygen.docbook similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-keygen.docbook rename to bin/dnssec/dnssec-keygen.docbook diff --git a/contrib/bind9/bin/dnssec/dnssec-keygen.html b/bin/dnssec/dnssec-keygen.html similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-keygen.html rename to bin/dnssec/dnssec-keygen.html diff --git a/contrib/bind9/bin/dnssec/dnssec-signzone.8 b/bin/dnssec/dnssec-signzone.8 similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-signzone.8 rename to bin/dnssec/dnssec-signzone.8 diff --git a/contrib/bind9/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-signzone.c rename to bin/dnssec/dnssec-signzone.c diff --git a/contrib/bind9/bin/dnssec/dnssec-signzone.docbook b/bin/dnssec/dnssec-signzone.docbook similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-signzone.docbook rename to bin/dnssec/dnssec-signzone.docbook diff --git a/contrib/bind9/bin/dnssec/dnssec-signzone.html b/bin/dnssec/dnssec-signzone.html similarity index 100% rename from contrib/bind9/bin/dnssec/dnssec-signzone.html rename to bin/dnssec/dnssec-signzone.html diff --git a/contrib/bind9/bin/dnssec/dnssectool.c b/bin/dnssec/dnssectool.c similarity index 100% rename from contrib/bind9/bin/dnssec/dnssectool.c rename to bin/dnssec/dnssectool.c diff --git a/contrib/bind9/bin/dnssec/dnssectool.h b/bin/dnssec/dnssectool.h similarity index 100% rename from contrib/bind9/bin/dnssec/dnssectool.h rename to bin/dnssec/dnssectool.h diff --git a/contrib/bind9/bin/named/Makefile.in b/bin/named/Makefile.in similarity index 100% rename from contrib/bind9/bin/named/Makefile.in rename to bin/named/Makefile.in diff --git a/contrib/bind9/bin/named/builtin.c b/bin/named/builtin.c similarity index 100% rename from contrib/bind9/bin/named/builtin.c rename to bin/named/builtin.c diff --git a/contrib/bind9/bin/named/client.c b/bin/named/client.c similarity index 100% rename from contrib/bind9/bin/named/client.c rename to bin/named/client.c diff --git a/contrib/bind9/bin/named/config.c b/bin/named/config.c similarity index 100% rename from contrib/bind9/bin/named/config.c rename to bin/named/config.c diff --git a/contrib/bind9/bin/named/control.c b/bin/named/control.c similarity index 100% rename from contrib/bind9/bin/named/control.c rename to bin/named/control.c diff --git a/contrib/bind9/bin/named/controlconf.c b/bin/named/controlconf.c similarity index 100% rename from contrib/bind9/bin/named/controlconf.c rename to bin/named/controlconf.c diff --git a/contrib/bind9/bin/named/include/named/builtin.h b/bin/named/include/named/builtin.h similarity index 100% rename from contrib/bind9/bin/named/include/named/builtin.h rename to bin/named/include/named/builtin.h diff --git a/contrib/bind9/bin/named/include/named/client.h b/bin/named/include/named/client.h similarity index 100% rename from contrib/bind9/bin/named/include/named/client.h rename to bin/named/include/named/client.h diff --git a/contrib/bind9/bin/named/include/named/config.h b/bin/named/include/named/config.h similarity index 100% rename from contrib/bind9/bin/named/include/named/config.h rename to bin/named/include/named/config.h diff --git a/contrib/bind9/bin/named/include/named/control.h b/bin/named/include/named/control.h similarity index 100% rename from contrib/bind9/bin/named/include/named/control.h rename to bin/named/include/named/control.h diff --git a/contrib/bind9/bin/named/include/named/globals.h b/bin/named/include/named/globals.h similarity index 100% rename from contrib/bind9/bin/named/include/named/globals.h rename to bin/named/include/named/globals.h diff --git a/contrib/bind9/bin/named/include/named/interfacemgr.h b/bin/named/include/named/interfacemgr.h similarity index 100% rename from contrib/bind9/bin/named/include/named/interfacemgr.h rename to bin/named/include/named/interfacemgr.h diff --git a/contrib/bind9/bin/named/include/named/listenlist.h b/bin/named/include/named/listenlist.h similarity index 100% rename from contrib/bind9/bin/named/include/named/listenlist.h rename to bin/named/include/named/listenlist.h diff --git a/contrib/bind9/bin/named/include/named/log.h b/bin/named/include/named/log.h similarity index 100% rename from contrib/bind9/bin/named/include/named/log.h rename to bin/named/include/named/log.h diff --git a/contrib/bind9/bin/named/include/named/logconf.h b/bin/named/include/named/logconf.h similarity index 100% rename from contrib/bind9/bin/named/include/named/logconf.h rename to bin/named/include/named/logconf.h diff --git a/contrib/bind9/bin/named/include/named/lwaddr.h b/bin/named/include/named/lwaddr.h similarity index 100% rename from contrib/bind9/bin/named/include/named/lwaddr.h rename to bin/named/include/named/lwaddr.h diff --git a/contrib/bind9/bin/named/include/named/lwdclient.h b/bin/named/include/named/lwdclient.h similarity index 100% rename from contrib/bind9/bin/named/include/named/lwdclient.h rename to bin/named/include/named/lwdclient.h diff --git a/contrib/bind9/bin/named/include/named/lwresd.h b/bin/named/include/named/lwresd.h similarity index 100% rename from contrib/bind9/bin/named/include/named/lwresd.h rename to bin/named/include/named/lwresd.h diff --git a/contrib/bind9/bin/named/include/named/lwsearch.h b/bin/named/include/named/lwsearch.h similarity index 100% rename from contrib/bind9/bin/named/include/named/lwsearch.h rename to bin/named/include/named/lwsearch.h diff --git a/contrib/bind9/bin/named/include/named/main.h b/bin/named/include/named/main.h similarity index 100% rename from contrib/bind9/bin/named/include/named/main.h rename to bin/named/include/named/main.h diff --git a/contrib/bind9/bin/named/include/named/notify.h b/bin/named/include/named/notify.h similarity index 100% rename from contrib/bind9/bin/named/include/named/notify.h rename to bin/named/include/named/notify.h diff --git a/contrib/bind9/bin/named/include/named/ns_smf_globals.h b/bin/named/include/named/ns_smf_globals.h similarity index 100% rename from contrib/bind9/bin/named/include/named/ns_smf_globals.h rename to bin/named/include/named/ns_smf_globals.h diff --git a/contrib/bind9/bin/named/include/named/query.h b/bin/named/include/named/query.h similarity index 100% rename from contrib/bind9/bin/named/include/named/query.h rename to bin/named/include/named/query.h diff --git a/contrib/bind9/bin/named/include/named/server.h b/bin/named/include/named/server.h similarity index 100% rename from contrib/bind9/bin/named/include/named/server.h rename to bin/named/include/named/server.h diff --git a/contrib/bind9/bin/named/include/named/sortlist.h b/bin/named/include/named/sortlist.h similarity index 100% rename from contrib/bind9/bin/named/include/named/sortlist.h rename to bin/named/include/named/sortlist.h diff --git a/contrib/bind9/bin/named/include/named/tkeyconf.h b/bin/named/include/named/tkeyconf.h similarity index 100% rename from contrib/bind9/bin/named/include/named/tkeyconf.h rename to bin/named/include/named/tkeyconf.h diff --git a/contrib/bind9/bin/named/include/named/tsigconf.h b/bin/named/include/named/tsigconf.h similarity index 100% rename from contrib/bind9/bin/named/include/named/tsigconf.h rename to bin/named/include/named/tsigconf.h diff --git a/contrib/bind9/bin/named/include/named/types.h b/bin/named/include/named/types.h similarity index 100% rename from contrib/bind9/bin/named/include/named/types.h rename to bin/named/include/named/types.h diff --git a/contrib/bind9/bin/named/include/named/update.h b/bin/named/include/named/update.h similarity index 100% rename from contrib/bind9/bin/named/include/named/update.h rename to bin/named/include/named/update.h diff --git a/contrib/bind9/bin/named/include/named/xfrout.h b/bin/named/include/named/xfrout.h similarity index 100% rename from contrib/bind9/bin/named/include/named/xfrout.h rename to bin/named/include/named/xfrout.h diff --git a/contrib/bind9/bin/named/include/named/zoneconf.h b/bin/named/include/named/zoneconf.h similarity index 100% rename from contrib/bind9/bin/named/include/named/zoneconf.h rename to bin/named/include/named/zoneconf.h diff --git a/contrib/bind9/bin/named/interfacemgr.c b/bin/named/interfacemgr.c similarity index 100% rename from contrib/bind9/bin/named/interfacemgr.c rename to bin/named/interfacemgr.c diff --git a/contrib/bind9/bin/named/listenlist.c b/bin/named/listenlist.c similarity index 100% rename from contrib/bind9/bin/named/listenlist.c rename to bin/named/listenlist.c diff --git a/contrib/bind9/bin/named/log.c b/bin/named/log.c similarity index 100% rename from contrib/bind9/bin/named/log.c rename to bin/named/log.c diff --git a/contrib/bind9/bin/named/logconf.c b/bin/named/logconf.c similarity index 100% rename from contrib/bind9/bin/named/logconf.c rename to bin/named/logconf.c diff --git a/contrib/bind9/bin/named/lwaddr.c b/bin/named/lwaddr.c similarity index 100% rename from contrib/bind9/bin/named/lwaddr.c rename to bin/named/lwaddr.c diff --git a/contrib/bind9/bin/named/lwdclient.c b/bin/named/lwdclient.c similarity index 100% rename from contrib/bind9/bin/named/lwdclient.c rename to bin/named/lwdclient.c diff --git a/contrib/bind9/bin/named/lwderror.c b/bin/named/lwderror.c similarity index 100% rename from contrib/bind9/bin/named/lwderror.c rename to bin/named/lwderror.c diff --git a/contrib/bind9/bin/named/lwdgabn.c b/bin/named/lwdgabn.c similarity index 100% rename from contrib/bind9/bin/named/lwdgabn.c rename to bin/named/lwdgabn.c diff --git a/contrib/bind9/bin/named/lwdgnba.c b/bin/named/lwdgnba.c similarity index 100% rename from contrib/bind9/bin/named/lwdgnba.c rename to bin/named/lwdgnba.c diff --git a/contrib/bind9/bin/named/lwdgrbn.c b/bin/named/lwdgrbn.c similarity index 100% rename from contrib/bind9/bin/named/lwdgrbn.c rename to bin/named/lwdgrbn.c diff --git a/contrib/bind9/bin/named/lwdnoop.c b/bin/named/lwdnoop.c similarity index 100% rename from contrib/bind9/bin/named/lwdnoop.c rename to bin/named/lwdnoop.c diff --git a/contrib/bind9/bin/named/lwresd.8 b/bin/named/lwresd.8 similarity index 100% rename from contrib/bind9/bin/named/lwresd.8 rename to bin/named/lwresd.8 diff --git a/contrib/bind9/bin/named/lwresd.c b/bin/named/lwresd.c similarity index 100% rename from contrib/bind9/bin/named/lwresd.c rename to bin/named/lwresd.c diff --git a/contrib/bind9/bin/named/lwresd.docbook b/bin/named/lwresd.docbook similarity index 100% rename from contrib/bind9/bin/named/lwresd.docbook rename to bin/named/lwresd.docbook diff --git a/contrib/bind9/bin/named/lwresd.html b/bin/named/lwresd.html similarity index 100% rename from contrib/bind9/bin/named/lwresd.html rename to bin/named/lwresd.html diff --git a/contrib/bind9/bin/named/lwsearch.c b/bin/named/lwsearch.c similarity index 100% rename from contrib/bind9/bin/named/lwsearch.c rename to bin/named/lwsearch.c diff --git a/contrib/bind9/bin/named/main.c b/bin/named/main.c similarity index 100% rename from contrib/bind9/bin/named/main.c rename to bin/named/main.c diff --git a/contrib/bind9/bin/named/named.8 b/bin/named/named.8 similarity index 100% rename from contrib/bind9/bin/named/named.8 rename to bin/named/named.8 diff --git a/contrib/bind9/bin/named/named.conf.5 b/bin/named/named.conf.5 similarity index 100% rename from contrib/bind9/bin/named/named.conf.5 rename to bin/named/named.conf.5 diff --git a/contrib/bind9/bin/named/named.conf.docbook b/bin/named/named.conf.docbook similarity index 100% rename from contrib/bind9/bin/named/named.conf.docbook rename to bin/named/named.conf.docbook diff --git a/contrib/bind9/bin/named/named.conf.html b/bin/named/named.conf.html similarity index 100% rename from contrib/bind9/bin/named/named.conf.html rename to bin/named/named.conf.html diff --git a/contrib/bind9/bin/named/named.docbook b/bin/named/named.docbook similarity index 100% rename from contrib/bind9/bin/named/named.docbook rename to bin/named/named.docbook diff --git a/contrib/bind9/bin/named/named.html b/bin/named/named.html similarity index 100% rename from contrib/bind9/bin/named/named.html rename to bin/named/named.html diff --git a/contrib/bind9/bin/named/notify.c b/bin/named/notify.c similarity index 100% rename from contrib/bind9/bin/named/notify.c rename to bin/named/notify.c diff --git a/contrib/bind9/bin/named/query.c b/bin/named/query.c similarity index 100% rename from contrib/bind9/bin/named/query.c rename to bin/named/query.c diff --git a/contrib/bind9/bin/named/server.c b/bin/named/server.c similarity index 100% rename from contrib/bind9/bin/named/server.c rename to bin/named/server.c diff --git a/contrib/bind9/bin/named/sortlist.c b/bin/named/sortlist.c similarity index 100% rename from contrib/bind9/bin/named/sortlist.c rename to bin/named/sortlist.c diff --git a/contrib/bind9/bin/named/tkeyconf.c b/bin/named/tkeyconf.c similarity index 100% rename from contrib/bind9/bin/named/tkeyconf.c rename to bin/named/tkeyconf.c diff --git a/contrib/bind9/bin/named/tsigconf.c b/bin/named/tsigconf.c similarity index 100% rename from contrib/bind9/bin/named/tsigconf.c rename to bin/named/tsigconf.c diff --git a/contrib/bind9/bin/named/unix/Makefile.in b/bin/named/unix/Makefile.in similarity index 100% rename from contrib/bind9/bin/named/unix/Makefile.in rename to bin/named/unix/Makefile.in diff --git a/contrib/bind9/bin/named/unix/include/named/os.h b/bin/named/unix/include/named/os.h similarity index 100% rename from contrib/bind9/bin/named/unix/include/named/os.h rename to bin/named/unix/include/named/os.h diff --git a/contrib/bind9/bin/named/unix/os.c b/bin/named/unix/os.c similarity index 100% rename from contrib/bind9/bin/named/unix/os.c rename to bin/named/unix/os.c diff --git a/contrib/bind9/bin/named/update.c b/bin/named/update.c similarity index 100% rename from contrib/bind9/bin/named/update.c rename to bin/named/update.c diff --git a/contrib/bind9/bin/named/xfrout.c b/bin/named/xfrout.c similarity index 100% rename from contrib/bind9/bin/named/xfrout.c rename to bin/named/xfrout.c diff --git a/contrib/bind9/bin/named/zoneconf.c b/bin/named/zoneconf.c similarity index 100% rename from contrib/bind9/bin/named/zoneconf.c rename to bin/named/zoneconf.c diff --git a/contrib/bind9/bin/nsupdate/Makefile.in b/bin/nsupdate/Makefile.in similarity index 100% rename from contrib/bind9/bin/nsupdate/Makefile.in rename to bin/nsupdate/Makefile.in diff --git a/contrib/bind9/bin/nsupdate/nsupdate.8 b/bin/nsupdate/nsupdate.8 similarity index 100% rename from contrib/bind9/bin/nsupdate/nsupdate.8 rename to bin/nsupdate/nsupdate.8 diff --git a/contrib/bind9/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c similarity index 100% rename from contrib/bind9/bin/nsupdate/nsupdate.c rename to bin/nsupdate/nsupdate.c diff --git a/contrib/bind9/bin/nsupdate/nsupdate.docbook b/bin/nsupdate/nsupdate.docbook similarity index 100% rename from contrib/bind9/bin/nsupdate/nsupdate.docbook rename to bin/nsupdate/nsupdate.docbook diff --git a/contrib/bind9/bin/nsupdate/nsupdate.html b/bin/nsupdate/nsupdate.html similarity index 100% rename from contrib/bind9/bin/nsupdate/nsupdate.html rename to bin/nsupdate/nsupdate.html diff --git a/contrib/bind9/bin/rndc/Makefile.in b/bin/rndc/Makefile.in similarity index 100% rename from contrib/bind9/bin/rndc/Makefile.in rename to bin/rndc/Makefile.in diff --git a/contrib/bind9/bin/rndc/include/rndc/os.h b/bin/rndc/include/rndc/os.h similarity index 100% rename from contrib/bind9/bin/rndc/include/rndc/os.h rename to bin/rndc/include/rndc/os.h diff --git a/contrib/bind9/bin/rndc/rndc-confgen.8 b/bin/rndc/rndc-confgen.8 similarity index 100% rename from contrib/bind9/bin/rndc/rndc-confgen.8 rename to bin/rndc/rndc-confgen.8 diff --git a/contrib/bind9/bin/rndc/rndc-confgen.c b/bin/rndc/rndc-confgen.c similarity index 100% rename from contrib/bind9/bin/rndc/rndc-confgen.c rename to bin/rndc/rndc-confgen.c diff --git a/contrib/bind9/bin/rndc/rndc-confgen.docbook b/bin/rndc/rndc-confgen.docbook similarity index 100% rename from contrib/bind9/bin/rndc/rndc-confgen.docbook rename to bin/rndc/rndc-confgen.docbook diff --git a/contrib/bind9/bin/rndc/rndc-confgen.html b/bin/rndc/rndc-confgen.html similarity index 100% rename from contrib/bind9/bin/rndc/rndc-confgen.html rename to bin/rndc/rndc-confgen.html diff --git a/contrib/bind9/bin/rndc/rndc.8 b/bin/rndc/rndc.8 similarity index 100% rename from contrib/bind9/bin/rndc/rndc.8 rename to bin/rndc/rndc.8 diff --git a/contrib/bind9/bin/rndc/rndc.c b/bin/rndc/rndc.c similarity index 100% rename from contrib/bind9/bin/rndc/rndc.c rename to bin/rndc/rndc.c diff --git a/contrib/bind9/bin/rndc/rndc.conf b/bin/rndc/rndc.conf similarity index 100% rename from contrib/bind9/bin/rndc/rndc.conf rename to bin/rndc/rndc.conf diff --git a/contrib/bind9/bin/rndc/rndc.conf.5 b/bin/rndc/rndc.conf.5 similarity index 100% rename from contrib/bind9/bin/rndc/rndc.conf.5 rename to bin/rndc/rndc.conf.5 diff --git a/contrib/bind9/bin/rndc/rndc.conf.docbook b/bin/rndc/rndc.conf.docbook similarity index 100% rename from contrib/bind9/bin/rndc/rndc.conf.docbook rename to bin/rndc/rndc.conf.docbook diff --git a/contrib/bind9/bin/rndc/rndc.conf.html b/bin/rndc/rndc.conf.html similarity index 100% rename from contrib/bind9/bin/rndc/rndc.conf.html rename to bin/rndc/rndc.conf.html diff --git a/contrib/bind9/bin/rndc/rndc.docbook b/bin/rndc/rndc.docbook similarity index 100% rename from contrib/bind9/bin/rndc/rndc.docbook rename to bin/rndc/rndc.docbook diff --git a/contrib/bind9/bin/rndc/rndc.html b/bin/rndc/rndc.html similarity index 100% rename from contrib/bind9/bin/rndc/rndc.html rename to bin/rndc/rndc.html diff --git a/contrib/bind9/bin/rndc/unix/Makefile.in b/bin/rndc/unix/Makefile.in similarity index 100% rename from contrib/bind9/bin/rndc/unix/Makefile.in rename to bin/rndc/unix/Makefile.in diff --git a/contrib/bind9/bin/rndc/unix/os.c b/bin/rndc/unix/os.c similarity index 100% rename from contrib/bind9/bin/rndc/unix/os.c rename to bin/rndc/unix/os.c diff --git a/contrib/bind9/bin/rndc/util.c b/bin/rndc/util.c similarity index 100% rename from contrib/bind9/bin/rndc/util.c rename to bin/rndc/util.c diff --git a/contrib/bind9/bin/rndc/util.h b/bin/rndc/util.h similarity index 100% rename from contrib/bind9/bin/rndc/util.h rename to bin/rndc/util.h diff --git a/contrib/bind9/config.guess b/config.guess similarity index 100% rename from contrib/bind9/config.guess rename to config.guess diff --git a/contrib/bind9/config.sub b/config.sub similarity index 100% rename from contrib/bind9/config.sub rename to config.sub diff --git a/contrib/bind9/config.threads.in b/config.threads.in similarity index 100% rename from contrib/bind9/config.threads.in rename to config.threads.in diff --git a/contrib/bind9/configure.in b/configure.in similarity index 100% rename from contrib/bind9/configure.in rename to configure.in diff --git a/contrib/bind9/doc/Makefile.in b/doc/Makefile.in similarity index 100% rename from contrib/bind9/doc/Makefile.in rename to doc/Makefile.in diff --git a/contrib/bind9/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM-book.xml rename to doc/arm/Bv9ARM-book.xml diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch01.html b/doc/arm/Bv9ARM.ch01.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch01.html rename to doc/arm/Bv9ARM.ch01.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch02.html b/doc/arm/Bv9ARM.ch02.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch02.html rename to doc/arm/Bv9ARM.ch02.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch03.html b/doc/arm/Bv9ARM.ch03.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch03.html rename to doc/arm/Bv9ARM.ch03.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch04.html b/doc/arm/Bv9ARM.ch04.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch04.html rename to doc/arm/Bv9ARM.ch04.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch05.html b/doc/arm/Bv9ARM.ch05.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch05.html rename to doc/arm/Bv9ARM.ch05.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch06.html rename to doc/arm/Bv9ARM.ch06.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch07.html b/doc/arm/Bv9ARM.ch07.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch07.html rename to doc/arm/Bv9ARM.ch07.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch08.html b/doc/arm/Bv9ARM.ch08.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch08.html rename to doc/arm/Bv9ARM.ch08.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch09.html b/doc/arm/Bv9ARM.ch09.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch09.html rename to doc/arm/Bv9ARM.ch09.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.ch10.html b/doc/arm/Bv9ARM.ch10.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.ch10.html rename to doc/arm/Bv9ARM.ch10.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.html b/doc/arm/Bv9ARM.html similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.html rename to doc/arm/Bv9ARM.html diff --git a/contrib/bind9/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf similarity index 100% rename from contrib/bind9/doc/arm/Bv9ARM.pdf rename to doc/arm/Bv9ARM.pdf diff --git a/contrib/bind9/doc/arm/Makefile.in b/doc/arm/Makefile.in similarity index 100% rename from contrib/bind9/doc/arm/Makefile.in rename to doc/arm/Makefile.in diff --git a/contrib/bind9/doc/arm/README-SGML b/doc/arm/README-SGML similarity index 100% rename from contrib/bind9/doc/arm/README-SGML rename to doc/arm/README-SGML diff --git a/contrib/bind9/doc/arm/isc-logo.eps b/doc/arm/isc-logo.eps similarity index 100% rename from contrib/bind9/doc/arm/isc-logo.eps rename to doc/arm/isc-logo.eps diff --git a/contrib/bind9/doc/arm/isc-logo.pdf b/doc/arm/isc-logo.pdf similarity index 100% rename from contrib/bind9/doc/arm/isc-logo.pdf rename to doc/arm/isc-logo.pdf diff --git a/contrib/bind9/doc/arm/man.dig.html b/doc/arm/man.dig.html similarity index 100% rename from contrib/bind9/doc/arm/man.dig.html rename to doc/arm/man.dig.html diff --git a/contrib/bind9/doc/arm/man.dnssec-keygen.html b/doc/arm/man.dnssec-keygen.html similarity index 100% rename from contrib/bind9/doc/arm/man.dnssec-keygen.html rename to doc/arm/man.dnssec-keygen.html diff --git a/contrib/bind9/doc/arm/man.dnssec-signzone.html b/doc/arm/man.dnssec-signzone.html similarity index 100% rename from contrib/bind9/doc/arm/man.dnssec-signzone.html rename to doc/arm/man.dnssec-signzone.html diff --git a/contrib/bind9/doc/arm/man.host.html b/doc/arm/man.host.html similarity index 100% rename from contrib/bind9/doc/arm/man.host.html rename to doc/arm/man.host.html diff --git a/contrib/bind9/doc/arm/man.named-checkconf.html b/doc/arm/man.named-checkconf.html similarity index 100% rename from contrib/bind9/doc/arm/man.named-checkconf.html rename to doc/arm/man.named-checkconf.html diff --git a/contrib/bind9/doc/arm/man.named-checkzone.html b/doc/arm/man.named-checkzone.html similarity index 100% rename from contrib/bind9/doc/arm/man.named-checkzone.html rename to doc/arm/man.named-checkzone.html diff --git a/contrib/bind9/doc/arm/man.named.html b/doc/arm/man.named.html similarity index 100% rename from contrib/bind9/doc/arm/man.named.html rename to doc/arm/man.named.html diff --git a/contrib/bind9/doc/arm/man.rndc-confgen.html b/doc/arm/man.rndc-confgen.html similarity index 100% rename from contrib/bind9/doc/arm/man.rndc-confgen.html rename to doc/arm/man.rndc-confgen.html diff --git a/contrib/bind9/doc/arm/man.rndc.conf.html b/doc/arm/man.rndc.conf.html similarity index 100% rename from contrib/bind9/doc/arm/man.rndc.conf.html rename to doc/arm/man.rndc.conf.html diff --git a/contrib/bind9/doc/arm/man.rndc.html b/doc/arm/man.rndc.html similarity index 100% rename from contrib/bind9/doc/arm/man.rndc.html rename to doc/arm/man.rndc.html diff --git a/contrib/bind9/doc/draft/draft-baba-dnsext-acl-reqts-01.txt b/doc/draft/draft-baba-dnsext-acl-reqts-01.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-baba-dnsext-acl-reqts-01.txt rename to doc/draft/draft-baba-dnsext-acl-reqts-01.txt diff --git a/contrib/bind9/doc/draft/draft-daigle-napstr-04.txt b/doc/draft/draft-daigle-napstr-04.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-daigle-napstr-04.txt rename to doc/draft/draft-daigle-napstr-04.txt diff --git a/contrib/bind9/doc/draft/draft-danisch-dns-rr-smtp-03.txt b/doc/draft/draft-danisch-dns-rr-smtp-03.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-danisch-dns-rr-smtp-03.txt rename to doc/draft/draft-danisch-dns-rr-smtp-03.txt diff --git a/contrib/bind9/doc/draft/draft-dnsext-opcode-discover-02.txt b/doc/draft/draft-dnsext-opcode-discover-02.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-dnsext-opcode-discover-02.txt rename to doc/draft/draft-dnsext-opcode-discover-02.txt diff --git a/contrib/bind9/doc/draft/draft-durand-dnsop-dynreverse-00.txt b/doc/draft/draft-durand-dnsop-dynreverse-00.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-durand-dnsop-dynreverse-00.txt rename to doc/draft/draft-durand-dnsop-dynreverse-00.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-2929bis-01.txt b/doc/draft/draft-ietf-dnsext-2929bis-01.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-2929bis-01.txt rename to doc/draft/draft-ietf-dnsext-2929bis-01.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-axfr-clarify-05.txt b/doc/draft/draft-ietf-dnsext-axfr-clarify-05.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-axfr-clarify-05.txt rename to doc/draft/draft-ietf-dnsext-axfr-clarify-05.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dhcid-rr-12.txt b/doc/draft/draft-ietf-dnsext-dhcid-rr-12.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dhcid-rr-12.txt rename to doc/draft/draft-ietf-dnsext-dhcid-rr-12.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dns-name-p-s-00.txt b/doc/draft/draft-ietf-dnsext-dns-name-p-s-00.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dns-name-p-s-00.txt rename to doc/draft/draft-ietf-dnsext-dns-name-p-s-00.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-2535typecode-change-06.txt b/doc/draft/draft-ietf-dnsext-dnssec-2535typecode-change-06.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-2535typecode-change-06.txt rename to doc/draft/draft-ietf-dnsext-dnssec-2535typecode-change-06.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-01.txt b/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-01.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-01.txt rename to doc/draft/draft-ietf-dnsext-dnssec-bis-updates-01.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-experiments-01.txt b/doc/draft/draft-ietf-dnsext-dnssec-experiments-01.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-experiments-01.txt rename to doc/draft/draft-ietf-dnsext-dnssec-experiments-01.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt b/doc/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt rename to doc/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-opt-in-07.txt b/doc/draft/draft-ietf-dnsext-dnssec-opt-in-07.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-opt-in-07.txt rename to doc/draft/draft-ietf-dnsext-dnssec-opt-in-07.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt b/doc/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt rename to doc/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-trans-02.txt b/doc/draft/draft-ietf-dnsext-dnssec-trans-02.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-trans-02.txt rename to doc/draft/draft-ietf-dnsext-dnssec-trans-02.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-ds-sha256-05.txt b/doc/draft/draft-ietf-dnsext-ds-sha256-05.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-ds-sha256-05.txt rename to doc/draft/draft-ietf-dnsext-ds-sha256-05.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-ecc-key-07.txt b/doc/draft/draft-ietf-dnsext-ecc-key-07.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-ecc-key-07.txt rename to doc/draft/draft-ietf-dnsext-ecc-key-07.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-interop3597-02.txt b/doc/draft/draft-ietf-dnsext-interop3597-02.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-interop3597-02.txt rename to doc/draft/draft-ietf-dnsext-interop3597-02.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-keyrr-key-signing-flag-12.txt b/doc/draft/draft-ietf-dnsext-keyrr-key-signing-flag-12.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-keyrr-key-signing-flag-12.txt rename to doc/draft/draft-ietf-dnsext-keyrr-key-signing-flag-12.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-mdns-43.txt b/doc/draft/draft-ietf-dnsext-mdns-43.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-mdns-43.txt rename to doc/draft/draft-ietf-dnsext-mdns-43.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-nsec3-04.txt b/doc/draft/draft-ietf-dnsext-nsec3-04.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-nsec3-04.txt rename to doc/draft/draft-ietf-dnsext-nsec3-04.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-nsid-01.txt b/doc/draft/draft-ietf-dnsext-nsid-01.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-nsid-01.txt rename to doc/draft/draft-ietf-dnsext-nsid-01.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt b/doc/draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt rename to doc/draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2538bis-04.txt b/doc/draft/draft-ietf-dnsext-rfc2538bis-04.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2538bis-04.txt rename to doc/draft/draft-ietf-dnsext-rfc2538bis-04.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt b/doc/draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt rename to doc/draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-signed-nonexistence-requirements-01.txt b/doc/draft/draft-ietf-dnsext-signed-nonexistence-requirements-01.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-signed-nonexistence-requirements-01.txt rename to doc/draft/draft-ietf-dnsext-signed-nonexistence-requirements-01.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-tkey-renewal-mode-05.txt b/doc/draft/draft-ietf-dnsext-tkey-renewal-mode-05.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-tkey-renewal-mode-05.txt rename to doc/draft/draft-ietf-dnsext-tkey-renewal-mode-05.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt b/doc/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt rename to doc/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-timers-02.txt b/doc/draft/draft-ietf-dnsext-trustupdate-timers-02.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-timers-02.txt rename to doc/draft/draft-ietf-dnsext-trustupdate-timers-02.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-tsig-sha-06.txt b/doc/draft/draft-ietf-dnsext-tsig-sha-06.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-tsig-sha-06.txt rename to doc/draft/draft-ietf-dnsext-tsig-sha-06.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsext-wcard-clarify-10.txt b/doc/draft/draft-ietf-dnsext-wcard-clarify-10.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsext-wcard-clarify-10.txt rename to doc/draft/draft-ietf-dnsext-wcard-clarify-10.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-bad-dns-res-05.txt b/doc/draft/draft-ietf-dnsop-bad-dns-res-05.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-bad-dns-res-05.txt rename to doc/draft/draft-ietf-dnsop-bad-dns-res-05.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt b/doc/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt rename to doc/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-inaddr-required-07.txt b/doc/draft/draft-ietf-dnsop-inaddr-required-07.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-inaddr-required-07.txt rename to doc/draft/draft-ietf-dnsop-inaddr-required-07.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-configuration-06.txt b/doc/draft/draft-ietf-dnsop-ipv6-dns-configuration-06.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-configuration-06.txt rename to doc/draft/draft-ietf-dnsop-ipv6-dns-configuration-06.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt b/doc/draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt rename to doc/draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-transport-guidelines-01.txt b/doc/draft/draft-ietf-dnsop-ipv6-transport-guidelines-01.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-transport-guidelines-01.txt rename to doc/draft/draft-ietf-dnsop-ipv6-transport-guidelines-01.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-key-rollover-requirements-02.txt b/doc/draft/draft-ietf-dnsop-key-rollover-requirements-02.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-key-rollover-requirements-02.txt rename to doc/draft/draft-ietf-dnsop-key-rollover-requirements-02.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-respsize-02.txt b/doc/draft/draft-ietf-dnsop-respsize-02.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-respsize-02.txt rename to doc/draft/draft-ietf-dnsop-respsize-02.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-dnsop-serverid-06.txt b/doc/draft/draft-ietf-dnsop-serverid-06.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-dnsop-serverid-06.txt rename to doc/draft/draft-ietf-dnsop-serverid-06.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-enum-e164-gstn-np-05.txt b/doc/draft/draft-ietf-enum-e164-gstn-np-05.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-enum-e164-gstn-np-05.txt rename to doc/draft/draft-ietf-enum-e164-gstn-np-05.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-ipv6-node-requirements-08.txt b/doc/draft/draft-ietf-ipv6-node-requirements-08.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-ipv6-node-requirements-08.txt rename to doc/draft/draft-ietf-ipv6-node-requirements-08.txt diff --git a/contrib/bind9/doc/draft/draft-ietf-secsh-dns-05.txt b/doc/draft/draft-ietf-secsh-dns-05.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ietf-secsh-dns-05.txt rename to doc/draft/draft-ietf-secsh-dns-05.txt diff --git a/contrib/bind9/doc/draft/draft-ihren-dnsext-threshold-validation-00.txt b/doc/draft/draft-ihren-dnsext-threshold-validation-00.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-ihren-dnsext-threshold-validation-00.txt rename to doc/draft/draft-ihren-dnsext-threshold-validation-00.txt diff --git a/contrib/bind9/doc/draft/draft-kato-dnsop-local-zones-00.txt b/doc/draft/draft-kato-dnsop-local-zones-00.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-kato-dnsop-local-zones-00.txt rename to doc/draft/draft-kato-dnsop-local-zones-00.txt diff --git a/contrib/bind9/doc/draft/draft-park-ipv6-extensions-dns-pnp-00.txt b/doc/draft/draft-park-ipv6-extensions-dns-pnp-00.txt similarity index 100% rename from contrib/bind9/doc/draft/draft-park-ipv6-extensions-dns-pnp-00.txt rename to doc/draft/draft-park-ipv6-extensions-dns-pnp-00.txt diff --git a/contrib/bind9/doc/draft/update b/doc/draft/update similarity index 100% rename from contrib/bind9/doc/draft/update rename to doc/draft/update diff --git a/contrib/bind9/doc/misc/Makefile.in b/doc/misc/Makefile.in similarity index 100% rename from contrib/bind9/doc/misc/Makefile.in rename to doc/misc/Makefile.in diff --git a/contrib/bind9/doc/misc/dnssec b/doc/misc/dnssec similarity index 100% rename from contrib/bind9/doc/misc/dnssec rename to doc/misc/dnssec diff --git a/contrib/bind9/doc/misc/format-options.pl b/doc/misc/format-options.pl similarity index 100% rename from contrib/bind9/doc/misc/format-options.pl rename to doc/misc/format-options.pl diff --git a/contrib/bind9/doc/misc/ipv6 b/doc/misc/ipv6 similarity index 100% rename from contrib/bind9/doc/misc/ipv6 rename to doc/misc/ipv6 diff --git a/contrib/bind9/doc/misc/migration b/doc/misc/migration similarity index 100% rename from contrib/bind9/doc/misc/migration rename to doc/misc/migration diff --git a/contrib/bind9/doc/misc/migration-4to9 b/doc/misc/migration-4to9 similarity index 100% rename from contrib/bind9/doc/misc/migration-4to9 rename to doc/misc/migration-4to9 diff --git a/contrib/bind9/doc/misc/options b/doc/misc/options similarity index 100% rename from contrib/bind9/doc/misc/options rename to doc/misc/options diff --git a/contrib/bind9/doc/misc/rfc-compliance b/doc/misc/rfc-compliance similarity index 100% rename from contrib/bind9/doc/misc/rfc-compliance rename to doc/misc/rfc-compliance diff --git a/contrib/bind9/doc/misc/roadmap b/doc/misc/roadmap similarity index 100% rename from contrib/bind9/doc/misc/roadmap rename to doc/misc/roadmap diff --git a/contrib/bind9/doc/misc/sdb b/doc/misc/sdb similarity index 100% rename from contrib/bind9/doc/misc/sdb rename to doc/misc/sdb diff --git a/contrib/bind9/doc/rfc/index b/doc/rfc/index similarity index 100% rename from contrib/bind9/doc/rfc/index rename to doc/rfc/index diff --git a/contrib/bind9/doc/rfc/rfc1032.txt b/doc/rfc/rfc1032.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1032.txt rename to doc/rfc/rfc1032.txt diff --git a/contrib/bind9/doc/rfc/rfc1033.txt b/doc/rfc/rfc1033.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1033.txt rename to doc/rfc/rfc1033.txt diff --git a/contrib/bind9/doc/rfc/rfc1034.txt b/doc/rfc/rfc1034.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1034.txt rename to doc/rfc/rfc1034.txt diff --git a/contrib/bind9/doc/rfc/rfc1035.txt b/doc/rfc/rfc1035.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1035.txt rename to doc/rfc/rfc1035.txt diff --git a/contrib/bind9/doc/rfc/rfc1101.txt b/doc/rfc/rfc1101.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1101.txt rename to doc/rfc/rfc1101.txt diff --git a/contrib/bind9/doc/rfc/rfc1122.txt b/doc/rfc/rfc1122.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1122.txt rename to doc/rfc/rfc1122.txt diff --git a/contrib/bind9/doc/rfc/rfc1123.txt b/doc/rfc/rfc1123.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1123.txt rename to doc/rfc/rfc1123.txt diff --git a/contrib/bind9/doc/rfc/rfc1183.txt b/doc/rfc/rfc1183.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1183.txt rename to doc/rfc/rfc1183.txt diff --git a/contrib/bind9/doc/rfc/rfc1348.txt b/doc/rfc/rfc1348.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1348.txt rename to doc/rfc/rfc1348.txt diff --git a/contrib/bind9/doc/rfc/rfc1535.txt b/doc/rfc/rfc1535.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1535.txt rename to doc/rfc/rfc1535.txt diff --git a/contrib/bind9/doc/rfc/rfc1536.txt b/doc/rfc/rfc1536.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1536.txt rename to doc/rfc/rfc1536.txt diff --git a/contrib/bind9/doc/rfc/rfc1537.txt b/doc/rfc/rfc1537.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1537.txt rename to doc/rfc/rfc1537.txt diff --git a/contrib/bind9/doc/rfc/rfc1591.txt b/doc/rfc/rfc1591.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1591.txt rename to doc/rfc/rfc1591.txt diff --git a/contrib/bind9/doc/rfc/rfc1611.txt b/doc/rfc/rfc1611.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1611.txt rename to doc/rfc/rfc1611.txt diff --git a/contrib/bind9/doc/rfc/rfc1612.txt b/doc/rfc/rfc1612.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1612.txt rename to doc/rfc/rfc1612.txt diff --git a/contrib/bind9/doc/rfc/rfc1706.txt b/doc/rfc/rfc1706.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1706.txt rename to doc/rfc/rfc1706.txt diff --git a/contrib/bind9/doc/rfc/rfc1712.txt b/doc/rfc/rfc1712.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1712.txt rename to doc/rfc/rfc1712.txt diff --git a/contrib/bind9/doc/rfc/rfc1750.txt b/doc/rfc/rfc1750.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1750.txt rename to doc/rfc/rfc1750.txt diff --git a/contrib/bind9/doc/rfc/rfc1876.txt b/doc/rfc/rfc1876.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1876.txt rename to doc/rfc/rfc1876.txt diff --git a/contrib/bind9/doc/rfc/rfc1886.txt b/doc/rfc/rfc1886.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1886.txt rename to doc/rfc/rfc1886.txt diff --git a/contrib/bind9/doc/rfc/rfc1982.txt b/doc/rfc/rfc1982.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1982.txt rename to doc/rfc/rfc1982.txt diff --git a/contrib/bind9/doc/rfc/rfc1995.txt b/doc/rfc/rfc1995.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1995.txt rename to doc/rfc/rfc1995.txt diff --git a/contrib/bind9/doc/rfc/rfc1996.txt b/doc/rfc/rfc1996.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc1996.txt rename to doc/rfc/rfc1996.txt diff --git a/contrib/bind9/doc/rfc/rfc2052.txt b/doc/rfc/rfc2052.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2052.txt rename to doc/rfc/rfc2052.txt diff --git a/contrib/bind9/doc/rfc/rfc2104.txt b/doc/rfc/rfc2104.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2104.txt rename to doc/rfc/rfc2104.txt diff --git a/contrib/bind9/doc/rfc/rfc2119.txt b/doc/rfc/rfc2119.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2119.txt rename to doc/rfc/rfc2119.txt diff --git a/contrib/bind9/doc/rfc/rfc2133.txt b/doc/rfc/rfc2133.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2133.txt rename to doc/rfc/rfc2133.txt diff --git a/contrib/bind9/doc/rfc/rfc2136.txt b/doc/rfc/rfc2136.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2136.txt rename to doc/rfc/rfc2136.txt diff --git a/contrib/bind9/doc/rfc/rfc2137.txt b/doc/rfc/rfc2137.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2137.txt rename to doc/rfc/rfc2137.txt diff --git a/contrib/bind9/doc/rfc/rfc2163.txt b/doc/rfc/rfc2163.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2163.txt rename to doc/rfc/rfc2163.txt diff --git a/contrib/bind9/doc/rfc/rfc2168.txt b/doc/rfc/rfc2168.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2168.txt rename to doc/rfc/rfc2168.txt diff --git a/contrib/bind9/doc/rfc/rfc2181.txt b/doc/rfc/rfc2181.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2181.txt rename to doc/rfc/rfc2181.txt diff --git a/contrib/bind9/doc/rfc/rfc2230.txt b/doc/rfc/rfc2230.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2230.txt rename to doc/rfc/rfc2230.txt diff --git a/contrib/bind9/doc/rfc/rfc2308.txt b/doc/rfc/rfc2308.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2308.txt rename to doc/rfc/rfc2308.txt diff --git a/contrib/bind9/doc/rfc/rfc2317.txt b/doc/rfc/rfc2317.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2317.txt rename to doc/rfc/rfc2317.txt diff --git a/contrib/bind9/doc/rfc/rfc2373.txt b/doc/rfc/rfc2373.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2373.txt rename to doc/rfc/rfc2373.txt diff --git a/contrib/bind9/doc/rfc/rfc2374.txt b/doc/rfc/rfc2374.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2374.txt rename to doc/rfc/rfc2374.txt diff --git a/contrib/bind9/doc/rfc/rfc2375.txt b/doc/rfc/rfc2375.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2375.txt rename to doc/rfc/rfc2375.txt diff --git a/contrib/bind9/doc/rfc/rfc2418.txt b/doc/rfc/rfc2418.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2418.txt rename to doc/rfc/rfc2418.txt diff --git a/contrib/bind9/doc/rfc/rfc2535.txt b/doc/rfc/rfc2535.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2535.txt rename to doc/rfc/rfc2535.txt diff --git a/contrib/bind9/doc/rfc/rfc2536.txt b/doc/rfc/rfc2536.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2536.txt rename to doc/rfc/rfc2536.txt diff --git a/contrib/bind9/doc/rfc/rfc2537.txt b/doc/rfc/rfc2537.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2537.txt rename to doc/rfc/rfc2537.txt diff --git a/contrib/bind9/doc/rfc/rfc2538.txt b/doc/rfc/rfc2538.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2538.txt rename to doc/rfc/rfc2538.txt diff --git a/contrib/bind9/doc/rfc/rfc2539.txt b/doc/rfc/rfc2539.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2539.txt rename to doc/rfc/rfc2539.txt diff --git a/contrib/bind9/doc/rfc/rfc2540.txt b/doc/rfc/rfc2540.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2540.txt rename to doc/rfc/rfc2540.txt diff --git a/contrib/bind9/doc/rfc/rfc2541.txt b/doc/rfc/rfc2541.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2541.txt rename to doc/rfc/rfc2541.txt diff --git a/contrib/bind9/doc/rfc/rfc2553.txt b/doc/rfc/rfc2553.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2553.txt rename to doc/rfc/rfc2553.txt diff --git a/contrib/bind9/doc/rfc/rfc2671.txt b/doc/rfc/rfc2671.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2671.txt rename to doc/rfc/rfc2671.txt diff --git a/contrib/bind9/doc/rfc/rfc2672.txt b/doc/rfc/rfc2672.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2672.txt rename to doc/rfc/rfc2672.txt diff --git a/contrib/bind9/doc/rfc/rfc2673.txt b/doc/rfc/rfc2673.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2673.txt rename to doc/rfc/rfc2673.txt diff --git a/contrib/bind9/doc/rfc/rfc2782.txt b/doc/rfc/rfc2782.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2782.txt rename to doc/rfc/rfc2782.txt diff --git a/contrib/bind9/doc/rfc/rfc2825.txt b/doc/rfc/rfc2825.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2825.txt rename to doc/rfc/rfc2825.txt diff --git a/contrib/bind9/doc/rfc/rfc2826.txt b/doc/rfc/rfc2826.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2826.txt rename to doc/rfc/rfc2826.txt diff --git a/contrib/bind9/doc/rfc/rfc2845.txt b/doc/rfc/rfc2845.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2845.txt rename to doc/rfc/rfc2845.txt diff --git a/contrib/bind9/doc/rfc/rfc2874.txt b/doc/rfc/rfc2874.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2874.txt rename to doc/rfc/rfc2874.txt diff --git a/contrib/bind9/doc/rfc/rfc2915.txt b/doc/rfc/rfc2915.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2915.txt rename to doc/rfc/rfc2915.txt diff --git a/contrib/bind9/doc/rfc/rfc2929.txt b/doc/rfc/rfc2929.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2929.txt rename to doc/rfc/rfc2929.txt diff --git a/contrib/bind9/doc/rfc/rfc2930.txt b/doc/rfc/rfc2930.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2930.txt rename to doc/rfc/rfc2930.txt diff --git a/contrib/bind9/doc/rfc/rfc2931.txt b/doc/rfc/rfc2931.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc2931.txt rename to doc/rfc/rfc2931.txt diff --git a/contrib/bind9/doc/rfc/rfc3007.txt b/doc/rfc/rfc3007.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3007.txt rename to doc/rfc/rfc3007.txt diff --git a/contrib/bind9/doc/rfc/rfc3008.txt b/doc/rfc/rfc3008.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3008.txt rename to doc/rfc/rfc3008.txt diff --git a/contrib/bind9/doc/rfc/rfc3071.txt b/doc/rfc/rfc3071.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3071.txt rename to doc/rfc/rfc3071.txt diff --git a/contrib/bind9/doc/rfc/rfc3090.txt b/doc/rfc/rfc3090.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3090.txt rename to doc/rfc/rfc3090.txt diff --git a/contrib/bind9/doc/rfc/rfc3110.txt b/doc/rfc/rfc3110.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3110.txt rename to doc/rfc/rfc3110.txt diff --git a/contrib/bind9/doc/rfc/rfc3123.txt b/doc/rfc/rfc3123.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3123.txt rename to doc/rfc/rfc3123.txt diff --git a/contrib/bind9/doc/rfc/rfc3152.txt b/doc/rfc/rfc3152.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3152.txt rename to doc/rfc/rfc3152.txt diff --git a/contrib/bind9/doc/rfc/rfc3197.txt b/doc/rfc/rfc3197.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3197.txt rename to doc/rfc/rfc3197.txt diff --git a/contrib/bind9/doc/rfc/rfc3225.txt b/doc/rfc/rfc3225.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3225.txt rename to doc/rfc/rfc3225.txt diff --git a/contrib/bind9/doc/rfc/rfc3226.txt b/doc/rfc/rfc3226.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3226.txt rename to doc/rfc/rfc3226.txt diff --git a/contrib/bind9/doc/rfc/rfc3258.txt b/doc/rfc/rfc3258.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3258.txt rename to doc/rfc/rfc3258.txt diff --git a/contrib/bind9/doc/rfc/rfc3363.txt b/doc/rfc/rfc3363.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3363.txt rename to doc/rfc/rfc3363.txt diff --git a/contrib/bind9/doc/rfc/rfc3364.txt b/doc/rfc/rfc3364.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3364.txt rename to doc/rfc/rfc3364.txt diff --git a/contrib/bind9/doc/rfc/rfc3425.txt b/doc/rfc/rfc3425.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3425.txt rename to doc/rfc/rfc3425.txt diff --git a/contrib/bind9/doc/rfc/rfc3445.txt b/doc/rfc/rfc3445.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3445.txt rename to doc/rfc/rfc3445.txt diff --git a/contrib/bind9/doc/rfc/rfc3467.txt b/doc/rfc/rfc3467.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3467.txt rename to doc/rfc/rfc3467.txt diff --git a/contrib/bind9/doc/rfc/rfc3490.txt b/doc/rfc/rfc3490.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3490.txt rename to doc/rfc/rfc3490.txt diff --git a/contrib/bind9/doc/rfc/rfc3491.txt b/doc/rfc/rfc3491.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3491.txt rename to doc/rfc/rfc3491.txt diff --git a/contrib/bind9/doc/rfc/rfc3492.txt b/doc/rfc/rfc3492.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3492.txt rename to doc/rfc/rfc3492.txt diff --git a/contrib/bind9/doc/rfc/rfc3493.txt b/doc/rfc/rfc3493.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3493.txt rename to doc/rfc/rfc3493.txt diff --git a/contrib/bind9/doc/rfc/rfc3513.txt b/doc/rfc/rfc3513.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3513.txt rename to doc/rfc/rfc3513.txt diff --git a/contrib/bind9/doc/rfc/rfc3596.txt b/doc/rfc/rfc3596.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3596.txt rename to doc/rfc/rfc3596.txt diff --git a/contrib/bind9/doc/rfc/rfc3597.txt b/doc/rfc/rfc3597.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3597.txt rename to doc/rfc/rfc3597.txt diff --git a/contrib/bind9/doc/rfc/rfc3645.txt b/doc/rfc/rfc3645.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3645.txt rename to doc/rfc/rfc3645.txt diff --git a/contrib/bind9/doc/rfc/rfc3655.txt b/doc/rfc/rfc3655.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3655.txt rename to doc/rfc/rfc3655.txt diff --git a/contrib/bind9/doc/rfc/rfc3658.txt b/doc/rfc/rfc3658.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3658.txt rename to doc/rfc/rfc3658.txt diff --git a/contrib/bind9/doc/rfc/rfc3757.txt b/doc/rfc/rfc3757.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3757.txt rename to doc/rfc/rfc3757.txt diff --git a/contrib/bind9/doc/rfc/rfc3833.txt b/doc/rfc/rfc3833.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3833.txt rename to doc/rfc/rfc3833.txt diff --git a/contrib/bind9/doc/rfc/rfc3845.txt b/doc/rfc/rfc3845.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3845.txt rename to doc/rfc/rfc3845.txt diff --git a/contrib/bind9/doc/rfc/rfc3901.txt b/doc/rfc/rfc3901.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc3901.txt rename to doc/rfc/rfc3901.txt diff --git a/contrib/bind9/doc/rfc/rfc4025.txt b/doc/rfc/rfc4025.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4025.txt rename to doc/rfc/rfc4025.txt diff --git a/contrib/bind9/doc/rfc/rfc4033.txt b/doc/rfc/rfc4033.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4033.txt rename to doc/rfc/rfc4033.txt diff --git a/contrib/bind9/doc/rfc/rfc4034.txt b/doc/rfc/rfc4034.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4034.txt rename to doc/rfc/rfc4034.txt diff --git a/contrib/bind9/doc/rfc/rfc4035.txt b/doc/rfc/rfc4035.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4035.txt rename to doc/rfc/rfc4035.txt diff --git a/contrib/bind9/doc/rfc/rfc4074.txt b/doc/rfc/rfc4074.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4074.txt rename to doc/rfc/rfc4074.txt diff --git a/contrib/bind9/doc/rfc/rfc4159.txt b/doc/rfc/rfc4159.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4159.txt rename to doc/rfc/rfc4159.txt diff --git a/contrib/bind9/doc/rfc/rfc4193.txt b/doc/rfc/rfc4193.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4193.txt rename to doc/rfc/rfc4193.txt diff --git a/contrib/bind9/doc/rfc/rfc4255.txt b/doc/rfc/rfc4255.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4255.txt rename to doc/rfc/rfc4255.txt diff --git a/contrib/bind9/doc/rfc/rfc4343.txt b/doc/rfc/rfc4343.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4343.txt rename to doc/rfc/rfc4343.txt diff --git a/contrib/bind9/doc/rfc/rfc4367.txt b/doc/rfc/rfc4367.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4367.txt rename to doc/rfc/rfc4367.txt diff --git a/contrib/bind9/doc/rfc/rfc4398.txt b/doc/rfc/rfc4398.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4398.txt rename to doc/rfc/rfc4398.txt diff --git a/contrib/bind9/doc/rfc/rfc4408.txt b/doc/rfc/rfc4408.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4408.txt rename to doc/rfc/rfc4408.txt diff --git a/contrib/bind9/doc/rfc/rfc4431.txt b/doc/rfc/rfc4431.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4431.txt rename to doc/rfc/rfc4431.txt diff --git a/contrib/bind9/doc/rfc/rfc4470.txt b/doc/rfc/rfc4470.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4470.txt rename to doc/rfc/rfc4470.txt diff --git a/contrib/bind9/doc/rfc/rfc4634.txt b/doc/rfc/rfc4634.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4634.txt rename to doc/rfc/rfc4634.txt diff --git a/contrib/bind9/doc/rfc/rfc4641.txt b/doc/rfc/rfc4641.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc4641.txt rename to doc/rfc/rfc4641.txt diff --git a/contrib/bind9/doc/rfc/rfc952.txt b/doc/rfc/rfc952.txt similarity index 100% rename from contrib/bind9/doc/rfc/rfc952.txt rename to doc/rfc/rfc952.txt diff --git a/contrib/bind9/install-sh b/install-sh similarity index 100% rename from contrib/bind9/install-sh rename to install-sh diff --git a/contrib/bind9/isc-config.sh.in b/isc-config.sh.in similarity index 100% rename from contrib/bind9/isc-config.sh.in rename to isc-config.sh.in diff --git a/contrib/bind9/lib/Makefile.in b/lib/Makefile.in similarity index 100% rename from contrib/bind9/lib/Makefile.in rename to lib/Makefile.in diff --git a/contrib/bind9/lib/bind/Makefile.in b/lib/bind/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/Makefile.in rename to lib/bind/Makefile.in diff --git a/contrib/bind9/lib/bind/README b/lib/bind/README similarity index 100% rename from contrib/bind9/lib/bind/README rename to lib/bind/README diff --git a/contrib/bind9/lib/bind/aclocal.m4 b/lib/bind/aclocal.m4 similarity index 100% rename from contrib/bind9/lib/bind/aclocal.m4 rename to lib/bind/aclocal.m4 diff --git a/contrib/bind9/lib/bind/api b/lib/bind/api similarity index 100% rename from contrib/bind9/lib/bind/api rename to lib/bind/api diff --git a/contrib/bind9/lib/bind/bsd/Makefile.in b/lib/bind/bsd/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/bsd/Makefile.in rename to lib/bind/bsd/Makefile.in diff --git a/contrib/bind9/lib/bind/bsd/daemon.c b/lib/bind/bsd/daemon.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/daemon.c rename to lib/bind/bsd/daemon.c diff --git a/contrib/bind9/lib/bind/bsd/ftruncate.c b/lib/bind/bsd/ftruncate.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/ftruncate.c rename to lib/bind/bsd/ftruncate.c diff --git a/contrib/bind9/lib/bind/bsd/gettimeofday.c b/lib/bind/bsd/gettimeofday.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/gettimeofday.c rename to lib/bind/bsd/gettimeofday.c diff --git a/contrib/bind9/lib/bind/bsd/mktemp.c b/lib/bind/bsd/mktemp.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/mktemp.c rename to lib/bind/bsd/mktemp.c diff --git a/contrib/bind9/lib/bind/bsd/putenv.c b/lib/bind/bsd/putenv.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/putenv.c rename to lib/bind/bsd/putenv.c diff --git a/contrib/bind9/lib/bind/bsd/readv.c b/lib/bind/bsd/readv.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/readv.c rename to lib/bind/bsd/readv.c diff --git a/contrib/bind9/lib/bind/bsd/setenv.c b/lib/bind/bsd/setenv.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/setenv.c rename to lib/bind/bsd/setenv.c diff --git a/contrib/bind9/lib/bind/bsd/setitimer.c b/lib/bind/bsd/setitimer.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/setitimer.c rename to lib/bind/bsd/setitimer.c diff --git a/contrib/bind9/lib/bind/bsd/strcasecmp.c b/lib/bind/bsd/strcasecmp.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/strcasecmp.c rename to lib/bind/bsd/strcasecmp.c diff --git a/contrib/bind9/lib/bind/bsd/strdup.c b/lib/bind/bsd/strdup.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/strdup.c rename to lib/bind/bsd/strdup.c diff --git a/contrib/bind9/lib/bind/bsd/strerror.c b/lib/bind/bsd/strerror.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/strerror.c rename to lib/bind/bsd/strerror.c diff --git a/contrib/bind9/lib/bind/bsd/strpbrk.c b/lib/bind/bsd/strpbrk.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/strpbrk.c rename to lib/bind/bsd/strpbrk.c diff --git a/contrib/bind9/lib/bind/bsd/strsep.c b/lib/bind/bsd/strsep.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/strsep.c rename to lib/bind/bsd/strsep.c diff --git a/contrib/bind9/lib/bind/bsd/strtoul.c b/lib/bind/bsd/strtoul.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/strtoul.c rename to lib/bind/bsd/strtoul.c diff --git a/contrib/bind9/lib/bind/bsd/utimes.c b/lib/bind/bsd/utimes.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/utimes.c rename to lib/bind/bsd/utimes.c diff --git a/contrib/bind9/lib/bind/bsd/writev.c b/lib/bind/bsd/writev.c similarity index 100% rename from contrib/bind9/lib/bind/bsd/writev.c rename to lib/bind/bsd/writev.c diff --git a/contrib/bind9/lib/bind/config.h.in b/lib/bind/config.h.in similarity index 100% rename from contrib/bind9/lib/bind/config.h.in rename to lib/bind/config.h.in diff --git a/contrib/bind9/lib/bind/configure b/lib/bind/configure similarity index 100% rename from contrib/bind9/lib/bind/configure rename to lib/bind/configure diff --git a/contrib/bind9/lib/bind/configure.in b/lib/bind/configure.in similarity index 100% rename from contrib/bind9/lib/bind/configure.in rename to lib/bind/configure.in diff --git a/contrib/bind9/lib/bind/dst/Makefile.in b/lib/bind/dst/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/dst/Makefile.in rename to lib/bind/dst/Makefile.in diff --git a/contrib/bind9/lib/bind/dst/dst_api.c b/lib/bind/dst/dst_api.c similarity index 100% rename from contrib/bind9/lib/bind/dst/dst_api.c rename to lib/bind/dst/dst_api.c diff --git a/contrib/bind9/lib/bind/dst/dst_internal.h b/lib/bind/dst/dst_internal.h similarity index 100% rename from contrib/bind9/lib/bind/dst/dst_internal.h rename to lib/bind/dst/dst_internal.h diff --git a/contrib/bind9/lib/bind/dst/hmac_link.c b/lib/bind/dst/hmac_link.c similarity index 100% rename from contrib/bind9/lib/bind/dst/hmac_link.c rename to lib/bind/dst/hmac_link.c diff --git a/contrib/bind9/lib/bind/dst/md5.h b/lib/bind/dst/md5.h similarity index 100% rename from contrib/bind9/lib/bind/dst/md5.h rename to lib/bind/dst/md5.h diff --git a/contrib/bind9/lib/bind/dst/md5_dgst.c b/lib/bind/dst/md5_dgst.c similarity index 100% rename from contrib/bind9/lib/bind/dst/md5_dgst.c rename to lib/bind/dst/md5_dgst.c diff --git a/contrib/bind9/lib/bind/dst/md5_locl.h b/lib/bind/dst/md5_locl.h similarity index 100% rename from contrib/bind9/lib/bind/dst/md5_locl.h rename to lib/bind/dst/md5_locl.h diff --git a/contrib/bind9/lib/bind/dst/support.c b/lib/bind/dst/support.c similarity index 100% rename from contrib/bind9/lib/bind/dst/support.c rename to lib/bind/dst/support.c diff --git a/contrib/bind9/lib/bind/include/Makefile.in b/lib/bind/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/include/Makefile.in rename to lib/bind/include/Makefile.in diff --git a/contrib/bind9/lib/bind/include/arpa/inet.h b/lib/bind/include/arpa/inet.h similarity index 100% rename from contrib/bind9/lib/bind/include/arpa/inet.h rename to lib/bind/include/arpa/inet.h diff --git a/contrib/bind9/lib/bind/include/arpa/nameser.h b/lib/bind/include/arpa/nameser.h similarity index 100% rename from contrib/bind9/lib/bind/include/arpa/nameser.h rename to lib/bind/include/arpa/nameser.h diff --git a/contrib/bind9/lib/bind/include/arpa/nameser_compat.h b/lib/bind/include/arpa/nameser_compat.h similarity index 100% rename from contrib/bind9/lib/bind/include/arpa/nameser_compat.h rename to lib/bind/include/arpa/nameser_compat.h diff --git a/contrib/bind9/lib/bind/include/fd_setsize.h b/lib/bind/include/fd_setsize.h similarity index 100% rename from contrib/bind9/lib/bind/include/fd_setsize.h rename to lib/bind/include/fd_setsize.h diff --git a/contrib/bind9/lib/bind/include/hesiod.h b/lib/bind/include/hesiod.h similarity index 100% rename from contrib/bind9/lib/bind/include/hesiod.h rename to lib/bind/include/hesiod.h diff --git a/contrib/bind9/lib/bind/include/irp.h b/lib/bind/include/irp.h similarity index 100% rename from contrib/bind9/lib/bind/include/irp.h rename to lib/bind/include/irp.h diff --git a/contrib/bind9/lib/bind/include/irs.h b/lib/bind/include/irs.h similarity index 100% rename from contrib/bind9/lib/bind/include/irs.h rename to lib/bind/include/irs.h diff --git a/contrib/bind9/lib/bind/include/isc/assertions.h b/lib/bind/include/isc/assertions.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/assertions.h rename to lib/bind/include/isc/assertions.h diff --git a/contrib/bind9/lib/bind/include/isc/ctl.h b/lib/bind/include/isc/ctl.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/ctl.h rename to lib/bind/include/isc/ctl.h diff --git a/contrib/bind9/lib/bind/include/isc/dst.h b/lib/bind/include/isc/dst.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/dst.h rename to lib/bind/include/isc/dst.h diff --git a/contrib/bind9/lib/bind/include/isc/eventlib.h b/lib/bind/include/isc/eventlib.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/eventlib.h rename to lib/bind/include/isc/eventlib.h diff --git a/contrib/bind9/lib/bind/include/isc/heap.h b/lib/bind/include/isc/heap.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/heap.h rename to lib/bind/include/isc/heap.h diff --git a/contrib/bind9/lib/bind/include/isc/irpmarshall.h b/lib/bind/include/isc/irpmarshall.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/irpmarshall.h rename to lib/bind/include/isc/irpmarshall.h diff --git a/contrib/bind9/lib/bind/include/isc/list.h b/lib/bind/include/isc/list.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/list.h rename to lib/bind/include/isc/list.h diff --git a/contrib/bind9/lib/bind/include/isc/logging.h b/lib/bind/include/isc/logging.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/logging.h rename to lib/bind/include/isc/logging.h diff --git a/contrib/bind9/lib/bind/include/isc/memcluster.h b/lib/bind/include/isc/memcluster.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/memcluster.h rename to lib/bind/include/isc/memcluster.h diff --git a/contrib/bind9/lib/bind/include/isc/misc.h b/lib/bind/include/isc/misc.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/misc.h rename to lib/bind/include/isc/misc.h diff --git a/contrib/bind9/lib/bind/include/isc/tree.h b/lib/bind/include/isc/tree.h similarity index 100% rename from contrib/bind9/lib/bind/include/isc/tree.h rename to lib/bind/include/isc/tree.h diff --git a/contrib/bind9/lib/bind/include/netdb.h b/lib/bind/include/netdb.h similarity index 100% rename from contrib/bind9/lib/bind/include/netdb.h rename to lib/bind/include/netdb.h diff --git a/contrib/bind9/lib/bind/include/netgroup.h b/lib/bind/include/netgroup.h similarity index 100% rename from contrib/bind9/lib/bind/include/netgroup.h rename to lib/bind/include/netgroup.h diff --git a/contrib/bind9/lib/bind/include/res_update.h b/lib/bind/include/res_update.h similarity index 100% rename from contrib/bind9/lib/bind/include/res_update.h rename to lib/bind/include/res_update.h diff --git a/contrib/bind9/lib/bind/include/resolv.h b/lib/bind/include/resolv.h similarity index 100% rename from contrib/bind9/lib/bind/include/resolv.h rename to lib/bind/include/resolv.h diff --git a/contrib/bind9/lib/bind/include/resolv_mt.h b/lib/bind/include/resolv_mt.h similarity index 100% rename from contrib/bind9/lib/bind/include/resolv_mt.h rename to lib/bind/include/resolv_mt.h diff --git a/contrib/bind9/lib/bind/inet/Makefile.in b/lib/bind/inet/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/inet/Makefile.in rename to lib/bind/inet/Makefile.in diff --git a/contrib/bind9/lib/bind/inet/inet_addr.c b/lib/bind/inet/inet_addr.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_addr.c rename to lib/bind/inet/inet_addr.c diff --git a/contrib/bind9/lib/bind/inet/inet_cidr_ntop.c b/lib/bind/inet/inet_cidr_ntop.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_cidr_ntop.c rename to lib/bind/inet/inet_cidr_ntop.c diff --git a/contrib/bind9/lib/bind/inet/inet_cidr_pton.c b/lib/bind/inet/inet_cidr_pton.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_cidr_pton.c rename to lib/bind/inet/inet_cidr_pton.c diff --git a/contrib/bind9/lib/bind/inet/inet_data.c b/lib/bind/inet/inet_data.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_data.c rename to lib/bind/inet/inet_data.c diff --git a/contrib/bind9/lib/bind/inet/inet_lnaof.c b/lib/bind/inet/inet_lnaof.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_lnaof.c rename to lib/bind/inet/inet_lnaof.c diff --git a/contrib/bind9/lib/bind/inet/inet_makeaddr.c b/lib/bind/inet/inet_makeaddr.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_makeaddr.c rename to lib/bind/inet/inet_makeaddr.c diff --git a/contrib/bind9/lib/bind/inet/inet_net_ntop.c b/lib/bind/inet/inet_net_ntop.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_net_ntop.c rename to lib/bind/inet/inet_net_ntop.c diff --git a/contrib/bind9/lib/bind/inet/inet_net_pton.c b/lib/bind/inet/inet_net_pton.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_net_pton.c rename to lib/bind/inet/inet_net_pton.c diff --git a/contrib/bind9/lib/bind/inet/inet_neta.c b/lib/bind/inet/inet_neta.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_neta.c rename to lib/bind/inet/inet_neta.c diff --git a/contrib/bind9/lib/bind/inet/inet_netof.c b/lib/bind/inet/inet_netof.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_netof.c rename to lib/bind/inet/inet_netof.c diff --git a/contrib/bind9/lib/bind/inet/inet_network.c b/lib/bind/inet/inet_network.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_network.c rename to lib/bind/inet/inet_network.c diff --git a/contrib/bind9/lib/bind/inet/inet_ntoa.c b/lib/bind/inet/inet_ntoa.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_ntoa.c rename to lib/bind/inet/inet_ntoa.c diff --git a/contrib/bind9/lib/bind/inet/inet_ntop.c b/lib/bind/inet/inet_ntop.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_ntop.c rename to lib/bind/inet/inet_ntop.c diff --git a/contrib/bind9/lib/bind/inet/inet_pton.c b/lib/bind/inet/inet_pton.c similarity index 100% rename from contrib/bind9/lib/bind/inet/inet_pton.c rename to lib/bind/inet/inet_pton.c diff --git a/contrib/bind9/lib/bind/inet/nsap_addr.c b/lib/bind/inet/nsap_addr.c similarity index 100% rename from contrib/bind9/lib/bind/inet/nsap_addr.c rename to lib/bind/inet/nsap_addr.c diff --git a/contrib/bind9/lib/bind/irs/Makefile.in b/lib/bind/irs/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/irs/Makefile.in rename to lib/bind/irs/Makefile.in diff --git a/contrib/bind9/lib/bind/irs/dns.c b/lib/bind/irs/dns.c similarity index 100% rename from contrib/bind9/lib/bind/irs/dns.c rename to lib/bind/irs/dns.c diff --git a/contrib/bind9/lib/bind/irs/dns_gr.c b/lib/bind/irs/dns_gr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/dns_gr.c rename to lib/bind/irs/dns_gr.c diff --git a/contrib/bind9/lib/bind/irs/dns_ho.c b/lib/bind/irs/dns_ho.c similarity index 100% rename from contrib/bind9/lib/bind/irs/dns_ho.c rename to lib/bind/irs/dns_ho.c diff --git a/contrib/bind9/lib/bind/irs/dns_nw.c b/lib/bind/irs/dns_nw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/dns_nw.c rename to lib/bind/irs/dns_nw.c diff --git a/contrib/bind9/lib/bind/irs/dns_p.h b/lib/bind/irs/dns_p.h similarity index 100% rename from contrib/bind9/lib/bind/irs/dns_p.h rename to lib/bind/irs/dns_p.h diff --git a/contrib/bind9/lib/bind/irs/dns_pr.c b/lib/bind/irs/dns_pr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/dns_pr.c rename to lib/bind/irs/dns_pr.c diff --git a/contrib/bind9/lib/bind/irs/dns_pw.c b/lib/bind/irs/dns_pw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/dns_pw.c rename to lib/bind/irs/dns_pw.c diff --git a/contrib/bind9/lib/bind/irs/dns_sv.c b/lib/bind/irs/dns_sv.c similarity index 100% rename from contrib/bind9/lib/bind/irs/dns_sv.c rename to lib/bind/irs/dns_sv.c diff --git a/contrib/bind9/lib/bind/irs/gai_strerror.c b/lib/bind/irs/gai_strerror.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gai_strerror.c rename to lib/bind/irs/gai_strerror.c diff --git a/contrib/bind9/lib/bind/irs/gen.c b/lib/bind/irs/gen.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen.c rename to lib/bind/irs/gen.c diff --git a/contrib/bind9/lib/bind/irs/gen_gr.c b/lib/bind/irs/gen_gr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_gr.c rename to lib/bind/irs/gen_gr.c diff --git a/contrib/bind9/lib/bind/irs/gen_ho.c b/lib/bind/irs/gen_ho.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_ho.c rename to lib/bind/irs/gen_ho.c diff --git a/contrib/bind9/lib/bind/irs/gen_ng.c b/lib/bind/irs/gen_ng.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_ng.c rename to lib/bind/irs/gen_ng.c diff --git a/contrib/bind9/lib/bind/irs/gen_nw.c b/lib/bind/irs/gen_nw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_nw.c rename to lib/bind/irs/gen_nw.c diff --git a/contrib/bind9/lib/bind/irs/gen_p.h b/lib/bind/irs/gen_p.h similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_p.h rename to lib/bind/irs/gen_p.h diff --git a/contrib/bind9/lib/bind/irs/gen_pr.c b/lib/bind/irs/gen_pr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_pr.c rename to lib/bind/irs/gen_pr.c diff --git a/contrib/bind9/lib/bind/irs/gen_pw.c b/lib/bind/irs/gen_pw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_pw.c rename to lib/bind/irs/gen_pw.c diff --git a/contrib/bind9/lib/bind/irs/gen_sv.c b/lib/bind/irs/gen_sv.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gen_sv.c rename to lib/bind/irs/gen_sv.c diff --git a/contrib/bind9/lib/bind/irs/getaddrinfo.c b/lib/bind/irs/getaddrinfo.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getaddrinfo.c rename to lib/bind/irs/getaddrinfo.c diff --git a/contrib/bind9/lib/bind/irs/getgrent.c b/lib/bind/irs/getgrent.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getgrent.c rename to lib/bind/irs/getgrent.c diff --git a/contrib/bind9/lib/bind/irs/getgrent_r.c b/lib/bind/irs/getgrent_r.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getgrent_r.c rename to lib/bind/irs/getgrent_r.c diff --git a/contrib/bind9/lib/bind/irs/gethostent.c b/lib/bind/irs/gethostent.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gethostent.c rename to lib/bind/irs/gethostent.c diff --git a/contrib/bind9/lib/bind/irs/gethostent_r.c b/lib/bind/irs/gethostent_r.c similarity index 100% rename from contrib/bind9/lib/bind/irs/gethostent_r.c rename to lib/bind/irs/gethostent_r.c diff --git a/contrib/bind9/lib/bind/irs/getnameinfo.c b/lib/bind/irs/getnameinfo.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getnameinfo.c rename to lib/bind/irs/getnameinfo.c diff --git a/contrib/bind9/lib/bind/irs/getnetent.c b/lib/bind/irs/getnetent.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getnetent.c rename to lib/bind/irs/getnetent.c diff --git a/contrib/bind9/lib/bind/irs/getnetent_r.c b/lib/bind/irs/getnetent_r.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getnetent_r.c rename to lib/bind/irs/getnetent_r.c diff --git a/contrib/bind9/lib/bind/irs/getnetgrent.c b/lib/bind/irs/getnetgrent.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getnetgrent.c rename to lib/bind/irs/getnetgrent.c diff --git a/contrib/bind9/lib/bind/irs/getnetgrent_r.c b/lib/bind/irs/getnetgrent_r.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getnetgrent_r.c rename to lib/bind/irs/getnetgrent_r.c diff --git a/contrib/bind9/lib/bind/irs/getprotoent.c b/lib/bind/irs/getprotoent.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getprotoent.c rename to lib/bind/irs/getprotoent.c diff --git a/contrib/bind9/lib/bind/irs/getprotoent_r.c b/lib/bind/irs/getprotoent_r.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getprotoent_r.c rename to lib/bind/irs/getprotoent_r.c diff --git a/contrib/bind9/lib/bind/irs/getpwent.c b/lib/bind/irs/getpwent.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getpwent.c rename to lib/bind/irs/getpwent.c diff --git a/contrib/bind9/lib/bind/irs/getpwent_r.c b/lib/bind/irs/getpwent_r.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getpwent_r.c rename to lib/bind/irs/getpwent_r.c diff --git a/contrib/bind9/lib/bind/irs/getservent.c b/lib/bind/irs/getservent.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getservent.c rename to lib/bind/irs/getservent.c diff --git a/contrib/bind9/lib/bind/irs/getservent_r.c b/lib/bind/irs/getservent_r.c similarity index 100% rename from contrib/bind9/lib/bind/irs/getservent_r.c rename to lib/bind/irs/getservent_r.c diff --git a/contrib/bind9/lib/bind/irs/hesiod.c b/lib/bind/irs/hesiod.c similarity index 100% rename from contrib/bind9/lib/bind/irs/hesiod.c rename to lib/bind/irs/hesiod.c diff --git a/contrib/bind9/lib/bind/irs/hesiod_p.h b/lib/bind/irs/hesiod_p.h similarity index 100% rename from contrib/bind9/lib/bind/irs/hesiod_p.h rename to lib/bind/irs/hesiod_p.h diff --git a/contrib/bind9/lib/bind/irs/irp.c b/lib/bind/irs/irp.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp.c rename to lib/bind/irs/irp.c diff --git a/contrib/bind9/lib/bind/irs/irp_gr.c b/lib/bind/irs/irp_gr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_gr.c rename to lib/bind/irs/irp_gr.c diff --git a/contrib/bind9/lib/bind/irs/irp_ho.c b/lib/bind/irs/irp_ho.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_ho.c rename to lib/bind/irs/irp_ho.c diff --git a/contrib/bind9/lib/bind/irs/irp_ng.c b/lib/bind/irs/irp_ng.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_ng.c rename to lib/bind/irs/irp_ng.c diff --git a/contrib/bind9/lib/bind/irs/irp_nw.c b/lib/bind/irs/irp_nw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_nw.c rename to lib/bind/irs/irp_nw.c diff --git a/contrib/bind9/lib/bind/irs/irp_p.h b/lib/bind/irs/irp_p.h similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_p.h rename to lib/bind/irs/irp_p.h diff --git a/contrib/bind9/lib/bind/irs/irp_pr.c b/lib/bind/irs/irp_pr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_pr.c rename to lib/bind/irs/irp_pr.c diff --git a/contrib/bind9/lib/bind/irs/irp_pw.c b/lib/bind/irs/irp_pw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_pw.c rename to lib/bind/irs/irp_pw.c diff --git a/contrib/bind9/lib/bind/irs/irp_sv.c b/lib/bind/irs/irp_sv.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irp_sv.c rename to lib/bind/irs/irp_sv.c diff --git a/contrib/bind9/lib/bind/irs/irpmarshall.c b/lib/bind/irs/irpmarshall.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irpmarshall.c rename to lib/bind/irs/irpmarshall.c diff --git a/contrib/bind9/lib/bind/irs/irs_data.c b/lib/bind/irs/irs_data.c similarity index 100% rename from contrib/bind9/lib/bind/irs/irs_data.c rename to lib/bind/irs/irs_data.c diff --git a/contrib/bind9/lib/bind/irs/irs_data.h b/lib/bind/irs/irs_data.h similarity index 100% rename from contrib/bind9/lib/bind/irs/irs_data.h rename to lib/bind/irs/irs_data.h diff --git a/contrib/bind9/lib/bind/irs/irs_p.h b/lib/bind/irs/irs_p.h similarity index 100% rename from contrib/bind9/lib/bind/irs/irs_p.h rename to lib/bind/irs/irs_p.h diff --git a/contrib/bind9/lib/bind/irs/lcl.c b/lib/bind/irs/lcl.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl.c rename to lib/bind/irs/lcl.c diff --git a/contrib/bind9/lib/bind/irs/lcl_gr.c b/lib/bind/irs/lcl_gr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_gr.c rename to lib/bind/irs/lcl_gr.c diff --git a/contrib/bind9/lib/bind/irs/lcl_ho.c b/lib/bind/irs/lcl_ho.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_ho.c rename to lib/bind/irs/lcl_ho.c diff --git a/contrib/bind9/lib/bind/irs/lcl_ng.c b/lib/bind/irs/lcl_ng.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_ng.c rename to lib/bind/irs/lcl_ng.c diff --git a/contrib/bind9/lib/bind/irs/lcl_nw.c b/lib/bind/irs/lcl_nw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_nw.c rename to lib/bind/irs/lcl_nw.c diff --git a/contrib/bind9/lib/bind/irs/lcl_p.h b/lib/bind/irs/lcl_p.h similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_p.h rename to lib/bind/irs/lcl_p.h diff --git a/contrib/bind9/lib/bind/irs/lcl_pr.c b/lib/bind/irs/lcl_pr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_pr.c rename to lib/bind/irs/lcl_pr.c diff --git a/contrib/bind9/lib/bind/irs/lcl_pw.c b/lib/bind/irs/lcl_pw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_pw.c rename to lib/bind/irs/lcl_pw.c diff --git a/contrib/bind9/lib/bind/irs/lcl_sv.c b/lib/bind/irs/lcl_sv.c similarity index 100% rename from contrib/bind9/lib/bind/irs/lcl_sv.c rename to lib/bind/irs/lcl_sv.c diff --git a/contrib/bind9/lib/bind/irs/nis.c b/lib/bind/irs/nis.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis.c rename to lib/bind/irs/nis.c diff --git a/contrib/bind9/lib/bind/irs/nis_gr.c b/lib/bind/irs/nis_gr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_gr.c rename to lib/bind/irs/nis_gr.c diff --git a/contrib/bind9/lib/bind/irs/nis_ho.c b/lib/bind/irs/nis_ho.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_ho.c rename to lib/bind/irs/nis_ho.c diff --git a/contrib/bind9/lib/bind/irs/nis_ng.c b/lib/bind/irs/nis_ng.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_ng.c rename to lib/bind/irs/nis_ng.c diff --git a/contrib/bind9/lib/bind/irs/nis_nw.c b/lib/bind/irs/nis_nw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_nw.c rename to lib/bind/irs/nis_nw.c diff --git a/contrib/bind9/lib/bind/irs/nis_p.h b/lib/bind/irs/nis_p.h similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_p.h rename to lib/bind/irs/nis_p.h diff --git a/contrib/bind9/lib/bind/irs/nis_pr.c b/lib/bind/irs/nis_pr.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_pr.c rename to lib/bind/irs/nis_pr.c diff --git a/contrib/bind9/lib/bind/irs/nis_pw.c b/lib/bind/irs/nis_pw.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_pw.c rename to lib/bind/irs/nis_pw.c diff --git a/contrib/bind9/lib/bind/irs/nis_sv.c b/lib/bind/irs/nis_sv.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nis_sv.c rename to lib/bind/irs/nis_sv.c diff --git a/contrib/bind9/lib/bind/irs/nul_ng.c b/lib/bind/irs/nul_ng.c similarity index 100% rename from contrib/bind9/lib/bind/irs/nul_ng.c rename to lib/bind/irs/nul_ng.c diff --git a/contrib/bind9/lib/bind/irs/pathnames.h b/lib/bind/irs/pathnames.h similarity index 100% rename from contrib/bind9/lib/bind/irs/pathnames.h rename to lib/bind/irs/pathnames.h diff --git a/contrib/bind9/lib/bind/irs/util.c b/lib/bind/irs/util.c similarity index 100% rename from contrib/bind9/lib/bind/irs/util.c rename to lib/bind/irs/util.c diff --git a/contrib/bind9/lib/bind/isc/Makefile.in b/lib/bind/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/isc/Makefile.in rename to lib/bind/isc/Makefile.in diff --git a/contrib/bind9/lib/bind/isc/assertions.c b/lib/bind/isc/assertions.c similarity index 100% rename from contrib/bind9/lib/bind/isc/assertions.c rename to lib/bind/isc/assertions.c diff --git a/contrib/bind9/lib/bind/isc/assertions.mdoc b/lib/bind/isc/assertions.mdoc similarity index 100% rename from contrib/bind9/lib/bind/isc/assertions.mdoc rename to lib/bind/isc/assertions.mdoc diff --git a/contrib/bind9/lib/bind/isc/base64.c b/lib/bind/isc/base64.c similarity index 100% rename from contrib/bind9/lib/bind/isc/base64.c rename to lib/bind/isc/base64.c diff --git a/contrib/bind9/lib/bind/isc/bitncmp.c b/lib/bind/isc/bitncmp.c similarity index 100% rename from contrib/bind9/lib/bind/isc/bitncmp.c rename to lib/bind/isc/bitncmp.c diff --git a/contrib/bind9/lib/bind/isc/bitncmp.mdoc b/lib/bind/isc/bitncmp.mdoc similarity index 100% rename from contrib/bind9/lib/bind/isc/bitncmp.mdoc rename to lib/bind/isc/bitncmp.mdoc diff --git a/contrib/bind9/lib/bind/isc/ctl_clnt.c b/lib/bind/isc/ctl_clnt.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ctl_clnt.c rename to lib/bind/isc/ctl_clnt.c diff --git a/contrib/bind9/lib/bind/isc/ctl_p.c b/lib/bind/isc/ctl_p.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ctl_p.c rename to lib/bind/isc/ctl_p.c diff --git a/contrib/bind9/lib/bind/isc/ctl_p.h b/lib/bind/isc/ctl_p.h similarity index 100% rename from contrib/bind9/lib/bind/isc/ctl_p.h rename to lib/bind/isc/ctl_p.h diff --git a/contrib/bind9/lib/bind/isc/ctl_srvr.c b/lib/bind/isc/ctl_srvr.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ctl_srvr.c rename to lib/bind/isc/ctl_srvr.c diff --git a/contrib/bind9/lib/bind/isc/ev_connects.c b/lib/bind/isc/ev_connects.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ev_connects.c rename to lib/bind/isc/ev_connects.c diff --git a/contrib/bind9/lib/bind/isc/ev_files.c b/lib/bind/isc/ev_files.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ev_files.c rename to lib/bind/isc/ev_files.c diff --git a/contrib/bind9/lib/bind/isc/ev_streams.c b/lib/bind/isc/ev_streams.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ev_streams.c rename to lib/bind/isc/ev_streams.c diff --git a/contrib/bind9/lib/bind/isc/ev_timers.c b/lib/bind/isc/ev_timers.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ev_timers.c rename to lib/bind/isc/ev_timers.c diff --git a/contrib/bind9/lib/bind/isc/ev_waits.c b/lib/bind/isc/ev_waits.c similarity index 100% rename from contrib/bind9/lib/bind/isc/ev_waits.c rename to lib/bind/isc/ev_waits.c diff --git a/contrib/bind9/lib/bind/isc/eventlib.c b/lib/bind/isc/eventlib.c similarity index 100% rename from contrib/bind9/lib/bind/isc/eventlib.c rename to lib/bind/isc/eventlib.c diff --git a/contrib/bind9/lib/bind/isc/eventlib.mdoc b/lib/bind/isc/eventlib.mdoc similarity index 100% rename from contrib/bind9/lib/bind/isc/eventlib.mdoc rename to lib/bind/isc/eventlib.mdoc diff --git a/contrib/bind9/lib/bind/isc/eventlib_p.h b/lib/bind/isc/eventlib_p.h similarity index 100% rename from contrib/bind9/lib/bind/isc/eventlib_p.h rename to lib/bind/isc/eventlib_p.h diff --git a/contrib/bind9/lib/bind/isc/heap.c b/lib/bind/isc/heap.c similarity index 100% rename from contrib/bind9/lib/bind/isc/heap.c rename to lib/bind/isc/heap.c diff --git a/contrib/bind9/lib/bind/isc/heap.mdoc b/lib/bind/isc/heap.mdoc similarity index 100% rename from contrib/bind9/lib/bind/isc/heap.mdoc rename to lib/bind/isc/heap.mdoc diff --git a/contrib/bind9/lib/bind/isc/hex.c b/lib/bind/isc/hex.c similarity index 100% rename from contrib/bind9/lib/bind/isc/hex.c rename to lib/bind/isc/hex.c diff --git a/contrib/bind9/lib/bind/isc/logging.c b/lib/bind/isc/logging.c similarity index 100% rename from contrib/bind9/lib/bind/isc/logging.c rename to lib/bind/isc/logging.c diff --git a/contrib/bind9/lib/bind/isc/logging.mdoc b/lib/bind/isc/logging.mdoc similarity index 100% rename from contrib/bind9/lib/bind/isc/logging.mdoc rename to lib/bind/isc/logging.mdoc diff --git a/contrib/bind9/lib/bind/isc/logging_p.h b/lib/bind/isc/logging_p.h similarity index 100% rename from contrib/bind9/lib/bind/isc/logging_p.h rename to lib/bind/isc/logging_p.h diff --git a/contrib/bind9/lib/bind/isc/memcluster.c b/lib/bind/isc/memcluster.c similarity index 100% rename from contrib/bind9/lib/bind/isc/memcluster.c rename to lib/bind/isc/memcluster.c diff --git a/contrib/bind9/lib/bind/isc/memcluster.mdoc b/lib/bind/isc/memcluster.mdoc similarity index 100% rename from contrib/bind9/lib/bind/isc/memcluster.mdoc rename to lib/bind/isc/memcluster.mdoc diff --git a/contrib/bind9/lib/bind/isc/movefile.c b/lib/bind/isc/movefile.c similarity index 100% rename from contrib/bind9/lib/bind/isc/movefile.c rename to lib/bind/isc/movefile.c diff --git a/contrib/bind9/lib/bind/isc/tree.c b/lib/bind/isc/tree.c similarity index 100% rename from contrib/bind9/lib/bind/isc/tree.c rename to lib/bind/isc/tree.c diff --git a/contrib/bind9/lib/bind/isc/tree.mdoc b/lib/bind/isc/tree.mdoc similarity index 100% rename from contrib/bind9/lib/bind/isc/tree.mdoc rename to lib/bind/isc/tree.mdoc diff --git a/contrib/bind9/lib/bind/make/includes.in b/lib/bind/make/includes.in similarity index 100% rename from contrib/bind9/lib/bind/make/includes.in rename to lib/bind/make/includes.in diff --git a/contrib/bind9/lib/bind/make/mkdep.in b/lib/bind/make/mkdep.in similarity index 100% rename from contrib/bind9/lib/bind/make/mkdep.in rename to lib/bind/make/mkdep.in diff --git a/contrib/bind9/lib/bind/make/rules.in b/lib/bind/make/rules.in similarity index 100% rename from contrib/bind9/lib/bind/make/rules.in rename to lib/bind/make/rules.in diff --git a/contrib/bind9/lib/bind/mkinstalldirs b/lib/bind/mkinstalldirs similarity index 100% rename from contrib/bind9/lib/bind/mkinstalldirs rename to lib/bind/mkinstalldirs diff --git a/contrib/bind9/lib/bind/nameser/Makefile.in b/lib/bind/nameser/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/nameser/Makefile.in rename to lib/bind/nameser/Makefile.in diff --git a/contrib/bind9/lib/bind/nameser/ns_date.c b/lib/bind/nameser/ns_date.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_date.c rename to lib/bind/nameser/ns_date.c diff --git a/contrib/bind9/lib/bind/nameser/ns_name.c b/lib/bind/nameser/ns_name.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_name.c rename to lib/bind/nameser/ns_name.c diff --git a/contrib/bind9/lib/bind/nameser/ns_netint.c b/lib/bind/nameser/ns_netint.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_netint.c rename to lib/bind/nameser/ns_netint.c diff --git a/contrib/bind9/lib/bind/nameser/ns_parse.c b/lib/bind/nameser/ns_parse.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_parse.c rename to lib/bind/nameser/ns_parse.c diff --git a/contrib/bind9/lib/bind/nameser/ns_print.c b/lib/bind/nameser/ns_print.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_print.c rename to lib/bind/nameser/ns_print.c diff --git a/contrib/bind9/lib/bind/nameser/ns_samedomain.c b/lib/bind/nameser/ns_samedomain.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_samedomain.c rename to lib/bind/nameser/ns_samedomain.c diff --git a/contrib/bind9/lib/bind/nameser/ns_sign.c b/lib/bind/nameser/ns_sign.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_sign.c rename to lib/bind/nameser/ns_sign.c diff --git a/contrib/bind9/lib/bind/nameser/ns_ttl.c b/lib/bind/nameser/ns_ttl.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_ttl.c rename to lib/bind/nameser/ns_ttl.c diff --git a/contrib/bind9/lib/bind/nameser/ns_verify.c b/lib/bind/nameser/ns_verify.c similarity index 100% rename from contrib/bind9/lib/bind/nameser/ns_verify.c rename to lib/bind/nameser/ns_verify.c diff --git a/contrib/bind9/lib/bind/port/Makefile.in b/lib/bind/port/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/port/Makefile.in rename to lib/bind/port/Makefile.in diff --git a/contrib/bind9/lib/bind/port/freebsd/Makefile.in b/lib/bind/port/freebsd/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/port/freebsd/Makefile.in rename to lib/bind/port/freebsd/Makefile.in diff --git a/contrib/bind9/lib/bind/port/freebsd/include/Makefile.in b/lib/bind/port/freebsd/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/port/freebsd/include/Makefile.in rename to lib/bind/port/freebsd/include/Makefile.in diff --git a/contrib/bind9/lib/bind/port/freebsd/include/sys/bitypes.h b/lib/bind/port/freebsd/include/sys/bitypes.h similarity index 100% rename from contrib/bind9/lib/bind/port/freebsd/include/sys/bitypes.h rename to lib/bind/port/freebsd/include/sys/bitypes.h diff --git a/contrib/bind9/lib/bind/port_after.h.in b/lib/bind/port_after.h.in similarity index 100% rename from contrib/bind9/lib/bind/port_after.h.in rename to lib/bind/port_after.h.in diff --git a/contrib/bind9/lib/bind/port_before.h.in b/lib/bind/port_before.h.in similarity index 100% rename from contrib/bind9/lib/bind/port_before.h.in rename to lib/bind/port_before.h.in diff --git a/contrib/bind9/lib/bind/resolv/Makefile.in b/lib/bind/resolv/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind/resolv/Makefile.in rename to lib/bind/resolv/Makefile.in diff --git a/contrib/bind9/lib/bind/resolv/herror.c b/lib/bind/resolv/herror.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/herror.c rename to lib/bind/resolv/herror.c diff --git a/contrib/bind9/lib/bind/resolv/mtctxres.c b/lib/bind/resolv/mtctxres.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/mtctxres.c rename to lib/bind/resolv/mtctxres.c diff --git a/contrib/bind9/lib/bind/resolv/res_comp.c b/lib/bind/resolv/res_comp.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_comp.c rename to lib/bind/resolv/res_comp.c diff --git a/contrib/bind9/lib/bind/resolv/res_data.c b/lib/bind/resolv/res_data.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_data.c rename to lib/bind/resolv/res_data.c diff --git a/contrib/bind9/lib/bind/resolv/res_debug.c b/lib/bind/resolv/res_debug.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_debug.c rename to lib/bind/resolv/res_debug.c diff --git a/contrib/bind9/lib/bind/resolv/res_debug.h b/lib/bind/resolv/res_debug.h similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_debug.h rename to lib/bind/resolv/res_debug.h diff --git a/contrib/bind9/lib/bind/resolv/res_findzonecut.c b/lib/bind/resolv/res_findzonecut.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_findzonecut.c rename to lib/bind/resolv/res_findzonecut.c diff --git a/contrib/bind9/lib/bind/resolv/res_init.c b/lib/bind/resolv/res_init.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_init.c rename to lib/bind/resolv/res_init.c diff --git a/contrib/bind9/lib/bind/resolv/res_mkquery.c b/lib/bind/resolv/res_mkquery.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_mkquery.c rename to lib/bind/resolv/res_mkquery.c diff --git a/contrib/bind9/lib/bind/resolv/res_mkupdate.c b/lib/bind/resolv/res_mkupdate.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_mkupdate.c rename to lib/bind/resolv/res_mkupdate.c diff --git a/contrib/bind9/lib/bind/resolv/res_mkupdate.h b/lib/bind/resolv/res_mkupdate.h similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_mkupdate.h rename to lib/bind/resolv/res_mkupdate.h diff --git a/contrib/bind9/lib/bind/resolv/res_private.h b/lib/bind/resolv/res_private.h similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_private.h rename to lib/bind/resolv/res_private.h diff --git a/contrib/bind9/lib/bind/resolv/res_query.c b/lib/bind/resolv/res_query.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_query.c rename to lib/bind/resolv/res_query.c diff --git a/contrib/bind9/lib/bind/resolv/res_send.c b/lib/bind/resolv/res_send.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_send.c rename to lib/bind/resolv/res_send.c diff --git a/contrib/bind9/lib/bind/resolv/res_sendsigned.c b/lib/bind/resolv/res_sendsigned.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_sendsigned.c rename to lib/bind/resolv/res_sendsigned.c diff --git a/contrib/bind9/lib/bind/resolv/res_update.c b/lib/bind/resolv/res_update.c similarity index 100% rename from contrib/bind9/lib/bind/resolv/res_update.c rename to lib/bind/resolv/res_update.c diff --git a/contrib/bind9/lib/bind9/Makefile.in b/lib/bind9/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind9/Makefile.in rename to lib/bind9/Makefile.in diff --git a/contrib/bind9/lib/bind9/api b/lib/bind9/api similarity index 100% rename from contrib/bind9/lib/bind9/api rename to lib/bind9/api diff --git a/contrib/bind9/lib/bind9/check.c b/lib/bind9/check.c similarity index 100% rename from contrib/bind9/lib/bind9/check.c rename to lib/bind9/check.c diff --git a/contrib/bind9/lib/bind9/getaddresses.c b/lib/bind9/getaddresses.c similarity index 100% rename from contrib/bind9/lib/bind9/getaddresses.c rename to lib/bind9/getaddresses.c diff --git a/contrib/bind9/lib/bind9/include/Makefile.in b/lib/bind9/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind9/include/Makefile.in rename to lib/bind9/include/Makefile.in diff --git a/contrib/bind9/lib/bind9/include/bind9/Makefile.in b/lib/bind9/include/bind9/Makefile.in similarity index 100% rename from contrib/bind9/lib/bind9/include/bind9/Makefile.in rename to lib/bind9/include/bind9/Makefile.in diff --git a/contrib/bind9/lib/bind9/include/bind9/check.h b/lib/bind9/include/bind9/check.h similarity index 100% rename from contrib/bind9/lib/bind9/include/bind9/check.h rename to lib/bind9/include/bind9/check.h diff --git a/contrib/bind9/lib/bind9/include/bind9/getaddresses.h b/lib/bind9/include/bind9/getaddresses.h similarity index 100% rename from contrib/bind9/lib/bind9/include/bind9/getaddresses.h rename to lib/bind9/include/bind9/getaddresses.h diff --git a/contrib/bind9/lib/bind9/include/bind9/version.h b/lib/bind9/include/bind9/version.h similarity index 100% rename from contrib/bind9/lib/bind9/include/bind9/version.h rename to lib/bind9/include/bind9/version.h diff --git a/contrib/bind9/lib/bind9/version.c b/lib/bind9/version.c similarity index 100% rename from contrib/bind9/lib/bind9/version.c rename to lib/bind9/version.c diff --git a/contrib/bind9/lib/dns/Makefile.in b/lib/dns/Makefile.in similarity index 100% rename from contrib/bind9/lib/dns/Makefile.in rename to lib/dns/Makefile.in diff --git a/contrib/bind9/lib/dns/acache.c b/lib/dns/acache.c similarity index 100% rename from contrib/bind9/lib/dns/acache.c rename to lib/dns/acache.c diff --git a/contrib/bind9/lib/dns/acl.c b/lib/dns/acl.c similarity index 100% rename from contrib/bind9/lib/dns/acl.c rename to lib/dns/acl.c diff --git a/contrib/bind9/lib/dns/adb.c b/lib/dns/adb.c similarity index 100% rename from contrib/bind9/lib/dns/adb.c rename to lib/dns/adb.c diff --git a/contrib/bind9/lib/dns/api b/lib/dns/api similarity index 100% rename from contrib/bind9/lib/dns/api rename to lib/dns/api diff --git a/contrib/bind9/lib/dns/byaddr.c b/lib/dns/byaddr.c similarity index 100% rename from contrib/bind9/lib/dns/byaddr.c rename to lib/dns/byaddr.c diff --git a/contrib/bind9/lib/dns/cache.c b/lib/dns/cache.c similarity index 100% rename from contrib/bind9/lib/dns/cache.c rename to lib/dns/cache.c diff --git a/contrib/bind9/lib/dns/callbacks.c b/lib/dns/callbacks.c similarity index 100% rename from contrib/bind9/lib/dns/callbacks.c rename to lib/dns/callbacks.c diff --git a/contrib/bind9/lib/dns/compress.c b/lib/dns/compress.c similarity index 100% rename from contrib/bind9/lib/dns/compress.c rename to lib/dns/compress.c diff --git a/contrib/bind9/lib/dns/db.c b/lib/dns/db.c similarity index 100% rename from contrib/bind9/lib/dns/db.c rename to lib/dns/db.c diff --git a/contrib/bind9/lib/dns/dbiterator.c b/lib/dns/dbiterator.c similarity index 100% rename from contrib/bind9/lib/dns/dbiterator.c rename to lib/dns/dbiterator.c diff --git a/contrib/bind9/lib/dns/dbtable.c b/lib/dns/dbtable.c similarity index 100% rename from contrib/bind9/lib/dns/dbtable.c rename to lib/dns/dbtable.c diff --git a/contrib/bind9/lib/dns/diff.c b/lib/dns/diff.c similarity index 100% rename from contrib/bind9/lib/dns/diff.c rename to lib/dns/diff.c diff --git a/contrib/bind9/lib/dns/dispatch.c b/lib/dns/dispatch.c similarity index 100% rename from contrib/bind9/lib/dns/dispatch.c rename to lib/dns/dispatch.c diff --git a/contrib/bind9/lib/dns/dlz.c b/lib/dns/dlz.c similarity index 100% rename from contrib/bind9/lib/dns/dlz.c rename to lib/dns/dlz.c diff --git a/contrib/bind9/lib/dns/dnssec.c b/lib/dns/dnssec.c similarity index 100% rename from contrib/bind9/lib/dns/dnssec.c rename to lib/dns/dnssec.c diff --git a/contrib/bind9/lib/dns/ds.c b/lib/dns/ds.c similarity index 100% rename from contrib/bind9/lib/dns/ds.c rename to lib/dns/ds.c diff --git a/contrib/bind9/lib/dns/dst_api.c b/lib/dns/dst_api.c similarity index 100% rename from contrib/bind9/lib/dns/dst_api.c rename to lib/dns/dst_api.c diff --git a/contrib/bind9/lib/dns/dst_internal.h b/lib/dns/dst_internal.h similarity index 100% rename from contrib/bind9/lib/dns/dst_internal.h rename to lib/dns/dst_internal.h diff --git a/contrib/bind9/lib/dns/dst_lib.c b/lib/dns/dst_lib.c similarity index 100% rename from contrib/bind9/lib/dns/dst_lib.c rename to lib/dns/dst_lib.c diff --git a/contrib/bind9/lib/dns/dst_openssl.h b/lib/dns/dst_openssl.h similarity index 100% rename from contrib/bind9/lib/dns/dst_openssl.h rename to lib/dns/dst_openssl.h diff --git a/contrib/bind9/lib/dns/dst_parse.c b/lib/dns/dst_parse.c similarity index 100% rename from contrib/bind9/lib/dns/dst_parse.c rename to lib/dns/dst_parse.c diff --git a/contrib/bind9/lib/dns/dst_parse.h b/lib/dns/dst_parse.h similarity index 100% rename from contrib/bind9/lib/dns/dst_parse.h rename to lib/dns/dst_parse.h diff --git a/contrib/bind9/lib/dns/dst_result.c b/lib/dns/dst_result.c similarity index 100% rename from contrib/bind9/lib/dns/dst_result.c rename to lib/dns/dst_result.c diff --git a/contrib/bind9/lib/dns/forward.c b/lib/dns/forward.c similarity index 100% rename from contrib/bind9/lib/dns/forward.c rename to lib/dns/forward.c diff --git a/contrib/bind9/lib/dns/gen-unix.h b/lib/dns/gen-unix.h similarity index 100% rename from contrib/bind9/lib/dns/gen-unix.h rename to lib/dns/gen-unix.h diff --git a/contrib/bind9/lib/dns/gen.c b/lib/dns/gen.c similarity index 100% rename from contrib/bind9/lib/dns/gen.c rename to lib/dns/gen.c diff --git a/contrib/bind9/lib/dns/gssapi_link.c b/lib/dns/gssapi_link.c similarity index 100% rename from contrib/bind9/lib/dns/gssapi_link.c rename to lib/dns/gssapi_link.c diff --git a/contrib/bind9/lib/dns/gssapictx.c b/lib/dns/gssapictx.c similarity index 100% rename from contrib/bind9/lib/dns/gssapictx.c rename to lib/dns/gssapictx.c diff --git a/contrib/bind9/lib/dns/hmac_link.c b/lib/dns/hmac_link.c similarity index 100% rename from contrib/bind9/lib/dns/hmac_link.c rename to lib/dns/hmac_link.c diff --git a/contrib/bind9/lib/dns/include/Makefile.in b/lib/dns/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/dns/include/Makefile.in rename to lib/dns/include/Makefile.in diff --git a/contrib/bind9/lib/dns/include/dns/Makefile.in b/lib/dns/include/dns/Makefile.in similarity index 100% rename from contrib/bind9/lib/dns/include/dns/Makefile.in rename to lib/dns/include/dns/Makefile.in diff --git a/contrib/bind9/lib/dns/include/dns/acache.h b/lib/dns/include/dns/acache.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/acache.h rename to lib/dns/include/dns/acache.h diff --git a/contrib/bind9/lib/dns/include/dns/acl.h b/lib/dns/include/dns/acl.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/acl.h rename to lib/dns/include/dns/acl.h diff --git a/contrib/bind9/lib/dns/include/dns/adb.h b/lib/dns/include/dns/adb.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/adb.h rename to lib/dns/include/dns/adb.h diff --git a/contrib/bind9/lib/dns/include/dns/bit.h b/lib/dns/include/dns/bit.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/bit.h rename to lib/dns/include/dns/bit.h diff --git a/contrib/bind9/lib/dns/include/dns/byaddr.h b/lib/dns/include/dns/byaddr.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/byaddr.h rename to lib/dns/include/dns/byaddr.h diff --git a/contrib/bind9/lib/dns/include/dns/cache.h b/lib/dns/include/dns/cache.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/cache.h rename to lib/dns/include/dns/cache.h diff --git a/contrib/bind9/lib/dns/include/dns/callbacks.h b/lib/dns/include/dns/callbacks.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/callbacks.h rename to lib/dns/include/dns/callbacks.h diff --git a/contrib/bind9/lib/dns/include/dns/cert.h b/lib/dns/include/dns/cert.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/cert.h rename to lib/dns/include/dns/cert.h diff --git a/contrib/bind9/lib/dns/include/dns/compress.h b/lib/dns/include/dns/compress.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/compress.h rename to lib/dns/include/dns/compress.h diff --git a/contrib/bind9/lib/dns/include/dns/db.h b/lib/dns/include/dns/db.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/db.h rename to lib/dns/include/dns/db.h diff --git a/contrib/bind9/lib/dns/include/dns/dbiterator.h b/lib/dns/include/dns/dbiterator.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/dbiterator.h rename to lib/dns/include/dns/dbiterator.h diff --git a/contrib/bind9/lib/dns/include/dns/dbtable.h b/lib/dns/include/dns/dbtable.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/dbtable.h rename to lib/dns/include/dns/dbtable.h diff --git a/contrib/bind9/lib/dns/include/dns/diff.h b/lib/dns/include/dns/diff.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/diff.h rename to lib/dns/include/dns/diff.h diff --git a/contrib/bind9/lib/dns/include/dns/dispatch.h b/lib/dns/include/dns/dispatch.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/dispatch.h rename to lib/dns/include/dns/dispatch.h diff --git a/contrib/bind9/lib/dns/include/dns/dlz.h b/lib/dns/include/dns/dlz.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/dlz.h rename to lib/dns/include/dns/dlz.h diff --git a/contrib/bind9/lib/dns/include/dns/dnssec.h b/lib/dns/include/dns/dnssec.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/dnssec.h rename to lib/dns/include/dns/dnssec.h diff --git a/contrib/bind9/lib/dns/include/dns/ds.h b/lib/dns/include/dns/ds.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/ds.h rename to lib/dns/include/dns/ds.h diff --git a/contrib/bind9/lib/dns/include/dns/events.h b/lib/dns/include/dns/events.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/events.h rename to lib/dns/include/dns/events.h diff --git a/contrib/bind9/lib/dns/include/dns/fixedname.h b/lib/dns/include/dns/fixedname.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/fixedname.h rename to lib/dns/include/dns/fixedname.h diff --git a/contrib/bind9/lib/dns/include/dns/forward.h b/lib/dns/include/dns/forward.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/forward.h rename to lib/dns/include/dns/forward.h diff --git a/contrib/bind9/lib/dns/include/dns/journal.h b/lib/dns/include/dns/journal.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/journal.h rename to lib/dns/include/dns/journal.h diff --git a/contrib/bind9/lib/dns/include/dns/keyflags.h b/lib/dns/include/dns/keyflags.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/keyflags.h rename to lib/dns/include/dns/keyflags.h diff --git a/contrib/bind9/lib/dns/include/dns/keytable.h b/lib/dns/include/dns/keytable.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/keytable.h rename to lib/dns/include/dns/keytable.h diff --git a/contrib/bind9/lib/dns/include/dns/keyvalues.h b/lib/dns/include/dns/keyvalues.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/keyvalues.h rename to lib/dns/include/dns/keyvalues.h diff --git a/contrib/bind9/lib/dns/include/dns/lib.h b/lib/dns/include/dns/lib.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/lib.h rename to lib/dns/include/dns/lib.h diff --git a/contrib/bind9/lib/dns/include/dns/log.h b/lib/dns/include/dns/log.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/log.h rename to lib/dns/include/dns/log.h diff --git a/contrib/bind9/lib/dns/include/dns/lookup.h b/lib/dns/include/dns/lookup.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/lookup.h rename to lib/dns/include/dns/lookup.h diff --git a/contrib/bind9/lib/dns/include/dns/master.h b/lib/dns/include/dns/master.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/master.h rename to lib/dns/include/dns/master.h diff --git a/contrib/bind9/lib/dns/include/dns/masterdump.h b/lib/dns/include/dns/masterdump.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/masterdump.h rename to lib/dns/include/dns/masterdump.h diff --git a/contrib/bind9/lib/dns/include/dns/message.h b/lib/dns/include/dns/message.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/message.h rename to lib/dns/include/dns/message.h diff --git a/contrib/bind9/lib/dns/include/dns/name.h b/lib/dns/include/dns/name.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/name.h rename to lib/dns/include/dns/name.h diff --git a/contrib/bind9/lib/dns/include/dns/ncache.h b/lib/dns/include/dns/ncache.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/ncache.h rename to lib/dns/include/dns/ncache.h diff --git a/contrib/bind9/lib/dns/include/dns/nsec.h b/lib/dns/include/dns/nsec.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/nsec.h rename to lib/dns/include/dns/nsec.h diff --git a/contrib/bind9/lib/dns/include/dns/opcode.h b/lib/dns/include/dns/opcode.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/opcode.h rename to lib/dns/include/dns/opcode.h diff --git a/contrib/bind9/lib/dns/include/dns/order.h b/lib/dns/include/dns/order.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/order.h rename to lib/dns/include/dns/order.h diff --git a/contrib/bind9/lib/dns/include/dns/peer.h b/lib/dns/include/dns/peer.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/peer.h rename to lib/dns/include/dns/peer.h diff --git a/contrib/bind9/lib/dns/include/dns/portlist.h b/lib/dns/include/dns/portlist.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/portlist.h rename to lib/dns/include/dns/portlist.h diff --git a/contrib/bind9/lib/dns/include/dns/rbt.h b/lib/dns/include/dns/rbt.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rbt.h rename to lib/dns/include/dns/rbt.h diff --git a/contrib/bind9/lib/dns/include/dns/rcode.h b/lib/dns/include/dns/rcode.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rcode.h rename to lib/dns/include/dns/rcode.h diff --git a/contrib/bind9/lib/dns/include/dns/rdata.h b/lib/dns/include/dns/rdata.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rdata.h rename to lib/dns/include/dns/rdata.h diff --git a/contrib/bind9/lib/dns/include/dns/rdataclass.h b/lib/dns/include/dns/rdataclass.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rdataclass.h rename to lib/dns/include/dns/rdataclass.h diff --git a/contrib/bind9/lib/dns/include/dns/rdatalist.h b/lib/dns/include/dns/rdatalist.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rdatalist.h rename to lib/dns/include/dns/rdatalist.h diff --git a/contrib/bind9/lib/dns/include/dns/rdataset.h b/lib/dns/include/dns/rdataset.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rdataset.h rename to lib/dns/include/dns/rdataset.h diff --git a/contrib/bind9/lib/dns/include/dns/rdatasetiter.h b/lib/dns/include/dns/rdatasetiter.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rdatasetiter.h rename to lib/dns/include/dns/rdatasetiter.h diff --git a/contrib/bind9/lib/dns/include/dns/rdataslab.h b/lib/dns/include/dns/rdataslab.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rdataslab.h rename to lib/dns/include/dns/rdataslab.h diff --git a/contrib/bind9/lib/dns/include/dns/rdatatype.h b/lib/dns/include/dns/rdatatype.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rdatatype.h rename to lib/dns/include/dns/rdatatype.h diff --git a/contrib/bind9/lib/dns/include/dns/request.h b/lib/dns/include/dns/request.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/request.h rename to lib/dns/include/dns/request.h diff --git a/contrib/bind9/lib/dns/include/dns/resolver.h b/lib/dns/include/dns/resolver.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/resolver.h rename to lib/dns/include/dns/resolver.h diff --git a/contrib/bind9/lib/dns/include/dns/result.h b/lib/dns/include/dns/result.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/result.h rename to lib/dns/include/dns/result.h diff --git a/contrib/bind9/lib/dns/include/dns/rootns.h b/lib/dns/include/dns/rootns.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/rootns.h rename to lib/dns/include/dns/rootns.h diff --git a/contrib/bind9/lib/dns/include/dns/sdb.h b/lib/dns/include/dns/sdb.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/sdb.h rename to lib/dns/include/dns/sdb.h diff --git a/contrib/bind9/lib/dns/include/dns/sdlz.h b/lib/dns/include/dns/sdlz.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/sdlz.h rename to lib/dns/include/dns/sdlz.h diff --git a/contrib/bind9/lib/dns/include/dns/secalg.h b/lib/dns/include/dns/secalg.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/secalg.h rename to lib/dns/include/dns/secalg.h diff --git a/contrib/bind9/lib/dns/include/dns/secproto.h b/lib/dns/include/dns/secproto.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/secproto.h rename to lib/dns/include/dns/secproto.h diff --git a/contrib/bind9/lib/dns/include/dns/soa.h b/lib/dns/include/dns/soa.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/soa.h rename to lib/dns/include/dns/soa.h diff --git a/contrib/bind9/lib/dns/include/dns/ssu.h b/lib/dns/include/dns/ssu.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/ssu.h rename to lib/dns/include/dns/ssu.h diff --git a/contrib/bind9/lib/dns/include/dns/stats.h b/lib/dns/include/dns/stats.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/stats.h rename to lib/dns/include/dns/stats.h diff --git a/contrib/bind9/lib/dns/include/dns/tcpmsg.h b/lib/dns/include/dns/tcpmsg.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/tcpmsg.h rename to lib/dns/include/dns/tcpmsg.h diff --git a/contrib/bind9/lib/dns/include/dns/time.h b/lib/dns/include/dns/time.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/time.h rename to lib/dns/include/dns/time.h diff --git a/contrib/bind9/lib/dns/include/dns/timer.h b/lib/dns/include/dns/timer.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/timer.h rename to lib/dns/include/dns/timer.h diff --git a/contrib/bind9/lib/dns/include/dns/tkey.h b/lib/dns/include/dns/tkey.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/tkey.h rename to lib/dns/include/dns/tkey.h diff --git a/contrib/bind9/lib/dns/include/dns/tsig.h b/lib/dns/include/dns/tsig.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/tsig.h rename to lib/dns/include/dns/tsig.h diff --git a/contrib/bind9/lib/dns/include/dns/ttl.h b/lib/dns/include/dns/ttl.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/ttl.h rename to lib/dns/include/dns/ttl.h diff --git a/contrib/bind9/lib/dns/include/dns/types.h b/lib/dns/include/dns/types.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/types.h rename to lib/dns/include/dns/types.h diff --git a/contrib/bind9/lib/dns/include/dns/validator.h b/lib/dns/include/dns/validator.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/validator.h rename to lib/dns/include/dns/validator.h diff --git a/contrib/bind9/lib/dns/include/dns/version.h b/lib/dns/include/dns/version.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/version.h rename to lib/dns/include/dns/version.h diff --git a/contrib/bind9/lib/dns/include/dns/view.h b/lib/dns/include/dns/view.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/view.h rename to lib/dns/include/dns/view.h diff --git a/contrib/bind9/lib/dns/include/dns/xfrin.h b/lib/dns/include/dns/xfrin.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/xfrin.h rename to lib/dns/include/dns/xfrin.h diff --git a/contrib/bind9/lib/dns/include/dns/zone.h b/lib/dns/include/dns/zone.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/zone.h rename to lib/dns/include/dns/zone.h diff --git a/contrib/bind9/lib/dns/include/dns/zonekey.h b/lib/dns/include/dns/zonekey.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/zonekey.h rename to lib/dns/include/dns/zonekey.h diff --git a/contrib/bind9/lib/dns/include/dns/zt.h b/lib/dns/include/dns/zt.h similarity index 100% rename from contrib/bind9/lib/dns/include/dns/zt.h rename to lib/dns/include/dns/zt.h diff --git a/contrib/bind9/lib/dns/include/dst/Makefile.in b/lib/dns/include/dst/Makefile.in similarity index 100% rename from contrib/bind9/lib/dns/include/dst/Makefile.in rename to lib/dns/include/dst/Makefile.in diff --git a/contrib/bind9/lib/dns/include/dst/dst.h b/lib/dns/include/dst/dst.h similarity index 100% rename from contrib/bind9/lib/dns/include/dst/dst.h rename to lib/dns/include/dst/dst.h diff --git a/contrib/bind9/lib/dns/include/dst/gssapi.h b/lib/dns/include/dst/gssapi.h similarity index 100% rename from contrib/bind9/lib/dns/include/dst/gssapi.h rename to lib/dns/include/dst/gssapi.h diff --git a/contrib/bind9/lib/dns/include/dst/lib.h b/lib/dns/include/dst/lib.h similarity index 100% rename from contrib/bind9/lib/dns/include/dst/lib.h rename to lib/dns/include/dst/lib.h diff --git a/contrib/bind9/lib/dns/include/dst/result.h b/lib/dns/include/dst/result.h similarity index 100% rename from contrib/bind9/lib/dns/include/dst/result.h rename to lib/dns/include/dst/result.h diff --git a/contrib/bind9/lib/dns/journal.c b/lib/dns/journal.c similarity index 100% rename from contrib/bind9/lib/dns/journal.c rename to lib/dns/journal.c diff --git a/contrib/bind9/lib/dns/key.c b/lib/dns/key.c similarity index 100% rename from contrib/bind9/lib/dns/key.c rename to lib/dns/key.c diff --git a/contrib/bind9/lib/dns/keytable.c b/lib/dns/keytable.c similarity index 100% rename from contrib/bind9/lib/dns/keytable.c rename to lib/dns/keytable.c diff --git a/contrib/bind9/lib/dns/lib.c b/lib/dns/lib.c similarity index 100% rename from contrib/bind9/lib/dns/lib.c rename to lib/dns/lib.c diff --git a/contrib/bind9/lib/dns/log.c b/lib/dns/log.c similarity index 100% rename from contrib/bind9/lib/dns/log.c rename to lib/dns/log.c diff --git a/contrib/bind9/lib/dns/lookup.c b/lib/dns/lookup.c similarity index 100% rename from contrib/bind9/lib/dns/lookup.c rename to lib/dns/lookup.c diff --git a/contrib/bind9/lib/dns/master.c b/lib/dns/master.c similarity index 100% rename from contrib/bind9/lib/dns/master.c rename to lib/dns/master.c diff --git a/contrib/bind9/lib/dns/masterdump.c b/lib/dns/masterdump.c similarity index 100% rename from contrib/bind9/lib/dns/masterdump.c rename to lib/dns/masterdump.c diff --git a/contrib/bind9/lib/dns/message.c b/lib/dns/message.c similarity index 100% rename from contrib/bind9/lib/dns/message.c rename to lib/dns/message.c diff --git a/contrib/bind9/lib/dns/name.c b/lib/dns/name.c similarity index 100% rename from contrib/bind9/lib/dns/name.c rename to lib/dns/name.c diff --git a/contrib/bind9/lib/dns/ncache.c b/lib/dns/ncache.c similarity index 100% rename from contrib/bind9/lib/dns/ncache.c rename to lib/dns/ncache.c diff --git a/contrib/bind9/lib/dns/nsec.c b/lib/dns/nsec.c similarity index 100% rename from contrib/bind9/lib/dns/nsec.c rename to lib/dns/nsec.c diff --git a/contrib/bind9/lib/dns/openssl_link.c b/lib/dns/openssl_link.c similarity index 100% rename from contrib/bind9/lib/dns/openssl_link.c rename to lib/dns/openssl_link.c diff --git a/contrib/bind9/lib/dns/openssldh_link.c b/lib/dns/openssldh_link.c similarity index 100% rename from contrib/bind9/lib/dns/openssldh_link.c rename to lib/dns/openssldh_link.c diff --git a/contrib/bind9/lib/dns/openssldsa_link.c b/lib/dns/openssldsa_link.c similarity index 100% rename from contrib/bind9/lib/dns/openssldsa_link.c rename to lib/dns/openssldsa_link.c diff --git a/contrib/bind9/lib/dns/opensslrsa_link.c b/lib/dns/opensslrsa_link.c similarity index 100% rename from contrib/bind9/lib/dns/opensslrsa_link.c rename to lib/dns/opensslrsa_link.c diff --git a/contrib/bind9/lib/dns/order.c b/lib/dns/order.c similarity index 100% rename from contrib/bind9/lib/dns/order.c rename to lib/dns/order.c diff --git a/contrib/bind9/lib/dns/peer.c b/lib/dns/peer.c similarity index 100% rename from contrib/bind9/lib/dns/peer.c rename to lib/dns/peer.c diff --git a/contrib/bind9/lib/dns/portlist.c b/lib/dns/portlist.c similarity index 100% rename from contrib/bind9/lib/dns/portlist.c rename to lib/dns/portlist.c diff --git a/contrib/bind9/lib/dns/rbt.c b/lib/dns/rbt.c similarity index 100% rename from contrib/bind9/lib/dns/rbt.c rename to lib/dns/rbt.c diff --git a/contrib/bind9/lib/dns/rbtdb.c b/lib/dns/rbtdb.c similarity index 100% rename from contrib/bind9/lib/dns/rbtdb.c rename to lib/dns/rbtdb.c diff --git a/contrib/bind9/lib/dns/rbtdb.h b/lib/dns/rbtdb.h similarity index 100% rename from contrib/bind9/lib/dns/rbtdb.h rename to lib/dns/rbtdb.h diff --git a/contrib/bind9/lib/dns/rbtdb64.c b/lib/dns/rbtdb64.c similarity index 100% rename from contrib/bind9/lib/dns/rbtdb64.c rename to lib/dns/rbtdb64.c diff --git a/contrib/bind9/lib/dns/rbtdb64.h b/lib/dns/rbtdb64.h similarity index 100% rename from contrib/bind9/lib/dns/rbtdb64.h rename to lib/dns/rbtdb64.h diff --git a/contrib/bind9/lib/dns/rcode.c b/lib/dns/rcode.c similarity index 100% rename from contrib/bind9/lib/dns/rcode.c rename to lib/dns/rcode.c diff --git a/contrib/bind9/lib/dns/rdata.c b/lib/dns/rdata.c similarity index 100% rename from contrib/bind9/lib/dns/rdata.c rename to lib/dns/rdata.c diff --git a/contrib/bind9/lib/dns/rdata/any_255/tsig_250.c b/lib/dns/rdata/any_255/tsig_250.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/any_255/tsig_250.c rename to lib/dns/rdata/any_255/tsig_250.c diff --git a/contrib/bind9/lib/dns/rdata/any_255/tsig_250.h b/lib/dns/rdata/any_255/tsig_250.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/any_255/tsig_250.h rename to lib/dns/rdata/any_255/tsig_250.h diff --git a/contrib/bind9/lib/dns/rdata/ch_3/a_1.c b/lib/dns/rdata/ch_3/a_1.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/ch_3/a_1.c rename to lib/dns/rdata/ch_3/a_1.c diff --git a/contrib/bind9/lib/dns/rdata/ch_3/a_1.h b/lib/dns/rdata/ch_3/a_1.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/ch_3/a_1.h rename to lib/dns/rdata/ch_3/a_1.h diff --git a/contrib/bind9/lib/dns/rdata/generic/afsdb_18.c b/lib/dns/rdata/generic/afsdb_18.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/afsdb_18.c rename to lib/dns/rdata/generic/afsdb_18.c diff --git a/contrib/bind9/lib/dns/rdata/generic/afsdb_18.h b/lib/dns/rdata/generic/afsdb_18.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/afsdb_18.h rename to lib/dns/rdata/generic/afsdb_18.h diff --git a/contrib/bind9/lib/dns/rdata/generic/cert_37.c b/lib/dns/rdata/generic/cert_37.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/cert_37.c rename to lib/dns/rdata/generic/cert_37.c diff --git a/contrib/bind9/lib/dns/rdata/generic/cert_37.h b/lib/dns/rdata/generic/cert_37.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/cert_37.h rename to lib/dns/rdata/generic/cert_37.h diff --git a/contrib/bind9/lib/dns/rdata/generic/cname_5.c b/lib/dns/rdata/generic/cname_5.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/cname_5.c rename to lib/dns/rdata/generic/cname_5.c diff --git a/contrib/bind9/lib/dns/rdata/generic/cname_5.h b/lib/dns/rdata/generic/cname_5.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/cname_5.h rename to lib/dns/rdata/generic/cname_5.h diff --git a/contrib/bind9/lib/dns/rdata/generic/dlv_32769.c b/lib/dns/rdata/generic/dlv_32769.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/dlv_32769.c rename to lib/dns/rdata/generic/dlv_32769.c diff --git a/contrib/bind9/lib/dns/rdata/generic/dlv_32769.h b/lib/dns/rdata/generic/dlv_32769.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/dlv_32769.h rename to lib/dns/rdata/generic/dlv_32769.h diff --git a/contrib/bind9/lib/dns/rdata/generic/dname_39.c b/lib/dns/rdata/generic/dname_39.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/dname_39.c rename to lib/dns/rdata/generic/dname_39.c diff --git a/contrib/bind9/lib/dns/rdata/generic/dname_39.h b/lib/dns/rdata/generic/dname_39.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/dname_39.h rename to lib/dns/rdata/generic/dname_39.h diff --git a/contrib/bind9/lib/dns/rdata/generic/dnskey_48.c b/lib/dns/rdata/generic/dnskey_48.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/dnskey_48.c rename to lib/dns/rdata/generic/dnskey_48.c diff --git a/contrib/bind9/lib/dns/rdata/generic/dnskey_48.h b/lib/dns/rdata/generic/dnskey_48.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/dnskey_48.h rename to lib/dns/rdata/generic/dnskey_48.h diff --git a/contrib/bind9/lib/dns/rdata/generic/ds_43.c b/lib/dns/rdata/generic/ds_43.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ds_43.c rename to lib/dns/rdata/generic/ds_43.c diff --git a/contrib/bind9/lib/dns/rdata/generic/ds_43.h b/lib/dns/rdata/generic/ds_43.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ds_43.h rename to lib/dns/rdata/generic/ds_43.h diff --git a/contrib/bind9/lib/dns/rdata/generic/gpos_27.c b/lib/dns/rdata/generic/gpos_27.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/gpos_27.c rename to lib/dns/rdata/generic/gpos_27.c diff --git a/contrib/bind9/lib/dns/rdata/generic/gpos_27.h b/lib/dns/rdata/generic/gpos_27.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/gpos_27.h rename to lib/dns/rdata/generic/gpos_27.h diff --git a/contrib/bind9/lib/dns/rdata/generic/hinfo_13.c b/lib/dns/rdata/generic/hinfo_13.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/hinfo_13.c rename to lib/dns/rdata/generic/hinfo_13.c diff --git a/contrib/bind9/lib/dns/rdata/generic/hinfo_13.h b/lib/dns/rdata/generic/hinfo_13.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/hinfo_13.h rename to lib/dns/rdata/generic/hinfo_13.h diff --git a/contrib/bind9/lib/dns/rdata/generic/ipseckey_45.c b/lib/dns/rdata/generic/ipseckey_45.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ipseckey_45.c rename to lib/dns/rdata/generic/ipseckey_45.c diff --git a/contrib/bind9/lib/dns/rdata/generic/ipseckey_45.h b/lib/dns/rdata/generic/ipseckey_45.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ipseckey_45.h rename to lib/dns/rdata/generic/ipseckey_45.h diff --git a/contrib/bind9/lib/dns/rdata/generic/isdn_20.c b/lib/dns/rdata/generic/isdn_20.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/isdn_20.c rename to lib/dns/rdata/generic/isdn_20.c diff --git a/contrib/bind9/lib/dns/rdata/generic/isdn_20.h b/lib/dns/rdata/generic/isdn_20.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/isdn_20.h rename to lib/dns/rdata/generic/isdn_20.h diff --git a/contrib/bind9/lib/dns/rdata/generic/key_25.c b/lib/dns/rdata/generic/key_25.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/key_25.c rename to lib/dns/rdata/generic/key_25.c diff --git a/contrib/bind9/lib/dns/rdata/generic/key_25.h b/lib/dns/rdata/generic/key_25.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/key_25.h rename to lib/dns/rdata/generic/key_25.h diff --git a/contrib/bind9/lib/dns/rdata/generic/loc_29.c b/lib/dns/rdata/generic/loc_29.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/loc_29.c rename to lib/dns/rdata/generic/loc_29.c diff --git a/contrib/bind9/lib/dns/rdata/generic/loc_29.h b/lib/dns/rdata/generic/loc_29.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/loc_29.h rename to lib/dns/rdata/generic/loc_29.h diff --git a/contrib/bind9/lib/dns/rdata/generic/mb_7.c b/lib/dns/rdata/generic/mb_7.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mb_7.c rename to lib/dns/rdata/generic/mb_7.c diff --git a/contrib/bind9/lib/dns/rdata/generic/mb_7.h b/lib/dns/rdata/generic/mb_7.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mb_7.h rename to lib/dns/rdata/generic/mb_7.h diff --git a/contrib/bind9/lib/dns/rdata/generic/md_3.c b/lib/dns/rdata/generic/md_3.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/md_3.c rename to lib/dns/rdata/generic/md_3.c diff --git a/contrib/bind9/lib/dns/rdata/generic/md_3.h b/lib/dns/rdata/generic/md_3.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/md_3.h rename to lib/dns/rdata/generic/md_3.h diff --git a/contrib/bind9/lib/dns/rdata/generic/mf_4.c b/lib/dns/rdata/generic/mf_4.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mf_4.c rename to lib/dns/rdata/generic/mf_4.c diff --git a/contrib/bind9/lib/dns/rdata/generic/mf_4.h b/lib/dns/rdata/generic/mf_4.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mf_4.h rename to lib/dns/rdata/generic/mf_4.h diff --git a/contrib/bind9/lib/dns/rdata/generic/mg_8.c b/lib/dns/rdata/generic/mg_8.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mg_8.c rename to lib/dns/rdata/generic/mg_8.c diff --git a/contrib/bind9/lib/dns/rdata/generic/mg_8.h b/lib/dns/rdata/generic/mg_8.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mg_8.h rename to lib/dns/rdata/generic/mg_8.h diff --git a/contrib/bind9/lib/dns/rdata/generic/minfo_14.c b/lib/dns/rdata/generic/minfo_14.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/minfo_14.c rename to lib/dns/rdata/generic/minfo_14.c diff --git a/contrib/bind9/lib/dns/rdata/generic/minfo_14.h b/lib/dns/rdata/generic/minfo_14.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/minfo_14.h rename to lib/dns/rdata/generic/minfo_14.h diff --git a/contrib/bind9/lib/dns/rdata/generic/mr_9.c b/lib/dns/rdata/generic/mr_9.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mr_9.c rename to lib/dns/rdata/generic/mr_9.c diff --git a/contrib/bind9/lib/dns/rdata/generic/mr_9.h b/lib/dns/rdata/generic/mr_9.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mr_9.h rename to lib/dns/rdata/generic/mr_9.h diff --git a/contrib/bind9/lib/dns/rdata/generic/mx_15.c b/lib/dns/rdata/generic/mx_15.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mx_15.c rename to lib/dns/rdata/generic/mx_15.c diff --git a/contrib/bind9/lib/dns/rdata/generic/mx_15.h b/lib/dns/rdata/generic/mx_15.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/mx_15.h rename to lib/dns/rdata/generic/mx_15.h diff --git a/contrib/bind9/lib/dns/rdata/generic/ns_2.c b/lib/dns/rdata/generic/ns_2.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ns_2.c rename to lib/dns/rdata/generic/ns_2.c diff --git a/contrib/bind9/lib/dns/rdata/generic/ns_2.h b/lib/dns/rdata/generic/ns_2.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ns_2.h rename to lib/dns/rdata/generic/ns_2.h diff --git a/contrib/bind9/lib/dns/rdata/generic/nsec_47.c b/lib/dns/rdata/generic/nsec_47.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/nsec_47.c rename to lib/dns/rdata/generic/nsec_47.c diff --git a/contrib/bind9/lib/dns/rdata/generic/nsec_47.h b/lib/dns/rdata/generic/nsec_47.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/nsec_47.h rename to lib/dns/rdata/generic/nsec_47.h diff --git a/contrib/bind9/lib/dns/rdata/generic/null_10.c b/lib/dns/rdata/generic/null_10.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/null_10.c rename to lib/dns/rdata/generic/null_10.c diff --git a/contrib/bind9/lib/dns/rdata/generic/null_10.h b/lib/dns/rdata/generic/null_10.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/null_10.h rename to lib/dns/rdata/generic/null_10.h diff --git a/contrib/bind9/lib/dns/rdata/generic/nxt_30.c b/lib/dns/rdata/generic/nxt_30.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/nxt_30.c rename to lib/dns/rdata/generic/nxt_30.c diff --git a/contrib/bind9/lib/dns/rdata/generic/nxt_30.h b/lib/dns/rdata/generic/nxt_30.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/nxt_30.h rename to lib/dns/rdata/generic/nxt_30.h diff --git a/contrib/bind9/lib/dns/rdata/generic/opt_41.c b/lib/dns/rdata/generic/opt_41.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/opt_41.c rename to lib/dns/rdata/generic/opt_41.c diff --git a/contrib/bind9/lib/dns/rdata/generic/opt_41.h b/lib/dns/rdata/generic/opt_41.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/opt_41.h rename to lib/dns/rdata/generic/opt_41.h diff --git a/contrib/bind9/lib/dns/rdata/generic/proforma.c b/lib/dns/rdata/generic/proforma.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/proforma.c rename to lib/dns/rdata/generic/proforma.c diff --git a/contrib/bind9/lib/dns/rdata/generic/proforma.h b/lib/dns/rdata/generic/proforma.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/proforma.h rename to lib/dns/rdata/generic/proforma.h diff --git a/contrib/bind9/lib/dns/rdata/generic/ptr_12.c b/lib/dns/rdata/generic/ptr_12.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ptr_12.c rename to lib/dns/rdata/generic/ptr_12.c diff --git a/contrib/bind9/lib/dns/rdata/generic/ptr_12.h b/lib/dns/rdata/generic/ptr_12.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/ptr_12.h rename to lib/dns/rdata/generic/ptr_12.h diff --git a/contrib/bind9/lib/dns/rdata/generic/rp_17.c b/lib/dns/rdata/generic/rp_17.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/rp_17.c rename to lib/dns/rdata/generic/rp_17.c diff --git a/contrib/bind9/lib/dns/rdata/generic/rp_17.h b/lib/dns/rdata/generic/rp_17.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/rp_17.h rename to lib/dns/rdata/generic/rp_17.h diff --git a/contrib/bind9/lib/dns/rdata/generic/rrsig_46.c b/lib/dns/rdata/generic/rrsig_46.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/rrsig_46.c rename to lib/dns/rdata/generic/rrsig_46.c diff --git a/contrib/bind9/lib/dns/rdata/generic/rrsig_46.h b/lib/dns/rdata/generic/rrsig_46.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/rrsig_46.h rename to lib/dns/rdata/generic/rrsig_46.h diff --git a/contrib/bind9/lib/dns/rdata/generic/rt_21.c b/lib/dns/rdata/generic/rt_21.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/rt_21.c rename to lib/dns/rdata/generic/rt_21.c diff --git a/contrib/bind9/lib/dns/rdata/generic/rt_21.h b/lib/dns/rdata/generic/rt_21.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/rt_21.h rename to lib/dns/rdata/generic/rt_21.h diff --git a/contrib/bind9/lib/dns/rdata/generic/sig_24.c b/lib/dns/rdata/generic/sig_24.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/sig_24.c rename to lib/dns/rdata/generic/sig_24.c diff --git a/contrib/bind9/lib/dns/rdata/generic/sig_24.h b/lib/dns/rdata/generic/sig_24.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/sig_24.h rename to lib/dns/rdata/generic/sig_24.h diff --git a/contrib/bind9/lib/dns/rdata/generic/soa_6.c b/lib/dns/rdata/generic/soa_6.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/soa_6.c rename to lib/dns/rdata/generic/soa_6.c diff --git a/contrib/bind9/lib/dns/rdata/generic/soa_6.h b/lib/dns/rdata/generic/soa_6.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/soa_6.h rename to lib/dns/rdata/generic/soa_6.h diff --git a/contrib/bind9/lib/dns/rdata/generic/spf_99.c b/lib/dns/rdata/generic/spf_99.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/spf_99.c rename to lib/dns/rdata/generic/spf_99.c diff --git a/contrib/bind9/lib/dns/rdata/generic/spf_99.h b/lib/dns/rdata/generic/spf_99.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/spf_99.h rename to lib/dns/rdata/generic/spf_99.h diff --git a/contrib/bind9/lib/dns/rdata/generic/sshfp_44.c b/lib/dns/rdata/generic/sshfp_44.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/sshfp_44.c rename to lib/dns/rdata/generic/sshfp_44.c diff --git a/contrib/bind9/lib/dns/rdata/generic/sshfp_44.h b/lib/dns/rdata/generic/sshfp_44.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/sshfp_44.h rename to lib/dns/rdata/generic/sshfp_44.h diff --git a/contrib/bind9/lib/dns/rdata/generic/tkey_249.c b/lib/dns/rdata/generic/tkey_249.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/tkey_249.c rename to lib/dns/rdata/generic/tkey_249.c diff --git a/contrib/bind9/lib/dns/rdata/generic/tkey_249.h b/lib/dns/rdata/generic/tkey_249.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/tkey_249.h rename to lib/dns/rdata/generic/tkey_249.h diff --git a/contrib/bind9/lib/dns/rdata/generic/txt_16.c b/lib/dns/rdata/generic/txt_16.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/txt_16.c rename to lib/dns/rdata/generic/txt_16.c diff --git a/contrib/bind9/lib/dns/rdata/generic/txt_16.h b/lib/dns/rdata/generic/txt_16.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/txt_16.h rename to lib/dns/rdata/generic/txt_16.h diff --git a/contrib/bind9/lib/dns/rdata/generic/unspec_103.c b/lib/dns/rdata/generic/unspec_103.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/unspec_103.c rename to lib/dns/rdata/generic/unspec_103.c diff --git a/contrib/bind9/lib/dns/rdata/generic/unspec_103.h b/lib/dns/rdata/generic/unspec_103.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/unspec_103.h rename to lib/dns/rdata/generic/unspec_103.h diff --git a/contrib/bind9/lib/dns/rdata/generic/x25_19.c b/lib/dns/rdata/generic/x25_19.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/x25_19.c rename to lib/dns/rdata/generic/x25_19.c diff --git a/contrib/bind9/lib/dns/rdata/generic/x25_19.h b/lib/dns/rdata/generic/x25_19.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/generic/x25_19.h rename to lib/dns/rdata/generic/x25_19.h diff --git a/contrib/bind9/lib/dns/rdata/hs_4/a_1.c b/lib/dns/rdata/hs_4/a_1.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/hs_4/a_1.c rename to lib/dns/rdata/hs_4/a_1.c diff --git a/contrib/bind9/lib/dns/rdata/hs_4/a_1.h b/lib/dns/rdata/hs_4/a_1.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/hs_4/a_1.h rename to lib/dns/rdata/hs_4/a_1.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/a6_38.c b/lib/dns/rdata/in_1/a6_38.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/a6_38.c rename to lib/dns/rdata/in_1/a6_38.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/a6_38.h b/lib/dns/rdata/in_1/a6_38.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/a6_38.h rename to lib/dns/rdata/in_1/a6_38.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/a_1.c b/lib/dns/rdata/in_1/a_1.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/a_1.c rename to lib/dns/rdata/in_1/a_1.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/a_1.h b/lib/dns/rdata/in_1/a_1.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/a_1.h rename to lib/dns/rdata/in_1/a_1.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/aaaa_28.c b/lib/dns/rdata/in_1/aaaa_28.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/aaaa_28.c rename to lib/dns/rdata/in_1/aaaa_28.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/aaaa_28.h b/lib/dns/rdata/in_1/aaaa_28.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/aaaa_28.h rename to lib/dns/rdata/in_1/aaaa_28.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/apl_42.c b/lib/dns/rdata/in_1/apl_42.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/apl_42.c rename to lib/dns/rdata/in_1/apl_42.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/apl_42.h b/lib/dns/rdata/in_1/apl_42.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/apl_42.h rename to lib/dns/rdata/in_1/apl_42.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/kx_36.c b/lib/dns/rdata/in_1/kx_36.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/kx_36.c rename to lib/dns/rdata/in_1/kx_36.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/kx_36.h b/lib/dns/rdata/in_1/kx_36.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/kx_36.h rename to lib/dns/rdata/in_1/kx_36.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c b/lib/dns/rdata/in_1/naptr_35.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/naptr_35.c rename to lib/dns/rdata/in_1/naptr_35.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/naptr_35.h b/lib/dns/rdata/in_1/naptr_35.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/naptr_35.h rename to lib/dns/rdata/in_1/naptr_35.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.c b/lib/dns/rdata/in_1/nsap-ptr_23.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.c rename to lib/dns/rdata/in_1/nsap-ptr_23.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.h b/lib/dns/rdata/in_1/nsap-ptr_23.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.h rename to lib/dns/rdata/in_1/nsap-ptr_23.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/nsap_22.c b/lib/dns/rdata/in_1/nsap_22.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/nsap_22.c rename to lib/dns/rdata/in_1/nsap_22.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/nsap_22.h b/lib/dns/rdata/in_1/nsap_22.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/nsap_22.h rename to lib/dns/rdata/in_1/nsap_22.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/px_26.c b/lib/dns/rdata/in_1/px_26.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/px_26.c rename to lib/dns/rdata/in_1/px_26.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/px_26.h b/lib/dns/rdata/in_1/px_26.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/px_26.h rename to lib/dns/rdata/in_1/px_26.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/srv_33.c b/lib/dns/rdata/in_1/srv_33.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/srv_33.c rename to lib/dns/rdata/in_1/srv_33.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/srv_33.h b/lib/dns/rdata/in_1/srv_33.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/srv_33.h rename to lib/dns/rdata/in_1/srv_33.h diff --git a/contrib/bind9/lib/dns/rdata/in_1/wks_11.c b/lib/dns/rdata/in_1/wks_11.c similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/wks_11.c rename to lib/dns/rdata/in_1/wks_11.c diff --git a/contrib/bind9/lib/dns/rdata/in_1/wks_11.h b/lib/dns/rdata/in_1/wks_11.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/in_1/wks_11.h rename to lib/dns/rdata/in_1/wks_11.h diff --git a/contrib/bind9/lib/dns/rdata/rdatastructpre.h b/lib/dns/rdata/rdatastructpre.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/rdatastructpre.h rename to lib/dns/rdata/rdatastructpre.h diff --git a/contrib/bind9/lib/dns/rdata/rdatastructsuf.h b/lib/dns/rdata/rdatastructsuf.h similarity index 100% rename from contrib/bind9/lib/dns/rdata/rdatastructsuf.h rename to lib/dns/rdata/rdatastructsuf.h diff --git a/contrib/bind9/lib/dns/rdatalist.c b/lib/dns/rdatalist.c similarity index 100% rename from contrib/bind9/lib/dns/rdatalist.c rename to lib/dns/rdatalist.c diff --git a/contrib/bind9/lib/dns/rdatalist_p.h b/lib/dns/rdatalist_p.h similarity index 100% rename from contrib/bind9/lib/dns/rdatalist_p.h rename to lib/dns/rdatalist_p.h diff --git a/contrib/bind9/lib/dns/rdataset.c b/lib/dns/rdataset.c similarity index 100% rename from contrib/bind9/lib/dns/rdataset.c rename to lib/dns/rdataset.c diff --git a/contrib/bind9/lib/dns/rdatasetiter.c b/lib/dns/rdatasetiter.c similarity index 100% rename from contrib/bind9/lib/dns/rdatasetiter.c rename to lib/dns/rdatasetiter.c diff --git a/contrib/bind9/lib/dns/rdataslab.c b/lib/dns/rdataslab.c similarity index 100% rename from contrib/bind9/lib/dns/rdataslab.c rename to lib/dns/rdataslab.c diff --git a/contrib/bind9/lib/dns/request.c b/lib/dns/request.c similarity index 100% rename from contrib/bind9/lib/dns/request.c rename to lib/dns/request.c diff --git a/contrib/bind9/lib/dns/resolver.c b/lib/dns/resolver.c similarity index 100% rename from contrib/bind9/lib/dns/resolver.c rename to lib/dns/resolver.c diff --git a/contrib/bind9/lib/dns/result.c b/lib/dns/result.c similarity index 100% rename from contrib/bind9/lib/dns/result.c rename to lib/dns/result.c diff --git a/contrib/bind9/lib/dns/rootns.c b/lib/dns/rootns.c similarity index 100% rename from contrib/bind9/lib/dns/rootns.c rename to lib/dns/rootns.c diff --git a/contrib/bind9/lib/dns/sdb.c b/lib/dns/sdb.c similarity index 100% rename from contrib/bind9/lib/dns/sdb.c rename to lib/dns/sdb.c diff --git a/contrib/bind9/lib/dns/sdlz.c b/lib/dns/sdlz.c similarity index 100% rename from contrib/bind9/lib/dns/sdlz.c rename to lib/dns/sdlz.c diff --git a/contrib/bind9/lib/dns/soa.c b/lib/dns/soa.c similarity index 100% rename from contrib/bind9/lib/dns/soa.c rename to lib/dns/soa.c diff --git a/contrib/bind9/lib/dns/ssu.c b/lib/dns/ssu.c similarity index 100% rename from contrib/bind9/lib/dns/ssu.c rename to lib/dns/ssu.c diff --git a/contrib/bind9/lib/dns/stats.c b/lib/dns/stats.c similarity index 100% rename from contrib/bind9/lib/dns/stats.c rename to lib/dns/stats.c diff --git a/contrib/bind9/lib/dns/tcpmsg.c b/lib/dns/tcpmsg.c similarity index 100% rename from contrib/bind9/lib/dns/tcpmsg.c rename to lib/dns/tcpmsg.c diff --git a/contrib/bind9/lib/dns/time.c b/lib/dns/time.c similarity index 100% rename from contrib/bind9/lib/dns/time.c rename to lib/dns/time.c diff --git a/contrib/bind9/lib/dns/timer.c b/lib/dns/timer.c similarity index 100% rename from contrib/bind9/lib/dns/timer.c rename to lib/dns/timer.c diff --git a/contrib/bind9/lib/dns/tkey.c b/lib/dns/tkey.c similarity index 100% rename from contrib/bind9/lib/dns/tkey.c rename to lib/dns/tkey.c diff --git a/contrib/bind9/lib/dns/tsig.c b/lib/dns/tsig.c similarity index 100% rename from contrib/bind9/lib/dns/tsig.c rename to lib/dns/tsig.c diff --git a/contrib/bind9/lib/dns/ttl.c b/lib/dns/ttl.c similarity index 100% rename from contrib/bind9/lib/dns/ttl.c rename to lib/dns/ttl.c diff --git a/contrib/bind9/lib/dns/validator.c b/lib/dns/validator.c similarity index 100% rename from contrib/bind9/lib/dns/validator.c rename to lib/dns/validator.c diff --git a/contrib/bind9/lib/dns/version.c b/lib/dns/version.c similarity index 100% rename from contrib/bind9/lib/dns/version.c rename to lib/dns/version.c diff --git a/contrib/bind9/lib/dns/view.c b/lib/dns/view.c similarity index 100% rename from contrib/bind9/lib/dns/view.c rename to lib/dns/view.c diff --git a/contrib/bind9/lib/dns/xfrin.c b/lib/dns/xfrin.c similarity index 100% rename from contrib/bind9/lib/dns/xfrin.c rename to lib/dns/xfrin.c diff --git a/contrib/bind9/lib/dns/zone.c b/lib/dns/zone.c similarity index 100% rename from contrib/bind9/lib/dns/zone.c rename to lib/dns/zone.c diff --git a/contrib/bind9/lib/dns/zonekey.c b/lib/dns/zonekey.c similarity index 100% rename from contrib/bind9/lib/dns/zonekey.c rename to lib/dns/zonekey.c diff --git a/contrib/bind9/lib/dns/zt.c b/lib/dns/zt.c similarity index 100% rename from contrib/bind9/lib/dns/zt.c rename to lib/dns/zt.c diff --git a/contrib/bind9/lib/isc/Makefile.in b/lib/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/Makefile.in rename to lib/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/alpha/Makefile.in b/lib/isc/alpha/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/alpha/Makefile.in rename to lib/isc/alpha/Makefile.in diff --git a/contrib/bind9/lib/isc/alpha/include/Makefile.in b/lib/isc/alpha/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/alpha/include/Makefile.in rename to lib/isc/alpha/include/Makefile.in diff --git a/contrib/bind9/lib/isc/alpha/include/isc/Makefile.in b/lib/isc/alpha/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/alpha/include/isc/Makefile.in rename to lib/isc/alpha/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/alpha/include/isc/atomic.h b/lib/isc/alpha/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/alpha/include/isc/atomic.h rename to lib/isc/alpha/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/api b/lib/isc/api similarity index 100% rename from contrib/bind9/lib/isc/api rename to lib/isc/api diff --git a/contrib/bind9/lib/isc/arm/include/isc/atomic.h b/lib/isc/arm/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/arm/include/isc/atomic.h rename to lib/isc/arm/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/assertions.c b/lib/isc/assertions.c similarity index 100% rename from contrib/bind9/lib/isc/assertions.c rename to lib/isc/assertions.c diff --git a/contrib/bind9/lib/isc/base64.c b/lib/isc/base64.c similarity index 100% rename from contrib/bind9/lib/isc/base64.c rename to lib/isc/base64.c diff --git a/contrib/bind9/lib/isc/bitstring.c b/lib/isc/bitstring.c similarity index 100% rename from contrib/bind9/lib/isc/bitstring.c rename to lib/isc/bitstring.c diff --git a/contrib/bind9/lib/isc/buffer.c b/lib/isc/buffer.c similarity index 100% rename from contrib/bind9/lib/isc/buffer.c rename to lib/isc/buffer.c diff --git a/contrib/bind9/lib/isc/bufferlist.c b/lib/isc/bufferlist.c similarity index 100% rename from contrib/bind9/lib/isc/bufferlist.c rename to lib/isc/bufferlist.c diff --git a/contrib/bind9/lib/isc/commandline.c b/lib/isc/commandline.c similarity index 100% rename from contrib/bind9/lib/isc/commandline.c rename to lib/isc/commandline.c diff --git a/contrib/bind9/lib/isc/entropy.c b/lib/isc/entropy.c similarity index 100% rename from contrib/bind9/lib/isc/entropy.c rename to lib/isc/entropy.c diff --git a/contrib/bind9/lib/isc/error.c b/lib/isc/error.c similarity index 100% rename from contrib/bind9/lib/isc/error.c rename to lib/isc/error.c diff --git a/contrib/bind9/lib/isc/event.c b/lib/isc/event.c similarity index 100% rename from contrib/bind9/lib/isc/event.c rename to lib/isc/event.c diff --git a/contrib/bind9/lib/isc/fsaccess.c b/lib/isc/fsaccess.c similarity index 100% rename from contrib/bind9/lib/isc/fsaccess.c rename to lib/isc/fsaccess.c diff --git a/contrib/bind9/lib/isc/hash.c b/lib/isc/hash.c similarity index 100% rename from contrib/bind9/lib/isc/hash.c rename to lib/isc/hash.c diff --git a/contrib/bind9/lib/isc/heap.c b/lib/isc/heap.c similarity index 100% rename from contrib/bind9/lib/isc/heap.c rename to lib/isc/heap.c diff --git a/contrib/bind9/lib/isc/hex.c b/lib/isc/hex.c similarity index 100% rename from contrib/bind9/lib/isc/hex.c rename to lib/isc/hex.c diff --git a/contrib/bind9/lib/isc/hmacmd5.c b/lib/isc/hmacmd5.c similarity index 100% rename from contrib/bind9/lib/isc/hmacmd5.c rename to lib/isc/hmacmd5.c diff --git a/contrib/bind9/lib/isc/hmacsha.c b/lib/isc/hmacsha.c similarity index 100% rename from contrib/bind9/lib/isc/hmacsha.c rename to lib/isc/hmacsha.c diff --git a/contrib/bind9/lib/isc/ia64/Makefile.in b/lib/isc/ia64/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/ia64/Makefile.in rename to lib/isc/ia64/Makefile.in diff --git a/contrib/bind9/lib/isc/ia64/include/Makefile.in b/lib/isc/ia64/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/ia64/include/Makefile.in rename to lib/isc/ia64/include/Makefile.in diff --git a/contrib/bind9/lib/isc/ia64/include/isc/Makefile.in b/lib/isc/ia64/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/ia64/include/isc/Makefile.in rename to lib/isc/ia64/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/ia64/include/isc/atomic.h b/lib/isc/ia64/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/ia64/include/isc/atomic.h rename to lib/isc/ia64/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/include/Makefile.in b/lib/isc/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/include/Makefile.in rename to lib/isc/include/Makefile.in diff --git a/contrib/bind9/lib/isc/include/isc/Makefile.in b/lib/isc/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/include/isc/Makefile.in rename to lib/isc/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/include/isc/app.h b/lib/isc/include/isc/app.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/app.h rename to lib/isc/include/isc/app.h diff --git a/contrib/bind9/lib/isc/include/isc/assertions.h b/lib/isc/include/isc/assertions.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/assertions.h rename to lib/isc/include/isc/assertions.h diff --git a/contrib/bind9/lib/isc/include/isc/base64.h b/lib/isc/include/isc/base64.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/base64.h rename to lib/isc/include/isc/base64.h diff --git a/contrib/bind9/lib/isc/include/isc/bitstring.h b/lib/isc/include/isc/bitstring.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/bitstring.h rename to lib/isc/include/isc/bitstring.h diff --git a/contrib/bind9/lib/isc/include/isc/boolean.h b/lib/isc/include/isc/boolean.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/boolean.h rename to lib/isc/include/isc/boolean.h diff --git a/contrib/bind9/lib/isc/include/isc/buffer.h b/lib/isc/include/isc/buffer.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/buffer.h rename to lib/isc/include/isc/buffer.h diff --git a/contrib/bind9/lib/isc/include/isc/bufferlist.h b/lib/isc/include/isc/bufferlist.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/bufferlist.h rename to lib/isc/include/isc/bufferlist.h diff --git a/contrib/bind9/lib/isc/include/isc/commandline.h b/lib/isc/include/isc/commandline.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/commandline.h rename to lib/isc/include/isc/commandline.h diff --git a/contrib/bind9/lib/isc/include/isc/entropy.h b/lib/isc/include/isc/entropy.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/entropy.h rename to lib/isc/include/isc/entropy.h diff --git a/contrib/bind9/lib/isc/include/isc/error.h b/lib/isc/include/isc/error.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/error.h rename to lib/isc/include/isc/error.h diff --git a/contrib/bind9/lib/isc/include/isc/event.h b/lib/isc/include/isc/event.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/event.h rename to lib/isc/include/isc/event.h diff --git a/contrib/bind9/lib/isc/include/isc/eventclass.h b/lib/isc/include/isc/eventclass.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/eventclass.h rename to lib/isc/include/isc/eventclass.h diff --git a/contrib/bind9/lib/isc/include/isc/file.h b/lib/isc/include/isc/file.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/file.h rename to lib/isc/include/isc/file.h diff --git a/contrib/bind9/lib/isc/include/isc/formatcheck.h b/lib/isc/include/isc/formatcheck.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/formatcheck.h rename to lib/isc/include/isc/formatcheck.h diff --git a/contrib/bind9/lib/isc/include/isc/fsaccess.h b/lib/isc/include/isc/fsaccess.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/fsaccess.h rename to lib/isc/include/isc/fsaccess.h diff --git a/contrib/bind9/lib/isc/include/isc/hash.h b/lib/isc/include/isc/hash.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/hash.h rename to lib/isc/include/isc/hash.h diff --git a/contrib/bind9/lib/isc/include/isc/heap.h b/lib/isc/include/isc/heap.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/heap.h rename to lib/isc/include/isc/heap.h diff --git a/contrib/bind9/lib/isc/include/isc/hex.h b/lib/isc/include/isc/hex.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/hex.h rename to lib/isc/include/isc/hex.h diff --git a/contrib/bind9/lib/isc/include/isc/hmacmd5.h b/lib/isc/include/isc/hmacmd5.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/hmacmd5.h rename to lib/isc/include/isc/hmacmd5.h diff --git a/contrib/bind9/lib/isc/include/isc/hmacsha.h b/lib/isc/include/isc/hmacsha.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/hmacsha.h rename to lib/isc/include/isc/hmacsha.h diff --git a/contrib/bind9/lib/isc/include/isc/interfaceiter.h b/lib/isc/include/isc/interfaceiter.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/interfaceiter.h rename to lib/isc/include/isc/interfaceiter.h diff --git a/contrib/bind9/lib/isc/include/isc/ipv6.h b/lib/isc/include/isc/ipv6.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/ipv6.h rename to lib/isc/include/isc/ipv6.h diff --git a/contrib/bind9/lib/isc/include/isc/lang.h b/lib/isc/include/isc/lang.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/lang.h rename to lib/isc/include/isc/lang.h diff --git a/contrib/bind9/lib/isc/include/isc/lex.h b/lib/isc/include/isc/lex.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/lex.h rename to lib/isc/include/isc/lex.h diff --git a/contrib/bind9/lib/isc/include/isc/lfsr.h b/lib/isc/include/isc/lfsr.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/lfsr.h rename to lib/isc/include/isc/lfsr.h diff --git a/contrib/bind9/lib/isc/include/isc/lib.h b/lib/isc/include/isc/lib.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/lib.h rename to lib/isc/include/isc/lib.h diff --git a/contrib/bind9/lib/isc/include/isc/list.h b/lib/isc/include/isc/list.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/list.h rename to lib/isc/include/isc/list.h diff --git a/contrib/bind9/lib/isc/include/isc/log.h b/lib/isc/include/isc/log.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/log.h rename to lib/isc/include/isc/log.h diff --git a/contrib/bind9/lib/isc/include/isc/magic.h b/lib/isc/include/isc/magic.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/magic.h rename to lib/isc/include/isc/magic.h diff --git a/contrib/bind9/lib/isc/include/isc/md5.h b/lib/isc/include/isc/md5.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/md5.h rename to lib/isc/include/isc/md5.h diff --git a/contrib/bind9/lib/isc/include/isc/mem.h b/lib/isc/include/isc/mem.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/mem.h rename to lib/isc/include/isc/mem.h diff --git a/contrib/bind9/lib/isc/include/isc/msgcat.h b/lib/isc/include/isc/msgcat.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/msgcat.h rename to lib/isc/include/isc/msgcat.h diff --git a/contrib/bind9/lib/isc/include/isc/msgs.h b/lib/isc/include/isc/msgs.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/msgs.h rename to lib/isc/include/isc/msgs.h diff --git a/contrib/bind9/lib/isc/include/isc/mutexblock.h b/lib/isc/include/isc/mutexblock.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/mutexblock.h rename to lib/isc/include/isc/mutexblock.h diff --git a/contrib/bind9/lib/isc/include/isc/netaddr.h b/lib/isc/include/isc/netaddr.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/netaddr.h rename to lib/isc/include/isc/netaddr.h diff --git a/contrib/bind9/lib/isc/include/isc/netscope.h b/lib/isc/include/isc/netscope.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/netscope.h rename to lib/isc/include/isc/netscope.h diff --git a/contrib/bind9/lib/isc/include/isc/ondestroy.h b/lib/isc/include/isc/ondestroy.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/ondestroy.h rename to lib/isc/include/isc/ondestroy.h diff --git a/contrib/bind9/lib/isc/include/isc/os.h b/lib/isc/include/isc/os.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/os.h rename to lib/isc/include/isc/os.h diff --git a/contrib/bind9/lib/isc/include/isc/parseint.h b/lib/isc/include/isc/parseint.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/parseint.h rename to lib/isc/include/isc/parseint.h diff --git a/contrib/bind9/lib/isc/include/isc/platform.h.in b/lib/isc/include/isc/platform.h.in similarity index 100% rename from contrib/bind9/lib/isc/include/isc/platform.h.in rename to lib/isc/include/isc/platform.h.in diff --git a/contrib/bind9/lib/isc/include/isc/print.h b/lib/isc/include/isc/print.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/print.h rename to lib/isc/include/isc/print.h diff --git a/contrib/bind9/lib/isc/include/isc/quota.h b/lib/isc/include/isc/quota.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/quota.h rename to lib/isc/include/isc/quota.h diff --git a/contrib/bind9/lib/isc/include/isc/random.h b/lib/isc/include/isc/random.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/random.h rename to lib/isc/include/isc/random.h diff --git a/contrib/bind9/lib/isc/include/isc/ratelimiter.h b/lib/isc/include/isc/ratelimiter.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/ratelimiter.h rename to lib/isc/include/isc/ratelimiter.h diff --git a/contrib/bind9/lib/isc/include/isc/refcount.h b/lib/isc/include/isc/refcount.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/refcount.h rename to lib/isc/include/isc/refcount.h diff --git a/contrib/bind9/lib/isc/include/isc/region.h b/lib/isc/include/isc/region.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/region.h rename to lib/isc/include/isc/region.h diff --git a/contrib/bind9/lib/isc/include/isc/resource.h b/lib/isc/include/isc/resource.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/resource.h rename to lib/isc/include/isc/resource.h diff --git a/contrib/bind9/lib/isc/include/isc/result.h b/lib/isc/include/isc/result.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/result.h rename to lib/isc/include/isc/result.h diff --git a/contrib/bind9/lib/isc/include/isc/resultclass.h b/lib/isc/include/isc/resultclass.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/resultclass.h rename to lib/isc/include/isc/resultclass.h diff --git a/contrib/bind9/lib/isc/include/isc/rwlock.h b/lib/isc/include/isc/rwlock.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/rwlock.h rename to lib/isc/include/isc/rwlock.h diff --git a/contrib/bind9/lib/isc/include/isc/serial.h b/lib/isc/include/isc/serial.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/serial.h rename to lib/isc/include/isc/serial.h diff --git a/contrib/bind9/lib/isc/include/isc/sha1.h b/lib/isc/include/isc/sha1.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/sha1.h rename to lib/isc/include/isc/sha1.h diff --git a/contrib/bind9/lib/isc/include/isc/sha2.h b/lib/isc/include/isc/sha2.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/sha2.h rename to lib/isc/include/isc/sha2.h diff --git a/contrib/bind9/lib/isc/include/isc/sockaddr.h b/lib/isc/include/isc/sockaddr.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/sockaddr.h rename to lib/isc/include/isc/sockaddr.h diff --git a/contrib/bind9/lib/isc/include/isc/socket.h b/lib/isc/include/isc/socket.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/socket.h rename to lib/isc/include/isc/socket.h diff --git a/contrib/bind9/lib/isc/include/isc/stdio.h b/lib/isc/include/isc/stdio.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/stdio.h rename to lib/isc/include/isc/stdio.h diff --git a/contrib/bind9/lib/isc/include/isc/stdlib.h b/lib/isc/include/isc/stdlib.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/stdlib.h rename to lib/isc/include/isc/stdlib.h diff --git a/contrib/bind9/lib/isc/include/isc/string.h b/lib/isc/include/isc/string.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/string.h rename to lib/isc/include/isc/string.h diff --git a/contrib/bind9/lib/isc/include/isc/symtab.h b/lib/isc/include/isc/symtab.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/symtab.h rename to lib/isc/include/isc/symtab.h diff --git a/contrib/bind9/lib/isc/include/isc/task.h b/lib/isc/include/isc/task.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/task.h rename to lib/isc/include/isc/task.h diff --git a/contrib/bind9/lib/isc/include/isc/taskpool.h b/lib/isc/include/isc/taskpool.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/taskpool.h rename to lib/isc/include/isc/taskpool.h diff --git a/contrib/bind9/lib/isc/include/isc/timer.h b/lib/isc/include/isc/timer.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/timer.h rename to lib/isc/include/isc/timer.h diff --git a/contrib/bind9/lib/isc/include/isc/types.h b/lib/isc/include/isc/types.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/types.h rename to lib/isc/include/isc/types.h diff --git a/contrib/bind9/lib/isc/include/isc/util.h b/lib/isc/include/isc/util.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/util.h rename to lib/isc/include/isc/util.h diff --git a/contrib/bind9/lib/isc/include/isc/version.h b/lib/isc/include/isc/version.h similarity index 100% rename from contrib/bind9/lib/isc/include/isc/version.h rename to lib/isc/include/isc/version.h diff --git a/contrib/bind9/lib/isc/inet_aton.c b/lib/isc/inet_aton.c similarity index 100% rename from contrib/bind9/lib/isc/inet_aton.c rename to lib/isc/inet_aton.c diff --git a/contrib/bind9/lib/isc/inet_ntop.c b/lib/isc/inet_ntop.c similarity index 100% rename from contrib/bind9/lib/isc/inet_ntop.c rename to lib/isc/inet_ntop.c diff --git a/contrib/bind9/lib/isc/inet_pton.c b/lib/isc/inet_pton.c similarity index 100% rename from contrib/bind9/lib/isc/inet_pton.c rename to lib/isc/inet_pton.c diff --git a/contrib/bind9/lib/isc/lex.c b/lib/isc/lex.c similarity index 100% rename from contrib/bind9/lib/isc/lex.c rename to lib/isc/lex.c diff --git a/contrib/bind9/lib/isc/lfsr.c b/lib/isc/lfsr.c similarity index 100% rename from contrib/bind9/lib/isc/lfsr.c rename to lib/isc/lfsr.c diff --git a/contrib/bind9/lib/isc/lib.c b/lib/isc/lib.c similarity index 100% rename from contrib/bind9/lib/isc/lib.c rename to lib/isc/lib.c diff --git a/contrib/bind9/lib/isc/log.c b/lib/isc/log.c similarity index 100% rename from contrib/bind9/lib/isc/log.c rename to lib/isc/log.c diff --git a/contrib/bind9/lib/isc/md5.c b/lib/isc/md5.c similarity index 100% rename from contrib/bind9/lib/isc/md5.c rename to lib/isc/md5.c diff --git a/contrib/bind9/lib/isc/mem.c b/lib/isc/mem.c similarity index 100% rename from contrib/bind9/lib/isc/mem.c rename to lib/isc/mem.c diff --git a/contrib/bind9/lib/isc/mips/Makefile.in b/lib/isc/mips/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/mips/Makefile.in rename to lib/isc/mips/Makefile.in diff --git a/contrib/bind9/lib/isc/mips/include/Makefile.in b/lib/isc/mips/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/mips/include/Makefile.in rename to lib/isc/mips/include/Makefile.in diff --git a/contrib/bind9/lib/isc/mips/include/isc/Makefile.in b/lib/isc/mips/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/mips/include/isc/Makefile.in rename to lib/isc/mips/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/mips/include/isc/atomic.h b/lib/isc/mips/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/mips/include/isc/atomic.h rename to lib/isc/mips/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/mutexblock.c b/lib/isc/mutexblock.c similarity index 100% rename from contrib/bind9/lib/isc/mutexblock.c rename to lib/isc/mutexblock.c diff --git a/contrib/bind9/lib/isc/netaddr.c b/lib/isc/netaddr.c similarity index 100% rename from contrib/bind9/lib/isc/netaddr.c rename to lib/isc/netaddr.c diff --git a/contrib/bind9/lib/isc/netscope.c b/lib/isc/netscope.c similarity index 100% rename from contrib/bind9/lib/isc/netscope.c rename to lib/isc/netscope.c diff --git a/contrib/bind9/lib/isc/nls/Makefile.in b/lib/isc/nls/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/nls/Makefile.in rename to lib/isc/nls/Makefile.in diff --git a/contrib/bind9/lib/isc/nls/msgcat.c b/lib/isc/nls/msgcat.c similarity index 100% rename from contrib/bind9/lib/isc/nls/msgcat.c rename to lib/isc/nls/msgcat.c diff --git a/contrib/bind9/lib/isc/noatomic/Makefile.in b/lib/isc/noatomic/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/noatomic/Makefile.in rename to lib/isc/noatomic/Makefile.in diff --git a/contrib/bind9/lib/isc/noatomic/include/Makefile.in b/lib/isc/noatomic/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/noatomic/include/Makefile.in rename to lib/isc/noatomic/include/Makefile.in diff --git a/contrib/bind9/lib/isc/noatomic/include/isc/Makefile.in b/lib/isc/noatomic/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/noatomic/include/isc/Makefile.in rename to lib/isc/noatomic/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/noatomic/include/isc/atomic.h b/lib/isc/noatomic/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/noatomic/include/isc/atomic.h rename to lib/isc/noatomic/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/nothreads/Makefile.in b/lib/isc/nothreads/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/nothreads/Makefile.in rename to lib/isc/nothreads/Makefile.in diff --git a/contrib/bind9/lib/isc/nothreads/condition.c b/lib/isc/nothreads/condition.c similarity index 100% rename from contrib/bind9/lib/isc/nothreads/condition.c rename to lib/isc/nothreads/condition.c diff --git a/contrib/bind9/lib/isc/nothreads/include/Makefile.in b/lib/isc/nothreads/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/nothreads/include/Makefile.in rename to lib/isc/nothreads/include/Makefile.in diff --git a/contrib/bind9/lib/isc/nothreads/include/isc/Makefile.in b/lib/isc/nothreads/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/nothreads/include/isc/Makefile.in rename to lib/isc/nothreads/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/nothreads/include/isc/condition.h b/lib/isc/nothreads/include/isc/condition.h similarity index 100% rename from contrib/bind9/lib/isc/nothreads/include/isc/condition.h rename to lib/isc/nothreads/include/isc/condition.h diff --git a/contrib/bind9/lib/isc/nothreads/include/isc/mutex.h b/lib/isc/nothreads/include/isc/mutex.h similarity index 100% rename from contrib/bind9/lib/isc/nothreads/include/isc/mutex.h rename to lib/isc/nothreads/include/isc/mutex.h diff --git a/contrib/bind9/lib/isc/nothreads/include/isc/once.h b/lib/isc/nothreads/include/isc/once.h similarity index 100% rename from contrib/bind9/lib/isc/nothreads/include/isc/once.h rename to lib/isc/nothreads/include/isc/once.h diff --git a/contrib/bind9/lib/isc/nothreads/include/isc/thread.h b/lib/isc/nothreads/include/isc/thread.h similarity index 100% rename from contrib/bind9/lib/isc/nothreads/include/isc/thread.h rename to lib/isc/nothreads/include/isc/thread.h diff --git a/contrib/bind9/lib/isc/nothreads/mutex.c b/lib/isc/nothreads/mutex.c similarity index 100% rename from contrib/bind9/lib/isc/nothreads/mutex.c rename to lib/isc/nothreads/mutex.c diff --git a/contrib/bind9/lib/isc/nothreads/thread.c b/lib/isc/nothreads/thread.c similarity index 100% rename from contrib/bind9/lib/isc/nothreads/thread.c rename to lib/isc/nothreads/thread.c diff --git a/contrib/bind9/lib/isc/ondestroy.c b/lib/isc/ondestroy.c similarity index 100% rename from contrib/bind9/lib/isc/ondestroy.c rename to lib/isc/ondestroy.c diff --git a/contrib/bind9/lib/isc/parseint.c b/lib/isc/parseint.c similarity index 100% rename from contrib/bind9/lib/isc/parseint.c rename to lib/isc/parseint.c diff --git a/contrib/bind9/lib/isc/powerpc/Makefile.in b/lib/isc/powerpc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/powerpc/Makefile.in rename to lib/isc/powerpc/Makefile.in diff --git a/contrib/bind9/lib/isc/powerpc/include/Makefile.in b/lib/isc/powerpc/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/powerpc/include/Makefile.in rename to lib/isc/powerpc/include/Makefile.in diff --git a/contrib/bind9/lib/isc/powerpc/include/isc/Makefile.in b/lib/isc/powerpc/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/powerpc/include/isc/Makefile.in rename to lib/isc/powerpc/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/powerpc/include/isc/atomic.h b/lib/isc/powerpc/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/powerpc/include/isc/atomic.h rename to lib/isc/powerpc/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/print.c b/lib/isc/print.c similarity index 100% rename from contrib/bind9/lib/isc/print.c rename to lib/isc/print.c diff --git a/contrib/bind9/lib/isc/pthreads/Makefile.in b/lib/isc/pthreads/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/pthreads/Makefile.in rename to lib/isc/pthreads/Makefile.in diff --git a/contrib/bind9/lib/isc/pthreads/condition.c b/lib/isc/pthreads/condition.c similarity index 100% rename from contrib/bind9/lib/isc/pthreads/condition.c rename to lib/isc/pthreads/condition.c diff --git a/contrib/bind9/lib/isc/pthreads/include/Makefile.in b/lib/isc/pthreads/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/pthreads/include/Makefile.in rename to lib/isc/pthreads/include/Makefile.in diff --git a/contrib/bind9/lib/isc/pthreads/include/isc/Makefile.in b/lib/isc/pthreads/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/pthreads/include/isc/Makefile.in rename to lib/isc/pthreads/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/pthreads/include/isc/condition.h b/lib/isc/pthreads/include/isc/condition.h similarity index 100% rename from contrib/bind9/lib/isc/pthreads/include/isc/condition.h rename to lib/isc/pthreads/include/isc/condition.h diff --git a/contrib/bind9/lib/isc/pthreads/include/isc/mutex.h b/lib/isc/pthreads/include/isc/mutex.h similarity index 100% rename from contrib/bind9/lib/isc/pthreads/include/isc/mutex.h rename to lib/isc/pthreads/include/isc/mutex.h diff --git a/contrib/bind9/lib/isc/pthreads/include/isc/once.h b/lib/isc/pthreads/include/isc/once.h similarity index 100% rename from contrib/bind9/lib/isc/pthreads/include/isc/once.h rename to lib/isc/pthreads/include/isc/once.h diff --git a/contrib/bind9/lib/isc/pthreads/include/isc/thread.h b/lib/isc/pthreads/include/isc/thread.h similarity index 100% rename from contrib/bind9/lib/isc/pthreads/include/isc/thread.h rename to lib/isc/pthreads/include/isc/thread.h diff --git a/contrib/bind9/lib/isc/pthreads/mutex.c b/lib/isc/pthreads/mutex.c similarity index 100% rename from contrib/bind9/lib/isc/pthreads/mutex.c rename to lib/isc/pthreads/mutex.c diff --git a/contrib/bind9/lib/isc/pthreads/thread.c b/lib/isc/pthreads/thread.c similarity index 100% rename from contrib/bind9/lib/isc/pthreads/thread.c rename to lib/isc/pthreads/thread.c diff --git a/contrib/bind9/lib/isc/quota.c b/lib/isc/quota.c similarity index 100% rename from contrib/bind9/lib/isc/quota.c rename to lib/isc/quota.c diff --git a/contrib/bind9/lib/isc/random.c b/lib/isc/random.c similarity index 100% rename from contrib/bind9/lib/isc/random.c rename to lib/isc/random.c diff --git a/contrib/bind9/lib/isc/ratelimiter.c b/lib/isc/ratelimiter.c similarity index 100% rename from contrib/bind9/lib/isc/ratelimiter.c rename to lib/isc/ratelimiter.c diff --git a/contrib/bind9/lib/isc/refcount.c b/lib/isc/refcount.c similarity index 100% rename from contrib/bind9/lib/isc/refcount.c rename to lib/isc/refcount.c diff --git a/contrib/bind9/lib/isc/region.c b/lib/isc/region.c similarity index 100% rename from contrib/bind9/lib/isc/region.c rename to lib/isc/region.c diff --git a/contrib/bind9/lib/isc/result.c b/lib/isc/result.c similarity index 100% rename from contrib/bind9/lib/isc/result.c rename to lib/isc/result.c diff --git a/contrib/bind9/lib/isc/rwlock.c b/lib/isc/rwlock.c similarity index 100% rename from contrib/bind9/lib/isc/rwlock.c rename to lib/isc/rwlock.c diff --git a/contrib/bind9/lib/isc/serial.c b/lib/isc/serial.c similarity index 100% rename from contrib/bind9/lib/isc/serial.c rename to lib/isc/serial.c diff --git a/contrib/bind9/lib/isc/sha1.c b/lib/isc/sha1.c similarity index 100% rename from contrib/bind9/lib/isc/sha1.c rename to lib/isc/sha1.c diff --git a/contrib/bind9/lib/isc/sha2.c b/lib/isc/sha2.c similarity index 100% rename from contrib/bind9/lib/isc/sha2.c rename to lib/isc/sha2.c diff --git a/contrib/bind9/lib/isc/sockaddr.c b/lib/isc/sockaddr.c similarity index 100% rename from contrib/bind9/lib/isc/sockaddr.c rename to lib/isc/sockaddr.c diff --git a/contrib/bind9/lib/isc/sparc64/Makefile.in b/lib/isc/sparc64/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/sparc64/Makefile.in rename to lib/isc/sparc64/Makefile.in diff --git a/contrib/bind9/lib/isc/sparc64/include/Makefile.in b/lib/isc/sparc64/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/sparc64/include/Makefile.in rename to lib/isc/sparc64/include/Makefile.in diff --git a/contrib/bind9/lib/isc/sparc64/include/isc/Makefile.in b/lib/isc/sparc64/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/sparc64/include/isc/Makefile.in rename to lib/isc/sparc64/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/sparc64/include/isc/atomic.h b/lib/isc/sparc64/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/sparc64/include/isc/atomic.h rename to lib/isc/sparc64/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/string.c b/lib/isc/string.c similarity index 100% rename from contrib/bind9/lib/isc/string.c rename to lib/isc/string.c diff --git a/contrib/bind9/lib/isc/strtoul.c b/lib/isc/strtoul.c similarity index 100% rename from contrib/bind9/lib/isc/strtoul.c rename to lib/isc/strtoul.c diff --git a/contrib/bind9/lib/isc/symtab.c b/lib/isc/symtab.c similarity index 100% rename from contrib/bind9/lib/isc/symtab.c rename to lib/isc/symtab.c diff --git a/contrib/bind9/lib/isc/task.c b/lib/isc/task.c similarity index 100% rename from contrib/bind9/lib/isc/task.c rename to lib/isc/task.c diff --git a/contrib/bind9/lib/isc/task_p.h b/lib/isc/task_p.h similarity index 100% rename from contrib/bind9/lib/isc/task_p.h rename to lib/isc/task_p.h diff --git a/contrib/bind9/lib/isc/taskpool.c b/lib/isc/taskpool.c similarity index 100% rename from contrib/bind9/lib/isc/taskpool.c rename to lib/isc/taskpool.c diff --git a/contrib/bind9/lib/isc/timer.c b/lib/isc/timer.c similarity index 100% rename from contrib/bind9/lib/isc/timer.c rename to lib/isc/timer.c diff --git a/contrib/bind9/lib/isc/timer_p.h b/lib/isc/timer_p.h similarity index 100% rename from contrib/bind9/lib/isc/timer_p.h rename to lib/isc/timer_p.h diff --git a/contrib/bind9/lib/isc/unix/Makefile.in b/lib/isc/unix/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/unix/Makefile.in rename to lib/isc/unix/Makefile.in diff --git a/contrib/bind9/lib/isc/unix/app.c b/lib/isc/unix/app.c similarity index 100% rename from contrib/bind9/lib/isc/unix/app.c rename to lib/isc/unix/app.c diff --git a/contrib/bind9/lib/isc/unix/dir.c b/lib/isc/unix/dir.c similarity index 100% rename from contrib/bind9/lib/isc/unix/dir.c rename to lib/isc/unix/dir.c diff --git a/contrib/bind9/lib/isc/unix/entropy.c b/lib/isc/unix/entropy.c similarity index 100% rename from contrib/bind9/lib/isc/unix/entropy.c rename to lib/isc/unix/entropy.c diff --git a/contrib/bind9/lib/isc/unix/errno2result.c b/lib/isc/unix/errno2result.c similarity index 100% rename from contrib/bind9/lib/isc/unix/errno2result.c rename to lib/isc/unix/errno2result.c diff --git a/contrib/bind9/lib/isc/unix/errno2result.h b/lib/isc/unix/errno2result.h similarity index 100% rename from contrib/bind9/lib/isc/unix/errno2result.h rename to lib/isc/unix/errno2result.h diff --git a/contrib/bind9/lib/isc/unix/file.c b/lib/isc/unix/file.c similarity index 100% rename from contrib/bind9/lib/isc/unix/file.c rename to lib/isc/unix/file.c diff --git a/contrib/bind9/lib/isc/unix/fsaccess.c b/lib/isc/unix/fsaccess.c similarity index 100% rename from contrib/bind9/lib/isc/unix/fsaccess.c rename to lib/isc/unix/fsaccess.c diff --git a/contrib/bind9/lib/isc/unix/ifiter_getifaddrs.c b/lib/isc/unix/ifiter_getifaddrs.c similarity index 100% rename from contrib/bind9/lib/isc/unix/ifiter_getifaddrs.c rename to lib/isc/unix/ifiter_getifaddrs.c diff --git a/contrib/bind9/lib/isc/unix/ifiter_ioctl.c b/lib/isc/unix/ifiter_ioctl.c similarity index 100% rename from contrib/bind9/lib/isc/unix/ifiter_ioctl.c rename to lib/isc/unix/ifiter_ioctl.c diff --git a/contrib/bind9/lib/isc/unix/ifiter_sysctl.c b/lib/isc/unix/ifiter_sysctl.c similarity index 100% rename from contrib/bind9/lib/isc/unix/ifiter_sysctl.c rename to lib/isc/unix/ifiter_sysctl.c diff --git a/contrib/bind9/lib/isc/unix/include/Makefile.in b/lib/isc/unix/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/unix/include/Makefile.in rename to lib/isc/unix/include/Makefile.in diff --git a/contrib/bind9/lib/isc/unix/include/isc/Makefile.in b/lib/isc/unix/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/Makefile.in rename to lib/isc/unix/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/unix/include/isc/dir.h b/lib/isc/unix/include/isc/dir.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/dir.h rename to lib/isc/unix/include/isc/dir.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/int.h b/lib/isc/unix/include/isc/int.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/int.h rename to lib/isc/unix/include/isc/int.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/keyboard.h b/lib/isc/unix/include/isc/keyboard.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/keyboard.h rename to lib/isc/unix/include/isc/keyboard.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/net.h b/lib/isc/unix/include/isc/net.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/net.h rename to lib/isc/unix/include/isc/net.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/netdb.h b/lib/isc/unix/include/isc/netdb.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/netdb.h rename to lib/isc/unix/include/isc/netdb.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/offset.h b/lib/isc/unix/include/isc/offset.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/offset.h rename to lib/isc/unix/include/isc/offset.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/stat.h b/lib/isc/unix/include/isc/stat.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/stat.h rename to lib/isc/unix/include/isc/stat.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/stdtime.h b/lib/isc/unix/include/isc/stdtime.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/stdtime.h rename to lib/isc/unix/include/isc/stdtime.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/strerror.h b/lib/isc/unix/include/isc/strerror.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/strerror.h rename to lib/isc/unix/include/isc/strerror.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/syslog.h b/lib/isc/unix/include/isc/syslog.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/syslog.h rename to lib/isc/unix/include/isc/syslog.h diff --git a/contrib/bind9/lib/isc/unix/include/isc/time.h b/lib/isc/unix/include/isc/time.h similarity index 100% rename from contrib/bind9/lib/isc/unix/include/isc/time.h rename to lib/isc/unix/include/isc/time.h diff --git a/contrib/bind9/lib/isc/unix/interfaceiter.c b/lib/isc/unix/interfaceiter.c similarity index 100% rename from contrib/bind9/lib/isc/unix/interfaceiter.c rename to lib/isc/unix/interfaceiter.c diff --git a/contrib/bind9/lib/isc/unix/ipv6.c b/lib/isc/unix/ipv6.c similarity index 100% rename from contrib/bind9/lib/isc/unix/ipv6.c rename to lib/isc/unix/ipv6.c diff --git a/contrib/bind9/lib/isc/unix/keyboard.c b/lib/isc/unix/keyboard.c similarity index 100% rename from contrib/bind9/lib/isc/unix/keyboard.c rename to lib/isc/unix/keyboard.c diff --git a/contrib/bind9/lib/isc/unix/net.c b/lib/isc/unix/net.c similarity index 100% rename from contrib/bind9/lib/isc/unix/net.c rename to lib/isc/unix/net.c diff --git a/contrib/bind9/lib/isc/unix/os.c b/lib/isc/unix/os.c similarity index 100% rename from contrib/bind9/lib/isc/unix/os.c rename to lib/isc/unix/os.c diff --git a/contrib/bind9/lib/isc/unix/resource.c b/lib/isc/unix/resource.c similarity index 100% rename from contrib/bind9/lib/isc/unix/resource.c rename to lib/isc/unix/resource.c diff --git a/contrib/bind9/lib/isc/unix/socket.c b/lib/isc/unix/socket.c similarity index 100% rename from contrib/bind9/lib/isc/unix/socket.c rename to lib/isc/unix/socket.c diff --git a/contrib/bind9/lib/isc/unix/socket_p.h b/lib/isc/unix/socket_p.h similarity index 100% rename from contrib/bind9/lib/isc/unix/socket_p.h rename to lib/isc/unix/socket_p.h diff --git a/contrib/bind9/lib/isc/unix/stdio.c b/lib/isc/unix/stdio.c similarity index 100% rename from contrib/bind9/lib/isc/unix/stdio.c rename to lib/isc/unix/stdio.c diff --git a/contrib/bind9/lib/isc/unix/stdtime.c b/lib/isc/unix/stdtime.c similarity index 100% rename from contrib/bind9/lib/isc/unix/stdtime.c rename to lib/isc/unix/stdtime.c diff --git a/contrib/bind9/lib/isc/unix/strerror.c b/lib/isc/unix/strerror.c similarity index 100% rename from contrib/bind9/lib/isc/unix/strerror.c rename to lib/isc/unix/strerror.c diff --git a/contrib/bind9/lib/isc/unix/syslog.c b/lib/isc/unix/syslog.c similarity index 100% rename from contrib/bind9/lib/isc/unix/syslog.c rename to lib/isc/unix/syslog.c diff --git a/contrib/bind9/lib/isc/unix/time.c b/lib/isc/unix/time.c similarity index 100% rename from contrib/bind9/lib/isc/unix/time.c rename to lib/isc/unix/time.c diff --git a/contrib/bind9/lib/isc/version.c b/lib/isc/version.c similarity index 100% rename from contrib/bind9/lib/isc/version.c rename to lib/isc/version.c diff --git a/contrib/bind9/lib/isc/x86_32/Makefile.in b/lib/isc/x86_32/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/x86_32/Makefile.in rename to lib/isc/x86_32/Makefile.in diff --git a/contrib/bind9/lib/isc/x86_32/include/Makefile.in b/lib/isc/x86_32/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/x86_32/include/Makefile.in rename to lib/isc/x86_32/include/Makefile.in diff --git a/contrib/bind9/lib/isc/x86_32/include/isc/Makefile.in b/lib/isc/x86_32/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/x86_32/include/isc/Makefile.in rename to lib/isc/x86_32/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/x86_32/include/isc/atomic.h b/lib/isc/x86_32/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/x86_32/include/isc/atomic.h rename to lib/isc/x86_32/include/isc/atomic.h diff --git a/contrib/bind9/lib/isc/x86_64/Makefile.in b/lib/isc/x86_64/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/x86_64/Makefile.in rename to lib/isc/x86_64/Makefile.in diff --git a/contrib/bind9/lib/isc/x86_64/include/Makefile.in b/lib/isc/x86_64/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/x86_64/include/Makefile.in rename to lib/isc/x86_64/include/Makefile.in diff --git a/contrib/bind9/lib/isc/x86_64/include/isc/Makefile.in b/lib/isc/x86_64/include/isc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isc/x86_64/include/isc/Makefile.in rename to lib/isc/x86_64/include/isc/Makefile.in diff --git a/contrib/bind9/lib/isc/x86_64/include/isc/atomic.h b/lib/isc/x86_64/include/isc/atomic.h similarity index 100% rename from contrib/bind9/lib/isc/x86_64/include/isc/atomic.h rename to lib/isc/x86_64/include/isc/atomic.h diff --git a/contrib/bind9/lib/isccc/Makefile.in b/lib/isccc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isccc/Makefile.in rename to lib/isccc/Makefile.in diff --git a/contrib/bind9/lib/isccc/alist.c b/lib/isccc/alist.c similarity index 100% rename from contrib/bind9/lib/isccc/alist.c rename to lib/isccc/alist.c diff --git a/contrib/bind9/lib/isccc/api b/lib/isccc/api similarity index 100% rename from contrib/bind9/lib/isccc/api rename to lib/isccc/api diff --git a/contrib/bind9/lib/isccc/base64.c b/lib/isccc/base64.c similarity index 100% rename from contrib/bind9/lib/isccc/base64.c rename to lib/isccc/base64.c diff --git a/contrib/bind9/lib/isccc/cc.c b/lib/isccc/cc.c similarity index 100% rename from contrib/bind9/lib/isccc/cc.c rename to lib/isccc/cc.c diff --git a/contrib/bind9/lib/isccc/ccmsg.c b/lib/isccc/ccmsg.c similarity index 100% rename from contrib/bind9/lib/isccc/ccmsg.c rename to lib/isccc/ccmsg.c diff --git a/contrib/bind9/lib/isccc/include/Makefile.in b/lib/isccc/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isccc/include/Makefile.in rename to lib/isccc/include/Makefile.in diff --git a/contrib/bind9/lib/isccc/include/isccc/Makefile.in b/lib/isccc/include/isccc/Makefile.in similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/Makefile.in rename to lib/isccc/include/isccc/Makefile.in diff --git a/contrib/bind9/lib/isccc/include/isccc/alist.h b/lib/isccc/include/isccc/alist.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/alist.h rename to lib/isccc/include/isccc/alist.h diff --git a/contrib/bind9/lib/isccc/include/isccc/base64.h b/lib/isccc/include/isccc/base64.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/base64.h rename to lib/isccc/include/isccc/base64.h diff --git a/contrib/bind9/lib/isccc/include/isccc/cc.h b/lib/isccc/include/isccc/cc.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/cc.h rename to lib/isccc/include/isccc/cc.h diff --git a/contrib/bind9/lib/isccc/include/isccc/ccmsg.h b/lib/isccc/include/isccc/ccmsg.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/ccmsg.h rename to lib/isccc/include/isccc/ccmsg.h diff --git a/contrib/bind9/lib/isccc/include/isccc/events.h b/lib/isccc/include/isccc/events.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/events.h rename to lib/isccc/include/isccc/events.h diff --git a/contrib/bind9/lib/isccc/include/isccc/lib.h b/lib/isccc/include/isccc/lib.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/lib.h rename to lib/isccc/include/isccc/lib.h diff --git a/contrib/bind9/lib/isccc/include/isccc/result.h b/lib/isccc/include/isccc/result.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/result.h rename to lib/isccc/include/isccc/result.h diff --git a/contrib/bind9/lib/isccc/include/isccc/sexpr.h b/lib/isccc/include/isccc/sexpr.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/sexpr.h rename to lib/isccc/include/isccc/sexpr.h diff --git a/contrib/bind9/lib/isccc/include/isccc/symtab.h b/lib/isccc/include/isccc/symtab.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/symtab.h rename to lib/isccc/include/isccc/symtab.h diff --git a/contrib/bind9/lib/isccc/include/isccc/symtype.h b/lib/isccc/include/isccc/symtype.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/symtype.h rename to lib/isccc/include/isccc/symtype.h diff --git a/contrib/bind9/lib/isccc/include/isccc/types.h b/lib/isccc/include/isccc/types.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/types.h rename to lib/isccc/include/isccc/types.h diff --git a/contrib/bind9/lib/isccc/include/isccc/util.h b/lib/isccc/include/isccc/util.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/util.h rename to lib/isccc/include/isccc/util.h diff --git a/contrib/bind9/lib/isccc/include/isccc/version.h b/lib/isccc/include/isccc/version.h similarity index 100% rename from contrib/bind9/lib/isccc/include/isccc/version.h rename to lib/isccc/include/isccc/version.h diff --git a/contrib/bind9/lib/isccc/lib.c b/lib/isccc/lib.c similarity index 100% rename from contrib/bind9/lib/isccc/lib.c rename to lib/isccc/lib.c diff --git a/contrib/bind9/lib/isccc/result.c b/lib/isccc/result.c similarity index 100% rename from contrib/bind9/lib/isccc/result.c rename to lib/isccc/result.c diff --git a/contrib/bind9/lib/isccc/sexpr.c b/lib/isccc/sexpr.c similarity index 100% rename from contrib/bind9/lib/isccc/sexpr.c rename to lib/isccc/sexpr.c diff --git a/contrib/bind9/lib/isccc/symtab.c b/lib/isccc/symtab.c similarity index 100% rename from contrib/bind9/lib/isccc/symtab.c rename to lib/isccc/symtab.c diff --git a/contrib/bind9/lib/isccc/version.c b/lib/isccc/version.c similarity index 100% rename from contrib/bind9/lib/isccc/version.c rename to lib/isccc/version.c diff --git a/contrib/bind9/lib/isccfg/Makefile.in b/lib/isccfg/Makefile.in similarity index 100% rename from contrib/bind9/lib/isccfg/Makefile.in rename to lib/isccfg/Makefile.in diff --git a/contrib/bind9/lib/isccfg/aclconf.c b/lib/isccfg/aclconf.c similarity index 100% rename from contrib/bind9/lib/isccfg/aclconf.c rename to lib/isccfg/aclconf.c diff --git a/contrib/bind9/lib/isccfg/api b/lib/isccfg/api similarity index 100% rename from contrib/bind9/lib/isccfg/api rename to lib/isccfg/api diff --git a/contrib/bind9/lib/isccfg/include/Makefile.in b/lib/isccfg/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/isccfg/include/Makefile.in rename to lib/isccfg/include/Makefile.in diff --git a/contrib/bind9/lib/isccfg/include/isccfg/Makefile.in b/lib/isccfg/include/isccfg/Makefile.in similarity index 100% rename from contrib/bind9/lib/isccfg/include/isccfg/Makefile.in rename to lib/isccfg/include/isccfg/Makefile.in diff --git a/contrib/bind9/lib/isccfg/include/isccfg/aclconf.h b/lib/isccfg/include/isccfg/aclconf.h similarity index 100% rename from contrib/bind9/lib/isccfg/include/isccfg/aclconf.h rename to lib/isccfg/include/isccfg/aclconf.h diff --git a/contrib/bind9/lib/isccfg/include/isccfg/cfg.h b/lib/isccfg/include/isccfg/cfg.h similarity index 100% rename from contrib/bind9/lib/isccfg/include/isccfg/cfg.h rename to lib/isccfg/include/isccfg/cfg.h diff --git a/contrib/bind9/lib/isccfg/include/isccfg/grammar.h b/lib/isccfg/include/isccfg/grammar.h similarity index 100% rename from contrib/bind9/lib/isccfg/include/isccfg/grammar.h rename to lib/isccfg/include/isccfg/grammar.h diff --git a/contrib/bind9/lib/isccfg/include/isccfg/log.h b/lib/isccfg/include/isccfg/log.h similarity index 100% rename from contrib/bind9/lib/isccfg/include/isccfg/log.h rename to lib/isccfg/include/isccfg/log.h diff --git a/contrib/bind9/lib/isccfg/include/isccfg/namedconf.h b/lib/isccfg/include/isccfg/namedconf.h similarity index 100% rename from contrib/bind9/lib/isccfg/include/isccfg/namedconf.h rename to lib/isccfg/include/isccfg/namedconf.h diff --git a/contrib/bind9/lib/isccfg/include/isccfg/version.h b/lib/isccfg/include/isccfg/version.h similarity index 100% rename from contrib/bind9/lib/isccfg/include/isccfg/version.h rename to lib/isccfg/include/isccfg/version.h diff --git a/contrib/bind9/lib/isccfg/log.c b/lib/isccfg/log.c similarity index 100% rename from contrib/bind9/lib/isccfg/log.c rename to lib/isccfg/log.c diff --git a/contrib/bind9/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c similarity index 100% rename from contrib/bind9/lib/isccfg/namedconf.c rename to lib/isccfg/namedconf.c diff --git a/contrib/bind9/lib/isccfg/parser.c b/lib/isccfg/parser.c similarity index 100% rename from contrib/bind9/lib/isccfg/parser.c rename to lib/isccfg/parser.c diff --git a/contrib/bind9/lib/isccfg/version.c b/lib/isccfg/version.c similarity index 100% rename from contrib/bind9/lib/isccfg/version.c rename to lib/isccfg/version.c diff --git a/contrib/bind9/lib/lwres/Makefile.in b/lib/lwres/Makefile.in similarity index 100% rename from contrib/bind9/lib/lwres/Makefile.in rename to lib/lwres/Makefile.in diff --git a/contrib/bind9/lib/lwres/api b/lib/lwres/api similarity index 100% rename from contrib/bind9/lib/lwres/api rename to lib/lwres/api diff --git a/contrib/bind9/lib/lwres/assert_p.h b/lib/lwres/assert_p.h similarity index 100% rename from contrib/bind9/lib/lwres/assert_p.h rename to lib/lwres/assert_p.h diff --git a/contrib/bind9/lib/lwres/context.c b/lib/lwres/context.c similarity index 100% rename from contrib/bind9/lib/lwres/context.c rename to lib/lwres/context.c diff --git a/contrib/bind9/lib/lwres/context_p.h b/lib/lwres/context_p.h similarity index 100% rename from contrib/bind9/lib/lwres/context_p.h rename to lib/lwres/context_p.h diff --git a/contrib/bind9/lib/lwres/gai_strerror.c b/lib/lwres/gai_strerror.c similarity index 100% rename from contrib/bind9/lib/lwres/gai_strerror.c rename to lib/lwres/gai_strerror.c diff --git a/contrib/bind9/lib/lwres/getaddrinfo.c b/lib/lwres/getaddrinfo.c similarity index 100% rename from contrib/bind9/lib/lwres/getaddrinfo.c rename to lib/lwres/getaddrinfo.c diff --git a/contrib/bind9/lib/lwres/gethost.c b/lib/lwres/gethost.c similarity index 100% rename from contrib/bind9/lib/lwres/gethost.c rename to lib/lwres/gethost.c diff --git a/contrib/bind9/lib/lwres/getipnode.c b/lib/lwres/getipnode.c similarity index 100% rename from contrib/bind9/lib/lwres/getipnode.c rename to lib/lwres/getipnode.c diff --git a/contrib/bind9/lib/lwres/getnameinfo.c b/lib/lwres/getnameinfo.c similarity index 100% rename from contrib/bind9/lib/lwres/getnameinfo.c rename to lib/lwres/getnameinfo.c diff --git a/contrib/bind9/lib/lwres/getrrset.c b/lib/lwres/getrrset.c similarity index 100% rename from contrib/bind9/lib/lwres/getrrset.c rename to lib/lwres/getrrset.c diff --git a/contrib/bind9/lib/lwres/herror.c b/lib/lwres/herror.c similarity index 100% rename from contrib/bind9/lib/lwres/herror.c rename to lib/lwres/herror.c diff --git a/contrib/bind9/lib/lwres/include/Makefile.in b/lib/lwres/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/lwres/include/Makefile.in rename to lib/lwres/include/Makefile.in diff --git a/contrib/bind9/lib/lwres/include/lwres/Makefile.in b/lib/lwres/include/lwres/Makefile.in similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/Makefile.in rename to lib/lwres/include/lwres/Makefile.in diff --git a/contrib/bind9/lib/lwres/include/lwres/context.h b/lib/lwres/include/lwres/context.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/context.h rename to lib/lwres/include/lwres/context.h diff --git a/contrib/bind9/lib/lwres/include/lwres/int.h b/lib/lwres/include/lwres/int.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/int.h rename to lib/lwres/include/lwres/int.h diff --git a/contrib/bind9/lib/lwres/include/lwres/ipv6.h b/lib/lwres/include/lwres/ipv6.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/ipv6.h rename to lib/lwres/include/lwres/ipv6.h diff --git a/contrib/bind9/lib/lwres/include/lwres/lang.h b/lib/lwres/include/lwres/lang.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/lang.h rename to lib/lwres/include/lwres/lang.h diff --git a/contrib/bind9/lib/lwres/include/lwres/list.h b/lib/lwres/include/lwres/list.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/list.h rename to lib/lwres/include/lwres/list.h diff --git a/contrib/bind9/lib/lwres/include/lwres/lwbuffer.h b/lib/lwres/include/lwres/lwbuffer.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/lwbuffer.h rename to lib/lwres/include/lwres/lwbuffer.h diff --git a/contrib/bind9/lib/lwres/include/lwres/lwpacket.h b/lib/lwres/include/lwres/lwpacket.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/lwpacket.h rename to lib/lwres/include/lwres/lwpacket.h diff --git a/contrib/bind9/lib/lwres/include/lwres/lwres.h b/lib/lwres/include/lwres/lwres.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/lwres.h rename to lib/lwres/include/lwres/lwres.h diff --git a/contrib/bind9/lib/lwres/include/lwres/netdb.h.in b/lib/lwres/include/lwres/netdb.h.in similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/netdb.h.in rename to lib/lwres/include/lwres/netdb.h.in diff --git a/contrib/bind9/lib/lwres/include/lwres/platform.h.in b/lib/lwres/include/lwres/platform.h.in similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/platform.h.in rename to lib/lwres/include/lwres/platform.h.in diff --git a/contrib/bind9/lib/lwres/include/lwres/result.h b/lib/lwres/include/lwres/result.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/result.h rename to lib/lwres/include/lwres/result.h diff --git a/contrib/bind9/lib/lwres/include/lwres/stdlib.h b/lib/lwres/include/lwres/stdlib.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/stdlib.h rename to lib/lwres/include/lwres/stdlib.h diff --git a/contrib/bind9/lib/lwres/include/lwres/version.h b/lib/lwres/include/lwres/version.h similarity index 100% rename from contrib/bind9/lib/lwres/include/lwres/version.h rename to lib/lwres/include/lwres/version.h diff --git a/contrib/bind9/lib/lwres/lwbuffer.c b/lib/lwres/lwbuffer.c similarity index 100% rename from contrib/bind9/lib/lwres/lwbuffer.c rename to lib/lwres/lwbuffer.c diff --git a/contrib/bind9/lib/lwres/lwconfig.c b/lib/lwres/lwconfig.c similarity index 100% rename from contrib/bind9/lib/lwres/lwconfig.c rename to lib/lwres/lwconfig.c diff --git a/contrib/bind9/lib/lwres/lwinetaton.c b/lib/lwres/lwinetaton.c similarity index 100% rename from contrib/bind9/lib/lwres/lwinetaton.c rename to lib/lwres/lwinetaton.c diff --git a/contrib/bind9/lib/lwres/lwinetntop.c b/lib/lwres/lwinetntop.c similarity index 100% rename from contrib/bind9/lib/lwres/lwinetntop.c rename to lib/lwres/lwinetntop.c diff --git a/contrib/bind9/lib/lwres/lwinetpton.c b/lib/lwres/lwinetpton.c similarity index 100% rename from contrib/bind9/lib/lwres/lwinetpton.c rename to lib/lwres/lwinetpton.c diff --git a/contrib/bind9/lib/lwres/lwpacket.c b/lib/lwres/lwpacket.c similarity index 100% rename from contrib/bind9/lib/lwres/lwpacket.c rename to lib/lwres/lwpacket.c diff --git a/contrib/bind9/lib/lwres/lwres_gabn.c b/lib/lwres/lwres_gabn.c similarity index 100% rename from contrib/bind9/lib/lwres/lwres_gabn.c rename to lib/lwres/lwres_gabn.c diff --git a/contrib/bind9/lib/lwres/lwres_gnba.c b/lib/lwres/lwres_gnba.c similarity index 100% rename from contrib/bind9/lib/lwres/lwres_gnba.c rename to lib/lwres/lwres_gnba.c diff --git a/contrib/bind9/lib/lwres/lwres_grbn.c b/lib/lwres/lwres_grbn.c similarity index 100% rename from contrib/bind9/lib/lwres/lwres_grbn.c rename to lib/lwres/lwres_grbn.c diff --git a/contrib/bind9/lib/lwres/lwres_noop.c b/lib/lwres/lwres_noop.c similarity index 100% rename from contrib/bind9/lib/lwres/lwres_noop.c rename to lib/lwres/lwres_noop.c diff --git a/contrib/bind9/lib/lwres/lwresutil.c b/lib/lwres/lwresutil.c similarity index 100% rename from contrib/bind9/lib/lwres/lwresutil.c rename to lib/lwres/lwresutil.c diff --git a/contrib/bind9/lib/lwres/man/Makefile.in b/lib/lwres/man/Makefile.in similarity index 100% rename from contrib/bind9/lib/lwres/man/Makefile.in rename to lib/lwres/man/Makefile.in diff --git a/contrib/bind9/lib/lwres/man/lwres.3 b/lib/lwres/man/lwres.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres.3 rename to lib/lwres/man/lwres.3 diff --git a/contrib/bind9/lib/lwres/man/lwres.docbook b/lib/lwres/man/lwres.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres.docbook rename to lib/lwres/man/lwres.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres.html b/lib/lwres/man/lwres.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres.html rename to lib/lwres/man/lwres.html diff --git a/contrib/bind9/lib/lwres/man/lwres_buffer.3 b/lib/lwres/man/lwres_buffer.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_buffer.3 rename to lib/lwres/man/lwres_buffer.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_buffer.docbook b/lib/lwres/man/lwres_buffer.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_buffer.docbook rename to lib/lwres/man/lwres_buffer.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_buffer.html b/lib/lwres/man/lwres_buffer.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_buffer.html rename to lib/lwres/man/lwres_buffer.html diff --git a/contrib/bind9/lib/lwres/man/lwres_config.3 b/lib/lwres/man/lwres_config.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_config.3 rename to lib/lwres/man/lwres_config.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_config.docbook b/lib/lwres/man/lwres_config.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_config.docbook rename to lib/lwres/man/lwres_config.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_config.html b/lib/lwres/man/lwres_config.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_config.html rename to lib/lwres/man/lwres_config.html diff --git a/contrib/bind9/lib/lwres/man/lwres_context.3 b/lib/lwres/man/lwres_context.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_context.3 rename to lib/lwres/man/lwres_context.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_context.docbook b/lib/lwres/man/lwres_context.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_context.docbook rename to lib/lwres/man/lwres_context.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_context.html b/lib/lwres/man/lwres_context.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_context.html rename to lib/lwres/man/lwres_context.html diff --git a/contrib/bind9/lib/lwres/man/lwres_gabn.3 b/lib/lwres/man/lwres_gabn.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gabn.3 rename to lib/lwres/man/lwres_gabn.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_gabn.docbook b/lib/lwres/man/lwres_gabn.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gabn.docbook rename to lib/lwres/man/lwres_gabn.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_gabn.html b/lib/lwres/man/lwres_gabn.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gabn.html rename to lib/lwres/man/lwres_gabn.html diff --git a/contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 b/lib/lwres/man/lwres_gai_strerror.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 rename to lib/lwres/man/lwres_gai_strerror.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_gai_strerror.docbook b/lib/lwres/man/lwres_gai_strerror.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gai_strerror.docbook rename to lib/lwres/man/lwres_gai_strerror.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_gai_strerror.html b/lib/lwres/man/lwres_gai_strerror.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gai_strerror.html rename to lib/lwres/man/lwres_gai_strerror.html diff --git a/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 b/lib/lwres/man/lwres_getaddrinfo.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 rename to lib/lwres/man/lwres_getaddrinfo.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.docbook b/lib/lwres/man/lwres_getaddrinfo.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getaddrinfo.docbook rename to lib/lwres/man/lwres_getaddrinfo.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html b/lib/lwres/man/lwres_getaddrinfo.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html rename to lib/lwres/man/lwres_getaddrinfo.html diff --git a/contrib/bind9/lib/lwres/man/lwres_gethostent.3 b/lib/lwres/man/lwres_gethostent.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gethostent.3 rename to lib/lwres/man/lwres_gethostent.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_gethostent.docbook b/lib/lwres/man/lwres_gethostent.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gethostent.docbook rename to lib/lwres/man/lwres_gethostent.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_gethostent.html b/lib/lwres/man/lwres_gethostent.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gethostent.html rename to lib/lwres/man/lwres_gethostent.html diff --git a/contrib/bind9/lib/lwres/man/lwres_getipnode.3 b/lib/lwres/man/lwres_getipnode.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getipnode.3 rename to lib/lwres/man/lwres_getipnode.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_getipnode.docbook b/lib/lwres/man/lwres_getipnode.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getipnode.docbook rename to lib/lwres/man/lwres_getipnode.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_getipnode.html b/lib/lwres/man/lwres_getipnode.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getipnode.html rename to lib/lwres/man/lwres_getipnode.html diff --git a/contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 b/lib/lwres/man/lwres_getnameinfo.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 rename to lib/lwres/man/lwres_getnameinfo.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_getnameinfo.docbook b/lib/lwres/man/lwres_getnameinfo.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getnameinfo.docbook rename to lib/lwres/man/lwres_getnameinfo.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_getnameinfo.html b/lib/lwres/man/lwres_getnameinfo.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getnameinfo.html rename to lib/lwres/man/lwres_getnameinfo.html diff --git a/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 b/lib/lwres/man/lwres_getrrsetbyname.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 rename to lib/lwres/man/lwres_getrrsetbyname.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.docbook b/lib/lwres/man/lwres_getrrsetbyname.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.docbook rename to lib/lwres/man/lwres_getrrsetbyname.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html b/lib/lwres/man/lwres_getrrsetbyname.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html rename to lib/lwres/man/lwres_getrrsetbyname.html diff --git a/contrib/bind9/lib/lwres/man/lwres_gnba.3 b/lib/lwres/man/lwres_gnba.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gnba.3 rename to lib/lwres/man/lwres_gnba.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_gnba.docbook b/lib/lwres/man/lwres_gnba.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gnba.docbook rename to lib/lwres/man/lwres_gnba.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_gnba.html b/lib/lwres/man/lwres_gnba.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_gnba.html rename to lib/lwres/man/lwres_gnba.html diff --git a/contrib/bind9/lib/lwres/man/lwres_hstrerror.3 b/lib/lwres/man/lwres_hstrerror.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_hstrerror.3 rename to lib/lwres/man/lwres_hstrerror.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_hstrerror.docbook b/lib/lwres/man/lwres_hstrerror.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_hstrerror.docbook rename to lib/lwres/man/lwres_hstrerror.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_hstrerror.html b/lib/lwres/man/lwres_hstrerror.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_hstrerror.html rename to lib/lwres/man/lwres_hstrerror.html diff --git a/contrib/bind9/lib/lwres/man/lwres_inetntop.3 b/lib/lwres/man/lwres_inetntop.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_inetntop.3 rename to lib/lwres/man/lwres_inetntop.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_inetntop.docbook b/lib/lwres/man/lwres_inetntop.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_inetntop.docbook rename to lib/lwres/man/lwres_inetntop.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_inetntop.html b/lib/lwres/man/lwres_inetntop.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_inetntop.html rename to lib/lwres/man/lwres_inetntop.html diff --git a/contrib/bind9/lib/lwres/man/lwres_noop.3 b/lib/lwres/man/lwres_noop.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_noop.3 rename to lib/lwres/man/lwres_noop.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_noop.docbook b/lib/lwres/man/lwres_noop.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_noop.docbook rename to lib/lwres/man/lwres_noop.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_noop.html b/lib/lwres/man/lwres_noop.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_noop.html rename to lib/lwres/man/lwres_noop.html diff --git a/contrib/bind9/lib/lwres/man/lwres_packet.3 b/lib/lwres/man/lwres_packet.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_packet.3 rename to lib/lwres/man/lwres_packet.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_packet.docbook b/lib/lwres/man/lwres_packet.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_packet.docbook rename to lib/lwres/man/lwres_packet.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_packet.html b/lib/lwres/man/lwres_packet.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_packet.html rename to lib/lwres/man/lwres_packet.html diff --git a/contrib/bind9/lib/lwres/man/lwres_resutil.3 b/lib/lwres/man/lwres_resutil.3 similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_resutil.3 rename to lib/lwres/man/lwres_resutil.3 diff --git a/contrib/bind9/lib/lwres/man/lwres_resutil.docbook b/lib/lwres/man/lwres_resutil.docbook similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_resutil.docbook rename to lib/lwres/man/lwres_resutil.docbook diff --git a/contrib/bind9/lib/lwres/man/lwres_resutil.html b/lib/lwres/man/lwres_resutil.html similarity index 100% rename from contrib/bind9/lib/lwres/man/lwres_resutil.html rename to lib/lwres/man/lwres_resutil.html diff --git a/contrib/bind9/lib/lwres/print.c b/lib/lwres/print.c similarity index 100% rename from contrib/bind9/lib/lwres/print.c rename to lib/lwres/print.c diff --git a/contrib/bind9/lib/lwres/print_p.h b/lib/lwres/print_p.h similarity index 100% rename from contrib/bind9/lib/lwres/print_p.h rename to lib/lwres/print_p.h diff --git a/contrib/bind9/lib/lwres/strtoul.c b/lib/lwres/strtoul.c similarity index 100% rename from contrib/bind9/lib/lwres/strtoul.c rename to lib/lwres/strtoul.c diff --git a/contrib/bind9/lib/lwres/unix/Makefile.in b/lib/lwres/unix/Makefile.in similarity index 100% rename from contrib/bind9/lib/lwres/unix/Makefile.in rename to lib/lwres/unix/Makefile.in diff --git a/contrib/bind9/lib/lwres/unix/include/Makefile.in b/lib/lwres/unix/include/Makefile.in similarity index 100% rename from contrib/bind9/lib/lwres/unix/include/Makefile.in rename to lib/lwres/unix/include/Makefile.in diff --git a/contrib/bind9/lib/lwres/unix/include/lwres/Makefile.in b/lib/lwres/unix/include/lwres/Makefile.in similarity index 100% rename from contrib/bind9/lib/lwres/unix/include/lwres/Makefile.in rename to lib/lwres/unix/include/lwres/Makefile.in diff --git a/contrib/bind9/lib/lwres/unix/include/lwres/net.h b/lib/lwres/unix/include/lwres/net.h similarity index 100% rename from contrib/bind9/lib/lwres/unix/include/lwres/net.h rename to lib/lwres/unix/include/lwres/net.h diff --git a/contrib/bind9/lib/lwres/version.c b/lib/lwres/version.c similarity index 100% rename from contrib/bind9/lib/lwres/version.c rename to lib/lwres/version.c diff --git a/contrib/bind9/libtool.m4 b/libtool.m4 similarity index 100% rename from contrib/bind9/libtool.m4 rename to libtool.m4 diff --git a/contrib/bind9/ltmain.sh b/ltmain.sh similarity index 100% rename from contrib/bind9/ltmain.sh rename to ltmain.sh diff --git a/contrib/bind9/make/Makefile.in b/make/Makefile.in similarity index 100% rename from contrib/bind9/make/Makefile.in rename to make/Makefile.in diff --git a/contrib/bind9/make/includes.in b/make/includes.in similarity index 100% rename from contrib/bind9/make/includes.in rename to make/includes.in diff --git a/contrib/bind9/make/mkdep.in b/make/mkdep.in similarity index 100% rename from contrib/bind9/make/mkdep.in rename to make/mkdep.in diff --git a/contrib/bind9/make/rules.in b/make/rules.in similarity index 100% rename from contrib/bind9/make/rules.in rename to make/rules.in diff --git a/contrib/bind9/mkinstalldirs b/mkinstalldirs similarity index 100% rename from contrib/bind9/mkinstalldirs rename to mkinstalldirs diff --git a/contrib/bind9/version b/version similarity index 100% rename from contrib/bind9/version rename to version From 04de7fe966366e5f82ce37b08c3602954945c8a7 Mon Sep 17 00:00:00 2001 From: dougb Date: Sat, 12 Jul 2008 06:31:08 +0000 Subject: [PATCH 02/13] Vendor import of BIND 9.4.2-P1 --- CHANGES | 4 + bin/named/client.c | 10 +- bin/named/server.c | 34 +- doc/arm/Bv9ARM-book.xml | 12 +- doc/arm/Bv9ARM.ch06.html | 18 +- doc/arm/Bv9ARM.pdf | 4498 ++++++++++++++++---------------- lib/dns/api | 6 +- lib/dns/dispatch.c | 708 ++--- lib/dns/include/dns/dispatch.h | 13 +- lib/dns/resolver.c | 48 +- version | 6 +- 11 files changed, 2596 insertions(+), 2761 deletions(-) mode change 100755 => 100644 doc/arm/Bv9ARM.pdf diff --git a/CHANGES b/CHANGES index 06b6052b9db3..43d2bd7af22d 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ + --- 9.4.2-P1 released --- + +2375. [security] Fully randomize UDP query ports to improve + forgery resilience. [RT #17949] --- 9.4.2 released --- --- 9.4.2rc2 released --- diff --git a/bin/named/client.c b/bin/named/client.c index b0e9cdda60e5..87dbdb859ce2 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: client.c,v 1.219.18.28 2007/08/28 07:20:00 tbox Exp $ */ +/* $Id: client.c,v 1.219.18.28.10.1 2008/05/22 21:28:04 each Exp $ */ #include @@ -1439,14 +1439,6 @@ client_request(isc_task_t *task, isc_event_t *event) { } } - /* - * Hash the incoming request here as it is after - * dns_dispatch_importrecv(). - */ - dns_dispatch_hash(&client->now, sizeof(client->now)); - dns_dispatch_hash(isc_buffer_base(buffer), - isc_buffer_usedlength(buffer)); - /* * It's a request. Parse it. */ diff --git a/bin/named/server.c b/bin/named/server.c index cd8bff1a4f02..8e0c66cca4d9 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: server.c,v 1.419.18.57 2007/08/28 07:20:01 tbox Exp $ */ +/* $Id: server.c,v 1.419.18.57.10.1 2008/05/22 21:28:04 each Exp $ */ /*! \file */ @@ -540,6 +540,14 @@ get_view_querysource_dispatch(const cfg_obj_t **maps, attrs |= DNS_DISPATCHATTR_IPV6; break; } + + if (isc_sockaddr_getport(&sa) != 0) { + INSIST(obj != NULL); + cfg_obj_log(obj, ns_g_lctx, ISC_LOG_INFO, + "using specific query-source port suppresses port " + "randomization and can be insecure."); + } + attrmask = 0; attrmask |= DNS_DISPATCHATTR_UDP; attrmask |= DNS_DISPATCHATTR_TCP; @@ -549,7 +557,7 @@ get_view_querysource_dispatch(const cfg_obj_t **maps, disp = NULL; result = dns_dispatch_getudp(ns_g_dispatchmgr, ns_g_socketmgr, ns_g_taskmgr, &sa, 4096, - 1000, 32768, 16411, 16433, + 1024, 32768, 16411, 16433, attrs, attrmask, &disp); if (result != ISC_R_SUCCESS) { isc_sockaddr_t any; @@ -2369,7 +2377,9 @@ scan_interfaces(ns_server_t *server, isc_boolean_t verbose) { } static isc_result_t -add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr) { +add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr, + isc_boolean_t wcardport_ok) +{ ns_listenelt_t *lelt = NULL; dns_acl_t *src_acl = NULL; dns_aclelement_t aelt; @@ -2379,7 +2389,8 @@ add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr) { REQUIRE(isc_sockaddr_pf(addr) == AF_INET6); isc_sockaddr_any6(&any_sa6); - if (!isc_sockaddr_equal(&any_sa6, addr)) { + if (!isc_sockaddr_equal(&any_sa6, addr) && + (wcardport_ok || isc_sockaddr_getport(addr) != 0)) { aelt.type = dns_aclelementtype_ipprefix; aelt.negative = ISC_FALSE; aelt.u.ip_prefix.prefixlen = 128; @@ -2438,7 +2449,16 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) { result = dns_dispatch_getlocaladdress(dispatch6, &addr); if (result != ISC_R_SUCCESS) goto fail; - result = add_listenelt(mctx, list, &addr); + + /* + * We always add non-wildcard address regardless of whether + * the port is 'any' (the fourth arg is TRUE): if the port is + * specific, we need to add it since it may conflict with a + * listening interface; if it's zero, we'll dynamically open + * query ports, and some of them may override an existing + * wildcard IPv6 port. + */ + result = add_listenelt(mctx, list, &addr, ISC_TRUE); if (result != ISC_R_SUCCESS) goto fail; } @@ -2468,12 +2488,12 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) { continue; addrp = dns_zone_getnotifysrc6(zone); - result = add_listenelt(mctx, list, addrp); + result = add_listenelt(mctx, list, addrp, ISC_FALSE); if (result != ISC_R_SUCCESS) goto fail; addrp = dns_zone_getxfrsource6(zone); - result = add_listenelt(mctx, list, addrp); + result = add_listenelt(mctx, list, addrp, ISC_FALSE); if (result != ISC_R_SUCCESS) goto fail; } diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml index e30ca3f490f7..a3f61c7c9f3e 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -18,7 +18,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + BIND 9 Administrator Reference Manual @@ -6067,7 +6067,15 @@ listen-on-v6 port 1234 { !2001:db8::/32; any; }; a wildcard IP address (INADDR_ANY) will be used. If port is * or is omitted, - a random unprivileged port will be used. The avoid-v4-udp-ports + a random unprivileged port number is picked up and will be + used for each query. + It is generally strongly discouraged to + specify a particular port for the + query-source or + query-source-v6 options; + it implicitly disables the use of randomized port numbers + and leads to insecure operation. + The avoid-v4-udp-ports and avoid-v6-udp-ports options can be used to prevent named from selecting certain ports. The defaults are: diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html index d829a177a3d9..59b9cf59a2cd 100644 --- a/doc/arm/Bv9ARM.ch06.html +++ b/doc/arm/Bv9ARM.ch06.html @@ -14,7 +14,7 @@ - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. --> - + @@ -3078,10 +3078,18 @@ listen-on-v6 port 1234 { !2001:db8::/32; any; }; a wildcard IP address (INADDR_ANY) will be used. If port is * or is omitted, - a random unprivileged port will be used. The avoid-v4-udp-ports - and avoid-v6-udp-ports options can be used - to prevent named - from selecting certain ports. The defaults are: + a random unprivileged port number is picked up and will be + used for each query. + It is generally strongly discouraged to + specify a particular port for the + query-source or + query-source-v6 + options; it implicitly disables the use of randomized port numbers + and leads to insecure operation. + The avoid-v4-udp-ports + and avoid-v6-udp-ports options can be used + to prevent named + from selecting certain ports. The defaults are:

query-source address * port *;
 query-source-v6 address * port *;
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf
old mode 100755
new mode 100644
index be27aa1fb0d7..586aaafd0e72
--- a/doc/arm/Bv9ARM.pdf
+++ b/doc/arm/Bv9ARM.pdf
@@ -1583,19 +1583,26 @@ endobj
 /ProcSet [ /PDF /Text ]
 >> endobj
 743 0 obj <<
-/Length 3152      
+/Length 3153      
 /Filter /FlateDecode
 >>
 stream
-xÚí[wÛÆÇßõ)ø(=p»÷Ë£¯9I[Û±Õ—¦y€)Xæ	I¨$×ýô]ØݸjÛȵD&'‘la0£ùÿ¸³³XlBý¿l¢4ÑŽ»‰q’(ÊÔd¶<£“kÿ³ÎXÌ44…G=¿<ûÓka&Ž8ÍõäòÓD*E¸ÚÌj-›\^ýrþâí›ËWo.?\üzùÓÙ«ËxVè™QÑžòŸg¿üJ'W>€ŸÎ(ΪÉÿJ˜s|²<“J%…³8ûpös¦ù¶é¾¾©–5NÁ›ùÇ‹þ˜×ÍzYíF÷½ËSQ*34Dd¤‘9"ó¾w½÷­“6†0_FvÎU[|..ÃsPvÒί?o¿ÔíÿÃçyÓ,ü´b<{Áã~Y™¸÷λ˚Ï8–­=¯¹Jªµ"L2Ûek7¶•4æk<=ý?®«õW_N¥|Ê%s”…¾âO0Ä>IPŒ‰L¨÷Ȇ„1Ê{6xÏÆûÛUjݪ/«zÙøI—3êèfU£¤„d“1R X)™80Rö¼gÇ\A‰¥®ÃT÷cîÞP›:¸j;oVœOõº^ÍêñÌ…“ß{¼ØxƒlN‡GEŸ^'R[LM²Ã ÂaÌì!ƒ¹Äpωa	w™Es}Ýî$Ë*ã‡<§­ç(yT»
cŠ‹Ñ†;PB1~OG.ŒÔ{À‡I¸Ói)>?÷˜èüvYýa
wÈe1'Àãj…q’‰ãõ¯2IÊ	§ÆRÚ둶߶¼¦¾«–aÖ;û\­VunÕÏrR)Ý÷îóºÚx´àÇ5«	é-†bð@ùÄø͹80xPïá<,´Sí	
-àñÉu³ÎÍt$%Úš;ðHjªBÅô–Â
xòI:
-O.Ü{_¡„±„I	*Ôá«U‹/ë:·ÐÇ}}Š°ŒMo¸ÒG|Ý3¦»%`ˆ¡å”ãÛzsq`(¡ÞJZ{z8(aüAP:<Ó‘Ì=¡Ñ'¤µ`ˆ!eÃÉÄ!ƒzÈ(I¨e¬eãåmµ˜n¶Õì·;Oßß-Kßbˆ©*b @)Ôxœ‹õž@ÐŽXåCv <›Íâ­Ð/Ú
víxÑ,Ú¢qºï9%®`ˆa…Á°ÈÄazOX(C,7ƒÚ¡:,~\ùöSåÙ¸˜jÊN·/æñ	,Æbx@Ôx?’‹ÃõžðŠ§ÄCwxü|[·/Ú=Ð
>PAs¢"æ­˜
-`ˆQuQã÷©åâÀ¨@½'*„ F»ÓQÑ=…¶…âòÂÑóuµÚ|ÚM*”a',b⊱†P‹L¨÷„gĈabû¦´
-‹/ßuß¼‹í¹b¹:.B¶ŠY†P
5¾c?Æê=±@1”
-‡ëXx{3xÒù‡¯›m½LB»Ý•’Y|†Þr¾£CªÇµNP,/0Ää…	VãK¹80yQïQ^æÑÚÉÁúõÅ?ö‘‡5L?ñÆ!樔hˆ0Ð! Bî=`Ñ~®7 €u¼«×óæj>‹~^múU†]Wñ{µh?ÓßÚäÃ"’TŒ0Ä€"¨ñÍ„¹80Pï	#ˆ¦Ãæ€ñèÍM³h®}“`„9=Ô$OHÈa1!À#j„’‰#õžÑŒ(#‡eBô„ÜcËàÆO~z˜»º%	åÌí_ÝVÇ­Á1¹ÅèC(žßlš‹CõžÐ‘Ž(ɇõEv輿©ûæámwq£/¶8ÝZ•2WÌ0ĸ€Ê¨ñ§åæâÀ¸@½'.„!jØW0k=¿íŸ¯¬öa8e°ôé,f%Ùa¨±0RöƒÀ@Á\'N¸"ÒÜéPtÊóÛùb;
¯6Ù€~e¾ú´{AÜñïfÕ®ãån™˜…b}!&ð Ëã/rq`£Þ“ÆL)ïô &§ñ«åÍökzOV{ECšã¸~“TŒ0Ĉ€ ‰Cõž ŒH¦Ø4ÁìV˜üäÐO"ç³
|vš³ü/g†„Óì0 ãëÏ™ 00ב눰RHp	Ï®®vݪEØé0K#ü‹jöy7epZ?™C6JevˆÌƒ\ï}ËÈŒº/Ÿ2D(>î‡ÕЗ÷LI=#úà}ÒÜ<å9ãèÛ¬úD¿Ì*Ùaﲂ2Žó“	{“æ:¼@ÁAó`Ÿû<çî)¬Aôù,/K0CßÊ’´RÈ;YîF°‡H|ï”;/möe$þ?FœRümpz»±lo/³#;³¸¥Äµoä~®+ú»2‘ÛZvÈÿ]CJƒendstream
+xÚí[w·Çßõ)ø(=ÅýòèkNÒÖvlõ¥iÖÔZæ	ÉUI*®ûé‹å.€Y;ÚȵD&'‘líìŒæÿ#ì…M¨ÿ—M”&Úq71NE™šÌ–gtríöÃ뙆ƒ¦ð¨ç—gz-Ìħ¹ž\~šH¥W»“YB­e“Ë«_Î_¼}sùêÍ凋_/:{uÏ
+=3*ÚSþóì—_éäÊðÓ%ÂY5ùâÿ@	sŽO–gR	¢¤áogÎ~Ž'?Ý™fF	šg~.À¯ÒþP±‰QŽháÒþ"’XÂ.¦ŒSzþC½ª×Õv¾º¾˜rEÏÿ\Ý\L­æçäbªüï‹tî;Ù]©©Ïº:åsO›õõ¤ûæ=T+ØM¡á¾Zûçoõâz/Ž ~.ŒÔ{`E¢)Õ‘Þ³òa~½Š l?×Ý7oVþ;Cõ‰”˜Õbb€!FT
#&Fê=#QÚºHŒè‰yѬþA)¿¾]Gn>Ôëßëu;Æ0q¬¨Œ2òXÌ0Ä:q3ÎH&ŒÔ»a~ÈѾ,!IÅC(‚¿˜0†ê=!`ÑtØ0Þ!°½¹i͵oŒ0§‡šä		9,&b„@0B2q`„ Þ!šeä°Lˆž{\2¸ñ“Ä…Ÿæv·$¡œ¹ýÝ-aÕqÜ“[Œ0ÄÐâ©ñ‹Msq`è Þ:Ò%ù°¾È÷ï7uß<¼í67êðb‹Ó­U)sÅ\CŒ¨ŒZn.ŒÔ{âB¢†}S±æÐóÛþùÊúh†SKŸÎbV’†
+k|ë+
+æ:q‘æN‡¢;PžßÎÛixµÉô+óէݫâUÿnVíú·1îQ^-³P¬/0Ädy|ó"&1ê=iÌ‘òNbr¿ZÞl¿¦÷dµ;ÒÇþULR1ÀC` ÂøE.Ô{B€2"™`Ó³[aò“C?‰œÏ6ðÙiÎòcÜÎ	+¦!Ùa0@9Æן3A`(`®#	Öa¥à:ž]]í.t«áJ‡Yá_T³Ï»)ƒÓúéȲQ*3°CdäzüÚ·LˆÌ¨ëðò)C„âàã~øQ
}yÏtÔ3¢Þ'ÍÍSž3Ž¾ÍªOtñˬ’ö.+(ãøÄ2A`o²Â\‡w("8hìásŸçÜ=…5ˆ>Ÿåïe	fè[Y’V
+y'ËÝö‰ïñrç¥Í¾ŒÄÿLjSŠÿï¯
No7–ííeväÊ,n)qí¹„ŸëŠþ®L䶖ÝA òÿ?J~endstream
 endobj
 742 0 obj <<
 /Type /Page
@@ -1972,7 +1979,7 @@ endobj
 800 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 112.292 511.2325 121.3978]
+/Rect [499.2773 112.292 511.2325 121.2483]
 /Subtype /Link
 /A << /S /GoTo /D (subsubsection.6.2.16.17) >>
 >> endobj
@@ -1993,7 +2000,7 @@ endobj
 803 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 76.197 511.2325 85.3027]
+/Rect [499.2773 76.197 511.2325 85.1533]
 /Subtype /Link
 /A << /S /GoTo /D (subsection.6.2.17) >>
 >> endobj
@@ -2016,23 +2023,19 @@ endobj
 /Filter /FlateDecode
 >>
 stream
-xÚíKs7€ïú<¤j¥ƒ°x€ÝÖ^v”rd¯$W¶6É&ÇËâPáÃŽ÷×/†`š"¦%8~ÈJ‘’¦§›Ýß4ºÌõ¨ûõŒ"TXÙÓVE™ê
&;´7r{¾Ãü1ûá }xÔáåÎߟ	ݳļè]¾ç2„Ãz—Ã_w^ž]žœ]^ìý~ùÓÎÉe<)T̨¨ÏøÇί¿ÓÞÐéÿi‡aê}p?P¬å½ÉŽT‚()DøÍõÎÅοã	Á_W¢©¢„!Êpø$\€OÂ8'Æjg²¤îoõG)wŠëâgàpÁˆ1T:õa‹Ùr¾(‡ûïÊs0<·2ÄrSøƒ/ýE9)«ÅÞ>Wt÷ù¬?™ôg{ûFÒ]²·¯èx‘Ö~ŠÜ­€+nHÁ)k}º¡Ù¨×¼9‡1rûPp3f›ç_Ŭذ#0²#ÕÞ#5)´f‘N¿(1Çåo”òj¼O«æ7ýjؼy=ïÊú­x˜œt\˜
ÄYHÂT{ˆPDsf[@Ø€¼—`pé>Vw¤%ăI%Ÿ3¿Ü¦àîl˜€ ÓZ8˜v`0¡Ú[˜¸ º(Lÿ"0Ýe
-[|ìtBÜš

Ä Y›î†&a
ª½…†9+ZhÄÐüoZ•ih¨¶ú®dÌcN=wÁÜ
Ä`Z§é†)aª=ÂTXKŒ*d“ü"0Ý´bgØŠnÍ…
-"Ь…MÓNhRv ÐàÚ™’Dkm{…ÑÄR&4„¹¦Çó¿5«°^îYºûñ¦œ;_É^Â|ý¬]˜
Ä!ÂIØ‚joÑŠXY0o9ºîÏ‚òï	‰/ÎÉ]¸‡fã1\`À4ëÆ%a†ª½Å¥ÄZj!.âv>yyS5:|›FbÜ‚ç²¹‚02šws‘°ãÕÞr¡8¡BÈ…l¸8þXõ'㯠n†®ØhÞ¿š^ãzÔ‘J=Ú°Çd‡ba‡Ž×²;ì	;°°£Ú]ía½BRB

ýKŒ®e‚gãk÷N)ûÝ º„
aÈfbŒÁ0kÕÍXÂŒ1T{Û÷83W¡ïuýÊ8]+[kÖ¦o›×ór>]Îö˜Ù”á7ƒéêÃù­†æ—«Ò÷8‹ihqBQ|UN\«£Å۶Ɏ7Äâ
=ŽÅ;aoT{;”°‚0MEïUÄÅÝ¡5‚=ÉÊ"8, ˆá‚á°ÃÕÞâ@]CÂ8pƒK|·üs±ì_74”Þ¬`(çó8yÓÂùª—)í ü”MÄ(€qÐÝ3©);0
-PíqPÖ•”ÊÚH÷ƒÀñx>X&Âýó	B~Óðë¹öèÃ\B  BÈZŒt÷ôhÊ„\{Kˆ¡DPi"!ÂrQ.ãjäGõË+䶾Ìç'x8› ˆñ#¨m7?	;0~Pí-?…!BÚØËÔí늟Óê}9UáÏý››ÓØçœÓWïÝÁ܈m+½˜ÍÄQÂIØ1‚joQ+ÛVDyF^.®ÊYÃíæwµ¤2nÊ’Ábü¾nW„dOy
-^ÌfbŒÀ(aŒ$ìÀAµÇzUII¤°¼e$¶/®¥L¬Ø®f2,ÆýðòüôùéYbÑNj"‰þ¸5¤öö­bu[th6.@ÃÌt¯¿¤ìÀpAµ·¸N¤‘àÂsp9=;zñúø$µ™MZˆ.^¸x|y%¸2 ˆC…’°ÕÞ‚Â)q¦XŠÈÅU¾©1Òv@¢¿Í´ü·+^‚‹³‚@0„@	;0€PímñB€:Tøâåðôì8T·óE¨cÚêåäÏEYÕö?\åÂèî"‰Ó…U…mm?TÌqisƒN|ᚇºð¤zßT†ÓªÙ ,
-ñtb'WÁóÙ\AŒ+YŒ«„W¨ö–«º'5”E®ÂRßëyœyO· ®1–…Ô7ïLkoãgËjÐlu—ú)¶P·gC1¨`X1¨v`P¡ÚãðÊ$±\ú¥É¸Q­skb[ÞjU<ñÅÁN`‚O³‚00f0	;0`6´§º aëù	çªñ]Ðåclw6]¾¹.çWnüªóQ—{âîÛì@¤ÙY·¬{<âŽM­©ëG7z+?E{£édö]¼j†iç™I=M 嶵ɾ¢‚—s/( ‡\Ok1D¸Ù4ÃS‡tQXB­¿Óø
}«µõÅß|¯\Mýíg¦³wîºúgóÓÕôCófЋíÍK}Ú¨ÙèsötÎpÕ§ýà«ÇÑ¿\*gæ·Ñ'ÙÑ‚X¸×|ŽÄ;apT{ÌJ׫ú^zUÁÕ	ã´4«‹ùXÌÅݸGWýj´VãùÁx6S’gËÉ›z†Ú™ñ
-ùè¦l€ ÆÀZv` Ú#Rfü&Ö\¿Ô;%Ú«öèÖuý¼ôWñåõ»h¥ÜŽ÷B)x;% ˆ¡´M¥„JÚ“Õ„~BüÀerÎwnnÊj8”ÝóÍQìÞ%ÀJ0hŽéÞ`O‡ù`CkòrbŒ&TãƒzÕÚyað®š~¸.‡£:¥Ö{à¹ÝV^ùWOpnöÕ±«#&aFª=–_ÜÖó½Ftjxl}	5™öp6.ý®éÇóÅtöq}+uˆÏ.nØͺPAÙãA!:+(ˆ °…”
-¸öD¸ÑDRÁ<	¼I"Ï˪œ…
-+ù¼|ëGê*ÜmsZ½]-¯¦Ë
-û´ÖŸ¢ï²Á‚06¶{S@ÊT{›#´"Òï½>h&óëqúê}á¯ùá0Ü[î¸ûÍÕsîŸ{u‡Bo·7f3ÒÊaˆ€ a„l‚©Ž‰£DZøMâ8¿¹OG³þÍÕlj8:\,G£²~Þ^H(ý¡ëîZçO$mÏe#1&`d0(v`T ÚÛ´¡QB‹7ÎË?–.ôMàÝ 6DL|™X9v4o€0‚?Z3º, ˆC‚‘°ÕÞ!l- "Ü$Õ¢œU¡¹?žõßÖXË·É}˜	^ÍfbÌÀ¨Ùîµ–”3¨ö–®ë'"ŠÈŒh˜wÕOK:ÞÄÙÞ¦Qì©dà«l€ FŒFBÂŒ„
í©yNÑÔ6Öc‚Øý¹_Åû»oú#dº'Jßwº
- Ó=kVÙîûßáé0WlhM\Ì
-¢•lâp¸V…ÝŽG*i~?7¿Æxä^wP¹îÖâ@–²
×a3Œhk™‡7°]MëNé-m_6A
-atûÒæåö¡`Š¶Ûç¯Îhw‘˜2Ã
Uq+,1þþÌÃÕ`_§¶j>/õ“ÙGõ3y¤T[¦>LÞÝÙ,µrJ ˜Œv?w.a¦;r¤41îŸI®4ªÕãoJbËÐ_e(¸:" ˆQCÉhwÝ™2ãUA’ŠX!
-’j@ªú“r¸?¸*ïÓêí^ýP¼-AŸLPðq6A@#ÆÑîê”!A¨úHÄjã;—úÖÊ[ùT¤¶9èÓ	
->Î&bÁ2Úý£”!A¨úHç„r>
r°UÛ²û+”Ý!Ù„AŒ0cƲ;aFª>Æ(¡…	]ži›UÃó.3Ûöî«ã’Äpƒg¬û–Æ”!n¨ú€›5„±Îü—¹	ÛyCcÍ!YÕY‰‡°úÛVôöFÄ/¡S.‚­ @€±îš~Ó>Lq@ÏÄþ¡/tyv_úL·_¶š`Ll³Úg%)x=% ‡°cÊX÷×%¬Ø )~ƒå~}«+—É'¸ÿ±ª¹¹á¯}cfû½žõC¼Œé¸_BPK§²'‘¾JPȦíÕAÀòÿÀ‘'cendstream
+xÚíKs7€ïú<¤j¥ƒ°x€ÝÖ^v”rd¯$W¶6É&ÇËâPáÃŽ÷×/†`š"¦%8~ÈJ‘’¦§›Ýß4ºÌõ¨ûõŒ"TXÙÓVE™ê
&;´7r{¾Ãü1ûá }xÔáåÎߟ	ݳļè]¾ç2„Ãz—Ã_w^ž]žœ]^ìý~ùÓÎÉe<)T̨¨ÏøÇί¿ÓÞÐéÿi‡aê}p?P¬å½ÉŽT‚()DøÍõÎÅοã	Á_W¢©¢„!Êpø$\€OÂ8'Æjg²¤îoõG)wŠëâgàpÁˆ1T:õa‹Ùr¾(‡ûïÊs0<·2ÄrSøƒ/ýE9)«ÅÞ>Wt÷ù¬?™ôg{ûFÒ]²·¯èx‘Ö~ŠÜ­€+nHÁ)k}º¡Ù¨×¼9‡1rûPp3f›ç_Ŭذ#0²#ÕÞ#5)´f‘N¿(1Çåo”òj¼O«æ7ýjؼy=ïÊú­x˜œt\˜
ÄYHÂT{ˆPDsf[@Ø€¼—`pé>Vw¤%ăI%Ÿ3¿Ü¦àîl˜€ ÓZ8u7L	;0˜Pí-L\]¦…‰˜îÎ2…-¾?v:¡	n͆bЬ…
&a
ª½…†9+ZhÄÐüoZ•ih¨¶ú®dÌcN=wÁÜ
Ä`Z§é†)aª=ÂTXKŒ*d“ü"0Ý´bgØŠnÍ…
+"Ь…MÓNhRv ÐàÚ™’Dkm{…ÑÄR&4„¹¦Çó¿5«°^îYºûñ¦œ;_É^Â|ý¬]˜
Ä!ÂIØ‚joÑŠXY0o9ºîÏ‚òï	‰/ÎÉ]¸‡fã1\`À4ïÆ%a†ª½Å¥ÄZj!.âv>yyS5:|›FbÜ‚ç²¹‚02	;0.Pí-Š*”\Ȇ‹ãU2ø
+âfèŠæý«éõx0®G©Ô£
{pLvØ vèx-»Ãž°;ªÝÕÖÑ+$%ÔÐÐ߸DÀèZ&x6¾vßýò K؆lÆ€ Æ³VÝŒ%ìÀCµ·}3ƒqúQׯŒÓµ²µfmú¶y=/çÓål™ÝA~3˜®~1œßjh~¹*}³˜†'ÅWåĵ:Z<¼iÛè‘ìxA,ÞÐãX¼v`ñFµ·C	+ÓT´ñ^E\ÜZ#Ø“¬,‚òq‚0 º{?e†ª½Åº†„)pà—ønùçbÙ¿nh(ÿ¼YÁPÎçqò"¦…óU/S<ÚA ø)› ˆQã »'¿Rv` Úã  ¬+)•µ‘îãñ|°L„ûçÿ$„ü¦áÿÖsíч¹„@A„µ!„¤ì@Áµ·„J•&"ÍbÀÀ˜aÀ$ìÀ€ÙОꂄ­ç'ü«ÆwA—{Œ±ÝÙtù溜_¹ñ«ÎG]î‰g¸o³fgݲî;ÚàéwljM]?¸Ñ[ù)òØëM'“°ïâU3L;ÏLêi)·­Mö¼œ{A9äzZ‹!Âͦ>˜ê8¤‹Âjý]˜Æoè[­­/þæ{åjêo?û0½s×Õ?›Ÿ®¦š7ƒ~Xlo^ê{ÔFÍ^@Ÿ³§Ëp†«~<í_=ŽþåR93h¼>ÉŽ6Ľæs$Þ	;°€£Úc¾Pš¸^Õ÷Ò«
+®N§Õ ‰X]ÌÇb.îÆ=ºêW£µÏƳq˜’<[NÞÔ3ÔÎŒGPÈG7e31Ö€0°cÕŠ0ão|4±æú¥Þ)Ñ^µG·®ë祿Š,¯oÜE+åvì¸JÁÛÙ(A¥µh"(%ìÀPÚО¬Æ¸ ¼ðâ.“s¾{psSVÃñ ìžoŽb÷.Á€V‚AsL÷&$x:ÌZ“—cD0¡Ô#¨Ö΃wÕôÃu9Õ)µÞÏí¶òÊ¿z‚s³¯ ˆ]=0x1	;0rPí±ü⶞ï5" SÃcëK¨É´‡³qéwMÿ8ž/¦³ë[©ã@||vqkÄnÖ…
+Ê
+ÑY¹(@A…µ` (¤ì@PÀµ‡$Â&’
+æIàMy^Vå,TX1Èçå[?RWán›Óêíj!x5]Vاµþ}—
ÄÀ€±±ÝÛ‹Rv`` ÚÛ¡‘~ïõA3™_§ˆÓWï͇áÞšpÇÝo®ž;pÿÜ«;¼z»5 ¸1›‘VC	#dÓLuL… ÒòÀ‡hÇáøÍõx:šõo®>¶HÄÑáb9•õóöBBé]w×Ð"8"i#x.	 ˆ1#ƒA‘°£ÕÞ¦
ňº\„¼q^þ±t¡oï°!bâËÔÀÊù³£y„üiÔšÑeÙ@Aˆ„¨öakà~ ©å¬
+Íýñ¬ÿ¶ÆÀZ¾mLîÃLðj63@cFÍv¯µ¤ìÀ˜Aµ·Ìp]?QDfDÃ¸«æx:X‚Ôqð&Îö6-ˆbO%{_e“1`,0v`$lhOÍópªˆ¦¶Áð°ÄîÏý*Þß}Ó!Ó=Qú¾Ó=P™îY³Êv?žsņÖTÁŬ ZÉ&‡«aUØÝáxô¨’æ÷sókŒGîu‘ën-Þd);Øpí6ȶ–yØxÛÕ´.à”ÞÒöõh¤F·¹/m^n
+¦h»}þ:àŒv‰)C0ÜPõ·ÂãïÏ<\
öuj«æórP?™}T?“GJµeê3ÁäÝÍR+‡¡‚Éh÷Í
+	+00Ý‘#¥‰qÿ
+IÁë¹(9„%SƺŸB›°bƒ¦ø –ûõ­®\&ŸàþgĪæ憿ö™í÷zÖñ2¦ã~ A-œÊžPDú*A!›¶WËÿ¢P'bendstream endobj 806 0 obj << /Type /Page @@ -2094,7 +2097,7 @@ endobj 816 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 674.8901 539.579 683.8962] +/Rect [527.6238 674.8901 539.579 683.7467] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.24.2) >> >> endobj @@ -2136,7 +2139,7 @@ endobj 822 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 603.1591 539.579 612.0157] +/Rect [527.6238 603.0594 539.579 612.0157] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.1.2) >> >> endobj @@ -2185,21 +2188,21 @@ endobj 829 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 519.3733 539.579 528.3296] +/Rect [527.6238 519.3733 539.579 528.479] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.5.3) >> >> endobj 830 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 507.4181 539.579 516.3744] +/Rect [527.6238 507.4181 539.579 516.5239] /Subtype /Link /A << /S /GoTo /D (subsection.6.3.6) >> >> endobj 831 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 495.4629 539.579 504.5687] +/Rect [527.6238 495.4629 539.579 504.4192] /Subtype /Link /A << /S /GoTo /D (subsection.6.3.7) >> >> endobj @@ -4820,22 +4823,20 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1244 0 obj << -/Length 2446 +/Length 2371 /Filter /FlateDecode >> stream -xÚÍ]sÛFîÝ¿Bo¥nÂÍ~“›<¹±sçꤎúÐkû@Kk‹c‰TEɾôæþû‹%EI´“Žs37š—X,ÀX#?1Ê ãÊéQæ43\˜ÑtyÂGw0÷þDDœ´EJûXßON^_¨l䘳Ҏ&·=Z9ãy.F“ٯɻ¿Ÿ~œœ_SixbÙ85–'ß_^ÄÑã݇«‹Ë÷?_ŸŽ3L.?\øúüâüúüêÝù8¹°^F -O,¸¸üÇ9Þ_Ÿþøãéõø÷É'ç“N–¾¼‚+ä“_磈ýà gÊåfô/œ çähy¢bF+ÕB'ŸN~êöfÃÒ!ý•3“Ël@R )Ð8fL¡ËÅbœ*n_7 cl枀U±Œ Æ¯üš uE°U½ÞÄ(‚ÜÖ¥¨>Óàòュ¹b6[Ežø¦ñ MþÆ ,7óˆ@À¦¬îZF€½Ù´Ëfq¶žÞû ,¯ð¢šu\Áq€NR!˜3F‰GáL"¤Ò8ÒI}Kâ G¼!Òf^Ä…e„Tu ¨èÔ„3+Züçò_4%9of7ù›7¯•$ÐNX\ÒøU±.6žæHª¸OP"B}1ÓhYl¦s?°Ç:Cµt89“BÎdìdR“é.‹{O£À>Ú³Åq‹²ÙøŠÆu|†SÅi.€vÛ¿"ȶñȸ¯ëY_ÇÙQOë*EB–óäßô¨êÊ¿¥áÞ=+: -\ÅZè\Þ¶lG\ÑÕ’å`ðüxÇcºÆ²LX‘ëÕ¦l…ÆãZZùi‰Gìg¯žQ yÔ Uɤ÷fVp -ÐŒk—N1h ËÐŽ9è짭_G§@H ëP¦ 7U+Žê‰£ (ÎjßTßmh⾪p‹ªy$\Ö´¦ ×?¶¾A5¢£fà5‘H 9„€Ìâ’F*1æt| *SÒ´ç(¥M½]Oý€Ài‡¾ç:»Åxdm”ÊîÅš¡(ƒóì<Â(êÁ Ù¢Ãâ$2Tz`=µ&K.Z„ŽØ¾Š¤jR7ÀÐP_]ˆÂ)[NÚÅ1~ë¦ âH7öŸf³,ß³}FG¶q¼ûËUD/ž43•1‹ÖÿÊf€’c™6&bümˆ5°tÓr†´WZ—Í}u©´*AÝâ3ø©…è¾,7òQRNî_$ˆvù‘föŽ¸ËP0ánhÓŠsyuzvv”îà.ÙÈÀm›Ki¾&Ìåy>œ¤Å´O’n÷>{FHf2ðè ¹<½úe@©­ÓÙN«ti¤Úp+ó}/‰þªtrƒ¦¨T°ü)‰aûÈd?¼=Öà1ƒL-³ç¬Cp¦µµÏšG¦mg¸kb3x -°¹3eLð®Á“ë%!n«Õº|(þ.x2ÌFïVº“ZE©u_êÉ|Èï$ø‘ãY“Š‡ºœ¥:ÝÎV))XåŽ)­ÍqŠ2ä? Ž Ñ’«fC*’FíoiÖO‘u`ƒ{®ŽvŸgÉ´¨h€ã“Ž0°ã3æ9!pÉ܆Xqnê߿ðÓ dr‘¶_oŠ2ÒŒ&µì4 -Q -øå~ìšùÛb»ØĘü׿ùrz±w„d¢¦Fn?#‚5`?ÊìÌkÔnÞ›híw$C?=^Çže¦¿æm -bOŽzûìen`UàÏö½}ªrÑ$™–_Uº@Èq!"E.8‘\1«á˜ž¤Eë8ЊÃvÅAìJDå t)ª¬Ú -§Sm0íL@i¨­‚{CåAÖ«ž«EŒ,FÉ6–€#S„™œjhj¬i°/Ç]Ž[þeB -æ!õÆAÖàõåRŽÎjhÔª%œö)¡àè{.áÄÑpŸ:!H(ôp ÝÙ ¼¨~ŠJ³èrøÜ´Ëö#€DÒ‚Þ{I¦‘ çXò¤Í¦ö8²ƒRJ¤Êa»ÈE„ÜŽ_nj¬~pôóÙGÂŒQ R.X¥î¾«LÞá-ë–7Hƒ {‚Ç+Š?7Èä6£XŽ!ò*lù(Á‹Õj’.œ««Åçˆ^$ð‚€Ã=0‚|`˜¢¼xDÄ…ü7ˆåÏa†yH–'Á0gW¾ãD4»{ÁìÐ!ï€cì»Â˼ ýØ8¨}Ò]—áž!6Wö›Ð‚˜d3iÿ‚¤íŠ§âˆ„‹ØeÆ~!Ž(Xdß4Ž(Hèd®þq¤Où™8¢¤`R;XþT/Šh€˜5å<[`‚†TôÀÀGp£5A°,¤Q¨rqÐlW=Ç ¿¡@e.ÖV·rØ¡^øÒÅ -|A¯èv4õ]þÿ°aÜô)éŸòË çÿßE³j­¿ i\ñ”‹€I1¶ò¼ŒeVÉoé"XjYéÄ·w‘>åg\D -…GC–OÞSP.M=p‹jª¶JÙ@ÑÜb”÷á}þ*…ŠAí*œ.Åß¿¥¡fÈÛ: ¼­¼ýÒý ¶ÂU[~=íý~™Ñ|{÷èÛ!Rv¸ìmÑöïxÌncO,‹=±ÖUìÓMÆBˆ$œ_EgŒ¾$`»e^ÄöËÒOçEU6ËøŽVè -ŠÔ°‹„m0 Q1-Ç‚æ&ôyôg`% u\ì÷— fÒ`QBùgëj¯?èËz[EDìf‡u1£]Bëz xööDmD–û]É]Gós³ñKÌ€À’'-ô¶^,êGªêpUW>bqYVìW„µ]×PƘb·`W&—¿Ðx ;w¾‰I8„éôAÿgî+”œÚ"Vû¾™tZ¯>Óˆ¬Q´¦Ê;“籃)‚¡R[&Ï£ÿ„L ¤BßÈ…zTv²ÚØOŸF»~o¿ïâNWŸ†Rqb}ZS70t"v"BÑñdî«8 – O_5ÛV­p}Dmã HNå€#ÙêyDC^â\ü,à°ë]N„åÕµyï|$RÑZ±X`½„À®X¥¦ÛPù® ̻ËûÅ%w±Ygp5årØ)ܵ¹tY˪ި£Žiûõò˜õÿÔ–F{endstream +xÚÍY_sÛF÷§ÐÛQ7áfÿ/™<¹±“s§uRG}¸kû@K”ͱD*"eŸsÓï^`±¤H›rÒ±nž¿?ûðëÅñÔéhvöñœÈ§ïO/NÏßNc‘ëep`Áû³ŸNiôáâøçŸ/¦Ì~<:ugéŸWp…ùrôÛ|²€cÿxÄ™J3¹ƒ/œ‰4•“õ‘6Š­TKY}>ú¥Ø›õKÇìgTÂL"݈¥3 I™U0…¼+V«i¬¸‰ò2»\å8ÖQs±ÌÖTçÛÛ|KÔª$Ú¦Ú6D1Š(Ë*°då= Î>ÝZšË‹íT$Q^×yM“¿sÃïŠæ:0±.Ê«VPo1Ïü²E˜­æ7y Å+ =+Vp`“X–#ýIG‘šHH¥q¤£jIÒ GtC¦æ: ‹@)«–PÒ§7ÎlhñïœËÿÒ”ä\¼Y\&oÞ¼V’HûÃâ’:ßdÛ¬ÉiŽNöñFDjžÍ¯i´Îšùu¾;`Ou†féxR¦¸Õžg6MeT‘뮳›œF^}´w‹cH¬ŠºÉKWáÓß*Èrž´ßþQvuŽ:@ø¦=ïë42^#’WeŒ‚,çÑÿ裬Êü- ÿ|Kr^ r”`Ò +çåœ-[µ¯èñJÉpxþxÇÇreNØ40W›¦h×ï­´Éç^q¾xõ„)¢žiJ6rofOÁtUtýZÂ2ôc6ûe—oƒàc¢Æm(-xPª:ªö8ªw ¸¨òºüGC7eu÷€7+ë;âbEk2úúe—×hF TQ„È!T—T 0H ˜Óé1j 2¦¤iïËKŠëj·ç#Ž;öAèìoñÈÚp*;Àš!”AÀ<à?4B=Ô; XœD…ŠT­qÑû–!w^Q™hè h/BÒxŠV“vqÀǶy}ÛŒû¾3Ì:— |ŸÑ€o<Þ@kÈÀ*°gÝ ÜT'¢¿¢‘”2§ ÿSqmZÍA3¥mQßx¨7VÚ?}œZ@÷uÑ4£d.œ&d;ûD3ƒ«Fî2&ÜB†6íqÎÎON†§‹›ŒsRZO Yš$Éxwã¾HÊî}õŒÌ8nö;£–Ççÿ1*à¢MµÛ[•’F¬ gR‚¹ƒÿˆ~‰ dt‰®¨„÷|¬”Œ÷‡'’­¥|ÄŒ*ù)çœiÙAò¸w8édë·[ÒÒ +h¹÷e¤˜ÜB WëpŒr³-n‹U~åfCpèܭ/}L „Ù’ô"¬Ýp­•ZÉ[SÅrÌ0j$<  (Í+—@BD`^p~Ö‹W>¯ò2ßf«Õ=ñ×wÝ + +¦{bXõ"=»jwñ˜œ„ìµ \-iŠùn•EÂñûº!"Ž€TÌcè|¨"í!d†\nS'öW8â@Bʤ?ˆfÀ>D³J +©¥ÏAR¹¨XoVżhÐlR%h6¬~kš¥¼d,eü+Fœ!÷)¾¢u‘NÃ9Lཀྵ«<[Ô­;$,±p²ApáõHD÷²Îç»ï=Œmà¦;$†6dô&PªÖ]¬e·U±ˆou¼[lbTn —SÎøîQ×¹€:\É¡Xû7Ä»ÓéæYI‡ºÌ‰@Q€”Ö¡„¾Åœèíµ=ôPB ‹ƒÕ7Kòýu[‚­òy­}çÛ&+B­å5F3 +îÍ艋|™íVM(î(5äo¾]¹J _§ö2àDHÃŒ„Â*F¯Uf]“öÚ{-4NdÊ0<^dXêœé¯yÜÉ)¦tš>ëë§ÓV†ô#õä¤71TÏ¥#«¼~¶¿èí¡¦Xkˆua¾+%jÈf©O¶cIn$”y*»Ò2¢ÂÐ/€{}^»ÇeEè~ïÜYÖ;· 4ä2a*¡›8ï±Z„œeTŽát_±•ÑéC»€H-@3•hÈ7ž|Kr¸UE<½±?éÞžðúl-''œgÒ;R+7î ö'‚kï¸„Ò +pu¢9¦)ê|pšt.ƒpÞo|hã +?»ä`û8 ”†{Nû¥96'ùåTbp†e}…,”-Jë ˜ß.èA ”åTqŸïñËe…=5Ž~=ùDœÓ Íá‚%F«a”ÌÞaí—èV7€_€~øÀš1±Ñ%*¹C`OB“Ì¿!¤D¢gH!>cÀ\UúL‚ìQ¼.Hx¸âT™ã:äÕ2fxÈû°Ahª5ÿ0ë’À ;1_Ùàw¬lHfWÞ ¹;{è‹:uÌ‚Z“~> endobj 370 0 obj << -/D [1243 0 R /XYZ 85.0394 650.4851 null] +/D [1243 0 R /XYZ 85.0394 644.6312 null] >> endobj 1246 0 obj << -/D [1243 0 R /XYZ 85.0394 625.2941 null] +/D [1243 0 R /XYZ 85.0394 617.8313 null] >> endobj 374 0 obj << -/D [1243 0 R /XYZ 85.0394 171.1138 null] +/D [1243 0 R /XYZ 85.0394 131.6963 null] >> endobj 1006 0 obj << -/D [1243 0 R /XYZ 85.0394 149.3849 null] +/D [1243 0 R /XYZ 85.0394 108.3585 null] >> endobj 1242 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F62 995 0 R /F63 998 0 R >> @@ -4865,26 +4866,25 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1249 0 obj << -/Length 3623 +/Length 3641 /Filter /FlateDecode >> stream -xÚÝ[Ýsã6Ï_á·sfÖ<~ˆù¸Ýf{é\w÷¶étîÚ>(¶œhjK®eošûë @}YvÒ¹›¹™NL‘ ?€¨¨™„?5³©H½ö³Ì'ÂJegËí•œ=ÀØ7WŠi‘hѧúêîê¯ïM6ó§:Ý­{s9!S³»ÕOóThq 3Èù»Þß~óÃç·×Y2¿»ýøáz¡­œ¿¿ýû µ¾ùüö»ïÞ~¾^(gÕüÝßÞ~º»ùLC)ÏñÕ퇯©ÇÓÏ™I?ß¼¿ù|óáÝÍõ/wß^Ýܵ{éïWIƒùíê§_älÛþöJ -ã=ÁƒÊ{=Û^%Ö›{6Wß_ý£°7^”Ÿ’B›TOP›žÖ{;ˬ©!`^á€Rõ(•Æe¸@ Ù4õ¢ªåú™iû³Z%\ -=D»)›È(Õó²Á_5(¿wño>±d¦D–¤)Oóïº*&ÖÒ UŸZ&jù¡ØÕá NkçåV|*7Z¨þRì÷媠§Ãc1¹WpJßLjÁ •´;yrZ¨ÌÚ!ä`vV< Œµ³0 Òî ²ã†d­ïnßÿ“Ú[ØAþöOëzOÃcÎĨðFÉùÝ#Oµ*ÖùqÃe_áÑb»;95åa#Êj›ÿ¾8ìóªYA½‹C¹-e5fDY)¬»ÌÓL°1€ Ú¦Ê ù¸­îëcµ±»„M[‘µÍ|íæǪ*«ÞÔÕðM¤àì¸U6ÔÚæÕ3½¹-«ã¡ànB¶îã:Å~[.T™^U6ÄT¶·z*”– ´¸dDƒ¦æc}Ü7¤íát ‹r{ÜÒ×|s,†3kÇËæϽYiF+^DRšj‘D.#©OuI-Õ$’ÊÕfII&œ’ö2'-Õ+C4Á¨WnÈK‡&Õ¢I Ѥ¿’ –Š¿»À{ý}õ¢§ ²T‹,eQè×jÎà‚g—bp©¸œqº=6ÔWz[ªÃÖÿZ"•Ô¿€¬Žè°˜è¼‡ª‡S• -¥¼ºÈGKtÊÈV)èI"H{œ|<V‡ðù ­¬ð±ï¤ðyð`?¨ƒŸ¢VŒ¢M¡Õ*¶ê(:Òð•>”‚S»¹Cõs©…´,\žá}´hš$É´ 7`=R?ôtê‡ÞVý0Ô} ÜåqOºÓ°+¢wø|SŒ÷üP,`>i\#cÀ“l6õS±¢ôƒøNMøØÀ éˆFê ÐÉ ®’áF¯XÌ,KÇ=ý¬jZÏ… -G g‡–}äõâ®qv=e·}ŽÈêY'¾!8rLqªšC‰Î×LTr¨Ö·¥×¨VITËî綂s&'¿§©¼7pw±°¼ŒÝ]‚î|]P£N<äTÙÈrÛâL·]xè\á >”71Š g* k=ÒÈœ° ’?æ³$s#œq'ÆK‘*ûBÙ§OuÞ´TA:ýx]ï·ùiø«-¼hÌe&Zª .†‘ -ŒfI:dã_!XPÞö^|\â€{']a‹•^zª©±‚èvÂjIicÍ›©³ËdÂù$ž^ÀÇx‚ & -’ (Ù¶õr°˜)»NzÍ4só|“Faá¨i‚+Êì`t[LÃ΃¿l:£Ë1î”°©;ñ±Öñ±–… „zâÛëBB ‹ÁR ¨éwU„Ä´br2Î@ÍüÐBü º\5bª@®P)®§tu;”ÍY}AP¬ñz†¦¡Ñ„m¡¦¾þð=õp-˜zC€€½ì!9ÁƲè÷.ÉI®è•(z[MíIƒýÿÉ+‘áE¢ÚÚ÷._þÊ¼ç ­²9ª}§ÙdTJ:å]«lÄ{C9ÿîê¦)ï7L -XÍãôÃ2“8ÔÂ9õZÔ;!U{ýQòêÛº‹N³yì8”ÇK¾úÑf~’ dŽ_ª«·@«9îvõR> R ²jt¦?S‚I+mòÇ›c ÿDƒœ„&e=x¢Î;°?(AÆ0{| irsâw&¦ú£ì% Kuõ”³60Ñ$cÚÔ÷à+×1ëŸFü”QL‰ßx!] ­Ö.%ßåIºÖéI5  üð—aÔ†Ôß•K*B4õš»~¼¶0´ªŸšªÊ@$Ï^Èh»àš˜˜Ø=¨3K}òòîÕK»Ï„ÌdÖw¹ãsRØÌÿaŸšx¥Zîø(Þ?ñýäªà[žxÛ“ÓÏŽ§ï*¼š71˸~e¢ÁßÛÝTÒt"B¥§×«gƒÈš…Éä ¹LŸê|ðÑRõ…ÛLÝH8ÛÌWo©&–^m&xwn‡ë¢e·¹>´Qµ¦4ËöA·÷zx ¾:ÄV[°qÏ”ƒ +$$'àƒ¤¸˜Ý¥¢F‹ÔdgQ#c¾šÑlÀ¯péLÁ®äô¥oðÑ ¤Ü·Ùs‘ÌMØ.Ò¤##‰z<½½¶¾=ÇÍ®‰4»Þe3v€x¾U<Õ’;ƒ2ðEvÐÐDU÷ ”áp¢àKaˆüðŽetÇÎ-TÙ²Ên»ÅèFwSç«¡Ñö†–ñ*·y†°h{Þ€Œ>±/\ˆô©.P¤ -~ªl ˜Ï,jŸZ°±Òì6²z• ŸA¡òpJe©½ŒÂ>Õy¶TCÆ“¬:-Li'’ĨË\´Tl˜ÑÇ< d>C>¸ŒÙ¿6€‡®2È¥!%;wŽ\¨VƒË–ðH_‚HÆ"vÝ3å öïïÙi±:=ÍÖ+!ž‚ø‰ßOùˆmJðŒ‘µøHŠâž·ìû ò¨üPél>UÑ}ë)Ÿ-|–¥½SÁÈW - -r* a1Ž8äœÄN¸Õp:°1ãç$ãºN83׃Òg†¢Z0¶A½êÎ ñ™ÕåÑÑé€=tN)=:zK*>¨®FÜô•ˆ¤ÄÀJO‰§2ð^+D8bm/<»hþªÅ Pì¯ù7§áq^¥44ùÓ@±ëLš@ZcÚ/È:s:e8Áê²”»Ç= y[ÓjÓK@¶ëD–Œ*ÿ³PW)#T¢^¸lîS]ð‘‘ê$À¬|yz¨È<²˜h©^àBixc0Ð2£Æ¶¤.ÿd[Ó1]dTÿ«@&ã;Fö™øË.¨é<ʧ/ µîÞ}¢XqU,éãLŠâœåÆÊ]*–žÖÅjMŽ,œG‡…®?µîßzN¯z5®“5¢a.WÅÈÑ e2x·_ogÞ ,ÓЛ©J=ÕßmÊ9¾…gž;›ÿðõ'êÁŒüÍ°T—Åï[ú4† ¼ê#uöŠài·&¼«q¾Õ3x¬rIãÇÝ -,óv£aSk"‰__ʱ1R¹†ë|ºÍïz - -ÓÁùàÅÎÔåèpÜl#Ð3hFèa“à­csdairxaGn q©5ß¡{¹V¡Ø¤M¸lܯó%¿ó³ÖÉrS7‹áîxER<üÊé°ÍËaçÀëÃ@î­Æ;ÖàNµ²„DÛcœ3ßíŠ|O½ámâÜ£`î¿LÖJT*¬J}ûí¦~ê>t™(Çe"‘z\ÆSg¾|7VàçêJ¶ñèýU|÷/I& F8óñƒÎ jtxAALá6lrêâùóùSÖÿ!Å^ßendstream +xÚÝ[Ýs·×_¡·P3&Š¯»GN•il×V'Ó&y8‘GñÆäÂ#-«}w±‹ûâ‘RÚÌ´ÓÑqÀX,~»Ø]@êRŸºLR‘zí/3oE"Ur¹Ø^ÈË{hûþB1Í<ÍûTßÞ^üé­É.½ð©N/oW½±œÎ©ËÛåϳThq#ÈÙ›÷ïÞÞ|ÿ·¯¯2;»½yÿîj®9{{ó—k*}ÿñõ?¾þx5W.Q³7~ýáöú#5¥<Æ·7ï¾£O?'ýxýöúãõ»7×W¿Þþpq}Û®¥¿^% .ä·‹Ÿ•—KXöRï’ËGøBy¯/·61"±ÆÄšÍŧ‹¿¶öZC×)ùÙĉDÛôrn¬p0ÿ´”•È”¢,ñ"5Ú´RÖjJÊ‘ +¥œošz^Õûrõ4^±’‰ð6Ë.ûÃMÞRMÌnz³+%ÅÑìß¿H©«¢¹šíf9þd³ûM}—o¨jS6{*Õ+j½ùÀÄËåîJ¹YÑ4Ô?c7«òmA¥¦Ø})vܼ_ç𷨚C«öŠ¥-°ò²`j\{èµf2ä…ÛË͆J¿ÊÅçÍSì^¡haäû‚©¨/,1ßì×TÉËgVoVÃe‘MÉ+¬é…2¸ H'ôabÐ4—B Ñ6uªÃ¶iæ}ù¥¨¸Šó‰3PX›¦ ˆt° wldÜ°–[ã¾V ð¡ÀÊ›­2J‚úóPËb•6LP6± ·Û‡ý™](ý"YÕTŽö˸n<9Y¶Ø è•8:ƒù KS0ÂV?sö©NŸ†-Êj›ïwyÕ¬ÈàÌ÷嶘—ÕÑјH‘¸ó|0͸ª“T™!7Õ]}¨Ð|;O(EÖÐt;FÚÍUUV÷Ô¼©«ûp!é:¯b)*PÚæÕõÜ–Õa_p5! Kwqžb·-çªÌ¯*ÚÑ +toù"T(-hqʈMÅu}Ø5´ÛÃá`/ÊíaK_òÍ¡Ž¬O›?õFµÒŒf<$ +— Î#©GuI‘jIår3‰$› >ÔyNZª V†hÒ"óÊ yéФZ4©!š¢ã3! ʨ©øûx¯ï£­£ÚàO¨YªE–JPèWjÆà‚o—bp©¸œqztl¼\é)l©[ÿ5h%Î +è’œ‡VŸê4´ZªÓFª>ì­T*”òê<+-Õ/l¥°Y08`æýaÏàBo„OqôJ;págßTá÷@ÂÖ*PkE¥èK¦B©Ýޞãè`Ã.}@y3¥ÿwõ?n­ «2V=©ÕHEªÓÖjRà,[ÿ +-Õ/Cså„1rÄL)##¤Œ”{%Ug¯ ìüNØ+è알آ¾Á^IÂÖbˆ[Ø^I‚WèÅ"a€¥"+6 òÿa³¬÷Óì<ÀúT§ÖRo½Ø•ùfþÛ¡Ø=Íw ¬#`”çy˜fbþ¨L +XjÀÀ§Mþ%ft'kÓš¨~ëe¹È7!ð„¶À-5nófŒT÷úkŠ~á7ä1–D€z*ËU°Y¤¹Ëœ'¬Û;'à +Ü@càààjM<;?[€¼³:]ç‹5Õ7‡XŠÌBñ@1 ”rú¡­çª-èòç(¥‚uäºãp›vFZåÕ<³³ox´ªØ?Ö»Ïôq—WËÇr¹_‹©@ûöÊCD +”pàoÊmˆVÁ ‰ ®åÊ tâˆD «ÀˆÖ*&ï€Æ÷†lFcXÑè<ÝãºÝ^ð€(!ÊC I›ª€&D²L9Ö7 &›Hvå©ü®Ä«£N¡~×,ºò) ÇU+5 G¢ÄL¾À“v‚[‚ÎKNý IgdÄQDf»µK#A0«uµÁÞÒÊ0·g„K’Ñq:iÖ´òœ J˜vÍóÅUc{½šÔÛ>G¤õ,€#Û 9:÷UÍ®Dgk&ò9¶Ö·i¥—l­’:l-›Ÿ› +sšd÷4%ùæ.¦—€—±¹³hîÀÖQ–Úzˆ¬2?´ÊmŠ¦[.|t¦p%Ê›èÅPŽ~IŸ‡†ÈŸ idN$ ’ßg3›¹‘@N˜“X‘»tÞœô©N›“–*H§ï¯êÝ6?vu9ÏDK5ÁÅÐS‘"Íl:dãÁYP>é;¼ø¹À wÜN{…%Þ”Ð鱦¼X /¨%¥…5¯¦Î.“ çm<½€90ðL¤%-lrIQc¦ôB8é5Ó ÏÍãM*EGM«œWg3¥#ßbvìeËЉ½ãN‰$uG66q|¬eÁ ¡šØÂ:ä:—0ÉZg)Ôô»,B`Z19)g f~h"þ…½Äk–‰4¹ÂMq½=aÑH‡PO†Fîä~S¬ñÚ’†!Ñ„e¡¦¾{÷‰j8#LµÁAÀZ6ƒ5]ñ,Š~m¼&¢.QôÔ¶œZ“ýþí ‘n¼j3àùâ3óž74cˆæ(žj8d­žºÌêó®U6¾â¢Êœê¦)ï6L +XÍíôÃ2“8ÔÂ9õRÔ;!U{ RòìÛºóN³Yô8$ÉK¾Òfv‚ dŽ;ÕUˆ[ Ôê^ÿÑYJ@P¢†Zt÷D&Í´É÷poBPŒŽþ#5r<Šõà…ˆ¶w`}ØÝ ¬ñ¦=ʡ͉¯LLYHÙk³Â‹„*ëê1ï]8B1­ê;—X×1ï?µø)¥˜¿ñBºZ­^J¾Ñ“š/‡µ4=©†”þ2ŒZ—úÇrAIˆ¦^qÕOWIZÖ …÷ÓÝuet¹mç\«‡íÌRoÿ€ÕgBf2ë›Üñ9)’Ìÿn›j½R-w|o¡ø–rYð]O¼óÉéç‡ï *tÍ›eÜ=½Ð Ñ`ïLÒÝWÒp"B¥Ç—¬'h‘HûL,Ó§:í|´T}á6SwÎ6Üγ³·TÓ/8!²0°æÁü€¨Ùm,­W­-?®ÀìÌÎéö6Ao´mßZXr[°pÇ”ƒk+$'`ƒ„¸Ý…¢F‹ÔŒn¡Z]12Æë¡Õìê—ÎØv%§¯~ƒÖD}˜[¹o*Òç"˜›Ðp\¤IGJ÷ñø;ñ=—è‰8nŠHAñðлrÆŠþó‡jÁ•a3°#h(†‡hz2A|5 žÞ´d#Ó@Æ-dY³Ên¹Åè^ߤ •¶×´ˆºÍ¸EÛ“ +¤Â/iÏ+PŸê´µTCÁO¥­ó™‡húìô-ÕÄüCœx‘eI6d hU½h?¢YMo_°®nÜøE*„¥ž +!9©6ÂÂSöUIO¨¿Í*KÕpç)È{­zø¢! XköMßê]„„zØÿÕxÿ9Å—´xz&ŸÆ\¡+}6C>Ljk°I „Ù­gõ">…BÐÃT=BöˆÎ`‰†ŒÇXuœ•ÒNXkÔYZ¢cÌè5… gÀ'0ûðÑå9)¤dgÈñƒSÔjpÍ>é%ˆdbÕS¡nÐÇæ2HÔé±[B¯ãê-=ÞÊé'¾Ÿò5ÛzÏo¾èM_÷Ð Ó¡!îyɾ'ßÁÉŸ€“¶ í©Š†[OYká³,íF¾è<iù£ó`ˆ‰±×dáxsnà5áRùÀjŒÏIÆpZ¨øPé‰ÓBQ^u§…Îø´À¼òžèøE¤R|B)=:zS*>(> endobj 1247 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1253 0 obj << -/Length 2665 +/Length 2555 /Filter /FlateDecode >> stream -xÚÝ]oÛ8ò=¿Âo§µ–ß»mÚËb7íeÓ‡Ãî>(¶’µ%×’ãKýÍpHY²e7Es8Ü¡@5$‡Ãáp¾>aðO22éÔÄ:•jÆõd¶ÿëæ—³‹›î.ýûr&ñ"_Îþø‹Mæpí_ÎX*]¦'[°”;'&Ë3¥eª•”qfqöûÙ?:‚½U¿uL~Zf©Î„ =r°2«]j$,¡Û‡n$eòµ>çI·EYÝ#(’vWÍ]±^Ÿó,)æ¯pÖ$å!Ö´C$eCͪ˜•2&Š9ÈR2ßC·Öæm±,ª–¶4E $ðË{üJ&R#4\Ò3ø@6¦M½YÏâžþ-Kã"칫×t@¾XЙ_áænœL¥i&Œ˜L9OÖÂï¹Ý{’ëd–WMÔ …r>/ª0ë9 W·Ç²Ø„5!Ä•¯^Z¸r›7(>RYÍ›¹;Nçcáð¼â{%ÂS&Œ -{vO@"…Õ*sClËö¡¬HÑÇŸFÙÔjÅìo|x²Pð|6r Â8¤§fFGæ¼|Fé0ëL@º]Ô³ÏÄ[ŸGÌê -Uï~³ÎÛ²«8³(Ò}Sí¬©TI0¼gت̼ëÉÆm•šÔX¡Ó¢} hv˜=RÓÈÝ$˜Zclߤ»·Bj²²ã8h>¼$Êèª'Em'ëOµQÔΧ†'7ð¿H.DD¥ÐÙÄÀ;3«>ù2MRÎIÂêÁþ¶;)ø‰Ÿ.—bò¶†;Mú׊”§}Òþ^`‡=½ÐpÅŒ૘bÖ3ý{½ÈÁ¤À:¼ñ—ˆT§œÀ¼šPœEY¬if^¿ª[šÍj…æ©@{ÂLѶd}0ðågɬè„ù|]4ÒݹdA§ñáûæsóæ#hžÍ`óì\°ä3þ‡¾˜:PCå,8c#'ý‡þ1Ý‘t}¦» ñcš=.ÅEp¡© qí0Œ³”ù—e2UÚî^v`ñ1BvXG<ÙôѨ¥1 ! Ö?á€k„‘A4Çh•Üãä&º’&_(oF—6)Ž—'6„¦J{^õâ_³bÕLñÁ{´@° ,Pð¥DˆkËbNÃMC¡ÀËæ@ÁèYøD[È$Œs'Þs‰ÖñÇë°ð"ù¢Àðõàú 'ùˆH#| ß"·ï3`ä5Æck‘¡b]AœÃ¡Ù=Ž_DæKoÔ0ÆD¿dñ€N1feÓ¢=V5¢‚ƒ›}o862n¹ËËE˜÷5g!r*:íMSLQÚ!vC²—9©‡ÎçÙi’´]Ü-ƒš <&µ„-˜{‰0™ÉÔ@ÌýWw “J/Ì2ñ­0©áÍ8ãöEäutÆÚÿ@˜ì“>&Dg]ëUš±ä ãN½¡Á¼Æ/&¶eó@©>ÞpP’`=¸š+ Sð¼•.,"FMßÛ0-Å*A23ä y¨7‹y€‹–doúZ¹G£º“J#p<ôj@Tí¡L¸H…ÖÑÍæ«Õº^…¬nµ€t[ ²7Gî¬}6´ÙDØ y±*ª0¹YÕY`wÔ€íû˜H` -‡OÕ ø¶á~î6Ù¡ý× 0m]7- ÖŤ4ø²¡g@ÖA–ÇSŠ`üÇíì¿œR(!À_9y:*uX'¢ÒXZ‘K†ò¢Èa` -H#¬ S†)™•C^00 Ëú ‡»À„£~`–S…mcq%ÄÀ„ðx`bYÊyWÃ÷TB\‰apòŒ'p•–Ù^p"³Pà”3aÕÐ,N¤ ûl€ócÞg~+8Å´Efèµ8Ûô±ŽkQ‡uè‚Nç7øôžþ$3Ö7E‡nTf†ì|jP²è%27P)œß©Tæz*ÕÐrÀ¯¥èÌ´¸‚%|HvÉ&Ì÷Ú9´ÚR7–æÅ]¾Y´aø¯C ™‚ÕXð@ªzäѹ•ºTÃýÖ BÆ[†ü¸w¢fã'‚'I­p±éðT4cgY¨øUÄù“iF"Ýof±¥°\åmy[.Êö Pùq%”¸É¿¡„=¬J±H^my÷tLíX vÉNßa}ã|®Á“+ÈOO3°_ØÈTj‹¡y*¹,+_s3•lÊ™Ï4 $¯gù‚fy8,aqíõ®i0yàY(èµ^a3'_`èÆñ§·iTðm@Þ–‹@ø¶Á5AKwSø6\ü65lrõáæòÝ?iv |ä÷EfbŒ =L\èñ07M–V+ß{@[SH34à˜EþÁbýˆ&jUò·±ÚRÅe—ƒ.sp÷ë1=ƾ¯b¯{†¢µÒÙÑ+Îù-JJEIøz6±?:F€ exì»üëí”Ta„íRˆ{Ѧè,ßLçQxp\¯쇾ŒÐx—‘+HŸ]×»|†‚ËÌú½_¤í{¿„ÞïTjº¼09ËC2bÀ\ZîuƒC6Öïýú16Ë)Þ°ÉëqÖÃj (öBû×gOôíµ‰èHX·à#µ2ÏsL4~=ý®ÅJßß-¥M…Ò|(gõhŸÑë}VÏø¥{½´Tg.{Á^¯yÁ^/Ï Øãö›E¬€¼^j/YÄ -ÅŒ€÷yù"¶OúD+0p\üÿ÷zûý?ÝëåÒ–©ÓÙL‡uà¶ÆÊ1°QÁÀoõi&4k„…Aªg@§2ž yøµü\Œ6ôRÛÅoºW­|ØÍõaÅwlW+ÐÉ]¦ê¿!xz8&±¸©Ú!.ör©]ÆùȈ§æ†§Bc'PŠTe d Íæ&…<–3™mÆ>}Bà#¤Oý -eÕ\°ƒ2‚þc]Χjº™¯¦˜n¥!;ƒ]”¯9¤†GÙ²æd»ø……ˆžã>ä:*„i¢¾£š -(è"”¡)º8t¢_mò@‚2HœóŽ§b* Š†ƒK%Eæ!€/Oš'ÈÔ–q®)ï+ÂàÃâV#°D¥GßÅ#Ï>ƒ Á -aöTPÕÇý}›@€Tâ‘ôÖª|Ù¹ókõ’fu~"è±ZîÞ»Ÿ#Bù8÷µò¬Ij´’Óg7¤HT­ ŠÜô… Ÿ¢ŸñÍ-ƒ-¤g)ýäíkÑyls…Û`"©7À†›Íìa°qȸeˆóîr (š·E¨·Ôþ öJÀ}€Û§½,dx‘Hm¾‡Uu?&ÅÜï¤_ôí¿»=лÏË*=ö§&R§ø÷!#N’uÉÃÿÊîot”Må^Ÿ½ÿào„³‘)²Öûœw¯rÈú¿ÜLº«endstream +xÚÝZ_sÛ8ϧðÛ)3µ–ÿI=vÛ´—Ý´—un¶û Ør£©l¹–œlúé HE²e7fçæn:S$H‚ ˆ‡Oüã§S&35±™J5ãz2_±É'{{ÆÏ42Mû\?ÏÎ~z#í$K3#Ìd¶ì­åRæŸÌ$¯þùòýìâú|*4KLz>Õ†%?_^½¦žŒ>¯Þ]½¹|ûáúå¹UÉìòÝu__¼¹¸¾¸zuq>åNs˜/ +G&¼¹üõ‚¨·×/ûíåõùŸ³_Î.fÝYúçåLâA¾œýñ'›,àØ¿œ±TfNOî¡ÁRžeb²:SZ¦ZI{ª³ßÏþÕ-ØõSÇô§¥KµvDBöÈÐÊL¬ÎR#a˜¯x"“Ô›¶¬×yU=P»½-°É‡×ï©gSoÛÔ·kŠQËz;à7Éöœ»¤XÒ§¹¥Î/»b[ 5º=aò}îq½ÅÃ:_•sßmy[4p)R¸ärI,ëºE½Ã᧜§™ÖŸ¤)¼tÀX¶ø°è2ßUmC­¶¦oNŸæ¡i‹ÑózÝz1êªò‚@ß]^í +"ïoËùm ˪"j×삲 q8I ¸Ébv¯Qx!“öœ'Ä$“rÝÛe>s> +¡æUÝLÇNW4-j¨‘é°vÒ^«º-h X/Ð’A³Û²!žHÈ´ÚÅ5óͦ€{ð½å:ìsÖ®-qí4("˜ï™—ä&ÕÜd ¹7¬ªªï§í6_7Ëbøûæhlªô;™í€6…*˜J'ӌ㪠7OJ–2ùZƒ2סqS”ëOH‚Z¦$ù­Bš¤\cM3ठu4›b^~dL¨4ÉTPškÁWź¥)`ca…Ñ©:œ©;<ˆ1mêÝv^ŒèÁ²T0.ÂzO°Aî öü +7/‚B¬H0bh7;¼G®“yŽäÆÛ#vÔw …r±(Ö¡Æsjn‚lweq¶ÄG¾zmáÈMÞxKBò˜Êõ¼Ú-¼Ú±;5 +ðHâ{5ÂS&Œ +s¯ Ø„財 +îËö-}óøÕ(›ZÍ¢šý‰w +®ÏFiëíÈ:°«3: +çõ3º³™ L7U=ÿL²õeô¸4½O»mN;±§*Ò}t‰Ün^Û§À‹t-Ý8¼€“±&5¤>ºÍc°V ãŒáRÓ(ÝTà 9)y…º»BjP²²£²”­¼Ž®zZÔFq¬TKUýî|jx2ƒÿErq XT +í&†é”+î¡wòe–¤²LWö§}Ô‚ïøér%&¯k8Ó¤¬¸ò´¿´?¼Ãž]h8¢c ·€ý–|Õïu…Ž^‡<&KàêRN¤ÇA$ŠÀS•Å–zuøí<Ñì6|ž +¬'ômK¯䯱—ží>Ÿü=4–ç’›ÞG—Ù+Äxë`òü\°ä3þ‡¾„:0C•YˆŒœô/úÇlG:X2ƒ€iúçü˜eOE–â ~3ëÔxäÉR†7«µN•†ëì,–ž×O6½3fiLj ¬Ößá@ŒŽkDAŽÑ*¹'É,º’&_*ÃgmR.2þ]ž0Ú9xª4ç­^ü5/6-Ñ„Þ£…› /5M×Vã1ª¼|g Œ®”ÆÁ€+A^"[‹ÛuîC,k/Ç¢p(¥ÔÐÆ@¿ôâ0zªbÚEàZØ€ßdŒuß ÇFÆ)˼¬š 4¸¯œ…(SÑiC¢0Emì†üÄeRïÅsO “¤íp· f.ð(L*‹žAÉgIˆD’Ùw¸º8ãLJñ²fê[0 ”ð¼(©8Zã߀‘ Ÿ@H%!†’ô0©“Œ%ˆ8õŽ‹¿<`tÜ—˜H"EF„2hIx786#`MuþýÀ* "GMß›ÐÆDö’f(As[ïªE ‹–Ônúö¸‡ ÑÐɘQ ØôD4ê¡J@]Bëè`!ÛÖ›/À©0½T‚^(#ÏÌzv4ÅDÚ+ ‰E±)Ö¡s·©×ôöº­bŠ!‚>ëÕwáûnòø–O¥ñë¡ X·˜Mbc É?%þÐÀÄÕˆ¢ƒ.ýçðc/ì¿LHZ+õi<ê¸NàÑX@áÀCbÑßä’Óˆ(HrŒY9”!IXÖ‡$l>B¶ú$,§ÜÚÆ´ + €ˆ„ô8$1—rÞå¿ÇÕ°'½S©âJ aÉ >Kà%-³=X¢g¡À;aÕðYœöÅÏÇ2ùXŠ‹„C +¯NG5}®V¹]ÐéȯÞàÕŸ¦ã‘f`HØ›rf(·MÀE/á²Iaÿ£I¹¬gR ×aüZŠÎLSF0yoÂ’]˜ ý½B¶TÇq®_ +ÄþzÄB¦ðj,z` ëzäÒ¹“¶TÃù¶P!Ö-CdÜÛQ³ñ9“©Y,7<ÍØ^6…?ò|dš…’k¿Îíb1aµÉÛò¦¬ÊöXùQ#¼ æß­û\Ç°ã"}µåòá˜Ù)x-X;¹}Çõý¹†Q‘éiöS ¼&¦A‹LrU®}¶ÍT,õJÉx=Ï+êDà0Ô+¥bðÀ]Håµ_FǶ¯žãœP=Gf*"ãèMÀ-AËlS•]\ü6• lrõnvùæßÔ»9òO¾NnŒŒ%_–|‘“J¾8K¾@û’¯‰ nSåw‘,¶wøD­JÆ«¾&ƒ´² ?W9¸ûí˜ãBŠ½º:`@kˆq‡Ïn^å;|QR*ªIÂ׋‰•Ñ11”áfP|&S‘Eg©E¼c½½ü/?<*¶ë•~}Ó—~‘¯/r±sÖU-Ÿ`†à2]¿ê‹kûª/¡ê ®B}:çyæ@ J˽:pˆÆúU_ßÆ2ù Ä–w=Ïv8B%ai^(üú(ð¾½Â/-:ë|¤Væéê`Ó%_¿~WÜ Iïˆï–Ò¦Bi>|@OªÎ>¡Êû¤jñsWy¹Õ•eú«¼¼gfå·²Wn SeúYÓWßÔq­ÿ†¶¿ô‰–C&`—ÿÿEÞÞ=ÿO×x ¤’}#žŽL.k, |VoåÃX&2î?ò xKÇÝ@€_ËÏÅh ,Ï=Õ¯‚V…äîÇ_¤Ýlªð«<•FðPÓÓ1²ˆYͺòbù6,õj` räï"¤†`–~0ØW›DÏýÃ4ñø%ʦ`BGJ²’Hý2ÛI…*Òz_öîÏ+F„ÿÜÝd{endstream endobj 1252 0 obj << /Type /Page /Contents 1253 0 R /Resources 1251 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1256 0 R +/Parent 1255 0 R >> endobj 1254 0 obj << /D [1252 0 R /XYZ 85.0394 794.5015 null] >> endobj -378 0 obj << -/D [1252 0 R /XYZ 85.0394 141.2512 null] ->> endobj -1255 0 obj << -/D [1252 0 R /XYZ 85.0394 118.94 null] ->> endobj 1251 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F62 995 0 R /F63 998 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1259 0 obj << -/Length 3339 +1258 0 obj << +/Length 3193 /Filter /FlateDecode >> stream -xÚ­ZÝsã6Ï_á·*3µNü5÷´»Íîm§Ýí%¾¹‡^d[ItkK®%'›þõ >lÙ¹½Þd2‚HˆIà´˜%ð'fÆÆ6“Ù,Ítlaf«íU2{€¾W‚yæi>äz»¸úË{•Î²8³ÒÎ÷ƒ±\œ8'f‹õ¯‘e| #$ѻϟÞüðÛ7שŽ?ºžK“Dï?þtCÔ‡Û7?ÿüæöz.œÑ»¿½ùeqsK]–ÇxûñÓÔ’ÑãÌ ·7ïono>½»¹þmñãÕÍ¢›Ëp¾"Q8‘߯~ý-™­aÚ?^%±Êœ™=ÃK‹,“³í•6*6Z©Ð²¹º»ú{7à ×:¹~"‰¥²rb¥˜Z@“ÅVIÕ- °1ÌW$I}Þû¼-«šèÝKÓ[žtÑÔ‡ýª ·ŸÊmÙ68¢R’ôÇÆéÇ_<âÒEM±*ö×sXÈïj:4ù÷Ö÷øÌ¢m^½0 ôþZ¸È‹GbUð÷«¼"bÉ£lP©b »©Ý­òM±¦ž§|sŸå4¿l6õ3qeÑócÁ#6»bUÞ¿àBÀqRBÄ™áIëƒò$Io@¸¶6z_ï±UDÅ×|»ÛßóR 7D( #5 £ŠË {#]ª˜ÅÏe-Yæ¡AÝ‘*+X¯œ_`9'Ä%2Vifƒ¸$U©Nê ±FÆN&³¶5 Ë«B/ù`Ö4UÜD/½bíʇ|ùÒñ„6À c«––úPñ&N(¥Ó8­Y)Ú„ßa[[ÜXeßÒk«XמZZoŒ@ló¯åö°¥—ü)/7ùrÃ}ù¶>Tí”ÊÒŠØYmXuqŸ6í„¢JÇ™sôhŽäó¢Q[ÎÔsÎleån®4¸³ß}ÝY:"Û,P4:ÁÕ|·Û|Ͼ!À±‹âè£uѬöå®-knÒ† #6* SkÊ?Šc TèþJ¤3 @-œ°ÿ -J\07ónÄùpÈS€SÒÅF&¦—ìu£Ø#)c˜`á´ä£iXF¡ÕhÔ¹˜q;@áŽBÉ‘mœŒ‹òïŠU¿ò6ÇÚèÄé9=Òæ$t\¯èp:ê³Õï‹Ô°:x!0®X&x­½Áx»Õ`wmhí£¼vPô)tâ—Ažˆ6Ȭòm$°eCëÎPC4h<àëè®|½èMê€4åd´®«ï¾œˆšÃnWï[joüXHy ‡§LÈça¼~HtÀŸ&&ú\ñ‡Õ#S$°H íaŸó}åÈ¿”› ½ä!˦9xdGz ob:‡Š÷¸æÀÈ’ÃD|’¬€SØ{‹î‘àLrALó!×ùÜ¢ãòѪÞS‘©X -óŠàÀ4!xhÊhÀ™=¼ Öã<" ª Í?sz¬ê.#@ Ýõ_•+J?ûYtA^ÏùæŠ*KhÖÍ9¶Úö|xؼÐ;˜Ýý±Ûª(gžœÏ9óøxa9LæÛ==`ȶˆE¬IÀ¶ö…È3±€— ÎX>óÍ¢å“KJ7-Ÿ™€ÀÁ -"IR~9{Ÿ— wþQL7ƒ˜nƒ¿Å;Ìpm—áZ -G˜óÖ5óoso&¨Ï õ±únÑÞ'¦ùR€9[Ù =iyÍ¡%ÈÅ&o<ÐÖaLÂMhëœ qaþк|9út¼ "EÞže"?†xª²€uóU¾z,ær€%…ŒW‰…æÕzêÜæâLëpܫþ)ŸŠ9cŽS±F­{µ)‹jò|®àh\8söù6:BžIà_dp»“†\çcRÇ…Zü+Iä¦hŽå¦ÒPþ¢ÜÀ4!w8m—ÄÚ);–ËYm:<¦QuØ.)ÉLÉ\à4ô/mø¬OGS48l>záÇ;4jUW°kU à!„ˆ¼‰›^‰>^ÁËt¼JU¬1þ&¯ž• F6§^K34œFü‘öò–¸.liàòHÔæ«/“yF[ˆ™—%¦ ÉꨢaøF¢§³¿ùŸW’yœ;HÓþR.ýíé¡RIìãþ—ôð¸p¢Œµ 1¸²òD•¼»î¢t§d6<ó)¬ÕÌÀ>æC"áõvç«U±ó§UÿV­¹û¡âLŒ{|! *Ë#£†U½ÝÁv,ËMÙvXšö.8-Â;'ŽqÖõÔ¥”ˆU"‡Aûßà/`Igö‹ép˜“Ïft¨lÀ69›Ôý¡ÔwJ~®ÎÛ8»Pò€r]°¥Àun–Çf”˜WL -QÁk¬Á]áñBû%ÃG‡×øB©$Rd@¹/©ÅŠÓ Åæ@›¤)Nk’äÂ}4›KżÀÿÊÄNÇóP#¸|ZÎSp06æòêv\¯hq:%U`×sã’蟾FŒÚ"ŸYAÊ'¥ˆ!’fã|2ßq¹ “Y4ô4¤A@økçÑØ{‡ù²S\GÃFt‡ŸÕ›uѴܸϫ&_…dZ¼“ Ù;ñ…—@-¹;?´õ@aåñÿì¥Í¶~êŠàß¿E’" fÿ¿ÌKZÈÛ3{Ù¯LçÝ:0¡¸ÇºiçÖ´eKÑÌÁ¥N['qšZwQƒŽéT…‘ck§Æ‰‘qç¬ ðfÓÈ¡1¤r`( ±Ðæѧjv€[>¯Á'F½ýì¨ê}I¦t ´|#Ï/ib:2ª[²p«chfl%^Òma¬PEýÆâŸú•ƒÑëÂn®ñaop £4„.]T¡ãšÐaŒÓ6†¥Òc%¦òiÑoÒ0Ÿ†îM›WE}hˆ‹œŽ'ÁåéºþrØ5£ KŒï¬È¹êË:ÀRóµ˜ÑX„tãý[ùÕà½Øã5ÃÒY¢xnèíîL]Ò°fÑ]ÌB>=uƒ¤âL$zPLdô¶XåT#€Á)`!5XŸDvÚQ7_•Sç}^î©aY¶ÃYu5QÌz<ƺna:a"ÜD¾«„¿Åú#®²„ÇØ,zÿRnj¼¬Å‹ -.+±Ãßó÷Ô4]üsÅÄžT*ÎW#Ò)™ª$ÊŸ·P§±É_C ‚|姲¢uÍ©D†“â¥ÎCV™qCi‚µƒë’àõƒÅ=ëí˜XKuÙÙLç}=0ùmZíÎ:9Ä÷4lö’äŽéTôøÈìbëR3’½eÖAiÞö4Õ„í±‡CKgÆ@/ÞýÂuU]4Ϻ`_ÒMG%ݾZL‡¾Š”)Þ©ŒÍù‚¶•x<6½Oý¾"38M¾­…P±Ðâ•p=亰ëkºB8Úy X§!q¾(¿ãšP`4W™Å©tv¬óµ¦ß}Í;¼×#C¨JC¿÷Eí¨ŠgéáЯO~ñƒM~¦ˆ/©òÛ<æzÚÄt‰jÖ¸ç>ÃÆRÐ( Å®™ã“«ÐX¬¯èÉÙ…$±D2`pk×ûe¨Ï#¤ZÓÚY© ×´4 a|7 _!®y(JCdT|Ý•ÝÝ"¼ï8 ÍÛCw0UÆÇÏ¥ ^#Ãå—$%ñ†‡Þ¼êð¬jæÃ{œbÍ?J(“þJ~2¾Þâ_§ÆAË݆Å<•Å3)Ó±l–ç %]~Ø]¾Ï[)â•íÔŸ¼¤àÝÀÚ'ýbÈ„“P(øNúNS.Žb{çíø2´!/P™þöâ(Ú£Àœoä“ð«¤NöûB¼ìh/è—X&¢úL½ #1M›p-Á[룒}]m^&~ÒSrR´XüÄ¡«7ªøÜï`»šŒðÏ[ñ§›ØÿpS§^:9:2uXzWA)œ«±§@Ë?bÝè%ï$)—‹x4»@ãë%þä"6¡I£t‘¤:Œ…ŒùæB,`îã…dš¥'ZŽ©ÞÞ]üåƒJi˜šÈ,îîG¼l(¬•‹»õo £ð8ˆàÝçO®?þzóæ2ÑÁÝõçO—Ë(Á‡ëŸ¯¨õñæÍ/¿¼¹¹\JËàÝßÞ|¹»º¡)Ã<Þ^zO#)=N0½¹úpusõéÝÕåïw?]\Ýõk¯W +… ùãâ·ßÅb ËþéB„*µñâ:"”i-6:Va¬•ò#ÕÅíÅß{†£Y÷êìþIFÊD3ɹ ŒÓШHõ(Mha[„€ÈÖ´Ä_ß¡Æ—f×Qëç²íZ\1ˆ]FI¨Œ%ÙSS®—Oz¹_o—[ wT ]¤§°ebx×½R¯™f¬¡LÃÄHëiˆ­ùl5¿Òn‹¼¼}SdøAjÓ@sO#×_ž4“Ôë~ÈÐ-$ÑÍv³x.«ŠÆꆇV…Û“e$D¨•NK)Ã4ŽÉ@÷m"¬2dfeо´]±ñcmùPÌ4ûÝ¥´A^ЬצzŽ8ÿZt-X®2¸{,Ú‚&*wLÄÀ±+žŠº£¹:ÛxuîÝ\³¡‰ü±iÚ²~˜ªZçMkŠÜšv°mîÅ8šêÓ®ÑLFa€wˆÊ–FV.bÍš|AŽnäŸBD´‚笪`¥JÆÁõý„ýûbÇ/>Ó2a°Ùsã¹ìi²Ý瓧Š“ž?έ¶{,Èþ³º}.vÔ~nöß2h<Ü •ˆáÍéB<·õµÚb÷4#é1{b‚®¡g¿zà÷•u8s©`9ʆFk9¾ð)_øÏÛb—utòÀåÖ'¢\{”þöoÊÙxwn9‘íÈùCKCû6{àYw£4Ødõ Ó{ÑЦÍŽˆßϳš+æR¡RÅMC¨à6Ï*gM0ó”U{ÿZFì¸SUÍ3Q¥ÁócÁ9p#æ,þ@”‘tw >à Up‹oÙf[?Îá›R¡Œ#VòãÌvÂÙD6QLâVŒ²V,“ð[e û•q¶sFœˆB•¤‰'•hi#=#6ŽB ½h_ȶÇSìd£UÓRñôšµ{(²ÕKWÌÙ!h0Cd͇8£”N´f¥èÀä ßT•NÑrLu:›è©œ»jvÅD¤*ŒdüŠ`O4#xñ[À s øΣÚô¨ŠÇ6Š’è‘7}H€H¸ßl&ït$¬÷›êðD¥<‘˜‡šWƒ'¢•dº“‡¢m¦úµCS>”žÊi–uÙ‰CIÐÙœì‰fJ¢Á<'‚i3!Es.çn§ªÈ¤Å¦Ùq×ù÷{p¼x,C/ r†CKåü¡)ˆÀ "Š¿ûÐ@AîzõÌ;Ó(L¬9ˆiÜZbˆ×•­©ç/)4îÃsX—-<¦8ejÎwRJL^‚Ð¥œÙ^ÂVµLÕð`vžuüʘwɲ‹oˆ£¬O/£œMøœê?"ä&^ãEƒ¾OMpá•£¶¬”.ï‚Q>8Ø Ûï¸U”Ùà g?,Óàq´† =ïÁol¨óþÓíðV™Süy¸ +0ºõPa°¨\v§ +nš}µýØŽ³‡ê…ú`v÷{Än£\žŒc=ž3¦qþ°› Ì7Þ{ 9߀1©?"±&+8Újžð¼Md¹Ð7 V{Ž.)Þ4œ4A™Ô䪄âíê]V¶<éé'>=ùtãï+´bÇ!®éC\CîƒÞ¦aú eÀ¨Ï Íñ%t.Ý ½ÏœÝK³b[Ù¢=i9ÍaÄËÅ!g<0ÖcŒàLÆúK ¬_?Œ®^^n¨Lv ™ !¢JTê‘ n™gùc±ô{, „¼J¦çë`@TûpWäû][>KÆ«B+c5Ý¡¼*‹z6AWBXÇ܆ø å'}’²²%Úœ÷IcªÓ>©§B-°"Rí¡Üâ~ÊŸ•ë‰f䎗m„ÊLårT›ŒÂ$¨÷›™ ™ <½†®Óù׆p4a@ƒl“ë2øòÖåfÐÊ›N £î<¤”3ñxPbðWЙ÷W‰ +5ú_ñj²£g³êµ0CT¯éˆêÌ‘z*‡D]–3’ЀÏÄ!¥¼Ùlá8VeUv=–&€½wáWD+‡@<9»™+¥d¨D4vÚÿ‚û–tÒmÛÐÆ=sðÙN’ÊîC•±IÝïëQ§äçèãi[!œ·¥Õ[òT§VyhF"~EO4£À¡ p^S n ‡Úm>z¼Æ…’Ø";€F‘¹’ +´XqêoöíX´ÅqQRÛPBŠ>Y͹jž§eaÇ|'Õ<ÔH#.×óTab|vw{ªW´8æFA˜Çå2¶"ø‡+£6„È'vâÉH‚S‰ÓéÕɶ\nÃ` =ña4ÜwäáÂh€³ÃxÙ*®£á sºãךj]¸±8¸Ëê6Ë}0 +#î’ŒÉ{±Ãé%´V<í»f ;üŸÉ[6ÍS_ÿÿ-E‚0˜þÿ"/©!Œ:±ÇT§/vO…›¶[BdÓ•-ìF»„[ut·µ“ÄØóJôT3ZLn·ŽÃ$¶rªÆ5žŸ±äLX4‰$™KK$tÄÐ63 +à gmðĵÑì°@š°zWÄ’AÃáùüMH‰ó§¦#;7:·OͼÄouàåk©ßÕRÈPZóJÉnLuæD=Õ4å¥uS¬fÑYzª¦hm TzªÄ\T-‡CGÕ0]uY]4û–¨èêñ"¸HÝ4_÷ÛvgÉ駫ÒŠ;@Òð×±Xc)ÒNÏoU> endobj 1262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [361.118 694.3759 409.8647 706.4356] +/Rect [361.118 590.715 409.8647 602.7746] /Subtype /Link /A << /S /GoTo /D (configuration_file_elements) >> >> endobj 1264 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.1258 314.3269 404.2417 326.3865] +/Rect [347.1258 196.3262 404.2417 208.3859] /Subtype /Link /A << /S /GoTo /D (journal) >> >> endobj +1259 0 obj << +/D [1257 0 R /XYZ 56.6929 794.5015 null] +>> endobj +378 0 obj << +/D [1257 0 R /XYZ 56.6929 769.5949 null] +>> endobj 1260 0 obj << -/D [1258 0 R /XYZ 56.6929 794.5015 null] +/D [1257 0 R /XYZ 56.6929 751.6696 null] >> endobj 382 0 obj << -/D [1258 0 R /XYZ 56.6929 769.5949 null] +/D [1257 0 R /XYZ 56.6929 674.5298 null] >> endobj 1261 0 obj << -/D [1258 0 R /XYZ 56.6929 749.7681 null] +/D [1257 0 R /XYZ 56.6929 647.321 null] >> endobj 386 0 obj << -/D [1258 0 R /XYZ 56.6929 443.842 null] +/D [1257 0 R /XYZ 56.6929 331.2658 null] >> endobj 1263 0 obj << -/D [1258 0 R /XYZ 56.6929 420.887 null] +/D [1257 0 R /XYZ 56.6929 306.5278 null] >> endobj -1257 0 obj << +1256 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1267 0 obj << -/Length 2860 +/Length 3155 /Filter /FlateDecode >> stream -xÚ­]sÛ¸ñÝ¿B}£g"ß'O¾œ“ú¦—¤®Û—ë=ÐeqB‘ŠHÛñÝô¿w P D)餓ñp±X,vý„Âg þñ™Õ)“¹še¹J5ãz¶Ø\°Ù̽¿àžfˆæ1ÕOw¯ßÉl–§¹fv·ŠxÙ”YËgwËß’·½útw}{9š%&½œkÃ’Ÿn>üL˜œ>o?~xwóþŸ·W—™Jîn>~ ôíõ»ëÛëo¯/çÜjë…çpbÁ»›¿]ôþöê×_¯n/¿ûåâúnÐ%Ö—3‰Š|¹øíw6[‚Ú¿\°TæVÏžaÀRžçb¶¹PZ¦ZI0õÅ?.þ>0ŒfÝÒ©óSÚ¦Z(3›k‘Zkìô)³”i8µy¦xj¸Ê†S|ꔞr¿ØÎëªëËfþå±|,Õæ:OyÆòYÌûH‚jB‰À žÔH†»uy9—*OH‚Iš¹„Y–Û~ ×g˜ÝÓ.ËUñX÷4(š%›ª©6ZWu„”~íÍŠÆ}àñ¹Ü5eMp÷¸Ý¶»¾£¥H'ç®RÁŒyšk-œÀÅb"¥Í’3&ê¾Üù‘jYôÅî’Û¤,–/ˆ ©~í䨨»– EÛôŽ´­ýܺ}&`S4/ݽý4P7墯ڦ , /ÅsU×Ý£nÖÒù- W5N´  Ú Î“n[,JŸ‹ª¯š¬Ú'h7~ÕCHÀV8ŠÒÌ}9¬Û]‡»#Ü·ô¥Sƒ»y–üë2peG“uÙy”j’^ §mè…©ê²éë—±Vt7»¢‚Sœ:°ÿ¹PiÎ 8“”©bÜ:zŒ ܤœC¤`Œ%ŸÊ]Õ.«ƒ»KŽ’wŸixÓÀM?ÁýEï‚FêT -#ÏûiLuÚO*sQ—EÇ;¯¼GŽjDX+Ï‹0PMÈ0vÔ,U67c!œó)i’D¸ä Z=é†"sØ´OŽP'å×mE¸eLеXx2Â.Èš–‘®È36DÒ‡½Åb¸?•»—‰›–"O™â¨õèìÈ¥¥5©¶{FvŸëÁaÈ#¾öÜ Ä<öe‡1%c>e,ŠG™<ð5Œ¾'ÖlŠ¯>ZÁà ½a¼\XÏ»xqÑF3Ťó,O½r^Ö‘§càCóíÊžç’ðe¯èÛøñvdüáÜhäÝ v±€ëƒô™žrøK•’â¼ÄT§Ý` BMÖe±ëïË¢?ã&•VÚó2 TBŒü ã©4š¥ ?€Œ‚~àœ€…ŒX8EŒBÿÑ6žxS ÌMÑ8«‡©âJGs.Î"®Lp]G¸M±ûìüÐE7eï2K%ÞB—˜ÒvÂÁ:lši›Mÿy]6¥ÓCf6ä©,ß»„Ãï]ÙÙq®ƒÛØömV“íÛØöaÍmYtmSÜ×~é“Ï!™àrP€ÄiéË ®0•ËÐ/¸R°¥ÈôØ-(‡¢¨n*¸œÈLp9Ä£ÔˆB—Ã1¹b"—›âmÈ»2ã½ HœwÂy—ä]€'SÀ™Ø&re]*Cº’@oÿ³'r¦¿áˆ{¢3~艆`¹‚’áŒJ,ðÎîhŽ÷§"¨s-GÐ}ê|ð@aöçØ…«!´¯õhÊþ¹Ý}&ÊA~šÃº“ SEHÅ:äCvFÿÁ!bpm²†”TÅR¸Î ú×æÀ!â¹q–‰_ô'üî9 (¡ÜA8t0lÕ•7ìx96~É°Š ;âë y£aãŒ3lа‘½3lLÔû“Äرeß{)è`ì‘38"e sPÐFA½õ¯EèoÌZ;ýZñJQÃŒ>Í‹Ö1àåÁ°bÌj¤›K¯JBÅ&8Ü -X&\’„kÚzŒÌ@Å%dG |È >B©Ç¡už‘\ džò"­߶`óÙ—’ÊsITì´ÝŸ‚C¼¾ÙˆÙÏ-è4‹Õ -œç1k§—±¡ƒ!ä–JAë·ãÔj]õf“—KÁ’ҪͶ.7%8ÀÒ#úú‡H€ò£ÛWy– =s|¾?vePæ&gзï_ Ì ÆVþšŸ‡$È™CáÑDøGz&i·-øÃËD˜ëÀÇh:ë+×äà -HSØøpmGóÐÚ?$!ºüòXÔà–Js_!qI”CÈźm»Ò³(èÓ¸€‰³{Jz‘BæìBE aµðu¡tEÇo¢ î–9O*l…Àø)…—+˜A„ô/0ãra -O\:Æjyý…¦5*Ö‡yOßwe½Â¶J åaºg`5:Ͻ_ö§/<É(ò;›÷ûA‘W|.½tE3±˜†2YpÿbéZ>Fèìàñt¹Ã§¾‰€©0+iÓ\èïz_àÆgÍÛqœÇ,í›s°~7¹LVô‹õ‘Š¥Æ2ñ2pü– -:%“ó±Î<ï’gi&Exü¢§q™Q­å-Ò=s#®sø5h÷8ì¶å¢r}? öE×\g<¹.à`ܘӼ†j¢¦µä,8QÖÁ|µßªèºê¡)½0~#¨…{l‚ýãUfR(ìØ^>´Í¼) -‚A¯ÀùB¤~ÀPè‚Æ%!ï‹.,s5¹põµ#Ô¶í*j,p‚àÞI­èÑÒ5'CÉ-X áä™»$«nªr.,­_ìAä]O8Œ4ˆòsv°ˆ~Ýîè7‡˜K¤ºôï0kÀþ¹t¿ªIåwñVmãã£{K€‹ÖÉá÷GÔA3Àû"SbÇ4£ûÃ6ñ“§ £}­ ¦üÏ8D±¿“ÜëKÅŽ¬¯â_|Y,—þ ËS{5`ÊRN¶Ò„rÏë -Ï!®CW;Jf¾iBWôjÊÈŒCKD7èÃ>*ØÖ)†13ϸïÂûQùµÀæE Hñ£”Ì]‹¡Ç¹an Ÿÿé”2Íñ§Î‘ꜽ¶o¦Îä/P#¦òµPo¦LþOb 4¯¹yC‰œôZ3ŸÜ‘&+ŠXüпó(çÒØgfz‰s}' ÷A0àŒ¾þa@$›Öy¾¬ÚÐ\#6×ø]ÁYŽpÐlÒÛ˜ÝÐH°DhâP`S2é<ΔŠØ*™HJiP¶_Ó4‰ @ù[£7 Ä ‚è ¨¢' œŠ8*'¨$p,&1¨¡ÏÇݽíÚÊóÞŸyx՘Щ.‹`ð­oÀ ÂIÒè6‡æox£.-˜¨÷»¿ÐKâÏêÝ7º›þõ~ÿ_T–B¥}â÷ÉLjEž¡P;J®!«k+² Ñÿ ¡4Xendstream +xÚ­Ërã6òî¯Ðm媃'GgâÉ:•8Y¯w÷Í–(›5©)kœ¯O7ºA‚%g+[:°Ñh4@?É™€Ÿœ¥6:3³$3‘ÒΖ›+1{†¾ï¯$Ó,<Ñ"¤úöñê›O:™eQ«xö¸x¥‘HS9{\ý:ÿø÷›_o®ÊŠy]/l,æßÞÝG˜Œ>¾ÿt÷ý¿n®3¼ûùžÐ·Ÿnnï?Þ^/dj%ŒWÌáÌ€Ow?ÞôýÃÍO?Ý<\ÿöøÃÕíc¿–p½Rh\È—«_³,û‡+é,µ³4D$³LÍ6WÆêÈ­=¦ºúçÕ?z†A¯:µƦ‘U&ž-€XYi¦wYD®-#JÈ~—•œÚeO…»Ü-·‹eUuׯXj|U2 ÙžLÞSMÌ®ƒÙ¥N`ú£Ù_ +Øô,žoò¯åf¿¡F½ß<;‚›5}[论¼.š}K’šàÇ¿0²©ëbÙ•MÍTÝKÞyÈÍ•ÌÛb÷êÙʪ"(_.‹má&Ì*A=„ÅÉ(³V²‚‚¬Šu²P£tÛúœkUdScaƒp ‚hÆû‘D™†m#šèDÝøLc0‰Ì&ñ僩Î|O…3ÂŽ/–ùò¥X´åïÅÉÙƒ¾‰ Œôâü=Õ„£µ‚‹ÄʱnCµI‡Ã×&›ç›fÇŠxøŽ Ø4»7êïÂí[½nvÜãùùÿ[K(·Ò'z^Ö„{z늼B,ìü?/E=pq:`ÒHªLŽ•ÀK§bEª ßUÞå!gü’ªà¦%pw-ÓymÔÌXQÙRWUnÊîÂvÚk)À¬¥Ž¡[÷ÀpÙ¸ïŠYáîà·øº-‰€Ú[jlònOPõæV)üòÈ[®”·%Y…B^Ë9ÈI-':|ë†éŠ¯Ë¢X+ØO-Äü®¦þœ>n10~GÍCÙ½F è®ÜV<ÍkYZÜ •„sóÄržo·`÷­g»Íwy‡‹!a{ñ‹ñêèðø44œ·Ó,øâ„_g +,qaËÊ øÞÚ±1iíÒðàÆ›ò¾vâ« £{§™õQf Ýy]ÖÏ4í£cw ¾ Öc“N!‡Í«#´k[…mC.vÉd'>I·‹$Ÿ›£ã‘üm⤵Ê"a¤äxÐï™´NcL#“±Þ„ûz´:ÃÊħàböœà$‚ýQd¯Øp–ßXÐ÷̘!AƒÆ+ZÃx¸J™wþæ0¼Fh5æ Xɶ—uä¯Ðñ¡ú¶g×Î$á+>зæöv¤ü~ß8ˆ‘Ô,—p|ž W®¾é;eUHuÞ z*\ÉK‘ﺧ"ï.ØAéT§—eè©&„W2Ò±•c)ÈÄá]0baÁ1ný{S3ñ&G™ë¼vZ]ø•–úœŸE\î™à¸–p›|÷ÙÙ óvJß¡ÔP첆®JP¥í„"ƒv¤`Íi6VLO +·¤>N%Ù`?˜²ÓãÌçrÐè~:÷£I÷ÓP÷aÌC‘·M?U<ô•cÂCÃa$NC_Ih0…)¯v!)$™#³ êR^ìê â$ö&‡x—x +MÛdrˆ LnŠwLÖ•Äl]@⬠κREÖxRì Uab5u) i¹:f}ø_-Qg*‚dõÄ1¤:o‰=Uï/×5\°DÅÒ\ÁMˆ0ŽG`~™Õcøê Šºaw»t™„区èÍî3QöK >Ì> :W”‘5Å…-8’<•ñ¦'±CkÊeÉi'"Ò6ÎÆZÐ[•Ìb§ŸøE«ÂïÀIA"å6B†÷=r,Vïp8ª7~I½ +Ô;àËê¼Q½±Ç©7¨ÞÈÞ©7¸',`‡ÄÜx8&Ja>ž4óõQæÕØ!¹TJý™i/&ÙÏ{(I!÷¥!.ífg»ð­šœ*e£ÒùÍÚ%å#N(×*¤œWœ¼—í©x.y&®Ž¦ì”ªKHDè®Ⱥw®ŒÖÚÌQVDR&@]*We»lpbÎ×ëSKm<º`h^ËQ”œy þUÕ<§'¦à2æ8\¤i¤Lê^`SOF O;®øÇG‚Ú™„«ÄÆNªíš-A4SŸQ4\‡ë&¯—sžò’¿²û{&߉3 `V~ÞçI¨2Í{w{!ÕŸç©Ü5NËm»rÙ^tzBÇïÑSMHqìö„LŽÄ¸Ï7î +bÈ?Ü ‡í¾$„ž'¦®šg¾ÓHϺ8™Ù|¬wXgV|êã F>MMªý…Ï$ǃ̪ä8gˆzH)†»á!lÛ>Sækb÷uaÛúL¡0l[q¶÷ŸNŠÃköKA{¢RÀ™x¦À½›X˜?ó¶ö&Ò4~Ûÿ i,b{žÀ‹A?bÌjá¥F©ÕY¨‚ý©€FH Õ2”KÊ&‘¢¢ù>Péè 6jeX ~†tOBù¼ˆÕüödc€¥V¡];Ì@‹L–i" +`·Ôa â›»š}×À‚fáš<ãEÀÙ­)V£›EX^*`~{ZB‹rw®j¾]+1/¸Qn¶U±)êÎ]g ¢¦/?™”œ¼É’(Ö1ìc°·í¸ ‹â D] ïZM™Æ`¬}§ûƒØ‚™‡×&Š¯M袤Ù6` o.4WáS%¿qeŽ€…¥ÄÛeˆ -¡ù* ÑÅ—}^I+9; â‚(û Ë—¦i f‘Ó§vÎ{Jº“BÆë7B× ~´âœÐ º&Œã7‘ w¼b×™œãµºÞÖЃÍwøÊQ“3qéihË%Äô7êZV¸°Î÷3}×Õ +Ó'“Ç¡^€ÖØ,c«ìÎ1pÊ×w:ÏóA‚—.Xº¼ž˜”Óĉ7þ|ÅW-¯#lrt1¾Úáeß„³4$X®42ù3 +®ÀŒ/ª·á3°<Õo)Ud$X\OFïxÝòåDH#¢8êÿ(¤çøžê¤8“c!zN¾&Zùë/º× åY¬‘î¢qïÃoŒzÍv[,KWùCcH¸6‘ó[zÛP§E™DEcÉX°£¨¼ú kž*oÛò¹.XžòàË`¾¾JâÒ¢£âû¦^ÔÅsî\°ÆG1b|ÁS?£«FtNmÏ’Oy뇹|\õ0ˆÚ6mIEv¸MðsˆÀ¡EkW˜ô鶞D’e<¤§­coáLX§<؃ȻŽpî Mûg +@x)bп4;zu¹K×|£1ÿë…{W’’ga­¦aÿènà íü†ðÃÖµ_à9ÁÔX-MUzÁy«~šðÒS†VðÐŽ fø!‡(†3Éx½”¸aÛÉú!|ód¾Zñ-Só2 ‹)#Ý iâ/%îC˜ƒ®÷; +f\ÃÔ¾"zóùd Æ¾â@RèãÊëÖ9†!3fÁÉí'ƒT|Í1ùpîo7ÚFFëÉÇ1ó§ù—ÿ“3üaÉ$d%jºÜÑ"ŽR•%½T¸Ó69–Ýê4²©J¦„ÿ1VONendstream endobj 1266 0 obj << /Type /Page /Contents 1267 0 R /Resources 1265 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1256 0 R +/Parent 1255 0 R >> endobj 1268 0 obj << /D [1266 0 R /XYZ 85.0394 794.5015 null] >> endobj 390 0 obj << -/D [1266 0 R /XYZ 85.0394 690.2056 null] +/D [1266 0 R /XYZ 85.0394 568.5356 null] >> endobj 1269 0 obj << -/D [1266 0 R /XYZ 85.0394 665.1198 null] +/D [1266 0 R /XYZ 85.0394 542.9142 null] >> endobj 394 0 obj << -/D [1266 0 R /XYZ 85.0394 302.1184 null] +/D [1266 0 R /XYZ 85.0394 177.2349 null] >> endobj 1270 0 obj << -/D [1266 0 R /XYZ 85.0394 278.2032 null] +/D [1266 0 R /XYZ 85.0394 152.7841 null] >> endobj 1265 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F62 995 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F62 995 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1273 0 obj << -/Length 2998 +/Length 3133 /Filter /FlateDecode >> stream -xÚµ]sÜ6îÝ¿bßNžÉ*â—DMžÒÄIÝiÖñÍ=´}we[“]É‘´u3þ÷PKiµ±ïœNfBˆAñµ‹þ‰…Iã4—ù"Ëula«íI²¸…µ÷'‚q–ib}wuòòÊyœ§2]\Ý´lœX+Wë_£4–ñ)PH¢7.Þ¿ÿ÷åëÓLGWç.N—Ò$Ñ»óÏzùú§Ÿ^_ž.…5"zóý럯Î.i)eß_¼¥™œ†#D/ÏÞ]ž]¼9;ýýꇓ³«á.á}E¢ð"ŸO~ý=Y¬áÚ?œ$±Ê­Y<ÀG‹<—‹í‰6*6Z)?³9ùxòË@0Xu[gå'’XªTÎ 0h“8M€Tfò8UR9öÍ}³in¿œ.Ó$‰þ¢aÓ¬ŠÍ]Óõ¯‚ïºì;þþûÕÑ‹ Û$×Oº¹qž=ó®#âTÒmæiѾh1èwŒIí-,Õ ›åƒ€@ -BĹ1%”ÊXe"]d‰ŒM–“‰]à]f›T D‰%s‡ñ¤"¢+ø_F&4“Lf‹ÔØXkw™Åç…ˆçŠpØ]u/7ñò|+o¸Ð"¸“§» »+!ìuoàôÔ€ehÒùÕ]IwJU€*T†¯4˜á…$A„V ØÜ÷USóÈlTu4ÖMÏÛûM¹-ë¾\ócòC(§ÓiK›ÛE¨¬çé-Íä)Àþ=Ï:C“RqfÉâɤČÓJ“ ,F>K¤±PàŠxM¨çVº¦í7U×Ó×ǾèðûódáqH|h‰º”JGí©°QÙÝ7uçf(’V -ú|{ñ‘¾?ïÊö Ûâ -®`³Í Mnw›¾5ŽhvXfW×mü-1Éåeƒ ¬›¦ÝVõ-­ÿ =^yx©på®D>sí){<ü¸ÖŠå‹u±e¨+Û?Ê–à‡j³áu`©Øl¾ÐÛïÚš¾{"c" ïwöwÕxUGîtýZQÓÆêTDõºìK¼9¨“fù^ÀÎèbänð>×;¤—dÀuI@ïŸìغDlñn¨meÓ2á‰ÉBHÆíãräïÉ+”BÇiš›…1Yl¥t¯Û[öM—Að—áïc÷lÒEv>–+v#ÀŒú€'kâ< „G„Ãë1N¨±øÑŠdž²C«M5HÊ솬 W›5ãuwÍn³ñŠ¶-êÛ@‡@sBÍ/áÐX&à\F¦]87*¢âþÞQiîÛ -´õgS Rô´^un*‹v=+ÜSa`½fV»’é‘›Ì.¬X—ž(#ÑÑåMIc½â=Ο 1 ÒβS+}ß<”(!_Ì=_ -ÚF…{Š„‚íhjåžkNA˜EÇêü)~\—›æCSÊ+>áÝq¥¨ç8P6¶ 0e”-ÈuÎ?I%åBç"ÖV?)Ï€,ÃZ{$Ë(.C’‡i†´6–03`!—Û¢_ÝMyTàYÃ~;Šð¨@:Sé˜É#šY¬R%¼¼ë5)§‚T²e×Գªžtþ¦¦™mã½~u÷åªBs^¹HOŽj!¡•›0¸V|S©8nÑtžÍ¦È#î!%„À2köºqÏ j´Èø UZnÁ†2(7d®»Œ¿ 7ÌÅÝ)ÝqÜÆ|Ü•‡v-AsV‡GÌÄ]ÆzŒ“jAÜUZGg˜-©¡¹'`ÊÝÐ&Ò¬¾ª1¡ÁŽò¡XùºëJ{Äí®óôû®ÜÜÕhHâU¢Ó±Õ /W™t9TQùçý¦ZUý ;©Ž5 ~Ý‹¨Œ…bE§P3dPp>÷…—!ÉÃ* ($3Ùþä£nê2¨Á!~;&=ÅǘÌÈÖ¬3yÌX(’‡€€Ù;骩KRæ8Ñ?4”T°bÌL3C9 "¢iÑ($¿b’‡»jŤ]5…À5ï$»ÑùÏdEÂHÈÄõ$çÛGkˆ  -r·Íä¸Íìõ?'(¯ßüH•;¹{ÁXàyÙa ~h‘Rb'Ã<ØÔ©Vµ1q*òo3˜à2 82`1ÓñǣxÜ\eöÛ1è > Nã\¦éˆÃc¶¨c•™œ%M¹‡SÕ ¥s{9·‡»=b)éì>0ÃquW®>‘^å*«$Ÿx§â¶¨jßRè÷† àÆ,mo~4áªÿp‡ï¸«ûŠ“º‚Ò‰+&pÓìêõ$Ç£fÅWK(Í…!;JË1;ˆàdî`vù®`¤ëÒ%9~Ê5>“ŠòñfÉòÕCXq,É"|BÜ£àøx—/ãVt3‰=;:#ù1‘d€¸ë†½ ½ ÆûcŽî¯çRzR¾Ì§m%™Sã¶ùc23lº.o«º¦B’™ÖC¢®,SÑù' ö’ìǂĘ ïÆ_PC©§zIÏV/ q':ªÆ²dmÔsAß“€3/L¨÷ÈéTxÜù\rôL'ê±Â”lb4ù5S\†$çjÛ È h_)" SÔÒ|;&Š0‰A(¡ÆL/"Œ––Ž™¢ÓÒ\LâDHõ¤ÌÞ@ 0Íìñ÷#á3WgÎÅÀiäbÈA+L¯ì$òÖ&Söžu]WÝÖ®ÒOÉË°†[ÔˆÁÉz½Ï|ifäÄ‘ZM#cˆé;†%J‰FHÛª®¶»íÜ™ÆWïOoæüá6B'0VÆN`&Zœ£Ö¬åçÀM³ÒÝQT6ƒl»À^`‹CQû ±0>T®¤š«²r\;"ÔXÛÒ×°Ë…™ð°I ‰ààïdq­à`ê1#t[ös'¼yG}á}Ïû.ØIžôñ°}<4™¿ðÄ CGÚõ©6¼ -Ž­†à†-ïœdûÉ5… Øº(ÿì oëî(Ô5#„}¯ ?ÖË9Å™Ml䛺Üü´‘ȱʴ±x)5-1GèªEÊv ˆÅMO-Vë{ž€[VÜwL쾟êIJ&ÉíÁ`E +|}8ëŸíN‚êÔ|ç»»æ¡&ðèQÞ¡$rÔ1 -J„ò6FE¿ † øÃìÀ0á« -LQ ×QwÆFÒœ»‰¿®2™·I€‚‹¹oîæ"85yC:Ä%NSL6&ëR ã#¢™êÃu±ÕLB¥‰—ÏŒ9í¥eò©´Ìèïk–fÖ5Í0cùpºæÓ}4ƒb¦ Ò²¡õ9á¾2caæ,ÌeLß2:ÄzpˆUKàº5±±c¼`ì­†›üÆ?é§îQ¤_÷‘) • þmˆµ™þ¥ûqòåKZ9‡8‘°ëp t"ßÓÖÇió›´¯¾?» è¦j=³7(¢”žáŸ %|HßxúŽç fà<21§f44ßWã)µŸúûp¤&þ˜”d_¥ì¹Ì圄ý…W›#9‚o&ûç„-¾vRjgå½ëX™±xÁÒnyBN¾Õ£ÆóÏËM>SnòÉr“O•›œÊMüßrÿ˜ÜÔ3妞,7õT¹©Çä&Ÿ#7ù<¹MЇ˜ñYx]ì7¸+èÉ• ßù¾¥`A^­è¯4=¿³’8þ‡XÊÄøgc3údø‹§gÿuÚþ¯`°Ïn­<ÒñÏ@†ˆ0Sȹ±œû?c;dý¿?¿Évendstream +xÚ­]sÛFîÝ¿B÷tôLDs¿Èåä)MœÔÖißÜCÛZ¢lN$Ò©8žLÿû ,µ¤(;7ÉdœýÂb±_”˜%ðOÌL§¹ÌgY®c“3[lN’Ù-¬½; 3÷@óê§ë“³·*›åqžÊtv½ +pÙ8±VÌ®—Fi,ãSÀD¯ß_¾½x÷Ÿ«W§™Ž®/Þ_žÎ¥I¢·¿žSïÝÕ«ß~{uu:Öˆèõϯ~¿>¿¢¥”qütqù†frjŽ ½:{~u~ùúüôïë_Nίû»„÷‰Â‹|:ùóïd¶„kÿr’Ä*·föƒ$y.g›mTl´R~f}òáäa°ê¶NòO$±T©œb`>Å@“Ç©’Ê1°kî›usûx:O“$úŠšIç"ѳ¹qnŒt€"9³/Ýr2\ø—¨3©G«$ ¯„`ÎDú’ +1¹Þ?´g>y"-ž½J÷—@ôYœ+iÌCµ^ƒL¬ˆî·§ÂFåªÜÒ¸-·ŸËm‹55MÖe÷Ðl?Ò@$Ôvw%Amš¶{ݲÓ>–ƒŽóëÔ­K”‚PÛzÁ{œ=Ad€e;qðNAð3†È!辘ÒròÚb˜C±-M-Ü3‚ÎÕ9P^ñR³åí´áŽ±{Ònªþ+Iä펃/$/É£ÿÞ•Œº ̽ˆ5û1h=[=”í]¶'î~LSV7N-ºÍ¢›’Úûr‹V‘b茘oSmg£S@'oŠÖ7Œ«¦;ü»¥Q ´ŠýLÕú­Ž?Ö«é§]Å°Œ©çq <Å™ÔIƒìr‰ä¼H¾Ær„꽑٠nÍiª½™ë½ä¡SÚ ›Ú8n «³§8¸)!ua×”ƒðŠxw\)ê) +xy3òø:eŸ¤’r¦2ˆ²Ì~K a†µöH˜Ñcœ‡(ã im,a¦‡B*7EÉȈF–¢ûãhì1>C£1êL¥C"H”B¥Jx~cʇ© –ܲiêX`UG2{SÓ̦ñVGí}¹¨PÎÓ“áµ@‚Vv¨Â`ZñM¥âˆ»E%Ðy6#¨×*Ç2åk÷²qÏ ’ÔÈC¿›@ÈhA‡ Šð=çw~n˜ò»c¼C¿ „y¿+õZ‚ä ®˜ð» õ%Ø¿« c>/\bhᮉi#nVOJLhУ¼ÏVž6Bi¸Ùµ×–ëiN[¢Ó¡Ö -W™t1¤Qùå~]-ªn‚œTÇÐȧ­ˆ€¤ÁXÈV”‰¤™þîÚcœ‡(_¨0âf&ÛŸ|ÔŒ›AñÇé1>G$–¤UC"™ Irï¨6„²jê’„…qNt uJÊXÑg¦™¡Ñ€lQ) ¿b®ûàšË¦°sÃ;I/dtñ;i‘02ƲÆ0æÛ{kð  +b·Íä¸ÍµlõŽ/#W¯¥¥;Øs÷‚¶ÀRò²í¨ò4vKæÇÁqœZ UÁ3üNƒ1ÎC”SNÃÄ(ãê¸c£›+ð*?ŽFñ9As™¦C"i$€d&g~Sⶢ¶tÆ{Îøa‡ŸëbBé´Ía»¸+¹®ò«$OG5ÓÛ¢ª}a¡Ûׂ´cµ½k‘ý_5€î®î*í +jH,¾éÚU³«—£Hüþ{—Q(ÍévBr”–CrÀñ(ÜÁä ð]Á@7¥  çè)—øXRH͇›%óW÷ÎÅ‘„Œ0„8¸CÆññ.jÆ­h>&’6 x ä ^ `Ï¢ÛaÚ ¦UÕ¦êªÏ% ÷†D$œÙá4SNƒÏ€?BŒø#)îÚ~oC-ø0ðôþ˜£ûë©Àž„/óqqIæ” B»i>fúM7åmU×”FHRóÁzˆÔ%g*ºÄ._’Þc[PóùSáù *+u”õ1êÉ$îXgCÑXæ¬:Në;bpæ™ Y™^èv:"H=Ó‰z.“' ÇL¦66ÆþˆL‚1ÎC”S™„Šm«=Ø©Ä‹ZšGdñ"Ñ+%ÔÈã©„Ñ`uˆá/:)M9Ã$N„TßßÈÆñ=~!>~uÚáL œF&† ´Â ËŽü¯m2eë ±gѶÕmíòý”¬,4K¸eAåœtÃR_ÔIÇF±ÕÔ2„¿cXâf!Цª«Ín3ufňñÕûÓ›){Ø»ÐL¹•¡˜ð(5kù¹A‡¾=:ŒÊfsø­á:Á +ýCåû¾Ô±(+GµCBåµ ú]ÎÍ„‡jiˆì?—Q3קJ3önËnŠEáÍ[ª ‰cXOUó°ˆÜ—šybEm_—vÕª5¯‚a«Á8åý·SW‚”ë²üÒÜÆÝA?\:€}Å Ëù”›ØÈ—v¹j#‘c®icq&5-1EhªEÊz €Åª£B«õ•O€-+®>&v_Uõ(%£ä"a°¢ú•ý‡ÞÄ’öOÜ¢F穦K¡8ßÞ55uoÅJ"E-ƒPZ¡DÈocTôG¯˜?RL€F5¬aŠ +¹»S>À0àæTµÕ_W™Ìë$ôŸà˜kºØ«¼!â‡)&¢u¡†ñÑŒåá:ßjÆ¡ÅógB{n™|Ì-3xÆûŒ‡¹…‘uM3LXÞŸ®ùtŸ-M€˜1´ìYh}L¸ÏϘ™93sâ6ã·Œ±î bµå¯ûÕ ”uÓàc…5äØèSÿ¨ªºÿ®8þýŠ’6ñý_ºO”gg´rñ”°éîa©ëX~ô·1_K là¾þùü’z«jë‰]UÜA¥|ðý¤çá;@üÆãw4>瑈)ùø_ãêûr8¥öSÿ¶T*Êb ¦çIÌžÊ\NqØ_x±.Гc÷õhÿ³ÅS'¥v’ß»–…ãïX··> endobj 1276 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.6732 554.0172 286.8984 566.0768] +/Rect [213.6732 432.1255 286.8984 444.1851] /Subtype /Link /A << /S /GoTo /D (rrset_ordering) >> >> endobj 1277 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [209.702 475.7236 283.4678 487.7833] +/Rect [209.702 354.4169 283.4678 366.4765] /Subtype /Link /A << /S /GoTo /D (topology) >> >> endobj @@ -5079,10 +5091,10 @@ endobj /D [1272 0 R /XYZ 56.6929 794.5015 null] >> endobj 398 0 obj << -/D [1272 0 R /XYZ 56.6929 622.2509 null] +/D [1272 0 R /XYZ 56.6929 498.9148 null] >> endobj 1275 0 obj << -/D [1272 0 R /XYZ 56.6929 600.0717 null] +/D [1272 0 R /XYZ 56.6929 477.595 null] >> endobj 1271 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R >> @@ -5090,35 +5102,33 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1280 0 obj << -/Length 2668 +/Length 2260 /Filter /FlateDecode >> stream -xÚÅ]sÛ¸ñÝ¿B“'ºsÂá›@òäË9©ozNë¨Óéäò@K´Ã9ŠTD)Ž›éï P DÙÎ%7Ï °Xì.ö ± …?61ŠPaå$·’(ÊÔd¾<¡“[˜{}ÂÌ4MS¨Ÿf'?¾ùÄ«¹žÌn\†PcØd¶x—½üëÙßgçW§S®h¦ÉéTišýtqù3ŽXl^¾¹|uñúŸWg§¹Ìfo.qøêüÕùÕùåËóÓ)3ŠÁz0YðêâoçØ{}uöë¯gW§ïg¿œœÏz^R~Ž‘'ïÞÓÉØþå„ašÜÁ%ÌZ>YžH%ˆ’BÄ‘úäíÉ?z„ɬ_:&?% Q†ç#äbL€Ê-`Ê pö¡Ž´ÎnÚºnïªæ?ËÏÅrU‡¹»ª®±w[} -cëSf²²èÚ¦¸Žp×å‡âSÕ®#ÆÐÙÄ=êv^DÚnƒ½¢Yì†:ì¶ ¶‹ -·™oê{™·MŸå‰øŸ2F¬RÜ3Ó”›»vý{§(¸É.ÜJg•Ãªò¬«–U]¬qpÓ†Ö§ÄÃW{³7],HK×á@×®7ˆ·jp$êÎ$±äs âªìVmÓ•qYÙl†|Ü–ëª 4ÞøMÚå{ž!l”£ë¢]I“ÝŸn°hî±ãøqmc(Z7²­ÿL„©r²áf‘ ±Å¶gÃ}ôlôT øAãm'n#ú³7φ -löT:@ ?‚¦Ô -—ÝÄ’óó²†!܉ƒLŠ ŽtŲ`æ%ž!LË#ÇÙ÷)4A¯i7ع.±u:T.ˆÃÞÎ&ÆêpçÄ‚yÜ°®ÜQkJ³/~{­H®„Êô Bx qB}‘|O]øþï‹1¾<<ÝÛ×à$¸6¤^‚·ÉÂ8ÇÊ4a-„WW]$ñf½Q×A$bˆ„ƒ!I&=’}(½WPÙr[oªÞ9õh}»è¤ÀÑb³]7^g`ºj¢ï àMwçÏÎÍ¿´,îqà: ÙvåͶÆ1o»Ð‚.þF)¿Ý¦û§²@Sü ÷)nñ‡#¤ɪ.æžj)€j¿­” •öÊéü èªóè‡'Â#àl àwh×k8ië„?"yE‰Ê¹ °Ý¦Ø”Kt[°åª\/+o¬@ÈŽÿbSy{Ï'´=•½0¼Àº1Q@TfÄp›UÝ-õšDàkˆ'Û ‰Ñìmà‹ºk±·—›É!KeíðPhBÊù¾Ì~ØO„’Dçj¢´tiŒÏpn};ÁÎUÜ#ø4…?ŒíXoÁKâ¡øämPì$¹&B(3 è Éè¡!䛣„ày - JhµŒ¾-÷“gܵ͘KVò Î^QSÂw0`'J_J駤[œXcÌx²5í1NS”Èä€8ná¬åncä«r>¢œIU´»*Ä„EéÌý‘ÓÂ0ŒIX÷<ø[¥¥r ÞÍë¢ëp#5ØHH]Yب‡HLr8'1nç€ñ›%1NS”^bâ˜r·±O×\´‘˜ Ö%ÏÈÈ{”Ì»ÍýªáÜÓ<êIJ™æD´óßéã#Lsž-!¬ÿq®wÀC®tetÐÏí²¨šOZj•µßñã#Œ h$ 9`üÙç–“Û!ç»Ð9Â='Üú†ñ ¹z§žvèp.\.¬ Ãu™«2ÁVüPuʲÐuö\9+-?Àˆ qÝ-X”7D°¤u_p'Óy4û³Ë»meÔ]‚è8ˆƒôúHZ•ý^~ò(m6¥Í¡-Dò>¤=D›~˜6¯ÉF p—Â0=Lb†äÆ`a ×}DïøXØáÔ€¦ô6ò—²%p*x4ˆ*ZtГîwè³DP‘Õci«ËÛ"dz[öNz=Bœ1€A‰Ç•b`nûä*$ªÏ\µÈ‰Tà1%dÝ\XöãÒ²î¡ùþ±U‘—…×t”\GWèÆûÑ"25• ˆhæH|•‚È"&Ribrªð8A>ãÅO¤ "Ÿ¢H¯—I“Ë€dû—˜öù¤Œ: iÚŽã÷ˆ†!ía¡ÙÚ¦Ëèݪº$i˜Û•Ö|’ŠæÛÄínf·ÿÓQÆÇOܶȅ~ì](ÐY_ÍK_q€*•{ŸÍ÷¨h!èÚe„Áö"I.³Äžðóm2úsÅžJ2#;g„»™ßÏëjþ§I½HÚm³˜bï:Î?Uþ cßKþ»¢éÿÃs2í4 -$>…í×\žê!v¥ëy±íÊXö¹O 0»ÚžÎ“ªµçÐõÎŽšt_I -"r]'"‡)”]e»ˆUó]f38n9¨ -‹ÙþG˜´ -®ý‚é8Ö6ÝöÆQëC§K½r‹— f†P¸ñÅ_ÔwÅ}7¬R·ýü¬/³œÅÊgR=ãÓ}MpeGüʾŠ_ÜìUˆ³6iáú(Ÿ\ÓÎòö*<‘ƒÕª,<-»÷~„¹¾ ç ->2r'˜ï¥Æ QÔeq“º*;rì݉sín¦Ory’Ad¶JMûr¸½jý5i_\±çû>þÒËSÏÖ›3è4%93pcgî‚Lü29 *¢'ñ¼ËfðŸgçû’œ’¹XΘ[æ·ž|œ@t”Ö -Júž× üÀK>ù¹Ž& Sñ4Å왂`––ŠrWø ˜8Sª¿bx¶ôàÎ(óDO™ÊP!O9ÝÝ…ø|3R©…+8Þ¡õ*ç:÷Oé?Dv³­ñå£qëðí‡{{s-¾h¹žuÏ@4OG°™o×St(¹$B 3ô'kÀênr°ÕÖ;ÙÜ#€N Âu»íjå|¯Ë¡qÄy5ï¹N½N&BŒ`®{˜RXPC d’ªÛ·i°³eµýš”âaû…²4Ïè"craï)*¼§ÌN·Ù¶ Îg „*°)`Œçš?À˜itœ’ä©!èO7›ú°4 ª,AŽmÛî;(rÞ ×ƒß–øÁw/ÍvyW6ž8Xϼmð(ðÍçÅ×p%a¦Æg?¿`ý)"©šE5÷Ïáe…âø¢êÜ“wÀê°¹°ì6@¹ZÃìCÈ­À¸ ¹9;uçêÜ)¾¹¹IóÀH”Í)%ª¢G×éÿ~ ,@eûêdnô@\ìÇ‹ÅîŠ(üØÈ(B…•£ÌJ¢(S£Ùò„ŽnáÛÛh&‘h’Rýpsrv)²‘%Vs=ºY$¼ ¡Æ°ÑÍüÃøÍ翹˜žN¸¢cMN'JÓñW×Å‹7ï®/¯Þþsz~šÉñÍÕ»kœž^\^L/®ß\œN˜Q ÖóÀáÈ‚Ë«¿]àèíôüçŸÏ§§o~:¹¸imIíeT8C~;ùð‘Žæ`öO'”kÔè^(aÖòÑòD*A”"ÎT'ïOþÑ2L¾ú¥Cø)aˆ2<Ð&2¥I–QÐNY¢ÁßO'šÒ1³œ0m?ãòûî”ØOýqøF™Ã)hÀ±JñG8Ã+LžáÇ«K‡= êN̪¼ipø¦·Þ‹â‚X66p=-î+œógžà‹¿PÊoïSy!Þ©qЩqÐÇ·øîˆê[²®ò™×Z +ÐÚ‹•2p€©àÒÞ9]¼_uýpG˜`‚þŽíf;0©øÈ+JTÆm m¶ù¶XbØ‘ëb³,ýaEööçÛÒŸ' ðv³ղůXw@2$ ®aÛ»†1ÜR à‘x¼uù¤s{¿/}^55Ž¶Ã¸™ òc©"ñ‚&$¡œ÷1û®ŸÁ %‰ÎÔHº¤ZYæRiü¶¹á`šäÞ‘|’ÒûÔ»+¼ÏÕ)ñ¢$nŠ¯]𠊾B’k"„2j€–ê E¹9Mî§à„VËn +r¾Â]»B' p¶Žš*裧œXö¬jˆkŒ®…&-ÇIÊì(Ç-ìµÜ ö[¾.fnÁ9‘TÅsW†;a^¸cƒñÈya˜Æ$¬yâ-@i©ìÞ0÷‚TG&PY² ¨¥ê &9T¶1ʉ¶B¿±Èq’²ôˆu”cþ:{Á>]s·íb!—EC>"2¶»u1`5„5¦yô“H”ÍáÑ.œ~5£[ŽOÍyF´„kýÏ[½'îZ­`(c€~5¯—y¹:ˆ4à¥VYûõ o9>a¸ÀF›Ã_ Yn‰1™íZ¾¿:¬ç„£ÓØ0œA¸PïÜÓvΕ˅d¸.sU&–¶nªÕ"#RAÄ„ú‰dÔšç^! Ðf½Vߟ[¡ûæÂQ p^aWôo‹hL¨%¬UGîW)ˆ,Œg’Ìûœ}Á¿)&Þ×Òi§4)$ëðÙç“2ú$¤i;Îïu¯pXÔãBÇÿ©WÅPFïVU9Hà ¢5¥Ð¼ n·±P˜}úü|–qÅñ¤°GRŠ§vÂA-VùjŽ­ÿaUŠ{›Í·¨h[4õ2Ò  ÞM’Éñ#°'ö¼ £o +;·P™4û„[Ed¦0eœífU9ûf°ç A}¿šOpô)~椖}­ Øÿ©ñÿL["2@|âê&uZYTX‚êPìh„gz¸ÀŠÿùäR„ÐxY‡ÆShÛ¾î(¹K]JsÐHšJ±ÔèTÜIïÿ*ôê}¦íGç¡Aís7zåúN$hBfõòUìt·²ð|ö *ôÛÐ|TìX‡jqÌ9÷ëYîÿ^À®Ï.í¿ì[{:KšÖÞ@7:?ÚgÒm#) ä†!Ç)t]c;Mó}bÓÙn98 +‹ÉC¿áxkÙ.‰Ž3-(‘㣹_8mýÍé2¯ŒÅÞ%dj†P(x»€æÕC¾kºMÊã'ÿ‘0ë»,ç±ñ™´Fa|~¤ ìHTé{øÕ¢× :LÚ¤…êQ>»)¦ÝÁë5x¢ëu‘{]öînÀ¸¶ û +2Z;˜õ2cð¨@ê‰(¤*‹†ûWÊB÷Wî@ÿ†Žž¼‹žûñþïtér}Ãt¤b8 J9ДíkÞþµ|¨ú~˜endstream endobj 1279 0 obj << /Type /Page /Contents 1280 0 R /Resources 1278 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1256 0 R +/Parent 1255 0 R /Annots [ 1282 0 R ] >> endobj 1282 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [353.6787 560.2827 427.332 572.3423] +/Rect [353.6787 434.7534 427.332 446.813] /Subtype /Link /A << /S /GoTo /D (the_sortlist_statement) >> >> endobj @@ -5126,322 +5136,338 @@ endobj /D [1279 0 R /XYZ 85.0394 794.5015 null] >> endobj 402 0 obj << -/D [1279 0 R /XYZ 85.0394 630.8728 null] +/D [1279 0 R /XYZ 85.0394 505.3435 null] >> endobj 955 0 obj << -/D [1279 0 R /XYZ 85.0394 603.2815 null] +/D [1279 0 R /XYZ 85.0394 477.7522 null] >> endobj 1283 0 obj << -/D [1279 0 R /XYZ 85.0394 477.5928 null] +/D [1279 0 R /XYZ 85.0394 352.0635 null] >> endobj 1284 0 obj << -/D [1279 0 R /XYZ 85.0394 465.6376 null] ->> endobj -406 0 obj << -/D [1279 0 R /XYZ 85.0394 128.2785 null] ->> endobj -1285 0 obj << -/D [1279 0 R /XYZ 85.0394 104.5761 null] +/D [1279 0 R /XYZ 85.0394 340.1083 null] >> endobj 1278 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F53 962 0 R /F62 995 0 R /F63 998 0 R >> -/XObject << /Im2 984 0 R >> +/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F53 962 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1288 0 obj << -/Length 3669 +1287 0 obj << +/Length 3153 /Filter /FlateDecode >> stream -xÚ¥ZIwã6¾ûWè6ô{‚•Ž´»§óf:™ng.I´D[œ–H…¤ìv~ýPÄMvfòt P(lµ|(ÄV~l¥r’[nWÚJ¢(S«Íኮ íý <ëÈ´r}w{õí;¡W–Øœç«ÛûÁX†PcØêvûK–N®aš}ÿãÇwÞÿüé͵–Ùí‡?^¯¹¢Ù»ÿ¸ÁÒûOoþùÏ7Ÿ®×Ì(–}ÿ÷7?ÝÞ|¦<Œñ݇o‘bñsaÐO7ïn>Ý|üþæú·Û®nnÓ^†ûeT¸ü~õËotµ…mÿpE‰°F­ž B ³–¯WR ¢¤‘²¿ú|õ¯4à Õw]’ŸT†(.s¤ ‚çfYÊŒhÆ€IKF˜–:I™³%)G.'åCñu]oŠÍ®\÷ý~ºiÆ(D¨ÕpäÙü‰kab°ÆA½¹4ãÜ^[ž5 }®²öš™¬Üž6¥«Ë¬.û§¦ý‚}[Ü»ö_)ål/ê-¶Uõû]‰”cÙÞ7í¡¨7å7Žb³~šº²},[¡ëìØa[]>}õ8‹º{*ÛŽ8¹L¤¹–9‘¹°}F¬Rü‚8'2È É™ 8Ç^ùYEvêÊ-–ú¿]Ùc¡ÀuÂÀÕát@®¸/ë¾jêЯ:”X‚]Ò®ì-ì+UÚã\Q±äRnšz‹;_­ãªÃ^ÑAo}¥³my_œöý‚Àjã*ìöÏÇ*ÎÎÂñ,ÂX,É r0j(]Gp"¥Ó†­àZ¥Š -,îšSÛA-©×pb©äÿßÊ7E]7=ÎR~Ý”^¹PÖA^ÅsX³_/`ÁrB`GÖôTí÷Kw%~»jZß?c­o¯Mv‚…õ8Eó¯ÆOœ‰fÕ}ÀÛÕ€³ÀÏCpŸÞ‹ý©$3 P“kIŒÍÕËx4二G‰+Jú2”¬ÍÅËÓ'®…ùÇp¢Ö:/àsÙ{‘åÁ? pö=¥¢£ -O»j³õ`ŒkjÌ3¿3,"ìl«ºhŸ‘âLóØtU_]³ì±t–‰ …Ö‚ïvÞf$Ú°±SF_D¥å7u0Ÿ§²ü‚%7ÙÀH’,*üIq£_Qö€ëeG.¯ìª^·MÓw3ES -=¢_š:q-Ì=R4UÄJ­Ç“ø2nQ½6«O‡;ԛɚ{üzM5èÐ6h¶Ã¦~WôXBYۀͿŸªp–ak°ƒîvæ*»~Â,ÈŽf5“Yd¹ –À%ÒLÀ£ØlÊ#ƒ3FãvéÌB<˜Á¡<”WNŒÒ& _À;…žƒ 3Ã1Œ( ø«Œ!:ÏÙŸ –„ñ±ŸY–(Ä0¨††‹ca? -c…bì1jW¦« 3¹ZM’ špmøJiE”Ph5ÂP¹d(/hçñLÿñz3ˆjÖ9ÏfQ¤h‚FF$eÞ`W¿¯¡ÒZLƒ²ßëYžðí‡_½m`G«á¦ÂÀëáÈ~S9až ¹`ˆ„Í㦼•i0âÃq_à„ñvë5~Cø %;Ó¶Ì-áÆšÕPžMEdŸ[ˆ²×çàø¯К[bŒ¶ÞY¤Pìe0“–¡„xÌ—3ª‡5šÕ¶êŸ×ˆ°…Ú Ø¤†Ð´3œ`l‘ka#`Sèe´ŽÏÇrS¹Ù…´‚†8Ï"¶¹²Ã6÷ÅAPªv°2êpêOˆTXÚ•5–Þ~üüùæ{,ÃÆë"2†9‹Sߊ~ø¤)1Ü݆øTmŠ½ d8=”uÙb#ËŠÉVÃÈ´Ù¯èÛçº8T$žŽ[ ÃwºMEÏári,3+i¼ùx ÀÆö!¸×§÷Cƒ üëa‡¹æãb±ÁàÜ­M>]€ë—àÃÁg†¸^YÃ|4·Œ Ü0q’)¿ÃÉç‚´ Ï/Íx.¸‹±7Dòp Ècô-–Bo¦¾L ½u‘­("˜œÜ—pvJÏ1–«øØ‹U‡_Fñû\m ùP>Ï¡[;ˆbàfFϬ3ŒY»“µUŒè†“AH 7†Ê±¥9»ÐqÀãèc¹kE Úï›8¯¹ã¼9µH¯c0‚ÊAX¾ß7OX ¡A -Õ÷Õ¡JqhNq”&Äø›}³ a^÷¥|r÷닱äpñЯÂá€ë8Œ\)¶+ïÛ²Û­Ýö¾Á¹ø~‰ì¹ûöyΉ3ÊÉi._ÞBâZØÃȃòœ(1âh·x…f„ë-¦Ã -˜GñÙ ^µ®ã~-³¿u!:3’X3 ÏîÊ]ñXyÕ -€ã¿h÷ñvUý€ô? • ‰Ç2ˆ ÛçÀ%ƒ¥ßçß`a³+ꇲ w 7Q;œ¨Oì ¸[n±Ü·pç¸wª²Ÿ»L†¾à&êÃdâ 8-8£wà˸(#[ „]@©Hî—ù±èîÔ#-æ0&cú™p¥êÝsê„…Cѹû,è"ŒûP=â~¡±Û/]ÖÜÐÛõxk<šsÕXú¦í¢ 5:ôм+>Æ{4,¦jÏ\àò݃At945‘‹³©‰\F pt<—m;XNhkðë…áy°ž.7žæÒežšÐ6ŸÙÜ„5 -Ò£'NåSV°:·O)\êÍuZ;=;W–2‘+Ä#OVh’gûæÎ[%y›3Q nÀ$W9ë*>àÂ"Ú¢b¯ÏÂ]ºC’[T¦Íà&ûâp\ÚV‚l4m(̤åQ¸Þ[ûöùŒëÝØÓˆ]ŠÓ¶ƒŒKw©D×’Û—zÀt§#“×Û¶îÖ§íqÝU”óô/nšÙçNLóÉÅ$x0pMÍ“-úœl)¶à:}ÕŜ٠„šØòóÛŸtwòyà{t1ù¥{]qÏ}é±KÐìßÎÞ‚™K‚—~;ŸÎ:SŒ‡NƒIm~N†~Ë@@§„ƒ_sê»jëSªn;˜ÚͳÖ0CJw2Hçq·õÿœ°¶!Œqq4ÞÚ¡í|k‡n!>rÅ8[ì´Ï©;a˜Çt±ŽIbíð¢w¸äÒ#ÓXó<ˆ&×þ8‚jÝÔëóÂò<-, K]rñªÑ ’’Ò¶cÑuØÜïQO;lºÃúwquç;¸¯'ÀŽÔ«è—6swŽ‰îÛâ!Ýq¡~,6_‚zOþ6Æ[ƒ>Áö&Ì1ûC‡–´K¾KÁÈh´Ð ¾Î¡À}å¹gÈuÙÛWL¯^ôv8Ž§}qöĵ0½˜d¨ùx~txad8ÌÌàeÃUÐÛ]ÉKÜ·—]W<f4EW‚«Ÿ¿.B1Ün\sYšC÷H "ky4#ÒNÞ7:Qq2 ƒHè ‡èà[Î@àØ€@É”!¯/Gy}1žÒwr˜¾É߀§‰@ÀYÊO\!ÂÜùG°u„(DXð•‘ÑxŠ| üŒqq].­Ð» @]Ê ’p ±‰ˆŽ2À%Ç ‚àjŽ -ŽˆŽêJÁ§]qˆ®ž\[ø—?ÄI´Ê)óyød3®2ÂÀW/ÅÍST Û˜¾Oßz[ÁÂËé…/ÅãÃ3†#›4Ý££“¦DÉ;¸6$,&xgAÂôõK¦m`~ñ)iN,Ó¯¼ ¹.[âB`s¡¾Sþ¾\û‡ß~†oB®µ|y‰ka#|“‚£ÇË'ßX¸ôˆðj½å°>_Æd– —¢3g+Švåüò ÑÈ@öòB2+ñ¿²«ù¸“d–Ér"ˆž­Ç@(„xY¶‰ëµUÌF;X‰ŒI+3LZ™”6bæBþŠÂ‘Dã›n_~ílŽ-ëþßLß„ã焹¿aŒ^gñÙOH†‰#ø¢¶ý}Á`š`:»®‚~y —ðçÂÉ×mÎ¥wjß[ã·ÁË•+¢ít8M”ÉF·Dhž¿²SMD|±>ã–[êó1%g¥K†4®pžgøD `ñá¹ ŽZá±õA^דŸÛ®\&‘BÇwÀ¯7ÍáòðÞ1ß‚UZè˜mì›fïÀÓ÷¢Qâœ!FƒY1{íhBB«äœŽZ™¶UḆä7DYiÇ@›kqI7Jk©~E5 h!Ìð_"0â¾)¶.E2TDÀåj(¹¥¿E€ã2ÍÒžqØæP uOCj|ÀM©lvåæKXG|ïv2mNûk–õß…Þá¿7Ñ*\Tá…ÆrJÀ,íä¡ÒÝÁÙY’£‚?-ˆÐÂÐWE(œËÒbüIgÂèÇÎÊÍi_„Ñ\®VqF /ƒµ“n·t2B•°CÞçÙ6¸+üOŠãчzèÎظ¼U÷ÅÓÛb[<-m•!ôÒN} ¾«a+ÂND(‹:Ä>¹Ì£O!éC…)qi‘®ö¹´¯-R*ªF«ÄA'|ç!#Ø€êSÕï!:"ëŠC(yAcq_>–{d,º¸à8Ë0Ý‚Æè-DM‚~´óƒ|•êDaV™QIÊxºZï.ØêÆÞ]pÇ{¦xÎõÃíÅ÷oe¶2‰ÑB¯n7³µò„å9_Ý–¿D:É%¬À¢×®ß¾÷éæÕe¦¢Û÷®/c‘²èíû]QëÝÍ«Ÿ~zusó<åÑë¾úùöꆆ´[ã‡÷×oˆbèsbÑ›«·W7Wׯ¯.»ýñâê6ìe¾_Î$nä÷‹_~c«¶ýãK¤ÉÓÕ3tX«݅Je’*)=e{ññâßaÁÙ¨zìüè–H–ò¯ËEbLªŽ‹epY¢µ>³šÇ`-×ô3–KM׫ ORÉx¸^!Wœ'&MÞ¯‰Ì¸^ei +w®é~¯ñ„-§IR­82rËÐÜr|¸Œ5náܬÉ2‘­2“KaE¯~_ñ„)c$1ÍÚv¯ÓXÂ÷ïwbõ¦…­f›ò Çó•í¦´˜Ù,˜*p|¡’ô·ß>T´+-g¬‚%*S¹ÛU×]ò4ê«!n»KÁ¢²êÜœùòpñyn¸›ÓÅPíªf¸Œ¥QÝÓ·iáªlGF›q»}qŒ»Ç­W•ŽÐЗÜ[„es +}Öc£bp*‘ZÂ5Ó•Òõu°*ŠY•mÕSËj„ §6ûññ¶+¹Á_…P¿2&¾\JP»Ä. ´žF çS7÷Éþ•+m‘›|57·o³`ô•ÔhØÛä…ßæ_K§àÌ>8?‚yBJ0넧pŒ1°}.L46pxÄ0P½Ò9ⱂûÔ©\š÷áqîÎ̓UZ/2ûª¤–urøöøÒa£ ='ƒi<ÀëÎíæÕ µi;Gz¨zGsû NÝ„q/ËŸ‡Tyz½Ö‹½:‡Í‚üð|‰¯9“ +>Ρ¯™Dç*óžÆŽ»š‰RÆ‹@tµŽG͇vì&¯ÛÓ<‡÷)ñÿi¾. +@Jõe]ÙË…væΫxqÚ ýÚ†'4av,âçz»%Œ¸søÓ×[“ \u—9¼œò•°–¾™ƒR' €k㨆%gAŸ{ç>ƒ5z§ñ¢XD¼óp41A#Çäù4ÁáÍ9ÙéPø‰à”³L/¤»79ÕþÐóg õ.dr1h; +ì:O3qþžç\§/:pÙ›®›¸kÛ¡?¸eÆ0}’çE®#²÷ !ˆQÁ,„;àÊQ ½fŠ¿`ÀÆ_ðµ7Õ’+w³= Å@-:kãPù÷±v¯:[ÉÉÑ&®ªöœ™…Ô|OjK,wÎ 1“j²Ú_±^W É×VðÏÏKã1ù4NAº”‡ '‡¤‚Ü•Â\>×úkr ™ÛŠH~:—‡E3#þJ&äfì¥-^»XbêÉ2u"—Ï!žËr±Â,ˆ§Zü¹|À”A4,Á™âoËåýÂñ|åÃ\ƒ4-•\É,M˜4®@ásÙEm }]Q Zæt²:?Ïo»" g¯ “%Y=o@±0IžgÆ: WòO²H ìB§ùy0 \6À¨ïcx.ë²^⎰ƒÞ°© ‚ž­æÍsÑcl©Àìf©ÇÇÇj]ctŒÁ¬d.ÂÆÇ6l#¶á—bÉ0QDXYLØŒÃHHEý燪¡Ö›ë¯^S6ÞžÑÉ,ơ݃/«°ò´t‰O•RõÀé¾jªŽâÉyTôD.¨ëV¶ …d«;ÐË—¦ØÕk"Ž%,ÐÓ¾nûG/ €¿á`¦Æ}ýGuXû…Ø-ãæ¼øÀuD¾Ü‹ rÈ•– +ø’K6•\Šh¨{_3»‚€“F>½ù™Hw£­oÈѲÈjoYlÒ‚/CeL²è?huÎX€%€ –ߦ7:‹R.\%§%‚bFOEC7"ëR™- ¦‡¾.mI·C¥]uÃDtÕ hÝ9ʬœ'pëÿ¶JÌ`4M¹;ŒM¹;Ló?H@Ó‹Ae÷çŒýX8¾8Nåẩ3DÁýòvàØ ë€WÔÎì£ݦmâI1­ƒbÚ)¦hô]#.ŠÒ3¶Ç¢ïixx \ïhèŽúŸ1Á>zíë$Ì*†cî|7EF›®¸™.ô‹õgg‡ÖŸ¿÷Q×lŽ³½=f_bsK:RK¾†ZÎȘ·ÐŸCV'ùŸ”WgL§ýÝ3ùòêIoljƒËž˜e˽R3R/„“«Ë\¹Ç,Ÿý¦òslÙ³¶ãUß÷Ž™Œ[úÙtš.»Ááªq4ûó?|=d\Ì1‡¾Ìµÿ#åì6¥¿2åpA\Ps\°# ;A=¤*„¥«è«EE_@€å;5/ßÉé7Iy1•â=ö€9ÿ O€ÀDÛYXŒ¥ØC`ôË3{¯£¿à˜O!€9. °IH™!À‰¿T’i¢ŽÿÀBAï›ÿŠiús9vžŸ(6‹,OT‹8¥è§éCgàZQý©F`Šendstream endobj -1287 0 obj << +1286 0 obj << /Type /Page -/Contents 1288 0 R -/Resources 1286 0 R +/Contents 1287 0 R +/Resources 1285 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1256 0 R -/Annots [ 1290 0 R 1291 0 R ] +/Parent 1255 0 R +/Annots [ 1290 0 R ] >> endobj 1290 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [297.8955 476.5924 347.2449 488.6521] +/Rect [297.8955 313.5049 347.2449 325.5646] /Subtype /Link /A << /S /GoTo /D (dynamic_update) >> >> endobj -1291 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [324.9335 169.1118 381.8296 181.1714] -/Subtype /Link -/A << /S /GoTo /D (zonefile_format) >> +1288 0 obj << +/D [1286 0 R /XYZ 56.6929 794.5015 null] +>> endobj +406 0 obj << +/D [1286 0 R /XYZ 56.6929 670.419 null] >> endobj 1289 0 obj << -/D [1287 0 R /XYZ 56.6929 794.5015 null] +/D [1286 0 R /XYZ 56.6929 646.4658 null] >> endobj -1286 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F48 885 0 R /F62 995 0 R >> +1285 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R /F39 863 0 R /F48 885 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1295 0 obj << -/Length 3537 +1293 0 obj << +/Length 3875 /Filter /FlateDecode >> stream -xÚ­Zmoã6þž_áoçk•o%ôpÀv7ÛKqÍö²¹Cqm?(m +K^KNÖýõ7Ã!eÊ–“wØ‘Cr8Î<œ!Íg þðYGLfj¦3ŌdzbsÅf+hûþŠ»> ßiöúîáê›Rϲ(KD2{X¼Òˆ¥)Ÿ=”¿ÌßýýíO7÷× ³y]/â„Í¿»½{O”Œ>ï>Þ}¸ýþ_÷o¯µš?Ü~¼#òý͇›û›»w7× žÆÆ Ç့ÿ¸¡Ò÷÷oüñíýõo?\Ý< k ×˙ą|¹úå76+aÙ?\±Hfi<{† -‹x–‰ÙæJÅ2Š•”žR_}ºúçÀ0hµC§ô§â4Š…Jf ©¢4“Zf‹Ak gQ"…´,ø”–}/ÔrQW¦é»ÅÖì®y:_|Ù›Ýá ib“]L¶ŸêF$:J¥ˆg¡gb½&䔜B‹(å2 ú°6¹X2ïL…xÞ¯¥jª¾Êk¢>åõÞÑe1Û@ãf¿"§ö¼)©Ö‡-Tiö›GX#¬l¶à Hè J<ÊâXX Ú%ª%ž[E˜b¿ëª§k>7Dí€UÝçMÕî;¤(¯Zj^¶;*äÍšWÕ“iˆFJµT”…øæ÷NHeJ£.Q”¿R—‘Út¤Uª]‡/M¾1o¾ô‡-ü_Ôy×M0M“H&±tCþöO§Áõž÷$.í.ßìžÌŽˆÏU]“"¥Ì¢”eéX‘yQ˜-2HÄüÑ fP¡T/m¥Ýn«fE”¼,asÛÆno½ZÁ¥‚mƒu–ÔÑNKCúÞlh>ï["v¦^R©ß7n¶~]uTòFƒ£Ç°XçÍÊXÍ -ÜœÜ\à$†¾u»Z™¥â •¨¥Yæ`T±stT·EC…3G´3[‹†iÓ(µrN`ååÉ /»u»¯K*×_“¦è‰´nŸ©°!ÓƒÚ[e%áñ¼h7ŽQÕЗl -9}¼¥rR÷¸3Yª¡ÉÍÜçŸ×n _×ÖOf¬V²Œ£aáD¨LÁæ·Ë‘­I殺HN)ƒ%Ñ|-Œµ -hp[ T«²7Göe`­¶+xÉÞ®ÁNF’HZ P<›Òä5'4>WýšÈù”™4m³pKÞ¶ àr—Éü÷ÖZ ÔnËäÄ’w¢Ì_{‡ºÔ²º‘Nå0ve,àHÚ;9(g÷3.{«ÓBŒ‰ËD¡ÃªnsŸ±Åi¤%×cW°&ÃC·¶£J··*È"»ÉG©H½¿å5Ävq˜Y²¡oÙÒ €ÎTÈ·Ûú@s‘*3{nw®h½œJAc£b Ú=–ÆÔÃâÑP†€$7SYuùc=âìnXÄ¥NÆ*±ó&e’Î÷Ö…•‹¼°0(Iª#Xöu&æ¶;¸ñŽèk@Ø“qƒKOì?°3ékPÃá€×ÞJ( çMZbv({"üš¯Ûº*l 5?.&ÌQê¢YÂyG:Íâña÷ržùhØgYx×Ôë!9öáäë_ˆt àâ,I_uÂ^—c¡—Õ›X¬mÎ@ cX&Ô˽&f{«ÍI=žÚEé ƒ­ôž:¸"–}æerím»ëÝè*§‚ûøŠøzw‰1ÎrØNœåI™ùƒóáç‡)8ƒ¢ô)'…¸""uâŒ1#H-^ƒu%b81ÀË„  0À5VªŽ¾½o%µç5Õ†-ÃÊå@ÙzQæ/œ°äöQ+œPC2þik -ˆCÑ1'Î'eªO¶Â̓— ç«Bd‚£PžD¡圧¹X¯€°×Ýi0—)2ŸF²ã•Ã%/T*JµÌ^ñÂ × ^è{¡¬k.½mŽÜ¢.ÉåËûNlLB꘩“™É “ä(‚­õž±qâƒøöíÔ§'" ã…±™Œ˜b'ÇÄÿífŠé—Ñ.ìuí†^A÷\Uyyq$âT¼<ýÐkbþ1è1H[!f à@OÏo߇¥§`O°—œÀž>=}{úu؃¨;S‰‡Û÷ѧ›ûßÜO%IQ¿ú£ ‘ç,ù3‘‡•øb y'DæéÉ+×=ᣠ‘ñ€zÄBàק\<À™à—²A˜pÍç @ð°°Ê‰OaëC¸â½Ë-aô’¦CtÀZ€Puèèð#/£ƒ`:øË&üÄ2» v®N!ÂŽ9ƒDŸ§Á ÃÙˆéìä´|Qv•E Þ¶MŠ.%°nJ|± #¼9â˜"§ŒS2ÿ…T{@Âwhsd<<)¡–wÔìÎ2$ÙäY¬ÝPw–-\¬d”‘$­ûä è º©WЉ ‘C•Nêg"{GcY|¼çŸz£I¸ôü.„ÆBÀ¦ “NßÇ‚`©Æ¬vâBVO^ÈÞl¶ýŠÿyíú5±üîÜæÅ’ž­$> Ñ]+‚ë=¨âŽ]üE!PQÿŸ>¾%º}¹AêÝ'úº_*еOé&h›ú€[›”6\@âËÏpë{÷}2¥ëVJÿ‰à¢Á+`r8õí{P–8ðzH©ÛÂwó?ÉêRá#uÄØYâo„ŽÌ;D:["ðó? ÂmÓ›]cú¿8>äóž5¼5RôT9± ÀŽwªLô)ƒ°HªAf -RWSPDGé¶yaÜÒC¿ß5Ô~÷óû?¾½½£ZøbÛ9^- x†ÏÀ -–Iðª¸*SOÑû:·Ù¦} +Bk¯7íã‚kt„a £—‘Ÿ§À$-‚kO¨ÝxGCxÆS7Æîö±-žKÀœˆ"qØ…ƒëVw- ­š¢Þ—æâ#€âDbÀ²Pbh'‰~ûÓSB$k‚D –AmèXGµ¨ÙU«Æ”è:oèùÜsâóºj>¿ÄÓÞâ<‘½Ä¡ ív1µºÇ¼øì®ÄF†¿WÇJûæsÓ>7g#»É·X‡BBøgy,BƒIKÄÒ€7mlR…ÕjéúÒÇâ °$÷;ìS»›’ò@óµêìK”ik…Â&ôS (ãF…zðÀ©Ç™íI¶{&ð*oSöôbÿÒ@L·³VÇClPìñU›',n5½Ó}Ns<ÜÒc§ »Qþ²Â*]zž‘q„¿ -œï៳ÿùLJÁ뎎 tÓy‚dI” -_œPö<{ʉeAÒ¡'Dÿ/ä×}endstream +xÚ­Z_oã6ϧȣ¬Uþ“H¡‡¶»Ù6‡ë¶—M´}P,ÚV–\KN6ýô7Ã!iÉ–ã.î°‹ˆŽÈápfø›‘ù5ƒüÚ¤ “¹ºÖ¹JRÆÓëÅæŠ]¯`ìû+îyæi>äúîáê›R_çIž‰ìúa9˜Ë$Ì~ýPþ:{÷ÃÛŸnïoæ"e³,¹™§›}w÷ñ=Qrz¼ûéㇻï¹{£Õìáî§D¾¿ýp{ûñÝíÍœ›”ÃûÂÏpæ…wÿ¼¥Ö÷÷oüñíýÍïÿ¸º}ˆ{î—3‰ùãê×ßÙu ÛþÇKdnÒëg谄繸Þ\©T&©’2Pê«OWÿŠFÝ«SúK¥IR#ô„…(3h«ìZ§y’IB>în¸™µŸms3—"ýƘp$û\ÔuGÄ~]ôÔz¬ÛÅgj.wÅjc›Þ–Ôߋ϶÷oMùM»;yç—÷?O0¦/hiꬨSôvùÔ8l{Îy’§©p{H¹ Sy|émG(9›=¬«Ž¨ñÙ”vkáOÓ¡]Ò³_[jå“ÝõU‡[Â> °°Õ“gxÜ/‘´D‰°ÿKJšæM m@Ã<AQ>[6Ý|_nç]õ§õìÃÉÀXtî™aJžœØKX +&¯y–HÆÌ´y¦ù‹Ì€OùQàÂU7EjÆïí|Ùî6p"G2ðL&™æu!"ׄ#cÌ@E p$Ƨ­]T(…EÓM»£Á‰Fm/Ÿkãâó϶qv¡“²ÎÚã½ÈT%Bgb´Ü­®©q?ØUä¿°«Óyݮ좯چ$z¢åQàš`úuÝF® RœÎv0¬yÊ!¢­–vYìk¯Ê§¢Þ{:¸Œ3S™â‡L@·ÞN{û¥Ÿ°e!“#1½qî:W"K8Dž‘×>¯«Å–SÜy(>é´•˜u= +¥‚åöEMòË-=:ðçõ‹›3jö¡¢ÓÇyz¶0ñŽšd;-ÊÑF¥È©Eva§:‘ܳâŠú²­<_¨k¿ÌI 2͒̈¨ºÁÀâ]pÓô->!bZê¯lcw…ò‹g[Û‰ Ã¥L”ÔÊ‹Ô[Îíf úpÞqº…¯ñŽ@ZAr9$çDj5f*«1QCMOºî¬\åc“Ž-´Wýš<Α³®Øø–S45kûdkb,º pX¥‹sémÑYHªÆÆH–'ÏD(Œ˜iž]v3ÅÓh mƒË®ö»‚îPœž”ëNÉ d¸5z»!x‡]0Ï‹ÃûŒaâ :’΀²l`.´„{j to° ñzï%Y^ðGëíI3Gb àsW•¥ ³RÏÜn¥q¶-…й·1dØGž*ûL#E甃îÒRÕ,ê}Y5«0éÄù¤:aÐù:…0Ø Ç5<Xm¯òÛ˜>„9Äé„)ÍÇ®uæÂ*a:ZÅÅãSåàMipy§’Éy2/>Ÿ PŽp”œÚŸƒýdgPzjòD¯¢ô!×y”¹œ3Ô¨¶›‡ÿcow/oH¦Mñe>9~,¥ÈtbÀ_3rMÈ9FA®h#A`v¨@–¡b#õ*JÕT}…P©t"±ú7û bUH£°?¡N³ß<Úx+‚™>‚”Û¥!…Ûïºê ®ZKÔ¦ªcVíÞ…:TKÃäÖ)®þBÃ+H¢‘Rõþñ‘I ‰¶àðo¨­Lˆ"`(|óàFø»¨‹®›˜Ô@¼Í"Fùû¥9½ÓˆàRŒ¶owO”© tQP’ybXnÆžX,v‹dxàféb¿¤âÁvKa(EYVè'îx3ÔŠ¡Ze>ä;F·,½ÒCÄ 8!` v¶^R«ß7~µž=´‚ÑàÛŸpxqEÐâ¸>à×ÂüÝ{uÝ®V¶Œ•OÙvܾrá=v8óĦ –ÄeóD œÀÉ˳(/4»u»wxÚ4+ 9‘Öí356dzÐB{«œ$<…p´ñ¹HO²Uhô–ÊIÝcf²lTqȯÜŸ­×B”¯kë';¥ÖƒaáB¨LÁfwË‘­É઎HN)[¢ý²°«ø#ªSÙ›ÃôåÀZ quÝžPŒà”ÊK¦)mQ“q¢Ûïx?MÛÌý–·mÓQÑGf³Ã…KG$/‚ }dþ2žC*éFz•Ã»+(’ÎNF…ãêaÅ¥«~áà‘³Á ŸýÍx3d|¸V/©b €e…³"ÑÒl†76¨SCž0¤çð/6ÄñèÇêöÙ§v% ¸œ£>Dô}ïr B2HL^º5"M'œ›bST˜Gg³oÈ¿ËIOÅNd‰`"€»³7ã)šDÙ`Et‡¡}¶Dø“¦iß„K—ƒ3ûC¬q‚Æ¿WW”,ÂPÛŒEM:ÊàVRæ¹F¼dBnÄáN3ÃÇÚø›ˆ†Ñ²¾F½p¨*bÅWÐÇIZ%`Ð+aHÇJh§c$ t¬´¦'ÌPÇØ 4-½¿ß:E!é±Ý£~°éK@ô~ÑkµÙ¶®Øë˜_¦à)çiI:VèÎ# +6=uÆ4yÓgÁ¢Ìàß,,¹ÎƒÅÈEᬯ–/óÒÖÅ ä +O/—¯¯¹&–¨J“`Ùx}ºV5„H'ç|†îb|>¬º.]¶d°úÑ?[‡Ÿ«À>‘ƒÕU2¿7¢ml×+gÝ:\‡@.èÁÛµò¡@ជNLñaú¸Fl0™2 H"r–Á˜ÁäUYñÏàÿÍp›}·¯ê~ÒŠðÂ@I9UÌ*\ê8aHà9s¡ÍA¯Ò&“†Ï¨Ú>U¥ µ8ê¶Ö¶Þ.÷51–U±jZï I„~MSíWkz£ zOHrEwƒŸCÂæ°Gò;p;ÏO0 +w׶³û²÷ívî +ó²Åè?U‘"ÉR"ùcÕ”ÓÕX¡yð6'¬r¦WƒŒðüÝoú41#¿‰xÚÁr¬0C(òÙ .öŒu¬ãöŠ]O-§+Êâ±;Pô(cÇá3*‚g‹ÓììÒwŠø)uÈê°'³Ž¾Rž;3ü4lHHl˜‰36<×)Ng$. ƒsvx2¢Ñ1J¬Ò›ìÂ1bRÃc 0Ô^aZç9¸–Ã:ðë’¬Cc/çƒ_g "Â[çDÌ$ +Œ×¯~÷qê:„€¡U°ÜoãÂdN!á )2Ÿên‹¸¥&Ñ’†c¬ÉñnÇ£í¨Óí +ru¾©‹'F˜àoE ïì]+Ky]©67¾T PªÍµWeî®ïÎ7÷€S)@2í¥ÝSci]927áU=k(Q@’_©¬ºâ±ÍKå\êãpî‹s23³½sa¥ÂG'uP’ÄÚ…mßäbæØ©Ö†ô5DØ£÷¢KOœ?Üp2æR¨Áâ·ÖÚÍüB‹–˜$ŠÆ]ˆH/zÚ/ÛºZ80 ½ð^J1G©³f sšh“§ãœá•HÈy@qH¶°äÔ/Ö1G¨2¦ügøE]?ÆU^¶öÌw2™‡‹óá?Sá š2}õû/?ܨS>£ðº—ºN2ogDx¹ðЇïÚÐq_—sÿùþw%5õâ‘a'¢h;/ÊCÝ [þµÂ5ääî÷ +Ët̉û‰¤4úè(ü:ÓõmŒL€cäQÜòQÎ{šÇz À½¾´1ñS–Xy8ã…øû Èzäë^8ä:ï…‘ e]¸ ¶9rCü¨Îåë ¦‰…G6&!ƒÌÕÑÊä„YvÁõú@Ž^˜ ÊpÚG^cä…Ue²,z!4š‡sžóBÃ¥³ðU$tÎ ]Õa세ȴÀoÂÏÕ#ùKÞï¦çñÃ,N~µãÁ”TêÁ‚çuDÇkÚ=)g ’)ˆÃ)Ü(‹uÕ xéʲ„·³Aþ“z$– ö`Ôñ¯ +\@(MÃTˆ¢Ê•à‚HˆÀ=øŽå¾Yø•HrGxa»«6…3ììwX@ 7œmÑÃ+ee¥ n**oà`…¿C£$¨—Ò<õ<´Ec哳-uÝšðX¸(Üw`–{½àrŒª#Žc?Ÿq`ÌñwÏ ›‹Ð̵£Ö¡`)òKáã‘Ù8̓ñíÛ© .MŒ,l×Ææ2aŠžÿK´ÃoSW^ v¦ó±.0 6Öºªò4Þ¥‰HxuíÈtºø8Þ1¸6\݇;=»{? Nz*àéAÀËŽž> +xú4àéËðv®²<îÞ'Ÿnïÿ}{?•2d à}õWÃ`ÎYö5˜ÃI|ûBÆ ˜Ü˜±™ýåp'Î9D ¢ø ÉDIðIyŒ hpÃg€Â`ª‚憀áh ¨Ä¯ÐÆß:RÓ .`o ëãB¦‡22ñz\L'"‹¿g;‰›ìlpp¿LRÇÁÁ½s2}lœú|õÑ4ÁßROx"»Æð?ÿdûP„Q:;g~*Ê2H³s„rÅÓŠKüm÷©èÿ”Ãendstream endobj -1294 0 obj << +1292 0 obj << /Type /Page -/Contents 1295 0 R -/Resources 1293 0 R +/Contents 1293 0 R +/Resources 1291 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1303 0 R -/Annots [ 1301 0 R ] +/Parent 1301 0 R +/Annots [ 1295 0 R 1300 0 R ] >> endobj -1301 0 obj << +1295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [84.0431 462.4692 144.9365 474.5288] +/Rect [353.2799 712.4951 410.176 724.5548] +/Subtype /Link +/A << /S /GoTo /D (zonefile_format) >> +>> endobj +1300 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.0431 287.1511 144.9365 299.2107] /Subtype /Link /A << /S /GoTo /D (view_statement_grammar) >> >> endobj -1296 0 obj << -/D [1294 0 R /XYZ 85.0394 794.5015 null] +1294 0 obj << +/D [1292 0 R /XYZ 85.0394 794.5015 null] >> endobj 410 0 obj << -/D [1294 0 R /XYZ 85.0394 535.1829 null] +/D [1292 0 R /XYZ 85.0394 361.2567 null] >> endobj -1300 0 obj << -/D [1294 0 R /XYZ 85.0394 508.8634 null] +1299 0 obj << +/D [1292 0 R /XYZ 85.0394 334.109 null] >> endobj -414 0 obj << -/D [1294 0 R /XYZ 85.0394 198.9245 null] ->> endobj -1302 0 obj << -/D [1294 0 R /XYZ 85.0394 172.1168 null] ->> endobj -1293 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F11 1299 0 R /F39 863 0 R >> +1291 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R /F11 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1307 0 obj << -/Length 1767 +1306 0 obj << +/Length 2000 /Filter /FlateDecode >> stream -xÚ½š]sÚ8†ïùL¯ÌLQõaÉÖîmH—Î6íRöªí…¦x†Ø“d³¿~e$áƒ#¤x:³“É K¯õžçÈ’e bõG†\ !©&2F>\Þ ðð‡j{? F3¶¢1T½] Þ\³d(‘T kÐWŠpš’ábõ5ˆ¢‘êGï>Ý\ÏÞÿ=ŸŒ’8ZÌ>݌ƔãèzöçT—ÞÏ'?Næ£1I9‰Þý1ù¼˜Îu“0}¼Ý\é©?.t:Ÿ^OçÓ›wÓÑ÷ŇÁtqb¼³äçàëw<\)쌘LùðQ`D¤¤Ã»AÌâ1c¶f;ø2øëÔ!h=žêÌÁˆ2A ¤Ì•@.‘`ª©Iàb“k¦åý~?"i”—]±-jSªÖú3¿ÛžtñߪÌk],êß.¦)w'aªcÔ$Q'D+@_MÔß0Iº¦‰ê¤ÔojEÏMÏR•Ä¥äç¦*ͳ›ñäêjŽ&óÏ#I£ÉEpÚ IBà@å·ª ¸Ï´Á¡)¡ÉËÉ1FœÉÐL*¹UÉ}¦-y×ÔMM)WóXÈÓ‹£4&ÒOU—éOª½×ôDÿÌÔIfJ" }9¼ ˆÄq€*¼Uá}¦-|×Ô MIÒ>&(ŽE€*¼Uá}¦-|×Ô MIÚž”Äêæå‡*¼Uá}¦-|×Ô M‰ì)Âœˆð<¥ˆñÀ”¢ËèV"÷9žÀ»ŽNnè¨Æ¿¶ Hpâ*¸UÉ}¦-z×ÔÍM)íS$yXê ÊoUAxŸi ß5uÃCSÊúÁ+=„àÊoUAxŸi ß5uÃCS÷ƒÇêiD°À~ª<ðV„÷™¶ð]S7<4¥¼|œ2”ª-‚ª.ßT!x¯é þ™©þÌ”öÛÛÅ¢Ù§m=Tyà­*ï3mỦnxhJûííÔ–Å ìê¡ÊoUAxŸi ß5uÃCSÚoo«5"IX`Áƒ*¼Uá}¦-|×Ô Mi¿½]Œ9 ,xPå·ª ¼Ï´…á¡)ë··c)G,I»z¨º R…ས'øg¦Nø3SÖo‡ÇGêa8°«‡*¼Uá}¦-|×Ô MÕʇˆìAs$ÓÀœ"»Ñ=Ž-yÇÑ ÕƒM?nu[¤ièyª<äVD÷™¶ì]S7<4Åè×þfŸE8cX ž&‡¨òd̪‚ó™¶뚺3MÉÿ1š -”JXV¡êrÆNªPƼ¦§Œ=3ufìÌô -]7´/#I3wS¨ò[UÜgÚ’wMÝäÐ4EÓ>ìq‚bÉOPåa·ª »Ï´e١©ìÇ®öÛ‰LPåa·ª »Ï´e١é¤;N–2ðìUv« -²ûL[ö®©›š¾½ÈÞ\FHb!†c"U¢7SóÊðÓ+CG™~Ó¨ëëüpÈn·æ(;hÉac*ŠüQ—¶ùC¾5”+]W•[Ó}¶Ûé¢:·jO­n­›–Û¬6U³¤ WEÝø¯´"wDÌO7¤X!$9×+  ñ¨(7ù¾8{b"ZÏ©îtcµ;UYë¦b­+å)ªºÍ‹j++]¹jÃSµ6<Õ`ÃSµõ._ß0¦Öû˜Fm +L™I£Bg˜G‹füŒOõï÷ŪèçûÁ¾%n)œoˆA¬ö%ñk]~ªîÍ{æ¬<ÓꃓÎYuh{Ð¥ìР&ŒÈج«½yWýOv·ÛæÇWÓo®™<ŸN SA=Nõß3>¦w¬mÆÑ+ôêwÝÅÙäŸ÷¡o³& RT ‡SÜHTå}¤1Íj¥UÇËRUì³òGnÊËfLŽ­+]a/—×Íð%­S½©î·F“mµ&[5׉äÑ&{0fºAõY› -{ Y¯³ø×:ˆ¶9ñXÇÐîë\]U‚²hVêšÝ>[Še®›Âœ¢¦jžíÍA3Y›Ï²ó¦p{Ô›K·©Xfµ)=‡.Ýeå“.ý¼WaÛ`nó#V¬rèÀ/1åzŸÕ‡ý(î—‡ûÓ˜%j¼ò}“,} /-U(³»ÜÔ¥þT]×öœèl™×ÍKXô¥Òõ:bxÒZeÇžž™R-÷lj¼,²­#ˆÇÆWæùêxi4}T®‰{kfË*ßm«';1 d37YY×T8³šŒšŸyl«Ìœ’=f¦,kð¬KiTM†]|†à(v×£þÍHýò/iÀ×5 bé¥ïh’¢8U˜ Ž?2¢Ï"·?¹yú¢ôendstream +xÚ½š]oÛ8†ïó+|·60æðC”È+·qºLÝ®›3 Õ–¡Ž”±äf³¿~EJ¢ešŒ0À LQ/ÏËç¢ŽÓ †dÂcK*'‰ŒÇ„O¶7xòî½»!F3oEs[õæþæÇ;–L$’1'÷{+–@X2¹ßý>E3ˆ€§o?¬ïVï~Ý,fI4½_}XÏæ”ãéÝê—¥n½Û,Þ¿_lfs"8™¾ý×âãýr£oÅ&Æ›ÕúV÷Hýq%èfy·Ü,×o—³?î¾YÞw,6/ÁLüyóûx²ìŸo0bRðÉ3\`D¤¤“Ç›ˆ3Ä#ÆÚžÃͧ›w­»ÍPgþF”ÅÔ‘@ʬ +‚¸”|’p‰b·T?=eÛ|ÿ’_ Œ Öˆ„R +°QÒ*;~ÏŽ3"¦ó|7›3F¦eUécö“lÛI†d¤üœzÌ6=U™jâ©j"Õ¥þìîÕÙ¹‡¾J+}{_ž +3ôË‹ ñ`†~Íj5h®&5™“ˆ¡8a1´’œÓf>*âgÌ1ü½¨ûS±­ó²€½ÀžÞ«hª—íÓÓ¡v¤‡P#w~.Q”`È¿Vç•#"ä›°6^Q™# ¥°()rD™S˜˜HÀjÎ`Cɺg…Ĉ$ð` »ý”êy^hÌåãSý¢›¿qåpÆ™#Î㤉·6«ÇÙô¡YM«²Y(èúÒEWW™Ž®$ÿk¢7½j>}Xèþ´0ÁÖŸôg“Êl[6Ÿ;cP‡µf°J1mV©2†©Öë‹=ŒºÕimfùPžÍ)¦³mQÓÃA%BÆÓ/™þL‹êY¯¬V=‡rÛʸž¹ê}~È·ºùç);æÊY]¿¦]”õyð*+LzT¼f#«ŽUQgÇ"«ÿaâ4S(Ûz¿U‰(Í~=Òd¹Wc>cL·y +O e¬¨.¢nÎп-ÕþmšµÎ«jª'¥zJ·™ óPŸŽ…¾¿þÏí‡÷‹ÕZ_é»ÕSYTzÓX0Њi²£5¦<¥Ç:ßÎ]ër:ÀòÂü(íB%¼›tÒæ zŠÑtt ê2Ö»Cõ§»™°ž-tíu’õÕæî­B$fL³Úý=>epè(«Ux1²CUê¡y±=œv™ KϘÑÁŒá0³g ÷õŒ¡õñ{¬»š-¨;- }O=XýmŽÍ*ÿZd;õ訲¸‹D¦‡¼øæ‹™UfH=ƒãØÌÈžHù4wí½/éö›>QÎ'¨:š$rsÌ«†‰­Sñ­(Ÿ‹‹‘êLbœœB”JóŽQ­´®Õ‰£æ‡õþƒÎ]OÓc^dú2ß­þhÎ+= 9¡KFsГHw/º#ûo^Õ•në¥ÁêD×bx|7ÕBèÚÊê¥wn^eÇg}xíæêxs¥ÒÒ¨Wµy1má©HÕ;«‹u‰5É€–>qìÆÖÐÔ&÷©þÈúW€Aç&ÍB¥íè´ÊœKѽ2·§£v(ÌdK·Ê½ÓËl‹¼úçµ’ +ê3$<7ÞÒV5‰¬XB ð‰­XjÖŸ1¼¦ Ä#‚úM[Ñ¥©³ì:3…’mµž/no7h±ù8“tº¸ +uC³@íl«<à­*î3íÁ‡¦npÛ”ÐäõäªhBd€ÜRyÈ[UÜgÚ“MÝä¶)åpË×ÓcŽ’X‰ðÐ[*}« +ÒûL{ú¡©›Þ6m +OújøH$(Â"öÃÛªëð*ï5íà/Lðg¦$»ó$ÀÞ‹<èF$÷8öàG7·åï†QØÃ$¸-•¼UÉ}¦=úÐÔÍn›9žQx‘²Ð¢[*|« +ÂûL{ø¡©Þ6¥x<‰|C!xKåoUAxŸi?4uÃÛ¦”Œ‚g’£ÎJ?¼­ºß©Bð^ÓþÂÔ fJé8ø$AT +€·TøV„÷™öðCS7¼mJÙ8x.Œ’@Ik«<ð­*ï3íᇦnxÛTÕ:cà# AxhÛ[*|« +ÂûL{ø¡©Þ6¥|<<&4bÊÖVyà[UÞgÚÃMÝð¶)WÛ1Ì4PØÚ*|« +ÂûL{ø¡©Þ6¥ãj;*8ⶶê:|§ +Á{M;ø S'ü™)WáÑ’%»ÞyÐ(HîqìÁŽnnË‘Ž«íh$`I`ÃÛ*x« +’ûL{ô¡©›Ý6eãj; +úH„¾ÍØ*|« +ÂûL{ø¡©Þ6eãj;J bQ °µUøV„÷™öðCS7¼mJbxÜåëé‰d(4ð…ÎV]§ïT!z¯iGaê¤?3¥£O8Š”¶¶ÊCߪ‚ô>Óž~hꦷM1úkÿVãpÆx‚p"õ°­òd¬U3æ3í364ugÌ6%GƘ@ ME´­òd¬U3æ3í364ugÌ6½EwŠöuä#–ð@-a«<ä­*Hî3íɇ¦nrÛT åv gBω¥ò°·ª »Ï´gšºÙmS9Š]¨?æ òÙ]'oE!pŸcÇ=ttbÛŽ‹QÔ1G,ôë±^sÙhBÈ»Žx`ç¶ìÞŒâeêÍã,]áÇüÿù_þÛ*ë7‹ bB\Ù´4PÿA3©æOièÅÌÛ?ºœúÿL[ŠÃendstream endobj -1306 0 obj << +1305 0 obj << /Type /Page -/Contents 1307 0 R -/Resources 1305 0 R +/Contents 1306 0 R +/Resources 1304 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1303 0 R +/Parent 1301 0 R +>> endobj +1307 0 obj << +/D [1305 0 R /XYZ 56.6929 794.5015 null] +>> endobj +414 0 obj << +/D [1305 0 R /XYZ 56.6929 729.3676 null] >> endobj 1308 0 obj << -/D [1306 0 R /XYZ 56.6929 794.5015 null] +/D [1305 0 R /XYZ 56.6929 703.3028 null] >> endobj -1305 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F14 685 0 R /F39 863 0 R >> +1304 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F14 685 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1311 0 obj << -/Length 2674 +/Length 2689 /Filter /FlateDecode >> stream -xÚÍÙnÛHòÝ_¡·¥ˆÓ'Ù=ûä$vÖÁÄžu<À“y EÊ&–"‘ò1_¿U}‘”écã 0.VWWW×ÕU-Ót¦dL¸³T‹X*gËõ™]ÁÜÇêhžh1¤zwqðÓ1Og:Ö Kf«/¥èì"ÿ=zÿ¯Ã_/ŽÎç &I”Äó…LHôîäôƒÅh;¼?;=>ùøÛùá<ÑÅÉÙ©EŸ¾?š/¨’Ö3Çá‘Ç'¿Yèãùáçχçó?.>]„³ ÏK ǃ|;øý2ËáØŸH̵’³[ø 1ÕšÍÖBòX -Î=¦:ørðïÀp0k–Né/Ð,„Š/Ù–²Xk)¦·%``šŠ'xÙux9Я³êÍ›$,N Λ—ñ¥±–’¡}5‰S -³)ç1A˜÷lu,A‘Ž’Xr‚Š³ù"¡ÑüÏ¢£}sKúH”Š5U¸ñìÛŒÆDhÍ-Í6'í5`?¬ÙìCç™ Žäù.ŒÍ‰6pXÊÒ˜ BR’ÆJ{¤‹ë\(UѶÈ*„t´É¶EÝYl[lç N¢›9“Q±m-v5T³µäÝuÑ:ΩŒšºpdíu³«rK•—mv9g$ªmVU(Ö›îÞùõvbWçÅÖ‚°*!˜„’*5\«R³6»·sãS !Oyt¢ì&pª6Û¦é¦X€"€É[˜ÒÖ•­%²cêÎsâ]Y9&emGd íUf¤’: •NŸ·eÐY=V&ˆ¾vPãÍÙíð\2ª=ÂX­Øn甀„í˜>/Š×vY÷Z·À¶(‚|C:žðÙ0˜^Ÿ˜ ¤NôlÑç˜×e…ˆµ¢‡è°iðaÖ'å ÿ"á -vмO t"ë*´1ç<ä4¸§!*D¬¨HfC¾vTÛóa §Zêñþ_6Ų\Cq®£Û묳ÈÀu¶.ܼq"„²Í¦ÈÜ<šGcrÀKÀÍÀ‡ê"·˜/g‡Ã©ecF7¹j#çÚþ‰n7xÐÉʸö‚ëXA†‡qmÃî1ãé0¶x¢¯„°"k1 X ÿ¸ö|¹ èÒavm‘?ð\oopµXÊ„=íCªÇ"PõN±lê.[v½BÇŒ=·} šØäRÄŒì ¼‚)ἂ)y‰ Ú© ÐNm€ón°MXÒ§F±ç8eÜ¢ŸêÝ'Wc2žn!¨nîÏ.^ã_1þ÷}n*L)§Ï¸Á€ê 7ðT½˜3/0kWÅ_H“X!ž–!PM1òEc¥d:–âÈîlô`L£¹‘=2óÚò†rñ…†âp_¼s¸¼Xe;sYå;tfïX˜ÍžÐ5J1ù\È ¨žÐµ§ÂSº-z?ÔµŒ™ ÉÓ2ª !ƺ&ŸT¥øÐë•CååM™ïLAßA½b ^íÔ+†êåÁÿùP½ÜŸ2Ç¥P¸ò&šMW6µ…—Ym9^ÚÂi‘‚¨©ÜK¼ƒx²¦[ÃæåÆ;EW®QB[󵿀ój’€‚ 8¦Ô5?دÐ$¦ -úBˆ+-Ï—.ëʶ+—.ŒK{ê$–/ä…AeŠQ¿·ö"^u±Í:/ÿ¥óÇ-WÈ åº¬@ÐG¹ r¹sÞ\7(s(*ËeVùÓxwϺîªúJ.5géÓ'ÊwëOVWeÝúÖ]»ð²CUÖÅ[þ·øyÂ2aGev|óæÍ´ >„ÉW"‰N9ô³Zhø Ó&zp Ul½[_šR`SJÀ¸q^[›¡u“nÌ슨ó,€ù­.ïmw_9ÎÆ»l½ƒ F£u‘µ;Ë8¬häضpÿÔ¹ÿ(ë¥ãò)«wÙö~ª‡ À˜kQ !}›L£ã¦ªšÛ²¾‚™D:»ó$1°PˆH$È,ê­ÒœàfÕ¯h-•¹xËÚ±Müªe³«;£;Üê~S8yl%7Yµsy®aÎ/6îÖYî–OöyÀ¬ Ò±é†lgŒ¸õ¡Å ÷ÂoÜëÞ‚öQIC€cáãú.èÞÛ1¥†‚áº\^O…Gßµá"nîLNÏŽÎÏÏð¹š'Ž¨Ý4µyÎã>ö }gÇ -n_Út†su{;}Üóó‡FP¸§ t¨C«¾ÎSÐ'9Qjô¾óB–~ÅãÎGH RÒçœê^¢¤M'ÛbUl·öúzÞûeÁûFï”÷Þ†HkY:3AªGO@ \ýŒÛÛð°˜Åä=jìÜ>a ÁÉ_§Í¿Ô@Ø'œ«g D5ô&©´Ù¡¾ÛnÛ¢{avPƒ» `“\ÜÙl ”·‚cûp÷ê‹+|´= Î&ûÕíú<ë²Çí5Tĵ—ø¡ö’,N.›ÓDÅ,ñµÐ]Þàý÷2ƒ1)ƒÁFƒá †Î`Ž ÆdâËOÿóáìóáÉéTzí à Nüw$¦bõèÛVo!b.…6XeeµÛ/ $l7À. \Køb±²cK2ä:ÄïÅ’´¹ŽÛž?­¾•d<6Èx®–P@gáa¹ñóÙesSêÍþ(ø Jg™BUž iüÑ€ ÷„ºÛTФu/i>(¹+ù°Tæ"4÷52ƒß¦ E†¶v½±!ÎM=ýh²EK»,ì»Jð=tÙXÿQæ-‡âû*Óg)ÙWÓ‰¿Vûß4 ^w?‚$ÑɯS—s–ç.µø6ƒ¿7Û΀ʳÆÜSænÚôî4r_ø¦ã’V[`Yemëp•å哯S—Eh7†°Á6aâq=¸æÀæ¯s#`ÊLM4N„žü]‚„?™xõß–ô™AÝôÈ£;' ˆ«Ó—1ò2/Ï|_’«X*¨¢ÿz“»çendstream +xÚ¥]sã6î=¿ÂÓ—“§k•%‘lŸö#ÙËN›ÜeÓ§n[N4'K^KNšþúHIŽœìmfgÖ‚€Íü‹f: …4ÉL™$LE”Ζ›1»…µ'Ó,ÑbHõîúä§3©f&4YœÍ®×^:ZG³ëÕÁû¿ýÏõéÕ|§"ÈÂù"ÍDðîüâa ý¼¿¼8;ÿøûÕÛ¹J‚ëóË B_ž^^¼?/"F°?fG6œÿzJÐÇ«·¿ýööjþçõ§“Ók¯ËPßHHTäëÉŠÙ +Ôþt"Bit:{€FÆijÍI’Ê0M¤t˜êäóÉ=ÃÁªÝ:e¿Tê0Õ±š0`,§ ˜š0“°„<Ýl»GÐ)Jƒ¿›ºhL‚|7tP¾-º.¿©ø+»cÄ}Y<T÷EÅ êᚺböùvK ìmú­-Ó­iiYå-£Î/B>”-ž¿"ŠbBâÔK VYDQhÒ4¶*²2 Êú®Ø•å$³`m÷4Zl¶]ÙÔ--•kB‚–Þ€îíkuCÈU/`x°àÄl»-–å!bw¶5#@6£d3‚êR¤ÁõÜÄŸÓÜ»]¹šÔ‘Ø€cöZÀGU¶£×ô;¾¬€o~lö,ózDKþ²YÓõÊ»BVÅ@…ø˜u³# ø+ßl«âgÔ"Ý UE¡’àر µVÆ*ÈÂ,¬ytl&DðCøÃ/Äbäë‹)çh“±ªfxð±ŸGA[Ö·ôEj ÍjETÖ-±ËëÛ‚á%Þ‰]]¹Ë¼>ÕŸÔÞ5ûŠiòŠhòú‰Iƒ»üž£àÙ2¹;k$ß„ ¤Å}2MHöm^•Å28¯ ³ÝåË®\ôÕÝ•¼BµÈwüÁŠ¿5Þ97–ž]˼eè¡ìîÚäõ#A_÷ ¶榰ŪžÓ©¬×»¼ívsì—ÝÞß™‚û*vh,ú × Î7ãÊš~uëölá¢óeÑbˆ)|nO7­Á:n{ÎP›/w6—e^MñP å«‹be]y4cåè»áhYÛªyti$Æâ]^×6§# -úÈ¡Õä¼%È7HkÃ]ÇÌK¬Axì9Ë„•(ú–÷,ŠCcÒdú=í5¼h*‰ó¢}x1èvŒYõuC§aC±0xö¼­gF„*‚z!5i˜f*³v¿$4K"$ŒD˜Ê$·—+$`ˆ˜àôÐ2À3‰@4¸Æžgûâξ΢P$ÆH"ÀV×ÞñÓù&ž}h@£Ù@)Çx1äl•ÊâA~‹b +´IªÀpYª­È×ö®•v9§ ¶ù®¨;ÂÂ5cZ +îç1¼Sä±:XÏE¡cú8ÑÁßsû|Læ3PÙd<1³Ób^U¸×ˆÜ~ZØ׫bGà‘0÷’j=Ü«•Ý‡=ÒÚX $ä@>óŠhÍn¯½)€ÍŽ^-=a`‚ï“œ‘ˆ~ë«ñ¾¬˜‰ÍºWH{“Y©&”¼&ö`…‡ÒÛ¬Dß0Ô¸ëÄx…P j‡°·õÀ<‚ЯÚ1ýª(¶ÎÚeÝ[€]Qxù†>ua&gÃxz]ˆb2HMff‹¾~}]Y$¡Ñ‘„‡]††K짅Eª±4¨Óg†h¢ öTxCT`PF<´P”$¡Ž’l6äûätO5qü°FȪ©Ÿÿ+Å5¾ÒöÝAˆ²0¾o¼n!z² Æ+Ç_z  \>Tヘϗo‡KËÆþò¢}H`×FÐ"ØA…®½P[AŠ{xí+Â’«ÐAíûÆ¿IõÁë„üÿÅH?„8Hrï$1«§ïßw€\ÿ¼S ©Ž;…§êbÙÔ–O¼Â@¸¼t¼§š8äiÆâPï±NØ+bN"‹f³šÍ¦ïSÂr- ÆnKÖ-ú¥Þ-p‘ê+Ýw`:·H 1snîg2y[|‰ã$Äÿ¾Ï "…¦V/¸Á€ê7pT½X˜µ«â‰/¨,4"Iž—ÁSM1òA÷’ª±§uß–¹njÔ«åÎZî¢\«‡%¼ï]͹Î÷Uß·1:–†¤æq[K­B™ˆBnHuÜÖžêHÃ÷ÄÖðL%"{^O5!ÄØÖL™±z»J Uy_®ö¶ €ooÞd`^ÃæM†æ•ÞÿåмÒ÷ã¸J.`úx‚¹#·—0¨ùb•$Þñˆ®n‡—[ßÀ—›‚*üë/ ÔŒÈÐ@2Œ"¬á,,ÊÂHÏ‘‚KKàó¹Ë»²…®‘Ãø¬¤(80§ ¾•)FýÁv؉x[ÔÅ.ïœü7ìOÆy>ƒ”›²sª$à r³go®Ý€¢\AQY.s7pwtßrªî+9«ç5Zí7[—¬nK7Š¡Î؆—›ÍÔÅþÏÍAF7ãO$_üñǧ¯àƒ?Ñ“|©0J*£Mbà#š¾¢' +óõ~scK €m)¿[öÚÚ6-/òoN?`ˆz•ûB0¿×å_‹¶{¬˜³õÁ.ßlAñ$†–»ÈÛ½ŸŸ0+h¨™¼?õÊ}”õ’¹|Êë} ðDyáÜŤAd D sKUpÖTUó@S‡,å{—Yf/€ ‘H®uC €qxæv´DeÞ²f¶™Ûµlöugm‡G=n –‡*1 ¸Ï«=ä¸ú5·ÙºóÔÓ¦HîœHúÔÃ9 +€7„¤ù+“›¤ÎQÕà³3bED¿m(ª¿KöüûÓqØHA4ÊqIp[572'†£Ðµy‚ã†Ë`ðö•Ä•Á¡ÌZ¿–s³X©‹2XÎé‡ÅSÎ"Ê+¡|Á4yðmyo‹‘ÑÏñMm ùM–râæú‚Ö¥®fSv>åø™¨¯†G/3rÅ>HCƒ–>F¶„æ4„+àx<s7ˆ(Ž@=ô£î…O1õĈóY•iBwN˜Ñ¼ OM™ÑFÏ„W H¿<;-~.KBÕ¨^J“=Í÷æIÎg–©w€Ã¹(ª6:0}«ŸŸ5R… ´Ò$Ð +õ--³Lt¨„:øÒ÷íLêêXü?c·ã g÷J-4¾G*î(‘¡ÆWga¥¥ˆýr‰£÷§×bÀ>i¢xZGq€Aí\`›b!H™Éz_¾I+?‡V<‡vIÀîóS€'¹Ø¶BÔcû>ý–0óðÛ k¤‰’èƪ‡›.hÝÛ1¥já®\ÞMÅFß²Ù?,Ù..O¯®.¯èEü€mSÛYžtoé;ú­àéer®ÕíôºWWO§EPµ«,‹gþJ_ç#èRh=šì|#K·ã¨Ûe‘Oé0\°îŠu±Ûѳõ²ã%Qìat¼$’½£!’.Õ‚|CâÑ ƒ…V¿Âg[„YL¾ŸöŠÛãw3Ðûu¦L„Uœáí¨ì0Ù× +?uõß½ûá>¸‹Ô:žnÚ¤ÈÀ™@A™â°œ:yhÿr¦ˆþMw&Lendstream endobj 1310 0 obj << /Type /Page /Contents 1311 0 R /Resources 1309 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1303 0 R +/Parent 1301 0 R >> endobj 1312 0 obj << /D [1310 0 R /XYZ 85.0394 794.5015 null] >> endobj 418 0 obj << -/D [1310 0 R /XYZ 85.0394 494.8753 null] +/D [1310 0 R /XYZ 85.0394 357.3908 null] >> endobj 1193 0 obj << -/D [1310 0 R /XYZ 85.0394 472.5641 null] +/D [1310 0 R /XYZ 85.0394 335.0796 null] >> endobj 1313 0 obj << -/D [1310 0 R /XYZ 85.0394 284.6288 null] +/D [1310 0 R /XYZ 85.0394 147.1444 null] >> endobj 1314 0 obj << -/D [1310 0 R /XYZ 85.0394 272.6736 null] +/D [1310 0 R /XYZ 85.0394 135.1892 null] >> endobj 1309 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F62 995 0 R /F21 658 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F62 995 0 R /F21 658 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1317 0 obj << -/Length 3317 +/Length 3355 /Filter /FlateDecode >> stream -xÚ¥ZYoä6~÷¯è·m#†‡(‰Ø§ÉÄ“8H&»y˜ ²Zm «££ÃvgÿüV±HmÙžl`À"‹W©Î¯¨b£#i6± ™æBo²êŒonaìû3áæ~R0ŸõíõÙ7ïU¼1ÌD2Ú\ïg{%Œ'‰Ø\ï>m#&Ù9ìÀ·ï~ùðþòû_¯ÞžÇáöúò—çÔ|ûþò§ j}õöçŸß^"Ñbûÿº¾¸¢¡Èíñíå‡ïˆbèñ̦Wï/®.>¼»8ÿ|ýãÙÅõø.ó÷\á‹üqöé3ßìàµ<ãL™Do Ã™0Fnª³P+¦C¥<¥<ûxöïqÃÙ¨]º&¿ &¤V À))^8–Žàp¬k†1K$ON 7LÀ?ØRÂÌ„ËQ'RÌt"„faobmX¤¤²:ÙµÍáïP60]ͦƒTbÆpλ¾ËAœa¼­‡ê&o±m›=Ñþò¶È;êì›–wEvG{¿ºËÛûÜïŠ.k°'’-qgB0£µ´‡¦çA¨að1Ë»®¸Ï±kFp9@ZþXt}q.¶õ-h×lhýºdâÇ‘Ë•‰Qn»´r­ZoÎÅõ¶?1­wÔÈÊ´ë4½}pïävnºήûò¸+f$κ!C›^q;¥@ÑZºyoV¶ŠX¨uè&´ù>oÛ´\ß)Ž@_¹Sýض]Þ¯m$@â"üúvM•õÊN¡fFÅzÜ)«Ù’'žì„*f±@ÏeŸåÐækLJoäåÖ7üorzuF -¯ÀóÝ¢’ÇB£JŽ²Û}ÑÔiY:ŠS76Ñ0V4+CïÔRÌižy{Á¹SÖ ÀJë¶~™_¶&!Å%ø8NšVc†¸$NÎùöíø:´íÇ<î˗àÄ˧ŒB„’šqÌNcìW¡žIûÚüv8˜Áv6P‚ ¤e×Д $9¦—E6J ëÊÄK#µËWx‘†%qœÌLö/:ÇPM§(IÇ–ã„ú†HEu 0{ï^¥÷3HÌÝ¡©;7tÈ[Ì@l¼¤ç‘\¦Š*­3ÔVl(&#$ŠadÛ¿Ýå5¡ì ?ÚÒ(>\‘9mØœÙQ3¯Ó›’,6‰ç'ЃâNtoÄÔí9‰Åw×´} ýZ²(c—¡1×µ”ÉŒYÌعî©C ¹³89­»‡ÜQ¯®5>4}îIûÕ©rýšI€«‹Px“@[° ;Þf/-“™Xa¨Ê³»´.ºŠôªxÌ #_èÕ*S/ðåi¸°G³nzj•iŸï–þLâ„Æw>úxâÒ|‚CÐÞµ•0ÕÜ%1©gîÈ*63Ï››Ž-ï„8H¶ÜÙqxéÛœÚd÷±9µ{4 Ø Ôêû¿sÍzú“¥WW'Ü!ä(;@V–ç ¸ÜEË'˜nnWjŒ!(b…V–ù&/›à@Øx{3ô4Y=«—Æ’µ:ui¤K{…ÅzØm]üι„1‰ !¶ŒpÞ¥;ËêfÒ¶/²¡LÛu—ïñÄ=¾‰e& ü’ãkoG@3DÌÐ!í¥vý¡-úÔï£' ar4œGcZÈëP–v—º½áeDÚåe~›¢ÝÐCÑßÑ´¢¤Ûrpv º^5ÈKk{á¤êÚx‹ä›ÑÈn¥Ç¢*ê,T‚„™>+²A î‰äÖ,òO¬Év@‘äÚ;˜LÈq´ï§ü&–ùmÝ$ƒ}ÛTÁsqGpÈô¡2ÆXIk’EÂøØT7kÛh€¦É<|)(m*xù÷¡‚$P|Œ#Ì€A“­Œõ„ÒÊ,u1f¯ƒP¨ LdâW¬b VÄ4ÍE8#Šœ€YÄ¥^ÊqJ0Öt| MO@H7!Em­`"L>~:Ú.íÓUãüÅú…‚õæ¾h†Ž:Po¦»{pöôÖ¯ I(ÎL(ÕWd! lž…Tä=Z…{’®þ -–ˆZ 6Wb««E…) -úG!W¾|Æ=§Ü=ËÙνÜ(‹@DPBħʹ¾:DO" -ŒÐ‘®ÒOr -½3ÓŠöi%BÐÜ÷T¹Ôˆ£ž$BBé†êàŒ2¢¼i' TñÙËÛû -@ŒoVÊ*ú´«_¡¬Hûâk‚XWºŒ™Ë‚o  ¡ 梖…Ò¦Ü版9KB³d" à¶ÂKÕÕ‹QD°0âúÅ("´ü.ŒÔ&®˜ð±‚‡#åÐt]üØž…'øN‡<+öGGt R a:95 ápðP¥,ªâÄÉG»Õ'z·>ݸ…éÌ{oÜì¡[—ªÔPv*y¥¥“lWü¹&W¨°¹Òñ(z¨ÎtdÔópjB(ÛO Fœ•Ï¬Š²/ô«¢&ÿ gùŸ†h§‘hBLD[&‹2ܹ#~YB$í¹sàä·s !¿¿ Öw3ô«ÊâX%µÔzºàsùü—³²ÈÖöI˜†÷pÓæŠð<ÁLH²f‚ -LÐX$|>‡½8èvzÈËrI¡õ‚uˆ´! -eÇ=]—–aNÂâ&½TÛš‡Ñ@[D'¹mnHznH0‚HóÑFí ¦œXƒ£Õñ´²íúiÏÜU‡Ú!G˜ã HÎÙf‡ “«Ö2rnæ8l¼ßt¢jv!z³ }jB -¡ðü­°e­Û^ƒfYžïü-’æi§sí6¥3ÊÜ_®Ú83ñŽáؾŠòìíVдh‰+w3 Ô”#(ÃO `tñ!¢…ƒ+S#01[s -`Ÿ¡ÜõÆ­¢AÆ¢”ÚÞ-Ì)Þ *_q‘Ó$6-€±7祵arœu<8;öï²°cÌ«öª’ûµoa!@½£^J®JÉ£¦Û~»jOOàX :¯Š‰YxRÝa÷N»ÜÍDSþšƒA¡eîOqÕß|sú¤°bÉxÖ b+é¢[Óu9G„æ¯ ½çô )’ð=Ïf½ g?k¦ç¬Ì4×·-Bîé“ÃBåQÌÉ—9g­°²xëX2¥½ä…¤,§o3ØvéGúB¦¢+!œÕ§òª©n*TÊø!ÐÞ,©í „Ž Ðõ¦»?…çOW¿ÒâÙœ´¼EðpWQ‘ÎZ™e8Â0\U7Kx¸¼à\ì,‘¯„Ì2ô9Âi\š’&Óƒ|`͈§þrÍåžF 6`úhˆÀQ,2DS´}ýE³œggy^]¥© šæ2Ñ8m`ì˲Áf»gmV0†H'/Ûì|Öó6;Îz¦ZXF'Ãb™¼ÂÀ8k…ƒ…rTÈbnNX ðÀÕìÚ :i…Ÿ}¨M UM53´)ÓU{JžŠîÔàIŸ¡áp²ò8YÞ²þ‡[EoÚ#ã>Cø%VwZá“›0ÇÂGÊ`¡½Y VQ/€e8+ç<˜Ãþˆq ײåâ¢ãÚéê{Ä:$û¢æì^º½up?èÓÇ9ؤñg¥ýÄÛ ->+Vá·ô@ØŸä;ÈC{³‰ä”ŸÒ_œµ7+6¶@ï¾Èl89îÅüÈôp(é÷vÃCÚ wîS˜NR•Ø>¹ovZ´=ùÜHº¸–><êY$€ŽÏ<Ê," -g2”¾JjËïê/AÀTb“¨Y¾TXðS °'8ùCËÅVꤣ¡slï–©ž_ôIo¸f ÔÚÁEKí§iî’+d< °Pó,XaÖ.GkU>}GWí!à~GÕL©§O©±ûŽ:ÿNó±åÑ µý¥R›"ì[‘ðÉWT¿Gû‡/€7ÚOßÚ|_<–yý™þkßN*fðþuñnŸhÆMs‹šØtó¥i¿`¤Æî?éñyÍbÜâCÛÜ»<(÷í«{¬ýV -$„?pZ‰–|éßþÕô#³âi’Èõ°ë~¢È’œ+[®%åÒ_¿çðåÈIf; ,DÔáíð\¿CY,8ü‰…ŽYl¤Y$&bš ½È·g|q }ß 7få­ÂQßÜœýã£J†™XÆ‹›M°VÊxšŠÅMñÛ2f’à +|ùáÓÕÇËï~¹~žDË›ËOWç+©ùòãåÔúîúýO?½¿>_‰T‹å‡ïßÿ|sqM]±[ã›Ë«o‰bèqbÑë‹×W.Îÿ¸ùáìâf8Kx^Áäϳßþà‹ŽýÃgʤzñ/œ cäb{iÅt¤”§ÔgŸÏþ9,ôÚ©sò‹¸`Bj’ä,âô®´‡]]S*fÏé¦+Á ðTEŒ>ªDŠ@%Bh¥É"цÅJ*«’ÝãáЖŠ†«`8%ÑQ{ป»ò|¥Òt¹ë·ëò@ífƒO³ü³/UÙñá®Êï¨y8é²lûº+ ¢T;šqõéâúúÓ5n ¬„`Fkiwr“öÍ®Å%QƒUwG­]CÏ"ë2v¬ÏH' Q' äð÷d«¢”)°ßÅÊøšê’02åòu)Í)ŒSWÑl3â›ô%µô…mÔ>}á‹Ó6§ú’:¶úž«}ûé§÷—WS…‰ç +{A)Ái¿®R¢¯©”Ø@”ŠMúŠR@©±À&«êþP¾Ñ‡´²:9KëFðjÝž£i9¸ÐÜ:­AOF¯Ä€ÎX͹鉼¨éîÈ4ø²»Ëv¾ÕøþlÝÜ—§5ŠêÿØÍâD2¥Í+Q1Nf¸ ¨x(óþÐVÍ[ý,£ŸÅ’ü h£ŸÁ‹÷3hæYßZƒ±_ -÷´€Xv uîK«ÉYEnšÃ–ÔDÚö[Råží+-»ðù;çrWx}—1«êwíÌ‚Dú‚þÁ~-ýG K%O¾`I?ã´þ%H>¯è?Ö §0[ôûºÊ³î­>­¢1/BÛ:4+ +ˆÚwÀbb–ûæÐÙfê—ÆØS®{‡ Š¥{ëžö.8e»‚yµ­£Õ´vV<Í{]Ò!À0÷v`“eñ‚mJÿ{†ô?µMÄ,©xÅ6EÌDÂIÅ¡ÙïÁJÞ™¢dŒLQL‘ hcd‚ˆ$Ôð! +v~ö– =تª˜SØ]¤¡óõSÝ—øj° 9@™&Ø* A£yéÈ%ö#—3fIŒšÈÛ/´ÐðÐê¸vV‡DkuØpVЕ>{Ú•úu[ÂÞ»®žµFò«…ÓjökàXV¼V§àœ„'GuÊ7Ë3"bÃT’CÓ&¬ožÕ92IÁv•4Ó±JFW3…¢–1‹¸SêEfCe<–x0Ì£ Îõ=)žÂ!žñ¡ªkjÙtKÊÇ,G­Zz³+]cã¼)t>™@B\8wjûmzÆí”\«¥÷nf)8™Ö‘p(7åáyvv¥$Y¼q¥Óµ›P‡Šèí ¬*@wF%zXiV³$OûˆâÒ|DÐÞô;+a6¨€NéZ ôcDÀ£ç…¦£@ËEc‹ÄÌÈí‡Cß–:߹ƑݣÁz` V¯øþ;×Á×¾;šz} ™Âm2…Ä€sœîâå3TÚ•bŠX¡••D^—uóÛ‘¸ÚDa@A=«#—–¾ÂÆôhH!—ö “[ô°Û]…u*¬ˆi\±d„ô.Ý^VÏ0zŸº*ïëìp âÈdÊ î¸Á“XfR¬ÐÈñµ·# WOå]K„¬u”{ï;ðѪËü:z´è&GÃqÔ÷—H°eiw™[ûD¤¢¬ËÛ …ìºÆ‚ÍšQÒmÝ;»]Ï䥵½(¼ÀWo‘¼î²Ê qvƒ,=VÛ~K/• !Ðç–lˆ"¹9“ü“h²P$9‚öŽ&èz»nLobšÞŽªQ·ìjsh¶«SqGpÈõ‘2#ʘIk’ÅÂøØ´kæ–«Ó0|)ãïKóf ‡/l¼$Šäc¼a$@ l…d¬'ÔVf™‹ &:C¡*0±I^ °Š¥x³BÃ\D0¢ØÈ xÅ\ê£ëÀ!ÁÐ}ÑæUù `jg­`$Œ??Ë£‹ûcãüdýBA‰º¾¯š¾¥¨8³âœ=»õÝsBP‘˜Hª7d! ,ÌB*öž­Ê=IWö• KDÝö6Wb«êE…) +ÞŸ¨‡ü]ù×s¼YÎ +w¸A+C‘ŒÊÄõö®@D…:vÂUúY.€®©wÆCZÑ>­Ä›»Ž +$îïaÌÀ?!¡´ývïŒ2¦¼iõT’ñàðvľ +ã»Y„2‹¿ìj#ä”k_~0+K—Q sYø 4Ä\ô†…¡´)÷T8 gid¦L¬¸Íðcq©£ˆ`QÌõ‹QD0hùU9¨M\ ác -GʾiÛ +ù±ožà™öe^mžÑ%lH†éôØ»ûýÞC•ºÚVGN>Ø­>Ò»õéÆMÌï]»Ñ};/U©¡ðT*öJËWN²mõל\¡ÆæJ'ƒDè,xwå„~§BÙ~Dhx“JT>³*ʾð¾­väŸQÿ©‹V‰&ÄD´)`²(Ãí;à—)DÒž;N~=×ò»»Ù‹ü¦ïf ”%‰J¿´Ôz¾àsûü—?åu•Ï­“2 çpÃB„À Åxa&$Y3Á&hL>a/vº•ʺžRh¾¾wàýÖª9 %ÎÜΤPS  ¦A"ž8¸ Õ8³5g öé남k7‹"‹Rjy71¤xx'¨|ÅIN“Ø´Z$Þœ§Ö†ï£;ਧ½³c–Éñ1¯ÚËJìï| yê-½eôh·yÔxßogmè R DçU 1 Oª;ìÚ™ýÑ…íìÞ¶1(´.ý.®ú § +3–Œ{!Æc×òfR¸{ cÛ€Jfáä_rÓÔP•ëùk€ÌáÚ~»Í|ôy±ÙûÂëÄ5ÁLâƒpÍ…J¾,\?ûzé3Á_É™ŠNüËYƒž:ò×ê~Ð,È ·¶e$^Ü{ô|ó ΑšA`ˆ&»_Îù;h,Ö.<•s×ëP¶˜H—‰¯Ö'“ë¯pw'Ç(É æQ”›¬¯eÝgC ]µsZŽñW‘ùŒwBéJD¨—5 :­a?(Ðp^—€•w·+[{ÜÓ·†‰²ã„ì’/²1 zÎÇäÀø+ -d„ä+Ç/2Øv)GúâeK×@8ªË,ÌUc­T¨ŽñóŸ½MRËuF¿™€ºÒtw¦ðüñúšŒÉê[ w[*LV†3€SG@CûÓ¬¢YÊ£é¥æ¼TŸi_²T +?²Ißᢠã¹Ô$!ŒF9À(cNïÓ9—ê%¨€)£!G±Èˆ~ïô«¦lgGy^]u© å4ü:m`¼Ëó~þ§ÞÆ”fø³Æ+á /Ï¿ýëÉñ§¥^šÊy{s•gÊ~B‰žûkŒå ëÿÅ?àbendstream endobj 1316 0 obj << /Type /Page /Contents 1317 0 R /Resources 1315 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1303 0 R +/Parent 1301 0 R >> endobj 1318 0 obj << /D [1316 0 R /XYZ 56.6929 794.5015 null] >> endobj 422 0 obj << -/D [1316 0 R /XYZ 56.6929 644.4755 null] +/D [1316 0 R /XYZ 56.6929 493.5807 null] >> endobj 930 0 obj << -/D [1316 0 R /XYZ 56.6929 619.6136 null] ->> endobj -426 0 obj << -/D [1316 0 R /XYZ 56.6929 131.4228 null] ->> endobj -1319 0 obj << -/D [1316 0 R /XYZ 56.6929 107.0033 null] +/D [1316 0 R /XYZ 56.6929 466.9981 null] >> endobj 1315 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1321 0 obj << +/Length 2924 +/Filter /FlateDecode +>> +stream +xÚµ]sÛ6òÝ¿Bo'ßD(>I`ò”¦NÎkr—ºs7“z2´DÉœH¤JRvÜ»þ÷ÛÅüéؾLÇ‹ýÂîb²˜qø3kWNÏR§™áÂÌ–»>ÛÀÚÛpi1Äúþâä»7*9æ™Ì.ÖZ–qkÅìbõqþúo¯þqqöát! Ÿ'ìta>ÿþüÝqôyýþÝ›ó·¿|xušêùÅùûwþpöæìÃÙ»×g§ a€ý2Px`Ûó¿ŸÑèí‡W?ýôêÃéåÅ'g.C}W¨Èo'/ùljÿx™rÖÌna™pNÎv'Ú(f´R²=ùùäŸÁÁªß:e?m,3R'³…ÑLí¦­Ì7`µEª“N’ÎÊRLY9b¡•wÙ—E¶Ì–×ù¢)~ϵ O˜ IߠÚ@ $‰I“#.®óÓ…â +e)v‡M²]u([Wë€ïªúŽÆEIß«»6ohØVô=4ສÃJdÑäõM@8û¿„]¤=x‡NÜü_×yÙoc€å‚ƒ Áœ1ÒË¥“F{éð»ÊÚŒF(~=[קÂÎsœ7«£m±+Ú86ýÞ(2Žo‹í–FËmž.`O2°ÚlhÚ4ÅM¾½ DªÈ+k{ÙP?>VÌ‹€bNRÉyY@þe™ç«|¶RBÏÏKgôéå” g{MÐÝaÛûmN³›"¿m^NPP Yfûý¶ » Á}VgmÐAúãEx·±·ªÄCiC9Í ëÒxΧNÎQv.Éç¾Ê׈HЈ@rrC§œI-5ÐF’‡ÒË›¯uäßà*ÂTÀD=§Íʢ܇`åe[“ª0ɺ„Éþàg`áçk?­v‘B@ë´‡qUz#!´íѼûŠD3®y:>æ}^ÕªXRÊóÎD2¬-v¤d€¸k=[H͇¨]@ø*n”'…©U¤g9ç'àóŸ[8¼]NayµÎv;Pô¾…áÐdʤ””"èûOÙjUün_çëâË6//iá?^;©˜Ãd<Òí#a\U›CCû¼ùTÕŸÊŠ¦/és9åÿaó¾®nŠU¾(¾¬ëgÐCuþÛ!oÚçÒÉ‘¯Êæ[ö.«=%v*»«hÚ'h€—Ãs ŒDhë¬lÖyÝ|Óîäñ:6å†Ó¨*ó ÜFŠÿB—wÞt[Ęé×”þœß5ÑÇü§@ÅØøøð +cì2øèÏ×´©õ2ï5-öÚ@ÔIˆÔ1%S”Xª•ö„þê— sišÌð^÷ûªn»¨ÂÉå„|X.al‹§È¹¸I†¢&÷Eu׉Ð?ATÉ“*u“Ç·V±¾{šA“”©Tê ¥9–ÒÌðç4ULiç& :’òqsögógœ¼LZ™N + +©¬[3, ŒPkgHÜCé¥pQðdBúÈpRüË¿^—³L¥R¦­ÖÏf6¶‰²’™ÄèIÚ¤;»ç›E9l(¦¼/òœt¿o1‹y6³±Y bšÛ£¢ø—SUd<#1 è¾\°— ?ä¿r.Ë¢-ª’ Y¹¢Á/M¶É'ʯ®ŽH»¾"Ê3(ç,K,7¡F ܧ%KRèÙÚ@6. hô²ùê ¦Ëk¨S—-”TM[,ÐW«ð½Êé›5Mµ,²ÖWu0%2§ú>TîªÖo€²;Û…­AHèY z•NÍÏ×£{ÚŠ2}¡½Po‹y¹t\šG—ŽØ—÷ +¨ïóe{ó•¯X}íˆ&WÒ3Èú›œ†¾ÙQQ¦†Ð"©e…r¢,¾Gàzþž +S«v쪦=â¼$27 ©mæÛ8÷]ŠfÚPżÚúÃÍÇ ¹dè X üèlСݯC¡|wi♣ýWlY•ë©Jß1¸"* T@ýo¤ÅT +Qf¾ê†»~ý˜*|HÅ„¦j¾ô ªåòPÓ0 k¤8¸L[í ²Í¡ øëPªJ<‡Íú-Š7"dª@¾((‹‰r6¡–† £lØw]Á¥™Å‹#­ÐgRGÞý}HÈŽYžež‡ù¤\ª ë™un³¢ôͦÅb’À^St]õÄÙAûcSó”ÓZÜcO °‹Mðj¯«&°G_Њ@Á‡-iIX” +- îRµ_Ð ‡»Ü0+Ž*£ªŒ/%]¿‰1ZlʪZrn +È&È'½ÙÚ‘ û¤)$Okž`ŸÄY9e%RÒÞuºóŠ-ÿ_^ö€¼³ +à&T ÕÄáé a]âD½7¡6ó»ê@ƒUÑPzô3zP:ñ6À0ûã<æBczÅ隸ñ펫CØ•­ƒ¬ÍÐr‰ƒ¨þÜa-}³@%ôÅ8¤ç$…+äÆG’]jð»z*§bÙixpRH¨>z/+é_V`r“m1¯'CÊ2q·dœ×Œ(Á½-ºüÓ¹çèR0©£ÜíÁú¦êÑÜ-9ÓºsïÑSÁÄMa±€ŒÜⵆyn•·x[ÎwÅ%€n¯sou?¡GËÔηÕ2Û¬/à¨5˜ê:iXô' ø»¬iH"ž3 „§Á=°­0‡x¦¾ñJ24˜8:ö¢\''ñòðdþ»Ï›8Š­!Î *Røu@ï°‘³Ã|¤•ŽÀ·ÙMŽ ÉÃÿ¢ÒЪw9¦!]!™6ðœÊJÊr¸³ã•}—Où$§•ëðó±â” Á¦ReØÞxY†×ÚTR +3ï/«€†ÊoâŽ}Õ4ÅÕ6gtçážöŠ!IÅ f†sýtŸÇ ÈgÛP žiü´•r\š¦ý+úPI”Ä÷ârt ­LÒ¯:¢¤«MÃk3 @i”ÓBPÌ"0¬z;]]¥†ÑÕg…(\WFÅx®ö¡êEÙs! è +¶¡N€ïf[]a4x˜ßÚÐä +Âös @þf!Ë(™Ìÿª’j6Ê “÷˃U¥¶*Þr£È µ s½Ot·•”™BZ’Vôi ƒ-DLK°t}ZB<¯•¥fqCPKë¢óX9 oÚ5up¬š;3¶å ™&c?=œ§Ñ‹RÂÆŽmŽô2^ŸQ12m"3 Þêw¶/†öµè­°Z­{&28 –Ý¥õø±ÙÄÜóV ^„ô 5'ÔDNå¦x1Ç2’‡Z—÷>Œ°Î‡a}/ø¢êÈ{éÓ½õüßoð‡\¥Ò8„e¥‡e÷;,¯Â2Yñ{zÕÀÕžpp%€e‡¶ÚAÞIͧž¯)ÕÁè*ó + ø¾Œ†ס}]‡‚Ø7Ä>üûfยæ×aÞ…¯—¹7@ˆ–cå!Ê·yAý/Þö…ÿyJ¹¡òv¨¡ë4t¡è‡õÁ>*éq´Šì«ö%ŒtLß°Ô¯²ƒª wO•bZAÅâœùêE¹è°F¶h®«Ã¥„"4ÛÞfø’ŽãÛªþŒ‘“$¡>ØþPï©íIHâJçV2­”yr:שŒE"Zm2QÝÑã—:7Ê“A¯"|ýIûÂû³WÈúªÛknôªh“!fŽ^d EÈÕÆÓ³á×lL,tåu>£œ™U¡ÞB¬«Ê¿+Y“–“ïÀÀg_ÂMŠ]`V…ÕÎó`B?E;A?£{~_²–ŽQÆ"HD تNÄ~\î½|P®›ÍÝÑ ß²ÎšëØbÄ,µ¬êúÔÎû6,ÄÜyTFÁ8G ‹=ôßÊ cMýSïÞ0¿ù?=úƒÑ)SÖÊéÿŽ€Ê•YéÒ(”-5Ç’ <|¥¿/úÿd2Ïendstream +endobj +1320 0 obj << +/Type /Page +/Contents 1321 0 R +/Resources 1319 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1301 0 R +>> endobj +1322 0 obj << +/D [1320 0 R /XYZ 85.0394 794.5015 null] +>> endobj +426 0 obj << +/D [1320 0 R /XYZ 85.0394 670.6895 null] +>> endobj +1323 0 obj << +/D [1320 0 R /XYZ 85.0394 644.0686 null] +>> endobj +430 0 obj << +/D [1320 0 R /XYZ 85.0394 402.7331 null] +>> endobj +1214 0 obj << +/D [1320 0 R /XYZ 85.0394 370.338 null] +>> endobj +1319 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1322 0 obj << -/Length 3405 -/Filter /FlateDecode ->> -stream -xÚµk“Û¶ñûýŠû¨ëX ñ"É''>§Î4Nê\:í8O¤N¬%R©;_Úü÷îb|ïOG,€ÅîbŸÅi ?qjM+§OS§# sºÚħW0ö݉à9Ë0i9œõÍÅÉW¯Uzê"—Èäôb=Àe£ØZqz‘¿_|û×—?]œ¿;[J/’èli’xñÍ›·¯âèïÛß¾~óÝ/ï^ž¥zqñæÇ·~wþúüÝùÛoÏÏ–Âë%c¸gÁë7;§Öwï^þðÃËwg.¾?9¿èxò+b…ŒüvòþC|šÛߟđrÖœÞ@'Ž„sòtw¢ŠŒV*@¶'?Ÿü½C8õKçäg”Œ•éœÝ@€"¶‘Ó.=M‹%•—àû³eÇ‹CñÛ±hÚeùy} ÈmÑ|¬«šº_Óßdö] -9cäG‘WÍ—¬]óý²)/Tw—Åá! bˆa—}~6‚ í!«šuqh¾hõr]vYKÀ_cS«®Š%L¸ ÿˆ®nÞtKÄxÓ‡˜þTÜòºÿÐ_ÓÊêj„àýý#Qzßþãùœ6õñ°*zN˽þ˜åyÇ!¢©‹”L `ŠR­ŒGô?d"—¦ÉéÞóþ~_X†åþ#v>ÌЇf)Xô:—×ÉÔä.©.dVK¤ê{HÕŽT«HªÔÍcU·åúöiMÒH¥Rß'PóeMU¤´s³Qù¸8û³ùœ¼‘ôNo†Ppe‡±4yi,šfjœ°Ñ”z)E$Ò8™Q†°á¬6|í×ó2Ú¬³¨Ti«õ³7ËDY™ÄèYʤ;»ç‹E9 lsÚöœ=Õ/‹yöfc±h©#[=V•?¾Æѯ^KÑÉb$xœ3Êe7k$‹fS·H%$¡Ùö&ÛtlßÔ‡Oh9IÂù!ÀöÇÞʞđ$î>wne¤•2Ovç:•!ID©Í:J£;#zÜâRçF~’ù*ùߟ´O¼?y†¬Ïº=—Ñ»y”=@™ 6“Ž³(2šjÃéA£óÊò:‡VAŽÌ*ηpÖeíï•ÆNË·Iw á½/ÍNÊoVóh§yÐ))þŠÅºf,Åçl‡©c ±dŠÈ[Õ‘ÈÇ85•^Ëåòxuu;¹á[²fJŒà¥VõápfÇ}ËXñP‹Ù‡ gâ°fK´{C¨Õ"øbÿþ6± ;}ì’zÃÔ‡N,bûŒ^XÎ…2z€u…´9OÇÚ·…útßò²šþy“tqþêíϼ‚òl׻ݱ§ç/Å 5•™„¾wÄÒ-„Q4ñø¾ñþšn¶ü·”X -ýŒ4;T`¨L<¹OªÀ’îZlüÐyw; É%ÖM"&Ôµñœ,_O"ˆe ­_^ýDcôü‰ .Û-iŽe9ˆª-éÊà—·÷·‡â3²ü`@åoé9·À¯JÆÇ4*‘„Ÿ‰À?Τ'Û2§qŸl4T°ô·0`„$(i‘[@•äò¶%5uþÑ`ˆ¢>¶tчƒí¦d0_#uÑË-¤jæ<ù¿àr|Cˆæ®f/«ŽûQn` ëëã–`,@€òm -È´l64èÙÒq Á3çà£@kàt½9x1JÏ°p0£]<ÐŒ‰#%ÑÝuF iÆÕuä 3,€rüÁÖÁ±y·º-^L}YŸvŒû<¼ž¥áÊnp¨}Ì´ËÐâ kèˆ1Ù£¬z[Ò¢«"ÿ'˜1SpWª«G:¥*˜©PÁƒbpû\îŽ;ìÈÎ*¶Y/ÿJDëÉ€¡ÌR¨ÎÙbõRù›O7±*¬Š¬TGJÅ3íLMJI¦&%¿ý€L !ljšu¦†ƒ¤o.äÔVòc@zSCèØÔ–*l\}($¿ÓÀ0.guèM&;ýTÕ7S•y¾fþyuccék9èÑÛÌ}zÞµ¿£P}Zã]6Ô75ùòʪáå&N²ëô|™†à‡`ÏVIÑL3ŒÒf˜¾ÏÚÕ&\11 ãw2Ø…ª{¼^Älÿ '¶ /‹ è}âôâ_è -}¼…ÿÔˆ ÿf»¾¥¢þÎÙÛ µ}8MC¾ - é°‘1’`›ˆƒoŸí}—#àw–á,:KÙ‡ïÂîùbP,ç¾ï‹»ï¾økÂþSKFÊZÙ}(8y¸H"+]ˆò_B˜)åÝg‡wIÿÝíúendstream -endobj -1321 0 obj << -/Type /Page -/Contents 1322 0 R -/Resources 1320 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1303 0 R ->> endobj -1323 0 obj << -/D [1321 0 R /XYZ 85.0394 794.5015 null] ->> endobj -430 0 obj << -/D [1321 0 R /XYZ 85.0394 575.952 null] ->> endobj -1214 0 obj << -/D [1321 0 R /XYZ 85.0394 545.1349 null] ->> endobj -1320 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj 1326 0 obj << -/Length 3013 +/Length 3698 /Filter /FlateDecode >> stream -xÚÅZKsÛ8¾ûWè¶r•…ŃÁš““8YÏÎ$³¶§¶¶2©%Ñ2+©ˆ”½Þ­ùïÛøåÇÌaË Ð@7º?|Ý´˜pøm˜Id2‰“ˆi.ôd±9ᓼûp"ü˜Y4ëŽzssò×÷*ž$,1ÒLnn;²,ãÖŠÉÍòóÔ0ÉNAŸ¾ýôñýå‡_¯ÎOãhzsùéãéLj>}ùÓµ>\ÿüóùÕéLX-¦oÿvþËÍŽ2^Æ›Ëï¨'¡Ÿ#B¯.Þ_\]||{qúåæÇ“‹›F—®¾‚+TäûÉç/|²µ<áL%VOà3‘$r²9‰´b:R*ô¬O®OþÑì¼uSGí'8“ÊÈJ5f@0£à°ÜÖyY€þ‘µÓË[T¦‰Î´H³Dâb8¼Þ¥Eu›íN…ÎnËÝ&­ý”îJ±„’ÒÏÉ«Ó™âÉ´(kh>­¶Ù"ÿs™-Ï GFÓú.YÙ&LƒÎ¯_Yù9…h óGÚÁøz±bŠG‘ŸL–©FQ1Ò/R§u¶ÉŠš–xÈ×kœ3™©ÍÄv2‚%ZK7|ž‘í«lÉF6Áa¸eœTOí±}D’i%mÇÌ2&ÁØÓº¤žu¾Ékj¢â®Qì7s0¦WÞRߢ,û³°Sûòb^î‹%=ü§,2/ºÙ–{që&•›Á"=ûã´*ÛÝêLàq -FÇMfAo* -P,–6xÅó(Ńyë,C¶w¦ÒCGÄÚºnmÖùŽt±(Â˼Xùye;ÿpÏRr'Épϳ­wçQ/‹#&#žô¼‘yÏÒ‚ñ$}W¹_pEË`¯oÙãØZqÃÈ©T”Ló%¸Ù¨¢žt,R‹Ú½Â"C`”Î5X0€Þ±Uæ%Ð(Yb­ÆY#qÖI¨××?1Æ´+»`YŽXAHfÛcZf¨uá #òпã'l,³J 042Gl:€ „ÀX9rëxÃSc ÀÎ/Ž“.Ш£Ê ^óSÇGr pAp 8íäüÆ5¿¹¾üp6<k™ûvo˜Å  Ò»ÝjB«ÎE†Ïºã¸‡ë,ìÛÆSð¶áV„2,6F÷örpÕ5£žÙ¡4oAx¸ËÜVÌ´N×ß\c·;üEÀa᦬3ÝïXòé?½ ¢3ãû>«jêp·Ÿ›ZÔO¯çèŠ; ÑÉZ8Øœ·¸¦NkBG•¯Š´ÞS?vYº–ÜKç`ð»ÊŠl>¸¤Ç}EfЉßLB?&½‹:î²V8@Bá»Óí6+–aPõD&ÓMVUé*óOÏr¼ï®=uTË]¾ÊA¡m;×M³»§E€íŒØqGBÚÁß÷95–}·4Z2¼C õ‚0´bÊ5:p|¾®ïÊýê¨÷›ÄÆj—n6éŽðæ oÇ®º¼X›g°[3.Œ`7JM×ëò¡¢¶llöë:ß®ý” )0g±†ózÄ~ž…¯Ñ':C©·½õöÅv^‘Ÿ -ÊŠ¤ï¨Z±öV¬öÛm¹«= oü. ²á•=FX•ûÝ"»Fáf‘I`è©£r•ñq¹³{3"ÚÉ7qܳ3ƾ|ñå þÞÉ}~ÿaÌÖ°ŸÈ2kxû]Eò—ù•Êò–ÚÐm _ñîñŒÆúÑÓŒ#Â:?<¡C‰:aR6Ÿ :UyiySÌ«èñÝÇëë‹·Ô¦"ZýHOTY(ëŠQ"Ü™WAá¹ãØ]8ÅldÕD!Æ#ÃyšS6ãgÝ cTn(·Ï)a3³»tM8$]á‡t2ŒznÒˆNº*Ày0é¬0ÉÓwöÆÞ {Ó“³0üvj¯Rq_®ÃDì ±ÝÏ×ù‚Ú®2ÑfjÊ•/ð§(‹Yº¯ïJX/Eø§nÿCñf½oEùP¸”MOç{¿À«"llî§:gqèIÙÆ1ÅM9‡ŠjÆi(©çª@ØÞtF­ ro—‡ „û…/¸ÃCî>’iª -Oeý\j´&Ã'ŸÜC«çålÓöÃN^Xi_Pµ‹Ô§ÂÝëÚø#BmOïÒŠz晫…j÷! Ïoµojkn¢—Òc½;µSÑôŠi®îíà w8«&YiÝni@˜p—.Ã~NÅ”¶$¦÷é:_v&~Ж¬yŸcZ·ÇíoÚ›~­±*×M…1­p¶µGÈ7 í×nóæ’X’õƒ}ŠÖ©¯W¡L6_–ð©ªÉ¹in¸¹›`Ò-x JjÂ×#q5 6Æ¡…©áaQîW* ÿe ºÑO*ªœãã:§Ã6ßf¬·EŠç@Û⇱PBKCQ¥/3Ào¿’Ë•à7ûwîŠÂ A[Ñ”åšr6èwRXâOýÈŽçû$ÓI<¸Òž”îUi›fñ¤Ã®Ü[,Ð9ƒBÃZu =nÈÁ¹´/6Žµ¶ùX¬›ì¶¬²áÒ­íà!$ª¦Iaƒÿ÷òc*¿øW` @²„Iúv¹ºª²zèý­IÿüÝ{°NMúäÐ+º|ü:éQÀµN^n5aÌP‰ç Ê"D!RSo[Ç'$¨æx/D€$éâ®™[ÁAûI¼Ë%árrœ]`,/ué&óŸs°jK=üNÇUº -8Lu¹(×g0Vx•ÝmÎ,«©Ñ½Iáî5Q£¶>ªA›´W»ëÏ$­=±#ÑÑð(i)¢ðñ>Ïþ(ÿ&HŒ—õmåL¥4°R=°ÔgHV«êK—§.âMZ/îf‹u;iø¼ûÁ¼Ðâ«ñuíû%æ$_í¾@á?„üYa;Äì -ØÈŒBÇ?fÕ×r÷µ(GsÑÍœyèß<åGÆÿDRÈöµ‰ƒÁœ±ÿ^“ã¿°DÞøßþϦöß¾¢˜)kå8Ý”˜ÀxUØ”ó_¡[4U&ƒµ§Y{ì8Éz73³Imy} DŽ†1EÊ"åñl*ÿžn4À—¨yìR:lF¿ÐÝ_0øñ…Ò¡ND²0I*ÆÕb½=c‹ ô½;ãnLàÃQßßœýù­4‹$L´Ð‹›Û®8dqÌ7ÙÇ¥ExØòõÞ¾÷óÕŹ‰–7ïüpÅ–oßÿý’Zï®.~øáâê<à±âË×¹øéæòŠº´Ãñýûo’Ðß ¤W—o/¯.?¼¾<ÿtó׳˛n/Ãýr&q#_Î>~b‹ ¶ý×3Ê$V‹{ø`!O±ØžEJ†*’ÒCʳë³t½vê,ÿ8 …Ôb†BÎ1P%¡–Ð… ¼¹Ëq0”†ò$Œ#~“gUã ñ‰(4‘ÔnкLM~H/³¼Í÷Û¢Êü6Ëû»¼½Ë÷Ô -‚–õ:- Öäû¯¾ÿ¾(K¶m¾ÝµnZMÿn³¼|óáÚ͸Ë+‚­ëíöPë´-ª ’¼"`I¬¢EÀy˜(%,±÷E{G¢´Ô`c˜òmݺoGÈ=DÜÌrÊödùmz([ú(š9öi2r Ö<äsìãQ˜DÒó8$jy Tj%¡e€\Î’`a¤ )8d» )~Ëg–’'nt½k‹™ãN[”SÌhäx ­ŸßüD}­µwiK­ÂÍK3`U[4yFðÕÁ«tëANFÐúrÈ÷(žnI»ó8Q™œ˜hßC™HžŒe¢ðÏóD,ӲȨÿkZ¬Î ¶Li2u(.JZ”,#–h‚¬ZRÓdù+Slˆ¢>´M‘9í]áÀû´Ú8 ÓUDãI,ʼjËGDöïCÓæ`æ$a6Vı^"2Yzèúí¡$˜c @ê5î‹æŽ:í¶"Ö ¢!xJସEfÜæÄ“ª%ð×sl—¾<·Q™ôVi¡©#Ž”§÷s‘¤™Ýuä­lÊz•–ÀÎùòÁnë=5òoévWæL»uê%éìÍþ§ô÷+c‚ºïS…íjŸ2í·H•‡xWà•>[íį’´h3B´+‹¼é¥iíôq_ +~Y:ÃۦߵRðVRGS+åÒ[)´œ•ˆ«Ø¶ø!:w(ÉbÞ4éÆ vö -o•Ðô¾Vú*£Š’‰QIoTd¤Q(%Ó)wò‚,MnÕ diq–†À¡¥aWgiØI +ˆ`gi$J-é- ¡cK $ãζ,zÇGœV8¼ma¿Ó6€žPäÏU}?Õ˜—+æï×6g+RoéËŠñ”‚o•½ýbû°ÛÕ{rôѲ½¯ ü[]¹Á-0»¹õ÷p`×hy`üч`»«¦}5w* QœêVyïá±–+*#üP0ùÎîy-X¥£ÉBCM†á\€‡•!‡p$*âZSlc¼ÔÜA×µýÏƺS±rj»B…’©Îv«·©¹]à æ‡îÒõ熖NZg‰yœÄÉä]Ý4ŪtC‹ÊZö;ÜÄŸ¹-<‘¡Qj|²>½¡}¬`•5!Ô¾Gb™Û#b]€¢ßŽ¢åêÐÒ`š$@–ÖB‚6TÐR •Ãu¨2 £­ëÌÁîâq€$‰Ão–V ߥíú\›U·…‘n€54àPÍ Ò-ýNlAD*ÐyDË_Ð Ú“:ÖöðƒF³Ë×Åí}Üßë;j’½PÛ¤ÆGªÐ°g6R‡ÄÛ%â°‘¨6{z€µB ¼,:+Þ€w åX|A7k´}rƒèåãxùþvfµH…‰`/[ÌHÇ„(‹dɲª[ +›-ÇPMòìEÑ‰Æ Æé`åÁBD‚B9;±ž‘`ÙÑø¤3i óêøß´)ä$A1ÿ‘/J CÓ&›ÙʹrP…YÿÂÆq¾ßöøL)â¡MBŒ-wÞ¤,¶EKM +€ Q¶+T8‡Z°u]­û> DXQ­êƒµ&ø £Á¢îȲƒch¸Èˆÿ8mœAÁR9HÉÜVFÊYÕsþ\—ˆ£‰Vœ`D&ñ$žµcEˆžgÃѹ¤kï’»sÚ²ZR,y™I¦6Ô;§Î³Zf¢PDlœ¹”PB@Ã’„?#Ô„•¹ž]Ÿó‡i»bZLÓöÒŽ 4XÔ$3TF=©°È´"ˆ5SPB‡U#žª‚ˆ0‰ãx¾tƒFªoŒwþ;Öº[×J6—z‹0îE”å¸åʺȹ(9!]8Vb©&»Ÿr˜¡_:rèþŒtyVB#ü“ c‹Î \•&]»à?ÂL lµ€t­} ¥õ¥“²†Õ7×ïß½šŠ’k­_(AŒ’ÄÈ@êÛoÔ¸T”üð`8þ¸ t„i¸Î=ݱUMIáR‡Fk5¢å¨¦Õz‚„clŽœðe½lÓò³«:’þS`kÆ•=ò]2ù9DÆâÝŒ/´ bN­ÚÇW9º…Ì`¡W.ÅÁ9M±`°J&k*¬6lª´=t¥Õ•Ï”S0øßäU¾ÌèóДOåaê1!¢è“ü²¡–mìv0úA-îh„2éCÒ@K³¼gUÃòŽÛ:Ôz_lŠŠŠw3ÏSµº‘·H?øË¡pqþ؇¯ºšÀ¦ò}6üT¾‚-ä-&ém㢄Øï°0.bŽHllöév ýÀS×÷Îs h±ÒO8n2®åÄq#VÈ0ëû†ÚÖ‰`c{(ÛbWº!ˆ-cHòz@¸M °ub0”xbQ¯ã/¶ W +à: +MÌ'!æ ¤(]æy:W-™pÈÆç‚AÌšÖs•H?¥H|€Š:‹WrnNã ¾êÔLsm̈ñ6½Q}> "íô ïúÈå&¤Ý”aÞ‡C²Ì%„'eGÚeGŠâyç¤ä¯OÇ‹|2ÏÔ0™¸Ë1n­@#C7dkꎤzó¯yéÕ?ˆà{K ª¥ÍŠí!c¼Ñ1^›Î¥9 +Î’X¿HäA7käVl²&„c üœš- ‰å5|eº”"%w¥H¡—4ßx™däp„o çžØ–P’(¡^¬q2LLw³òô~Þé¦ÏÑ)t”1äs±ëK–·iQ6¯¼ïÌ'Þ5Ë›õ¾ð%3eלς` ï¸^j¤FEO©2òw©àÒ£.ªiÜ! °@±ˆ˜c¡Í1P7>N8Ž@ŽñŽ¢ º^à@B3% œq¨Á³ŒH: +…ºQOrŒmp¯$ñ^IÈø¹Î—{þÃ1 +þí´Dµ€“ˈ§Ýn—›0ÎËÒèP3%^îp•w¸ú¤ÃUÏt¸¶….<¯1aÌ"5ÍY[¢Åt%ʆ¾—SG./—cb|qÖZ¡INº[ }dÜ&"¿SÝnO"õ~ æžr·F…¶ñ\!Ëu¥MtG”ƃÂɈMxÒTc'ÅÙŒÓÞÿ¤ÎXœÜ½‘usO9]ˆ¦€oêeú¦ºëîµ'ev+dN`ÎLrù¼œ\ꮄl/?µ¦„1ý¨5BuÉëáÉÍë©1I_²±ÕLí#wÃüin˜ ÷¡„b§ ŒÉ“ESSÇÊ D/±¥\ÍE/RÛtqi|`‹OŽ`üîí˜Sö£´³œB7˜ÚoPšH}¸¢N‡+ (uNòi©*=>Îq±UîËaI³xIÿíG û5êù¦@®ú¹ÖcWëvŠQf*©°Ô…÷9q÷²‡'çg˜6ííå^`3#‹õº/ÄÚÇ=.Ù²øe2.±KO 1iÀý+F3c´{›Šâ0_C}¬=ÿÝ\ÆûñxÜËñÚ¿a~úäŠAs´ÿ÷»9f=‘óÝt<ì¹<~Cu²¢lè°…ÆÏövîX3&Ì?pDX9gÇš¹:LB!º{‚A9^Ĭ«ä5ôùæÃõõåkjS­} /*+Ô-^pb<Y4†Á+ + ¸:ßdG°5® 3§×^”Ýð`0~.Œ›`‡“@IÆG¤€kMäÔǤôS\FÚäÿÂ33è]—`‰>*§%ï8M_–·ð?(¹ +Ù½öî6v‡UY¬©m }†&éÚþªº +ÒC{WÃz):~»› ɺõìÝ£MÕ”»¢ xªÊ¶rS­šX¿I®qjÀõ +r'*sŒ?i{¶øƒÐ£WÔÊ ÿâ ýÚ¿ÓËÂÞ‹)*rí_shwÙÍõ€eøå’zhÕóèž]:xÜ3šçW:TTäš}ˆôceOtzÀ ÷%A¶¼Ã;h„¬r[Uöîå·9t%5;ÑKé³ÝŸãhë»} Í–Á\½gµ„+mÇè`À- ðîÒÌÓsΗDÇW*E6˜\¹A;âæ×¼šÛu/îé#?G_v…E÷ÑùÆÎc(æ×îóeïýÃ+Z›Z§­{RT¾:¶Êê-èTÓåÚÃg$·¥z·5WI»°‹ALãü7´ð:€\´Ä§‘{$Õ•»Ë0ªICõrü, ¶Éã9kš¾6ñ”·Žñ*ÌWÎú‡B€=Ëó­_ÉæHðŸ+l)¸‹Ì64%+)W¸åÄÂ~êFß]D¡JÌä8´û¤4¯IûôŠ%ƒ°Êö’Áºœe(4C¡ÕqÚóÜ1qÈDülæÄqÿ"³*»¬¶nòéÒ=ïàÃ'¨ºK]½úòbëSþvù‹4„ ý“R›««&o§Êß³ôO^ÝÛáî‰^áÕ»+µ]wϽ† 4ÏœP¬‹Tþð»éþQ9„;2ŽÅüY'@^pÖJO” Šôåþõ1éÿVendstream endobj 1325 0 obj << /Type /Page /Contents 1326 0 R /Resources 1324 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1303 0 R +/Parent 1301 0 R /Annots [ 1328 0 R 1329 0 R 1332 0 R ] >> endobj 1328 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [87.6538 683.0228 137.7628 695.0824] +/Rect [87.6538 510.6542 137.7628 522.7138] /Subtype /Link /A << /S /GoTo /D (tsig) >> >> endobj 1329 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [370.941 574.3534 439.613 586.4131] +/Rect [370.941 403.021 439.613 415.0807] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1332 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.8521 316.5051 481.8988 328.5648] +/Rect [432.8521 151.1974 481.8988 163.257] /Subtype /Link /A << /S /GoTo /D (DNSSEC) >> >> endobj @@ -5449,49 +5475,39 @@ endobj /D [1325 0 R /XYZ 56.6929 794.5015 null] >> endobj 434 0 obj << -/D [1325 0 R /XYZ 56.6929 474.1474 null] +/D [1325 0 R /XYZ 56.6929 305.0663 null] >> endobj 1330 0 obj << -/D [1325 0 R /XYZ 56.6929 446.055 null] +/D [1325 0 R /XYZ 56.6929 277.7349 null] >> endobj 438 0 obj << -/D [1325 0 R /XYZ 56.6929 366.5019 null] +/D [1325 0 R /XYZ 56.6929 199.9149 null] >> endobj 1331 0 obj << -/D [1325 0 R /XYZ 56.6929 335.6 null] ->> endobj -442 0 obj << -/D [1325 0 R /XYZ 56.6929 180.4336 null] ->> endobj -1304 0 obj << -/D [1325 0 R /XYZ 56.6929 155.306 null] +/D [1325 0 R /XYZ 56.6929 169.7741 null] >> endobj 1324 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1335 0 obj << -/Length 2914 +/Length 3052 /Filter /FlateDecode >> stream -xÚ­ZKsÛ8¾ûW¨rYºÊb@€`sr'㩉'ëxv«vf4Y¬P¤F¤ìx·æ¿o7àC†#e6¥6¯_ ¢ƒ_4“IÈ„Šg™ŠÃ„EɬXŸ°ÙŒ½?‰ìœ¹›4Ïz}sòòÈf*T)Og7Ë/2)£ÙÍâ×àÍço.®Oçœ_Ÿþ~óãÉÅM¿—ñ~#&p#œüú;›-`Û?ž°P(™Ì ÁÂH)>[ŸÄ‰“X×S|:ùGÏp4j^õé/2L$Ï| -T>&*LF¾Â=¼|Ç£Y…*I8Ne³y,C%$7“P1œƒ–cÁ}©H Ÿº¼Ók]wÔ|«cŒ×eW65õäõ‚ˆ_ÚüNÛ…ÄH$X‡'a–ÂAã:7+ÝK3LŠ,®p»8Ç,ÿ”ÃTJi'µcÉÒ lé™ÓcÓ<èírWa+ –:ïN£`·=d ©¯YÒL‡¤””Ý*·<+ÝM¹ÖùÚ¾Ýêí½ÞÚÁº}èiz¼½úDÄ;½}$rQ.qù¥6RÌqƒp"TQ¦fóþd`k°© -_Êd°Ð]/ÊúŽšFëð|X5D˜mÃ3o?Ã$€¶P"¸ì¦ƒ›|ەŮʷŽí®Õ¤ —ÍÖN_o*£Ñ~¹vS•–íût·ÛXÆe·jvÙ -s{ «]å÷Ä Ñ5ôÜžÂÊ7ë]Õ•°µHmØs’a¬xb8]äÅÊ@ƒPÉÄ$!#bDÄAµ˺Åf„'‡½}¤ 8ÐbM‡Qö ÚM^Ø~ ReUÑ”[;Öj]uû8Y§ÝÝ‚&§+U Òæ±J‚s‹´ät!4t'³`wÅ -w ÄŸ”° €»±ah”K+;;©mÈpؾüh_^,ÈBÚ–Þœ°îœåN<Cq[# |}Ïi - ¶ËD:K “ŒÇǸM*cî>§9ï9ÎÇ,ŸzD!³0Q0ÚOC1ÍÆö…¤„,ƒ¨óÝ„ì92æQÈR8ä‰UÙv>P§a–EùÍr8C €ÿÖz BB–2g FÎ q&‰’>Œµ „€(“: Š*w‚– 0XCb¡[ð'9 ì@°™©c°aG6l<6T&ýÊÏ‚M„"|–‚úÓ(ãßl–ã|ÌÒ¶4éhá¯`- eœeßOÆžãcˆµOo"äsXË¿}\&?%G”Ïc-eªÁ8c¢Å%>Àt#%ã à0KTp‰2 ÔMGD»ÑE‰ž]/Π'‰ƒÛ¦óHD˜OD!Ÿ} -é^ª2=º'&ÁÑ@–9áx`k -_‰”}e¡—9FÚ †M|>Láè˜#ÇÆšW&ÕQc³ÒI„HƒËºë37e£² -ÀèŠÏ6V+Šû||[…ø›IÈÔžcÁøWµÀŒã$ùíI|…÷ž(w­Z»¹.ÿìË7!Md£M´øY?¶Ï$žIìà÷°*Ážáâ`cTÔÜ— 4ˆT(¬u±Êë²]SÓ¤X8N–=.€#mÎ[]éÂõ¹‰&Q<€£L¡~9§©6KAFnIÚ3R·V˜‘%Ø)¾ƒœ»ÝM ’´¿ÕÅnÛ–÷zÞÔ:zÐ eCŸ‘ŸaR˜:ýð,5@nL¤Íª3V¦f—wAÖÜvöÅ%éxm9:[0¬ÞÌ%_ý¤Ñ²Æn¬¨“ó)W°ÄÔ&s.’ 1k.LRÍ%=;oíµª„уµ úæ½D´%¾¥}¶å]m µ£®ß8ÏŠMf}æôHYÔaUÔ­Oi›êA`«‡ÍÆESwúK×oÕh RºP0¶gôäë(ä¶cmP³è=ÿW*9ž9•¹‚‹¥}ÚT€Ê9™FÑ´*øwC™;Ø„KäÔÄ¢7‰tîs3L†"fñÁÒ!‚{J‡ÄA )ckð$P{ò¢ßYÞV¶m¬<aÖtRéô˜¥NÌx–…2*. и -þ -¦nÃ>µTCWÝSV06ªë8%-úcÓú—@ SÜ:*Xä]N}äȸµCwà l— [ðô²SN½g¾š”*]8ý%ÇZ÷Ì‚bY 6°­ó -齋 ìûØ\âÖ]†ØjÖ–ÍxaBŒÊfo}û!¯Í °W™tl(ð™†Óe=Lô²ô»~e/¢ ¨Øöôà ÓŠl­Ú䎆ÚØLE/t]ؾÆÞÿ!×ÆquŽÀ¿ð½PÕÅü(ÃdÑ“tÁÆC!#Ì8â©ùçiÁÜ-Hç”÷w “†¼µýÖCTzb -(0ˆžÎ-íÓ—Gñxøòj: vk½°|¯šÎ®n͉¥¶J1‹Õs÷úý ôzg2”’’ÜoÖÉ‚ß±>!i]y[çC.À†!.¯œï¦= —ÜE³Þ”•^ÌÝðµ‹ùo'ú¼ÔÃír4R?Œj=%²€3fGxÆ8V¾¼ø’¨Î¡@h öŽZHÚ ÇIk|¼+Þ_ó÷Ù9ô W~øE¦hÈ:qU7¸ë˜]pª6Á+¸=·\*@t0÷H‘Ø‘ŠÜ1`×åUHÄyýèMÙâ"€S–ñAeA©ž~°KL¼.ßÔ4`´gˆfC#•¾×õaHMŠzï¶öN GIÓD÷'og·åÂ"cáRë,Ì>ug&«‘ŒB,<ñÊž(ºàCÅË12³!BÑ-KùœŠ2H;˜R¾o-ÀÛ–@¹+Y¿{éÄ<pQ{K#ÃAµe ¿@ÚT”·FePè+•yÊ·£c€5ô‘eöŽ½uÙ3.Ê£7ˆ¹P‚ˆŒñ¶,}faëÜÐ5Póº€øðÞN±0NŽù$æÛª‹pbSÄ<Öz¬Ò©¥ž¤ÆVÐå$¯í7hí’\Ë×}LÒ6Þµö -k¿®úr«¿¶Ï¿{.‰a×"d2ÞÛ69»÷Â%û/¨ý_£,‘@•™ì¼/_Ò”c|Hµ«fW-ˆ¶5’øEÅŽ7µjÝ=4ÛÏ£Ðñ䎥/$HóˆXh~/å+ê O¸æ[*~0dñDº[{…íp¡bäÕÛû²° ´Ñ§BN$À°é•ÖòE—‡óu{¼L¹]¨APt¶s8„™oe‡,ï}°ÃܾPn5ûÕŽ>“šõèÀn§ü§Û†¬­Û?>˜7Ae$Éa´€}h‡Œ–zå-BËjùÜÉ.n_¼²–ëãÿçƒýqˆ}Ô»öxÔðm2·'`1—î½%hkø¥srœ›­¾/›];œû7ÚĈ£ áZ/ͧ¨cíÀ©d²µcÐ_7ß ~d·-‹Îié¯Àß÷?8Aüóˆç_#¬ÿ»Çÿý•á¬["ܶáYtŸa„iäüªŸn‹]_•ûºØy¶ûÎ’r€^µ;ž¾·‰–ë¶użhGØgûý–?€ÿj÷}àëâžØ _j½ƒ•7#7 -Rg œ™ xät‰¾ú)d ÒèˆÑx{ó12 Z‡eÛa3Á“Ã^‚>Rp^;œ +°aÐm‹’û 0H=TuMSny¬³¶!êöq²N·¿MNWb§¨Œž_0B0¢¦G¡™ »<#G„»Àâ/Ïç÷€v²ahT+«zžÔµd ¸l_ýÈ/ƒ¤øÒћֽ·Ü‰çcˆ!ë˜}èqò"s°ÝX¦3•)È°¤xIú""ãÌ=”¼,Ž‹1KJíÆòÉ<‹´ê°ò༅T€º8ƒìïOràxBH%’(Ná'BºueYâ‘ß®§ãð—]À` 5ËÒØ»O +_ 1!"HÉòÆBY™”í¥^ßàNÁ9E$ÖE[ê@°¹©c°aÇ6l<64×ÃÊÏ‚MF2%ªT6AýlÌq1fäTéháßÁZå*Ëþ<Ž'dåxz!ŸÃZøâ2ù©Ü{Äüy¬¥1„j™¾k“œ,PØr®&€ÃrJ›ùÊ$å¼i{"º­-+ôìv ™µÔj~Ûö¡’Èó‰d"äó O¡ìJMæ¡@Ä$8¨ö&OlÍà+CˆZÚU‘v‚aŸŽSJñR)X+°¨]ªcÆfe1’H™Î¯šalÈÜ Ge(£Ö¶ü̱ÚP,8æÚ*Äß,‡:ô…Ú“‘’±ø]í0•ÒúÑ^Ž¯ˆÁ~£uÇ›ë‹Ï¡|Ò$@6Ø$iy¦ +ÅÄS+¿‡u…Å£L•/ëî«%D*ç(ll¹.šªÛPÓ¥X8N–=>€#íÎ;[ÛÒ÷ù‰.1bG™ê’7•³dä—¤=#uËÂŒ,§„ráwwºº  ʆ!#ÇB6K½~D–€Š¦#’³ê ªÕ†²Ð„kZ^bÜYs×ó‹+Òñ†9z[p¬†’‡(ù&–uvâNv9R®Œµ«M ¸×óÖ­¹tI=6Wô샵‹É£FOÖ.è›ÑŽøVü쪻ÆjO]¿‘!¥\fCæôHYÔÁ*êÖŽ§tm} p‹5‡Í8Æx{b뇭:mAJÉ8>²á‚…Ü c¬ j–ƒçÿJNd^e¾àŠç?9 rJ\(j“dZü³¥ÌlÂ'òKjbQ‚›Dº¹™Ø•½êdéJ)¥ƒöPCÊÙ< Ô㞢,ÁwV·5·•ëf]'•zÀ,u†`&²,I| +gÓeê-F"ço}± ‡*b3=TV•ÈЄq7 Ôáà/8ìãPGe0t5å`%&×o‚walZÿˆaŠ_ǸË*ê#GÄ-݃à.¶àdg¼z_…îP¨Ò…3°¿XëòÍؘªÀvMQ#}t±]`GÃ׃¸õ—!\ÍrÙŒ&tSÙ|TßæNªï‹ÆÝH¾’ÞÌ cË·TØð:²jWi”håmÐ3 äñ1J!B*ÒS9SI§OȾ–Dy[sóB¢è²„LœvzHÄ9Üñ(n·ÏRH'Dr”m·.²ãc Pk§4 ® ]x;S¹úgÂ^ʽC‚¾Q€P:›ÿc`†—{~Âb´%wõÞY1swx¯F +Çóš`Ÿ9_(UjN/8 8\£X,åOҸ܀žôàD÷­Äü ðŠb$›+L9€Óp‚帷Ôp[幓¼ÄIÃ»ÐêžôÈk½(²Œ/Jù‚¼ãöôàðºœDf«v¹ãèúÞ–vi›’ûZ¾ÿC®­çêAx'à{¡ªSâE†'OÒŽ‡2O0ãPÓ€ø÷s­ñÎ…‡s*†»Î“†¢ãþÖ#Tºv8DOçVüôà‰_]O§ÁÀ~c—Ì÷ºíyu6§8å*Å-Ö,üë÷¡7{—É üI'`ìdÁï°EH²+ïªÃù ¹ºö¾›ö€\ +&Êv³­j»\ø#<À—ë‚ÞÛ©Oã% =Ü.'#õè6P"K8ãøžQ)Ê/‰ê +t€Öðh洞$9AZã]‰ášÈΡïpå‡/QdJY'®ê÷} ³«N•Œ<Ç +îÈ-—¤ +Ì=1$vb ØuuqÑ<S6AðÊr>( ,¨1ÍÓï¼ÄÄëàòmCN{Žh·4RÛ{[S†äѤdPñ~ÇwZ8Jš&z8yžÝUKFÆÒ§ÖY”iq”Y£õå1…Xxâ•=QtÁ‡(vŠÏÇÈÌêÝØR°ÌŸó@I&À™ŎؘзàÍeP>äæñ°¾ˆôbž¸¨=Ž¥qL†ƒ,f`ƒ´©¬ú`C¡oL(ß^ØÐG–98öÎg±sQ½AÌ…Dž ÂÛ²ô™…Ù¹¡k*¡æõñ¼Š#¥_òI,´U) à(WÄ<Ö·v¬Ê«¥™¤ÆÓËìrûÇ-Zû‰$—ùúI–Óè}ÇWXÇu ÔÏ[ýûüKà’v-£8Wzߤ¿ðÉþãoÎÁO§¯_Ó”g|Huëv_/‰æš Iü¢âÏ›ZíÚÝçQèxÑgí$ŽÜïuþæø´À†±šH÷㎯ °±;\¨8yíî¾*¹Ñ·!!'`Ø JË|ÑåñGî—ËTðB-‚¢·‡oß¼æŠÅ[óƒ0*ñÚÇö åWƒ°_ïé3éèK¾í¦ü§Û†¬­?>q0o‚ÊH’1ZBÌá¿i£‰‡ïîøO;‡4©,’y.ÂÿÇ‘1dü% å¾ðgÇ’ÿîy*úâ²endstream endobj 1334 0 obj << /Type /Page @@ -5503,24 +5519,29 @@ endobj 1336 0 obj << /D [1334 0 R /XYZ 85.0394 794.5015 null] >> endobj +442 0 obj << +/D [1334 0 R /XYZ 85.0394 728.7887 null] +>> endobj +1303 0 obj << +/D [1334 0 R /XYZ 85.0394 703.8893 null] +>> endobj 446 0 obj << -/D [1334 0 R /XYZ 85.0394 731.1791 null] +/D [1334 0 R /XYZ 85.0394 574.0702 null] >> endobj 1337 0 obj << -/D [1334 0 R /XYZ 85.0394 700.243 null] +/D [1334 0 R /XYZ 85.0394 543.3965 null] >> endobj 1333 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1341 0 obj << -/Length 1132 +/Length 1191 /Filter /FlateDecode >> stream -xÚÍXÝsâ6ç¯ðä :#Åò·§O¹”¤¹éåZŽ>Ñ £Ø‚¨ñ×I"@Êýï•-ÛØ’™X+ë§ß®v×»Bš.H³èø†¯¹¾mÙZ÷tm.ç®{¨|T/æ[ŸÆ½ó+ÓÕ|è;†£g ,ꞇ´q8é;Ѐ‰ ÷/¿Þ^Ý\ÿ9º¸V|óõv [ï_Ýü6TO×£‹/_.F€<õ/½ø}<©)§Äøtsû‹’øêïÐÑðj8Þ^wãϽá¸Ö¥©/ÒÍ\‘ï½É®…RíÏ=š¾gkK9Ð!ò}C‹{–mBÛ2ÍJõ¾õþ¨³ÅÒ½öC:4LÇØg@¿a@߀¶íYškûÐ1 ³0àùù8ºÞÒD`šÐd®Æi­ÕS¶¸hPpÎé}DÔø!å‚ÃÜ’ @ú¶mÈÏiR¾sFV8Î"ƒ4>S¢Š†=ÏõÛëÄ:+×Ř Â~nƒ«sŸÑè8 +ùr‚#ÞŸ©5`/þrÒ´¡çØö¾Éó+iµx–on¹Ò²®Y;aJGÒåþJÍÜ+¾ ,HLQúÃqŒ™Âk„„3lˆLÛ|a¨üišà¸N‚s~ײ˜ ýܱZÆ8`1¥Ù¤<¿(J—àû‚°u…«äaÈäÁNc,‚‡iD¹Priâÿî ¦`8á3ÂNE»°‹,”f}7® -d©ôé¶ÔÌTÍLÙ¢r° „ðîcð$© ³6<ͦ9ï3K™¨åù Ü¡Ü`ò†5’fÅ®³‰ƒ<‚Üã¸ü¥Ûú³d3Ã4ÚÐy’2"e¨µÓ©¯ãÕ»Â-i˜…J¶&|š²i’vV&‚Ìëi„G‹¬ùÌ<9MšÎ.Mφ¦Üýƒhúžáî=«¼Æ\–j²l käq:O8¢¡üªßöT%Õ#=]Vø˜dÔ8™E™Ér衈·7Çÿé ÁÖGA ]ÇB´XÈ0!e$iUàfX<Eu‡åÏ„åÅ›tc „ˆ;Ø[ÿ¨+p5m½wÏ#üD—ù{ÊÐÓëü“{ô1½ƒñZïÊr£Ž«÷k#TyùȯLÿï}‚ñN}¾ëÙzçw{.3ôºí>ùêd{¯${wÓóŒúVÄ0͸ázÐò$HIªhð½æÕË.õÉ@òKendstream +xÚµX[sÚ8~çWxò;#Å|›>¥Y’Mg“v)}¢FØ2ÑÖ·JBKÿûÊ–llâ$@¶ÃƒuýÎwŽÎ9:ÂÐtñ34ÛŽoúšë¡­¶$=][ˆ¹ëž¡Ö€jh®z?é_Y®æCß1m5°<¨{ž¡MÂiß&½ùñîêæúËøbàû“›w`Úzÿêæï‘l]/no/Æ`x¶Ñ¿üëâÓd4–SŽÂxs÷§ñåçÐñèj4Ý]Ž÷“½Ñ¤Ö¥©¯¡[…"ß{Ó{] …Úz:´|ÏÖÖ¢£CÃ÷M-é m ÚC˪FâÞçÞ?5`c¶ÜÚi?C‡¦å˜]ô4LM1äÚ>t,Ó*-È79G×û bÓw…NômÛ,E$V‹Îð#Jò’ŠÅ)Ša8?“{€eCϱíöÖ_Ý“FsRH3-èú°]¼®¥I)g²ÿ³\Þ u~.—Ü"<È&ŠcÙb‚SÎd'Íx¥¯X‰CÙ™oä—?(EsŠW$[ªM%Øe™´üTÒÓÍ;ÙÚ×ÒjãhÉ”PŠƒ%ed¥º Ó T‡gò[™¤¥Z'7…–¥•â/òøD³ •0Tñaœ’€WVÚLíÙKù ²DüÈRÜŪ’d)G$%éB!¦±:ƒ|9IPõP`ÆȼòÀ‡Œ=£o)±å¥›–ë˜>ô<×o»Î©!PD#öðó+ÓÐê=Q!|èŠXv­:Í™–H]zeØ2}æˆãDœ¿Êp% ¢¯úÅ‘ÛаlkÏPEk–¢Du§AŒ»oYL¹JK£W,&5›ÖQ˜­Á÷%¦›v|„¡p/6+#hÆëh)¿÷]§ÐÂä¥,Âô†]æ¡0ë[@[úK8g§Û3393£ËÊÁ¦ÂûcX³ ˆ¬F¢6<Égo…™g”×ãEGIP¦'ì4+v“7ø +SÙò«nëkDÓm„H¼%‹4£XŒ-I/ÙW"&§Ãu\“8 UioƒÙ,£³"¸¿¸”ðÍÀÁZ…Å˼ٞe9¯sùDv «ÈáU–=`£ éb;ˆ2*\~gY.RÞ–¢õQôo¶ÜÝWGrÖõ1 Š[bÊøQ§ªp0mßÑ¿Ñë[& sÄN;r7Orð†#%åe öˆï— z” q¶ŒüP@é2™W‰ø >uö$ž–-ùÛ‘8IŽBjiÖÌ {vÙV%N.25á­A-`W½@ZŠ!ŽÑ¦ªôD9²ƒD‰ô ožêù\ûué°`"r«ò³>’²- Ç…–kt‡–]ÂüQNÙÐw]GkŒïböµ(“ì€áZв_2¢äVN“¦ó”¦gCKHÿM4}šžév-j,ÀD©&Ê°S#‘X¡˜„âV‘¯¯U•TŒQu ““Q"²Å‘(‡Êx;)ÖŠ¨=¤ƒ §›7@”<ƒèzç‹Š¾xœw¼Êõºšó»?HÄ“Àò<³~Þ‹'ü®Æ7]ñ¼÷ˆ"U¾¼'Ì«? žRÿy£™'endstream endobj 1340 0 obj << /Type /Page @@ -5533,28 +5554,23 @@ endobj /D [1340 0 R /XYZ 56.6929 794.5015 null] >> endobj 450 0 obj << -/D [1340 0 R /XYZ 56.6929 672.4064 null] +/D [1340 0 R /XYZ 56.6929 516.9892 null] >> endobj 1234 0 obj << -/D [1340 0 R /XYZ 56.6929 645.0635 null] +/D [1340 0 R /XYZ 56.6929 489.6463 null] >> endobj 1339 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1345 0 obj << -/Length 1074 +/Length 1111 /Filter /FlateDecode >> stream -xÚåX]“Ú6}çWø:#­%Y¶5yÚlÙ-™†´„²ÚƒNõî·Û?ÚõV `jW]XÔµ«ïÍ_³–]î>5ï_Z·5Ï©¶ŸšYw«~_oÕ›wõ@>Ef<Îv ¸oü^ÏZ­Ûo[µnûC¥Þ^ÙR´Ù$1ä[¥Óµ­1ûCņ„ùÔz676DŒak\q(Ô!dÙV>Wþ\ž¦CËô£Ä‡ÔÇ^™€¬ ²}ÈæYeÐ%˜¤ -vjÀµíê@átRl÷â‰q”u½Ë.ÝÄ`óU€d”â"ÂP„_ǹ˜8…H^¤Èc`$è9ÄI~IQÈ<ϵ -ýëx>´eü’=3¨Tñ-žà·HÕ}M•y»f‹Ì¨ÒTéyT±M &+•458IÖÚ›pe#JåzPZŒDží¾M`ìAäø¸4 -¦Šƒò®&âaŸMàã‚Þõ ñ°³Ë;ô"ï @â0v˜åá_ÏŸ·˜ Aœf%~y‰#”´ÙE_°oØ;tpvV16é€äCÉÕSº¸Ÿ½kRÂDËù)S!6M™†Z€lË9×!/\Æ ŠM@ëð0 À2”.»4“¾äßX>Nz“ Y‡O/ -–†vúa Ô*õJל2X=Ÿä#žL:ø®L‹]æžä!IeRاOW®ÿÄû_Ab“ZÏZ“²G‹a Â…E±ä¯R¾››ìÚŒóÙOB>æ‘æ¸OgTª³s©ÎhKg¥§ûÄ Â0~ߦ\Î7çd©âJõLñÕ*$Í?ÞLÉ}3ãòZôJArJýƒ®\ÒþŒeéÏUÌ[†]­xBÿ‘:äÊ óv‚¯X‡\;YÞªCÐÿ¸¹*ݲCWBarRZrDjþ¹IÈ®O«Svø>^µbR8k%¶ }̼%©ÄD—m3_ܾ¦þ/ $þÇendstream +xÚÍX]sÚ8}çWø1ìŒK²lkò”fI7mÚeÙ'–a‰6Æv-Ñ„”þ÷•-clbÉL‡ñ`]ùû!éJȲõY>…6aŽå1RQk2ïØÖ­îûØAÅ7`ý¨~õaÐ9½$žÅ s±k f,Ú¾¬ÁtxrñÇù×A¯ß˜Ú'.ìêÚ'®®7fþ.¾\_^}ü§Þõœ“ÁÕ—k#î÷.{ýÞõE¯ O‘ÖÇÂ…Ë«?{æícÿüóçó~w4øÔé J[ªö"›d†|ë G¶5ÕfêØ0ŸZºaCĶæ‡HBÖ’°ów篰қ«6ùR{Md"Û‡ÌažåQ]‚IîÁa¸¶}rÏ—`*R>Qqº4¢$Pwã(˜ó3ÓeÖê!BQŠ«êOÅ/†Ño9%ÓNÂ@Ê‘iüÈUaÕ2)4d|çguCPÕ ãm‰³å×tL§)—r<Ôän +©Œüg ïÐo ž¾5¦JƒHÎxz lƒý‹d(fqú¤SݾíyrÇ'÷à^ÞoeJ+ÃeÜ ‘Œ3bEf$qªJyÖÕ’px€„pÍ®µ;YÆJ#øצ¶öi´š"\‰Û(N¹–¡†)ÒlþTá"©¾ãD‰8j0áz6¨´Œm cæT<ÍÔ³ÌÐÑߘ¤ø£Z¥ÁÃ^¦ü/Ò(Ûr©aRsà ŽÂåj&R©^ã€px*kÉôŽùQ3C<ÎRpH~rm5OÀ!‘ÒØ"òÒÒÝÌÅ$‡|ÅU?6«©UV‘Õ>®ê}«ÜÀF%x=þC™=b2;ÂøHñT¸$ZÌoÖ m+Ï>–«3S=gDÔ¿ /ÔñHJÌ÷¡„^:”Rußʹ"øcŠ‰¨'‡ÉÍùÖC%‹›2Yª,w½ï9“JH½ªMø&ÏEâT2y•C A‚=ª‘ çšý–wQÈ<ϵ*òM>¿¶¥•.f!ÑJnØâ ¾»UªîsªÌƒØÍ+ªw Šm1ñØŽ^½ÜZAË89;¸:‡re#JwÔMϸ¾êZŒDží¾“k±‘ããæ2Lr°Ó½ûTcf·Kz׃ÄÃήèУ¢ƒ<‰ÃXctj,_OùÍüyÙÉÄùq­é¥8@ª@éíPLä¡›±®±ƒ}ªŠúê®Ë”Ït‰—/îï5ǃäLTºÜ =ç±/DÅ"T˜-çЀ}>FçcçØó1Ú:ßérð¬ÉŽ]æ 9ÈC~d'“Ê>ÝÊsop‚:=5ÿ×q1#¯æIÈç> endobj 1349 0 obj << -/Length 1975 +/Length 1074 /Filter /FlateDecode >> stream -xÚ­X_sÛ8÷§ð£ÚV6–±Ëĉ ß×!w¡×=ÎpÍŒ #dY!hõ !>ŒS­•­IV9m§í¾°¯ä‰  û¶®R­;Ïu’ögg"  –—PY9éþ —§ƒí§7æ©-Öï±H j–²à€›ŠÈ9”݆¨§¦#oþáæQè#šzp³vjIfxå´á=q´ñ±©¿z5šxp/ô÷@⬮ÅIìž&\Z8‘¼2]¿±ñ -ì¡@õ†àf8@Ó5†‡PUEª4£.#dbÄEB¯dÌ#g[Õ@¦8Î)9pælª·h  ½_{…ðq×vXŸÓZ2¿kíwØçÕG\лÐëZ6[¨2+k{$ Ëzé;›µuîøè•!vU¤Ñ¢ýŽ„¨I®®Êm9Z@k¨•î™ÇçGA Š+€01N"må¨=”«nƒ <¸m¼„¯á¾eáŠ*Õ£“ ¬6ãžIx‰÷)Î@£® ±lòg³¯]–­üÊÚÉnš½Û }–„E!©`_ìðÏ ,±øQÓÑÂ8°šžƒØ%p„ÿCѼ;4a­ˆ åßV7\2ËÞ:i×ME}ß;PØ÷‚QJ^“PèÏ£aSÛ]¥_ÚK(×}ë1°é¸ÜWùÜk„óæ',‡/×"èÏö °é&Òœ%Iù®£|ÜttÊ®RKíßíúŠˆ3™Àþ3‡ºL†º {Gï+ÎÊÚ  }F¢(¼1Á#Öˈñ,Jzë_ýÐB•Iøa£Ýûò¥æX€b)OŠG´EÐ_‚•NÆÀà»+;¿÷?öHP("@à Ûž{hˆ¨f¸kH`nóo¸Í(„ï€Ü¦ÑûÆ+kîðöXÂÔ!›·f Q ½!üÈ8ð`·$TÍ¡:·\ÓxlöDìöIÁ%‰Ã=A13n£(RÊiƒ*wÖªtå¯kàP…Ùü}î;cØÁßGŒàC/³áèØËü¥Èû¯øïþóôï.4ÚÐFýWÈ9˜²œÉ”Ä C]Œñ÷ªÿ§ÓI Lÿ;­Þendstream +xÚÕWÝsÚ8ç¯ð#ÜŒUIþ4yJS’KçšÞQúRÊ0Dâ9cs’åšûß+Y¶±‰) LnüàÕ×ow+íJÈúCN‚aæ惢À™-;й×c7TÌqËIn}ÖÛaç͵GXˆCg¸¨aQ)EÎp>ꆃžF€Ý«w×·7Ÿ—=âw‡·ïz.`÷úö¾•n—>\z.¢ê^ý~ùç°?°CañööîíaöwtпîúwWýÞxø¾ÓV¾ÔýEÐ3ŽüÓ¡3×n¿ï@à18Ý€1†eÇ<øžWö$O¿*ÀÚh¾´•?öBÜF «H!¡†"¡‡½œÀQÏ !ìÎyÂï#g©›¥ÉÖvn¹œdb’f¶yacã´Öì"Xà:Ì"N¸•¤qzÿâ…ËH*.Ìrw‘‰e¤l÷W@Å¿©'m´Œ~†‡†db‰ùÅxõ´ˆ…TÇpp Ò¶¿Û_1¯&Ñ|.Š¾U&TÕoã†@©/ÿý÷bZäßwn6–M’X ž^cðèo^ì-Œ+ð&k#íÏÏ=AMO¾¹JD©\páÆsç8µ#éz9åâ;¥¤âåÉ@«õ´ò³¾ô||G7®l”ÙZÌø.Dñʯá)‡@„“@#â{Aô[>FHèÔúw¡8¶å¬}&áO/j¥aÏN÷1¬›>7•€uù5¦bèé\FX«©Q¢ÜWÑZC36ùlõOµ•Œ‚ 5ü-¶¥cá/¢€|Š[©]Kª/8Uÿf)w¥Ò¥Dªx&_QHôÍ#M#yb1‰SWð…àò!Ï'ç™S@ÐsK”ØžkÇyëDÅ®- +Çâb0”ðšC:Ç +ì°=3&Ú»¸OÒ¨´p4K")«ú”ïî6Xµ]ñF¥½8^Œÿ‡Eu×ÚnˆwnDð^Döì¼8jË›kŒœª{aLÓWMˆwWuìëë7,Œ³wéO:Wð%O•m¾ã_!ÄilÔÚž([᳌îy¥gw¯5 ø€ùÈ«é¨Ðô¥Ò4ì1ÍóŠËý[;E r0A2Œ_tm×¥%`AóÖ~Ò¢ÒŠZ ê·ë †*ÄrEÊ-=ÒÄè¤Ok dxÓ/b@t¥Ì ,…%Ú«M'> ˆQ­ÂL>^5¥’‹G“XŒüé3…)ëF¶]&#ϲÕÖJÙÂNR%„I÷VÒgÓ +ÕX±U f¾t×&N+MyÛ9¦Is•ÙÿJôífñ¼ˆÖê!±)TeW*7yN0 k‡bö÷‹O}@C/têìž0SSú‰Ž2Ež²¶§¬N×ÙËÝ«[ûàQŠ«Ò9&øTƒx0X†]Ÿ={Ëh1«fúpÍýýendstream endobj 1348 0 obj << /Type /Page @@ -5595,47 +5607,46 @@ endobj /D [1348 0 R /XYZ 56.6929 794.5015 null] >> endobj 454 0 obj << -/D [1348 0 R /XYZ 56.6929 493.3884 null] +/D [1348 0 R /XYZ 56.6929 337.9712 null] >> endobj 1351 0 obj << -/D [1348 0 R /XYZ 56.6929 463.2745 null] +/D [1348 0 R /XYZ 56.6929 307.8573 null] >> endobj 458 0 obj << -/D [1348 0 R /XYZ 56.6929 463.2745 null] +/D [1348 0 R /XYZ 56.6929 307.8573 null] >> endobj 1352 0 obj << -/D [1348 0 R /XYZ 56.6929 438.8631 null] +/D [1348 0 R /XYZ 56.6929 283.4459 null] >> endobj 1353 0 obj << -/D [1348 0 R /XYZ 56.6929 438.8631 null] +/D [1348 0 R /XYZ 56.6929 283.4459 null] >> endobj 1354 0 obj << -/D [1348 0 R /XYZ 56.6929 426.9079 null] +/D [1348 0 R /XYZ 56.6929 271.4908 null] >> endobj 1347 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1357 0 obj << -/Length 3410 +/Length 3651 /Filter /FlateDecode >> stream -xÚ¥ÙnãFòÝ_¡·Ð€Åé“öÉ™x&vT¬óÜLÖÎÛØ;kfuñéâ_ý‚ƒ^š:F?g²Ø'9@&Ëc¯{}_ÞCÁ¾šÄÆJ¡÷j­ŸL¦^¹8ÏR}àJ>àŠvyl’®ìó8±Æ[Ún÷ˆ´yó‡ÁI§Îàþ8èHiS PýÑÔ%ãªVúªuµ*¶ÜÝ5Œ,¤oU<—‡‰WæQùyVn:Ñ- ªŽn/u•›U5+ºRöhêÕÏ -§‚[ǹ÷†Ž×-aukòèLž5ÔÎ[îlÜYðçºh»rË(¾b«°ÅüxF¿~Yw¯}˜‡rè’è“Ðñôl8¯tT„©F©¨n:ÁòwÛõœG̹cSl;îÃs †Îˆïî>ý£Gí7X½_tQÝnˆo7å¬úY)3;>+«(± T†÷ñCõ¬Ö›U¹†û]ÕÔñØM‰@îlfE͸ǒ»¶œ3wCL¹Ñ©Ë‚^ -P—<ÒG‹f˨§ÕN–aN»N«Âh’E«¤*M©;F 롧 €òó¦¼ÔQÝÊ7‰´ë¢:TuU?ÉLƳz ",šâ>Ûý­ÛHYGãarÙñ71ÚºX—¡kûŒ’J£çs>Û’X -.Hú{¬ìIg&KEq±y³`ع ¯fÍCÄ~¶¬V"5cHˆ`ŒØÕ$˜ªÂ1£mª¢uYV¤ŠæáýÁdÕ6(Í -=êU¨Î[™>kv«9ƒO%­v M¨—ª[†qõtì " ¤U&MøVzºjËXæ/Bx0ìdÚ"Xtštð$yÈHd°c„8Ì8p¿Ÿ Ù.iYĬ«Ï¨‚v ÜxIûÁf2âçE,qÏ:ÂW üYêèÞW(º­¼¬FÅ} ÀV¡¶ÊR –ö±&ªPØça#ö œ›žd†Í ÿ0áˆP½£DhY´ 0›FŽ(ò©Üá^~ ó´îÏ©mT¬VÜ/.Îõ1ƒ -¼lÏÌŽ<:#tÈ¡§XµÍWÙ³§·ä͆¾¯û«zAD$ßÉ«þN^Ýéϼ£Êzï {G褑ŸTYð“Ø'ƒ nX£ë8¶Âò»# ¶Yíоö³FNW ­K£§ê-‚óÝÂQ q;ô„Ž})6¡T³…}øM> 'àÑhÜ®[6Û -ƒ†ç2Œ!fŽjÛ;öó xÞã t·ˆF¬ [ÂöõòtOÃV¦l¶Õ³„0¥ì^šíoü±k§ãᮟ$Ñý»·:× Ü® À0`ÏÄ2hO倱bø’>>H’^6NçîûäPáWõÛM1âÃsƒ×ÖâÃ)´J2f˜?Pð71ÈŠÀ™r[+%$¥¤‰ 9“’ÝØì8 9æ5iK¯¸ðÁŠëUðI±ŒÅ§©™×66Ð ²™¯L‘œ²0RŸ©¶×$û‹öS^Í»ljc—q9–wÁâ—CȤ³„h´x)¶ó>¦iœ*Õç]ÎåÑÏÆ8ž"é"Q†°ƒ¿Ð‡c‹šéÄHà7©.´'²ÉÈÁš$ÕˆCýéÊ£M9Õ°Ta´‹¶¥žðY×r/=¼ˆŒ ×" }~wcãô0¢Ž2Þ€"­»ý¦[?Åp×ÊÜ×ék³8I³×’ýÅÕ<ÜMÇùú#›_ÄäN%NMœæ>=õУÀÈ9Ë2YbÝ7Áíg}œ—ßui$|mñÙÙ®$îZV3´?-zY„ŠÍ†¢d4® £~ß•Ûª”ø^kd‚ôÿHÃÑ’T¼ovÕ»÷Ü-ãÒÞ+§deHR’èv!¨f„Ä©ùWh ã,íÙO4ÌI|ì¬õÇÌYKþgIq°Ýˆ}—‘/ÂФæ¶\oº=ƒ«ª•A‹QæéD“ý_:¸‰s“…Ü+†yÕäL%¸’v`JÀÆ]éT™­K'åЭS6ã$*F»W'.Þ+ÞA;fœ‡Ådxg ^g]Ë=§1EÈp÷’¶NÆÞ€ÒŸCâsNÀ<‹Mæš©Òl(=Óæ$Î{:÷’1qâ!&ޅͼپÙ1ðRpBÆöш§dÑÍ3©v§¦JÜÙŸ©q¹$ê!ÜF“³eQ?Å“0ü±„ ³ -N0LîÃͧP¾yW<¢ p&çOjŒy¬ŒÊ{ºõÊÅ.ÍOïD1¡q2/¯Ä+;Hø0·3λìE/²m;ö<8¹kh¸A¥õÆ&b↲8ÐÏÕ¬äY*Wc’ô¸ë¸®Â|CˆÌ–N$ÂÑI¨Ú$·Ô1hÔÛ€”žVHm8“òš1$Håi° ‡Q/H%µÅþŒÄËù äÿµpgD|edrwR .õïDP2áõPGÁ—Û/”˜AÿbHOS¢8î‹%梜ÆzCÕUD:øàªìþ 3¢i+52BM\BÚ¾ÚIé v½ãBcP"é|ôbªÑ î?,ß:.ÐWî -,M¼Û ”ÏÕlDpµn8wx“œhF4ÜâÁ©H¨s>íéºýˆºô§ÂÄ…V€J2à C©)‰ÖMÛ1$Å&©R%âßâ:’nœ„Ô ¡>››ZŸ²;Çþ†ÛÀø±š8Ò‡½/¶Çœ2F²è™­ŠVÝÞ]1ÀWÀiᦠ‰ ³g6ëMµ*çSò5€˜—‹b·=‘$FZ#=¸0~ Ò!Ŭ‚'`óÞâé8•ƒ¹\B¬iÍÐíÌ¢ -bê†ÛÇ]µê¦\½=e¡U|ŽìøŠÝhäW)ùÁjd—ÄüÃŒWí†ÑY¬ûÚÓ”Nb›åÉÄ`j™©Tˆ°*Ÿ¨4< /?'&DÃÝ÷&„´‰BËE„Ø5›¨¬C¹„ u%è9ÝSìd1vÙ°x½Øm·½„¨aÖ?¯üùÓzX|KˆŸ(òuÑÛ®¸ëîæŸ.¯¸î÷ñþ=:¤˜û®ëð¸S·/\^Ô!Æ"¡¬ô·z†-Jy>Âh½Ùuã‘Çmåg|_£Ê9äŒ!ħžö@é­¢Á¬Ïû÷Œo!,”ÁY¦Ž=ÜñÉ ªËëÜ—Ö¹îþûÝÇ×·w1£™³Í›R†ÐkÍádAä2öÑáJ±8ªüL´×¼Ú˜XrUŽŸçx‡Ž»T§eÃUY ‚@VÑ×*9ú/Ê4h€ö6¸E*³Z:·‡à¿5×»|| -dü°þŒ“Žó×°ãiúú¥ˆe¨Ó_g'¦çðxþÅ×x˜ãsüÿM -Ç€Äänå IåÊSxÃ?{Ë· -_ØrÌú3ç:=üâ(x?4Ð.ÓTs¿a†ÙT ÈäFFdAaìk´î}Œ¤s–¶oZ†Ù#DI8aÂà–¿eÀ¢Y­šÖ5E):¶7ähIC9òÓ.«°+kŸzn2aFFŸk¤”ëêP¨Ç8bÐmœ¹4$:h5Çë£:seÂëæ-U1˱ Óa]H¥‡5gSFÖåæ¤.²<¸Á_L1úW½cQ}ÿ¬ÙŠŽugÕM1ÏE+}ëâW1ÃÌ^Ñf;볞Í#WPù@šeÙVÍk)`nƒKÎáKy%-=3Ø¿«‡Gú -½ã:X{@ЛÐLä6¾>Ü>|#KþÈ¿²QÄ5æ‚þ2šè¶;>Àù/Úe1ð¢SŸÅy~š­ e´xDïFý¹ØV ¹iÈ}Û•ë–{ðîQž+-þþa‡Å0š.#è“z!iã{ì6aøfKrY™ci˜ƒo5Øâ!¦ÎjI^ó[¹üáÏ}Á÷ŸÆ4RuÈõ!’G)¨ïë¦Þ¯ODŽe!~íN– -`c¿G‚¡ðWÿúéðÓ0Ð8›eæ` ¤3M9Þ1ÕgþÅf±ÏL:rôÿ^܉endstream +xÚ¥ÙrÛFò]_¡GºJ‚ç¨<9ŽåUj­dm¥ö!ÉD‚"6 À eæë·¯€”£\*Õ4zz®îž¾†úRÁŸ¾ÌÓDÙÂ]f…KR¥ÓËåöB]>Bßû -4×èzJõíýÅë›]Iῼ_OæÊ•çúò~õóâí¿Þüxÿîã«k“ª…O^]§^-¾½½ûŽ17o¸»¹}ÿÓÇ7¯2·¸¿ýáŽÑßݼûøîîí»W×:O5Œ72à nnÿýŽ¡÷ß|øðæã«_ï¿¿xwÏ2=¯VòûÅÏ¿ªËûû •Ø"O/ŸàC%º(ÌåöÂ¥6IµÓ\|ºøOœpÒKCçøçLž¤¾È8ø¸ö⺼†‚u4:Àž-{­µJ”¶þò:MM’«,…RL„¢0-Ëüe–‰·Æ’Tú¦ü\!o^ßf¤Ît’Y\‰Þ'óLh ü£k ÊuϘ’›ý+/ª]S/KîïÖ'ýÛ²ªý8 Hѳ¸ß„MèÉ&Œ*’ÌeN¶Ácû™ÝÚ,ÉLØmS÷ƒlxW-ëk¤G†g‰ó¹C†%°ŠhQÊTx‚4[ð‘RØòžÛŽOÃ_·?ro¹Z1ºïãȵ ‡²¾ÚÆÍRÇ°)‡É"™€[v-oRnn(—C˜ ÃÖ/»U9È°š;=Œß§ña•ÈbkÕâƒp„G@Q5Õ¶jãTeËè²é»Ó=ñ-~€‰-°¶-·xzqQjaÕ=‚y”áq­6Z|{dܪZ—‡f¸béû²í×q@ØnIaVÕsÖDÔma»™^ìº=ž'3‹Ô2¦k¹eV ùU–Üâž #„p¹)ÛÇjÅkRʦa²Q°€}8Îíôn}¬ÛG8ƒs¨ûÖ¥²ID´‡íñ +°Õ:êöц±ƒe„(â0`Pi¾© +­g¥%Ú–iË9éí*wÍg@I»ÅCÙ+,×CÀŠ9Qû“5Q¡@–o@ÔpÓ‡š¸Ãº³ár%f˜D|·Ú³ªDÊ¥A;è*"æ©6 oq÷Ÿnß3ô[uÄm¥ªXÜ®eZž ox#³á9±%ùÐÕ_]Í^<8P†s pb×ljag¨Øõ $OûzâÀ.L@‹7‚ƒaŠ1]„­*Bu?'>ÑL”¸ · £VÙ[ÓÁMÌx9ðKöPÜÀ¤(ЖÜD¾Æ û¡ÜhŸ½_üÔ‡Që0j†oaz£4û…8ײۂ•YÑÞ†ËX·Ë@8pÛ­‰y8äS­zFGUEwtØ1±USoëYÚ‚­ì9 +@÷ãŠE 7 ÂŒ|Båd,'<À´OõjØ ’kµ¸ëE°áJl7l©…‚oõ¬ä~Q©ª‘áÁ"Ù f¬ÚžQty³9´rËV¡g-´›îÐÃÞz˜IO»4iMÏT;’`4v¡‰UŠ¸ŒçŠeĪ³;°rÍâÐWŒ(ù{xê®PÙ†±`þɺaW¿Ü€ a<³ Š•‚üEÂWò†‰ì¢ú2+¶r»k*T”¼à°ÁŒ¡ÇD!ÍËåÁÊç².§ÁOª“¼p!D¨¾Ð ¨åL4á!HKs¢Žúq3ð*»¦\VÁTW•¸ÆŸÈ[n2ØepîûWüª[2 •Üĉ¤àcàÏìÞ™De&»ýçȳ¬Œò§M%þåùÌVÃÄÎÏÌf R…] +(2âf•ŠîR$°N,ð„ûˆ}êh^ÁÅ$ oºÓa¢@¡ê€æ˜"§kô¡ “u îà{Há³?ÂmÞ¾ ßÖg <-9Tªî©92¶^s{ì ìSÁ!£À2ëe I¡Rf… 5²Öªó7t°¨×Ðý=ËERm_§ñû×åNY@{v·˜ü£<# y1Ñ€‹™dx›^H4ŠÄxX`\àŸóˆ1¤åëˆ0i†ëìgu–ä4gGƒ«A²Ü5·h^CWÈ +f²\ô]s®Éû$‡\[.0N¶¯Ô®gîz +V#K !¥´ÔBæ_Ëüß<†Ô68ãÁ÷8Ö¡J[›Ç–Œd!ÐVO ÀvP{R*ʘÒBâgègíC¨à¦?ì0W›ä(Ê=Û‚Hð9K'Ç´m[´À=•bö!ý…½Þ +©¬{c„¦‹ KÀ¤Ã^òk™?*ÖläDÚf|04Æ£¡Y6bâùÆ€zÝÏ,vNrk kŒʦnD-ZÆØULÕÌÞXÐ¥n«’nEÆA5E¨šÙ¨¾ÛJ|¼,9½Åø®ó^†/»C³bð±’°¶DFJ2F¢;/«è˜¥€.pÜy>‚)µg,Ë¡ºåN©$ø±Ìƒ#Â¼Ô +Bùz§F;^d+¸_ªƒ¢Ùæô1Ûú ^A‡N¼átH‰¿*‡`‰£èa |®«qˆŽ¾BÑáhæÍ|f0Q`«ð¶ÊT¡fA>ÖpøÄ>±çÜD–63ÌüqÀ £¢£DhSö °˜fä)ú©Üx®trç9¢¼ÓJGa˜3¨tRÙ< sJy²G#Tèy^,CEž…W†„9Ë£öó>äW\2“ˆF ¢ S ûG„¢~àÓ°U†!»}ýYB RAž³ÿ?ý¬©æù½_|¼y« óÇÄí +†Gî$‘yÿL+†ÏÇøÀû¨žÓs÷}&ˆðëö7‘”û]9ãà ›€×ytHfI`Ö!«%Yñ’÷Vû¶l˜JXê'UrJ‰{uXì4 9•5Ý–±Öª3'ֱ䅴kšÍ|eŠ4æ]2ëTù’ËÅ!/æ]:͈µìKyL§Ñ‰3iÊEònÿTîWsï;Y’©Üy—sÅâc‘ô‘¨CØÁ_èñśéÄHà7]]hÏt“‘“9I«‡÷'NTÄòîœÑ&“|ªVS5 €]?2Ê@e\8ÖX :-hØ$‰ !(ã˜"À‡wsORÀ7w­Œ}™¿6O|kHüÆ É- r¿(gæ‡ÙŒr“ž°2Ššfçzv9çy.A¬û:€“õlšdÆå§ç™dKᶤù3¶]Iܵ©—hœ¥q€ÊÝŽ¢d4®£~?Tûº’ø^ëØéÿé‰À’Tx/•@E÷àÑ»….¾Lªl¬yz T7÷Êf ŵÿt’gQüă Ÿ&ÎÚôTu·’ÿYy{°à(ؾK‡áÚ/†&-·Õv7” mFë}²sí59ý[7I†n,âÑÄÈ«X|0—àHÚ%^ƒ9}x;»ÌÖe‰“rñ ÇITŒ(yØ— ïïp;–œ‡É„¼³¯ô +Š=ç1EÈp’¶Œ;co@éϘø„ÅÖ¼=šGNÈØ>ñ”¬úpóL¦Ý©¾È³$z/´?ôÊÀ‰ºŠ%õ1šä÷ i<‰/X묃 ƒc¸ùˆ•×î\ñÌM€=¹ô\¡æøQ$ʨ"ò-(—¸¬8{c—×Ag¨|+^ÙáSåÎ=w;Ø+ecö<8x许¨ÊŠJóÍ ÄÄ ;dr~«Ñ‹Ï5•îa† +åì»ßÃagGNP5W±åGûPµñ·ƒ4êá±’ä6ì‰nCê€Tž&Ë°q˜õ‚ò¨üLœ$ËùLôÿ¥pgD|ed2†;òs‘¿?¥ x1ÔÉ=Ødoÿ¢ÂŒÄÎ1|Æð—æ{~_ÀrC=ÔÄ9|Ž¤¢˜ÖâýåÕ²ë+%2­'‘¦–'N­§ÏÉŒ8ôò(A¯«ˆA…¤ýÑW©f““ÿ²zë"¼…c‘a|í>ìPÉMÊÅlDp±n:vz’‚x(:nqãT#ÔüÚöl ~N!î0o¡ Š øÂPiò‹-¿×ø ÜK)RÅ¡x/e¤tº°™B1™»¶øKœµôwÜÁŸs2Øùb{*)¡gÙ”½ÝÞ]1ÀGÀaᤠ‹ ‹GvÛ]ÝT«kr5€ß¶Ìþ0„ó"y»…v<0~M²!Å¢‚{0yoqwœÉéø;UyŠº½“QT`@LÛqûp¨›áš‹·Ï"kÞª¸YqÞlL.äW]qü œÎþ\M'ÚX3÷C9ø—]~õÏòÆß,º,±yn¢I9õh +ëØE†±ÃœÙ“=©ƒ¸>ÍÍH6ÙüÿpÏ¢aendstream endobj 1356 0 obj << /Type /Page @@ -5647,762 +5658,747 @@ endobj 1358 0 obj << /D [1356 0 R /XYZ 85.0394 794.5015 null] >> endobj -462 0 obj << -/D [1356 0 R /XYZ 85.0394 167.2075 null] ->> endobj -1359 0 obj << -/D [1356 0 R /XYZ 85.0394 139.8789 null] ->> endobj 1355 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1362 0 obj << -/Length 3030 +1361 0 obj << +/Length 3077 /Filter /FlateDecode >> stream -xÚµ[Ksã6¾ûW¨ö²rU„àI‚GgâÉ:•ØYsØMr $x̲D*$5Žóë·Á)‚¤@§â­)—@à#ú  Áa -ÿØBE$Jx²ˆIej±Ù_ÐÅghûî‚9̪­ú¨o.¾þ(âEB’ˆG‹‡Ç^_šP­ÙâaûË2"œ\BtùáîöãÍw?ß_]Ærùpsw{¹âŠ.?Þüp¥ïî¯~üñêþrÅ´bËÿºúéáú›"×Ç77·ßbM‚?g:½¿þx}}ûáúò·‡ï/®:[úö2*¬!¿_üò]lÁìï/(‰V‹x „% _ì/¤DI!ÚšÝŧ‹wöZ›W'ýÇ(á"âäbÊ*!‘€&ëÀ«¼¨ŸL viµüñæÁärk¾˜]qØ›¼Æ–¬ÂßOiQå¦þ -±L±ö‡«[|ïP^2½,êbSì°iÓÔ˜´6[×SŽPŠûl»bIL+Éäò¿EîZ¶i"ø±pfNŸMš[߃VŒ‘D)ÞX³68@ÕÁl²_)åT¨xÉê',Y¹ð&+éù&7Sm]j»rÜ}B”çAÁ‰ˆaµÙ¥(0Öƒ­WDë(Z¬DL„U¹$H)mÍîuVäÕˆKŒÄŒE‹(fDqynì´ê£pèÙÄÐw(«PºÛ/+ÿìñu(œ1A˜¤qXz‡šß÷cš0Î}ñŸŒ9HSØšjSf7°¢xœðnÊ¥vƒ04bÈyM¡¥gùÐNàá±`žØX~^`á¾gq‡Ÿ±xÜ/š¼9gùÀ""‡* e Íg¾CÍ(2îÍ*BÎ’MB ‰ &[ [‹:ÓïGSNp*dÞ¡&¤û\~°Høâß“lC®ÅD ¸&XìÙäšÃÏX<î÷í\“ ‰%ãa×w¨Eƽ…¹FXòt<õ*Àµu¦ºLóê–¶!Ý8…à ‹dP~‡šPÀ£› õÑPƒ÷¤[ߎð¬q–q‚R+™x¦×ágŒ÷ûvÆE1‘BŠ°÷;Ôœ"£Þ‚ŒS1l…ša\užqê4RÇìXÌ8¼Á ÒH†¥w¨ ñ>ß žë8öåÿ=¾%ßNV ÙƉ¦’o°‰¢TúnÅ·?cò¸ß¿°–ÂVWƒÎAßw¨Eƽ…Ù&#¢c®gØÖCØÖ¢¬D¡Õ¡Øe›‰Õ‚0lñÃâ;Ô„|Ÿnfz,|>uÛë -ýŸâϯœËOÙþ°s$„1:âþŸn·(|v0ÆÀ‹+ÁhCäá -p•†=\_ÓPkñ3¦û¤8`L+8‚Jˆ¼aw¨9EF½…iʼni2G«*@«5œþ+8q½¤å6Ë?IMápT¤CMhâ,Ž`úfýâÙÀ ‰M£JôùØ&)WžÑvøóÇý¾9¶É(#KÂãСæõ$¡Ô’]“0 û¨ó$ìP8fUqîLJI$,}AájBº?䔌¤ßå»Wð:O–{“æÀ•Ç㟳)ºÁ!¯wº<{åPTqËÊ&•=¦0Æ_ –1¿…ú©mþ³È ŠT,ž¬25€ü¨eºyÊrSµ/§®ý%Û9½1ünL'*È~ðHkî4üö¶I~€ÁG1•~Žåöîáæ㦲#pÖ–0ìØÉÞTUúÙX œ}¶€ö ªû°k¬1[Ws<à¯5ÓbSk ¾î»¬j2J¶œ§{W[™ò‹)€_©¢.·…¯¦ù “C™íS<ÊA´vÚ;[1½¸OAL =1xCrg°)Z3 ê°;VXJóW,Üüä*¶[‡ª2¾çe¨,¦ÉP)Æa×ÅUt:xÓc8‰a+Ùž@mRSÇË+§^QÖXÚ§N½µèrÉ– ºÜ ˜=ÿôÇÓhÖ»˜7¡.¬`"æêMÚ*NZm{>B uÑj¾u58pºiÈä™÷’¶’f„Ñhjs’Ž zÌ «ËczܵÐGlUb2¹«udµžcf,…€(•ììÇ‚kà£McÖÇ5–,Í*·Gz8­‰NkûÐöÚ­˜f¨_±hgËùPSEBÌ„ò*Ê[T“}2›ç•Õx“ª0pFx‡šîoR)0I Ä?`¨‘FܶA87ÙºcÕL<ë°kûê2ÛÔ®'y–¤%„ë†@vXLõiÃL(T¯yþ­ }ìK¦¬Ó̉Ý{,KŒW•Ó&ï‚OÌå Ðbð ˆ–vvîš·àÄ~]¸«›‚SÿPäU‹ëÅþ-Ö%HÀ¡…Ÿ4?3ï`axÖŸ0çç¼Ãœfüþ¡È$!ZQÙBF"½1¡Ò¦XY_æû¤ÚúšUE"©£óie!{Ö…’-:hè°Ïs‡6:™Ë„=B\Ýa‚* { -s‰%c6æ*À§uØÎn7px§rá\DYX| šïqK0"4Tyòßç :¶b <昽<›È… ÃQó4”iñ3Fû};Ób g!ÂÎïPsŠŒz òk JɾõQçùÖ¡N#•åµù\fõøj'Uaù-hB¾O8J¸Ž„¯À{Î3cÈ8F \VÁ˜D”iÏÔàÕÃÏX=î÷/0Z4aïw¨9EF½…§l~žñÆõPƵ¨ÓPUÙz7•k³ç”ó°ø5!ßß' BµP¾ï¹€öÌ^¢“$ \(ó, ^8üŒÍã~ßηˆ«™±ïP3ŠŒ{ óÍÞ+Âz4÷*À·Õlcô¨×7SNRJ"û• ó;ÔŒãÞ”ƒuAÁº4C¹*@¹e%Úo×i5ºML"¢¬‚‚[Є`ÿ8js¤2ö%7—£MvR¶)$‘4ù¬Âü=iˆíÖ®Ê姤ËZHU%æ[ºŽ%mÐÐn;lr¾´MáØwN¯<ö>ÌëaêÛE(3Åý Öoï“Áh{ -ùG¹®ÿ1}¦uwf?=–¢ýVzNþyÉ––óÔ]ªY‰ùjoöEùŠè…íj½K!v×øØjê,k.Üb—:æÞ$m`…iå5Ò(iNî‘ïö:}vNòtà-¼b½sB.¿¤»#¦Xʼn*¶áPTvgm°){ÄÚt»ÍlxOwXß(r¹-3wMO6%ÙT¯É±6êϘ––'Öº€%Ý]šýî½I ³å§b?àƆ*=}ðÑ =ÙnZÒmvÇíôçØøjfcÕúxZ° Ü^”äf¢ËÖ€>§×¯^*•œû@_("§oàÏäßþxÿô?¤ý üÜ.Û܇¶¹TÊ:5æãÓ}å?Vý…endstream +xÚµZKsã6¾ûWèº*Bð" ‰=q*cg=NÕî&9Ðe1‘HE¤ìñþúíFƒ_¢&›Ùr¹Í~ ?4€n‰‡?1 #Yig±Õ,ä"œ-¶|ö cï/„§™×Dó6Õ·ßܨxf™d4{\µxƳÇå/AÄ$»[‚Ù?\p¦¬ g¯ð™°Vζ:T,ÔJÕ=›‹ÿh¶Fݧcó§¥aad¡%01‘9-—dpë›F±ÈD}±s#XÅЈŒfJèøèÛò‰Wh%gqhY¤¤r>Y¦›ô9©²"Ÿùæ çè›;~&8°Æ‚,üàq•8±2¨Ÿ‡2]R«*è™æ«b)L°H±CÕ:¥‘¾8×YVIuðÌŠ•gž¯öIYí/MpXTÇ-Eí@ ˜:fÃP:}þSä)~ËEð+yz)ö ‘V">|MCw׈ +÷ƃû‡÷@+]åoÔäåkº§ÎjTÔ›yî¤Â"Í^@„³:_³j]ª1Å’ür®t¤Ÿv›l‘Uøf˜×›mÛ½Çiñ£þéæ ’ÈÙgÕõ—é¢&6 ÃfCÝO½¢eW‘æI…J +ƒ¤Ä§ +îþùÝý‡«Û;FÝäYl-‹Ô“äEå¿ÙíÐ]ØD/ã˜S;Ð5UúÉͽ n#ÓRÂ|m–´4wl<¥ôD)YêG M<ؤɊZÎ׌0ÚvOÆyP[ÅD¨¤ÇôgD9…ð î¯pÖV0ÑÔåf;¬Aâé˜@¥±g床-}ä—ÁÜMļÚñÎkâH–À“õ#”†õl"ÍÚ ûïÅ +ÍA …³ù1HzðMhÃnÐûŸ>ªÕ ˜ Ý¡Rà“V¬ÄL¦ ÄÕy†,4*jœ#›N$“ZÛfÓ‘šI(‡Õün“”å A2d:Žµrѹ¯JjçÉÖ÷n“7j;DY²Ùø÷'O°*6›â•ôúÑ„ ÔÁ-Ü®†CÔÌj©´yPîÒEö+ç2]º8&=õp9¨&Eäá}{7Ö3:= †Në—ˆ™å2®YåUºÏÓj„¡Ž™‘<>2_ì5DZmeØ]£´{€áeyئK˜%x³»ðf|Qìý*ó±Õ¤ø°öQã6 +jm“ß}”ķ‡ERú°á…aÒÆQãæ“¡ÉÃzöÖi™Ëƒ•eÜ*ãɼç”ÔNu|"^–ÔtJcÃí +Hƒ[ä¶ùÐQ¦û— ÷KG~Œ"ðöáöñ+Ïò'øÂt\Á,ä ‰” n«®´3c c©’!Dߤµ•ÎC쵺癶jˆÑä ·8Õ_’}V¸½ùVV鶤‘eR%O8Ñ€M;cyX¬ýçž´ÙÓ(žÉŽÃ®&ßí3„–çœäKú¦,èYä`¢V‚&öü‘¾½Rt]žß¾ÿ8¶4Ó:¬ý×à‘å[^äoÛä ¥yý}QW°\×îaBt64D÷—tSì¶i^ш“Ïwë¤(a=ႆ-5¡Þ¯îè»MSU,Š -Ú›¹ã”)­èØfK1Ç£…þívgA1„_{}€Ë‘ͺޗ[¡‡:ðÜs\…Ãù‡­.äõÔÂñý~ÌJ2›¨½€üæÞ ës‘Ù˜(šÁ!v ·»òÝ› Ý»˜\Žû‚Åb¢†u.ǯ7žhÞ¦:½Ó4TîÀ‡!þÏVo}á­Ð'¥7T#â;ÈÄ )»â?¦i/..Ór±Ïv~!S@N¯—ºöU߈žd ÊèzÍä};KLÆJtì¤ÁýóŒí­½¦?cñ/™¼8‡xÓ}•à€–gßPQdÈ a'ÁÆ-SÓ`kQM€­¦:úéÏCºÁšd\i;-¼¡‘ÞÅàCDª+þK‚­1¢58P¨æä1†5Åx$⎓Xóôg,òý|¬iËb-äôÔ7Tgr›ÄšŠá@ëhkmªÓXk¨ŽnªöpõY¥ûÜ$‡è,Âiù Õˆ¸a¬ú|I¸µíè Àúت“ˆƒ“ ‹Cm;¦N ®¡?côïç#.Š™VZMÏ~CuN‘·iÄig~ŸA\‹jq5ÕÑS‡œXÒax§òHOKo¨FÄwññÜÄqWþßÛíàíhEm’®Åéø‡(Îuwš§â[MÆä!ß¿°—Z-¦ç¾¡:£ÈÛ4Ú¦N=ƒ¶ÕÚj*”HšïŠM¶ÙM!Ç¡ßPÈïÂMÃJUWÍñº{ ùUJý3…„à£:êÞvŠ#½{ „¿O#û>T0UÎpmM§‚XMÆ´!ßQXÁ ae Óy§ç¸¡:§È€Û$¬¤1L‰HLêMuV UùÏáÆõšì—Yþ<X, p5­HC5¢I`q^h›õÿ‰g=ƒF¡5§c›ædØ1z„ ýó‡|?;¶éÈÂCØi?4Tçp›!\¬x¤Ô¶¨&@XS‘ÏÊâÔ”‡ÌjØú&…7T#Ò».çl ýžj<ÒÛ4É+«Ã†Þ³1¸Á%¯u»Â±Ïmѧ.•Ùf²ÛgÛ„®r£½ö[· ˆÙcn VÒÛ _èRµеÛ`ž[IþFÛŸ|ÇrI~(Ë´¤ï:*¤qª!Ä$œº$l +MHë,þ"†5êúŠIVW^½b_QË°ñ”öt¡B!MLC(DØ+þ¸4În +ÈQWGLÅ2ü,mC —Ĩֶ5G$Á¥€Só¥ï!Ç™z¥jg Hœ‡ÉhŽ9I3DV³VÉaS“®h4T£Ù=Ø­#¬u‹§Ó–B@Ô¡îen›jb'Ö´Ó·euxêT}Í¡Ù½ÖíúC³c¦Û]]XÀÕr2” ¸:YcÍt(oSå •K®ÓÅs\åð2@àá Õˆôî!•’TO<•f”¶¾èEõκϗ|Ù{<úª}F%T^/r –${×@è–´¢~—öÇFù–WÉ'uðÁÒ}•d^ì²ØR[S¼òõX:h¸àK­Ç‚ª(ÀÕ¹q_Á ˆý¦ð«]ë¿+ò²¦ëU{¡§U§7²yZ½û?ÜU á »«^°’Ò(°XøR§ˆWqêÇ–o»Ôã÷¦®Ûu EŒÃ1¬Þ=ÈöѼ…˜èÉêStOŠÝU1²mcÒ@Ô‡½U’mÆŽ„°%ZÑŠ¥§U— y‰´Ü$/c×g²X)õ5‡ól>&HÁ¥E5?µî1s%£3é·6Õĺ¯©Žë~û©/ØZf°È2)¸&Üý‘Æd«èJþ2i·¶þý 6d‘n*@#)7¥;6N¥@jú3æùžº&ˆÁ]¾€-ùÌ´7Tgr›Ä˜ Y«3[K‹è4Âj¢£ƒàŒ»\Àn˜ß…Ë“²kš¡ìîOS»Z¿ÌÕthBOv Þ´æt1Ïg1Vó[L%Ejòi‹\?fø›ˆo“ÓÞÑ¢ÏkcpwÁ@0 ±#Íįpˆæè,ð?»_g ¤<œ’\“ $wñÅ™4‘j‹þ’ðêÐÇ—`‚O«àÌ".LËÈɧž´·Ïó/€ FŒPS3ÞÐL«Ðã4Ž¬:é +G€ñ,üûSÎßþîñÊ:†hcN”ëß”y¥PñX× JÁñh¨úL§®endstream endobj -1361 0 obj << +1360 0 obj << /Type /Page -/Contents 1362 0 R -/Resources 1360 0 R +/Contents 1361 0 R +/Resources 1359 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1338 0 R -/Annots [ 1365 0 R 1366 0 R 1367 0 R 1368 0 R 1369 0 R 1370 0 R 1371 0 R 1372 0 R 1373 0 R 1374 0 R 1375 0 R 1376 0 R ] +/Annots [ 1365 0 R 1366 0 R 1367 0 R 1368 0 R 1369 0 R 1370 0 R 1371 0 R 1372 0 R 1373 0 R ] >> endobj 1365 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [284.2769 667.7189 352.9489 679.7785] +/Rect [284.2769 435.7745 352.9489 447.8341] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj 1366 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [282.0654 636.5559 350.7374 648.6156] +/Rect [282.0654 405.5217 350.7374 417.5813] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj 1367 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [299.7586 605.393 368.4306 617.4526] +/Rect [299.7586 375.2689 368.4306 387.3285] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj 1368 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.0084 574.23 360.6804 586.2897] +/Rect [292.0084 345.016 360.6804 357.0757] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj 1369 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [330.7921 543.0671 399.4641 555.1267] +/Rect [330.7921 314.7632 399.4641 326.8228] /Subtype /Link /A << /S /GoTo /D (dynamic_update_policies) >> >> endobj 1370 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [401.5962 511.9042 470.2682 523.9638] +/Rect [401.5962 284.5104 470.2682 296.57] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj 1371 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [257.6971 346.6843 326.3691 358.744] +/Rect [257.6971 122.0209 326.3691 134.0806] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1372 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.7975 315.5214 379.4695 327.581] +/Rect [310.7975 91.7681 379.4695 103.8277] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1373 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [308.6055 284.3584 377.2775 296.4181] +/Rect [308.6055 61.5153 377.2775 73.5749] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -1374 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.1999 253.1955 362.8719 265.2551] -/Subtype /Link -/A << /S /GoTo /D (boolean_options) >> +1362 0 obj << +/D [1360 0 R /XYZ 56.6929 794.5015 null] >> endobj -1375 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.0862 222.0326 371.7582 234.0922] -/Subtype /Link -/A << /S /GoTo /D (boolean_options) >> ->> endobj -1376 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [332.9347 190.8696 401.6067 202.9292] -/Subtype /Link -/A << /S /GoTo /D (boolean_options) >> +462 0 obj << +/D [1360 0 R /XYZ 56.6929 639.5425 null] >> endobj 1363 0 obj << -/D [1361 0 R /XYZ 56.6929 794.5015 null] +/D [1360 0 R /XYZ 56.6929 613.8858 null] >> endobj 466 0 obj << -/D [1361 0 R /XYZ 56.6929 726.6924 null] +/D [1360 0 R /XYZ 56.6929 492.501 null] >> endobj 1364 0 obj << -/D [1361 0 R /XYZ 56.6929 700.1172 null] +/D [1360 0 R /XYZ 56.6929 467.2627 null] >> endobj -1360 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F48 885 0 R >> +1359 0 obj << +/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1379 0 obj << -/Length 2951 +1376 0 obj << +/Length 3026 /Filter /FlateDecode >> stream -xÚµ[ÙrÜ6}×WôÛ´ªÒìË£ãÈ¥&vFVj¦*ÎÕÍ–SdO/R”¯Ÿ bi® h¶Ls,o…ÖSСz› ?b››)í¶è:»7jöI!V»à ³|šB»Aš‰ÈmÔ4%#ªÙjý¾m´YÝe‡|—9D. QR|DÈïÆeA€¨®ÿ¾4´YÝ,”§†¨Äð†$¶Æ!lI»Ë`ûØÐjûâŸÛÖ*{Ì]•%S« -{W™ßØYlYß»–OXàßêÓ¾ÊJ(’P‰ié{mÆÝVn^@@±öÊî6°>;vÁžY1¡ºär”dyýŸw7ÈÁžK²üÎ=÷SÜC,k(qpŽB2ÐÆUÆÞÖ@$Øèåi}ì¿àì·UÍd:7‘¥·Ðá‚u¶áîÅ ØíòÊÓ?QÊÝäb¦5ŠœR$… !…Ùåk;+ÎoU9»jĸ‰S÷&7Æ-¦æ³dzâÀ©G¨Ù‰ÓB%&N@u&Îñq·òîìOn’tF‰ˆÑ¢ã6.Q¬§Fœ>.ùPRmêõé1¯âö±nÓ -ÿ{>k '#xy‰¸™‚šIOsÍ4š§=ÝFM{:¢yâN½Q§í¤àˆ‘Ü N Q*LWô¿ëÐai -kß6;•GWëuûÛÁ=:xÞ¶¡´nö"ͯ_v7ye%Xø3´tzmVûzhµtŸ’ñ\|”1Ý985á”FÂ~ OTp‰!pHëOT(ìjÕ°æö!¬”ñ0bjëì®ÌãÌ.ç„+$%Ý?f»=M ˜óªo£àH_° Ì9”ÙS>f€ ÍÊŸ§Ø ³RK&fØÜB%ØPÎÎßWÍR´Í}ü(óÕ0ãA”¶vó´&5¢J‡ÞÀjƒ•îêòç’::ŽÜ´E=5ŒDL)5™æaZ#n4íHóDüŒùÃ~§Ò<ª¯6ì‚ÎÉqˆ¨E†½%Ó<ëš©¶P Ô蘛rœ…°k†ýZZ“ˆQ¥ËB{.µÃÐÖåë¤SõYkš`!„›‹k[“d¡ÇϘ?ì÷õ,ä°wfZ¦Ç!¢fö–d!SÙu IÂhšƒ46êÓqÀAÍ—B&õˆ ¡"]»ÓÑä/"`Ûž¾Vh"Í4=žm›S ð´õƒ^_Ï? -3C0iú=¥™Ça÷FùL"¦Jp/ ¦£Å(ùlåŒ*5¢K—~I¥zÊüEËpÛ¤~´inÅôãà4%:V'ùçñ3öûýb¤ˆJCͨ1è+MB8°2Îg¶‚mT‚„å’OG›Áœk(('XZnDîÞæ)ËLÙ•üuwÖ¿?Ìp¢•RNßæ ‰°ºcbê6/àgŒöû·yàO1çõˆšQdØ[’a—|æ:¯šfXDGhµÉËìe,;a˜aié5"¾Ÿ0Ë®ü¯É³³=ÑB#fðôÝ1ƒ©"(ÓCSÁ,àgLö;É61Übr[™v~DÍi2è-M78„-frbmT‚ne%îNwŸó‘€¯a-Òr#jDp7QÑÖFw%_[‡+UPÒß„¼M“•€š˜ƒòsæ+‹êØä2ì“ð ~¨öÙeãÅÝ·–6ýkË> oY››ªøúS¾o®<ÖÙYd“Ãô¡¸¯²•ÏØpd8ëßýžÎÉ`ê2áö÷»÷?^½ueÛG£3uzxè³»„¦ÍEá‹+/¨Myg›ðžK_ÖîiS>Û|&Á‡Pi|[¸Ë -ê ܾœ•ÉÎJ[Ãp7¦ƒß»-éæ¾Û‘ ×4‰1¬áffQnö ZŽ0l‡c±ÞÓÁÁ‰Ú£cJz Åwˆ,줅ֶüëíÈW pX³aæÿù&!|ô°j®~¡|þásžïÂ'ÞàÌ7ÕÖÞ®zòB…cvóuCq8ÞÐÒöÚwýàj×Y¿oh~7§Ç]¾qtWiŒ{Wpí´ÿÈͱB\ËÜÏ#ÓJ¹÷—8á‰øÆ&·ÀªŸÐŽ,‹®9_ÒMRŽð²Ä3q³š&]D5f÷«§¬,6Åñee#Òþi$ß­Rh•T#¢FôèžD€tX×Qäë¬×“æ ó0”‘ÌÃP -ûô¶)3y˜?cû°ß×/Üö;@p¯HBDÍh2ì-¹p˜ XÏebÚ¨Ê} Ñ:7êÓ~=¼Ì6Ïg”ˆ¨-ºÁìÅ¢§Æס߄1= FpMl¥ {Sä øˇý¾þŒ™½L@ͨ1è+I<*a<“†n¦i@µz’âIp…¤i%"h¨Ew™$HqÖUã/c7¦§ìÕ)a âIØØÈܲ$Å»O[>èõõ¬ƒÓ¼æ&éþ€IëÐï)I9)£s_ FLâ,‡iîËãê5‘N*¤…Ni  ºd£HÛ£sK…¯Ãµ„!}²hlX‚l1IXËØ$×<:iw¿Ï/`C˜1ž˜¤ -ýžÆ™rrÙûG¤Á.ûÓ?pþã -®³´qßa‰45*(eW¬¯¹`Ž¾T¨þ?탄kendstream +xÚµ[[oã6~ϯ0úR¨¹â|œ¶™nŠíÌn&Å.ÐöA±åD,¹–Ó8R’âžüÏC´ +†TSˆ2:Ï4J`(ݵ3F´[<šõOÐLCÀËSÞdõ1Ýf›]Vä‡ÜU®ƒ”ÚẌ·~Nr +ó tÙee“oŒ@i¯··“XõÍ—3PŠhéƒ4. e»a!¿‚ù½NËëKËWרÏuöÛĸçVKsö»‡cZÛ5¶=Àãù35ª¸:~øÁ® ¬BÏž‘×M(È}HHÝÇKúêµ!®ñÀÖGËj5/’M78µBa»æ6€] +Â0DÙ}z.÷D°äxÚ9Ÿ ¢8‘ž<_œš/&(f¶ìGúÊÌGCõ3ë/¯ñºví2mò^|^nÙ¡:½ºGç…Ýæ¡H!€7î1hê-Cfa%XÛùz&X•9Uãh¤!¬j“owÝÞ¤ÏÞI½ôÖ{p¯Ýàlý1-ÎF¥ôB3p¬j“Ngn(ß»Þt·ËM€O ×ß (l½;#N~¶§ô£ï~ȲÒõAvþlwôO*×ë[×Ù ¾o +3[¬áõ‡ê0ɱ:=‹À ôb{H·-λ@Á—¼y’+7±êá|9² í¥ q£)ƒ]N?¼†ÞRoöäá渠:~òtQó'O‹²‘2‡E<ŽÎÌ ªJ—Û¢&÷ÎU¦LíIþ<9õEÿQõ„¨9âær"Ä ÷ê™ÉmZü‚±ãy?=&a®¼Þ¢ÏÍm˜RH(†ã ë¢æÖ¢ì +eEö˜ë7UY¼Žk74Qù4!¿G4û\&\|×Âœ–4}4m¾¶ªØÞôx,rwˆ +<‰õSîŽDM©ÉùÁµL +cÎqÆäúvïG3‡Æç¡PÜ0,<_³z‚±X" IÄåØ0¡6GéU f¸ ÊÈzÉ‹ÂQÔ^s°š%Z Œ¤íášúàg‚´ýô1,AÑM|9~‡ËÙž­®e”›çƒ²ˆ%ãë " (cäœ/éi7NŸ1âë¸à5!¹Ÿ> Ä9¥}Ñï­(åëC––­îÏ…?¤ö®ßQ¼M}œoµëJ݇Óߦ^þ d6»´G³ Bp7’‰ÙHØ\ÃxD¡•Øƒì‘ídnSÈÙ½¬VÅ¢ªž!œ:½+7¸OóÂqŠhŒ0ŸϩtߘŒ€HàÁéÕæëDbÏW™ŒŒ3ƒnWÁàcÖ4íWÊÊu¦eýâÎr“Õƒõ5ôõi‚L4Ó.¼Â`î¿hÃ@L>k;Ú" è`3+@¤îÑËV¦+ˆ&¨D¹F’â)Ò‰(£Ë Ä)m˜vÕÄÌÄ`g”>tvLs\ïØ]›,Ú¹—ýqI$ËÝ`¬uÉ“lÎ4•Æ:?qWŸÏÓ’)D HY e¡e@Ù´ë÷½Õf3w¹!áHŽ‹oQò‡—"]_ÿ^kbÏ8 Ç¥»£ÀšY’˜W”™–r†Áæ±—"æÁúÜŒ–é!s]†L!hœ h¥>É3Ø¢zt#?'<ùµ:Ÿ î& )ü¬vÝMçîä[¯¬½¾sì‚NR.a×R +Ûÿ½½C® ö@mù­{Ðî#,]Uos³´qíl[ d j}Þ6Ã/8ûM—ÝL—!¼ö:\°Î Ø +Ç8³ÒÓ†%r› Óî…A‚ë¨QØ]¾·ç€_Ëb1‹²b¦o¼1®Ì˜ÛwÎ’ÙC4EŒ²…xÞEÍoœÕÛ8Íá¸ñî½`3¯É‚-jB‹žÛ §Á’Ôh·‹A>””»jkoBYuj¶PÙ^Þ¶*sK“õmKÄÝTÏ{ZH¾ØÂÕkñt@YyâŽ*`ˆ"Œ‰¸à5!¹œ(Ä$®û¢ßøÜC…}¤HçJµ›êËÚ=:xÞÖRZÙŒÄ~úcw—•¦8I¸¯|îÏjOóõ0jè>'ÃÞ|¸ &H­3Ûª5²24½QÁ%'l´Q] 0§•e¿Ûê–$¦`Û¦á'T\½µÆL"!X˜þÖ&I¼&ЗSßDÁ‰¹4‚èÌ© s95a‡ MÊ׈sl6k±Àæ*Âæ€rvþ¾±GÑ>óñ#?d›ñí6ï;ˆ`qMZÔ„*=z+XËDª¾.Ÿç5VÌ¢Z *¥œ¥bZ‘žÑ±×Y¿`þxÞ¹+9zÅMØ£ëТϽòÁ ·¢záR±‹šga‹š\³|WL³²fóú-ªI‹šP¥ÏBSÂ2ôtù<׌1‹†,¤H$ŠDX!ÇÔN]k¢,ôøóÇó~: äÎT‰ø:´¨EƳÅYÈ!cÉÂÅcaa@ÍGŽêÜŒh¨b‚‹¸*-jB—> 5‚”@÷•ù›hØ5i¨Gç4‘ß-i¸¼gvŒˆ¿à€ñ¼ŸND#K @ jŒæŠ³€£¤#qvPÔ|ä˜d!FB‹UZÔ„.} +$ÌO,zÊüMGrפa44ß±Ÿ˜hN“¼gu”„¿`ÿxÞ?AÂO_‡ZPc4W”„À$‘qv@ó w Õ˜«ŒQC@3N£B[ÐXjÿŸ4¤=±Ÿ‡kå‡ u­bþý(‘\uí‹½Þ ð¸¥£YÿÄË=p%_ðw Šk1š+þ«%Ž(Y8^/˜È/–æ²*æ7.éëÔ½„¦šÆ䶘‘àá„&‰èJþœ¬ºè?Ì¢:™wLa[pBUÇÄXÈ +許Ã9g‰ÅÇ %Cœˆ˜Ã[L\‡ÁLÓ´ +½™_ OHƒ?Eð—è~ù_PÏC5s{EÑ2(e—t¨9§ +qEä„êÿŸÉVrendstream endobj -1378 0 obj << +1375 0 obj << /Type /Page -/Contents 1379 0 R -/Resources 1377 0 R +/Contents 1376 0 R +/Resources 1374 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1392 0 R -/Annots [ 1381 0 R 1382 0 R 1383 0 R 1384 0 R 1385 0 R 1386 0 R 1387 0 R 1388 0 R 1389 0 R 1390 0 R 1391 0 R ] +/Parent 1388 0 R +/Annots [ 1378 0 R 1379 0 R 1380 0 R 1381 0 R 1382 0 R 1383 0 R 1384 0 R 1385 0 R 1386 0 R 1387 0 R ] +>> endobj +1378 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [322.5463 736.902 391.2183 748.9617] +/Subtype /Link +/A << /S /GoTo /D (boolean_options) >> +>> endobj +1379 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [331.4327 706.0223 400.1047 718.082] +/Subtype /Link +/A << /S /GoTo /D (boolean_options) >> +>> endobj +1380 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [361.2812 675.1426 429.9532 687.2022] +/Subtype /Link +/A << /S /GoTo /D (boolean_options) >> >> endobj 1381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.4835 736.902 328.1555 748.9617] +/Rect [259.4835 515.7582 328.1555 527.8178] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1382 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [387.5019 437.0578 456.1739 449.1174] +/Rect [387.5019 215.9139 456.1739 227.9736] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1383 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [381.9629 406.178 450.6349 418.2377] +/Rect [381.9629 185.0342 450.6349 197.0938] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1384 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.5803 375.2983 467.2523 387.358] +/Rect [398.5803 154.1545 467.2523 166.2141] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1385 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [393.0412 344.4186 461.7132 356.4782] +/Rect [393.0412 123.2747 461.7132 135.3344] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1386 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [255.0796 313.5389 323.7516 325.5985] +/Rect [255.0796 92.395 323.7516 104.4547] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1387 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.5276 282.6591 385.1809 294.7188] +/Rect [311.5276 61.5153 385.1809 73.5749] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -1388 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [381.2254 154.1545 454.8788 166.2141] -/Subtype /Link -/A << /S /GoTo /D (tuning) >> ->> endobj -1389 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [335.4973 123.2747 404.1693 135.3344] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> ->> endobj -1390 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [363.1733 92.395 431.8453 104.4547] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> ->> endobj -1391 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [365.365 61.5153 434.037 73.5749] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> ->> endobj -1380 0 obj << -/D [1378 0 R /XYZ 85.0394 794.5015 null] ->> endobj 1377 0 obj << +/D [1375 0 R /XYZ 85.0394 794.5015 null] +>> endobj +1374 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1395 0 obj << -/Length 3132 +1391 0 obj << +/Length 3018 /Filter /FlateDecode >> stream -xÚµZÝsÛ¸÷_¡Gy&b ö)—8©¯=çêø¦ÓÉå‘(‹DêDÊŽnúÇw ‚¤H‘î\:™˜ °\ìÇo?@‘Ïüã3‘ Í,62PŒ«ÙrwÅf°öþŠ;šEM´hSýðpõ§w"ž™ÀDa4{X·xé€iÍg«Oó(ƒkàÀæo>ܽ»}ÿËýëëXÎn?Ü]/BÅæïnÿ~C£÷÷¯úéõýõ‚kÅçoþúú燛{ZŠnïÞÒŒ¡Ë¦÷7ïnîoîÞÜ\~øñêæÁëÒÖ—3Šüvõé3›­@í¯X ŒV³g¸a7&œí®¤’BÔ3Û«Wÿð [«öÑ!ûI¥Ê,š…ÃFæAÌ9ÐÄ’ƒŒ¦1rȇŒ\S¡‘“mµ¨I^®ÓÃ5×óEYËtñëÏA\!á±ö.=Y<Õ€0¢% Å„`º+ÍÇ4%/T7X¥åòí«¬Èi¢X£`gª™8`¡4 ´Ng‚p‡îÑ,?W[D -äk -úÐâáqFƒû–<ý„ú|ÉËFU ñ¹HR„ˆ‚£žðT‚ô¹¡ Aþdð'Ð8Gb‹j‰5îx,ÓÅÏõ¡à ÑvcÂxªi:PŒ², »âü1(j‡§ ¥Î%aZ¸Ž.ƒ1С:Š±¦Ÿ0AŸïËÁ(>\Œ»¢&š£Çk‰‘æ ¡ŽŒ"±Mu‰ž -wÌ‹*[Ÿ.aƒƒ§v¯‰vïø;„U‹îöß' ö”8Û;‚zÂaÇKP vBwš§ŸÐ¹Ï÷ÅPʨĸí=Õ„ }nãhƒÌ„ÒhkQ ­¦ê9j¨î -h%Ǩ‰èN¨@ %ºü7\kcÐ_ñ˘ƒlHwtKo5ý„Ú}¾/ÇœŽ¡:1n~O5%HÛ8曓)̵¨F0WSᎻ,_Òõ!-7‹*Û¥¯È»äÛà´¥®§>m=Ùïš —`‘WÁS èÐí•¢@é8î*aa˃-:°Å‰>Ä$lÉ#®;‚@ÌÓOˆØçÛ -ã ÆUÏÝÐ…Ø3Œû»¦š¤Ïmcʹ2fcmªËóT6¼¿­©ÝYŠÝb•­ñZ 4_¦e¿£ƒxˆ¥ÇS ÈÓ=\@fR*ê -ô}:ºIµÎÏq GœÄºŠ/ý„ ú|/¥<Þ ‘Ð@kÙrÔžjB>·q8Fx™8綈FÀèˆp»¯é \uí‹Ãi¨£S±ݺ¦éoÝíçÂ@)(¯í½¿ìzœ·sp†‰¹içàh!Ð £Ýœ#W¸ÇõÈú¾%ˆÅ¨Í=Ѹ =^ãø‚ì(µäkQ ¬¦²%õ¸­²Å.)+8åõ¦@ÄPŽïÁ¹úÕÎþßfçZœ£ŒcRá—Q¦MÅ‘ê(:³š~Bå>ßg3ÞjÂñ5Ñ„=^ãPc àÑ ¨µ¨F VSY'Y÷üÊX¸Mëâ°Kªþ¡AaŒImLO5 Eq’AêÖqWŒï„¸aeÎ$€#‹99˜@IHK‘Ñ“ƒ£ŸÐ¼Ï÷"ðzmJ2LLc>ðT’ô¹yðÙw!¤ —àV!ð}Ró:=”„f”16{Ê“]¶$~Ù¯’Ê9ñçb›-³Á^†AÄÊÀH.-G÷J]Fö•:\Êã~_ªïÔ¼z.h:Ù‚‡ó¤ÊžRšØ¥Õ¦X•t±×ÇC’WÙ5Ÿç4±Üfi^9* Ùã¦rsm´Oš\y½àæhõ*Ûä j†ºp8÷+E†ü½Èë“ͲÈŽGÛç¥+šýrjÀÞ·9g€€ˆiÿz[câ³#W1M}Ü›!û¤=„Äõ9F·KLÛ°µ­¬y"×(ʸÍįÇ~]× hÚ–˜L–uLȹ°ö 5u€ Á±Åɉâ'ç>ò¥Ò=gª%l—R‡e[U;p¨ùm˜9!.vÂ=š¶tk/g²„ˆƒYÁLB·ÏÙvµL|×îl¡ÁÙü_KlÝÑé=WQªA1º^él²>[ríKkÿNû2€ž¯©=ü”dE#¬(BÎÍÐYÊøV Ç­V ñ ¶õÚ®%tyøÛÍ¿h”~[n’üÑ=j£·€âMqN7gÀuI{ø-Ûr“ø³³4u„P/IÈv–Ä;{¨“¬Yî°•m¶îñÒ=2ûgèp £¤¬ çÊ0WÒñ &]ž’-䊡æGó@o:›Þú;adžßÅÑ«620š×˜`YÃäCB èOu8ŪÞË¡p5q C¿”S™n×U“ÿ PoHh)¸gä^ ­8†lî?D–¨æ¤Š½_#8¨ÀŸY h‹„yÉwËBê Æw̓ß-ã§È¿ˆQ ðÞ×Úðß…ûþLºù†4Z_ú)N R‹p&T¼(ÏIJÿã B5d-áÿ -ÄWøendstream +xÚµ[Ksã6¾ûWè(WEžX{šL<³Nm&YS{Hr`$ÊfD:$eGùõÛ`ƒŸ Sq*5!~lôãC ÚlEá?¶R‰b¯t,‰¢L­¶Ç+ºz€g¯˜ÃlZЦ‹úæþêëB¯bGÜÜÝ|zsýëýwW7÷Þ–®½Œ +kÈïW?ÿJW;0û»+JDlÔên(aqÌWÇ+©QRˆ¶çpõùê¿^`çióê”ÿ¤2Dq'‘’ñi/3¢–ŒÐ•k¼ÌÙ”—[”õòÓé·/éyhl̈Šøª+o4ªÃL *:ƒÆ‘5Rö½ÍÁÙàvh™¯àjغ~Ì*ì)žê¬p¸—Äufyæ»tgïÔz_”Ø]=¥ÛlÎò¼Oð¶²-¶ÿ,òß²æ6]þõç´Ì~¡”o“ËÅÑUö'ëŸÕ†IKa ÁH¬ol©Oå53ëÔjÈ­†xýöÓçÏ7ï±me4:sÔÃA_S® • 0¼9É®}oß<(Žx·Ëª/@lAYëCèŒÝ³¢ /jlX÷ç‹2ÉEikm-‰׸¦‚[Iîðnq1:@sl`¸ÈhÖ8jFÈǹ ó·‹šç¯GYe­?7U ‘«êl[ Çgœ1VÀ£&4è’™qEŒ} n÷vЯ?HÓ¥=<¦ÐqF?…i Þb¾²ÑÔΟq´®Ò¢†í—ìpÀÖ—4}rÏ[“÷(ËÏÇ–ÁÐô††›SвÎj2@¾lûˆ½ÛĽñ›{w:>ïÎkF ¥lÀùâ}4¬'®‰4‘r†]b³±sìN¸BÅD*ÿÆ.µ@œ1–sù€jÞ5žvÕ<ï$dkIÕï:¨ïZTcVö°yNÙ.«Ï›–J¸±Oj›µuX šÐ£Gʼn„žžŸÓtàž]Zmˬ͞ÖGû‰ ÅšP.ã6HsÖ ³¹ \ÄÒ½‘,`™2XÒµ–+lÜuL÷øÓÇrÑöíÅJ»]`aj¨“„I«ÄZЂ#YVyò1AàŸ\ _ _‹jæ_™äÕ>m2ñ¦*Nå6'>Øpi½ „GMhÑO|1Qj Åߣ^›øfl( a“¤U€xÔ@@4ë™"^‹_0|,wŽxz¤’–ÄpÈjÁxÔ’"#iAê)#`'‰0õº¨yêyÔL¸6Ïш}ÂÉÔ‚5¡H}RÀY÷ùÇØçÌè`$áÖë³°5à‚õ,°Å/Ø>–ûjJÊáÌÅU8µ ÈXZ˜€°XAÆ` ì lQvÄäPo^“ÿd,Π"5¡IŸ’È6k=UÞfí 4ä "‚Â9ržƒp|fÒôlrÐá¬Ëý ”CØ2ÃàQ ŠŒ¥…9È9¡báÌÜè@xMeAص« "4Ö¤¿ù3DÀjÔSå%àtŒc»8)pYGÏ +¶ð°õ#©¯' à°s " +k1’dŸ´H¨\8òvQóüó(;â©J7¯Í‚–5üTÆ£&´éq0ªRÎûê¼ÍB¼`ÔPHŒ™hž†kgÏð[ü‚ Ær_ÏD ìa"Š´ ÆHV˜‰%±Öz‰T€‰-ÊŽ˜u¶?ÏqA€—FoA£÷όıýáß&ýŒŒqb˜Ð³Tãp(¦öcOׄÕ<~Áæ±Ü×=TL O‰°ï=jA‘±´0Û%RÑhmT€m-j¨ÉC%ΈAZЄ=ÂÙm·P¢¯Á?@¸éUVƒýŠÍs²58(6=[Cé­Å/˜=–ûzÎ ‹c,Âî÷¨%EFÒ‚œ°-‰ùÒ—–.jžseG–û~¡¥Œp +Ù(ZÐd,Í“oàß’(&mø*·äZ=¹$6£”Òõ·ç<96eD`ÃOO»¤vAü±8dÛlr/CAI8@Š{JW£#£¦F.Õéé©(k[–!Õº~)°;9@„ó¤ÎžSì8¦õc±«ð¦)I‚ëC™äuvÍÖM¹tlYš×…ƒF™=<Ö®¯ÀžÒÒ;wÞ.¸95vU]8¨Ó¯â¾àÆl¶EnéøàŠ‰\½ÆoçPq£À€ˆÿíùP¼lpô™o/T¶l¶eHa·dwî;b#jódc3¹ð+Øšø¯9X>âÌq…MO–³Ïéá|ÍCÞØh +bbÈBÌÀû 9u?maL´P¯´¯Ù†Þ’S•b!ÐKQ~©:5A¶Q%ÇöirÆFâ0¶HFÐhý„F¾tHŸ뎙?d€-¯ý냉­6üs®ýÛäpù ©‰0fîÈ +ÓB┲Fh9>/ÂéJD|Bõÿ1Ýnendstream endobj -1394 0 obj << +1390 0 obj << /Type /Page -/Contents 1395 0 R -/Resources 1393 0 R +/Contents 1391 0 R +/Resources 1389 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1392 0 R -/Annots [ 1397 0 R 1398 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R 1404 0 R 1405 0 R ] +/Parent 1388 0 R +/Annots [ 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R 1398 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R 1404 0 R 1405 0 R ] +>> endobj +1393 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [352.879 640.3349 426.5323 652.3945] +/Subtype /Link +/A << /S /GoTo /D (tuning) >> +>> endobj +1394 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [307.1508 609.8077 375.8228 621.8674] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> +>> endobj +1395 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.8268 579.2806 403.4988 591.3402] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> +>> endobj +1396 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.0185 548.7534 405.6905 560.8131] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> >> endobj 1397 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [364.6945 737.8938 433.3665 749.9535] +/Rect [364.6945 518.2263 433.3665 530.2859] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1398 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [374.6372 708.0059 443.3092 720.0656] +/Rect [374.6372 487.6992 443.3092 499.7588] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1399 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.0276 678.118 360.6996 690.1776] +/Rect [292.0276 457.172 360.6996 469.2317] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1400 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [319.7036 648.2301 388.3756 660.2897] +/Rect [319.7036 426.6449 388.3756 438.7045] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1401 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [460.1655 618.3422 533.2211 630.4018] +/Rect [460.1655 396.1178 533.2211 408.1774] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj 1402 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [362.144 588.4542 430.816 600.5139] +/Rect [362.144 365.5906 430.816 377.6502] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1403 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [293.1435 558.5663 354.3435 570.626] +/Rect [293.1435 335.0635 354.3435 347.1231] /Subtype /Link /A << /S /GoTo /D (options) >> >> endobj 1404 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.6803 528.6784 357.3523 540.738] +/Rect [288.6803 304.5363 357.3523 316.596] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1405 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.5503 498.7905 402.2036 510.8501] +/Rect [328.5503 274.0092 402.2036 286.0688] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -1396 0 obj << -/D [1394 0 R /XYZ 56.6929 794.5015 null] +1392 0 obj << +/D [1390 0 R /XYZ 56.6929 794.5015 null] >> endobj 470 0 obj << -/D [1394 0 R /XYZ 56.6929 484.6014 null] +/D [1390 0 R /XYZ 56.6929 258.3212 null] >> endobj 1051 0 obj << -/D [1394 0 R /XYZ 56.6929 459.8194 null] +/D [1390 0 R /XYZ 56.6929 232.6002 null] >> endobj -1406 0 obj << -/D [1394 0 R /XYZ 56.6929 84.3175 null] ->> endobj -1407 0 obj << -/D [1394 0 R /XYZ 56.6929 72.3624 null] ->> endobj -1393 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R >> +1389 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1410 0 obj << -/Length 3082 +1408 0 obj << +/Length 2918 /Filter /FlateDecode >> stream -xÚÍZKsãÈ ¾ûWèH§¬^ö‹Üfg<»³µåIdm¥²%µ-f)R+Rãq~}€š¢dÉòij•”l¢Ñ/à%G1üä(³"Ö¹¥¹6–v4_]Ä£{èûîB2Ï80‡\ßN/¾y¯ÓQ.òD%£éÝ`®LÄY&GÓÅ/ÑÛïßümz=¹+G‰¸Û$Ž¾ýpóŽ(9=Þ~¼yÿở&o.SM?|¼!òäúýõäúæíõåXjcL yŠŸ?Þ\Óû?^_þ6ýáâzÚoyx,kÜï¿üpº.b¡óÌŽà%2ÏÕhua¬Öh(ÕÅíÅßû ½~è11™X -©¬µYs¼`Ym2‘Æé‰eãÑXi‘ËØœž‹ÆÅ07i„>˜ -$˜ -cST£¶"U2ß©1¨Q-2­í(µR¨TŒz¬‹•C)ó^és‹\i\™®?ón¼*ºùòr¬SµnUÔ]9oAkIGÓeÙRÏæ2‹¶•£?ÂqÏÃÒÕØ2Q·äþ°8ÊCJ‘[«üz3WÖ÷„‚ízQtnA/¸ˆ.®^TôÚ5üÄy±1oê8˜»¹Ûuû“ÚáI•Di˜ŒzB*æù5Ž•«âà™&‰ ñ:å"Œ4]À‹þªx£gR&çð¢R¡­6þìív¶hVEYŸ aBY¹Ã¾ô˜À¶Xw’à[= -ä2 -Óôð;ƒ‘ß&CàŠ›ºz„dŽÑ(óU!4ÐÍׂ 2K¬ý‚)È“JR+r“ÈsŠµ0Fû£?”Õb^l/ÐQ{…홞‘u*lj÷e .'Éò:ò‡F ü¡úCèa-ò‡Ð ì#'c‰=ö‡ŠœÅ>òévþTT%ûÌ~ãO‘ì㞆ãPϯÃÎŽ™I–¨/˜2Œ8 G›+¡l~îLÄÄ{4WݽЙIP|¯P™';…b)[^¸ØOêB+‰½B‘¾7»—C?¶óEZ¯A|÷EI.àF æAn®{b“ëC4¶Z°<@ºÉŒ>ky„~hy°ß’÷_Þׇ›[\‘ Iˆæ2œyó­·NµËfKækAŒø !v’A@«héyÂG›XX›Ù Æ ä“X³Ì®LÁh}Oce0Œ¾§[c÷¸öF-£à5VMÛeÛº»mµï1àꫪæ=òô΢©y¦ßÝ#QÖns SìH2CÎ/Ó Kpoà]q)Òó,¹AÓ÷Ò‹{ØÅšÈô`î!Ó7Åw½N¢îRF 5gLÚ®æ-„¯ãä*¥T•ÄÙ  ^$ –ñ@˜ò Â:¼f»vóÒ«Ü÷yP=Õwžˆ,NP‘"5š¼È_ŽªÜæ"¶“ŒÉ, R6.Ømç6eû;Ð$G&upÐ!Ú­;홇.ïunôO5m“›ü\¬iaoY.uoIpO¿4Ò„ìqiæQ ¶åª¬Š íG -—›ÎÔóŒñ[žâ>Ïݺ£ºeÑÑì}tÌK7wGV“2Cù©¿ “™÷È©ZN{fn/Uz*ü§%`0Âè\Ÿƒ -WÎÕ”!2/„ŠŽ‡YÌÁ<{¨àËq¨@¨o­9 •Îz?§‡ -¶šºzäE ñ=Ç@3–ʈ<µzß?ƒÕ>×è!ór  4ðµ€²+°üw¥“×\$ÄE:lHé|XéyRñÛFd*‡ ÞJ 'æPŽ2y*ÒÌJ>ôZíüw{õ\ v™i©¾<¤IWÛ¶£–¿¿îyô€ð¡zÿ±…” ¿Ù€ÌY¼o㊂b1p…`- -PyV鎮ÇÚ_ѧBÀÒ©aÒ!רÊyÙ!²®S<¿Îí¦q42îŠÐC‚à ,“îÜ-'“Ûß]ýæöŠˆ·ß0 33Oº¹½~+ˆ6½ÌãÈÏv$ -Y¡àÀ…½( çqW›¸â"D=¯¶‹¾@ñ«RæÍÍ?ñÁ¸äÀ -Ö<²?4ûã3nû*”GJ¬¸a“öà>¹M¿ß#‘[7F>pÊ£›¦Ã“™<ÜT& •hù‰¡¯è:·Zs·× úĈ½ÒÁqæ9sO -B´¡É„Bc?k.H@¯Ã·§ì“$© H+¹’)L&À]G·`ÀŽ¨´[°ÞÎÀ}/–`ß1<éÈÐGVìë‡H¯ÝM1™ðRËâO?saC”›°c9âˆz}—«uåVÀܾ냪ͻ›[Ñ `aç‹÷âCrU|ß{ÀîáDD%ÇQ¯=bCó,ØÞ ×Éú ÛœÆéP-õÌÒ,êòÇkR©Eù掽uMèu´) –5¸†Uð®Tð©Øé?6fÌþïñRJ‰c@›.9¹¦Å¡á7òØâ&.ÎiûÀ#â;yDßCu±éÊù–BP#ûr_¨ `]zµnÚ0AX¿u0²è˜@ˆ…äôxA‰­Ìmè~ æ ^hÚÈReds˜œƒZ˜Ð–÷µW&\OLò öLÎ-ØIÎy´fy¹Í'Ï#éŠõ¼ŒôTлi¯¨j$\ hMØ·<,rœQœèKcr>*Mœ Ò÷àéðNMM„·‘L£¶ÙðÕ1¹ÚV]¹®x¸—•b™ aí6«²#‹…Wº‘psë’Š3 -<çvƒ*ly±žÓ}.Ði,øý½/ä}¨7„ë\±™13‰s?è6eð0¨ÄMÛ ÒÆ­s‡É6JÈD¦#é«–™ÿrI›û5&Ã:ð‡žÆÐOçÅóÞºy×׬,Bê' ‹„\B®½==ý~¸ÎìÄÀà¦åþNøÒÙ[V[¸âcûRQôüç6ðdÞ“¢0‡{²q*4æÏŠ¢ç:³“§³áN8E0J •C„³—#Lw_ÎÀCÕO¿Ãx'¸ÉþbÄe|ýõðˆ}…@BÞ¥”úŸ%“/óò9Xóɲ‡L5Äœé ôe™Bnj!õŽü¡6ÍµÔ b›^‡9ñÙÕv÷bŠÉdÿ+û]³­Ÿ) ÷û:V“¾êŸ"¤Ìߦ礚‘åA™êñ‰Ilô¥—'‘«çŠ @sÉd<+;êøTT[GMvÇÀ°K ÛÐxüÔÈãÍbØE:¡Ù™&xí×zìf?§yFQ; |­bŽIÁ£Æ_2eqZO±V'úœ¢ 3=qZ3ý¿Ëä1C>q–+7†ÛRFãªüÄD/ë4È:µuA.iWQr ôª+H%Då÷Þè¯>­®m]v\½ðëómÕ ñ›Þ9”DÖ›rUlJªž¤>[¡Öì1ÔLA‘|ºs$ô£â +sì$†øUhH^„ؤpøºl¨„]5>Jèÿ~’0oMãe¿l¨Ÿ¸»fèrÊP®â/{ØdQ¶ásôs%Ê!\^Á?÷/6©@?é\ã‡)ò=ó -’µ6†O>t>ÙÀùä;ç“õÎ'?È°°¯ Šº›®™7Qí$„ûËÔmWÔÁï\èÃiŸù?K/ˆ×‰ÖıHU‚>"!*Q†9qѼúÿ»ÿHzt–©Al(C‡s¡ðRû$FÓ™°™ê¹[ÿÓ›endstream +xÚÅZÝsÛ¸÷_¡G¹c¡ø$Á¾årNê¶ã´²o:÷õ@S´Å†"u"Ç3ý㻋ø!QQrÉMGÀb±øa±‹•˜qø‰™5Œ«DÏâD3Ã…™e› >{‚¶·Â÷Y„N‹a¯ïî/þüFų„%‘Œf÷^–qkÅì~õóüõ__ýóþzy¹†Ï#v¹0Ÿwsû=Q*^¿»}sóö‡å«ËXÏïoÞÝyyýæzy}ûúúr!”6(Ïâ§w·×ÔéÍÍ?®/½ÿÛÅõ}'òpY‚+”÷·‹Ÿå³¬îoœ©ÄšÙ3|p&’DÎ6Ú(f´RR^Ü]ü«c8huC§Ôd”eÆÊxBORMéÉ$,RЄzº_ ­'”ëú™*)»K;ß—9}¬ò_8—UÑuE”²®ß7AEÀ¶$ƒéøl!f­uóü ¿\DœÏŸviÕRõ¿T¬òê…jÐKP­b[´ž^¥›¼}ÙæýÕ~¦›ªþJ’Œ$‰'Êuš­Aö(, >œ\ Õë–1JV䞶ÝŠ2Ê€‚2vþ®ÊüДŠMÞ4éSNCש×ì³ ÷eùâû¥m¶ÎW£±^”+øŠaAkϹÞæ»Ô+˜ÂÁòpAB°ÄéTl6ùªHÛÜM`ZŠ›ÀZZ ÝZVTO+_©j*÷;˜sG#¼,ï»»vžÓGþ1ÝU¾hÍ_µ×#|8—~•@|^çÕhiPiŠ§ +f­‡Î.D6:öýµ Éü\]Q[׉ Lºö¸k·‘‹Šˆi–Õn¹«”6Úž‹v=Á…à8àäEAÕNì5„Uªõ>n÷´f›g…ã¾òG´šèL5/ëæŽY¢À&ПPa2Ô€ÌåU–R§^aG@Iéó¹(WacÕë†àóÛz·IïBˆùkÉÒ ã]MòxÐtwóv‡õ)žÌ÷ ê kmMb!ä<ù»NÛªÐÛçM‹ø ÿÛÁÛR*îÿ~ý#ÕòÙ:­žüPwÚqŠ‡üRÌÝ ø8ÊŒæè¦ôl›µ?e+/hî;¶W'Á¤ôÐJâ*Ë®yÄVÙúá2wcÜ^`-mØ™¯»ec[íYí¡ŒÍháÃQN£F èvB&a'¤Pn¤³ñfhãw¿ÑÀÅYÄ éñe ¡ªcã;ög8Ï€Ðê@?€:4 `ÖRÌ‹–:~L³øOžy"®Ëïoï¨õ•‚unÓª O;½V¢d2Þñ™p.L<¼•ÝY,‰œn·îÀ®5‘6û²-¶¡«ÓÌ%Š]ÐE¦”³Çᘎ´<¯RΉԑJaºÍ¾iIŒ¬®Ú”  ¹;qñÛ>-f4SoÒd¬H#2RÌnÆ!ksÂÚ¯F$LDàðn°³Ó‹bb1Ü_éèORñ!-ÁVLù>V0¥:Õ9óv<“T,A'‘:]M°Ñ,±"`€åSM ­x¿ò«0—GájêxÄÌJ.§&/O.M XÞ”8‚Y­DLjÓj5ÁQjй,q™g—È}x¡b¦M¬gÆhsÛÏñ╶,æñÿûFAÐmõ9)ãÀËWÈ1«E·(ˆ83rK •(4œ5¥ÌÌèˆqˆ>à˜³Dª€ºëiÖ.œSf%sšoR´ùhf"Ë}¨-ñÂÎ ÂòDctA)L~xA<äEõD€ K|5ŽcÈ`eié]¥úÀwBƒ”“Çoè6 ÍS¶P0i{æ@GLs1¶GðÒ†ÅQ$gÃøºÍE)ˆ|ÿ¼ðˆEBÈsx‘’ #“³¦j š~Šá…&†®±±ÔüÞ‰à0B­C¢@ÌÛ” +'ÑbÊ—Ú¤Á«®½}qžæ‚®¾BÂZƵÔßBƒ½ùVR†ÙÈ| *È“Ò°ç1TÏ@H'–IÄO_Q‡š<° ¯ñeÇÌ{‚*¢ËΙS|;gˆÎ™ÃÊØ™CÊÀ™[¨$î‚AP¨=ŠÝxrÀåÀ ê¡A„o¡æ=féÁ==ø‘ØØCz_Á1˜€>ø/…7šàÇPv•áROãq¸Ñ_žV±ÈF_ñ0â$•7ɹ+PG’©8Ÿrt¦¬™Hî¹H¢~C±…6kN¹ØNÛ…$¿¡Hì6é#Þ¾îfoŒ”ÔI}ÂE ƒ+-þ ׂ¨Cƒ^„P"L¹ ñ]‡ªãw9å@u¼ßIÄ,p#Á&‚9A~šÜr“€9Ò`˜§cÌSoŽÓ¦ÍwEóžžÇÇ/ÁÝÍÒ&?m™‡&ïëÌèêl*õ…NÎ9›*¶,Jxr&xœt5£QFÃ?WGø6¸)ÊtGD@ûĆ–¨.È>ù‚—DÁ€ä³|ÛÒí:m‰{çû©ëljل°¨ÿßg/²9eã㞇|+}*ƒ=ø¶q‰þ¦PQp‡)kÏA‚øÎá¹G)¬(>ô̸÷¦ ì°‚ÓXgßtÏ‘§±’Àb°âx:¬`­®Ê?é5®e +5 !5Kb£žOƒµ‹6:Ì|>R[ð­Òç9ÿO.#ƒŽZ20—É0áz”x…ë†Y™Ä˜^Œ tÑúÓ‰W+ð.4%^oºZö¼¹úTYÀ´_Aú|“‹õ‰¥Ç—Qšwò-–Ï}ïêý“ël!œ +—h‰ e7t?º¤¢Š»Tú$"Ð!Ø(‹¬hÝKõø>Åõ«.W¤†ïÜjàHc )½‚0MÜÛ[ /—w7o¯ˆ~{wEÄ»w¯<‰R @º½»~͈v™ð¹ã6™•| OþMá0=÷ðÒ¿N\ùgˆ*+÷«î‰â)õ«Û±ð¸åp”¢OŠ~yО +$…ËhCÕb!ÿàÒ¹$ï„kçO7ºŒ’P·u›‡T»ª0ËGo/.¯éÓm›o¶í8“·IW>çžÙ4f›Ë¼õ4ZŠ¶>ÁR¬gØ4uVø——X ùÖ´Ï+v9ÄC`$¦ôI GΙï½ìöÀ#´\’kìN'àÑèøËStAæßVø6L_bþBí»Âý ©$- ØîJLdºÇlqCIK†JX²´ H8†ø€ˆô*&Ë¥Ÿj~ðìò Å&Þ®LØ¡n¿‹Í¶Ì7yÕžü{À÷·w¬@ÀBoŠGþ!Yª‰ë>Ü^Ê0­”˜ú Ÿ¿úOýŸ¾tÌÀ·ÓWjwõ©P3±9”½ûkÔ„ðÿ(æ‹ûendstream endobj -1409 0 obj << +1407 0 obj << /Type /Page -/Contents 1410 0 R -/Resources 1408 0 R +/Contents 1408 0 R +/Resources 1406 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1392 0 R -/Annots [ 1414 0 R 1415 0 R ] +/Parent 1388 0 R >> endobj +1409 0 obj << +/D [1407 0 R /XYZ 85.0394 794.5015 null] +>> endobj +1410 0 obj << +/D [1407 0 R /XYZ 85.0394 566.7855 null] +>> endobj +1411 0 obj << +/D [1407 0 R /XYZ 85.0394 554.8303 null] +>> endobj +474 0 obj << +/D [1407 0 R /XYZ 85.0394 184.6798 null] +>> endobj +1412 0 obj << +/D [1407 0 R /XYZ 85.0394 145.5857 null] +>> endobj +478 0 obj << +/D [1407 0 R /XYZ 85.0394 145.5857 null] +>> endobj +899 0 obj << +/D [1407 0 R /XYZ 85.0394 108.7415 null] +>> endobj +1406 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R /F21 658 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1415 0 obj << +/Length 3250 +/Filter /FlateDecode +>> +stream +xÚÍksÛ6ò»…>Ò3O¸ûäú‘¸MœåÌÜ]Û´DÇœJ¤N¤â¸¿þv±€DÊz¤ggêv&\.°ï]ÀbÀá10)KtƒÌif¸0ƒñìˆ>÷·G"Ð #Ñ°KõÃÍÑß.T6pÌ¥2ÜÜu沌[+7“_’”)v 3ðä?®Î‡Òðäâò=@Bi#“Ów'oίéCH¸¼:#Œ£Ç釫‹Ë·Ÿ®OŽ3Ü\~¸"ôõùÅùõùÕéùño7?߬–ÜÝ–à +×ûߣ_~ムìîÇ#Δ³fð/œ çä`v¤bF+1Ó£ÑÑ?Wv¾ú¡[Ù$8“*•[ø$Å6>ÇR%ÕŠO‚ ` ç°±¢©—‹q¶YŒëŤÁMÂTª3 ¥fN í'99*n“I=ËËŠà*ŸeI9)ª¶ü•sY4ô-$õ¤Æk«’ó||¿FtŸ÷É›¢¥ ë;B,Ž…Mü‚‡aeuW/fy[ÖÕÀH™<Ü—qöYþHÀm .fóöñX‘0Ü&nL挑~c7÷H§EøqüÃsËkÞýq"Ë›¦—y[Lèý¡lïÃzÌóE[Ž—Ó|Aïo• Í9®góº‰Äßo + óÒÛõuƒ* œÄ÷6BæPûeN +üî Ž#€Äæüª¼v´xVu@4åçÊ sœW•W“@T“ râ³Kæ_Å⋧߸} ´AS`nüºh¼ØôŠÃÓ®Žëoïa+[†ì„%K-îQm‹2DÄÙÕˆê]ýPÀ¬hÔ0±YÒÔ †êsäl9mËù4 ÷¼’'ˆ˜‹YÙzÑâë.¿×󶜕-ð”ËŠ° ?¶¢,¾æ3˜ÿͶ´5a3/ÆåÝ#½´÷yKPN®úà{Uä‹Û@Lì$ø6˜t»(ýzD!.š–‘4FE±éÌ”PÌ +XNjSf3.Ñ­ÐÇÅç×?´¢vê:§óâ~GÅ80Ì;dÉDÊ„z²&k˜ÎÒÞ’ž8ÄHth68Mûë@mÞøQÍ3Ú÷­|ˆä~þɬ;¹ Ÿ,(³ÌYm÷³aEuh!OfÕ?j)™t‚°n)i×~—èS¾¡wo:kõ¼îyÈULñ¾(’™ÿ}s‹‚;&àŸA +0Ë´þ–Xª´eÏ6béÿ7*.¤c–;W@ã8ÌÀ8¢?Õpµ©aªØ€Û!!@m6H5<¹!ž×U´fr™Òºl-‰|;ßz@?‰ Žþ#Š!d>eÛ]½¬&쉞™Œiáp!ëå>Èl¼ ”R1·7Gz2e±›«¨£Üº\UŠiÃSr³s`IªS“œ ÷\šÕ’ÔOg‘oË–>|ɧ˂ÀàˆÀûç˜ÝЧHã§FoÝO$“¡71«ˆQ½x½i64 šÎAu8ð<®®¥3f%ÏþÄ”qÄNA™Œcª~HýÞhN‰êÍÍ{“q<¨|ì,gÅâ¤H†ÓòK@z^g‘×™Ug„¹¹÷Ú(/®é„Йӫ’Aà€*«¶øìéªmâ"g¹¬Jïe§øl@ZÕć|Hâ|Ž„è2Íå,_”ÓGz]ú¡Û€é¥?„c®¶%w°U”Šd ytA ¥„JËÀ/@y"0)šñ¢¼õ ¯÷õ<™Ö>J}vJ“Äy+n‹m¹ŠÿÙIÌ4îê®Ë)CÂÒÜ×Ë餟LÊfœ‡ÌtRwµåyø]½Ñ«³ì€÷1©`™pä}ÆS(@­•ÖÁý¸®û±÷ãÖîÇ®ÜÛ¨®ð[N(ã®Ûz\O s—ÏPßvúœ:D—²jÚ¼Šžg#¢w§Ý#±+^Ê ~Q‰ar“fæ€Ä(w䆮Ϩ€ÿ@Ù«]ªC•h嶢°“¼ÍÁ3nÖ”T&ì‹1+ÈcÅùò žJú•RÔí®¨©g:Æؽ†Á Ñ©&|ù¶Gx®¼”ðÖí‹¿"‡©c*á‚#g<ë÷QžäÍòamðU;Í2ÇwèGì§@©Á¬É62ã»z:­¨¦\ç¹ÔKÑÝö•Å%[Xù*ÙÖq)Ò@\B9‰]³;‰ÖàtR§³¿0‰þWƒaf–JƒÝæ‹-4±+vªÒL§¾c%D¾¦%(ŸL‚õúNŠtÉeE_È,¸¼¢§7©7Ôxi}NXzjßAטFø·üp¦·ðYΓèƒ|/N –˜ÝÆÛåÉKïw¨´4 Õ?Z:ØU¨Nà?p¸ZH`è—4˜UOlØÈ8È> UînöuÖõR…ˆË¦æϸÓ8b'û”Ef©ìû Ði(tN€c©ÕßÍ<SdŒyÕÍÕD¯á”OŸL@D>:…H³¼ÃOk¾®ãåÁ8]µÛÊjR†‚'tRôý0ÿôæ@èÙ-r•kŠ°¶–Þ|˜íNÐ[="põíöþiè_vw¬$&à™ÏPFûåù×yI>¤gù4 ºº©SÒMx’n -ðc§nv…þ.w–ÿR~ø{pYK&´:ÀdmX&CÅwz~} ¥ü/xò®žNš^5)?—mt°ãbцӖ¶8à€Ù‘·`(vo׋~Ž<%,“JqJ…î°çíÕÉÏçÀ¤TCöÖ¯‹¡Z[5„Àk×U9ö<|h–f¡MïÕ±#4-sï[¬îqHÊ@‚ê¼Å³[ÛŸ©u7øŠ[u2ã°ÞC~ÈmªiÛgA Øv]̧ù˜ZYÒ‚ŽR 4[÷«"hÝM‚L©ùS¿ìtíþôÑÉdZ׿ûcG§’åü4Iáó“;Ì1¾؇CJ/r_´ù·ŠÆ *­2 À7ËÛ–Þ "ð¹…£ÜbKö°Ú+Wqå‚×<÷M@.ò°5ŽzšÒ<ÐÁz¦‘°×¦ïyCß袢bŒqrK».V«Ó€`8TF2åÑ2ÍänåîhÍ+îØAÎ…÷%ø™JƵÒA¹G?ÿ¤­OFmhu¢´?=ÇÇ|y;-Çÿ^„ÓØîMü{= +OÖ#·áWùG]­ýþp·¦ï—•æjO^ÙåÂ+nÖI)!c‚­„È'” +žh„54=A LD8ƒ—Lî B£ÀgNQ†ˆò2ôß:2D"’áj”YÉa”áNyõäú,áu¸ò²é¨xÉDI +ÎR¼£´_xB3Ø¥£o?~áí ¨‹F½3¶®çú<­oc²4¯›+‡x£a9/ Þ,šb²:›¶øþÃéŽv–ú²ùÑ‹šƒ°)d•Æà(÷½\Ê=ß]^]|– ++7ó#‘žpúñT¬ƒÙ  N©D8¥tدØGctÊÐUgøâÕw$Jò¥îN_Ö?½h0&¬0DK0&\ŽÎ® äâ&ÃD)^‘‚:Š +`#©ka°‡H¤²×¶(0;’™Ìãž0ö—Àݾ”@¾C“LÈö{@Pgj:ÏØAýÀ®”wïøˆAaü·î?xWüÖ£|0GS?ÓÔ$ŸšH^îi„Õ (+ïßhžÑùé?è…–ç“ë aèàج2I“w†Þ–þ8ZÙävÙnËS›¶œgL¯P¢Ðèò-¶È86À¯fUŠš^ëPN‰=ʵ’Ú+îqÁGÆ•;8‚1cÃÙŸþ¹ˆPbÓó‚íûÊßÆTÄúu 5]<0ñb¡±á°!ÊMUJ©~…jì^½Z'ñRñ=¢èìò·ºœ`Üê†î4K3Ajá¬Â`ráY ¾²ƒ§³:é ó¯óúÖ­êqWÒ}Y¤ NBØ, ¤}_¼‹¹U¿âƒc˜n4XÉ2aÈ…þ Zéè-Ǹ…•@%<%(ª9½‘–Çó6°ªšœTqšÕÅ€Cä¼ÛîÂÝj°bu—ÂҙŴ~ðÖfÃ8‹7]Ú¶X„^?¼Óy®—?~}¤'-†ÑI"¢âå<W{ûm2¾À €"'¾±"p™~ó§×R|ž^hÎ!KÑŒˬqÛîòÁÁúá[ÿúaý :cjç}±p`¯pÙ:Ö~Yúä3âßID²ÎâÿäƤendstream +endobj 1414 0 obj << +/Type /Page +/Contents 1415 0 R +/Resources 1413 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1388 0 R +/Annots [ 1418 0 R 1419 0 R ] +>> endobj +1418 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [341.1654 214.5127 414.8187 226.5723] +/Rect [312.8189 683.0645 386.4723 695.1242] /Subtype /Link /A << /S /GoTo /D (the_sortlist_statement) >> >> endobj -1415 0 obj << +1419 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [434.6742 214.5127 508.3275 226.5723] +/Rect [406.3277 683.0645 479.981 695.1242] /Subtype /Link /A << /S /GoTo /D (rrset_ordering) >> >> endobj -1411 0 obj << -/D [1409 0 R /XYZ 85.0394 794.5015 null] ->> endobj -474 0 obj << -/D [1409 0 R /XYZ 85.0394 424.823 null] ->> endobj -1412 0 obj << -/D [1409 0 R /XYZ 85.0394 392.7174 null] ->> endobj -478 0 obj << -/D [1409 0 R /XYZ 85.0394 392.7174 null] ->> endobj -899 0 obj << -/D [1409 0 R /XYZ 85.0394 362.8617 null] +1416 0 obj << +/D [1414 0 R /XYZ 56.6929 794.5015 null] >> endobj 482 0 obj << -/D [1409 0 R /XYZ 85.0394 306.2038 null] ->> endobj -1413 0 obj << -/D [1409 0 R /XYZ 85.0394 283.8925 null] ->> endobj -1416 0 obj << -/D [1409 0 R /XYZ 85.0394 197.5762 null] +/D [1414 0 R /XYZ 56.6929 769.5949 null] >> endobj 1417 0 obj << -/D [1409 0 R /XYZ 85.0394 185.621 null] ->> endobj -1408 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F53 962 0 R /F21 658 0 R >> -/ProcSet [ /PDF /Text ] +/D [1414 0 R /XYZ 56.6929 752.4444 null] >> endobj 1420 0 obj << -/Length 2921 -/Filter /FlateDecode ->> -stream -xÚÍ[[SÛH~çWøQT…ž¾_vŸ 3`Tewf„-‚*ÆòZ’ýõ{NŸ–-;Ø -ƒ©!©JŸnµÚÝß¹ŸVÄ€Ã_10–Ù ÃÀÍ f0¼ÝáƒÏðìýŽHsöÚI{ÝYo/w~:RnX°Ò.¯;kyƽƒËÑï™eŠí -<ûÏéÉáîž4<;:þ”PÚÈìàçý³ËÃsz`ÓÔ·Ç'ïh$Pspzrtüþãùþ®ÓÙåñé ŸžžîþyùËÎáå|ËÝc ®p¿ÿÝùýO>Áé~ÙáLoÐáL„ ·;Ú(f´RíÈxçbç_ó;Oã«Á¤¹`B€q¦…Xÿ«ô ~5‘R±€û\þÑ=Áð ¯5ã/—ªƒ¼†iïÎfüƒ«…@ïmR«%¶)ÁûáóÞn€¯³¯çu°Ë[ósÚ¾±>øQç­ëO&½² f%ˆþzðX¯²õyî*Ú3rÝi>kÊ|üÝ4)z§äiî®ñúš¯ ÿƒ®‹–›¬×€r2*iÝaSV¨†Ò4Uj£:1ÉoõpS$ë -]±˜‘öÖP/ºÙîK»ÇÜ=>Åñ…Øã–¦4³{€’@"‚íuu7!–TÃœ¸A_rtgÐÆFWy]Ðp]Ìî‹Y”^)¾C†ˆo¶U !À[®åB÷x¯ØÀðzAŠk\€ÔÃ%{ö<ŸQ"Û_Ök¾$þ42.ë&YÜUØFxWdkí°rÊíoË·¶‰²ÖZÛ²u V!3|Y™r?`êÀ³Ÿ«ñ(aœìæ¨ü\6­`mc¸ž7Eƒ°[lAQül›Þ´­„oÓŒhθ1=.ÎÃLpš°=Ùÿ R`e5Do#Ç]Ì„ [‹v_:ƒV»š”È1Œ“ÁÑØÀH´êЇà:¶Åë%ÔaJ™¦ 8¯µ,›#µî·eH zñ’?eÉöµ|ÐAB Ö“"ƒÑ€È‘5—Ø`¶ób:·‘Áe ÈhäУê6(XÔ.a -ÄÁÙG"(YµAFàÀ]‘*" Orêb ýFXÎqáIg˜øŒ@©{ÒíÚ§­2¢Df•ï‰”4‡õ<§s_¼;”‹‡R²P˜GQl$U- Öiª\*[ -ÁÌJÇÖ8 ñcs -Ü=é¶òE²X’î«+g™´!DP¢g¨–=»RѾcÓz¤£WˆÏ:^ûä:oEoŽÆ~ñ2Îdëvz¹¡VÍ œDGë\ü“:´½]h$ê$M‹‘´xçÕ«ëÖRùìê®y,2¬›rœ¬iÒu R¤ÔÅñ{¬‘q¬€õz¯zž‹š¥Ú HÖKׂm¯¸Êü¨ìIýäxšk -ýшPbÕö‚öÇÜß·Á"ðõë²€Ï1%€îu•ˆ&Õg}ŠkeJ©å¦l¬E/ßÀ‹Î)_q±K Éw=¦W ËtÐ$é€"‚+ÌŽ"¸`/kÐyº¯“¢ -'×U,ߪ%|aJ”ué–0 ¼³iê²=^ og߯ø¶A:aYO)QqÍŒòdHQ‡ê;QG÷…Ê !ÕÊ:õHÔÛk7|až<Ã`2ERµËK×lH'z½!MJ÷“˜w{÷§w‰DÃ6®¢Êy¯ópøªhšb–JþЧkÝ(øôµ´Yx.q(åù@ ÄÔÎCØ„P-?˜§ß<én°ÃÇmYÖH¤5Œ{ÛØJHZ­SdYOöÏ.Ï!°åŠg'„;ú›»æ4ºùÖ¦åX‰n<¡’x/‘mµ³ÝW\©7ÌÀ÷ôø+i,sªûgªóñºјÍC5û’.øŠÙ}9l±—ô -ÄéÚXÓñ ²Ý}¿âl Ì?“Rô›’u¼:"t1°>}1¢Ü\^s,HÒP2"@ÑMÑd#•O6DµÅÔè{Ì’X«ua€Xz Gçt¯¸T-¼€h‹÷ɸäÌéb‘Á·¹ŽˆÅv4S7Þ@C[CúÀ‹ªÆñ…Q‰74iÞMü² ¨óóôjJ €Útï]=LÅZ¶ÞCƒûÃÍàHN Þå4&ç³DMÛ=& -:ºÌ´JÕQ|-ëfu½Gœ–¥°ro)XG¢s6è=ÐÙ€:?§–>XÒÍ¿qŠãt–¢ÔÒÒÔÆMí=V/Ÿ5Õ·Ï.“uEc[i O1O1üíë%X -f¥îñ}Â)ÆU2ÒŸ.c«’üjO©ö­üÒ -/¶ËÂK³[Çy‘ÁHEáE‚„©|ƒ)ù;…W¾>á º^­eâ Ò•—êfö0ºÈ졳’ÙÃH 3¡%k•–yD}çëusó :ÓÆç ø‹fâÁAÈ¢uÊÅ ¸!Å`ÑXâg€ZÏCÃØ!3¯÷qF>kˆŠW}:]! Ñæ'H§o’tºÜÃZOPϹ¹Ùì—;GÅ…Q°VžëžÒ¿LiCÙãJðcŸ³¨ -Õ}9ŠÙ£w,M§ `©ÉÙCQL¨C˜á¥$‚ -N@|BÛŸÆ–«§ù+L)ì† -içÈÏCËÅr,/3åèó÷Õ/–ù 7aøÑ/òÿ+ÜŸò~MÒŸ>‘V˜ âZˆ˜³ßýÁ™TV¶³:[ÿ??2Dendstream -endobj -1419 0 obj << -/Type /Page -/Contents 1420 0 R -/Resources 1418 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1392 0 R +/D [1414 0 R /XYZ 56.6929 666.1281 null] >> endobj 1421 0 obj << -/D [1419 0 R /XYZ 56.6929 794.5015 null] +/D [1414 0 R /XYZ 56.6929 654.1729 null] >> endobj 1422 0 obj << -/D [1419 0 R /XYZ 56.6929 695.8713 null] +/D [1414 0 R /XYZ 56.6929 474.0484 null] >> endobj 1423 0 obj << -/D [1419 0 R /XYZ 56.6929 683.9162 null] +/D [1414 0 R /XYZ 56.6929 462.0932 null] >> endobj -1418 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F47 879 0 R >> +1413 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1426 0 obj << -/Length 3296 +/Length 3051 /Filter /FlateDecode >> stream -xÚÍ]sÛÆñ]¿‚of$‡;|\óäÈRÌÔ‘]‰i2Mò(YùõݽÝAŠÝZžz4#ìí}-ö{£þÄ(ü@j5J´ò£@D£Ùâ$Íaî‡ÁkÎÝ¢óáªï''ß^Éd¤}‡ñhr78+õƒ4£Iþ›wñæÕûÉåÍéy^쟞Gqà}?¾~MM‹w×Wã~¾yuš(o2~wMè›Ë«Ë›Ëë‹ËÓs!UÂ’ø×»ëKZt5~{yúÇäÇ“ËIOòðµD ‘Þ?O~û#åðv?ž¾Ôi4z€Aà ­ÃÑâDEÒ””SŸÜžü£?p0k·îc“ -„/ÂHŽÎ£ÀWB¾•nàVCék¤sûRxéÄWQ‚œWÊt°á|(œJú©”Ñ(‰´K˜CÖß¼?=CàÚ¸¹kW‹¬«ÚX–„ž{.‹•iCƒÕ©H½Â,QMë‚°éu%còv‘U HA&‰wùŽÀ}ç(Q¢|EH¸@ ´dT‹¢é²wˆÀ{]˜Ùªš9 ¯jXÒW‘‚ˆwÄ©@žI‡£!>µR¥¾-»/)­V¦AxLZ^+š¤us;þáô\E±ô.ZàX…‚Q©ð^_ßÞ^^L+; =SÍ›¬[“¸•g]üA ŒSÈ`|"ƒ÷ˆˆŒTR=ÃôÁÛ¼ÓáÍÓ8úoäèvdzœ*_ -•c:¼x*DLL?•‰7A3IAÛuWœw¥ål»ž— ‘2ò¦U“WÍ1Ûek:C`WfAyKϦeD™ÝnQQñÖö¡9l-yE‚Á Jjï¡Ê ‚2šÈ`¤¯)º‡võ§òœ­×!u¦¹±½4IA5ÈLƒméŽA™þy‚ü²º‡+¥dœD¾V1±Åšc”j=0G06G‚wlQÎþÙ [B¶‚©{íªšWMVV:þ;ô–ûäeÍð `´7}¤vˆÂ³Õû‰3KáM×-0]U×´fíÑÒk7œú{üG]¶!b^DPÖð¢PKñŒÖ ÄñRZC.G½¤CHw$~DkTùN@åöÝ+Ð~cœƒíU¿AXØ+61ÔtÙªãP|GÏŒ–üÕ6ÅÎĺ+AkºÇS!„gãî–“Ç5ÇóNž ^5zF$ƒwýŠ#k>8ëcyP,b_$åA·7§QäýóÆXm'C2N¼lÚZC‰Sï¡°vЇ½´{O‹S¬î« -Gh)5‡™ÿËßoÙ¢Ð:Ž%Aa’†ÏˆjÀƒ—•£õÓt;Š*JS?N¤<"ªH‡~iJ‚&¿NPLà¼&§:ôŠ1„cbkŸ¹ùÔ\òYÒ÷yïüE5>ŠÐ{”‹)ܨÔ)p³ö-eÂÈ);‚e5+ŒYïÉz`¯÷¸ÂéýÙa7k<ÎFŽ ·?MÞŸŠP{g4æD WЃj ‚Íz¹lW“í›Êtàöf˜¼”à†5_±ËŠ <¤ cŒ ¸ÕJY^þF˜{D‰wS,9µÃLŽ½V*mxÀç¯>.Ehã§`°›&ÞÉ' ŸU¡ ßö¥„²©¹ñ¸' ’"þÛå±öeBƒëÉvñÿ¤ ƒØOC€Ü…„}ѹ»…Ò¤B!»?› ïÚºn°ê>{¥†mPz¡S×á–Y¡ˆiÝÖ ¡öC „Ð:›NôžÔ´”³ÎŠ½þ•Ô¥µ8˜­W4lºú‘P÷Y]í(Iç^rÑ¿íêHo -œU˜€Ëÿ?I4ø"ñNÅ ¯áÑúS%p”šŒ¯¡ö”Q¼‘ü¸éŠ˜òa ÞóRqë ”\J†iqŒ £˜{…àô4x¯‹2k 0ál“C¢öö¶!í"Øví¬­ 3ãÚ¸³^ “ºŽ&~Oa5¤¡,ªü\è$0ϸÂ6«ñBRõ닪²]Ê>`Ñx¹^-[Sà+@ýgk1DÓ{žè7f_m6]WuwÞÇIˆÄÅʙݰ±, GÛŸûg䤲>±†üœe`»]Ž=N”5‘‚×>£“aÅm©c?Ò2>¦“!wñ¥ß@.åDâ½)€Q927UPè¢j¦;Húyq_Ôí’Ê´ÔÖîø¥üÆøžTùßØï9Øž{JÛ`S! -SoŒµJ5Ö ¡ÓIÄt-aLÙ{n»p«àyWðÀÜ}¶ªÚ5ŸdÍNˆ¬ +°·1ÍL¯bOS> fåfçÜH[:ÄrU¡w3;½ÓÒ´ð ‚ %÷R -öÕ¤° ê¹OL+ dõ¶øŸM+ðn-ùŒ .¼äöè:l²#I‘`ò®+F-–u5«:ÛHJ½U -Èû ‡çE¨U¶/Š‡DÏWèq´´m:Ümç[on|®Z>¹ø˜Áµ߹ȚÇ}ÊHt£ ’#DeJ#{ïªÉjë©a‰#¨#[(hõ¶€-3SÆÀ‚Ô[Ï\Ïôðþ’·n^B±:­%k1 g%•2)öæøxk8òŽM›ÛT\ e%²ÇÓXQÃY 8 Ÿ¡e¥!Ô&/S®§6š>ZO«Ë"Ëm°QÐ=.-ÁJRÂÈðdò»´ŽëAÜ^ñM3üd@-:S`A†õ"‘çÎ"F y´]K†ß‘ö‘ôm‰»yMŸýðß+¦g«ZÄWëÌN†Ù…KT]nÛÏíOr§q™«qüž¼ÔWZ…{jEF’Àž›Uá„À=ÂØ_ÓÀšÌf¼ºZðòºZT!­'†gÙ>ð\K·P`A ÊdzŒ×Nù˜Å’O©š­›fÙ¬,@¿bH &¥#ƒnÝ#ƒ¼µ]¬DÐ× -™€/—h?ˆ³±QÜ}„ðq_ЂˆÎ:¾ÃO€ëxŽÏjÃG!'rBBü­QëQÃìÔ]LÜu2¼cQ–,á-[tMŽvÔÈ=†D§heIÃòôrâp$7Í¢B6ØÇ·Äiî°kµ9#ËÁÏ€´¾J³wÀ­[ôP}øÝ#ßÅ:ªÌÁV~)«ý†b€ùh©@ª AV%˜ôäl2%±á ^Tnà ùgSí<*<þ"rÛþ8É.«)¥¸OÎaÇ(XRP vUÁ+­EÂÓU3{@±²‰I3ãDŬçóÂpfBÖOPaxªáÅe»®9ñ™ò4%8¡ 2¡Çõ,Å®ƒ~.}äSHŽÃ-à))‡Ç~äó©6æ½=ÀÛ7ó½>œ 6ÔLò»…]bm‚±M¥î2ÍšÀ“MÄÓ|Mß}¹Ѫ9ÏÃÄ &õ@pT5½+Ÿ=*_¯8z“(÷HˆÎ=ÛI×0u凫»ŒëM³Ù^ÆY]å<7 -Û.÷Y½~ÒêØöátùaÿÆ›BTÞ¹pˆ­ B(I6åé1Ç \gcuL ³lµª¨Œä´6¦~%ε‹).Ÿ"úS»zäk:d¬ÛØðI}«va&aü}ïÛÃΨ]¾§%þñÏõ '³î%á2òßÃP-[J¼Þ–NK™Kîws|.Å Ù 0›öµæ¦øãá‡öwp¿W»µ­ˆ± ý¸\ÆôŪ Û(‚§•'Úä_ðÏ#ð}t8`v¿YtHíÛk -M¸ Œ]N¨ù{™vÚ¢1»š}(:¾ÁÒ¥ÃÍ,¼>­6Ж—öh±M×Ú¬9=L¤%c”Õ¼´[cí¹BÖ˜Ó€é‡Øø@&8ì9« qÅøŒœ³&ƒ¶`[~º4©Æ°Ÿ>ˆÚ¶¤]fnhÄL¸¯òÝK©EœØ/êlŸsDïà÷ÏGü‘ÁKÕÙŠÖy½ó\hCœM6à¹ÈÀ‹ñzL¼,]8xÈ(€Øöqwß0ôW Œ#îR& \%¦¼|š ðÄä=Ž-hCeö ÊmÛø‰¼Eklç'e z )ðÀû­]’΀±?ÃT]5ÔI‚l¤†ŒŒ~œHkÕ¬K‚m¸Ô8¸ÄÖ÷».@® y\œÈ\c­yÎãÊþËu,Ù÷¹_†€7#zsHÍÎ,מ{wÚb1ÏdtŽ;QB\œÛ` üPuå`LÖYóÙÇ.:¸¹â# ã[/v ÁÝŽÖU ;NÐ- \ë¦ByR°µßSw…¼üý©%ÐÉj׳s)Î1¶^çΩ÷?ÓปgÓªÞü6àÀ¯ eä+úιÛWFGáŸú ÉͯDUâË4=ð[›¾‘ÁD!Ë“d—òH¦~”†ÉÒÿ³Ÿk#endstream +xÚíZÝsÛ6÷_¡·Ò3‹O¼>¹ŽÝ¸Mœ¬^3×öi‹WIÔ‰”Ü_»X€¢}$2—‡ÏX‹%û…ß.È{ þxÏê˜ÉTõLªb͸îgg¬÷Ï~8ã¾O?têw{}?<ûöFš^§‰HzÇÎ\6fÖòÞ0ÿ-ºzyùfx=8ï Í¢$>ïë„EßßÞ½ NJ?W¯ïnnøepynT4¼}}GìÁõÍõàúîêú¼Ï¥Ò&~Š¾¾»¦N7·¯®Ïÿþxv=l—ÜÝg×ûï³ßþ`½v÷ã‹ejuï,æi*z³3¥e¬•”3=»?û{;a空KLŠñ˜ -{}ic¥µÝÿZzƒ×z’ó8Õzû­°k3½Nbd+z!;¢çJÆVJÝ3: ÏPöw z¼b’EwÙ¬ ye«fR-Ëæ=5U9oŠ% +D+9‹^õxYŽŠœ:”s¯ŒsÝ\-R®ãm¡+ºIÑë®õóö/•%ØHÂw8¥H•ŠYÊô1‘*'Æ9ßÝ_¾‰›D—$ŠyÑÏÞÖ& '1Ÿtø…ûM˜‹X[yìðKp¯”ùHòvHAqé-XÙ””lƒÍ7Í—z»~NÅH9óE‚Ì©ÿ›ïG›oª‚ù*%¼né,7•ÄúÇrŽ{F.iê;jлÓlÞÓ/Å+?ÍŽW·!ë#½PÜÀß5ÇÏ3ñíóWòüÕÖp‘ò˜×0 îMÅFÈáTª…‡®A¡^®+8d=s‘-¢ªßmRA0ÑdÕHÕ P ÂxÐö‹¢¿ßsëèðáÜÝü©ç/€‘t¢`½ÇT¤-¼ƒ)K*z  4zãü¡z*stUaM4Ë ð2ß2-Š95Hl@X!ˆp±‰·±bÌóòÜ;x]Ôñ~Íõ¡x¿nÖ›þšU£Xlµ8vèhHv ÕT„ß8݈èvq˜µBÑ…ßE±¬«yM /ë0ÊÑ´ &áX#=Ž5¢ƒc‰®ßÁ8î€ã”3ˆÏÙô#ƒçö²:b8­¶Nìx§Jõ$)b€µçîo€sâ]tUÍñv';ïB\eET—ó¬Y…ƒYyÖd _Î6S |D(C8ïUÑa\ÖÝÍ©„ÑÒ&úS ^±Wè ª˜™Ä:³±6p^:¡ŸCf6D7±`ƒÕª)úÍ„"Ùêq‚É™ŽFOZIÈë’hRÕMM$1¤á¯E®WFi"v*J?0Ø~Uä%)vŒXJ"¬Ë ¢<ôA¦:™¾{´)û6¸æÚ÷¬±íù¶…È>Ç!»Bÿ\ Ë`µqâÚ’G£UCꦜN©Ï +W´ÃÈ®AÝ0ëïL3ÿøÑ]¯ª¯2ÍóP““ü€ÕtÔq*«ù‡.ä009?f42‰­Pî__b¢aã6×+gL8@døú­‡RÝIü@¿u¡ähãA[ 圻¢¨Ù,Šñø»'Æ“†#ÔÎV¿âsU¦F³ä˜F %J¥ t?8×:ú&‰Ú„B29ªœ›$6z.œ—õçc´#Û8‹ _Q­©…~ÒqÐz¿OÿúÓ½÷'ô£xÕX±_S]œJUÁNNXÏ–°^pƒc…>iÓ˜ A&:tU’B×ð<¼7$"Vî7ÿØ´ù°Áw×wÚ²õi->á±úX ,³$Iƒµ´oX;L¬ÉçI9ž ™xÃG¦7|$[ÃÇÁð/äÇ+œÎþX¸ÿyø朋4º ¶ÇI؃~BFî.+V‹Eµl‚r_–uaoŒØe¯ +;²ùŠS7 TÂÕ1\*µŒ9Ä('Ì·B#öÐ**Wˆ[VRy~ßÆØ©u¤‚Æ6"4,ÝB„9> »»=•RÖלÇîMqŒafëÞô¯ + áIKJƒ3°îæ}ë÷®’©é¡Ç`{ô.…E*bÁ4Å¿‰¿¬{¨¦Óê“ó·7ª{±(X¤Uð62žf¨aê·ñ‘ÆÎ +ßÏÁ‰6”ÖAÖp9¸`½“T‹ñjIÍy3õwµOٴܲ‘&l è߶M¤õÁJ‰ÿ•>Ù¹¿ (ÔÍ>Eâ*Mnï óÄ2u«ø[,o‚#ï÷¯î{Nun}„K ù‰£ —ÐIl¸O¸®^b‚×Õ$«jÂÅR{u‰bX5Õ¸šgìSãÆ-Du =øùvH g¡I¸ŽbVæ}žv¨°8ÈÖw0°Jž€ +e1`•®Ĥ=°¨½X-U]à ýs©²iÂáW(ßÔ»R³Ñªœ6ýöœ —ÌÎíºu=``úPûÓ¶ˆã Š 2íÊÞ€^CqæªaxŒEŽAÄðØHîû0ÊŽ¶¿â*Oe,ý§0‡ŒRø"#nú%}`¢—*GáZåî—¦oiÀØÎ7ÐÈ‹§bZ-(M³t?dœQ~Sé«æÿÂrÏ^3¼£cMA Ýb²‚wl˜„ˆ`“Èq÷!À©'ëK2w×ÍxàyÈxàÙS¶,«•Ÿ©~_ï,5ÅÌŸXÚeukbB>XÍ2<}ôu´E`,–îö¦Þ*Ôý‚î5°®æNe`_ ª 2 «>Uðr[aÓè‚ãG9½×°BBò—¿Hú 0¬LÕþáCSÌ=k¶˜–ã²qu$-3¿&†÷Ъ\Y‰ +~\b Ä–¿Œs“‡áþ­ƒALÄMåg.ÞeðÚ¿s–Íßïº;õ_Û€ R t·Kšî¦çÙÔEjxˆ‹#ª!_(¨Ÿ‹¶Àdõ„85t°ÑjŠxu;?ñC;oÆ+à º ö÷V*O(•±š®ä‘»†)¨1¯r‡ÄWN#;6G+ÀœˆêÍŠ»+p¡„eM¬5.S¡¦šÞ¹H½'E–»CÂ=Ð /ÐqÁJ`ôôpø +ËÔÏçƒ8¼ôoãUPݸëul“P C†ù"-/ÌE‚Pî#ì‚¡%Ãk¤…ì}7xAZâ¿K¿žl·ÖÔ[s^¨lÛ>Û rGEûÉJRœ¸]ž…$áÕÌŠŒ457gÂ&Ü'¤GWã›æÔpîO3ß»œùîÓrV6Ät‘~'Õ³VÑ[è`AŽûôÚãÌ÷ùiþ,~–r¾ñ¦q6žàEvj8 Ë ·î°µ¼re,ã¿àœx±pKa©²ò¬ÍïÝðDÑ<êøo"€×øg~òlZû©P91áü¹À/AC‰žŽÂ‹IºA‡^•¯-* Maíh‘»Ž,7KªÜÒ0û»é-õªB®±Œïç¿âÀßvŽ,‡8naÐŪÔGºñ"¢ž'E{ü®§‘AnÀòw %æà+¿NJr”]_ K¬SÉ]ßø²ÞÑ<æc¿(^U­L,­Ýó™d{ ùE¡¬Ù^¹–6ÖV˜Kÿ/>kÃýendstream endobj 1425 0 obj << /Type /Page /Contents 1426 0 R /Resources 1424 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1392 0 R +/Parent 1388 0 R >> endobj 1427 0 obj << /D [1425 0 R /XYZ 85.0394 794.5015 null] >> endobj 1428 0 obj << -/D [1425 0 R /XYZ 85.0394 492.6335 null] +/D [1425 0 R /XYZ 85.0394 289.3956 null] >> endobj 1429 0 obj << -/D [1425 0 R /XYZ 85.0394 480.6783 null] ->> endobj -486 0 obj << -/D [1425 0 R /XYZ 85.0394 173.0867 null] ->> endobj -1430 0 obj << -/D [1425 0 R /XYZ 85.0394 147.5597 null] +/D [1425 0 R /XYZ 85.0394 277.4405 null] >> endobj 1424 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F47 879 0 R /F39 863 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1432 0 obj << +/Length 2961 +/Filter /FlateDecode +>> +stream +xÚÍ]sÛFîÝ¿BÊŒÍã~ðcï-qìÖÖé9êMæš>P$-í…"U‘²£þúXŠ’©8×zî2ž1A,‹°ˆ•˜„ð'&QÄFšIbt…"šä«³p²€±ïÎÓ\x¢‹!Õ›ÙÙß®U21‰e<™Ýx¥A˜¦b2+~Æ +^‡pú¯w·W¯.dN¯o~H(Ééå÷¯ž]ÝÑ@̤onnßÆÐãòÝíõÍw¿Ü½~•èéìæÝ-¡ï®®¯î®n/¯^ý6ûáìjÖ‹<Ü–ÊûûÙ¯¿…“v÷ÃY(“F“Gx aŒœ¬Ît¤‚H+å1ÕÙû³ô £nꨚDHË=I5¦§È±‚!ÔS»l6ì*ÓÙìÇ– <« ˜—ôܶeAP×Ðsek»²”~B¾´õâßÌ4«™8£Çåæ•H§M¿ kÂ.íÜvíŸnÉìa™U¶³%S6÷ô¼©»rS—ZÔq!D`¢Hº½­ËÍ}³Yeu|””Óv»X”mG/Ý2롲eŠÎ®pG¼l¶UA𜇛ºŸÁ'Z¤×{zÙŽ¹€GSºÝÚæYE/˦íÐùd<½á¹=òeV/ʱm9ë(iX*Ôwgs»Îº²Í)úÅ )'“H§Å6/ B¬7–d5ÎÈJØ°0ƒA3ð|³uÞÔ­m»²Îw„*¶°%OZm…N)ñ=§SEn×W¶=9  æYþ‰É&rÞ-ðCVmK®ªæщÂÜ  Åƒ^®$0°i'×ÌÑ@D(².#È¢H±à逸{KQÿ½&T[æmjzqŠtw-Í´-!òl³±n;ð’1’WÉ›ÕÜÖ™ç"z.ˆÝìx™ë'ÖÌ©hV™²ÎÀƒ1ç™ùÝ÷ä;r6é›5G/¿o˺«v„Ûö–ÈxÊG)õº±x[„­Ó€ÂØ&¬Ìˆ•9´ÅÛÛ÷N\Yb²@x¥!A]bx† y!Ä´üÜmñ4!—òózS¶-)/bDdb®™K-´cNv2r x!˜BD Ø$îÞÚô†1î°¯¢Qï-€XƒÛ–¯àä2r? +Û'zŽ‰]“7žåP±aì@®m »®v_Ò‰1rê–v±tSc3…ãÚäŒÆËŸ„ÓG:‚€k»†C½[Ægô@ס)m¹yp–lÃO–¨©pÎ „:'´i +Ÿ%âs¶ZWÎcã•ð`‹ãEï®/i&$W}>æß=CÞÝ®*„(UezqÁ+ìƒèSâp|®2ˆbLÿ1 ¥“ _3J¶ÙÏæ‚~)yäÑ/Ê"A¨„8Ù17—4à úÑqìôCl;¶I—Õ: ›2š®Ìh–&fà)ðÀõkݹd;(R•„ªlíâ°ÔÓ¬ê õ-–4€²ÚzëCLCÒ–ÀÁB`¶ŽÞ¼âe·-E\`²Ú%Úö(â&È«Àr™+H¤Ø§¼›(·2Brº°ä-ƒQØ&ùßÈÌ»»€€Éˆç¨ /.lÍ,m·Á`•ÕŸP=`ÎN'V¶Ì"kÛí +2ÎË£ ØÒY„VrÓa(ë‰ù´?ØfÛú(ð¥%ÐÛê8²7÷Ý ÇVÛÂuW¯ Ày·Èæꮋµ£–»Þ§W<ÛääRàÐc3ñô‘ñ•uت”sFíÖ%Ó»¸‡¸¼e2Ïû£™nÏ\î‰ú‰ÈŒ m[M\Õ媩m>z¾ŠÏ}ÝçèyóàGì£qìËX, úDÌiÎö‚Üm|ßôzV$B¸TY¸-(4bÞßGÞ:{h¬— +*…ÅMsPŸÀak¹„FÅeƤۆÒ^¹îUâ^÷þ/…mÿ)ÙªÔ*SñÖ[G•ì¡]#@»,†oé¹U®rFÃÒX…šƒÐÝÜ¥Im} Iæñ…à3G YÙ®ëOeŸ•/)úÌ4V·¸ª‡’œ¯BýI7'ÎA‘©û,¹u@ÎX_zjΦúiÅ©‡§æ¨çÕîè¹ß7¼`èä >Fø©n«²X”'Xõ_-{õe‡ñLu¤1ÜÖ‰8²9P9<ò¼- )£p¥Ô ‹ë¹¸ê„"·Í}ˆýûñ×;Pð±_Ý2Uæk¾ßUq,£Ãï÷?7Ë 2PâI h^¼ô3Y]ô›ºÐZà{ɾ‹bÕ°M…FO´†¢XDÔ¸y\½ýÎa¬ÒpúÓ‡W‰J$Ô_€üŸW·Ww¯ƒžìH£:V p¬ý×öƒšÜû—Ô4JT<®!)à 51lFI@†äáOUòúC¯Óú¬ô¢úxYó©EªŸó)‚0Œœ:‹upV‰AÉ40H$O+f°ä7¬˜0 +@dùœ£€†Bm(Ü÷J€E@Ñt0àþíe˜?Ï8ì(€'Åøƒ³†¾’‚ZdrR-ÿ]×P©€À<ã*`‚‰]ßuZ ö/¤„}kùÿ‘ëDJ3P„ÉaûI¯ÂI S§çHyd¾ÜëV*„Vb_p)©\ÌVRSÕ€ˆeöÀCÔ&}RkáP_káËãÒæK"åÆ'³¢°¢6®žŠøbn;BÕÛÕœ:ÅŠ›’Ô{ÕÓùn0Iõ½9ÂK0Vêö¼¬(¸kŠ!÷Ù3(€àÛº.¨ä +éæç<¨ÅpØÊÃV@vTS)Iûë‹aìųüBùñçÕAé·/óXšÖ~î·æëBúFGñ›£}{ÁË,_>“L§š £•é{ê ùèXEZ–OªI“±Rz" ‘Ñ_wÀÌŸ:`æTLú=á—f C-Oÿ +n_‚Ä„dð‚/ß?Ý̸¤”&¡O:,›àÅ‘pyÿ´~ (t°ö_ æ…Óã^AXk#N¥(+ËH©Šb§ ËÓ½¦+µ Oëd°Ü éä¿I /ïµ"1AêÓ‚¡üÊ´ ¡t¨¿œ$¤ëHqÉ:[ÚöËá§0ƒ˜Vî%Ý-ž€DBz‡•Â×¹‹HU§±dòóSዃnaïQŠûÒ÷UûŽÇZw҇߃Z¢(H…AûBºSÓߧøÛ”·¶Í·#w'˜+]p-ófSœºGói®s]NN‹²Í7vîR6艦Ì>ì"ž® xNÙ@c¶¦4DYÆ3¦Ëú¹îBQÔT#Í%lÎ]µÖÉ!XÁÃÙ”ÖÇ.])÷¹Þ]l+×kël¾u· îÝ–®{£øÞN‰Ã-¸©óf‹öR¡çâ2öùH ³ÐÇ0 +¹Þp,Y„ ¦sê͉5Ln ŽÚùh¯ ¶,”»‚†Þ=˜„‹$À·Ö5¾°vx÷±#´»Öîn›ÌˆrÊÒ3Ä®¾¢œøžù'OÜ­OfÙ !‰…rÝ¡sº|fòÞW`”T‚h4AÅ”9Q5@«ŒXÌ_•™;+Úu׶+ÔšŽ¸iȃ».xçGg € X´¦ë…iå[šZ™®n‚粬ÖÌf×våªeJ(—Vt‹Ñ½‚ÖO/Ë%_Pr™Õ;ô´©}Ý’bæ5}kB)qìü„ì{‚Jõ—`Š~ß¡ÕzÔ­h (+ðS¼éTìÞø,Á8þ€!Rì9Hê:—µk0Q™[×ãæœ1·ÂŸŠÇD^Jz¸ß&¸V·CÖ…kÞ{‡Ñ Ï.}’t€ðÒñpŸ-wžpxŸ¯Ä3î+@¹Ý8PÒ¶D›u`î5ÿ.#ÞM‡«àW@Ûú!Dk ;ûÝO8y¶jùÚ_íi¥!Ù¦©Ïž}–õR¡º“ô‰ìô{$5&üSL endstream +endobj +1431 0 obj << +/Type /Page +/Contents 1432 0 R +/Resources 1430 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1388 0 R +>> endobj +1433 0 obj << +/D [1431 0 R /XYZ 56.6929 794.5015 null] +>> endobj +486 0 obj << +/D [1431 0 R /XYZ 56.6929 675.8841 null] +>> endobj +1434 0 obj << +/D [1431 0 R /XYZ 56.6929 651.1818 null] +>> endobj +1435 0 obj << +/D [1431 0 R /XYZ 56.6929 465.6376 null] +>> endobj +1436 0 obj << +/D [1431 0 R /XYZ 56.6929 453.6824 null] +>> endobj +1437 0 obj << +/D [1431 0 R /XYZ 56.6929 285.5131 null] +>> endobj +1438 0 obj << +/D [1431 0 R /XYZ 56.6929 273.5579 null] +>> endobj +490 0 obj << +/D [1431 0 R /XYZ 56.6929 185.3546 null] +>> endobj +1439 0 obj << +/D [1431 0 R /XYZ 56.6929 160.9016 null] +>> endobj +1430 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1442 0 obj << +/Length 2995 +/Filter /FlateDecode +>> +stream +xÚÍZ_sã6ϧðÃ=(3µÊ¿Õ·´ÍöÜéf÷\ßLçÚ>(¶kN–|–¼Ùܧ?€eY±“ÝÛtÚÍÌ’"AðÂr"àONœ…ÎÌ$ÍLl…´“åæBLî¡ï‡ É4Ó@4R}»¸øúN'Yœ%*™,î¼\,œ““Åê×軿_½_\Ï/§ÊŠ(‰/§6Ñ·³›ï©%£â»w7of?üs~u™šh1{wCÍóë7×óë›ï®/§R«€fÿzwsMDof?]_þ¾øñâzÑ/y¸-)4®÷?¿þ.&+ØÝ"Ö™³“ø±Ì25Ù\«ck´-ÕÅÏÿèzýÐSb²ÚÅÖ©ô„œ”>%'›Å‰†.”S½ßÜ;Ø‘vÑoB¨]ÛÁNµH¢Ù¶fQ÷ÐP÷vW6»²+‹–¾óÝ¥tQAݺ ò6ß—2ú +¾ŒŒrêm‹Ýš%‹J¾\7mQS}—׫fS=^J)££ù]T7ÌØósw\Rq_~ VYXå# Èg*eœY«üf+v:¢z»mêUYßãz3ÅÛp&ÚäeEt,¨v}æ÷EÝÍCY1Í]N5ÝæËó¸†ËÀ².>2Šr_´Ì©_4ïßH½m~SKä«æÔîê¹)­ó8¥Ê¢¼~¤¦ü¶mª}WÐצÈkØ3Ñü¦TJÍ°Ò@Þ +¨^òš'hêŠ ƒ‹eW†IýÆ‘ +øí¨úö—!«eãËUKwÍ.Ìïè@ò²>Þ$Ùu êJ”Š(XmM öuì§ëVQå°ìˆM¾\—5àz±|X—ËõBTßëk·aÚ¢*Q«qK+^Ó¬ÃEýÆ ],LŠ‹[Øì[¦:2OD"K˜ˆÎ§ÉI àÞl’ŽTºm›e™wÅŠ¼R¾Zñ™´Ôp,rjûMXqEU/{(¯à4K& @ysõ–^ÉIÏ Òîï)ºe V÷–Æ™VÎ/ðŸ!!SM¦ +U:7´¼TEå5z¥aåƒO?)”· MXKŸ°°Ä=Ý"ÎV÷*½ +>!æÉÉFÏR —’F%s,v¾hàòðŒ´Ÿö„Ö²§È„W,Ëûº9¨ŽŸÕmWä¸"-DðYpD0ä)“# ¤&ò:‡†Þõbì´Äã +Ô~+8 +±S€>k+!†ML@­#;8`A‰œÁ2s€tÀT½ÀuÎ)§xbW[p5ïAJ±CûÇ0 Ŧ:•±K¤<Æ)o"š-JŽS ßð±i¹ËeQx hÅP°Vœ‘[ê€>v ·ƒ=%6Kk‚œù°,£<„ôá°b,{‡ÑEQ µ±„ólðÅB"€%.ºŽÂ=à¶XüÔžX@¼ÿ$“^zK¢®ÜÓ®™VÞA É( /‰æs*=°¬VôAÁ¡uøÔjz[vÜòž$ž0ÊÜrÌR0ºôTÄ`_—];œ9H»„ ½õG~?e‚Áô&ß•>DEm±: T“þ ©øušÖ¢èCm !cAÕù¼Å[À84T©²*Ú宼-˜Óºy JÕø€Z˜¾<Õm1˜hÚîšC4¤#/B(Ûu³¯zšSǪl—9[FZŠp¨"îªjz•èÖ4÷vÛ¢=¶Úêb¿øXî)‚S«Ø"¼°)Z¬yÿmê"ŸB±¯)Aýlj&FÁÕ"’OrØ:Óq*Rýyûô¨Ø7àÈ”H?ã +#F—P¿)pB*çÆK%—i;12•N ·þüîM¾$œœ‰ªÜ?2X›fa›`“š†*~úÀ†.p¨‹ûœßj,)ëW☈ë0,­£0·j©U.±¤mGFÅjnmÿúÕÃËXgðo¶·(¨ÖÍüìz^r° ýÍ/ß¿{{5» /vðj×í)Å¿£ÕnHÙ›}|Êø{SØäËÍž©ÑÙ Ù…ëá .1×á=DS&¹kï+z‹~ +˜…‹U’¨ÉP!¾LÉPµp<¸†N|N„Fœ×[ã ô¶ö½Õ‰‰LI¸óîÂà³%½ÑÁmLmùƒgâ—+vⳟVüˆŒ4]³¥t@¾!ð!?‚5ò#ÔúÊ#f` ¤?ØŠÏO-Ïz^WÅ]¾¯º‘óë•¢8@€9§E4ûîÈçõÏ-Ë£¶èžQŒÄ¿ìÇŠa^U1.$»>§FÄ€ É¡ay x8ÕÑuŽo®JYêT–/D¨„glëå É¿[*É©)ˈ€êÇe=¢œÏ=㊃hpÂW›o-ÁwÍÓ_‰Ð±ÉWÅ1§ª@‰ñݦ¡¤¦“iÍG¨ª-ïkºÊ( èÔ!æéPyš,_EUÜuÃ\¨ŠvåýóËF¤cB+•}¦Xo·M[vœ¨=Lä;/¦†h-¤Ô +,ZQ0ëAæWA²Ï«Š«»²›ž‚ˆ]QûÌ Fyû–Ó2yHÊpþò2>5…úÅéZÈH=ëvHp‘±ÂÝ3à`:øÎËú™@ŽÕ!q3>xÅZßOtbKæÄGx<Ü?jªö»À Âç>Ô´}b9„õŽ”¿ƒiï}eYP÷ÓÜc +÷.?­@KÞåÔ8f\ÿtÀåp1º`Ÿcì?8uÈËi…®ÄŸ:¦Ø}«Ž6àüËmÅh3Pyš¥Î8?ÙÿB*~2¸BÂ|ëœ)7‡ÝÓ“VÀ%ç°N86¼üÂƹoÖÈ€~¼˜ýÎSÞæ¿9UKŒª­‘bTýjÕ*/%™ËμV*1ªv©}tòn>û_¦­Ô":6ˆÞŸeÃÙ¾lPö%KâÔèô%™˜tÃåÔ¥ KnΛVîšæùìXÍ`Ò×Í_¯j eô³xUXÓLèÈ:ñK-1yñ´?õwa‡ßÆ™4ÖΩÓð¸‡Ñ€øžuš=9Äð2¦,ýH´xêendstream +endobj +1441 0 obj << +/Type /Page +/Contents 1442 0 R +/Resources 1440 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1452 0 R +>> endobj +1443 0 obj << +/D [1441 0 R /XYZ 85.0394 794.5015 null] +>> endobj +1444 0 obj << +/D [1441 0 R /XYZ 85.0394 649.2264 null] +>> endobj +1445 0 obj << +/D [1441 0 R /XYZ 85.0394 637.2712 null] +>> endobj +494 0 obj << +/D [1441 0 R /XYZ 85.0394 501.7371 null] +>> endobj +1446 0 obj << +/D [1441 0 R /XYZ 85.0394 474.4327 null] +>> endobj +1447 0 obj << +/D [1441 0 R /XYZ 85.0394 432.9601 null] +>> endobj +1448 0 obj << +/D [1441 0 R /XYZ 85.0394 421.005 null] +>> endobj +498 0 obj << +/D [1441 0 R /XYZ 85.0394 252.2904 null] +>> endobj +1449 0 obj << +/D [1441 0 R /XYZ 85.0394 222.301 null] +>> endobj +1450 0 obj << +/D [1441 0 R /XYZ 85.0394 133.0078 null] +>> endobj +1451 0 obj << +/D [1441 0 R /XYZ 85.0394 121.0526 null] +>> endobj +1440 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F47 879 0 R /F39 863 0 R /F21 658 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1433 0 obj << -/Length 2902 +1455 0 obj << +/Length 2169 /Filter /FlateDecode >> stream -xÚÍZÝsÛ6÷_¡Gz&Æ${s§U§urŠ{“¹¦”D[¼J¤N¤ìø¿¿]ì‚¢$Êq÷.ñLˆÅb÷‡Åb±Åð'GI*R§Ü(sF$±LF³ÕY<ºƒ¾ïÏ$Ó\¢‹>Õw7g{«³‘.Uéèæ¶ÇËŠØZ9º™ÿ¥B‹sàGÿzw}u~¡’8z;þ JR›DE¯¸|s5¡Ž”I¿_¿¡GŸ×ï®ßŽ¿ÿeryž™èfüîšš'Wo¯&Wׯ¯Î»ùñìꦹ¯–Œ5ÊûŸ³_‹GsÐîdzXhg“ÑTb!S£Õ™I´HŒÖ¡eyöáìÃ^¯:“Œ…Ò©ÀIé!œ'R ]ˆÓÛz¹¬ÊêîüB§YÔ. -*ÔU±A­_Aݥѷ/˦= ½¹ùé7=® ¦Ï«9µÍ–yÓ0ÏÛƒ‘“‰ ÂëQ7™QiÛWU±ª«rÖà -R -—$Ê«4/>űª -à£`Qói}R©Ts•J”™zˆ©*ê(«¶¸Í}ã´¸­7çÒFuúù±ƒdÃNU,稇‘ј¹Ð¨yàÓÖÔœß×ej5-ï¶eûÈbðÀu¾i`1X\?Í€†¤†6\,î ñÕ¼“*ó²ùw š![mQù!*V½ñTÙnÒ ¤uo2¬%„!r[>ä\ÁZ%†}Cã“h|Ý—zO/ÙÓ 6-îóå¶h¨¼*õm[T\\•m[ðÈ[OT¯¨V|ÎWëe`PòRÈ7´1mÚ&ð¥/ȸÁÕ‘RF¢“5N+ëe%­R1ƒzë 3nçmN¥zCßÉò"øß%55Ŭ-ëŠénéÛÆ“ }wzC宼/xÀ¶ñÛ‹¿Wõò˜ß'XÁÊ•³|ÙxÍrU›{!ììÖËÞG Õ:€#c?²ÙƒüÕxܪ¼[´TlõÃ×É„ÑŸå›M–2,WÎ,Š¦ÉïxDÞüýÐ÷‚¿Rƒ«LÓXdöYÎWišªdßùþ¹QAŽ†'% q1ðâb±Ïê¢Óé"5VX•ÙÝèz®]Æ¿3£4QÂHcüšŒ?ŒÅÕ›_`¦ÚÆÑÏÏ/2©HÆÐÇÑ?¯®¯&—¢#;Ô¤ÎÐÞÜ_§"&¸Ûõ/‰N…ÍÀR*Ö¥¨L,Lâèô;†äòcÈiwÊŒ=y¡eŠº ¯7dg¯èC!£RتŒŠOcÒ›î…0ù#§ÂË[­Ìœ°âT0 -ÄϤzúX0 ¼ÖÖ°#*›§ÝOçaz>­Ø9J\•Ã†/5̘>Ñï fᘲ©bòW§Ü;Ýyy‹RÜrÞ¡j»tûZà.»öÐ+®o"¤ŒÓ.¿©Î!rózS6³mÓP&¡7%ž•Þ¹³z3odƒ;Ü)”ñ98Í‹f¶)§þˆÃ¬gд۹]loŠÍ}±á1Mۥʰ¯¬è¢Sús¦Ë»±eÁM”Ô™ì¥Ö§Ô/‡d€û£éXÈbðÙçSÒ¯ƒö‰¶¶œmálàzYøÔ =|Zî«à‡Në-®—Ž—bwAÏ#*}Š“˜ã Ï’…Ø6Û|¹¤ìÒ+JŽM‰5 ®¹@é´Wƒ‰2PYBìS7-Ì ÁÍ—qíMé³^»€[.ÔŒÁ6´‹²úšÓ˜ƒ¥†7ÁwQ,×Ìæ±i‹UÃ".­ÊŠ‡?,Š0n1˜°ðCCðV}¥ãæ‚ ?5v AíMÉ/ ”üòjŠõ( º¤Žy±;Ý|$š-I}ÚKÍ–¨˜•>ÁÍ3øÅÔœ?‰‚”ôYoÊÚgR©±š‡Þ¡Ì}0“qðìO’Úz¼LÚ׳¡þ6öòïX%žiùC“מŠ=x¶!Ú¼…å^·Åm:“ÁLû³à-6ÙÀþ ×̶#€N†§ÑØ;Ççt³NÞb½—’·!õù -Ã>̲ÿ%‚’‡ÏÀ'K²ÑЮWËÄîÍoÁË0ãàÃýÜ-éÓy7·C~è5¢“Øv>|]Ws~ÇpŠÕ°&"Б®á€jÓR5¿££ÐâÎ]2ÍmN%¸då³ßy\ÍßÀ²*>3% rçvuB³þFÆÑû΄p­SCäózH;rÇàÔ袩”#~¤¦|ÚÔËm[PmUäeäæ“R5ƒ¤¼ -üt×Õ’ ˆxk “zÅ‘ -øm¨èÏ÷ŽUÏI`'åîýü~YŽ·×½òfSŠ7[bv›11Á{'ÝûýNIø• +8“½Oô­5}ÞÛ'ô{/ ‹¥i˜–v#ùr–iÜRìbúϾÚÃ-…¯Õ¶i"oà:“2' `šœp›°"NR{`ÒMSÏʼ{U:ºc:>lóþ’#0~ ¹„x@3Ù¾+__þ|µ$aðºõ"ºYY¶÷Ü’ÒVMw[Š´n¸ó28Èo©ÑMxE²üêi£iíOI|v¥† XjUÄÙª®@_o‚GÄ<9??¢ê‹’ñ (toȧ‡Çg•Ñ³í€Õ²§p±7ü–wU½3¸PDã -ŽíÜ;ñ8¼8Y‘‹˜ìY 5‘×q<ÞÅ;׋åuï˜ôRT<*ÌæõwVmk|˜íÍ3à‚¦ïe~•žõ w”Ú€ xšY;’Ú -›jù¬Ÿ(ÀÅ,ÉdöÇ.‰Ã£þŠÔFÐéBªT¸8sÃ7÷,nPõXgã$fõÊ¿“A ‡i ­bǹÆØúס,fÇ%ö†ÞêÜêA¾$_§Â(3­^¯ 9Âå/9ùdCÙ&ØX‘h~2;DÇt´GG=éFý™¿a|b%œ;õ„¶Ã'NEbù íÕÇG`(³]‹zs÷:½y_ù‚è8 ç¯2Oo68¤SEIÄãÍ7Ý~³>Yo½Aù<¢<‰Ooæo×x2'b{ê-ÀcPóóÚÀöÓï €ÔI€zs¿@ÏÏ)þÇ…_›€7Z¨$I‡~ ¾häÏýÝÝî·‡&ÚÚIIN^ª‘Nð"Ù£Ÿ†_貞ðÿd`®endstream +xÚ­Y_oÛ8ϧÐÃ=È@ÍåQ‡ÅÙÔéyÑ${©w{Øn›‰ØRjÉI{Ÿþ†R–%Í]ƒÕ˜g†3¿2,¡ð%Jó<ÉrIe*YnhrsïŽXà™F¦iŸë—ÅÑO§"Kr’k®“ÅuO–!Ô–,VŸRM™€šþyq>›L¹¢ééü=PLHÅÓ“ÿ¶˜]ℬ¿ÌÏßâHŽŸ“‹óÓù»ß/'™Ló‹s¾œÎ.gç'³ÉçůG³E§rß,F…Ó÷ËѧÏ4Yu¿Q"r£’{øA Ësžl¤DI!âÈæèÃÑ¿:½Y¿tÌMÏTÂÈxɶŒ“¢—PD1­Æœ¦Nˈ`œ¾U½-ÊjZ¹“}¼¹†vDÊxŸF¤ –ÅM—õvëBrä¤1RDAŸGÔ‡ Ò„ ×õÂ陳3¸ŒÇÐØÖ‡‹ÁÊ‚eŽæi—EÜê¾Äœa!Þ¹¯R.gߢú†Ä¾úuªt‚<üa¶W“€ û¸ò?ûXÈe–:!»¦ÅÀ‰¦ +Š.ÜFLbÃ×ã©›ÃNìX„éŠW¹,Û±¤b +º3“ŤŒ%bxüŒ "ï1d$“ÆgZ/z’ «…Ž>ŠúLjRQd,/‰Ty L0s¹ß¡ª1K!—MvHЧ#¨o(zRöcÀ¹»îÜŽŽAåMà2npnÍ­]öbä¾íz ë `Y®¿¯ì k oþÍ~Û€2‹vX4|cæÁ쪩7ûÖ’‘4‘® †ø%ÆaX_›©ä²ØÈq2Öp}üø¢ßaÜÉùñ™»¥ ÏŽççÓ³Ë?à¢6Šmýý¢ÎPgË»bÓÙ§ðXçnm·=™ýûøì·÷3rrqFPé Šj2d||& Z1’A×ßCpþÁc5ym—£åj€ºJªEŒ†k¨³O¸‚îuð»^ï\×:"43Z©¿½Ícâ œ¹ÊþŸzNî2çne½ +p‰(bS&2¸ñ¸è¯ÝEg0=py·±#Ñ T•”æEc¦C"ìàÓ ¶öé¿ï0ìf±• ê••‡½ütÑÆÉ2¿­a‰«T§óë±–ƒÁ…ÚpñÝS¢à?‘÷! Ä÷ ë u—ÐüAÁ麼NÙŒô\qí¾l×£uQtHõRDƒÞ%{€ËØ ìmhÉjWïËÆ>èLŸ¯,ƒÓÏäÿªS4ÞÝ1C'² šjBˆÊ¼W˜¤‰'ãi W£@æ%ýL×¢Z çÎî—÷ÈAŽA‡4(¿áèºûÝîJw}¸tn´C9õ‚îàFÊWuµ´±îª¡ãÍóaDõ /Rþra«þU¥X‘§Þà˜$wï/¯ñ– Â9Ü’_~ߎ+žºg”d”šï<†1gâ5_Ã…‡ê× ë ~ú5ŒA1cF¡Eþò,³<\ž¥¡=¼ip +S)‹<.|¸ÑÞƒ 4ëz¿Y!§kÎÝØÎ6m½³a´¸ö·L7QT#ÏqBp¢Õ!ã¡öǦ-L "µø“…tå“®…RªôʽHíîRû‚àV¸oSbßâèºBžûµÅw7ˆ.âàø‘À±#xaÑ@›¦û‡¤‹Ê Þ¢›\$Tx™rïá"“q¾ÁÁ+ÀS¤Ü]ß}A½mX»ðÊ .Q ¿ÂÆ¡ªiñÜöv…²‹À^àgåÔîÊb:Ö/¶¥s{/»ÞÕ[¤ð%&ט7HÉɲE»ßùçÁ7‡§6÷uv<ýÖÖKÔKý×j£þÆ'ÿ‡ I<Úþ3Ķ\ƒ^´[½N#3Dè,¡áYS†>Bh-.ô­§üÄJrendstream endobj -1432 0 obj << +1454 0 obj << /Type /Page -/Contents 1433 0 R -/Resources 1431 0 R +/Contents 1455 0 R +/Resources 1453 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1392 0 R ->> endobj -1434 0 obj << -/D [1432 0 R /XYZ 56.6929 794.5015 null] ->> endobj -1435 0 obj << -/D [1432 0 R /XYZ 56.6929 673.1367 null] ->> endobj -1436 0 obj << -/D [1432 0 R /XYZ 56.6929 661.1815 null] ->> endobj -1437 0 obj << -/D [1432 0 R /XYZ 56.6929 493.0122 null] ->> endobj -1438 0 obj << -/D [1432 0 R /XYZ 56.6929 481.057 null] ->> endobj -490 0 obj << -/D [1432 0 R /XYZ 56.6929 393.3436 null] ->> endobj -1439 0 obj << -/D [1432 0 R /XYZ 56.6929 369.004 null] ->> endobj -1440 0 obj << -/D [1432 0 R /XYZ 56.6929 151.2167 null] ->> endobj -1441 0 obj << -/D [1432 0 R /XYZ 56.6929 139.2615 null] ->> endobj -1431 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F47 879 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1444 0 obj << -/Length 2798 -/Filter /FlateDecode ->> -stream -xÚÍZÝsÛ¸÷_¡‡>P3 ö-Û©o;UtÓÎåò@K°Å)E*"'ý뻋HJ¦ì\“Îu2B‹ÅXìÇo‹ ‡bb4ã*‹'i3Í…ž,7g|r}¯Ï„癦ÙëçÅÙO—*d,Kd2YÜ dÆ“ÅêCôêo/ß-.æÓ™Ô¯n®/¯^ÿ:9MãhqusMäùÅåÅüâúÕÅt&T¬%P^Äo7×ÄtyõæbúqñËÙÅ¢[òp[‚+\麟ùd»ûåŒ3•=y€œ‰,““ÍY¬Ó±RRž½?û{'pÐ놎©I*ÁR­&33“€ˆÓ#fÅfd–‚RuÆ%U§ThŽ(5,É2í”ú6/Jؼ”ÑÊ–Åg»ûŠ¿DôP”ž~ké›·­Ýl[»¢Ÿmš‚sËS-@II CáÎì—|³--[Öq°¨,eFóÄÈ«Õ˜ÔŒqØÚ@¨|F*¨ÄH?äw®yQùmT~‡õn* ìz½âÒL˜tš -P¼í -Á2­¥“SÜ‘T¶h×vG?jOl×uc©Ùì—KkW/è×@±È6ª·$cZ‰áÙm¾ü×~ËêÝý˜Ú$:zö‡Òoý -ºÃb~°˜t¹ûJÀL‚¦™€sbÐ%øç§ïïœK[®èGÑWN?•œÝ­ïªZ{OO"wpvKŸÆVd“Ž‹ì«¢m†3'Qc—uµjÜ‘Ð9¦L¢í®Ø仢üê4– À-ö'ʯ ©K8׆Hk[Q 6éÙ–ùÒmšóyáFÅÆ« H Uj¬l³Ü·ÖKZ×Ô(kwÐʃ ×Ouk­íŽLÛ÷9·Y×û²ã9ÜØUÑ,sï+\­àáPytW—eýЙD»¦9|oûuë–?ðÚÚb·ø±ÜïègÕ–Þ#œ²]‹Î“ðèßuåG¡™€³Çf!ÀütOÅY"Lö-ÑYeŠ¥<=ŠÎÿݨ°Pd Lòôô -hY¾FŠšu›ši#d@9Î…L)¥'‰” ”¤Ü¾¿y9AŠáäâ¨ÌçEjèmÊ+;>©h(RÈ)Tè‰!ÞÝç­wf26oΈ1-ÖaxZë¹.êC“FƒK4YÛSy3×:ªCTÕà¯;ï[à!¾éΣ YÕ3ˆ³ëÙª†pY ýõ?ÏoÞ¾¼ºÆ°NTï­Ûºjl3føw´Ú Û×zÏÆœ¿s…Mþ¥Øì=7»à!»zuñ¡º¸W-}À%wM0q8Â5.ú‘™kn˜L9Ä÷š³d…PƒeOâšG"ÈÓv« 3&Íž±[àe±Ì(÷üÅ…‹XEzV‰¦d -‘‰ÎpIjÅμ¥oKÜ[ê-Q09BCq[G¨>Œ•ÂÀÈ~z“6~Ö13öÑÓÞåû²= -~QØÌ=†}QïÛƒ˜×lí²Àe.5¶}Â0ÿ¾SüßÀÙ,M“ç Cs¦EF-(Ëa™LS]€G!^ÓÔ)µOˆÐXçÎí •Ó‡ô‡¿úRP“Ú#j÷~Õç|îà!Ä¡uføX£ÝéG9¶‚ïƒ;î÷âGH¯¡Q nÌ>ú‹)çó=YU+¬ª“Dÿ‰Uu8©o‡4aó'A¨†¥ð³¿yÎÆ@¨Âª:ƒÌ窓›ùÕë«ëéL Å£C‡èâø((Îö};èAY`ø‘Jì”êD>§ض‚ðF‘a:3)¨õ’@œs¾€»ºÞÏžF¬ÃY”rþokÆbÀ–OV jM3Ž·°’q#¿iÕ±,Ët|ÒeŒb&1Äeˆ#vo5"á,ƒT=„ÓŒ˜q°pŽ:IÈc®ÈF'± [y¦• —Ö7`,€­á=zu™±Àã6)‹•t…íäÓD0gP:¦AÛíµ×#ütµ‘“óv4l*ž %»M- Ž*$0Q)xÚݹm%0V¢EØVÄ7”Ç玒ŽGEÕ#H×°Sp+r Ï’ï|×vQ À£í®ž -}.(É# «QÞÐíIá½aÅÊåaÞ¨+W‚@ÛR¦ÔB/=}UÓ·ª[ß°K-€šf°¦" ‡ŠÀ"MA -ua-عlVQ{ßä÷·ƒi.¦›ç~6R4ú…º¤‡²s^jöÁ·´ÌÛ@u¥µiRHÝ•…Ú—…7ýíÆoÝ5þeQúÖy±£Ë¼SïJ T›‰Ü»Õ%hzGm/ -,À¡;P >8ìß4Ëfn¹ÝZúûq@7J†§ä1áçëÛnUËr¿²Ý…à î*°ô4cÁôÀF0˜J¡=ß‹QmŒPAÐÕõ«7¿ž_ŒÕÛàC©ì%‘¾ÂCôH 2iéÞ>Nü¹€Ò ßøG÷ùäYüö­JÐ{kœ2eN½uc~Q¸ø4{„Ê”aÚÈtdéÿŽ&bendstream -endobj -1443 0 obj << -/Type /Page -/Contents 1444 0 R -/Resources 1442 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1453 0 R ->> endobj -1445 0 obj << -/D [1443 0 R /XYZ 85.0394 794.5015 null] ->> endobj -494 0 obj << -/D [1443 0 R /XYZ 85.0394 711.7496 null] ->> endobj -1446 0 obj << -/D [1443 0 R /XYZ 85.0394 684.4451 null] ->> endobj -1447 0 obj << -/D [1443 0 R /XYZ 85.0394 642.9726 null] ->> endobj -1448 0 obj << -/D [1443 0 R /XYZ 85.0394 631.0174 null] ->> endobj -498 0 obj << -/D [1443 0 R /XYZ 85.0394 462.3028 null] ->> endobj -1449 0 obj << -/D [1443 0 R /XYZ 85.0394 432.3134 null] ->> endobj -1450 0 obj << -/D [1443 0 R /XYZ 85.0394 343.0202 null] ->> endobj -1451 0 obj << -/D [1443 0 R /XYZ 85.0394 331.065 null] ->> endobj -502 0 obj << -/D [1443 0 R /XYZ 85.0394 138.4884 null] ->> endobj -1452 0 obj << -/D [1443 0 R /XYZ 85.0394 114.5262 null] ->> endobj -1442 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F47 879 0 R /F62 995 0 R /F63 998 0 R >> -/XObject << /Im2 984 0 R >> -/ProcSet [ /PDF /Text ] +/Parent 1452 0 R >> endobj 1456 0 obj << -/Length 2275 -/Filter /FlateDecode ->> -stream -xÚ½YÝo7÷_¡?¬€Šáç~Ū-ç\Ør*«ÍáÒ<¬%Ê^@Ú•µ«8¾¿þ†rŵ6‰{¹Â9;œÎüfH³…l bg<$™$Š25XlNèàÖÞž0Ç3òL£ëçùÉ› ‘ 2’Å<ÌW¬”Ð4eƒùòCA† Fÿ¾™N†#®htqyRñèìŸãwóÉ bÇúóåôg2În¦—o›‡‰Œæ—7SœžM.&³Éôl2ü8ÿåd2oUÍbT}O>|¤ƒ%X÷Ë %"KÕà ~P²Œ6'R ¢¤~f}r{òk+0XµŸöº‰QÂEÌ{üÄYŸŸTFbÁEë'E¸…RÍ4Zxz3»|{éÌ=/vzÑŸ´1„Š@( ¡ K­¸Ûç²É?ÿèÃÝ…"ŠÅ ->0|^¾åS¡@™Á8w|Ëj“å¨Ì7}›Ç)áR2Çû¡Gša‰ßtQm6ºlzIFR)¼ =êXƒ—á$F ÂŒƒ“ìà/íà2q"kÝÔÆ™,jÐÅÌ™fhYûÜrÞ õT¬×HÝiäÊ·[].õÒqV8æå3ûòqŸ¯‹?(åÈãݥ‘^Tv\Ö悉èýƒvûæøåªÒm_8-]m]5ySFŒ‘L)n-BѹوÉÈ#X‡ nÚˆƒs·\l¶ëbQ4=fL‘¤Y_€°QÆ „ŸAdCB™¦ŽÁ˜„OGä`†õ¥:¢HÏ)+"Uæã³Ì\ìwè…²ÏRÅIš¤IŸ¡Ý - EOÊ0Œ»«ÖíèhTöØ„&å:çVoõ"ˆŠG£‘q¬lœ–dñ·•í¤mnÍ¿ßÛtÃ]Vnô¿kËÊMäwuµÞ7šôœ(™ÆŒ8Ì&qÒÑftéÏ9—&äV„A&´ Âû÷ï!ú ÈMÇצ¤@_/§£ÛÉìw(ýàìçuÖûâS¾nmƒS8ÖùÅ·°=™ük|ýîjBÎn® *íT‰»štÏDK“,”Î ürzvõÛùäÿŽáÒƒßàvˆƒãWøªÁÔ5ÆÄk¼Ú÷Þ/ä€fi¬T àÖæ>qÎ\%ÿKA' F¨äI·ÌE -(g‰$ÚÚ𯺮qó“xkÝ. bUI™¾Êe,má#w;Øü‚­m~Á率Õr±Þ#jžÒâF^v9oübá„o+øÄG—«žÀèÖ‹‹oŠ,Ä4B*Iª²§ñ‘Ý*àHàrlOEóÐ[hàE U¯…4¨àm¶;¼ÌÝ `Á^ÿ€te*àSQë¨Zâë%%pú‰ü³:yã÷`3q Ÿ$Цд£ -2õ'ci Wé£@f%íJÛ£íz ç“Þ9.둃œR£L˜|ÆÙ‡Üí·ÝБ}Úƒ71#I›ü]¼á/ñFJWU¹Ð±QP@R读ÒCîœy§µ«ˆ¾Å!_jó%O «WõùŒ“,S²¿ÏÎá<ξ, ¿£ Ë‘þ‹®¨ÃµI*&Šw{ƒÖ|(íj‹ë [Œ. ƒNÅÐ[›è¤DAè¼{õŠEsøŸGG I@H'ÁÒZ3xÜÌ2Lmm=øÀN¼¹ÜðÁy £¼àQ(ÙŠðžà‚ý3i ѦÙÅÙšØ,‚+™*¥äÔ¸„ÙŒ”F“ 6̬ X¦"Ì3Q?Tûõ9Mƒnævºnªv³ùª¶ ¹ø†‚“X’ê¿oÜÜB'XƒØï˜,¤)¡^ -À”*ºr€£»ŒmM0“.ÌXØ»º*‘çéAÛÞÝN¢ €8¸~x00ìV˜÷Ðùº®Üþ.ï¼rÝ«ƒs“i‚„r·n‘(sëpÑvë5NÞ¤"U­põ6îÛ¹­QfrjØ/´Ÿ*ëÏm¯—(;wì9K=àE>êë›Â¸‡'i´ÚU¤l0ÂÓHæŽÉÈÒy³ßé!ìé-ÔÁhì8B ý5O³tæê÷¥¿•Áüèðfð}àÔE¡àõÕè²I¢Tt§â¨;ϯþº×#ü¸÷ãPd{[[êU¾_7£¦YÿÍO d œvB_<&ÜÚ#ó]NGü1*Èáö¿2UH_ïYêª(É• ? êý] ,í}ù4€“¶e²Ô.™KÛM™ýæWæý@Bˆÿn¶Î×E°b(æ®}N“­Þ˜Nn9ÈË{ ÔÜaá¢-b™àL Š•æ½¢÷òÓy€išù¨}ŸšÜ|1¥0ÓaÏ TŽ¼¼š¤É!´c؇§Ã뼶¸o_ ß^L>7º¬O~4o0Acxúv2ÌÆÆ¥óÉ_—]Žƒ9†þ -_⃳Y?Ô}ý')å¯MŽþ c ÉOÿì•m×}Á].EY÷¯{'•ÛÇžæyë Üõ(á¼!ÿÿ–—EA3hIJq}|`]|â±±œ+{@Ê6Ö<Ž®‰m4Îç8ÔzWh÷‘MT‘³®ö–°-48Æ #ï>æãrýŒÔ® À²²±¿Wx#Û /ÜØgòÎ}jŸa, qr(ýæµ½/÷GÞê’|ÓU’°˜ù#X˜ÍDc—'ÎgfÆøÌŒ:‡éé{]¯ÍZ3﹆²M ,ùÉ,âäã¾@¢³O¼ÝVæe%îïxÃeø1\³j×LyC:Ö/õZßç¦SiA®^슻¯€K™dZã+¬@:>?Ÿ‘ñìqæØËóþg®¾÷pû¤—}h'8 äŽI_-p'8wOalĦ·8âëØiû<Öײ‰b> endobj +502 0 obj << +/D [1454 0 R /XYZ 56.6929 637.1539 null] >> endobj 1457 0 obj << -/D [1455 0 R /XYZ 56.6929 794.5015 null] +/D [1454 0 R /XYZ 56.6929 611.4253 null] >> endobj 506 0 obj << -/D [1455 0 R /XYZ 56.6929 769.5949 null] +/D [1454 0 R /XYZ 56.6929 538.4006 null] >> endobj 1458 0 obj << -/D [1455 0 R /XYZ 56.6929 751.4464 null] +/D [1454 0 R /XYZ 56.6929 510.9165 null] >> endobj 510 0 obj << -/D [1455 0 R /XYZ 56.6929 563.3947 null] +/D [1454 0 R /XYZ 56.6929 308.8105 null] >> endobj 1459 0 obj << -/D [1455 0 R /XYZ 56.6929 537.1873 null] +/D [1454 0 R /XYZ 56.6929 279.7922 null] >> endobj -514 0 obj << -/D [1455 0 R /XYZ 56.6929 314.9763 null] ->> endobj -1460 0 obj << -/D [1455 0 R /XYZ 56.6929 292.5697 null] ->> endobj -518 0 obj << -/D [1455 0 R /XYZ 56.6929 211.1564 null] ->> endobj -1461 0 obj << -/D [1455 0 R /XYZ 56.6929 183.865 null] ->> endobj -1454 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F53 962 0 R /F11 1299 0 R /F39 863 0 R /F62 995 0 R /F63 998 0 R >> +1453 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R /F53 962 0 R /F11 1298 0 R /F39 863 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1464 0 obj << -/Length 3617 +1462 0 obj << +/Length 3059 /Filter /FlateDecode >> stream -xÚÝZKsÛ8¾ûW誥«, ^|íM“(YOeœ¬íÝšÚL”HÙ¬P¤V¤ì(¿~»Ñe;›™Úªµ„@ ôóëńÿ˜D>ã*Ö“0ÖÌçŸ,×g|rïÞ ;fêMû£~¾=ûé­ -'1‹LnW=ZãQ$&·é'ïõßfoç×çSés/`çS?àÞÏ—Wo¨'¦ÇëWo/ßýãzvjïöòÃu_ÏßίçW¯ççS¡´/€²$þõájNƒÞ^¾ŸŸ¾ýål~Ûn¹,Áî÷ßgŸ>óI -§ûåŒ3Gþä~p&âXNÖgÚWÌ×J¹žâìæìï-ÁÞ[3uŒM¾Š˜ÉpŒOñŸü˜J*Ã'Îð_Ä’]^MgoÞ\³ÙõÇÙù4àÜ»º¡çÍüúŸókÁæ¿Í~ýø~ÎðÔ°ôTû¾|‚#$Ÿ$$ž"ôújö뜚4nlä€(iƒ|!Qù2¢´SÆÆ ×ÁŽ<±^_±„аB¨'AèƒB„ÁKTKÅŠ…<vÐ’F%M–Žz¦Y¹ÇЂÏË»ÂOÿø>°6Šb{¤Wc‡f~໿sŸ§UQ$[G÷®„>ºÏ½z¿^TEM¯óæ>/éžõxm¡ ZÚã<Óš4¦ÎÓŒÈ'tt¢OíM‘,³”^/ö†S)"ÈH µ›xæ›7Ù6iÐÄñ×CRì2ôÚ:önÏcéUÔ‡ö‡„¯ìä’ž-µj×lvÆü`î¾ÚQo™á¦Ì@KÔ%ÙdÝäcÖÈqL.h†\[¾ìPÀ@PÆfðX$Ë/u‘Ô÷4UèþTvH;·!Š eà€#»c#ÄdÀB!£bâ˜~BÅ«!ìÒ!X×_ ~Æœ?EkÀ–u²'nT›&¯Ê¤(ìoc@ð\.WF>²Sô)±Öb(„u•æèݳmM y¼Ï—÷Ø«½7ÁÉt“:hã”A-WÆ{ãï•QÓjMSÚa­"EV‡Ê‘¬Hí2yÚÜSùˆ³^$5ªmõWØä¹ðº}Æag**@iÚFº3Æ‚{z—ŒˆW„Wá”e5ÊòX‰ ç!ŠlÕÅÅL’.”¯×Yšƒ»*ìŠÀÿ©åydb yÂ1Š-µ] ˆ>¡ÃÚï|àÝ ¬CñÐ{kP 0%ûš¬7Ev1²¥ÀgÎüçN¥_zª©äê"s1Sê‰ $PïVä2 -ÀÌD8y*Ó` áÒ“Ÿªg9ØKX º—»-©vÙÐãÀÁ†¤Þf ª^Ì°±vWØ ‰Ðë4[æ뤠>¼ºwß2ÚÄt.%iJ¡‡wÆ‹? 0ƒ§5bé K â3Œ0I^$‹"³£M¡¶Á¤ÔìbLïöhÖòù¨›ä,±<‘I™s(:£v ˈ“|Bpí<’CùœX œ²U# B£bÙ[]ZHØýá=¨r{6|sb¡(fZµóuÔiÝZ3ʈÁKu4~ƒ/y õV!Àžv› ©ÁìarSæIž?òÀ ñ >n­H«V7NzÝó8¾´‰Ž>á…;‡ŸEr~ìvGYšöʪ¡F²¨«b×óí*=0ò1I‚ dìNóêÃõå»Ë«±3…°º VO@ž%Z.)<È3 »dÁbE–A;‚bùQ¸m¼²’¾·¬Ö›¤Éy‘7qh‡ée–l‹Ü¨t?@”dR9p†,Šã6¶7¡ êŸ -W¨›C¤ïÒˆ»2ÿF0Ç7NŸy™æ.úBâq †çYÂLôED ë}^ÑÃ8Ê>ƒÈNûÙ¦y]îø')´•_òL樅qÌjKS<›9ÞlÀÏÇ€j¨m.hù:›6Õ´€Ô›zLÁ7€êܨ»¬DÈhŽ>J-D¸´ÉÀ Q·«¦nUrH‡ÁìÑh -r‘9 ßgÛ¼qÎfC£€påôyП—”K;j{y»"«Ùó9Ï’—17"5ã~ìà¦Eć¢@â‡ÎÕŒ‹b€ÖÊ$*õŽ î†<½;´Óò 9ÛZE'–g»?¡ï==ú£J%†ºsÎü0z®P¢%¤ÔàퟔÒS -ï;@æ+;ßôTê½ë«9ô¨¹]½†Û’Œ\'Íòž:-1é}Ãê߈Ïn7¶X-·,·ý=ÃyRoÅÿÞöâÒ[ ¾òÉ‹’#’nÆI½U€Sƒ ÒÏè- O&·nz¿y¾–!…Þñ~ŒeºkÁÿÅeâÄ(~CrÈt$dÿ~òèžRñ€EpÞTAŒP”­ ÕÈ=%¨?–÷B[^ÏÆ=$@Á¶^ýn~5¿6‰ôí|,ÉUŒsåtšÛÒºê ܪGw]œ}m²‘ùÑšBI¶Í0Åo¡P €'%«·³¾ÑÕ“-¸l3ü„`òdI&@W°Æb%‰Ý~"§¿Y}°ëx!¸-xÒ¯ÛÛ÷çxý~vs3¨Wô0YMpSšùq͆ðZ<<Ÿ -ι7KÓ¼¿ÈÛÜì­9ؘq9ˆƒ–µ!w‰tÛ²¤è—)“+{l j^|v¦P Ñ}¶"ÄîØN&þÔ4“69ë­h¯Sì"&›ƒgº[o†ãHžØ"yÖcÈÂ\@šUQÜÅ&í¡‹¯üN×öÀ[Æu[ß&c`B ¶tÕ  js:›Ûõ²fªyCÚ×ÕšúY`b·™ôÄÙíÕnõò€|BE^&Û}¼M'aR„rÃì-MLÛ,¢÷™Æ_CÓêVš4‰3.“C,›]Wã=Ó†Ó -!¼‹ÖèÅbïüµN¶_€¶/_[ÿpœÖU’v½y?ñ7vu‰¿Œ©V›ÚãÚ0FÆweÛ‡¬­îóvu -ÐjBl«Žq¯Ú=TŽPúk£Û åààk[¤é´Ã¯é™}ô#¼%ak\­¢çÂág¯þ -²ûompô0¶¬ ™Œ„:¸®@ƀƌ—’°˜¬Û²5étŠõð.ÃF| XG:/c×à.ñš$#µÙ4–F @_²w?lL»²ÏÕÁ”t›È—ô·€º¥lš`m ß5€.š|i®™¬è箎¡Ç\@¦Î‰©¶M–oŒ ~´v m×7Hâ±ÃÜÝœ¼G„Žß…í}X VEšv{Ž'óÈÍ¡Hb ¶°à#~¨0rÛ€éúb! ±$¡»,DÇjÏeïPu—§MU„wÓ‡7B >ˆÌ‹Û«Æå4]Œm¶IY¯z¹Uàé œ´ÙûÖ¨ÁVÝÝüŒ-Nt&N¡Ø”S8)×n5®;ã…6]´ƒœ{Ävk†ÐÆášš ªdCضåb,»U¥¹ÆP¤ev™mmØT—0+cű|ÝÉ(ÁT¥Ššv;ÁÚýXû±èuBŸ„Áwg¯&Ý3N° ú|Å!µ‰W~xÀê«ï«]ª„Þßá¡óÖ¡9!µH*& -DG†¬Î évttðƒ”yëÛƒþmŒhÅl1íÝwÃÆ k†\~''ñû”'­FßAVÃÜ­ZÄ"_…Cõ œüKÐJœ.dQ¬ÄsÀ|Ÿ:D@sW›„W¹/[ QfÍcµýB?ûÆvwÕó“n€°ñPå©¥AhoyŸ7Yê§ifªõ¥]‘@]äw¥-eGš ˜xwOW„Zzuån“Û“»§)Æ*º„ßëQh!~´—tZ¶ï7U]ç R2­È8 ¡)äÚx«m¼Õ6ÞÂsW»7yi¿qÑ®[ªÍ×Cfûí‡<‡‚z¾}÷QA@Àš>^kYÄö”7cRìK¨ËBZèp {é—ø„€oa¾ÏjLÀõ‘ÆQúì&ø%ì¥ã7vâ—,»=ϪÛéhí2Y#|kËÚ•C&ðã€.¸:âzMW?£¶¶~`áý¬íÈüÓ½ÎѶˆ³‡zSc§>$V>ïG>ûå“g+0/ýȸûÐZ›»y9ž—·ù»Ýr/Gå÷5òñÖÿÛWëendstream +xÚÝÉrÛ8öî¯Ð!¹ÊDc!¸ôÍ(O¥Œ£éêšt”HÛ¬¡HµHÅI¾~ÞøXìžt×T}„åo_@1ãð/f‰f\¥á,NC¦¹Ð³õæŒÏî`îÍ™°k·(¯úiyöÃkÏR–F2š-oG°Æ“DÌ–ùÇùË¿]¾_.nΩù2i•0ÈØC')|tÒ)‹”T†Nˆ™f +åœÏ—÷!÷b¹|K½Wå®Xwåçqˆj‘ϲ4¡õákÝe_~´ ÇG+Í´ˆBØ€ë p³H¡Éˆ%!P€åÅm¶¯º ë*ÏÉQÂd +»ö£šbJÄÚ.X7›MQw@¡€C•ô WÌØÈâø=–*™zE$Iù¼3T‚Ž½#ýXžk=/7…û•ÊyCý·H=ÓûkÈC#hà¶ÙQ§Ý¯Úâ÷=^ÒüÞ‹d^¬Óæ- >”Ý=õöu^üƹ¬‹Üž·|Û‚ˆ†ŠÏÁ£³ªÍ`OÌ3JÃÍí€ " ¼‚¥Z“þì²úÎʤã0QQÓH «s8ïÓ|J³ÕòÕŽêeK`Ç(Áϲ¶Úøú%u¤âÉp&ÝV"¸ÀÁ @ЄàQ/Ú‘ìAóÎÚ®ØY.+‹ãâKWÔmÙÔ?žJ8£"¼Y\/À>I—‹?]#œ|NO9æH1ΕӟoªûÖs -YÂås•Ã¯aŽ‹N1Ìq>X)RÇNѪ¬õÝH¦,Iât¬fÀh¸râîÜ}ÝZw^Cà7èÿ_¢þ(ž2W·rcØÔ>IëH\êù¾5² ½MƒŒækRɬ+h<£¦-vea7E…–V¶ÍÞtÖ8´ý>ëìæºúJ½¼¼Å%·Föá÷­ÙÑlL‘­ïí}»de·f5µ%(NÖÁQà,}º8¬ƒ^7ŸC*p•‘p,Xãa*Šæ«ÛØÒ GfØY["VØ¿+j¼“]k´‡Û¢k©‡Ôé:á$ þ¾/©39'“¼Ý6»ÎBܯ¨óƒ Ç›?»– hà™`ŸUq—u`Yz#×®wåê„‘±5B/Q™ª¢µ;¯®ƒËW¯nØåÍ{$楃ç°,Q©Ï[±}wsõæ +¢œl"grH6‚{ɦ¾`ÂA´¸OÒ æúµ7¿,n^°Å¯—?¿»x(!cê¾ æåõåÏvòã~ ;ÆÈùäâç¬"ÿ ¿‰'¨AÎ pHRâRâæ$ORGœ4¢ ­{&÷ä3Êç%”ó# ãç¢`W9oT UÇá,”Š‰D$Ï «UªXÌãGaõ·Ë]„›ø"‰´>~ÚÇ–íºSPAT ’|U¤üA»‚)¥4xª%BÉQp¨qH,"[º¼7Ú%dU±ƒVÛ¦6˜¼ t u "Ý´h€B0z]¶ë‚¶k¶v׎Úaü¦¶ ¢š_9P÷öŒævmç<ãÏ”Z´óh÷Àë¦xP±.k)OɃB+0êÕÑü²ªh€Û”.i!ZbVçnÚÞì[ så …·M[b¸w ˜ÂQEÀã ¿O,P!ÊMàÀŒeø`ö[ŽÊš +!ØÄÓ²¦â–Ådaý!¦OÒÐg9÷Öö¬¤ñæ¡Æ°Çêlão­:ŒqpúÐw N^Ú•]4DR¹×4]ÖÍh`|YßU…'|Ñ@Ú$q1ê ÒLGÚ-À\.oª*Û9¸wµMì"H‘¾nVMÕÒæmÆÑG}¾õ˜ô!ä*wa´Ÿæ"b¡€.­i˼ ðC^9n«lM!FŠaœ‰O¤H—‰˜J·™ÔÝ™_àK÷ší0ísY¿+:êdÔ¼°›kj{h;ÛîúÁޯ͞Fë‚‚,eƒ,Ì^gÛbØìÏ(Ç„‡0¨†Üe{d0”©¹#4«lýïb©{Ú +¹Ùh+$¨Â´·ö¥,»k B@‘‚Ý10HCcÑçLµ,\ò\̇{¦ñ **@h;ºF¾7Ê‚ 0çÁ¹ÌÃ^C¼ ',·^’§àF¢*n;‚¸ÚJ’ÀƒJHIóÌUeOú®ü`R™LiÌ1‚-CyDS”i¡Ã“La”d­Ï ª)Œ &z{LÆÝ‚ñ/ ÷>^ ‹>}ò@Náì¨/%Ü=C;ç¯MTD)¾d›mU\x®i&”ÖOa>«@ò u‘ûL@Ê”:Á„TZ–Ë$ªQãPŸ(Eõ¹üï°Bü‚ûµ2iÕËÆQ‹Ž,Ž–6Ñ Xa%°¦ŸŒät:)¼ºé¨“­Ú¦ÚwF}‡„*œ(¹“À(ÙWÕ]­ÇƒS §ËøÑéð³FÍ%~Æñàƒl°ØØêŠ+c,ï ·UVRcíu›u媬ÊÎD¡}ÆÀÉ"ÛU¥ ÆRÖÉ|\Ä1KÒ´÷m>ç&¤Ac¬ð„¶+11Dø.¸«Ëoæhcô°-ë¼tÞÜOW1×€ƒñ¾hƒlíÝD+Öú¼˜–óz‘;ž:Ž3²ïLó†Üñ/¨Rˆ$d2J³ö:ÀeÛÇ9² a²~ŠsB³T…ö -!âNŽ=’C“M}daƒ—¼ÙdN(ˆ3‰ØÕ#…'†7ë¢mµåò´yW¦‡6÷% .ŒÐû>’ \¾ˆú_¼a”˜Ä@oHÝY”’4¸O³>ÑR?X€à4Hcœ |Vž/´"Í”¶²^ø­#Déñ¯Gäñ¯GrûÚMŸ°L¸mecøX¦pŸÅ<Ò8 +¤P>²]7Íîû(¨…X''•·»¾Ñ«“­ ¸D“ûì0Bv´;*%|_¾ñÙ“šøÜïì†o CS¡Q~õ|t·B‚&â@îÝyžËÿßÓendstream endobj -1463 0 obj << +1461 0 obj << /Type /Page -/Contents 1464 0 R -/Resources 1462 0 R +/Contents 1462 0 R +/Resources 1460 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1453 0 R +/Parent 1452 0 R +>> endobj +1463 0 obj << +/D [1461 0 R /XYZ 85.0394 794.5015 null] +>> endobj +514 0 obj << +/D [1461 0 R /XYZ 85.0394 769.5949 null] +>> endobj +1464 0 obj << +/D [1461 0 R /XYZ 85.0394 751.488 null] +>> endobj +518 0 obj << +/D [1461 0 R /XYZ 85.0394 670.5492 null] >> endobj 1465 0 obj << -/D [1463 0 R /XYZ 85.0394 794.5015 null] +/D [1461 0 R /XYZ 85.0394 643.3882 null] >> endobj 1466 0 obj << -/D [1463 0 R /XYZ 85.0394 687.9013 null] +/D [1461 0 R /XYZ 85.0394 435.5355 null] >> endobj 1467 0 obj << -/D [1463 0 R /XYZ 85.0394 675.9461 null] +/D [1461 0 R /XYZ 85.0394 423.5803 null] >> endobj -522 0 obj << -/D [1463 0 R /XYZ 85.0394 283.5376 null] ->> endobj -1292 0 obj << -/D [1463 0 R /XYZ 85.0394 259.198 null] ->> endobj -1462 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R /F14 685 0 R >> +1460 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F53 962 0 R /F39 863 0 R /F14 685 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1470 0 obj << -/Length 69 +/Length 1570 /Filter /FlateDecode >> stream -xÚ3T0BCS3=3K#KsK=SCS…ä\.…t œ;—!T‰©±ž©‰±1ƒEV.­knj©g`fA‚!ÂVŒendstream +xÚ¥WKsÛ6¾ëWèVi&Bñ" ÔJ•É8­£^šæ‰”…1_%(;ê¯ï R¢,7“éð€Å\ì~ûÀ‚M)|lÅ$Ny:MRI"ʢ鶜Ð鬽Ÿ°°gÑoZœïz»žü¼É4%iÌãézw&Kª›®³/³˜2 tö移Ûù‚Gt¶\}Š ñÙ»_o~[ßÞãB¶¾]Ýý‚œ‡wŸî–«÷ÜßÌ9[¯>Ý!ûþvy{{÷îvþuýar»T>7‹Qáôý{òå+f`݇ %"UÑô&”°4åÓr"#A")DÏ)&Ÿ'¿ÏVý¯Wab”pó+8qq §(%±€%‡ÓÉd…CV穪¦©Û0éö9uÓ™ºÒÎÖëHè* Ø}¼ùüÉ¿(åy‘Yâð­Ø”1’FwjÑéBD„1š ŽKÀK”ÒÙM–™óC–¦‡/ë¶Ô òέq\’T2éÅ­ªùBP+ˆÂYW‡ÑãÛÞº35ËÂRþ­;¸ƒÝdç{“¨ÇNÃψ½©7¦0Ýq|¢?"×áºÅ1;”Íxß?uÄ8ðŠÜ›êŒCä0È3‡G³Îl‘DM­ hÍÖ ‹‡H¤g¶„Jꥴúù +Žœ–0ö X<ÂX·‡­©ºâˆ,ý¤M¡7ÎK~vê §>óçIÙ ëêB¼Æac*ÝÏ÷{$ ä,="mñ +58XÐÌT1g¹ýSpSuy;W¦;â½kçjvØv”Ö Î¶ÎZÆØì͸°9"g¥n‰À3%êT? + ‰TÔ:;qM™“Á× IWÞ²¥‹žr‡‹šÖ”ž²™ÍÛ'Њ”‹Q:lÂ(rFÒ.lÜØ]ŽD)™úïè D‰4¾ˆ/Üâ˜kæÌ¡•gá´ÇMÐâ!¯òVË;ħDƒ‚þC^5ãjWí£Ì𾀈L„šs¦}Jà赯t™g‹m]6P^ü!/í…Câ˜Ëðì-¡^Ä=Ã¥Wδù¶vÅäØO½o<]‡qwñKv%Ì'N[û¦C–Õm?t5 m¶º€È +y ¥jœgØŠX^5;¤;ðÊÞçL†´ºçÙ&ß_±ÃßK‹W°„KËÝ9I€¦Ô’ +´8å뜊NUÿÞ$ $ß÷yuå¤ äÈkWD ðKúèu…5Ø…uˆÞÅpï(¸V¿¼×AåEBï:ィ¯É>K[]Ù]ϯÃèõÆŸš¦89 ©Úo94Pfr{‘áxó­ÀCœbLPÙŸFå)wö¹{ÚÔWGGYt•ç™E"SÈÑuæ]»ÕqdL`…cZ&塧|¾ÒÈÁòä2ºÅ”Ž ¥É Î)_ƒ>AÄq|{!ίÄ4IýXn¦Š‰—¹ tSøêž ÛÜZÄ +¦c g÷õ¡È~pvE1-˜‡bx ‘B¯øK@ëÍv?ƒÉ öŠ(QãâÔ q² ñä°íh8õìŠÜÑVÇ=ž¶]KLmå?ˆ$ÑÉÑÚT¶ ®Qô࣠ê¦èÀò‡½ž½r·Äœ¨T°ï5PúÄeã26·'鞨òî¹nq²9v]c'ç›"˜z+<ñT›,ÈÀno»7]>Üô‹,oò*ƒìÇ=ØøÝ…y¨h¿‚æž 9ŽæÒÿÄ%ŸÙÇn¯Çô£KI)|_äæåÁ P®ľÉÍúõ¦¶Öl0Ȥ¼Ó·Æ÷Ò߸ýu+Ãu+Ãu #€VLeM–÷:樒…ðêCÝ +—ëE»iPÛKȬ8Ž±±ŽÕê8ÅþØ Œ28žFVhiÑ4Çõ=¬ûñjÀ@m!cߘ˜ÊB} ‡”ú1érÂÛ17zûxh‚=»“>ž1ä9<À¼ ܪ±!xO—H^ëB]þ¸`ºHêë>Ôøké?~ø¥¡Ð çYÓë‹yíq +¯-÷¢¼ò”¤Ã»ì?\Ow™À«øõ7)O‘ +„¥zŠ¿Ð¼á¾Tý_õ 9·endstream endobj 1469 0 obj << /Type /Page /Contents 1470 0 R /Resources 1468 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1453 0 R +/Parent 1452 0 R >> endobj 1471 0 obj << /D [1469 0 R /XYZ 56.6929 794.5015 null] >> endobj +522 0 obj << +/D [1469 0 R /XYZ 56.6929 741.6375 null] +>> endobj +1302 0 obj << +/D [1469 0 R /XYZ 56.6929 717.2979 null] +>> endobj 1468 0 obj << -/ProcSet [ /PDF ] +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 1474 0 obj << /Length 1368 @@ -6419,7 +6415,7 @@ endobj /Contents 1474 0 R /Resources 1472 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1453 0 R +/Parent 1452 0 R >> endobj 1475 0 obj << /D [1473 0 R /XYZ 85.0394 794.5015 null] @@ -6463,7 +6459,7 @@ endobj /Contents 1480 0 R /Resources 1478 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1453 0 R +/Parent 1452 0 R /Annots [ 1485 0 R ] >> endobj 1485 0 obj << @@ -6500,7 +6496,7 @@ endobj /D [1479 0 R /XYZ 56.6929 194.8993 null] >> endobj 1478 0 obj << -/Font << /F37 747 0 R /F67 1484 0 R /F11 1299 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F53 962 0 R /F48 885 0 R /F62 995 0 R /F63 998 0 R >> +/Font << /F37 747 0 R /F67 1484 0 R /F11 1298 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F53 962 0 R /F48 885 0 R /F62 995 0 R /F63 998 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -6613,7 +6609,7 @@ endobj /D [1499 0 R /XYZ 85.0394 224.698 null] >> endobj 1498 0 obj << -/Font << /F21 658 0 R /F23 682 0 R /F11 1299 0 R /F39 863 0 R >> +/Font << /F21 658 0 R /F23 682 0 R /F11 1298 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1511 0 obj << @@ -6754,7 +6750,7 @@ endobj /D [1521 0 R /XYZ 56.6929 53.7852 null] >> endobj 1520 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F47 879 0 R /F53 962 0 R /F11 1299 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F47 879 0 R /F53 962 0 R /F11 1298 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1532 0 obj << @@ -7525,7 +7521,7 @@ endobj /D [1744 0 R /XYZ 56.6929 504.0748 null] >> endobj 1743 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F48 885 0 R /F53 962 0 R /F11 1299 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F48 885 0 R /F53 962 0 R /F11 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1751 0 obj << @@ -7690,22 +7686,29 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1778 0 obj << -/Length 4061 +/Length 4062 /Filter /FlateDecode >> stream -xÚÍ[[wã¶~÷¯ð[åsV\\ì9}pö’ºMœíÚIÛ“ô’h‹'©);ίï fŠµÚm^ºû@hƒÁ\¾ÀòRÀyéL"tž^Ú¼»}{󯫩2bòMr55BL¾¿¾ýñú;¢}¸ÊÕäúÛwwø3SØIa·LLþúÃÝýÕîÿvñî>r³Ï±YùtñóÄåÿÛ…HtîÌå3ü‰Ìsu¹¾HNLªu ¬.î.þÜ{ë?“€Ñ.1NÙ=&“'™VÚ‹ -·Oå×ñú½Úï­óDJ«` -ìVµWS­²IQãÓNšMW5u±bêöJºÉãn]ÖQž—Õ|I]çeÕ-a&OƒëbÍ­†_Ý|à1 ?jÙò÷ÍÃÉoyüºèx9r°X½q9¯gÙ´ÝÈ¢§©†³HUÊ$7F‘–Ínµ ø´+·/Ô¬ê¶+ ¦#{øôìa#0å_n÷i-ýXUðù" EÜè|¥³Äê<ìÁë²›¿Þ–m³zJæMý0Â?,2K¥æìq9ÕZ%Ú s9Uа–tÿø<žR®g6HiZŒÌ!Ó$Mã.¿#ŠÕ -’—ê5ƒWÅ+-?íª§båµÃ˨ â躪~ì7ÂPÊ*â’¦Og9Úg ¨Y¾Eû+Nt¬N%RKõyµP2qƆ ÷ëâWÞêâH5¢6¼l¸Ïõí¿¯¤”qS`Ì,ÍÝpSþ¹,ÑÀ¤>!4ƒT‘é›1a€ž[™‡ô†Ï][.^ˆ$-”–gD¡’Ô¥¡ÓsµZÑ EוëMÇÌ7øT“EÕnVÅK¿"߸ûášdßóÆ?Ì݃wÐø½©YfÈ€L@Å-sàÀ›Ö½×ƒŸ¡Y3«g–1X½€1aíÁêi3‚}j•NŠ]·l¶UWtÕSI¤à~LoÕH&þ¡á‘oáJ0hhí­ÎÓppúšüZ?^:ܧ™,Ê_„Pu`höfánï¨ß¡PqbèΈ3¯¸Ô›~<4»`.ÁaEoFkàÁ¾Èä6hÉt>®§*ÍÕTKïU·Wn²›w¸tMîßÁ!¥ Â[¿hh å]ÉÉ ýò…ç|U´í˜ -I‘XÜnš|¯ÛP‡òĹè q‚åVÌÕ¼`†g%=Ñ®† ¯šæ×݆h-ÛªY0ƒ[Ò;eMâ¤PÃíy³,š¶.y‹ˆ;ßäxØì|c^îSã†'¨Û‚ _/ʇb·:,øæ›[z¢#¿©»r 3£7?ØlÏÙOÞƒ•ÛYÓúÑìºÍ®£6h'e]n m5õØ×H€ÆXyÖïæÊEgã#yÂ9ê$ƒp”n1)ŒÌ‚ÒmǦÔ&;n`ynz  &$´Õ¼ÀósÃ"ópÏ=´{a’ƒ„/2 ûúCb”IídY 3R©ô²Ú†|ÝSµð2fìTÌ}.¢·Åwóf½Ÿ6«VU÷ÂñiªE>¹ W>UÍ®¥QÐ5U`l°†WDßmRV™>³©Œ'ŠæmŸ«n¾¤%ÀrjŽš™Kɘ¡@ål÷ø؉m1/Û³–[Е9¦(ëb¶ -Xí©7ÁÀû%¥Bi‡ò;ïê`Óu³(©å5žm¹*çd*Ê›Šž€B8¨Çl¯ÆÙV2B!¿£Ásy6À¶cX(웧gm2SGoÊ-¨×šÆ-èá7­c[ÔíƒÁ*èaèpì–%°ٙȮ“\Š´÷Ê~mW98BžŒB:(ˆË²lÒ)œY2ÐÚl«šA(zfïÌ {ÞÞ¡–ƒÿpÿ‘(*±±Ÿ¢ áÐ ëõëkøGnÕoè ö7«|PÇ_ óË1K²¨Œ*;ƒÊ•1a[<Ä9É‘GmdOÎ%æ•{š±n{Ñ 'ûò°Ùްª1Faÿ´8ë2w“vSÎ+9h¼ 3NÁWì„Àó”D ÈÚÒŒ÷ØÿæÃSF”½)¹SÈá°ã. ãw7²äæöž~,šuQÕÔµàÏ{øÅðRn¡íª8ëøøþt`LŸ‹Ä!ü†db -rrý‘ê_!y%‘G³œÞŽ#.mÍäJ5æajÒ'TïÖ3ŸRÑã) -š¾›Ç¶@£äi¨9ãABV{àM’ju¿ë؇ 5Ž×ñT ýžñÔ ·ïhËô®˜A¢¼ë<ðÎeˆT^Þ†°7 wˆÁ;Ü øÌo2Ck‡c‡]K¾Ã÷)©Q“ °ÙBÆPRYÄ7šæ›¤V™ÿ5ÍE>Ð{W˜RÒ£z )ëfœ©)+²Ñ‰46ÔdæX9T.à€Öƒ˜OOnaçø¥÷[¾õP>“»w¬-ØêAˆ“GãÀGV†/‰¼â, )u? ù]?woÊ‘§‚g[ÒŒ‘fæ£)B²w ‘­Wdë9aŽaM'x ß®ØáòNVvÀœöVv0NÕ± PhÂW˜lé'Y±šüø+liˆ ݶ*["°)Ÿ^Ác…Í ü¤„dv¼–EýHö¦X<Ž^Tˆ_ö…œ'<”9B/Ç.DÛDªˆÀÙU–0UÓ‡ª^TsP|^ì²yf!æºõÉ?韨ŒåzÒUëQ´ðÖ9§Ï–K”ÓÙ \‚ƒ’ì7eð*‘C §eƒn·dí&=–ÜÈóüØeªÇünߧŽ/|q*2Á -€„àí$uó0"ü©é[yà1No‚Ã=•{ud´Šº|,z ¦ô;-¥yu`z‘ù½ÊÚy °pm°2Ø ó3°™Û¦ž²åî »yâøõiw…é.ˆ-YpקŠævϳÄZ+wÛÚ Ýs“»P'¥ *f§á`œ+pOLï‚øø–¿ê&ÊÞ"CN¥ i‘ivÛ*ÆS%$¡„˜Ì0 #É{=öIȨ¾Ð¤€‘Ä@¾uçë­:‹É—OW7çiHb`ÒX“‡ÉÖeY)˜9fJp] I±"/"0.«'ŠßÇË Œ.3 ë†ÊÎeOaÉ"±Ñ×?á‡Ç'ð ›ÕÓh¾ËT©N¿$ßéÿ4uò´‰Ñ#Ò1ÑO£¯”âŽ9ºÌ‚£KÓóua2{%rt]­«9ËÄ+%4f%`Æʇø壒𹣗'A…Ý;˜Â: ¤Ü¨¨/ÚõƒŒÚõˆ!w”¬~x¡˜”¿m0R‡o=ÓðìU£  “m‡½º¥¯ÎÐØíW‘¼kw”½ŒAê™ë¶Xd ™yHjÜ"&ß L„‹.ðx7Ó<Yv~3µ >{çs(• l•âüáÃk–ƒ×Q}*C´EÄDåþ”’ºtDI©rá'ó¹<}â5Âßæ€TÛKß:â™ÔÉdƒféШ½ÕÓZ¤êš”ñ@Ϧd…y˜*Ç ‚PŠ]°°À›ÎŸ‡Rvàc±§<2¸/|OJñiWE%‚×U÷ŠOvþtU -œñj*Gµþ¾ÃEÞë½ÿØ×…yʶk¿®¾¯mLЦéxE"3ò¨¶g gúö¨·‰ÔÙùS(‘Åé½µX¬H¢¬• Ù4n><¥D -± ˆ^&›fë3«N-ÑŸ‡ÅrØ4û?^c°ÂkÙˆbÇÒhXù×lµI]ðìÓn\ NeG°ŽÓGçølD9òŸH!s 6E^ç"«H{Ù”cØ_Ú,6VAýëˆðn9¼ŒÇm8èŒç!poëêwâðˆ‰?£7·“7·×ß¿{Ed¬ ’'LpQ>´¹»®}G5¹»ù–[GÇ¿þ§œ òÈýПç¿HóI;<#+*œ$;®I¥¯—ç‚j@îáλziӀܖŸÅïSKSÌ_±ác†Í¶‚”Š…‘ë$ÍT>®}yÆ[:MSëã”ÊÍ~Ž’y—ŽD,îµD¢4×ôê žùŠ!Å.ŒðÀ3ã£Ôby2ýìñyšäBîÀ˜Ï¾H<<0¨yæè½}Nï2Ò3èJùAXI)S (Š9RªâŒ,P†,ÂWuŽMX!RsGBÌëÁ¡O!eúðX4_Ó(ÔÚ_ê¹Nßip‡KMZ`õzxkQ®æqdS\…=ønTA!'R:7gT[3¸p@~%FÛt(ÇèåCT¸·nì¤R -_Š‡·=öF`“³TaÆç ˜-µ¼Z¬ ¬¹ÿ’»·]±å3ü*‚BÅvÌdñÓ‚¿›…Ïzƒæx‘, -Œ¯¬ñ¸«¨ã%›bŽïW«æ9T²f/‡•¬ž=‚“Uøp?ÑF¬P&\Åžr:ø‹T:5™u#çÄ{5(èä‹'Üjèù\x3×|S=¸&âü$ñhª&{BSwäuVt§1Õ%ÊîqÉÓŒ[¾Q‰Íb3ýç‰ן Œâõ¨Üƃ˜çSÃdÿá5 üûx|561Y´‚/`-:%Xî©£¼LBü‹ùën»Ñi­ƒÓ:¬¾9eo‘Ø{´€¯Tt7-X]í-Θ|¼¬d4 ­xÆõE£ÒM =Y‘còê@—24à¤}§ G@ê×åkÐOÞÑi‡iK~M×7üá ²ÏÜó-­O:M¢Sí>§$ebðêÀ²{ä”q”·§ok¹Df™=_~T+q|‚ÁË´šªSS¤·Á2]ÀkIÕ°£#^øÝ›*_HeÎFØ衽á}£ 7 6`%üMàÒ2ZËüÆxŸŸ‹ ØÁu™+¶ZÈ -H?|?á—|?‚ïI”jÃe¿ßªõnÍ7ø€hÿ¦Tpè[azpÉu×߬øšÓ<•ÆÛQÓvܪ=8“™¬wgÞØÙÍÖf”DY¬H¤F$í8ýëF7@R¢¢™ÝË›9j‚@£Ñ¿nÀòZÀymM$t_§Y!Íõrw%®ŸàÝwW’ûÌ}§ù°×7Wo?èô:‹²D%×ëÁX6ÖÊëÇÕ¿f·?¾¿ÿöî盹2böMt37BÌ~¸½ÿéö{¢}¼ÉÔìö»÷ø3QØIa·DÌþòãÃãÍ¿ÿzõþ1p3äX +¬|¾ú׿Åõ +ÿ땈tfÍõ ü‘Ì2u½»ŠŽL¬µ§l¯®þ7 8xë>’€Ñ62V¥"0zJ&‹­´ASž‹®ãí5ì­³HÊTÁØ­lnæZ%³¼Âg:«÷mYWù–©‡igOÝ®¨Z¢¼lÊ冺úO‹²ÝÀLŽ-"VùŽ[5¿ºûÈc®VnÔ¢áïëõÙoyü:oy9r´X½±¯gS7íĢ籆Kª”QfŒ"!mên»"ø܇Wj–UÓ9Ó‘=|:ö°á™r/CZC?¶%|¾òC7:p£t¥:ó{ð¶h—oESoŸ£e]­'ø‡E&±ÔüA„=®çZ«H[a®ç +iJºÿ|žN)aדÔKižOÌ!ã(Žå.¿#òí’—ê4ƒWÅ+->wås¾uÚádT{q´mY=õ‚›`(eaIóç‹ È+–oÞüŠê…U‘ÔRý±Z(Y“ú <÷»üWÞêüD5‚6¼î¹Ïíý?o¤”aS`Ì$ÎìxSþ±)ÐÀ¤>#8Tž‘ù»)a€ž§2>é ž]S¬ÞLˆ$-”–D¡¢ØƾÓK¹ÝÒ yÛ»}ËÌ×øT³UÙì·ùk¿"×xøñ–dßËÚ=WÌÝÚ9hü^W,3f@F â)sàœÀ›)¬%x¯µ›¡Þ1«žg–1X½€1aíÞêi3¼}jÏò®ÝÔ‡²ÍÛò¹ ’w?¦·j$ÿÐpŽÈµp%4´vVçh88}M~­/GîÓÌVÅ/B¨Ê3´xõ³ðG÷ÔïX¨¸@1vgÄ™S\êM?ÖuçÍeíVðf´ì‹üH–z-™/§õTÅÙ±šjé¼êáÆκe‹K×ä.ð Rr"|ë ´¼9{¥_N¢ð\nó¦™R!)¢·›&tëPY|!n Q°Ü’¹ZæÌð¢ 'ÚÕ˜ám]ÿÚí‰ö—¢)ë3x ½S©‰¬j¼=ï6yÝToqçšëÎ5–Å6}x'-ÓEb~}2Ñy‡‚œÜ~¢ºÃWH^‰HdÁ,ç÷ÓˆK§ærÅó05±‡“@ªºÝÂ¥Ô@tx +h«ºïæ°-Ð(9Æj.xŸÕxÅZ]Äï:ô!Hãµ]‘9®çø9Æ5ï-\»d‡Ë 8[Ù°B¤ÿmesáXú°…&|ƒÙÉ~’«ÙOßb…-ö±¡=”EC¶3åÒ+xlÑ¢9ƒŸ”ð@ƒÌ‚×&¯žÈÞ뒧ыÊñ˾ó錇2'èåÔ…è4’* pvU“%L•„ô¡¬V埻©_Xˆ™„n}òOz±Ë+c™žµån-¼µÖê‹åeu2*—à $û}á½JNd_AÂiÙã Û-Øp«šIO7ò¼x¿vkËñ¿ú4ïÏñ…+N&Xà½ä¡îÖŸ§ ýTyŒó›`qOå ŽŒVQOyo#Þ”~§¥ÔoŽL/0?¨¬™ ÷8Ðú+½Í0?#›¹¯«9[nÙÍ3ǯÏÝ ¦»l Ú[€< +´dÅ]ŸK6š3Ø=K¢4µ¡rw8£ý§ÐÝX;{ðuRš dvúƹ÷ÄôÖ{€Oßá@ÝD,ÒçT +’''±)CweP"x]¶oø„ s§«R8äŒO_S9©õ÷%.òÞþüáS\çç)š¶ùºú¾NC‚6§+‰‘'µ½”p¦+`OzI\>…I˜ÞYKŠI”µJ}6 ¤»Ï1‘|l¢“ɾ>¸L&Uç–èÎÃB9lžü?^câ±ÂkÉ„b‡Ò¨_ù×lµ‰­÷ìóvZ V%'°–ÓGkùlDYòŸH!s 6E^k«H{ÝSØ_¦I$ÒPu¬Â¸e¥÷2·á  ž‡À½ ¾¾~ªÊ߉Ã&þ„Þ<½»¿ýáý"cM< d"€‹²±Í=üxë:ªÙÃÝwÜúÛ{:þu?å ß@î‡þD>ýEšKÚáXQþ$ÙrM(}½lò8Tr{ÙÕË4ö˜áÈm¹YÜ>54uÎüå{>fØJH©X™ŽâDeÓÚ‡[ï¶tCVþ “9Šp.‰XÜk¨Ii<¼#‰f3¬£r“êÐøágêsTìÄnY6[t<¬«ˆØìÜq…Š#-{swFÏOÀùâ +À€†Š'öž/ad‘4}ÌQC ©>DL|F-ŠРórm&Ö§ —E°_¹ž4æb¹Mõ‰7p&tÊš`!ÂÖ|ڶ˙]ò«®ÓèžpéÙ^Ö[c«b Â}ǾJf)ÂŽ2íÍä-ž(ÍÒËà%¸Ô×Cl’d¡áJúØ8=C!Ìß­ém~2#¶jîsM-'=x. :ìá˪@lÚüÀˆS¸‹eÎüõ ôõÄÙƒ +LÇ_“F&ÉÌ—³,÷ÜQ_"!>ƒÿºÛp´CZÓ]‰êœYšpj½§=Ž +¹j¶W9»3&›.; h,œ}ѨäÇôl˾ÉÕ*j\vþÓÛ&úu¹õ3ù:†i +~M×;Üþ ²ÏÜó.­ÏBM¤cmÿHIæq,#ƒ×TG> 9 £€ôüm.É$¹ì+•:r–8x±F«YS›@ê-Ó&ÜTMa‚ë“ÓïÞTùJA,36zèÄFý í9½áh°+áo<—)£¹ÄmŒó›™ˆª]§ñ¹ôVYé‡ âg|ã†ïOð=Šâð·r×íø† oRy7Œºõ䧗\µýÍ‹¯9íSq¸=5o¦“h£Ô1&GÀÐÛídA[GÙ^ŒÓ±Æd:öÃbùkbê$²q:ªü¨†ûØðiõèäÝÅo-‘Ü¿á ¿Çðyõ#÷/{}q +?œr0òPÑœœ>¼ÿtcÌìï0Á¿½û~tåÊ©W¥ùjóèw3º‹ÅçÔCýªêÃÎѦíã ]ÛpQ8Ç\•áôÖÝÚÝ]¼Ïr&8?ßÍ=ZÜ®ØÕ>‘ìšü)knß"ÑùÓäµ;H–Œ +.é€xkêR6‘Mb}31R ŠN’ˆ•‰aPjAC¼£ã,Ò&õ#¹‹Cç.ÚáÑÛÔÇÚzꆾ¸öŠö_ÿ=@ÿçq +¾ÎªpÕ¼vɌΤg +—B³þrà”÷ÿúF¹öendstream endobj 1777 0 obj << /Type /Page @@ -8254,18 +8257,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1883 0 obj << -/Length 2194 +/Length 2199 /Filter /FlateDecode >> stream -xÚ­ÛrÛ6öÝ_¡·¥ÚÆDß\Ç麓8n¤tv¦é-R§é%){õ÷{p£H -²§ÓLf"ðàààÜ/0™aøGfB"©¨šÅŠ#‰˜­wxö{¿\‡³ðH‹!ÖÏ«‹Ë,ž)¤$•³Õf@+A8IÈl•ýýŒšÿ¹úõòƒ`\J¤‰úéËÝûktýùîƒÅQ¥ ²‚:Ô«ûû›»÷·ÿ™/¨À@}¾GŸ®î¾^}´°û¹¢ÑÕ/7KMìâfÕË1”•`¦…øïÅâY"ÿzS‰˜½ÀFD):Û]pÁàŒyHy±¼ø­'8Ø5GCºã"A‚r Zdˆb‡5LPL Åœ ªDÒk˜’†=–ÖÈâÉéW 0 A‰[¥=ÕM7Õ†¢ˆ«DΆ7žðå‘| ­©bÄc5ák™W™µÈºÞíÒ*kíWWÛßÕõ½]xî&.B¨B,fr"Ãäj*ÇÄáUÛå©»µÞ8¹½{oWê_Ž…,ߤû²óÜU]3'IT—°M«*/̽sÇÁ‚'>å ÿ!Œ9}ú¬W¬ë±ŒuŸ^)cKÂ^¿Ò#®j/¦(æTŽ¯¼©Ò‡2·2?çÍCݺ²~|,ªÇ³J †{U C¬óJ豌ag<æÎôå‡)[‰D"Æñˆ­·ž"•$I8Üžà©#Æ…„Pr,B‘MÙ#˜ AxüºÚz¬€ÞFÑ‚!”$ã[¿ÓIu[·pzšÄšà K,Îë’ÄŒò;êÒ èr$dÚ )sª¨MJú’²±!½›ˆÁþ cú¸oÒ®¨+ Ô2GÁןW c1J ˜|7Åx‚o(Ì…bE’¿­˜Ý¾í¬ØÞ%ªúÅiâá eT¥»<³ —¢Û•Ôg 3'J[‘ %„M-œÑyBDiùX7plç>mQ›¯UòÎ}w ¤».4‚GµÁÈòÆ‚7µ[L²´ˆvyÛ¦îÆç´,2oQø¶5nد×yžA—À¨ˆn7ZÕS3%‘”ž75 ª@µR&(zþ©­{Š‹!ÉScC F4!äxóYc/8 š@æŒcÛ°*ƒF©}Ê×…ö÷<{çN“qPÚ—¬š*[‡J.C\2/EYZÚšl£K”uý—^0áœD]§vS+×,Öeº×)J¯µè_«¹Í›ç¼q|wi—ïòÊQ×µ}€‹G¸¹ñ*Mˆ[9¡&ÐMH6öYã]ŠG…ö e<Ã|{r6¸Ú ¶üd]¹í7¬«*'©mëV7 KÍie6ÁÂu! £ }ÐkCoÖOÌž´{·žF0<–H3Š4’ŒîêNŸÅÊs„G@§‰vm"캴0ÂN»M­¼™Ý=†²CxÙë­Ýs˜®-à˜¨)ÛjĽÖJW¬A˜l,ŒõÚÓÖ,ØIV.óx7hu¼ݺ¯ÝÖûÒu…p£eoS÷ljµÃݦÏô˜Wy“º‹-nßZ6ö÷²œÃN!Ñ´-r ÂëâFÀé˜F˜æ ¸ÔÒ<•¹¡àÖ¤EÓ` ,@Ûý“îE6aóá_J´q‚¼¿ºu?¼ó—çæ\Û eWÙ®¨ -ÈÙiç%ù’oœ6«µ;ö)­ö 4«&঄Œê•×ÌÁ;ª€ #Lbú†Xe?è"Uï ­ÿ=îu(L<ÅŠ ‹ÂïlóòÉ®\AA=G}XAV:ãÊ3´YÒ -òñöÓíÊ ›ú¿Õíç»e@pi*`œ¿-ŽÏ©Y·¿<äÞ™­8Q˲wëP„ø¨ß>CIÈ@:h¾½ÿ„Y%JO÷Þö]QÝaN‰¼÷CªUºZ9÷·‚¯|àÁõTÙ4 -¿ë}ã<¨+d’0ü¾¤Ð9€M¹õs‘">›ÁÎ(=Q5î4àÛæfX¤î…A ¥ -ÅXÈך<®õƒ”xÂøwhò,ÁÅ¢}Qr¦{AEâäxñkM „ˆ¼om“¥éõušý8hƒgºÊ€£c56â2>æÄÜZÎdz‹ŸÖûaŸr¼k–¹³R3y 4<Š°åÍ=zõqù9 t ¶ˆ¶ù†ðyw,™&S`=[͵|ô$³V,˜ÏPƒÇí$Shš)tÌ”SSB“M¸7f8!±R=Q>#¡ÌëØ×Õ¿?y[S·U—7•O)ËC Ž3Ü54_Šýîx¯ž¥·'HÞ¿î9ý$C,ðnóaiô"¸ð¸ (”++Ǯ觑ª¥PˆÆ Zˆ0¿#Ф`üFi쪎NjþÝgû(XÅ‘ƒªú©…\6M$h6!öQ"xðÑò¨¢æ‰îÕç’!‰Ó áŸKz¬3 -?aïo–×_nïuñ:£ïP|…ôÃ$ƒ½¾Í¸!ˆëÏCÊÖ»¾ÝÔ:CŸ$ƒöùï54Ðço¶Ñ©¯S`»E 臆é+ Þ¶…$Pâ·V.<àœ@Ç耩˜˜"¬ødk‹]Q¦D!5èægÝí}IÔP3'›í´Þÿ³ë®Ø…ÀðŸpéß¾Ž™,d(n±Húd²LDK?Ó´îê!¢ÊÚ´íŒr;–ô¡I×y;Ფ:Ó¾›oóXà´€LÓt<¤z2ÑŠß‹u]ÖðîÍäc†jŸñ£=N`­Ý8ú£lk‡ÖSuç{æÜ-+OpßîM$Ý/¹øê¥çÂ_˜±úVü§~wP#¯]Ÿ¦iýd‘Ë,ì‡Ëà ¹w®ýcºoéÊ¢ÊÏý…C÷ÝŒ…ò -îSÁ?þëÇñÏBÐeqJ‘>’²OÿþvñA‘dO§™ÌDàb±Øï˜M(üc©ˆÒ\Ob-ˆ¤LNV» :y„½_.˜Ã™{¤yëçåÅå‡(žh¢W“å¦G+!4IØd¹þcú3Ñdöçò×Ë2êárFO4ÐG¤/wï¯Éõç»s@•'ÈJîP¯îïoîÞßþg6ç’õÙ\R:ýtu÷õꣅÝÏ4Ÿ^ýr³@b7ËNŽ¾¬ŒF(Ä/þø“NÖ ò¯”D:‘“ø „iÍ'» !#"EyHq±¸ø­#ØÛ5GCº2!’ ZŒ§2k˜‘˜1@Š#\ˤÓ0g! {,ÔÈüÉéWö0#‰[¥=Uu;Ö†æDèDMú7žðå‘|õ­©c"b=âk‘•kk‘UµÛ¥åº±_me—×÷vá¹¹ãšDq¤F2Œ®æŠÊN^6m–º[«ó‘Û»÷v¥ÿåXXg›t_´ž»²­g,™V…lӲ̊#sïÜq°à‰O9ÃÁ„RÁß°nëëz,cÝßÇWª˜ÄŠE¯_é‘Wöµs ®†WÞ”éC‘Y™Ÿ³ú¡jÜGQ=>æåãY%¨„ÂȽª„>Öy%tXF ‡°‹G"Îôe‡1[‰"2¦ñ€­·ž$I8Üçžà©ÆM¤Ôj(B¾³Ç(#’‰øuµuX½ ¢…B hņ·~5¦SrÚnÝÂéikR€.©<¯KC0ªï¨KO0 ËXý#ÐfH™c @mÒÊ—” éÝH|öo”òÇ}¶yUZ BŠŒs\Ït|^1Q“ŠÉwSŒ'ø†bÀ\$Ö,ùÛŠÙí›ÖŠýà]¢¬^œ&ø«¦eºËÖô’·Û£údÎãˆÄ‰F+2¢¥´i£3˜'ä4-«Žíܧ­rÚd+c•¬ußm éÄ®sä@Šie0ÖYmÁ›Ê-FYZNwYÓ¤îÆç´È×Þ¢ðmk Ü°_­²l ]BÄåôvc¡e0u¤%aŠóó¦€Á5¨V©„ÄRÏ?µuGqÞ'yjl¨Á„'Œo>kì¹`AèÑœql–Cå‹ Qjž²UŽþž­ß¹Ól˜4ú’ÕA]®W¡’¡"/yQXÚH¶F碪þÂÎØ´¶ëÔn¢rÍbU¤{LQ¸FÀ_«ˆÜdõsV;¾Û´ÍvYé¨cmïáÒîCf¼ +Iq+'º  }Öx—Ó=CÏ0ßžÂzWÔÆ‚Ÿ¬+7݆uUq’:жj°yˆ¨BNK ´¹® ™màA¯ ܬ6ž˜<¡{7=žæF0:”%ˆ¤¦wU‹g©öÑÄ‘Ði"„]›;„6ÍÍ…°ÓlS+ïÚîCÙ!¼lóÕÖî9L G 8&*GÊö…ˆ¸G­´ù +„Y…±^{Úš;ÉÒeï Æ;£Ó[×á5Ûj_¸®n´ìmªŽM$Q9Ümúì@Y™Õ©»Øâv­em_ Ë9ìMÓ— !Œ(7N)i„ù`N‰ØÙ@(”æ©È 7&-ؘ=aÚ쟰5ڄ͇C |9“ÐÆIöFüRèÖýhðÎ_ž˜sm3€´\­wy™CÎN[/É—lã´Y®Ü±Oi¹¥Y5DnJØШ^yõ ¼£ HQBYÌß«ê†,RÕÞ™ÐúßãCaä)VLXä~g›Ovå + +é8ê +²ªÄ§®«¬ùå!óÎlýÀ‰Z[‡"ÄÏ@ÝöqJBþÒAóíý'Ì*Ó8Ý{ÿÙ·y‘·‡clê½R­ÆjåÜß +¾ô×smÓ(ü®öµó ¶8XIÂðû’:@ë6åVÏùÚñÙ vé‰ëa§ß67Ã"u/ º/µÔ$¦R½Öä Ô :PâY$¾C“g Îûí‹JŸ3ì5‹“ãů5y< ò¾±M*Òëë4û°×O°Ê€£S=4â"{>æÄÌZÎdz‹ŸÆûa—r¼k™³R=‹Å4hta‹›{ôêãâs@è@lmóJ*á?æ&wܘãätÜKz{¦Õ ƒ¤€RÙ°$ÆÏU”R½Ç'É(‹hœEtÌ¢c3C º7t8Y II;]‚ÍËÙ×å¿?y[‹·e›Õ¥O7‹CÝ3ê54 {òýîx/NŽÊÛN0¢˜è^þœ~’>x¾ŠE¿Å4zœ{Ü9.´•ã«ýi£šðD Ž†o <é¿qݤ{Ҥ¾; +–Gq༇²zj Ï“ ƒá QÈ $‘"ø 9Vsó|÷êSJŸÄiöðO)Ö…Ÿ‹¾÷7‹ë/·÷XØÎè;{!}Ç0åP¯o3ŠHæz÷²q×·¢ˆ€Ùû´X1è²"h­ÿ^³3Àñfx¶ÛI" (Æ/„¸9,zsÅ üo­\´Ç9ƒnÒS—U)d-FÃY“ïò"­í +©£U»÷å¡f†6ÛhËÿg×m° ”$Bùw±c&  +_,“.™Ìe$§ ?ï4îê>¢ŠÊ´ôvdèC®²fÄ)dHu¦µ7ßæ!Ái˜´ùprIqjAÅïrÈÕEU?"Ók3™Á‡ÛgÍüXÄÓYc7ŽÃ~MåÐ:ªî|Çœ»eé )p€„½”öPx.ü%ù«kÓêv{õóÚõpHë';¤\þ`a?\üøcàÈå°«íÚ}»Wäevî¯Ø“GQ(¯Ð.üã¿Œÿd$b%É™çgK‡•g +%fLœ¾/Slnx€÷ÿ°×…àendstream endobj 1882 0 obj << /Type /Page @@ -8474,7 +8480,7 @@ endobj stream xÚíte\Ôí¶6Ò ˆtÃÐÝÝÝÝ¡Ä0 00Ì ÝÝÝÝ’‚R"‚´t ÒÈ‹>ïÞûüž³?³?½¿w¾Ìÿ^×Z׺î7¶‡Œ5Ü ¬‡¹rðpr‹ t´P(ÐWç…C­fL9g0ЇÉ]Á¢#°5@ ðòxDDD0rp'/gˆ­+€ù‘ƒ…ý_–ß.+¯ ‘.[€ññà …;9‚a®ÿã@=0àjØ@ `€œ–¶‰Š¦€YIÓ †P€¶›¨C@`˜ ˜`w@ÿ:@p˜5ä÷Õ\8¹d\@€‹y {‚ÀN¿!v€ØÙââòø €¸l0×ǸÂêfý[À£ÝþG“3üÑÃñ{$Ó†»¸º€œ!N®€Ç¬ÚòŠétµºþÎíy„p›GOk8Èí÷•þ`4¨+s¸‚=]粬!.NP ×cîG2'gÈn.˜í¿°œÁ¶@gk(ØÅå‘æ‘ûwuþuOÀ¹=ÐÉ êõ'þÇëŸ ®.`¨ '&ïcNëcn[ “ë÷¨¨Àlàî¿ìÖnNÿÀÜÁÎ -Äü{fXE­á0¨ÀlƒÉ¥ w}L `þŸu™ó?×äÿ@‹ÿ# þ´÷×Ü¿÷è¿,ñÿvŸÿN­è…jÁ‚ÿxcê€ßÌs:B ^ÿÎýïžFà¿4þ;Wàc!d`¶Íàáäæù €¸(B<ÁÖÚWÀ}¬Ô»Ìì …ÀÀýSL7÷ß0};Èö»ôA`˜õßå?6éx.M}U]u¶ÿöªrèA§Ë‚GPè¯íÇ9pÕ÷rþo:# ¸õ?¿ùdeáž^7Ïãú=*áðû7¹ÿñüë¬tu†x^psr?Fr~ÿsÿÎýOÀìo4 +Äü{fXE­á0¨ÀlƒÉ¥ w}L `þŸu™ó?×äÿ@‹ÿ# þ´÷×Ü¿÷è¿,ñÿvŸÿN­è…jÁ‚ÿxcê€ßÌs:B ^ÿÎýïžFà¿4þ;Wàc!d`¶Íàáäæù €¸(B<ÁÖÚWÀ}¬Ô»Ìì …ÀÀýSL7÷ß0};Èö»ôA`˜õßå?6éx.}yM¶ÿöªrèA§Ë‚GPè¯íÇ9pÕ÷rþo:# ¸õ?¿ùdeáž^7Ïãú=*áðû7¹ÿñüë¬tu†x^psr?Fr~ÿsÿÎýOÀìo4 0Üú÷äè¹aÖÃöOÃoäæìüØã?ûÿxýœÿŒ=ì a.ÌÁAb¡ö™9Y® Ä£ò/z{xÂœ*Þè—ÖÁ»2#×Dj,ïêÃ8›ÇEµyÍî;Ýoª²n öA™ºÓÁß‹(üèX>ã.3v±ms™W`gÅúϨ¯"› rn­êèš—ß¡RŽwð9£_²Ò¹Ð_8=óe4%v>oFÀk(Ù?`LÙ½¼`êú4ð±ûåÃ&9[~ƒ˜;26cLà«|r)Sƒj…×Íl(ßÛ b¬Å7ÎßÊçÏVð™h9Žù,¢I‚°RÊ• e®äß·RÆ%=²ìÙ êt›œ(†Ì%³LÇî)®Ž>1Ù¥‘„µ…^Ñ2¼éˆO£Ý %õ‰>•pjÕr{2–ÂwÍ<–g¬™-j—!3cäáakIè,AŒ$ÁLˆÇÆ‹J¯³nöùU»Ïm›Þ‰D3 @@ -8497,7 +8503,7 @@ $O t‡Í=žÝbóÆÃwî6ß"£“˵?”JËOP2RÐ oQo+†â1)©w†¦ÜèådîI½ÈZ¿VÍ­(e÷åû È"QÔüFØs(úF$'‘qL ®/¶!õÔ ¤HvkÖ‰Œh¼È‰¬ê؉á¶o?Ùa:Šÿ±qêcŒ° gã!_QÇ~ÏWê¡1üaœ¯UÝGmã§Yñmn%ìRãr9÷¬ß0qˆ5†/‚E…(êÚ“†,W‚˜$Ù½ï¶åçLxËÎÔ|ú奕£w†Z|ÂV€ãž÷,éOd ÞyŠGÝ ŽÎ¨Ý3lÍ4©¿Î\×T2Zª½Ag—.7Ù#ÏPæï™v¼eŦQLÞ»±Oþ¼Ô\’ ¬ÿĵJÅñ¾(š3Ç].Å*,MÎ>ÛBx(ÃSÃó|D³uû‚Þ¡ï†{:Ò‘Á¨2G9¡Cê{É•<|?ÒK áéá@F)Ø,êw÷ó?È ¸¢Ëa„Çh%Ù±o^Œñ{‹6™Ý @¥-«ä%Å~jÉwXjz1îi´·î¬%uÕ3^¿±g¸`d+ÎK[ŽDe—„]âò†YèÖýÇ?Ï>£³HjË,èkѸÍhÔ8Š” ™v_Å [ªJÖ®²9m=·âú?\‹k>¼à¬‡¤*³Ñ³ž,Y ê<‹ý¹uÓ Z/ZV$S·é#ƒmNOš¨5M@¿§rãÝ0Hõ7¬&7[àçŽAØñêOõƧÈêÚ5±pE6~d»Ž^.x¨T1¬µ¤$£Í7¿ÿ4òÆêüj§‹G1¬èípoóÌ3³QýÐZ:œNÍÆéç,0½‹Š‡Zg‹ðâ£à)‹Q©¯³‹X""œÛÆ0ÏÁ¾äBvFA‚)Y9(ÎYÖý…ì¬S…|¸Ôü¾“qbæÇN.LÔX§…_ï‚¿œ%%½¥åŒìé|°D>W²7}C–Í#—ZR¸­$º`bÛGο…a¿9gÝS%\”Á/œîñhC|?s§ Ø…šg¯ÎÙÈ)ª¬m}ÐvÖËk†Ÿ.bÉ&O üõí+uqfº`Îa‡„°£â,I§ã¯½/‘˜÷ÇÝ›Á¤'P6ߢH‚Ú?÷›½šÙ¹˜Žà9¦ŠmHr7:pMRYŸ#£ 'æW¥¿ðKCß|-¡mWÝ躖nᲶË0–«ÞÐ3äÛÙ=j’¸Ë-,n–³e±€¢üb½iÙ;‘˜Hâ°l<)žL.ßÐYÖÿ°Ú·)wL=(‚Œ£± L|)=å'ÀÆ-Å@²öò¾µ<ÃNrä³6îµEôʃ3±d¶kÓ»¬ÿ‹%ôµøü·(kD~ô(¬_yñ‡Í; ¯åä²fùOî{&*‰äyÒ¯9ÛB±T¨d>è.òY[a-³ZyÏ•px9ÝØÜ>穾„»*|,4°ç Žð=Ï añŽ©{ZwLVqžCÅo, H;ç_7Gg[åGx d½DŽ…*~ÂJSÛ/ *ûÎÔF‹µëújQ‹jw Ý]_-Òq;Œ,1t³õ2ߥÆíËòê{:Ö§Ùo$<×ð¬žôôJ©Àëóüλì„b›F=ÍçåcT”u;ÐuË›÷#³»Z1q“ÒYÖgHŠ^fiyv|‰¢,PkŠA±¢FH£s^…EËRôƇnQWEÛt%Ú·y3™{æÈŒõFbKã<%Æ)â"-L+{墒zS'“#é²ÊòZÃ+•÷U­Á׎#Ç©ÃCcæHŸ,êä;÷=íÏô .óYäg:¯jÔn¹¶Æô×êS:c¤¬UºW¹Þ/Ëf¹ŠšcO¥ÛøŒM¯lD‰Á¦9²ú:­ÈùÈßÛ˜ìÑËr6½õx§ç±2ú]úS¹‘ p7O¼,j1îöÐËÚ{ž$ªS7O–xYŽróæs÷â»ì(è˜Ýš‹ÏD‚@§­Y#žC²L%¯íáž›1A•Ã¸©3¾~M+ÖAîDí>¤¶¯cãµã-Nˆ¥”ûÚÔß ÄÖtzâ"¹tãØ'>(˜“”hSðÕœM]ˆÎÛ…0ìŽ ñâSPÓKD³—dOj nÌó®|KHtÞ‘Ñ+㢟S'÷@6„iõ“¨C,÷ág3B½žpÖáΡÄêφÖÑn‰Ü;ɦc“ _7T,Q1çTiHøBÕWL8­¡¾  ,œ²£.±ß u2†)¶=–Oš ¹ÿêÚ´­Ùê², Aq¨¿râ^T!1í¢ëç2)áN\§‹¬‚)æÄËR…Ëbž÷ž6Cb5ü´çêÞ›Ô;ð¶¹mH“üÅL¸^Ȭü¤Ý¸Ê {>«m@Ë›ðzéN‹›´×»ÔÌÃBÿ]¬—š@)õp[jÊâá…6붡²BSHQøר.öØ«N÷Ž`ðG¿§zŽ^n)?ìû±«892ÉÿxÈÌÄ÷Ù%¼­Ø3ÕÎZJðô]\ÿ^¸Äé„SXA㣅¸r}[(â0Ò@¥elöÉmi¶ö­EWÕ9úQѲ´ˆC¶Û¯µAñ=°g>MF{Q’= †*Ëk¨+™×Øõµk¤i@ïħÕW:x<›ó"Í}<=<²šC½Q¤4Æð÷i©UµSöA-ÒiMÛk×qnñÔÆèO“¦R<)D¾€÷/ÇT#î¡ÍM© Æ$ÖžåÔ3³Ð¿Á¢\ç{Uª÷Þ<UW=ˆ$®&<ƒªZ€0óØÒgÒR*¹ÉÒO¦1‘'£ùŽŠj*5wË-·‰ûùT j4ÝióÍu``òh߯µ“K…ݻʔÑk‡‡A›”ôÈÔDôìtk¯ö2ÅÛö÷ú—¨§$ÌöZ¥ï@Î^ùÝêõ^E~§”Üúí¨u4߉<*ôŽ±§¸KJßùy/žn•C*}…ÃåLgI£J·8jŽ[“Þ³ ”ØT7%JÈOïä,Á!ØžÈ+ÌÁ¯f—ÉȘs‡h`Úq¢O”1£<ƒ3(©dØOfBOŸ º'"p=Q£B¿âäpJ}ÝØü™ŸZ®¤!p{òëÈa}÷qÑ¥³äƒ£DKXôžòxÇ(žÏÑã ©¨“{ÏçÉšj¿dqX·ã·ŸP¦Üv£ä£Ï€³i¬¾AÕ;³@øyŠ*œoLœOœÕøë…ú¾›ºxOÛÝËc -@YšUʳªø;žBiäMÖð.•\rž;ùU´¾Rø'î…ç)眄š˜ …@ƒi/_ A®ÉéÙêr«0áFx<×Er;¾zÇ´UÏšøSÂö²Ù„.¥mô÷Œhâæ¨É2Ø’ç/{I;õŠjÑm÷¬ -*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}U¹ôZø: hÁ‚)8f÷EµÔëÛDäµsüð¢ qTMŠ:ù‘ɸX!±l®ûÔ”Ëû ΄,ñº17ýbŸgûŸ&fܽ×Y'jeAt ]ôÛïwV^þ%ÑåµÛR¼”tμ‡Ël¥¿é˜¦j¹„‚øϸ3èm>YjŸÖCƒÕ¸ÄžÄÈÊjbÆn“ªŒUý©?ô‹ïðu«ÈÃWøìý#ë,M€¾ߥJBQlŽ‰âXè-ebtxÃ]€s<—ÿ¢:XÝQ…¸w¶²-N;N¾?Vl¤‘vG‰…,Å%ë9êçöË'bìη9|1.…±!]¹¶DšÏó=RԌݬ¤Iˆg‰=Åh_ìŸ5rÿ/˜ÿŸàÿ  tv…;0ÿFdõ·endstream +*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}U¹ôZø: hÁ‚)8f÷EµÔëÛDäµsüð¢ qTMŠ:ù‘ɸX!±l®ûÔ”Ëû ΄,ñº17ýbŸgûŸ&fܽ×Y'jeAt ]ôÛïwV^þ%ÑåµÛR¼”tμ‡Ël¥¿é˜¦j¹„‚øϸ3èm>YjŸÖCƒÕ¸ÄžÄÈÊjbÆn“ªŒUý©?ô‹ïðu«ÈÃWøìý#ë,M€¾ߥJBQlŽ‰âXè-ebtxÃ]€s<—ÿ¢:XÝQ…¸w¶²-N;N¾?Vl¤‘vG‰…,Å%ë9êçöË'bìη9|1.…±!]¹¶DšÏó=RԌݬ¤Iˆg‰=Åh_ìŸ5rÿ/˜ÿŸàÿ  tv…;0ÿd õ©endstream endobj 1484 0 obj << /Type /Font @@ -8506,14 +8512,14 @@ endobj /FirstChar 67 /LastChar 85 /Widths 1922 0 R -/BaseFont /NTJURL+URWPalladioL-Bold-Slant_167 +/BaseFont /IQTQDN+URWPalladioL-Bold-Slant_167 /FontDescriptor 1482 0 R >> endobj 1482 0 obj << /Ascent 708 /CapHeight 672 /Descent -266 -/FontName /NTJURL+URWPalladioL-Bold-Slant_167 +/FontName /IQTQDN+URWPalladioL-Bold-Slant_167 /ItalicAngle -9 /StemV 123 /XHeight 471 @@ -8525,46 +8531,45 @@ endobj 1922 0 obj [722 833 611 0 0 833 389 0 0 0 0 0 833 0 0 722 611 667 778 ] endobj -1298 0 obj << +1297 0 obj << /Length1 771 /Length2 1151 /Length3 532 -/Length 1711 +/Length 1712 /Filter /FlateDecode >> stream -xÚíRiTSבª¡¬2©¤j=,Œyn4„„1d%æÞ[’{éå’2ˆ8PIU–EltÉ(*J…UE (µÄ*¼N¤U„,ŸEªVEÀ©¬««ôgûë­wΟ³¿ý½¿óÍp g‰a|ˆc$ bC"à/“I!. Î\.Áð'9‰âX€œDD -=Àj­ðV®@Ä_!â h à§é 4EE7æ$IÄ„@r Èä¤ -ÑP5r5Ç(BêÙ@¬Vƒu“7ÒÁ:$!2˜Mƒ £ -l@RPŒÆ™Ô$Å”8¼amÚÛTB¤S¢€Û”L& DÂ8¦ÖQÒ8kqªBiù'dM/¨U«×Ê5“姜úK^®AÕú߸&MK"á0B`Ó©ÑÈq2FµšéY))W£ -1–¢F ZÉæ®|ƒ£é¨CQR¡J¹:™Â ž®„òoJGåþû×N%Cå(FFèÓÀýƒ=CÄ”Iªñ\6— QDj¿=%Nk&Á8Œb)€Ç÷r‚ëiÔQdAÅ`D¥˜ÃÆp’º(gr€'h“ÿêÁ5’ž>‰¾x€“29{”{“Ø_Ÿæç‡ë²X+x€ÅãS­¸+=€ÏÍùQ¡%#§Æ‡2èm¬D)OD‡(hæ¸ÂkËÇ{Om«É•Tuµf¦/4ÞÒ~nëI£{¸×ËáÑøCòÁ¯ö[í?FÙ•Œ„|Å•ü>ú)q¶)+œ³µÇÞdëĬØ>ëb8!iÆ¥²¶Ö÷4¶ß5/Lktð£ëÓ;ç¬ëÖ܃•ô‘™57o¼|œ›º±£Ïló%ì:TBK,;½fõß;EW&îáU¸¹úÒü„}O_™é­·»SoÙ…†2™Õu£÷‹9\¦NÙßAƒö§.6Ç” -W‡‹f/ô¸Unï{»c|š›Bd¿Ìèb -\ŒïvKósJ‚£¥‘£ ŽV8(j¨½ƒªé–H}k\‹Æ»P0X–ïZßÉó.†Ò÷0Ö%¿düºdÇÌ'‰ÏŸ÷>{m ·ì¯|øóÅÃ~^R |oò™ˆ›î—jÎW8ÖÌL45V-iš÷ øÍwñq\è5×Nœ0T;ͺuE÷Ug³øã‹Ž‰<t¿ðú¡$ÒÔ8rØcQ®õÐæ©;Ù÷#–gyþbu.¤6YßéY{Âôý¼e{áˆlVØÞÔc5!5Û4úGÂ9{Ž -ëBVåÙgŸˆ›¾S–E Î-dãÓåÌ6Æú˵H»¢Ðç•Él"Ö÷LK+F`ƒÇdz2xg>ZÏ÷JHyÕísxÝÁê¬]<º¹rÑöõ4‘MÏ€ž&ù´$÷õ–Ñž ­½¤©=ÞŒÝ=j¼ý}*Ø|ö ½ÖÕ;æ«¥>-ôºóÿ[ÆâÙ+#²¸êX÷BËþ Ü\©©ubÀNƒ—üä)nfg“Ìñ[égÌÔœfØH2½çùQgù}¾s¾u]\¤"ᤜCE’ê)w%=ÁÙÏ|¿{~Ç:`tÉãè3Æ‚烪ÞÓžåÅÒáËâ›­»µ]ê¦ê҂ݲ¹5ëß ²;Ô~YtÕÎ{W{q;ÿ“¶qú2òÅ«ø“˾Ö'A݆‡A-k2aìp `»¶·Ñ¡Í——'.õ뺾sD•ÔÐq­,ï',2¼>ÑVµo™Çñi›E,Zͺ÷Á•ØO¿I® Œ—´$^íù|4l‡à…9‘ÃL,bÉÉUÝüyæ O2CåWÑkû¹sÑþ_ࢀBÈ ×ȉTÚoU팯endstream +xÚíRkTבª¡¬òRIÕzX%rÉKCH(`€"†¢ðFbfB¦Lfè0@R">¨P•e‹.yŠŠRaU¨”Zbn_¤U„KX^‹T­Š€¯XWWéÏö×]÷œ?gû;{ç;›á¦ðCøXŠc¤—Ź\ÆåêÌáÐŒV‘ŽªHX¸B¡'X†Þ +Àˆø+D|ð$iIàÀœ$ €XˆZ…¹ŠÔÂ:ª†Z…®F`ÒÀbë&o¤‚up*L¤Ã‹ÆåQ“`œ„`4ö¤&¦Áà ¥¥¼M¥ÃD*% +¸MÉdJ$„c¨@°†ÆÅ©n0¥åŸ5½¸4 ECUºÉòSNý%¯Ò!¨áw®KI#aÈq&°éÔHø89 !iºéY©BµKBaàÁ]Éâ¬|ƒ#©RDCa©Ö +M…§pƒ¦+¡ü›ÒÁö—*ÃbBÝÿÚ©d˜ +ÁÈpC + 8°§bî1eèA,‡Åáp)"µßžâ§5“`jB°$Àã{A¨ 4jˆ¨ˆ2¹Á X`=¥˜ÍÂp’º(g²'h“ÿêÉlNMDß<ÀNšœ=ʽIì¯Oó÷Çõ™+xÀƒÇ§ZqVzŸ“ý'¢: `ŒœÊ ·±¡<…a=¬¦™nàjï-ï=µ­6GRÝuÔš™º°ôð–Žs[O–z³†û¼®M?„Ãüj¿Õþcä˜]ÉHÈWlHÃ履g3ì­½öF['få>ŬêḄ—ÊÛÛÞÓØ~×´ØœÒäþàGקwÒÏYׯ¹ÇTÑG +fÖÞ¼ñòqNòÆÎ~“Í—ëP -¾üôš=°ò¿wŠ®LÜ«qSÍ¥ùqûž:¾2ÑÛn÷$ß²-–Ë­®—ú¼˜Ãaê54îþäŦ¨2áj…höBÏkÊŠR`ñ¾Ki”oKsˆü—ÙƒÝLá Ké»=²¼ì’àHYÄè‚£•êÚ¨OP Ýnh‹iÕùbòÍ kó’ºx>ÅÜ”¦=Œu‰ã/¿.Ù1óIüóç}Ï^Ò[¨3],œÏˆt÷Úï—îæ>ÌìàЭ¯~ft‰Vi¿¸KŠý‚ûlV¶ëþí7Õ2&QÂë¹N7Ž|æjâÑî‰Æu{+þ%qÿºÙ¸;N¢·F_Ä>¨zøóÅÖÂý¼i@l_â™ð›î—êÏW:ÖåÏŒ76K¥ÕKšg㽃þó]|zϵÇ™Ãv§éB¾è¾öl–b|Ñ1‘çžÞC?”D›F{.ʱÚ¼ y'ë~øòL¯_¬Î…Ô%º¼êN¿Ÿ·l/žå±voò±ÚÚm:Ã#áœ=G… ¹VYgŸˆ›¿Ó”E Þ-dãÓåÌvÆúËuH»¢°çU‰,"ÚïLkF`æãã™é¼3­ç{Ç%½êñ=¼î`Mæ®Ý\¹hûzšÈf wPHO‘|Z’ózËhoPš½¤¹#Ö„Ý=Zzûû~D8¸ùìAû4WŸ¨¯–ú¶ÒëÏÿglÕZž½&<“ƒF»XL0 –*]r2_òW%¹™œrÇoeOœ1cKJá6)É8ôòDu‰’cî]uÒÓ…\3V%ÂKe§Ðå3nÏ{\âl~Jl:p5XÐX±ò»U3Z9ás§{"-×ñòHAçO§WÈ5ò×±Š=‰ó5}×¼Œæî²vú·-§?Êüœ÷ũ¦MóˆPYô¥¶cÛ5Ç+ÁJ[ws¤PÏ{v$ª3ÏêÝì‚Õtú'XáÒú1ý¾úà2sÿ‘3"ÞÏ7ÞqS:—IJ^YF+ë‡:,ËãñDMꦆÂݪŠm?T¢DYxžºýVÂæÕÃòúÆã»l¶sj³Š»çæ·ÌZ¸cÓN–¥+*¿Œñ='ÈKWž•òûýæ|뺸HKB Ù'†Š$5’îJzƒ³žù}÷ôŽuàè’Ç‘gJ òŸ›µ}§½*Še×»Ä7Ûv3êºÑæš²üÝò¹µëß ²;ÔqYtÕÎgWGqÿ“öqú2òūؓ˾6$q{ +µ®É€°Ã­x mh_“C»+7W\æß}}çˆ6¡±óZyîOX„¢‘>Ñ^½o7"—íÛ>‹X,´šuïƒ+ÑŸ~“X#;/i¿ÚûùèÚ‚¦x63¾ÈCE®êáÏ3mx’v(¯š^7Àù›‹öÿÿÔ(¬"H\§"’i¿팦endstream endobj -1299 0 obj << +1298 0 obj << /Type /Font /Subtype /Type1 /Encoding 1923 0 R /FirstChar 60 /LastChar 62 /Widths 1924 0 R -/BaseFont /AUHQZV+CMMI10 -/FontDescriptor 1297 0 R +/BaseFont /BFVPZN+CMMI10 +/FontDescriptor 1296 0 R >> endobj -1297 0 obj << +1296 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /AUHQZV+CMMI10 +/FontName /BFVPZN+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/less/greater) -/FontFile 1298 0 R +/FontFile 1297 0 R >> endobj 1924 0 obj [778 0 778 ] @@ -8577,50 +8582,46 @@ endobj /Length1 1608 /Length2 7939 /Length3 532 -/Length 8790 +/Length 8789 /Filter /FlateDecode >> stream -xÚívgPTݶ-HPPÉIhrM‘œirNlèZº›,Q@¢ 9G%#A2HÎ9ƒäŒd âC¿{ιõ½óëÞóëÕÛU»j¯9çsÌ9æZµY´tyd K¨"ÂÍäåЀÙ[:£tÁj<²8pk&`a‘CBÁhÂAŒ†>B!y¨@@%`È!Ý‘0[4€]_ǃ‹‹û_–ß!K÷xnw¢`6ÖÛ(áhu@ßBü7êB¡´-` ƒCršZÆ %»’†>@ êE‚á-gK8Ì - ³‚:  kÿk°B8@`¿KCñÞbÉ `Êj»Ýu³‚:þvq¡H{ -uû €¡6H°ú¶hæ`w†ü&pk·Fü!äˆDÜFØßúnÁ´(4Ê - sDn³jÉ+þÅm Fÿ΂ݺëÛHÂÊùwI|·0·^4怠¡nèß¹,¡ å»ßæ¾sDÂþÐpFÁlþÅ€€„Ú€‘8…º…¹ÅþÝÕ øoÕƒáîv#þDý“ ‚­y €·9­Ð·¹m`|¿ä`ùÿ²Cœÿás"ÿ4ˆý÷ÌpÜ’CpwjMÀ§@ߦ°ÿÏTæýωüø?"ðDÞÿ¸×è¿âÿíyþ;´¢3®¶¿€¿.Àí ƒ¨~ß1ÿW,Øwÿ7Ñ4„þÅð߀ÐàÛ6È8ØÜJÁÏËÿ—†R„¹A!Z0´•-À ¿íÑ»¾Š„à·Zþi#€(,ü7Ÿž-ÌÊÎáwÓŸˆþqA g~+ÏÞ|êzz*Æš\¿MÿDiݪŽÖsw¼%ö_u¨# ÿ\üÆ•E¸jDâ~çðerÉö%e>w$ò¶J¨ˆ$k|X‰A\–³³Ëóõû9[GowWgó1Në: Wz$>‹˜ 6!k˜¯S:”‰~‘g„e.0¦ãclKP«>»àÂÌ1yÕ’ Àd ÿS¡Õ¬çn9´éçï©|e>·'ëC‹›f§—ЛÙq€úYšµ«„8ë$fÚõSëÁ·RÞoÛ@*¾« ʹAÔguG…*|«eB‰;}ƒv©¢]ùßÖÒï6”‡yÛ}sx/Gj¢T«$Jñ£•H âQ–®‹B~RlEÛ1w.ì*Çbr|¬½}$nÖ‡·Gs]> Ã?V1òx£+w¿³\õ9’e‡Ð†ŠØ¥ÍäÊv””7œœ¸äN­Ñ÷«/ùŠö.‹ú…&Ð)âá0äPùÝÚ…k¥ èé¹éÛR§ö -^8³÷&sݱ­|&éŸî#6cÕ¯‡‹úœ‚ œEë=öÚÊÔïƒ.Œ}(pÚéc8hXÔêëeM±¸ÄÈpefI­|š -8xÏŽo‚¹ Lœ¸Uˆ–¤¹ŸjñÝq*½ºÏáÃ'äy•JâêA@"]1\j-L¢3wØ°¥`”µÇ,–>aZ¦¶où¿-Ž~æÚ n‹åãQQNq—5% zh±)è#*õò¸”l\ÌÕ/(YfÿY½wç½Jt½o­QêÅTHú{ò=Ó™5Ú -R!ß1Âr<;Þâ$ûg2³£§Ä¯Cǥs‹©Ï¹å‹E#‡„2‰ó9[ª«eÖb äBñÇ›;qäë4‹¦y,'XÈ.ó¹^Ûû¾çm}l3S@+'éY“W[ZTç¤ay þR#ÁWeôùì¯w<Ààø!ËêHô‘ªÝ°a2Y'ŸxVc[ЃÖ̺«P‘|m÷L¨3X´•¢|FSp õ6!wˆ¥qi­ÍÖ)/)y4ž^ÉdÏ—“¦'»À+Oð+Wë³Ã/HŽõ°8³:̨%¾0€°nô™¦RºNSX)šÄ©wo¸Vá"n®¡U®uë.ýe‡°ƒ5­†âÁ„v0äÓ=Ì­²Ðµ”ž²­ÔÂtwï‡tKy…‰ ö €À›Á²Ãí/hÆnfÔÛYÏß35|\Ã)͹b€½^s$QÛ<.'DÑ -(^‹òp߬h7š” ~Ý¢ñí‚…Ë.^,°‰ðzÈî§D€×û3ÊZú’|JRA.KÞ&[å/0õî¼2³–ÛOy«óCúÒB«e€öžt‹:¹ïäCA2µÅËV‘ÀP½'Ûz”êÅŒ~,ÁÑ’ØAkQèoL¹>3a…\Ôô‘¯&û‡EÂË"g>1doµÖ‰g·s<î÷‚Ž!4ž„…ÊÚ% ôi®ä%-#£`‚h-GwX8n^]>ÃÇWÅîió¦p•ÞUÚåâãÎäIdØxÓ„LµvˆNÀî8‡Ä|x©îóÊØÆ|çBSP߮ଗ–g Ô¢Jšóú¹mî9}Þ/@êcõH/š®JäÓü‚h_ÿܧ^à¼n‚K¼?71$ÕŽb¡’êRm:î^5c ¨íÇðêZDQ%qÞ©39ˆ;–*XgEvb»Ä#ªi.ƒRÍãÓLëŠ÷j;Už½À9ñû’šeÕôlëbZÊq5Sv‰¿P ÅùC»¬ÄÅYÚd42Ê¥¯XÜÿÑHC{€T óT½{bÕÞjÝ´?¦Ðàk)øeXïÙr™ÐWTbé£ÜlÝGN‹…1ß^¬ßNdVZ½”¤«ÔÀç,ZãˆÍaþgD¼äî-ç -Çö7=s`[šzþáÞ•MåME÷¿€uG–h‰+÷ÜKI•9º¶Z¶ý3h#`+]¥J¢æ·šõ¬¥¸¦4 G‹Æä5ÍɦŸñ ¨/„~ 2…°ëIš%ƒR*µÈ¹ï¥‚CSž[çm•&ê,œ^ˆ®ül™ò‰0¼3F£!âù2°gáȺÝYzñ‚Ä^˜X@°æ¨Í›#díQ¿¸ ˜ßÈ?'ty…Š,ÿˆbx_¸Âæ••ÌDC«½¬}F0j|{¯Õ\þ˜ßsžù¬—}8$QŒáinúAµ$o<½öR•eµ#"Uòe¥rÞ‰Kÿ ñÃ=Û`GS"“H®bʘ#6W?³æ—å‰ÖÎ+ëíø ·¯ô– -ÝI{ˆQeY:BøÂb¢÷‘>:_/!€ÐéË@íáÞÑȬýu¢‡3èµ+òLn¯óqŠq`Uúmò'ÄaeG-3¿rk ³o=m[¾Íbõ« ¢Ä"îE;A{°<¹æôþÊ1gŠº `F;¹Ex÷”‹S>EG‡t 62j"hkùýI5IëUÑ:ƒMn"A˜W¸Í(Î -òÎqE„¹¯øç*+nû…Æ—²;OeŸöY:«*š“ïgœò'\Ý7"µkûl‡ÉqèËÑÌ'ð9‘Tgeix¿qVV^­ÐÅnOiêlÄ&Àh1ÿ¥n† Šo-R’È!î±~x“ýè‘·ÞøyoÏõÏ4íÙ{¦Å\4X ²‰¤÷•Ï´±ÝÈ/åµ½¸N%{’;4u)Ç!‹=íè¡ç"Â3¬¶Ðœš®`¬õ0¼f»åæ6ç -#vƒl|¯göÕšŽùí:qÄÔyN¿3-y„¨Å–UÇâ${Læ6¬ÆÚRøÉ™¼ó¥?"áZ¾þþË\øQ>È” §{õîû7l]¢ÍK*;”]Rï¼Eú4à[·NhÀƒµŒÆëÍö—¹|j"œl‰\ö#Ã$,¼¡û4”Ÿµc2"S%öÍOZ5éê˜-=_~/•˜ñøˆLreá’ŽÙ7/Ý4w„_3ìƒý-Æ_õg$¨L&{[äã¤.¸4Ë<±I ½U€QrW(aRë*­ª)}¤{öÜùóš×Õ}ÿSM#¶ú¹”è>ž6ʈ~1ô–r¢„tBÖPÒ—µD 7S£á±iþ1N­@¤s‘e¸ö{‹>“õèÆw -™mÜtW?e‡ÌŠØÇRXÝŸ¶« qÐNøb%2t)( æß-Ö§9¢A¸‰Éš2žŠŸ±;Njf:¯ƒ9NÃïÊœT)š…ùïš=l“'v!V‚»ú7?êÑš\“Äk=ò†º¦ù^š-2~ë‰Uïs‘.»o¨ËªüaMfsÍ%W2b+¯ø¾ -(Ì°?ø6|Kú‘œ™µÁ86<6zlDÌ)®VésF¢¹¦GfôZ¸èøJü P!HlÆ<¼H›8ºîeg©õ/¶D-¾ú‰¤÷ ã›UêYœqáÕ±Ç øË -*Ïp›Â¤A wÓ'v•ù7Vš4¶¨ž+jÙÚN9dB àmN+ômn˜ÿïA9X#@¿ìgÇø\ È? âø=3œ·$À„ÜZðk з)ÿ3•ùþs"ÿ$þü‘÷'îß5úo‡ø{žÿ­ä ‡k€ío௠p{àj€ßwÌÿ ¶‡ÁÝÿMôß ¡1üw 4ø¶ ²6·Rð üe„¡”`nPˆ me °Ão{ôÇ®ï"á0è­–ÚàŠˆüͧg ³²søÝôÇb\PÈß™ßÊó‡7¿¢–¢‚÷ßoÓ?QZ·ª£õÜo‰ýWêÈ?¿1äänO^ ¨€WH@ôö° ĄżþM¾?@À­ÕÁh$Ì ðü¶hàŸÒÿëý×Êìo0ŠVÈï9ÑEƒ ·£õOÃo·•3y«èŸÓ~[ò?Ö† +uƒZ|™BX‰¼LLIB—Qdt ( Ã?V1ñŸx£+w¿³^õ9’e‡Ð†ŠÚ¥ÍäÊu””7œœ¸äN­Ñ÷ˆ¨/ùŠõ.‹ú…'Ð)á0äPùÝÚ…ke +¸éÛR§ö +]8sô&sß±­|*åŸî#>cÕ¯‡‹úœ‚ œEëÑymeê÷AÆ€>8m„ 1œ4¬jõõr¦XÜâd8„²³¤¿V>M¼çÀ7ÁÜ&N\€*ÄJÒÜOµøï8•^Ýçôáö¼J%qõ‡ ‘®.µ&у;ìXBÒ0ÊÚcVKŸ0-SÛ·ߌG?óí·Eƒòñ(€(§¸Ëš’=´øô•ú+y\J6.æꔋ‚œÞ»ó^eúÞ‚·V„(õb*$Ã=AÁžéÌmEéïa9žoñ€Rý3™ÙÑS×!÷8ÎãÒ9‹ÅÕçÜrƒÅ£‘C™Äù\‹-ÕÕ²k±ò¡øáÃÍ8 +ušÅ?Ó<–“G¬dtü®×ö¾ïùZélf +hEá$=k +jK‹ê\ô#Œ²Ô_j$ø>Û}~';Äë08~Ⱥ:{¤j7l˜ŒEÖÉ/‘ÕØô 5³î*Tô#ÛýêŒm¥(Ÿ¡\B½MÈb\Zk³u +ÂKJ^'W²Ù3FÁå¤éÉ.ðÊüÊÕúìðã‹’c=,®¬3jÉ/Ì ¬}橃”.‡Ó6Š& êÝîU¸¨Ûkh•kgݺKÙ!ì`M«a'x0¡ƒÌ ùts«,t-¥§†ìC+µýÝû¡ÝÒ^aâBý" ðf°Üpû š±›õvV¥³ƒÃ÷Ì ×pJs®a¯—ÀœÉAgÔ6tå„è/ZÅkQ^î›íF“’Ô¯[t#¾]°rÛÅ‹60^Ùý” ðzFYËP’OI*ÄmÉ×d«òñ¦¾âWfÖòûé!ou¾qÊÜCZhµ ÐÞ“iQ'÷|(D¦¶xÙ*ª÷d_R½˜Ñ%8Z?Èb+ +à‹)קw&¬š>òÕäø° DxùAt€næ£`öVkøqvëð1']/¸t ¡yô8,TÎ.a Os%/i5Bk9ºÃÂqóêò?¾*vO›7…›<ë]¥].>náJAž´AÖ 7MÈTk‡è´±ìŽsḢ—ê>¯ŒmÌw.4…ôí +ÉzY`yÖP@-ª¤9¯ŸÇæžÓçý¤>Vo€Ì¢éªd>Í/ˆöõÏ}êYÎàá&¸ÄÛøøsc cRí(æ*©.%Ѧó(á^áU3Ö€Ú~ Ÿ®EU×:3у¸cé‚u6d'¶K<¢šæ2(Õ<>Í´®x¯¶óÙÓ8'~_R³¬šžn]LKû"îà²f*Ã.ñW +³¸~h—•¸8˸ƒŒFF¹õ•Šû?ih +vžj ×`­Ú[­›öÇ|-…>°ë=].žàŽJ,}”›­ûÈi±ð!æÛ‹õÛ‰ÌJ«—–r•øœEk±9,ð”ˆO’ܽ…n®Ðq !páxÓ“1¶¥©~à]ÙDXÞÑTtÿ Xwd‰–¸rϽ”T…³k«eÛ?ƒ6òg¶òõPªj~«YÏZš{JÃÁp´hü@AÓœlú)ÿ€úBè×@aS‡ž”Y2(õ¡r‹¼û^*84å¹uÞVi¢¾¡HÑÂé…ØÊÏ–)ŸÃ;c4¢ž/{Ž¬Ûe/HìEˆ…jŽÚ¼9CÖ•Š ‚ŒüsB—W¨Èòè!&÷E*l.\ÙÈL4´ÚËÚ÷h„¢Æ·GñZÍŽ<çYÎz9†CÅŸäá¦TKñÅ3c/ÕQYV;Ò+Q%_Vªdá¸ô¿ð‘8ܳ v4e$2iä*õ Œ9csõ3k~YžØaí¼zf¡äö•Á’±¥;Éb1ª"(GO_XLô>ÅGçë%:}¨=Â[#™µ¿Nôp½vCžªÂíu>N1 ¬Ê¼íQù„8¬ì¨`æWn-aö­§m+´Y¬~5A”XĽh§"hV לÞ_9æJqB—¡Ìh'·ïžrs)¤<ÃÑ!]‚ŒšÙZ~\ÍHÒzU´NÏh“[€Hái3 +RgT­$vÊ®éï9‡á׺ù§ßWŸa|…psØ´"ÀÅÑÁñgð~¸¿Õxy¿oA‹z¾Â¼âÕëPúí, +ƒ"aª +GZ÷± Z6ÂlƒÝI§(²‡2˜Zδ!|Ñ?-IO“d×´–ÒÉ5(ÿà6÷YJã[u'·û²«€<±¤­åº ú$„whïÀˆZ]À3W=K‹g¸2wñÙàZ )’ÅâK«fE™í›˜9½œ·•*( m¯Ö¦ÑúAÔD%Wãj‰r—þôÎ#gg…ø渆"ÂÜWüsU”·ýBãK9œ'Ž²Oû,U•Ì‰É÷3N®î‘Úµ}¶Ãä9õåiæøHª³²4 <ß¿8++¯Vìâ·§4u6b`´˜ÿR 7ÃÅ·)Kæ÷X?¼É~ôÈ[oü¼·çúgšöì=Óbnš¬¹DÒûÊÆgÚØo–òÎÚ^\§’=Κ‰¹”ãÅžvô0páV[hNHOW0Öz<ýPlpИؑ¤õéylv_ióÔ”½Düñœ˜º!aKfÔô–}#Ëd@‡ŸÍˆuÿŠœ}¾<»Q p5Ieëò*']7÷B¼iØDòÛç£èⵓº‹`u#²ëd^‹Ýrs‰ó…–‡‰A6¾×SûjMÇ|:»NquÞÓÃïÌK!j±eÕ±8É“¹ «±¶~ò&ï|ŽH¸—¯¿ÿ2y”2eÆéžE½ûþ [€hó’ŽÄÆe—Ô;o‘> $øÖ­ð`-£ñz³ýe.¿š(W {"·ýÈ0 '+_è> åg혌ÈT`‰}ócÅVMú:DKÏ—_ÀKe<~"SE„|Yø„”cöÍK7Í‘×Ì û`‹ñWý Ï&“Œ½-òÆqS\šeÛ$ÐÞ*À(¹+œ0)u•QÕ”9Ò={îüyÍëê¾€©¦{ý\JtoeD¿8zK%QR&!k(éËZ"Л¹ÑðØ4ÿ§V0Ò¹È2\û½EŸÉztã;ÅÌ6ú+ŒŽŸrCfEc)lîOÚÕ†8i'|±»UŠ……òï–ëÓÑ ÜDÈdM oÅÏØ'53×Áœ§áLweOª”ÌÂüwͶˆ+»+Ã]ý›õhM.IâµyC]Ó|/ÍŽ™¾õĪ÷¹È”‹ß7ÔeSù°&»¹æ’+±•W|ÿ(̸?ø6|Kú‘œ™µÁ46<6zlDÌ%¡VésF¢¹¦GfôZ¤è)øJâ P1H|Æ<¼H›8ºîeg©õ/öND-¾ú‰”÷c Ó›UêYœq‘Õ1ºüeÅgÏp™šÂd„@ŒwÓ'vU6Vš4¶¨ž+iÙÚN9dB<ï·NZN,±$íŽÝ\ë|.ʳ4 -Úu&IFlµPÈ‹˜<>ê¼çO}ö•>ݧ·ðgžF±;YuQTˆ §ÿæ‡ ¬ßôtD¤ûfP˜{s“cÞ·+J .>xi¾’²È¦{¹3Åš®Þ~—ÛãŒd@ãa‚äÄ·Ž„kï887Kp¥ôRXŠCãóÑ°áTîEQæü^w~@³ßG±¸½Kë3rÎN¡ÀK’jùÚˆYi†Fý€ðF®ÒQG÷QÜKV1Wñ-ˆÄ]uÓ£¦¦Ç¦—D'Å4Žs^ï¥%͇aT{¦®ŒL7“ù—Šð¾äá®^8¡cññçî6S½¤(¸ZÉ€û`2$éß=ŸÝ›·4Žânâ%ÝÄ5Ì&¨¦ȇrŸšÉPjÔj©VÝ J%ž8#/Ô+¶tt:WšœÁcÓ0¤¾öíjMö“¼úŒº£èZ×aóŽÛÆýCØÛÉ7Û¾!-6‹Ú¯¿˜6œ6ÛÛj~ÁSis?ÛíS`¡°è%«èëÆ6¢™hSSÄrþû¤N¹’QëÔ_’­÷êsucÛUi¦¡G1ÞÔ‡´é <Õ ,¡7%ç”b>×Èê/7ÑÀdú^ÉÀŽ‹½ì±/ߤžâ:»özÝoW7…~Äf¥:7âTWÊxû¤¸1RTùã¢öƒ¿°ò}‘<}wD>‰ß­+=ó¦ºf7µ½îÓã'Z׫@='´EþMÅ)TÀSwú‹-Ñl:m‘Ÿ“¡ä÷ËG¡;r­ÒÐ/Ã*Ž¤fŠÞó-xz -}~ÏLcÄçt>í ÔN$c÷¬¤úœ ú=nÆ©ngþõžå ÆIE^ÕÖŠdÙh›•™&|Œ݃Ûtmðp6ðQYMã©©SÝ;h†.¯ÚÉ/Švö˜ È6èDz‹~¾:ûK¸Æ&†Æ$€±sfƒr®©X¨Õ‡ìÝåö©6¸ÒY|CÈœ‘ÄHRÊ=›Ð<Ž3 S=ÍêU%6?Q<ÇÛSOújÞò5®+òr+׎™s[VŠ"ƒ¹ˆÛ­R@BLȼô½øóÉ*ùOx<‚Ýr”†a¯@$ñjKSMƒï”Øvª*8¬rŸâ¼Y¼ˆ5æ‡ßr¿™”‹ïÔØ žÓâ8»­KÔ°§Ý;…§—?\—§Fä»j8‚\šO“§•×†øžŽu8a”öÖömÐú»«MÌø©rÛvÙjÐC;L‰C`„>Vx­iôALí+©Å[ƒ~þº†KIoä&žá2j4+»,~£7RQÅV$èÃL|‰<ÉœÄÐÖzÜÒýÁÏßo„˜0»T 2chÊ›îà -!dÌF æö/¨˜õpŽI^ø©Ý©²‰µ([|«Fv/f»H/>_!üËê¹ocG¥%ÅÉ s5“•ŽnÇ5¾Z‚ÏÝŸ¤±ðJ©ýšžÇÝ\UËúö¡ î[Ÿ2Êíß2û²Qx„úûs‘½¯Ø«PU XäxŠnO -IÇäœ÷îÍóÍè v ó4ýð CihTðÞ²° ÇÒf%’2Žãl}Þç×^#ò†-¼hC¤ó|7Äïçiжr àÕýŠQÉH‚d.à–ŒñÆld„1(_¾wiNŽ3ªÖO^U·s5@p».ú0}¼ƒµ³W -Oyâ|g܇;Òðh¬Ù#1|éôë6Ög²›œ·UëáÇ rk_‹öw€º«¹j!:/œ*¼È_Ô¦ ¶S+³(#>û­pKÕs%ìÛø“hj£ê·ßN -\O–ˆuõ–.½½h8¤Ëµ[%-n&í—o{Ø,OJ‹ä k ƒ$4Œsz!¼¢‡bÃ7Ú‡vçˆemÝÊ5Hcý™’W¤uÊTãO³‰³7 †³Ê;B¥È†“ŸÌõáõý"¡dËUŒtúÀóñ[í¹0!Ã<Ú—(U½›È>ä9íÁ;˜Ö€7¤ÊÞ­:À¤Õ²y £7À­ÔÁT}I”C¶–‘Qîì¹È\·ÞWõ3›Ã½ZÆ™&ÝhÄlÊÞK\o`~~çt!•†ó(à'¤§tq Y†¶bëÑ4r3ÛDZëòa[ö_ó> (ÁÔE7 bO;8<0¹8Ô4;Õª>*ËVëu?+«h–H½~šq»x/·}$ãºÊá+¡V8|ýƒ!Ù‘`Ç©³Mò×ÎàåÇøQÝ'ï³eò^JYõžâ7:¯?¾kñs”ÛqWç®fa Š’Œý4>§ ÇZ'úy]Ü;_GdRÁú È•†bn¥æf§çƒ\Qù²1³7›^voŸØ4Ò-מyþ«wýE’ñ$-¤;k3¡j¹õ½³"í§¬kEŸÄ¼ÕSíÇ»õ7ó´ÎˆÏÖ1ªÉœÛü¤¦Ð#,õ÷9ïÓ¬æ1Om—’÷Ÿ»uÄËnP“ÒZ}7LÎ$·*1e¥PÈ mêõ¶ÇC gùVGŠñGÈÚ=Êïà9’"ðfÙ°ÙèRÒxªú;ø®^í,‚£åzOirŠ>׳wÈÍcÅ¥˜?!wÏÇFNyÆ/^€Â(Œ’‰‚SÌ—òñy`LÿâÅ”ÎàQwѳˆ.ýÌéììç ²7L‡²m³‚Ô-Ôc—†\Âý îãE>`­X|úZ-‡ŒØ3!lüqÆ׃팚ˆfrMºîôaúKãŠÌˆxè¯Rnºí®{ɼD£?ø&´ÌFóŸ´T%ɘZ8­U6 -3ú·<Ȉ› h¥=¯`·C-ãZ*¾•‘Û3ØJ`+>…p˜;w cÁ¿ù\åµdf؆:îÉVÂÊ£QÏ -Ló¶Ú±{i C¤üD8þúñ7.4ß=£Nƒ~ØA·™Y¼ŸíQíì -;dÕÚÞùYÌú.ëÅ3¬m -Œ·Ò'OܧZM•ÈkÚEä»óÔAøV¿F+áÖØ\7H”ÕÁ¬–ÞÙ‹s± -A7µ¢¿ï?å151"yUF„I×íòÏfwÊ*Q;1WG¬ä‡üÖWG9 -dòú“¢Ï¡ã6–±hò¶þ|áç RÖ/?‚jïVÈttf=]«­mîXCh-»E²`?|(“躃Øçw¹©”]“RÉÆè·¸¿½ú‚[O÷^Üä'^m[ñ™4]aÄ‘þÖ9ö5QºÄ”ÔbcÅ‘n"¾ÿ]½GF&<ç ¤3dRµ°%‘ ”Ê.Óµ­ÉÂÆWòQmw)‡GÒDa™e¹ÔÖlNA|¦Z–ýÒ½‹Lýƒ÷ÛE}b\ÝîL» &épƒ·gr[‹÷šßžz÷ìòdÈÄ º‚íüë£-« ‡Z‹ÎîpnöŒ´Ð|˨) 2xqô¦S=w¶Æß jIž6a›6Ä.OSy]ÆñþS§oa¶Ô«ˆÌ±â£Š51r»%ob2üpȈEÐ&â§ÜÈÕöIòÊp¤ì‚è¯ôV²í­NæçiX¯Ô²»Í æá‡A$­Ñe$D{òD¾Ÿû‡‡';,Ög¦•k\Ü Gái3¼q¸Qþ¥L‚¨99ö]/9(C쯆IV-u—ß $#ô?(Ð%¤<×~ü^nsÑÔpPpmªJÛ7'êüyô,YEj–lw‹hÓ> ;Ko·ˆíŲ"ƒÞhÆðÇû­uÔÌm:n=¦ÇŠX—N7ŒÐä£Ïà‘Çžßi®1zUL-íµf½+OGÅŽF÷Ù*v|­FO]ÆvGÓÙŸ¥¥>Š?$¡$ï.ÇpHSî 4ó¢1Ž‹,V‰Æ;…Š¥"mLôWµOËétoÕÛu_Ý„fhJ#ʯ\ü¦CÀ¹÷)O!òiç¸SÔD3ŸJ6IÐëYåÍW«;Õ9#%“UÔ…ò@KÁÝDFjðc¾®=ésË‹¯N|½Ý‘m*ú‰¯—œœR–Ph< ßûÒøºà;wíöÐ5Ÿ÷ãyí]³õ–èÏáÊ͇# -Xæ"¢Úbò3¸ý]ub7¾‚夨õù-ÅsÅK>ˆ<– !!’=j‰Á bê÷](åÏi·t9ù -KÆ.Ha½+-Ε[åòÿÑÒñx Ciif|-is \‹¦ÿ€|6±m¦ÍñŠ =“1ä`K^!y9ÊÌßIjX÷žXHO~ûLýì«œÈF7v—")òï@µW™[zb™®ÕÚ4“*ý÷L´ªŽœ0–¯z$¹Š/‚„à{>UiO³ýE©²5êæ÷”t¦=Ä;î -€¯À4?œt€sTeù›!4J%h¹‰¸—ŽQÏ:µ¿yÓ´(kY¸³½M>X‹– sôqÀirÐÀ³8!ÂùÕÏS€¤Sì$óÅ­$R÷Ñ•amPÍ$?çÔg•ËŸ˜Vd[ƒ1ËiÇO°<Ø_¥¶%yÐœáZ.›eˆô¤Xþ*Iò{()õŠ_¼¾êW÷ºÛ £x}kã¾ããVÔ³Ö–I͵'EÜöGi‚õÂV;áåÏ¿Ø×6™+Ý$Éž {ýTö"1Ðœä5v-V$ÍlÂÞ¯«ª›bݦ´³ã)º§ÊoS6”hLGñ…îÇ,v%¹u©I~®]%¾)Ñ}ú‚¸2¸  âoJ°]^¯ÿRÓ HmØ;Âúž³d¶ù핈`)ÑÑëùÄÚ”°•dv -8>ÔfN-öÓ¥]¥rÆp4’ w0N¼‚+à.ƒÅf4¢Îf Œý˜¬ê/7r¦ÀCêOÝpñ%\ï‚©.úÌ•â{šÞ‚§mÝ’ó³éÁm÷µp7ßßçŽÆQ}⥜ñMÃècFn°ãH¶ÈH¿­D^{D ^HÒœð.xØ´Yæ^¥$ÃNèR¾äK'^é’²td?õ’¸I}²ß©fxaúÁ(‹Œ™K‹ ŠÖâ€MÓÞ*ôSæ›iô‘ h šŒ%–ýb¢¨¦—úˆ*äÝ*Wæò(#]V’Ü<ši#ÒY²•Š‚DÁ°¡ÃÕFFV鹕6ÁóÑÕ+3ÙøÛM~o£¼ Wö¥Ø…Ú ©5QÐ8ÿµ;¼³Óæ?¾z¤á ½³0MñÇ€nZ_:¾ª"‰4Oñ÷ ™Ë±NGÕÛØW,vÕxF™GM2Îzä}ézÚZç=¯‘ZO+Itš_¿Êk÷ïMj ëgàÒk/^R\LsG‰ -²© -3ã½+ôÞÊ•÷aˆlª Ïn×–OBw:ëÌDöƒ^ቃ€¸Rn¹šd¢¯ÅÓò;SÓtd®ÌA~z M“èRVt}õÚ+'˜ †4~}µ÷°}³íÚš[T:áµ%|Å’Q"èXê³ÚÎÝ9"áòç0Tw³È‹d·¿Pô@åÉ@ÅìÓEâòxOæî¹à åÏIXUb_4²üQ ¨:ù©^\õ47ãÇU¸µ& ²ðc óŒA«`á0Ôýµ˜—™žÌ‘¥ˆß·%¢y†.Sz¾M²hàž·ãý°óg #$SÿçÅOÁëÏàBø[yã¦5åž Šq(OÜâƒL#‘'Þ/ãØ«*ûü©¯ð5X1œæ)ol×Ós[2L&³d´/øÿ—ÁÿøÀ -#Ñ{0ÒŽàÿÊn*endstream +žä¶5Äõv!.[7$›\ÙÌù ö %Ü-DÇ9øÓ\¯ÔÍŸÄ7& Oâ×ÏžÅÚÅ8“£òÅff\Æ +-â×6™…ÈXÓØø¬ï¾ÆÇ„)h}YÆð–êA±>–?qhYêJÁoȯü¸"Š˜‰œñµŠýVw$ˆÇÑ5-C¶Ãö&šg ŸI}2Ñ»5ãùáö¶DăuéBÿ;¤»¥ªïÕ\rþhüæx€Í?‚^z:“Å„ê!Ïå¨Úqn\*$þ²2RAרêÇ"Yþˆ§ò¾_Zp%ý ¤|r(ÒÚpÀ£5§HêDžæÔà¢èE=$‹a”WX œoäž÷[§ -'å\’Äö Çn®u>ãÝNí:“‹&#¶Ú(DMèŽ:ïùSŸ}eH÷é-ü™§QìNV]"äéÿ£ùaÛ÷}é¾æÞ<Åä˜÷íŠdƒ‹^š¯¤,²ë^îL±¥«·ßåñ8#Ðx˜ 5ñ­#áÚ;ŽÅÃ\)³–âÐø|4l8•gQÌ%¿×]Ðì÷Q<îEï’Å:猼³Shpã’¤Z¡6bVš¡Q? ²‘«¼EÔÑ}÷’MgŒÄUb "yWVÝô¨iÆ…™®Àô’è¤øÆqÎë]£´¤ù0ŒjÏÔ•‘éf2ÿRQ¾×€<ÜÕ 't,>þÜÂÆbª—EW+pLfƒ$ý»ç³{Sã–f"Q)¨Ï¨;Š­u6¡1ï¸mÜ?„½|³íÒb°ø¡ýú‹iÃi³½­æ¼gmîg»}Š!½„cÝcÝØF4ã!mjJXο`ŸÔ)W2júK²õ^}®nl»*Í4ô(Æû‚ú6§º%ü£äœ’SÜçYýå&º˜ÌpÃ'xÂy±—2öå‚ÔSBg×^¯ûíê¦ðجTçFœêJYoŸ7&Š*\Ô~ð6þ/R§ïŽÈ'1ð»uefÞT×즶×}¢{lA õp½ +DЃqB[äßTœB*«ic:5uª ÍÐåS;ùEÑÎÙÀHoÑÏWçx ×ØÄИ0uÎlPÎ5 —¢ú½»<>ÕW:‹ƒoY2’˜HJyf€ÇòTcª§Y½ªÄæ'Jçx{êI_Í[¾ÆuE^n¥ñÙ±pmËISDx°ñ¸U +JŠ+Y–¾^#Y%ÿ GpXŽÒ0Nãˆ&^-`iªiðŸ;ÐNU‡UîS’7K±Åüð[Žç&“vñ;ÁsZ§â§u‰ö´{§¸àôò‡ëòÔˆBW ×B‹CóáiòT£ÊÚÿ“±'ŒÒÞÚ¾ ZwÕ¢‰?UÛ.[ h‡)qŒÐÇ +¯5Áƒ ¨“¹Ýa%µxkÐÏ_WÃp)ÉâüdÃSY]K¢þäWOk‹à0É3£¶×ÞGº?úða‚f—ŠTfŒ@Ó\a„¬™âˆÁÜþK ÎÉ ?µ;U6±e‹oÕ¨ÓîÅlé¥Âç+D~Y=÷m쨴¤8™a©f¦ÒÑí¸ÆWKð¹û“4^)½_ÓC×Í]µ¬oÚà¾õ)£Ü~ðM ‹/;…G¨¿?7ÙûŠ½ÚaAUE‚EÎ'èö¤t )®yïÞqŸÑŒž`2OÓÏß0”‡F…îý( r.mV")ã€1ÎÖç}~í5¢oèÑ"{€6@æ8ÏÇqCâ~žm+ ^ݯ˜g©SÌÜ’ñ/Þ˜,ƒ0F•Ë÷Ž#ÍÉqFÕúÉ«êv®W‚ÀEßæw°vöJá)ïŒûðD5{$†/~ÝÆúLb“ó¶j=ü8A~íkÑþPw5W-Dgã…SE˜ù‹Ú”ÁvjŽÄg¿™A£zî„}MmTýöÃIÁëÉñ®^ÂÒ¥· ‡ô¹v«¤ÅÁͤý +m›Hi‘œô d„†q. „WôâPløFûÐÀî±Ü"“­[¹É`¬?sòŠô£NÙêqüiv Ž&#‘ÑPb6G¨4Ùpòã¹>¼¾_$”ì¹J‘Nx?~«=!ädœGû¥ªw³ù‡<§=øÓð†T9ºU˜µZ6áa ¸•:˜ª/‰rÈÖò12Ê=ùëBB"ûª~fs¸WË!Ó¤˜MÙ{‰ë ,Ïïœ.¤Òp%ü¢ã„õ”/.!ËÐRl=šFb›Hk]~lKÂþk¾ç%˜ºè&!ìi§‘²‡šf§ZÕGeÙj½îgeµÍ’©×O2nbïÅâ¶d\—@9}%Õ +‡¯0&;ì8u¶IýÚ¼ü?"¦ûø}¶lÞK©#«ÞÓBüFçõ'Ã÷bc-~Žò8îêÜÕ, |¦,kÏ%äq†Ö‰~^÷ŽÓ×™E°~r¥¡˜[©¹Ùéù _T¾lÌâÍÝÛ'6t˵g™ÿêd‘dç}šÕ<æá©íR²óþs·Žx¹ jRZ áï†ÉyƒäVåã æ¬ +ù¡M½Þöxhá,ÿ +áHQ þY»BåÕjªâD^ûÐ."ß·ƽú5Zï°Æ溱@²¬®fµ4ðÎ^‚›M²¸©ým|ÿ ¯©‰É«ê4 +$L¦nW`6»SN™’h܉¥::`í ?ä·¾:*Q “ן”„y·±,ˆÅ’·õç ?‘²}ùT{·BV°£3ëÉZmmsÇBkÙ-’Ãøá+@™d׾€ËM¥Üšô³lŒ~‹ûÛ«/xôñTpïÅM~âÓ¶•˜IÓAéoc_3¥KNI/6Và&âûßÕ{´adÂ{Þ@:C&] [°A=Ûe¾¶5YØøJ>ªí®(íPãHš(b"»,ŸÚšíÑ)„Ï\˺_ºw‘©¿cð>b»¨Oœ»ÛybôÃ$N`ðöL~kñ^óÛSïž]Þ ÙXƒ‚AW°}´e•!]¨µØìà×fÏH Í·Œš’ ƒGïa:Õsg«1ì8ñÍÑ –äiöÉñhCìò´g¯Ë8ßêô-Ì–~‘9V|T±&Nn·äML†‘§ÚDü”¹Ú>I^Ž”[û•ÞJ¶½ÕÉò< ë•Zv·yÁ<ü0ˆ¤5ºŒ„hO!ƒÈ÷sÿððd‡åÁúÌ´Jb+"ä(2mfƒ77Ê¿”Í@5'çѾë%eˆýÕ0©ª¥îò{d„þº„”ÇÚtÁïå7M …Ö¦ª´}s¢ÎŸGÏ’U¤fÉu'¼ˆ6íãÕ°³ôv‹Ø^,!2èöh §Ûo­£Þ`iÓpë1å·¼øê”ÁßÛÙVaðL?ñ5à²Q‹KÚÒ +‡á{__bçâ.°ßþºæó}<¯½kb¶Þý9\¥™àpDË\TL[\a·¿«NüÆW¨œµ>¿¥t®tÉQÀRD‚!$Dr£G¢1¸AÌý¾ ¥Y í–.ç#_©ØÉ#¬w¥Å¹ò«|Sþ?Z:è:”—fÆ×’¸ʵhúÏÈ×XaÛfÚœ¯Ú3™B¶“—£Ìü¤‡uቇôä·ÏÔϾʉltãp)’&ÿT+p•°e –íZ­M31I¡ÒÏL«êÈcýªG’«ô"Hx¾çS•ö$Û_Œ*[£n~OYgÚC¢ã® ø +LóÃI8GU–¿Bã¡\‚–Ÿˆ{éõ´Sû›7M‹Š–…;ûÛ䃵h¹0GQœ&÷ <‹"œ_ý¼ÈAze‰ÀN2ÿPÜJ"u]©¶ÕLòs.}æQùü‰iõHö5¨ñ‹‚‘öqLðëƒýUj[’ =Á®…1Ñè²YÆHOŠåoq ’„!¿‡RÒ¯¸ð%ê«~u¯ ³¿0Š×·6î;>nE=m½aÔ\{\ÄcïQq”&T/bµ^þü‹}m“¹ò A’ü陈×O/ÍI>c×b%ÒÌ&ìýºªú· ¶mJ;û7žb{ª6eC‰Æô_è<@ÀbW’+Q'‘šäçÚU›‚ݧ/ˆ+ƒË°a*¦Ûåõú/5 JÔ†½ó'lï 0Kf›/Ð^‰ˆÖ½žO¼¡M [If§€ãC `æÔbï1}ÚU*÷i g#™HÓÄ+¸"î2X|F#êLq¶ÀØÙªþr#g +<¤þdÑ _IÒõ.˜ê¢Ï\9¾§é-xÚÖ-9?›ìÐv_ wóý}¾éH`…Ñ'>Êß4¬>äŽT‹¬ÌÛúGäµGÔà…$Í ï‚7LI›u`žUJ2ì„΃79ç¯~f´lá­ÊΚìïW 5?|¸':U—.ûrJo ÇÓlÔË5áAÜçxE ³º×ا‰3Ç•ÚTñ#åKþtâ•.iKW@ö/É›ÔÑ÷ ûj&Q ¦Œ²È˜¥t°Èð§Äh-ؤ1íý b?e¾™F Š– ÉXrÙ/&Šjz©¨rAÁM°re.2Òe%ÉÍ£™6"5[¹(H4 :\mdb“™[i:ýP½2“¿Ýä÷ö0JÑ»pÕh¯QšQ¨ý±Qó_»Ã7;mþã«÷Aú^ÁÐ; Ó èvñ¡Õñ¥ã«*’Hóß¹,QëtT½}…ÁbWý€g”ùxÔ$Ó¬GÞ×™®'}¡uÞói õ´’D§ùõ; ¼xðÞÔ¡Æ°~. °öâ%ÅÅ4O”˜»ª¡ Þ»Bï­\ÿÆÈæ  +†ìvm…$t§³ÎLd?莑ˆ+í–«I&VñZ"-¿35MGöÊìä§7À Ñ4‰>ÅauA×W¯½r‚…`Hã×W{Ûw1Û®­¹E¥^["W¬%BŽ… >«íÜMÑ#nNCuy‹¼Hû %Tž,TÜþ0]4.ïdîžk0œPañœ„5ðY ÓëF–?ªU'?Õ‹«žäfü¸Š·Ö¤qCr®až1j,†º¿÷2Ó“=²õáÿ¶D4ÏØeÊÀ¿I Üóv¼vþ´b„dîÿ¼ø)xý)\+"oÜ´¦ÜD1å[|)h$úØûeGUeŸ?õ¾†Ó<åízznKB†Éd–¬ö…Àÿò!øÿÿOXÁ¡`$aFÚü4)èendstream endobj 998 0 obj << /Type /Font @@ -8629,14 +8630,14 @@ endobj /FirstChar 36 /LastChar 121 /Widths 1925 0 R -/BaseFont /MTTJYO+NimbusSanL-Bold +/BaseFont /EVPEDX+NimbusSanL-Bold /FontDescriptor 996 0 R >> endobj 996 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /MTTJYO+NimbusSanL-Bold +/FontName /EVPEDX+NimbusSanL-Bold /ItalicAngle 0 /StemV 141 /XHeight 532 @@ -8657,7 +8658,7 @@ endobj >> stream xÚízUX\[Ö-4Á½p'hpw×*(¤€*Ü!‚»înÁ]ƒ»kÜÝ/çôºoŸîûtßîw«öZcÌ=æœcÍýíz(*r%U&3[ÐG[¨+3 ±1q„«Cå˜T@掀'Ó“ŠJ â` úú‰ƒŒ ¶Pqc‡'^Í o °¬@> 'ëÓÈþW -Œ ƒØغ”@ ˜5úD‰Ûš:Ú€ ªŽvvÖ™ -në3Áùà§Êþ3+@ÌÖÎ1·pЪ«hÒ100þ aåå嘸þÅÄApˆ9@ý´pYÛÚý‘éIBÁžŠ6û#V l,aqø£]­…ƒƒ ‹Øô„1ÃÁÌP ÝS¡P31[›?à˜x&LŸšreù»oVP[g¨ûÀ`ÔìÏ–ÌíXÔ¡{G´øÿ?A˜ÿÂÌAN ÈÙ@.¦,¤TsµýI²þCÍ<Ýílí`ck8È=]0ÝáÆN €Ìäéþ¿ÿ¾Ãde˜AL& ó§cø—ú ÿc/o샸tÌ@ +øÇ÷Ÿ+ý§5³…Z»þ+\ÁØ`—‘cø{ïÿŒµ}’dbåæ0±ñp>MÊ“"/'ûßÿéÅ_>ü‰*Cþ§Nà¿$¥¡`[ï?Úyòñ¯–œ@0øÓlhÿc:À¿ë+Ø:@LAÚŽø45OÖÿ:RÿÆÿ×Áú{ŽŽÖÖºBû;O~Àr€?±6†ýG¸± ÄÚõ¿Üð÷@MÐ?¦ÿÿ #í`l 1š[ÿÓ&ü#Äd¦q0µøǸüå²ÙŸÏ!HÉùãI0±r²þS³€˜ZAApøÓYüI fK)5µ5ƒ@ͪOSi 3û'ðmêƒ=Ùóç=Ýû× y*r™bÎMÛšòû[Vú7]•‹83ýfïäR¿xt|Çf¸ÁŒÔ¡ðÚª€„#ãœ'Ò ¡R]dydÄ€H‰0ng+^Ñff4|‚ÏøHRAÄ{ÌU +në3Áùà§Êþ3+@ÌÖÎ1·pЪ«hÒ100þ aåå嘸þÅÄApˆ9@ý´pYÛÚý‘éIBÁžŠ6û#V l,aqø£]­…ƒƒ ‹Øô„1ÃÁÌP ÝS¡P31[›?à˜x&LŸšreù»oVP[g¨ûÀ`ÔìÏ–ÌíXÔ¡{G´øÿ?A˜ÿÂÌAN ÈÙ@.¦,¤TsµýI²þCÍ<Ýílí`ck8È=]0ÝáÆN €Ìäéþ¿ÿ¾Ãde˜AL& ó§cø—ú ÿc/o샸tÌ@ +øÇ÷Ÿ+ý§5³…Z»þ+\ÁØ`STQÖ‘cø{ïÿŒµ}’dbåæ0±ñp>MÊ“"/'ûßÿéÅ_>ü‰*Cþ§Nà¿$¥¡`[ï?Úyòñ¯–œ@0øÓlhÿc:À¿ë+Ø:@LAÚŽø45OÖÿ:RÿÆÿ×Áú{ŽŽÖÖºBû;O~Àr€?±6†ýG¸± ÄÚõ¿Üð÷@MÐ?¦ÿÿ #í`l 1š[ÿÓ&ü#Äd¦q0µøǸüå²ÙŸÏ!HÉùãI0±r²þS³€˜ZAApøÓYüI fK)5µ5ƒ@ͪOSi 3û'ðmêƒ=Ùóç=Ýû× y*r™bÎMÛšòû[Vú7]•‹83ýfïäR¿xt|Çf¸ÁŒÔ¡ðÚª€„#ãœ'Ò ¡R]dydÄ€H‰0ng+^Ñff4|‚ÏøHRAÄ{ÌU |ØGè´£ÇÀNâ¨Ð× éÛb®=R‡äEÚTBbCøª¶DÞ¤W:›[öŠ¨$dEY%Š[Ót¼/oü¥¬½”ùP'û[Ä–~ X2­µc×42:Xµ{—%ÍøFSÓ]¢8œÞ“’˜•G&$ÚÜ|-C­l7…à›ò~»,Nv}»Æî,@HíŒÅfMè\ƒ•jLw~˜,rÿMüF]_©!Ìçªu¶KD]ÅîÅÑO¹÷šÕæ%SSJd2N„ì1«Uòêm!fÕá†ïÆ /ëÍ•‰×Ô8ê.Õ›O4E¢6:UB 5 ž Í..7’M%¼Ì¶#M´-Û\¶1êh߉PÕ;þSB%•N’ek!_>”þl€ýHåQ·8ÐmÕRëp9Þ”Ô3áØš`— ùÅ‚ÁZdžÇÑTæw÷RüÂR#Ö\¸å%u± œÝ{WܘòÃ`rRç&ƒæ°ÅPýþ‚9Ú=q…« yì†,ÝŸ÷4^¾ÿ*»Hg½ kt”PØLrœîZ`n#úíÌÁë5&×Å놄ØS~¡RÎyïþyœkô²Aªl–O#ZÏ6±ÚÄ®Z8JH’ð>â.¤}Þ<•Y8R¹j­år"e¡“@nª2i‰6r–·EnX$:ФBLÅw3[Y©]Ê’TɽÈ|ØZoóY*˜1N1.5"Ÿq}|Ã7ÇDaq*áüqdŸ«AåRkD6–*u!óÔ¸$&³^´ È ýÍ8¶öOáÏoëÓ‚úïLîÓ¼¿œ+è¶kÎ6ÙAÝ$=43Žºoô°Jü¨rOwVsr¶Ê¬ðšz¾Ž~ÿ²ºþëÁ‹êËõ-!蔄Wd=R9‹ò”l:VŽhÔïÀ³¼LôÃaìtþ8QIVæyU&Á¡û«ü\ žj_E‘{<óéYàôDËæúløa½ê£D–Îîç„xô?¹é$Ì|’"Xûü"rø—Xu[ÊÚ6·èNâ÷AŒ»®qmƒ½Éý¢¹Hx7žMxÃ_Õ[±½z ¼*K«™Zú¹úÕ°×Wý¢Øø¹.ÔR¯æES úLkéDÐ?«áäv%.;#•ûc~¨¹i @@ -8680,7 +8681,7 @@ g. Ú=;ˆðá:ØÓÏäÁÏ/én¼¡,*¢`\ÜäK}["ÊHTÆÞˆo`ÝÙýz„N¢ &j¸'µ2ó‹|K×c6Qén)' üÖœëv?.ßüê´–®PÌ£§åZ]GOŸIªvIbŒµ³ÉЄH\Ô‡óÉ}vÆé¾°å1ù{'¾ógâ݇ûmœ‡½*œ‰VákÑJÃÙ9ÿ¾<§µÈi¥ßgCL‚¶áX±rX¯=Gó‹Ûìö.BÒÓ oû~o‡´~8:_ª˜WzåHTº{‚,×d?u-ôR,ýá²ÍþcQk®‰î•üâŒ'ÄݹQ쪡³¾§Æç‰g\&ÚQ„#J©Yð#Õ²á[ƒËEßE(@˵¸x†üœ³/ö®:g]!$…US ](%v¨ åÑÜ팼`‰jî&^Ûœ?-ó@öùàjÙ÷<³ïlY?XRr$Š™£-ÑTù†~ŠÇ/0‰ÌB¯7Ù×ìYSB{@&A^UE s $DH@ ٦ϭÓ%"Òð9ÓPëñÞç}ž¡œb -ý¸Bçhµ0ÊnnL¿ñE~„éMÇv¡“LYd< gñÕ¾ìQ±íÅ EþoÉ|Ľ„\cvê´ -Y É4j"¼ÒÜçÞ»6ð¯ø»(~7qBËb“½L*&=¤ö4P'©ð·@Xáѧ†÷§€R§ ÙiîÌ#k]3§&M<~èêÆŽ¬y×–=¶÷.Ö}ìh"rr²Ë«À±æ <³$wt•°CnEÕ@¸*ùwN.߆Z r™LŽ:øõŒªOâTãPêŽ".!ÉMù?dð<Ÿ½h·Õð¯=B­›B] oº×dûJèoÛ°Æ°­TFØQêP¢úC@qSÁÅùÖ÷¥7_±¸Ôˆ ²»ÞÌ3å³_Ž¾«š’ñ #¼Ì‚ ¸~sOsÔ|ùƱ-J?§>8_@1.æXIg5ßRic¹RcÔŠª¨Ûý*GÆKVJ°îŠ<íãÞÐèHïñúa˜ô0ÂAYêÎÈÈ¿Ô-U@®—‘ì»Be×âwª\ò“C’.US>˜ôÓ»,Ø "mY)×ÿ» %´Å§o_)5ݘñÊÇNÑ÷`AG‰Ÿ9PÙ6R‚stñ¥³e›è©ü[Ueï¬ÐÆ9ÆWúÞ¿ë­QW!'M(gÖG}ú1ö%dyÓõz¹þm¤)9adz/°jE/5Ϧ`†€wƹc:…@Å“|_9,ÑçpSþ˼ËËg;VˆÁÆvÓ[¨™5–`Ú¢!¸(횈݆jª¾¯Òº@–î¤û ðÛ`¶ª&ÂU\ôqŸaá |\+.oø."—Þlˆ“Íèô‹qQõ»6Z7ZíBÏ‚$¿Y휅xÁ¬„×ez¹¦b ¼`<¤tI¥å}Y:½¼ù¼ØÅ„ÝB¹ÞVõ-¦»ƒ¹-†p¸•÷IŠËÔíò»Dmä¼CB˸hB®ºåD™¤L.ŠXG]GbK/aµT”Ú¼_¯‘p (5w»0|2¿}¶ºÊ5i¤™Ø×ùîIJŒ*D-dtš?Ý£üO<*$çŒ7}_Ø´·{MF~F~Aµüž è‚Ú;nU•nÚ—sûZ˜7ûÎKø§Ÿ‚%g¼À¢Œ[Fð}‰X]Â¥2ý¢–ä•z‹8ŽÄ¤5üµòDoÅ2µ_¯âÔ¤°mÿ¢šüj Ýîå]¼@¤FÝÎktdÇjJ×yÇ8x­öàvËÕ’í&jÏõžÇQL6¬w=ÄŸÂËUdçHßÌÜn t¿”è®þÝüÖv—ü³)¦h ?„K¤AØñì¶,á:  á®ããÛ Nàÿåóÿ ü?!`j 2†9ØÚì0Ýa ¸ƒ-ì>aþ/J€endstream +Y É4j"¼ÒÜçÞ»6ð¯ø»(~7qBËb“½L*&=¤ö4P'©ð·@Xáѧ†÷§€R§ ÙiîÌ#k]3§&M<~èêÆŽ¬y×–=¶÷.Ö}ìh"rr²Ë«À±æ <³$wt•°CnEÕ@¸*ùwN.߆Z r™LŽ:øõŒªOâTãPêŽ".!ÉMù?dð<Ÿ½h·Õð¯=B­›B] oº×dûJèoÛ°Æ°­TFØQêP¢úC@qSÁÅùÖ÷¥7_±¸Ôˆ ²»ÞÌ3å³_Ž¾«š’ñ #¼Ì‚ ¸~sOsÔ|ùƱ-J?§>8_@1.æXIg5ßRic¹RcÔŠª¨Ûý*GÆKVJ°îŠ<íãÞÐèHïñúa˜ô0ÂAYêÎÈÈ¿Ô-U@®—‘ì»Be×âwª\ò“C’.US>˜ôÓ»,Ø "mY)×ÿ» %´Å§o_)5ݘñÊÇNÑ÷`AG‰Ÿ9PÙ6R‚stñ¥³e›è©ü[Ueï¬ÐÆ9ÆWúÞ¿ë­QW!'M(gÖG}ú1ö%dyÓõz¹þm¤)9adz/°jE/5Ϧ`†€wƹc:…@Å“|_9,ÑçpSþ˼ËËg;VˆÁÆvÓ[¨™5–`Ú¢!¸(횈݆jª¾¯Òº@–î¤û ðÛ`¶ª&ÂU\ôqŸaá |\+.oø."—Þlˆ“Íèô‹qQõ»6Z7ZíBÏ‚$¿Y휅xÁ¬„×ez¹¦b ¼`<¤tI¥å}Y:½¼ù¼ØÅ„ÝB¹ÞVõ-¦»ƒ¹-†p¸•÷IŠËÔíò»Dmä¼CB˸hB®ºåD™¤L.ŠXG]GbK/aµT”Ú¼_¯‘p (5w»0|2¿}¶ºÊ5i¤™Ø×ùîIJŒ*D-dtš?Ý£üO<*$çŒ7}_Ø´·{MF~F~Aµüž è‚Ú;nU•nÚ—sûZ˜7ûÎKø§Ÿ‚%g¼À¢Œ[Fð}‰X]Â¥2ý¢–ä•z‹8ŽÄ¤5üµòDoÅ2µ_¯âÔ¤°mÿ¢šüj Ýîå]¼@¤FÝÎktdÇjJ×yÇ8x­öàvËÕ’í&jÏõžÇQL6¬w=ÄŸÂËUdçHßÌÜn t¿”è®þÝüÖv—ü³)¦h ?„K¤AØñì¶,á:  á®ããÛ Nàÿåóÿ ü?!`j 2†9ØÚì0Ýa ¸ƒ-ì>aþ/q[Àendstream endobj 995 0 obj << /Type /Font @@ -8689,14 +8690,14 @@ endobj /FirstChar 2 /LastChar 151 /Widths 1926 0 R -/BaseFont /DHCAHC+NimbusSanL-Regu +/BaseFont /CORQZL+NimbusSanL-Regu /FontDescriptor 993 0 R >> endobj 993 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /DHCAHC+NimbusSanL-Regu +/FontName /CORQZL+NimbusSanL-Regu /ItalicAngle 0 /StemV 85 /XHeight 523 @@ -8716,46 +8717,34 @@ endobj /Filter /FlateDecode >> stream -xÚíweT›ë¶.R´¸;A‹»Cq-î‡ H!P¼x‘Bq)-îîPZ(VÜÝݵ-íº{ï3ÖÝ¿ÎÙ¿î¸#ß;Ÿ9Ÿ©ï_˜è´t9el Ö E(ÎÉËÅ#Ð;[»»©C!jœ²P'Mk'0àÄdb’ƒ¬à`(DÞ -‚lò €À+**ŠÉƒºxÁÀvöp‹¾Ž!+;;Ç¿$¿UÖ^ÿ@-ÝÀvóãƒÈ êâ ‚À)þdžº nØ‚@9M­—*J% }€‚Y9´ÜSÔÀ@Ä Ä -°…ÂN@(Äü;57®G.7€ÀÍ?š< —ßÀs»¹=>Àn;˜þX8†Üm~ð(·…þ È}Ôp~ÄÉ´ np7 ìjÚ@î¿Súƒ=Ò<¢p+0Ä yÂû²lÀn.NV^¾É\`à?a¸»!vÿŠ€ÙYÁlœ@nn4Ü¿«ó¯<ÿ-{+'¯?ÖÐ?ZÿŒ w9Ùraòò=úÂ}Û!˜Ü¿‡Eb ðòü%·qwùæ‚ý)Ëï™a} ÂÊ -qòØ€l1¹5 ðG—–ÿY—¹þsMþ´ø?ÒàÿH{ÿwÍý{þÛ%þßÞç¿S+º;9iX9?À_Kð¸e 5Àï=ø½h\ÝAÿ—•3ØÉëßXý]ÑôW¤¿ÉþŽ©À­Ë!±{l '/Ï_b°›"Ød£†í¶VNÕú#ׇ؀`N`豫 -úhÄÃó7LÏ t„ü.¿à_bó÷Øõ'rn cE…*ìÿn·þÑÔzœ¸ž— ðܪCmþyøÍ#+ õøp -ñ8ù„E"<a^¿ãñ ï¿ÎêVpØ`ÂÃÅÃà xüýÇ÷_'³¿Ñ(@€P›ß3£ ·‚Ø<ŽÙ?¿a ; öØÝ?7ÿ1éœÿ <ä bÎMCâ!©éið*ÒìÞ!y“î.^äÞP—ÂZ½yÐÎש᫢¥–¿*C¹ê†Å¦ö]î6_°mõu‘8=ëLçRù1°~ÊÃ_bnfß -â6/ÄN;0|ës2©¶òÄXˆÇ`kmH[Ǽà*õp+? ýä†5€Á#/€ˆñÚǘRóŽ¸ ¯ *ÿ€9a÷æúÙ—þ¯½=g(Ÿ6)Ù³Þa0‰{<ÁfŽ -pÍ¢”2Ö/õ‰`”TèÄjš 3L¿àƒíá!ŠH»  s…?VLãT‘¹Jˆ&‰g: ÉÒѧLy‰À¸Šge0å+÷&|ÂýÀê~sóTšù‡²©ttÔRmñIëëd°9:6+¶@›ÿ䧗%«ŠA~ªÎA ý¨£±bíè0TóYòs¢1…Ðg{Ü™ü_8X—Áx!Öy4´Ê3æmü,qÕ¡Fôž¸Uœ1”=Ê™gÊ™gÆȲüwâEÉw#A¯òøJàú•BþS›•¤ònë®”{w‘?ßW#·TæJZ…å˜>}‡Ñ•ÁJJù‹”ºŠÑäÊj¿¸°[f"­u¬x^Ø( HHŠ}Q¡‚ßaŽRz8Œ¶¦µ“;jÇÐ:šÈƒÏó%^%QÓ±¬­v˜iŒ¼Æ¤|hÉÊUq”J÷¹ù »Ìã:aẖ²Åà2]½Rô¶°÷\xT; µ7L4T3FÁ°.ÌkÛ4ä»Ïuä‰qÑÅÓÅŠ ›c´ã¨ˆ“Ÿ¾Ú:‰Á˃NG!òç»EŽfµ4ƒvZi•M –Þc’þÆXÓ"Ã-­íêÆáP‡³ÕÌ$’_?Nˆyéå…ÓÕ½mÞ+à„_½‘sãÙ ’I%pazÏl›€ÿ¶uçU« ·\Û×Ðbjêìb>U¸)}{QŸNßà—¨ªw%=Ák±äfZ%Åêos[1øÉ]·êñZ¬w¹­fsƒ\û¾cx‰¾¾‰ŽµMÌ(}–"Ú\ñ|1wNkõTƒh,.Wèçh7)m|°Íü'gˆ5’S¯ŠJ2ÇM<'sÖ+ ±UÇR·¬§ëÁµ&I"AkËðÖíƒÜc»Êþª'ºø®¾bÒ^XÛÒV¶ãž‹c&jžü õ«{Aî.5ûÛd -Ž{âA‚ݧL3bü J?ÙnÁ›C#ŒGÖ:ÂûSÅŸ†¸XJ½·5^9%4•Õó’‚Ò¨î_Zúäu¼AÁÜ݇€,23sËÛZÉzÎgIÞf­35TìQ›Ã_ ?Ôn¹)-ödÙ­¤!á-æÔ‡$J›½Àzö‚õ˜»‹Š)Nü‹:¸¶’{ý[}ð|ͯÍ*Úe™à€\‡v,­:j±ªÖÙH’R<[ݧ¹}I¡ÊíÐRò´hst4ý¯3¥{Þë— à e¶A¥ÆÈ)f!ÁîÎÈWn];FuéÅTK&|Õ‹æ¾\c…GîàèE9#½‘lý¤z‡X,¾t8íèëàvO¿šåj›@’ò»²·1Z1–ÈÈWc7Ü^q7÷õÛHm®#Í4š‹9.é"घ»Ž;ʆW=™PNïÞmMj§%·™Gô(àØ/õ]-÷'?E4œ¥ºŸê ЗBáNIV}f…×–Ÿý•‰ÓBýó®aˈÖ[ i´ü%ïÎ¥”uºÄ±‹·•¢ÄÙµâŒ%Ä53ÅŸJÔ‘ñŹgu®mj:7¹1“Æ•™ãw¿(ûÓ^]š¼×ÀÔú˜¢|p©Ö¬kŸ `ìj•óOÉ9¨# ¸iZM˜`¡lÇPa´Cùç_Õª˜ -ÝìËI–Ø+¥®kª+…k{p¶MÍÍ$]Lj&”?M(ìzŽh¾ÏöÄÝá6è g*⪈}Æôš.lÄÕÉ^wïkæXÏ7eKxvù»‡ù5QÁ°Ç•Ê.ܥ˯ŒZKòQóÂsÅhã˜\«l>[êß Ý“Ñ"bÇ -idguÊ ÛáÜ‚Ñ 9¤ëË‘'jM.~×ÿfêKÃÔŸ’ SêkÉ'ë,Fèø.JìíÜÎXѶ%Ænvâš’¤¼ò\¤ëVù¹r >guΆɩ,hè‡ÓbѤÏ_9¶¯Ë`ÔT •#ÅW}gƒ|³f<×­ð8²ÿ5È âõm`cÚ—}çêã[ÿoöþ-ΣÆgLÊôµF&Žzê_Ùºœ['Xæ tqu“G.¢/­bŸºâi$g¿Ð ÿ¥ð¡^df­Ümù!gÞ²Ã3Üú3a|ê0/Àd)°FyQ­unÅ(€?v Ú<$J˜ÿžZªè–ioQÞPëP‘¼“%ÞäØ5r•°ÝZ(J¼æÔLñ{ ‰œßÍuu"@M›ÒŽxˆñE(3'_pTÜS½ù¨æpæ=*½\yíwÈ^aöÚ-6åblEcjÓry† :ÅH±Eè"I„t…39ìî씀-ÜYlZêf©^¿ÓAj÷½Ê»ŒrvŸ5ºZ­X΀9KÓîl±@žñhá½U½ê$–Ï–coXœ•À9$JŸ­4ýÕ‚“ÈŸ $i‘åqHÝy‚ê~ée—ôTG¼n²÷*³‹ß%¥ g­Sšêm²'Xk°•9¢Çõ…Ä’nïø½À©ÚAèuqf]¹IK2|—Y·k‰TK[užXbEƒD8ÆïÇSJüZâ =ÆôÒºµi3íü”‡ùµ^Ф9Ýö@»Àø†Ð­á÷˜ò.ø wœô/[¡ÄŒ\~Á‘¯>3=Ó”£½—©Àé¤YEp¢` ‰¡QÙ¨’ºa®zżžÊ*Þœzgç}¼;Ð#U’ýé -#ÄÎÝSDº“l ¹ügTù®„B'æ|pÙž2SXÁÖ =‹ç~õÎK–DÛ+Ïk¢·­ÀICÇCÜ0SApðäcZ:³ísž÷½Z÷•âKíÀDÙl”osúòÖ'+˜EŒ;úØÏb ]RN;-¿Œº(·]({5ׄX’³øö÷ô~™Ÿ=ÇŒpy¾7rB>Ý#ÛÁr{Yƒ©3ßrƒlšê¼õ~±Y¬Ø)Õ`qyûT±ŸIJ\^Òº2¶5ù¶…ŒÂ¨ÆÙ½C+âa¹ÜmyüÊ€=YÙGzm’ÕŸ>ÖÃI)ª~•¢•¾·wZ䥗QyyŒRÂfff8û“‚ -¸ÜÏ„e) ªÔ5‡Ðz}Í=1¶à‡v‰ÓG<˜'}îpÂ/òʨ^ärÁÍ)¤ƒÇ¼V²YYÍsSsôaÛA ŽPWôÔ /U®øGÎ8G”„X×ö¥ïôgd” ŸŸËÀ¿ÚrsŸc¡W8DN0|’t&sõ™9©~ }Y%ÛZˆÝñ4Ã@hÁwKÇÊ0º7ñ¤‡>–"OhIåà"5àÊtþ]ÛŸe»ÝÁ†UyåÞå¼ë\_¹j†œO" o‰¾é~iŒµb âÔwyu«•¾Ö:&[PŒÑhøvw;}V»\3¿”ÍYÍ>ìk·K¶•°Cã{Ç£¹-wd¦»ÏóQ½ødȹç>UQ\}Ó Ï à 2ÍìšsI°Œ?Á/¸™dâð[6Î…eíÖŠ¥£±J;¤àœ1NcùT)À:[êg³dSÇ·"-ûÍ· Ú£ÝRgÖ–²ØA/‡¿„aavàn–¾„ í0î®èT=:ÇÐÈKg1‹OŽœ8ð[<™+è½õJ퓶Qô»Uæû½žsl ø\]ó%»¬üîúr²0»Ñíû‘¡¯u:ÿlˆZª¥äú‘7ko |OtZc½ÜH$Z¢Zà =ˆ#j ¿ 1¢¼M ÁD§à5Yõ‡íïcE30J)R¢êö³c©Vƒý§¤Ï® KÕ{“z$ïŠàPJ°Ýë—Å£‹‘Þpí쩉nÏïKßÖÌײ«ŸêÇ+F©*Fß9Ç6]|»+(½VEãÚœ± b(N·®åäiÚܪþ -ÓEWº?Kûß“IœñáÕtÍ{Be-ë Uu£tië9ÙVåøë_onw®YH°íy‚Þ|˯©KâÉ'zÙuLÔ‚™I…¾?Cfà.mQn%¥Ÿ•I\zQ[°³D]Yí7öT¬$&+ázªŠÜ^„§P•àÇ´ômÖSXS„α¿çd±³Á¡Y>RêÑ™½²†ò…*Ÿ~ûzr”46:bŒ*Ç´H]ÅúÉ êXË—P/f Îëîw¸ÑV%.Ð-HÙ¤œùÍØÁ°ù¦µŸÏ™¿Ï³Ú/€V>ÖG—ç™~]I§ÐRúå”ù5ÝÙo<…zÅ•—Ã!rÀÜC)4ÜKÿªdÞÌ5YG¨Ò!ŠUa dV¦Ä`ȆՃ¶å|þFĹšÆ#\XZ­•c…–exÍØ⻫‹ -ðŠâÅI´ÁAM8îe¹åÌ 4+Ÿ`,NÍ| -‘†“uÞµ¡ÞEL0ÀsUÆŨ O?’t>ÕÕd(×cpÁ@‘¶DùüÊzƱ±º”u²l(èGC™þVƒa%¡³_¯Òã‰z«£+Sñú€ÏZ·öRÊä»îÛ¡MŒXsPX”èóPÿ8:í©N1–Ž[ ˜š#´â;ëRœ -jT­C©i–Tu #s¥§Ú'¨jzÇ¢’‡‘]ž>û Ó›ãé4ý}AB1ö‰pvs!œÀZý¶Ù0¸øÖ5 =YÙ‘Õ®¨=×`«²Š©«åU:¯ -$¨éå,3£¨{Q¾Qê5¨§6µh¸‰Üüß <ü‡ŸP1[½;džFoU—%÷UÒÞ,²Éš5Vo1ÀfÞ2TÝ9'szÀ´{w¢R“XáÐ㌺EæoTúRf;CHñØž;>áẨßæÞzeZ{ 碭-ÝpzÆç@r3‚ÖÚîPá8å“™ŸôU€ôGj%’vrL>íŽ9ŠúK -=JƒË¬À<2Í¢îÿ¸£»|µºÂmïÝa²‡kv¼@ˆw÷ÎÖý¢AŸyÆ«ïÌvÒDYœ32² -©òc¦Y +«Æ€§Qùsýò:ŽrM£ÅÈ*iÀ· Kö î0ÐÇkøÄ<æçó|;€^QÞâÝ@öE -ăڙ~»À?(Ç«Ì_aè3µœÌÀq•Ò·'ZÍMÈòqZ£¹§ËSÅv8à‚¼Ô[=Ä2MV*ÇE¸ì¬Ömpx†“‘ò°Œ¢Ç¸ +4a¯ã§À!¾Â2J ’¯Ôc2Ä»îú£ GЙÓØQö(„ªž0ôéÊ ÕZÅÅ`¹‰ÞÍ>QqÜY·TÓlFrÙ9Ä>‚$s™| -cúÝå99¯ vµI÷ðJÐ?½›ÉÇÎlâ—2ãÁ¯Ú÷ýŒ€%Í4ïÚ]zôMy\U¯_éCùÅ‘Oaðáׯ™I m>jzX P’·ž¿Á©Øô©:Ïûô.)¿¨h^iyˆpdÎ<öL#ÑÆ¥{¨Òܺ¾E¨ózÛ'¦îIÐÔñ`Ïõ®±G‘ß霈tYD0¸À” 0[þ´rD›X[˜Ê˜ïë‘͵¤?5Í<„»9%WÀÙ!.ÿ:ÈÝ*úœhR*C3›"Lq¹JYžC<+yîõ°mÂOSÌÖ“ç8DºVãL¸ˆ+“„¸×[9µQ|…|¨yžâ rÕÓ¨×ê±Â”ùÓxczb:¸ Æ&= -F¸lqF÷wã!ïlgVc8Agbf–FLD¿¦x9Š|s ý5þi.ñ½5ò.–so–¾¨ìû4§e5CÚ±CŠH›zrŒøòx³÷ÛÅ»+Vˆ-j¼pÎén J™m–›Ñs°pЭ@úEƒsFÚ-V^@6êI]§gIëEJ‚J[eƒÏ%K\ñ¸\%kÕבÊ}½Ï±ª·—´Æs‡2ßwýÕk“Òhý€×U%'ˆW(“ûh?œGØâˆÏlíä7+#ÐÖO'›Þÿ²ºéúÅç78' K*ûTâàÃF\Úÿq$qƒqê¦tMŠ+éM4Îâ§7·!… û9B²cr˜xÔ©*ÑEö¬!ü¯¹Š G_á¹É³Ìkñ¹ïEãA GþHŸ#ÑÙfÓT¼äû<û˜}!gÆÁ¥¬…X Wϲlq*¿ˆé©°MWfüp]ýÕST”i;Çéyù>.¯GxfœÕÛ[$« LTmç¨m–fîîe¬¢¦§P*†tÑ5[=ÑTQ3<“)u k¥ }²ùbâŽ4¯w -E,˜µ´´&¾Þ6º„¢ï¨Í$¹°ÁÜ<ÊÅ|˜oÏLŽ8ßx'%ì-ià_~±úáÚuY߉•ü]<ócÉÞ„Ä:g}ä­A™l=iÜ’Ù›Añþèuúéצ<Û­O˜àmæ5 ÜT… ò‘êÕkjÕ‹IG ¦X%-úú\¶qŸt§D Љ64>–_ÚÒâ[Nlòí3«KRÁp²–Âb]ÌJ—^»6m4×Ë'rÕÏ"d^D›y!!o<¥fN¸È%PZQ¯÷nœ•7Je( æ%.ÜÆÐFœ—Q Ú›v¢î*ï&Q_Ç1éÇ»OµMí÷S]Ðê—âO -,öŠú"Erq‰3×{1NÛZ2ú ©ôeeE?qx -‡N$ÝE¾ã!Nz(Ý}Xn×ü½aב´˜S€¯q=! ÆUwŽÛ-ÁWá‚}Ø\dæ”Qf¨ÛÁsZY THƒ-´/â«Î-k×ÖôïÒÉRZ¤™2ûx°.[ÿªt8HÕ«XE¥2‡U-äbO¶’g×Vs£I5üŒõ¤JÒ´Ù¼ëâ#LAôfvñͳýn™ÖM6H·Þî,ÙŒšípŸBIN"±Š…:2 íÀlÇV=+èw9fš ÷˜±ÁÕ"ÙÛ½ìøù<´ÓÇ™R]Y4B²,LˆéIL ׶—=™ùôÜ3BÍ]²'ÿÔ¨ ’]döŽ -ÝݦDJ)ÙŒáÉ¡fl°«Sa¬c€²cý×Øh}ë –7‘:©„ÑÅeƒ+"Ï ^Œæ?õl^}âï.<œEÖöþÒë’QzM‚iDÓÂÂLTª¬õºÒk=mùP©ú'·UŒ´/€›0òû -ä–“Tf0kˆ¯¨éÞ6¡"¸FÂéq$îDY7Êôµíª‡æ¢_Ä+ùXDLI¨#%ò8ß[”: ¨ËA|’z,¯ -ø¿BówÚ]ŒßxÅ®ª ÙÒš›¼Ï"ÌbYÓ’j=KãðÍ_€FàüÀx•ÓÕ¤'“¶?z˲ˆl®ºn~^ÃÆ/ßc1Òn6i"ø¼å!ÕBuŽÐ#PÁ€ÄÑ£ù±¨óËÏŒPÍVJ8d/¼?­H|ÀDêŸYE|ETÛÐ+MV«ô{8ê§t"'2/<Å“Õû›ÕŽÕ#qX(-an럷?æÞ)¦êÞ…s´ù:™&pRf· nn×c3ò{<ç {î1fJ=‘gq¬qQ’ƒw“¾Ò{+æNkcŠÐ°˜W¬kc+$Ó UÁ#/´®¾òËñfØô}’‡3ðKµù>MÁKÚR‰ûDû­˜ ¼ðM]eËÛuô¯‹ÙŒDÔ6A-Æw¢Á¾êÉöSÛ2•8H¬ó9NS‹²õ"ö• ›ˆhÉôD,,»O&stÃÕZ<1›pxÍ6L½â«c÷Ë섉Λä7ÛǸ{Ò0ÀÍÎ\vÙsùÕw’qò¸%‚‹c4©ŒÆ7ïF#å:¦ÚÐÛ*Ší ò• -rÒÛdê9ñb÷Cæ½óG„á·|9]°Qˆí3ˆ¥8ö•'|2 jK¢´”6¾Y¦·ü–ū؆Mì{"¶¶¤~lú…W²ÌÅ£¥ZI¼ýÇCLTb¼Ø¨ñÉ®-üGOdfEæ—ôk'Ì,³q½Š°ÊšBa›=As_|û¢Õå|šEñ ¦Ùá`uͶ‰:ïp0nÚ”Û+•¥`¯|,_x*¦«;"“T+Bò%Þ}êΈ†õ<õÐMþÙË1Å¢~aEê#0k’Å{¯)QOr­à´¢.ôÄJ¹UâzU_0K‘E³¤ïB=÷eôP–ÃÜÍôC>QR‰øÁÆ“Úå{òë#>Ĥ¯”¤BÄœ“m§EÅÕé³:¸·Â¾ËmŽŠÞ:òpzÝÚ>iŸ÷gc_³wgÓñ¶H|¾âÅèzïÚq÷E)”×[‚¢ñS?ü¦ã4ûÁÀ[<\ÍÕ`ö&“i -Q^ ±ëkB˶ÉÝÏW)´XI6°,}¥¬>Ñ­ -ff|óéæîDÈ[(-’°1MXü’µÌǨæ¹Ð1½æÄCÍ`SN¡‡ÒÅ»ïaÏB±³7,PÄ_ˆ•Žp²Ï‰çó×CG®t¹=6Jøwº‡P×±f×öËÌŸ õò–ÙÍ·¿)—UôÑþN¶Õ2¤C.®;—ÿÔvcƒ‹&çî¼Ð›íø¡¢ ?’!sÛ yvØ·ïœÒÎkYiÌçhbÏ0¾IDê.¶Y_^¤+<@<«Nk¿±eopô³…+¥ºêhC‹0Hó³cŒÆÜHf Õ»uÎTÉ "[1ò™8ÍQ áMBšHiô*ó]ƽ ¨Y©ipá8i­Þñó°žÇª<FßèÍNa¼°ã¹Q[£ðbd Yfwp“—µ©Â·{äBŽT.‡)çN¨5# Ü\8£ ¦oåc—j9^ ÐbYHËoùIà3Ò"¾œ½OÒU›7œëí Ú£xÖ°´ =|MÆË•’ëé÷\Êã®›½›ÊLs (iï*{–2w}À ‚Sq¤”œz¬4XBc°ˆ/­ùšNߧ}‹ÆO"¼¸ò^µ¯Å•m¹•÷h„‰rd,ŒÛà½ûJtF ˆÛÑW¤\ʯ¡q—9-1;Š ’‡Vû·U¢“Äç ½—»ÁD“™A72<öO• ‘6üVCRð³U$· $„Tyl-™üÏ;é4Ðì±ÓÈ„C퉊{ì7–·êë—Ó§è~HË”¼}™+e¦œu1Ïß‘ØU)Ô:·@ïRQuÜ|¯žìÀ·=´6¦òµ”£Iï3VNîôĹÏÃ|)nðËÛ—[®,—èr¶Lß­âØʼnÐ?¾çy1·ãmõé–:”ˆDÈsQuMÀ4‘eÖ*d›K ¿hwŸZÉa…Í“éœcg¸»EXïŠÅ÷‰OÙ#Åî~ý¨bõ*Ú¼W5¤ýXÿ!à%Kìë•(À - a¤)•Y°žeDÿ­ö‡Ú—«~‰ÕofØB8ûzIÅ‹‹—ç"ç6ZŠõæ ï?|ÙÊËûêÞVÓjˆóý ª¾$ù…è¾™A_%ãè -½=7c…ÙG¬èÎ35µmªâÊÉmqZ†\B‘[›¸46ÊÎõÉé1‹äp#T‹ÀY̼†Ü¼²µ8c1@Ìõb$ýZÃ>ËA‡ýÿ Z*9/‹[ qM%ÛZîÔ3Ÿ"Å÷OÙýklT¢HFkmºYüéA3—¾OpkÄ·\;±©ô‰ãìµêOX.š²ÃÙZ|©9K>ø -[L-‘×_ÎlrÉÁ~Õ?·åSç& ‰Å¬}+ž¾†¸WfÊ5na­¸À®ª|êkS=öê[¢8ˆžºÐ(ú°Oæ*ÔØ…ª\LêÊ°_PÄê:‚܆Ÿ0 -o¶d©Wr‘ÓÕ$EŠÚÜÍyÆokjÄÀ”*€Ò¤'ñË']Çåú®8šŸªBžß%[Ž1FôõU~zË7†Ÿ¿Ñ&¤”D·=.Eå°¹úiˆH× |v`—þ /õ«”WÕw°õ‚I ¾ª@+a®ó(©±ãA5¡=y=£­ñxç>USåD»<çÆÍMUÔ›€ÙlE— û†wRŽ{ÞÉíkGo-îçDq±¯R®¾  …ù ¤í€‹p¼ ìoB:04B»Ëß *pº¤¯O*=¾oFäÉ°ïCÀIüŠkú$ÛÆò wLv'1W—8w. +xÚíweT›ë¶.R´¸;A‹»Cq-î H!P¼x‘Bq)-îîPZ(VÜÝݵ-íº{ï3ÖÝ¿ÎÙ¿î¸#ß;Ÿ9Ÿ©ï_˜è´t9el V E(ÎÉËÅ#Ð;[¹»©C!jœ²P'M+'0àÄdb’ƒ€p0"„ƒÄ† €<ÈÀÇàÅdÈA]¼``;{8€E_Ç•ã_’ß*+¯ –n`;€ùñÁäuqAàÿcC]·lÁN €œ¦ÖK %‹’†>@ Á€N-÷ÇT¬j`kÄ Ä +°…ÂNÖPˆ øwjn\\2n ÀÍd ~4yZƒ\~CÌìæöø »ì`@ü±p( ±vr·ùÀ£Üú' ôQÃù{$Ó‚ºÁݬa`8àÑ«–¼â_qÂíðß¾ÝÀ0jû¨iµvÿÒì‘æ…Á7ä ÿíË +°»¹8½}?’¹ÀÀÂpwCìþ²Âlœ@nn4Ü¿«ó¯<ÿ-{ ‹‹“×kè­Ɔ»œl¹0yù}ZÃ}Û!˜Ü¿‡Eb ðòü%·qwùæ‚ý)Ëï™a} h…8yl@¶˜ÜPø£KËÿ¬Ë\ÿ¹&ÿZüið¤½ÿ»æþ½Gÿíÿoïóß©Ýœ4€Îð×’Éb} 6GÇfÅhóŸüô²dU1ÈOÕ9è#á¯u4@ö׎H5Ÿ%?'ÊS}¶ÇÉÿ…ƒuŒbµ‘GC«Ï—xA–DM ;IJ¶Úa¦1ò“ò¡%+#TÅQ*Ýçæ/ì2ë„…ëZʃËtõJÑÛÂÞsáQí4ÔÜ0ÑPÍú0¯mÓï>ב'ÆEO+€lŽÑŽ£R<"N~øjë$/:…ÈŸï9šÕÒ Úi¥U6-LXzI"ø`M‹ ·´¶W¨‡CÎV3“H~ý8!^䥗NW÷¶ x¯X€J|õFÎg/H&•À…é=³mþÛÖW­6Þrm_C‹a¨©³‹ùTá¦ôíuD}:}ƒ_¢ªÞ•ô¯Å’wši•«¿Ím9ÄXà'wݪÇk °ÚåÎæ¹ö}Ç>ð}}k›6˜Qú,E´¹âùbîœÖê©ÑX\®ÐÏÑn6RÚø`šùOÎ1j$§^•dŽ›xNæ­Wb«Ž¥nYO׃jM’D‚Ö–‡a­Û¹Çv•ýUOtñ]}Ť½°¶¥¶ãž‹c&jžü õ«{Aî.5ûÛd +Ž{âA‚ݧL3bü J?ÙnÁ›C#ŒGV:ÂûSÅŸ†¸XJ½·5^9%4•Õó’‚Ò¨î_Zúäu¼AÁÜ݇€,23sËÛZÉzÎgIÞf­35TìQ›Ã_ ?Ôn¹)-ödÙ­¤!á-æÔ‡$J›½Àzö‚õ˜»‹Š)Nü‹:¸¶’{ý[}ð|ͯÍ*Úe™à€\‡v,­:j±ªÖÙH’R<[ݧ¹}I¡ÊíÐRò´hst4ý¯3¥{Þë— à e¶A¥ÆÈ)f!ÁîÎÈWn];FuéÅTK&|Õ‹æ¾\c…GîàèE9#½‘lý¤z‡X,¾t8íèëàvO¿šåj›@’ò»²·1Z1–ÈÈWc7Ü^q7÷õÛHm®#Í4š‹9.é"घ»Ž;ʆW=™PNïÞmMj§%·™Gô(àØ/õ]-÷'?E4œ¥ºŸê ЗBáNIV}ÄkËÏþÊÄi¡þy×°eDë­‰4Z~ˆ’wçRÊ:]â‡ØÅÛJQâìÚqÆâš™âO%êÈøâܳ„:×65›Ü˜I ãÊÌñ»_”ýi¯.MÞk`j}LÑ >¸TkÖµÏ0vµÊù§äÔPÜ4['L°P¶c¨°Ú¡üó¯jUL…nöŒå$Kì•R×5UŽ•Âµ=8Û¦æf‚®cDÊŸ&v=Ç4ßg{âîðFtÐ3qUÄ>czM6âêd¯»÷5s¬ç›²%<;ˆüÝÃüš¨`ØãJeîÒåWF­%ù¨yá9b´qm\«l>[êß Ý“Ñ"bÇ +idguÊ ÛáÜ‚Ñ 9¤ëË‘'jM.~×ÿfêKÃÔŸ’ SêkÉ'ë,Fèø.JìíÜÎXѶ%Ænvâš’¤c}å¹H×­òså|Îêœ “SYÐЧŢIŸ1¾rl_—Á¨©*GŠ¯ú"ÎùfÅx®[áqdÿk3@ÄëÛÀ Æþ´/úÎÕÇ·þßì/6ü-ZœG%Θ”ékL:õÔ¾²u9·2N&°ÌAéâ*ê&\D_cŸºâi$g¿Ð ÿ¥ð¡^df­Ümù!gÞ²Ã3Üú3a|ê0/Àd)°FyQ­unÅ(€?v Ú<$f-”1ÿ=ÿ´TÑ-ÓÞ¢¼¡Ö¡"7x'K¼É±kä*a»´P”xÍ©™â÷@9¿›ëê8D€š6¥ñ1*ã;ŠPfN¾à¨¸§zóQÍáÌ{Tz¹òÚï½Âìµ[lÊ%ÄØŠÆÔ¦åò AuŠ‘b‹ÐD’é +grØÝÙ)[¸³Ø´ÔÍR½§ƒÔî{•wåì>ktµZ±œs–¦ÝÙb5ýÕ‚“ÈŸ $i‘åqHÝ[óÕýÒË.é©ŽxÝdïUf¿K KÎZ§4ÕÛ&eO°Ò`+sDë ‰%ÝÞñ!zSµ‚Ðëâ̺r“–dø$.³nש–¶ê<±HƒD8ÆïÇSJüZâ =ÆôÒªµi3íü”‡ùµ^Ф9Ýö@»Àø†Ð­á÷˜ò.ø wœô/[¡ÄŒ\~Á‘¯>3=Ó”£½—©Àé¤YEp¢` ‰¡QÙ¨’ºa®zżžÊ*Þœzgç}¼;Ð#U’ýé +#ÄÎÝSDº“l ¹ügTù®„B'æ|pÙž2SXÁÖ =‹ç~õÎK–DÛ+Ïk¢·­ÀICÇCÜ0SApðäcZ:³ísž÷½Z÷•âKíÀDÙl”osúòÖ'+˜EŒ;úØÏb ]RN;-¿Œº(·]({5ׄX’³øö÷ô~™Ÿ=ÇŒpy¾7rB>Ý#ÛÁr{Yƒ©3ßrƒlšê¼õ~±Y¬Ø)Õ`qyûT±ŸIJ\^Òª2¶5ù¶…ŒÂ¨ÆÙ½C+âa¹ÜmyüÊ€=YÙGzm’ÕŸ>ÖÃI)ª~•¢•¾·wZ䥗QyyŒRÂfff8û“‚ +Ãz¹Ÿ ËR@T©k¡õúš{þbl?Àí §Ž( ±®íKßéÏÈ(A??—µåæ>ÇB¯pˆœ`ø$éLæ&ê3sRý@û²J¶µ»ãi†Ð‚ï–Ð0º7ñ¤‡>–"OhIåà"5àÊtþ]ÛŸe»ÝÁ†UyåÞå¼ë\_¹j†œO" o‰¾é~iŒµ +b âÔwyu«•¾Ö:°N¶ £Ñ(ðíî vú¬v¹f~)›³š+|ØÿÖÞÜ.ÙVÂ7îEŒæ¶Ü‘™î>ÏGôâ“!çžûTEqõM7<'€3È4³kÎ}$Án0þ¿4âf’‰Ã7nÙ8–ýµ[+–Ž˜vHÁ9cœÆò©R€u·ÔÏfɦŽoEZö›o´G»¥Î¬-e±ƒ^, ÃÂìÀÝ,} Úa:Ü]7Щ ztŽ¡)—ÏbŸ9qà·x2WÐ{ë•Ú'm£èw/ªÌ÷3z=çØ@ð¹ºæKvYùÝõådav£Û5ö#…C_«tþÙµTKÉ/ô#oÖÞ@øžè´Æz¹‘H4´DµÀzGÔ A~bDy›Ö‚×dÕR´¿ÍÀ(¥H‰ªØÏŽ¥Z öŸ’>»&,UïM6ꑼ+‚C)iÀvw®_.Fzõ³§r$b¸y<¿/}{X3_Ë®~ª¯m¤Z¨}?äÛtMðí® ôZks"ÄN,ˆ¡8ݪ–“§is«ú+|L]éþ,íC|O&qƇWÓ5ï= +•µD¬&TÕÒ¥­Jäd[•ã¯½¹Ý¹f= Á¶ç zð /¾N¤.‰'Ÿèe×1Q f&úþ ™»´9D¹•”~V&qéEmÁVÌuedµßØS±’˜¬„ë©*r{~œBU‚ÓvзYOaM:Çþž“IÄ·fùH©GgöÊÊr¨|úíëÉQÒtÚèˆ1ªÓ"u=ë'/¨c,_B½˜i$8K¬ºßáFK\ [²'H9󛱃aóM j?Ÿ3Ÿgµ7:^­4|¬.Ï3ý<º’N¡¥ôË)ókº³ßx +õŠ+/‡)Bä$€¹‡Rh¸—þUɼ™9"j²ŽP¥C«ÃȬL‰Á «mËùüˆs5 F¸°´Z+Ç* +-Ëðš±ÅwWë+Š'Ñ5ḗå–33Ь|‚±85ó)PD~LÖ@Lx׆z1ÂÏUU7N£2<ýHÒùTW“¡`\=ÀEÚåó+«ÇÆêRÖÉR°¡  eú[ †•„Î~½JSŒ'ê­Ž®LÅë>HhÝÚK)“ï~¸oG„n41bÍAaeP¢ÏCýãè´§:ÅX:n5`jŽÐŠï¬Kq*¨IPµA¤¦YRÕ1ŒxÌ•žjŸ ªé‹JZFvyúì$,hNobŒk¦Ó4ö÷ ýÅØ'ÂÙÍ…pkõÛfÃàâ[×,ôdeGÀ7\Q{®ÁÀ²Š©«åU:¯ +$¨éå,3£¨{Q¾Qê5¨§6µh¸‰Üüß <ü‡ŸP1[½;džFoU—%÷UÒÞ,²Éš5Vo1ÀfÞ2TÝ9'szÖi÷îD¥&±Â¡3Æu‹Ìߨô¥Ìv†â±=w|ÂÃuQ¿Í½õÊ´òÎE[[ºÿþàôŒÏäf­µÝ¡ÂqÊ'3?é«éÔJ$íä˜|Úsõ—z”—YydšEÝþq5:Fwùju…ÛÞ»Ãd×ìxîî­ûEƒ>óŒWß™? í¤‰²8gddR)äÇL³(VVY7žFåÏõË;è8Ê5Z#«¤Y¿]²mt‡>^Ãï$æ1?ŸçÛôŠòïj´/âÉj¦YvÁÁJ^²õN:îeÚ}_ÛzM“»z.z1Ã>TCN‘oÄêå´óðäxübúÙÉ¢óÂYñ=Q¹i—QgOIî1ûKz 鵧÷C wgÞö‚‘KçÒÌGÔ¨ÁÙd=XIV»,Ö×]ˆìªl +Í/.qù{„l7LØ +¯b(æ¨@<¨é· ür±Êü%†þ0SËÉ W)}{¢ÕÜ„,§5š{ºì1Ul‡.ÈK0ð!–ÉÚd¥¢q\„˸nûËÀ€CÀ3œŒ$‡e=ÆmX¡ {?ñ–QJ~¥“!Þu×Mè8‚ΜƎ²G!Tõ„¡OïP5¨ƒå&z[4ûDeÄMpgÝRM³Éeçû’Ìeò)Œéw—wtæP伂Ø!Ô&ÝÃ+Aÿôn&;³‰_ÊŒ¿jß÷3–4Ó¼k7vQèÑ7eäqU½~¥Aä?D>…ÁC†_¿f&e,´ù<ªéae€ò@íÃléüDë‹œ’æÇK’r!¥0» S¸ÚBtü‘¥ò7>:}}趵Uÿ̶gG;«Xô¼ïp?Jy<Ú¡m»=á}2ö<ì Îì,ç;k=Ÿ˜ rZŽ¤ØFlù@IÜxþ§bÓ§ê<ïÓ»¤ü¢¢yx¥å!‘9óØ3D—î¡Js«ú¡ÎëmŸ˜º'AS[ă=7Ö»ÆE|§s"ÒeÁ 릅Ùò§•#ÚÖµ…©Œùn±Ù\KúSÓÌC¸›SrÜ‘âò¯ƒÜÑçD“RšÙaŠËUÊòzäYÉs'¨‡mx˜b¶ž<Ç!ÒµgÂE\™$ĽÞÊ!¨â+äC-ȃô_«žF͸V†¤ÈŸÆóÐÓÁM06éV0Âe‹80º¿£ xg;³à :3³4b"‚˜ø5ÅËQä›é¯ñLs‰ï­‘w±œÃx³ôEeßß ¡8-«á)‹¦¼¡óÖŒRDÚÔëctÀ—Ç›½ß.Þ]R ¶¨iðÂ=8§»5(e¶YnFÎÁÂA·é Îi·XyIÙ¨'už%­) *m• >—,qÅãr•¬U_G*÷õ>ǪÞ^ÒÏVÈ|ßõW¯MJ£õ³¾®*9A¼B™ÜÏp@+øá<¢ÀG|fk'¿AX©¶~:ÉØôþð¦oèŸß<àœ€,©ìS‰ƒqiÿÇ‘Ä Æ©›Ò5)®¤7Ñ8‹ŸÞ܆6ìçÉŽÉaâQ§ªDqØw²†ð¿æ*&}…ç&?Ì2¯Äoä¾El—J8ªðGú‰Î6똦â%‡ØçÙÇì 93. d-Äj¸z–e‹SùELO…åhº0Cà‡ëꯞ¢¢äHÛ9NÏË÷qy=Â3{ä¬ÞÞ"Y]`¢j;Gm³4sw/c5=…R‘0¤‹®™øD{PEÍDðL¦ÔM,¬•.`ôÉ拉;Ò¼Þ)±`ÖÒÒn˜øzÛ芾£Z4“äÂró(ó=`¼m<39â|ã”°·¤ùøõ벾+ù»!yæÇ2’½ ‰uÎúÈ[ƒ2ÙzÒ¸%³7ƒâýÑëôÓ5®My(¶[Ÿ0ÁÛÌk*ÖrS2ÈsDªW¯U¨U/&%˜b•´èësÙÆý}NÐ:%@'ÚÐø X~iwJ‹o9±É·Ï¬.IÃÉZ +‹u1+i\nxíÚX´Ñ\/ŸÈU?‹yunæm„„¼ðü•š95â"—tBiE½Þ»qVzÜ(•¡€˜—¸pCüCq^F=‚$@hoÚ‰º?¨¼o˜D5B||Ǥ?ïR<Õ6µßOuA«_Š?)°Ø+ê‹ÉaÄ%ÎD\ïÅ8mkÉè4¤Ò—•ýÄá):‘LtyøŽ‡8Eè¡t÷a¹]óWô†]GÒbN¾Æõ„0WÝ9n·_ „ öas‘™SvF™¡nÏieR! ¶Ð¾Xˆ¯:·¬][Ó¿K'Kmh‘fÊìàÁº<6nõ«Òá U¯b•ÊVµ‹=ÙJ:Lœ][E Ìu4Ž&Õð3Ö“*IÓfóZ¬‹0Ñ›ÙÅ7Ïö»eZ7Ù Ýz»w²d3j¶Ã} +%9‰üÅ*rêTÈ€¶³qXõ¬ ßyä ˜ib€ÞW`ÆW‹do÷>²ãçóÐNgJueÑɲ0!¦'E0-\cØ^ödæÓ pÏ5wÉžüS£‚JJt‘Ù;*tw›)¥xd3†'‡š±Á®N…±ŽÊŽõ_c£õ­6XÞDê¤F— ®ˆ<'x1šÿ Ô³!xõ‰¿?¸ðpYÛûK¯KFé5 ¦M 3Q©²ÖëJ¯õ´åCm¤ê{œÜV1Ò¾nÂÈï+[NR™Á¬!¾¢¦{Û\„Šà §Çi|¸eÝ(?Ò׶«v˜‹~¯äc1%¡Ž”Èã|(u<P—ƒø%ôX^ð-„æï´»¿ñŠ]U²¥57xŸE˜Å²¦?$Õz–Æ᛿Àù­ãUNW“žLÚþè-Ë>"²¹êºùy ¿|ÅH»Ù¤‰àó–‡T Õ9B@SPDæÇ¢Î/?3B5[(ià½ðþ´"ñ©fYTQlð¹µÚ†^i²Z¥‡ØÃQ?¥Û9‘™xá)ž¬Þ¯Ø¬v¬éŒÃBi s[ÿ¼ý1÷N1U÷.œ£Í×É4“2»us»›˜‘ßã9gØs1Sê‰<‹c‹’ä¼›ôÕÞ™;­Œ)BÃb^±®­LƒT¼Ðº~øfÈ/wÄ[˜aÓ÷IÎÀ/Õæxø47.iK=$îí·b.ðÂ7ñœ©kNð¹896Â3¼÷ût•-o×Ñ¿.f3YPÛµ߉ûª'ÛOmËTâ ±vÎç8MA,ÊÖ‹ØW.l"¢%Ó±°ì>™ÌÑ WkñÄlÂá5Û0õŠ¯ŽÝ/³&>:o’ßlãîIÃ7C8sÙeCÎåWßIÆÉã–.ŽÑ¤2ß¼h”ë˜jCo«(N´_4ÈW(ÈHo“©çÄ;ˆÝ™÷Άßò}äHtÁFq ¶Ï :”âØTœðÉ4¨-‰BÐRZØøfõ™Þò[¯b6±ï‰ØÚ’^ø±éz\É2_Œ–j%ñö1Q‰ñb£Æ[$»¶ð=‘™Y˜_Я0³ÌÆõ*Â*k +…möÍ}ñí‹V—óiÅ'˜f{ü…O¬«k¶M,Ðy‡ƒÙpÓÖ Ü^©,{åcùÖg bºº#2Iµ"$_âݧîl€hXÏSÝá‘=°S,úç@PY“,Þ+xM‰z’k½§…|u¡'VÊ­×ë¨úz„YŠ,š%}ê¹/£‡²æn¦ò‰’JÄ6žÔ.ß“_ñ!&}¥< "æœl;¥À(*®NŸõÐÁ½ö]n tTôÖ–…ÓëÖþðIû|¸?ûš½;›Ž·Eâóï(F×{׎»/‚L¡¼ÞŸúá7§ÙÞâáj®³7™äHSˆòJˆ]_Z¶Mî~¾J¡ÅJÊ°eé+eõ‰nUØ03ã›H7w'BÞBh‘„iÂâ—¬d>F5Ï…Žé5'j›r +=œ.†Ü}{Š½ar nüB¬t„ë”}N<§˜¿:r¥Ëí±QÀ¿CÐ}<„ºŽ5»¶_fþ­—·Ìnn¼ý%H¹¬¢ö×p²­–!rqݹü§¶\49wßà…ÞlÇù‘ ™ÛNȳþm|ç”v^ËJc>ÖÆ!ö ã›D¤îb›õåEºÂijê´öëQöG?[¸Rªkñ¡Ž6´ˆ4?Û­¡sì‘јɬa¢z·Î™*yAd+F>S§9 +$¼IH !íƒ^e¾Ë¸wc5+5 .'­Õ;~VóX•çÏè½¹Â)Œ7v<7jk^Œ¬!Ëìnò²¶‚"Uøv\È‘jÂÂå0åÜ µf$”› g´­ƒé[AùØ¥ZŽƒ´XÒ2Á[~øŒ´ˆ/gï“tÕæ çz{ƒö(žµ,-hX¿&ãåJÉõÀô{.åñ×MŒÞMe¦9”´w•=K™»>`Á©8RJN=V,¡1XÄ—ÖüM§oˆÓ¾Eã'^\y¯Ú×âʶÜÊ{4ÂD92ÆmðÞ}%:#PÄíèÆ+R.å×иËÀœ–˜EÉC«ýÛ*ÑIâó€„ÞËÝ`"ÉÌ û§Ê…H ~«!)øÙ*’[Bª<¶–Lþçt höØid¡öDÅ=öË[õõËéSt?¤ŠeJ޾̕2Sκ˜çïHì*‹ê [ w©¨:n¾WOvàÛZSùZÊѤ÷+'wzâÜça¾7øåíËÆ-W–Kt9[¦ïÀ8vq"ôïÁy^Lç-äx[}º¥Î;'(%"Q ò\T]0Md™• +ÙæÃ/ÚÝç†Ã…@9¬°YbÒ sì w·+ø•@±ø>ñ){„£ØݯU¬^E›÷ª†´ë?¼d‰}½X!!Œ4¥r Ö³Œèã¿ÁþPûrÕ/±úÍ [Bg_/©xqñ²õ¹È9†„–b½9Ãû_¶òò¾º·Õ´â|?¨ª/I~!ºofÐWÉ8ºBoÏÍXaö‘0+º³ÃLM­A›ª¸rr[„–!—PäÖ&.²…ƒs}2GzÌ"ya½*‚Eà,f^Cn^ÙZœ‹± æz1’~­aŸå ÃþŒ-•œ—Å-¸¦’m- wê™O ‘âû§l‚þ56*Q$£µÇ6Ý,þô ™Ë ß'¸‰5â[®ØTz‹‰ÄñöZõ'¬ MÙál-¾Ôœ%HüÆN…-¦–Èë/g6¹ä`¿êŸÛò©óÄbÖ¾O_CÜ+3å·°R\`WU>õµ©ž{õ-QDO]h}Ø'sjìBU.&ueØ/¨bu‡AnÃO…7[²‹T+"èŸÓ¾[}M=NœBŠ}¹Èéj’"Emî‰æ<ã·55b`J@iÒ“øå“®ãr}WM‹ÏU!Ïï’-Ç#úz*?½åÃÏßhRJ¢Û—¢rXŠ\ý4D¤‰ë¶~v`—þ /õ«”WÕw°Õ‚I ¾ª@+a®ó(©±ãA5¡=y=£­ñxç>USåD»<çÆÍMUÔ›€ÙlE— û†wRŽ{ÞÉíkGo-îçDq±¯R®¾  …ù ¤í€‹p¼ ìoB:04B»Ëß *pº¤¯O*=¾oFäÉ°ïCÀIüŠkú$ÛÆò wLv'1W—8w. OêX¡gŠÛm9#Êó2Ôq -ÓRLvÏÍŒÆ/Ï7Xy!r8Ë!MÔ4ócK v&½›Ä4á”UO-EyÂTóT­âÑÕì}3Þ5ªV¡H·>”œ³"M*œjnøÏ3°ï|Ú÷×’4²{óÝéL¬!àW”¬Pfœ«ÙýFGó¼Õ‰}j™j컓íRÜAñÓ5Ý«rà)vw º'-¢ßGrËpnvÙ1AÛõ ·ºó\1sNñ&b®]?Mr)smWÅ€ÑûäÌ uQØÉ«N•ä"l•âaLGEí,¯Â·[Á×ì<2±?®¸k´.5ó÷Õ–»ïĉìðOµ2¹ŠqBÂ/1¡3oÌò¬²P¢t?r>qŒ>Øçg(Ò6#ï0õLy¯Gûaš”GêÓ`ì>!úáJ(µ°îÿ,FØ™@xæWÙÔF,7tDƒ—st¡•= ¬'Ïèê©SÅp}K%Áîx\5DGËM®LT¡Cà¿H¦:ØF¯ßÛx‹:ÂukÆÂu“K›` ;üxÐŽ»Z -aàùÚîjäßÜš¨SÞ‚{ÈTvø…ùî)x“›”Vˆc†šçùÁüÿÿO@V08ÔÙ -æˆù_Â:ÐEendstream +ÓRLvÏÍŒÆ/Ï7Xy!r8Ë!MÔ4ócK v&½›Ä4á”UO-EyÂTóTñèjvŠ¾ïU«P¤[J ÎY‘&•Ç +N57üçØw> +íûkIÙǽùît&Öð+JV(3ÎÕì~££yxbŸZ¦ûn Äd»7FPütM÷ªÜú»;PÝ“Ñï#¹ƒe87»ì˜ íŒzÐ[Ýy.ž:Oôa±aØCk´¨G5b‹±xÏVE¢8G=–>\Ÿ˜9§x1×®Ÿ&¹”¹¶«bÀè}òæ…º(ìd€U§J‡ r¶Jñ0¦£¢v–WáÛ­àkö ™ØW܃5Z—ÇšyûjËÝwâDvø§Z™\«Ã@ +ãL5Å8!á—˜ÐÀÀ7fyÀ,Ô‡(ÝœA£öùŠ´ÍÈ;L=SÞëÑ~Ø„&åQ§ú4»Oˆ~¸J­,­÷–£ ìL <ó«lj#–:¢‹ÁË9ºÐÊž¶®'Ïèê©SÅp}K%Áîx\5DGËM®LT¡Cà¿H¦:ØF¯ßÛx‹:ÂukÆÂu“K›` ;üxÐŽ»Z +aàùÚîjäßÜš¨SÞ‚{ÈTvø…ùî)x“›”Vˆc†šçùÁüÿÿOX;€08ÔsÄü/t[ÐJendstream endobj 970 0 obj << /Type /Font @@ -8764,14 +8753,14 @@ endobj /FirstChar 35 /LastChar 122 /Widths 1927 0 R -/BaseFont /NZFEJI+NimbusMonL-BoldObli +/BaseFont /RONGGN+NimbusMonL-BoldObli /FontDescriptor 968 0 R >> endobj 968 0 obj << /Ascent 624 /CapHeight 552 /Descent -126 -/FontName /NZFEJI+NimbusMonL-BoldObli +/FontName /RONGGN+NimbusMonL-BoldObli /ItalicAngle -12 /StemV 103 /XHeight 439 @@ -8787,38 +8776,57 @@ endobj /Length1 1630 /Length2 10420 /Length3 532 -/Length 11286 +/Length 11287 /Filter /FlateDecode >> stream -xÚíteTœí’-î\›à.ÁÝÜ]h ‘Æww—à.!$@ð Á=¸[p· Á!—|ßœ9³Î_3ç×]·×z{½Oíª]UÏ®·è¨Õ4Ù$-ÍArŽ(;§@ì`îæªìQbÓY»©šÛƒ//´ ;Bd€P@d Y¸¹\‚‚‚htiG'/°µ À¨­¡ËÄÂÂúOË€¹×?—HW°5@ÿòâ²wtrA /ÿã@Mµ¬Àö €´ªš¾¼Ê[ã[mÀ[ä´¨¹½´bP[€ ® &€•£ ÀþïÀÂb þÓš+û —¤+puY€_Â@ž §?+À äâvu}y€]Ö.@ôå Ž0ÄÂÞÍòO/v+Ç¿ -rrq|ñpxÁ^ÈÔ]¡®.`'(à%«šŒÜßuBm€Ð?¹]Á/0ÀÑêÅÓÒÑÂíOKa/4/(†¸  OèŸ\æ €%ØÕÉèõ’û…ÌÉüWn®`ˆõ?+`¸€¬.–ö Wךî?·óÏ>ÿ¥{ ““½×_ÑŽyýg `¨+ÈÞŠ‹û%§ô%·5‚ÆñgXä!VŽ.οí–nNÿÀÜA.]㟙az)hé±÷X‚¬Ð8T¡/)Œÿ3•Ùÿ}"ÿ$þ·üo‘÷'î¿jô_>âÿí÷ü¯Ôrnöö*@‡—ø{É^¶Œ#@ ðgÏØ]v³èÿ -:€í½þ›ÀuÔý]ìðý+,¾\Š$ÄúE6.nvοÍ`W9°'ÈR µ°Xí_îì/»6Ääb†€^´ýëZ_‚89ÿÓ²[ØAþˆÀû7‚Xþkù/rýU<‡¦–š†”Ë·aÿòT{™¨–—ðit•-ÿóð‡GJÊÑàÃÆÇ`ã~Ãàççpqùý7ÿ¢áúçYu{ 9Ù99¹/ÿÿxþy2þYˆ…£åŸÉÑ„!–/ÃöŸ†?°…›‹Ë‹Æ}ÿ/Mÿãü×؃@ž ´Å9G áPÛŒìLh Q~ÿwÃîN.øþ0§ò:­’¢À*ÇŽ€ŒÈuÁJ³Çê0öú1¡ç¯^³‡NOÛ -Ì;ƒ„ö é ÓBr?¦®"ÜUúV~–`“rÌÌ#ÝXŸ³¥5>Nïê&eHc­o\PÎn˜iÜ‹ñi¯°ü-Þ×&´áÔÃàÕѧìß\3ô ô÷uœ#vm“±ä% Ò »#`ÒÇ:瑉hWúD±lÁ}Ù¡ŠïJÎçâYÊÝ¥…ŽeÌ|,PwÐÖºàóoËóÍQä‡/Kk×ØC)3ù•kKКM,y]íÝ»IWàCn‹ÿ³ÑžŸEbg¬BY¶â EœÞïýoÕÍ%¢_¹ p¿ž²Ÿ¬?BûZ·bŒ“ˆ·d*RˆÈÕÝÆø÷@÷¯¾òðgŸoÒÙÌ2ô!í¤ Øô‡~‰±ùÁpÕ}ØK³ ç¸ûC׫F%=ʾü+Þxè7§Á½€Ö4šçBé÷e©mÔ×q¨%Ù®ñF¥Ëª/4DÀxá‹dÍÛÌss¡¢¬Ù¯?¼eh%Z+r•ØÖ•,s„Q|p\6“¦«Óò·—]=¦LéB˜®ê*‡ð^á„H¢[„%)ÔhÓλÿÔnýBõ¥Ãë8yÆŽTf@F.õ5Ó¶UWbË‘Ã`î“” ‚²Ã2š&·äåêÜ+V ¢,éx”©›ÝmUØ#ÖâI±j†ð¤/]^{˽èभˢzÝŸóS¨ˆ—=¨¯ÆùN0¨®×|ï¢oäB¸F¿æÞŒþn"·3wBaÀBp®6à½ð´á›X¢1mS¯–G–èf9 et­çÞ®‹œÈCöê(1árkÝØ‹úÍâûR9/O RŸÉ/Œ®[–K‹†)5;ô‡Q¯ ¬puâi—╉Xüø’›öùÓvö®Ax-ÈEʸÄÜóãÍûÓûñ»úÅyR(qr4<³ÎJw9™Ш¥=Yì«ÂÎä÷~0fY²ÒãNªDí]÷qvqª%%›•ZLl4Ë’‹F|viˆbt0©á=e¨_h.eJÔ¦·a)PýYó‡Ýz›w„&ºÑÚàÖÂËØX©¯àÏ -µå7„ùŸ{D/kÅ:NŠº3©1fæÁª®ÖÌ>›ˆ0œÊ-~ýdžR¨X<™6Ú4’ÑzVÆ„öO”ðµaÕ= åƒd!?Õ–¦.OB)»OÞ8:eõ4 ±ÎÌYÉzM—I[Øù\ó‰i·Ó¯‡‚¶j×ÍX‰õ­æáBJ÷[ØE¾RS×ß½c&È1Om +bi¬NÈŸ -"¿ ¹V6Õ›dJ VOÆýräªÕpê9£åLV±Bï÷Õ&JÀà»<ëÈdRs΄5Ãc6âšþ=ó×½Ó#|õ‰2Ìu÷Ñà 7$tD;³Ì/>ä…¦+²Ø˜±%œýD@X;…1OžK(„ØfAH̦Ê"m… `²­èF5óRX¯.èÝÀ1_|qãŸ2 -òâ¸ÚqÍ\ó°aTúËî3ìlŸBØ0UmËç:<¢Lµp. «ŒHa>7÷ ¡$é$aLŽW*æ—ôZÇÝඔ‚ªÖß.«UŸHeYê¦äñ 4’5¡ö|Ž¥ò ïm´ÑË­çŠß“Trו?äÖÏä‹wJf–h÷3»7P¸bF»`œ/[ŸLÏ>¿¦td#ø5‡ÍPÝ®gÊ |Ô«ÕCY…#4WÚ*€¿0Z^oÖ,F±ãƒiôŽ¬÷“Ön4 ‘EMI;h!ŸQ5r²©äÂÏ †uVrŒyq ò…f~IØA¼þ8«+ö}¤&ØõÃu"ažyº-¡Íß*à ɹü#Líj)¸|›t¿Wu‹ü4°s!MRmYŒ5 0ÉWýŽƒýÝGiÅGÝD¥å²VŽ>5ºöæw&‚ß3F\Ü~'²Ý»µIËO™ù™õ¯âÑG÷4•ÌËX¥+© ¬ŠD¾I_åhkˆÀ/ÀŠr2ûHïíæ÷¹Õè9D¾ÏÔK1Íœõ.ÂÖf:¥©_ˆú™4LT™M7(¥o3iså—ò»ºö½_ÚC'¿{drmcN~µG§;ÝÚq´ ÓCLs:l ‚DFLS¤ÁrÚ'»HíÚGtH”ÁòaÀÉ©ZʼÎ÷h96åË—¤õÆ3ψ%6Ëpx¢OÚe.OSåÐœ©<³Œ)˾ F‹´®7}Ë”#)_Z¥¢Ê -7ÂÃD R ‚¿è±¡~HYÑ+RÝ,=Ä-*Òÿ‚´-°?MVC˜$™œiĵ5˜Ãù–…Z¶a8W‘OYE«Pj5úïNhŸüˆ×KÈÜœƒ[—ÝËŒÇÓ]ûʲj¿æ2^*î_5—ð߸-Ýg…û®Æ¢…û#¢žö¿ô¾¹ë0ÖÌò·h'‡Œ²Æ2—ñeMÔ´!ƒ-ËŸŒ`Êz"ýÑ`¼ŒøñÉUÅæï~Q¨’:Ü&1:Äú7'â/é|ªÖOÅ¨Ô ,‚ Qp˜¥ÒÝ5Çþ0-jŠ×Ñf‘ –šã#ƒ®fZBÕdeWYÉQ”y1°Ãgè¼*Ýy‹…ñP¹MIm]V¥‰Œ„=¸2Jc_ÞY¼itP³¬æC´KcƒHÕZ~¸=›þœ F‚Y}üR>ôa&Úø è=-—þé:êèžXA<¤k­ÍûÛÖT@"7§½Ù2†;™áRÓŸºº3û;ÓׄÎøR®¼ ¨ò;ûçVó€(§Ío –·ˆ8oMÅktöEáú‹Œ+6ì‹‚çØ{=ðEº8~꓾#‘šhl­,>õ]i^_ÇçDÁ Qê&ó¾~¸ÁkÚûïßš£BGIÁѧ´Äóé]•¬ÞOà#>+#¼‹¼ÞV·Q 9ßi¡öò}ø¨‰yF0ýäüÁä5ÇE†ˆø=V¢l%œ‚¥4è5f·ÖBОJÅÆÄ´WòÜŠVöÆêC«Wº§ê"MÞƒ@0ih”´í2ÿçE|d‘ó>s™×Æ,QáËŪ±qJr=­¡ïn<µ Å0ë’3²ë¶ª¶Þ4˜2cæ8›n½R^1][­#ÜÁZ* E#1 -eÕÔ×Ì:8}L¸Õ÷aÈN˜üŠûÔªÌéjb¾ú©;¯ ·»ñÐA¨1ÆE“¦{øc”’³l -¶§£âŠîZ<3ýrãrö, ˜ú¡ü´sÛ£¦üÇçt™-’,ÊÁš2šv^I4{|ãfg£!Æ-’ßÏ -l ,vßgª[™GV©SÓÄu rbðW„_±}\7Œ]Kö ÜÏŸŸ=8RÄC&)Ãù13S³à™ÜˆzÖó &Ü{ Òâ®;›{ºw/L=®¹>Îi%Â+06wIœ¢¸/óÆ1qx≓–^½Û‚ŸVæø aF©kH£ ¸p”6œB¨EAb¶¼4ƒ"Ògå#ß–ß]ßÙ¬’ÛžâÀÓÇQ´ÝKçãëA”œ˜jô¾ð‚p ?Ѓú'[yõ |#—Qb9rȾÃFNw®Å^™Ý~¹6”Ô™ÓEŠïábä߬í#Áæ#ÚWŒ¯*È•:ëè$4×hÔË×öÂnD¹ïÜšÇS×¢FD¸}¸ÐXëÏI¢U1Øθ3o8ú8J)u£e<Ô…Þóh|¬"=–gfíÎ1 `[u˜ÅQAØÇyïóÎp%oZ’øqa’…aÜýËC5¿‘ˆó^ÐŒ -ûôÐÓ]2Žá×ðÂŽk•|½Ç7X>럾·Ù(´Í¾o÷ŸÔÌJmˆ•oXGUç²7w&¿#7¶Ù>E"]$H&íÍĦ^û0„“•¶}™–ŠŽÓQ¬W7ó,žWïG²ó©O]k®<ž‰Ý™mH¾ uÉ%—œ)09ÅÁŠ§ŸÚšaQºÍ³~aµÝ°ó¨cw˜[K¦;ÿ -ê(O“ùRtS63ZÞ0CFv߲ͳZ -|C·r®ÿµ?Øô¼©F¨$ @¯ÍrjB/áH $=@"¿ƒ£ÓžíW'$êp+}“'!€ëeGUú!‹cI„Œ‚Ì‘JE#‹ï~üª_ò‘#’‡Ž‚æ\ÖèÍòîDñLîôx@ÚPqÈ&É@ýê4‘UªÏ0+ œeˆ×”¨ê÷]ïÔ¬ÎþÍÚ¶ûÜÂû)V¡²çOs凜åEj¨KØô„Ãzã¥ÈÖt3zÀZÁJË<ü›tBlš´7Éw1ÑD;ÓàWb´ÆhfX8h-´Ö6´kێג™ð±0vÐÕ8$Œgt¬Âzä"nÙ+¬FZ»ÏÛ ýP‚ïŽl”zß19„DkrrЈ0ÖnœËâ{ÔäÎuõu ƒÂ2éV¶KŒ -€ñLœ #Ž|DøÓú$LP÷f(.€RC¿7é@ -ÿ³±Ž“ˆ¸*„e³VtØø®Ï`Áz)£`j|S’»§²×¨?È4·¼-ó5W¾”8˜ ‰¨WÑ÷Òh òµÈ~à&JYÈ)0­ê¶D©:Ç4Á¬Ãšž“<Á$ ŽFô!uæýÔK~Smò¡z­2 ;zëJŠfÕiu°„j–ó¼ÍÏ}ÃGL0tW’e³Þ‚å»0\èœCå™xà¶}½©âV<=Xeys¯”òLV²º3#†–¡ØNs‡Nɶ¢»H*åÀ›õ³?òБ´¥Ôo0͉L ´ 0[„SS÷Ñz}k ,œOÅffáL¤ßzMÞõ‹® Q½ [ßy]£=ÇÒÔ„‰ÈPmC v¬M£F ½\áÃÎ ³‘“½›I¹Fålºs=˜•ø¨ žÕêiêÀádùY‹z±¸úž)fë’\ä14؛8æÖÑ–áB½d*ãó¬¿ÎNô®¦sËÖG–.‰£qÕÄErÓõxš1'6á2ì<›¼”gÔ*ÚP~’l¥ð±Ö 3gØr"¶*¦Ë÷Õ+ YŽ(ÓJ aûM±)ø7qùkâá•ÞŠº †µd ÷çíÌ«K^Gˆ¶J0 ‘d_áZ¨¿¢<“ÄeB¡xR¹¢¾Mœ^™Y²é)âÛ¶iÀ¿PòÅÜ¢¸‰j2ªñ¤Äœ³…nÎjÖá+Ÿ±U‹L(9 ¶ä,ÔYóÜøµÚ6ò:Æ>{Wµã1¡ò:›ýÚßípõ“DùËDÐ2V†Iq0³’Œ™}&Ïéz/–¤‰—¥¬cžÐÑ‹Å3?5¸œ´º¸ë§8ËÑs|#øq"‹åìüv÷U4Ç7%úÜÄäçÑõÕÓßÒ“³¬OèÚ-f53¨™côçìcJªÊêƒÍj[…2œC¢gŠ+§•tùÇÁŒ*°y¨AÇiÎ(JmßRÔÉtýmk¿0²n¿.UU;î質ÅÈV--q!½ôñžL MÖ³<·@[êÑaÃËBÔṆï[W¡tÌp§¨ýp 2<¾Kì-r ±ü7>ogoÝ ëO?V'ÖäôÃ7üÀ f*,ÃýÙ ê©¢eáV§#SšˆNÒ[ÚæóÛ"zʯÁ7ñ„—çÜÓw‡ñ!~h~Röb®ùÆH÷¶øV"ûàù\AÕ½Bl¤‡•-€gèƒSõ'¦Çñj“(ýŮ,gë4Zh’¨„à:“~9Ðëæû -ÉÈصM"-!J$Th ¸þ`1/ù†ñ\âîô­ÜTQ‡ÐŒÈ[ÖNåÝW…ˆãíñò Φ·9íïCÆ?öaô|ºé´Ó2gz µÚ|펋0T§ÃLÒº2ÖËàÃÍÄEßþ:–@A,™Š`k­û úm«§”G6Š+Š9gÃÀº‚r~I÷Où­è·DÊ¢[ {­‚¯´rÁ\CPÉ#†|m\¶}äh;¢µ…ÿ´fB­Ã0=­7ÍRô‡/œÀÐÀÝÔk¢1fR´^¤ÛºÙCñ®Çäß>0c(¤‚e(Ö.×ÈîJêùô -Q9!™¨‘™y0‹½zÞ½iº˜^Ì /D—Ó|eæèù>JB»!|A¿,S`&ǽï.÷L5ü±ï÷÷ˆCX æçÞŽ¬ å©aÜó‡Û /}WRèŠ"µ±gÚѾ­øÿ;.¾‹œ2Q‹)3–+À#'[¼„ì×jéXÜö¤êáEIkÀò YBUµ<ÀòÝÉÛ‹QË¢Ÿ¹Ù¨ƒ-*›žP¹KG}Ãýºm<þ@h9á¹5+3WgÁ¸g×TÅÓ_¦P ¿PØG’ž³>QîFÛ_DþÇÎP\òýò¶Þúº2ª‚á\¸+WÝÚtBVÂv±7×â«5ÒnáL ªùµGˆ´³¾i•ñ™p&û¬Ý†˜"§©NÝ›Mu}äφð<þúˆÜ¡ì«–¦É•dRþ*D²WÒ~ïözjq¡6Än¿ç,àíd#%üîç& Vç xœRðÕJ²,v~ó½="„))™ëÞ•‘-rt£gc®Áy7˜œn»’ՃĪwhN—&um6 njþ¬$)ˆ’f‚ÏF¤”d/¨4Ч2ábukÙL%‘v¼} eAhÎê{µD(”ª˜[Gݯö> ‹¤LI’MFÖí‘ðÉAëU”¤Šz9EóÖk1"ŸNM¦ÄÈÊOÙ5ÞzKYRC,Õ`Ž¢ÊSt:Ãd1Iuu“bWê×7ØßâRÕi)‘«H”ïŽù±ÒV½QÏšÒŽ%Æ“©Ö›.ªOr½ÐvéŽZÑfá])Ù?ÓzúÆä`ËÊÚÀB»ìÝNr¿ÿ ^˃ô»‹s™!"ë¢ýpWD©åYËò¬ZÆÍû 蜯 ÌrC™9OÇÖ©u¼M¦¢Q3vv0OB®ù—ùå”Í/ÐivÏÞZÀAIW„· é•ëžÜVÚ8q` Œ•¼:œz”Hn5 Ts)Ÿä t‡«·ŒÖàÊ>»Î¬‚ìŒPFùÖ„£?Îg¬šV+±¼ I›réh¢²þNâkíVHD‚ƒÓq§¡vey6’6³Õ>¼ò&f’Ù¯Þs¸µqž÷Æ<ÍÞ¡åFÂ'lÓjÃDšË ׋†™p‹Î‚ÉLbÐs*}L 6÷=AÄž+0 L^þrøV“¨XÌ“/(° Î8UBÝ‘~úóü+~‰"•jñ¯®îoÙR( jˆ‚ò.©)Å=^•aæ°›%“DBQ =#ÍéBt[­r¡ [&e‡œ 9¢¤¦ÐƒcàΛug%¯ÜæpLyTÆIX‘š£,Prb«îSàúæ„ÄZôâÕ·e\Ýt$võª¢[aZJtã!å(WcÇb†ŸyÓ(´¤4‘éÍ£ôe m'ÂWÃωPq¸ýßrÄ»÷qŽU‘²jjÓÄv‘AÈV’ÒœœsöSšXŒÚ#‹~[*LýDºûY>à†ÌK’³¹i-úá‹chåõç!ØÝ©ú«Î¶g“°:Ï2|pÄÆCׄ÷¥/šlBÿã©Ò›àÌâ7¡¿J¢Z ¡}ðÍãrçH†ÎFTõT˜<Í>Dä÷Ï19="ÒíFØCc´nlS “#‹&›Sô7ËÚ¶¦žO™èªÜsqƒµË×0>_u¿MTyÀsylîdI J•¶1Ãy÷þ¢áĸ¸á™{mÕ´ÅT±š“´÷ÞGïÁ±ÄÏ‘ÌZ ­P‘ªM ÿ#~ç¬õªOp ÀíÈ„ŠŒ0aËãÏWK†'‚äwè¼cèª=äÊPð5×€êþ@%`pCo N^³9)üÎ\›Iž·“S«ÁßR‘-‰ñÞ° YŠ §ã6'0#è–±”Ô›¤H«Ì¹½ì kIKRå‚iìÍQ¦Ù Óp]Ë¿µ“”Tû¢ —­~š…¢«îlô~â†õàØü-³er@ÜYŒÖäžîj«ýT"ŠÒãÛ¨×KÜð%ì_í[~«¶¬ƒxRåøž&'q.kýØ®ƒ”ÞÑ‘ccšÀs1\ÖEÔõŠbº<&zò¹d£}‘l—¾¢@ ¢¯uR$î-±ÌM3ñÆö΋ÇV"¸3<›6@2dm¨YežqT÷5¢2ÝA?ÒîYÎ7 ½C ”BU*uE9VA~w¢}½Y¬Ÿ#•pþ$¡-È6;ÐL Ÿ¼û»Õ…ƒõôí°zÝûgžgbAúi«á´ÅˆnÚbH›+À Ç§$X?å£ìW‹!j¬8ô3lËhß7§ÍUÔlîès5Ã¥i‹H'Î^á¦_|Zžo í l:ÕyjÔσ{]ñäS¼ d2B”ÞHg~´ê#n‡Ö7Æ -ñ,(Zà …G!½½,‹8yKæ;~ã)_Çzá8´‹öÑÊXÐ/â&_5º(Ƀ|s5š)ˆÒá+>úÏ°c²±lj×ú²ˆ%¯ñQ eÃü²†‚w¾ÙÁÜUú7|Þ–ýö‹ç4Ï‘³·¾hB²’Œh'à¨]NåD¡·T±TÎ$nñõ½Cm¼:1 S’•ÄéEÔ¨“¯Q/nHbç A( ¯öÌ'rÀ/V±¼.p:F‹ Ö“»aûÏÕwïl0yß]Žˆ”.z2“ÖŸ~ÝÊü”— ³z^¢ä&Ÿ›ÚÕ_BXÌ].ùÞ,y4DñÓY=õN[“ou1~KM“éýeülÝQЃ$¾®QJÖ\â3¢¼ÛÚ7²_ÞU2æ°(²89j¢è‘X(ÍàRêôâ&*ÔÞ—«ÿ½—R„Kó(P -ïÝåJÂYsD,~ ‹j%ûÏ.Ÿ(gªbç7ú[([7™>"Ä«1íKIkJ°rÚ(t~¨,{|†xáïÒ…CWá §­›ƒpK¾}AµþÖoX4šÝØœÙ5)köa³ŠGöfeÌƦ¦»#%ÝÅM'zŠX³¸·®ËÂV‹ïÞ,]0.Ùìëî9¡ß‡'¼Ó+}ÅNw§s»çoXçð:¥r•Çu’Ÿ¨óUºÊ‡˜BsûîsŽ1ðô]¸ÑÊágE>èé6±: ËÖªbCÀÙ‘Pý\rËÿñfóªÙL[1Ë@í×õˆL -Æý¾> X¿ ãŒ0ÛÙêpµ~è~ñnrÆÀf·*zW–Wµ8ÁˆåX“7`i vXìq|¹*ÚÓÝ;É} …ºÛKå×B@ÅSCÂHØjIúœº3NøÎOm‡êuHÎ&¯õHì{ÃNIv-%ó2þb*BÁÁˆµ.Ú¿ÉË(-0ÆÃ.™ bÉJßÒú×קínjiF^Aƒ½x”®8¤á- …Ž! `ܯ¥ LÑËëû.íS@&Ÿ$ 1~G„¡é!nó[‡:sHæÏÄzŠê÷ ÜPÒõöoaÇ"Û£]¡{;XÎ Fb úzÛçŽw¯ëö‚ôƒ ¹’Ey­ -v{Â~[ Y퉷kë[ÊF.Ëë®R2:|µ&˶ ù&~t±³íšá–kAYÆ-Ò’Qíç^Ü—³AÆPR˜R†ŸAÅ%®’+Âã9ÔR´¹«{  Ó’!ŒUW2i÷ø¹ó› oO7BÁ._«¬ëyŠ D(aá]k~®u– ®Ý‘»ÌF%ïýÐ×ÙÐdf»qÅ£ˆ=#ã j)Š¸)…ào}Ú|(¤»ó$5÷)ê:×eÝ–\KÒ|ý`S';ZU©ÜóÑâs—5žm¤_|à»Ïö˜iJTR#ŠéFeðnH©á$uv•Íž"¢òÌŽà–' ýÛ³&B#çS5ïg#Ö´¤ñÖñ?œ a™C ‚a?|¸ügz|8xÉãÅ1Ž2,ëÐœ^ˆeQ–ÂDi«ÿªè¬0½¿8ÿ÷„ ÃD‡Ž-…6Lj@t}…xO{=œéª3ñSÒ¿€u÷Õ4¼”UÆÓ'¾zlaË®ÃàvÙŠ`GÒœW^Ã#"©´5ëSèË$ÝÌ9ôÁéžpß~dêúý0Þ‚}$d_ÆJÙ˲Ën -Ÿü._¯ 7#°  ôcö›ÐB¥×¢ fÜÈ =°ŽÏÚÜÙê?½zêý0íCÊ‘!´æûtÍç«1žu?K+.®o–/þRi†-zSÇ6ÊüdrhŽtFš(eL³‚/umDðN”Vï}º3,RÖŽXí;m?´oZ92íã“Á‚?†}æ]*ý|ðÊI¡¯W•’­Ké6¤,È5ßsx˜ ™ßV$$öøu"ÛºîŒw£¸Ôf ÚÏëö-´*MŒ¹Ÿtù Þ÷š^þò9CËt¼Ìþp€ŠÚ}{¯Ò¶>ÍëýH/[óÕFI=`k9!«n¨«Š.ôÊ$s(­y4ùrðÙâV€ªáÝ·Šm.ÛŠ}Ö/¸°•åoâä£h!ðv\wþó.¡}Ó‘R#îÌÝjœeÚ5¦.)þ0—Œ¥SMœgcE²MÑ¡ç÷Öb3Ší±ªì§Eºý3¼8ÝFа)hÜ”äŒ=¸—"ëë]l䳃!Zj»©n<%Lèl›œÿËÚÿ'ø‚ÀÂt::]ìÐþ«Ë–xendstream +xÚíteTœí’-îîNÜ%¸{4îN 4Ò¸»»Kpw‚Ü'H°@p‚‡\ò}sæÌ:w~Íœ_wÝ^ëíõ>µ«vU=»Þ¢§QÓd—²t4Ë;BÝع9¸„*swWeG(]lí®jn¼|hôô2.`Ä* r tÁ–Y°€‡À-$$„FqtòvXÛ¸˜´5t™YYÙþiùã0÷þòé +±†^^<ÀöŽN`¨Û Åÿ8P ¸Ù€V{0@FUM_Aå €éŠ6à  +vÙÔÜ_Z±!`¨+˜`åè°ÿû°p„ZBþ´æÊñÂ%å +\À—0°—ØéÄp»8@\]_ÞW€µ êörnŽÔÂÞÝòO/v+Ç¿ +rrq|ñpxÁ^ÈÔ]Ý\-\ Nn€—¬j²ò×éfrû“Ûò­^<--Üÿ´ôöBó‚º PW€ØËíO.s0Àâêdò~ÉýBæäù« wWÔúŸ°\ÀÖ K{°«ë Í ÷ŸÛùgŸ€ÿÒ=ÈÉÉÞû¯hÇ¿¼þ³ˆ›+ØÞŠ›ç%§…ÛKnkóÏ°(@­Ü\Û-Ýþy€]þº ¦?3ÃüRÈÒjï °[¡qª8º½¤0ýÏTæø÷‰üoøß"ð¿EÞÿ¸ÿªÑùˆÿ·ßó¿RË»ÛÛ«€^àï%xÙ2Ž àÏž±¹þìgwðÿr€Ø{ÿ7ÿê¨ þ»ØÿàûWXÁ ôr)RPëaعy8¸þ6C\å!^`K5ˆ›… À +dÿrgÙµ¡–`{ü¢í_×úÄÅõ/˜– ÄÂúG¾¿!0Ôò_Ë‘ë¯â9*ÚúZŠ¬ÿ݆ýËSíeÜ´¼À€ÿH£«ìhùŸ‡?<ÒÒŽ^_v~n;Ïk€€/@›Ûÿ¿Éø ÷?ÏÊ 7ˆÀ‹ƒ‹‹ðòÿçŸ'ã¡‘ƒZ8Zþ™M7ÔòeØþÓð¶pwqyÑø¯ïÿ¥éœÿ{0Ø löuÑÑB$Ì63'Ë­¸`ø³¬a/7üp¸SE“ViqPcO`fÔ¦PÙc}8Gó”ðóGï…C§§ïŠ,»£½DöŒ=àÓ" +Zæ¾bÜu†NÖÝN“ +̬#Ý8ß³yà‚?—ÎîÖgu “òG$Ê©Î×.(g7ÌA´ÅAt×NXï »pšaðJR÷o®ÇF†‡zÎû¾“³æ'¢Ò‹x `2Ä9ç“Kh×øF³îÀ}Ø¥NèK)àáYÊߥ‡MgÎWª;hk]ðtåûå* À—§wkü@)7ù•gKØ™C"uSï3¸M_èKaKð³Õ^`ŸUrwªJY®ê E‚ÞÿÝoÕíâ_y-p¿žrž¬«Ý†:wb“Ivd«RƒˆÉ•Ôݧ~€ïñ?ò +äŸoÓÛ,0!í¤ŽØ ‡}ˆµùÆxÕ8H»ç¸÷M×»A%=Ú¾â#ÞtØ'§T¡h´ÏE2ïËÓºh®ã¡Ñ+r}Ó­À˺A´žÄ ‘‹ÍPEÛ¬ssáBâì¹ß|dé$;«ò€ì›@Ë\_—íä¹úô‚ï«®ž³¦ô‚a‚ÌWM5cxø8¡RèáÉŠ ÚtK?5B:¿…’Gèñ~-ÁL‘¹+˜Ù¤KsÍüݪ/©ãÈa4÷IÚAÙaM“GêruŸM’8[&eöfï @[öˆ­dF¼ž1"ùCŸ÷ÕAtÈ<ÒÎeq³îÏ¥YTÄËTüiþLFêë ¿»˜[#$ùPî äy7“¿Û(lÅÍPq…Æœë ø.¼lø¿¬Ðšv)GÔ+ Kö³ž†„1¹6ó|oŠú’ìÝSjÂíѺ±ó_ ð£ v^¢9SXžÜ´¬ W"nw§Y%\ãîÅÓ.Ã3*µ ýö!1/½öý÷œ=ƒˆF°-Š´q©dàÛëw»§÷Ów „ _—ÈÜHRbpàYtÖú+x΄'-íÉóañ‹zSß9øØe˵ÊL;©w÷ÝÇÛÅ«––n×h1³Ó®J}5â·KB§‡I‹ð,Gý@{á([ª¨6÷–5€­`ÜãÐh°}Wxæ ï­ n#´Š•†ßV¤­´%"ð< vÙ(1ÒsRrÐ'”Eƒ1¿Qu½p°fñÝF„áRîð&—ô’FÅâͲѦ•ŠÑ³2îÕ ²¢‚o ¯X®%ýùUmeöò$Œªÿäµ WNOÃ-ÁÓ™%;E¯ír$y§»€{))ý¶pîÕXðNã¦(©¹Ó¼5Bx¿ƒ]ìç)={ýÙ'ö æ©mQU õòà ÅSQbÔgaך¶æc“,IÄú™ø_ŽÜN§ñt\)*¶cèÃ~Úĉü—g=YÌjÎY°fx,FÜ3GËÑ{ײrž¯Í¯Cðq³Ç…6bÚÝŒtýׂ&21ºÖ¢SÝ ’â?öú½ ŸãΗÍ/ùn™oƒO{^U‹áªž ô¸ù)•=U·•àSÍÊj ¹9 ‚AºR90]פPˆUÃs¤qaK§Ôu yœ?P EøaþjpNp‚¿9I–¥Zw žh»ERG¬7Ûü¢2?,C‰ÕÆŒ=åàì'ÂÆ)l<˜eæ\R1Ô6(Jj6[eûUÄ0&ÇŠ~R3?•íê‚ÁûÁ¯7á)³0?ž»×Ì5Fe¸ü¾5ÓÎÁö)”SÕ¶b±Ç3ÚT 粨Έ ¦¶} %Y ‹`r¼–Xµ´¢×9í‚t¥Ömuþ6pY¯CxßB&ÇÚ4«@P¨‘¢éfÏï8Rö¨ÀøÎF½Âz±äi OSÅC^ó|D¯TPöd©ö0‹G ¥+fŒ ÆùªõÉÜâäó+!GvÂ_‹ØŒõÝz¦| G½F=ôÐ5X8"sH­"ä“åõvÃêd4„nDïH¨Åúq?yãFãÐYÌ”¬÷›òu+»Jüjž_ —ðŸx,=D†®¦bD†#£Ÿö? ½¾‚è25Ì +vèfÆŒ²§²V äLÔ´¡£=«µF0åQh0ÞFªâKw¿Œh +UÉn‰‹™âÚ“Vt*%ÆêõÓ0jt‚Š¡H”œfiBôwíqßL‹Ût4ÆYeC¤ùÉÝÖ³,ÝÔääÖÙÈ=M€uï)K¼9à3uðËÅvßàEc<Ô|§¢±.¯ÓDFÂ]›¤µoŒè-ÙÂ4:hXUó%Þ£µA¤î¬8ü¾ñœA†YüP9ôe!Þªò™“Ïx}tOª"ÓµÖæûí k*(™—ÛÝìÂÉtiÎ[ß]øeŒkBo|©F_ÑRýós§}DŒ‘Ëæ·ëDœ7¦ :ûbpÃÅÆ5Š[öÅ!‹£ƒž¢}œ?õÉÞÊJií¬)9õ[kY†\ˆ$äFà Sé¦ð¾z¸ÁkÛ…ìßš£ºM’AbNéH–83újØ|ž GüVFxùƒî“’ò~sÂÝûð7n&@ŠÌ†™¥ƒ™ ΋LQ‰{¬$¹8q„€ð+Ì~'¬åà*U[_žÜõgέèän¬*;½[нT¿Òæ1 +†…EËØ® +Ô~%@&š82—}õ`ÌM±Z¢”è “|{ã…¨m)Ù”š—Û´UµEð¡Å”2ÇÙv¬IÅg¾¶ÚD¸ƒµTŽAb)Înh0*iXppªN¼Õ÷eÌIœùˆûÔ©Ìåjb¾þ¾?¯·¿ñÐA¸5ÎM›®{øm’Š«ü‡Äžžš;¦ïë™é‡ïгgA¥´ÊŠK‚ÉÞïžC0ßj3ewH³©FÊi»ù¤Ðì ŒÛƘvH?+z²'²ÚU¿ËR-±2ªS§¡ïAäÂொ¸b¯Þ4Œ ÛHñ +Ú/XZ88VÂC&-Çy9?ß°ì•ÒŠz6ð &Âg +Ú +æi:[|º÷(J;n¸>Î…é$Æ+46wIš¥¼/Å3száIUðßîÁÏ)sþ†² 4µ¤SR^8ʈÎ"4¢ ±X^šÀ¹!2d ßVÜ]ßÙ¬SØžâÀ3ÄSvÝËèANÌ zøÀ¸E• àá™N>ýBß%¦¨U”8Î\òÏ°Qs½qWf·® ¥t'u‘"#øf™ø f‡H±ù‰÷•ê +s!ÅeÎ::‰í Í +ƒ°[Ñ»·æ 4¨‘‘ yóéÂt*?D2o",[Ž¾ŽÒÀ~´Ì‡¦°{^ê:²sæq¶þ\Ã@öu‡„}œ× ¾o ×òç¡IÕË3¬Œ“þ_žª­Ä\·ðBfœèÔا‡ÛRñŒ¿Æ—w]Ó®š=?iÄñ[ÿ„½ÉA¡k÷{³ÿ¤fVfC¢|Ã6©º˜³½'8óq´õý}ÒE¢Tòù¸´kß'$¬=êÏîŸ ‹oÄnõZ'‹¿°Þ·‡"[Á¹À`Œ”­R2uv ¦mž…·@.êÞû”­1™”`S=Ô †·àø‡. ¥É!SýìUWÜDÉ}`ØI<µ-°lÒs÷;ÿ}“U©æÏ:zG]Ú#šÓ7(kuÜ,ü–Çwee&‚^ÔæôVLÜtUwÔi?»øH+¸Ï0\Ñ//9l74“/à¹eã:©hi<û|tˆ,ýo”ƒYL Ĉx¼ÝÚ/?Þ¯„51o¢¹˜‘­$ömòÁ.³ÛTíëL²âÐú…˜Û%¸B÷ãWôÍ­÷½îý?sÀüFxÕ0<_eDß?L£„!¹ZÝ1‹´»qÊ!· ‹`p@šOÄ9÷‹@ùÂ÷‘¦µp‡oc0Û†ñÉvÒy bÈ>:}·76 +¤.°÷Ÿ¤˜E0»H·¨R¢Û ‘ê÷l“x¸ž@jùٌ뙴1óȽùbþÑc’«eGo¢äȺvÕDy_¢™Û!©lGUO¢é$~ÏÍ«×Õ»‰œ¡SW¥†+ÏgÒH}ò)å„gŠ„ÌNñ°¢!§¶fXT†îóì_X]7„„êØ=fçÖÆRο‚{*Òe?ß”ÏO–E´Ì““ßw|g]/½¦_;×ÿ8bŠoªÑ.M0h³žš0HzÑ€(â(îà(Aãtgûõ‰I:<ÀO +¤„pƒ¨ÀŸ‘r8–ÄÈ(ÈœiÔ´rHð ÇøÃRdQ¼ô”´çr~ Ö·'JgòŸÜ^ËCFd •Æl’ Ô¯N“ØÙ¤‡ ³ƒ˜!Ù†xmIªþŸõNÍšì_olµÈ#Ô G²Ž2ÿÑt $rqð*Àì+œšº¯Ö«[[PÑR6Ó8+WJÃÎ+Š¾_ô}ˆê…9úΛbUè¹–¦&Ìc†j_0Ô`§º4ÄÑ++w¿a8šMœ¬éÝ̸ȷ*çПÓêÁ¬%Dá]¯Ÿ£ OQX°ho˜eѹ.­ä¦ˆ¥ÅÞöèLÃ1·.Œ©²Œ$W™^º`ûuv¢w5—W¾9±rIƒ«&!š—¡ÇÛ†Œùe.ÉΫÍ[y^­ª‹å'éVq*?[Ó8K¦-b§R†ÂP³"’å„2Ì‘0¶ÿÑ,»b@w€&ÁQÙ­˜»PxGöøpþî⹺Ôu¤X§$#iή…:>Õ™.3 +%~hÍšäf2inm~Åf ˜ÿ»M ÁÐs‡ò&ºÍ¨Á‹ +sÑÖm{A³‰@ùŒ½^ô‹R°bGîr“5ïc4’rë¦b§Í´bjaUI‡*%ùýzc(ŒÔñeÆüÕ°ýRNG²ÎݼÈ;ÌÃL¹ ?2…vûü­jMéø+' +ž,뮕¶¥;b "ï¨û”3ñw××–H]oÚ,•^ýˆƒò‰)\=8ªvÌùà, ”ë+ A$÷y m9Vt¹ØsgÔç;”Xýiç£u‚ðê +Aϱ¸ŸÚé_ŸÄ­e»ˆì’aõÚÔdæ5ã¨:’™³Ã¨R=>çw:›ån!Eû©n QŒá©¡sJß7ŒºukGÃÖzŠs¶Ÿuý.ãÎì–à“ CqTÑ„ŽBYiÜ„‰4ù®ó€ÛøÈLö–e{ɶ€¿s Þ»\œiNC“°ôÊÅ1ÞuÓ|ù—„ñ6¯5­¯€N]Û³Q D©ü¤fíí§«ù&‡È¤¢à’ù¬˜FÍêÒ¯ê¹e¹÷ÈiË=÷#ˆU¦õ0í†VX}”°Åö¤™…[ŒŽé $¤æC£…Éq÷Ê—M#QÌB¸{¯€¬À;S†‘”ëYêzö§W¯±OgHëYÚßâ蜼•Õ;öy]ç” §:ª6¢½>L^­à%1²)©‰MýòœE{d„­|\ ˜¶<Éo³íi¿ã7T?"”ïÜ¡CMoR5G™elí˜$6f@«€:}Ŷ¥™áï'R.l$ž‚ÿe3#˜]é˜Û…™nÝdpø2…78´ +_ió!Øn*ÿ)ΠŒ +U¡Ý¡¡}”ÐGï»3WЖŸÓÉ37mé–Τ¥dü•¿Z”yS¯|ª!ÍÚãÈN5N`µ ³× ïëG¦Öù¼ÑåÛè8éÖë§ k-‹…9¡q2!ë×ÎûÈK^˜ð´b=A‹ëãš"Ï㊺jëû`‹`ñ”°2¬‰ÁhÃln[¤–nQú…±bF&ŽÁOI¾" ÏÍ’ÁV—HE„¶¥ã,‚ÃZ$ª÷sXSViHd²fÔÃíä ) K+Ë»Lóo…/œøÕ…ÜÑü|yZ «´3mtŒ}\4Ndž)èlk¶ÃÕCt:L(EË\{'ÃÁÌN6fI<ô9§¼X‘!Y•F°Ž}BG/‘ÈzßârÒéâ¡ŸêX"ÏÀù‰ðÛ‰–³KÈ›½OÔ1œŸ€`ôÅ/3µ“›ë§¿ef؞з´=;Ì"æQ{²¦Î9¦€ªÊê£íj;E²\cbgJk§5ôÇ=!=L*°7ƒ`ϲÜI”Æ¡•è“¹æÛÎadÝa .u]7½î䳪E%ô«‘Ž¤ˆAæø‡lMö³`{ÚÑÃË"ÔBZ‘Å–oï:×ÝèYàNQ‡áeyýV08:ä¡ c…Oü>Îœ>º_¬ß[ÿ²!¯±å·ûRcî/lmÑ̯Št:m™ +ÒFö’ÝÒµŸoÝ3P} ¹éI º<çš¾=LõGó—¶w-0Fº·%°݇,5à +©þ(‚ÁFzxPÙx…Uœª?1?vHÔ›DþøÚ—íŒ`Nç–, +.%<@ ÉbX ò¾ù¼F:±qí’LOŒ im>X,I½f:—¼;}O'?[Ü#b(„ÓÅgbÛGMv#Z[Ìi&6:Œ3Ðù°Ón!ÅT®yã…í¥]O±¡íò!Ý6-Jô=¦üö…™B!*Gy°v¹îAöb¨0(Fç†f FeåÃ|ÔóL×ÅôfI|!ºœã/o5G¯*ð +ïe†òsÿ²L]†ý™ÿ®¿Â+Í@êÛ¾Kü7gÜbNq˜Ÿx»r6T§†ñ,•·[ŠÞú®dnkJ4ƽéGû¶co¹ù/rËÅ,f=ÍX¯\ìÉð’rëeâp+íÉÔ#Š“7@Á œDªjù€Õ»“7“–Å?órPG;T6ßà +—`Ïæ–ûMÛ‚Y€ðj"dÉ^¤Sêl-%Ä’{}¶µžKëùMwä»íiò.=¹Ïžx+{T 'LÑt³ÑþaÙ¡¬ŸôU±WõMÎ/J83°%ýª+ºzæÍ_©¢(÷ËÈe<íéjN5ù…G#lnÕg€ý‹ ‰møVÒ6L̲£uÃ8ç a×i­ïÙïñÜÛ•™§ë³a N{¯%¶Øi¶W÷f[]¹Ãž7à1H‘Ç!¬Òþ·jYº|)aÕ¯"${ ö;÷W³ ˆË °¡v#gofZ©à÷jÛ@X½7qHRháG+IèªøùÍçîÈ\0¦”TžG_fŽèÑž¹×ÝhJ†íZö›Þ¡9}ºôµÙ£º©IÄSPJ%Ý„€D%ÅQXc>¢OmÂÍæÞ± ˜M&ëyóÊ¡={èÖ +‘pšR^Í°Ú+øt,Òr »Œœû#Ñ“‚~´”Šz5eûÎ+qbYß­ .M椨š÷9 >z+ÙÒ‘c¬õÎÐâšStzÃq)uu“WšW7ØŸâÓÔé’¨ëH•ïŽ°Ó×}PÏÚÒ%§S¨7Û.êOò¼ÑöŽ:Ñá]©Ø…jé¼übs±åm`ÝúìÝOò>þ ÑÈ‹ô»k•12û¢ýpOØñ–¼cuG N-óæ]õ2ú׫B³¼0®Ó©MoAG“ÙÔÇÌÝ]Ì“ÐkUyeó tÚ½³7pn#Adk";† ÊMOËîk]\8°…Æ@ï§ ém¦jÕÓˆ¼îxýŽÑ\y­ëü:ØÎe’C$¦z)s³È´Èú:4}Ö¥§Úú3©Ÿµ{1)NφڕåÙDúüN÷|ÈÚë˜dT\¼x¯ñÎ2Ä%¾ót{‡ŽIßðm«-n3\oZ¢z f3¨ÁÀ©Ì1 ÄÜï{±Ð$(eõÃáMâñTLþà áu$8ã4IuG†¹Ú%|Éb•z‰ ïîþO9Ò(`¨¢ò™)å=^aÖ¸»%³dbñ íérLW£r‘{U¼ ¢”¦ðƒ_ŠÃÆ«8σ †ÌGš»½m-VùÁ±I¬f‘¦v vo¶ùª7–ýÙ$¼É«œ¹uÁØ÷ÅçÒM.qøñø:d³äµ`دÒèÎe·°!øöiùs(4Sçµg+ªzš¬,L¾æ"ò»gÂØÜQ™ªn#ì±):wöYÆ™‰¯&Û³ 7«Ú”¶¦^OYèª<‹ñ£«×0¾u?ÍU«<à¹<¶÷Œ²¥…¤Ëº˜Žá|Ñra\Üð.¾²jÛa®ZÏMþñÎWïÁ±Ôß‘ÜZ0 +­P•¦C¨ð-a÷¬ójHhÀãÈŒŠŒðÅ–7€¿‘OÉÿÐy×Ð)L{Ìœ¨èg®á¦û •Ñ#½#$eÃæ¤è3KcEþnnYœ†@XE®4ÖgË‚ö+HB$£·=ù€A·œµ´Ù$UFEp)Øt ¼#=Y•¦u0W™vƒ\Ãu£àÖNJJíƒb +\Žúñb£¼ÿ‡&fCñ\Zz;ŸsqN\…½¬ºs᯹‚hüîÔ–§©¿ÁÖÎßeŸÃ¿ã¨ÜdÑHG=ÆyÚ–¥Äðö¥ –iÍÎLÐô<ÅáˆV“,QæÍÍÞ¿ñf},Õ—ðwˆ½ÒÙUÛQTÍë?e: o椣³2óS°È§î÷  ~î””ÿ<±tEAu]‡“È«bŠqW×à¾^ÊÝ,£ˆ¤”´Ð/c‹E·%ËΙº.3ô–Õ_kœ ÒV6èf;»äŽu]°üÊÍ»­t·^$+HÃÏH»LÒ©×@°c¶Jˆ?‹Õšùák§»Þi?›„||ýj…¾”ã£}Ç7cÕŽM0ošüÿÓÌ Îe£?ûu0ð-=6¦ d³U?ÿFªø0âü^R[ˆ}a¤P-!eïw§ '¾Û›qõ¦w»Î¼kÎ$B 2‚Vãé_#ûéJ¡]P¬@ƒßÒýÔ·Žr-„i±&àÐÏ°-cü^Ÿ¶×Ñ°{ {VçiFÈ8Ò“}9Cz5†›qñ~u©…®‡ªíTç©Uÿ@,îuÕ“oɈÙQf+ƒåÑjøµ„ÚÐÔ«°x7"…ìö²<òä ¹ßô—BÛ…ãØZµ•±äMjLq²'Åþöz s0•ÃGôŸáÇäS#Ø4®Íå‘+ÞÓ“ʆå-…oýrBxêôoø},‡í¿žÓ>Gm-ÜúY  ËQJ1¡Ež@&Üìâqj¾ùØH—HçÎà‘\ß;16&¨“Ð2'[Iž^DO:ù â†&z„ÁðòiÏ¿§übÏïƒd`t˜`=yvÿ\ûÖ“ïíå„hÙê¨ YóéǬ÷ù‰:ëç¥@w…¼´¾áR¢ž +©wf)“¡JïÏšiv»ÚüêK:ÚüÉvv©šŽÒAž¤ M­Òræ’µˆ +î+<)þùGÔÙȘãbœÈ¨IbGâaì´£+is_G0QÝìý¸‡ßy#]2Y&AÒxoï¨ÖÏÚ#ã‚X…U㩺öùF;óR—88¿ÖßAy ¤Ü¹ÉòÍ$Yí^IÞ~•×F¡÷GeýÁßjØ‹ñÎ)C$lÞØ0iÎJ©=·ôÓTëOÆœ9­íY}#Yrf•Ûu$8ú?`o6Y§Lalú{R3,QÜubfI4K›ú,lµHð®áÍ2„âãqÈ?îùW>á^é+õz 8Û=Â:‡× Ì|(“¯9n’zOS ÒW1Æ–74rœ{pŒ1‚§ïƒV¿ 6ÚR©§ÛÆæ,"×\-\ÇŽ€³+©Z[z+P}³}Õn¦ƒ­”m ‡öëzB6ã~_ŸP¢_ØŽqF”ãlu¸ÞnÝÈ…¥°ØM«(EæêÓHSÆH+†|ÒæG!ëÙ["m¸OU×¹.ï·ä^‘á†Èš:ÙÑ©J窘O–œ»lð~GúÅÙ½Û­µÇLRH[L(e}©*‡wGJ‹ m²«i÷S¸`q„t=âõæœF—shÏ(²(Oe¦²Õǯ9+ÎýHøºôÿ„(ËLŽ->Nf@|}…xOw=žåªóå§T@!Ûþ¼´UæÓ{þfl˾ÃnY¹ªG²Ð\|ïñ Ñ4º†ÍYôUÒ~–\†È /¸Oß² Ètý¿ïÀ>q¬b¥þȶËi &˜ù¬Ð¬ 7/¸¬â6êÁ1¡s“Ùˆ)œw§x,ò:Â<>ëò`o~ÿ +ÕçaΗŒ3SxÃïéšßOc:û~NBÒÜ.%Qò¡Æ [즉}’åÉäÐéŒ,IÚ˜f@úÚˆð­Þ» gX¤ì]ñÆ·‚ÚþhŸ´re»§gB„¾û.¹Ôøâ•#’¹½Z¦X•ÑoI[Ph¾ãô4A3¿­JLðïDuõÝïEs«Ì–µŸ7í;èTÚ˜òÞ+êò/¼4½üå{†–åx™Sy€ŠÚ{¯Òµ1Ç ëóÈ ×ðÑFI=p k51»i¬¯Ž>ìÊ$k,½}2åzPkq+HÝòöSÕwnÛª}¶¸°5­U¯¢é’Œ¡ðvÜžwK.aACsQÒœ,…ýj\„åÚ ¦.©0—Lœe³m\gSÅrm1aç÷ÖâóJ’Ýqª§ÅºÃó|8ýFnáßRÑx©(˜p/E77ûØ)FC[µÔöÒÜyK™ÑÙ ·5(¹þ—?´ÿOðÿ…=äâæèr±Cû?5–endstream endobj 962 0 obj << /Type /Font @@ -8827,14 +8835,14 @@ endobj /FirstChar 34 /LastChar 122 /Widths 1928 0 R -/BaseFont /STPRBR+NimbusMonL-ReguObli +/BaseFont /LNUYTJ+NimbusMonL-ReguObli /FontDescriptor 960 0 R >> endobj 960 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /STPRBR+NimbusMonL-ReguObli +/FontName /LNUYTJ+NimbusMonL-ReguObli /ItalicAngle -12 /StemV 43 /XHeight 426 @@ -8856,7 +8864,7 @@ endobj stream xÚ¬¶ct§_Ó%œ¤cÛøŶmÛ¶mÛ¶Ží¤£N:¶mÛvòöÿ¾gæ™u¿óiæùp­uª:»vÕ®sÖ!%TP¦4±72³·s¡e¤càÈYÚ¹:ËÚÛÉÐ ÙÛ˜þY¡II…L ],ííD ]L¹ê¦&Sc€‘““š lïàédiná PUR§¤¦¦ù/Ë?!#Ïÿéù»ÓÙÒÜ@ö÷ÇÍÔÆÞÁÖÔÎå/ÄÿõFeSS€‹…)ÀÌÒÆ ,¯ ))' —Sˆ›Ú™:Ú\l,2–ƦvΦ”3{'€Í¿c{;ËJs¦û‹%è 08;˜[þÝfêalêð‹à`êdkéìü÷`é 0w2´sùÛ{€¥±«É?þÚÍìÿEÈÁÉþo„í_ß_0{ggc'KÀ߬ -"bÿæébaèòOngË¿n€½ÙßH{c×Jú—ï/Ì_¯‹¡¥3ÀÅÔÃåŸ\F¦KgCÏ¿¹ÿ‚98Yþ‹†«³¥ù1 8™š:™Ø˜:;ÿ…ù‹ýOwþ«NÀÿV½¡ƒƒç¿vÛÿ+êq°tq6µ1£ƒfdú›ÓØåonsK;húEÒÎÌÀÈðo»‰«Ãÿô¹™:ý«AÿÌ å_†&öv6žS3hz9{—¿)ÿw*Óý÷‰üß ñ‹Àÿ-òþ¿‰ûŸýo‡øÿõ<ÿ'´˜«œ¡íßø÷ø{ÃØdÿÜ1ÿ¿XC[KÏÿCôª›þ›áÿ DÒÅðoíÌÿJÁ@Çðo£¥³˜¥‡©‰‚¥‹±ÀÌÐæoþeWµ31u²±´3ý«å¿Ú ed`øŸŠ…¥±µÝ?Mgý·ËÔÎä?™ÿ•ç_¼éåe´DD¨ÿó6ýW”Â_Õ]T<þûuÈÚ›ü¯Å?BBöoZf-;€ƒÀÁÎèûÈö/ÆÿZ˺8Yz´ÿ–ÌÀø¯ÂÿÇ÷_+Ýÿ€µ3¶7ùgJ”] íLþÖÿ2üã6vurú«ç¿Îúß‚ÿçú_#njêaj ½ºdoÌb•‘éR‘?4!¢Ý÷‡ñÇP¨CY“Jqa@­}FÄg•ÁG](]ó×W»çâ™ÃçÕáÈtòž4Ó«Ÿ¸¾Ä”½…H›dìÔ‡Aôzep™çê1Þ× 2Û Zl j‡»ŠJz¥àxSÌN×Ï”Än…¨$Oð~Æéñh]ˆÍ@ÈõEgçdÉ'ÏOä£ÃCƒ=·`½8ÔyñP¤Ün pdÑŽy8üZªUÞ‘T‹GYc6èç æ=C’èlëŒÜ›UCî¾Ww'òxÊ0ÃöŠC„®ÖN^A½É³°’:÷›ÍÈ~ÞÕt~¢Š'_»Jéã®1#žðzd Ãš-ÕÅJºEÆæöÄ»@÷?Åòì”íB! +"bÿæébaèòOngË¿n€½ÙßH{c×Jú—ï/Ì_¯‹¡¥3ÀÅÔÃåŸ\F¦KgCÏ¿¹ÿ‚98Yþ‹†«³¥ù1 8™š:™Ø˜:;ÿ…ù‹ýOwþ«NÀÿV½¡ƒƒç¿vÛÿ+êq°tq6µ1£ƒfdú›ÓØåonsK;húEÒÎÌÀÈðo»‰«Ãÿô¹™:ý«AÿÌ å_†&öv6žS3hz9{—¿)ÿw*Óý÷‰üß ñ‹Àÿ-òþ¿‰ûŸýo‡øÿõ<ÿ'´˜«œ¡íßø÷ø{ÃØdÿÜ1ÿ¿XC[KÏÿCôª›þ›áÿ DÒÅðoíÌÿJÁ@Çðo£¥³˜¥‡©‰‚¥‹±ÀÌÐæoþeWµ31u²±´3ý«å¿Ú ed`øŸŠ…¥±µÝ?Mgý·ËÔÎä?™ÿ•ç_¼é%$”T”4¨ÿó6ýW”Â_Õ]T<þûuÈÚ›ü¯Å?BBöoZf-;€ƒÀÁÎèûÈö/ÆÿZ˺8Yz´ÿ–ÌÀø¯ÂÿÇ÷_+Ýÿ€µ3¶7ùgJ”] íLþÖÿ2üã6vurú«ç¿Îúß‚ÿçú_#njêaj ½ºdoÌb•‘éR‘?4!¢Ý÷‡ñÇP¨CY“Jqa@­}FÄg•ÁG](]ó×W»çâ™ÃçÕáÈtòž4Ó«Ÿ¸¾Ä”½…H›dìÔ‡Aôzep™çê1Þ× 2Û Zl j‡»ŠJz¥àxSÌN×Ï”Än…¨$Oð~Æéñh]ˆÍ@ÈõEgçdÉ'ÏOä£ÃCƒ=·`½8ÔyñP¤Ün pdÑŽy8üZªUÞ‘T‹GYc6èç æ=C’èlëŒÜ›UCî¾Ww'òxÊ0ÃöŠC„®ÖN^A½É³°’:÷›ÍÈ~ÞÕt~¢Š'_»Jéã®1#žðzd Ãš-ÕÅJºEÆæöÄ»@÷?Åòì”íB! IŒ‡1†ýºŽ”ûÌIQ;uP¥°A•åû˜3RD¼­u#AôìîÍä¬N£ƒ)GaÍA«÷qY< ‹#4?CÊœÃ-òÙ¼íV'Ù§óü*íWu| í:Œ}V T§:jâV6ðë>z1ZVª=àšì™ÓvÓFÑÐ54½ú!§¶å9A6P0ð®+MG¼bê¢Y‘ßçGaƒæ¶Ë V­c3çY?â!_¸Ù þZkbl¸bnWç¢Ã2ü5ÔQLàÃw ñ¿¥®VçÍ}SˆãÃó€˜O cׇK2ºëAÆö¹Ì,b šO)Ù˜•䪎ۖÜå×ïLlˆ¨¯Ø: :^fËër¡ó5‘ª‹ê(foC;a'¥'Ô'pq84«Åq†‚iµ‡„ðŽG~éÚ#>š;\Þî>í?I/;¤ z©Õ ¤¬™·yæN¡ÒÍ=Ñxhwí‡Ð¦-LêÅoR„µ ”3'ÅžŽ7vF£¼êb•r1uºÄ…›Ùaml³§W·áFIöõ»_ìß±#EÂp¯Î\R8úrî ,¸©n²o‰¨¡2V;ëÃrÁÿßþî [gƶé¾ï—OžBË&í)Ü\ù#ûÌÿ7õ|®æov·E|’ïÙ}…I%\ÜrŸø¥ 7K¢ì´v,_Zµ¢e¥ÐŠÒyÛÕíŽ%_ÿœ÷ãyìÍ2#íO¯Ö8_^{ñšÃÿ9ÊçC'±2]ØÓÔyÕáùÍ)Óç©X÷\â~¡æô}Ù’—§Ëøby³Äó{K9ì™ül“íÙtß9³äí2Ë~ŸÏMÖYYzࢄ°TƒÎŸ8ë6‰B9ûdIF†Æ{úáª:OãÊ.,|©–u‰•Énãk“9u³3zX&jîû7WD‹ý î9“fGÝÏòTNo½ª÷À’Ñž3(È'Pôè§b/©ˆóy§?nIËy¶ÚH©îš©ÖšÖæ-×¾$êMS|á*¹áö±k¬«¼+§Yå–óŸ}˜á·ÓÂ;œ¬ëönüÍ¢°iòüêÕþ™6íŸLÂ6/èžµý±æc‰][K8–¾‰KQùiš¾ZnrKb]Ÿ:ß˃ü—ü¬²´o\gl­V“Üèãë]šwó¹KÿM“? ÌÉ{EÝf3Ë…¼×Q©‘éÏÙ¼‚ýCÒR¥Èk_g-äM·´ÊQüµõ­öf -רÀäœÔÄ¢’üÜÄ¢l.Õ#‡endstream +רÀäœÔÄ¢’üÜÄ¢l.Âåšendstream endobj 885 0 obj << /Type /Font @@ -8916,14 +8924,14 @@ endobj /FirstChar 34 /LastChar 125 /Widths 1929 0 R -/BaseFont /NQLZDD+NimbusMonL-Bold +/BaseFont /HHRTRX+NimbusMonL-Bold /FontDescriptor 883 0 R >> endobj 883 0 obj << /Ascent 624 /CapHeight 552 /Descent -126 -/FontName /NQLZDD+NimbusMonL-Bold +/FontName /HHRTRX+NimbusMonL-Bold /ItalicAngle 0 /StemV 101 /XHeight 439 @@ -8943,7 +8951,7 @@ endobj /Filter /FlateDecode >> stream -xÚ¬ºct¤]·.Ûv*I§cul'[£b§bÛ¶mÛ¶­Ží¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ø%ìlA ,ŒÌ<5e ECkkC ;Y)¡5௙’RÔh²°³3y@€Ðð퀅›› jgïîhafPÿå ¡££ÿ/Ë?.#÷ÿ@þF:Y˜Ù¾þ}pZÛÙÛmA)þ¯U€@È0µ°Dµ¤ä%Ô’òjI -ÐñoŠÎFÖÆY c ­`jç°þ÷`lgkbñOkNŒ¹„†'{ ±Åß0 ›1Ðþˆ`t´±prúû °p˜9Ú‚þÎd°°5¶v6ù§€¿vS»dïh÷×Ãæ/ö—LÑÎ ädìhaüͪ(&ñï:A憠r;Yü…v¦=MìŒÿié_Ø_š¿(ÈÐÂÖ ºþÉe˜X8Ù[ºÿÍý—ÌÞÑâ_e8;YØšýWôG ™¡£‰5ÐÉé/Í_î¦ó_}þ—î íí­Ýÿm÷/¯ÿ¬Áä´6eD`ùö7§1èon3 [¦¶Š”­©€…ùßvgûÿÀ\€Žÿõ?{†æo†&v¶Öî )“¼èoJõÿÊŒÿs"ÿHü?"ðÿˆ¼ÿoâþwþ—Cüÿzžÿ;µ„³µµ¼¡ ð_A€ÿ¸c²€. ãÿÍÝÐÆÂÚýÿðß=5€ÿ®RhælmèøßáÓ ÛšýU„›‘ýßV ' 7 ‰¢ÈØ`jhýwVÿ²«Ùš­-l5ý×8 ,ÌÌÿ S5·0¶²ýgøìÿ†€¶&ÿ½ü¿2ý«x¦ïêêš*jtÿû½ú/?Å¿úƒTÝí€ÿ?‰†œÉ.þa±sx2°p2X™Ùÿ»¿›Åûÿñ_D,ÿµ–39Z¸´™™™Y¿ÿãó_+ÝÿF#nklgòÏŽQÚšüÝdÿiø6vvtü«í¿Îýߦÿcý¯íºÖWìŒyƒ,Ó2ÓAu¸¹#SbÚ},#Áö¥ªE~5v½¾ia»Ü•µÁŒM3<¿ÛÝ—Ïí?¥iÆúp¬©zS€×ùDÞ4ýè[_;9鎘ôJ‘Ó/4¢:2Ü{ ÝHH— OÉë…ü5ÒÏ!‡Pð‡Z…xUó«Óö”ê&BÏØ>ŸŸÙ‡PvE‘Ŧ—µ‚ÏÕàO͘ƒá†€l¬„ÔÈW"æþx²À £ŽïIx%Q¼Kâ¦No¿­ùWcwúŸò‚ßÄÎ׊ü;L§V‘;fT° £Ö.ãG¶íúÌÓÎõ=®>ÕÎ7èX¬JÌ[ÃZUýùbªÜîA+_®›xF»Íc¨À( ¥ã©ƒv¸\Å$L Ò…õ)_,Ò ¡Ã4ŒR4r-Ø“©¾ˆ3ø‚2Ž‰Œ€$¿ d-ô~“„}¼Dä9&G9?á¬;Ô6®£ÛB‘œ´Xsÿó/w†ßöèWŸ.S?649ú0|‘ßãš@΀ƒëì˜ç3¾>9È%æú!.à—¼Áô/mH‚Þ¹U'g7¬«T¨y㨒Cº4œÖ)7%Š_0iôGàìáä}²›„ ƒåÔ›xêÙÄ6\/ÓÁ¹Ô¢ÑCnoãÐ5-Ûu. ê24|jþb'U//g7~u®›œ÷äkƒÓ—8•†n¤3€j}_R:âàÎ>)[kÛAP++Ïú;iw9¶»¼ª½ ·c¸A{÷¿Y‰ü j¿3à aÉ»ðSr°Ñœ¨t2ýV å +xÚ¬ºct¤]·.Ûv*I§cul'[£b§bÛ¶mÛ¶­Ží¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ø%ìlA ,ŒÌ<5e ECkkC ;Y)¡5௙’RÔh²°³3y@€Ðð퀅›› jgïîhafPÿå ¡££ÿ/Ë?.#÷ÿ@þF:Y˜Ù¾þ}pZÛÙÛmA)þ¯U€@È0µ°Dµ¤ä%Ô’òjI -ÐñoŠÎFÖÆY c ­`jç°þ÷`lgkbñOkNŒ¹„†'{ ±Åß0 ›1Ðþˆ`t´±prúû °p˜9Ú‚þÎd°°5¶v6ù§€¿vS»dïh÷×Ãæ/ö—LÑÎ ädìhaüͪ(&ñï:A憠r;Yü…v¦=MìŒÿié_Ø_š¿(ÈÐÂÖ ºþÉe˜X8Ù[ºÿÍý—ÌÞÑâ_e8;YØšýWôG ™¡£‰5ÐÉé/Í_î¦ó_}þ—î íí­Ýÿm÷/¯ÿ¬Áä´6eD`ùö7§1èon3 [¦¶Š”­©€…ùßvgûÿÀ\€Žÿõ?{†æo†&v¶Öî )“¼èoJõÿÊŒÿs"ÿHü?"ðÿˆ¼ÿoâþwþ—Cüÿzžÿ;µ„³µµ¼¡ ð_A€ÿ¸c²€. ãÿÍÝÐÆÂÚýÿðß=5€ÿ®RhælmèøßáÓ ÛšýU„›‘ýßV ' 7 ‰¢ÈØ`jhýwVÿ²«Ùš­-l5ý×8 ,ÌÌÿ S5·0¶²ýgøìÿ†€¶&ÿ½ü¿2ý«x&UIõïRtÿû½ú/?Å¿úƒTÝí€ÿ?‰†œÉ.þa±sx2°p2X™Ùÿ»¿›Åûÿñ_D,ÿµ–39Z¸´™™™Y¿ÿãó_+ÝÿF#nklgòÏŽQÚšüÝdÿiø6vvtü«í¿Îýߦÿcý¯íºÖWìŒyƒ,Ó2ÓAu¸¹#SbÚ},#Áö¥ªE~5v½¾ia»Ü•µÁŒM3<¿ÛÝ—Ïí?¥iÆúp¬©zS€×ùDÞ4ýè[_;9鎘ôJ‘Ó/4¢:2Ü{ ÝHH— OÉë…ü5ÒÏ!‡Pð‡Z…xUó«Óö”ê&BÏØ>ŸŸÙ‡PvE‘Ŧ—µ‚ÏÕàO͘ƒá†€l¬„ÔÈW"æþx²À £ŽïIx%Q¼Kâ¦No¿­ùWcwúŸò‚ßÄÎ׊ü;L§V‘;fT° £Ö.ãG¶íúÌÓÎõ=®>ÕÎ7èX¬JÌ[ÃZUýùbªÜîA+_®›xF»Íc¨À( ¥ã©ƒv¸\Å$L Ò…õ)_,Ò ¡Ã4ŒR4r-Ø“©¾ˆ3ø‚2Ž‰Œ€$¿ d-ô~“„}¼Dä9&G9?á¬;Ô6®£ÛB‘œ´Xsÿó/w†ßöèWŸ.S?649ú0|‘ßãš@΀ƒëì˜ç3¾>9È%æú!.à—¼Áô/mH‚Þ¹U'g7¬«T¨y㨒Cº4œÖ)7%Š_0iôGàìáä}²›„ ƒåÔ›xêÙÄ6\/ÓÁ¹Ô¢ÑCnoãÐ5-Ûu. ê24|jþb'U//g7~u®›œ÷äkƒÓ—8•†n¤3€j}_R:âàÎ>)[kÛAP++Ïú;iw9¶»¼ª½ ·c¸A{÷¿Y‰ü j¿3à aÉ»ðSr°Ñœ¨t2ýV å o(:¨Ñ_‚ä¤ñOFuØI)Q’¬¥®‰Í:T\+kÀ2ñ´Ò(ÏË2+­Ô»Ð]é¾çAM¾×Q­?A"tto¯$ÏÊAœÇÛwÎB¼ã¢ü1lþUxq¨eÝÒäöt¼d"$ÀÇŒ‡™M ,tEÃ2g§ö“0ACª•ƒÇ“IyàbLżê|cÔd€&ó­Ðƒ}7ÆÐJVóJfŒ!`/—ö©Ä~iCB2l´–¼â¸¡Å·Û‘ÜÁøÈÆ )/úh½0HéZ=`|K›@?ôî3Ob¨cËLádÍíìÉQûcz‹þú7¾cèü¹$ Æ>2Í%—¹ß°%F >@í£dJî'¾T¨WÝ– ’ÆÑë«úþ®@Zl—,P* ï™7o6x©bäÀ×ZëíùOרc ‰^à°HY¹ê¶]¼„qGÝx- $v·úyüJŠÑ‹lüwÝ„ze|5lÇ¢‰Û&^^Y†¯d¤å¸=眫Ø'ZðþžQ.,°#p¯ü°Éøù¨~j‡|i¯ÖÍ_)¢é<-ëqHb_Ò»S3‚4~«Ò/²Jú @@ -9025,7 +9033,7 @@ J åUÔwUMõ»gÕ"&ÛQ=Q¿Á²p,æŽ ðrÎfœÝ‡Qã³éîtÜt6.§>ôÙêð97›“¡ÞnW‡•‚ø«Ñ¿}‹!®N‡éi…@lã C•Á&ûA×"4ÂÌ]iÅ Î|,›ž(mÍ…pêÖ.‰ý³oRŽÕ] ¸kŽ¬¢PÖ¡ZÛZŒŽT2Ê©‚pC¯–dô.Rn®f™7£žØærðk®–-!OõŽž1t¿9~‚ó–‰æ·q¼mxYæó”9gK’}ÃÜÕè×å HéÏAf™\pCÊˬM‚._óBâÚjq À¶]qL÷‡ Âa¯¡n—ˆ›´¢('â¥&Cv­pñf–¿‡OFÙ2ö # ð:øF(‰¥YäsäLèÆùxÂJßÓ%ÌgæÂîˆñe:‡¯#0®ÿëÊ»3¯‡óíLM¤\“wŒgßRkHäŽÅ_KØwÓªÂìni–ŠØ± ¨wŠlNþj sßÑ8v> endobj 877 0 obj << /Ascent 722 /CapHeight 693 /Descent -261 -/FontName /HVVXSU+URWPalladioL-Ital +/FontName /TGOVHI+URWPalladioL-Ital /ItalicAngle -9.5 /StemV 78 /XHeight 482 @@ -9062,88 +9070,93 @@ endobj >> stream xÚ¬·ctåßÖ&›£’Û¶mWœT²cÛ¶m§bÛ¶]±*¶­[ÿsºûíqnß/}ß{Œßšxæ3ç3×c“)ªÐ ÛþŠÛÚ8Ñ1Ñ3räÍ­:;ÊÙÚÈÒ)Mlpdd"@C's[QC' 7@h ˜™L\\\pd[;wsS3'¥š² íYþ ütÿŸž¿™Žæ¦6ò¿.@+[;k Ó_ˆÿëD àd˜˜[" -ŠšRòJ y5€Ðè`hPtþien57Ú8©&¶«F¶6Ææÿ´æHÿKÈ`p´™ÿMºíþqÑì€Ö掎¿æŽSC§¿3p²˜ÛY9ÿCà¯ÝÄö_„ìlÿFXÿõýS´utr4r0·sü­ª(*þožNf†NÿÔv4ÿëØšü4¶5rþ§¥ùþÂüõ:šÛ8œ€nNÿÔú ›;ÚYºÿ­ýÌÎÁü_4œÍmLÿ‹-Àhjè`lttü óûŸéüWŸ€ÿ­{C;;+÷eÛþ+êq0wrZ™ÐÃ11ÿ­iäô·¶©¹ Ã?‹"ecb `bü·ÝØÙîú\€ÿå?;Cõ—„¡±­•;ÀhÇ oëô·$€òÿNeúÿ>‘ÿ$þoø¿EÞÿâþ§FÿÛ%þÿ{ŸÿZÜÙÊJÞÐúïüûü}al²€Þ+C‡ÿW¸¡µ¹•ûÿ!á?5€ÿ&ùÿ#ådøwB6¦a¤gü·ÑÜQÜÜ h¬hîdd01´ú;©ÙÕlŒVæ6À¿Šþk˜:&FÆÿð©š™YÚü3z¶»€6ÆÿIþ¯Hÿ¢Î ,¦ *¬@óŸoê¿¢ÿjï¤ên÷—ØÿhEÎÖøþÁ¶uxÒý½tÌ,ö¿9™˜¼ÿÕþÃô_g9C's7€öß–™þÕøÿøý×I÷?`ÄlŒlÿÙ'Cã¿ëõ¿ ÿ¸œþªú¯ÿ·áÿyþ×¢n@#¸Õ߶Fö¥©F{1­(zR€—ùøÞ$T}¨›ä4 z%ˆégQžW‹²ÛZìŒê»“JÊzÅïPߧ;X`®ž¨üH\ -üÐIí|ŒRëc1:QA¾Õžž‘'?=R Ž õÜ@öíãÑäÄÂ’ñ¸@ ’GúÙçà h©Ux†SA¥7!àÝ´_}jt{êå‘‘â’FX˾*šæ¯Ù´Ë¾'A¦· ð&Ê9H¶îWþÀ¼žŸŽäJœæšËýZw&sÄâmŸ -쿵$ œÉ„®'~»¦ìw 󬵮¦~íCÊ]™Qê,©wmÚ'c¤ w®Diµs$óÐY–1¾—f‡ÙÄ&>.jüäë賬9“5ÎÕu¨ÍÄV¤?m=Á8ib/4l¼˜’lºÖ’Ÿ$):Srïð¹ŒtéÇ#/sƒydŠü¡ _•vÏÐX¢ÖÙ"» ú”4Ú]Ô†Üf†·”-FêÕˆFG‚„ùs!kt> -j8+¼="HOló‰à|V”LôIŽÅ_y·1A‘T5dSoEy%|Dm3N†Á‡P¥{ú¼ÞÆÙˆ -šÔ0ã#¢DËFwˆ(¤ ÙÓ§~¾f%ž©Y·˜"<Ø™Él¶‹Ç¹ÿúä2Ý©²HˆîKöÿ¢Õê’2|Cu˜Äï4‡ÙbIYY`AýÝ«!ðc* w¡)óÊ~#†!åÌDŠ¹p¼šÖ™(bðÆ%łߪÇ4òsœ.劎^Ëú0ª†'> -dÇ$[ß4˜h3iï*#§†]Y·6_¡$l¥—\5Š´ -ÖƒGÒgÏt7êz \ÄØSÂèÑÝá Kz¬Å~»šF£¦s>y{­)ÕCóaÑýû²Ú7× Ý#ÓF¾o¯Q2v3äòÔן¼xÒ¾#x9s¬(ÃÇÊÒ÷öUX7Žqb‘ŠŒHö;QºÙö³ˆÊëí:²5p,sÍŠ˜VÚÜýXQý3j .jWô…¼¬[Ç2#oîä2’«²6¢£yé0O ÙÓËø8³)Kz¡l„ïzä^骟|‚gOH)àY îó¸¢e¾,Ùê›Ì,ðŒ‚þ²Êsźy&Ê⥄ñϤì*“@bKiyäúk@WÁ»¾/ÿë÷îÆ5 Ï##êáù@¹‡ŽRƒ;ÇË6ÈV|¶å9{<)¼ç QU+ó؉¬@"9ãå·¾9Ì-–†Æ¬»î³ØŽÈ³¼…„e†t Y.ž±áWËÔÀ;žš¹„PfÙWÐBNûŠX÷a|nÓd5ÕR©¡Ûo÷¿]fǧ_$¿å0[^ž‚IpƒVzrEÄsÜó^Á¤ÑÏJó„½Ë®Ïô—qŠž€3«Çþt¿ipôøɼïÆ/ÑøµÑ7d™§©M’°{<1†/ß{€"Ãg'”Dnnë«J0 VkÜ„},j6ä²6”ª ’nå'Ž`gâ[ö -õ Ò””d³3þˆA*ú<ì;»ãçëȈÏÞr‘U¦Ξƒ ¸R64yEIÝ#ب[@“4ÂS»Ð¯«±÷è(pÖg/ä/ÄX»ÐÖ@­Å»b¾äcŠÅIî n¿¿„îçç3Ã"çU=^ó»\XºwV¯”¡ûB:Ï‘ -[—ÒØ$ ´zEø}:µ`s(éHô‚Å+X—³÷¶*5Â^ÁmøÆÊ$¶ïÉéGH ->êò:Û†ç-àñwN‰ -3“7º]Ç }"}xt¿-i7Ÿè¹½‚• -üƉ¾ÏÑüІž@S&_#‰= ]Œ% ešPŠ†¼RŽ”oQÈJt{¸œñàº0ê8&ò½A"zXXª‰„^i$º@õÁh0škm}…“u­@îK/²OÊ\®zOóu#«"ùÈR.¯AÇ„ŠòÙôÐJ©4I°muþ`*?섨0­V2×~„/ŽZ.&òÂ×Ñ_ݼÇa)¼<¯l ‹¤ab˜wK¿ð[p…*¿–ªì˜F°_z¡>ôÿ-p¾þmQÌHtðFЇt½® ·Ð[Cr:Îæ'w|…ôSoñ;ÕdȇkM*a1eˆƒS¢ß%!¹J-¢¤tXäÖ’´–šBÎuÞ/ -p‡÷/ó¢nD(0ÂDã ,q®R5Î@¨)µŠ ö|÷ò¤ºÛ\{=÷5¯ãƒ8zB uyÚ£e4O랊u¼z.©2Êqi¼ûTœ°,³Õ¸¼[¡~o$n{Ìq³¦×·1åŠ|…²Ï!§-4`f‘ך¹ïPÛ¹Ui«í!3ÏpN"LnR‰ôAQ“!ÄùðíSÆŽËî1ÕÔ9PƒoHT7-÷dâz7/ÉÐ÷3¯vU~2‰áW3Ýk"XŸ&¾L;Ï´Ö¾s°˜9¿O'`u?‹¶Ôi„ØCBs®Q‘ô±…ñ"¯Ïæ˜L#ÈÝœÿì UüÒ¹ùeŸáS©Ù_§Ó¢ªîÑ _e(ò~ ¾áÚÈÙ¼ßÕt2ƒÄI]Õ× Éuûͺ›WV>{€º^7¬K·ƒ9@3¤uÜq¿¯ØŒM(ÕAfW$ùÑ>Ž¢róÕõ'Üt*®IkÒæ·&„óÎãÔ£yù„2¦§äº VБÇ/êÀp4¹‡èT›ïwnÚuŠêæÔgW«È$&¥é®&tÏ„ZgqÙÇCȇŒ† ßðéårüc­ŽMÔEÇ×çÔkâÓåLÁG1‹^­?z&É ¢2™"«….^R,• ÀÜ ndAU]l$þôº<¤q Já9 [Rèç+œ„$E˜b…†F΂dù#ÕÒéËYûV·"r†Š}cà’³$#QZ0 ãû‡H„f¡ª÷›v«±*øöç9ꞧÇ)$¥!€4%J)Æ«B¡(kèè^«£ Œ¢K"ôŒÖIQ§.¾É°UDBó€â¼HÛHzõV¢’éç5柑&xã>fé.j/O§Î5$8žÔÎÅ òíÊ°¿_ëqv–'´#zÑÚfs -[Õ%:P+t¦*5Gil@ÐvmY‘ ‚œÁ‰~¦S JÖjn5£ë—ðys¬Ø0ÒÉð¹¼tOC»¯‰æ÷­™ÄiÐDX¯ÐåpÖïÆÎl¶TS†ffe2·©iB>²ˆÜKmV3 ·ï¬I‰Àq>ü€~y ±z‘ô&VQ|!æ 쨯tàZ…)"¡ ?ëzÁ4%vïù2<€ºµ—ÊŠ¶ÍìA 6hä挑ÿ>„ŒÔxZÜ5&R'!Ö§•gÜ…«¢ú½s’+ÔCÐ[ØÄx›)½ºo -Ù¿®;ªôŠD™r]9@èšÌˆ“ÖS|æ[Û, ('|f¤~}Ã!Ónëw¦©®n”Š\8ÖgK½Uz:'=*"Ô›%FWHO´­Ú³ÒèÒõÖDÐ_|ÌÎ\ê\Û -qá‚ú a¾ýGŸºî“•e -™âîÑ~)Ü“U‚™$¹ß“ñA=‡C“ü‘:³œW•Pv Æû§hbÖ¼ð»AàlmoÎUÁùË7…¹í \~3È -ÂÏå±äÑs‰TNŸ +Ã<ˆ•9O¶¥fÈËDˆF§‹ÑÉöY廙l›¸·°6¿33ïáð\1ôb° a÷ Á{ó|³m«é*Ê›}½"é?Yš,µÔ¹‹ e§úPh‹ŽŸXEô¸º\©çÜ[ëgøV3C^à ±çSø¥$š ƒÛáÃ:“É»®’´ ð¾ˆïÅ^ƒÑÁ´‹¶ù´ë¬†)à!jáìKøGR~ŽCkCœùŒBΔí!$ÐdÕˆV`¨­\ ©n¿»Gó§æHðnê Úïvœ&ëÌŠ":—íÞÕ^"Æ;bÊz³N¾0UÅÕ–ûÖ1ÃÁ,Ծ㢫|7ßoV};º:Mý³éØc£ôÂà¤=™MhüCÔgaì‘7¨²Âˆ±b®5_¡·¸/ H:L« >r>Õ²"™y£6o„Aù±RQ ¼“_;N\¾L©µá%7¸àÀ‘¾g$µc [ž Ü80›=~Øü.¥T¿†ñ¥™^šW`/ž$8¢%S>ô”æý XÞ$'ñ.ά¡¥„2Éÿoƒã;At«!Äò‚´žÖ&\Åžã™dn£˜kjÓ¥³< -YRç˜oiæUìÚÆ‘ÌY Kî%?ê5TXrz¶ë[È/¨£=gU0‰Ü„€UShW´1ûºzcw™>ÔXê1§†S\»²3Š‘ÎBaʉ@,ŒëÂ?/ßu3u¤ð;…®MXÛ;Í0¾z“ƒE9–T¨ÕÖ[x,ÐÏsô1Æ÷Ìó–Q£×©VNcÌ…ËrÖs,¨ ³“eeµ‚l€N0j—;î~÷–ê2›ZoºäÆ JR¸¬ Ý.nìÿ¦ÏR(šF½qqIéì{7¸–lƒ%Jåíi6.’±ñNJ„µ­~d¢Jă÷^Oß«Ñ É s!¨kgw%¼¤ó_†©ë -??zÜ…¤Ÿ'PìE¶e6¹-Vƒú£ò>áÂPe†–½Í•Gèf5©{AuÔ¦JÑø^V¡ÌP -:Ù‰4GÌCe*Z­:?ß"íÖŠS$`ë¾*~=QîFf†£¾d5 ?Užaú9v¢÷"“T!KÈ õð;[ùÛCµÛ²Ñä$|É•ÿ#]±·,ÄgåÂc>t- ƒôÏ/c!Ö’&,î—AØ$l‹ˆ4`¿Ì™é„G ‘9h{±I K­àôáî·3ÂF£Ýйô±Peûw - 8ø=ÇC¦ñÙ"ê®ÒL¨ì:0%»¸vÕ´HƒŒ?˜ø¾âù¢õ3™VF _?Òí)Û÷³qoTŒ²>ô£‚ùvî[±~á+Ó ñ¢øøhÂ…ª>çV©Ã{‰iÜÁɾ,ÓPhF°1J4‘÷Ò.’×l"üˆæ ¿D9TäÝ!°hjky~ÒHTòövd@X|A¼ —Õò/²áxxûfÙ z¸|ÁV§Om×¾SD*gi[‹4i p¯—ðƒ½ÐØv )ilPcΙŒ€~9¤Í^-P>½•Sø¢ªÖ_Ñ:v}¼ú‰ ø9#}hçp‘à;‡¾¢~¶&í@»Âªž$ûòYéØsE6ýPÈ¿Dpñˆò϶J úy·#“Ø'PG ‡ãŒY9ÇçzÖïIE ç©_¿+Pììk.Âî+çpnT+ ±µÇ1*#Xd4-.¹.f(܌̠n{Sš©|ãPtw90¿Ì§­ã=tÜr•xÿ’Yñ©Õa…@.i¾™?#E¬4*872lºGÝ›ü”òóÕƒ¹óšAúa§¢+lµh ›¹cÿ[ÅU‚·_Q'ï–íMÇ7&U6æØ‹{tÍ3_ŸÔ_óerˆ$q¿E½â>$zr,¾.ÄBËëDÒ‰ú@û‡ÍDü”Ä­wPL+w1xàKDTjã_žKU÷‡Š¿÷ðN€úè±=©C; ]‹‰ØÑ\z©r¸úÕ~ÈK*¼Æf:²}䥳ý]°¤Bu›B<+2¦ø¥Ø×Iÿ§½²¿S©ôûü¨·zM­<ƒïˆn1•ùu›Ó÷^Vú#:.æ?¿yÙž®ïµá§ðƒ£|`q^ Iš©åâ:kÓãZFMd§Í‡ˆ¨><…÷Å4I)'16TØ͆Nß°`‹ð` [€r óz‡ÅÜl8±§ ’¹Ll[@Æh_ëí; Hk¢ÉjLÁf'‘Ö%З&så@µTýb[Ojöß 0®šm-Z‡µ<"ÂVç­wSp#H¸Í°ÿ,3L\g*±Ý¾–Ýçpg¡’^uІªH%a€ÃuQlàÎZK‡B£vHÕqe·lAW`¬úÑ–îxüFÁŽ¸“Õ7º¼Î IhB($y{³ÓËòMSô~¥ã # Z|Ѻ6Æ×c>ÁB’Y”ï‚*¤ÓµEkèið„ûܲ²ê6ë#¥ÊxNÛµqqŠ®k%:ЂÃÏý0{Â4Û¤8¿ŸJØTá‡ð~UâjçµDg,Vå|ÌÙ)îmÛ ÁÎ n$;ùâßÎWûË)6{ô2÷Å1§ßÿ2_Q.4ÓZxWG)ûqŠ·óGŠõ{RÜh¯ºÎW¦ãrzÞõÈÐKËDä]Üw¹Qöº¯G…\å# n—ë{aæÆŸð»Â¯U"¨k;`aEw}øŽ¦¢´Äætf µŒu &ßéæsÜk¶Qk¥pxNšnL’v’Ô(|)²FðcˆÇY£0c…‚Ø0cX{Ò}hƒ¸eÐúƒKŸ:†ohÁhdYÔ}îw¼Vj¾]½¹cû¦wní†PžQY@V)[7ôU5:Ò³ûÑ 7k"%W¥v3<ú[j¬ån–E¿kƒœm»ŠìŸ×—´[™Ý%I¤@DZrbÑll¯azQ?ÍüŽÂævFúµg. P³e†¼x€ÉôHý‚€#j(hôÄEÕÑ7z,œB-»§óÎ…5E«›}~i›“;e€b9i«À9úHðêùÚ§7~ Êã>OöᙯµÒ+7¿Ë„8Xu@HáÐG§6¤'Q{—ªß/R2§o´D^ÒEœ (¸ü,¯TcÏ©ÆìȽã‚Z]iÚXçKâ Ó«¦ŒÜ„Y¼ý}ÉkwïPï <{.ÏÓ™O .õÔ‚Äñ|Ÿoh£‹êÙÕ†4ü&Æ ÊÌŸ¢RÚ±¡™Hõš‰ wó½é2)B­…‹·†ª"Ú7cHЭŽ8º̧\tøºlg%Ijð«]R˼a\nÝ8†÷¿ú³à!V#RÎ96áw¥1K©DŠŒ?VäÃÍBD\w.UȇH·:Êæ·7Ä­‰ö‘gBrny)A½Á4k1H´?ëÉà$œNŲ!ÉZS†^0yVÖldlƒËä~~;Þ¿g;¡Ð\ÚaæôK¾L‚ùõÛÛ“½O’l»,© ¿™[§ -¢ðBîBZYø ¡QÚ÷¥Ä:_}ÒbeÚ*r³9ò”¯Ô¿åÏ{ݘéËáªÝ]1÷WšeÂ…5âo#”‰Nb… ¨ô>¶ïÓAÎì·¼žíÉzàá]M¸Q»„)ˆ'°&má"²‡8øg+Gž‹-¯ðJÁÙ¶(!‚d%šò÷F¨é’‹Íü0ÓK^žŒð §.Úf9Õºi"‚Bœ‘תÂh‚0æ£Þ·/Dž¿V™¹6j©Û̇‡o— -_0ß9ø™Ü®Á³@3&i ¯)BBD‚Òr8ª¯sÿ’¶þø¶6ù5EåÇÁ‡›3§ŸÒûišI©R«‹ª]S¯Ðeÿzý!KþãÑÑÛ7çÙ96@:áO´ˆE(Q`¡W¡ÐêgÉCIචœ7·@ªÁ×N~ðOÎÏL ÔšîÑ„6t>æ€ñtFt&QòŒõk©ú¡Ì: ZBw˜0.•Ö -X˜DöBà矉uƒRá±êëŒãù³"‹‡»½øS,VëUgÈÓÑ×Hë‡ Ö•Ø®ôh3ßõ½@gYa°«¯ÃK}\)ÚÖ„èoô}7dÔ{Â+ä’רþ‘ǟúiæpC8[bk%u‘I0: ]¯úíŽI*]¬NꌕԲî<'âÌ€Dq¥1öYßþù4ˆù;4Ù´Ô˜¥^ðžöE›:ãZ”¢‡ÖãßhSÁÒ"”‘æeGq ¿¸ú‚Ò®ˆ÷ñ"‰v=}ç¾ÌÅ%ű;>RÕw´ºÊuú)DãPèñåVÂ-{ i¢87£rC ~zIu(a=/åÓ`éÇ -`JVæ€ÝM?Ë-*\šFì\q¬w÷4³Ç"Ây'LÜi æI²úвTxÝCxEåÇ7#Í=䬯šÐ]ÏÂ)9™šj^wpŸiuØ•°I/9c½šÙ;ˆ†YÂV%íÇ’:ðgEFÙÒ·O(–qS”•=ŽM.A¥ó¾5Æ·ôŸ·¸PF×/ *ÝXåï·Dê,oö°`ÐO„&ÄÓú1¢ç)ã”au§4‚x­¦"ô£šVKnþ?af¿½ðÒâº-©Þ(äM×4jý€‘âª[ Âx06Ä–3± ÊbV®gG¬$¨ˆX”£þÙ]0ML]B@! !k“ö'9iH„%7ØdÇýý³ê«VÂiH€ð‹Lêõº «§ÜTÉMÓ´1=1TäöÅ¢ÕæûH&LÏ5« "ŒúÞ¶jªÏa1¾5e‘ׯŠ9³dfƒC|—fS}½Á¢^3²Ry€!©ìcÊ^Ù±•CyÞ>æäŸGY›µöLˆ²Í+ðüw…¯‰‡›]E™†ÏIœº#½Á”“W¿ig/€¶0@hçnlÊäª5Áç®ýF6PI¥pKˆÈKUëqßoÁÎJôƒED=§É*óS½PlBø±a` -^ñ2Ý9á4GÌMdHä:a,h&y að;!Ù$õÖaÖ8|Z2ÃdÞ‹J‰Óc—…6‘Ñ}Äu"åÈÄ7)õ)ÚÞ”L#mõ0n—Ü^žÇl¡~c[øïz¡AèÖЕ–êÍ™qùÐEm)PF½÷¢xŠÔ–ŒisØ€ç³D6 &œ<ÝÍYï’Úl¥ç¬œs·ÚCò£ypKWFsš£jƒ“ÃÉs ÈÚË~ -¸š4?æ·q|CÇÂ[9ËÞnÑŽ¯U…”kCWvܾOøHB ÔfGpÊñ¦Ú™uw"£Û¬‘M+<ÂREÍœËâ`Ôщ) SßêÓk3—ÌŒÊy‰m:ãs‚êf“Bܲþà ĨÙþ†¨4ÃJ´§ ¹=µ¬l%Ž»Wa*ÂÎK6#º=\{œ˜{áÒBz[òaey}1i%œ1ˆpÊeDNi±`à6^¥ -“V-Á …ê©>Zw>î^’:ðëÖ£,AÎó=a¼PP?N}“­8s3zxC4-áÙ'Ð@¢¯Äa0½ÌåŠ&vù& Ê«¹jÐ-OB;ó¹bîAl/­äÝÈ»÷ #o«²#yÁ?.¶Üè© ®Ï² -sf"7íȘ'z½½Aܬù;˜-Ø„º5½ŸPoö’RnÃã—§cÄ­d>­Õ‚ëmOévXš}Ý…["äC»Îµš Ú·ñfº ?jÊ…Šs$!ϧmAb÷yg‘Õ3–ã¾ú©Ÿ™ì‰YÊIÚÓjû[«Òaî ë—e·Ù{/ûÀjÂé‰õÙÊZXÀüì˜à äa.ð–Ïæ\àß›¶üؼ¾~ ê¶Éþ¶ü5öZ š‘X’oJQ˜iOÎãÅ[=Z)é!³»&ç–ÃîIëBå\Ý;»"B7›§ c)Œ—†Þa%ó‡ŸTÚÅLn_´´i·‘c•udg/U†Å=7 -BÎA>ȨÅt»î„ÞñMt7¡Š:»ùœ=2>ï((Ÿ!{GÅo’8DiåGÍlœ ÊãVÍÒUŒÖº‘jÜ”Õíë -ÞÐõ)δ¨ŠP=¥ŠúçÇ ºÚiÓNRŠÓ€„™m:ô¹¾@1??¡– ­”x!MÕT•ÛŸAsË•-&I˜·ö@ãݪƒêE!F_Õç5²î´ÛT² «ô±.è-ó°{m”´YÐßžëÈC&ÐöºoÕ¬ìêW5iø·Š ¹Ž–ðûï~dÏFœöN{uÍUg¿a`BFtCÙ¾VØ-¯Vâe*ï@ì @uòQµ ä8L°4§2Ir©¶Ð“†¤o§¿Ù §¥ëÁIÆtPÕ'ÆiÎâsëŽÉÇTЃF`Þ™0Úu­5hJ»½ Ù‡,KíÜкÔP¡f|éO7§Hf|dÑr^kç Žß¼¥'@>¢íð@‘…„—Ä”ÄÄJÄÞ¿Ý>3„Œµ¬èZˆ›Ù¡R^XÚ9ÈÍjÕy0”Nš¯s„gA‚îWˆ™[Uú £™2õÞzבl‡KØ6`ñ -î†Å×°æËùß'™+¹O?àªH‡q@…ÑQœÙ–l.vk -3Ô+¸Gç Q@CX <¢â*î>Ö‰?7ëÝSY±ƒ°±÷a~ü¨=j ºíd„¾‚þÔ‘"Ød±ÊUU;•ÞÆrÝJéŒ$AøZ©uëÎñ³‰W´Bšgûû±wæp'Øbû5莵Ë#—½ë ¿É¥M!¹q¼V@«ßÂ=¼8жœÃñ!r1†À`^6]ÈÊü«o†c\'7 V;:šb˜€™Sì -…eȤ½øÛ ]Ûq};—¼¿ý%W[J¨÷¡¼–Þè aÁþ[Ò-@^ŸFðGH¿ ìÏÈÜ°<·eÕ@wô¨‰Îy«(‘«xd;{”«‰U¸otÁªDÕL -˜ªˆÍ|Îóp—aÜ^§9Lî÷‹¥¨`=1OþLˆq‡p–*ÃsqÇwŸÚOuØÝã-ôõ•)D©Û¹(ÕDIÅ,$¬ßÌ÷!›xŠt¾+’V‚Zä\õ‰ØÑk‡¥ vÜå# âiÑò2œK³ÈÖ–ª·K ?žfÁ_ ž`á—À§,‡h@cÄÏÙ›‰„œ#¦å[àŒ‘æÈÝŒ‘IágWà^2/Œýäoö9œóê¹ÜüŒða yƒ?wR"”S;¦ÇG^ˆø3ðÙ»¥%3œj˺Ø&B–#vàXÂÃÇpçŽ7†.arï«ö •íWÓ~ j¤gb‹]ª6ɵvô±A` Û·ŽîB s8<«ò齓O`«ç( &»Rð¼ÕSÐó–=Ãê‘1ßì¼Û#ûžB6&L`¦­k7èT™7„,uxæ}ëåÊ{!,¯&šª‚i»FB6˜3=…ÎÀùÞþì…æe£Qµ5'ØŒ™Þ+ò@3îàœ•öÝÔÙÏ£’â»Ûö_:`n?ãô`}ò4 T躉l¶}™=aC,I‚#«&‘Ü÷Ó_rlïyÅ–$S—‡—8•í–æ æý©ŠV7Wo¿ßγœ'“éžÁ©Z [ÆN«éaîÓó'¨5ˆé´ìiU÷ç+3=;– ov –ç 8\ õäñ›V†Ã4¼@jãÖ)ãì±Ü>ÒíªO+^xN¼s—]Ž»(¿ïi¥™¡ì §±,¡ÝèAÒãÍúŸŽVjóºb,ÇnåCæWä¾E ±k‘ -^ú”ãh@RÄfíÁ•6—U -×qóp&+yPå°1¦àÙÂ¥å Xˆ|¿ð$6Uç»’ÄŽ¸%¼ûm'v»!†æ^™íç Åä.°¥6q2Œ\õº«CÛ7E.ÄÔ—¨lwBÂæ8=÷_so09Fµtéf²ÅoÊRaáÜJýèb;†xŸ)ォG œþW¤ÈùQw¤ØØV„K˜7µºy$•o5MåÐà,=²æ_³4¥ñ3ž•÷°Ÿ -áB«¦¨Û$EZk°`ë¥Y 5qÁ[œù¥ëÂF… :ÁƒN„´®jîܨ€›JV[‘ -ü™±8Ébº¢¾9àѲœ&Â&9 h°¼§!`Z„ù“½M$¨'Ì é·Ç ˆ‰b|ö]·[EÍ\çtHL”.=MSeî{F"ä(ËfIÜ -ˆ4ƬÆx»ák&ªˆü• “KѡڪƎ5soõUKæU6Û‹m™³Ó<{WûFgsü2‘“+tëÑɇ¡ˆ§Ç—–Fë¹mù¨ö9¥ûŒí¬ ( Q«¿˜?©Fߧ$‹OÌr?ãZJŠM¿{m9ùœÄ1+É°‡!¨Ú‚§¨næòY:ŸAÈ‹Wv¿ ˜iq“~ˆRŠ:²«ª j½¤©Gc„ËZÐètúœùyF6¾K*Û[HzÒ§ib·I þhŠÕ‘¿tîÈøhbþàáDëÊ0Žñ/—Í• W L|õ)ä™Ê~¸Ã$|hæ¼)½ü'CZHsöfW^È¡µ „u™§™êÄð‰¼—9*ÙËŒÝÏO´Oý bDòÎ7Ž¶³B ­DÖD3]‰xécFb\“4“ï› O`É@®0{”X«V%Üq7j·6Ç„ŒìÏõ¼Âør¶µ¦§@Üt,«"2ðÏǹ.Š­Ý§ã7‹ø£¯šr°>C;–wD72Ð AvIlU&m¡•˜E4Ù(`ý[wZQ3‡Ùµoœ'é†zDŒdØ'ü#mø Ͻç[Ü#ñ™‰.i¡®îñϲzåª}:K-òÐm(¤²“™º>ÍÝ0«l7á¯r†Ûì%óÙSï)?ú±ãR™Â—wv“iQ— øð`gcÜabO©_7d@ Óq¿" ™%qtÍGJ߃Ù56榑û¶5ù|[!Ä”L{ü÷ß_é$£½—zø[HŠëNκü-ÅÉEn4«Ržú˜‹¨ç£”v”bRŒiº& åõ8æz Ü®ºˆA¨.Ó}:pc“%„9¶³C@Ã×vt|jâ0òFóðÛqò¨|jùŠƒÊá~·l–‡kàVÞ5-¯$Ý3ð`z—º¨Ùû…>F½IÜÝJ² ? =q/ ØîAÏb“~Xc„\9+&•óEµ‡w)³SOS>}Sl´;#5(î=:·qøO\ᦦDø3ÖF@rTôÙoÈ'É@'áÛ¨9o;=Ò«M!±ë{2‡JÕöhU5ŒGÊÇÅúÔr–Ùèjšíê–uÀ@Ætáóå•­qW3gPÚž‘õ§/-‰Óî¨~%ŒŽòû‘„¿Fãk Óü§:(™aÿýœßL -íqÃoØ8\"ÉÄø‰m~'8 £Éùª¤\"~Ķº…puX‚8R±·ù;¤‡,qÞ\;1´L AÈ›œ>lϴʘƒš¶ü¸\UÆækèK¬ôó(29÷ðJ3ôûõrï˜O²âåMçÑñBu”蓼!þ*²‰ñØx“–ãfðÔƒªáFb6ä([N£+þe÷#Ìó,+CðÇUÓ3Mcf‘ÐAñn0Ja¸Þ.H”#ÓJ>U³ÂåbFµîV?4™;> -Û Ì_÷cvDMÄȺ„‘)˜3,fÅ·„@sž?X³¡˜ò\ªå$@Š$ÈW;ö=W!za(NGv È(èᇓÃY†CõdQ1”On?S9Ç>Oµ -dõ›#. -óÕu«ðaxÍ'¢T´Æ49¿} -„¹ƒ°yeàêÙÔSYãæœjî×]…)Å’ÀY¡vSWòÀ­¢ÒGÕîUê£ ãþh4× ¯DTÚè¢Ë ¾ŠŒ}dœœ'.ßñ»c)sùÂ4E©”€cr'L’q!2XdêFÒ±!NMi€âñ¢ÂdÖ |H—^ÉuÞõ“ù¦?aÈísNfBèÈ(û;Ÿ>§[Q-„- ï$àKor§ËûI’;G¸],˜úJâAžXÚ€àvÞ9g•0žh}[ü £Å‹—T€%/WHþî×Dªÿ~Å!¬„ŒµWJQ;dZUüÁˆo 7êU ‰iT†dGà!y×"?αLÛuº·Ô~¡šŒ{U#[Ö÷g_SÚ®s·ßñs=„Ñý}Ž´þ^W@ƒ¨IÙ9¼£ýè@‡}Ó$0_>)’¤Èz®Ep,—ðóõ覲üˆì£å"è`06déðµÃ•GѶ`DÅÄÑrß‹èGÃõ¶F´(øLIÓÓ2¨ÄhŒÑ¢syçw-[ý $SŠQévÂÙG0p•|õL ŸûŒM:2ßx¶åÊ®I÷ëžvH…¶ß]„,U5‰eÅæ°LX*º{Œ+—LÊjŸO}«nU²9¸ç\wýÓ/~cÝS4ƒRꩱT.&êò³Í66USQ–‘*·R°l"È÷è;/Z÷«ÁB5OmùǤA– -ÈïQš4Zl’€AÍMNÒ1B.NèL·YÏ¥£ÌÊ©“0d›±)š„¢«ëOØF'Í<I('Ó.DÁ=Œ”³‡pEd­ùØøõmQÜÛÓJ:ëÔs††¥[H3h™7Â6uaÂÈ4UgÊh {V†k|–¶ žd£å4A:kY’(‰®rŒ“JY55b¢L ï¾íV·œ2kÙzÙÛÌ9éúŒðlâÞõa÷xSkðJ–†µä{Út´çŽ[9¦3ñÇk4OÂK8­Ÿçå Û°¨oS3æÈàQÌà~i–¯³•úc"uË-ëe0¶Áÿ6µ¡ÉÞ†ÚÄÜøÊUƒÆï¼à쌪2ئ„T(™˜ž‚è ¡)ÙqìÔn»Fñ±Aò¼Œ -~z#ë6 å˜Mmné©^«ŠÒŽ†y§×ù{?¤¾ó ÃN[„!H-Èâ–‘Ôyúê³Ból«nsªYòU4Mö¤ ©0lÕÜ´~µÇê½æ`¾ü™ñd™ÿÍ%ºŒ(„ïñÃpY0çh^zÑl™dɄ˱½ú¸çðG0Q'[9R3…m4cA¸Ôá÷¹öîY+x‡}Ê)¹ÕV¹„çþìm‚›sÞi -chô„, 3 ‹ ï‘“#•ÃùG ÖÑŠ9$5à »l|ëQλM}ž¥’>‚ÈÔ!¦}™n¿°B=…_½' qŠ=ò¼²D½JQ:|4ù "V&71¢‡»Ê´XGŽÌ˜Û6¸XÉLjðD^«Pìˆ,0ª°>«ÇŒzK „Uê• Á;ð# zJí™ÛG ÃLtåk ­' , 2ýòô™ÏªÍÑk|Õ[~>'}A–ž­h¦M$™O¤{É™™aý|Fo¾á¦›\basmç­‚‹ÝjM߃½€—RÚ·Ž¤`W 5YC¶]Þœ}ËA… IñFÝi„—¤>4Å1 <ÏÜïQ»ÔäJ!¼@ïµ/g”ÆL…˦Xx2¹Z‰—L¤xó¨jZ‹¿•…< ËÍ(癵uèKvÝ%' ¹ä†¡&$XôÕÝevþŒÂ…--kZ"»À¤Kõ.C!5—ÔÖ² NɆ ÅŸ;DrR,çÖ‚ŒQŸ¥Hâ-A(wYœÐ% - ±(ø'E5 Í0Á{'­WÈÐÐlûù 4·Oÿæþk¨ÕÏÙ€œ“æ¬)Tlý¼SM¢ÌºtÙö:ʇOI[|¹,™á -¸} ³i¼<nU·ƒÊ'D†7Òz;%s}S°l<•’y°46Ê–TZ¹eÛ]DÕ\Y¹ñ}˜en|(xèn)<¸ËŒ¢G/Çê‚«þf$'„ƒ":èuë ìðx/’<€Â?‰CòSÁ064qcZŒz¸ÙÝü\! ;‰^ ¼·'PZÖ‰EvdŒ¢bòjGYþ=Ñh/«¹È´®ŸË $8éÈ'kê¼²à -%gsðùB§*÷Ä•TÝþô¶VÔ½~Þgÿ°s-Ãê¾ù¤‡I3ôÀâʨbŠÅ4ZŨǾdzçÏ—à Áç‰÷ø׳ŠX]"ïe‰¥?ÂÛjš…<®ÛsÒfÔAgV+¢ÔŸ8ýdÚ¥_ÜÌl:ɶ™q -L! … a¥,C-CŒ}M¾~šÞƒÔCzâë—ò '|;¦DÜ‹ Ž‹¼”ýû·NsŠŠô c‹Ð9T#qY%%ËGð 0Ù¥*÷f’® -.³ã׋ÏLH]DÒ.½Å¦œÈçûNcxï*ÿÍRŒõjHGmwr$Æ›~üzXÉõ½c7G9±fRpÂÔ›õñ`ç¾/ŽFöøÍ¡Sësöe‘Ä¡ûůjrv±K ±‚º‹—li¬@b Á̧òÓµ¬FÁ§”L¡s¾´_úm\9G›8+¥£XmK‰^γ³æ&„m©œtðÞì]ª_l„Š@O3º] q—ÃX;Ü3œåá› -kƒãåxÄüÁ‡¹C ¥"QPf¦CY_vŠÓÑô|‚ŸŽîdœîÃ: eФÛw‘éûe« VÑê–†P-o‰ ã¶*‚½—€:GçMøŸ¥ÀOr¿/CîlMk[6qÉŠP·eÙ0ÿ¸•Ëzý?TRÈõó·—Ï(ªå8“j$27BjߺÌèÖ–õ¦òãȹÿäâÌ-:N ^TüÚO`bŒvï ×o(<>yýeþðHó‚Tƒƒ2¸¹ÁíåÞ(å2Çæ¬9½³g¦F³Ù å’Ë?q…ÃNßJšPZØcš¹ÔiΑ88›ï…wäD&oô\<朕çÞ‡.'cve‰kÎþšØuôI¡]Èš‡þý+‡¨§Ä ~¸db D:{‹ÛÖq •¢j+˜ZÖ+·?ÜT±æ­ºŸÀÜÀ! -û:%é5¾¯åV¾çu™J°5Jòb´â"2jþä³àí=j¹ òüÅÍ·½OÖ±¼×Ñi¥Réqødoeל}½j(áIaRFT¼‡{°˜Të‰n°‹W÷'½y@,}H5»A¬8ÑLØÑ]ƒ5ævYÛÐD"ßïŽÊDʺ°z¡Ž »z}ð…ˆÇÄ_@ïO>s0<#gr¹ñ´»f!bºÛèÊ5ƒ¢Ã–x¦ÐJÚ./°A>x»! jm–²sÞ7vÁßC}AœíÁ÷}Žn4XìÅVÄés¡%›†¹¢{Pû< ´éÔ Ì7¹d±·ÝÖ.´?²s1‹t¯}¼;¯±Ý½’×Gû»{UÔ.!ó!T-ºž¸9Çݯ~_’*gûkèŽvª»¦$û¦ÝU‰ô¥5Sü¼‘i÷I´Ï(Ô_:$³^‹â»Ù…eÑ\ ¯eÈk#Ü¡ðï…Š íw¿ÆÚæ'È­ÏòãJk-Yc¿ö3A2ûW´ìßßUøäë/5^]ïèø×¢ òÁoÀ&ÇÀÍ/úŸNÜ&ÞÞè\:?Fîö…)«pÈ:RªB¹TŠP¶×ÒªA -¨ïÃÌ'l¿:¦ðè;{3¦Íäeµ—Ä;»¯McÕÒÚ-ÿXON´Â½²ùr0‘õC€ƒºÆ…L9ꉱSWËñÛÖþN2¼‹ÆvÃñ’ýÐ È*ö{ä•k^‡jogÊ"oØÊglÂóIüPÚ}tq(½Ÿ -QCm6õv;1w²ª‡Hk_Êx½xµ™\Q\5“`b?ÛÓE„ÝH¦æX­Ž…äš»^ÁqL]ÙPºÀ³A‚ä£h]hò(0ã»d68ýÀëÓQ/eÃ`Ü›i0ÐñXV£ξ0žzGïZUOdCZ4[J)é?°µDäé*}ï uÒÌ{QýÜÕ‚äÕ_x® -Ê’¸È˜”m€¿™»_–pÛD‹KÅ|iVWeeÀÀ«‰ „lÐÁôÿê4èT0Éëë]Ïd‹;PL¹£¥e!D*%)f­­Ð¾ì {ÄùíÐîòsÃÕ|0ŠLï-ûÈØÀªY‚èZ`ä<Üu´N!ìÆÂçaæ¨ÞôIJE OÕFÚØÙ‚™O¥ì鲟‹„œ*+aB5*êëˆYš0MŽŒ£>ÂãðSΚb¤³(=nìj‘·æÑ4W­ÁÂ-ÕÏ·­_ѱîíô‡Çº™·` î%âg›«ïW‘iІJmøª º¢Ô††ß‘$1½ÑØ“](snr…„L¹Rœ±¹UbµVfn3]ú‘ÛÀáˆÿ3È9ÆTÄk›“¯Bšž«µW¯ôoäˆ9u“lܲ‡vxvèô3Õ ÖÞlQ;, ÿ®w½ß,Öf9z ïï‹?ŽJ¬äl* +pË(ÑMÁ™ž eF×gº‡@‰<·5ð˜MêÍ jmòÏ °ñksŒ]VY:zÅPÆ]•a£¿u_d„‰ê`”]&6ú‚–2#³ëb…S–ä|_'UBÉ9ÇØÔ*+‹©´ËY[–µ²zŽ’w -Áë±(`°1BøÍéÑ÷kL»;B„/ˆ,à  G70“›(Y:¥ö -ùµi¸ŸÔ§îwX\Ÿy=rû„7"¬ˆiÝe6ÕÈý`Cõì¥oØ?g`ÍF朌‹ÀH‹†ò×ÓÕÏ‘`ñ» ‚ƒT~65Î.96,`³xõµôlë Ä\θ;&¦!kÇ×å ÆæÁJôV>ÓÛnQ3­‹c…8¤„½aGãÐ$îÉ(»çf†A*"CÛï}„:¾¹ Ìl{‹7nN^ÐÊ`„påƒå˘ÌV—Ûyþ2>÷{Ή =½"ž;ôl`¦GS=)ÅhhR:ê bÞ°ã}µ;íYÏHey~aN'¡¦o¦NQ»ð%`\ô?G°2™9×Á>ìSŠ¬7…¾»Ù6ò_qÛ§ÍȒΊŽ¤¦vغä.Ù#*Íõ¹²G-–à°Ã~3º½øÕNôdàÐH¬|ò€Ò>I6]ñs˜öüåÛ{ñ7cÌ a8d?‡ÉNV¦æWíûê^ÙŸ\W’é†;ˆwÒ`–v0zA…füA©‰õ§$=›Ò¥˜ÖÒGVöašMŒs*(±Ó8üì¹äô¶^d•àŒ1÷·»s®ÛCºDdq -I¢BŸîÙ¿¿²ÊXãÞLbÁcÔÅã‡Î0¸±hÿŸvæû -‡ðgl2²¹¯u¶¯}gï™™³;dsvÉÙãlBvg”y8;âì…²et)Þ?âýíý¼Ïð„Û!O:hÛDr@Q9Ul:Ø«Táa¯a ..4EÿBÜÖÑôŽŒn†éü -ïÔ2AÆìöâ©eîÛ›Ó¦;»ŠÞ¹‘°!¸„è`Ò]åU-YñÌëŸò¬ùM5ÁF³·&RGßw´+ùûè8šŒÁÈfïyFW OU£wÀº$¾¿@i¼ù9ºùr¹>ÒHÝÂö§õÆe¢Íw{˜¡Ù -,ùÌçÖ6ºþ‘ß‘—§ìä*ƒšA>SxÏå’ò§Oœ•Ãøjäwcâ]o¸‡´×ç?e•é%Iôm ßÞl)·œ?Þ4‹™æI¿´—.¦Äì Ê×AÖŒqh}Ä_J¬Qêõu‘¦ZX´y7³xÄ,i’¸«^飯\µ1) Ík„ÝÅ TÅ>¹Þðô3¥Ÿ¦õ1!}KGf³[ZdɦÚ^Ýs>¶ì¨¹…ç›ý˜“]û·çÁ ~V\Yƒ°ÕæÆÐ¥–tQrÿ=!ën¡¾5ó -b Ýmº¡ýŽþÒéÚŽëÁMyùAãýX W ÜKî(-ëß)¯Tà‰aß½ŸSñÖ*æHGÚàœ° \>|¢<ý(­³Ä¢­pš6>AÈ?!K•úÜû5wv")]mBßþsËäÖ»y¿ˆ~li¨c~Ÿ…Ýu¿û0Î_·÷§n¸>õã³@IIS¡å 0B}?)4ð“ìó ßùöìä]ϧmÍ|—Ýý2žÌÉuf ‹cHéwia3êêùçIRyïX”v*&äaëR¹r}"f>Kèbœ#òF¾¾R>ô•g*("¸AÄv%§U–ݹ°¾ tðî—´"wXÈD Kaë:¦Rô6½fFä’pìï8%/ÁB×lC«ÓùꉛAØ„‹ƒ™ÐȆpñ½ªWfÂDùtËÏÛƒ'qØV>“žÇëîä"9š#÷cõeŠÞ«øüt7–À“rELåÊ1<¯Z  ¡“gÌ^™7…fÖ¶†Î;xzÍ.—½°õ<µ@|˜¾÷º`ÜG¶ÁàÇ¡ÝQ‘ôÁö¥¿XmQ žh?ÝŠd„Zêภw–_ã÷ëÛ“ÌWsƒÚH ãØ´ðÕHPÎ#razoºÚ·¼§,ýÎ{=M¤LÅ;uD«&RVdz»Qò¿£Ài:ü:a‘Ѽr.<Ó!OÍÁãÏcL­ó*ó@ dbzâ2YÌóŒûäð<îº|¯t$âckÖvzÎÌfPW´ DSÄwÞqŸm¦DC\s+v¨ Ò~b¥æg¢=R8+’(%ÖTúL茜m8ÀjñÕ|"Òr˜ü¯C1Ÿt)u+ ºakPâ&2?Ân6ˆ=Aù¹ä?úZ¨içiõêØÛfÄ·âw|šûÚѲiC©ÔŒ€} -ogÓƒ1GC6E®Í]cdv®l}©µžÆÍE*û‚Xí øVr,À8è–>7%×5/ÔQz 6@^î$Æ -Ìkª¸â§hDlU¼v7X}ñÂúZ%fòb+†Î5ƒ;TÅHÿ$IÀÒR.X/+ùeÌö2¸Õ4•õ…6È(z¡ØîõÉìg,Í¢ÛäZ}~û JmÕg(±èe{u›"&Œ›Å?ci¸èàòÝþªxš» P1¡,›%7Ñ9¶£ÍCN„zD²O•EwŒöÐwAöº”\¼ ¥¶¥&†m—}É·åæ5FèHîñÁmÉæåwæµÃØ_ÁÆuIð*Š_7S§êö®B›¹æÑÜíä4žœ¹?B¸ivèÍÊ¢ûÙ‰Ð=ŠTgÜÍÎh QvUKœRŠ¡ÔÛ³=³·*ŸèÌ »ü ÔÚÕ$dno(Î*ˆÍ¥e[­¨þ¶5ÐÛóÁ2¿±¹™eTFXôÑïŽj_â|§Ç9Ú ÆxŽüP$ßB^àâG:ƒÊÊòÎJ£Iÿ—¢baDѦËvwi¬†¹Ã¥Ë•4{ÓÖÓ/mJûW2S‡êrÚS–V¸&•ˆàúZ(^S'2×ä‹’L3:5¨V}JC9ÜÖË”2Jî(>9c·aïj<Ü(ÎQC…6Ç­ X)sSl„öϲژÑ߬n -i¿5xÑ@>,Ïu> w?tiÓ¶0ûôIÏä#%(ù‰ö -©«ˆ|LO†D¨Å÷¦gîÑå¼Þ8vÉC÷I~®O–ÙÍ>mŒáõÞ¢‰‘}‚ -^hâŒð·¹ œ£“hZ™Í/øÅ_à7œÀ+P¸¸&&êåî$+Nȶp®Ô ~I(–»c¹ÚŸYªÓÅg¶%ø¥p%ö>­’H¾iL¿\ÚõÐß(¦µâ_«8Cƒ—R{‹ -Žµrð¦ëØíû‹0Ê{‡˜ÊQê¸2‰«Zœa‰ƒ†*7Äc¹äJî„I›ÏüìÒ]©æÁ 1=Š¡å©òñS€MX¡¥GMøªéþP¢‹:*½ÙOT9†ÜD¨*ÀzÞÃ*Úž“¬ÿ°Ë_hg -‚œ«ê9ŸjˆŠ"J7Þ®(ðhT(ìâ ª¦¼ÜðÊ™§Ä‹V¬áÝq -oò]ç }£¯9B‘7õ· öœH{È­’ëæi`T&éVÇãs"¹‡‡ªÃßÛçVMo¼iá÷׈â{C„^×;¿_g¿`,·÷þ2 Ún“ R ɫǶ]ÅjÍuib°ƒãÏV!QÏÆ>²¦aO<ö”ñOÁxƒªH²$áófe°§Åû›ê¥úКxÇÑiêÅà>ò$­–Ìy"-Ú-ŵ ôý‰¤Ëq ¸ŠÖˆÕ"™[Ø m¥cA¸¶¹"t8Q+PK¥ìó÷Ñ”¶ëÛãh_“ ®$+ƒº‡¼S¾ÎúÜþµ$áØ™éezv~7EhÅZÞ‚¥ÓªãHÝåûm®Ý‘(ãŸÄ"Þïòwnúê›»ÉÕ”^«¦y$3î3i=+iÿWuÈæÔmâ’<£Ⱥ][±÷QgShSÝ»¤SñºïX±wû@`z>ÍÛòÈëB¶"Æ®.(ñôAàN¥Ã|³w®3¬ín1eqÞ¸XäL%­1;¹MÊ®¦*Åÿ^OìU©‘yo•½§ìRùùÑ© lå™Õº©RéÓåú’ØyšQÝÅêØÌ·XçY2‹†¸Ä¾ŒPñ+«Ö$ßo¼7SæDEÏ–GÙËËGªvË.¼–Õ£ª¾PH^ ÍuòñjzZ+3àÆ´¤Nc<ÃÃe™åGKB.þ/Qü?øŸÜ|Ý]ƒà~.>ÿžßendstream +ŠšRòJ y5€Ðè`hPtþien57Ú8©&¶«F¶6Ææÿ´æHÿKÈ`p´™ÿMºíþqÑì€Ö掎¿æŽSC§¿3p²˜ÛY9ÿCà¯ÝÄö_„ìlÿFXÿõýS´utr4r0·sü­ª(*þožNf†NÿÔv4ÿëØšü4¶5rþ§¥ùþÂüõ:šÛ8œ€nNÿÔú ›;ÚYºÿ­ýÌÎÁü_4œÍmLÿ‹-Àhjè`lttü óûŸéüWŸ€ÿ­{C;;+÷eÛþ+êq0wrZ™ÐÃ11ÿ­iäô·¶©¹ Ã?‹"ecb `bü·ÝØÙîú\€ÿå?;Cõ—„¡±­•;ÀhÇ oëô·$€òÿNeúÿ>‘ÿ$þoø¿EÞÿâþ§FÿÛ%þÿ{ŸÿZÜÙÊJÞÐúïüûü}al²€Þ+C‡ÿW¸¡µ¹•ûÿ!á?5€ÿ&ùÿ#ådøwB6¦a¤gü·ÑÜQÜÜ h¬hîdd01´ú;©ÙÕlŒVæ6À¿Šþk˜:&FÆÿð©š™YÚü3z¶»€6ÆÿIþ¯Hÿ¢Î ¯%¬ðC‚æ?ßÔE)þÕÞIÕÝî/±ÿÑŠœ­ñÿ:üƒ!,lëð¤û{é˜Y8ì r21yÿªý †é¿Îr†Næní¿-32ý«ñÿñû¯“îÀˆÙÙÿ³+*N†6Æ×ëþq9;8üUõ_7þoÃÿóü¯EÝ€Fp«¿mx‚,Ò2Ój±r‡'Eµû{™À‡ƒíJTøUÛöø¦…ípU¼×Ó7Ns¶¹/Ú}ìKSŒöbZQô¤/óñ½I¨ú +P7É;8hôJÓÏ4¢<¯e·!´ØÕv'•”õŠß¡¾Ow°8À\=Qù‘¸ø¡“>Ú!ù¥ÖÇbt¢4‚|«-<=#O<~z¤ê¹ìÛǣɉ…%ãq@$ô³ÏÁÐR«ð §‚JoBÀ»i¿ú$ÔèöÔË##Å%°–}U4Í_³i—}O‚LoàM”slݯüy=?É+”8Í5—ûµîL&æˆÅÛ„?Ø;kI8“ ]O0üvMÙïæYk]MýÚ‡”»02£ÔYRïÚµOÆH7î\‰$ÒjçH桳,,c|/ͳ‰M|\ÔøÉ×Ñ;gYs&kœ«ëP›‰­HÚz‚qÒÄ^hØx#:0%;Øt­%?!IRt¦äÞáséÒG_æóÈùC¾*íž¡±D­³EvAõ)i´»¨ ¹Í o)([ŒÔ‡+!Œ4Ž óçBÖx¨ö×éÀQ†Û–Í·´Š“çALb¸Ù…B ß%5Vy>©•õ_C äåwÍO?Xjb¸ËRˆ¢kŠìßFÆW‘¦³Âxýùb1£ôB:^‘átlØèöÇóžˆ}† -ß´Ç-_†‘À=DMá¢y;3pîÜÇ£àí •"¢œÍ‰pGÄ/çk~ú’DÎv}û Î|è8|ÔpVx{DžØæÁù¬(™è“‹¿ònc‚"©jȦފòJøˆÚfœ ƒ¡J÷ôy¼5Œ³4©aÆGD‰–îQHA²;§Oý|ÍJÑs{+ø}Ÿ£ù-0  <¦L¾F{@ºK4@Ê84;/  y¥)ߢ•èöp9ãÁuaÔqLä z?‚Dô°°Tÿ ½ÒHt<êƒÑ`4×Úú +'ëZ;/€Ü –^dŸ”¹\ ô 0:ŸæëFVEò‘¥0\^ƒŽ å³Ý1wé¡•>Rh’`ÛêüÁT~Ø QaZ­d®ý:<_µ\Lä…5®£¿ºyÃRxy^Ù@I?ÂÄ0ï–~ÿà·à +U~-UÙ1`¿ôB}èÿ[à|ýÛ¢˜‘èþà éz]n¡·†ätœÍOîø +é+¦ÞâwªÉ"=ÖšTÂb.Ê;9§D¿KBr•ZDIé°É¬/$h-5…œë¼_àï_æE݈P`„‰ÆA/Xâ\¥$jœPSj9ìùîåIt·¹özîk^Çqô„êò´GËhžÖ=ëxõ\Se”ãÒx!÷©8aYf«qy·BýÞHÜö˜ãfM¯ocþÊù +eŸCN[hÀÌ"¯5sß¡¶s«ÒVÛBfžáœD(˜Ü¤胢&BˆóáÛ§Œ—=Ü9bª©s ß¨nZîÉÄõn^’¡ïg^í*ªüdïfº×D°>M*|™vži­}ç`1;s~ŸNÀê~m©Ó±‡„æ\£"éc ã9D^ŸÍ1ÿ˜,F»9ÿÙªø¥só=Ê>çR³¿N§EUÝ£¾ÊPäý60|õ‘³9& x¿«é:d=ˆ“ºª¯’!êö9šu96¯¬|öu½nX—n/:s€fHë¸ã~_±›PªƒÍ®Hò£}&Eåæ«ëO¸éT\“Ö¤ÍoMç9œÇ!©Góò eLOÉuA¬¡#_Ôáhr/Щ6ßïÜ:´ëÕÍ©Ï®$V‘ILJÓ]Mèž µÎⲇ  @¾áÓË9äøÇZ›¨6ŠŽ¯7Ï©"Öħ1Ê™‚b½ZôL’ADe2EV ]¼¤X*Aþ8€?¸AÝÈ‚ªºØHüéuyHã”Âs *þ¶¤ÐÏW8=IŠ0Å + œÉò;Fª¥)Ò—³ö­nEä ûÆÀ%g5HF¢´`Æ÷‘1ÌBTï7íVcUðíÏsÔ5#LðÆ}Ì Ó]Ô^žNkHp<¨‹7äÛ!”a¿Ö9âì-OhGô¢µÍæ<¶ªKt VèLUjŽÒ:Ø€ íÚ²"A9ƒýL§@•­ÕÜjF×/áóæX±a¤“á…sy鞆v_Íï[3‰Ó ‰°^¡Ê-à¬ßŒ!œÙl7¨¦ ÍÌÊdnS;Ó>„|d¹—.Ú¬fnßY“ã|ø5ýòbõ"éM¬¢øBÍØ-P_éÀ'´ +S4DB~Öõ‚iJìÞóex1tk/•m›ÙƒlÐÈÍ#ÿ}7©ñ´¸jL¤NB¬O+ϸ WEõ{ç$3W¨† ·°‰ñ6Szuß²]wTé‰2åº +r€Ð5™'­§øÌ·¶YPNøÌHý ú†C¦ÝÖïLS]Ý(…3¹p¬Ï–z«ôtNzTD¨7KŒ:®žh[µg¥Ñ¤ë­‰ ¿ø˜¹Ô¹¶âÂõA?Â}û Ž>uÝ'9*Ë25 ÄÜ£ýR¹'«3Ir¿'ãƒz‡&ù#uf9¯*¡ì@ Œ÷OÑĬyáw‚ÀÙÚÞœ«‚ó—o +s%Ú¸üf„ŸËcÉ£ç ©œ>V† x*sžlKÍ?–‰N£“í³Þ;TÙ6qoam~gfÞÃá¹b:èÅ `Âî ƒ3öæùfÛVÓT”75"úzEÒ²4Yj©sÊNõ Ñ?±Šèqu""¸RϹ·ÖÏð­f†¼ÀA'bϧð!KI4 @·Ã‡u&“w]!&$ià}ߊ½£ƒimói×Y +RÀCÔÂÙ—ð¤ü‡Ö†8ó1…œ)ÛC0H Éª­ÀP[¹@SÝ~w0æOÍ‘àÝÔ´#Þ%ì8MÖ™E +t.Û½«½DŒ/vÄ”õf&|aªŠ«-÷­c†ƒY¨}ÇEWùn¾ß¬úvtÿtšúgÓ±ÇFé…ÁI{>2›Ðø‡¨ÏÂØ#7nPe…cÄ\k¾Boq_„t˜V/|å|ªeE2óFm<Þƒòc):¥¢@y'¿v4œ¸}!™RkÃKnpÁÿ"}ÏHj/Æ*.@¶B™¡áì8³h¨ûÂò0:z$X(q»®%ù9ÞÃX*´ŒEŸ|ÆB¬-$MXÜ/ƒ°I,Ø iÀ~™3Ó &"sÐöb“–ZÁéÃÝog„F#º¡séc¡Êöïpð{Ž‡Lã³EÔ]¥™PÙu`Jvqíªi‘0ñ}ÅóEëg2!­Œ:¾~¤ÛS¶ïgãÞ¨e}èGóíÜ+¶býÂW¦âEñ%,ðÑ„ U |έR †÷Ó¸ ‚“7|Y0¦¡ÐŒ`c”h"ï¥]$¯ÙDøy–¢U”÷³*Ëö;•»°žˆž½X€Vºi<„#ÑÅÒ8ù³‰·5òNéK#Û”îËÏNï‘r®[nXôf$AO"Ý–¸SVµ¼7ê^Y´]VsBe÷ ´g¬KI^¹A5Çr &&# zK½q*Ø" ¥¸ÅS äVOlMš­åV:ìH™/*go¾ |¿Û^B´÷£sä™Í/‚¬¨+“`‡™Dì žº,Âe…9:Cf!3M¯ˆNïxnÀ>9ë·ÞxCaSB$È7{Od¤Ôt †ðˆÍŠcÅø»,Y™B‹áºoÛâUûà¸Í —¢§²Â‡W½`¢ñ"•oû›‹¶»í‹èoœSªÛ>¢UÍAÃo+«îÅ —6/¿es^“Y ?±Py2C™‹ -ÆŒEöÏ´óŸ{.Ô&fÓAÄVUþDØ×™ +´ÂØ÷þÞŒ4à…÷r Å› ‚$Œ¾£Q`ƒ-`¬×ðÇŽMéˆüyÀœJØ ò`’…hQý)*¡ $ˆY +5Ëñò­Àóv3.]”T'‘™×_ìÎ"ÀT'8±ìƒJÕ2,ί„q;§oék9ãñÙ^¼è½þ#±ª‘l VgÈDÝ/tHõÿ¨ÀQ—Œï±<=fYM[=€7 µ¡éPÅ°¯qdt³a³´Ÿ¸®‰ViÉ}Í~‰r¨È ºC`%ÐÔÖòü¤‘ ¨ä=ìíÈ€°ø‚x.«å_dÃñð,öͲ ôpù‚­NŸÛ®}§ˆTÎÒ¶iÒà_/á z¡±íRÒ*Ø Æ 3ýrI›½Z }z+§ðEU-8¬¿¢u6ìú xõ+ðsFúÐÎ3à"Áw}EýlMÚv…U=Iö1ä³Ò±çŠ:lú¡‰àâåŸm•ôònG&±O4 ŽÇ³rŽÏõ¬ß’Š@Î%R¿~W Ø)Ø×\„Ý=VÎáܨVbkcà6æŒ#°ÅóŽùI4MœÑb¸ï=pû{níÒË%ˆfcY¨¬×¿þécaöyqÌÝ1¯Æ ì—n7 +4?äÀYÜéV“yö2RS¨àÆ`{š,#JiHÂâ-ý»€ëbú@ùðsºÄÙÙÇ5NJ;Îið’s7?†™YJÂ’F4TïËý´äb„RêK,k"z’t&¼pwÛkßò1^šDFO²ÌÂ>1Ñk3V¾îÈNŽD{¶æDJ™¼oæà”1•±ææ¯\ÒeÖ/žôG};;’%Ú¨A{½Eì–6¿nn† ê¢Î,%*îp5¤=¾š£Íi +Yت^éιAÈ•Ë5í +Ñaµ+Ë“º±\‹0ïdÅ C´Ð²(Ó©Öצpy§’éÛ …oû x#z–ÓŽú­iÅ6„_´'Æõœ¦?óØ&¢6ºT&V@t½E ­B:3ç|¡7›Ãù)èq‘ y#釪sfWZâH«abzTÆcóY!ë>=ä€Ë„—ö†ÅŒÎF1-Ùòò}\Ò|3GŠXi +TpndØtº7ù)åç«sç/4ƒ8ôÃNE#.VØjÑ6sÇþ·Šª,o¿¢N(Þ-Ú›:ŽoLªḻ9ö8èš?&f¾>©¾*æËäIâ~‹zÅ}HôäX|]ˆ…–5Ö‰¤õö3›‰ø/(‰[ï ˜Vîb6ðÀ—ˆ¨ÔÆ¿<—ªîïáõÑc{R‡vº±£¹ôRåpõ«ý—T6xÍtd=úÈKgû% º`I)„ê6…xVdLñK±¯“þO{e§Ré÷ù+Poõ šZyßÝb*óë6§ï½$¬ôG u\>Ì~ó²=]ÞkÃOáGùÀâ¼’þ4SËÅuÖ¦Ç5´ŒšÈN›Q;|8x +ï‹i’6RNbl¨°› (¾/`Á%àÁ¶åæõ‹¹ÙpbO$s™Ø¶€ŒÑ¾ÖÛw@‘ÖD“Õ˜‚ÍN"­K  &.MæÊj©úŶžÔì¿(`\5ÛZ µ2kyD„ ¬Î[ï*¦à"þFp›aÿ Xf˜¸ÎTb»}-» ÎáÎB%½ 8ê  U‘6J‡(ê¢ØÀµ–…Fíªãʜ؂¯ÀX-ô£-Ýñø>‚q'«o"ty’ЄP.Hòöf;¦—囦 +èýJÇF@´ø¢umŒ¯Æ8|‚…$³(ßUH§k‹ÖÐÓà ÷¹eeÕmÖGJ•#𠜶k%ââ];$ÖJt ‡Ÿû?`ö„i¶Iq~?•°©Âá/üªÄÕÎk‰ÎX¬Êù˜³SÜÛ¶‚ÜHvòÅ¿¯ö—Slöèeî‹*bN¿ÿe¾¢\h¦µð®ŽRöã +oçë÷¤¸Ñ^u¯LÇåô¼ë‘¡—–‰È/º¸ïr£ìu_ +¹ÊGÜ.×÷ÂÌ?áw…_«DP×vÀÊîúðMEi‰Í;èÌjêL¾ÓÍç¸×l£ÖJáðœ4ݘ$í$©QøRdàdzFaÆ +±aÆ°ö¤ûÐq#Ê õ;–>u ßЂÑȲ¨ûÜ î(x­Ô>|»zsÇöMïÜÚ ¡<£²€*¬R¶nè«jt¤g6ö!;¢nÖDJ®Jí¯/i·2»K’HŽc1äÄ¢):ÙØ^Ãô¢šù…Íí>ŒôkÏ\@¡fË yñ6“é‘úGÔPÐ艋ª£5nôXþ8…ZvOç kŠV7ûüÒ6'wÊÅrÒVrô‘àÔóµOoü@ ”Ç}žìÃ3_k¥Wn~— q°ê€Â¡NmHN¢ö.U¿_¤dNß9h‰¼¤‹8 @Qpù7Y^©Æž7RØ‘{ǵºÒ´±Î—ÄA¦WM¹ ³xûû’×*îÞ¡Þxö\(ž§/2Ÿ@\ꩉãù>#ÞÐFÕ³« iøMŒ”™?E¥´bC3%ê5îæ{ÓeR„Z )o UE4´oÆ :[qt ˜O¹èðuÙÎJ’ÔàW-º¤–yÃ*¸Ü,ºq ï7ô/fÁC¬F¤œslÂïJc–R‰¬È3†›…ˆ¸î*\ª‘nu”Íooˆ[í)0"Ï„äÜòR‚zƒi"ÖbhÖ“ ÀI8ŠeC’µ¦ ½`ò6¬¬ÙÈØ—Éýüv¼ÏvB¡¹†5ÃÌé—|5˜,óë··'{Ÿ$ÿ0Ø vYR~=2·NDá…Ü… ´²ðAC£´ïK‰ t¾ú¤ÅÊ´Uäfsä)_©ËŸ÷º1Ó—ÃU»»bî¯41Ê„ kÄßF(Ä +AQé}lߧ‚>œ'Øoy=Û“õÀ!»šp£v SO`MÚ +ÂEdqðÏVŽ<[^/à•‚³mQB(ÉJ4åïPÓ%›ù5`¦—¼<áN]´ÍrªuÓD…8#¯U…ÑxšŒŸžþØë$@Ñrˆ ¥åpT_ç6þ3$$mýñmmòk ŠÊƒ!7gN?¥÷Ó +4“R¥VU»4¦^¡ËþõúB–üLJ#£·nγsl€tŸh‹P¢ÀB¯B¡1ÔÏ’‡’ÀmA8onTƒ¯üàŸœŸ™@©5Ý£ m>è|Ìãé$Œè8L¢äë×RõC™u´„î0a\*;­A° 0‰ì…ÀÏ?'ê=¤†CcÕ×ÇógEw{ñ§X<¬Ö«Î§¢¯‘Ö/¬+±]éÐf¾ë{Î"²Â.`W_‡—ú¸R2´  ¬ ÑßèûnȨ÷„W:È%¯Qý#?‡uÓÌá†8p¶ÄÖKê"“`t@ º^õÛ“TºXÔ+©eÝy,NÄ™‰âJcì³¾ýóiówh²i©1K½à#<í‹6uƵ(E +¬Ç¿Ñ¦‚¤E(#ÍËŽâ~qõ¥]ïãDí +zúÎ}™‹KŠcw|¤ªïhu•ëôSˆÆ¡ÐãË­„[ö:Ò-DqnFå†üô’êP>Âz^ʧÁÒÀ”¬Ì»›~–[T¸4عâXïîif%ŽE„óN˜¸þÒ:Í“dõ¡#d©ðº+†ðŠÊoFš{ÈY_5¡»$ž…Sr25Õ¼îà>Ó ë°+a“^r8Æz5³w ³„­JÚ%uàÏŠŒ²¥oŸP,ã¦8(+{(š\‚J)æ}kŒné?op¡Œ®_@U<º°4Êßo‰ÔYÞ<ìaÁ ŸMˆ§õcDÏSÆ)ÃêNiñZMEèG5­:—ÜüÂ.Ì{á¥Åu[R½Q0È›®iÔú#ÅU·@„ñ`lˆ-gb”Ŭ\ÏŽXIP'°(Gý³»`š˜º„€B@BÖ&íOrÒKn°ÉŽ‡{ûgÕ.V­„Ó á™ÔëuVO¹©’›¦ic{b¨þÈí‹5D«Í÷‘(L˜žkVADõ½mÕTŸÃb|kÊ"¯=^sfÉ̇ ø.Íþ¦úzƒ D?¼fd¥òCRØÇ”½²c+‡ò¼}ÌÉ? Ž²69>jí™e›W"àùï +.^7=º6Š2#0 Ÿ“8uGzƒ)?&¯~Ó&Î^ma€ÐÎÝØ”ÉUk‚Ï]ûl ’4Já–‘—ªÖã¾ß‚•è‹ˆzN“Uæ§z¡Ø„ðcÃÀ4¼âeºsÂiŽ˜›ÈÈu"ÂXÐ MòÂàwB²Iê­Ã>¬qø´d†É¼•§Ç. m"£ûˆëDÊ!‘‰oRêS´½)™FÚêaÜ.¹½<ÙBý 2ƶðÞ+ôBƒÐ­¡+-Õ›3ãò¡5ŠÚR" :zïEñ>©-Óæ° Îg‰lL8y$º›³Þ%µÙJÏX9?ænµ‡äFóà–®Œæ4GÕ'‡“ç@µ-–ýp5i~Ìoãø†Ž…·r–½Ý¢_« +)׆þ®ì¸}Ÿð‘„¨ÍŽà”ÿâMµ3ëîDþþF·X#›Vx„¥Šš9—ÅÁ¨¢S@§¾Õ§+Öf.;™•óÛtÆçÕÍ&…¸eýÁˆQ³ý Qi†•hOr{jY%ÙJw¯ÂT„—lFt{¸ö81÷(Â¥…ô¶äÃÊòûb2ÒJ8cá”ˈÒbÁÀm¼J&­Z‚A +Õ!R3|´î|ܽ$uà×­GY‚œ æ{Âx¡  ~.œú&[qæfôð†hZ³O D_‰Ã`z™7ÊMìòMA•WsÕ [ž„væsÅÜ!ƒØ^ZÉ»‘wïFÞVeGò‚\l¹ÑS\Ÿeæ"þÌDnÚ‘15Nôz{ƒ¸Yów0[° ukz?¡Þì%¥ +Ü0†Ç/OLj[É|Z«×Ûž<Òí°4ûº ·Dɇvk5A´oã ÌtAÔ” +çHBžO+Ú‚ÄîóÎ"«g,Ç}õS?3Ù³”“´§+Ôö·V¥+ÂÜÖ/'Ên³÷^ö/€Õ…Óÿ곕µ°€ùÙ?"0ÁAÉÃ\(à-ŸÍ¹À/¾7mù±y}ýÔm“ýmùkìµ4#±$ß” +¢0ÓžœÇ‹·z´RÒCfwMÎ-‡Ý ’օʹºwvE:…n6OAÆR . ½Ã Kæÿ>©´‹™Ü¾hiÓn#Ç*ëÈÎ^ª ‹{n„œƒ|Q‹évÝ 5¼ã›ènB uv%ò9{d|ÞQP>CöŽŠß$qˆÒÊšÙ8”Ç­š¥«­u#Õ¸)«Û×¼¡ëSœiQ¡zJõÏA*tµÓ¦¤§ 3;Ûtès-|b~0~B-Z)ñBšª©*·?ƒæ–+[L’0o!ìÆ»UÕ‹B"Œ¾ªÏ5jdÝi·©dVéc]Ð[æa÷Ú(i³ ¿=ב;†L íu߆+YÙÔ¯jÒðoAs-á÷!Þ;ýÈž8íöêš«Î~à 0 À„ +Œè†²}­°[^­ÄÊ"+4´Ÿê°»Ç[èë+SˆR·sQª‰’ŠYHX¿™ïC6ñé|W$­µÈ¹ê1±£×Kì¸ËG4ÄÓ:£å9d8—f‘%¬-Uo—@~<Í‚¿<ÀÂ/OY„рƈŸ²7 9ÿFL!Ë·$À#Í‘»%#“ÂÏ®À!¼d^ûÉßì#r8ç7Ôs¹ùáÃ@óî¤D((§vL¼ñgà³wKKf8Õ–u±M„ ,GìÀ±„#†áÎ7n $\*Âä2Þ Ví/@3*Û¯¦"üÔHÏ Ä»Tm’k7ìècƒÀ¶oÝ…æpxVåÓ{'ŸÀVÏQ@Lv¥ày«§ ç-{†Õ#c¾Ùy·Gö=…lL˜ÀL[×nЩ2oY4êðÌûÖË•÷>BX^M4UÓvŒ„l0gz +ó½ýÙ ÍËF£jkN°3½WäfÜÁ)8+í':º/¨%²+žG%$Åw·í=¾tÀÜ~ÆéÁúäi*¨ÐuÙ>lû2{†X’GVM"¹ï§¿äØÞóŠ-I¦./q*#Ú-ÍÌûS­n®Þ~¿5f58O&Ó=ƒSµ@·ŒVÓÃܧçOPkÓÿ hÙ)&ÒªîÏWfzv,Þ6ì,Ïp¸êÉã7­ ‡ixÔÆ­SÆ;Øc¹}¤ÛUŸV¼ðœxç.»wQ~ßÓJ3CÙNcYB»Ñƒ¤3Æ›õ?­ÔæuÅXŽÝʇÌ®þÈ}‹b×"¼ô)ÿÆ;Ñ€¤ˆÍ +Ú‚+m.'ª®ãæáLVò ÊacL-À³…KË+@±ù~àI mªÎw3$‰/pKx÷ÛNìv þB ͽ2ÛÏA‹É]`Kmâd¹êuW‡¶oŠ\ˆ©/QÙî„„!'Ìqzî¿æÞ`rŒjéÒÍd‹ß”¥ +¹•úÑÅ0v ñ>R0Þ{W8ý34®H‘ó£îH±±­ +—0oj+tóH*ßj<šÊ¡ÁYzdÍ¿f1hJãg<+ïa??Â…VMQ·IŠ´Ö`ÁÖK)²jâ‚·8óK×… +t‚i]ÕܹQ7•¬¶">ø'2cq’ÅuE}sÀ£e9L&„MrÐ`yOCÀ´ó'{›HPO˜ÒoÅø8ì»n·Šš¹Î1è˜(]zš¦ÊÜ÷ŒDÈQ–Í’>¸iŒYñvÃ×LT%ù+0&—¢1BµUkæÞê«–Ì«l +¶Û2g§yö$®ö*Îæøe"'WèÖ£“C N1.-ÖsÛòQí5rJ÷ÛYAQ&¢V1R7Œ¾'NI,Ÿ*˜å~Ƶ”›~÷Úrò9!ˆcV†aCPµO;;PÝÌå³(t>ƒ ¯ì~0Óâ&ý¥tdW)T?&ÔzISÆ—µ Ñéô9óóŒl|—T¶·ô¤+NÓÄn“4üÑ«#éÜ‘ñÑÄüÁÉ֕aã_.›+A¯@™øêSÈ3•'üp‡IøÐÌySzùO ‡´æìÍ®¼Ck;ë2O3Ô‰áy/sT²—»ŸŸhŸúĈäomg…Zˆ­‰fº9ðþÒnjĹ.&i&ß7AŸÀ’\aö(±V­J¸ãnÔœm> ØŸ) þêy…ñålkMO¸éX8VEdàŸs][» NÆoñ3F_ 4å`}†v,ïˆnd ‚ì’تLÚB+;1‹h²QÀú·î´¢f)²kß8OÒ# õ:‰É°*NøG0Úðž{Ï·¸Gâ3]ÒB]ÝãŸeõÊUút–Zä¡ÛQ*He'3u}š&ºaVÙ0nÂ_å · Ø5J泧Þ;R~&ôc5Æ¥:3…/ïì&Ó¢.AðáÁÎƸÃÄžR¿nÈ€¦ã~E2Kâèš”¾³klÌM"÷mkòù¶Bˆ)™öøï¿¿ÓIF{/õð·לuù[Š“‹ÜhV¥<õ!1QÏG)9ì(Å¥ ÒtM ËëqÌõþ¸]%tƒP]¦ûtàÆ&Ks:!lg‡€†)®7ì,èøÔ:Åaäæá·ãäQùÔò=•ÃýnÙ,×À­¼kZ^IºgàÁô.uQ³÷ },Œz“¸»•dA@{â^@±ÝƒžÅ&ýþ°Æ¹rVL*ç‹jïRf§ž¦|ú¦ØhwFjPÜ{tnã𠞸Â1LM‰ðg6þ>¬€ä¨è!³ßO’N·3PsÞvz¤' W›Bb×÷d•ª;ì;Ъ"j7Ž”‹98ô©å,³ÑÕ4ÛÕ-뀌éÂçË+[ã®fΠ´=5"ëO_Z§ÝQýJå÷# ;~Æ×:¦ùOuP2Ãþû9¿™Úã†ß°q¸D’!ˆñÛü"Np G“ó TI¹Düˆmu áê°q¤boówH/Xâ¼¹vbh™‚79}Øži• 0!5mù'p¸ªŒÍ-ÖЗXéçQdrîá•fè÷ëåÞ1ŸdÅ˛Σã…ê(?ÞOCüUd;â±ñ.&- ÆÍ á©UÃ&ÄlÈQ¶œFWü ÊîG˜ç;!:XV†à Ž«¦g.šÆÌ" ƒâÝ`”Âp¼](G¦•|ªf?„ËÄŒjݬ~h2w|¶A™¿îÇ숚ˆ‘u #S0g0XÌŠo æ< ~°fC1å¹TËI€I¯v8ì{0®BôÂPœŽì>@;QÐÃ'‡³ †êÉ2$¢b(ŸÜ~¦r Ž}žjÈê 6G\æ«ëVáÃðšOD©h#Œir ~7úsaóÊÀ?Ô³©§²ÆÍ9Õܯ» +%*RŠ 8$ ²Bí¦®ä[D¥ªÝ«ÔGÆ;üÑh<®^‰¨´ÑE—@$|ûÈ89O\2¾ãw3ÆRæò…iŠR)ÇäN(˜$ âBd ±ÈÔ: ¤cCœšÒÅãE…É<¬)2@5ø.½’ë"¼ë'óMÂÛçœÌ„8 +БQöw>}N·>¢Z[@ß HÀ—ÞäN—÷“$wŽp»X0õ•Äƒ<±´Áí¼sÎ*`<Ñú¶øAF‹/©=J^®üݯ‰TÿýŠCX k¯”¢vÈ´ªøƒßnÔ«Ó¨ ÉŽ:ÁCò®E~$œ-b™¶ëþto©ýB5÷ªF¶¬ïϾ¦´]çnÿ¾ãçz£û-&úiý½®€Q“²sxGûÑû¦I`¾|R$I‘õ\‹àX.áçëÑMdù ØGË7DÐÁ`lÈÒák‡)*¢mÁˆŠ‰£ä¾цëmhQ8ð™’¦;¦eP‰Ñ£EçòÎïZ¶úAI +¦£Ò턳`à*ùê™>÷)›td¾ñlË•]“î×=í +9l¿»YªjËŠÍa™°Tt÷W.™”Õ>/žú„ VݪdspÏ#¸îú§+^üƺ§h¥ÔS-b©\LÔåg› llª¦¢,#Un¥`ÙD2ïÑw^´îWƒ…jžÚòHƒ,ߣ4i´Ø$ƒšš4œ¤c„\œÐ9˜n³žK=F™•S'a&È6cS4 EV×#ž°Nšy’ QN¦]ˆ‚{4)gáŠÈZó±ñëÛ¢¸$¶§”tÖ©ç< K·fÐ2o„mê„‘iª:Ï”)Ðö¬ ×ø,m/@=ÉFËi‚tÖ²$Q."]å+&•²jjÄD™Þ}Û­n38e(Ö²õ²·™s,ÒõáÙĽëÃîñ¦Öà#” +, kÉ÷´éhÏ·.rLgâ×hž„—pZ??ÎË;@·aQÞ¦fÍ‘Á£˜ÁüÒ,_g+õÇDê–[ÖË`lƒÿmjC“½ µ‰¹ñ•«ßyÁÙUe°M ©P21=ÑAC6R²ãxÖ¢Ó»ÌiI˜µnþ¡twÙW|$Ø©Ýv;Œ4âcƒäy.,üôFÖm@Ë1›ÚÜÒS½V%¥ òN)®#ò÷~H}ç†/œ¶CDÞË>K†·Õ04 y\·ç¤Í¨ƒÎ¬VD©?qúÉ´K¿¸!˜Ù6t’m3ã˜B. +ÂJY†Z†ûš|ý4-¼©‡ôÄÖ/äNø&vL‰¸y)û÷oæéÆ¡s¨Fâ²JJ–à!`²K-TîÍ$\ \8fÇ®Ÿ™ºˆ¤]z‹9L9‘Ïÿö4ÆðÞ/Tþ&š¥ëÕŽÛîäHŒ7ýø1ô°’ë{ÇnŽrbÍ¤à„©7ëã!ÀÎ|#^ìñ›C§.Öçì1Ê"‰ >B÷‹=^Õäìb—bu/ÙÒXÄ‚™Oå§kY‚O)™:&Bç|i¿ôÚ¸rŽ:7q.8VJG±Ú–= +¼œggÍMÛR9éà½Ù»T¿Ø6žft»@ã.‡±v¸g8ËÃ7ÖÇËñˆùƒs‡@JE¢ ÌL‡²¾ì§£é-ø?ÝÉ8݇uÊ I·ï*"3 Ò÷ËVA¬¢Õ- ¡Z"ÞÆmU{/)tŽÎ›ð?KŸä~_†ÜÙš Ö¶lâ’¡n˲aþq+—ôú¨¤ë1æo/+žQTËq&ÕHdn„Ô¾u ˜Ñ­-ëMåÇ‘sÿÉÅ™[tœ¼¨øµŸÀÄíÞ®ßPx|òúËüá‘æ/¨-epsƒÛ;ʽQÊeŽÍYszgÏLf²Ê%—â +‡3¾•þ4¡´°Ç4s©Ó(œ#qp6ß ïȈLÞè¹xÌ9ÿ*Ͻ-+\NÆ"ìÊלý 4±ëè“B»5ýû/VQO‰Aüp ÈÄ@ˆtö·­ã*EÕV0µ¬7Vn¸¨bÍ[u?¹CöuJ4,Òk|_Ë­|Ïë2•`k”äÅhÅEdÔ<üÉgÁÛ{Ôrä5ø‹›o{Ÿ¬cy¯£ÓJ¥Ò/âðÉÞ28Ê8®9!úzÕP“¤¨x÷6`1©ÖÝ`¯îOzó€Xú8jvƒXq¢™°£»kÌí²¶¡‰2D¾ß•‰”uaôBAwõúà ‰¿ +€ÞŸ|æ`xFÎärãiwÍBÄt·Ñ9”kE‡-ñL¡•´]^`ƒ|ðv?B@ÕÚ,eç¼oì.9‚¿‡ú‚8ÛƒïûÝ +2h°Ø‹­ˆÓçBJ6 rD÷ öy@hÓ©A˜orÉbo»­]hdçb;é^ûxw^c»{$¯öw÷ª(:©]Bæ?0B¨Zt=qsŽ»_ý¾$UÎö×ÐíT! vMIöM»ªéKk¦øy"Óî“hŸQ¨¿tHg½Å#v³ Ë¢¹(^Ë×"F¸Cáß Úï~µÍO[ŸåÇ•ÖZ²Æ~!íg‚dö¯hÙ¿¿«ðÉ×_j¼ºÞÑñ¯EAåƒß€MŽ›_ô?¸M¼½Ñ¹t~ŒÜ+ì SVáu¤T…r©¡l®¥Uƒ0P;Þ‡™OØ~uLáÑwöÞ5gL›É+Êj/1ˆwv_›Æª¥µ[þ±žœh…{eóåa"ë‡u ™rÔc§®–㶭=üdxí†ã%û¡AUì÷È+×¼ Ô4ÞΔEÞ°•ÏØ„ç“ø¡´ûèâPz?¢†Ú mê"ìvbîdU‘Ö¾”ñzñj3¹¢¸j&ÁÄ~¶§‹»‘LͱZ +É5w½‚'☺²¡tg‚ÉGѺÐäQ`Æ9vÉlpúÿÖ§ÿ¢^ʆÁ.¸7%Ò` ã±¬Fœ}a<õŽÞµªž2Ȇ´h¶”RÒ`k‰ÉÓUúÞê¤/˜÷¢ú¹«É«¿ð\”)$q‘1)Ûÿ~3w¿,ᶉ:—ŠùÒ¬®ÊÊ€W6 Ù ƒé‡~ÕiЩ`’××»žÉ v ˜rGK/ÊBˆTJRÌZ[¡}ÙAöˆóÛ¡Ýå熫"ø`™Þ[þö‘±U1²ѵÀÈyþ¸ëhBØ…ÏÃÌQ)¼é‰e‹@Ÿª"´±³ÿ2ŸJÙÒe5> 9UV„ jTÔ׳4ašG}„Ç᧜5ÅHgQz>ÜØÕ"oÍ£i:,®Zƒ…[ªŸo[¿¢!cÝÛ)èu3oÁÜKÄÏ6W Þ¯"Ó  ”ÚðUAtE© ¿#Ibz£±'»PæÜä + !˜s¥8cs;ªÄj­ÌÜfºô#·Ãÿg:‘s2$Œ©ˆ×6'?^1„4=Wk¯^éßÈsê&Ù¸e;ìðìÐégªA¬½Ù¢vXþ]ïz¿Y¬ÍrôÞ= + Þ?”XÉÙTVà†Q¢›‚3=A(ÊŒ®?Ît??xnkà1›Ô›ÔÚ äŸA`ã×0滬²tôŠ¡Œ»*!ÂFë¾ÈÕÁ(»L lô-eFf×Å +§,Éù¾Nª„8’sŽ±©U WSi—³¶,keõ%ï"‚×cQ:Á`c„†3p› Ò£ïט vv„_Y†)„A(@n`'7)$P²tJíòkÓp? ¨OÝï°¸>ózäö o"DXÓº3Êlª‘ûÁ†êÙKß±6ÎÀš9ŒÌ9‘ 寧«Ÿ#Áâw©üljœ]rlXÀfñêjéÙÖ ˆ¹œqwLLCÖŽ¯ËAŒÍƒ•è­0|¦·Ý¢fZ/Ç +qH {ÃŽÆ¡I<Ü“QvÏÍ ‚TD†¶ßûu|s˜ÙöoÜœ¼ •ÁáÊË—1™­.·óüe|î÷œzzEÝ³Ý U1d•1°Æ½™Ä<‚Ǩ‹Ç/œapbÑþ?íÌ÷?à3ÎÙdds_ël_ûÎÞ;33gwÈæì’³ÇÙ„ì2Î(ópvÄÙ+ +eËè2R¼ÄûÛûyŸ?à ·Cžtж‰ä€¢rªØt°W¨ÂÃ^Ã>\\hŠþ…¸­£éÝ ÓùÞ©e‚ & +ŒÙí?ÄSËÜ·7 ¦Mwv½ r#aCp ÑÁ¤»Ê«Z²â™×?åYó›j‚foM¤Ž¾ïhWò÷%Ñq.4ƒ5ÍÞóŒ®:žªFï€uI|Òxóstóår}¤‘(º…íOëËD›ïö0C³Xò™Ï­mtý#¿#/OÙÉU5ƒ|¦ðžË%åOŸ8+‡!ðÕÈïÆÄ»Þpi¯ÏÊ*ÓK(’èÛ¾½ÙR„n9 ½i3Í“~i/]L‰ÙA•+®ƒ¬-ãÐúˆ¿”X£Ôëë"M3µ°hónf;ñˆYþÒ$qW½ÒG_¹jcR2š×»‹7¨Š}r ¼áègJ?%Lë9bBú<–ŽÌ&f·´È’Mµ½>ºç|lÙQs- +Ï7û1'»öoσAü¬¸²a«Í¡K-é¢äþ{." xÊDï ùÐæI~˹G=Ö±?‚§>Èyüñ°“NÐ%îIß×µ¿è4É^)Oïä¥ç¾®ÁÉ’F°³¥1ŽžzÓ€SÚóJîi¸g_ ~`ñ›1E!ûŽ±Ö]Óhcotí¿AàçUpö„ß*&"-š{~gò&ú{ …rO]ÉOœ…È”[‰„î£-•;J×VAЊü$JJX&Ê×"é 5 +¼ØñÆV¼_±  ’™c€AÆ +€~g´¦™L#ZeöܬðrFVU +¨ì¿öžÓpÇ£†äH¶Õ2Señϵt(å¶õOÖt†Ò[ \„¢73}ñƒça-ø{û9…Ô8‚Ãõa8K<ªä-™£UÍZˆjzìɲ¦Omuã–‹ +|BÖÝB|kæZÄ@ºÛt7B5úÿü¥/Òµ׃1šòò‚Æû±®¸—ÜQZÖ¿S^©Àþz?§â7*¬UÌ‘Ž´Á9a¸|ø2DyúQZg‰?D[á4m|‚B–*õ¹÷kîìDRºÚ0„¾ýç–É­wó~ýØÒPÇü>? +»ë~÷aœ¿nïOÝp}ê#Æ)f’’¦„?BË`„ú ~R(hà'Ùç¾óì ØÉ»žOÛšù.»ûe<™“1êÌÇÒïÒÂfÔÕóÏ“¤òÞ!°(íTLÈÃÖ¥råúDÌ|–ÐÅ8Gä|}¥|è+ÏTPDpƒˆíJN5ª,»sa}èàÝ!/ÿhEî:±‰–ÂÖuL¥èmzÍŒÈ%áØß+pJ^‚…®Ù†V§óÕ7ƒ° 3¡‘ áâ9zU¯Ì…‰ò;é–Ÿ·(Nâ°­|&=×ÝÉEr4GîÇ4ê˽/Vñùén :,'劘ʕc(x^µ@$ÛL‰†¸æVìP¤ýÄJÍÏD{¤>pV$QJ¬©ô=˜Ð9 Úp€Õâ«ùD¤å0ù_‡b>éRêVtÃÖ ÄMd~„Ýl{‚òsÉÞ! 5õµPÓÎ!ÓêÕ±·ÍˆoÅï$ø4÷µ£e!Ó†R©û,ÞΦbŽ†lŠ\›»ÆÈì\Ùú$Rk=›‹Tö° +Úð­,6äX€qÐ-}nJ®k^¨£ô@l€¼ÜI>Œ˜×TqÅOшتxín°úâ…õµ4JÌäÅV kw¨Š‘þI’€¥¤\°^0Vò˘íep«%"h* ê mQôB±Ýë“ÙÏXšEÿ¶Éµú0üöA•ÚªÏPbÑËöê6EL7‹:Æ6ÒpÑÁå»ý%Tñ4w bBY6Kn8¢slG›‡œ .ôˆdŸ*‹îí¡ï8‚ìu)+¸"xJmKM Û /û’oË3ÌkŒÐ‘ÜãƒÛ’ÍËïÌk‡;/°¿‚ë’àU¿n¦NÔí]…6sÍ£¹ÛÉi<9s„pÓ4ìЛ•E÷³¡{¨Î¸›Ñ(@£ìª–8¥C©·g{foU>Ñ™vù¨µ«IÈÜÞPœU›K)ʶZQýmk ·çƒe~cs3˨Œ°2è£ßÕ ¾ÄùNs´Añ,ù¡H¾…¼ÀÅt••å;: +œ•F“þ/Eň¢M—íîÒX =r‡K—+hö¦­y¢–éx>39+¥¸®¯k"½…Çl÷ÀJí„MÚÜ8ÁYËÜ&F¶”´Ñnýó'¶±_t¯…´²ÅÕÛ¥ ¼”žŸö8Gojü=ã6ÀçÞ}IP†C?äy¹l÷×MÜ 8ºSJ§Y´%$<-ãw¼S9ðJU&t ŽÞ[™#ÅÀ½5‘µc§O&QNðoMÂM/ …Ìþæ2¼`ÕE”n¼]QàѨPØÅA9TM;x¸á•3O‰­X»ãÞä»ÎúF_s„"oêoì9‘ö-Z%×/ÌÓÀ¨LÒ¬ŽÇçDrU‡¿ ¶Ï­š6ÞxÓÂï¯Å÷†½®w~¿Î~ÁX0nïýe´Ý&¤„’Wm»Š)Ôšë2ÒÄ`ÇŸ­B¢ž}dMÞ xì)㟂ñU‘dIÂçÍ Ê>`O‹5ö7ÕKõ 5ñŽ£ÓÔ‹Á}äIZ-™óDZ´[ŠkA,è3úI—ãq­«E2·:±AÚJÇ‚p9lrEèp¢V —2JÙçï£)m×·ÇѾ&\!H !Wuy§|õ ¸ýkI±3ÓËôì ünŠÐŠµ¼J§UÇ‘º;Ë÷Û\»#QÆ>‰E¼ßå îÜôÕ7;w“«)½VM.òHfÜ7$fÒzVÒþ ®:ëÍ©Û"Ä%yF#u»¶b1:î£Î¦Ð¦ºwI§âtß±.bïö:Áô|š·!/ä‘×…lEŒ];\PâéƒÀJ-†ùfï\gX?ÚÝbÊâ¼q#°È™JZcvr›”)\MUŠÿ½žØ«R#óÞ*{OÙ¥òó£SØÊ3«uS¥Ò+¦Ë?:ô$±ó4£º‹Õ±™o °Î³d q‰ÿ|¡âWV¬I¾ßxo¦Ì=ˆ4Šž%,²——Tí–]x-«GU}¡:¼@šëäãÕô´:+VfÀiIÆx†‡Ë2Ë–„\ü_¢øð?¸ùº»Áý\}(þûJßendstream endobj 863 0 obj << /Type /Font @@ -9152,14 +9165,14 @@ endobj /FirstChar 33 /LastChar 125 /Widths 1931 0 R -/BaseFont /REOTBO+NimbusMonL-Regu +/BaseFont /NZBOXG+NimbusMonL-Regu /FontDescriptor 861 0 R >> endobj 861 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /REOTBO+NimbusMonL-Regu +/FontName /NZBOXG+NimbusMonL-Regu /ItalicAngle 0 /StemV 41 /XHeight 426 @@ -9182,7 +9195,7 @@ stream xÚ¬¹cx¥]³-Ûv¯ØfǶm¯$+6:ìض“Žm;éØè°culãëç}ÏÞû\ûœ_çÛ¿Ö=kTªY£æ¼îûZ”¤ÊjŒ"æ¦@I{WFV&^€†ª–²‰­­‰9ÈAžQÕÁÎð×̉@I)æ 4q9Ø‹›¸yZ@s€8Ð ÀÆ`ýúõ+%@ÌÁÑËdiå  ùËAKOÏð_–\¦^ÿütYÚ¨þ>¸mí€ö®)þŸÕ€@€«`²Ä””ud¥4RŠ) =ÐÙÄ ìfj 2ȃ̀ö.@Z€…ƒ3Àöß €™ƒ½9蟭¹0ýåq˜\f ¿a@O3 ã?Àèlrqùû ¹,Mì]ÿöÀÕ²7³u3ÿ§€¿v ‡äèìð×Ãî/ö—LÙÁÅÕÅÌäè ø›UY\òßuºZ™¸þ“Ûô8Xüõ4w0sûgKÿÂþÒüE]M@ö.W §ë?¹Ls‹£­‰×ßÜÉAÿ*ÃÍdoù_0œ–&Îæ¶@—¿4¹ÿéÎíð¿íÞÄÑÑÖë_ÑÿòúÏ@®.@[ &V¶¿9Í\ÿæ¶Ù#0ÿ3*2öV–ÛÍÝÿs:ÿ«A4ÿÌ íß"LÌìm½æ@ fE׿)4ÿo*3ýωü? ñÿˆÀÿ#òþÿ÷¿kô¿âÿ¿çù¿SKºÙÚ*šØÿø; øç’±ÿ?¼Mì@¶^ÿ7ÿÿî©üw‘ÿWW“¿­±·ü+ãW&–¯ÿ@.’ O ¹2ÈÕÌ -`abû·Wÿ²kØ›mAöÀ¿šþ«FV–ÿ†©[Ìlìÿi>ç¿! ½ù¯ÿ¯LÿªžYMV\^L”þÿ¸WÕlÿΗ+÷¿#”ÿN‚«º—#ð¿Òi)8˜ÿçâ>QQO€7#+€‘‡ýïdc|å`÷ý¿äþë­L\Až=&Ö¿¤ÿü²ü“û? ƒÿF#aoæ`þÏ쨹šØ›ÿ·ÿ4ü›¹9;ÿUù_7ÀßíÿÇú_ƒzÍV9˜ñ[§ge¸Öáæ OŠë ô±B‡8–6ªÔ8ôú§‡o­4~« ajšæýh÷Z:q|ß—¥;íñ¥îM^ù’Óö¢ÿ¦êä¦?d6,EÎ8ÕŠö¾\”ß‚ÒåbÑ<Ø™TQ5,yƒ!žîdw†»|¤ w/ À¢xpDñ3KkˆÃîBkèûqrJ•tüø@=462ü³÷ºŸ>7ž’Ï +`abû·Wÿ²kØ›mAöÀ¿šþ«FV–ÿ†©[Ìlìÿi>ç¿! ½ù¯ÿ¯LÿªžY\FMUC‚þÿ¸WÕlÿΗ+÷¿#”ÿN‚«º—#ð¿Òi)8˜ÿçâ>QQO€7#+€‘‡ýïdc|å`÷ý¿äþë­L\Až=&Ö¿¤ÿü²ü“û? ƒÿF#aoæ`þÏ쨹šØ›ÿ·ÿ4ü›¹9;ÿUù_7ÀßíÿÇú_ƒzÍV9˜ñ[§ge¸Öáæ OŠë ô±B‡8–6ªÔ8ôú§‡o­4~« ajšæýh÷Z:q|ß—¥;íñ¥îM^ù’Óö¢ÿ¦êä¦?d6,EÎ8ÕŠö¾\”ß‚ÒåbÑ<Ø™TQ5,yƒ!žîdw†»|¤ w/ À¢xpDñ3KkˆÃîBkèûqrJ•tüø@=462ü³÷ºŸ>7ž’Ï ™**À)—PHW£B¢ªU³m·WÛÔOrí]VÉ• $«ùqyĤ"õÂzŒf<0ëûë£Îðf}/Ÿí¤>bêFè,VØUd‹ÕƒæÔJlNÍo’©+¬OXÏ1Ï-¼§c-NÂ1ipÝ›í\AÖµ?ªª…¹{G.ž'Þ½µ$5õü^oDÌÒ’j8Á¬R/ë‰yÝ࣑<Ì`½^ úêì`uvdé,RHžê$žkK‚>&Y ¤ºÛ”OØ&â„o™kâÆœm§Ù WëÙÉ ¨œ/û«Ð[BÒó´`Ûtä¯äÍN¿GfáĈHªýmVéDÇÏ“Ÿ”Ä÷¦Y_kÉóÍ+èü1pÇÒ¨åÁ³ñÂjD•jÊ @@ -9244,7 +9257,7 @@ MI ¿n$rÝ XðD˜t ÎõÓ…”2§—n„sÞmOÆ„ ˆ;²ÃßshuåU9ñÖ&;y-sõP~K*ªÅz4rnp´}ª÷œõ)RB—+«å—>¢cI£Ž¹w× éhz€Ì\mm £MúHþ×<×|Ìï­&‰ Ÿw³s£Üë+\?VË´<=yò‹ØH»M'²ñÑ67Cøoí+A5x5½·x¯'_Ë c!vÜ~óÓ4¶bIpµP]ãH^ŒúÀnkLßYßÙ„æÀ,•‰)tCœrÀ‘ Çi†Ï±m$hýÈn.ÿ¶»öO¿ªWÂ[–{OFChÓ'žWùÆ*6L‡1±’g^H]u Ââa3ð¸g@—TÕL_1@d7¾ùÁ“†µ‹Œ:…‘XF.ÿ§Òfb1\ÄñSÙ£Ö®TÁIS ÒŽã{9.´ v´ôPš_$ ƒºÃ™.T€Áj”¤RÚ.zàÂiXÎ^;-”ûkwå0HMKyÃûSc-‘tkâôk'a.*bí Û¶4ŠdÇ&ž*qÉŸX‡ÒÝÓä"c°4 *+9‚3£ cáE¢Lg%ãŸïÁó§KíÚï©=ëg‡~Q)œu‘Še7@ô`­¥¡c˜„s2¬ìe/ï´Ã÷5ØI*·[ÔrHîD4;"«hntRÉ´c¬¥ŸýÝ„u å{ÿÁØ }hë …x;³°çlqf—š “d79˜R€2õ¨)iµ†–Gö»€ê&‚—ÜÞ¨CšùŸeVò]ÏÓ~„ð¡T}îY¸dë`XÕìéÎ<òe JË»1ÒXê¤QáÀ#÷gX¹;«ÜÉà{}¤* ½lÈ»€~.ž©kÜõVÅÇ®þÒ€§ú‘7ã$o—#€àkص <Éâ{ -¯41¶{ºQµÚâl·Pãg;‹($@QQ~:ú4¥ /麞e„¼æª't“Ê>~œÍÆTÂ={š÷ÈcW ä­ë6Å͆ÇIjË‚¶{Al ¸¸ ²œís è¹”Lª £ÈàýÞùqœöÇ=*Y€þKTØ&§Ð9æ2ös³Ìü±×îªÊ›õäõ§=ìÌÉIx=ãç7åv[¿Céhw›«Ó(îl*ø®Ÿq ‰Ëb“ÛfÜèY àûYÚÿßRŸåÆ |)¶U-*ª[rᇻ……øw8me-PÍsóQîñúW™N‡vé¸î²”š{e³ã=öEëe>*­xQÿuò_­Rñ„çÒ˜ ¢þ«Iïç?d¯Y¹Æa½/Kz†Âc™›gZ6qæåØöì—3 p0, HÎIM,*ÉÏM,Êæ8f‚endstream +¯41¶{ºQµÚâl·Pãg;‹($@QQ~:ú4¥ /麞e„¼æª't“Ê>~œÍÆTÂ={š÷ÈcW ä­ë6Å͆ÇIjË‚¶{Al ¸¸ ²œís è¹”Lª £ÈàýÞùqœöÇ=*Y€þKTØ&§Ð9æ2ös³Ìü±×îªÊ›õäõ§=ìÌÉIx=ãç7åv[¿Céhw›«Ó(îl*ø®Ÿq ‰Ëb“ÛfÜèY àûYÚÿßRŸåÆ |)¶U-*ª[rᇻ……øw8me-PÍsóQîñúW™N‡vé¸î²”š{e³ã=öEëe>*­xQÿuò_­Rñ„çÒ˜ ¢þ«Iïç?d¯Y¹Æa½/Kz†Âc™›gZ6qæåØöì—3 p0, HÎIM,*ÉÏM,Êæ¼ffœendstream endobj 747 0 obj << /Type /Font @@ -9253,14 +9266,14 @@ endobj /FirstChar 40 /LastChar 90 /Widths 1932 0 R -/BaseFont /SJDLCB+URWPalladioL-Roma-Slant_167 +/BaseFont /DISRUE+URWPalladioL-Roma-Slant_167 /FontDescriptor 745 0 R >> endobj 745 0 obj << /Ascent 715 /CapHeight 680 /Descent -282 -/FontName /SJDLCB+URWPalladioL-Roma-Slant_167 +/FontName /DISRUE+URWPalladioL-Roma-Slant_167 /ItalicAngle -9 /StemV 84 /XHeight 469 @@ -9281,16 +9294,15 @@ endobj >> stream xÚíUkTgnõJÀ+Å€€¸ -æ2%X4© É„’ L P -A@0¨P¹TZ)­`åb°¢àY#BAn¬\uÝôØ¥?wíÙ™?ó>Ïó½ß3ÏûóY˜yúœ9H슈$ÒwŸƒ ‰dœ…… -C>"ÚI`::8€€³4©™F§éTÎpAÂ"Q~0OX¹|¶ ¢ÎBå³!àIx°ëÁ†€ÂæÃ’H"à,Þ +Ä€7,†Ñ˜CÄ Àá³%@ÌáH Ž˜".Ж`Ž4ì£bÌ`…™ü À,r‘ àÀ\ÉÁö‚1'ÿ SË›»JH¸Ð~1¥?ñ/ˆ|«@„aR ŒîFEË¥¾ð’9w˜Ã— -—³L $à³EÁ €vD²-u‰à‹]ù2˜ãÉ—°yˆáEq–[Áâ[4BÚ»ÅØëjóv®‹¤'ÄIöE†Áù½z±ß×XJ(_ø“‰d2ˆ ±÷ÝWÀ²Í¾±_ P¨ö„¢P$;AXE¢A€/âÀ2–aŽID"Á–X4Ç.‚âÆ -Ú$6e `öÂÔ$ ìAHAXæð 2ÃPˆ `îaÛ·ðÒÐßãö¡ï, `‡Š˜·ÿ98‘E(ÁÁû´h4ê±²¥( -‹$‹g‹ÿ]Íåc#ƒaÌÆõt!lÇÄܪ¤ò˜/Îßùá#’ÎËÖ -Mv“_MLŸṡzÎË,XR2R¤ºzBUîe;žÒG¯¥{¤}5U¬ñjja™_fµ‘ØíƒLH•¯zmc9ÂT„8ÿʘވ>:ûí–­=S[b[õÎqÔŒCçfºt×[{Ÿ´6ßHë¹ Ýÿá|dÿ“ŽÍ5±¹7¶³ÇoßwczâÅ®©–J®“nÐ4óÀP*m¼†›ï©UG 9skYiþ²§¦)æÉÏ[|ÊdÓ©1ÆÑ¿Ý -ÓÆßMM/šþš¥ƒk4e\ï¿£H¼¡"eÄín0u3i}dË{µ±ÕÆCþI0yÀvť᣶Çû©“ߨµ7–Ƽ(ƒBó«sLw= -ÿ¾nûì~|ú1â—U§>+©SèvÕ€ú;îõ¸d¼,Ðñh×J¥¸K¯ÎÈkx'FIø¡1»ö®;»KÅ ?Ð3úîk¯€j\: r}­•Þ<4püzEÇ\ÞI3±üêÀ+æʲÕâb« ââKq£ ô¾£`åÍŽNðz,ýpv s‚™j|-Æ‘ã*­›ÖËk º«Ïʽz¦Ú}ªÌ(¥™¼BÈçžÑÉHK÷ ððòûR+öpSnb+à¹FÓû¢üY)rvÛè¦øQ_MóDËËq›Iñ˜.ýRg‰_²±e$|©ÞÉn:_Û¹ììZ5S‰d·Ýdø]Ü×É+HÊâEM¦œû‡ùËØß'¾__Bø)Úzp\ ¹µ'k:vØÝèd)﹊UëXUjjFìq£%v‡DàœPyb›jÕSüMÛÀŽC{PLÃc3„šyjé³ÊäWuãã…žÛ&Ê|FWèxhö?+”S¢꧞éઞÍÛvM|¬{9ß{øÔ¶Ÿ4kiËwÕû8¦ªöox“qày;Ã0ç“пéÏøi^…çÎÒW³ä½ŠË¸ód?ÿË`ÉDøÚ¼k·×DWBËxKß­B{ªòèà ÕõŠ£Òú›Ž–r’ê6eü™LŽI®ïÅ5¬HöµÕãÊƆîÚ¹äÀñ|tOYù)}å>s+wœ¨(ñ§î³ç×Xª„{ÒùÅßO‘Þ$t½Ðªm‘™”ú2*“'§ŠuZÞlöÌld Ègm¬”ªUÒ=M ÕagŸñ¶]ÜÙ ¿Éš×Œù*¢ô¼ƒ\pÖë=ýùnÓÎ×¼¼gǵ¢“C… |ÂÿûêjÍi“0ú}E@ù(±¶ õ¯; -TÉIs›ò¯7”ï8Ëlòi~H;¾n¦ñU‚•úÛŒJOó•¦E½óÅcËP‘&¿ÿ#’dki¿{¸!a„Îÿ¼0¾¾=ܳ¶Sš]ŸŸí¡¸EÎxR‚ùµØé•á‹º£/‹»ÖÁQ&­Õõwþšât´sÍôÝ{pJ]|ÔM½"Z»×Hÿn‡kéˆ~Ë| ggóí§Açk:Ò A«öÏóòC áonšö´ÝºÄ,;-`¬+«¡ñš,“Ý$®ÀÖ8‡B}8³ÙkÀ~l2‹îœ×x˜)T> Ž>oöã7QGÔÃþ«ÃG~ém6T×Ö9ÝÑ™äãf>Û&K>£š\¿½­‹pbGë1ódï^†Û­¾Y…ÎÊIJN{H{PÚ},Ë[«GÎË_Ø“SÎý@ü>¸ÿ7øŸh€]Ý*A„Šûì;þTendstream +æ2@ Š,š–KS’ $˜$  (‚€`P¡r¨´RZ/Àåb°¢à©¡ 7‚ V®º‚îzìÒŸ»¿öìÌŸyŸçùÞï™çýÎù,̘¾»!" $‚4ÀÕÃ÷H@"gaáŠÂ„ˆvA˜€ŽŽ à" @*@v QÈ4ªÎpEÂ"Q~0OX¹~² r\„0ÊgC"À’ð`!Öƒ _„͇%‘DÀE |VˆX £0‡ˆA€ÃgK€ 8˜/‘1D\pX‚9Ò°·TŒŠ1S€fò³ÈAD‚H€sq$OÛ Æœü7L-oî&÷´îLFZ:“åéíÿ…V졦ÜD–ë™FÓû¼üi)rfÛè¦øQ?MãxË‹q›Iñ˜¯.íbg‰²±e$|±ÞÙn:_Û¥ìÌZ5C‰d·Ý û_ØÛÉ+HÊâEM¦œýÍüEìÀß­/ !üm=8®…ÜÜ“5;ìat¢”÷LåUëTUjjFìqsHì‰À9£òÄ6Õª'ø¶÷ܧ˜†Çf5cjé{•É/;éÆÇ 5<÷M”ùŒ®ÐñÐìV(§D-&Ô™éઞÍÛvM|¨{)ßgøä¶5kiË·Õ{9÷§ªömx±ÿY;Ý0ç£ÐèÏøk^†çÎÒS{É{—pïç5Ⱦþñ·Á’‰ðµyWo*®*ˆn„–ñ–¾›…öT呪k×G¥õ7œ,å$Õ-ʾøÓ™œ€’\¿ ?h¼"Ù—ÕV*ºkç’ÄóaÐ]eåÇ´9”ûÔm¬Üi¢¢$€ö©ïž_c©î —ç¿œ$½Nèz®UÛ"3)õ£W&ONë´¼ÞÌÌlô0ÏÚXÓ)U«¤{š@ªãÎ>ãm»¸³ç—96¯óS&D;êù7¸â¬?Ô{òÓ¦¯xyOiE'+† +éø„5÷Ô+ÔšS&a´{ +Vù(±¶ õü¯ž; +TÉIs›ò¯5”ïØŸËhòm~àplÝLãË+õ7•Ló•¦E½óÅ}ËP‘&¿ÿ’dki¿G¸!a„Æÿ´0¾¾=œÙ?Û)ͮωÏöT\Ž"g<.AŠü[ìôÊðEÝÑ—Ä]ëà(“ÖêzÖí¿§8é\3}ç.œRW uW¯ˆÖî5Ò¿ÓáV:¢ß2_ÃÙÙ|kÄ9dÐ媎4HЪýÓ¼ü`# $ôËMÓž¶[—€˜e§±Æºò·¯É2ÙMâ +ðasøÇÔ3›½ìÇ&³h.y‡Båãàèsf?|uX=°:|äçÞfCumíáSI~1îæ³m²äÓªÉõÛÛºÇwdy=bœèýœî~Z«oV¡³2±,†ÓRg‡ÆvÍòÑê‘óòWöä”sßÓ#ÿ‡îÿ þ'`W7„J!„†âþ'þ[endstream endobj 685 0 obj << /Type /Font @@ -9299,14 +9311,14 @@ endobj /FirstChar 13 /LastChar 110 /Widths 1934 0 R -/BaseFont /JTOBJF+CMSY10 +/BaseFont /FQGISL+CMSY10 /FontDescriptor 683 0 R >> endobj 683 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 -/FontName /JTOBJF+CMSY10 +/FontName /FQGISL+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 @@ -9331,7 +9343,7 @@ endobj >> stream xÚ¬ºc”¤]°%\]èª.uÙȲmÛ¶]YV—mÛ¶mtÙ¶ºlÛÖ×ï{çÎug~Í7?r­çDÄÙ±#ö9±Ö“™$òJ4ƶ†@Q[GZzN€Š¢š¼••±¹­4¢­µ௙š„DÈhàhnk#làä¨Â@###€ƒƒš dkçfonjæ ÿ‹AAEEý_–B†nÿéù»ÓÁÜÔ@ú÷Áhekg ´qü ñ½Q 8š&æV@€œ¼†„¬€\LV ´ÚXä ­ÌÒæF@ ÀÄÖ`õ €‘­±ù?¥9ÐþÅpì€Fæ·]€vÿ¸¨v@{ks‡¿Ïs€©½ãß8ÚÌmŒ¬œŒÿ!ð×nbû/!;{Û¿Ö}ÁämŒìÍí³Ê ‹þOG3Çr;˜ÿulMþFÛ9ýSÒ¿¾¿0½Žæ6G «ã?¹ cs;+·¿¹ÿ‚ÙÙ›ÿKÃÉÁÜÆô¿Pì¦öÆV@‡¿0±ÿéÎÕ ø_ª7°³³rûw·í¿Qÿ“ƒ¹£ÐÊ„šñoN#Ç¿¹MÍm éþ9*6&¶úÿ°;Ùý§ÏhÿoƒÈÿ93IÛÚX¹Œ&Ðt²¶ŽSÈÿïT¦ý'òÿ‰ÿŸüÿDÞÿâþwþ—Küÿ÷>ÿwhQ'++Ykà¿›ÿ9cÒ€†ŒÍÿm`mnåöŠÿï‘jÀÿ ù„‘p4øÛ -Ó¿rÐÓÒÿ‡ÑÜAÔÜh,oîhd01°úÛ§í*6Æ@{+sà_=ÿm%€†žþ¿ù”ÍÌ,mþi<˸€6Æÿû_‰þeN'!§ ¯.Fõ¿ÏÔãäÿjï¨ìf÷—Úÿ(EÆÖø.þA´uxÐ0°²hÙ™þ^9F3“×ÿ!ã¿@ ÿµ–1p´7whý-›žáßâÿÇç¿V:ÿ FÄÆÈÖøŸÓ¢äh`cü÷€ýOÃ?n#'{û¿ºþ{çÿýŸë:è +Ó¿rÐÓÒÿ‡ÑÜAÔÜh,oîhd01°úÛ§í*6Æ@{+sà_=ÿm%€†žþ¿ù”ÍÌ,mþi<˸€6Æÿû_‰þeN'%£ ©.Mõ¿ÏÔãäÿjï¨ìf÷—Úÿ(EÆÖø.þA´uxÐ0°²hÙ™þ^9F3“×ÿ!ã¿@ ÿµ–1p´7whý-›žáßâÿÇç¿V:ÿ FÄÆÈÖøŸÓ¢äh`cü÷€ýOÃ?n#'{û¿ºþ{çÿýŸë:è 4‚^ùckÄh‘š‘æX‹ž34!¬Õ×Ã6dWÒ \˜ï[mÛ퓺ÍQ¡ÿ^DÛ8ÅùÙê¶xj÷±/Iy0ÒƒfEÖ ¼ÌÃñ"¢èÍGÜ mg£:ð§Ó-K;S‹ô¸ZÞ×d¥W=Ø™PPÔ-~ÿŽ;ÕÎduõDáKäœï‹Bühïm”RƒÚЂT[pzFšpüôH60:<4Ø}Ñ»M•óƒ„ËŽ4Â÷W66Ÿ¦J¹He‹êïÝn-6CoÑÕI9G¬ Œ¦§¥aŸáòäK‹Qîïcþ~Ÿ {4C›uÝ\VÚÜñÉëÁ3(!×áÍfª“ËѿѪ7ð^Å®Q¾4¢]G]·0žõÕX°G-Å¿iÞngó2ø*(žTñ³u_¾Œxô«‰ªjy¿Ý ¥$T³ØÄ^×âs:‰¿„³Ót»©È i+3«0€Ö~Z¦Ò‹Áº*ã¹®.òzbdÄhn“<£c¿§¯ ë³ü>Ëä1os´˜™(ÏÂß_Ø⟣٦$z#zlúµ1R?m%„ƒWåc¹BI-8v‘øòKNxoŠá­†(׸œÒùÏ[4¹RÈFNH•ƒˆUIþj¢ïö…D«6Êh”oϯ[%Z0ïÆQ:Åç $؆­˜U‰ú!6Wã1YDæcô*þ`ß•ø¸qÅó¯R rú†};V”¡ý!ÅYs>*²%èa¡ûG¶G\V­n63QËR]BlõõLƒšªNS±o³®Xãk”t¯Ž¿¥è%+Ú£|ŽÔuœÙ¨ýf4 l˜³®En>îg„ 1 æ„ÄNò]¨ß`Ф­×/i‰û5Òyµ˜7:ê 2M~¨‚´S&Ò>À{y$ «É6W¼H?ŠÅÏÝÉÓ*S;£BÝŠ ÄIÕÓ¤¹ª|wf ãÆ!â…@[|…9s³qÈŽ××—}>¹v¼¶±Ä¸©–ˆ2CÌQÕ™15Bj"«RŸóöÚ窙Ä;cF1rv/T…ÎeBPBœÐA/[ŒÒ'}¯ä •©Ú{rRŸñ[±p†âºÙ§9êppàÒ-ƒÅ”vÁ{:Æð"çd€BnRâtïn‹}¨Â‡‡5„P‡<ùáew”McÛb… L™¯ÎýŽ’µú¹¬<,ÌÒ=¶I¥]¥¶‚•!ìk ÎÔÄdùÝÊ:ó$q®éÞ®Šq¾ƒ¼Æ<ÃýÊ,svwA]¯cŽŸ™¾"{=Ÿ&u lc ^£çDÿ)a/{¦8N.§% §q±ü5¥×KÇx20œqK;ÈjtTŽ¸y´&H*À͵§¶q¨p¥GsÓü G4%Dá—rnì$áD_f!º>Èø`k‹æógúCÞŽsNU¸ÁŸ2û¥çüUÔÎ7Ú-/3аÉt=ÂœZžZ÷öešElòÉåi³Ø!š±ýKŽœ—DíØûø½u×"ƒq”‚d¯²Ôšª 9僄U1ðêpbDþ±kWaGÚ”ªø5ÁÐ ç#Ç~ÞŸú§j Çÿ½B7$Åšš’”6ìG†g€y†µWÿÚ›¨¸ð‹Êö|Ÿ¹^qHcOG_ùÎ}ŒÝËîNÓPb¥j„úiQR}D™CTµ u( Õ]ú·ð»è·¸{§¢e%‚ÓòåO™ Ú¡Þ=’Gf0ýa½<ŒjZ80P߬j…'¿Ú_/ü„ÑêaÍ·LšÖz‹€f1ÏÍRpÿß&áì88g=§u©Îc“ñÖ›í²!»GYº7ù:1’‚¾3¼rž.5»W¹"j> •Š2¦Õ?Ê{®!¹ ДÏ@ÏœüO©ªtºG©÷Ž’4Å%ü’Y×ÞöPðüid‘˃8LÖU/p„h[×ÿ1õ˜åô×îE¥JP(òCˆ¤‚§t¢8ꜧÝÎQ‹‚j%U×¼±†ÙŸJXµ¿LF-.=5†Oí~Ñ \jË9gWØÅ."FˆmßÝÔÇ‘ÓßAÌõ|ˆWj p7MÐ"Kc20ȧåOh]9J°F®×Ò‡õíTNì)mC\Rà‰æ8èÄЗ|- µÂ¸ÅæßËlÏB@\ë®4Ʋó˜•k™_̦CÍö˜T!Ô½\!ƒÂD×$×&m iÀ槻ÁLÝ¢»?a|ÿ¤þë™ ú*$÷¼66ÛëðÞºR¨p`N‹8¹Îs©2õóŸÉ×®aLç%¢)K–9CJN¼·ดÇÃ6ôqx~ë“;à@È÷<þ]ÍCļؽyùI©Ž6xóm·Lº¥—Óê©.Chøƒ‹ÿ<™a-^õÄÞU\u´úé,R8ô0V‰ƒÖ=iï$……ní±ª—Æ„®h„¸çM«KÈÅcóÇŒqØÌ8wƒZÃÊf;Íhi3‚{~„Ý($ iÿót:ùÃûxxñÍš6ïÛ÷ÄKZ·ÏlŽ¸ŠŒbd|Oá±–kË¥þÎÏB™E‹¤» -èlLäšOnRZ~‡î&I°=w¦}æ‰l§b””Î÷g ÅTÍ‘ûûÁ{Ë1LxméÌ­?b†‘Ü€±%Öé]¶çÛ'$5ˆç }~Ü‹{Á47 ŒCS®¯çÏgá·!v(°Z^cß—"|ÏÉUÛëUÛ„³¾Éêºêo6–I‰®óì¢;ɬ ‹a6²ôÍEê—'ÅKÜv–Ý«kî]¥’*€Þÿ<þSÍ?´.õÞ>|»ùו{šV8IÉ€¸@²`!Cr}Ùu3MVÅ ògè¿<*4ËëαÁŸ%… Ò9zS7ú‘Ÿœ’âó:·©Ž6Z3_C¯h¬Q½ÉŒff]1.ärÔõ„ÀݺgŒ6 hnO+(HuXíY]dOUÝ&°†9&/×á!^cnȯ(«eHü€SdClvÌf‹•”ØME?ÛÔ³ÐZ›N˜´BfG1d>QÚj\¼È”Ï·îPΊŸ¿æà;j:Œáo2çI­`þ÷?Á…ÀÌÞÂÄÅÕÑÁÄÅîÿØ0¹´endstream +èlLäšOnRZ~‡î&I°=w¦}æ‰l§b””Î÷g ÅTÍ‘ûûÁ{Ë1LxméÌ­?b†‘Ü€±%Öé]¶çÛ'$5ˆç }~Ü‹{Á47 ŒCS®¯çÏgá·!v(°Z^cß—"|ÏÉUÛëUÛ„³¾Éêºêo6–I‰®óì¢;ɬ ‹a6²ôÍEê—'ÅKÜv–Ý«kî]¥’*€Þÿ<þSÍ?´.õÞ>|»ùו{šV8IÉ€¸@²`!Cr}Ùu3MVÅ ògè¿<*4ËëαÁŸ%… Ò9zS7ú‘Ÿœ’âó:·©Ž6Z3_C¯h¬Q½ÉŒff]1.ärÔõ„ÀݺgŒ6 hnO+(HuXíY]dOUÝ&°†9&/×á!^cnȯ(«eHü€SdClvÌf‹•”ØME?ÛÔ³ÐZ›N˜´BfG1d>QÚj\¼È”Ï·îPΊŸ¿æà;j:Œáo2çI­`þ÷?Á…ÀÌÞÂÄÅÕÑÁÄÅîÿÏg¹Ãendstream endobj 682 0 obj << /Type /Font @@ -9429,14 +9441,14 @@ endobj /FirstChar 2 /LastChar 216 /Widths 1935 0 R -/BaseFont /IOQPXG+URWPalladioL-Roma +/BaseFont /KMQZXL+URWPalladioL-Roma /FontDescriptor 680 0 R >> endobj 680 0 obj << /Ascent 715 /CapHeight 680 /Descent -282 -/FontName /IOQPXG+URWPalladioL-Roma +/FontName /KMQZXL+URWPalladioL-Roma /ItalicAngle 0 /StemV 84 /XHeight 469 @@ -9456,7 +9468,7 @@ endobj /Filter /FlateDecode >> stream -xÚ¬zSm]³eÙ¶]uʶmÛ¶mÛö)Û¶mÛæ)ó”«ëû¯:n÷S÷}Xkfæ92GÎ{G,RBy%c;CQ;[gZzNE5ykkc ;iA;kc‚3 )©£‰³…­°³ 'š‰1°‰##)½‡£…™¹3ùõYþ !0ôøÏÏN' 3[²ŸWk;{[çˆÿçJ&&Îæ&¦Ö&Brò²bäb²*b&¶&ŽÖò.†ÖFÒF&¶N&¦vŽÖÿ¶ 0²³5¶ø§4'Ú,''{#‹Ÿm&îF&öÿ¸¨ ìMm,œœ~Þ ,œÌ lzàlG`akdíbü»©Ý¿Ù;ÚýDØüø~Àä휜Œ-ì ~²Ê ‹þOgsçr;Yü¸ ìL"íŒ\þ)é_¾˜¯³…­³‰»ó?¹ MŒ-œì­ <~rÿ€Ù;Zü‹†‹“…­Ù1 &p413p4¶6qrúùÁþ§;ÿU'ÁÿV½½½µÇ¿vÛý+ê?9X8;™X›ÒB10þä4rþÉmfa E÷ϨHØšÚ0Ðÿ›ÝØÅþ?|®&Žÿjù?3CñCÂÀØÎÖÚƒÀØÄŠNÖÎù'%ùÿ›Ê´ÿs"ÿHü?"ðÿˆ¼ÿâþwþ·Cüÿ{žÿ;´¨‹µµ¬É¿6üÇC MðÏ%óØXX{üßÂÿ{¤šÉ¿qü¿¡H8ü4BÀÖìG zZú3Z8‰Z¸›Ë[8™˜Xÿté_v[cGk [“5ÿÕHzúÿæS6·0²²ý§í,ÿæ2±5þïÔúq:qU ªÿóFýWœüòÎÊö?Ôþ½;ãÿ\üƒ"(hçNàEÃÀÂH@ÃDÏðsà~øp0±øü_2þ ˆá¿Ö2ÎŽîZ?eÿìü§øþk¥óß`DlìŒÿ™%g[ãŸñúOÃ?n#GÇUÿuâŠþõ¿ÝÄÄÝÄj}ÅΈ+Ø2ýw†szîÈ”°Ö@ðHˆ}i£rQ]¯_zøG¥þGmmÓ çW»ÇòûÏ#IÊã±>4ë_½©&×ù8>ÄýˆÛdlTÇtº¥°jÑ^7KÒ» š¬ôªÇûS +xÚ¬zSm]³eÙ¶]uʶmÛ¶mÛö)Û¶mÛæ)ó”«ëû¯:n÷S÷}Xkfæ92GÎ{G,RBy%c;CQ;[gZzNE5ykkc ;iA;kc‚3 )©£‰³…­°³ 'š‰1°‰##)½‡£…™¹3ùõYþ !0ôøÏÏN' 3[²ŸWk;{[çˆÿçJ&&Îæ&¦Ö&Brò²bäb²*b&¶&ŽÖò.†ÖFÒF&¶N&¦vŽÖÿ¶ 0²³5¶ø§4'Ú,''{#‹Ÿm&îF&öÿ¸¨ ìMm,œœ~Þ ,œÌ lzàlG`akdíbü»©Ý¿Ù;ÚýDØüø~Àä휜Œ-ì ~²Ê ‹þOgsçr;Yü¸ ìL"íŒ\þ)é_¾˜¯³…­³‰»ó?¹ MŒ-œì­ <~rÿ€Ù;Zü‹†‹“…­Ù1 &p413p4¶6qrúùÁþ§;ÿU'ÁÿV½½½µÇ¿vÛý+ê?9X8;™X›ÒB10þä4rþÉmfa E÷ϨHØšÚ0Ðÿ›ÝØÅþ?|®&Žÿjù?3CñCÂÀØÎÖÚƒÀØÄŠNÖÎù'%ùÿ›Ê´ÿs"ÿHü?"ðÿˆ¼ÿâþwþ·Cüÿ{žÿ;´¨‹µµ¬É¿6üÇC MðÏ%óØXX{üßÂÿ{¤šÉ¿qü¿¡H8ü4BÀÖìG zZú3Z8‰Z¸›Ë[8™˜Xÿté_v[cGk [“5ÿÕHzúÿæS6·0²²ý§í,ÿæ2±5þïÔúq:%uI!MyªÿóFýWœüòÎÊö?Ôþ½;ãÿ\üƒ"(hçNàEÃÀÂH@ÃDÏðsà~øp0±øü_2þ ˆá¿Ö2ÎŽîZ?eÿìü§øþk¥óß`DlìŒÿ™%g[ãŸñúOÃ?n#GÇUÿuâŠþõ¿ÝÄÄÝÄj}ÅΈ+Ø2ýw†szîÈ”°Ö@ðHˆ}i£rQ]¯_zøG¥þGmmÓ çW»ÇòûÏ#IÊã±>4ë_½©&×ù8>ÄýˆÛdlTÇtº¥°jÑ^7KÒ» š¬ôªÇûS Šº%`¸3LŽ7)ü‰] üQHžíá|ÒâP»šê ÿ\%ý}þ54>:2Ü{Ú„M•IÊå KåïƒÍ§©R!RÕDzÝžeÌ}øØ"œ³\ʤ!g?5íµ Îk“T $f}QìŒ}}œ7Ãë–aI­zQ£Ø`{1®ËÊ›¡9sõ‰ór5úË<#¤=ø…ˆ´±36…è4Ó+òŽÇ¾a‘Ïp:‰é"“|:[5P6“Ó#\2®˜Æíß»OÍß 6.â'¢ÿp$iÊíù2ŸÒ;LÛ–Oòá ±Fóyº)‘ùµ©ãà~ ¥ŸC¡ë­„aø ÅÑ«¨ÙûGæhg [&óâ<1—Xû²Âø{iª_“¸bf)¦Œ²§T˜ ÜÓ»GAe!ógF玦àUa!*ÚZ0Ÿðç/è a0¼€ž~£œ†äwÝo âïfŸJ³xÛw® ÞaÇL¿õ0 è^š `8¿Ú Ù4Ùç÷ Ï©4†V×"”]BÝ3pþà·½_) èIÞ\H$séåXŒ{Òb^Z,ÃÛ6ö©ÉÁ ¬–R2µCÇŠ‰t(£ˆOܲÓ7‚9òó`e€² ä@y%0júAÈëRÿ˜à˜~xƒ4wÖ5çíÂàÖ±åmÝÓ×â}=Ð’tRX[>͔ҞÐRÔ "çH³l/é•_r> endobj 656 0 obj << /Ascent 708 /CapHeight 672 /Descent -266 -/FontName /HVUUYY+URWPalladioL-Bold +/FontName /SXJCZP+URWPalladioL-Bold /ItalicAngle 0 /StemV 123 /XHeight 471 @@ -9637,35 +9649,35 @@ endobj /Parent 1938 0 R /Kids [1216 0 R 1221 0 R 1226 0 R 1237 0 R 1243 0 R 1248 0 R] >> endobj -1256 0 obj << +1255 0 obj << /Type /Pages /Count 6 /Parent 1938 0 R -/Kids [1252 0 R 1258 0 R 1266 0 R 1272 0 R 1279 0 R 1287 0 R] +/Kids [1252 0 R 1257 0 R 1266 0 R 1272 0 R 1279 0 R 1286 0 R] >> endobj -1303 0 obj << +1301 0 obj << /Type /Pages /Count 6 /Parent 1938 0 R -/Kids [1294 0 R 1306 0 R 1310 0 R 1316 0 R 1321 0 R 1325 0 R] +/Kids [1292 0 R 1305 0 R 1310 0 R 1316 0 R 1320 0 R 1325 0 R] >> endobj 1338 0 obj << /Type /Pages /Count 6 /Parent 1938 0 R -/Kids [1334 0 R 1340 0 R 1344 0 R 1348 0 R 1356 0 R 1361 0 R] +/Kids [1334 0 R 1340 0 R 1344 0 R 1348 0 R 1356 0 R 1360 0 R] >> endobj -1392 0 obj << +1388 0 obj << /Type /Pages /Count 6 /Parent 1939 0 R -/Kids [1378 0 R 1394 0 R 1409 0 R 1419 0 R 1425 0 R 1432 0 R] +/Kids [1375 0 R 1390 0 R 1407 0 R 1414 0 R 1425 0 R 1431 0 R] >> endobj -1453 0 obj << +1452 0 obj << /Type /Pages /Count 6 /Parent 1939 0 R -/Kids [1443 0 R 1455 0 R 1463 0 R 1469 0 R 1473 0 R 1479 0 R] +/Kids [1441 0 R 1454 0 R 1461 0 R 1469 0 R 1473 0 R 1479 0 R] >> endobj 1493 0 obj << /Type /Pages @@ -9713,13 +9725,13 @@ endobj /Type /Pages /Count 36 /Parent 1941 0 R -/Kids [1145 0 R 1182 0 R 1219 0 R 1256 0 R 1303 0 R 1338 0 R] +/Kids [1145 0 R 1182 0 R 1219 0 R 1255 0 R 1301 0 R 1338 0 R] >> endobj 1939 0 obj << /Type /Pages /Count 36 /Parent 1941 0 R -/Kids [1392 0 R 1453 0 R 1493 0 R 1589 0 R 1754 0 R 1797 0 R] +/Kids [1388 0 R 1452 0 R 1493 0 R 1589 0 R 1754 0 R 1797 0 R] >> endobj 1940 0 obj << /Type /Pages @@ -10901,7 +10913,7 @@ endobj /Count -4 >> endobj 1943 0 obj << -/Names [(Access_Control_Lists) 1477 0 R (Bv9ARM.ch01) 874 0 R (Bv9ARM.ch02) 923 0 R (Bv9ARM.ch03) 940 0 R (Bv9ARM.ch04) 989 0 R (Bv9ARM.ch05) 1077 0 R (Bv9ARM.ch06) 1088 0 R (Bv9ARM.ch07) 1476 0 R (Bv9ARM.ch08) 1502 0 R (Bv9ARM.ch09) 1517 0 R (Bv9ARM.ch10) 1738 0 R (Configuration_File_Grammar) 1113 0 R (DNSSEC) 1056 0 R (Doc-Start) 655 0 R (Setting_TTLs) 1446 0 R (acache) 930 0 R (access_control) 1231 0 R (acl) 1121 0 R (address_match_lists) 1094 0 R (admin_tools) 963 0 R (appendix.A) 570 0 R (appendix.B) 606 0 R (bibliography) 1525 0 R (boolean_options) 1005 0 R (builtin) 1300 0 R (chapter*.1) 690 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 526 0 R (chapter.8) 550 0 R (cite.RFC1033) 1653 0 R (cite.RFC1034) 1537 0 R (cite.RFC1035) 1539 0 R (cite.RFC1101) 1635 0 R (cite.RFC1123) 1637 0 R (cite.RFC1183) 1597 0 R (cite.RFC1464) 1675 0 R (cite.RFC1535) 1582 0 R (cite.RFC1536) 1584 0 R (cite.RFC1537) 1655 0 R (cite.RFC1591) 1639 0 R (cite.RFC1706) 1599 0 R (cite.RFC1712) 1695 0 R (cite.RFC1713) 1677 0 R (cite.RFC1794) 1679 0 R (cite.RFC1876) 1601 0 R (cite.RFC1912) 1657 0 R (cite.RFC1982) 1586 0 R (cite.RFC1995) 1544 0 R (cite.RFC1996) 1546 0 R (cite.RFC2010) 1659 0 R (cite.RFC2052) 1603 0 R (cite.RFC2065) 1707 0 R (cite.RFC2136) 1548 0 R (cite.RFC2137) 1709 0 R (cite.RFC2163) 1605 0 R (cite.RFC2168) 1607 0 R (cite.RFC2181) 1550 0 R (cite.RFC2219) 1661 0 R (cite.RFC2230) 1609 0 R (cite.RFC2240) 1681 0 R (cite.RFC2308) 1552 0 R (cite.RFC2317) 1641 0 R (cite.RFC2345) 1683 0 R (cite.RFC2352) 1685 0 R (cite.RFC2535) 1711 0 R (cite.RFC2536) 1611 0 R (cite.RFC2537) 1613 0 R (cite.RFC2538) 1615 0 R (cite.RFC2539) 1617 0 R (cite.RFC2540) 1619 0 R (cite.RFC2671) 1554 0 R (cite.RFC2672) 1556 0 R (cite.RFC2673) 1697 0 R (cite.RFC2782) 1621 0 R (cite.RFC2825) 1665 0 R (cite.RFC2826) 1643 0 R (cite.RFC2845) 1558 0 R (cite.RFC2874) 1699 0 R (cite.RFC2915) 1623 0 R (cite.RFC2929) 1645 0 R (cite.RFC2930) 1560 0 R (cite.RFC2931) 1562 0 R (cite.RFC3007) 1564 0 R (cite.RFC3008) 1713 0 R (cite.RFC3071) 1687 0 R (cite.RFC3090) 1715 0 R (cite.RFC3110) 1625 0 R (cite.RFC3123) 1627 0 R (cite.RFC3225) 1570 0 R (cite.RFC3258) 1689 0 R (cite.RFC3445) 1717 0 R (cite.RFC3490) 1667 0 R (cite.RFC3491) 1669 0 R (cite.RFC3492) 1671 0 R (cite.RFC3596) 1629 0 R (cite.RFC3597) 1631 0 R (cite.RFC3645) 1566 0 R (cite.RFC3655) 1719 0 R (cite.RFC3658) 1721 0 R (cite.RFC3755) 1723 0 R (cite.RFC3757) 1725 0 R (cite.RFC3833) 1572 0 R (cite.RFC3845) 1727 0 R (cite.RFC3901) 1691 0 R (cite.RFC4033) 1574 0 R (cite.RFC4035) 1576 0 R (cite.RFC4044) 1578 0 R (cite.RFC4074) 1588 0 R (cite.RFC974) 1541 0 R (cite.id2499701) 1732 0 R (configuration_file_elements) 1089 0 R (controls_statement_definition_and_usage) 976 0 R (diagnostic_tools) 911 0 R (dynamic_update) 999 0 R (dynamic_update_policies) 1051 0 R (dynamic_update_security) 1235 0 R (empty) 1302 0 R (historical_dns_information) 1519 0 R (id2465026) 875 0 R (id2466484) 876 0 R (id2467305) 880 0 R (id2467506) 881 0 R (id2467714) 891 0 R (id2467891) 893 0 R (id2467912) 894 0 R (id2467946) 895 0 R (id2468030) 898 0 R (id2470292) 905 0 R (id2470315) 908 0 R (id2470345) 909 0 R (id2470435) 910 0 R (id2470465) 916 0 R (id2470500) 917 0 R (id2470595) 918 0 R (id2470629) 924 0 R (id2470656) 925 0 R (id2470668) 926 0 R (id2470694) 929 0 R (id2470705) 935 0 R (id2470805) 942 0 R (id2470821) 943 0 R (id2470843) 949 0 R (id2470860) 950 0 R (id2471334) 953 0 R (id2471339) 954 0 R (id2473122) 981 0 R (id2473133) 982 0 R (id2473511) 1014 0 R (id2473529) 1015 0 R (id2473964) 1031 0 R (id2473981) 1032 0 R (id2474020) 1037 0 R (id2474038) 1038 0 R (id2474049) 1039 0 R (id2474156) 1040 0 R (id2474282) 1041 0 R (id2474327) 1047 0 R (id2474341) 1048 0 R (id2474390) 1049 0 R (id2474595) 1057 0 R (id2474732) 1058 0 R (id2474811) 1063 0 R (id2474954) 1068 0 R (id2475084) 1070 0 R (id2475106) 1071 0 R (id2475139) 1078 0 R (id2475354) 1090 0 R (id2476147) 1099 0 R (id2476174) 1100 0 R (id2476281) 1105 0 R (id2476296) 1106 0 R (id2476394) 1107 0 R (id2476477) 1114 0 R (id2476893) 1120 0 R (id2476936) 1122 0 R (id2477152) 1124 0 R (id2477512) 1131 0 R (id2477527) 1132 0 R (id2477550) 1133 0 R (id2477572) 1134 0 R (id2477662) 1143 0 R (id2477857) 1144 0 R (id2477909) 1150 0 R (id2478602) 1161 0 R (id2479412) 1167 0 R (id2479485) 1168 0 R (id2479549) 1175 0 R (id2479593) 1176 0 R (id2479608) 1177 0 R (id2481708) 1202 0 R (id2483474) 1224 0 R (id2483532) 1230 0 R (id2483954) 1241 0 R (id2484042) 1246 0 R (id2484857) 1255 0 R (id2484872) 1261 0 R (id2485056) 1263 0 R (id2485257) 1269 0 R (id2485688) 1283 0 R (id2486990) 1313 0 R (id2488093) 1330 0 R (id2488142) 1331 0 R (id2488222) 1337 0 R (id2489668) 1351 0 R (id2489675) 1352 0 R (id2489681) 1353 0 R (id2490299) 1359 0 R (id2490332) 1364 0 R (id2491624) 1406 0 R (id2491881) 1412 0 R (id2491899) 1413 0 R (id2491920) 1416 0 R (id2492156) 1422 0 R (id2493254) 1428 0 R (id2493382) 1430 0 R (id2493403) 1435 0 R (id2493834) 1437 0 R (id2493971) 1439 0 R (id2494061) 1440 0 R (id2494466) 1447 0 R (id2494590) 1449 0 R (id2494605) 1450 0 R (id2494717) 1452 0 R (id2494876) 1458 0 R (id2494937) 1459 0 R (id2495006) 1460 0 R (id2495043) 1461 0 R (id2495105) 1466 0 R (id2495584) 1486 0 R (id2495729) 1487 0 R (id2495788) 1488 0 R (id2495868) 1503 0 R (id2495874) 1504 0 R (id2495885) 1505 0 R (id2496039) 1506 0 R (id2496101) 1518 0 R (id2496273) 1524 0 R (id2496529) 1529 0 R (id2496531) 1535 0 R (id2496539) 1540 0 R (id2496563) 1536 0 R (id2496586) 1538 0 R (id2496622) 1549 0 R (id2496649) 1551 0 R (id2496675) 1543 0 R (id2496699) 1545 0 R (id2496791) 1547 0 R (id2496846) 1553 0 R (id2496873) 1555 0 R (id2496900) 1557 0 R (id2496962) 1559 0 R (id2496992) 1561 0 R (id2497021) 1563 0 R (id2497048) 1565 0 R (id2497123) 1568 0 R (id2497198) 1569 0 R (id2497225) 1571 0 R (id2497261) 1573 0 R (id2497326) 1577 0 R (id2497392) 1575 0 R (id2497457) 1580 0 R (id2497465) 1581 0 R (id2497559) 1583 0 R (id2497627) 1585 0 R (id2497662) 1587 0 R (id2497703) 1595 0 R (id2497708) 1596 0 R (id2497766) 1598 0 R (id2497803) 1606 0 R (id2497838) 1600 0 R (id2497893) 1602 0 R (id2497931) 1604 0 R (id2497957) 1608 0 R (id2497982) 1610 0 R (id2498009) 1612 0 R (id2498036) 1614 0 R (id2498075) 1616 0 R (id2498105) 1618 0 R (id2498135) 1620 0 R (id2498178) 1622 0 R (id2498211) 1624 0 R (id2498237) 1626 0 R (id2498261) 1628 0 R (id2498318) 1630 0 R (id2498343) 1633 0 R (id2498350) 1634 0 R (id2498376) 1636 0 R (id2498398) 1638 0 R (id2498422) 1640 0 R (id2498468) 1642 0 R (id2498491) 1644 0 R (id2498541) 1651 0 R (id2498549) 1652 0 R (id2498572) 1654 0 R (id2498599) 1656 0 R (id2498626) 1658 0 R (id2498662) 1660 0 R (id2498702) 1663 0 R (id2498708) 1664 0 R (id2498740) 1666 0 R (id2498854) 1668 0 R (id2498889) 1670 0 R (id2498916) 1673 0 R (id2498934) 1674 0 R (id2498956) 1676 0 R (id2498982) 1678 0 R (id2499008) 1680 0 R (id2499031) 1682 0 R (id2499077) 1684 0 R (id2499100) 1686 0 R (id2499127) 1688 0 R (id2499153) 1690 0 R (id2499190) 1693 0 R (id2499196) 1694 0 R (id2499254) 1696 0 R (id2499281) 1698 0 R (id2499317) 1705 0 R (id2499329) 1706 0 R (id2499368) 1708 0 R (id2499395) 1710 0 R (id2499425) 1712 0 R (id2499450) 1714 0 R (id2499477) 1716 0 R (id2499513) 1718 0 R (id2499549) 1720 0 R (id2499576) 1722 0 R (id2499603) 1724 0 R (id2499648) 1726 0 R (id2499689) 1729 0 R (id2499699) 1731 0 R (id2499701) 1733 0 R (incremental_zone_transfers) 1011 0 R (internet_drafts) 1728 0 R (ipv6addresses) 1072 0 R (journal) 1000 0 R (lwresd) 1079 0 R (man.dig) 1739 0 R (man.dnssec-keygen) 1787 0 R (man.dnssec-signzone) 1805 0 R (man.host) 1772 0 R (man.named) 1854 0 R (man.named-checkconf) 1825 0 R (man.named-checkzone) 1837 0 R (man.rndc) 1876 0 R (man.rndc-confgen) 1905 0 R (man.rndc.conf) 1888 0 R (notify) 990 0 R (options) 1187 0 R (page.1) 654 0 R (page.10) 915 0 R (page.100) 1767 0 R (page.101) 1779 0 R (page.102) 1783 0 R (page.103) 1795 0 R (page.104) 1801 0 R (page.105) 1812 0 R (page.106) 1817 0 R (page.107) 1822 0 R (page.108) 1833 0 R (page.109) 1845 0 R (page.11) 922 0 R (page.110) 1850 0 R (page.111) 1861 0 R (page.112) 1866 0 R (page.113) 1873 0 R (page.114) 1884 0 R (page.115) 1895 0 R (page.116) 1901 0 R (page.117) 1911 0 R (page.118) 1917 0 R (page.12) 934 0 R (page.13) 939 0 R (page.14) 948 0 R (page.15) 959 0 R (page.16) 967 0 R (page.17) 974 0 R (page.18) 980 0 R (page.19) 988 0 R (page.2) 679 0 R (page.20) 1010 0 R (page.21) 1020 0 R (page.22) 1025 0 R (page.23) 1029 0 R (page.24) 1036 0 R (page.25) 1045 0 R (page.26) 1055 0 R (page.27) 1062 0 R (page.28) 1067 0 R (page.29) 1076 0 R (page.3) 689 0 R (page.30) 1083 0 R (page.31) 1087 0 R (page.32) 1098 0 R (page.33) 1104 0 R (page.34) 1112 0 R (page.35) 1119 0 R (page.36) 1128 0 R (page.37) 1141 0 R (page.38) 1149 0 R (page.39) 1154 0 R (page.4) 744 0 R (page.40) 1160 0 R (page.41) 1166 0 R (page.42) 1174 0 R (page.43) 1181 0 R (page.44) 1186 0 R (page.45) 1191 0 R (page.46) 1197 0 R (page.47) 1201 0 R (page.48) 1208 0 R (page.49) 1218 0 R (page.5) 808 0 R (page.50) 1223 0 R (page.51) 1228 0 R (page.52) 1239 0 R (page.53) 1245 0 R (page.54) 1250 0 R (page.55) 1254 0 R (page.56) 1260 0 R (page.57) 1268 0 R (page.58) 1274 0 R (page.59) 1281 0 R (page.6) 869 0 R (page.60) 1289 0 R (page.61) 1296 0 R (page.62) 1308 0 R (page.63) 1312 0 R (page.64) 1318 0 R (page.65) 1323 0 R (page.66) 1327 0 R (page.67) 1336 0 R (page.68) 1342 0 R (page.69) 1346 0 R (page.7) 873 0 R (page.70) 1350 0 R (page.71) 1358 0 R (page.72) 1363 0 R (page.73) 1380 0 R (page.74) 1396 0 R (page.75) 1411 0 R (page.76) 1421 0 R (page.77) 1427 0 R (page.78) 1434 0 R (page.79) 1445 0 R (page.8) 890 0 R (page.80) 1457 0 R (page.81) 1465 0 R (page.82) 1471 0 R (page.83) 1475 0 R (page.84) 1481 0 R (page.85) 1492 0 R (page.86) 1497 0 R (page.87) 1501 0 R (page.88) 1512 0 R (page.89) 1516 0 R (page.9) 904 0 R (page.90) 1523 0 R (page.91) 1533 0 R (page.92) 1593 0 R (page.93) 1649 0 R (page.94) 1703 0 R (page.95) 1737 0 R (page.96) 1746 0 R (page.97) 1752 0 R (page.98) 1758 0 R (page.99) 1762 0 R (proposed_standards) 1016 0 R (rfcs) 900 0 R (rndc) 1137 0 R (rrset_ordering) 955 0 R (sample_configuration) 941 0 R (section*.10) 1662 0 R (section*.11) 1672 0 R (section*.12) 1692 0 R (section*.13) 1704 0 R (section*.14) 1730 0 R (section*.15) 1740 0 R (section*.16) 1741 0 R (section*.17) 1742 0 R (section*.18) 1747 0 R (section*.19) 1748 0 R (section*.2) 1528 0 R (section*.20) 1753 0 R (section*.21) 1763 0 R (section*.22) 1768 0 R (section*.23) 1769 0 R (section*.24) 1770 0 R (section*.25) 1771 0 R (section*.26) 1773 0 R (section*.27) 1774 0 R (section*.28) 1775 0 R (section*.29) 1784 0 R (section*.3) 1534 0 R (section*.30) 1785 0 R (section*.31) 1786 0 R (section*.32) 1788 0 R (section*.33) 1789 0 R (section*.34) 1790 0 R (section*.35) 1791 0 R (section*.36) 1796 0 R (section*.37) 1802 0 R (section*.38) 1803 0 R (section*.39) 1804 0 R (section*.4) 1542 0 R (section*.40) 1806 0 R (section*.41) 1807 0 R (section*.42) 1808 0 R (section*.43) 1813 0 R (section*.44) 1818 0 R (section*.45) 1823 0 R (section*.46) 1824 0 R (section*.47) 1826 0 R (section*.48) 1827 0 R (section*.49) 1828 0 R (section*.5) 1567 0 R (section*.50) 1829 0 R (section*.51) 1834 0 R (section*.52) 1835 0 R (section*.53) 1836 0 R (section*.54) 1838 0 R (section*.55) 1839 0 R (section*.56) 1840 0 R (section*.57) 1841 0 R (section*.58) 1851 0 R (section*.59) 1852 0 R (section*.6) 1579 0 R (section*.60) 1853 0 R (section*.61) 1855 0 R (section*.62) 1856 0 R (section*.63) 1857 0 R (section*.64) 1862 0 R (section*.65) 1867 0 R (section*.66) 1868 0 R (section*.67) 1869 0 R (section*.68) 1874 0 R (section*.69) 1875 0 R (section*.7) 1594 0 R (section*.70) 1877 0 R (section*.71) 1878 0 R (section*.72) 1879 0 R (section*.73) 1880 0 R (section*.74) 1885 0 R (section*.75) 1886 0 R (section*.76) 1887 0 R (section*.77) 1889 0 R (section*.78) 1890 0 R (section*.79) 1891 0 R (section*.8) 1632 0 R (section*.80) 1896 0 R (section*.81) 1902 0 R (section*.82) 1903 0 R (section*.83) 1904 0 R (section*.84) 1906 0 R (section*.85) 1907 0 R (section*.86) 1912 0 R (section*.87) 1913 0 R (section*.88) 1918 0 R (section*.89) 1919 0 R (section*.9) 1650 0 R (section*.90) 1920 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 474 0 R (section.7.1) 530 0 R (section.7.2) 534 0 R (section.7.3) 546 0 R (section.8.1) 554 0 R (section.8.2) 562 0 R (section.8.3) 566 0 R (section.A.1) 574 0 R (section.A.2) 582 0 R (section.A.3) 590 0 R (section.B.1) 610 0 R (section.B.10) 646 0 R (section.B.2) 614 0 R (section.B.3) 618 0 R (section.B.4) 622 0 R (section.B.5) 626 0 R (section.B.6) 630 0 R (section.B.7) 634 0 R (section.B.8) 638 0 R (section.B.9) 642 0 R (server_statement_definition_and_usage) 1214 0 R (server_statement_grammar) 1319 0 R (statsfile) 1193 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 426 0 R (subsection.6.2.18) 430 0 R (subsection.6.2.19) 434 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 438 0 R (subsection.6.2.21) 442 0 R (subsection.6.2.22) 446 0 R (subsection.6.2.23) 450 0 R (subsection.6.2.24) 454 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 478 0 R (subsection.6.3.2) 490 0 R (subsection.6.3.3) 494 0 R (subsection.6.3.4) 498 0 R (subsection.6.3.5) 502 0 R (subsection.6.3.6) 518 0 R (subsection.6.3.7) 522 0 R (subsection.7.2.1) 538 0 R (subsection.7.2.2) 542 0 R (subsection.8.1.1) 558 0 R (subsection.A.1.1) 578 0 R (subsection.A.2.1) 586 0 R (subsection.A.3.1) 594 0 R (subsection.A.3.2) 598 0 R (subsection.A.3.3) 602 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.18) 418 0 R (subsubsection.6.2.16.19) 422 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 458 0 R (subsubsection.6.2.24.2) 462 0 R (subsubsection.6.2.24.3) 466 0 R (subsubsection.6.2.24.4) 470 0 R (subsubsection.6.3.1.1) 482 0 R (subsubsection.6.3.1.2) 486 0 R (subsubsection.6.3.5.1) 506 0 R (subsubsection.6.3.5.2) 510 0 R (subsubsection.6.3.5.3) 514 0 R (table.1.1) 882 0 R (table.1.2) 892 0 R (table.3.1) 951 0 R (table.3.2) 983 0 R (table.6.1) 1091 0 R (table.6.10) 1417 0 R (table.6.11) 1423 0 R (table.6.12) 1429 0 R (table.6.13) 1436 0 R (table.6.14) 1438 0 R (table.6.15) 1441 0 R (table.6.16) 1448 0 R (table.6.17) 1451 0 R (table.6.18) 1467 0 R (table.6.2) 1115 0 R (table.6.3) 1123 0 R (table.6.4) 1162 0 R (table.6.5) 1203 0 R (table.6.6) 1284 0 R (table.6.7) 1314 0 R (table.6.8) 1354 0 R (table.6.9) 1407 0 R (the_category_phrase) 1156 0 R (the_sortlist_statement) 1275 0 R (topology) 1270 0 R (tsig) 1030 0 R (tuning) 1285 0 R (types_of_resource_records_and_when_to_use_them) 899 0 R (view_statement_grammar) 1304 0 R (zone_statement_grammar) 1234 0 R (zone_transfers) 1006 0 R (zonefile_format) 1292 0 R] +/Names [(Access_Control_Lists) 1477 0 R (Bv9ARM.ch01) 874 0 R (Bv9ARM.ch02) 923 0 R (Bv9ARM.ch03) 940 0 R (Bv9ARM.ch04) 989 0 R (Bv9ARM.ch05) 1077 0 R (Bv9ARM.ch06) 1088 0 R (Bv9ARM.ch07) 1476 0 R (Bv9ARM.ch08) 1502 0 R (Bv9ARM.ch09) 1517 0 R (Bv9ARM.ch10) 1738 0 R (Configuration_File_Grammar) 1113 0 R (DNSSEC) 1056 0 R (Doc-Start) 655 0 R (Setting_TTLs) 1446 0 R (acache) 930 0 R (access_control) 1231 0 R (acl) 1121 0 R (address_match_lists) 1094 0 R (admin_tools) 963 0 R (appendix.A) 570 0 R (appendix.B) 606 0 R (bibliography) 1525 0 R (boolean_options) 1005 0 R (builtin) 1299 0 R (chapter*.1) 690 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 526 0 R (chapter.8) 550 0 R (cite.RFC1033) 1653 0 R (cite.RFC1034) 1537 0 R (cite.RFC1035) 1539 0 R (cite.RFC1101) 1635 0 R (cite.RFC1123) 1637 0 R (cite.RFC1183) 1597 0 R (cite.RFC1464) 1675 0 R (cite.RFC1535) 1582 0 R (cite.RFC1536) 1584 0 R (cite.RFC1537) 1655 0 R (cite.RFC1591) 1639 0 R (cite.RFC1706) 1599 0 R (cite.RFC1712) 1695 0 R (cite.RFC1713) 1677 0 R (cite.RFC1794) 1679 0 R (cite.RFC1876) 1601 0 R (cite.RFC1912) 1657 0 R (cite.RFC1982) 1586 0 R (cite.RFC1995) 1544 0 R (cite.RFC1996) 1546 0 R (cite.RFC2010) 1659 0 R (cite.RFC2052) 1603 0 R (cite.RFC2065) 1707 0 R (cite.RFC2136) 1548 0 R (cite.RFC2137) 1709 0 R (cite.RFC2163) 1605 0 R (cite.RFC2168) 1607 0 R (cite.RFC2181) 1550 0 R (cite.RFC2219) 1661 0 R (cite.RFC2230) 1609 0 R (cite.RFC2240) 1681 0 R (cite.RFC2308) 1552 0 R (cite.RFC2317) 1641 0 R (cite.RFC2345) 1683 0 R (cite.RFC2352) 1685 0 R (cite.RFC2535) 1711 0 R (cite.RFC2536) 1611 0 R (cite.RFC2537) 1613 0 R (cite.RFC2538) 1615 0 R (cite.RFC2539) 1617 0 R (cite.RFC2540) 1619 0 R (cite.RFC2671) 1554 0 R (cite.RFC2672) 1556 0 R (cite.RFC2673) 1697 0 R (cite.RFC2782) 1621 0 R (cite.RFC2825) 1665 0 R (cite.RFC2826) 1643 0 R (cite.RFC2845) 1558 0 R (cite.RFC2874) 1699 0 R (cite.RFC2915) 1623 0 R (cite.RFC2929) 1645 0 R (cite.RFC2930) 1560 0 R (cite.RFC2931) 1562 0 R (cite.RFC3007) 1564 0 R (cite.RFC3008) 1713 0 R (cite.RFC3071) 1687 0 R (cite.RFC3090) 1715 0 R (cite.RFC3110) 1625 0 R (cite.RFC3123) 1627 0 R (cite.RFC3225) 1570 0 R (cite.RFC3258) 1689 0 R (cite.RFC3445) 1717 0 R (cite.RFC3490) 1667 0 R (cite.RFC3491) 1669 0 R (cite.RFC3492) 1671 0 R (cite.RFC3596) 1629 0 R (cite.RFC3597) 1631 0 R (cite.RFC3645) 1566 0 R (cite.RFC3655) 1719 0 R (cite.RFC3658) 1721 0 R (cite.RFC3755) 1723 0 R (cite.RFC3757) 1725 0 R (cite.RFC3833) 1572 0 R (cite.RFC3845) 1727 0 R (cite.RFC3901) 1691 0 R (cite.RFC4033) 1574 0 R (cite.RFC4035) 1576 0 R (cite.RFC4044) 1578 0 R (cite.RFC4074) 1588 0 R (cite.RFC974) 1541 0 R (cite.id2499526) 1732 0 R (configuration_file_elements) 1089 0 R (controls_statement_definition_and_usage) 976 0 R (diagnostic_tools) 911 0 R (dynamic_update) 999 0 R (dynamic_update_policies) 1051 0 R (dynamic_update_security) 1235 0 R (empty) 1308 0 R (historical_dns_information) 1519 0 R (id2464961) 875 0 R (id2466569) 876 0 R (id2467528) 880 0 R (id2467538) 881 0 R (id2467709) 893 0 R (id2467731) 894 0 R (id2467765) 895 0 R (id2467849) 898 0 R (id2467942) 891 0 R (id2470247) 905 0 R (id2470270) 908 0 R (id2470369) 909 0 R (id2470390) 910 0 R (id2470420) 916 0 R (id2470523) 917 0 R (id2470550) 918 0 R (id2470584) 924 0 R (id2470611) 925 0 R (id2470624) 926 0 R (id2470717) 929 0 R (id2470728) 935 0 R (id2470760) 942 0 R (id2470776) 943 0 R (id2470798) 949 0 R (id2470816) 950 0 R (id2471153) 953 0 R (id2471158) 954 0 R (id2473077) 981 0 R (id2473089) 982 0 R (id2473466) 1014 0 R (id2473484) 1015 0 R (id2473920) 1031 0 R (id2473937) 1032 0 R (id2473975) 1037 0 R (id2473993) 1038 0 R (id2474004) 1039 0 R (id2474043) 1040 0 R (id2474169) 1041 0 R (id2474282) 1047 0 R (id2474296) 1048 0 R (id2474413) 1049 0 R (id2474618) 1057 0 R (id2474688) 1058 0 R (id2474766) 1063 0 R (id2474841) 1068 0 R (id2474971) 1070 0 R (id2474993) 1071 0 R (id2475162) 1078 0 R (id2475309) 1090 0 R (id2476102) 1099 0 R (id2476130) 1100 0 R (id2476305) 1105 0 R (id2476320) 1106 0 R (id2476349) 1107 0 R (id2476433) 1114 0 R (id2476849) 1120 0 R (id2476891) 1122 0 R (id2477038) 1124 0 R (id2477467) 1131 0 R (id2477482) 1132 0 R (id2477506) 1133 0 R (id2477527) 1134 0 R (id2477686) 1143 0 R (id2477812) 1144 0 R (id2477864) 1150 0 R (id2478694) 1161 0 R (id2479367) 1167 0 R (id2479441) 1168 0 R (id2479505) 1175 0 R (id2479548) 1176 0 R (id2479563) 1177 0 R (id2481595) 1202 0 R (id2483429) 1224 0 R (id2483488) 1230 0 R (id2483909) 1241 0 R (id2483997) 1246 0 R (id2484819) 1260 0 R (id2484834) 1261 0 R (id2485017) 1263 0 R (id2485219) 1269 0 R (id2485581) 1283 0 R (id2486884) 1313 0 R (id2488123) 1330 0 R (id2488172) 1331 0 R (id2488252) 1337 0 R (id2489698) 1351 0 R (id2489705) 1352 0 R (id2489710) 1353 0 R (id2490124) 1363 0 R (id2490157) 1364 0 R (id2491517) 1410 0 R (id2491774) 1412 0 R (id2491793) 1417 0 R (id2491881) 1420 0 R (id2492050) 1422 0 R (id2493079) 1428 0 R (id2493275) 1434 0 R (id2493297) 1435 0 R (id2493728) 1437 0 R (id2493864) 1439 0 R (id2493886) 1444 0 R (id2494359) 1447 0 R (id2494484) 1449 0 R (id2494499) 1450 0 R (id2494679) 1457 0 R (id2494701) 1458 0 R (id2494830) 1459 0 R (id2494900) 1464 0 R (id2494936) 1465 0 R (id2494998) 1466 0 R (id2495477) 1486 0 R (id2495622) 1487 0 R (id2495750) 1488 0 R (id2495898) 1503 0 R (id2495904) 1504 0 R (id2495915) 1505 0 R (id2495932) 1506 0 R (id2496062) 1518 0 R (id2496166) 1524 0 R (id2496422) 1529 0 R (id2496424) 1535 0 R (id2496433) 1540 0 R (id2496456) 1536 0 R (id2496480) 1538 0 R (id2496516) 1549 0 R (id2496542) 1551 0 R (id2496568) 1543 0 R (id2496593) 1545 0 R (id2496616) 1547 0 R (id2496740) 1553 0 R (id2496766) 1555 0 R (id2496793) 1557 0 R (id2496855) 1559 0 R (id2496885) 1561 0 R (id2496915) 1563 0 R (id2496941) 1565 0 R (id2497016) 1568 0 R (id2497024) 1569 0 R (id2497050) 1571 0 R (id2497086) 1573 0 R (id2497152) 1577 0 R (id2497217) 1575 0 R (id2497350) 1580 0 R (id2497358) 1581 0 R (id2497384) 1583 0 R (id2497452) 1585 0 R (id2497488) 1587 0 R (id2497528) 1595 0 R (id2497533) 1596 0 R (id2497591) 1598 0 R (id2497628) 1606 0 R (id2497664) 1600 0 R (id2497718) 1602 0 R (id2497756) 1604 0 R (id2497782) 1608 0 R (id2497808) 1610 0 R (id2497834) 1612 0 R (id2497861) 1614 0 R (id2497900) 1616 0 R (id2497930) 1618 0 R (id2497960) 1620 0 R (id2498003) 1622 0 R (id2498036) 1624 0 R (id2498062) 1626 0 R (id2498086) 1628 0 R (id2498144) 1630 0 R (id2498168) 1633 0 R (id2498176) 1634 0 R (id2498201) 1636 0 R (id2498224) 1638 0 R (id2498247) 1640 0 R (id2498293) 1642 0 R (id2498316) 1644 0 R (id2498366) 1651 0 R (id2498374) 1652 0 R (id2498397) 1654 0 R (id2498424) 1656 0 R (id2498451) 1658 0 R (id2498487) 1660 0 R (id2498528) 1663 0 R (id2498533) 1664 0 R (id2498565) 1666 0 R (id2498611) 1668 0 R (id2498646) 1670 0 R (id2498673) 1673 0 R (id2498691) 1674 0 R (id2498781) 1676 0 R (id2498807) 1678 0 R (id2498833) 1680 0 R (id2498856) 1682 0 R (id2498902) 1684 0 R (id2498925) 1686 0 R (id2498952) 1688 0 R (id2498978) 1690 0 R (id2499015) 1693 0 R (id2499021) 1694 0 R (id2499079) 1696 0 R (id2499106) 1698 0 R (id2499142) 1705 0 R (id2499154) 1706 0 R (id2499193) 1708 0 R (id2499220) 1710 0 R (id2499250) 1712 0 R (id2499275) 1714 0 R (id2499302) 1716 0 R (id2499338) 1718 0 R (id2499374) 1720 0 R (id2499401) 1722 0 R (id2499428) 1724 0 R (id2499473) 1726 0 R (id2499514) 1729 0 R (id2499524) 1731 0 R (id2499526) 1733 0 R (incremental_zone_transfers) 1011 0 R (internet_drafts) 1728 0 R (ipv6addresses) 1072 0 R (journal) 1000 0 R (lwresd) 1079 0 R (man.dig) 1739 0 R (man.dnssec-keygen) 1787 0 R (man.dnssec-signzone) 1805 0 R (man.host) 1772 0 R (man.named) 1854 0 R (man.named-checkconf) 1825 0 R (man.named-checkzone) 1837 0 R (man.rndc) 1876 0 R (man.rndc-confgen) 1905 0 R (man.rndc.conf) 1888 0 R (notify) 990 0 R (options) 1187 0 R (page.1) 654 0 R (page.10) 915 0 R (page.100) 1767 0 R (page.101) 1779 0 R (page.102) 1783 0 R (page.103) 1795 0 R (page.104) 1801 0 R (page.105) 1812 0 R (page.106) 1817 0 R (page.107) 1822 0 R (page.108) 1833 0 R (page.109) 1845 0 R (page.11) 922 0 R (page.110) 1850 0 R (page.111) 1861 0 R (page.112) 1866 0 R (page.113) 1873 0 R (page.114) 1884 0 R (page.115) 1895 0 R (page.116) 1901 0 R (page.117) 1911 0 R (page.118) 1917 0 R (page.12) 934 0 R (page.13) 939 0 R (page.14) 948 0 R (page.15) 959 0 R (page.16) 967 0 R (page.17) 974 0 R (page.18) 980 0 R (page.19) 988 0 R (page.2) 679 0 R (page.20) 1010 0 R (page.21) 1020 0 R (page.22) 1025 0 R (page.23) 1029 0 R (page.24) 1036 0 R (page.25) 1045 0 R (page.26) 1055 0 R (page.27) 1062 0 R (page.28) 1067 0 R (page.29) 1076 0 R (page.3) 689 0 R (page.30) 1083 0 R (page.31) 1087 0 R (page.32) 1098 0 R (page.33) 1104 0 R (page.34) 1112 0 R (page.35) 1119 0 R (page.36) 1128 0 R (page.37) 1141 0 R (page.38) 1149 0 R (page.39) 1154 0 R (page.4) 744 0 R (page.40) 1160 0 R (page.41) 1166 0 R (page.42) 1174 0 R (page.43) 1181 0 R (page.44) 1186 0 R (page.45) 1191 0 R (page.46) 1197 0 R (page.47) 1201 0 R (page.48) 1208 0 R (page.49) 1218 0 R (page.5) 808 0 R (page.50) 1223 0 R (page.51) 1228 0 R (page.52) 1239 0 R (page.53) 1245 0 R (page.54) 1250 0 R (page.55) 1254 0 R (page.56) 1259 0 R (page.57) 1268 0 R (page.58) 1274 0 R (page.59) 1281 0 R (page.6) 869 0 R (page.60) 1288 0 R (page.61) 1294 0 R (page.62) 1307 0 R (page.63) 1312 0 R (page.64) 1318 0 R (page.65) 1322 0 R (page.66) 1327 0 R (page.67) 1336 0 R (page.68) 1342 0 R (page.69) 1346 0 R (page.7) 873 0 R (page.70) 1350 0 R (page.71) 1358 0 R (page.72) 1362 0 R (page.73) 1377 0 R (page.74) 1392 0 R (page.75) 1409 0 R (page.76) 1416 0 R (page.77) 1427 0 R (page.78) 1433 0 R (page.79) 1443 0 R (page.8) 890 0 R (page.80) 1456 0 R (page.81) 1463 0 R (page.82) 1471 0 R (page.83) 1475 0 R (page.84) 1481 0 R (page.85) 1492 0 R (page.86) 1497 0 R (page.87) 1501 0 R (page.88) 1512 0 R (page.89) 1516 0 R (page.9) 904 0 R (page.90) 1523 0 R (page.91) 1533 0 R (page.92) 1593 0 R (page.93) 1649 0 R (page.94) 1703 0 R (page.95) 1737 0 R (page.96) 1746 0 R (page.97) 1752 0 R (page.98) 1758 0 R (page.99) 1762 0 R (proposed_standards) 1016 0 R (rfcs) 900 0 R (rndc) 1137 0 R (rrset_ordering) 955 0 R (sample_configuration) 941 0 R (section*.10) 1662 0 R (section*.11) 1672 0 R (section*.12) 1692 0 R (section*.13) 1704 0 R (section*.14) 1730 0 R (section*.15) 1740 0 R (section*.16) 1741 0 R (section*.17) 1742 0 R (section*.18) 1747 0 R (section*.19) 1748 0 R (section*.2) 1528 0 R (section*.20) 1753 0 R (section*.21) 1763 0 R (section*.22) 1768 0 R (section*.23) 1769 0 R (section*.24) 1770 0 R (section*.25) 1771 0 R (section*.26) 1773 0 R (section*.27) 1774 0 R (section*.28) 1775 0 R (section*.29) 1784 0 R (section*.3) 1534 0 R (section*.30) 1785 0 R (section*.31) 1786 0 R (section*.32) 1788 0 R (section*.33) 1789 0 R (section*.34) 1790 0 R (section*.35) 1791 0 R (section*.36) 1796 0 R (section*.37) 1802 0 R (section*.38) 1803 0 R (section*.39) 1804 0 R (section*.4) 1542 0 R (section*.40) 1806 0 R (section*.41) 1807 0 R (section*.42) 1808 0 R (section*.43) 1813 0 R (section*.44) 1818 0 R (section*.45) 1823 0 R (section*.46) 1824 0 R (section*.47) 1826 0 R (section*.48) 1827 0 R (section*.49) 1828 0 R (section*.5) 1567 0 R (section*.50) 1829 0 R (section*.51) 1834 0 R (section*.52) 1835 0 R (section*.53) 1836 0 R (section*.54) 1838 0 R (section*.55) 1839 0 R (section*.56) 1840 0 R (section*.57) 1841 0 R (section*.58) 1851 0 R (section*.59) 1852 0 R (section*.6) 1579 0 R (section*.60) 1853 0 R (section*.61) 1855 0 R (section*.62) 1856 0 R (section*.63) 1857 0 R (section*.64) 1862 0 R (section*.65) 1867 0 R (section*.66) 1868 0 R (section*.67) 1869 0 R (section*.68) 1874 0 R (section*.69) 1875 0 R (section*.7) 1594 0 R (section*.70) 1877 0 R (section*.71) 1878 0 R (section*.72) 1879 0 R (section*.73) 1880 0 R (section*.74) 1885 0 R (section*.75) 1886 0 R (section*.76) 1887 0 R (section*.77) 1889 0 R (section*.78) 1890 0 R (section*.79) 1891 0 R (section*.8) 1632 0 R (section*.80) 1896 0 R (section*.81) 1902 0 R (section*.82) 1903 0 R (section*.83) 1904 0 R (section*.84) 1906 0 R (section*.85) 1907 0 R (section*.86) 1912 0 R (section*.87) 1913 0 R (section*.88) 1918 0 R (section*.89) 1919 0 R (section*.9) 1650 0 R (section*.90) 1920 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 474 0 R (section.7.1) 530 0 R (section.7.2) 534 0 R (section.7.3) 546 0 R (section.8.1) 554 0 R (section.8.2) 562 0 R (section.8.3) 566 0 R (section.A.1) 574 0 R (section.A.2) 582 0 R (section.A.3) 590 0 R (section.B.1) 610 0 R (section.B.10) 646 0 R (section.B.2) 614 0 R (section.B.3) 618 0 R (section.B.4) 622 0 R (section.B.5) 626 0 R (section.B.6) 630 0 R (section.B.7) 634 0 R (section.B.8) 638 0 R (section.B.9) 642 0 R (server_statement_definition_and_usage) 1214 0 R (server_statement_grammar) 1323 0 R (statsfile) 1193 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 426 0 R (subsection.6.2.18) 430 0 R (subsection.6.2.19) 434 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 438 0 R (subsection.6.2.21) 442 0 R (subsection.6.2.22) 446 0 R (subsection.6.2.23) 450 0 R (subsection.6.2.24) 454 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 478 0 R (subsection.6.3.2) 490 0 R (subsection.6.3.3) 494 0 R (subsection.6.3.4) 498 0 R (subsection.6.3.5) 502 0 R (subsection.6.3.6) 518 0 R (subsection.6.3.7) 522 0 R (subsection.7.2.1) 538 0 R (subsection.7.2.2) 542 0 R (subsection.8.1.1) 558 0 R (subsection.A.1.1) 578 0 R (subsection.A.2.1) 586 0 R (subsection.A.3.1) 594 0 R (subsection.A.3.2) 598 0 R (subsection.A.3.3) 602 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.18) 418 0 R (subsubsection.6.2.16.19) 422 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 458 0 R (subsubsection.6.2.24.2) 462 0 R (subsubsection.6.2.24.3) 466 0 R (subsubsection.6.2.24.4) 470 0 R (subsubsection.6.3.1.1) 482 0 R (subsubsection.6.3.1.2) 486 0 R (subsubsection.6.3.5.1) 506 0 R (subsubsection.6.3.5.2) 510 0 R (subsubsection.6.3.5.3) 514 0 R (table.1.1) 882 0 R (table.1.2) 892 0 R (table.3.1) 951 0 R (table.3.2) 983 0 R (table.6.1) 1091 0 R (table.6.10) 1421 0 R (table.6.11) 1423 0 R (table.6.12) 1429 0 R (table.6.13) 1436 0 R (table.6.14) 1438 0 R (table.6.15) 1445 0 R (table.6.16) 1448 0 R (table.6.17) 1451 0 R (table.6.18) 1467 0 R (table.6.2) 1115 0 R (table.6.3) 1123 0 R (table.6.4) 1162 0 R (table.6.5) 1203 0 R (table.6.6) 1284 0 R (table.6.7) 1314 0 R (table.6.8) 1354 0 R (table.6.9) 1411 0 R (the_category_phrase) 1156 0 R (the_sortlist_statement) 1275 0 R (topology) 1270 0 R (tsig) 1030 0 R (tuning) 1289 0 R (types_of_resource_records_and_when_to_use_them) 899 0 R (view_statement_grammar) 1303 0 R (zone_statement_grammar) 1234 0 R (zone_transfers) 1006 0 R (zonefile_format) 1302 0 R] /Limits [(Access_Control_Lists) (zonefile_format)] >> endobj 1944 0 obj << @@ -10920,7 +10932,7 @@ endobj >> endobj 1947 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() -/CreationDate (D:20071031135044+11'00') +/CreationDate (D:20080527222211Z) /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref @@ -10932,647 +10944,647 @@ xref 0000000000 00000 f 0000000009 00000 n 0000066898 00000 n -0000664779 00000 n +0000665358 00000 n 0000000054 00000 n 0000000086 00000 n 0000067022 00000 n -0000664707 00000 n +0000665286 00000 n 0000000133 00000 n 0000000173 00000 n 0000067147 00000 n -0000664621 00000 n +0000665200 00000 n 0000000221 00000 n 0000000273 00000 n 0000067272 00000 n -0000664535 00000 n +0000665114 00000 n 0000000321 00000 n 0000000377 00000 n 0000071535 00000 n -0000664425 00000 n +0000665004 00000 n 0000000425 00000 n 0000000478 00000 n 0000071660 00000 n -0000664351 00000 n +0000664930 00000 n 0000000531 00000 n 0000000572 00000 n 0000071785 00000 n -0000664264 00000 n +0000664843 00000 n 0000000625 00000 n 0000000674 00000 n 0000071910 00000 n -0000664177 00000 n +0000664756 00000 n 0000000727 00000 n 0000000757 00000 n 0000076188 00000 n -0000664053 00000 n +0000664632 00000 n 0000000810 00000 n 0000000861 00000 n 0000076313 00000 n -0000663979 00000 n +0000664558 00000 n 0000000919 00000 n 0000000964 00000 n 0000076438 00000 n -0000663892 00000 n +0000664471 00000 n 0000001022 00000 n 0000001062 00000 n 0000076563 00000 n -0000663818 00000 n +0000664397 00000 n 0000001120 00000 n 0000001162 00000 n 0000079535 00000 n -0000663694 00000 n +0000664273 00000 n 0000001215 00000 n 0000001260 00000 n 0000079660 00000 n -0000663633 00000 n +0000664212 00000 n 0000001318 00000 n 0000001355 00000 n 0000079785 00000 n -0000663559 00000 n +0000664138 00000 n 0000001408 00000 n 0000001463 00000 n 0000082713 00000 n -0000663434 00000 n +0000664013 00000 n 0000001509 00000 n 0000001556 00000 n 0000082838 00000 n -0000663360 00000 n +0000663939 00000 n 0000001604 00000 n 0000001648 00000 n 0000082963 00000 n -0000663273 00000 n +0000663852 00000 n 0000001696 00000 n 0000001735 00000 n 0000083088 00000 n -0000663186 00000 n +0000663765 00000 n 0000001783 00000 n 0000001825 00000 n 0000083212 00000 n -0000663099 00000 n +0000663678 00000 n 0000001873 00000 n 0000001936 00000 n 0000084298 00000 n -0000663025 00000 n +0000663604 00000 n 0000001984 00000 n 0000002034 00000 n 0000086008 00000 n -0000662897 00000 n +0000663476 00000 n 0000002080 00000 n 0000002126 00000 n 0000086132 00000 n -0000662784 00000 n +0000663363 00000 n 0000002174 00000 n 0000002218 00000 n 0000086257 00000 n -0000662708 00000 n +0000663287 00000 n 0000002271 00000 n 0000002323 00000 n 0000086382 00000 n -0000662631 00000 n +0000663210 00000 n 0000002377 00000 n 0000002436 00000 n 0000088910 00000 n -0000662540 00000 n +0000663119 00000 n 0000002485 00000 n 0000002523 00000 n 0000089162 00000 n -0000662423 00000 n +0000663002 00000 n 0000002572 00000 n 0000002618 00000 n 0000089288 00000 n -0000662305 00000 n +0000662884 00000 n 0000002672 00000 n 0000002739 00000 n 0000092495 00000 n -0000662226 00000 n +0000662805 00000 n 0000002798 00000 n 0000002842 00000 n 0000092621 00000 n -0000662147 00000 n +0000662726 00000 n 0000002901 00000 n 0000002949 00000 n 0000102950 00000 n -0000662068 00000 n +0000662647 00000 n 0000003003 00000 n 0000003036 00000 n 0000107881 00000 n -0000661936 00000 n +0000662515 00000 n 0000003083 00000 n 0000003126 00000 n 0000108007 00000 n -0000661857 00000 n +0000662436 00000 n 0000003175 00000 n 0000003205 00000 n 0000108133 00000 n -0000661725 00000 n +0000662304 00000 n 0000003254 00000 n 0000003292 00000 n 0000108259 00000 n -0000661660 00000 n +0000662239 00000 n 0000003346 00000 n 0000003388 00000 n 0000112550 00000 n -0000661567 00000 n +0000662146 00000 n 0000003437 00000 n 0000003496 00000 n 0000112677 00000 n -0000661435 00000 n +0000662014 00000 n 0000003545 00000 n 0000003578 00000 n 0000112806 00000 n -0000661370 00000 n +0000661949 00000 n 0000003632 00000 n 0000003681 00000 n 0000120178 00000 n -0000661238 00000 n +0000661817 00000 n 0000003730 00000 n 0000003758 00000 n 0000120305 00000 n -0000661120 00000 n +0000661699 00000 n 0000003812 00000 n 0000003881 00000 n 0000120434 00000 n -0000661041 00000 n +0000661620 00000 n 0000003940 00000 n 0000003988 00000 n 0000123309 00000 n -0000660962 00000 n +0000661541 00000 n 0000004047 00000 n 0000004092 00000 n 0000123438 00000 n -0000660869 00000 n +0000661448 00000 n 0000004146 00000 n 0000004214 00000 n 0000123567 00000 n -0000660776 00000 n +0000661355 00000 n 0000004268 00000 n 0000004338 00000 n 0000123696 00000 n -0000660683 00000 n +0000661262 00000 n 0000004392 00000 n 0000004455 00000 n 0000123824 00000 n -0000660590 00000 n +0000661169 00000 n 0000004509 00000 n 0000004564 00000 n 0000127470 00000 n -0000660511 00000 n +0000661090 00000 n 0000004618 00000 n 0000004650 00000 n 0000127599 00000 n -0000660418 00000 n +0000660997 00000 n 0000004699 00000 n 0000004727 00000 n 0000127728 00000 n -0000660325 00000 n +0000660904 00000 n 0000004776 00000 n 0000004808 00000 n 0000131334 00000 n -0000660193 00000 n +0000660772 00000 n 0000004857 00000 n 0000004887 00000 n 0000131463 00000 n -0000660114 00000 n +0000660693 00000 n 0000004941 00000 n 0000004982 00000 n 0000131591 00000 n -0000660021 00000 n +0000660600 00000 n 0000005036 00000 n 0000005078 00000 n 0000135033 00000 n -0000659942 00000 n +0000660521 00000 n 0000005132 00000 n 0000005177 00000 n 0000138107 00000 n -0000659824 00000 n +0000660403 00000 n 0000005226 00000 n 0000005272 00000 n 0000138236 00000 n -0000659745 00000 n +0000660324 00000 n 0000005326 00000 n 0000005386 00000 n 0000138364 00000 n -0000659666 00000 n +0000660245 00000 n 0000005440 00000 n 0000005509 00000 n 0000140844 00000 n -0000659533 00000 n +0000660112 00000 n 0000005556 00000 n 0000005609 00000 n 0000140973 00000 n -0000659454 00000 n +0000660033 00000 n 0000005658 00000 n 0000005714 00000 n 0000141102 00000 n -0000659375 00000 n +0000659954 00000 n 0000005763 00000 n 0000005812 00000 n 0000145286 00000 n -0000659242 00000 n +0000659821 00000 n 0000005859 00000 n 0000005911 00000 n 0000145415 00000 n -0000659124 00000 n +0000659703 00000 n 0000005960 00000 n 0000006011 00000 n 0000149682 00000 n -0000659006 00000 n +0000659585 00000 n 0000006065 00000 n 0000006110 00000 n 0000149811 00000 n -0000658927 00000 n +0000659506 00000 n 0000006169 00000 n 0000006203 00000 n 0000149940 00000 n -0000658848 00000 n +0000659427 00000 n 0000006262 00000 n 0000006310 00000 n 0000153288 00000 n -0000658730 00000 n +0000659309 00000 n 0000006364 00000 n 0000006404 00000 n 0000153417 00000 n -0000658651 00000 n +0000659230 00000 n 0000006463 00000 n 0000006497 00000 n 0000153546 00000 n -0000658572 00000 n +0000659151 00000 n 0000006556 00000 n 0000006604 00000 n 0000157451 00000 n -0000658439 00000 n +0000659018 00000 n 0000006653 00000 n 0000006703 00000 n 0000161073 00000 n -0000658360 00000 n +0000658939 00000 n 0000006757 00000 n 0000006804 00000 n 0000161202 00000 n -0000658267 00000 n +0000658846 00000 n 0000006858 00000 n 0000006918 00000 n 0000161459 00000 n -0000658174 00000 n +0000658753 00000 n 0000006972 00000 n 0000007024 00000 n 0000161588 00000 n -0000658081 00000 n +0000658660 00000 n 0000007078 00000 n 0000007143 00000 n 0000166242 00000 n -0000657988 00000 n +0000658567 00000 n 0000007197 00000 n 0000007248 00000 n 0000166371 00000 n -0000657895 00000 n +0000658474 00000 n 0000007302 00000 n 0000007366 00000 n 0000166500 00000 n -0000657802 00000 n +0000658381 00000 n 0000007420 00000 n 0000007467 00000 n 0000166629 00000 n -0000657709 00000 n +0000658288 00000 n 0000007521 00000 n 0000007581 00000 n 0000169977 00000 n -0000657616 00000 n +0000658195 00000 n 0000007635 00000 n 0000007686 00000 n 0000170106 00000 n -0000657484 00000 n +0000658063 00000 n 0000007741 00000 n 0000007806 00000 n 0000174741 00000 n -0000657405 00000 n +0000657984 00000 n 0000007866 00000 n 0000007913 00000 n 0000180920 00000 n -0000657326 00000 n +0000657905 00000 n 0000007973 00000 n 0000008021 00000 n 0000184667 00000 n -0000657233 00000 n +0000657812 00000 n 0000008076 00000 n 0000008126 00000 n 0000184796 00000 n -0000657140 00000 n +0000657719 00000 n 0000008181 00000 n 0000008244 00000 n 0000186525 00000 n -0000657047 00000 n +0000657626 00000 n 0000008299 00000 n 0000008351 00000 n 0000186654 00000 n -0000656954 00000 n +0000657533 00000 n 0000008406 00000 n 0000008471 00000 n 0000186783 00000 n -0000656861 00000 n +0000657440 00000 n 0000008526 00000 n 0000008578 00000 n 0000190468 00000 n -0000656728 00000 n +0000657307 00000 n 0000008633 00000 n 0000008698 00000 n 0000198661 00000 n -0000656649 00000 n +0000657228 00000 n 0000008758 00000 n 0000008802 00000 n 0000216022 00000 n -0000656556 00000 n +0000657135 00000 n 0000008862 00000 n 0000008901 00000 n 0000220238 00000 n -0000656463 00000 n +0000657042 00000 n 0000008961 00000 n 0000009008 00000 n 0000220366 00000 n -0000656370 00000 n +0000656949 00000 n 0000009068 00000 n 0000009111 00000 n 0000224175 00000 n -0000656277 00000 n +0000656856 00000 n 0000009171 00000 n 0000009210 00000 n -0000227147 00000 n -0000656184 00000 n +0000227072 00000 n +0000656763 00000 n 0000009270 00000 n 0000009312 00000 n -0000227276 00000 n -0000656091 00000 n +0000227201 00000 n +0000656670 00000 n 0000009372 00000 n 0000009415 00000 n -0000234515 00000 n -0000655998 00000 n +0000238324 00000 n +0000656577 00000 n 0000009475 00000 n 0000009522 00000 n -0000238765 00000 n -0000655905 00000 n +0000238453 00000 n +0000656484 00000 n 0000009582 00000 n 0000009643 00000 n -0000238894 00000 n -0000655812 00000 n +0000238581 00000 n +0000656391 00000 n 0000009704 00000 n 0000009756 00000 n -0000242265 00000 n -0000655719 00000 n +0000242249 00000 n +0000656298 00000 n 0000009817 00000 n 0000009870 00000 n -0000242394 00000 n -0000655626 00000 n +0000242378 00000 n +0000656205 00000 n 0000009931 00000 n 0000009969 00000 n -0000246293 00000 n -0000655533 00000 n +0000246412 00000 n +0000656112 00000 n 0000010030 00000 n 0000010082 00000 n -0000249718 00000 n -0000655440 00000 n +0000249427 00000 n +0000656019 00000 n 0000010143 00000 n 0000010187 00000 n -0000249976 00000 n -0000655347 00000 n +0000253418 00000 n +0000655926 00000 n 0000010248 00000 n 0000010284 00000 n -0000258745 00000 n -0000655254 00000 n +0000258233 00000 n +0000655833 00000 n 0000010345 00000 n 0000010408 00000 n -0000258874 00000 n -0000655161 00000 n +0000260759 00000 n +0000655740 00000 n 0000010469 00000 n 0000010519 00000 n -0000264226 00000 n -0000655068 00000 n +0000263961 00000 n +0000655647 00000 n 0000010580 00000 n 0000010629 00000 n -0000268214 00000 n -0000654989 00000 n +0000268000 00000 n +0000655568 00000 n 0000010690 00000 n 0000010746 00000 n -0000268342 00000 n -0000654896 00000 n +0000271423 00000 n +0000655475 00000 n 0000010801 00000 n 0000010852 00000 n -0000272260 00000 n -0000654803 00000 n +0000271552 00000 n +0000655382 00000 n 0000010907 00000 n 0000010971 00000 n -0000276289 00000 n -0000654710 00000 n +0000276264 00000 n +0000655289 00000 n 0000011026 00000 n 0000011083 00000 n -0000276417 00000 n -0000654617 00000 n +0000276393 00000 n +0000655196 00000 n 0000011138 00000 n 0000011208 00000 n -0000276543 00000 n -0000654524 00000 n +0000279958 00000 n +0000655103 00000 n 0000011263 00000 n 0000011312 00000 n -0000279969 00000 n -0000654431 00000 n +0000280087 00000 n +0000655010 00000 n 0000011367 00000 n 0000011429 00000 n -0000281613 00000 n -0000654338 00000 n +0000281791 00000 n +0000654917 00000 n 0000011484 00000 n 0000011533 00000 n -0000285546 00000 n -0000654220 00000 n +0000284860 00000 n +0000654799 00000 n 0000011588 00000 n 0000011650 00000 n -0000285675 00000 n -0000654141 00000 n +0000284989 00000 n +0000654720 00000 n 0000011710 00000 n 0000011749 00000 n -0000289728 00000 n -0000654048 00000 n +0000294301 00000 n +0000654627 00000 n 0000011809 00000 n 0000011843 00000 n -0000295345 00000 n -0000653955 00000 n +0000294430 00000 n +0000654534 00000 n 0000011903 00000 n 0000011944 00000 n -0000305746 00000 n -0000653876 00000 n +0000305297 00000 n +0000654455 00000 n 0000012004 00000 n 0000012056 00000 n -0000309844 00000 n -0000653758 00000 n +0000308858 00000 n +0000654337 00000 n 0000012105 00000 n 0000012138 00000 n -0000309972 00000 n -0000653640 00000 n +0000308987 00000 n +0000654219 00000 n 0000012192 00000 n 0000012264 00000 n -0000310100 00000 n -0000653561 00000 n +0000313123 00000 n +0000654140 00000 n 0000012323 00000 n 0000012367 00000 n -0000317603 00000 n -0000653482 00000 n +0000320422 00000 n +0000654061 00000 n 0000012426 00000 n 0000012479 00000 n -0000321290 00000 n -0000653389 00000 n +0000320811 00000 n +0000653968 00000 n 0000012533 00000 n 0000012583 00000 n -0000324743 00000 n -0000653296 00000 n +0000324449 00000 n +0000653875 00000 n 0000012637 00000 n 0000012675 00000 n -0000325002 00000 n -0000653203 00000 n +0000324707 00000 n +0000653782 00000 n 0000012729 00000 n 0000012778 00000 n -0000325260 00000 n -0000653071 00000 n +0000327531 00000 n +0000653650 00000 n 0000012832 00000 n 0000012884 00000 n -0000328115 00000 n -0000652992 00000 n +0000327660 00000 n +0000653571 00000 n 0000012943 00000 n 0000012995 00000 n -0000328244 00000 n -0000652899 00000 n +0000327789 00000 n +0000653478 00000 n 0000013054 00000 n 0000013107 00000 n -0000328373 00000 n -0000652820 00000 n +0000331442 00000 n +0000653399 00000 n 0000013166 00000 n 0000013215 00000 n -0000328502 00000 n -0000652727 00000 n +0000331570 00000 n +0000653306 00000 n 0000013269 00000 n 0000013349 00000 n -0000332842 00000 n -0000652648 00000 n +0000333809 00000 n +0000653227 00000 n 0000013403 00000 n 0000013452 00000 n -0000335118 00000 n -0000652515 00000 n +0000335690 00000 n +0000653094 00000 n 0000013499 00000 n 0000013551 00000 n -0000335247 00000 n -0000652436 00000 n +0000335819 00000 n +0000653015 00000 n 0000013600 00000 n 0000013644 00000 n -0000339340 00000 n -0000652304 00000 n +0000339912 00000 n +0000652883 00000 n 0000013693 00000 n 0000013734 00000 n -0000339469 00000 n -0000652225 00000 n +0000340041 00000 n +0000652804 00000 n 0000013788 00000 n 0000013836 00000 n -0000339598 00000 n -0000652146 00000 n +0000340170 00000 n +0000652725 00000 n 0000013890 00000 n 0000013941 00000 n -0000339727 00000 n -0000652067 00000 n +0000340299 00000 n +0000652646 00000 n 0000013990 00000 n 0000014037 00000 n -0000343990 00000 n -0000651934 00000 n +0000344562 00000 n +0000652513 00000 n 0000014084 00000 n 0000014121 00000 n -0000344119 00000 n -0000651816 00000 n +0000344691 00000 n +0000652395 00000 n 0000014170 00000 n 0000014209 00000 n -0000344248 00000 n -0000651751 00000 n +0000344820 00000 n +0000652330 00000 n 0000014263 00000 n 0000014341 00000 n -0000344377 00000 n -0000651658 00000 n +0000344949 00000 n +0000652237 00000 n 0000014390 00000 n 0000014457 00000 n -0000344506 00000 n -0000651579 00000 n +0000345078 00000 n +0000652158 00000 n 0000014506 00000 n 0000014551 00000 n -0000347945 00000 n -0000651446 00000 n +0000348517 00000 n +0000652025 00000 n 0000014599 00000 n 0000014631 00000 n -0000348074 00000 n -0000651328 00000 n +0000348646 00000 n +0000651907 00000 n 0000014680 00000 n 0000014719 00000 n -0000348203 00000 n -0000651263 00000 n +0000348775 00000 n +0000651842 00000 n 0000014773 00000 n 0000014834 00000 n -0000351968 00000 n -0000651131 00000 n +0000352540 00000 n +0000651710 00000 n 0000014883 00000 n 0000014940 00000 n -0000352097 00000 n -0000651066 00000 n +0000352669 00000 n +0000651645 00000 n 0000014994 00000 n 0000015043 00000 n -0000352226 00000 n -0000650948 00000 n +0000352798 00000 n +0000651527 00000 n 0000015092 00000 n 0000015154 00000 n -0000352355 00000 n -0000650869 00000 n +0000352927 00000 n +0000651448 00000 n 0000015208 00000 n 0000015263 00000 n -0000376379 00000 n -0000650776 00000 n +0000376951 00000 n +0000651355 00000 n 0000015317 00000 n 0000015358 00000 n -0000376508 00000 n -0000650697 00000 n +0000377080 00000 n +0000651276 00000 n 0000015412 00000 n 0000015464 00000 n -0000379211 00000 n -0000650577 00000 n +0000379783 00000 n +0000651156 00000 n 0000015512 00000 n 0000015546 00000 n -0000379340 00000 n -0000650498 00000 n +0000379912 00000 n +0000651077 00000 n 0000015595 00000 n 0000015622 00000 n -0000397280 00000 n -0000650405 00000 n +0000397852 00000 n +0000650984 00000 n 0000015671 00000 n 0000015699 00000 n -0000404815 00000 n -0000650312 00000 n +0000405388 00000 n +0000650891 00000 n 0000015748 00000 n 0000015785 00000 n -0000411129 00000 n -0000650219 00000 n +0000411702 00000 n +0000650798 00000 n 0000015834 00000 n 0000015873 00000 n -0000420651 00000 n -0000650126 00000 n +0000421224 00000 n +0000650705 00000 n 0000015922 00000 n 0000015961 00000 n -0000423538 00000 n -0000650033 00000 n +0000424111 00000 n +0000650612 00000 n 0000016010 00000 n 0000016049 00000 n -0000429911 00000 n -0000649940 00000 n +0000430484 00000 n +0000650519 00000 n 0000016098 00000 n 0000016127 00000 n -0000439507 00000 n -0000649847 00000 n +0000440080 00000 n +0000650426 00000 n 0000016176 00000 n 0000016204 00000 n -0000442707 00000 n -0000649754 00000 n +0000443285 00000 n +0000650333 00000 n 0000016253 00000 n 0000016286 00000 n -0000448703 00000 n -0000649675 00000 n +0000449281 00000 n +0000650254 00000 n 0000016336 00000 n 0000016373 00000 n 0000016742 00000 n @@ -11581,10 +11593,10 @@ xref 0000016426 00000 n 0000024567 00000 n 0000024630 00000 n -0000645556 00000 n -0000619613 00000 n -0000645382 00000 n -0000646581 00000 n +0000646135 00000 n +0000620192 00000 n +0000645961 00000 n +0000647160 00000 n 0000019727 00000 n 0000019944 00000 n 0000020013 00000 n @@ -11605,12 +11617,12 @@ xref 0000025867 00000 n 0000024793 00000 n 0000025989 00000 n -0000618401 00000 n -0000591922 00000 n -0000618227 00000 n -0000591237 00000 n -0000589092 00000 n -0000591073 00000 n +0000618980 00000 n +0000592501 00000 n +0000618806 00000 n +0000591816 00000 n +0000589671 00000 n +0000591652 00000 n 0000037758 00000 n 0000029108 00000 n 0000026137 00000 n @@ -11666,95 +11678,95 @@ xref 0000037167 00000 n 0000037322 00000 n 0000037477 00000 n -0000051127 00000 n -0000041075 00000 n +0000051128 00000 n +0000041076 00000 n 0000037843 00000 n -0000051064 00000 n -0000588541 00000 n -0000571460 00000 n -0000588357 00000 n -0000041665 00000 n -0000041828 00000 n -0000041990 00000 n -0000042153 00000 n -0000042311 00000 n -0000042474 00000 n -0000042637 00000 n -0000042792 00000 n -0000042950 00000 n -0000043108 00000 n -0000043264 00000 n -0000043422 00000 n -0000043585 00000 n -0000043753 00000 n -0000043921 00000 n -0000044084 00000 n -0000044252 00000 n -0000044420 00000 n -0000044578 00000 n -0000044741 00000 n -0000044904 00000 n -0000045066 00000 n -0000045228 00000 n -0000045391 00000 n -0000045553 00000 n -0000045715 00000 n -0000045878 00000 n -0000046041 00000 n -0000046204 00000 n -0000046373 00000 n -0000046542 00000 n -0000046706 00000 n -0000046869 00000 n -0000047033 00000 n -0000047197 00000 n -0000047360 00000 n -0000047524 00000 n -0000047693 00000 n -0000047862 00000 n -0000048031 00000 n -0000048200 00000 n -0000048369 00000 n -0000048538 00000 n -0000048707 00000 n -0000048876 00000 n -0000049045 00000 n -0000049215 00000 n -0000049385 00000 n -0000049555 00000 n -0000049724 00000 n -0000049894 00000 n -0000050064 00000 n -0000050234 00000 n -0000050403 00000 n -0000050573 00000 n -0000050741 00000 n -0000050902 00000 n +0000051065 00000 n +0000589120 00000 n +0000572039 00000 n +0000588936 00000 n +0000041666 00000 n +0000041829 00000 n +0000041991 00000 n +0000042154 00000 n +0000042312 00000 n +0000042475 00000 n +0000042638 00000 n +0000042793 00000 n +0000042951 00000 n +0000043109 00000 n +0000043265 00000 n +0000043423 00000 n +0000043586 00000 n +0000043754 00000 n +0000043922 00000 n +0000044085 00000 n +0000044253 00000 n +0000044421 00000 n +0000044579 00000 n +0000044742 00000 n +0000044905 00000 n +0000045067 00000 n +0000045229 00000 n +0000045392 00000 n +0000045554 00000 n +0000045716 00000 n +0000045879 00000 n +0000046042 00000 n +0000046205 00000 n +0000046374 00000 n +0000046543 00000 n +0000046707 00000 n +0000046870 00000 n +0000047034 00000 n +0000047198 00000 n +0000047361 00000 n +0000047525 00000 n +0000047694 00000 n +0000047863 00000 n +0000048032 00000 n +0000048201 00000 n +0000048370 00000 n +0000048539 00000 n +0000048708 00000 n +0000048877 00000 n +0000049046 00000 n +0000049216 00000 n +0000049386 00000 n +0000049556 00000 n +0000049725 00000 n +0000049895 00000 n +0000050065 00000 n +0000050235 00000 n +0000050404 00000 n +0000050574 00000 n +0000050742 00000 n +0000050903 00000 n 0000063950 00000 n -0000054658 00000 n -0000051225 00000 n +0000054659 00000 n +0000051226 00000 n 0000063887 00000 n -0000055224 00000 n -0000055387 00000 n -0000055550 00000 n -0000055713 00000 n -0000055876 00000 n -0000056038 00000 n -0000056201 00000 n -0000056369 00000 n -0000056537 00000 n -0000056704 00000 n -0000056872 00000 n -0000057028 00000 n -0000057190 00000 n -0000057357 00000 n -0000057524 00000 n -0000057686 00000 n -0000057848 00000 n -0000058010 00000 n -0000058172 00000 n -0000058339 00000 n -0000058506 00000 n +0000055225 00000 n +0000055388 00000 n +0000055551 00000 n +0000055714 00000 n +0000055877 00000 n +0000056039 00000 n +0000056202 00000 n +0000056370 00000 n +0000056538 00000 n +0000056705 00000 n +0000056873 00000 n +0000057029 00000 n +0000057191 00000 n +0000057358 00000 n +0000057525 00000 n +0000057687 00000 n +0000057849 00000 n +0000058011 00000 n +0000058173 00000 n +0000058340 00000 n +0000058507 00000 n 0000058673 00000 n 0000058835 00000 n 0000058997 00000 n @@ -11786,9 +11798,9 @@ xref 0000063105 00000 n 0000063262 00000 n 0000063419 00000 n -0000570494 00000 n -0000550527 00000 n -0000570321 00000 n +0000571073 00000 n +0000551106 00000 n +0000570900 00000 n 0000063576 00000 n 0000063731 00000 n 0000064395 00000 n @@ -11802,16 +11814,16 @@ xref 0000066959 00000 n 0000067084 00000 n 0000067209 00000 n -0000549638 00000 n -0000528306 00000 n -0000549464 00000 n +0000550217 00000 n +0000528885 00000 n +0000550043 00000 n 0000067334 00000 n 0000067397 00000 n 0000067460 00000 n -0000527539 00000 n -0000510131 00000 n -0000527366 00000 n -0000646699 00000 n +0000528118 00000 n +0000510710 00000 n +0000527945 00000 n +0000647278 00000 n 0000072034 00000 n 0000070852 00000 n 0000067647 00000 n @@ -11824,8 +11836,8 @@ xref 0000071002 00000 n 0000071195 00000 n 0000071972 00000 n -0000310036 00000 n -0000352419 00000 n +0000309051 00000 n +0000352991 00000 n 0000076688 00000 n 0000075652 00000 n 0000072158 00000 n @@ -11855,7 +11867,7 @@ xref 0000082346 00000 n 0000082498 00000 n 0000083274 00000 n -0000268278 00000 n +0000268064 00000 n 0000084423 00000 n 0000084113 00000 n 0000083422 00000 n @@ -11869,7 +11881,7 @@ xref 0000086194 00000 n 0000086319 00000 n 0000086445 00000 n -0000646817 00000 n +0000647396 00000 n 0000089413 00000 n 0000088545 00000 n 0000086606 00000 n @@ -11880,22 +11892,22 @@ xref 0000088687 00000 n 0000089225 00000 n 0000089351 00000 n -0000249782 00000 n +0000249491 00000 n 0000092747 00000 n 0000092310 00000 n 0000089524 00000 n 0000092432 00000 n -0000509475 00000 n -0000497890 00000 n -0000509298 00000 n +0000510054 00000 n +0000498468 00000 n +0000509877 00000 n 0000092684 00000 n 0000096532 00000 n 0000096347 00000 n 0000092871 00000 n 0000096469 00000 n -0000497355 00000 n -0000487841 00000 n -0000497178 00000 n +0000497933 00000 n +0000488419 00000 n +0000497756 00000 n 0000100916 00000 n 0000100525 00000 n 0000096695 00000 n @@ -11918,20 +11930,20 @@ xref 0000108070 00000 n 0000107496 00000 n 0000107657 00000 n -0000486982 00000 n -0000477610 00000 n -0000486810 00000 n -0000477048 00000 n -0000467964 00000 n -0000476875 00000 n +0000487560 00000 n +0000478188 00000 n +0000487388 00000 n +0000477626 00000 n +0000468543 00000 n +0000477453 00000 n 0000108196 00000 n 0000108322 00000 n -0000646935 00000 n +0000647514 00000 n 0000107325 00000 n 0000107383 00000 n 0000107473 00000 n 0000198725 00000 n -0000227340 00000 n +0000227265 00000 n 0000112935 00000 n 0000112001 00000 n 0000108538 00000 n @@ -11941,7 +11953,7 @@ xref 0000112323 00000 n 0000112741 00000 n 0000112870 00000 n -0000356445 00000 n +0000357017 00000 n 0000116427 00000 n 0000116047 00000 n 0000113086 00000 n @@ -11975,8 +11987,8 @@ xref 0000127534 00000 n 0000127663 00000 n 0000127792 00000 n -0000647059 00000 n -0000305810 00000 n +0000647638 00000 n +0000305361 00000 n 0000131720 00000 n 0000131143 00000 n 0000127968 00000 n @@ -11997,7 +12009,7 @@ xref 0000137881 00000 n 0000138300 00000 n 0000138428 00000 n -0000352161 00000 n +0000352733 00000 n 0000141231 00000 n 0000140653 00000 n 0000138659 00000 n @@ -12018,7 +12030,7 @@ xref 0000145543 00000 n 0000145608 00000 n 0000145054 00000 n -0000647184 00000 n +0000647763 00000 n 0000149746 00000 n 0000150069 00000 n 0000149491 00000 n @@ -12062,7 +12074,7 @@ xref 0000166693 00000 n 0000165843 00000 n 0000165993 00000 n -0000454156 00000 n +0000454734 00000 n 0000170235 00000 n 0000169578 00000 n 0000166895 00000 n @@ -12070,7 +12082,7 @@ xref 0000169725 00000 n 0000170041 00000 n 0000170170 00000 n -0000647309 00000 n +0000647888 00000 n 0000174870 00000 n 0000174550 00000 n 0000170360 00000 n @@ -12107,7 +12119,7 @@ xref 0000188291 00000 n 0000187024 00000 n 0000188417 00000 n -0000647434 00000 n +0000648013 00000 n 0000190597 00000 n 0000190277 00000 n 0000188581 00000 n @@ -12118,7 +12130,7 @@ xref 0000190709 00000 n 0000194837 00000 n 0000194681 00000 n -0000264290 00000 n +0000264025 00000 n 0000198790 00000 n 0000198470 00000 n 0000195027 00000 n @@ -12139,12 +12151,12 @@ xref 0000207426 00000 n 0000207600 00000 n 0000207785 00000 n -0000272323 00000 n +0000271616 00000 n 0000212172 00000 n 0000211981 00000 n 0000208227 00000 n 0000212107 00000 n -0000647559 00000 n +0000648138 00000 n 0000216151 00000 n 0000215831 00000 n 0000212297 00000 n @@ -12159,727 +12171,727 @@ xref 0000220430 00000 n 0000219839 00000 n 0000220005 00000 n -0000281677 00000 n -0000339791 00000 n +0000281855 00000 n +0000340363 00000 n 0000224304 00000 n 0000223794 00000 n 0000220660 00000 n 0000224110 00000 n 0000223941 00000 n 0000224239 00000 n -0000227405 00000 n -0000226956 00000 n +0000227330 00000 n +0000226881 00000 n 0000224429 00000 n -0000227082 00000 n -0000227211 00000 n -0000231466 00000 n -0000231275 00000 n -0000227571 00000 n -0000231401 00000 n -0000234642 00000 n -0000234324 00000 n -0000231578 00000 n -0000234450 00000 n -0000234579 00000 n -0000647684 00000 n -0000239021 00000 n -0000238215 00000 n -0000234795 00000 n -0000238700 00000 n -0000238829 00000 n -0000238371 00000 n -0000238957 00000 n -0000238545 00000 n -0000242523 00000 n -0000242074 00000 n -0000239133 00000 n -0000242200 00000 n -0000242329 00000 n -0000242458 00000 n -0000246422 00000 n -0000245755 00000 n -0000242676 00000 n -0000246228 00000 n -0000246357 00000 n -0000245911 00000 n -0000246073 00000 n -0000250105 00000 n -0000249337 00000 n -0000246588 00000 n -0000249653 00000 n -0000249484 00000 n -0000249846 00000 n -0000249911 00000 n -0000250040 00000 n -0000254580 00000 n -0000254034 00000 n -0000250284 00000 n -0000254515 00000 n -0000254190 00000 n -0000254352 00000 n -0000332906 00000 n -0000259003 00000 n -0000258364 00000 n -0000254746 00000 n -0000258680 00000 n -0000467609 00000 n -0000465612 00000 n -0000467444 00000 n -0000258809 00000 n -0000258511 00000 n -0000258938 00000 n -0000647809 00000 n -0000276607 00000 n -0000261168 00000 n -0000260977 00000 n -0000259129 00000 n -0000261103 00000 n -0000264485 00000 n -0000264035 00000 n -0000261280 00000 n -0000264161 00000 n -0000264355 00000 n -0000264420 00000 n -0000268471 00000 n -0000268023 00000 n -0000264625 00000 n -0000268149 00000 n -0000268406 00000 n -0000272388 00000 n -0000272069 00000 n -0000268583 00000 n -0000272195 00000 n -0000276671 00000 n -0000275594 00000 n -0000272500 00000 n -0000276224 00000 n -0000275759 00000 n -0000275910 00000 n -0000276353 00000 n -0000276481 00000 n -0000276070 00000 n -0000280097 00000 n -0000279778 00000 n -0000276783 00000 n -0000279904 00000 n -0000280033 00000 n -0000647934 00000 n -0000281742 00000 n -0000281422 00000 n -0000280209 00000 n -0000281548 00000 n -0000283200 00000 n -0000283009 00000 n -0000281854 00000 n -0000283135 00000 n -0000285934 00000 n -0000285355 00000 n -0000283299 00000 n -0000285481 00000 n -0000285610 00000 n -0000285739 00000 n -0000285804 00000 n -0000285869 00000 n -0000289857 00000 n -0000289537 00000 n -0000286046 00000 n -0000289663 00000 n -0000289792 00000 n -0000295474 00000 n -0000293080 00000 n -0000289969 00000 n -0000295280 00000 n -0000295409 00000 n -0000293326 00000 n -0000293488 00000 n -0000293650 00000 n -0000293811 00000 n -0000293971 00000 n -0000294142 00000 n -0000294304 00000 n -0000294466 00000 n -0000294628 00000 n -0000294791 00000 n -0000294954 00000 n -0000295117 00000 n -0000300692 00000 n -0000298631 00000 n -0000295599 00000 n -0000300627 00000 n -0000298868 00000 n -0000299030 00000 n -0000299192 00000 n -0000299353 00000 n -0000299514 00000 n -0000299676 00000 n -0000299839 00000 n -0000299993 00000 n -0000300147 00000 n -0000300309 00000 n -0000300469 00000 n -0000648059 00000 n -0000306003 00000 n -0000304030 00000 n -0000300817 00000 n -0000305681 00000 n -0000304249 00000 n -0000304411 00000 n -0000304573 00000 n -0000304734 00000 n -0000304896 00000 n -0000305050 00000 n -0000305211 00000 n -0000305365 00000 n -0000305527 00000 n -0000305875 00000 n -0000305939 00000 n -0000310358 00000 n -0000309291 00000 n -0000306128 00000 n -0000309779 00000 n -0000309907 00000 n -0000310164 00000 n -0000309447 00000 n -0000309617 00000 n -0000310229 00000 n -0000310294 00000 n -0000313806 00000 n -0000313485 00000 n -0000310483 00000 n -0000313611 00000 n -0000313676 00000 n -0000313741 00000 n -0000317732 00000 n -0000317282 00000 n -0000313905 00000 n -0000317408 00000 n -0000317473 00000 n -0000317538 00000 n -0000317667 00000 n -0000321548 00000 n -0000320840 00000 n -0000317857 00000 n -0000320966 00000 n -0000321031 00000 n -0000321096 00000 n -0000321161 00000 n -0000321226 00000 n -0000321354 00000 n -0000321418 00000 n -0000321483 00000 n -0000325389 00000 n -0000324552 00000 n -0000321673 00000 n -0000324678 00000 n -0000324807 00000 n -0000324872 00000 n -0000324937 00000 n -0000325066 00000 n -0000325131 00000 n -0000325196 00000 n -0000325324 00000 n -0000648184 00000 n -0000328630 00000 n -0000327924 00000 n -0000325568 00000 n -0000328050 00000 n -0000328179 00000 n -0000328308 00000 n -0000328437 00000 n -0000328566 00000 n -0000332970 00000 n -0000332521 00000 n -0000328823 00000 n -0000332647 00000 n -0000332712 00000 n -0000332777 00000 n -0000333436 00000 n -0000333245 00000 n -0000333095 00000 n -0000333371 00000 n -0000335376 00000 n -0000334927 00000 n -0000333478 00000 n -0000335053 00000 n -0000335182 00000 n -0000335311 00000 n -0000339856 00000 n -0000338912 00000 n -0000335488 00000 n -0000339275 00000 n -0000465291 00000 n -0000456078 00000 n -0000465105 00000 n -0000339059 00000 n -0000339404 00000 n -0000339533 00000 n -0000339662 00000 n -0000340894 00000 n -0000340703 00000 n -0000340089 00000 n -0000340829 00000 n -0000648309 00000 n -0000341321 00000 n -0000341130 00000 n -0000340980 00000 n -0000341256 00000 n -0000344634 00000 n -0000343408 00000 n -0000341363 00000 n -0000343925 00000 n -0000344054 00000 n -0000344183 00000 n -0000344312 00000 n -0000344441 00000 n -0000344570 00000 n -0000343564 00000 n -0000343736 00000 n -0000345088 00000 n -0000344897 00000 n -0000344747 00000 n -0000345023 00000 n -0000348332 00000 n -0000347754 00000 n -0000345130 00000 n -0000347880 00000 n -0000348009 00000 n -0000348138 00000 n -0000348267 00000 n -0000352611 00000 n -0000351392 00000 n -0000348418 00000 n -0000351903 00000 n -0000352032 00000 n -0000352290 00000 n -0000351548 00000 n -0000351727 00000 n -0000352483 00000 n -0000352547 00000 n -0000359497 00000 n -0000355669 00000 n -0000352763 00000 n -0000355795 00000 n -0000355860 00000 n -0000355925 00000 n -0000355990 00000 n -0000356055 00000 n -0000356120 00000 n -0000356185 00000 n -0000356250 00000 n -0000356315 00000 n -0000356380 00000 n -0000356510 00000 n -0000356575 00000 n -0000356640 00000 n -0000356705 00000 n -0000356770 00000 n -0000356835 00000 n -0000356900 00000 n -0000356965 00000 n -0000357030 00000 n -0000357095 00000 n -0000357160 00000 n -0000357225 00000 n -0000357290 00000 n -0000357355 00000 n -0000357420 00000 n -0000357485 00000 n -0000357550 00000 n -0000357615 00000 n -0000357680 00000 n -0000357745 00000 n -0000357810 00000 n -0000357875 00000 n -0000357940 00000 n -0000358005 00000 n -0000358069 00000 n -0000358134 00000 n -0000358199 00000 n -0000358264 00000 n -0000358329 00000 n -0000358394 00000 n -0000358459 00000 n -0000358524 00000 n -0000358589 00000 n -0000358654 00000 n -0000358719 00000 n -0000358784 00000 n -0000358849 00000 n -0000358914 00000 n -0000358979 00000 n -0000359044 00000 n -0000359109 00000 n -0000359174 00000 n -0000359239 00000 n -0000359304 00000 n -0000359369 00000 n -0000359433 00000 n -0000648434 00000 n -0000366143 00000 n -0000362579 00000 n -0000359609 00000 n -0000362705 00000 n -0000362770 00000 n -0000362835 00000 n -0000362900 00000 n -0000362965 00000 n -0000363030 00000 n -0000363095 00000 n -0000363160 00000 n -0000363225 00000 n -0000363290 00000 n -0000363355 00000 n -0000363420 00000 n -0000363484 00000 n -0000363549 00000 n -0000363614 00000 n -0000363679 00000 n -0000363744 00000 n -0000363809 00000 n -0000363874 00000 n -0000363939 00000 n -0000364004 00000 n -0000364069 00000 n -0000364134 00000 n -0000364199 00000 n -0000364263 00000 n -0000364328 00000 n -0000364393 00000 n -0000364458 00000 n -0000364523 00000 n -0000364588 00000 n -0000364653 00000 n -0000364718 00000 n -0000364783 00000 n -0000364848 00000 n -0000364913 00000 n -0000364978 00000 n -0000365043 00000 n -0000365108 00000 n -0000365173 00000 n -0000365238 00000 n -0000365302 00000 n -0000365366 00000 n -0000365430 00000 n -0000365495 00000 n -0000365560 00000 n -0000365625 00000 n -0000365690 00000 n -0000365755 00000 n -0000365820 00000 n -0000365885 00000 n -0000365950 00000 n -0000366015 00000 n -0000366079 00000 n -0000372318 00000 n -0000368880 00000 n -0000366255 00000 n -0000369006 00000 n -0000369071 00000 n -0000369136 00000 n -0000369201 00000 n -0000369266 00000 n -0000369331 00000 n -0000369396 00000 n -0000369461 00000 n -0000369526 00000 n -0000369591 00000 n -0000369656 00000 n -0000369721 00000 n -0000369786 00000 n -0000369851 00000 n -0000369916 00000 n -0000369981 00000 n -0000370046 00000 n -0000370111 00000 n -0000370176 00000 n -0000370241 00000 n -0000370306 00000 n -0000370371 00000 n -0000370436 00000 n -0000370501 00000 n -0000370566 00000 n -0000370631 00000 n -0000370696 00000 n -0000370761 00000 n -0000370826 00000 n -0000370891 00000 n -0000370956 00000 n -0000371021 00000 n -0000371086 00000 n -0000371151 00000 n -0000371215 00000 n -0000371280 00000 n -0000371345 00000 n -0000371410 00000 n -0000371475 00000 n -0000371540 00000 n -0000371605 00000 n -0000371670 00000 n -0000371735 00000 n -0000371800 00000 n -0000371865 00000 n -0000371930 00000 n -0000371995 00000 n -0000372060 00000 n -0000372125 00000 n -0000372190 00000 n -0000372254 00000 n -0000376897 00000 n -0000374633 00000 n -0000372430 00000 n -0000374759 00000 n -0000374824 00000 n -0000374889 00000 n -0000374954 00000 n -0000375019 00000 n -0000375084 00000 n -0000375149 00000 n -0000375214 00000 n -0000375279 00000 n -0000375344 00000 n -0000375409 00000 n -0000375474 00000 n -0000375539 00000 n -0000375604 00000 n -0000375666 00000 n -0000375730 00000 n -0000375795 00000 n -0000375859 00000 n -0000375924 00000 n -0000375989 00000 n -0000376054 00000 n -0000376119 00000 n -0000376184 00000 n -0000376249 00000 n -0000376314 00000 n -0000376443 00000 n -0000376572 00000 n -0000376637 00000 n -0000376702 00000 n -0000376767 00000 n -0000376832 00000 n -0000379664 00000 n -0000379020 00000 n -0000377022 00000 n -0000379146 00000 n -0000379275 00000 n -0000379404 00000 n -0000379469 00000 n -0000379534 00000 n -0000379599 00000 n -0000384149 00000 n -0000383828 00000 n -0000379776 00000 n -0000383954 00000 n -0000384019 00000 n -0000384084 00000 n -0000387400 00000 n -0000387144 00000 n -0000384301 00000 n -0000387270 00000 n -0000387335 00000 n -0000648559 00000 n -0000390650 00000 n -0000390459 00000 n -0000387538 00000 n -0000390585 00000 n -0000394430 00000 n -0000394174 00000 n -0000390775 00000 n -0000394300 00000 n -0000394365 00000 n -0000397604 00000 n -0000396829 00000 n -0000394568 00000 n -0000396955 00000 n -0000397020 00000 n -0000397085 00000 n -0000397150 00000 n -0000397215 00000 n -0000397344 00000 n -0000397409 00000 n -0000397474 00000 n -0000397539 00000 n -0000402075 00000 n -0000401884 00000 n -0000397742 00000 n -0000402010 00000 n -0000405203 00000 n -0000404430 00000 n -0000402213 00000 n -0000404556 00000 n -0000404621 00000 n -0000404686 00000 n -0000404750 00000 n -0000404879 00000 n -0000404944 00000 n -0000405008 00000 n -0000405073 00000 n -0000405138 00000 n -0000408593 00000 n -0000408337 00000 n -0000405341 00000 n -0000408463 00000 n -0000408528 00000 n -0000648684 00000 n -0000411453 00000 n -0000410743 00000 n -0000408731 00000 n -0000410869 00000 n -0000410934 00000 n -0000410999 00000 n -0000411064 00000 n -0000411193 00000 n -0000411258 00000 n -0000411323 00000 n -0000411388 00000 n -0000415132 00000 n -0000414876 00000 n -0000411604 00000 n -0000415002 00000 n -0000415067 00000 n -0000418569 00000 n -0000418313 00000 n -0000415257 00000 n -0000418439 00000 n -0000418504 00000 n -0000421040 00000 n -0000420332 00000 n -0000418707 00000 n -0000420458 00000 n -0000420523 00000 n -0000420588 00000 n -0000420715 00000 n -0000420780 00000 n -0000420845 00000 n -0000420910 00000 n -0000420975 00000 n -0000423926 00000 n -0000423152 00000 n -0000421191 00000 n -0000423278 00000 n -0000423343 00000 n -0000423408 00000 n -0000423473 00000 n -0000423601 00000 n -0000423666 00000 n -0000423731 00000 n -0000423796 00000 n -0000423861 00000 n -0000427282 00000 n -0000427091 00000 n -0000424064 00000 n -0000427217 00000 n -0000648809 00000 n -0000430235 00000 n -0000429525 00000 n -0000427407 00000 n -0000429651 00000 n -0000429716 00000 n -0000429781 00000 n -0000429846 00000 n -0000429975 00000 n -0000430040 00000 n -0000430105 00000 n -0000430170 00000 n -0000433534 00000 n -0000433278 00000 n -0000430386 00000 n -0000433404 00000 n -0000433469 00000 n -0000436418 00000 n -0000436034 00000 n -0000433727 00000 n -0000436160 00000 n -0000436225 00000 n -0000436290 00000 n -0000436354 00000 n -0000439896 00000 n -0000439186 00000 n -0000436650 00000 n -0000439312 00000 n -0000439377 00000 n -0000439442 00000 n -0000439571 00000 n -0000439636 00000 n -0000439701 00000 n -0000439766 00000 n -0000439831 00000 n -0000443031 00000 n -0000442322 00000 n -0000440047 00000 n -0000442448 00000 n -0000442513 00000 n -0000442578 00000 n -0000442642 00000 n -0000442771 00000 n -0000442836 00000 n -0000442901 00000 n -0000442966 00000 n -0000446214 00000 n -0000445958 00000 n -0000443195 00000 n -0000446084 00000 n -0000446149 00000 n -0000648934 00000 n -0000448960 00000 n -0000448317 00000 n -0000446339 00000 n -0000448443 00000 n -0000448508 00000 n -0000448573 00000 n -0000448638 00000 n -0000448766 00000 n -0000448831 00000 n -0000448896 00000 n -0000452693 00000 n -0000452373 00000 n -0000449111 00000 n -0000452499 00000 n -0000452564 00000 n -0000452629 00000 n -0000454018 00000 n -0000453632 00000 n -0000452818 00000 n -0000453758 00000 n -0000453823 00000 n -0000453888 00000 n -0000453953 00000 n -0000454189 00000 n -0000465533 00000 n -0000467856 00000 n -0000467825 00000 n -0000477345 00000 n -0000487401 00000 n -0000497639 00000 n -0000509844 00000 n -0000527977 00000 n -0000550065 00000 n -0000571075 00000 n -0000588893 00000 n -0000591724 00000 n -0000591494 00000 n -0000618982 00000 n -0000646091 00000 n -0000649041 00000 n -0000649164 00000 n -0000649290 00000 n -0000649416 00000 n -0000649506 00000 n -0000649598 00000 n -0000664889 00000 n -0000682155 00000 n -0000682196 00000 n -0000682236 00000 n -0000682370 00000 n +0000227007 00000 n +0000227136 00000 n +0000231409 00000 n +0000231218 00000 n +0000227496 00000 n +0000231344 00000 n +0000234348 00000 n +0000234157 00000 n +0000231521 00000 n +0000234283 00000 n +0000648263 00000 n +0000238710 00000 n +0000237775 00000 n +0000234501 00000 n +0000238259 00000 n +0000238388 00000 n +0000238517 00000 n +0000237931 00000 n +0000238645 00000 n +0000238104 00000 n +0000242507 00000 n +0000242058 00000 n +0000238822 00000 n +0000242184 00000 n +0000242313 00000 n +0000242442 00000 n +0000246540 00000 n +0000245874 00000 n +0000242660 00000 n +0000246347 00000 n +0000246476 00000 n +0000246030 00000 n +0000246192 00000 n +0000249685 00000 n +0000249047 00000 n +0000246706 00000 n +0000249362 00000 n +0000249194 00000 n +0000249555 00000 n +0000249620 00000 n +0000253546 00000 n +0000253044 00000 n +0000249810 00000 n +0000253353 00000 n +0000253481 00000 n +0000253191 00000 n +0000258361 00000 n +0000257681 00000 n +0000253725 00000 n +0000258168 00000 n +0000257837 00000 n +0000468188 00000 n +0000466190 00000 n +0000468023 00000 n +0000258297 00000 n +0000257999 00000 n +0000648388 00000 n +0000333873 00000 n +0000280022 00000 n +0000260888 00000 n +0000260568 00000 n +0000258487 00000 n +0000260694 00000 n +0000260823 00000 n +0000264220 00000 n +0000263770 00000 n +0000261000 00000 n +0000263896 00000 n +0000264090 00000 n +0000264155 00000 n +0000268128 00000 n +0000267809 00000 n +0000264373 00000 n +0000267935 00000 n +0000271680 00000 n +0000271232 00000 n +0000268227 00000 n +0000271358 00000 n +0000271487 00000 n +0000276522 00000 n +0000275571 00000 n +0000271792 00000 n +0000276199 00000 n +0000275736 00000 n +0000275887 00000 n +0000276328 00000 n +0000276457 00000 n +0000276046 00000 n +0000280216 00000 n +0000279767 00000 n +0000276634 00000 n +0000279893 00000 n +0000280151 00000 n +0000648513 00000 n +0000281920 00000 n +0000281600 00000 n +0000280328 00000 n +0000281726 00000 n +0000283415 00000 n +0000283224 00000 n +0000282032 00000 n +0000283350 00000 n +0000285248 00000 n +0000284669 00000 n +0000283514 00000 n +0000284795 00000 n +0000284924 00000 n +0000285053 00000 n +0000285118 00000 n +0000285183 00000 n +0000289283 00000 n +0000289092 00000 n +0000285360 00000 n +0000289218 00000 n +0000294558 00000 n +0000292553 00000 n +0000289395 00000 n +0000294236 00000 n +0000294365 00000 n +0000294493 00000 n +0000292772 00000 n +0000292934 00000 n +0000293096 00000 n +0000293258 00000 n +0000293419 00000 n +0000293590 00000 n +0000293750 00000 n +0000293913 00000 n +0000294075 00000 n +0000299681 00000 n +0000297777 00000 n +0000294670 00000 n +0000299616 00000 n +0000298005 00000 n +0000298167 00000 n +0000298329 00000 n +0000298492 00000 n +0000298655 00000 n +0000298817 00000 n +0000298979 00000 n +0000299141 00000 n +0000299303 00000 n +0000299464 00000 n +0000648638 00000 n +0000305426 00000 n +0000302905 00000 n +0000299806 00000 n +0000305232 00000 n +0000303160 00000 n +0000303313 00000 n +0000303475 00000 n +0000303637 00000 n +0000303799 00000 n +0000303961 00000 n +0000304123 00000 n +0000304284 00000 n +0000304446 00000 n +0000304600 00000 n +0000304761 00000 n +0000304916 00000 n +0000305078 00000 n +0000309115 00000 n +0000308537 00000 n +0000305538 00000 n +0000308663 00000 n +0000308728 00000 n +0000308793 00000 n +0000308922 00000 n +0000313512 00000 n +0000312571 00000 n +0000309240 00000 n +0000313058 00000 n +0000313187 00000 n +0000312727 00000 n +0000312897 00000 n +0000313252 00000 n +0000313317 00000 n +0000313382 00000 n +0000313447 00000 n +0000317077 00000 n +0000316756 00000 n +0000313624 00000 n +0000316882 00000 n +0000316947 00000 n +0000317012 00000 n +0000320940 00000 n +0000320231 00000 n +0000317189 00000 n +0000320357 00000 n +0000320486 00000 n +0000320551 00000 n +0000320616 00000 n +0000320681 00000 n +0000320746 00000 n +0000320875 00000 n +0000324965 00000 n +0000324128 00000 n +0000321052 00000 n +0000324254 00000 n +0000324319 00000 n +0000324384 00000 n +0000324513 00000 n +0000324578 00000 n +0000324643 00000 n +0000324771 00000 n +0000324835 00000 n +0000324900 00000 n +0000648763 00000 n +0000327918 00000 n +0000327340 00000 n +0000325090 00000 n +0000327466 00000 n +0000327595 00000 n +0000327724 00000 n +0000327853 00000 n +0000331829 00000 n +0000331251 00000 n +0000328111 00000 n +0000331377 00000 n +0000331506 00000 n +0000331634 00000 n +0000331699 00000 n +0000331764 00000 n +0000333938 00000 n +0000333618 00000 n +0000331967 00000 n +0000333744 00000 n +0000335948 00000 n +0000335499 00000 n +0000334050 00000 n +0000335625 00000 n +0000335754 00000 n +0000335883 00000 n +0000340428 00000 n +0000339484 00000 n +0000336060 00000 n +0000339847 00000 n +0000465869 00000 n +0000456656 00000 n +0000465683 00000 n +0000339631 00000 n +0000339976 00000 n +0000340105 00000 n +0000340234 00000 n +0000341466 00000 n +0000341275 00000 n +0000340661 00000 n +0000341401 00000 n +0000648888 00000 n +0000341893 00000 n +0000341702 00000 n +0000341552 00000 n +0000341828 00000 n +0000345206 00000 n +0000343980 00000 n +0000341935 00000 n +0000344497 00000 n +0000344626 00000 n +0000344755 00000 n +0000344884 00000 n +0000345013 00000 n +0000345142 00000 n +0000344136 00000 n +0000344308 00000 n +0000345660 00000 n +0000345469 00000 n +0000345319 00000 n +0000345595 00000 n +0000348904 00000 n +0000348326 00000 n +0000345702 00000 n +0000348452 00000 n +0000348581 00000 n +0000348710 00000 n +0000348839 00000 n +0000353183 00000 n +0000351964 00000 n +0000348990 00000 n +0000352475 00000 n +0000352604 00000 n +0000352862 00000 n +0000352120 00000 n +0000352299 00000 n +0000353055 00000 n +0000353119 00000 n +0000360069 00000 n +0000356241 00000 n +0000353335 00000 n +0000356367 00000 n +0000356432 00000 n +0000356497 00000 n +0000356562 00000 n +0000356627 00000 n +0000356692 00000 n +0000356757 00000 n +0000356822 00000 n +0000356887 00000 n +0000356952 00000 n +0000357082 00000 n +0000357147 00000 n +0000357212 00000 n +0000357277 00000 n +0000357342 00000 n +0000357407 00000 n +0000357472 00000 n +0000357537 00000 n +0000357602 00000 n +0000357667 00000 n +0000357732 00000 n +0000357797 00000 n +0000357862 00000 n +0000357927 00000 n +0000357992 00000 n +0000358057 00000 n +0000358122 00000 n +0000358187 00000 n +0000358252 00000 n +0000358317 00000 n +0000358382 00000 n +0000358447 00000 n +0000358512 00000 n +0000358577 00000 n +0000358641 00000 n +0000358706 00000 n +0000358771 00000 n +0000358836 00000 n +0000358901 00000 n +0000358966 00000 n +0000359031 00000 n +0000359096 00000 n +0000359161 00000 n +0000359226 00000 n +0000359291 00000 n +0000359356 00000 n +0000359421 00000 n +0000359486 00000 n +0000359551 00000 n +0000359616 00000 n +0000359681 00000 n +0000359746 00000 n +0000359811 00000 n +0000359876 00000 n +0000359941 00000 n +0000360005 00000 n +0000649013 00000 n +0000366715 00000 n +0000363151 00000 n +0000360181 00000 n +0000363277 00000 n +0000363342 00000 n +0000363407 00000 n +0000363472 00000 n +0000363537 00000 n +0000363602 00000 n +0000363667 00000 n +0000363732 00000 n +0000363797 00000 n +0000363862 00000 n +0000363927 00000 n +0000363992 00000 n +0000364056 00000 n +0000364121 00000 n +0000364186 00000 n +0000364251 00000 n +0000364316 00000 n +0000364381 00000 n +0000364446 00000 n +0000364511 00000 n +0000364576 00000 n +0000364641 00000 n +0000364706 00000 n +0000364771 00000 n +0000364835 00000 n +0000364900 00000 n +0000364965 00000 n +0000365030 00000 n +0000365095 00000 n +0000365160 00000 n +0000365225 00000 n +0000365290 00000 n +0000365355 00000 n +0000365420 00000 n +0000365485 00000 n +0000365550 00000 n +0000365615 00000 n +0000365680 00000 n +0000365745 00000 n +0000365810 00000 n +0000365874 00000 n +0000365938 00000 n +0000366002 00000 n +0000366067 00000 n +0000366132 00000 n +0000366197 00000 n +0000366262 00000 n +0000366327 00000 n +0000366392 00000 n +0000366457 00000 n +0000366522 00000 n +0000366587 00000 n +0000366651 00000 n +0000372890 00000 n +0000369452 00000 n +0000366827 00000 n +0000369578 00000 n +0000369643 00000 n +0000369708 00000 n +0000369773 00000 n +0000369838 00000 n +0000369903 00000 n +0000369968 00000 n +0000370033 00000 n +0000370098 00000 n +0000370163 00000 n +0000370228 00000 n +0000370293 00000 n +0000370358 00000 n +0000370423 00000 n +0000370488 00000 n +0000370553 00000 n +0000370618 00000 n +0000370683 00000 n +0000370748 00000 n +0000370813 00000 n +0000370878 00000 n +0000370943 00000 n +0000371008 00000 n +0000371073 00000 n +0000371138 00000 n +0000371203 00000 n +0000371268 00000 n +0000371333 00000 n +0000371398 00000 n +0000371463 00000 n +0000371528 00000 n +0000371593 00000 n +0000371658 00000 n +0000371723 00000 n +0000371787 00000 n +0000371852 00000 n +0000371917 00000 n +0000371982 00000 n +0000372047 00000 n +0000372112 00000 n +0000372177 00000 n +0000372242 00000 n +0000372307 00000 n +0000372372 00000 n +0000372437 00000 n +0000372502 00000 n +0000372567 00000 n +0000372632 00000 n +0000372697 00000 n +0000372762 00000 n +0000372826 00000 n +0000377469 00000 n +0000375205 00000 n +0000373002 00000 n +0000375331 00000 n +0000375396 00000 n +0000375461 00000 n +0000375526 00000 n +0000375591 00000 n +0000375656 00000 n +0000375721 00000 n +0000375786 00000 n +0000375851 00000 n +0000375916 00000 n +0000375981 00000 n +0000376046 00000 n +0000376111 00000 n +0000376176 00000 n +0000376238 00000 n +0000376302 00000 n +0000376367 00000 n +0000376431 00000 n +0000376496 00000 n +0000376561 00000 n +0000376626 00000 n +0000376691 00000 n +0000376756 00000 n +0000376821 00000 n +0000376886 00000 n +0000377015 00000 n +0000377144 00000 n +0000377209 00000 n +0000377274 00000 n +0000377339 00000 n +0000377404 00000 n +0000380236 00000 n +0000379592 00000 n +0000377594 00000 n +0000379718 00000 n +0000379847 00000 n +0000379976 00000 n +0000380041 00000 n +0000380106 00000 n +0000380171 00000 n +0000384721 00000 n +0000384400 00000 n +0000380348 00000 n +0000384526 00000 n +0000384591 00000 n +0000384656 00000 n +0000387972 00000 n +0000387716 00000 n +0000384873 00000 n +0000387842 00000 n +0000387907 00000 n +0000649138 00000 n +0000391222 00000 n +0000391031 00000 n +0000388110 00000 n +0000391157 00000 n +0000395002 00000 n +0000394746 00000 n +0000391347 00000 n +0000394872 00000 n +0000394937 00000 n +0000398176 00000 n +0000397401 00000 n +0000395140 00000 n +0000397527 00000 n +0000397592 00000 n +0000397657 00000 n +0000397722 00000 n +0000397787 00000 n +0000397916 00000 n +0000397981 00000 n +0000398046 00000 n +0000398111 00000 n +0000402648 00000 n +0000402457 00000 n +0000398314 00000 n +0000402583 00000 n +0000405776 00000 n +0000405003 00000 n +0000402786 00000 n +0000405129 00000 n +0000405194 00000 n +0000405259 00000 n +0000405323 00000 n +0000405452 00000 n +0000405517 00000 n +0000405581 00000 n +0000405646 00000 n +0000405711 00000 n +0000409166 00000 n +0000408910 00000 n +0000405914 00000 n +0000409036 00000 n +0000409101 00000 n +0000649263 00000 n +0000412026 00000 n +0000411316 00000 n +0000409304 00000 n +0000411442 00000 n +0000411507 00000 n +0000411572 00000 n +0000411637 00000 n +0000411766 00000 n +0000411831 00000 n +0000411896 00000 n +0000411961 00000 n +0000415705 00000 n +0000415449 00000 n +0000412177 00000 n +0000415575 00000 n +0000415640 00000 n +0000419142 00000 n +0000418886 00000 n +0000415830 00000 n +0000419012 00000 n +0000419077 00000 n +0000421613 00000 n +0000420905 00000 n +0000419280 00000 n +0000421031 00000 n +0000421096 00000 n +0000421161 00000 n +0000421288 00000 n +0000421353 00000 n +0000421418 00000 n +0000421483 00000 n +0000421548 00000 n +0000424499 00000 n +0000423725 00000 n +0000421764 00000 n +0000423851 00000 n +0000423916 00000 n +0000423981 00000 n +0000424046 00000 n +0000424174 00000 n +0000424239 00000 n +0000424304 00000 n +0000424369 00000 n +0000424434 00000 n +0000427855 00000 n +0000427664 00000 n +0000424637 00000 n +0000427790 00000 n +0000649388 00000 n +0000430808 00000 n +0000430098 00000 n +0000427980 00000 n +0000430224 00000 n +0000430289 00000 n +0000430354 00000 n +0000430419 00000 n +0000430548 00000 n +0000430613 00000 n +0000430678 00000 n +0000430743 00000 n +0000434107 00000 n +0000433851 00000 n +0000430959 00000 n +0000433977 00000 n +0000434042 00000 n +0000436991 00000 n +0000436607 00000 n +0000434300 00000 n +0000436733 00000 n +0000436798 00000 n +0000436863 00000 n +0000436927 00000 n +0000440469 00000 n +0000439759 00000 n +0000437223 00000 n +0000439885 00000 n +0000439950 00000 n +0000440015 00000 n +0000440144 00000 n +0000440209 00000 n +0000440274 00000 n +0000440339 00000 n +0000440404 00000 n +0000443609 00000 n +0000442900 00000 n +0000440620 00000 n +0000443026 00000 n +0000443091 00000 n +0000443156 00000 n +0000443220 00000 n +0000443349 00000 n +0000443414 00000 n +0000443479 00000 n +0000443544 00000 n +0000446792 00000 n +0000446536 00000 n +0000443773 00000 n +0000446662 00000 n +0000446727 00000 n +0000649513 00000 n +0000449538 00000 n +0000448895 00000 n +0000446917 00000 n +0000449021 00000 n +0000449086 00000 n +0000449151 00000 n +0000449216 00000 n +0000449344 00000 n +0000449409 00000 n +0000449474 00000 n +0000453271 00000 n +0000452951 00000 n +0000449689 00000 n +0000453077 00000 n +0000453142 00000 n +0000453207 00000 n +0000454596 00000 n +0000454210 00000 n +0000453396 00000 n +0000454336 00000 n +0000454401 00000 n +0000454466 00000 n +0000454531 00000 n +0000454767 00000 n +0000466111 00000 n +0000468435 00000 n +0000468404 00000 n +0000477923 00000 n +0000487979 00000 n +0000498217 00000 n +0000510423 00000 n +0000528556 00000 n +0000550644 00000 n +0000571654 00000 n +0000589472 00000 n +0000592303 00000 n +0000592073 00000 n +0000619561 00000 n +0000646670 00000 n +0000649620 00000 n +0000649743 00000 n +0000649869 00000 n +0000649995 00000 n +0000650085 00000 n +0000650177 00000 n +0000665468 00000 n +0000682734 00000 n +0000682775 00000 n +0000682815 00000 n +0000682949 00000 n trailer << /Size 1948 /Root 1946 0 R /Info 1947 0 R -/ID [ ] +/ID [ ] >> startxref -682634 +683207 %%EOF diff --git a/lib/dns/api b/lib/dns/api index f830d6c5c3bf..f40dfe0239bf 100644 --- a/lib/dns/api +++ b/lib/dns/api @@ -1,3 +1,3 @@ -LIBINTERFACE = 34 -LIBREVISION = 2 -LIBAGE = 2 +LIBINTERFACE = 35 +LIBREVISION = 0 +LIBAGE = 0 diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c index f3ef091e2a15..4da89ca20b2f 100644 --- a/lib/dns/dispatch.c +++ b/lib/dns/dispatch.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dispatch.c,v 1.116.18.19 2007/08/28 07:20:04 tbox Exp $ */ +/* $Id: dispatch.c,v 1.116.18.19.12.1 2008/05/22 21:28:06 each Exp $ */ /*! \file */ @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -45,25 +46,22 @@ typedef ISC_LIST(dns_dispentry_t) dns_displist_t; -typedef struct dns_nsid { - isc_uint16_t nsid_state; - isc_uint16_t *nsid_vtable; - isc_uint16_t *nsid_pool; - isc_uint16_t nsid_a1, nsid_a2, nsid_a3; - isc_uint16_t nsid_c1, nsid_c2, nsid_c3; - isc_uint16_t nsid_state2; - isc_boolean_t nsid_usepool; -} dns_nsid_t; - typedef struct dns_qid { unsigned int magic; unsigned int qid_nbuckets; /*%< hash table size */ unsigned int qid_increment; /*%< id increment on collision */ isc_mutex_t lock; - dns_nsid_t nsid; dns_displist_t *qid_table; /*%< the table itself */ } dns_qid_t; +/* ARC4 Random generator state */ +typedef struct arc4ctx { + isc_uint8_t i; + isc_uint8_t j; + isc_uint8_t s[256]; + int count; +} arc4ctx_t; + struct dns_dispatchmgr { /* Unlocked. */ unsigned int magic; @@ -76,6 +74,10 @@ struct dns_dispatchmgr { unsigned int state; ISC_LIST(dns_dispatch_t) list; + /* Locked by arc4_lock. */ + isc_mutex_t arc4_lock; + arc4ctx_t arc4ctx; /*%< ARC4 context for QID */ + /* locked by buffer lock */ dns_qid_t *qid; isc_mutex_t buffer_lock; @@ -102,6 +104,7 @@ struct dns_dispentry { unsigned int magic; dns_dispatch_t *disp; dns_messageid_t id; + in_port_t port; unsigned int bucket; isc_sockaddr_t host; isc_task_t *task; @@ -121,6 +124,7 @@ struct dns_dispatch { isc_task_t *task; /*%< internal task */ isc_socket_t *socket; /*%< isc socket attached to */ isc_sockaddr_t local; /*%< local address */ + in_port_t localport; /*%< local UDP port */ unsigned int maxrequests; /*%< max requests */ isc_event_t *ctlevent; @@ -163,14 +167,14 @@ struct dns_dispatch { * Statics. */ static dns_dispentry_t *bucket_search(dns_qid_t *, isc_sockaddr_t *, - dns_messageid_t, unsigned int); + dns_messageid_t, in_port_t, unsigned int); static isc_boolean_t destroy_disp_ok(dns_dispatch_t *); static void destroy_disp(isc_task_t *task, isc_event_t *event); static void udp_recv(isc_task_t *, isc_event_t *); static void tcp_recv(isc_task_t *, isc_event_t *); static void startrecv(dns_dispatch_t *); -static dns_messageid_t dns_randomid(dns_nsid_t *); -static isc_uint32_t dns_hash(dns_qid_t *, isc_sockaddr_t *, dns_messageid_t); +static isc_uint32_t dns_hash(dns_qid_t *, isc_sockaddr_t *, dns_messageid_t, + in_port_t); static void free_buffer(dns_dispatch_t *disp, void *buf, unsigned int len); static void *allocate_udp_buffer(dns_dispatch_t *disp); static inline void free_event(dns_dispatch_t *disp, dns_dispatchevent_t *ev); @@ -190,12 +194,8 @@ static isc_result_t dispatch_createudp(dns_dispatchmgr_t *mgr, static isc_boolean_t destroy_mgr_ok(dns_dispatchmgr_t *mgr); static void destroy_mgr(dns_dispatchmgr_t **mgrp); static isc_result_t qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets, - unsigned int increment, isc_boolean_t usepool, - dns_qid_t **qidp); + unsigned int increment, dns_qid_t **qidp); static void qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp); -static isc_uint16_t nsid_next(dns_nsid_t *nsid); -static isc_result_t nsid_init(isc_mem_t *mctx, dns_nsid_t *nsid, isc_boolean_t usepool); -static void nsid_destroy(isc_mem_t *mctx, dns_nsid_t *nsid); #define LVL(x) ISC_LOG_DEBUG(x) @@ -276,26 +276,152 @@ request_log(dns_dispatch_t *disp, dns_dispentry_t *resp, } /* - * Return an unpredictable message ID. + * ARC4 random number generator obtained from OpenBSD */ -static dns_messageid_t -dns_randomid(dns_nsid_t *nsid) { - isc_uint32_t id; +static void +dispatch_arc4init(arc4ctx_t *actx) { + int n; + for (n = 0; n < 256; n++) + actx->s[n] = n; + actx->i = 0; + actx->j = 0; + actx->count = 0; +} - id = nsid_next(nsid); +static void +dispatch_arc4addrandom(arc4ctx_t *actx, unsigned char *dat, int datlen) { + int n; + isc_uint8_t si; - return ((dns_messageid_t)id); + actx->i--; + for (n = 0; n < 256; n++) { + actx->i = (actx->i + 1); + si = actx->s[actx->i]; + actx->j = (actx->j + si + dat[n % datlen]); + actx->s[actx->i] = actx->s[actx->j]; + actx->s[actx->j] = si; + } + actx->j = actx->i; +} + +static inline isc_uint8_t +dispatch_arc4get8(arc4ctx_t *actx) { + isc_uint8_t si, sj; + + actx->i = (actx->i + 1); + si = actx->s[actx->i]; + actx->j = (actx->j + si); + sj = actx->s[actx->j]; + actx->s[actx->i] = sj; + actx->s[actx->j] = si; + + return (actx->s[(si + sj) & 0xff]); +} + +static inline isc_uint16_t +dispatch_arc4get16(arc4ctx_t *actx) { + isc_uint16_t val; + + val = dispatch_arc4get8(actx) << 8; + val |= dispatch_arc4get8(actx); + + return (val); +} + +static void +dispatch_arc4stir(dns_dispatchmgr_t *mgr) { + int i; + union { + unsigned char rnd[128]; + isc_uint32_t rnd32[32]; + } rnd; + isc_result_t result; + + if (mgr->entropy != NULL) { + /* + * We accept any quality of random data to avoid blocking. + */ + result = isc_entropy_getdata(mgr->entropy, rnd.rnd, + sizeof(rnd), NULL, 0); + RUNTIME_CHECK(result == ISC_R_SUCCESS); + } else { + for (i = 0; i < 32; i++) + isc_random_get(&rnd.rnd32[i]); + } + dispatch_arc4addrandom(&mgr->arc4ctx, rnd.rnd, sizeof(rnd.rnd)); + + /* + * Discard early keystream, as per recommendations in: + * http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps + */ + for (i = 0; i < 256; i++) + (void)dispatch_arc4get8(&mgr->arc4ctx); + + /* + * Derived from OpenBSD's implementation. The rationale is not clear, + * but should be conservative enough in safety, and reasonably large + * for efficiency. + */ + mgr->arc4ctx.count = 1600000; +} + +static isc_uint16_t +dispatch_arc4random(dns_dispatchmgr_t *mgr) { + isc_uint16_t result; + + LOCK(&mgr->arc4_lock); + mgr->arc4ctx.count -= sizeof(isc_uint16_t); + if (mgr->arc4ctx.count <= 0) + dispatch_arc4stir(mgr); + result = dispatch_arc4get16(&mgr->arc4ctx); + UNLOCK(&mgr->arc4_lock); + return (result); +} + +static isc_uint16_t +dispatch_arc4uniformrandom(dns_dispatchmgr_t *mgr, isc_uint16_t upper_bound) { + isc_uint16_t min, r; + /* The caller must hold the manager lock. */ + + if (upper_bound < 2) + return (0); + + /* + * Ensure the range of random numbers [min, 0xffff] be a multiple of + * upper_bound and contain at least a half of the 16 bit range. + */ + + if (upper_bound > 0x8000) + min = 1 + ~upper_bound; /* 0x8000 - upper_bound */ + else + min = (isc_uint16_t)(0x10000 % (isc_uint32_t)upper_bound); + + /* + * This could theoretically loop forever but each retry has + * p > 0.5 (worst case, usually far better) of selecting a + * number inside the range we need, so it should rarely need + * to re-roll. + */ + for (;;) { + r = dispatch_arc4random(mgr); + if (r >= min) + break; + } + + return (r % upper_bound); } /* * Return a hash of the destination and message id. */ static isc_uint32_t -dns_hash(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id) { +dns_hash(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id, + in_port_t port) +{ unsigned int ret; ret = isc_sockaddr_hash(dest, ISC_TRUE); - ret ^= id; + ret ^= (id << 16) | port; ret %= qid->qid_nbuckets; INSIST(ret < qid->qid_nbuckets); @@ -412,7 +538,7 @@ destroy_disp(isc_task_t *task, isc_event_t *event) { */ static dns_dispentry_t * bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id, - unsigned int bucket) + in_port_t port, unsigned int bucket) { dns_dispentry_t *res; @@ -421,8 +547,10 @@ bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id, res = ISC_LIST_HEAD(qid->qid_table[bucket]); while (res != NULL) { - if ((res->id == id) && isc_sockaddr_equal(dest, &res->host)) + if ((res->id == id) && isc_sockaddr_equal(dest, &res->host) && + res->port == port) { return (res); + } res = ISC_LIST_NEXT(res, link); } @@ -624,13 +752,10 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { goto restart; } - dns_dispatch_hash(&ev->timestamp, sizeof(&ev->timestamp)); - dns_dispatch_hash(ev->region.base, ev->region.length); - /* response */ - bucket = dns_hash(qid, &ev->address, id); + bucket = dns_hash(qid, &ev->address, id, disp->localport); LOCK(&qid->lock); - resp = bucket_search(qid, &ev->address, id, bucket); + resp = bucket_search(qid, &ev->address, id, disp->localport, bucket); dispatch_log(disp, LVL(90), "search for response in bucket %d: %s", bucket, (resp == NULL ? "not found" : "found")); @@ -861,14 +986,13 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) { goto restart; } - dns_dispatch_hash(tcpmsg->buffer.base, tcpmsg->buffer.length); - /* * Response. */ - bucket = dns_hash(qid, &tcpmsg->address, id); + bucket = dns_hash(qid, &tcpmsg->address, id, disp->localport); LOCK(&qid->lock); - resp = bucket_search(qid, &tcpmsg->address, id, bucket); + resp = bucket_search(qid, &tcpmsg->address, id, disp->localport, + bucket); dispatch_log(disp, LVL(90), "search for response in bucket %d: %s", bucket, (resp == NULL ? "not found" : "found")); @@ -1020,6 +1144,8 @@ destroy_mgr(dns_dispatchmgr_t **mgrp) { DESTROYLOCK(&mgr->lock); mgr->state = 0; + DESTROYLOCK(&mgr->arc4_lock); + isc_mempool_destroy(&mgr->epool); isc_mempool_destroy(&mgr->rpool); isc_mempool_destroy(&mgr->dpool); @@ -1098,10 +1224,14 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy, if (result != ISC_R_SUCCESS) goto deallocate; - result = isc_mutex_init(&mgr->buffer_lock); + result = isc_mutex_init(&mgr->arc4_lock); if (result != ISC_R_SUCCESS) goto kill_lock; + result = isc_mutex_init(&mgr->buffer_lock); + if (result != ISC_R_SUCCESS) + goto kill_arc4_lock; + result = isc_mutex_init(&mgr->pool_lock); if (result != ISC_R_SUCCESS) goto kill_buffer_lock; @@ -1152,6 +1282,8 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy, if (entropy != NULL) isc_entropy_attach(entropy, &mgr->entropy); + dispatch_arc4init(&mgr->arc4ctx); + *mgrp = mgr; return (ISC_R_SUCCESS); @@ -1163,6 +1295,8 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy, DESTROYLOCK(&mgr->pool_lock); kill_buffer_lock: DESTROYLOCK(&mgr->buffer_lock); + kill_arc4_lock: + DESTROYLOCK(&mgr->arc4_lock); kill_lock: DESTROYLOCK(&mgr->lock); deallocate: @@ -1250,7 +1384,7 @@ dns_dispatchmgr_setudp(dns_dispatchmgr_t *mgr, isc_mempool_setmaxalloc(mgr->bpool, maxbuffers); isc_mempool_associatelock(mgr->bpool, &mgr->pool_lock); - result = qid_allocate(mgr, buckets, increment, ISC_TRUE, &mgr->qid); + result = qid_allocate(mgr, buckets, increment, &mgr->qid); if (result != ISC_R_SUCCESS) goto cleanup; @@ -1289,20 +1423,27 @@ dns_dispatchmgr_destroy(dns_dispatchmgr_t **mgrp) { } static isc_boolean_t -blacklisted(dns_dispatchmgr_t *mgr, isc_socket_t *sock) { +blacklisted(dns_dispatchmgr_t *mgr, isc_socket_t *sock, + isc_sockaddr_t *sockaddrp) +{ isc_sockaddr_t sockaddr; isc_result_t result; + REQUIRE(sock != NULL || sockaddrp != NULL); + if (mgr->portlist == NULL) return (ISC_FALSE); - result = isc_socket_getsockname(sock, &sockaddr); - if (result != ISC_R_SUCCESS) - return (ISC_FALSE); + if (sock != NULL) { + sockaddrp = &sockaddr; + result = isc_socket_getsockname(sock, sockaddrp); + if (result != ISC_R_SUCCESS) + return (ISC_FALSE); + } if (mgr->portlist != NULL && - dns_portlist_match(mgr->portlist, isc_sockaddr_pf(&sockaddr), - isc_sockaddr_getport(&sockaddr))) + dns_portlist_match(mgr->portlist, isc_sockaddr_pf(sockaddrp), + isc_sockaddr_getport(sockaddrp))) return (ISC_TRUE); return (ISC_FALSE); } @@ -1323,7 +1464,7 @@ local_addr_match(dns_dispatch_t *disp, isc_sockaddr_t *addr) { if (disp->mgr->portlist != NULL && isc_sockaddr_getport(addr) == 0 && isc_sockaddr_getport(&disp->local) == 0 && - blacklisted(disp->mgr, disp->socket)) + blacklisted(disp->mgr, disp->socket, NULL)) return (ISC_FALSE); /* @@ -1396,7 +1537,7 @@ dispatch_find(dns_dispatchmgr_t *mgr, isc_sockaddr_t *local, static isc_result_t qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets, - unsigned int increment, isc_boolean_t usepool, dns_qid_t **qidp) + unsigned int increment, dns_qid_t **qidp) { dns_qid_t *qid; unsigned int i; @@ -1418,17 +1559,8 @@ qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets, return (ISC_R_NOMEMORY); } - result = nsid_init(mgr->mctx, &qid->nsid, usepool); - if (result != ISC_R_SUCCESS) { - isc_mem_put(mgr->mctx, qid->qid_table, - buckets * sizeof(dns_displist_t)); - isc_mem_put(mgr->mctx, qid, sizeof(*qid)); - return (ISC_R_NOMEMORY); - } - result = isc_mutex_init(&qid->lock); if (result != ISC_R_SUCCESS) { - nsid_destroy(mgr->mctx, &qid->nsid); isc_mem_put(mgr->mctx, qid->qid_table, buckets * sizeof(dns_displist_t)); isc_mem_put(mgr->mctx, qid, sizeof(*qid)); @@ -1456,7 +1588,6 @@ qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp) { *qidp = NULL; qid->magic = 0; - nsid_destroy(mctx, &qid->nsid); isc_mem_put(mctx, qid->qid_table, qid->qid_nbuckets * sizeof(dns_displist_t)); DESTROYLOCK(&qid->lock); @@ -1493,6 +1624,7 @@ dispatch_allocate(dns_dispatchmgr_t *mgr, unsigned int maxrequests, disp->refcount = 1; disp->recv_pending = 0; memset(&disp->local, 0, sizeof(disp->local)); + disp->localport = 0; disp->shutting_down = 0; disp->shutdown_out = 0; disp->connected = 0; @@ -1598,7 +1730,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock, return (result); } - result = qid_allocate(mgr, buckets, increment, ISC_FALSE, &disp->qid); + result = qid_allocate(mgr, buckets, increment, &disp->qid); if (result != ISC_R_SUCCESS) goto deallocate_dispatch; @@ -1665,7 +1797,7 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, dns_dispatch_t **dispp) { isc_result_t result; - dns_dispatch_t *disp; + dns_dispatch_t *disp = NULL; REQUIRE(VALID_DISPATCHMGR(mgr)); REQUIRE(sockmgr != NULL); @@ -1685,6 +1817,11 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, LOCK(&mgr->lock); + if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) { + REQUIRE(isc_sockaddr_getport(localaddr) == 0); + goto createudp; + } + /* * First, see if we have a dispatcher that matches. */ @@ -1713,6 +1850,7 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, return (ISC_R_SUCCESS); } + createudp: /* * Nope, create one. */ @@ -1748,7 +1886,9 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, dns_dispatch_t *disp; isc_socket_t *sock = NULL; isc_socket_t *held[DNS_DISPATCH_HELD]; - unsigned int i = 0, j = 0; + unsigned int i = 0, j = 0, k = 0; + isc_sockaddr_t localaddr_bound; + in_port_t localport = 0; /* * dispatch_allocate() checks mgr for us. @@ -1764,11 +1904,34 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, * from returning the same port to us too quickly. */ memset(held, 0, sizeof(held)); + localaddr_bound = *localaddr; getsocket: - result = create_socket(sockmgr, localaddr, &sock); + if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) { + in_port_t prt; + + /* XXX: should the range be configurable? */ + prt = 1024 + dispatch_arc4uniformrandom(mgr, 65535 - 1023); + isc_sockaddr_setport(&localaddr_bound, prt); + if (blacklisted(mgr, NULL, &localaddr_bound)) { + if (++k == 1024) + attributes &= ~DNS_DISPATCHATTR_RANDOMPORT; + goto getsocket; + } + result = create_socket(sockmgr, &localaddr_bound, &sock); + if (result == ISC_R_ADDRINUSE) { + if (++k == 1024) + attributes &= ~DNS_DISPATCHATTR_RANDOMPORT; + goto getsocket; + } + localport = prt; + } else + result = create_socket(sockmgr, localaddr, &sock); if (result != ISC_R_SUCCESS) goto deallocate_dispatch; - if (isc_sockaddr_getport(localaddr) == 0 && blacklisted(mgr, sock)) { + if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) == 0 && + isc_sockaddr_getport(localaddr) == 0 && + blacklisted(mgr, sock, NULL)) + { if (held[i] != NULL) isc_socket_detach(&held[i]); held[i++] = sock; @@ -1789,6 +1952,7 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, disp->socktype = isc_sockettype_udp; disp->socket = sock; disp->local = *localaddr; + disp->localport = localport; disp->task = NULL; result = isc_task_create(taskmgr, 0, &disp->task); @@ -1921,19 +2085,20 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, /* * Try somewhat hard to find an unique ID. */ + id = (dns_messageid_t)dispatch_arc4random(disp->mgr); qid = DNS_QID(disp); LOCK(&qid->lock); - id = dns_randomid(&qid->nsid); - bucket = dns_hash(qid, dest, id); + bucket = dns_hash(qid, dest, id, disp->localport); ok = ISC_FALSE; for (i = 0; i < 64; i++) { - if (bucket_search(qid, dest, id, bucket) == NULL) { + if (bucket_search(qid, dest, id, disp->localport, bucket) == + NULL) { ok = ISC_TRUE; break; } id += qid->qid_increment; id &= 0x0000ffff; - bucket = dns_hash(qid, dest, id); + bucket = dns_hash(qid, dest, id, disp->localport); } if (!ok) { @@ -1955,6 +2120,7 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, isc_task_attach(task, &res->task); res->disp = disp; res->id = id; + res->port = disp->localport; res->bucket = bucket; res->host = *dest; res->action = action; @@ -2266,409 +2432,3 @@ dns_dispatchmgr_dump(dns_dispatchmgr_t *mgr) { } } #endif - -/* - * Allow the user to pick one of two ID randomization algorithms. - * - * The first algorithm is an adaptation of the sequence shuffling - * algorithm discovered by Carter Bays and S. D. Durham [ACM Trans. Math. - * Software 2 (1976), 59-64], as documented as Algorithm B in Chapter - * 3.2.2 in Volume 2 of Knuth's "The Art of Computer Programming". We use - * a randomly selected linear congruential random number generator with a - * modulus of 2^16, whose increment is a randomly picked odd number, and - * whose multiplier is picked from a set which meets the following - * criteria: - * Is of the form 8*n+5, which ensures "high potency" according to - * principle iii in the summary chapter 3.6. This form also has a - * gcd(a-1,m) of 4 which is good according to principle iv. - * - * Is between 0.01 and 0.99 times the modulus as specified by - * principle iv. - * - * Passes the spectral test "with flying colors" (ut >= 1) in - * dimensions 2 through 6 as calculated by Algorithm S in Chapter - * 3.3.4 and the ratings calculated by formula 35 in section E. - * - * Of the multipliers that pass this test, pick the set that is - * best according to the theoretical bounds of the serial - * correlation test. This was calculated using a simplified - * version of Knuth's Theorem K in Chapter 3.3.3. - * - * These criteria may not be important for this use, but we might as well - * pick from the best generators since there are so many possible ones and - * we don't have that many random bits to do the picking. - * - * We use a modulus of 2^16 instead of something bigger so that we will - * tend to cycle through all the possible IDs before repeating any, - * however the shuffling will perturb this somewhat. Theoretically there - * is no minimimum interval between two uses of the same ID, but in - * practice it seems to be >64000. - * - * Our adaptatation of Algorithm B mixes the hash state which has - * captured various random events into the shuffler to perturb the - * sequence. - * - * One disadvantage of this algorithm is that if the generator parameters - * were to be guessed, it would be possible to mount a limited brute force - * attack on the ID space since the IDs are only shuffled within a limited - * range. - * - * The second algorithm uses the same random number generator to populate - * a pool of 65536 IDs. The hash state is used to pick an ID from a window - * of 4096 IDs in this pool, then the chosen ID is swapped with the ID - * at the beginning of the window and the window position is advanced. - * This means that the interval between uses of the ID will be no less - * than 65536-4096. The ID sequence in the pool will become more random - * over time. - * - * For both algorithms, two more linear congruential random number generators - * are selected. The ID from the first part of algorithm is used to seed - * the first of these generators, and its output is used to seed the second. - * The strategy is use these generators as 1 to 1 hashes to obfuscate the - * properties of the generator used in the first part of either algorithm. - * - * The first algorithm may be suitable for use in a client resolver since - * its memory requirements are fairly low and it's pretty random out of - * the box. It is somewhat succeptible to a limited brute force attack, - * so the second algorithm is probably preferable for a longer running - * program that issues a large number of queries and has time to randomize - * the pool. - */ - -#define NSID_SHUFFLE_TABLE_SIZE 100 /* Suggested by Knuth */ -/* - * Pick one of the next 4096 IDs in the pool. - * There is a tradeoff here between randomness and how often and ID is reused. - */ -#define NSID_LOOKAHEAD 4096 /* Must be a power of 2 */ -#define NSID_SHUFFLE_ONLY 1 /* algorithm 1 */ -#define NSID_USE_POOL 2 /* algorithm 2 */ -#define NSID_HASHSHIFT 3 -#define NSID_HASHROTATE(v) \ - (((v) << NSID_HASHSHIFT) | ((v) >> ((sizeof(v) * 8) - NSID_HASHSHIFT))) - -static isc_uint32_t nsid_hash_state; - -/* - * Keep a running hash of various bits of data that we'll use to - * stir the ID pool or perturb the ID generator - */ -static void -nsid_hash(void *data, size_t len) { - unsigned char *p = data; - /* - * Hash function similar to the one we use for hashing names. - * We don't fold case or toss the upper bit here, though. - * This hash doesn't do much interesting when fed binary zeros, - * so there may be a better hash function. - * This function doesn't need to be very strong since we're - * only using it to stir the pool, but it should be reasonably - * fast. - */ - /* - * We don't care about locking access to nsid_hash_state. - * In fact races make the result even more non deteministic. - */ - while (len-- > 0U) { - nsid_hash_state = NSID_HASHROTATE(nsid_hash_state); - nsid_hash_state += *p++; - } -} - -/* - * Table of good linear congruential multipliers for modulus 2^16 - * in order of increasing serial correlation bounds (so trim from - * the end). - */ -static const isc_uint16_t nsid_multiplier_table[] = { - 17565, 25013, 11733, 19877, 23989, 23997, 24997, 25421, - 26781, 27413, 35901, 35917, 35973, 36229, 38317, 38437, - 39941, 40493, 41853, 46317, 50581, 51429, 53453, 53805, - 11317, 11789, 12045, 12413, 14277, 14821, 14917, 18989, - 19821, 23005, 23533, 23573, 23693, 27549, 27709, 28461, - 29365, 35605, 37693, 37757, 38309, 41285, 45261, 47061, - 47269, 48133, 48597, 50277, 50717, 50757, 50805, 51341, - 51413, 51581, 51597, 53445, 11493, 14229, 20365, 20653, - 23485, 25541, 27429, 29421, 30173, 35445, 35653, 36789, - 36797, 37109, 37157, 37669, 38661, 39773, 40397, 41837, - 41877, 45293, 47277, 47845, 49853, 51085, 51349, 54085, - 56933, 8877, 8973, 9885, 11365, 11813, 13581, 13589, - 13613, 14109, 14317, 15765, 15789, 16925, 17069, 17205, - 17621, 17941, 19077, 19381, 20245, 22845, 23733, 24869, - 25453, 27213, 28381, 28965, 29245, 29997, 30733, 30901, - 34877, 35485, 35613, 36133, 36661, 36917, 38597, 40285, - 40693, 41413, 41541, 41637, 42053, 42349, 45245, 45469, - 46493, 48205, 48613, 50861, 51861, 52877, 53933, 54397, - 55669, 56453, 56965, 58021, 7757, 7781, 8333, 9661, - 12229, 14373, 14453, 17549, 18141, 19085, 20773, 23701, - 24205, 24333, 25261, 25317, 27181, 30117, 30477, 34757, - 34885, 35565, 35885, 36541, 37957, 39733, 39813, 41157, - 41893, 42317, 46621, 48117, 48181, 49525, 55261, 55389, - 56845, 7045, 7749, 7965, 8469, 9133, 9549, 9789, - 10173, 11181, 11285, 12253, 13453, 13533, 13757, 14477, - 15053, 16901, 17213, 17269, 17525, 17629, 18605, 19013, - 19829, 19933, 20069, 20093, 23261, 23333, 24949, 25309, - 27613, 28453, 28709, 29301, 29541, 34165, 34413, 37301, - 37773, 38045, 38405, 41077, 41781, 41925, 42717, 44437, - 44525, 44613, 45933, 45941, 47077, 50077, 50893, 52117, - 5293, 55069, 55989, 58125, 59205, 6869, 14685, 15453, - 16821, 17045, 17613, 18437, 21029, 22773, 22909, 25445, - 25757, 26541, 30709, 30909, 31093, 31149, 37069, 37725, - 37925, 38949, 39637, 39701, 40765, 40861, 42965, 44813, - 45077, 45733, 47045, 50093, 52861, 52957, 54181, 56325, - 56365, 56381, 56877, 57013, 5741, 58101, 58669, 8613, - 10045, 10261, 10653, 10733, 11461, 12261, 14069, 15877, - 17757, 21165, 23885, 24701, 26429, 26645, 27925, 28765, - 29197, 30189, 31293, 39781, 39909, 40365, 41229, 41453, - 41653, 42165, 42365, 47421, 48029, 48085, 52773, 5573, - 57037, 57637, 58341, 58357, 58901, 6357, 7789, 9093, - 10125, 10709, 10765, 11957, 12469, 13437, 13509, 14773, - 15437, 15773, 17813, 18829, 19565, 20237, 23461, 23685, - 23725, 23941, 24877, 25461, 26405, 29509, 30285, 35181, - 37229, 37893, 38565, 40293, 44189, 44581, 45701, 47381, - 47589, 48557, 4941, 51069, 5165, 52797, 53149, 5341, - 56301, 56765, 58581, 59493, 59677, 6085, 6349, 8293, - 8501, 8517, 11597, 11709, 12589, 12693, 13517, 14909, - 17397, 18085, 21101, 21269, 22717, 25237, 25661, 29189, - 30101, 31397, 33933, 34213, 34661, 35533, 36493, 37309, - 40037, 4189, 42909, 44309, 44357, 44389, 4541, 45461, - 46445, 48237, 54149, 55301, 55853, 56621, 56717, 56901, - 5813, 58437, 12493, 15365, 15989, 17829, 18229, 19341, - 21013, 21357, 22925, 24885, 26053, 27581, 28221, 28485, - 30605, 30613, 30789, 35437, 36285, 37189, 3941, 41797, - 4269, 42901, 43293, 44645, 45221, 46893, 4893, 50301, - 50325, 5189, 52109, 53517, 54053, 54485, 5525, 55949, - 56973, 59069, 59421, 60733, 61253, 6421, 6701, 6709, - 7101, 8669, 15797, 19221, 19837, 20133, 20957, 21293, - 21461, 22461, 29085, 29861, 30869, 34973, 36469, 37565, - 38125, 38829, 39469, 40061, 40117, 44093, 47429, 48341, - 50597, 51757, 5541, 57629, 58405, 59621, 59693, 59701, - 61837, 7061, 10421, 11949, 15405, 20861, 25397, 25509, - 25893, 26037, 28629, 28869, 29605, 30213, 34205, 35637, - 36365, 37285, 3773, 39117, 4021, 41061, 42653, 44509, - 4461, 44829, 4725, 5125, 52269, 56469, 59085, 5917, - 60973, 8349, 17725, 18637, 19773, 20293, 21453, 22533, - 24285, 26333, 26997, 31501, 34541, 34805, 37509, 38477, - 41333, 44125, 46285, 46997, 47637, 48173, 4925, 50253, - 50381, 50917, 51205, 51325, 52165, 52229, 5253, 5269, - 53509, 56253, 56341, 5821, 58373, 60301, 61653, 61973, - 62373, 8397, 11981, 14341, 14509, 15077, 22261, 22429, - 24261, 28165, 28685, 30661, 34021, 34445, 39149, 3917, - 43013, 43317, 44053, 44101, 4533, 49541, 49981, 5277, - 54477, 56357, 57261, 57765, 58573, 59061, 60197, 61197, - 62189, 7725, 8477, 9565, 10229, 11437, 14613, 14709, - 16813, 20029, 20677, 31445, 3165, 31957, 3229, 33541, - 36645, 3805, 38973, 3965, 4029, 44293, 44557, 46245, - 48917, 4909, 51749, 53709, 55733, 56445, 5925, 6093, - 61053, 62637, 8661, 9109, 10821, 11389, 13813, 14325, - 15501, 16149, 18845, 22669, 26437, 29869, 31837, 33709, - 33973, 34173, 3677, 3877, 3981, 39885, 42117, 4421, - 44221, 44245, 44693, 46157, 47309, 5005, 51461, 52037, - 55333, 55693, 56277, 58949, 6205, 62141, 62469, 6293, - 10101, 12509, 14029, 17997, 20469, 21149, 25221, 27109, - 2773, 2877, 29405, 31493, 31645, 4077, 42005, 42077, - 42469, 42501, 44013, 48653, 49349, 4997, 50101, 55405, - 56957, 58037, 59429, 60749, 61797, 62381, 62837, 6605, - 10541, 23981, 24533, 2701, 27333, 27341, 31197, 33805, - 3621, 37381, 3749, 3829, 38533, 42613, 44381, 45901, - 48517, 51269, 57725, 59461, 60045, 62029, 13805, 14013, - 15461, 16069, 16157, 18573, 2309, 23501, 28645, 3077, - 31541, 36357, 36877, 3789, 39429, 39805, 47685, 47949, - 49413, 5485, 56757, 57549, 57805, 58317, 59549, 62213, - 62613, 62853, 62933, 8909, 12941, 16677, 20333, 21541, - 24429, 26077, 26421, 2885, 31269, 33381, 3661, 40925, - 42925, 45173, 4525, 4709, 53133, 55941, 57413, 57797, - 62125, 62237, 62733, 6773, 12317, 13197, 16533, 16933, - 18245, 2213, 2477, 29757, 33293, 35517, 40133, 40749, - 4661, 49941, 62757, 7853, 8149, 8573, 11029, 13421, - 21549, 22709, 22725, 24629, 2469, 26125, 2669, 34253, - 36709, 41013, 45597, 46637, 52285, 52333, 54685, 59013, - 60997, 61189, 61981, 62605, 62821, 7077, 7525, 8781, - 10861, 15277, 2205, 22077, 28517, 28949, 32109, 33493, - 4661, 49941, 62757, 7853, 8149, 8573, 11029, 13421, - 21549, 22709, 22725, 24629, 2469, 26125, 2669, 34253, - 36709, 41013, 45597, 46637, 52285, 52333, 54685, 59013, - 60997, 61189, 61981, 62605, 62821, 7077, 7525, 8781, - 10861, 15277, 2205, 22077, 28517, 28949, 32109, 33493, - 3685, 39197, 39869, 42621, 44997, 48565, 5221, 57381, - 61749, 62317, 63245, 63381, 23149, 2549, 28661, 31653, - 33885, 36341, 37053, 39517, 42805, 45853, 48997, 59349, - 60053, 62509, 63069, 6525, 1893, 20181, 2365, 24893, - 27397, 31357, 32277, 33357, 34437, 36677, 37661, 43469, - 43917, 50997, 53869, 5653, 13221, 16741, 17893, 2157, - 28653, 31789, 35301, 35821, 61613, 62245, 12405, 14517, - 17453, 18421, 3149, 3205, 40341, 4109, 43941, 46869, - 48837, 50621, 57405, 60509, 62877, 8157, 12933, 12957, - 16501, 19533, 3461, 36829, 52357, 58189, 58293, 63053, - 17109, 1933, 32157, 37701, 59005, 61621, 13029, 15085, - 16493, 32317, 35093, 5061, 51557, 62221, 20765, 24613, - 2629, 30861, 33197, 33749, 35365, 37933, 40317, 48045, - 56229, 61157, 63797, 7917, 17965, 1917, 1973, 20301, - 2253, 33157, 58629, 59861, 61085, 63909, 8141, 9221, - 14757, 1581, 21637, 26557, 33869, 34285, 35733, 40933, - 42517, 43501, 53653, 61885, 63805, 7141, 21653, 54973, - 31189, 60061, 60341, 63357, 16045, 2053, 26069, 33997, - 43901, 54565, 63837, 8949, 17909, 18693, 32349, 33125, - 37293, 48821, 49053, 51309, 64037, 7117, 1445, 20405, - 23085, 26269, 26293, 27349, 32381, 33141, 34525, 36461, - 37581, 43525, 4357, 43877, 5069, 55197, 63965, 9845, - 12093, 2197, 2229, 32165, 33469, 40981, 42397, 8749, - 10853, 1453, 18069, 21693, 30573, 36261, 37421, 42533 -}; - -#define NSID_MULT_TABLE_SIZE \ - ((sizeof nsid_multiplier_table)/(sizeof nsid_multiplier_table[0])) -#define NSID_RANGE_MASK (NSID_LOOKAHEAD - 1) -#define NSID_POOL_MASK 0xFFFF /* used to wrap the pool index */ -#define NSID_SHUFFLE_ONLY 1 -#define NSID_USE_POOL 2 - -static isc_uint16_t -nsid_next(dns_nsid_t *nsid) { - isc_uint16_t id, compressed_hash; - isc_uint16_t j; - - compressed_hash = ((nsid_hash_state >> 16) ^ - (nsid_hash_state)) & 0xFFFF; - - if (nsid->nsid_usepool) { - isc_uint16_t pick; - - pick = compressed_hash & NSID_RANGE_MASK; - pick = (nsid->nsid_state + pick) & NSID_POOL_MASK; - id = nsid->nsid_pool[pick]; - if (pick != 0) { - /* Swap two IDs to stir the pool */ - nsid->nsid_pool[pick] = - nsid->nsid_pool[nsid->nsid_state]; - nsid->nsid_pool[nsid->nsid_state] = id; - } - - /* increment the base pointer into the pool */ - if (nsid->nsid_state == 65535) - nsid->nsid_state = 0; - else - nsid->nsid_state++; - } else { - /* - * This is the original Algorithm B - * j = ((u_long) NSID_SHUFFLE_TABLE_SIZE * nsid_state2) >> 16; - * - * We'll perturb it with some random stuff ... - */ - j = ((isc_uint32_t) NSID_SHUFFLE_TABLE_SIZE * - (nsid->nsid_state2 ^ compressed_hash)) >> 16; - nsid->nsid_state2 = id = nsid->nsid_vtable[j]; - nsid->nsid_state = (((isc_uint32_t) nsid->nsid_a1 * nsid->nsid_state) + - nsid->nsid_c1) & 0xFFFF; - nsid->nsid_vtable[j] = nsid->nsid_state; - } - - /* Now lets obfuscate ... */ - id = (((isc_uint32_t) nsid->nsid_a2 * id) + nsid->nsid_c2) & 0xFFFF; - id = (((isc_uint32_t) nsid->nsid_a3 * id) + nsid->nsid_c3) & 0xFFFF; - - return (id); -} - -static isc_result_t -nsid_init(isc_mem_t *mctx, dns_nsid_t *nsid, isc_boolean_t usepool) { - isc_time_t now; - pid_t mypid; - isc_uint16_t a1ndx, a2ndx, a3ndx, c1ndx, c2ndx, c3ndx; - int i; - - isc_time_now(&now); - mypid = getpid(); - - /* Initialize the state */ - memset(nsid, 0, sizeof(*nsid)); - nsid_hash(&now, sizeof now); - nsid_hash(&mypid, sizeof mypid); - - /* - * Select our random number generators and initial seed. - * We could really use more random bits at this point, - * but we'll try to make a silk purse out of a sows ear ... - */ - /* generator 1 */ - a1ndx = ((isc_uint32_t) NSID_MULT_TABLE_SIZE * - (nsid_hash_state & 0xFFFF)) >> 16; - nsid->nsid_a1 = nsid_multiplier_table[a1ndx]; - c1ndx = (nsid_hash_state >> 9) & 0x7FFF; - nsid->nsid_c1 = 2 * c1ndx + 1; - - /* generator 2, distinct from 1 */ - a2ndx = ((isc_uint32_t) (NSID_MULT_TABLE_SIZE - 1) * - ((nsid_hash_state >> 10) & 0xFFFF)) >> 16; - if (a2ndx >= a1ndx) - a2ndx++; - nsid->nsid_a2 = nsid_multiplier_table[a2ndx]; - c2ndx = nsid_hash_state % 32767; - if (c2ndx >= c1ndx) - c2ndx++; - nsid->nsid_c2 = 2*c2ndx + 1; - - /* generator 3, distinct from 1 and 2 */ - a3ndx = ((isc_uint32_t) (NSID_MULT_TABLE_SIZE - 2) * - ((nsid_hash_state >> 20) & 0xFFFF)) >> 16; - if (a3ndx >= a1ndx || a3ndx >= a2ndx) - a3ndx++; - if (a3ndx >= a1ndx && a3ndx >= a2ndx) - a3ndx++; - nsid->nsid_a3 = nsid_multiplier_table[a3ndx]; - c3ndx = nsid_hash_state % 32766; - if (c3ndx >= c1ndx || c3ndx >= c2ndx) - c3ndx++; - if (c3ndx >= c1ndx && c3ndx >= c2ndx) - c3ndx++; - nsid->nsid_c3 = 2*c3ndx + 1; - - nsid->nsid_state = - ((nsid_hash_state >> 16) ^ (nsid_hash_state)) & 0xFFFF; - - nsid->nsid_usepool = usepool; - if (nsid->nsid_usepool) { - nsid->nsid_pool = isc_mem_get(mctx, 0x10000 * sizeof(isc_uint16_t)); - if (nsid->nsid_pool == NULL) - return (ISC_R_NOMEMORY); - for (i = 0; ; i++) { - nsid->nsid_pool[i] = nsid->nsid_state; - nsid->nsid_state = - (((u_long) nsid->nsid_a1 * nsid->nsid_state) + - nsid->nsid_c1) & 0xFFFF; - if (i == 0xFFFF) - break; - } - } else { - nsid->nsid_vtable = isc_mem_get(mctx, NSID_SHUFFLE_TABLE_SIZE * - (sizeof(isc_uint16_t)) ); - if (nsid->nsid_vtable == NULL) - return (ISC_R_NOMEMORY); - - for (i = 0; i < NSID_SHUFFLE_TABLE_SIZE; i++) { - nsid->nsid_vtable[i] = nsid->nsid_state; - nsid->nsid_state = - (((isc_uint32_t) nsid->nsid_a1 * nsid->nsid_state) + - nsid->nsid_c1) & 0xFFFF; - } - nsid->nsid_state2 = nsid->nsid_state; - } - return (ISC_R_SUCCESS); -} - -static void -nsid_destroy(isc_mem_t *mctx, dns_nsid_t *nsid) { - if (nsid->nsid_usepool) - isc_mem_put(mctx, nsid->nsid_pool, - 0x10000 * sizeof(isc_uint16_t)); - else - isc_mem_put(mctx, nsid->nsid_vtable, - NSID_SHUFFLE_TABLE_SIZE * (sizeof(isc_uint16_t)) ); - memset(nsid, 0, sizeof(*nsid)); -} - -void -dns_dispatch_hash(void *data, size_t len) { - nsid_hash(data, len); -} diff --git a/lib/dns/include/dns/dispatch.h b/lib/dns/include/dns/dispatch.h index 3938f94c3ffd..ec3253c9a6c3 100644 --- a/lib/dns/include/dns/dispatch.h +++ b/lib/dns/include/dns/dispatch.h @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dispatch.h,v 1.48.18.5 2007/08/28 07:20:05 tbox Exp $ */ +/* $Id: dispatch.h,v 1.48.18.5.12.1 2008/05/22 21:28:06 each Exp $ */ #ifndef DNS_DISPATCH_H #define DNS_DISPATCH_H 1 @@ -113,6 +113,9 @@ struct dns_dispatchevent { * _MAKEQUERY * The dispatcher can be used to issue queries to other servers, and * accept replies from them. + * + * _RANDOMPORT + * Allocate UDP port randomly. */ #define DNS_DISPATCHATTR_PRIVATE 0x00000001U #define DNS_DISPATCHATTR_TCP 0x00000002U @@ -122,6 +125,7 @@ struct dns_dispatchevent { #define DNS_DISPATCHATTR_NOLISTEN 0x00000020U #define DNS_DISPATCHATTR_MAKEQUERY 0x00000040U #define DNS_DISPATCHATTR_CONNECTED 0x00000080U +#define DNS_DISPATCHATTR_RANDOMPORT 0x00000100U /*@}*/ isc_result_t @@ -441,13 +445,6 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event); * event != NULL */ -void -dns_dispatch_hash(void *data, size_t len); -/*%< - * Feed 'data' to the dispatch query id generator where 'len' is the size - * of 'data'. - */ - ISC_LANG_ENDDECLS #endif /* DNS_DISPATCH_H */ diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 5b57005aee85..03f4a94c2568 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.c,v 1.284.18.66 2007/11/01 13:53:27 shane Exp $ */ +/* $Id: resolver.c,v 1.284.18.66.8.1 2008/05/22 21:28:06 each Exp $ */ /*! \file */ @@ -1159,19 +1159,53 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, if (result != ISC_R_SUCCESS) goto cleanup_query; } else { + isc_sockaddr_t localaddr; + unsigned int attrs, attrmask; + dns_dispatch_t *disp_base; + + attrs = 0; + attrs |= DNS_DISPATCHATTR_UDP; + attrs |= DNS_DISPATCHATTR_RANDOMPORT; + + attrmask = 0; + attrmask |= DNS_DISPATCHATTR_UDP; + attrmask |= DNS_DISPATCHATTR_TCP; + attrmask |= DNS_DISPATCHATTR_IPV4; + attrmask |= DNS_DISPATCHATTR_IPV6; + switch (isc_sockaddr_pf(&addrinfo->sockaddr)) { - case PF_INET: - dns_dispatch_attach(res->dispatchv4, - &query->dispatch); + case AF_INET: + disp_base = res->dispatchv4; + attrs |= DNS_DISPATCHATTR_IPV4; break; - case PF_INET6: - dns_dispatch_attach(res->dispatchv6, - &query->dispatch); + case AF_INET6: + disp_base = res->dispatchv6; + attrs |= DNS_DISPATCHATTR_IPV6; break; default: result = ISC_R_NOTIMPLEMENTED; goto cleanup_query; } + + result = dns_dispatch_getlocaladdress(disp_base, + &localaddr); + if (result != ISC_R_SUCCESS) + goto cleanup_query; + if (isc_sockaddr_getport(&localaddr) == 0) { + result = dns_dispatch_getudp(res->dispatchmgr, + res->socketmgr, + res->taskmgr, + &localaddr, + 4096, 1000, 32768, + 16411, 16433, + attrs, attrmask, + &query->dispatch); + if (result != ISC_R_SUCCESS) + goto cleanup_query; + } else { + dns_dispatch_attach(disp_base, + &query->dispatch); + } } /* * We should always have a valid dispatcher here. If we diff --git a/version b/version index 5962eeea1fdf..85ab554163c8 100644 --- a/version +++ b/version @@ -1,4 +1,4 @@ -# $Id: version,v 1.29.134.18 2007/11/19 15:25:23 each Exp $ +# $Id: version,v 1.29.134.18.8.1 2008/05/22 21:28:03 each Exp $ # # This file must follow /bin/sh rules. It is imported directly via # configure. @@ -6,5 +6,5 @@ MAJORVER=9 MINORVER=4 PATCHVER=2 -RELEASETYPE= -RELEASEVER= +RELEASETYPE=-P +RELEASEVER=1 From 5d352cdcfac083b99df8cdcdc2f02eaef531c13e Mon Sep 17 00:00:00 2001 From: dougb Date: Sat, 12 Jul 2008 06:55:03 +0000 Subject: [PATCH 03/13] Add a patch from ISC to fix named-checkconf. The error condition was not being properly tested for, so it would not report the error in some cases. This fix (or similar) will be in version 9.4.3. --- lib/bind9/check.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/bind9/check.c b/lib/bind9/check.c index 6cfdc93c6141..01d67b79463b 100644 --- a/lib/bind9/check.c +++ b/lib/bind9/check.c @@ -1015,10 +1015,10 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, isc_buffer_add(&b, strlen(zname)); tresult = dns_name_fromtext(dns_fixedname_name(&fixedname), &b, dns_rootname, ISC_TRUE, NULL); - if (result != ISC_R_SUCCESS) { + if (tresult != ISC_R_SUCCESS) { cfg_obj_log(zconfig, logctx, ISC_LOG_ERROR, "zone '%s': is not a valid name", zname); - tresult = ISC_R_FAILURE; + result = ISC_R_FAILURE; } else { char namebuf[DNS_NAME_FORMATSIZE]; From 32fd6457bcc694dc7098ada999e9b6f46ec3adaa Mon Sep 17 00:00:00 2001 From: dougb Date: Sat, 12 Jul 2008 07:32:48 +0000 Subject: [PATCH 04/13] These files are unused, and due to a more thorough FREEBSD-Xlist are no longer updated. --- lib/bind/aclocal.m4 | 2 - lib/bind/config.h.in | 61 - lib/bind/configure | 33825 ----------------------------------------- 3 files changed, 33888 deletions(-) delete mode 100644 lib/bind/aclocal.m4 delete mode 100644 lib/bind/config.h.in delete mode 100755 lib/bind/configure diff --git a/lib/bind/aclocal.m4 b/lib/bind/aclocal.m4 deleted file mode 100644 index 110ed87832da..000000000000 --- a/lib/bind/aclocal.m4 +++ /dev/null @@ -1,2 +0,0 @@ -sinclude(../../libtool.m4)dnl - diff --git a/lib/bind/config.h.in b/lib/bind/config.h.in deleted file mode 100644 index 69ea28543000..000000000000 --- a/lib/bind/config.h.in +++ /dev/null @@ -1,61 +0,0 @@ -#undef _SOCKADDR_LEN -#undef HAVE_FCNTL_H -#undef HAVE_PATHS_H -#undef HAVE_INTTYPES_H -#undef HAVE_STROPTS_H -#undef HAVE_SYS_TIMERS_H -#undef HAVE_SYS_SELECT_H -#undef SYS_CDEFS_H -#undef _POSIX_PTHREAD_SEMANTICS -#undef POSIX_GETPWUID_R -#undef POSIX_GETPWNAM_R -#undef POSIX_GETGRGID_R -#undef POSIX_GETGRNAM_R -#undef HAVE_MEMMOVE -#undef HAVE_MEMCHR - -#undef NEED_SETGROUPENT -#undef NEED_GETGROUPLIST - -/* define if prototype for getgrnam_r() is required */ -#undef NEED_GETGRNAM_R -#undef NEED_GETGRGID_R -#undef NEED_GETGRENT_R -#undef NEED_SETGRENT_R -#undef NEED_ENDGRENT_R - -#undef NEED_INNETGR_R -#undef NEED_SETNETGRENT_R -#undef NEED_ENDNETGRENT_R - -#undef NEED_GETPWNAM_R -#undef NEED_GETPWUID_R -#undef NEED_SETPWENT_R -#undef NEED_SETPASSENT_R -#undef NEED_SETPWENT_R -#undef NEED_GETPWENT_R -#undef NEED_ENDPWENT_R - -#undef NEED_SETPASSENT - -#undef HAS_PW_CLASS - -#undef ssize_t -#undef uintptr_t - -/* Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */ -#undef SHUTUP_SPUTAUX -#ifdef SHUTUP_SPUTAUX -struct __sFILE; -extern __inline int __sputaux(int _c, struct __sFILE *_p); -#endif -#undef BROKEN_IN6ADDR_INIT_MACROS -#undef HAVE_STRLCAT -/* Shut up warnings about missing braces */ -#undef SHUTUP_MUTEX_INITIALIZER -#ifdef SHUTUP_MUTEX_INITIALIZER -#define LIBBIND_MUTEX_INITIALIZER { PTHREAD_MUTEX_INITIALIZER } -#else -#define LIBBIND_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -#endif - diff --git a/lib/bind/configure b/lib/bind/configure deleted file mode 100755 index 403c09e0b030..000000000000 --- a/lib/bind/configure +++ /dev/null @@ -1,33825 +0,0 @@ -#! /bin/sh -# From configure.in Revision: 1.90.18.33 . -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59. -# -# Copyright (C) 2003 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -echo=${ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null 2>&1 && unset CDPATH - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" != Xset; then -# find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string="`eval $cmd`") 2>/dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -tagnames=${tagnames+${tagnames},}CXX - -tagnames=${tagnames+${tagnames},}F77 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="resolv/herror.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#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" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA STD_CINCLUDES STD_CDEFINES STD_CWARNINGS CCOPT AR ARFLAGS LN ETAGS PERL CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP ISC_PLATFORM_NEEDSYSSELECTH WANT_IRS_GR WANT_IRS_GR_OBJS WANT_IRS_PW WANT_IRS_PW_OBJS WANT_IRS_NIS WANT_IRS_NIS_OBJS WANT_IRS_NISGR_OBJS WANT_IRS_NISPW_OBJS WANT_IRS_DBPW_OBJS ALWAYS_DEFINES DO_PTHREADS WANT_IRS_THREADSGR_OBJS WANT_IRS_THREADSPW_OBJS WANT_IRS_THREADS_OBJS WANT_THREADS_OBJS USE_IFNAMELINKID ISC_THREAD_DIR DAEMON_OBJS NEED_DAEMON STRSEP_OBJS NEED_STRSEP NEED_STRERROR MKDEPCC MKDEPCFLAGS MKDEPPROG IRIX_DNSSEC_WARNINGS_HACK purify_path PURIFY LN_S ECHO ac_ct_AR STRIP ac_ct_STRIP CXX CXXFLAGS ac_ct_CXX CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL O A SA LIBTOOL_MKDEP_SED LIBTOOL_MODE_COMPILE LIBTOOL_MODE_INSTALL LIBTOOL_MODE_LINK HAS_INET6_STRUCTS ISC_PLATFORM_NEEDNETINETIN6H ISC_PLATFORM_NEEDNETINET6IN6H HAS_IN_ADDR6 NEED_IN6ADDR_ANY ISC_PLATFORM_HAVEIN6PKTINFO ISC_PLATFORM_FIXIN6ISADDR ISC_IPV6_H ISC_IPV6_O ISC_ISCIPV6_O ISC_IPV6_C HAVE_SIN6_SCOPE_ID HAVE_SOCKADDR_STORAGE ISC_PLATFORM_NEEDNTOP ISC_PLATFORM_NEEDPTON ISC_PLATFORM_NEEDATON HAVE_SA_LEN HAVE_MINIMUM_IFREQ BSD_COMP SOLARIS_BITTYPES USE_FIONBIO_IOCTL PORT_NONBLOCK PORT_DIR USE_POLL HAVE_MD5 SOLARIS2 PORT_INCLUDE ISC_PLATFORM_MSGHDRFLAVOR ISC_PLATFORM_NEEDPORTT ISC_PLATFORM_NEEDTIMESPEC ISC_LWRES_ENDHOSTENTINT ISC_LWRES_SETNETENTINT ISC_LWRES_ENDNETENTINT ISC_LWRES_GETHOSTBYADDRVOID ISC_LWRES_NEEDHERRNO ISC_LWRES_GETIPNODEPROTO ISC_LWRES_GETADDRINFOPROTO ISC_LWRES_GETNAMEINFOPROTO NEED_PSELECT NEED_GETTIMEOFDAY HAVE_STRNDUP ISC_PLATFORM_NEEDSTRSEP ISC_PLATFORM_NEEDVSNPRINTF ISC_EXTRA_OBJS ISC_EXTRA_SRCS USE_SYSERROR_LIST ISC_PLATFORM_QUADFORMAT ISC_SOCKLEN_T GETGROUPLIST_ARGS NET_R_ARGS NET_R_BAD NET_R_COPY NET_R_COPY_ARGS NET_R_OK NET_R_SETANSWER NET_R_RETURN GETNETBYADDR_ADDR_T NETENT_DATA NET_R_ENT_ARGS NET_R_SET_RESULT NET_R_SET_RETURN NET_R_END_RESULT NET_R_END_RETURN GROUP_R_ARGS GROUP_R_BAD GROUP_R_OK GROUP_R_RETURN GROUP_R_END_RESULT GROUP_R_END_RETURN GROUP_R_ENT_ARGS GROUP_R_SET_RESULT GROUP_R_SET_RETURN HOST_R_ARGS HOST_R_BAD HOST_R_COPY HOST_R_COPY_ARGS HOST_R_ERRNO HOST_R_OK HOST_R_RETURN HOST_R_SETANSWER HOSTENT_DATA HOST_R_END_RESULT HOST_R_END_RETURN HOST_R_ENT_ARGS HOST_R_SET_RESULT HOST_R_SET_RETURN SETPWENT_VOID SETGRENT_VOID NGR_R_ARGS NGR_R_BAD NGR_R_COPY NGR_R_COPY_ARGS NGR_R_OK NGR_R_RETURN NGR_R_PRIVATE NGR_R_END_RESULT NGR_R_END_RETURN NGR_R_ENT_ARGS NGR_R_SET_RESULT NGR_R_SET_RETURN PROTO_R_ARGS PROTO_R_BAD PROTO_R_COPY PROTO_R_COPY_ARGS PROTO_R_OK PROTO_R_SETANSWER PROTO_R_RETURN PROTOENT_DATA PROTO_R_END_RESULT PROTO_R_END_RETURN PROTO_R_ENT_ARGS PROTO_R_ENT_UNUSED PROTO_R_SET_RESULT PROTO_R_SET_RETURN PASS_R_ARGS PASS_R_BAD PASS_R_COPY PASS_R_COPY_ARGS PASS_R_OK PASS_R_RETURN PASS_R_END_RESULT PASS_R_END_RETURN PASS_R_ENT_ARGS PASS_R_SET_RESULT PASS_R_SET_RETURN SERV_R_ARGS SERV_R_BAD SERV_R_COPY SERV_R_COPY_ARGS SERV_R_OK SERV_R_SETANSWER SERV_R_RETURN SERVENT_DATA SERV_R_END_RESULT SERV_R_END_RETURN SERV_R_ENT_ARGS SERV_R_ENT_UNUSED SERV_R_SET_RESULT SERV_R_SET_RETURN SETNETGRENT_ARGS INNETGR_ARGS BIND9_TOP_BUILDDIR BIND9_VERSION LIBOBJS LTLIBOBJS' -ac_subst_files='BIND9_INCLUDES BIND9_MAKE_RULES LIBBIND_API' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP -ac_env_CXX_set=${CXX+set} -ac_env_CXX_value=$CXX -ac_cv_env_CXX_set=${CXX+set} -ac_cv_env_CXX_value=$CXX -ac_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_env_CXXFLAGS_value=$CXXFLAGS -ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_cv_env_CXXFLAGS_value=$CXXFLAGS -ac_env_CXXCPP_set=${CXXCPP+set} -ac_env_CXXCPP_value=$CXXCPP -ac_cv_env_CXXCPP_set=${CXXCPP+set} -ac_cv_env_CXXCPP_value=$CXXCPP -ac_env_F77_set=${F77+set} -ac_env_F77_value=$F77 -ac_cv_env_F77_set=${F77+set} -ac_cv_env_F77_value=$F77 -ac_env_FFLAGS_set=${FFLAGS+set} -ac_env_FFLAGS_value=$FFLAGS -ac_cv_env_FFLAGS_set=${FFLAGS+set} -ac_cv_env_FFLAGS_value=$FFLAGS - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-threads enable multithreading - --enable-shared[=PKGS] - build shared libraries [default=yes] - --enable-static[=PKGS] - build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --enable-ipv6 use IPv6 default=autodetect - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-irs-gr Build .... - --with-irs-pw Build .... - --with-irs-nis Build .... - --with-randomdev=PATH Specify path for random device - --with-ptl2 on NetBSD, use the ptl2 thread library (experimental) - --with-purify=PATH use Rational purify - --with-libtool use GNU libtool (following indented options supported) - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-tags[=TAGS] - include additional configurations [automatic] - --with-kame=PATH use Kame IPv6 default path /usr/local/v6 - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright (C) 2003 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - - ac_config_headers="$ac_config_headers config.h" - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - - - - - - -# Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $AR in - [\\/]* | ?:[\\/]*) - ac_cv_path_AR="$AR" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -AR=$ac_cv_path_AR - -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -ARFLAGS="cruv" - - - -# The POSIX ln(1) program. Non-POSIX systems may substitute -# "copy" or something. -LN=ln - - -case "$AR" in - "") - { { echo "$as_me:$LINENO: error: -ar program not found. Please fix your PATH to include the directory in -which ar resides, or set AR in the environment with the full path to ar. -" >&5 -echo "$as_me: error: -ar program not found. Please fix your PATH to include the directory in -which ar resides, or set AR in the environment with the full path to ar. -" >&2;} - { (exit 1); exit 1; }; } - - ;; -esac - -# -# Etags. -# -for ac_prog in etags emacs-etags -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ETAGS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ETAGS in - [\\/]* | ?:[\\/]*) - ac_cv_path_ETAGS="$ETAGS" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ETAGS="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -ETAGS=$ac_cv_path_ETAGS - -if test -n "$ETAGS"; then - echo "$as_me:$LINENO: result: $ETAGS" >&5 -echo "${ECHO_T}$ETAGS" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ETAGS" && break -done - - -# -# Some systems, e.g. RH7, have the Exuberant Ctags etags instead of -# GNU emacs etags, and it requires the -L flag. -# -if test "X$ETAGS" != "X"; then - echo "$as_me:$LINENO: checking for Exuberant Ctags etags" >&5 -echo $ECHO_N "checking for Exuberant Ctags etags... $ECHO_C" >&6 - if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ETAGS="$ETAGS -L" - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - fi -fi - - -# -# Perl is optional; it is used only by some of the system test scripts. -# -for ac_prog in perl5 perl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PERL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -PERL=$ac_cv_path_PERL - -if test -n "$PERL"; then - echo "$as_me:$LINENO: result: $PERL" >&5 -echo "${ECHO_T}$PERL" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$PERL" && break -done - - - -# -# isc/list.h and others clash with the rest of BIND 9 -# -case "$includedir" in - '${prefix}/include') - includedir='${prefix}/bind/include' - ;; -esac -case "$libdir" in - '${prefix}/lib') - libdir='${prefix}/bind/lib' - ;; -esac - -# -# Make sure INSTALL uses an absolute path, else it will be wrong in all -# Makefiles, since they use make/rules.in and INSTALL will be adjusted by -# configure based on the location of the file where it is substituted. -# Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate -# subdirectory of install-sh, This relative path will be wrong for all -# directories more than one level down from install-sh. -# -case "$INSTALL" in - /*) - ;; - *) - # - # Not all systems have dirname. - # - - ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`" - - - ac_prog="`echo $INSTALL | sed 's%.*/%%'`" - test "$ac_dir" = "$ac_prog" && ac_dir=. - test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`" - INSTALL="$ac_dir/$ac_prog" - ;; -esac - -# -# On these hosts, we really want to use cc, not gcc, even if it is -# found. The gcc that these systems have will not correctly handle -# pthreads. -# -# However, if the user sets $CC to be something, let that override -# our change. -# -if test "X$CC" = "X" ; then - case "$host" in - *-dec-osf*) - CC="cc" - ;; - *-solaris*) - # Use Sun's cc if it is available, but watch - # out for /usr/ucb/cc; it will never be the right - # compiler to use. - # - # If setting CC here fails, the AC_PROG_CC done - # below might still find gcc. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - case "$ac_dir" in - /usr/ucb) - # exclude - ;; - *) - if test -f "$ac_dir/cc"; then - CC="$ac_dir/cc" - break - fi - ;; - esac - done - IFS="$ac_save_ifs" - ;; - *-hp-hpux*) - CC="cc" - ;; - mips-sgi-irix*) - CC="cc" - ;; - esac -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - - - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - - - - -for ac_header in fcntl.h db.h paths.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/timers.h stropts.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset x; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - ccp = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - } -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_const=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6 -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_inline=$ac_kw; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6 - - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - -echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((size_t *) 0) - return 0; -if (sizeof (size_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_size_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test $ac_cv_type_size_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for ssize_t" >&5 -echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 -if test "${ac_cv_type_ssize_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((ssize_t *) 0) - return 0; -if (sizeof (ssize_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ssize_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ssize_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 -echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 -if test $ac_cv_type_ssize_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ssize_t signed -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for uintptr_t" >&5 -echo $ECHO_N "checking for uintptr_t... $ECHO_C" >&6 -if test "${ac_cv_type_uintptr_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((uintptr_t *) 0) - return 0; -if (sizeof (uintptr_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_uintptr_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_uintptr_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5 -echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6 -if test $ac_cv_type_uintptr_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define uintptr_t unsigned long -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_time=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_time=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -#define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - -# -# check if we need to #include sys/select.h explicitly -# -case $ac_cv_header_unistd_h in -yes) -echo "$as_me:$LINENO: checking if unistd.h defines fd_set" >&5 -echo $ECHO_N "checking if unistd.h defines fd_set... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ -fd_set read_set; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - case ac_cv_header_sys_select_h in - yes) - ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1" - ;; - no) - { { echo "$as_me:$LINENO: error: need either working unistd.h or sys/select.h" >&5 -echo "$as_me: error: need either working unistd.h or sys/select.h" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - ;; -no) - case ac_cv_header_sys_select_h in - yes) - ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1" - ;; - no) - { { echo "$as_me:$LINENO: error: need either unistd.h or sys/select.h" >&5 -echo "$as_me: error: need either unistd.h or sys/select.h" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - ;; -esac - - -# -# Find the machine's endian flavor. -# -echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 -echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 -if test "${ac_cv_c_bigendian+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # See if sys/param.h defines the BYTE_ORDER macro. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN - bogus endian macros -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # It does; now see whether it defined to BIG_ENDIAN or not. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_bigendian=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -# It does not; compile a test program. -if test "$cross_compiling" = yes; then - # try to guess the endianness by grepping values into an object file - ac_cv_c_bigendian=unknown - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; -short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; -void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } -short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; -short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; -void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } -int -main () -{ - _ascii (); _ebcdic (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then - ac_cv_c_bigendian=yes -fi -if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi -fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -int -main () -{ - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - exit (u.c[sizeof (long) - 1] == 1); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=no -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_bigendian=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 -echo "${ECHO_T}$ac_cv_c_bigendian" >&6 -case $ac_cv_c_bigendian in - yes) - -cat >>confdefs.h <<\_ACEOF -#define WORDS_BIGENDIAN 1 -_ACEOF - ;; - no) - ;; - *) - { { echo "$as_me:$LINENO: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&5 -echo "$as_me: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} - { (exit 1); exit 1; }; } ;; -esac - - - -# Check whether --with-irs-gr or --without-irs-gr was given. -if test "${with_irs_gr+set}" = set; then - withval="$with_irs_gr" - want_irs_gr="$withval" -else - want_irs_gr="no" -fi; -case "$want_irs_gr" in -yes) WANT_IRS_GR="#define WANT_IRS_GR 1" - WANT_IRS_GR_OBJS="\${WANT_IRS_GR_OBJS}" - ;; -*) WANT_IRS_GR="#undef WANT_IRS_GR" WANT_IRS_GR_OBJS="";; -esac - - - - -# Check whether --with-irs-pw or --without-irs-pw was given. -if test "${with_irs_pw+set}" = set; then - withval="$with_irs_pw" - want_irs_pw="$withval" -else - want_irs_pw="no" -fi; -case "$want_irs_pw" in -yes) WANT_IRS_PW="#define WANT_IRS_PW 1" - WANT_IRS_PW_OBJS="\${WANT_IRS_PW_OBJS}";; -*) WANT_IRS_PW="#undef WANT_IRS_PW" WANT_IRS_PW_OBJS="";; -esac - - - - -# Check whether --with-irs-nis or --without-irs-nis was given. -if test "${with_irs_nis+set}" = set; then - withval="$with_irs_nis" - want_irs_nis="$withval" -else - want_irs_nis="no" -fi; -case "$want_irs_nis" in -yes) - WANT_IRS_NIS="#define WANT_IRS_NIS 1" - WANT_IRS_NIS_OBJS="\${WANT_IRS_NIS_OBJS}" - case "$want_irs_gr" in - yes) - WANT_IRS_NISGR_OBJS="\${WANT_IRS_NISGR_OBJS}";; - *) - WANT_IRS_NISGR_OBJS="";; - esac - case "$want_irs_pw" in - yes) - WANT_IRS_NISPW_OBJS="\${WANT_IRS_NISPW_OBJS}";; - *) - WANT_IRS_NISPW_OBJS="";; - esac - ;; -*) - WANT_IRS_NIS="#undef WANT_IRS_NIS" - WANT_IRS_NIS_OBJS="" - WANT_IRS_NISGR_OBJS="" - WANT_IRS_NISPW_OBJS="";; -esac - - - - -if test "$cross_compiling" = yes; then - WANT_IRS_DBPW_OBJS="" - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#ifdef HAVE_DB_H -int have_db_h = 1; -#else -int have_db_h = 0; -#endif -main() { return(!have_db_h); } - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - WANT_IRS_DBPW_OBJS="\${WANT_IRS_DBPW_OBJS}" - -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -WANT_IRS_DBPW_OBJS="" - -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -# -# was --with-randomdev specified? -# -echo "$as_me:$LINENO: checking for random device" >&5 -echo $ECHO_N "checking for random device... $ECHO_C" >&6 - -# Check whether --with-randomdev or --without-randomdev was given. -if test "${with_randomdev+set}" = set; then - withval="$with_randomdev" - use_randomdev="$withval" -else - use_randomdev="unspec" -fi; - -case "$use_randomdev" in - unspec) - case "$host" in - *-openbsd*) - devrandom=/dev/srandom - ;; - *) - devrandom=/dev/random - ;; - esac - echo "$as_me:$LINENO: result: $devrandom" >&5 -echo "${ECHO_T}$devrandom" >&6 - as_ac_File=`echo "ac_cv_file_$devrandom" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $devrandom" >&5 -echo $ECHO_N "checking for $devrandom... $ECHO_C" >&6 -if eval "test \"\${$as_ac_File+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - test "$cross_compiling" = yes && - { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 -echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} - { (exit 1); exit 1; }; } -if test -r "$devrandom"; then - eval "$as_ac_File=yes" -else - eval "$as_ac_File=no" -fi -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6 -if test `eval echo '${'$as_ac_File'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define PATH_RANDOMDEV "$devrandom" -_ACEOF - -fi - - ;; - yes) - { { echo "$as_me:$LINENO: error: --with-randomdev must specify a path" >&5 -echo "$as_me: error: --with-randomdev must specify a path" >&2;} - { (exit 1); exit 1; }; } - ;; - *) - cat >>confdefs.h <<_ACEOF -#define PATH_RANDOMDEV "$use_randomdev" -_ACEOF - - echo "$as_me:$LINENO: result: using \"$use_randomdev\"" >&5 -echo "${ECHO_T}using \"$use_randomdev\"" >&6 - ;; -esac - -# -# Begin pthreads checking. -# -# First, decide whether to use multithreading or not. -# -# Enable multithreading by default on systems where it is known -# to work well, and where debugging of multithreaded programs -# is supported. -# - -echo "$as_me:$LINENO: checking whether to build with thread support" >&5 -echo $ECHO_N "checking whether to build with thread support... $ECHO_C" >&6 - -case $host in -*-dec-osf*) - use_threads=true ;; -*-solaris2.[0-6]) - # Thread signals are broken on Solaris 2.6; they are sometimes - # delivered to the wrong thread. - use_threads=false ;; -*-solaris*) - use_threads=true ;; -*-ibm-aix*) - use_threads=true ;; -*-hp-hpux10*) - use_threads=false ;; -*-hp-hpux11*) - use_threads=true ;; -*-sgi-irix*) - use_threads=true ;; -*-sco-sysv*uw*|*-*-sysv*UnixWare*) - # UnixWare - use_threads=false ;; -*-*-sysv*OpenUNIX*) - # UnixWare - use_threads=true ;; -*-netbsd*) - if test -r /usr/lib/libpthread.so ; then - use_threads=true - else - # Socket I/O optimizations introduced in 9.2 expose a - # bug in unproven-pthreads; see PR #12650 - use_threads=false - fi - ;; -*-openbsd*) - # OpenBSD users have reported that named dumps core on - # startup when built with threads. - use_threads=false ;; -*-freebsd*) - use_threads=false ;; -*-bsdi234*) - # Thread signals do not work reliably on some versions of BSD/OS. - use_threads=false ;; -*-bsdi5*) - use_threads=true ;; -*-linux*) - # Threads are disabled on Linux by default because most - # Linux kernels produce unusable core dumps from multithreaded - # programs, and because of limitations in setuid(). - use_threads=false ;; -*) - use_threads=false ;; -esac - -# Check whether --enable-threads or --disable-threads was given. -if test "${enable_threads+set}" = set; then - enableval="$enable_threads" - -fi; -case "$enable_threads" in - yes) - use_threads=true - ;; - no) - use_threads=false - ;; - '') - # Use system-dependent default - ;; - *) - { { echo "$as_me:$LINENO: error: --enable-threads takes yes or no" >&5 -echo "$as_me: error: --enable-threads takes yes or no" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - -if $use_threads -then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if $use_threads -then - # - # Search for / configure pthreads in a system-dependent fashion. - # - case "$host" in - *-netbsd*) - # NetBSD has multiple pthreads implementations. The - # recommended one to use is "unproven-pthreads". The - # older "mit-pthreads" may also work on some NetBSD - # versions. The PTL2 thread library does not - # currently work with bind9, but can be chosen with - # the --with-ptl2 option for those who wish to - # experiment with it. - CC="gcc" - echo "$as_me:$LINENO: checking which NetBSD thread library to use" >&5 -echo $ECHO_N "checking which NetBSD thread library to use... $ECHO_C" >&6 - - -# Check whether --with-ptl2 or --without-ptl2 was given. -if test "${with_ptl2+set}" = set; then - withval="$with_ptl2" - use_ptl2="$withval" -else - use_ptl2="no" -fi; - - : ${LOCALBASE:=/usr/pkg} - - if test "X$use_ptl2" = "Xyes" - then - echo "$as_me:$LINENO: result: PTL2" >&5 -echo "${ECHO_T}PTL2" >&6 - { echo "$as_me:$LINENO: WARNING: linking with PTL2 is highly experimental and not expected to work" >&5 -echo "$as_me: WARNING: linking with PTL2 is highly experimental and not expected to work" >&2;} - CC=ptlgcc - else - if test -r /usr/lib/libpthread.so - then - echo "$as_me:$LINENO: result: native" >&5 -echo "${ECHO_T}native" >&6 - LIBS="-lpthread $LIBS" - else - if test ! -d $LOCALBASE/pthreads - then - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 - { { echo "$as_me:$LINENO: error: \"could not find thread libraries\"" >&5 -echo "$as_me: error: \"could not find thread libraries\"" >&2;} - { (exit 1); exit 1; }; } - fi - - if $use_threads - then - echo "$as_me:$LINENO: result: mit-pthreads/unproven-pthreads" >&5 -echo "${ECHO_T}mit-pthreads/unproven-pthreads" >&6 - pkg="$LOCALBASE/pthreads" - lib1="-L$pkg/lib -Wl,-R$pkg/lib" - lib2="-lpthread -lm -lgcc -lpthread" - LIBS="$lib1 $lib2 $LIBS" - CPPFLAGS="$CPPFLAGS -I$pkg/include" - STD_CINCLUDES="$STD_CINCLUDES -I$pkg/include" - fi - fi - fi - ;; - *-freebsd*) - # We don't want to set -lpthread as that break - # the ability to choose threads library at final - # link time and is not valid for all architectures. - - PTHREAD= - if test "X$GCC" = "Xyes"; then - saved_cc="$CC" - CC="$CC -pthread" - echo "$as_me:$LINENO: checking for gcc -pthread support" >&5 -echo $ECHO_N "checking for gcc -pthread support... $ECHO_C" >&6; - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -printf("%x\n", pthread_create); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - PTHREAD="yes" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CC="$saved_cc" - fi - if test "X$PTHREAD" != "Xyes"; then - -echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 -echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 -if test $ac_cv_lib_pthread_pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 -_ACEOF - - LIBS="-lpthread $LIBS" - -else - -echo "$as_me:$LINENO: checking for thread_create in -lthr" >&5 -echo $ECHO_N "checking for thread_create in -lthr... $ECHO_C" >&6 -if test "${ac_cv_lib_thr_thread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lthr $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char thread_create (); -int -main () -{ -thread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_thr_thread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_thr_thread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_thr_thread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_thr_thread_create" >&6 -if test $ac_cv_lib_thr_thread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBTHR 1 -_ACEOF - - LIBS="-lthr $LIBS" - -else - -echo "$as_me:$LINENO: checking for pthread_create in -lc_r" >&5 -echo $ECHO_N "checking for pthread_create in -lc_r... $ECHO_C" >&6 -if test "${ac_cv_lib_c_r_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_c_r_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_c_r_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_c_r_pthread_create" >&6 -if test $ac_cv_lib_c_r_pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBC_R 1 -_ACEOF - - LIBS="-lc_r $LIBS" - -else - -echo "$as_me:$LINENO: checking for pthread_create in -lc" >&5 -echo $ECHO_N "checking for pthread_create in -lc... $ECHO_C" >&6 -if test "${ac_cv_lib_c_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_c_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_c_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_c_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_c_pthread_create" >&6 -if test $ac_cv_lib_c_pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBC 1 -_ACEOF - - LIBS="-lc $LIBS" - -else - { { echo "$as_me:$LINENO: error: \"could not find thread libraries\"" >&5 -echo "$as_me: error: \"could not find thread libraries\"" >&2;} - { (exit 1); exit 1; }; } -fi - -fi - -fi - -fi - - fi - ;; - *) - -echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 -echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 -if test $ac_cv_lib_pthread_pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 -_ACEOF - - LIBS="-lpthread $LIBS" - -else - -echo "$as_me:$LINENO: checking for __pthread_create in -lpthread" >&5 -echo $ECHO_N "checking for __pthread_create in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread___pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char __pthread_create (); -int -main () -{ -__pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread___pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread___pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread___pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread___pthread_create" >&6 -if test $ac_cv_lib_pthread___pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 -_ACEOF - - LIBS="-lpthread $LIBS" - -else - -echo "$as_me:$LINENO: checking for __pthread_create_system in -lpthread" >&5 -echo $ECHO_N "checking for __pthread_create_system in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread___pthread_create_system+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char __pthread_create_system (); -int -main () -{ -__pthread_create_system (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread___pthread_create_system=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread___pthread_create_system=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread___pthread_create_system" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread___pthread_create_system" >&6 -if test $ac_cv_lib_pthread___pthread_create_system = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 -_ACEOF - - LIBS="-lpthread $LIBS" - -else - -echo "$as_me:$LINENO: checking for pthread_create in -lc_r" >&5 -echo $ECHO_N "checking for pthread_create in -lc_r... $ECHO_C" >&6 -if test "${ac_cv_lib_c_r_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_c_r_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_c_r_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_c_r_pthread_create" >&6 -if test $ac_cv_lib_c_r_pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBC_R 1 -_ACEOF - - LIBS="-lc_r $LIBS" - -else - -echo "$as_me:$LINENO: checking for pthread_create in -lc" >&5 -echo $ECHO_N "checking for pthread_create in -lc... $ECHO_C" >&6 -if test "${ac_cv_lib_c_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_c_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_c_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_c_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_c_pthread_create" >&6 -if test $ac_cv_lib_c_pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBC 1 -_ACEOF - - LIBS="-lc $LIBS" - -else - { { echo "$as_me:$LINENO: error: \"could not find thread libraries\"" >&5 -echo "$as_me: error: \"could not find thread libraries\"" >&2;} - { (exit 1); exit 1; }; } -fi - -fi - -fi - -fi - -fi - - ;; - esac -fi - -if $use_threads -then - if test "X$GCC" = "Xyes"; then - case "$host" in - *-freebsd*) - CC="$CC -pthread" - CCOPT="$CCOPT -pthread" - STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE" - ;; - *-openbsd*) - CC="$CC -pthread" - CCOPT="$CCOPT -pthread" - ;; - *-solaris*) - LIBS="$LIBS -lthread" - ;; - *-ibm-aix*) - STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE" - ;; - esac - else - case $host in - *-dec-osf*) - CC="$CC -pthread" - CCOPT="$CCOPT -pthread" - ;; - *-solaris*) - CC="$CC -mt" - CCOPT="$CCOPT -mt" - ;; - *-ibm-aix*) - STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE" - ;; - *-UnixWare*) - CC="$CC -Kthread" - CCOPT="$CCOPT -Kthread" - ;; - esac - fi - cat >>confdefs.h <<\_ACEOF -#define _REENTRANT 1 -_ACEOF - - ALWAYS_DEFINES="-D_REENTRANT" - DO_PTHREADS="#define DO_PTHREADS 1" - WANT_IRS_THREADSGR_OBJS="\${WANT_IRS_THREADSGR_OBJS}" - WANT_IRS_THREADSPW_OBJS="\${WANT_IRS_THREADSPW_OBJS}" - case $host in - ia64-hp-hpux11.*) - WANT_IRS_THREADS_OBJS="";; - *) - WANT_IRS_THREADS_OBJS="\${WANT_IRS_THREADS_OBJS}";; - esac - WANT_THREADS_OBJS="\${WANT_THREADS_OBJS}" - thread_dir=pthreads - - # - # We'd like to use sigwait() too - # - echo "$as_me:$LINENO: checking for sigwait" >&5 -echo $ECHO_N "checking for sigwait... $ECHO_C" >&6 -if test "${ac_cv_func_sigwait+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define sigwait to an innocuous variant, in case declares sigwait. - For example, HP-UX 11i declares gettimeofday. */ -#define sigwait innocuous_sigwait - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char sigwait (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef sigwait - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sigwait (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_sigwait) || defined (__stub___sigwait) -choke me -#else -char (*f) () = sigwait; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != sigwait; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_sigwait=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_sigwait=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_sigwait" >&5 -echo "${ECHO_T}$ac_cv_func_sigwait" >&6 -if test $ac_cv_func_sigwait = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SIGWAIT 1 -_ACEOF - -else - echo "$as_me:$LINENO: checking for sigwait in -lc" >&5 -echo $ECHO_N "checking for sigwait in -lc... $ECHO_C" >&6 -if test "${ac_cv_lib_c_sigwait+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sigwait (); -int -main () -{ -sigwait (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_c_sigwait=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_c_sigwait=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_c_sigwait" >&5 -echo "${ECHO_T}$ac_cv_lib_c_sigwait" >&6 -if test $ac_cv_lib_c_sigwait = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SIGWAIT 1 -_ACEOF - -else - echo "$as_me:$LINENO: checking for sigwait in -lpthread" >&5 -echo $ECHO_N "checking for sigwait in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread_sigwait+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sigwait (); -int -main () -{ -sigwait (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread_sigwait=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread_sigwait=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_sigwait" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread_sigwait" >&6 -if test $ac_cv_lib_pthread_sigwait = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SIGWAIT 1 -_ACEOF - -else - echo "$as_me:$LINENO: checking for _Psigwait in -lpthread" >&5 -echo $ECHO_N "checking for _Psigwait in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread__Psigwait+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _Psigwait (); -int -main () -{ -_Psigwait (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread__Psigwait=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread__Psigwait=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread__Psigwait" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread__Psigwait" >&6 -if test $ac_cv_lib_pthread__Psigwait = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SIGWAIT 1 -_ACEOF - -fi - -fi - -fi - -fi - - - echo "$as_me:$LINENO: checking for pthread_attr_getstacksize" >&5 -echo $ECHO_N "checking for pthread_attr_getstacksize... $ECHO_C" >&6 -if test "${ac_cv_func_pthread_attr_getstacksize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define pthread_attr_getstacksize to an innocuous variant, in case declares pthread_attr_getstacksize. - For example, HP-UX 11i declares gettimeofday. */ -#define pthread_attr_getstacksize innocuous_pthread_attr_getstacksize - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char pthread_attr_getstacksize (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef pthread_attr_getstacksize - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_attr_getstacksize (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_pthread_attr_getstacksize) || defined (__stub___pthread_attr_getstacksize) -choke me -#else -char (*f) () = pthread_attr_getstacksize; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != pthread_attr_getstacksize; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_pthread_attr_getstacksize=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_pthread_attr_getstacksize=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_pthread_attr_getstacksize" >&5 -echo "${ECHO_T}$ac_cv_func_pthread_attr_getstacksize" >&6 -if test $ac_cv_func_pthread_attr_getstacksize = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1 -_ACEOF - -fi - - - # - # Additional OS-specific issues related to pthreads and sigwait. - # - case "$host" in - # - # One more place to look for sigwait. - # - *-freebsd*) - echo "$as_me:$LINENO: checking for sigwait in -lc_r" >&5 -echo $ECHO_N "checking for sigwait in -lc_r... $ECHO_C" >&6 -if test "${ac_cv_lib_c_r_sigwait+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sigwait (); -int -main () -{ -sigwait (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_c_r_sigwait=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_c_r_sigwait=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_sigwait" >&5 -echo "${ECHO_T}$ac_cv_lib_c_r_sigwait" >&6 -if test $ac_cv_lib_c_r_sigwait = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SIGWAIT 1 -_ACEOF - -fi - - ;; - # - # BSDI 3.0 through 4.0.1 needs pthread_init() to be - # called before certain pthreads calls. This is deprecated - # in BSD/OS 4.1. - # - *-bsdi3.*|*-bsdi4.0*) - cat >>confdefs.h <<\_ACEOF -#define NEED_PTHREAD_INIT 1 -_ACEOF - - ;; - # - # LinuxThreads requires some changes to the way we - # deal with signals. - # - *-linux*) - cat >>confdefs.h <<\_ACEOF -#define HAVE_LINUXTHREADS 1 -_ACEOF - - ;; - # - # Ensure the right sigwait() semantics on Solaris and make - # sure we call pthread_setconcurrency. - # - *-solaris*) - cat >>confdefs.h <<\_ACEOF -#define _POSIX_PTHREAD_SEMANTICS 1 -_ACEOF - - echo "$as_me:$LINENO: checking for pthread_setconcurrency" >&5 -echo $ECHO_N "checking for pthread_setconcurrency... $ECHO_C" >&6 -if test "${ac_cv_func_pthread_setconcurrency+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define pthread_setconcurrency to an innocuous variant, in case declares pthread_setconcurrency. - For example, HP-UX 11i declares gettimeofday. */ -#define pthread_setconcurrency innocuous_pthread_setconcurrency - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char pthread_setconcurrency (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef pthread_setconcurrency - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_setconcurrency (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_pthread_setconcurrency) || defined (__stub___pthread_setconcurrency) -choke me -#else -char (*f) () = pthread_setconcurrency; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != pthread_setconcurrency; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_pthread_setconcurrency=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_pthread_setconcurrency=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_pthread_setconcurrency" >&5 -echo "${ECHO_T}$ac_cv_func_pthread_setconcurrency" >&6 -if test $ac_cv_func_pthread_setconcurrency = yes; then - cat >>confdefs.h <<\_ACEOF -#define CALL_PTHREAD_SETCONCURRENCY 1 -_ACEOF - -fi - - cat >>confdefs.h <<\_ACEOF -#define POSIX_GETPWUID_R 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define POSIX_GETPWNAM_R 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define POSIX_GETGRGID_R 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define POSIX_GETGRNAM_R 1 -_ACEOF - - ;; - *hpux11*) - cat >>confdefs.h <<\_ACEOF -#define NEED_ENDNETGRENT_R 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define _PTHREADS_DRAFT4 1 -_ACEOF - - ;; - # - # UnixWare does things its own way. - # - *-UnixWare*) - cat >>confdefs.h <<\_ACEOF -#define HAVE_UNIXWARE_SIGWAIT 1 -_ACEOF - - ;; - esac - - # - # Look for sysconf to allow detection of the number of processors. - # - echo "$as_me:$LINENO: checking for sysconf" >&5 -echo $ECHO_N "checking for sysconf... $ECHO_C" >&6 -if test "${ac_cv_func_sysconf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define sysconf to an innocuous variant, in case declares sysconf. - For example, HP-UX 11i declares gettimeofday. */ -#define sysconf innocuous_sysconf - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char sysconf (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef sysconf - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sysconf (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_sysconf) || defined (__stub___sysconf) -choke me -#else -char (*f) () = sysconf; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != sysconf; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_sysconf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_sysconf=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_sysconf" >&5 -echo "${ECHO_T}$ac_cv_func_sysconf" >&6 -if test $ac_cv_func_sysconf = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SYSCONF 1 -_ACEOF - -fi - - -else - ALWAYS_DEFINES="" - DO_PTHREADS="#undef DO_PTHREADS" - WANT_IRS_THREADSGR_OBJS="" - WANT_IRS_THREADSPW_OBJS="" - WANT_IRS_THREADS_OBJS="" - WANT_THREADS_OBJS="" - thread_dir=nothreads -fi - - - - - - - - -echo "$as_me:$LINENO: checking for strlcat" >&5 -echo $ECHO_N "checking for strlcat... $ECHO_C" >&6 -if test "${ac_cv_func_strlcat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define strlcat to an innocuous variant, in case declares strlcat. - For example, HP-UX 11i declares gettimeofday. */ -#define strlcat innocuous_strlcat - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strlcat (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef strlcat - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strlcat (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strlcat) || defined (__stub___strlcat) -choke me -#else -char (*f) () = strlcat; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != strlcat; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strlcat=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_strlcat=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strlcat" >&5 -echo "${ECHO_T}$ac_cv_func_strlcat" >&6 -if test $ac_cv_func_strlcat = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_STRLCAT 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for memmove" >&5 -echo $ECHO_N "checking for memmove... $ECHO_C" >&6 -if test "${ac_cv_func_memmove+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define memmove to an innocuous variant, in case declares memmove. - For example, HP-UX 11i declares gettimeofday. */ -#define memmove innocuous_memmove - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char memmove (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef memmove - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char memmove (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_memmove) || defined (__stub___memmove) -choke me -#else -char (*f) () = memmove; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != memmove; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_memmove=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_memmove=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_memmove" >&5 -echo "${ECHO_T}$ac_cv_func_memmove" >&6 -if test $ac_cv_func_memmove = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_MEMMOVE 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for memchr" >&5 -echo $ECHO_N "checking for memchr... $ECHO_C" >&6 -if test "${ac_cv_func_memchr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define memchr to an innocuous variant, in case declares memchr. - For example, HP-UX 11i declares gettimeofday. */ -#define memchr innocuous_memchr - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char memchr (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef memchr - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char memchr (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_memchr) || defined (__stub___memchr) -choke me -#else -char (*f) () = memchr; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != memchr; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_memchr=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_memchr=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_memchr" >&5 -echo "${ECHO_T}$ac_cv_func_memchr" >&6 -if test $ac_cv_func_memchr = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_MEMCHR 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for if_nametoindex" >&5 -echo $ECHO_N "checking for if_nametoindex... $ECHO_C" >&6 -if test "${ac_cv_func_if_nametoindex+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define if_nametoindex to an innocuous variant, in case declares if_nametoindex. - For example, HP-UX 11i declares gettimeofday. */ -#define if_nametoindex innocuous_if_nametoindex - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char if_nametoindex (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef if_nametoindex - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char if_nametoindex (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_if_nametoindex) || defined (__stub___if_nametoindex) -choke me -#else -char (*f) () = if_nametoindex; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != if_nametoindex; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_if_nametoindex=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_if_nametoindex=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_if_nametoindex" >&5 -echo "${ECHO_T}$ac_cv_func_if_nametoindex" >&6 -if test $ac_cv_func_if_nametoindex = yes; then - USE_IFNAMELINKID="#define USE_IFNAMELINKID 1" -else - USE_IFNAMELINKID="#undef USE_IFNAMELINKID" -fi - - - -ISC_THREAD_DIR=$thread_dir - - -echo "$as_me:$LINENO: checking for daemon" >&5 -echo $ECHO_N "checking for daemon... $ECHO_C" >&6 -if test "${ac_cv_func_daemon+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define daemon to an innocuous variant, in case declares daemon. - For example, HP-UX 11i declares gettimeofday. */ -#define daemon innocuous_daemon - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char daemon (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef daemon - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char daemon (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_daemon) || defined (__stub___daemon) -choke me -#else -char (*f) () = daemon; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != daemon; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_daemon=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_daemon=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_daemon" >&5 -echo "${ECHO_T}$ac_cv_func_daemon" >&6 -if test $ac_cv_func_daemon = yes; then - DAEMON_OBJS="" NEED_DAEMON="#undef NEED_DAEMON" - -else - DAEMON_OBJS="\${DAEMON_OBJS}" NEED_DAEMON="#define NEED_DAEMON 1" - -fi - - - - -echo "$as_me:$LINENO: checking for strsep" >&5 -echo $ECHO_N "checking for strsep... $ECHO_C" >&6 -if test "${ac_cv_func_strsep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define strsep to an innocuous variant, in case declares strsep. - For example, HP-UX 11i declares gettimeofday. */ -#define strsep innocuous_strsep - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strsep (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef strsep - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strsep (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strsep) || defined (__stub___strsep) -choke me -#else -char (*f) () = strsep; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != strsep; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strsep=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_strsep=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strsep" >&5 -echo "${ECHO_T}$ac_cv_func_strsep" >&6 -if test $ac_cv_func_strsep = yes; then - STRSEP_OBJS="" NEED_STRSEP="#undef NEED_STRSEP" - -else - STRSEP_OBJS="\${STRSEP_OBJS}" NEED_STRSEP="#define NEED_STRSEP 1" - -fi - - - - -echo "$as_me:$LINENO: checking for strerror" >&5 -echo $ECHO_N "checking for strerror... $ECHO_C" >&6 -if test "${ac_cv_func_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define strerror to an innocuous variant, in case declares strerror. - For example, HP-UX 11i declares gettimeofday. */ -#define strerror innocuous_strerror - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strerror (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef strerror - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strerror) || defined (__stub___strerror) -choke me -#else -char (*f) () = strerror; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != strerror; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strerror=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_strerror=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strerror" >&5 -echo "${ECHO_T}$ac_cv_func_strerror" >&6 -if test $ac_cv_func_strerror = yes; then - NEED_STRERROR="#undef NEED_STRERROR" -else - NEED_STRERROR="#define NEED_STRERROR 1" -fi - - - -# -# flockfile is usually provided by pthreads, but we may want to use it -# even if compiled with --disable-threads. -# -echo "$as_me:$LINENO: checking for flockfile" >&5 -echo $ECHO_N "checking for flockfile... $ECHO_C" >&6 -if test "${ac_cv_func_flockfile+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define flockfile to an innocuous variant, in case declares flockfile. - For example, HP-UX 11i declares gettimeofday. */ -#define flockfile innocuous_flockfile - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char flockfile (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef flockfile - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char flockfile (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_flockfile) || defined (__stub___flockfile) -choke me -#else -char (*f) () = flockfile; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != flockfile; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_flockfile=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_flockfile=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_flockfile" >&5 -echo "${ECHO_T}$ac_cv_func_flockfile" >&6 -if test $ac_cv_func_flockfile = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_FLOCKFILE 1 -_ACEOF - -fi - - -# -# Indicate what the final decision was regarding threads. -# -echo "$as_me:$LINENO: checking whether to build with threads" >&5 -echo $ECHO_N "checking whether to build with threads... $ECHO_C" >&6 -if $use_threads; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -# -# End of pthreads stuff. -# - -# -# Additional compiler settings. -# -MKDEPCC="$CC" -MKDEPCFLAGS="-M" -IRIX_DNSSEC_WARNINGS_HACK="" - -if test "X$GCC" = "Xyes"; then - echo "$as_me:$LINENO: checking if \"$CC\" supports -fno-strict-aliasing" >&5 -echo $ECHO_N "checking if \"$CC\" supports -fno-strict-aliasing... $ECHO_C" >&6 - SAVE_CFLAGS=$CFLAGS - CFLAGS=-fno-strict-aliasing - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - FNOSTRICTALIASING=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -FNOSTRICTALIASING=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$SAVE_CFLAGS - if test "$FNOSTRICTALIASING" = "yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing" - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith" - fi -else - case $host in - *-dec-osf*) - CC="$CC -std" - CCOPT="$CCOPT -std" - MKDEPCC="$CC" - ;; - *-hp-hpux*) - CC="$CC -Ae -z" - # The version of the C compiler that constantly warns about - # 'const' as well as alignment issues is unfortunately not - # able to be discerned via the version of the operating - # system, nor does cc have a version flag. - case "`$CC +W 123 2>&1`" in - *Unknown?option*) - STD_CWARNINGS="+w1" - ;; - *) - # Turn off the pointlessly noisy warnings. - STD_CWARNINGS="+w1 +W 474,530,2193,2236" - ;; - esac - CCOPT="$CCOPT -Ae -z" - LIBS="-Wl,+vnocompatwarnings $LIBS" -MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>&1 | awk '"'"'BEGIN {colon=0; rec="";} { for (i = 0 ; i < NF; i++) { if (colon && a$i) continue; if ($i == "\\") continue; if (!colon) { rec = $i continue; } if ($i == ":") { rec = rec " :" colon = 1 continue; } if (length(rec $i) > 76) { print rec " \\"; rec = "\t" $i; a$i = 1; } else { rec = rec " " $i a$i = 1; } } } END {print rec}'"'"' >>$TMP' - MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP' - ;; - *-sgi-irix*) - STD_CWARNINGS="-fullwarn -woff 1209" - # - # Silence more than 250 instances of - # "prototyped function redeclared without prototype" - # and 11 instances of - # "variable ... was set but never used" - # from lib/dns/sec/openssl. - # - IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552" - ;; - *-solaris*) - MKDEPCFLAGS="-xM" - ;; - *-UnixWare*) - CC="$CC -w" - ;; - esac -fi - -# -# _GNU_SOURCE is needed to access the fd_bits field of struct fd_set, which -# is supposed to be opaque. -# -case $host in - *linux*) - STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE" - ;; -esac - - - - - - -# -# NLS -# -echo "$as_me:$LINENO: checking for catgets" >&5 -echo $ECHO_N "checking for catgets... $ECHO_C" >&6 -if test "${ac_cv_func_catgets+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define catgets to an innocuous variant, in case declares catgets. - For example, HP-UX 11i declares gettimeofday. */ -#define catgets innocuous_catgets - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char catgets (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef catgets - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char catgets (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_catgets) || defined (__stub___catgets) -choke me -#else -char (*f) () = catgets; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != catgets; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_catgets=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_catgets=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_catgets" >&5 -echo "${ECHO_T}$ac_cv_func_catgets" >&6 -if test $ac_cv_func_catgets = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_CATGETS 1 -_ACEOF - -fi - - -# -# -lxnet buys us one big porting headache... standards, gotta love 'em. -# -# AC_CHECK_LIB(xnet, socket, , -# AC_CHECK_LIB(socket, socket) -# AC_CHECK_LIB(nsl, inet_ntoa) -# ) -# -# Use this for now, instead: -# -case "$host" in - mips-sgi-irix*) - ;; - ia64-hp-hpux11.*) - -echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 -echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 -if test "${ac_cv_lib_socket_socket+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char socket (); -int -main () -{ -socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_socket_socket=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_socket_socket=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 -if test $ac_cv_lib_socket_socket = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -fi - - -echo "$as_me:$LINENO: checking for inet_ntoa in -lnsl" >&5 -echo $ECHO_N "checking for inet_ntoa in -lnsl... $ECHO_C" >&6 -if test "${ac_cv_lib_nsl_inet_ntoa+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char inet_ntoa (); -int -main () -{ -inet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_nsl_inet_ntoa=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_nsl_inet_ntoa=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_inet_ntoa" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_inet_ntoa" >&6 -if test $ac_cv_lib_nsl_inet_ntoa = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNSL 1 -_ACEOF - - LIBS="-lnsl $LIBS" - -fi - - ;; - *) - -echo "$as_me:$LINENO: checking for gethostbyname_r in -ld4r" >&5 -echo $ECHO_N "checking for gethostbyname_r in -ld4r... $ECHO_C" >&6 -if test "${ac_cv_lib_d4r_gethostbyname_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ld4r $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gethostbyname_r (); -int -main () -{ -gethostbyname_r (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_d4r_gethostbyname_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_d4r_gethostbyname_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_d4r_gethostbyname_r" >&5 -echo "${ECHO_T}$ac_cv_lib_d4r_gethostbyname_r" >&6 -if test $ac_cv_lib_d4r_gethostbyname_r = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBD4R 1 -_ACEOF - - LIBS="-ld4r $LIBS" - -fi - - -echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 -echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 -if test "${ac_cv_lib_socket_socket+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char socket (); -int -main () -{ -socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_socket_socket=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_socket_socket=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 -if test $ac_cv_lib_socket_socket = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -fi - - -echo "$as_me:$LINENO: checking for inet_ntoa in -lnsl" >&5 -echo $ECHO_N "checking for inet_ntoa in -lnsl... $ECHO_C" >&6 -if test "${ac_cv_lib_nsl_inet_ntoa+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char inet_ntoa (); -int -main () -{ -inet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_nsl_inet_ntoa=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_nsl_inet_ntoa=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_inet_ntoa" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_inet_ntoa" >&6 -if test $ac_cv_lib_nsl_inet_ntoa = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNSL 1 -_ACEOF - - LIBS="-lnsl $LIBS" - -fi - - ;; -esac - -# -# Purify support -# -echo "$as_me:$LINENO: checking whether to use purify" >&5 -echo $ECHO_N "checking whether to use purify... $ECHO_C" >&6 - -# Check whether --with-purify or --without-purify was given. -if test "${with_purify+set}" = set; then - withval="$with_purify" - use_purify="$withval" -else - use_purify="no" -fi; - -case "$use_purify" in - no) - ;; - yes) - # Extract the first word of "purify", so it can be a program name with args. -set dummy purify; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_purify_path+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $purify_path in - [\\/]* | ?:[\\/]*) - ac_cv_path_purify_path="$purify_path" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_purify_path="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_purify_path" && ac_cv_path_purify_path="purify" - ;; -esac -fi -purify_path=$ac_cv_path_purify_path - -if test -n "$purify_path"; then - echo "$as_me:$LINENO: result: $purify_path" >&5 -echo "${ECHO_T}$purify_path" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - ;; - *) - purify_path="$use_purify" - ;; -esac - -case "$use_purify" in - no) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - PURIFY="" - ;; - *) - if test -f $purify_path || test $purify_path = purify; then - echo "$as_me:$LINENO: result: $purify_path" >&5 -echo "${ECHO_T}$purify_path" >&6 - PURIFYFLAGS="`echo $PURIFYOPTIONS`" - PURIFY="$purify_path $PURIFYFLAGS" - else - { { echo "$as_me:$LINENO: error: $purify_path not found. - -Please choose the proper path with the following command: - - configure --with-purify=PATH -" >&5 -echo "$as_me: error: $purify_path not found. - -Please choose the proper path with the following command: - - configure --with-purify=PATH -" >&2;} - { (exit 1); exit 1; }; } - fi - ;; -esac - - - -# -# GNU libtool support -# - -# Check whether --with-libtool or --without-libtool was given. -if test "${with_libtool+set}" = set; then - withval="$with_libtool" - use_libtool="$withval" -else - use_libtool="no" -fi; - -case $use_libtool in - yes) - # Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi; - -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" = set; then - enableval="$enable_static" - p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi; - -# Check whether --enable-fast-install or --disable-fast-install was given. -if test "${enable_fast_install+set}" = set; then - enableval="$enable_fast_install" - p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi; - -echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 -if test "${lt_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && break - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done - -fi - -SED=$lt_cv_path_SED -echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6 - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld - - -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 -if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_ld_reload_flag='-r' -fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - darwin*) - if test "$GCC" = yes; then - reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 -if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/${ac_tool_prefix}nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - esac - fi - done - IFS="$lt_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi -fi -echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6 -NM="$lt_cv_path_NM" - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - -echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 -echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump'. - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | kfreebsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case "$host_cpu" in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 8389 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 -if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -lt_cv_cc_needs_belf=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - -esac - -need_locks="$enable_libtool_lock" - - - -for ac_header in dlfcn.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CXX" && break -done -test -n "$ac_ct_CXX" || ac_ct_CXX="g++" - - CXX=$ac_ct_CXX -fi - - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C++ compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 -GXX=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -CXXFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cxx_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cxx_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cxx_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6 -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -fi - - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -echo "${ECHO_T}$ac_ct_F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_F77" && break -done - - F77=$ac_ct_F77 -fi - - -# Provide some information about the compiler. -echo "$as_me:9386:" \ - "checking for Fortran 77 compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 -if test "${ac_cv_f77_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} -ac_save_FFLAGS=$FFLAGS -FFLAGS= -echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_f77_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_f77_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_f77_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 -if test "$ac_test_FFLAGS" = set; then - FFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g = yes; then - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -G77=`test $ac_compiler_gnu = yes && echo yes` -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! - -# find the maximum length of command line arguments -echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* ) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for *BSD - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - ;; - - *) - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 -else - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 -fi - - - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -linux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDGIRSTW]' - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris* | sysv5*) - symcode='[BDRT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6 -else - echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6 -fi - -echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6 -if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6 -objdir=$lt_cv_objdir - - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - AR=$ac_ct_AR -else - AR="$ac_cv_prog_AR" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -enable_dlopen=no -enable_win32_dll=no - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - - -# Check whether --with-pic or --without-pic was given. -if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" -else - pic_mode=default -fi; -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}\n' - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# -# Check for any special shared library compilation flags. -# -lt_prog_cc_shlib= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - lt_prog_cc_shlib='-belf' - ;; - esac -fi -if test -n "$lt_prog_cc_shlib"; then - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 -echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} - if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : - else - { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 -echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} - lt_cv_prog_cc_can_build_shared=no - fi -fi - - -# -# Check to make sure the static flag actually works. -# -echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6 -if test "${lt_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_prog_compiler_static" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - else - lt_prog_compiler_static_works=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 - -if test x"$lt_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10447: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:10451: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic='-qnocommon' - lt_prog_compiler_wl='-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic='-Kpic' - lt_prog_compiler_static='-dn' - ;; - - solaris*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10690: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:10694: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 - -if test x"$lt_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10750: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:10754: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag= - enable_shared_with_static_runtimes=no - archive_cmds= - archive_expsym_cmds= - old_archive_From_new_cmds= - old_archive_from_expsyms_cmds= - export_dynamic_flag_spec= - whole_archive_flag_spec= - thread_safe_flag_spec= - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - link_all_deplibs=unknown - hardcode_automatic=no - module_cmds= - module_expsym_cmds= - always_export_symbols=no - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test $supports_anon_versioning = yes; then - archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds="$tmp_archive_cmds" - fi - else - ld_shlibs=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - - if test "$GCC" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec=' ' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_libdir_separator=: - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - ia64*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_shlibpath_var=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - *) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld='-rpath $libdir' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - openbsd*) - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag=' -z text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6 -test "$ld_shlibs" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var" || \ - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6 - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# Report which libraries types will actually be built -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler \ - CC \ - LD \ - lt_prog_compiler_wl \ - lt_prog_compiler_pic \ - lt_prog_compiler_static \ - lt_prog_compiler_no_builtin_flag \ - export_dynamic_flag_spec \ - thread_safe_flag_spec \ - whole_archive_flag_spec \ - enable_shared_with_static_runtimes \ - old_archive_cmds \ - old_archive_from_new_cmds \ - predep_objects \ - postdep_objects \ - predeps \ - postdeps \ - compiler_lib_search_path \ - archive_cmds \ - archive_expsym_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - old_archive_from_expsyms_cmds \ - allow_undefined_flag \ - no_undefined_flag \ - export_symbols_cmds \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ - hardcode_automatic \ - module_cmds \ - module_expsym_cmds \ - lt_cv_prog_compiler_c_o \ - exclude_expsyms \ - include_expsyms; do - - case $var in - old_archive_cmds | \ - old_archive_from_new_cmds | \ - archive_cmds | \ - archive_expsym_cmds | \ - module_cmds | \ - module_expsym_cmds | \ - old_archive_from_expsyms_cmds | \ - export_symbols_cmds | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - { echo "$as_me:$LINENO: creating $ofile" >&5 -echo "$as_me: creating $ofile" >&6;} - - cat <<__EOF__ >> "$cfgfile" -#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="$SED -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU C compiler? -with_gcc=$GCC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# ### END LIBTOOL CONFIG - -__EOF__ - - - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - -# Check whether --with-tags or --without-tags was given. -if test "${with_tags+set}" = set; then - withval="$with_tags" - tagnames="$withval" -fi; - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} - else - { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} - fi - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in - "") ;; - *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 -echo "$as_me: error: invalid tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 -echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} - { (exit 1); exit 1; }; } - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - - -archive_cmds_need_lc_CXX=no -allow_undefined_flag_CXX= -always_export_symbols_CXX=no -archive_expsym_cmds_CXX= -export_dynamic_flag_spec_CXX= -hardcode_direct_CXX=no -hardcode_libdir_flag_spec_CXX= -hardcode_libdir_flag_spec_ld_CXX= -hardcode_libdir_separator_CXX= -hardcode_minus_L_CXX=no -hardcode_automatic_CXX=no -module_cmds_CXX= -module_expsym_cmds_CXX= -link_all_deplibs_CXX=unknown -old_archive_cmds_CXX=$old_archive_cmds -no_undefined_flag_CXX= -whole_archive_flag_spec_CXX= -enable_shared_with_static_runtimes_CXX=no - -# Dependencies to place before and after the object being linked: -predep_objects_CXX= -postdep_objects_CXX= -predeps_CXX= -postdeps_CXX= -compiler_lib_search_path_CXX= - -# Source file extension for C++ test sources. -ac_ext=cc - -# Object file extension for compiled C++ test sources. -objext=o -objext_CXX=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *) { return(0); }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -compiler_CXX=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' -else - lt_prog_compiler_no_builtin_flag_CXX= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ - grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_CXX= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -fi - -# PORTME: fill in a description of your system's C++ link characteristics -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 -ld_shlibs_CXX=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_CXX='' - hardcode_direct_CXX=yes - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct_CXX=yes - else - # We have old collect2 - hardcode_direct_CXX=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_CXX=yes - hardcode_libdir_flag_spec_CXX='-L$libdir' - hardcode_libdir_separator_CXX= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_CXX=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - - archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_CXX="-z nodefs" - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_CXX=' ${wl}-bernotok' - allow_undefined_flag_CXX=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_CXX=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX=' ' - archive_cmds_need_lc_CXX=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX='-L$libdir' - allow_undefined_flag_CXX=unsupported - always_export_symbols_CXX=no - enable_shared_with_static_runtimes_CXX=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs_CXX=no - fi - ;; - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_CXX=no - hardcode_direct_CXX=no - hardcode_automatic_CXX=yes - hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes ; then - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_CXX=no - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - ghcx) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - freebsd12*) - # C++ shared libraries reported to be fairly broken before switch to ELF - ld_shlibs_CXX=no - ;; - freebsd-elf*) - archive_cmds_need_lc_CXX=no - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - ld_shlibs_CXX=yes - ;; - gnu*) - ;; - hpux9*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC) - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_CXX='+b $libdir' - hardcode_libdir_separator_CXX=: - ;; - ia64*) - hardcode_libdir_flag_spec_CXX='-L$libdir' - ;; - *) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - ;; - esac - fi - case "$host_cpu" in - hppa*64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - ;; - ia64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - *) - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC) - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - irix5* | irix6*) - case $cc_basename in - CC) - # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - link_all_deplibs_CXX=yes - ;; - esac - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - ;; - linux*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - archive_cmds_need_lc_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - cxx) - # Compaq C++ - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - m88k*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - mvs*) - case $cc_basename in - cxx) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - ld_shlibs_CXX=no - ;; - openbsd*) - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - export_dynamic_flag_spec_CXX='${wl}-E' - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd='echo' - ;; - osf3*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx) - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx) - allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ - $rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - sco*) - archive_cmds_need_lc_CXX=no - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - lcc) - # Lucid - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_shlibpath_var_CXX=no - case $host_os in - solaris2.0-5 | solaris2.0-5.*) ;; - *) - # The C++ compiler is used as linker so we must use $wl - # flag to pass the commands to the underlying system - # linker. - # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - link_all_deplibs_CXX=yes - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' - ;; - gcx) - # Green Hills C++ Compiler - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - fi - - hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' - fi - ;; - esac - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - archive_cmds_need_lc_CXX=no - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; -esac -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" = no && can_build_shared=no - -GCC_CXX="$GXX" -LD_CXX="$LD" - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... - -cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" \ - || test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$compiler_lib_search_path_CXX"; then - compiler_lib_search_path_CXX="${prev}${p}" - else - compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$postdeps_CXX"; then - postdeps_CXX="${prev}${p}" - else - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi - ;; - - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$predep_objects_CXX"; then - predep_objects_CXX="$p" - else - predep_objects_CXX="$predep_objects_CXX $p" - fi - else - if test -z "$postdep_objects_CXX"; then - postdep_objects_CXX="$p" - else - postdep_objects_CXX="$postdep_objects_CXX $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling CXX test program" -fi - -$rm -f confest.$objext - -case " $postdeps_CXX " in -*" -lc "*) archive_cmds_need_lc_CXX=no ;; -esac - -lt_prog_compiler_wl_CXX= -lt_prog_compiler_pic_CXX= -lt_prog_compiler_static_CXX= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_CXX='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_CXX='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - lt_prog_compiler_pic_CXX= - ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_CXX=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - else - lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic_CXX='-qnocommon' - lt_prog_compiler_wl_CXX='-Wl,' - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++) - lt_prog_compiler_pic_CXX='-KPIC' - ;; - ghcx) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - if test "$host_cpu" != ia64; then - lt_prog_compiler_pic_CXX='+Z' - fi - ;; - aCC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_CXX='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux*) - case $cc_basename in - KCC) - # KAI C++ Compiler - lt_prog_compiler_wl_CXX='--backend -Wl,' - lt_prog_compiler_pic_CXX='-fPIC' - ;; - icpc) - # Intel C++ - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-static' - ;; - cxx) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx) - lt_prog_compiler_pic_CXX='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC) - lt_prog_compiler_wl_CXX='--backend -Wl,' - ;; - RCC) - # Rational C++ 2.4.1 - lt_prog_compiler_pic_CXX='-pic' - ;; - cxx) - # Digital/Compaq C++ - lt_prog_compiler_wl_CXX='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - sco*) - case $cc_basename in - CC) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - *) - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - gcx) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - lt_prog_compiler_pic_CXX='-pic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - lcc) - # Lucid - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - lt_prog_compiler_pic_CXX='-KPIC' - ;; - *) - ;; - esac - ;; - unixware*) - ;; - vxworks*) - ;; - *) - lt_prog_compiler_can_build_shared_CXX=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_CXX"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_CXX=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15230: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:15234: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_CXX=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 - -if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then - case $lt_prog_compiler_pic_CXX in - "" | " "*) ;; - *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; - esac -else - lt_prog_compiler_pic_CXX= - lt_prog_compiler_can_build_shared_CXX=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_CXX= - ;; - *) - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_CXX=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15290: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:15294: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_CXX=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" - ;; - cygwin* | mingw*) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_CXX" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_CXX=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_CXX in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_CXX - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_CXX - allow_undefined_flag_CXX= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_CXX=no - else - archive_cmds_need_lc_CXX=yes - fi - allow_undefined_flag_CXX=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_CXX= -if test -n "$hardcode_libdir_flag_spec_CXX" || \ - test -n "$runpath_var_CXX" || \ - test "X$hardcode_automatic_CXX" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_CXX" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && - test "$hardcode_minus_L_CXX" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_CXX=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_CXX=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_CXX=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -echo "${ECHO_T}$hardcode_action_CXX" >&6 - -if test "$hardcode_action_CXX" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_CXX \ - CC_CXX \ - LD_CXX \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ - lt_prog_compiler_static_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ - export_dynamic_flag_spec_CXX \ - thread_safe_flag_spec_CXX \ - whole_archive_flag_spec_CXX \ - enable_shared_with_static_runtimes_CXX \ - old_archive_cmds_CXX \ - old_archive_from_new_cmds_CXX \ - predep_objects_CXX \ - postdep_objects_CXX \ - predeps_CXX \ - postdeps_CXX \ - compiler_lib_search_path_CXX \ - archive_cmds_CXX \ - archive_expsym_cmds_CXX \ - postinstall_cmds_CXX \ - postuninstall_cmds_CXX \ - old_archive_from_expsyms_cmds_CXX \ - allow_undefined_flag_CXX \ - no_undefined_flag_CXX \ - export_symbols_cmds_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ - hardcode_automatic_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX; do - - case $var in - old_archive_cmds_CXX | \ - old_archive_from_new_cmds_CXX | \ - archive_cmds_CXX | \ - archive_expsym_cmds_CXX | \ - module_cmds_CXX | \ - module_expsym_cmds_CXX | \ - old_archive_from_expsyms_cmds_CXX | \ - export_symbols_cmds_CXX | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_CXX - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_CXX - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_CXX - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_CXX - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_CXX -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_CXX - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_CXX -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_CXX -archive_expsym_cmds=$lt_archive_expsym_cmds_CXX -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_CXX -module_expsym_cmds=$lt_module_expsym_cmds_CXX - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_CXX - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_CXX - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_CXX - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_CXX - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_CXX - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_CXX - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_CXX - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_CXX - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_CXX - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_CXX - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_CXX" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_CXX - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_CXX - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_CXX - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_CXX - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld - - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu - - -archive_cmds_need_lc_F77=no -allow_undefined_flag_F77= -always_export_symbols_F77=no -archive_expsym_cmds_F77= -export_dynamic_flag_spec_F77= -hardcode_direct_F77=no -hardcode_libdir_flag_spec_F77= -hardcode_libdir_flag_spec_ld_F77= -hardcode_libdir_separator_F77= -hardcode_minus_L_F77=no -hardcode_automatic_F77=no -module_cmds_F77= -module_expsym_cmds_F77= -link_all_deplibs_F77=unknown -old_archive_cmds_F77=$old_archive_cmds -no_undefined_flag_F77= -whole_archive_flag_spec_F77= -enable_shared_with_static_runtimes_F77=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -objext_F77=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=" subroutine t\n return\n end\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=" program t\n end\n" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -compiler_F77=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -aix4* | aix5*) - test "$enable_shared" = yes && enable_static=no - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -test "$ld_shlibs_F77" = no && can_build_shared=no - -GCC_F77="$G77" -LD_F77="$LD" - -lt_prog_compiler_wl_F77= -lt_prog_compiler_pic_F77= -lt_prog_compiler_static_F77= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_static_F77='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_F77='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_F77=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_F77=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_F77='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - else - lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic_F77='-qnocommon' - lt_prog_compiler_wl_F77='-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_F77='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_F77='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-static' - ;; - ccc*) - lt_prog_compiler_wl_F77='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_F77='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_F77='-Kpic' - lt_prog_compiler_static_F77='-dn' - ;; - - solaris*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_F77='-Qoption ld ' - lt_prog_compiler_pic_F77='-PIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_F77='-Kconform_pic' - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_F77='-pic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_F77=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_F77"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_F77=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_F77" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17586: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:17590: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_F77=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 - -if test x"$lt_prog_compiler_pic_works_F77" = xyes; then - case $lt_prog_compiler_pic_F77 in - "" | " "*) ;; - *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; - esac -else - lt_prog_compiler_pic_F77= - lt_prog_compiler_can_build_shared_F77=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_F77= - ;; - *) - lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_F77=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17646: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:17650: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_F77=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag_F77= - enable_shared_with_static_runtimes_F77=no - archive_cmds_F77= - archive_expsym_cmds_F77= - old_archive_From_new_cmds_F77= - old_archive_from_expsyms_cmds_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - thread_safe_flag_spec_F77= - hardcode_libdir_flag_spec_F77= - hardcode_libdir_flag_spec_ld_F77= - hardcode_libdir_separator_F77= - hardcode_direct_F77=no - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=unsupported - link_all_deplibs_F77=unknown - hardcode_automatic_F77=no - module_cmds_F77= - module_expsym_cmds_F77= - always_export_symbols_F77=no - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_F77= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_F77=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_F77=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_F77=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_F77=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_F77='-L$libdir' - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=no - enable_shared_with_static_runtimes_F77=yes - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_F77=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - sunos4*) - archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds_F77="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_F77="$tmp_archive_cmds" - fi - else - ld_shlibs_F77=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - - if test "$ld_shlibs_F77" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_F77='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_F77= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=yes - archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_F77=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_F77=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_F77='' - hardcode_direct_F77=yes - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - - if test "$GCC" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct_F77=yes - else - # We have old collect2 - hardcode_direct_F77=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_F77=yes - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_libdir_separator_F77= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_F77=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_F77='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_F77="-z nodefs" - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_F77=' ${wl}-bernotok' - allow_undefined_flag_F77=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_F77=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_F77=' ' - archive_cmds_need_lc_F77=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_F77=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec_F77=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_F77=' ' - allow_undefined_flag_F77=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_F77='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_F77=yes - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_F77=no - hardcode_direct_F77=no - hardcode_automatic_F77=yes - hardcode_shlibpath_var_F77=unsupported - whole_archive_flag_spec_F77='' - link_all_deplibs_F77=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_F77=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - freebsd1*) - ld_shlibs_F77=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_F77='+b $libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - ;; - ia64*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - *) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - link_all_deplibs_F77=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - newsos6) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_shlibpath_var_F77=no - ;; - - openbsd*) - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - ;; - *) - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - allow_undefined_flag_F77=unsupported - archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_F77='-rpath $libdir' - fi - hardcode_libdir_separator_F77=: - ;; - - sco3.2v5*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag_F77=' -z text' - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_shlibpath_var_F77=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs_F77=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_F77='$CC -r -o $output$reload_objs' - hardcode_direct_F77=no - ;; - motorola) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv4.3*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_F77=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_F77='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv5*) - no_undefined_flag_F77=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_F77= - hardcode_shlibpath_var_F77=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - *) - ld_shlibs_F77=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -echo "${ECHO_T}$ld_shlibs_F77" >&6 -test "$ld_shlibs_F77" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_F77" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_F77=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_F77 in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_F77 - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_F77 - allow_undefined_flag_F77= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_F77=no - else - archive_cmds_need_lc_F77=yes - fi - allow_undefined_flag_F77=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_F77= -if test -n "$hardcode_libdir_flag_spec_F77" || \ - test -n "$runpath_var_F77" || \ - test "X$hardcode_automatic_F77" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_F77" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && - test "$hardcode_minus_L_F77" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_F77=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_F77=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_F77=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -echo "${ECHO_T}$hardcode_action_F77" >&6 - -if test "$hardcode_action_F77" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_F77 \ - CC_F77 \ - LD_F77 \ - lt_prog_compiler_wl_F77 \ - lt_prog_compiler_pic_F77 \ - lt_prog_compiler_static_F77 \ - lt_prog_compiler_no_builtin_flag_F77 \ - export_dynamic_flag_spec_F77 \ - thread_safe_flag_spec_F77 \ - whole_archive_flag_spec_F77 \ - enable_shared_with_static_runtimes_F77 \ - old_archive_cmds_F77 \ - old_archive_from_new_cmds_F77 \ - predep_objects_F77 \ - postdep_objects_F77 \ - predeps_F77 \ - postdeps_F77 \ - compiler_lib_search_path_F77 \ - archive_cmds_F77 \ - archive_expsym_cmds_F77 \ - postinstall_cmds_F77 \ - postuninstall_cmds_F77 \ - old_archive_from_expsyms_cmds_F77 \ - allow_undefined_flag_F77 \ - no_undefined_flag_F77 \ - export_symbols_cmds_F77 \ - hardcode_libdir_flag_spec_F77 \ - hardcode_libdir_flag_spec_ld_F77 \ - hardcode_libdir_separator_F77 \ - hardcode_automatic_F77 \ - module_cmds_F77 \ - module_expsym_cmds_F77 \ - lt_cv_prog_compiler_c_o_F77 \ - exclude_expsyms_F77 \ - include_expsyms_F77; do - - case $var in - old_archive_cmds_F77 | \ - old_archive_from_new_cmds_F77 | \ - archive_cmds_F77 | \ - archive_expsym_cmds_F77 | \ - module_cmds_F77 | \ - module_expsym_cmds_F77 | \ - old_archive_from_expsyms_cmds_F77 | \ - export_symbols_cmds_F77 | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_F77 - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_F77 - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_F77 - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_F77 - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_F77 - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_F77 -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_F77 - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_F77 -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_F77 -archive_expsym_cmds=$lt_archive_expsym_cmds_F77 -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_F77 -module_expsym_cmds=$lt_module_expsym_cmds_F77 - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_F77 - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_F77 - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_F77 - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_F77 - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_F77 - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_F77 - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_F77 - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_F77 - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_F77 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_F77 - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_F77" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_F77 - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_F77 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_F77 - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_F77 - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - - - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -objext_GCJ=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -compiler_GCJ=$CC - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -archive_cmds_need_lc_GCJ=no - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... - -lt_prog_compiler_no_builtin_flag_GCJ= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:19685: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:19689: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl_GCJ= -lt_prog_compiler_pic_GCJ= -lt_prog_compiler_static_GCJ= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_static_GCJ='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_GCJ='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_GCJ=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_GCJ=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_GCJ='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - else - lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic_GCJ='-qnocommon' - lt_prog_compiler_wl_GCJ='-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-static' - ;; - ccc*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_GCJ='-Kpic' - lt_prog_compiler_static_GCJ='-dn' - ;; - - solaris*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_GCJ='-Qoption ld ' - lt_prog_compiler_pic_GCJ='-PIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_GCJ='-Kconform_pic' - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_GCJ='-pic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_GCJ=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_GCJ"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_GCJ=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_GCJ" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:19928: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:19932: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_GCJ=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 - -if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then - case $lt_prog_compiler_pic_GCJ in - "" | " "*) ;; - *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; - esac -else - lt_prog_compiler_pic_GCJ= - lt_prog_compiler_can_build_shared_GCJ=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_GCJ= - ;; - *) - lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_GCJ=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:19988: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:19992: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_GCJ=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag_GCJ= - enable_shared_with_static_runtimes_GCJ=no - archive_cmds_GCJ= - archive_expsym_cmds_GCJ= - old_archive_From_new_cmds_GCJ= - old_archive_from_expsyms_cmds_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - thread_safe_flag_spec_GCJ= - hardcode_libdir_flag_spec_GCJ= - hardcode_libdir_flag_spec_ld_GCJ= - hardcode_libdir_separator_GCJ= - hardcode_direct_GCJ=no - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=unsupported - link_all_deplibs_GCJ=unknown - hardcode_automatic_GCJ=no - module_cmds_GCJ= - module_expsym_cmds_GCJ= - always_export_symbols_GCJ=no - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_GCJ= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_GCJ=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_GCJ=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_GCJ=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_GCJ=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_GCJ='-L$libdir' - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=no - enable_shared_with_static_runtimes_GCJ=yes - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_GCJ=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - sunos4*) - archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds_GCJ="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_GCJ="$tmp_archive_cmds" - fi - else - ld_shlibs_GCJ=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - - if test "$ld_shlibs_GCJ" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_GCJ= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=yes - archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_GCJ=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_GCJ=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_GCJ='' - hardcode_direct_GCJ=yes - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - - if test "$GCC" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct_GCJ=yes - else - # We have old collect2 - hardcode_direct_GCJ=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_GCJ=yes - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_libdir_separator_GCJ= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_GCJ=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_GCJ='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_GCJ="-z nodefs" - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_GCJ=' ${wl}-bernotok' - allow_undefined_flag_GCJ=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_GCJ=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_GCJ=' ' - archive_cmds_need_lc_GCJ=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_GCJ=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec_GCJ=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_GCJ=' ' - allow_undefined_flag_GCJ=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_GCJ='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_GCJ=yes - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_GCJ=no - hardcode_direct_GCJ=no - hardcode_automatic_GCJ=yes - hardcode_shlibpath_var_GCJ=unsupported - whole_archive_flag_spec_GCJ='' - link_all_deplibs_GCJ=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_GCJ=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - freebsd1*) - ld_shlibs_GCJ=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - ;; - ia64*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - *) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - link_all_deplibs_GCJ=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - newsos6) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_shlibpath_var_GCJ=no - ;; - - openbsd*) - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - ;; - *) - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - allow_undefined_flag_GCJ=unsupported - archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_GCJ='-rpath $libdir' - fi - hardcode_libdir_separator_GCJ=: - ;; - - sco3.2v5*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag_GCJ=' -z text' - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_shlibpath_var_GCJ=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs_GCJ=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_GCJ='$CC -r -o $output$reload_objs' - hardcode_direct_GCJ=no - ;; - motorola) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4.3*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_GCJ=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_GCJ='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv5*) - no_undefined_flag_GCJ=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_GCJ= - hardcode_shlibpath_var_GCJ=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - *) - ld_shlibs_GCJ=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -echo "${ECHO_T}$ld_shlibs_GCJ" >&6 -test "$ld_shlibs_GCJ" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_GCJ" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_GCJ=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_GCJ in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_GCJ - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ - allow_undefined_flag_GCJ= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_GCJ=no - else - archive_cmds_need_lc_GCJ=yes - fi - allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_GCJ= -if test -n "$hardcode_libdir_flag_spec_GCJ" || \ - test -n "$runpath_var_GCJ" || \ - test "X$hardcode_automatic_GCJ" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && - test "$hardcode_minus_L_GCJ" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_GCJ=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_GCJ=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6 - -if test "$hardcode_action_GCJ" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_GCJ \ - CC_GCJ \ - LD_GCJ \ - lt_prog_compiler_wl_GCJ \ - lt_prog_compiler_pic_GCJ \ - lt_prog_compiler_static_GCJ \ - lt_prog_compiler_no_builtin_flag_GCJ \ - export_dynamic_flag_spec_GCJ \ - thread_safe_flag_spec_GCJ \ - whole_archive_flag_spec_GCJ \ - enable_shared_with_static_runtimes_GCJ \ - old_archive_cmds_GCJ \ - old_archive_from_new_cmds_GCJ \ - predep_objects_GCJ \ - postdep_objects_GCJ \ - predeps_GCJ \ - postdeps_GCJ \ - compiler_lib_search_path_GCJ \ - archive_cmds_GCJ \ - archive_expsym_cmds_GCJ \ - postinstall_cmds_GCJ \ - postuninstall_cmds_GCJ \ - old_archive_from_expsyms_cmds_GCJ \ - allow_undefined_flag_GCJ \ - no_undefined_flag_GCJ \ - export_symbols_cmds_GCJ \ - hardcode_libdir_flag_spec_GCJ \ - hardcode_libdir_flag_spec_ld_GCJ \ - hardcode_libdir_separator_GCJ \ - hardcode_automatic_GCJ \ - module_cmds_GCJ \ - module_expsym_cmds_GCJ \ - lt_cv_prog_compiler_c_o_GCJ \ - exclude_expsyms_GCJ \ - include_expsyms_GCJ; do - - case $var in - old_archive_cmds_GCJ | \ - old_archive_from_new_cmds_GCJ | \ - archive_cmds_GCJ | \ - archive_expsym_cmds_GCJ | \ - module_cmds_GCJ | \ - module_expsym_cmds_GCJ | \ - old_archive_from_expsyms_cmds_GCJ | \ - export_symbols_cmds_GCJ | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_GCJ - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_GCJ - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_GCJ - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_GCJ - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_GCJ - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_GCJ -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_GCJ - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_GCJ -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_GCJ -archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_GCJ -module_expsym_cmds=$lt_module_expsym_cmds_GCJ - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_GCJ - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_GCJ - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_GCJ - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_GCJ - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_GCJ - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_GCJ - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_GCJ - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_GCJ - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_GCJ - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_GCJ" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_GCJ - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_GCJ - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_GCJ - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_GCJ - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - RC) - - - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -objext_RC=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -compiler_RC=$CC -lt_cv_prog_compiler_c_o_RC=yes - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_RC \ - CC_RC \ - LD_RC \ - lt_prog_compiler_wl_RC \ - lt_prog_compiler_pic_RC \ - lt_prog_compiler_static_RC \ - lt_prog_compiler_no_builtin_flag_RC \ - export_dynamic_flag_spec_RC \ - thread_safe_flag_spec_RC \ - whole_archive_flag_spec_RC \ - enable_shared_with_static_runtimes_RC \ - old_archive_cmds_RC \ - old_archive_from_new_cmds_RC \ - predep_objects_RC \ - postdep_objects_RC \ - predeps_RC \ - postdeps_RC \ - compiler_lib_search_path_RC \ - archive_cmds_RC \ - archive_expsym_cmds_RC \ - postinstall_cmds_RC \ - postuninstall_cmds_RC \ - old_archive_from_expsyms_cmds_RC \ - allow_undefined_flag_RC \ - no_undefined_flag_RC \ - export_symbols_cmds_RC \ - hardcode_libdir_flag_spec_RC \ - hardcode_libdir_flag_spec_ld_RC \ - hardcode_libdir_separator_RC \ - hardcode_automatic_RC \ - module_cmds_RC \ - module_expsym_cmds_RC \ - lt_cv_prog_compiler_c_o_RC \ - exclude_expsyms_RC \ - include_expsyms_RC; do - - case $var in - old_archive_cmds_RC | \ - old_archive_from_new_cmds_RC | \ - archive_cmds_RC | \ - archive_expsym_cmds_RC | \ - module_cmds_RC | \ - module_expsym_cmds_RC | \ - old_archive_from_expsyms_cmds_RC | \ - export_symbols_cmds_RC | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_RC - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_RC - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_RC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_RC - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_RC - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_RC -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_RC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_RC -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_RC -archive_expsym_cmds=$lt_archive_expsym_cmds_RC -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_RC -module_expsym_cmds=$lt_module_expsym_cmds_RC - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_RC - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_RC - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_RC - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_RC - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_RC - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_RC - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_RC - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_RC - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_RC - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_RC - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_RC - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_RC" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_RC - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_RC - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_RC - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_RC - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - ;; - - *) - { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 -echo "$as_me: error: Unsupported tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 -echo "$as_me: error: unable to update list of available tagged configurations." >&2;} - { (exit 1); exit 1; }; } - fi -fi - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -# Prevent multiple expansion - - - - - - - - - - - - - - - - - - - - - O=lo - A=la - LIBTOOL_MKDEP_SED='s;\.o;\.lo;' - LIBTOOL_MODE_COMPILE='--mode=compile' - LIBTOOL_MODE_INSTALL='--mode=install' - LIBTOOL_MODE_LINK='--mode=link' - ;; - *) - O=o - A=a - LIBTOOL= - - LIBTOOL_MKDEP_SED= - LIBTOOL_MODE_COMPILE= - LIBTOOL_MODE_INSTALL= - LIBTOOL_MODE_LINK= - ;; -esac - -# -# File name extension for static archive files, for those few places -# where they are treated differently from dynamic ones. -# -SA=a - - - - - - - - - -# -# Here begins a very long section to determine the system's networking -# capabilities. The order of the tests is signficant. -# - -# -# IPv6 -# -# Check whether --enable-ipv6 or --disable-ipv6 was given. -if test "${enable_ipv6+set}" = set; then - enableval="$enable_ipv6" - -fi; - -case "$enable_ipv6" in - yes|''|autodetect) - cat >>confdefs.h <<\_ACEOF -#define WANT_IPV6 1 -_ACEOF - - ;; - no) - ;; -esac - -# -# We do the IPv6 compilation checking after libtool so that we can put -# the right suffix on the files. -# -echo "$as_me:$LINENO: checking for IPv6 structures" >&5 -echo $ECHO_N "checking for IPv6 structures... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -int -main () -{ -struct sockaddr_in6 sin6; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - found_ipv6=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - found_ipv6=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -# -# See whether IPv6 support is provided via a Kame add-on. -# This is done before other IPv6 linking tests to LIBS is properly set. -# -echo "$as_me:$LINENO: checking for Kame IPv6 support" >&5 -echo $ECHO_N "checking for Kame IPv6 support... $ECHO_C" >&6 - -# Check whether --with-kame or --without-kame was given. -if test "${with_kame+set}" = set; then - withval="$with_kame" - use_kame="$withval" -else - use_kame="no" -fi; - -case "$use_kame" in - no) - ;; - yes) - kame_path=/usr/local/v6 - ;; - *) - kame_path="$use_kame" - ;; -esac - -case "$use_kame" in - no) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - *) - if test -f $kame_path/lib/libinet6.a; then - echo "$as_me:$LINENO: result: $kame_path/lib/libinet6.a" >&5 -echo "${ECHO_T}$kame_path/lib/libinet6.a" >&6 - LIBS="-L$kame_path/lib -linet6 $LIBS" - else - { { echo "$as_me:$LINENO: error: $kame_path/lib/libinet6.a not found. - -Please choose the proper path with the following command: - - configure --with-kame=PATH -" >&5 -echo "$as_me: error: $kame_path/lib/libinet6.a not found. - -Please choose the proper path with the following command: - - configure --with-kame=PATH -" >&2;} - { (exit 1); exit 1; }; } - fi - ;; -esac - -# -# Whether netinet6/in6.h is needed has to be defined in isc/platform.h. -# Including it on Kame-using platforms is very bad, though, because -# Kame uses #error against direct inclusion. So include it on only -# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1. -# This is done before the in6_pktinfo check because that's what -# netinet6/in6.h is needed for. -# - -case "$host" in -*-bsdi4.[01]*) - ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1" - isc_netinet6in6_hack="#include " - ;; -*) - ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H" - isc_netinet6in6_hack="" - ;; -esac - - -# -# This is similar to the netinet6/in6.h issue. -# -case "$host" in -*-UnixWare*) - ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1" - ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1" - isc_netinetin6_hack="#include " - ;; -*) - ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H" - ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR" - isc_netinetin6_hack="" - ;; -esac - -# -# Now delve deeper into the suitability of the IPv6 support. -# -case "$found_ipv6" in - yes) - HAS_INET6_STRUCTS="#define HAS_INET6_STRUCTS 1" - - echo "$as_me:$LINENO: checking for in6_addr" >&5 -echo $ECHO_N "checking for in6_addr... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -$isc_netinetin6_hack -$isc_netinet6in6_hack - -int -main () -{ -struct in6_addr in6; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - HAS_IN_ADDR6="#undef HAS_IN_ADDR6" - isc_in_addr6_hack="" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - HAS_IN_ADDR6="#define HAS_IN_ADDR6 1" - isc_in_addr6_hack="#define in6_addr in_addr6" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - echo "$as_me:$LINENO: checking for in6addr_any" >&5 -echo $ECHO_N "checking for in6addr_any... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -$isc_netinetin6_hack -$isc_netinet6in6_hack -$isc_in_addr6_hack - -int -main () -{ -struct in6_addr in6; in6 = in6addr_any; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - NEED_IN6ADDR_ANY="#define NEED_IN6ADDR_ANY 1" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - echo "$as_me:$LINENO: checking for sin6_scope_id in struct sockaddr_in6" >&5 -echo $ECHO_N "checking for sin6_scope_id in struct sockaddr_in6... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -$isc_netinetin6_hack -$isc_netinet6in6_hack - -int -main () -{ -struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - result="#define HAVE_SIN6_SCOPE_ID 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - result="#undef HAVE_SIN6_SCOPE_ID" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - HAVE_SIN6_SCOPE_ID="$result" - - echo "$as_me:$LINENO: checking for in6_pktinfo" >&5 -echo $ECHO_N "checking for in6_pktinfo... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -$isc_netinetin6_hack -$isc_netinet6in6_hack - -int -main () -{ -struct in6_pktinfo xyzzy; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no -- disabling runtime ipv6 support" >&5 -echo "${ECHO_T}no -- disabling runtime ipv6 support" >&6 - ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - no) - HAS_INET6_STRUCTS="#undef HAS_INET6_STRUCTS" - NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY" - ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO" - HAVE_SIN6_SCOPE_ID="#define HAVE_SIN6_SCOPE_ID 1" - ISC_IPV6_H="ipv6.h" - ISC_IPV6_O="ipv6.$O" - ISC_ISCIPV6_O="unix/ipv6.$O" - ISC_IPV6_C="ipv6.c" - ;; -esac - -echo "$as_me:$LINENO: checking for sockaddr_storage" >&5 -echo $ECHO_N "checking for sockaddr_storage... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include - -int -main () -{ -struct sockaddr_storage xyzzy; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - HAVE_SOCKADDR_STORAGE="#define HAVE_SOCKADDR_STORAGE 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - HAVE_SOCKADDR_STORAGE="#undef HAVE_SOCKADDR_STORAGE" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - - - - - - - - - - - - - - -# -# Check for network functions that are often missing. We do this -# after the libtool checking, so we can put the right suffix on -# the files. It also needs to come after checking for a Kame add-on, -# which provides some (all?) of the desired functions. -# -echo "$as_me:$LINENO: checking for inet_ntop" >&5 -echo $ECHO_N "checking for inet_ntop... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -int -main () -{ -inet_ntop(0, 0, 0, 0); return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O" - ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c" - ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -echo "$as_me:$LINENO: checking for inet_pton" >&5 -echo $ECHO_N "checking for inet_pton... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -int -main () -{ -inet_pton(0, 0, 0); return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O" - ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c" - ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -echo "$as_me:$LINENO: checking for inet_aton" >&5 -echo $ECHO_N "checking for inet_aton... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -int -main () -{ -struct in_addr in; inet_aton(0, &in); return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_PLATFORM_NEEDATON="#undef ISC_PLATFORM_NEEDATON" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_aton.$O" - ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_aton.c" - ISC_PLATFORM_NEEDATON="#define ISC_PLATFORM_NEEDATON 1" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - - - - -# -# Look for a 4.4BSD-style sa_len member in struct sockaddr. -# -case "$host" in - *-dec-osf*) - # Turn on 4.4BSD style sa_len support. - cat >>confdefs.h <<\_ACEOF -#define _SOCKADDR_LEN 1 -_ACEOF - - ;; -esac - -echo "$as_me:$LINENO: checking for sa_len in struct sockaddr" >&5 -echo $ECHO_N "checking for sa_len in struct sockaddr... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int -main () -{ -struct sockaddr sa; sa.sa_len = 0; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - HAVE_SA_LEN="#define HAVE_SA_LEN 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - HAVE_SA_LEN="#undef HAVE_SA_LEN" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -# HAVE_MINIMUM_IFREQ - -case "$host" in - *-bsdi2345*) have_minimum_ifreq=yes;; - *-darwin*) have_minimum_ifreq=yes;; - *-freebsd*) have_minimum_ifreq=yes;; - *-lynxos*) have_minimum_ifreq=yes;; - *-netbsd*) have_minimum_ifreq=yes;; - *-next*) have_minimum_ifreq=yes;; - *-openbsd*) have_minimum_ifreq=yes;; - *-rhapsody*) have_minimum_ifreq=yes;; -esac - -case "$have_minimum_ifreq" in - yes) - HAVE_MINIMUM_IFREQ="#define HAVE_MINIMUM_IFREQ 1";; - no) - HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";; - *) - HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";; -esac - - -# PORT_DIR -PORT_DIR=port/unknown -SOLARIS_BITTYPES="#undef NEED_SOLARIS_BITTYPES" -BSD_COMP="#undef BSD_COMP" -USE_FIONBIO_IOCTL="#undef USE_FIONBIO_IOCTL" -PORT_NONBLOCK="#define PORT_NONBLOCK O_NONBLOCK" -HAVE_MD5="#undef HAVE_MD5" -USE_POLL="#undef HAVE_POLL" -SOLARIS2="#undef SOLARIS2" -case "$host" in - *aix3.2*) PORT_DIR="port/aix32";; - *aix4*) PORT_DIR="port/aix4";; - *aix5*) PORT_DIR="port/aix5";; - *aux3*) PORT_DIR="port/aux3";; - *-bsdi2*) PORT_DIR="port/bsdos2";; - *-bsdi*) PORT_DIR="port/bsdos";; - *-cygwin*) - PORT_NONBLOCK="#define PORT_NONBLOCK O_NDELAY" - PORT_DIR="port/cygwin";; - *-darwin*) PORT_DIR="port/darwin";; - *-osf*) PORT_DIR="port/decunix";; - *-freebsd*) PORT_DIR="port/freebsd";; - *-hpux9*) PORT_DIR="port/hpux9";; - *-hpux10*) PORT_DIR="port/hpux10";; - *-hpux11*) PORT_DIR="port/hpux";; - *-irix*) PORT_DIR="port/irix";; - *-linux*) PORT_DIR="port/linux";; - *-lynxos*) PORT_DIR="port/lynxos";; - *-mpe*) PORT_DIR="port/mpe";; - *-netbsd*) PORT_DIR="port/netbsd";; - *-next*) PORT_DIR="port/next";; - *-openbsd*) PORT_DIR="port/openbsd";; - *-qnx*) PORT_DIR="port/qnx";; - *-rhapsody*) PORT_DIR="port/rhapsody";; - *-sunos4*) - PORT_NONBLOCK="#define PORT_NONBLOCK O_NDELAY" - PORT_DIR="port/sunos";; - *-solaris2.[01234]) - BSD_COMP="#define BSD_COMP 1" - SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1" - USE_FIONBIO_IOCTL="#define USE_FIONBIO_IOCTL 1" - SOLARIS2="#define SOLARIS2 1" - PORT_DIR="port/solaris";; - *-solaris2.5) - BSD_COMP="#define BSD_COMP 1" - SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1" - SOLARIS2="#define SOLARIS2 1" - PORT_DIR="port/solaris";; - *-solaris2.[67]) - BSD_COMP="#define BSD_COMP 1" - SOLARIS2="#define SOLARIS2 1" - PORT_DIR="port/solaris";; - *-solaris2*) BSD_COMP="#define BSD_COMP 1" - USE_POLL="#define USE_POLL 1" - HAVE_MD5="#define HAVE_MD5 1" - SOLARIS2="#define SOLARIS2 1" - PORT_DIR="port/solaris";; - *-ultrix*) PORT_DIR="port/ultrix";; - *-sco-sysv*uw2.0*) PORT_DIR="port/unixware20";; - *-sco-sysv*uw2.1.2*) PORT_DIR="port/unixware212";; - *-sco-sysv*uw7*) PORT_DIR="port/unixware7";; -esac - - - - - - - - - -PORT_INCLUDE=${PORT_DIR}/include - - -# -# Look for a 4.4BSD or 4.3BSD struct msghdr -# -echo "$as_me:$LINENO: checking for struct msghdr flavor" >&5 -echo $ECHO_N "checking for struct msghdr flavor... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int -main () -{ -struct msghdr msg; msg.msg_flags = 0; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: 4.4BSD" >&5 -echo "${ECHO_T}4.4BSD" >&6 - ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: 4.3BSD" >&5 -echo "${ECHO_T}4.3BSD" >&6 - ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -# -# Look for in_port_t. -# -echo "$as_me:$LINENO: checking for type in_port_t" >&5 -echo $ECHO_N "checking for type in_port_t... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int -main () -{ -in_port_t port = 25; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -echo "$as_me:$LINENO: checking for struct timespec" >&5 -echo $ECHO_N "checking for struct timespec... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int -main () -{ -struct timespec ts = { 0, 0 }; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_PLATFORM_NEEDTIMESPEC="#undef ISC_PLATFORM_NEEDTIMESPEC" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_PLATFORM_NEEDTIMESPEC="#define ISC_PLATFORM_NEEDTIMESPEC 1" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -# -# Check for addrinfo -# -echo "$as_me:$LINENO: checking for struct addrinfo" >&5 -echo $ECHO_N "checking for struct addrinfo... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ -struct addrinfo a; return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - cat >>confdefs.h <<\_ACEOF -#define HAVE_ADDRINFO 1 -_ACEOF - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -echo "$as_me:$LINENO: checking for int sethostent" >&5 -echo $ECHO_N "checking for int sethostent... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ -int i = sethostent(0); return(0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -echo "$as_me:$LINENO: checking for int endhostent" >&5 -echo $ECHO_N "checking for int endhostent... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ -int i = endhostent(); return(0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -echo "$as_me:$LINENO: checking for int setnetent" >&5 -echo $ECHO_N "checking for int setnetent... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ -int i = setnetent(0); return(0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -echo "$as_me:$LINENO: checking for int endnetent" >&5 -echo $ECHO_N "checking for int endnetent... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ -int i = endnetent(); return(0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -echo "$as_me:$LINENO: checking for gethostbyaddr(const void *, size_t, ...)" >&5 -echo $ECHO_N "checking for gethostbyaddr(const void *, size_t, ...)... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -struct hostent *gethostbyaddr(const void *, size_t, int); -int -main () -{ -return(0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -echo "$as_me:$LINENO: checking for h_errno in netdb.h" >&5 -echo $ECHO_N "checking for h_errno in netdb.h... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ -h_errno = 1; return(0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -echo "$as_me:$LINENO: checking for getipnodebyname" >&5 -echo $ECHO_N "checking for getipnodebyname... $ECHO_C" >&6 -if test "${ac_cv_func_getipnodebyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getipnodebyname to an innocuous variant, in case declares getipnodebyname. - For example, HP-UX 11i declares gettimeofday. */ -#define getipnodebyname innocuous_getipnodebyname - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getipnodebyname (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getipnodebyname - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getipnodebyname (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getipnodebyname) || defined (__stub___getipnodebyname) -choke me -#else -char (*f) () = getipnodebyname; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getipnodebyname; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getipnodebyname=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getipnodebyname=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getipnodebyname" >&5 -echo "${ECHO_T}$ac_cv_func_getipnodebyname" >&6 -if test $ac_cv_func_getipnodebyname = yes; then - ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO" -else - ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1" -fi - -echo "$as_me:$LINENO: checking for getnameinfo" >&5 -echo $ECHO_N "checking for getnameinfo... $ECHO_C" >&6 -if test "${ac_cv_func_getnameinfo+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getnameinfo to an innocuous variant, in case declares getnameinfo. - For example, HP-UX 11i declares gettimeofday. */ -#define getnameinfo innocuous_getnameinfo - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getnameinfo (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getnameinfo - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getnameinfo (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getnameinfo) || defined (__stub___getnameinfo) -choke me -#else -char (*f) () = getnameinfo; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getnameinfo; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getnameinfo=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getnameinfo=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getnameinfo" >&5 -echo "${ECHO_T}$ac_cv_func_getnameinfo" >&6 -if test $ac_cv_func_getnameinfo = yes; then - ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO" -else - ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1" -fi - -echo "$as_me:$LINENO: checking for getaddrinfo" >&5 -echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6 -if test "${ac_cv_func_getaddrinfo+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getaddrinfo to an innocuous variant, in case declares getaddrinfo. - For example, HP-UX 11i declares gettimeofday. */ -#define getaddrinfo innocuous_getaddrinfo - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getaddrinfo (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getaddrinfo - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getaddrinfo (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getaddrinfo) || defined (__stub___getaddrinfo) -choke me -#else -char (*f) () = getaddrinfo; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getaddrinfo; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getaddrinfo=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getaddrinfo=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getaddrinfo" >&5 -echo "${ECHO_T}$ac_cv_func_getaddrinfo" >&6 -if test $ac_cv_func_getaddrinfo = yes; then - ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO" - cat >>confdefs.h <<\_ACEOF -#define HAVE_GETADDRINFO 1 -_ACEOF - -else - ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1" -fi - -echo "$as_me:$LINENO: checking for gai_strerror" >&5 -echo $ECHO_N "checking for gai_strerror... $ECHO_C" >&6 -if test "${ac_cv_func_gai_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define gai_strerror to an innocuous variant, in case declares gai_strerror. - For example, HP-UX 11i declares gettimeofday. */ -#define gai_strerror innocuous_gai_strerror - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gai_strerror (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef gai_strerror - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gai_strerror (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_gai_strerror) || defined (__stub___gai_strerror) -choke me -#else -char (*f) () = gai_strerror; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != gai_strerror; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_gai_strerror=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_gai_strerror=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_gai_strerror" >&5 -echo "${ECHO_T}$ac_cv_func_gai_strerror" >&6 -if test $ac_cv_func_gai_strerror = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_GAISTRERROR 1 -_ACEOF - -fi - - - - -echo "$as_me:$LINENO: checking for pselect" >&5 -echo $ECHO_N "checking for pselect... $ECHO_C" >&6 -if test "${ac_cv_func_pselect+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define pselect to an innocuous variant, in case declares pselect. - For example, HP-UX 11i declares gettimeofday. */ -#define pselect innocuous_pselect - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char pselect (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef pselect - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pselect (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_pselect) || defined (__stub___pselect) -choke me -#else -char (*f) () = pselect; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != pselect; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_pselect=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_pselect=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_pselect" >&5 -echo "${ECHO_T}$ac_cv_func_pselect" >&6 -if test $ac_cv_func_pselect = yes; then - NEED_PSELECT="#undef NEED_PSELECT" -else - NEED_PSELECT="#define NEED_PSELECT" -fi - - -echo "$as_me:$LINENO: checking for gettimeofday" >&5 -echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6 -if test "${ac_cv_func_gettimeofday+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define gettimeofday to an innocuous variant, in case declares gettimeofday. - For example, HP-UX 11i declares gettimeofday. */ -#define gettimeofday innocuous_gettimeofday - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gettimeofday (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef gettimeofday - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gettimeofday (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_gettimeofday) || defined (__stub___gettimeofday) -choke me -#else -char (*f) () = gettimeofday; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != gettimeofday; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_gettimeofday=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_gettimeofday=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_gettimeofday" >&5 -echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6 -if test $ac_cv_func_gettimeofday = yes; then - NEED_GETTIMEOFDAY="#undef NEED_GETTIMEOFDAY" -else - NEED_GETTIMEOFDAY="#define NEED_GETTIMEOFDAY 1" -fi - - -echo "$as_me:$LINENO: checking for strndup" >&5 -echo $ECHO_N "checking for strndup... $ECHO_C" >&6 -if test "${ac_cv_func_strndup+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define strndup to an innocuous variant, in case declares strndup. - For example, HP-UX 11i declares gettimeofday. */ -#define strndup innocuous_strndup - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strndup (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef strndup - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strndup (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strndup) || defined (__stub___strndup) -choke me -#else -char (*f) () = strndup; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != strndup; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strndup=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_strndup=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strndup" >&5 -echo "${ECHO_T}$ac_cv_func_strndup" >&6 -if test $ac_cv_func_strndup = yes; then - HAVE_STRNDUP="#define HAVE_STRNDUP 1" -else - HAVE_STRNDUP="#undef HAVE_STRNDUP" -fi - - - -# -# Look for a sysctl call to get the list of network interfaces. -# -echo "$as_me:$LINENO: checking for interface list sysctl" >&5 -echo $ECHO_N "checking for interface list sysctl... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -#ifdef NET_RT_IFLIST -found_rt_iflist -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "found_rt_iflist" >/dev/null 2>&1; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - cat >>confdefs.h <<\_ACEOF -#define HAVE_IFLIST_SYSCTL 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -rm -f conftest* - - -# -# Check for some other useful functions that are not ever-present. -# -echo "$as_me:$LINENO: checking for strsep" >&5 -echo $ECHO_N "checking for strsep... $ECHO_C" >&6 -if test "${ac_cv_func_strsep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define strsep to an innocuous variant, in case declares strsep. - For example, HP-UX 11i declares gettimeofday. */ -#define strsep innocuous_strsep - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strsep (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef strsep - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strsep (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strsep) || defined (__stub___strsep) -choke me -#else -char (*f) () = strsep; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != strsep; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strsep=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_strsep=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strsep" >&5 -echo "${ECHO_T}$ac_cv_func_strsep" >&6 -if test $ac_cv_func_strsep = yes; then - ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP" -else - ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1" -fi - -echo "$as_me:$LINENO: checking for vsnprintf" >&5 -echo $ECHO_N "checking for vsnprintf... $ECHO_C" >&6 -if test "${ac_cv_func_vsnprintf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define vsnprintf to an innocuous variant, in case declares vsnprintf. - For example, HP-UX 11i declares gettimeofday. */ -#define vsnprintf innocuous_vsnprintf - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char vsnprintf (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef vsnprintf - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char vsnprintf (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_vsnprintf) || defined (__stub___vsnprintf) -choke me -#else -char (*f) () = vsnprintf; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != vsnprintf; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_vsnprintf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_vsnprintf=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_vsnprintf" >&5 -echo "${ECHO_T}$ac_cv_func_vsnprintf" >&6 -if test $ac_cv_func_vsnprintf = yes; then - ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF" -else - ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS print.$O" - ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS print.c" - ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1" -fi - - - - - - -echo "$as_me:$LINENO: checking for strerror" >&5 -echo $ECHO_N "checking for strerror... $ECHO_C" >&6 -if test "${ac_cv_func_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define strerror to an innocuous variant, in case declares strerror. - For example, HP-UX 11i declares gettimeofday. */ -#define strerror innocuous_strerror - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strerror (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef strerror - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strerror) || defined (__stub___strerror) -choke me -#else -char (*f) () = strerror; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != strerror; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strerror=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_strerror=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strerror" >&5 -echo "${ECHO_T}$ac_cv_func_strerror" >&6 -if test $ac_cv_func_strerror = yes; then - USE_SYSERROR_LIST="#undef USE_SYSERROR_LIST" -else - USE_SYSERROR_LIST="#define USE_SYSERROR_LIST 1" -fi - - - -# -# Determine the printf format characters to use when printing -# values of type isc_int64_t. We make the assumption that platforms -# where a "long long" is the same size as a "long" (e.g., Alpha/OSF1) -# want "%ld" and everyone else can use "%lld". Win32 uses "%I64d", -# but that's defined elsewhere since we don't use configure on Win32. -# -echo "$as_me:$LINENO: checking printf format modifier for 64-bit integers" >&5 -echo $ECHO_N "checking printf format modifier for 64-bit integers... $ECHO_C" >&6 -if test "$cross_compiling" = yes; then - echo "$as_me:$LINENO: result: default ll" >&5 -echo "${ECHO_T}default ll" >&6 - ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"' -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -main() { exit(!(sizeof(long long int) == sizeof(long int))); } -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: l" >&5 -echo "${ECHO_T}l" >&6 - ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"' -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -echo "$as_me:$LINENO: result: ll" >&5 -echo "${ECHO_T}ll" >&6 - ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"' -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -# -# Security Stuff -# -echo "$as_me:$LINENO: checking for chroot" >&5 -echo $ECHO_N "checking for chroot... $ECHO_C" >&6 -if test "${ac_cv_func_chroot+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define chroot to an innocuous variant, in case declares chroot. - For example, HP-UX 11i declares gettimeofday. */ -#define chroot innocuous_chroot - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char chroot (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef chroot - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char chroot (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_chroot) || defined (__stub___chroot) -choke me -#else -char (*f) () = chroot; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != chroot; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_chroot=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_chroot=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_chroot" >&5 -echo "${ECHO_T}$ac_cv_func_chroot" >&6 -if test $ac_cv_func_chroot = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_CHROOT 1 -_ACEOF - -fi - - -# -# for accept, recvfrom, getpeername etc. -# -echo "$as_me:$LINENO: checking for socket length type" >&5 -echo $ECHO_N "checking for socket length type... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int accept(int, struct sockaddr *, socklen_t *); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ISC_SOCKLEN_T="#define ISC_SOCKLEN_T socklen_t" -echo "$as_me:$LINENO: result: socklen_t" >&5 -echo "${ECHO_T}socklen_t" >&6 - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int accept(int, struct sockaddr *, unsigned int *); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned int" -echo "$as_me:$LINENO: result: unsigned int" >&5 -echo "${ECHO_T}unsigned int" >&6 - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int accept(int, struct sockaddr *, unsigned long *); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned long" -echo "$as_me:$LINENO: result: unsigned long" >&5 -echo "${ECHO_T}unsigned long" >&6 - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -int accept(int, struct sockaddr *, long *); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ISC_SOCKLEN_T="#define ISC_SOCKLEN_T long" -echo "$as_me:$LINENO: result: long" >&5 -echo "${ECHO_T}long" >&6 - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ISC_SOCKLEN_T="#define ISC_SOCKLEN_T int" -echo "$as_me:$LINENO: result: int" >&5 -echo "${ECHO_T}int" >&6 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -echo "$as_me:$LINENO: checking for getgrouplist" >&5 -echo $ECHO_N "checking for getgrouplist... $ECHO_C" >&6 -if test "${ac_cv_func_getgrouplist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getgrouplist to an innocuous variant, in case declares getgrouplist. - For example, HP-UX 11i declares gettimeofday. */ -#define getgrouplist innocuous_getgrouplist - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getgrouplist (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getgrouplist - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getgrouplist (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getgrouplist) || defined (__stub___getgrouplist) -choke me -#else -char (*f) () = getgrouplist; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getgrouplist; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getgrouplist=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getgrouplist=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getgrouplist" >&5 -echo "${ECHO_T}$ac_cv_func_getgrouplist" >&6 -if test $ac_cv_func_getgrouplist = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -getgrouplist(const char *name, int basegid, int *groups, int *ngroups) { -} - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, int basegid, int *groups, int *ngroups" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups" - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups" -cat >>confdefs.h <<\_ACEOF -#define NEED_GETGROUPLIST 1 -_ACEOF - - -fi - - - -echo "$as_me:$LINENO: checking for setgroupent" >&5 -echo $ECHO_N "checking for setgroupent... $ECHO_C" >&6 -if test "${ac_cv_func_setgroupent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setgroupent to an innocuous variant, in case declares setgroupent. - For example, HP-UX 11i declares gettimeofday. */ -#define setgroupent innocuous_setgroupent - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setgroupent (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setgroupent - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setgroupent (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setgroupent) || defined (__stub___setgroupent) -choke me -#else -char (*f) () = setgroupent; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setgroupent; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setgroupent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setgroupent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setgroupent" >&5 -echo "${ECHO_T}$ac_cv_func_setgroupent" >&6 -if test $ac_cv_func_setgroupent = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_SETGROUPENT 1 -_ACEOF - -fi - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for getnetbyaddr_r" >&5 -echo $ECHO_N "checking for getnetbyaddr_r... $ECHO_C" >&6 -if test "${ac_cv_func_getnetbyaddr_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getnetbyaddr_r to an innocuous variant, in case declares getnetbyaddr_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getnetbyaddr_r innocuous_getnetbyaddr_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getnetbyaddr_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getnetbyaddr_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getnetbyaddr_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getnetbyaddr_r) || defined (__stub___getnetbyaddr_r) -choke me -#else -char (*f) () = getnetbyaddr_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getnetbyaddr_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getnetbyaddr_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getnetbyaddr_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getnetbyaddr_r" >&5 -echo "${ECHO_T}$ac_cv_func_getnetbyaddr_r" >&6 -if test $ac_cv_func_getnetbyaddr_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#define _OSF_SOURCE -#undef __USE_MISC -#define __USE_MISC -#include -struct netent * -getnetbyaddr_r(long net, int type, struct netent *result, char *buffer, -int buflen) {} - -int -main () -{ -return (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen" -NET_R_BAD="#define NET_R_BAD NULL" -NET_R_COPY="#define NET_R_COPY buf, buflen" -NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS" -NET_R_OK="#define NET_R_OK nptr" -NET_R_SETANSWER="#undef NET_R_SETANSWER" -NET_R_RETURN="#define NET_R_RETURN struct netent *" -GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long" -NETENT_DATA="#undef NETENT_DATA" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#define _OSF_SOURCE -#undef __USE_MISC -#define __USE_MISC -#include -int getnetbyaddr_r (unsigned long int, int, struct netent *, - char *, size_t, struct netent **, int *); - -int -main () -{ -return (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop" -NET_R_BAD="#define NET_R_BAD ERANGE" -NET_R_COPY="#define NET_R_COPY buf, buflen" -NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen" -NET_R_OK="#define NET_R_OK 0" -NET_R_SETANSWER="#define NET_R_SETANSWER 1" -NET_R_RETURN="#define NET_R_RETURN int" -GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int" -NETENT_DATA="#undef NETENT_DATA" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#define _OSF_SOURCE -#undef __USE_MISC -#define __USE_MISC -#include -extern int getnetbyaddr_r(int, int, struct netent *, struct netent_data *); - -int -main () -{ -return (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr" -NET_R_BAD="#define NET_R_BAD (-1)" -NET_R_COPY="#define NET_R_COPY ndptr" -NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr" -NET_R_OK="#define NET_R_OK 0" -NET_R_SETANSWER="#undef NET_R_SETANSWER" -NET_R_RETURN="#define NET_R_RETURN int" -GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int" -NETENT_DATA="#define NETENT_DATA 1" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef __USE_MISC -#define __USE_MISC -#include -int getnetbyaddr_r (in_addr_t, int, struct netent *, struct netent_data *); - -int -main () -{ -return (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr" -NET_R_BAD="#define NET_R_BAD (-1)" -NET_R_COPY="#define NET_R_COPY ndptr" -NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr" -NET_R_OK="#define NET_R_OK 0" -NET_R_SETANSWER="#undef NET_R_SETANSWER" -NET_R_RETURN="#define NET_R_RETURN int" -GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long" -NETENT_DATA="#define NETENT_DATA 1" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef __USE_MISC -#define __USE_MISC -#include -int getnetbyaddr_r (long, int, struct netent *, struct netent_data *); - -int -main () -{ -return (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr" -NET_R_BAD="#define NET_R_BAD (-1)" -NET_R_COPY="#define NET_R_COPY ndptr" -NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr" -NET_R_OK="#define NET_R_OK 0" -NET_R_SETANSWER="#undef NET_R_SETANSWER" -NET_R_RETURN="#define NET_R_RETURN int" -GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long" -NETENT_DATA="#define NETENT_DATA 1" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef __USE_MISC -#define __USE_MISC -#include -int getnetbyaddr_r (uint32_t, int, struct netent *, - char *, size_t, struct netent **, int *); - -int -main () -{ -return (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop" -NET_R_BAD="#define NET_R_BAD ERANGE" -NET_R_COPY="#define NET_R_COPY buf, buflen" -NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen" -NET_R_OK="#define NET_R_OK 0" -NET_R_SETANSWER="#define NET_R_SETANSWER 1" -NET_R_RETURN="#define NET_R_RETURN int" -GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int" -NETENT_DATA="#undef NETENT_DATA" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen" -NET_R_BAD="#define NET_R_BAD NULL" -NET_R_COPY="#define NET_R_COPY buf, buflen" -NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS" -NET_R_OK="#define NET_R_OK nptr" -NET_R_SETANSWER="#undef NET_R_SETANSWER" -NET_R_RETURN="#define NET_R_RETURN struct netent *" -GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long" -NETENT_DATA="#undef NETENT_DATA" - -fi - -esac - -case "$host" in -*dec-osf*) GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int" ;; -esac - - - - - - - - - - -echo "$as_me:$LINENO: checking for setnetent_r" >&5 -echo $ECHO_N "checking for setnetent_r... $ECHO_C" >&6 -if test "${ac_cv_func_setnetent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setnetent_r to an innocuous variant, in case declares setnetent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define setnetent_r innocuous_setnetent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setnetent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setnetent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setnetent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setnetent_r) || defined (__stub___setnetent_r) -choke me -#else -char (*f) () = setnetent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setnetent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setnetent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setnetent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setnetent_r" >&5 -echo "${ECHO_T}$ac_cv_func_setnetent_r" >&6 -if test $ac_cv_func_setnetent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -void setnetent_r (int); - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/" -NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/" -NET_R_SET_RETURN="#define NET_R_SET_RETURN void" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -extern int setnetent_r(int, struct netent_data *); - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_ENT_ARGS="#define NET_R_ENT_ARGS struct netent_data *ndptr" -NET_R_SET_RESULT="#define NET_R_SET_RESULT NET_R_OK" -NET_R_SET_RETURN="#define NET_R_SET_RETURN int" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/" -NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/" -NET_R_SET_RETURN="#define NET_R_SET_RETURN void" - -fi - - - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for endnetent_r" >&5 -echo $ECHO_N "checking for endnetent_r... $ECHO_C" >&6 -if test "${ac_cv_func_endnetent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define endnetent_r to an innocuous variant, in case declares endnetent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define endnetent_r innocuous_endnetent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char endnetent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef endnetent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char endnetent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_endnetent_r) || defined (__stub___endnetent_r) -choke me -#else -char (*f) () = endnetent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != endnetent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_endnetent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_endnetent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_endnetent_r" >&5 -echo "${ECHO_T}$ac_cv_func_endnetent_r" >&6 -if test $ac_cv_func_endnetent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void endnetent_r (void); - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/" -NET_R_END_RETURN="#define NET_R_END_RETURN void" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -extern int endnetent_r(struct netent_data *); - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_END_RESULT="#define NET_R_END_RESULT(x) return (x)" -NET_R_END_RETURN="#define NET_R_END_RETURN int" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -extern void endnetent_r(struct netent_data *); - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/" -NET_R_END_RETURN="#define NET_R_END_RETURN void" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/" -NET_R_END_RETURN="#define NET_R_END_RETURN void" - -fi - -esac - - - -echo "$as_me:$LINENO: checking for getgrnam_r" >&5 -echo $ECHO_N "checking for getgrnam_r... $ECHO_C" >&6 -if test "${ac_cv_func_getgrnam_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getgrnam_r to an innocuous variant, in case declares getgrnam_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getgrnam_r innocuous_getgrnam_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getgrnam_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getgrnam_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getgrnam_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getgrnam_r) || defined (__stub___getgrnam_r) -choke me -#else -char (*f) () = getgrnam_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getgrnam_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getgrnam_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getgrnam_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getgrnam_r" >&5 -echo "${ECHO_T}$ac_cv_func_getgrnam_r" >&6 -if test $ac_cv_func_getgrnam_r = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_GETGRNAM_R 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for getgrgid_r" >&5 -echo $ECHO_N "checking for getgrgid_r... $ECHO_C" >&6 -if test "${ac_cv_func_getgrgid_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getgrgid_r to an innocuous variant, in case declares getgrgid_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getgrgid_r innocuous_getgrgid_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getgrgid_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getgrgid_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getgrgid_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getgrgid_r) || defined (__stub___getgrgid_r) -choke me -#else -char (*f) () = getgrgid_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getgrgid_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getgrgid_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getgrgid_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getgrgid_r" >&5 -echo "${ECHO_T}$ac_cv_func_getgrgid_r" >&6 -if test $ac_cv_func_getgrgid_r = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_GETGRGID_R 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for getgrent_r" >&5 -echo $ECHO_N "checking for getgrent_r... $ECHO_C" >&6 -if test "${ac_cv_func_getgrent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getgrent_r to an innocuous variant, in case declares getgrent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getgrent_r innocuous_getgrent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getgrent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getgrent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getgrent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getgrent_r) || defined (__stub___getgrent_r) -choke me -#else -char (*f) () = getgrent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getgrent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getgrent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getgrent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getgrent_r" >&5 -echo "${ECHO_T}$ac_cv_func_getgrent_r" >&6 -if test $ac_cv_func_getgrent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -struct group *getgrent_r(struct group *grp, char *buffer, - int buflen) {} - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen" -GROUP_R_BAD="#define GROUP_R_BAD NULL" -GROUP_R_OK="#define GROUP_R_OK gptr" -GROUP_R_RETURN="#define GROUP_R_RETURN struct group *" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen" -GROUP_R_BAD="#define GROUP_R_BAD NULL" -GROUP_R_OK="#define GROUP_R_OK gptr" -GROUP_R_RETURN="#define GROUP_R_RETURN struct group *" -cat >>confdefs.h <<\_ACEOF -#define NEED_GETGRENT_R 1 -_ACEOF - - -fi - - - - - - -echo "$as_me:$LINENO: checking for endgrent_r" >&5 -echo $ECHO_N "checking for endgrent_r... $ECHO_C" >&6 -if test "${ac_cv_func_endgrent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define endgrent_r to an innocuous variant, in case declares endgrent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define endgrent_r innocuous_endgrent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char endgrent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef endgrent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char endgrent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_endgrent_r) || defined (__stub___endgrent_r) -choke me -#else -char (*f) () = endgrent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != endgrent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_endgrent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_endgrent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_endgrent_r" >&5 -echo "${ECHO_T}$ac_cv_func_endgrent_r" >&6 -if test $ac_cv_func_endgrent_r = yes; then - : -else - GROUP_R_END_RESULT="#define GROUP_R_END_RESULT(x) /*empty*/" -GROUP_R_END_RETURN="#define GROUP_R_END_RETURN void" -GROUP_R_ENT_ARGS="#define GROUP_R_ENT_ARGS void" -cat >>confdefs.h <<\_ACEOF -#define NEED_ENDGRENT_R 1 -_ACEOF - - -fi - - - - - -echo "$as_me:$LINENO: checking for setgrent_r" >&5 -echo $ECHO_N "checking for setgrent_r... $ECHO_C" >&6 -if test "${ac_cv_func_setgrent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setgrent_r to an innocuous variant, in case declares setgrent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define setgrent_r innocuous_setgrent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setgrent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setgrent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setgrent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setgrent_r) || defined (__stub___setgrent_r) -choke me -#else -char (*f) () = setgrent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setgrent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setgrent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setgrent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setgrent_r" >&5 -echo "${ECHO_T}$ac_cv_func_setgrent_r" >&6 -if test $ac_cv_func_setgrent_r = yes; then - : -else - GROUP_R_SET_RESULT="#undef GROUP_R_SET_RESULT /*empty*/" -GROUP_R_SET_RETURN="#define GROUP_R_SET_RETURN void" -cat >>confdefs.h <<\_ACEOF -#define NEED_SETGRENT_R 1 -_ACEOF - - -fi - - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for gethostbyname_r" >&5 -echo $ECHO_N "checking for gethostbyname_r... $ECHO_C" >&6 -if test "${ac_cv_func_gethostbyname_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define gethostbyname_r to an innocuous variant, in case declares gethostbyname_r. - For example, HP-UX 11i declares gettimeofday. */ -#define gethostbyname_r innocuous_gethostbyname_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gethostbyname_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef gethostbyname_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gethostbyname_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_gethostbyname_r) || defined (__stub___gethostbyname_r) -choke me -#else -char (*f) () = gethostbyname_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != gethostbyname_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_gethostbyname_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_gethostbyname_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname_r" >&5 -echo "${ECHO_T}$ac_cv_func_gethostbyname_r" >&6 -if test $ac_cv_func_gethostbyname_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -struct hostent *gethostbyname_r -(const char *name, struct hostent *hp, char *buf, int len, int *h_errnop) {} - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop" -HOST_R_BAD="#define HOST_R_BAD NULL" -HOST_R_COPY="#define HOST_R_COPY buf, buflen" -HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen" -HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno" -HOST_R_OK="#define HOST_R_OK hptr" -HOST_R_RETURN="#define HOST_R_RETURN struct hostent *" -HOST_R_SETANSWER="#undef HOST_R_SETANSWER" -HOSTENT_DATA="#undef HOSTENT_DATA" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -int gethostbyname_r(const char *name, - struct hostent *result, - struct hostent_data *hdptr); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -HOST_R_ARGS="#define HOST_R_ARGS struct hostent_data *hdptr" -HOST_R_BAD="#define HOST_R_BAD (-1)" -HOST_R_COPY="#define HOST_R_COPY hdptr" -HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS HOST_R_ARGS" -HOST_R_ERRNO="#undef HOST_R_ERRNO" -HOST_R_OK="#define HOST_R_OK 0" -HOST_R_RETURN="#define HOST_R_RETURN int" -HOST_R_SETANSWER="#undef HOST_R_SETANSWER" -HOSTENT_DATA="#define HOSTENT_DATA 1" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -extern int gethostbyname_r (const char *, - struct hostent *, - char *, size_t, - struct hostent **, - int *); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -HOST_R_ARGS="#define HOST_R_ARGS char *buf, size_t buflen, struct hostent **answerp, int *h_errnop" -HOST_R_BAD="#define HOST_R_BAD ERANGE" -HOST_R_COPY="#define HOST_R_COPY buf, buflen" -HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen" -HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno" -HOST_R_OK="#define HOST_R_OK 0" -HOST_R_RETURN="#define HOST_R_RETURN int" -HOST_R_SETANSWER="#define HOST_R_SETANSWER 1" -HOSTENT_DATA="#undef HOSTENT_DATA" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop" -HOST_R_BAD="#define HOST_R_BAD NULL" -HOST_R_COPY="#define HOST_R_COPY buf, buflen" -HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen" -HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno" -HOST_R_OK="#define HOST_R_OK hptr" -HOST_R_RETURN="#define HOST_R_RETURN struct hostent *" -HOST_R_SETANSWER="#undef HOST_R_SETANSWER" -HOSTENT_DATA="#undef HOSTENT_DATA" - -fi - -esac - - - - - - - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for endhostent_r" >&5 -echo $ECHO_N "checking for endhostent_r... $ECHO_C" >&6 -if test "${ac_cv_func_endhostent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define endhostent_r to an innocuous variant, in case declares endhostent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define endhostent_r innocuous_endhostent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char endhostent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef endhostent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char endhostent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_endhostent_r) || defined (__stub___endhostent_r) -choke me -#else -char (*f) () = endhostent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != endhostent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_endhostent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_endhostent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_endhostent_r" >&5 -echo "${ECHO_T}$ac_cv_func_endhostent_r" >&6 -if test $ac_cv_func_endhostent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -int endhostent_r(struct hostent_data *buffer); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) return (x)" -HOST_R_END_RETURN="#define HOST_R_END_RETURN int" -HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -extern void endhostent_r(struct hostent_data *ht_data); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -HOST_R_END_RESULT="#define HOST_R_END_RESULT(x)" -HOST_R_END_RETURN="#define HOST_R_END_RETURN void" -HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -extern void endhostent_r(void); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/" -HOST_R_END_RETURN="#define HOST_R_END_RETURN void" -HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/" -HOST_R_END_RETURN="#define HOST_R_END_RETURN void" -HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/" - -fi - -esac; - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for sethostent_r" >&5 -echo $ECHO_N "checking for sethostent_r... $ECHO_C" >&6 -if test "${ac_cv_func_sethostent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define sethostent_r to an innocuous variant, in case declares sethostent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define sethostent_r innocuous_sethostent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char sethostent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef sethostent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sethostent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_sethostent_r) || defined (__stub___sethostent_r) -choke me -#else -char (*f) () = sethostent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != sethostent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_sethostent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_sethostent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_sethostent_r" >&5 -echo "${ECHO_T}$ac_cv_func_sethostent_r" >&6 -if test $ac_cv_func_sethostent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -extern void sethostent_r(int flag, struct hostent_data *ht_data); -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT /*empty*/" -HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -extern int sethostent_r(int flag, struct hostent_data *ht_data); -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - HOST_R_SET_RESULT="#define HOST_R_SET_RESULT 0" -HOST_R_SET_RETURN="#define HOST_R_SET_RETURN int" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void sethostent_r (int); -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT" -HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT" -HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void" - -fi - -esac - - - - -echo "$as_me:$LINENO: checking struct passwd element pw_class" >&5 -echo $ECHO_N "checking struct passwd element pw_class... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -int -main () -{ -struct passwd *pw; pw->pw_class = ""; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -cat >>confdefs.h <<\_ACEOF -#define HAS_PW_CLASS 1 -_ACEOF - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -void -setpwent(void) {} - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - SETPWENT_VOID="#define SETPWENT_VOID 1" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -SETPWENT_VOID="#undef SETPWENT_VOID" - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -void -setgrent(void) {} - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - SETGRENT_VOID="#define SETGRENT_VOID 1" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -SETGRENT_VOID="#undef SETGRENT_VOID" - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for getnetgrent_r" >&5 -echo $ECHO_N "checking for getnetgrent_r... $ECHO_C" >&6 -if test "${ac_cv_func_getnetgrent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getnetgrent_r to an innocuous variant, in case declares getnetgrent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getnetgrent_r innocuous_getnetgrent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getnetgrent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getnetgrent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getnetgrent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getnetgrent_r) || defined (__stub___getnetgrent_r) -choke me -#else -char (*f) () = getnetgrent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getnetgrent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getnetgrent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getnetgrent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getnetgrent_r" >&5 -echo "${ECHO_T}$ac_cv_func_getnetgrent_r" >&6 -if test $ac_cv_func_getnetgrent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -int getnetgrent_r(char **m, char **u, char **d, char *b, int l) {} - - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen" -NGR_R_BAD="#define NGR_R_BAD (0)" -NGR_R_COPY="#define NGR_R_COPY buf, buflen" -NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS" -NGR_R_OK="#define NGR_R_OK 1" -NGR_R_RETURN="#define NGR_R_RETURN int" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -int getnetgrent_r(char **m, char **u, char **d, char *b, size_t l) {} - - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NGR_R_ARGS="#define NGR_R_ARGS char *buf, size_t buflen" -NGR_R_BAD="#define NGR_R_BAD (0)" -NGR_R_COPY="#define NGR_R_COPY buf, buflen" -NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS" -NGR_R_OK="#define NGR_R_OK 1" -NGR_R_RETURN="#define NGR_R_RETURN int" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -extern int getnetgrent_r( char **, char **, char **, void **); - - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NGR_R_ARGS="#define NGR_R_ARGS void **buf" -NGR_R_BAD="#define NGR_R_BAD (0)" -NGR_R_COPY="#define NGR_R_COPY buf" -NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS" -NGR_R_OK="#define NGR_R_OK 1" -NGR_R_RETURN="#define NGR_R_RETURN int" -NGR_R_PRIVATE="#define NGR_R_PRIVATE 1" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen" -NGR_R_BAD="#define NGR_R_BAD (0)" -NGR_R_COPY="#define NGR_R_COPY buf, buflen" -NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS" -NGR_R_OK="#define NGR_R_OK 1" -NGR_R_RETURN="#define NGR_R_RETURN int" - -fi - -esac - - - - - - - - -echo "$as_me:$LINENO: checking for endnetgrent_r" >&5 -echo $ECHO_N "checking for endnetgrent_r... $ECHO_C" >&6 -if test "${ac_cv_func_endnetgrent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define endnetgrent_r to an innocuous variant, in case declares endnetgrent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define endnetgrent_r innocuous_endnetgrent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char endnetgrent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef endnetgrent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char endnetgrent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_endnetgrent_r) || defined (__stub___endnetgrent_r) -choke me -#else -char (*f) () = endnetgrent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != endnetgrent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_endnetgrent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_endnetgrent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_endnetgrent_r" >&5 -echo "${ECHO_T}$ac_cv_func_endnetgrent_r" >&6 -if test $ac_cv_func_endnetgrent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -void endnetgrent_r(void **ptr); - - -int -main () -{ -return (0); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -NGR_R_END_RESULT="#define NGR_R_END_RESULT(x) /* empty */" -NGR_R_END_RETURN="#define NGR_R_END_RETURN void" -NGR_R_ENT_ARGS="#define NGR_R_ENT_ARGS NGR_R_ARGS" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -NGR_R_END_RESULT="#define NGR_R_END_RESULT(x) return (x)" -NGR_R_END_RETURN="#define NGR_R_END_RETURN int" -NGR_R_ENT_ARGS="#define NGR_R_ENT_ARGS NGR_R_ARGS" - - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - NGR_R_END_RESULT="#define NGR_R_END_RESULT(x) /*empty*/" -NGR_R_END_RETURN="#define NGR_R_END_RETURN void" -NGR_R_ENT_ARGS="#undef NGR_R_ENT_ARGS /*empty*/" -cat >>confdefs.h <<\_ACEOF -#define NEED_ENDNETGRENT_R 1 -_ACEOF - - -fi - - - - - -echo "$as_me:$LINENO: checking for setnetgrent_r" >&5 -echo $ECHO_N "checking for setnetgrent_r... $ECHO_C" >&6 -if test "${ac_cv_func_setnetgrent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setnetgrent_r to an innocuous variant, in case declares setnetgrent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define setnetgrent_r innocuous_setnetgrent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setnetgrent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setnetgrent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setnetgrent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setnetgrent_r) || defined (__stub___setnetgrent_r) -choke me -#else -char (*f) () = setnetgrent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setnetgrent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setnetgrent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setnetgrent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setnetgrent_r" >&5 -echo "${ECHO_T}$ac_cv_func_setnetgrent_r" >&6 -if test $ac_cv_func_setnetgrent_r = yes; then - -case "$host" in -*bsdi*) - NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/" - NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void" - ;; -*) - NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK" - NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int" - ;; -esac - - -else - NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/" -NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void" - -fi - - - - -echo "$as_me:$LINENO: checking for innetgr_r" >&5 -echo $ECHO_N "checking for innetgr_r... $ECHO_C" >&6 -if test "${ac_cv_func_innetgr_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define innetgr_r to an innocuous variant, in case declares innetgr_r. - For example, HP-UX 11i declares gettimeofday. */ -#define innetgr_r innocuous_innetgr_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char innetgr_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef innetgr_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char innetgr_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_innetgr_r) || defined (__stub___innetgr_r) -choke me -#else -char (*f) () = innetgr_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != innetgr_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_innetgr_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_innetgr_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_innetgr_r" >&5 -echo "${ECHO_T}$ac_cv_func_innetgr_r" >&6 -if test $ac_cv_func_innetgr_r = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_INNETGR_R 1 -_ACEOF - -fi - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for getprotoent_r" >&5 -echo $ECHO_N "checking for getprotoent_r... $ECHO_C" >&6 -if test "${ac_cv_func_getprotoent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getprotoent_r to an innocuous variant, in case declares getprotoent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getprotoent_r innocuous_getprotoent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getprotoent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getprotoent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getprotoent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getprotoent_r) || defined (__stub___getprotoent_r) -choke me -#else -char (*f) () = getprotoent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getprotoent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getprotoent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getprotoent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getprotoent_r" >&5 -echo "${ECHO_T}$ac_cv_func_getprotoent_r" >&6 -if test $ac_cv_func_getprotoent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -struct protoent *getprotoent_r(struct protoent *result, - char *buffer, int buflen) {} - - -int -main () -{ -return (0); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, int buflen" -PROTO_R_BAD="#define PROTO_R_BAD NULL" -PROTO_R_COPY="#define PROTO_R_COPY buf, buflen" -PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS PROTO_R_ARGS" -PROTO_R_OK="#define PROTO_R_OK pptr" -PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER" -PROTO_R_RETURN="#define PROTO_R_RETURN struct protoent *" -PROTOENT_DATA="#undef PROTOENT_DATA" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -int getprotoent_r (struct protoent *, char *, size_t, struct protoent **); - - - -int -main () -{ -return (0); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, size_t buflen, struct protoent **answerp" -PROTO_R_BAD="#define PROTO_R_BAD ERANGE" -PROTO_R_COPY="#define PROTO_R_COPY buf, buflen" -PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS char *buf, size_t buflen" -PROTO_R_OK="#define PROTO_R_OK 0" -PROTO_R_SETANSWER="#define PROTO_R_SETANSWER 1" -PROTO_R_RETURN="#define PROTO_R_RETURN int" -PROTOENT_DATA="#undef PROTOENT_DATA" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -int getprotoent_r (struct protoent *, struct protoent_data *prot_data); - - - -int -main () -{ -return (0); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -PROTO_R_ARGS="#define PROTO_R_ARGS struct protoent_data *prot_data" -PROTO_R_BAD="#define PROTO_R_BAD (-1)" -PROTO_R_COPY="#define PROTO_R_COPY prot_data" -PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS struct protoent_data *pdptr" -PROTO_R_OK="#define PROTO_R_OK 0" -PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER" -PROTO_R_RETURN="#define PROTO_R_RETURN int" -PROTOENT_DATA="#define PROTOENT_DATA 1" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, int buflen" -PROTO_R_BAD="#define PROTO_R_BAD NULL" -PROTO_R_COPY="#define PROTO_R_COPY buf, buflen" -PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS PROTO_R_ARGS" -PROTO_R_OK="#define PROTO_R_OK pptr" -PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER" -PROTO_R_RETURN="#define PROTO_R_RETURN struct protoent *" -PROTOENT_DATA="#undef PROTOENT_DATA" - -fi - -;; -esac - - - - - - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for endprotoent_r" >&5 -echo $ECHO_N "checking for endprotoent_r... $ECHO_C" >&6 -if test "${ac_cv_func_endprotoent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define endprotoent_r to an innocuous variant, in case declares endprotoent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define endprotoent_r innocuous_endprotoent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char endprotoent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef endprotoent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char endprotoent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_endprotoent_r) || defined (__stub___endprotoent_r) -choke me -#else -char (*f) () = endprotoent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != endprotoent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_endprotoent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_endprotoent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_endprotoent_r" >&5 -echo "${ECHO_T}$ac_cv_func_endprotoent_r" >&6 -if test $ac_cv_func_endprotoent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void endprotoent_r(void); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/" -PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void" -PROTO_R_ENT_ARGS="#undef PROTO_R_ENT_ARGS" -PROTO_R_ENT_UNUSED="#undef PROTO_R_ENT_UNUSED" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void endprotoent_r(struct protoent_data *); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/" -PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void" -PROTO_R_ENT_ARGS="#define PROTO_R_ENT_ARGS struct protoent_data *proto_data" -PROTO_R_ENT_UNUSED="#define PROTO_R_ENT_UNUSED UNUSED(proto_data)" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -int endprotoent_r(struct protoent_data *); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) return(0)" -PROTO_R_END_RETURN="#define PROTO_R_END_RETURN int" -PROTO_R_ENT_ARGS="#define PROTO_R_ENT_ARGS struct protoent_data *proto_data" -PROTO_R_ENT_UNUSED="#define PROTO_R_ENT_UNUSED UNUSED(proto_data)" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/" -PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void" -PROTO_R_ENT_ARGS="#undef PROTO_R_ENT_ARGS /*empty*/" -PROTO_R_ENT_UNUSED="#undef PROTO_R_ENT_UNUSED" - -fi - -esac - - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for setprotoent_r" >&5 -echo $ECHO_N "checking for setprotoent_r... $ECHO_C" >&6 -if test "${ac_cv_func_setprotoent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setprotoent_r to an innocuous variant, in case declares setprotoent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define setprotoent_r innocuous_setprotoent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setprotoent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setprotoent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setprotoent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setprotoent_r) || defined (__stub___setprotoent_r) -choke me -#else -char (*f) () = setprotoent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setprotoent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setprotoent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setprotoent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setprotoent_r" >&5 -echo "${ECHO_T}$ac_cv_func_setprotoent_r" >&6 -if test $ac_cv_func_setprotoent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void setprotoent_r __P((int)); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - PROTO_R_SET_RESULT="#undef PROTO_R_SET_RESULT" -PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN void" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -int setprotoent_r (int, struct protoent_data *); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - PROTO_R_SET_RESULT="#define PROTO_R_SET_RESULT (0)" -PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN int" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - PROTO_R_SET_RESULT="#undef PROTO_R_SET_RESULT" -PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN void" - -fi - -esac - - - -echo "$as_me:$LINENO: checking for getpwent_r" >&5 -echo $ECHO_N "checking for getpwent_r... $ECHO_C" >&6 -if test "${ac_cv_func_getpwent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getpwent_r to an innocuous variant, in case declares getpwent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getpwent_r innocuous_getpwent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getpwent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getpwent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getpwent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getpwent_r) || defined (__stub___getpwent_r) -choke me -#else -char (*f) () = getpwent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getpwent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getpwent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getpwent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getpwent_r" >&5 -echo "${ECHO_T}$ac_cv_func_getpwent_r" >&6 -if test $ac_cv_func_getpwent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -struct passwd * -getpwent_r(struct passwd *pwptr, char *buf, int buflen) {} - - -int -main () -{ - - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - PASS_R_ARGS="#define PASS_R_ARGS char *buf, int buflen" -PASS_R_BAD="#define PASS_R_BAD NULL" -PASS_R_COPY="#define PASS_R_COPY buf, buflen" -PASS_R_COPY_ARGS="#define PASS_R_COPY_ARGS PASS_R_ARGS" -PASS_R_OK="#define PASS_R_OK pwptr" -PASS_R_RETURN="#define PASS_R_RETURN struct passwd *" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - PASS_R_ARGS="#define PASS_R_ARGS char *buf, int buflen" -PASS_R_BAD="#define PASS_R_BAD NULL" -PASS_R_COPY="#define PASS_R_COPY buf, buflen" -PASS_R_COPY_ARGS="#define PASS_R_COPY_ARGS PASS_R_ARGS" -PASS_R_OK="#define PASS_R_OK pwptr" -PASS_R_RETURN="#define PASS_R_RETURN struct passwd *" -cat >>confdefs.h <<\_ACEOF -#define NEED_GETPWENT_R 1 -_ACEOF - - -fi - - - - - - - - -echo "$as_me:$LINENO: checking for endpwent_r" >&5 -echo $ECHO_N "checking for endpwent_r... $ECHO_C" >&6 -if test "${ac_cv_func_endpwent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define endpwent_r to an innocuous variant, in case declares endpwent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define endpwent_r innocuous_endpwent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char endpwent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef endpwent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char endpwent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_endpwent_r) || defined (__stub___endpwent_r) -choke me -#else -char (*f) () = endpwent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != endpwent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_endpwent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_endpwent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_endpwent_r" >&5 -echo "${ECHO_T}$ac_cv_func_endpwent_r" >&6 -if test $ac_cv_func_endpwent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -void endpwent_r(FILE **pwfp); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - PASS_R_END_RESULT="#define PASS_R_END_RESULT(x) /*empty*/" -PASS_R_END_RETURN="#define PASS_R_END_RETURN void" -PASS_R_ENT_ARGS="#define PASS_R_ENT_ARGS FILE **pwptr" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - PASS_R_END_RESULT="#define PASS_R_END_RESULT(x) /*empty*/" -PASS_R_END_RETURN="#define PASS_R_END_RETURN void" -PASS_R_ENT_ARGS="#undef PASS_R_ENT_ARGS" -cat >>confdefs.h <<\_ACEOF -#define NEED_ENDPWENT_R 1 -_ACEOF - - -fi - - - - -echo "$as_me:$LINENO: checking for setpassent_r" >&5 -echo $ECHO_N "checking for setpassent_r... $ECHO_C" >&6 -if test "${ac_cv_func_setpassent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setpassent_r to an innocuous variant, in case declares setpassent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define setpassent_r innocuous_setpassent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setpassent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setpassent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setpassent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setpassent_r) || defined (__stub___setpassent_r) -choke me -#else -char (*f) () = setpassent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setpassent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setpassent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setpassent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setpassent_r" >&5 -echo "${ECHO_T}$ac_cv_func_setpassent_r" >&6 -if test $ac_cv_func_setpassent_r = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_SETPASSENT_R 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for setpassent" >&5 -echo $ECHO_N "checking for setpassent... $ECHO_C" >&6 -if test "${ac_cv_func_setpassent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setpassent to an innocuous variant, in case declares setpassent. - For example, HP-UX 11i declares gettimeofday. */ -#define setpassent innocuous_setpassent - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setpassent (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setpassent - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setpassent (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setpassent) || defined (__stub___setpassent) -choke me -#else -char (*f) () = setpassent; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setpassent; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setpassent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setpassent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setpassent" >&5 -echo "${ECHO_T}$ac_cv_func_setpassent" >&6 -if test $ac_cv_func_setpassent = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_SETPASSENT 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for setpwent_r" >&5 -echo $ECHO_N "checking for setpwent_r... $ECHO_C" >&6 -if test "${ac_cv_func_setpwent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setpwent_r to an innocuous variant, in case declares setpwent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define setpwent_r innocuous_setpwent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setpwent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setpwent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setpwent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setpwent_r) || defined (__stub___setpwent_r) -choke me -#else -char (*f) () = setpwent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setpwent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setpwent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setpwent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setpwent_r" >&5 -echo "${ECHO_T}$ac_cv_func_setpwent_r" >&6 -if test $ac_cv_func_setpwent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -void setpwent_r(FILE **pwfp); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - PASS_R_SET_RESULT="#undef PASS_R_SET_RESULT /* empty */" -PASS_R_SET_RETURN="#define PASS_R_SET_RETURN int" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int setpwent_r(FILE **pwfp); - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - PASS_R_SET_RESULT="#define PASS_R_SET_RESULT 0" -PASS_R_SET_RETURN="#define PASS_R_SET_RETURN int" - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - PASS_R_SET_RESULT="#undef PASS_R_SET_RESULT /*empty*/" -PASS_R_SET_RETURN="#define PASS_R_SET_RETURN void" -cat >>confdefs.h <<\_ACEOF -#define NEED_SETPWENT_R 1 -_ACEOF - - -fi - - - - -echo "$as_me:$LINENO: checking for getpwnam_r" >&5 -echo $ECHO_N "checking for getpwnam_r... $ECHO_C" >&6 -if test "${ac_cv_func_getpwnam_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getpwnam_r to an innocuous variant, in case declares getpwnam_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getpwnam_r innocuous_getpwnam_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getpwnam_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getpwnam_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getpwnam_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getpwnam_r) || defined (__stub___getpwnam_r) -choke me -#else -char (*f) () = getpwnam_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getpwnam_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getpwnam_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getpwnam_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getpwnam_r" >&5 -echo "${ECHO_T}$ac_cv_func_getpwnam_r" >&6 -if test $ac_cv_func_getpwnam_r = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_GETPWNAM_R 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for getpwuid_r" >&5 -echo $ECHO_N "checking for getpwuid_r... $ECHO_C" >&6 -if test "${ac_cv_func_getpwuid_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getpwuid_r to an innocuous variant, in case declares getpwuid_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getpwuid_r innocuous_getpwuid_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getpwuid_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getpwuid_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getpwuid_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getpwuid_r) || defined (__stub___getpwuid_r) -choke me -#else -char (*f) () = getpwuid_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getpwuid_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getpwuid_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getpwuid_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getpwuid_r" >&5 -echo "${ECHO_T}$ac_cv_func_getpwuid_r" >&6 -if test $ac_cv_func_getpwuid_r = yes; then - : -else - cat >>confdefs.h <<\_ACEOF -#define NEED_GETPWUID_R 1 -_ACEOF - -fi - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for getservent_r" >&5 -echo $ECHO_N "checking for getservent_r... $ECHO_C" >&6 -if test "${ac_cv_func_getservent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getservent_r to an innocuous variant, in case declares getservent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define getservent_r innocuous_getservent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getservent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getservent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getservent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getservent_r) || defined (__stub___getservent_r) -choke me -#else -char (*f) () = getservent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getservent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getservent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getservent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getservent_r" >&5 -echo "${ECHO_T}$ac_cv_func_getservent_r" >&6 -if test $ac_cv_func_getservent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -struct servent * -getservent_r(struct servent *result, char *buffer, int buflen) {} - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_ARGS="#define SERV_R_ARGS char *buf, int buflen" -SERV_R_BAD="#define SERV_R_BAD NULL" -SERV_R_COPY="#define SERV_R_COPY buf, buflen" -SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS SERV_R_ARGS" -SERV_R_OK="#define SERV_R_OK sptr" -SERV_R_SETANSWER="#undef SERV_R_SETANSWER" -SERV_R_RETURN="#define SERV_R_RETURN struct servent *" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -int -getservent_r (struct servent *, char *, size_t, struct servent **); - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_ARGS="#define SERV_R_ARGS char *buf, size_t buflen, struct servent **answerp" -SERV_R_BAD="#define SERV_R_BAD ERANGE" -SERV_R_COPY="#define SERV_R_COPY buf, buflen" -SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS char *buf, size_t buflen" -SERV_R_OK="#define SERV_R_OK (0)" -SERV_R_SETANSWER="#define SERV_R_SETANSWER 1" -SERV_R_RETURN="#define SERV_R_RETURN int" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef __USE_MISC -#define __USE_MISC -#include -int -getservent_r (struct servent *, struct servent_data *serv_data); - -int -main () -{ -return (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_ARGS="#define SERV_R_ARGS struct servent_data *serv_data" -SERV_R_BAD="#define SERV_R_BAD (-1)" -SERV_R_COPY="#define SERV_R_COPY serv_data" -SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS struct servent_data *sdptr" -SERV_R_OK="#define SERV_R_OK (0)" -SERV_R_SETANSWER="#undef SERV_R_SETANSWER" -SERV_R_RETURN="#define SERV_R_RETURN int" -SERVENT_DATA="#define SERVENT_DATA 1" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - SERV_R_ARGS="#define SERV_R_ARGS char *buf, int buflen" -SERV_R_BAD="#define SERV_R_BAD NULL" -SERV_R_COPY="#define SERV_R_COPY buf, buflen" -SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS SERV_R_ARGS" -SERV_R_OK="#define SERV_R_OK sptr" -SERV_R_SETANSWER="#undef SERV_R_SETANSWER" -SERV_R_RETURN="#define SERV_R_RETURN struct servent *" - -fi - -esac - - - - - - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for endservent_r" >&5 -echo $ECHO_N "checking for endservent_r... $ECHO_C" >&6 -if test "${ac_cv_func_endservent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define endservent_r to an innocuous variant, in case declares endservent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define endservent_r innocuous_endservent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char endservent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef endservent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char endservent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_endservent_r) || defined (__stub___endservent_r) -choke me -#else -char (*f) () = endservent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != endservent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_endservent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_endservent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_endservent_r" >&5 -echo "${ECHO_T}$ac_cv_func_endservent_r" >&6 -if test $ac_cv_func_endservent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void endservent_r(void); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/" -SERV_R_END_RETURN="#define SERV_R_END_RETURN void " -SERV_R_ENT_ARGS="#undef SERV_R_ENT_ARGS /*empty*/" -SERV_R_ENT_UNUSED="#undef SERV_R_ENT_UNUSED /*empty*/" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void endservent_r(struct servent_data *serv_data); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/" -SERV_R_END_RETURN="#define SERV_R_END_RETURN void " -SERV_R_ENT_ARGS="#define SERV_R_ENT_ARGS struct servent_data *serv_data" -SERV_R_ENT_UNUSED="#define SERV_R_ENT_UNUSED UNUSED(serv_data)" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -int endservent_r(struct servent_data *serv_data); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) return(x)" -SERV_R_END_RETURN="#define SERV_R_END_RETURN int " -SERV_R_ENT_ARGS="#define SERV_R_ENT_ARGS struct servent_data *serv_data" -SERV_R_ENT_UNUSED="#define SERV_R_ENT_UNUSED UNUSED(serv_data)" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/" -SERV_R_END_RETURN="#define SERV_R_END_RETURN void " -SERV_R_ENT_ARGS="#undef SERV_R_ENT_ARGS /*empty*/" -SERV_R_ENT_UNUSED="#undef SERV_R_ENT_UNUSED /*empty*/" - -fi - -esac - - - - - -case $host in -ia64-hp-hpux11.*) -;; -*) -echo "$as_me:$LINENO: checking for setservent_r" >&5 -echo $ECHO_N "checking for setservent_r... $ECHO_C" >&6 -if test "${ac_cv_func_setservent_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define setservent_r to an innocuous variant, in case declares setservent_r. - For example, HP-UX 11i declares gettimeofday. */ -#define setservent_r innocuous_setservent_r - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char setservent_r (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef setservent_r - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char setservent_r (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_setservent_r) || defined (__stub___setservent_r) -choke me -#else -char (*f) () = setservent_r; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != setservent_r; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setservent_r=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_setservent_r=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setservent_r" >&5 -echo "${ECHO_T}$ac_cv_func_setservent_r" >&6 -if test $ac_cv_func_setservent_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -void setservent_r(int); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_SET_RESULT="#undef SERV_R_SET_RESULT" -SERV_R_SET_RETURN="#define SERV_R_SET_RETURN void" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -int setservent_r(int, struct servent_data *); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SERV_R_SET_RESULT="#define SERV_R_SET_RESULT (0)" -SERV_R_SET_RETURN="#define SERV_R_SET_RETURN int" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -else - SERV_R_SET_RESULT="#undef SERV_R_SET_RESULT" -SERV_R_SET_RETURN="#define SERV_R_SET_RETURN void" - -fi - -esac - - - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -#include -int innetgr(const char *netgroup, const char *host, const char *user, const char *domain); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -INNETGR_ARGS="#undef INNETGR_ARGS" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -#include -int innetgr(char *netgroup, char *host, char *user, char *domain); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -INNETGR_ARGS="#define INNETGR_ARGS char *netgroup, char *host, char *user, char *domain" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -#include -void setnetgrent(const char *); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SETNETGRENT_ARGS="#undef SETNETGRENT_ARGS" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#undef _REENTRANT -#define _REENTRANT -#undef __USE_MISC -#define __USE_MISC -#include -#include -void setnetgrent(char *); - - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -SETNETGRENT_ARGS="#define SETNETGRENT_ARGS char *netgroup" - - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - - -# -# Random remaining OS-specific issues involving compiler warnings. -# XXXDCL print messages to indicate some compensation is being done? -# -BROKEN_IN6ADDR_INIT_MACROS="#undef BROKEN_IN6ADDR_INIT_MACROS" - -case "$host" in - *-aix5.1.*) - hack_shutup_pthreadmutexinit=yes - hack_shutup_in6addr_init_macros=yes - ;; - *-aix5.[23].*) - hack_shutup_in6addr_init_macros=yes - ;; - *-bsdi3.1*) - hack_shutup_sputaux=yes - ;; - *-bsdi4.0*) - hack_shutup_sigwait=yes - hack_shutup_sputaux=yes - hack_shutup_in6addr_init_macros=yes - ;; - *-bsdi4.1*) - hack_shutup_stdargcast=yes - ;; - *-hpux11.11) - hack_shutup_in6addr_init_macros=yes - ;; - *-osf5.1|*-osf5.1b) - hack_shutup_in6addr_init_macros=yes - ;; - *-solaris2.8) - hack_shutup_in6addr_init_macros=yes - ;; - *-solaris2.9) - hack_shutup_in6addr_init_macros=yes - ;; - *-solaris2.10) - hack_shutup_in6addr_init_macros=yes - ;; -esac - -case "$hack_shutup_pthreadmutexinit" in - yes) - # - # Shut up PTHREAD_MUTEX_INITIALIZER unbraced - # initializer warnings. - # - cat >>confdefs.h <<\_ACEOF -#define SHUTUP_MUTEX_INITIALIZER 1 -_ACEOF - - ;; -esac - -case "$hack_shutup_sigwait" in - yes) - # - # Shut up a -Wmissing-prototypes warning for sigwait(). - # - cat >>confdefs.h <<\_ACEOF -#define SHUTUP_SIGWAIT 1 -_ACEOF - - ;; -esac - -case "$hack_shutup_sputaux" in - yes) - # - # Shut up a -Wmissing-prototypes warning from . - # - cat >>confdefs.h <<\_ACEOF -#define SHUTUP_SPUTAUX 1 -_ACEOF - - ;; -esac - -case "$hack_shutup_stdargcast" in - yes) - # - # Shut up a -Wcast-qual warning from va_start(). - # - cat >>confdefs.h <<\_ACEOF -#define SHUTUP_STDARG_CAST 1 -_ACEOF - - ;; -esac - -case "$hack_shutup_in6addr_init_macros" in - yes) - -cat >>confdefs.h <<\_ACEOF -#define BROKEN_IN6ADDR_INIT_MACROS 1 -_ACEOF - - ;; -esac - -# -# Substitutions -# - -BIND9_TOP_BUILDDIR=`pwd` - - -BIND9_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes - - -BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules - -. $srcdir/../../version -BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}" - - - -LIBBIND_API=$srcdir/api - - ac_config_files="$ac_config_files make/rules make/mkdep make/includes Makefile bsd/Makefile dst/Makefile include/Makefile inet/Makefile irs/Makefile isc/Makefile nameser/Makefile port_after.h port_before.h resolv/Makefile port/Makefile ${PORT_DIR}/Makefile ${PORT_INCLUDE}/Makefile" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - - - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "make/rules" ) CONFIG_FILES="$CONFIG_FILES make/rules" ;; - "make/mkdep" ) CONFIG_FILES="$CONFIG_FILES make/mkdep" ;; - "make/includes" ) CONFIG_FILES="$CONFIG_FILES make/includes" ;; - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "bsd/Makefile" ) CONFIG_FILES="$CONFIG_FILES bsd/Makefile" ;; - "dst/Makefile" ) CONFIG_FILES="$CONFIG_FILES dst/Makefile" ;; - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "inet/Makefile" ) CONFIG_FILES="$CONFIG_FILES inet/Makefile" ;; - "irs/Makefile" ) CONFIG_FILES="$CONFIG_FILES irs/Makefile" ;; - "isc/Makefile" ) CONFIG_FILES="$CONFIG_FILES isc/Makefile" ;; - "nameser/Makefile" ) CONFIG_FILES="$CONFIG_FILES nameser/Makefile" ;; - "port_after.h" ) CONFIG_FILES="$CONFIG_FILES port_after.h" ;; - "port_before.h" ) CONFIG_FILES="$CONFIG_FILES port_before.h" ;; - "resolv/Makefile" ) CONFIG_FILES="$CONFIG_FILES resolv/Makefile" ;; - "port/Makefile" ) CONFIG_FILES="$CONFIG_FILES port/Makefile" ;; - "${PORT_DIR}/Makefile" ) CONFIG_FILES="$CONFIG_FILES ${PORT_DIR}/Makefile" ;; - "${PORT_INCLUDE}/Makefile" ) CONFIG_FILES="$CONFIG_FILES ${PORT_INCLUDE}/Makefile" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@STD_CINCLUDES@,$STD_CINCLUDES,;t t -s,@STD_CDEFINES@,$STD_CDEFINES,;t t -s,@STD_CWARNINGS@,$STD_CWARNINGS,;t t -s,@CCOPT@,$CCOPT,;t t -s,@AR@,$AR,;t t -s,@ARFLAGS@,$ARFLAGS,;t t -s,@LN@,$LN,;t t -s,@ETAGS@,$ETAGS,;t t -s,@PERL@,$PERL,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@ISC_PLATFORM_NEEDSYSSELECTH@,$ISC_PLATFORM_NEEDSYSSELECTH,;t t -s,@WANT_IRS_GR@,$WANT_IRS_GR,;t t -s,@WANT_IRS_GR_OBJS@,$WANT_IRS_GR_OBJS,;t t -s,@WANT_IRS_PW@,$WANT_IRS_PW,;t t -s,@WANT_IRS_PW_OBJS@,$WANT_IRS_PW_OBJS,;t t -s,@WANT_IRS_NIS@,$WANT_IRS_NIS,;t t -s,@WANT_IRS_NIS_OBJS@,$WANT_IRS_NIS_OBJS,;t t -s,@WANT_IRS_NISGR_OBJS@,$WANT_IRS_NISGR_OBJS,;t t -s,@WANT_IRS_NISPW_OBJS@,$WANT_IRS_NISPW_OBJS,;t t -s,@WANT_IRS_DBPW_OBJS@,$WANT_IRS_DBPW_OBJS,;t t -s,@ALWAYS_DEFINES@,$ALWAYS_DEFINES,;t t -s,@DO_PTHREADS@,$DO_PTHREADS,;t t -s,@WANT_IRS_THREADSGR_OBJS@,$WANT_IRS_THREADSGR_OBJS,;t t -s,@WANT_IRS_THREADSPW_OBJS@,$WANT_IRS_THREADSPW_OBJS,;t t -s,@WANT_IRS_THREADS_OBJS@,$WANT_IRS_THREADS_OBJS,;t t -s,@WANT_THREADS_OBJS@,$WANT_THREADS_OBJS,;t t -s,@USE_IFNAMELINKID@,$USE_IFNAMELINKID,;t t -s,@ISC_THREAD_DIR@,$ISC_THREAD_DIR,;t t -s,@DAEMON_OBJS@,$DAEMON_OBJS,;t t -s,@NEED_DAEMON@,$NEED_DAEMON,;t t -s,@STRSEP_OBJS@,$STRSEP_OBJS,;t t -s,@NEED_STRSEP@,$NEED_STRSEP,;t t -s,@NEED_STRERROR@,$NEED_STRERROR,;t t -s,@MKDEPCC@,$MKDEPCC,;t t -s,@MKDEPCFLAGS@,$MKDEPCFLAGS,;t t -s,@MKDEPPROG@,$MKDEPPROG,;t t -s,@IRIX_DNSSEC_WARNINGS_HACK@,$IRIX_DNSSEC_WARNINGS_HACK,;t t -s,@purify_path@,$purify_path,;t t -s,@PURIFY@,$PURIFY,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@CXX@,$CXX,;t t -s,@CXXFLAGS@,$CXXFLAGS,;t t -s,@ac_ct_CXX@,$ac_ct_CXX,;t t -s,@CXXCPP@,$CXXCPP,;t t -s,@F77@,$F77,;t t -s,@FFLAGS@,$FFLAGS,;t t -s,@ac_ct_F77@,$ac_ct_F77,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@O@,$O,;t t -s,@A@,$A,;t t -s,@SA@,$SA,;t t -s,@LIBTOOL_MKDEP_SED@,$LIBTOOL_MKDEP_SED,;t t -s,@LIBTOOL_MODE_COMPILE@,$LIBTOOL_MODE_COMPILE,;t t -s,@LIBTOOL_MODE_INSTALL@,$LIBTOOL_MODE_INSTALL,;t t -s,@LIBTOOL_MODE_LINK@,$LIBTOOL_MODE_LINK,;t t -s,@HAS_INET6_STRUCTS@,$HAS_INET6_STRUCTS,;t t -s,@ISC_PLATFORM_NEEDNETINETIN6H@,$ISC_PLATFORM_NEEDNETINETIN6H,;t t -s,@ISC_PLATFORM_NEEDNETINET6IN6H@,$ISC_PLATFORM_NEEDNETINET6IN6H,;t t -s,@HAS_IN_ADDR6@,$HAS_IN_ADDR6,;t t -s,@NEED_IN6ADDR_ANY@,$NEED_IN6ADDR_ANY,;t t -s,@ISC_PLATFORM_HAVEIN6PKTINFO@,$ISC_PLATFORM_HAVEIN6PKTINFO,;t t -s,@ISC_PLATFORM_FIXIN6ISADDR@,$ISC_PLATFORM_FIXIN6ISADDR,;t t -s,@ISC_IPV6_H@,$ISC_IPV6_H,;t t -s,@ISC_IPV6_O@,$ISC_IPV6_O,;t t -s,@ISC_ISCIPV6_O@,$ISC_ISCIPV6_O,;t t -s,@ISC_IPV6_C@,$ISC_IPV6_C,;t t -s,@HAVE_SIN6_SCOPE_ID@,$HAVE_SIN6_SCOPE_ID,;t t -s,@HAVE_SOCKADDR_STORAGE@,$HAVE_SOCKADDR_STORAGE,;t t -s,@ISC_PLATFORM_NEEDNTOP@,$ISC_PLATFORM_NEEDNTOP,;t t -s,@ISC_PLATFORM_NEEDPTON@,$ISC_PLATFORM_NEEDPTON,;t t -s,@ISC_PLATFORM_NEEDATON@,$ISC_PLATFORM_NEEDATON,;t t -s,@HAVE_SA_LEN@,$HAVE_SA_LEN,;t t -s,@HAVE_MINIMUM_IFREQ@,$HAVE_MINIMUM_IFREQ,;t t -s,@BSD_COMP@,$BSD_COMP,;t t -s,@SOLARIS_BITTYPES@,$SOLARIS_BITTYPES,;t t -s,@USE_FIONBIO_IOCTL@,$USE_FIONBIO_IOCTL,;t t -s,@PORT_NONBLOCK@,$PORT_NONBLOCK,;t t -s,@PORT_DIR@,$PORT_DIR,;t t -s,@USE_POLL@,$USE_POLL,;t t -s,@HAVE_MD5@,$HAVE_MD5,;t t -s,@SOLARIS2@,$SOLARIS2,;t t -s,@PORT_INCLUDE@,$PORT_INCLUDE,;t t -s,@ISC_PLATFORM_MSGHDRFLAVOR@,$ISC_PLATFORM_MSGHDRFLAVOR,;t t -s,@ISC_PLATFORM_NEEDPORTT@,$ISC_PLATFORM_NEEDPORTT,;t t -s,@ISC_PLATFORM_NEEDTIMESPEC@,$ISC_PLATFORM_NEEDTIMESPEC,;t t -s,@ISC_LWRES_ENDHOSTENTINT@,$ISC_LWRES_ENDHOSTENTINT,;t t -s,@ISC_LWRES_SETNETENTINT@,$ISC_LWRES_SETNETENTINT,;t t -s,@ISC_LWRES_ENDNETENTINT@,$ISC_LWRES_ENDNETENTINT,;t t -s,@ISC_LWRES_GETHOSTBYADDRVOID@,$ISC_LWRES_GETHOSTBYADDRVOID,;t t -s,@ISC_LWRES_NEEDHERRNO@,$ISC_LWRES_NEEDHERRNO,;t t -s,@ISC_LWRES_GETIPNODEPROTO@,$ISC_LWRES_GETIPNODEPROTO,;t t -s,@ISC_LWRES_GETADDRINFOPROTO@,$ISC_LWRES_GETADDRINFOPROTO,;t t -s,@ISC_LWRES_GETNAMEINFOPROTO@,$ISC_LWRES_GETNAMEINFOPROTO,;t t -s,@NEED_PSELECT@,$NEED_PSELECT,;t t -s,@NEED_GETTIMEOFDAY@,$NEED_GETTIMEOFDAY,;t t -s,@HAVE_STRNDUP@,$HAVE_STRNDUP,;t t -s,@ISC_PLATFORM_NEEDSTRSEP@,$ISC_PLATFORM_NEEDSTRSEP,;t t -s,@ISC_PLATFORM_NEEDVSNPRINTF@,$ISC_PLATFORM_NEEDVSNPRINTF,;t t -s,@ISC_EXTRA_OBJS@,$ISC_EXTRA_OBJS,;t t -s,@ISC_EXTRA_SRCS@,$ISC_EXTRA_SRCS,;t t -s,@USE_SYSERROR_LIST@,$USE_SYSERROR_LIST,;t t -s,@ISC_PLATFORM_QUADFORMAT@,$ISC_PLATFORM_QUADFORMAT,;t t -s,@ISC_SOCKLEN_T@,$ISC_SOCKLEN_T,;t t -s,@GETGROUPLIST_ARGS@,$GETGROUPLIST_ARGS,;t t -s,@NET_R_ARGS@,$NET_R_ARGS,;t t -s,@NET_R_BAD@,$NET_R_BAD,;t t -s,@NET_R_COPY@,$NET_R_COPY,;t t -s,@NET_R_COPY_ARGS@,$NET_R_COPY_ARGS,;t t -s,@NET_R_OK@,$NET_R_OK,;t t -s,@NET_R_SETANSWER@,$NET_R_SETANSWER,;t t -s,@NET_R_RETURN@,$NET_R_RETURN,;t t -s,@GETNETBYADDR_ADDR_T@,$GETNETBYADDR_ADDR_T,;t t -s,@NETENT_DATA@,$NETENT_DATA,;t t -s,@NET_R_ENT_ARGS@,$NET_R_ENT_ARGS,;t t -s,@NET_R_SET_RESULT@,$NET_R_SET_RESULT,;t t -s,@NET_R_SET_RETURN@,$NET_R_SET_RETURN,;t t -s,@NET_R_END_RESULT@,$NET_R_END_RESULT,;t t -s,@NET_R_END_RETURN@,$NET_R_END_RETURN,;t t -s,@GROUP_R_ARGS@,$GROUP_R_ARGS,;t t -s,@GROUP_R_BAD@,$GROUP_R_BAD,;t t -s,@GROUP_R_OK@,$GROUP_R_OK,;t t -s,@GROUP_R_RETURN@,$GROUP_R_RETURN,;t t -s,@GROUP_R_END_RESULT@,$GROUP_R_END_RESULT,;t t -s,@GROUP_R_END_RETURN@,$GROUP_R_END_RETURN,;t t -s,@GROUP_R_ENT_ARGS@,$GROUP_R_ENT_ARGS,;t t -s,@GROUP_R_SET_RESULT@,$GROUP_R_SET_RESULT,;t t -s,@GROUP_R_SET_RETURN@,$GROUP_R_SET_RETURN,;t t -s,@HOST_R_ARGS@,$HOST_R_ARGS,;t t -s,@HOST_R_BAD@,$HOST_R_BAD,;t t -s,@HOST_R_COPY@,$HOST_R_COPY,;t t -s,@HOST_R_COPY_ARGS@,$HOST_R_COPY_ARGS,;t t -s,@HOST_R_ERRNO@,$HOST_R_ERRNO,;t t -s,@HOST_R_OK@,$HOST_R_OK,;t t -s,@HOST_R_RETURN@,$HOST_R_RETURN,;t t -s,@HOST_R_SETANSWER@,$HOST_R_SETANSWER,;t t -s,@HOSTENT_DATA@,$HOSTENT_DATA,;t t -s,@HOST_R_END_RESULT@,$HOST_R_END_RESULT,;t t -s,@HOST_R_END_RETURN@,$HOST_R_END_RETURN,;t t -s,@HOST_R_ENT_ARGS@,$HOST_R_ENT_ARGS,;t t -s,@HOST_R_SET_RESULT@,$HOST_R_SET_RESULT,;t t -s,@HOST_R_SET_RETURN@,$HOST_R_SET_RETURN,;t t -s,@SETPWENT_VOID@,$SETPWENT_VOID,;t t -s,@SETGRENT_VOID@,$SETGRENT_VOID,;t t -s,@NGR_R_ARGS@,$NGR_R_ARGS,;t t -s,@NGR_R_BAD@,$NGR_R_BAD,;t t -s,@NGR_R_COPY@,$NGR_R_COPY,;t t -s,@NGR_R_COPY_ARGS@,$NGR_R_COPY_ARGS,;t t -s,@NGR_R_OK@,$NGR_R_OK,;t t -s,@NGR_R_RETURN@,$NGR_R_RETURN,;t t -s,@NGR_R_PRIVATE@,$NGR_R_PRIVATE,;t t -s,@NGR_R_END_RESULT@,$NGR_R_END_RESULT,;t t -s,@NGR_R_END_RETURN@,$NGR_R_END_RETURN,;t t -s,@NGR_R_ENT_ARGS@,$NGR_R_ENT_ARGS,;t t -s,@NGR_R_SET_RESULT@,$NGR_R_SET_RESULT,;t t -s,@NGR_R_SET_RETURN@,$NGR_R_SET_RETURN,;t t -s,@PROTO_R_ARGS@,$PROTO_R_ARGS,;t t -s,@PROTO_R_BAD@,$PROTO_R_BAD,;t t -s,@PROTO_R_COPY@,$PROTO_R_COPY,;t t -s,@PROTO_R_COPY_ARGS@,$PROTO_R_COPY_ARGS,;t t -s,@PROTO_R_OK@,$PROTO_R_OK,;t t -s,@PROTO_R_SETANSWER@,$PROTO_R_SETANSWER,;t t -s,@PROTO_R_RETURN@,$PROTO_R_RETURN,;t t -s,@PROTOENT_DATA@,$PROTOENT_DATA,;t t -s,@PROTO_R_END_RESULT@,$PROTO_R_END_RESULT,;t t -s,@PROTO_R_END_RETURN@,$PROTO_R_END_RETURN,;t t -s,@PROTO_R_ENT_ARGS@,$PROTO_R_ENT_ARGS,;t t -s,@PROTO_R_ENT_UNUSED@,$PROTO_R_ENT_UNUSED,;t t -s,@PROTO_R_SET_RESULT@,$PROTO_R_SET_RESULT,;t t -s,@PROTO_R_SET_RETURN@,$PROTO_R_SET_RETURN,;t t -s,@PASS_R_ARGS@,$PASS_R_ARGS,;t t -s,@PASS_R_BAD@,$PASS_R_BAD,;t t -s,@PASS_R_COPY@,$PASS_R_COPY,;t t -s,@PASS_R_COPY_ARGS@,$PASS_R_COPY_ARGS,;t t -s,@PASS_R_OK@,$PASS_R_OK,;t t -s,@PASS_R_RETURN@,$PASS_R_RETURN,;t t -s,@PASS_R_END_RESULT@,$PASS_R_END_RESULT,;t t -s,@PASS_R_END_RETURN@,$PASS_R_END_RETURN,;t t -s,@PASS_R_ENT_ARGS@,$PASS_R_ENT_ARGS,;t t -s,@PASS_R_SET_RESULT@,$PASS_R_SET_RESULT,;t t -s,@PASS_R_SET_RETURN@,$PASS_R_SET_RETURN,;t t -s,@SERV_R_ARGS@,$SERV_R_ARGS,;t t -s,@SERV_R_BAD@,$SERV_R_BAD,;t t -s,@SERV_R_COPY@,$SERV_R_COPY,;t t -s,@SERV_R_COPY_ARGS@,$SERV_R_COPY_ARGS,;t t -s,@SERV_R_OK@,$SERV_R_OK,;t t -s,@SERV_R_SETANSWER@,$SERV_R_SETANSWER,;t t -s,@SERV_R_RETURN@,$SERV_R_RETURN,;t t -s,@SERVENT_DATA@,$SERVENT_DATA,;t t -s,@SERV_R_END_RESULT@,$SERV_R_END_RESULT,;t t -s,@SERV_R_END_RETURN@,$SERV_R_END_RETURN,;t t -s,@SERV_R_ENT_ARGS@,$SERV_R_ENT_ARGS,;t t -s,@SERV_R_ENT_UNUSED@,$SERV_R_ENT_UNUSED,;t t -s,@SERV_R_SET_RESULT@,$SERV_R_SET_RESULT,;t t -s,@SERV_R_SET_RETURN@,$SERV_R_SET_RETURN,;t t -s,@SETNETGRENT_ARGS@,$SETNETGRENT_ARGS,;t t -s,@INNETGR_ARGS@,$INNETGR_ARGS,;t t -s,@BIND9_TOP_BUILDDIR@,$BIND9_TOP_BUILDDIR,;t t -s,@BIND9_VERSION@,$BIND9_VERSION,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -/@BIND9_INCLUDES@/r $BIND9_INCLUDES -s,@BIND9_INCLUDES@,,;t t -/@BIND9_MAKE_RULES@/r $BIND9_MAKE_RULES -s,@BIND9_MAKE_RULES@,,;t t -/@LIBBIND_API@/r $LIBBIND_API -s,@LIBBIND_API@,,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - - -# Tell Emacs to edit this file in shell mode. -# Local Variables: -# mode: sh -# End: From 6de19f17190668cb8a4f71df80d863f879681f77 Mon Sep 17 00:00:00 2001 From: dougb Date: Sat, 12 Jul 2008 08:46:21 +0000 Subject: [PATCH 05/13] The vendor area is the proper home for these files now. --- FREEBSD-Upgrade | 120 ++++++++++++++++++++++++++++++++++++++++++++++++ FREEBSD-Xlist | 67 +++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 FREEBSD-Upgrade create mode 100644 FREEBSD-Xlist diff --git a/FREEBSD-Upgrade b/FREEBSD-Upgrade new file mode 100644 index 000000000000..75efb09f1e62 --- /dev/null +++ b/FREEBSD-Upgrade @@ -0,0 +1,120 @@ + + + FreeBSD maintainer's guide to updating BIND 9 + ============================================= + +1) Obtain the latest source distribution from the ISC's FTP server + (ftp://ftp.isc.org/isc/bind9/) + +2) Unpack the tarball in a suitable directory, and cd into the new + source directory. + +3) Remove unwanted files and directories: + + $ while read pattern ; do rm -rf $pattern ; done \ + Date: Sat, 12 Jul 2008 08:52:11 +0000 Subject: [PATCH 06/13] Update this file to reflect how things are done in subversion-land Reviewed by: peter --- FREEBSD-Upgrade | 61 +++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/FREEBSD-Upgrade b/FREEBSD-Upgrade index 75efb09f1e62..7da86ec45ec1 100644 --- a/FREEBSD-Upgrade +++ b/FREEBSD-Upgrade @@ -1,49 +1,60 @@ - FreeBSD maintainer's guide to updating BIND 9 ============================================= 1) Obtain the latest source distribution from the ISC's FTP server (ftp://ftp.isc.org/isc/bind9/) -2) Unpack the tarball in a suitable directory, and cd into the new - source directory. +2) Check out the head of the subversion "vendor branch" -3) Remove unwanted files and directories: + svn co $REPO/vendor/bind9/dist - $ while read pattern ; do rm -rf $pattern ; done \ - .tar.gz -X dist/FREEBSD-Xlist - $ cvs -q -n import src/contrib/bind9 ISC x | grep \^N +4) Copy new files over the old ones: -4) Import the sources: + cp -Rp bind-9./* dist/ - $ cvs import -m "Vendor import of BIND 9.X.Y" \ - src/contrib/bind9 ISC BIND_9_X_Y +5) Check to see if any files have been added or deleted using 'svn status' + and 'diff -ur bind-9. dist -x \.svn | grep 'Only in' -5) Resolve conflicts. +6) Use 'svn add' and 'svn rm' to bring dist up to date for files found above. + Update FREEBSD-Xlist as needed. + The files in vendor/bind9/dist should now look exactly like those in the + ISC sources, minus the files/directories in FREEBSD-Xlist above. + Carefully check the output of 'svn status' and 'svn diff' + It's not if you're paranoid, it's if you are paranoid enough - As of 2 June 2007, we have no local patches against BIND 9; thus - there are no conflicts to merge. This may change at a later date. +7) Commit the update to the vendor files: -5a) Remove any files that are no longer in the tarball from the vendor branch. + cd dist ; svn ci -m "Vendor import of BIND 9.X.Y" + svn cp $REPO/vendor/bind9/dist $REPO/vendor/bind9/${version} + (this is a server-side operation, you dont have to check it out) -6) Remove any references to the {bin,lib}/tests and docutil +8) Update the files in src/contrib/bind9: + + cd head/contrib/bind9 + + Make sure you are up to date: + svn update ; svn status + + svn merge $REPO/vendor/bind9/dist . + Resolve conflicts (if any) + Carefully check the output of 'svn status' and 'svn diff' + Test build the updated files with a clean /usr/obj and empty src.conf + Commit + +9) Remove any references to the {bin,lib}/tests and docutil directories from the configure and Makefile templates: $ sed -i.orig -e '/\/tests/d; /docutil/d; /\/xsl/d;' \ configure.in Makefile.in */Makefile.in - Please do not commit this change, as it would unnecessarily take - files off the vendor branch. You only need this to generate - config.h. + Please do not commit this change. You only need this to generate config.h. -7) Generate and run configure: +10) Generate and run configure: $ aclocal $ autoheader @@ -58,7 +69,7 @@ command line; src/lib/bind/config.mk will re-enable it at compile time if WITHOUT_INET6 is not defined. -8) Copy the following generated files to src/lib/bind and commit them: +11) Copy the following generated files to src/lib/bind and commit them: Path in src/contrib/bind9 Path in src/lib/bind ------------------------------------------------------------ @@ -74,7 +85,7 @@ Do not commit any other file that was modified or created in steps 6) or 7). -9) cd src/lib/bind/dns && make -DMAINTAINER_MODE generate && rm gen +12) cd src/lib/bind/dns && make -DMAINTAINER_MODE generate && rm gen Commit the new versions of the files generated. The following directories contain Makefiles for bits and pieces of From 6391cf1904f97dca07bdcd4495e134bd220885a9 Mon Sep 17 00:00:00 2001 From: dougb Date: Mon, 1 Sep 2008 20:53:25 +0000 Subject: [PATCH 07/13] Vendor import of BIND 9.4.2-P2 --- CHANGES | 46 ++++++- COPYRIGHT | 4 +- bin/dig/dighost.c | 14 +- bin/named/client.c | 4 +- bin/named/config.c | 7 +- bin/named/controlconf.c | 10 +- bin/named/interfacemgr.c | 9 +- bin/named/lwresd.c | 9 +- bin/named/named.conf.docbook | 6 +- bin/named/server.c | 71 +++++++--- bin/rndc/rndc.c | 10 +- configure.in | 6 +- doc/arm/Bv9ARM-book.xml | 23 +++- lib/bind/configure.in | 6 +- lib/bind9/check.c | 4 +- lib/dns/api | 2 +- lib/dns/dispatch.c | 34 ++++- lib/dns/include/dns/dispatch.h | 4 +- lib/dns/request.c | 10 +- lib/dns/resolver.c | 20 ++- lib/dns/xfrin.c | 7 +- lib/isc/api | 4 +- lib/isc/include/isc/resource.h | 19 ++- lib/isc/include/isc/socket.h | 21 ++- lib/isc/include/isc/timer.h | 8 +- lib/isc/timer.c | 16 ++- lib/isc/unix/app.c | 8 +- lib/isc/unix/resource.c | 78 ++++++++++- lib/isc/unix/socket.c | 243 +++++++++++++++++++++++++++------ lib/isc/unix/socket_p.h | 4 +- lib/isccfg/api | 2 +- lib/isccfg/namedconf.c | 7 +- version | 4 +- 33 files changed, 559 insertions(+), 161 deletions(-) diff --git a/CHANGES b/CHANGES index 43d2bd7af22d..a8d3857a8c96 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,47 @@ + --- 9.4.2-P2 released --- + +2406. [bug] Some operating systems have FD_SETSIZE set to a + low value by default, which can cause resource + exhaustion when many simultaneous connections are + open. Linux in particular makes it difficult to + increase this value. To use more sockets with + select(), set ISC_SOCKET_FDSETSIZE. Example: + STD_CDEFINES="-DISC_SOCKET_FDSETSIZE=4096" ./configure + (This should not be necessary in most cases, and + never for an authoritative-only server.) [RT #18328] + +2404. [port] hpux: files unlimited support. + +2403. [bug] TSIG context leak. [RT #18341] + +2402. [port] Support Solaris 2.11 and over. [RT #18362] + +2401. [bug] Expect to get E[MN]FILE errno internal_accept() + (from accept() or fcntl() system calls). [RT #18358] + +2399. [bug] Abort timeout queries to reduce the number of open + UDP sockets. [RT #18367] + +2398. [bug] Improve file descriptor management. New, + temporary, named.conf option reserved-sockets, + default 512. [RT #18344] + +2396. [bug] Don't set SO_REUSEADDR for randomized ports. + [RT #18336] + +2395. [port] Avoid warning and no effect from "files unlimited" + on Linux when running as root. [RT #18335] + +2394. [bug] Default configuration options set the limit for + open files to 'unlimited' as described in the + documentation. [RT #18331] + +2392. [bug] remove 'grep -q' from acl test script, some platforms + don't support it. [RT #18253] + +2322. [port] MacOS: work around the limitation of setrlimit() + for RLIMIT_NOFILE. [RT #17526] + --- 9.4.2-P1 released --- 2375. [security] Fully randomize UDP query ports to improve @@ -33,7 +77,7 @@ [RT #17113] 2249. [bug] Only set Authentic Data bit if client requested - DNSSEC, per RFC 3655 [RT #17175] + DNSSEC, per RFC 3655 [RT #17175] 2248. [cleanup] Fix several errors reported by Coverity. [RT #17160] diff --git a/COPYRIGHT b/COPYRIGHT index 48141e718230..2eaecb296f7d 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,4 +1,4 @@ -Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") Copyright (C) 1996-2003 Internet Software Consortium. Permission to use, copy, modify, and/or distribute this software for any @@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -$Id: COPYRIGHT,v 1.9.18.4 2007/08/28 07:19:54 tbox Exp $ +$Id: COPYRIGHT,v 1.9.18.4.10.1 2008/07/23 07:28:54 tbox Exp $ Portions Copyright (C) 1996-2001 Nominum, Inc. diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 6e7c16be108a..9e7e79659a69 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dighost.c,v 1.259.18.43 2007/08/28 07:19:55 tbox Exp $ */ +/* $Id: dighost.c,v 1.259.18.43.10.3 2008/07/23 23:16:43 marka Exp $ */ /*! \file * \note @@ -2217,14 +2217,15 @@ send_tcp_connect(dig_query_t *query) { sockcount++; debug("sockcount=%d", sockcount); if (specified_source) - result = isc_socket_bind(query->sock, &bind_address); + result = isc_socket_bind(query->sock, &bind_address, + ISC_SOCKET_REUSEADDRESS); else { if ((isc_sockaddr_pf(&query->sockaddr) == AF_INET) && have_ipv4) isc_sockaddr_any(&bind_any); else isc_sockaddr_any6(&bind_any); - result = isc_socket_bind(query->sock, &bind_any); + result = isc_socket_bind(query->sock, &bind_any, 0); } check_result(result, "isc_socket_bind"); bringup_timer(query, TCP_TIMEOUT); @@ -2271,11 +2272,12 @@ send_udp(dig_query_t *query) { sockcount++; debug("sockcount=%d", sockcount); if (specified_source) { - result = isc_socket_bind(query->sock, &bind_address); + result = isc_socket_bind(query->sock, &bind_address, + ISC_SOCKET_REUSEADDRESS); } else { isc_sockaddr_anyofpf(&bind_any, isc_sockaddr_pf(&query->sockaddr)); - result = isc_socket_bind(query->sock, &bind_any); + result = isc_socket_bind(query->sock, &bind_any, 0); } check_result(result, "isc_socket_bind"); diff --git a/bin/named/client.c b/bin/named/client.c index 87dbdb859ce2..3b87d2648c0e 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: client.c,v 1.219.18.28.10.1 2008/05/22 21:28:04 each Exp $ */ +/* $Id: client.c,v 1.219.18.28.10.2 2008/07/23 07:28:54 tbox Exp $ */ #include diff --git a/bin/named/config.c b/bin/named/config.c index e2dc833f9f6f..632960c15c37 100644 --- a/bin/named/config.c +++ b/bin/named/config.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: config.c,v 1.47.18.32 2007/09/13 05:04:01 each Exp $ */ +/* $Id: config.c,v 1.47.18.32.10.3 2008/07/23 23:48:17 tbox Exp $ */ /*! \file */ @@ -52,7 +52,7 @@ options {\n\ #ifndef WIN32 " coresize default;\n\ datasize default;\n\ - files default;\n\ + files unlimited;\n\ stacksize default;\n" #endif " deallocate-on-exit true;\n\ @@ -99,6 +99,7 @@ options {\n\ use-ixfr true;\n\ edns-udp-size 4096;\n\ max-udp-size 4096;\n\ + reserved-sockets 512;\n\ \n\ /* view */\n\ allow-notify {none;};\n\ diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c index 3e364469e6d3..f0703cb06505 100644 --- a/bin/named/controlconf.c +++ b/bin/named/controlconf.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: controlconf.c,v 1.40.18.10 2006/12/07 04:53:02 marka Exp $ */ +/* $Id: controlconf.c,v 1.40.18.10.40.3 2008/07/23 23:16:43 marka Exp $ */ /*! \file */ @@ -1151,8 +1151,8 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp, type, &listener->sock); if (result == ISC_R_SUCCESS) - result = isc_socket_bind(listener->sock, - &listener->address); + result = isc_socket_bind(listener->sock, &listener->address, + ISC_SOCKET_REUSEADDRESS); if (result == ISC_R_SUCCESS && type == isc_sockettype_unix) { listener->perm = cfg_obj_asuint32(cfg_tuple_get(control, diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c index db410310147c..2a82c9874764 100644 --- a/bin/named/interfacemgr.c +++ b/bin/named/interfacemgr.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: interfacemgr.c,v 1.76.18.8 2006/07/20 01:10:30 marka Exp $ */ +/* $Id: interfacemgr.c,v 1.76.18.8.44.3 2008/07/23 23:16:43 marka Exp $ */ /*! \file */ @@ -307,7 +307,8 @@ ns_interface_accepttcp(ns_interface_t *ifp) { #ifndef ISC_ALLOW_MAPPED isc_socket_ipv6only(ifp->tcpsocket, ISC_TRUE); #endif - result = isc_socket_bind(ifp->tcpsocket, &ifp->addr); + result = isc_socket_bind(ifp->tcpsocket, &ifp->addr, + ISC_SOCKET_REUSEADDRESS); if (result != ISC_R_SUCCESS) { isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_ERROR, "binding TCP socket: %s", diff --git a/bin/named/lwresd.c b/bin/named/lwresd.c index a1073fa4bbf4..1f7184e72dcc 100644 --- a/bin/named/lwresd.c +++ b/bin/named/lwresd.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lwresd.c,v 1.46.18.7 2006/03/02 00:37:21 marka Exp $ */ +/* $Id: lwresd.c,v 1.46.18.7.52.3 2008/07/23 23:16:43 marka Exp $ */ /*! \file * \brief @@ -576,7 +576,8 @@ listener_bind(ns_lwreslistener_t *listener, isc_sockaddr_t *address) { return (result); } - result = isc_socket_bind(sock, &listener->address); + result = isc_socket_bind(sock, &listener->address, + ISC_SOCKET_REUSEADDRESS); if (result != ISC_R_SUCCESS) { char socktext[ISC_SOCKADDR_FORMATSIZE]; isc_sockaddr_format(&listener->address, socktext, diff --git a/bin/named/named.conf.docbook b/bin/named/named.conf.docbook index e4cfcc7fef01..8635f9754fd6 100644 --- a/bin/named/named.conf.docbook +++ b/bin/named/named.conf.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + Aug 13, 2004 @@ -40,6 +40,7 @@ 2005 2006 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -201,6 +202,7 @@ options { port integer; querylog boolean; recursing-file quoted_string; + reserved-sockets integer; random-device quoted_string; recursive-clients integer; serial-query-rate integer; diff --git a/bin/named/server.c b/bin/named/server.c index 8e0c66cca4d9..79bd125c5498 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: server.c,v 1.419.18.57.10.1 2008/05/22 21:28:04 each Exp $ */ +/* $Id: server.c,v 1.419.18.57.10.3 2008/07/23 12:04:32 marka Exp $ */ /*! \file */ @@ -2696,27 +2696,29 @@ static isc_result_t load_configuration(const char *filename, ns_server_t *server, isc_boolean_t first_time) { - isc_result_t result; - isc_interval_t interval; - cfg_parser_t *parser = NULL; + cfg_aclconfctx_t aclconfctx; cfg_obj_t *config; - const cfg_obj_t *options; - const cfg_obj_t *views; - const cfg_obj_t *obj; - const cfg_obj_t *v4ports, *v6ports; - const cfg_obj_t *maps[3]; - const cfg_obj_t *builtin_views; + cfg_parser_t *parser = NULL; const cfg_listelt_t *element; + const cfg_obj_t *builtin_views; + const cfg_obj_t *maps[3]; + const cfg_obj_t *obj; + const cfg_obj_t *options; + const cfg_obj_t *v4ports, *v6ports; + const cfg_obj_t *views; dns_view_t *view = NULL; dns_view_t *view_next; - dns_viewlist_t viewlist; dns_viewlist_t tmpviewlist; - cfg_aclconfctx_t aclconfctx; - isc_uint32_t interface_interval; - isc_uint32_t heartbeat_interval; - isc_uint32_t udpsize; + dns_viewlist_t viewlist; in_port_t listen_port; int i; + isc_interval_t interval; + isc_resourcevalue_t files; + isc_result_t result; + isc_uint32_t heartbeat_interval; + isc_uint32_t interface_interval; + isc_uint32_t reserved; + isc_uint32_t udpsize; cfg_aclconfctx_init(&aclconfctx); ISC_LIST_INIT(viewlist); @@ -2796,6 +2798,43 @@ load_configuration(const char *filename, ns_server_t *server, */ set_limits(maps); + /* + * Sanity check on "files" limit. + */ + result = isc_resource_curlimit(isc_resource_openfiles, &files); + if (result == ISC_R_SUCCESS && files < FD_SETSIZE) { + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_WARNING, + "the 'files' limit (%" ISC_PRINT_QUADFORMAT "u) " + "is less than FD_SETSIZE (%d), increase " + "'files' in named.conf or recompile with a " + "smaller FD_SETSIZE.", files, FD_SETSIZE); + if (files > FD_SETSIZE) + files = FD_SETSIZE; + } else + files = FD_SETSIZE; + + /* + * Set the number of socket reserved for TCP, stdio etc. + */ + obj = NULL; + result = ns_config_get(maps, "reserved-sockets", &obj); + INSIST(result == ISC_R_SUCCESS); + reserved = cfg_obj_asuint32(obj); + if (files < 128U) /* Prevent underflow. */ + reserved = 0; + else if (reserved > files - 128U) /* Mimimum UDP space. */ + reserved = files - 128; + if (reserved < 128U) /* Mimimum TCP/stdio space. */ + reserved = 128; + if (reserved + 128U > files) { + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_WARNING, + "less than 128 UDP sockets available after " + "applying 'reserved-sockets' and 'files'"); + } + isc__socketmgr_setreserved(ns_g_socketmgr, reserved); + /* * Configure various server options. */ diff --git a/bin/rndc/rndc.c b/bin/rndc/rndc.c index 8fd0d8e1e2c0..b916aea88bd0 100644 --- a/bin/rndc/rndc.c +++ b/bin/rndc/rndc.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rndc.c,v 1.96.18.17 2006/08/04 03:03:41 marka Exp $ */ +/* $Id: rndc.c,v 1.96.18.17.42.3 2008/07/23 23:16:43 marka Exp $ */ /*! \file */ @@ -400,10 +400,10 @@ rndc_startconnect(isc_sockaddr_t *addr, isc_task_t *task) { DO("create socket", isc_socket_create(socketmgr, pf, type, &sock)); switch (isc_sockaddr_pf(addr)) { case AF_INET: - DO("bind socket", isc_socket_bind(sock, &local4)); + DO("bind socket", isc_socket_bind(sock, &local4, 0)); break; case AF_INET6: - DO("bind socket", isc_socket_bind(sock, &local6)); + DO("bind socket", isc_socket_bind(sock, &local6, 0)); break; default: break; diff --git a/configure.in b/configure.in index b9280a30a5c4..fb2f2e2aac3a 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 1998-2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any @@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl esyscmd([sed "s/^/# /" COPYRIGHT])dnl AC_DIVERT_POP()dnl -AC_REVISION($Revision: 1.355.18.71 $) +AC_REVISION($Revision: 1.355.18.71.8.2 $) AC_INIT(lib/dns/name.c) AC_PREREQ(2.59) @@ -1839,7 +1839,7 @@ case "$host" in [*-solaris2.[89]]) hack_shutup_pthreadonceinit=yes ;; - *-solaris2.10) + *-solaris2.1[0-9]) hack_shutup_pthreadonceinit=yes ;; esac diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml index a3f61c7c9f3e..24642c13c2b7 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + BIND 9 Administrator Reference Manual @@ -28,6 +28,7 @@ 2005 2006 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -4441,6 +4442,7 @@ category notify { null; }; max-transfer-idle-in number; max-transfer-idle-out number; tcp-clients number; + reserved-sockets number; recursive-clients number; serial-query-rate number; serial-queries number; @@ -6605,6 +6607,23 @@ query-source-v6 address * port *; + + reserved-sockets + + + The number of file descriptors reserved for TCP, stdio, + etc. This needs to be big enough to cover the number of + interfaces named listens on, tcp-clients as well as + to provide room for outgoing TCP queries and incoming zone + transfers. The default is 512. + The minimum value is 128 and the + maximum value is 128 less than + 'files' or FD_SETSIZE (whichever is smaller). This + option may be removed in the future. + + + + max-cache-size diff --git a/lib/bind/configure.in b/lib/bind/configure.in index 82bea7821008..6e98c5c0fddf 100644 --- a/lib/bind/configure.in +++ b/lib/bind/configure.in @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001, 2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -AC_REVISION($Revision: 1.90.18.34 $) +AC_REVISION($Revision: 1.90.18.34.10.2 $) AC_INIT(resolv/herror.c) AC_PREREQ(2.13) @@ -2590,7 +2590,7 @@ case "$host" in *-solaris2.9) hack_shutup_in6addr_init_macros=yes ;; - *-solaris2.10) + *-solaris2.1[0-9]) hack_shutup_in6addr_init_macros=yes ;; esac diff --git a/lib/bind9/check.c b/lib/bind9/check.c index 01d67b79463b..6cfdc93c6141 100644 --- a/lib/bind9/check.c +++ b/lib/bind9/check.c @@ -1015,10 +1015,10 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, isc_buffer_add(&b, strlen(zname)); tresult = dns_name_fromtext(dns_fixedname_name(&fixedname), &b, dns_rootname, ISC_TRUE, NULL); - if (tresult != ISC_R_SUCCESS) { + if (result != ISC_R_SUCCESS) { cfg_obj_log(zconfig, logctx, ISC_LOG_ERROR, "zone '%s': is not a valid name", zname); - result = ISC_R_FAILURE; + tresult = ISC_R_FAILURE; } else { char namebuf[DNS_NAME_FORMATSIZE]; diff --git a/lib/dns/api b/lib/dns/api index f40dfe0239bf..7ad55061cc58 100644 --- a/lib/dns/api +++ b/lib/dns/api @@ -1,3 +1,3 @@ LIBINTERFACE = 35 -LIBREVISION = 0 +LIBREVISION = 1 LIBAGE = 0 diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c index 4da89ca20b2f..617fde8a2dad 100644 --- a/lib/dns/dispatch.c +++ b/lib/dns/dispatch.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dispatch.c,v 1.116.18.19.12.1 2008/05/22 21:28:06 each Exp $ */ +/* $Id: dispatch.c,v 1.116.18.19.12.5 2008/07/23 23:16:43 marka Exp $ */ /*! \file */ @@ -276,7 +276,26 @@ request_log(dns_dispatch_t *disp, dns_dispentry_t *resp, } /* - * ARC4 random number generator obtained from OpenBSD + * ARC4 random number generator derived from OpenBSD. + * Only dispatch_arc4random() and dispatch_arc4uniformrandom() are expected + * to be called from general dispatch routines; the rest of them are subroutines + * for these two. + * + * The original copyright follows: + * Copyright (c) 1996, David Mazieres + * Copyright (c) 2008, Damien Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ static void dispatch_arc4init(arc4ctx_t *actx) { @@ -1172,7 +1191,7 @@ destroy_mgr(dns_dispatchmgr_t **mgrp) { static isc_result_t create_socket(isc_socketmgr_t *mgr, isc_sockaddr_t *local, - isc_socket_t **sockp) + unsigned int options, isc_socket_t **sockp) { isc_socket_t *sock; isc_result_t result; @@ -1186,7 +1205,7 @@ create_socket(isc_socketmgr_t *mgr, isc_sockaddr_t *local, #ifndef ISC_ALLOW_MAPPED isc_socket_ipv6only(sock, ISC_TRUE); #endif - result = isc_socket_bind(sock, local); + result = isc_socket_bind(sock, local, options); if (result != ISC_R_SUCCESS) { isc_socket_detach(&sock); return (result); @@ -1917,7 +1936,7 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, attributes &= ~DNS_DISPATCHATTR_RANDOMPORT; goto getsocket; } - result = create_socket(sockmgr, &localaddr_bound, &sock); + result = create_socket(sockmgr, &localaddr_bound, 0, &sock); if (result == ISC_R_ADDRINUSE) { if (++k == 1024) attributes &= ~DNS_DISPATCHATTR_RANDOMPORT; @@ -1925,7 +1944,8 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, } localport = prt; } else - result = create_socket(sockmgr, localaddr, &sock); + result = create_socket(sockmgr, localaddr, + ISC_SOCKET_REUSEADDRESS, &sock); if (result != ISC_R_SUCCESS) goto deallocate_dispatch; if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) == 0 && diff --git a/lib/dns/include/dns/dispatch.h b/lib/dns/include/dns/dispatch.h index ec3253c9a6c3..914993bf9e8a 100644 --- a/lib/dns/include/dns/dispatch.h +++ b/lib/dns/include/dns/dispatch.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dispatch.h,v 1.48.18.5.12.1 2008/05/22 21:28:06 each Exp $ */ +/* $Id: dispatch.h,v 1.48.18.5.12.2 2008/07/23 07:28:56 tbox Exp $ */ #ifndef DNS_DISPATCH_H #define DNS_DISPATCH_H 1 diff --git a/lib/dns/request.c b/lib/dns/request.c index be8f93d6b843..c0348fe94f8f 100644 --- a/lib/dns/request.c +++ b/lib/dns/request.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: request.c,v 1.72.18.5 2006/08/21 00:40:53 marka Exp $ */ +/* $Id: request.c,v 1.72.18.5.42.2 2008/07/23 07:28:56 tbox Exp $ */ /*! \file */ @@ -518,11 +518,11 @@ create_tcp_dispatch(dns_requestmgr_t *requestmgr, isc_sockaddr_t *srcaddr, if (srcaddr == NULL) { isc_sockaddr_anyofpf(&bind_any, isc_sockaddr_pf(destaddr)); - result = isc_socket_bind(socket, &bind_any); + result = isc_socket_bind(socket, &bind_any, 0); } else { src = *srcaddr; isc_sockaddr_setport(&src, 0); - result = isc_socket_bind(socket, &src); + result = isc_socket_bind(socket, &src, 0); } if (result != ISC_R_SUCCESS) goto cleanup; diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 03f4a94c2568..cdf5788d7a3b 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.c,v 1.284.18.66.8.1 2008/05/22 21:28:06 each Exp $ */ +/* $Id: resolver.c,v 1.284.18.66.8.4 2008/07/24 05:00:48 jinmei Exp $ */ /*! \file */ @@ -1123,7 +1123,7 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, goto cleanup_query; #ifndef BROKEN_TCP_BIND_BEFORE_CONNECT - result = isc_socket_bind(query->tcpsocket, &addr); + result = isc_socket_bind(query->tcpsocket, &addr, 0); if (result != ISC_R_SUCCESS) goto cleanup_socket; #endif @@ -2689,6 +2689,8 @@ fctx_destroy(fetchctx_t *fctx) { static void fctx_timeout(isc_task_t *task, isc_event_t *event) { fetchctx_t *fctx = event->ev_arg; + isc_timerevent_t *tevent = (isc_timerevent_t *)event; + resquery_t *query; REQUIRE(VALID_FCTX(fctx)); @@ -2704,8 +2706,18 @@ fctx_timeout(isc_task_t *task, isc_event_t *event) { fctx->timeouts++; /* * We could cancel the running queries here, or we could let - * them keep going. Right now we choose the latter... + * them keep going. Since we normally use separate sockets for + * different queries, we adopt the former approach to reduce + * the number of open sockets: cancel the oldest query if it + * expired after the query had started (this is usually the + * case but is not always so, depending on the task schedule + * timing). */ + query = ISC_LIST_HEAD(fctx->queries); + if (query != NULL && + isc_time_compare(&tevent->due, &query->start) >= 0) { + fctx_cancelquery(&query, NULL, NULL, ISC_TRUE); + } fctx->attributes &= ~FCTX_ATTR_ADDRWAIT; /* * Our timer has triggered. Reestablish the fctx lifetime diff --git a/lib/dns/xfrin.c b/lib/dns/xfrin.c index dd7801d4f460..f95773f41063 100644 --- a/lib/dns/xfrin.c +++ b/lib/dns/xfrin.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: xfrin.c,v 1.135.18.16 2007/10/31 01:59:47 marka Exp $ */ +/* $Id: xfrin.c,v 1.135.18.16.10.3 2008/07/23 23:16:43 marka Exp $ */ /*! \file */ @@ -862,7 +862,8 @@ xfrin_start(dns_xfrin_ctx_t *xfr) { isc_sockettype_tcp, &xfr->socket)); #ifndef BROKEN_TCP_BIND_BEFORE_CONNECT - CHECK(isc_socket_bind(xfr->socket, &xfr->sourceaddr)); + CHECK(isc_socket_bind(xfr->socket, &xfr->sourceaddr, + ISC_SOCKET_REUSEADDRESS)); #endif CHECK(isc_socket_connect(xfr->socket, &xfr->masteraddr, xfr->task, xfrin_connect_done, xfr)); diff --git a/lib/isc/api b/lib/isc/api index ecadc93c94f3..f40dfe0239bf 100644 --- a/lib/isc/api +++ b/lib/isc/api @@ -1,3 +1,3 @@ -LIBINTERFACE = 32 -LIBREVISION = 5 +LIBINTERFACE = 35 +LIBREVISION = 0 LIBAGE = 0 diff --git a/lib/isc/include/isc/resource.h b/lib/isc/include/isc/resource.h index 53b2a4e5a285..18cd0ad81e24 100644 --- a/lib/isc/include/isc/resource.h +++ b/lib/isc/include/isc/resource.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resource.h,v 1.5.18.2 2005/04/29 00:17:02 marka Exp $ */ +/* $Id: resource.h,v 1.5.18.2.52.2 2008/07/23 23:48:17 tbox Exp $ */ #ifndef ISC_RESOURCE_H #define ISC_RESOURCE_H 1 @@ -81,6 +81,19 @@ isc_resource_getlimit(isc_resource_t resource, isc_resourcevalue_t *value); *\li #ISC_R_NOTIMPLEMENTED 'resource' is not a type known by the OS. */ +isc_result_t +isc_resource_curlimit(isc_resource_t resource, isc_resourcevalue_t *value); +/* + * Get the current limit on a resource. + * + * Requires: + * 'resource' is a valid member of the isc_resource_t enumeration. + * + * Returns: + * ISC_R_SUCCESS Success. + * ISC_R_NOTIMPLEMENTED 'resource' is not a type known by the OS. + */ + ISC_LANG_ENDDECLS #endif /* ISC_RESOURCE_H */ diff --git a/lib/isc/include/isc/socket.h b/lib/isc/include/isc/socket.h index ccc49f53ca39..951a06316ed2 100644 --- a/lib/isc/include/isc/socket.h +++ b/lib/isc/include/isc/socket.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket.h,v 1.57.18.6 2006/06/07 00:29:45 marka Exp $ */ +/* $Id: socket.h,v 1.57.18.6.46.4 2008/07/23 23:16:43 marka Exp $ */ #ifndef ISC_SOCKET_H #define ISC_SOCKET_H 1 @@ -77,6 +77,12 @@ ISC_LANG_BEGINDECLS */ #define ISC_SOCKET_MAXSCATTERGATHER 8 +/*% + * In isc_socket_bind() set socket option SO_REUSEADDR prior to calling + * bind() if a non zero port is specified (AF_INET and AF_INET6). + */ +#define ISC_SOCKET_REUSEADDRESS 0x01U + /*** *** Types ***/ @@ -312,7 +318,8 @@ isc_socket_detach(isc_socket_t **socketp); */ isc_result_t -isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *addressp); +isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *addressp, + unsigned int options); /*%< * Bind 'socket' to '*addressp'. * @@ -747,6 +754,12 @@ isc_socket_permunix(isc_sockaddr_t *sockaddr, isc_uint32_t perm, * \li #ISC_R_FAILURE */ +void +isc__socketmgr_setreserved(isc_socketmgr_t *mgr, isc_uint32_t); +/*%< + * Temporary. For use by named only. + */ + ISC_LANG_ENDDECLS #endif /* ISC_SOCKET_H */ diff --git a/lib/isc/include/isc/timer.h b/lib/isc/include/isc/timer.h index 1e139dda819d..6e78be9d0269 100644 --- a/lib/isc/include/isc/timer.h +++ b/lib/isc/include/isc/timer.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: timer.h,v 1.31.18.3 2005/10/26 06:50:50 marka Exp $ */ +/* $Id: timer.h,v 1.31.18.3.52.2 2008/07/24 23:48:09 tbox Exp $ */ #ifndef ISC_TIMER_H #define ISC_TIMER_H 1 @@ -76,6 +76,7 @@ #include #include #include +#include ISC_LANG_BEGINDECLS @@ -93,6 +94,7 @@ typedef enum { typedef struct isc_timerevent { struct isc_event common; + isc_time_t due; } isc_timerevent_t; #define ISC_TIMEREVENT_FIRSTEVENT (ISC_EVENTCLASS_TIMER + 0) diff --git a/lib/isc/timer.c b/lib/isc/timer.c index f67d0910e8bb..d594307d953c 100644 --- a/lib/isc/timer.c +++ b/lib/isc/timer.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: timer.c,v 1.73.18.7 2007/10/24 23:46:26 tbox Exp $ */ +/* $Id: timer.c,v 1.73.18.7.10.3 2008/07/29 18:35:53 jinmei Exp $ */ /*! \file */ @@ -577,7 +577,7 @@ isc_timer_detach(isc_timer_t **timerp) { static void dispatch(isc_timermgr_t *manager, isc_time_t *now) { isc_boolean_t done = ISC_FALSE, post_event, need_schedule; - isc_event_t *event; + isc_timerevent_t *event; isc_eventtype_t type = 0; isc_timer_t *timer; isc_result_t result; @@ -650,16 +650,18 @@ dispatch(isc_timermgr_t *manager, isc_time_t *now) { /* * XXX We could preallocate this event. */ - event = isc_event_allocate(manager->mctx, + event = (isc_timerevent_t *)isc_event_allocate(manager->mctx, timer, type, timer->action, timer->arg, sizeof(*event)); - if (event != NULL) - isc_task_send(timer->task, &event); - else + if (event != NULL) { + event->due = timer->due; + isc_task_send(timer->task, + ISC_EVENT_PTR(&event)); + } else UNEXPECTED_ERROR(__FILE__, __LINE__, isc_msgcat_get(isc_msgcat, ISC_MSGSET_TIMER, diff --git a/lib/isc/unix/app.c b/lib/isc/unix/app.c index 59b1f6cc9724..b71d766eb551 100644 --- a/lib/isc/unix/app.c +++ b/lib/isc/unix/app.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: app.c,v 1.50.18.2 2005/04/29 00:17:06 marka Exp $ */ +/* $Id: app.c,v 1.50.18.2.50.1 2008/07/29 04:47:31 each Exp $ */ /*! \file */ @@ -303,7 +303,7 @@ evloop() { int n; isc_time_t when, now; struct timeval tv, *tvp; - fd_set readfds, writefds; + fd_set *readfds, *writefds; int maxfd; isc_boolean_t readytasks; isc_boolean_t call_timer_dispatch = ISC_FALSE; @@ -332,7 +332,7 @@ evloop() { } isc__socketmgr_getfdsets(&readfds, &writefds, &maxfd); - n = select(maxfd, &readfds, &writefds, NULL, tvp); + n = select(maxfd, readfds, writefds, NULL, tvp); if (n == 0 || call_timer_dispatch) { /* @@ -352,7 +352,7 @@ evloop() { isc__timermgr_dispatch(); } if (n > 0) - (void)isc__socketmgr_dispatch(&readfds, &writefds, + (void)isc__socketmgr_dispatch(readfds, writefds, maxfd); (void)isc__taskmgr_dispatch(); diff --git a/lib/isc/unix/resource.c b/lib/isc/unix/resource.c index 703ec27ae076..0264976f8816 100644 --- a/lib/isc/unix/resource.c +++ b/lib/isc/unix/resource.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resource.c,v 1.12 2004/03/05 05:11:46 marka Exp $ */ +/* $Id: resource.c,v 1.12.944.4 2008/07/28 22:44:46 marka Exp $ */ #include @@ -28,6 +28,14 @@ #include #include +#ifdef __linux__ +#include /* To get the large NR_OPEN. */ +#endif + +#ifdef __hpux +#include +#endif + #include "errno2result.h" static isc_result_t @@ -182,8 +190,51 @@ isc_resource_setlimit(isc_resource_t resource, isc_resourcevalue_t value) { if (unixresult == 0) return (ISC_R_SUCCESS); - else - return (isc__errno2result(errno)); + +#if defined(OPEN_MAX) && defined(__APPLE__) + /* + * The Darwin kernel doesn't accept RLIM_INFINITY for rlim_cur; the + * maximum possible value is OPEN_MAX. BIND8 used to use + * sysconf(_SC_OPEN_MAX) for such a case, but this value is much + * smaller than OPEN_MAX and is not really effective. + */ + if (resource == isc_resource_openfiles && rlim_value == RLIM_INFINITY) { + rl.rlim_cur = OPEN_MAX; + unixresult = setrlimit(unixresource, &rl); + if (unixresult == 0) + return (ISC_R_SUCCESS); + } +#elif defined(NR_OPEN) && defined(__linux__) + /* + * Some Linux kernels don't accept RLIM_INFINIT; the maximum + * possible value is the NR_OPEN defined in linux/fs.h. + */ + if (resource == isc_resource_openfiles && rlim_value == RLIM_INFINITY) { + rl.rlim_cur = rl.rlim_max = NR_OPEN; + unixresult = setrlimit(unixresource, &rl); + if (unixresult == 0) + return (ISC_R_SUCCESS); + } +#elif defined(__hpux) + if (resource == isc_resource_openfiles && rlim_value == RLIM_INFINITY) { + uint64_t maxfiles; + if (gettune("maxfiles_lim", &maxfiles) == 0) { + rl.rlim_cur = rl.rlim_max = maxfiles; + unixresult = setrlimit(unixresource, &rl); + if (unixresult == 0) + return (ISC_R_SUCCESS); + } + } +#endif + if (resource == isc_resource_openfiles && rlim_value == RLIM_INFINITY) { + if (getrlimit(unixresource, &rl) == 0) { + rl.rlim_cur = rl.rlim_max; + unixresult = setrlimit(unixresource, &rl); + if (unixresult == 0) + return (ISC_R_SUCCESS); + } + } + return (isc__errno2result(errno)); } isc_result_t @@ -202,3 +253,20 @@ isc_resource_getlimit(isc_resource_t resource, isc_resourcevalue_t *value) { return (result); } + +isc_result_t +isc_resource_curlimit(isc_resource_t resource, isc_resourcevalue_t *value) { + int unixresult; + int unixresource; + struct rlimit rl; + isc_result_t result; + + result = resource2rlim(resource, &unixresource); + if (result == ISC_R_SUCCESS) { + unixresult = getrlimit(unixresource, &rl); + INSIST(unixresult == 0); + *value = rl.rlim_cur; + } + + return (result); +} diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index e0b902167e8f..1b4da78c2436 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket.c,v 1.237.18.29 2007/08/28 07:20:06 tbox Exp $ */ +/* $Id: socket.c,v 1.237.18.29.10.6 2008/07/29 04:47:31 each Exp $ */ /*! \file */ @@ -64,6 +64,34 @@ #include "socket_p.h" #endif /* ISC_PLATFORM_USETHREADS */ +/*% + * Max number of open sockets. In the vast majority of cases the default size + * of FD_SETSIZE should be fine, and this constant should be increased only + * when absolutely necessary and possible, i.e., the server is exhausting all + * available file descriptors (up to FD_SETSIZE) and the select() function + * and FD_xxx macros support larger values than FD_SETSIZE (which may not + * always by true, but we keep using some of them to ensure as much + * portability as possible). Note also that overall server performance + * may be rather worsened with a larger value of this constant due to + * inherent scalability problems of select(). + * + * As a special note, this value shouldn't have to be touched if + * this is a build for an authoritative only DNS server. + */ + +#ifndef ISC_SOCKET_FDSETSIZE +#define ISC_SOCKET_FDSETSIZE FD_SETSIZE +#endif + +/*% + * Mac OS X needs a special definition to support larger values in select() + */ +#if ISC_SOCKET_FDSETSIZE > FD_SETSIZE +#ifdef __APPLE__ +#define _DARWIN_UNLIMITED_SELECT +#endif /* __APPLE__ */ +#endif + /*% * Some systems define the socket length argument as an int, some as size_t, * some as socklen_t. This is here so it can be easily changed if needed. @@ -202,13 +230,18 @@ struct isc_socketmgr { unsigned int magic; isc_mem_t *mctx; isc_mutex_t lock; + int fd_bufsize; + int fdsize; /* Locked by manager lock. */ ISC_LIST(isc_socket_t) socklist; - fd_set read_fds; - fd_set write_fds; - isc_socket_t *fds[FD_SETSIZE]; - int fdstate[FD_SETSIZE]; + fd_set *read_fds; + fd_set *read_fds_copy; + fd_set *write_fds; + fd_set *write_fds_copy; + isc_socket_t **fds; + int *fdstate; int maxfd; + int reserved; /* unlocked */ #ifdef ISC_PLATFORM_USETHREADS isc_thread_t watcher; isc_condition_t shutdown_ok; @@ -251,6 +284,8 @@ static void build_msghdr_send(isc_socket_t *, isc_socketevent_t *, struct msghdr *, struct iovec *, size_t *); static void build_msghdr_recv(isc_socket_t *, isc_socketevent_t *, struct msghdr *, struct iovec *, size_t *); +static void cleanup_fdsets(isc_socketmgr_t *, isc_mem_t *); +static isc_result_t create_fdsets(isc_socketmgr_t *, isc_mem_t *); #define SELECT_POKE_SHUTDOWN (-1) #define SELECT_POKE_NOTHING (-2) @@ -329,12 +364,12 @@ wakeup_socket(isc_socketmgr_t *manager, int fd, int msg) { * or writes. */ - INSIST(fd >= 0 && fd < (int)FD_SETSIZE); + INSIST(fd >= 0 && fd < manager->fdsize); if (manager->fdstate[fd] == CLOSE_PENDING) { manager->fdstate[fd] = CLOSED; - FD_CLR(fd, &manager->read_fds); - FD_CLR(fd, &manager->write_fds); + FD_CLR(fd, manager->read_fds); + FD_CLR(fd, manager->write_fds); (void)close(fd); return; } @@ -347,9 +382,9 @@ wakeup_socket(isc_socketmgr_t *manager, int fd, int msg) { * Set requested bit. */ if (msg == SELECT_POKE_READ) - FD_SET(sock->fd, &manager->read_fds); + FD_SET(sock->fd, manager->read_fds); if (msg == SELECT_POKE_WRITE) - FD_SET(sock->fd, &manager->write_fds); + FD_SET(sock->fd, manager->write_fds); } #ifdef ISC_PLATFORM_USETHREADS @@ -1221,7 +1256,7 @@ destroy(isc_socket_t **sockp) { INSIST(ISC_LIST_EMPTY(sock->recv_list)); INSIST(ISC_LIST_EMPTY(sock->send_list)); INSIST(sock->connect_ev == NULL); - REQUIRE(sock->fd >= 0 && sock->fd < (int)FD_SETSIZE); + REQUIRE(sock->fd >= 0 && sock->fd < (int)manager->fdsize); LOCK(&manager->lock); @@ -1478,9 +1513,18 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, #ifdef F_DUPFD /* - * Leave a space for stdio to work in. + * Leave a space for stdio and TCP to work in. */ - if (sock->fd >= 0 && sock->fd < 20) { + if (manager->reserved != 0 && type == isc_sockettype_udp && + sock->fd >= 0 && sock->fd < manager->reserved) { + int new, tmp; + new = fcntl(sock->fd, F_DUPFD, manager->reserved); + tmp = errno; + (void)close(sock->fd); + errno = tmp; + sock->fd = new; + err = "isc_socket_create: fcntl/reserved"; + } else if (sock->fd >= 0 && sock->fd < 20) { int new, tmp; new = fcntl(sock->fd, F_DUPFD, 20); tmp = errno; @@ -1491,7 +1535,7 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, } #endif - if (sock->fd >= (int)FD_SETSIZE) { + if (sock->fd >= (int)manager->fdsize) { (void)close(sock->fd); isc_log_iwrite(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR, @@ -1964,7 +2008,7 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { (void)close(fd); errno = tmp; fd = new; - err = "fcntl"; + err = "accept/fcntl"; } #endif @@ -1972,8 +2016,17 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { if (SOFT_ERROR(errno)) goto soft_error; switch (errno) { - case ENOBUFS: case ENFILE: + case EMFILE: + isc_log_iwrite(isc_lctx, ISC_LOGCATEGORY_GENERAL, + ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR, + isc_msgcat, ISC_MSGSET_SOCKET, + ISC_MSG_TOOMANYFDS, + "%s: too many open file descriptors", + err); + goto soft_error; + + case ENOBUFS: case ENOMEM: case ECONNRESET: case ECONNABORTED: @@ -2023,7 +2076,7 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { sock->pf); (void)close(fd); goto soft_error; - } else if (fd >= (int)FD_SETSIZE) { + } else if (fd >= (int)manager->fdsize) { isc_log_iwrite(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR, isc_msgcat, ISC_MSGSET_SOCKET, @@ -2235,7 +2288,7 @@ process_fds(isc_socketmgr_t *manager, int maxfd, isc_socket_t *sock; isc_boolean_t unlock_sock; - REQUIRE(maxfd <= (int)FD_SETSIZE); + REQUIRE(maxfd <= (int)manager->fdsize); /* * Process read/writes on other fds here. Avoid locking @@ -2249,8 +2302,8 @@ process_fds(isc_socketmgr_t *manager, int maxfd, if (manager->fdstate[i] == CLOSE_PENDING) { manager->fdstate[i] = CLOSED; - FD_CLR(i, &manager->read_fds); - FD_CLR(i, &manager->write_fds); + FD_CLR(i, manager->read_fds); + FD_CLR(i, manager->write_fds); (void)close(i); @@ -2261,7 +2314,7 @@ process_fds(isc_socketmgr_t *manager, int maxfd, unlock_sock = ISC_FALSE; if (FD_ISSET(i, readfds)) { if (sock == NULL) { - FD_CLR(i, &manager->read_fds); + FD_CLR(i, manager->read_fds); goto check_write; } unlock_sock = ISC_TRUE; @@ -2272,12 +2325,12 @@ process_fds(isc_socketmgr_t *manager, int maxfd, else dispatch_recv(sock); } - FD_CLR(i, &manager->read_fds); + FD_CLR(i, manager->read_fds); } check_write: if (FD_ISSET(i, writefds)) { if (sock == NULL) { - FD_CLR(i, &manager->write_fds); + FD_CLR(i, manager->write_fds); continue; } if (!unlock_sock) { @@ -2290,7 +2343,7 @@ process_fds(isc_socketmgr_t *manager, int maxfd, else dispatch_send(sock); } - FD_CLR(i, &manager->write_fds); + FD_CLR(i, manager->write_fds); } if (unlock_sock) UNLOCK(&sock->lock); @@ -2311,8 +2364,6 @@ watcher(void *uap) { isc_boolean_t done; int ctlfd; int cc; - fd_set readfds; - fd_set writefds; int msg, fd; int maxfd; char strbuf[ISC_STRERRORSIZE]; @@ -2326,13 +2377,16 @@ watcher(void *uap) { done = ISC_FALSE; while (!done) { do { - readfds = manager->read_fds; - writefds = manager->write_fds; + memcpy(manager->read_fds_copy, manager->read_fds, + manager->fd_bufsize); + memcpy(manager->write_fds_copy, manager->write_fds, + manager->fd_bufsize); maxfd = manager->maxfd + 1; UNLOCK(&manager->lock); - cc = select(maxfd, &readfds, &writefds, NULL, NULL); + cc = select(maxfd, manager->read_fds_copy, + manager->write_fds_copy, NULL, NULL); if (cc < 0) { if (!SOFT_ERROR(errno)) { isc__strerror(errno, strbuf, @@ -2354,7 +2408,7 @@ watcher(void *uap) { /* * Process reads on internal, control fd. */ - if (FD_ISSET(ctlfd, &readfds)) { + if (FD_ISSET(ctlfd, manager->read_fds_copy)) { for (;;) { select_readmsg(manager, &fd, &msg); @@ -2393,7 +2447,8 @@ watcher(void *uap) { } } - process_fds(manager, maxfd, &readfds, &writefds); + process_fds(manager, maxfd, manager->read_fds_copy, + manager->write_fds_copy); } manager_log(manager, TRACE, @@ -2405,6 +2460,88 @@ watcher(void *uap) { } #endif /* ISC_PLATFORM_USETHREADS */ +void +isc__socketmgr_setreserved(isc_socketmgr_t *manager, isc_uint32_t reserved) { + + REQUIRE(VALID_MANAGER(manager)); + + manager->reserved = reserved; +} + +/* + * Initialize fdsets in socketmgr structure. + */ +static isc_result_t +create_fdsets(isc_socketmgr_t *manager, isc_mem_t *mctx) { +#if ISC_SOCKET_FDSETSIZE > FD_SETSIZE + manager->fdsize = ISC_SOCKET_FDSETSIZE; + manager->fd_bufsize = howmany(ISC_SOCKET_FDSETSIZE, NFDBITS) * + sizeof(fd_mask); +#else + manager->fdsize = FD_SETSIZE; + manager->fd_bufsize = sizeof(fd_set); +#endif + + manager->fds = NULL; + manager->fdstate = NULL; + manager->read_fds = NULL; + manager->read_fds_copy = NULL; + manager->write_fds = NULL; + manager->write_fds_copy = NULL; + + manager->fds = isc_mem_get(mctx, + manager->fdsize * sizeof(manager->fds[0])); + if (manager->fds == NULL) + goto fail; + + manager->fdstate = isc_mem_get(mctx, manager->fdsize * + sizeof(manager->fdstate[0])); + if (manager->fdstate == NULL) + goto fail; + + manager->read_fds = isc_mem_get(mctx, manager->fd_bufsize); + if (manager->read_fds == NULL) + goto fail; + manager->read_fds_copy = isc_mem_get(mctx, manager->fd_bufsize); + if (manager->read_fds_copy == NULL) + goto fail; + manager->write_fds = isc_mem_get(mctx, manager->fd_bufsize); + if (manager->write_fds == NULL) + goto fail; + manager->write_fds_copy = isc_mem_get(mctx, manager->fd_bufsize); + if (manager->write_fds_copy == NULL) + goto fail; + + return (ISC_R_SUCCESS); + + fail: + cleanup_fdsets(manager, mctx); + return (ISC_R_NOMEMORY); +} + +/* + * Clean up fdsets in socketmgr structure. + */ +static void +cleanup_fdsets(isc_socketmgr_t *manager, isc_mem_t *mctx) { + if (manager->fds != NULL) { + isc_mem_put(mctx, manager->fds, + manager->fdsize * sizeof(manager->fds[0])); + } + if (manager->fdstate != NULL) { + isc_mem_put(mctx, manager->fdstate, + manager->fdsize * sizeof(manager->fdstate[0])); + } + if (manager->read_fds != NULL) + isc_mem_put(mctx, manager->read_fds, manager->fd_bufsize); + if (manager->read_fds_copy != NULL) + isc_mem_put(mctx, manager->read_fds_copy, manager->fd_bufsize); + if (manager->write_fds != NULL) + isc_mem_put(mctx, manager->write_fds, manager->fd_bufsize); + if (manager->write_fds_copy != NULL) + isc_mem_put(mctx, manager->write_fds_copy, manager->fd_bufsize); +} + /* * Create a new socket manager. */ @@ -2430,17 +2567,26 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { if (manager == NULL) return (ISC_R_NOMEMORY); + result = create_fdsets(manager, mctx); + if (result != ISC_R_SUCCESS) { + cleanup_fdsets(manager, mctx); + isc_mem_put(mctx, manager, sizeof(*manager)); + return (result); + } + manager->magic = SOCKET_MANAGER_MAGIC; manager->mctx = NULL; - memset(manager->fds, 0, sizeof(manager->fds)); + memset(manager->fds, 0, sizeof(manager->fds[0]) * manager->fdsize); ISC_LIST_INIT(manager->socklist); result = isc_mutex_init(&manager->lock); if (result != ISC_R_SUCCESS) { + cleanup_fdsets(manager, mctx); isc_mem_put(mctx, manager, sizeof(*manager)); return (result); } #ifdef ISC_PLATFORM_USETHREADS if (isc_condition_init(&manager->shutdown_ok) != ISC_R_SUCCESS) { + cleanup_fdsets(manager, mctx); DESTROYLOCK(&manager->lock); isc_mem_put(mctx, manager, sizeof(*manager)); UNEXPECTED_ERROR(__FILE__, __LINE__, @@ -2455,6 +2601,7 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { * select/poll loop when something internal needs to be done. */ if (pipe(manager->pipe_fds) != 0) { + cleanup_fdsets(manager, mctx); DESTROYLOCK(&manager->lock); isc_mem_put(mctx, manager, sizeof(*manager)); isc__strerror(errno, strbuf, sizeof(strbuf)); @@ -2478,15 +2625,17 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { /* * Set up initial state for the select loop */ - FD_ZERO(&manager->read_fds); - FD_ZERO(&manager->write_fds); + memset(manager->read_fds, 0, manager->fd_bufsize); + memset(manager->write_fds, 0, manager->fd_bufsize); #ifdef ISC_PLATFORM_USETHREADS - FD_SET(manager->pipe_fds[0], &manager->read_fds); + FD_SET(manager->pipe_fds[0], manager->read_fds); manager->maxfd = manager->pipe_fds[0]; #else /* ISC_PLATFORM_USETHREADS */ manager->maxfd = 0; #endif /* ISC_PLATFORM_USETHREADS */ - memset(manager->fdstate, 0, sizeof(manager->fdstate)); + manager->reserved = 0; + memset(manager->fdstate, 0, + manager->fdsize * sizeof(manager->fdstate[0])); #ifdef ISC_PLATFORM_USETHREADS /* @@ -2592,11 +2741,12 @@ isc_socketmgr_destroy(isc_socketmgr_t **managerp) { (void)isc_condition_destroy(&manager->shutdown_ok); #endif /* ISC_PLATFORM_USETHREADS */ - for (i = 0; i < (int)FD_SETSIZE; i++) + for (i = 0; i < (int)manager->fdsize; i++) if (manager->fdstate[i] == CLOSE_PENDING) (void)close(i); DESTROYLOCK(&manager->lock); + cleanup_fdsets(manager, manager->mctx); manager->magic = 0; mctx= manager->mctx; isc_mem_put(mctx, manager, sizeof(*manager)); @@ -3165,7 +3315,8 @@ isc_socket_permunix(isc_sockaddr_t *sockaddr, isc_uint32_t perm, } isc_result_t -isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr) { +isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr, + unsigned int options) { char strbuf[ISC_STRERRORSIZE]; int on = 1; @@ -3184,7 +3335,8 @@ isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr) { if (sock->pf == AF_UNIX) goto bind_socket; #endif - if (isc_sockaddr_getport(sockaddr) != (in_port_t)0 && + if ((options & ISC_SOCKET_REUSEADDRESS) != 0 && + isc_sockaddr_getport(sockaddr) != (in_port_t)0 && setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR, (void *)&on, sizeof(on)) < 0) { UNEXPECTED_ERROR(__FILE__, __LINE__, @@ -3813,12 +3965,17 @@ isc_socket_ipv6only(isc_socket_t *sock, isc_boolean_t yes) { #ifndef ISC_PLATFORM_USETHREADS void -isc__socketmgr_getfdsets(fd_set *readset, fd_set *writeset, int *maxfd) { +isc__socketmgr_getfdsets(fd_set **readset, fd_set **writeset, int *maxfd) { if (socketmgr == NULL) *maxfd = 0; else { - *readset = socketmgr->read_fds; - *writeset = socketmgr->write_fds; + /* Prepare duplicates of fd_sets, as select() will modify */ + memcpy(socketmgr->read_fds_copy, socketmgr->read_fds, + socketmgr->fd_bufsize); + memcpy(socketmgr->write_fds_copy, socketmgr->write_fds, + socketmgr->fd_bufsize); + *readset = socketmgr->read_fds_copy; + *writeset = socketmgr->write_fds_copy; *maxfd = socketmgr->maxfd + 1; } } diff --git a/lib/isc/unix/socket_p.h b/lib/isc/unix/socket_p.h index c260bbc9128f..4f9cf27bf1f2 100644 --- a/lib/isc/unix/socket_p.h +++ b/lib/isc/unix/socket_p.h @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket_p.h,v 1.7.18.2 2005/04/29 00:17:08 marka Exp $ */ +/* $Id: socket_p.h,v 1.7.18.2.52.1 2008/07/29 04:47:31 each Exp $ */ #ifndef ISC_SOCKET_P_H #define ISC_SOCKET_P_H @@ -27,7 +27,7 @@ #endif void -isc__socketmgr_getfdsets(fd_set *readset, fd_set *writeset, int *maxfd); +isc__socketmgr_getfdsets(fd_set **readset, fd_set **writeset, int *maxfd); isc_result_t isc__socketmgr_dispatch(fd_set *readset, fd_set *writeset, int maxfd); diff --git a/lib/isccfg/api b/lib/isccfg/api index aba393a7ba90..d94beab3e3f9 100644 --- a/lib/isccfg/api +++ b/lib/isccfg/api @@ -1,3 +1,3 @@ LIBINTERFACE = 30 -LIBREVISION = 3 +LIBREVISION = 4 LIBAGE = 0 diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c index 65e30a2f3732..b04b3abde7a2 100644 --- a/lib/isccfg/namedconf.c +++ b/lib/isccfg/namedconf.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002, 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: namedconf.c,v 1.30.18.38 2006/05/03 01:46:40 marka Exp $ */ +/* $Id: namedconf.c,v 1.30.18.38.50.2 2008/07/23 23:48:17 tbox Exp $ */ /*! \file */ @@ -634,6 +634,7 @@ options_clauses[] = { { "recursing-file", &cfg_type_qstring, 0 }, { "random-device", &cfg_type_qstring, 0 }, { "recursive-clients", &cfg_type_uint32, 0 }, + { "reserved-sockets", &cfg_type_uint32, 0 }, { "serial-queries", &cfg_type_uint32, CFG_CLAUSEFLAG_OBSOLETE }, { "serial-query-rate", &cfg_type_uint32, 0 }, { "server-id", &cfg_type_serverid, 0 }, diff --git a/version b/version index 85ab554163c8..72f7f63bc0d1 100644 --- a/version +++ b/version @@ -1,4 +1,4 @@ -# $Id: version,v 1.29.134.18.8.1 2008/05/22 21:28:03 each Exp $ +# $Id: version,v 1.29.134.18.8.2 2008/07/29 05:03:28 each Exp $ # # This file must follow /bin/sh rules. It is imported directly via # configure. @@ -7,4 +7,4 @@ MAJORVER=9 MINORVER=4 PATCHVER=2 RELEASETYPE=-P -RELEASEVER=1 +RELEASEVER=2 From 2ed0ad54b765a10b00d1c148c8bc35f78e8ff917 Mon Sep 17 00:00:00 2001 From: dougb Date: Mon, 1 Sep 2008 21:46:14 +0000 Subject: [PATCH 08/13] Note that the dist directory for RELENG_6 is dist-9.3 Move all references to committing things to the last section (after testing) --- FREEBSD-Upgrade | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/FREEBSD-Upgrade b/FREEBSD-Upgrade index 7da86ec45ec1..d037607e3e30 100644 --- a/FREEBSD-Upgrade +++ b/FREEBSD-Upgrade @@ -9,6 +9,8 @@ svn co $REPO/vendor/bind9/dist + NOTE: For RELENG_6 (BIND 9.3.x) s/dist/dist-9.3/ throughout this file + 3) Unpack the tarball in a suitable directory: tar zxvf bind-9..tar.gz -X dist/FREEBSD-Xlist @@ -43,8 +45,10 @@ svn merge $REPO/vendor/bind9/dist . Resolve conflicts (if any) Carefully check the output of 'svn status' and 'svn diff' - Test build the updated files with a clean /usr/obj and empty src.conf - Commit + + NOTE: You may need 2 copies of head/contrib/bind9 at this point, + one to do the work in steps 9 and 10 below, and a clean + version to commit in step 13. 9) Remove any references to the {bin,lib}/tests and docutil directories from the configure and Makefile templates: @@ -69,7 +73,7 @@ command line; src/lib/bind/config.mk will re-enable it at compile time if WITHOUT_INET6 is not defined. -11) Copy the following generated files to src/lib/bind and commit them: +11) Copy the following generated files to src/lib/bind: Path in src/contrib/bind9 Path in src/lib/bind ------------------------------------------------------------ @@ -86,7 +90,8 @@ steps 6) or 7). 12) cd src/lib/bind/dns && make -DMAINTAINER_MODE generate && rm gen - Commit the new versions of the files generated. + +13) Test build the updated files with a clean /usr/obj and empty src.conf The following directories contain Makefiles for bits and pieces of BIND 9: From 7f88623c45a496af0e51463ecbb0672119cfa94b Mon Sep 17 00:00:00 2001 From: dougb Date: Tue, 23 Dec 2008 18:30:32 +0000 Subject: [PATCH 09/13] This directory was added to src/contrib/bind9 prior to the svn move so that BIND 9.4.1 could compile and run on the ARM platform, but is not part of the vendor source. It will remain in src/contrib/bind9 since it is a local modification. --- lib/isc/arm/include/isc/atomic.h | 81 -------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 lib/isc/arm/include/isc/atomic.h diff --git a/lib/isc/arm/include/isc/atomic.h b/lib/isc/arm/include/isc/atomic.h deleted file mode 100644 index 4c519ee815c5..000000000000 --- a/lib/isc/arm/include/isc/atomic.h +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * Copyright (c) 2007 Warner Losh - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - * - * $FreeBSD$ - */ - -#ifndef ISC_ATOMIC_H -#define ISC_ATOMIC_H 1 - -#include -#include -#include - -#ifdef __FreeBSD__ -static inline isc_int32_t -isc_atomic_xadd(isc_int32_t *p, isc_int32_t val) -{ - return atomic_fetchadd_int(p, val); -} - -static inline void -isc_atomic_store(isc_int32_t *p, isc_int32_t val) -{ - atomic_store_rel_int(p, val); -} - -static inline isc_int32_t -isc_atomic_cmpxchg(isc_int32_t *p, isc_int32_t cmpval, isc_int32_t val) -{ - register int done, ras_start; - - __asm __volatile("1:\n" - "adr %1, 1b\n" - "mov %0, #0xe0000004\n" - "str %1, [%0]\n" - "mov %0, #0xe0000008\n" - "adr %1, 2f\n" - "str %1, [%0]\n" - "ldr %1, [%2]\n" - "cmp %1, %3\n" - "streq %4, [%2]\n" - "2:\n" - "mov %3, #0\n" - "mov %0, #0xe0000004\n" - "str %3, [%0]\n" - "mov %3, #0xffffffff\n" - "mov %0, #0xe0000008\n" - "str %3, [%0]\n" - : "=r" (ras_start), "=r" (done) - ,"+r" (p), "+r" (cmpval), "+r" (val) : : "memory"); - return (done); - -} -#else /* !FreeBSD */ - -#error "unsupported compiler. disable atomic ops by --disable-atomic" - -#endif -#endif /* ISC_ATOMIC_H */ From e2c9b86ef6b41282513a874faaf6d208422cfc7b Mon Sep 17 00:00:00 2001 From: dougb Date: Tue, 23 Dec 2008 18:31:38 +0000 Subject: [PATCH 10/13] Minor tweak to reflect my actual process. --- FREEBSD-Upgrade | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/FREEBSD-Upgrade b/FREEBSD-Upgrade index d037607e3e30..cca828b9b7ae 100644 --- a/FREEBSD-Upgrade +++ b/FREEBSD-Upgrade @@ -15,12 +15,14 @@ tar zxvf bind-9..tar.gz -X dist/FREEBSD-Xlist + Check to see if any files have been added or deleted using + diff -ur dist bind-9. -x \.svn | grep 'Only in' + 4) Copy new files over the old ones: cp -Rp bind-9./* dist/ -5) Check to see if any files have been added or deleted using 'svn status' - and 'diff -ur bind-9. dist -x \.svn | grep 'Only in' +5) Double-check for changes using 'svn status' 6) Use 'svn add' and 'svn rm' to bring dist up to date for files found above. Update FREEBSD-Xlist as needed. From 6c8226d7d6bb16d3d0bc2ab68a30b0700011c64f Mon Sep 17 00:00:00 2001 From: dougb Date: Tue, 23 Dec 2008 18:35:21 +0000 Subject: [PATCH 11/13] Vendor import of BIND 9.4.3 --- CHANGES | 640 +- COPYRIGHT | 2 +- FAQ | 126 +- FAQ.xml | 253 +- README | 33 +- bin/check/check-tool.c | 31 +- bin/check/named-checkconf.c | 9 +- bin/check/named-checkzone.c | 11 +- bin/dig/dig.1 | 20 +- bin/dig/dig.c | 59 +- bin/dig/dig.docbook | 20 +- bin/dig/dig.html | 36 +- bin/dig/dighost.c | 235 +- bin/dig/host.1 | 8 +- bin/dig/host.docbook | 7 +- bin/dig/host.html | 14 +- bin/dnssec/dnssec-keygen.8 | 10 +- bin/dnssec/dnssec-keygen.docbook | 9 +- bin/dnssec/dnssec-keygen.html | 20 +- bin/dnssec/dnssec-signzone.8 | 8 +- bin/dnssec/dnssec-signzone.c | 49 +- bin/dnssec/dnssec-signzone.docbook | 7 +- bin/dnssec/dnssec-signzone.html | 16 +- bin/named/client.c | 50 +- bin/named/config.c | 10 +- bin/named/controlconf.c | 88 +- bin/named/include/named/globals.h | 7 +- bin/named/interfacemgr.c | 18 +- bin/named/lwaddr.c | 8 +- bin/named/lwdgnba.c | 8 +- bin/named/lwdnoop.c | 23 +- bin/named/lwresd.8 | 14 +- bin/named/lwresd.c | 6 +- bin/named/lwresd.docbook | 9 +- bin/named/lwresd.html | 18 +- bin/named/main.c | 61 +- bin/named/named.8 | 23 +- bin/named/named.conf.5 | 7 +- bin/named/named.conf.docbook | 2 +- bin/named/named.conf.html | 33 +- bin/named/named.docbook | 33 +- bin/named/named.html | 45 +- bin/named/query.c | 70 +- bin/named/server.c | 338 +- bin/named/unix/include/named/os.h | 10 +- bin/named/unix/os.c | 64 +- bin/named/update.c | 66 +- bin/nsupdate/Makefile.in | 12 +- bin/nsupdate/{nsupdate.8 => nsupdate.1} | 8 +- bin/nsupdate/nsupdate.c | 29 +- bin/nsupdate/nsupdate.docbook | 7 +- bin/nsupdate/nsupdate.html | 16 +- bin/rndc/rndc-confgen.c | 12 +- bin/rndc/rndc.8 | 3 +- bin/rndc/rndc.c | 22 +- bin/rndc/rndc.docbook | 5 +- bin/rndc/rndc.html | 5 +- configure.in | 161 +- doc/arm/Bv9ARM-book.xml | 302 +- doc/arm/Bv9ARM.ch01.html | 52 +- doc/arm/Bv9ARM.ch02.html | 36 +- doc/arm/Bv9ARM.ch03.html | 28 +- doc/arm/Bv9ARM.ch04.html | 72 +- doc/arm/Bv9ARM.ch05.html | 8 +- doc/arm/Bv9ARM.ch06.html | 433 +- doc/arm/Bv9ARM.ch07.html | 16 +- doc/arm/Bv9ARM.ch08.html | 20 +- doc/arm/Bv9ARM.ch09.html | 182 +- doc/arm/Bv9ARM.ch10.html | 4 +- doc/arm/Bv9ARM.html | 150 +- doc/arm/Bv9ARM.pdf | 9677 ++++++++++++----------- doc/arm/man.dig.html | 36 +- doc/arm/man.dnssec-keygen.html | 20 +- doc/arm/man.dnssec-signzone.html | 16 +- doc/arm/man.host.html | 14 +- doc/arm/man.named-checkconf.html | 14 +- doc/arm/man.named-checkzone.html | 14 +- doc/arm/man.named.html | 45 +- doc/arm/man.rndc-confgen.html | 14 +- doc/arm/man.rndc.conf.html | 14 +- doc/arm/man.rndc.html | 15 +- doc/misc/Makefile.in | 3 +- doc/misc/format-options.pl | 29 +- doc/misc/migration | 14 +- doc/misc/options | 872 +- doc/misc/sort-options.pl | 50 + doc/rfc/index | 13 +- doc/rfc/rfc4648.txt | 1011 +++ doc/rfc/rfc4701.txt | 675 ++ doc/rfc/rfc5155.txt | 2915 +++++++ lib/bind/api | 6 +- lib/bind/bsd/Makefile.in | 8 +- lib/bind/bsd/strerror.c | 6 +- lib/bind/bsd/strtoul.c | 10 +- lib/bind/configure.in | 217 +- lib/bind/dst/Makefile.in | 8 +- lib/bind/dst/dst_api.c | 2 +- lib/bind/dst/hmac_link.c | 2 +- lib/bind/dst/support.c | 2 +- lib/bind/include/Makefile.in | 8 +- lib/bind/include/arpa/nameser.h | 5 +- lib/bind/include/isc/assertions.h | 7 +- lib/bind/include/isc/eventlib.h | 4 +- lib/bind/include/isc/misc.h | 3 +- lib/bind/include/isc/platform.h.in | 36 + lib/bind/include/netdb.h | 4 +- lib/bind/include/resolv.h | 6 +- lib/bind/inet/Makefile.in | 8 +- lib/bind/inet/inet_net_pton.c | 6 +- lib/bind/inet/inet_network.c | 4 +- lib/bind/irs/Makefile.in | 8 +- lib/bind/irs/dns_ho.c | 11 +- lib/bind/irs/getnetgrent.c | 6 +- lib/bind/irs/getnetgrent_r.c | 81 +- lib/bind/irs/irp.c | 5 +- lib/bind/isc/Makefile.in | 8 +- lib/bind/isc/assertions.c | 3 +- lib/bind/isc/bitncmp.c | 4 +- lib/bind/isc/ctl_clnt.c | 5 +- lib/bind/isc/ctl_srvr.c | 5 +- lib/bind/isc/logging.c | 12 +- lib/bind/nameser/Makefile.in | 8 +- lib/bind/port_after.h.in | 114 +- lib/bind/port_before.h.in | 13 +- lib/bind/resolv/Makefile.in | 8 +- lib/bind/resolv/res_debug.c | 55 +- lib/bind/resolv/res_mkquery.c | 66 +- lib/bind/resolv/res_query.c | 14 +- lib/bind/resolv/res_send.c | 28 +- lib/bind9/api | 2 +- lib/bind9/check.c | 124 +- lib/dns/acache.c | 50 +- lib/dns/adb.c | 64 +- lib/dns/api | 2 +- lib/dns/cache.c | 37 +- lib/dns/dispatch.c | 1330 +++- lib/dns/dst_parse.c | 8 +- lib/dns/dst_parse.h | 8 +- lib/dns/include/dns/dispatch.h | 64 +- lib/dns/journal.c | 30 +- lib/dns/master.c | 34 +- lib/dns/masterdump.c | 23 +- lib/dns/message.c | 13 +- lib/dns/rbt.c | 40 +- lib/dns/rbtdb.c | 78 +- lib/dns/rdata/generic/nsec_47.c | 10 +- lib/dns/rdata/generic/nsec_47.h | 8 +- lib/dns/rdata/generic/txt_16.c | 8 +- lib/dns/rdata/in_1/apl_42.c | 67 +- lib/dns/rdata/in_1/naptr_35.c | 14 +- lib/dns/request.c | 94 +- lib/dns/resolver.c | 395 +- lib/dns/rootns.c | 48 +- lib/dns/sdb.c | 16 +- lib/dns/tkey.c | 14 +- lib/dns/tsig.c | 76 +- lib/dns/validator.c | 110 +- lib/dns/view.c | 21 +- lib/dns/xfrin.c | 26 +- lib/dns/zone.c | 62 +- lib/isc/Makefile.in | 8 +- lib/isc/api | 4 +- lib/isc/assertions.c | 7 +- lib/isc/include/isc/assertions.h | 11 +- lib/isc/include/isc/lex.h | 8 +- lib/isc/include/isc/mem.h | 84 +- lib/isc/include/isc/msgs.h | 13 +- lib/isc/include/isc/platform.h.in | 25 +- lib/isc/include/isc/portset.h | 141 + lib/isc/include/isc/resource.h | 15 +- lib/isc/include/isc/socket.h | 77 +- lib/isc/include/isc/timer.h | 2 +- lib/isc/include/isc/types.h | 7 +- lib/isc/mem.c | 46 +- lib/isc/portset.c | 143 + lib/isc/print.c | 95 +- lib/isc/pthreads/mutex.c | 78 +- lib/isc/timer.c | 4 +- lib/isc/unix/app.c | 37 +- lib/isc/unix/include/isc/net.h | 27 +- lib/isc/unix/net.c | 161 +- lib/isc/unix/resource.c | 61 +- lib/isc/unix/socket.c | 1680 +++- lib/isc/unix/socket_p.h | 15 +- lib/isc/unix/time.c | 10 +- lib/isccfg/api | 2 +- lib/isccfg/namedconf.c | 170 +- lib/lwres/api | 2 +- make/rules.in | 6 +- version | 8 +- 190 files changed, 17970 insertions(+), 8337 deletions(-) rename bin/nsupdate/{nsupdate.8 => nsupdate.1} (97%) create mode 100755 doc/misc/sort-options.pl create mode 100644 doc/rfc/rfc4648.txt create mode 100644 doc/rfc/rfc4701.txt create mode 100644 doc/rfc/rfc5155.txt create mode 100644 lib/bind/include/isc/platform.h.in create mode 100644 lib/isc/include/isc/portset.h create mode 100644 lib/isc/portset.c diff --git a/CHANGES b/CHANGES index a8d3857a8c96..65980ea4aa4b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,14 +1,158 @@ - --- 9.4.2-P2 released --- -2406. [bug] Some operating systems have FD_SETSIZE set to a - low value by default, which can cause resource - exhaustion when many simultaneous connections are - open. Linux in particular makes it difficult to - increase this value. To use more sockets with - select(), set ISC_SOCKET_FDSETSIZE. Example: - STD_CDEFINES="-DISC_SOCKET_FDSETSIZE=4096" ./configure - (This should not be necessary in most cases, and - never for an authoritative-only server.) [RT #18328] + --- 9.4.3 released --- + +2490. [port] aix: work around a kernel bug where IPV6_RECVPKTINFO + is cleared when IPV6_V6ONLY is set. [RT #18785] + +2489. [port] solaris: Workaround Solaris's kernel bug about + /dev/poll: + http://bugs.opensolaris.org/view_bug.do?bug_id=6724237 + Define ISC_SOCKET_USE_POLLWATCH at build time to enable + this workaround. [RT #18870] + + --- 9.4.3rc1 released --- + +2473. [port] linux: raise the limit on open files to the possible + maximum value before spawning threads; 'files' + specified in named.conf doesn't seem to work with + threads as expected. [RT #18784] + +2472. [port] linux: check the number of available cpu's before + calling chroot as it depends on "/proc". [RT #16923] + +2471. [bug] named-checkzone was not reporting missing manditory + glue when sibling checks were disabled. [RT #18768] + +2469. [port] solaris: Work around Solaris's select() limitations. + [RT #18769] + +2468. [bug] Resolver could try unreachable servers multiple times. + [RT #18739] + +2467. [bug] Failure of fcntl(F_DUPFD) wasn't logged. [RT #18740] + +2466. [doc] ARM: explain max-cache-ttl 0 SERVFAIL issue. + [RT #18302] + +2465. [bug] Adb's handling of lame addresses was different + for IPv4 and IPv6. [RT #18738] + +2463. [port] linux: POSIX doesn't include the IPv6 Advanced Socket + API and glibc hides parts of the IPv6 Advanced Socket + API as a result. This is stupid as it breaks how the + two halves (Basic and Advanced) of the IPv6 Socket API were designed to be used but we have to live with it. + Define _GNU_SOURCE to pull in the IPv6 Advanced Socket + API. [RT #18388] + +2462. [doc] Document -m (enable memory usage debugging) + option for dig. [RT #18757] + +2461. [port] sunos: Change #2363 was not complete. [RT #17513] + +2458. [doc] ARM: update and correction for max-cache-size. + [RT #18294] + +2455. [bug] Stop metadata being transfered via axfr/ixfr. + [RT #18639] + +2453. [bug] Remove NULL pointer dereference in dns_journal_print(). + [RT #18316] + +2449. [bug] libbind: Out of bounds reference in dns_ho.c:addrsort. + [RT #18044] + +2445. [doc] ARM out-of-date on empty reverse zones (list includes + RFC1918 address, but these are not yet compiled in). + [RT #18578] + +2444. [port] Linux, FreeBSD, AIX: Turn off path mtu discovery + (clear DF) for UDP responses and requests. + + --- 9.4.3b3 released --- + +2443. [bug] win32: UDP connect() would not generate an event, + and so connected UDP sockets would never clean up. + Fix this by doing an immediate WSAConnect() rather + than an io completion port type for UDP. + +2438. [bug] Timeouts could be logged incorrectly under win32. + [RT #18617] + +2437. [bug] Sockets could be closed too early, leading to + inconsistent states in the socket module. [RT #18298] + +2436. [security] win32: UDP client handler can be shutdown. [RT #18576] + +2433. [tuning] Set initial timeout to 800ms. + +2432. [bug] More Windows socket handling improvements. Stop + using I/O events and use IO Completion Ports + throughout. Rewrite the receive path logic to make + it easier to support multiple simultaneous + requestrs in the future. Add stricter consistency + checking as a compile-time option (define + ISC_SOCKET_CONSISTENCY_CHECKS; defaults to off). + +2430. [bug] win32: isc_interval_set() could round down to + zero if the input was less than NS_INTERVAL + nanoseconds. Round up instead. [RT #18549] + +2429. [doc] nsupdate should be in section 1 of the man pages. + [RT #18283] + +2426. [bug] libbind: inet_net_pton() can sometimes return the + wrong value if excessively large netmasks are + supplied. [RT #18512] + +2425. [bug] named didn't detect unavailable query source addresses + at load time. [RT #18536] + +2424. [port] configure now probes for a working epoll + implementation. Allow the use of kqueue, + epoll and /dev/poll to be selected at compile + time. [RT #18277] + +2422. [bug] Handle the special return value of a empty node as + if it was a NXRRSET in the validator. [RT #18447] + +2421. [func] Add new command line option '-S' for named to specify + the max number of sockets. [RT #18493] + Use caution: this option may not work for some + operating systems without rebuilding named. + +2420. [bug] Windows socket handling cleanup. Let the io + completion event send out cancelled read/write + done events, which keeps us from writing to memeory + we no longer have ownership of. Add debugging + socket_log() function. Rework TCP socket handling + to not leak sockets. + +2417. [bug] Connecting UDP sockets for outgoing queries could + unexpectedly fail with an 'address already in use' + error. [RT #18411] + +2416. [func] Log file descriptors that cause exceeding the + internal maximum. [RT #18460] + +2414. [bug] A masterdump context held the database lock too long, + causing various troubles such as dead lock and + recursive lock acquisition. [RT #18311, #18456] + +2413. [bug] Fixed an unreachable code path in socket.c. [RT #18442] + +2412. [bug] win32: address a resourse leak. [RT #18374] + +2411. [bug] Allow using a larger number of sockets than FD_SETSIZE + for select(). To enable this, set ISC_SOCKET_MAXSOCKETS + at compilation time. [RT #18433] + +2410. [bug] Correctly delete m_versionInfo. [RT #18432] + +2408. [bug] A duplicate TCP dispatch event could be sent, which + could then trigger an assertion failure in + resquery_response(). [RT #18275] + +2407. [port] hpux: test for sys/dyntune.h. [RT #18421] 2404. [port] hpux: files unlimited support. @@ -39,15 +183,271 @@ 2392. [bug] remove 'grep -q' from acl test script, some platforms don't support it. [RT #18253] +2391 [port] hpux: cover additional recvmsg() error codes. + [RT #18301] + +2390 [bug] dispatch.c could make a false warning on 'odd socket'. + [RT #18301]. + +2389 [bug] Move the "working directory writable" check to after + the ns_os_changeuser() call. [RT #18326] + +2386. [func] Add warning about too small 'open files' limit. + [RT #18269] + + --- 9.4.3b2 released --- + +2385. [bug] A condition variable in socket.c could leak in + rare error handling [RT #17968]. + +2384. [security] Additional support for query port randomization (change + #2375) including performance improvement and port range + specification. [RT #17949, #18098] + +2383. [bug] named could double queries when they resulted in + SERVFAIL due to overkilling EDNS0 failure detection. + [RT #18182] + +2382. [doc] Add descriptions of IPSECKEY, SPF and SSHFP to ARM. + +2381. [port] dlz/mysql: support multiple install layouts for + mysql. /include/{,mysql/}mysql.h and + /lib/{,mysql/}. [RT #18152] + +2380. [bug] dns_view_find() was not returning NXDOMAIN/NXRRSET + proofs which, in turn, caused validation failures + for insecure zones immediately below a secure zone + the server was authoritative for. [RT #18112] + +2379. [contrib] queryperf/gen-data-queryperf.py: removed redundant + TLDs and supported RRs with TTLs [RT #17972] + +2377. [bug] Address race condition in dnssec-signzone. [RT #18142] + +2376. [bug] Change #2144 was not complete. + +2375. [security] Fully randomize UDP query ports to improve + forgery resilience. [RT #17949] + +2372. [bug] fixed incorrect TAG_HMACSHA256_BITS value [RT #18047] + +2369. [bug] libbind: Array bounds overrun on read in bitncmp(). + [RT #18054] + +2364. [bug] named could trigger a assertion when serving a + malformed signed zone. [RT #17828] + +2363. [port] sunos: pre-set "lt_cv_sys_max_cmd_len=4096;". + [RT #17513] + +2361. [bug] "recursion" statistics counter could be counted + multiple times for a single query. [RT #17990] + + --- 9.4.3b1 released --- + +2358. [doc] Update host's default query description. [RT #17934] + +2356. [bug] Built in mutex profiler was not scalable enough. + [RT #17436] + +2353. [func] libbind: nsid support. [RT #17091] + +2350. [port] win32: IPv6 support. [RT #17797] + +2347. [bug] Delete now traverses the RB tree in the canonical + order. [RT #17451] + +2345. [bug] named-checkconf failed to detect when forwarders + were set at both the options/view level and in + a root zone. [RT #17671] + +2344. [bug] Improve "logging{ file ...; };" documentation. + [RT #17888] + +2343. [bug] (Seemingly) duplicate IPv6 entries could be + created in ADB. [RT #17837] + +2341. [bug] libbind: add missing -I../include for off source + tree builds. [RT #17606] + +2340. [port] openbsd: interface configuration. [RT #17700] + +2339. [port] tru64: support for libbind. [RT #17589] + +2338. [bug] check_ds() could be called with a non DS rdataset. + [RT #17598] + +2337. [bug] BUILD_LDFLAGS was not being correctly set. [RT #17614] + +2335. [port] sunos: libbind and *printf() support for long long. + [RT #17513] + +2334. [bug] Bad REQUIRES in fromstruct_in_naptr(), off by one + bug in fromstruct_txt(). [RT #17609] + +2333. [bug] Fix off by one error in isc_time_nowplusinterval(). + [RT #17608] + +2332. [contrib] query-loc-0.4.0. [RT #17602] + +2331. [bug] Failure to regenerate any signatures was not being + reported nor being past back to the UPDATE client. + [RT #17570] + +2330. [bug] Remove potential race condition when handling + over memory events. [RT #17572] + + WARNING: API CHANGE: over memory callback + function now needs to call isc_mem_waterack(). + See for details. + +2329. [bug] Clearer help text for dig's '-x' and '-i' options. + +2328. [maint] Add AAAA addresses for A.ROOT-SERVERS.NET, + F.ROOT-SERVERS.NET, H.ROOT-SERVERS.NET, + J.ROOT-SERVERS.NET, K.ROOT-SERVERS.NET and + M.ROOT-SERVERS.NET. + +2326. [bug] It was possible to trigger a INSIST in the acache + processing. + +2325. [port] Linux: use capset() function if available. [RT #17557] + +2323. [port] tru64: namespace clash. [RT #17547] + 2322. [port] MacOS: work around the limitation of setrlimit() for RLIMIT_NOFILE. [RT #17526] - --- 9.4.2-P1 released --- +2319. [bug] Silence Coverity warnings in + lib/dns/rdata/in_1/apl_42.c. [RT #17469] -2375. [security] Fully randomize UDP query ports to improve - forgery resilience. [RT #17949] +2318. [port] sunos fixes for libbind. [RT #17514] + +2314. [bug] Uninitialized memory use on error path in + bin/named/lwdnoop.c. [RT #17476] + +2313. [cleanup] Silence Coverity warnings. Handle private stacks. + [RT #17447] [RT #17478] + +2312. [cleanup] Silence Coverity warning in lib/isc/unix/socket.c. + [RT #17458] + +2311. [func] Update ACL regression test. [RT #17462] + +2310. [bug] dig, host, nslookup: flush stdout before emitting + debug/fatal messages. [RT #17501] + +2308. [cleanup] Silence Coverity warning in bin/named/controlconf.c. + [RT #17495] + +2307. [bug] Remove infinite loop from lib/dns/sdb.c. [RT #17496] + +2306. [bug] Remove potential race from lib/dns/resolver.c. + [RT #17470] + +2305. [security] inet_network() buffer overflow. CVE-2008-0122. + +2304. [bug] Check returns from all dns_rdata_tostruct() calls. + [RT #17460] + +2303. [bug] Remove unnecessary code from bin/named/lwdgnba.c. + [RT #17471] + +2302. [bug] Fix memset() calls in lib/tests/t_api.c. [RT #17472] + +2301. [bug] Remove resource leak and fix error messages in + bin/tests/system/lwresd/lwtest.c. [RT #17474] + +2300. [bug] Fixed failure to close open file in + bin/tests/names/t_names.c. [RT #17473] + +2299. [bug] Remove unnecessary NULL check in + bin/nsupdate/nsupdate.c. [RT #17475] + +2298. [bug] isc_mutex_lock() failure not caught in + bin/tests/timers/t_timers.c. [RT #17468] + +2297. [bug] isc_entropy_createfilesource() failure not caught in + bin/tests/dst/t_dst.c. [RT #17467] + +2296. [port] Allow docbook stylesheet location to be specified to + configure. [RT #17457] + +2295. [bug] Silence static overrun error in bin/named/lwaddr.c. + [RT #17459] + +2293. [func] Add ACL regression test. [RT #17375] + +2292. [bug] Log if the working directory is not writable. + [RT #17312] + +2291. [bug] PR_SET_DUMPABLE may be set too late. Also report + failure to set PR_SET_DUMPABLE. [RT #17312] + +2290. [bug] Let AD in the query signal that the client wants AD + set in the response. [RT #17301] + +2288. [port] win32: mark service as running when we have finished + loading. [RT #17441] + +2287. [bug] Use 'volatile' if the compiler supports it. [RT #17413] + +2284. [bug] Memory leak in UPDATE prerequisite processing. + [RT #17377] + +2283. [bug] TSIG keys were not attaching to the memory + context. TSIG keys should use the rings + memory context rather than the clients memory + context. [RT #17377] + +2279. [bug] Use setsockopt(SO_NOSIGPIPE), when available, + to protect applications from receiving spurious + SIGPIPE signals when using the resolver. + +2278. [bug] win32: handle the case where Windows returns no + search list or DNS suffix. [RT #17354] + +2277. [bug] Empty zone names were not correctly being caught at + in the post parse checks. [RT #17357] + +2273. [bug] Adjust log level to WARNING when saving inconsistent + stub/slave master and journal files. [RT# 17279] + +2272. [bug] Handle illegal dnssec-lookaside trust-anchor names. + [RT #17262] + +2270. [bug] dns_db_closeversion() version->writer could be reset + before it is tested. [RT #17290] + +2269. [contrib] dbus memory leaks and missing va_end calls. [RT #17232] + +2268. [bug] 0.IN-ADDR.ARPA was missing from the empty zones + list. + +2266. [bug] client.c:get_clientmctx() returned the same mctx + once the pool of mctx's was filled. [RT #17218] + +2265. [bug] Test that the memory context's basic_table is non NULL + before freeing. [RT #17265] + +2264. [bug] Server prefix length was being ignored. [RT #17308] + +2263. [bug] "named-checkconf -z" failed to set default value + for "check-integrity". [RT #17306] + +2262. [bug] Error status from all but the last view could be + lost. [RT #17292] + +2260. [bug] Reported wrong clients-per-query when increasing the + value. [RT #17236] + +2247. [doc] Sort doc/misc/options. [RT #17067] + +2246. [bug] Make the startup of test servers (ans.pl) more + robust. [RT #17147] --- 9.4.2 released --- + --- 9.4.2rc2 released --- 2259. [bug] Reverse incorrect LIBINTERFACE bump of libisc @@ -63,7 +463,7 @@ 2256. [bug] win32: Correctly register the installation location of bindevt.dll. [RT #17159] -2255. [bug] L.ROOT-SERVERS.NET is now 199.7.83.42. +2255. [maint] L.ROOT-SERVERS.NET is now 199.7.83.42. 2254. [bug] timer.c:dispatch() failed to lock timer->lock when reading timer->idle allowing it to see @@ -76,16 +476,16 @@ reality. Note there is behaviour change for BIND 9.5. [RT #17113] -2249. [bug] Only set Authentic Data bit if client requested +2249. [bug] Only set Authentic Data bit if client requested DNSSEC, per RFC 3655 [RT #17175] -2248. [cleanup] Fix several errors reported by Coverity. [RT #17160] +2248. [cleanup] Fix several errors reported by Coverity. [RT #17160] 2245. [bug] Validating lack of DS records at trust anchors wasn't working. [RT #17151] 2238. [bug] It was possible to trigger a REQUIRE when a - validation was cancelled. [RT #17106] + validation was canceled. [RT #17106] 2237. [bug] libbind: res_init() was not thread aware. [RT #17123] @@ -94,8 +494,8 @@ 2235. [bug] was not being installed. [RT #17135] -2234. [port] Correct some compiler warnings on SCO OSr5 [RT #17134] - +2234. [port] Correct some compiler warnings on SCO OSr5 [RT #17134] + 2232. [bug] dns_adb_findaddrinfo() could fail and return ISC_R_SUCCESS. [RT #17137] @@ -110,7 +510,7 @@ 2227. [cleanup] Tidied up the FAQ. [RT #17121] 2225. [bug] More support for systems with no IPv4 addresses. - [RT #17111] + [RT #17111] 2224. [bug] Defer journal compaction if a xfrin is in progress. [RT #17119] @@ -124,15 +524,15 @@ 2220. [bug] win32: Address a race condition in final shutdown of the Windows socket code. [RT #17028] - -2219. [bug] Apply zone consistancy checks to additions, not + +2219. [bug] Apply zone consistency checks to additions, not removals, when updating. [RT #17049] 2218. [bug] Remove unnecessary REQUIRE from dns_validator_create(). [RT #16976] 2216. [cleanup] Fix a number of errors reported by Coverity. - [RT #17094] + [RT #17094] 2215. [bug] Bad REQUIRE check isc_hmacsha1_verify(). [RT #17094] @@ -175,13 +575,13 @@ localhost;) is used. [RT #16987] - + 2205. [bug] libbind: change #2119 broke thread support. [RT #16982] 2203. [security] Query id generation was cryptographically weak. [RT # 16915] -2202. [security] The default acls for allow-query-cache and +2202. [security] The default acls for allow-query-cache and allow-recursion were not being applied. [RT #16960] 2200. [bug] The search for cached NSEC records was stopping to @@ -216,7 +616,7 @@ 2187. [bug] query_addds(), query_addwildcardproof() and query_addnxrrsetnsec() should take a version - arguement. [RT #16368] + argument. [RT #16368] 2186. [port] cygwin: libbind: check for struct sockaddr_storage independently of IPv6. [RT #16482] @@ -243,7 +643,7 @@ debug level 10+. [RT #16798] 2176. [contrib] dbus update to handle race condition during - initialisation (Bugzilla 235809). [RT #16842] + initialization (Bugzilla 235809). [RT #16842] 2175. [bug] win32: windows broadcast condition variable support was broken. [RT #16592] @@ -274,7 +674,7 @@ a server address as a name to be looked up, causing unexpected output. [RT #16743] -2164. [bug] The code to determine how named-checkzone / +2164. [bug] The code to determine how named-checkzone / named-compilezone was called failed under windows. [RT #16764] @@ -288,7 +688,7 @@ 2159. [bug] Array bounds overrun in acache processing. [RT #16710] -2158. [bug] ns_client_isself() failed to initialise key +2158. [bug] ns_client_isself() failed to initialize key leading to a REQUIRE failure. [RT #16688] 2156. [bug] Fix node reference leaks in lookup.c:lookup_find(), @@ -363,7 +763,7 @@ 2136. [bug] nslookup/host looped if there was no search list and the host didn't exist. [RT #16657] -2135. [bug] Uninitialised rdataset in sdlz.c. [RT# 16656] +2135. [bug] Uninitialized rdataset in sdlz.c. [RT# 16656] 2133. [port] powerpc: Support both IBM and MacOS Power PC assembler syntaxes. [RT #16647] @@ -379,7 +779,7 @@ 2127. [port] Improved OpenSSL 0.9.8 support. [RT #16563] -2126. [security] Serialise validation of type ANY responses. [RT #16555] +2126. [security] Serialize validation of type ANY responses. [RT #16555] 2125. [bug] dns_zone_getzeronosoattl() REQUIRE failure if DLZ was defined. [RT #16574] @@ -419,7 +819,7 @@ 2111. [bug] Fix a number of errors reported by Coverity. [RT #16507] -2110. [bug] "minimal-response yes;" interacted badly with BIND 8 +2110. [bug] "minimal-responses yes;" interacted badly with BIND 8 priming queries. [RT #16491] 2109. [port] libbind: silence aix 5.3 compiler warnings. [RT #16502] @@ -431,7 +831,7 @@ 2103. [port] Add /usr/sfw to list of locations for OpenSSL under Solaris. -2102. [port] Silence solaris 10 warnings. +2102. [port] Silence Solaris 10 warnings. --- 9.4.0b4 released --- @@ -441,7 +841,7 @@ 2100. [port] win32: copy libeay32.dll to Build\Debug. Copy Debug\named-checkzone to Debug\named-compilezone. -2099. [port] win32: more manifiest issues. +2099. [port] win32: more manifest issues. 2098. [bug] Race in rbtdb.c:no_references(), which occasionally triggered an INSIST failure about the node lock @@ -457,14 +857,14 @@ 2095. [port] libbind: alway prototype inet_cidr_ntop_ipv6() and net_cidr_ntop_ipv6(). [RT #16388] - + 2094. [contrib] Update named-bootconf. [RT# 16404] 2093. [bug] named-checkzone -s was broken. 2092. [bug] win32: dig, host, nslookup. Use registry config if resolv.conf does not exist or no nameservers - listed. [RT #15877] + listed. [RT #15877] 2091. [port] dighost.c: race condition on cleanup. [RT #16417] @@ -507,7 +907,7 @@ 2078. [bug] dnssec-checkzone output style "default" was badly named. It is now called "relative". [RT #16326] -2077. [bug] 'dnssec-signzone -O raw' wasn't outputing the +2077. [bug] 'dnssec-signzone -O raw' wasn't outputting the complete signed zone. [RT #16326] 2076. [bug] Several files were missing #include @@ -592,7 +992,7 @@ [RT #16287] 2049. [bug] Restore SOA before AXFR when falling back from - a attempted IXFR when transfering in a zone. + a attempted IXFR when transferring in a zone. Allow a initial SOA query before attempting a AXFR to be requested. [RT #16156] @@ -601,7 +1001,7 @@ the OS always returned the same local port. [RT #16182] -2047. [bug] Failed to initialise the interface flags to zero. +2047. [bug] Failed to initialize the interface flags to zero. [RT #16245] 2046. [bug] rbtdb.c:rdataset_setadditional() could cause duplicate @@ -641,7 +1041,7 @@ 2034. [bug] gcc: set -fno-strict-aliasing. [RT #16124] -2033. [bug] We wern't creating multiple client memory contexts +2033. [bug] We weren't creating multiple client memory contexts on demand as expected. [RT #16095] --- 9.4.0a6 released --- @@ -657,7 +1057,7 @@ 2029. [bug] host printed out the server multiple times when specified on the command line. [RT #15992] -2028. [port] linux: socket.c compatability for old systems. +2028. [port] linux: socket.c compatibility for old systems. [RT #16015] 2027. [port] libbind: Solaris x86 support. [RT #16020] @@ -667,7 +1067,7 @@ 2025. [func] Update "zone serial unchanged" message. [RT #16026] -2024. [bug] named emited spurious "zone serial unchanged" +2024. [bug] named emitted spurious "zone serial unchanged" messages on reload. [RT #16027] 2023. [bug] "make install" should create ${localstatedir}/run and @@ -695,7 +1095,7 @@ --- 9.4.0a5 released --- 2015. [cleanup] use-additional-cache is now acache-enable for - consistancy. Default acache-enable off in BIND 9.4 + consistency. Default acache-enable off in BIND 9.4 as it requires memory usage to be configured. It may be enabled by default in BIND 9.5 once we have more experience with it. @@ -715,9 +1115,9 @@ --- 9.4.0a4 released --- -2009. [bug] libbind: coverity fixes. [RT #15808] +2009. [bug] libbind: Coverity fixes. [RT #15808] -2008. [func] It is now posssible to enable/disable DNSSEC +2008. [func] It is now possible to enable/disable DNSSEC validation from rndc. This is useful for the mobile hosts where the current connection point breaks DNSSEC (firewall/proxy). [RT #15592] @@ -729,7 +1129,7 @@ be changed to yes in 9.5.0. [RT #15674] 2006. [security] Allow-query-cache and allow-recursion now default - to the builtin acls "localnets" and "localhost". + to the built in acls "localnets" and "localhost". This is being done to make caching servers less attractive as reflective amplifying targets for @@ -777,7 +1177,7 @@ 1994. [port] OpenSSL 0.9.8 support. [RT #15694] -1993. [bug] Log messsage, via syslog, were missing the space +1993. [bug] Log messages, via syslog, were missing the space after the timestamp if "print-time yes" was specified. [RT #15844] @@ -785,11 +1185,11 @@ view. [RT #15825] 1991. [cleanup] The configuration data, once read, should be treated - as readonly. Expand the use of const to enforce this + as read only. Expand the use of const to enforce this at compile time. [RT #15813] 1990. [bug] libbind: isc's override of broken gettimeofday() - implementions was not always effective. + implementations was not always effective. [RT #15709] 1989. [bug] win32: don't check the service password when @@ -811,7 +1211,7 @@ server for the zone. Also any zones that contain DLV records should be removed when upgrading a slave zone. You do not however have to upgrade all - servers for a zone with DLV records simultaniously. + servers for a zone with DLV records simultaneously. 1984. [func] dig, nslookup and host now advertise a 4096 byte EDNS UDP buffer size by default. [RT #15855] @@ -848,7 +1248,7 @@ 1973. [func] TSIG HMACSHA1, HMACSHA224, HMACSHA256, HMACSHA384 and HMACSHA512 support. [RT #13606] -1972. [contrib] DBUS dynamic forwarders integation from +1972. [contrib] DBUS dynamic forwarders integration from Jason Vas Dias . 1971. [port] linux: make detection of missing IF_NAMESIZE more @@ -872,7 +1272,7 @@ 1964. [func] Separate out MX and SRV to CNAME checks. [RT #15723] -1963. [port] Tru64 4.0E doesn't support send() and recv(). +1963. [port] Tru64 4.0E doesn't support send() and recv(). [RT #15586] 1962. [bug] Named failed to clear old update-policy when it @@ -898,7 +1298,7 @@ by native compiler. See README for additional cross compile support information. [RT #15148] -1955. [bug] Pre-allocate the cache cleaning interator. [RT #14998] +1955. [bug] Pre-allocate the cache cleaning iterator. [RT #14998] 1954. [func] Named now falls back to advertising EDNS with a 512 byte receive buffer if the initial EDNS queries @@ -915,7 +1315,7 @@ 1951. [security] Drop queries from particular well known ports. Don't return FORMERR to queries from particular well known ports. [RT #15636] - + 1950. [port] Solaris 2.5.1 and earlier cannot bind() then connect() a TCP socket. This prevents the source address being set for TCP connections. [RT #15628] @@ -934,10 +1334,10 @@ 1946. [bug] resume_dslookup() could trigger a REQUIRE failure when using forwarders. [RT #15549] -1945. [cleanup] dnssec-keygen: RSA (RSAMD5) is nolonger recommended. +1945. [cleanup] dnssec-keygen: RSA (RSAMD5) is no longer recommended. To generate a RSAMD5 key you must explicitly request RSAMD5. [RT #13780] - + 1944. [cleanup] isc_hash_create() does not need a read/write lock. [RT #15522] @@ -1028,15 +1428,15 @@ 1917. [doc] funcsynopsisinfo wasn't being treated as verbatim when generating man pages. [RT #15385] -1916. [func] Integrate contibuted IDN code from JPNIC. [RT #15383] +1916. [func] Integrate contributed IDN code from JPNIC. [RT #15383] 1915. [bug] dig +ndots was broken. [RT #15215] 1914. [protocol] DS is required to accept mnemonic algorithms (RFC 4034). Still emit numeric algorithms for - compatability with RFC 3658. [RT #15354] + compatibility with RFC 3658. [RT #15354] -1913. [func] Integrate contibuted DLZ code into named. [RT #11382] +1913. [func] Integrate contributed DLZ code into named. [RT #11382] 1912. [port] aix: atomic locking for powerpc. [RT #15020] @@ -1059,7 +1459,7 @@ [RT #15034] 1905. [bug] Strings returned from cfg_obj_asstring() should be - treated as read-only. The prototype for + treated as read-only. The prototype for cfg_obj_asstring() has been updated to reflect this. [RT #15256] @@ -1108,7 +1508,7 @@ 1891. [port] freebsd: pthread_mutex_init can fail if it runs out of memory. [RT #14995] -1890. [func] Raise the UDP recieve buffer size to 32k if it is +1890. [func] Raise the UDP receive buffer size to 32k if it is less than 32k. [RT #14953] 1889. [port] sunos: non blocking i/o support. [RT #14951] @@ -1148,7 +1548,7 @@ [RT #2471] 1877. [bug] Fix unreasonably low quantum on call to - dns_rbt_destroy2(). Remove unnecessay unhash_node() + dns_rbt_destroy2(). Remove unnecessary unhash_node() call. [RT #14919] 1876. [func] Additional memory debugging support to track size @@ -1189,10 +1589,10 @@ 1863. [bug] rrset-order "fixed" error messages not complete. 1862. [func] Add additional zone data constancy checks. - named-checkzone has extended checking of NS, MX and + named-checkzone has extended checking of NS, MX and SRV record and the hosts they reference. named has extended post zone load checks. - New zone options: check-mx and integrity-check. + New zone options: check-mx and integrity-check. [RT #4940] 1861. [bug] dig could trigger a INSIST on certain malformed @@ -1230,24 +1630,24 @@ 1850. [bug] Memory leak in lwres_getipnodebyaddr(). [RT #14591] 1849. [doc] All forms of the man pages (docbook, man, html) should - have consistant copyright dates. + have consistent copyright dates. 1848. [bug] Improve SMF integration. [RT #13238] 1847. [bug] isc_ondestroy_init() is called too late in - dns_rbtdb_create()/dns_rbtdb64_create(). + dns_rbtdb_create()/dns_rbtdb64_create(). [RT #13661] - + 1846. [contrib] query-loc-0.3.0 from Stephane Bortzmeyer . -1845. [bug] Improve error reporting to distingish between +1845. [bug] Improve error reporting to distinguish between accept()/fcntl() and socket()/fcntl() errors. [RT #13745] 1844. [bug] inet_pton() accepted more that 4 hexadecimal digits for each 16 bit piece of the IPv6 address. The text - representation of a IPv6 address has been tighted + representation of a IPv6 address has been tightened to disallow this (draft-ietf-ipv6-addr-arch-v4-02.txt). [RT #5662] @@ -1475,7 +1875,7 @@ 1765. [bug] configure --with-openssl=auto failed. [RT #12937] 1764. [bug] dns_zone_replacedb failed to emit a error message - if there was no SOA record in the replacment db. + if there was no SOA record in the replacement db. [RT #13016] 1763. [func] Perform sanity checks on NS records which refer to @@ -1503,7 +1903,7 @@ 1755. [func] allow-update is now settable at the options / view level. [RT #6636] -1754. [bug] We wern't always attempting to query the parent +1754. [bug] We weren't always attempting to query the parent server for the DS records at the zone cut. [RT #12774] @@ -1523,8 +1923,8 @@ [RT #12866] 1748. [func] dig now returns the byte count for axfr/ixfr. - -1747. [bug] BIND 8 compatability: named/named-checkconf failed + +1747. [bug] BIND 8 compatibility: named/named-checkconf failed to parse "host-statistics-max" in named.conf. 1746. [func] Make public the function to read a key file, @@ -1541,7 +1941,7 @@ requested number of worker threads then destruction of the manager would trigger an INSIST() failure. [RT #12790] - + 1742. [bug] Deleting all records at a node then adding a previously existing record, in a single UPDATE transaction, failed to leave / regenerate the @@ -1552,7 +1952,7 @@ 1740. [bug] Replace rbt's hash algorithm as it performed badly with certain zones. [RT #12729] - + NOTE: a hash context now needs to be established via isc_hash_create() if the application was not already doing this. @@ -1567,7 +1967,7 @@ 1736. [bug] dst_key_fromnamedfile() could fail to read a public key. [RT #12687] - + 1735. [bug] 'dig +sigtrace' could die with a REQUIRE failure. [RE #12688] @@ -1607,7 +2007,7 @@ [RT #12519] 1721. [bug] Error message from the journal processing were not - always identifing the relevent journal. [RT #12519] + always identifying the relevant journal. [RT #12519] 1720. [bug] 'dig +chase' did not terminate on a RFC 2308 Type 1 negative response. [RT #12506] @@ -1664,7 +2064,7 @@ 1703. [bug] named would loop sending NOTIFY messages when it failed to receive a response. [RT #12322] -1702. [bug] also-notify should not be applied to builtin zones. +1702. [bug] also-notify should not be applied to built in zones. [RT #12323] 1701. [doc] A minimal named.conf man page. @@ -1744,7 +2144,7 @@ 1675. [bug] named would sometimes add extra NSEC records to the authority section. - + 1674. [port] linux: increase buffer size used to scan /proc/net/if_inet6. @@ -1816,7 +2216,7 @@ 1648. [func] Update dnssec-lookaside named.conf syntax to support multiple dnssec-lookaside namespaces (not yet - implemented). + implemented). 1647. [bug] It was possible trigger a INSIST when chasing a DS record that required walking back over a empty node. @@ -1829,7 +2229,7 @@ masters with keys are specified. 1644. [bug] Update the journal modification time after a - sucessfull refresh query. [RT #11436] + successful refresh query. [RT #11436] 1643. [bug] dns_db_closeversion() could leak memory / node references. [RT #11163] @@ -1846,11 +2246,11 @@ 1638. [bug] "ixfr-from-differences" could generate a REQUIRE failure if the journal open failed. [RT #11347] - + 1637. [bug] Node reference leak on error in addnoqname(). 1636. [bug] The dump done callback could get ISC_R_SUCCESS even if - a error had occured. The database version no longer + a error had occurred. The database version no longer matched the version of the database that was dumped. 1635. [bug] Memory leak on error in query_addds(). @@ -1940,21 +2340,21 @@ 1607. [bug] dig, host and nslookup were still using random() to generate query ids. [RT# 11013] -1606. [bug] DLV insecurity proof was failing. +1606. [bug] DLV insecurity proof was failing. 1605. [func] New dns_db_find() option DNS_DBFIND_COVERINGNSEC. 1604. [bug] A xfrout_ctx_create() failure would result in xfrout_ctx_destroy() being called with a partially initialized structure. - + 1603. [bug] nsupdate: set interactive based on isatty(). [RT# 10929] 1602. [bug] Logging to a file failed unless a size was specified. [RT# 10925] -1601. [bug] Silence spurious warning 'both "recursion no;" and +1601. [bug] Silence spurious warning 'both "recursion no;" and "allow-recursion" active' warning from view "_bind". [RT# 10920] @@ -2045,7 +2445,7 @@ 1568. [bug] nsupdate now reports that the update failed in interactive mode. [RT# 10236] -1567. [bug] B.ROOT-SERVERS.NET is now 192.228.79.201. +1567. [maint] B.ROOT-SERVERS.NET is now 192.228.79.201. 1566. [port] Support for the cmsg framework on Solaris and HP/UX. This also solved the problem that match-destinations @@ -2214,7 +2614,7 @@ type, class and responding nameserver. 1511. [bug] delegation-only was generating false positives - on negative answers from subzones. + on negative answers from sub-zones. 1510. [func] New view option "root-delegation-only". Apply delegation-only check to all TLDs and root. @@ -2548,7 +2948,7 @@ 1398. [doc] ARM: notify-also should have been also-notify. [RT #4345] -1397. [bug] J.ROOT-SERVERS.NET is now 192.58.128.30. +1397. [maint] J.ROOT-SERVERS.NET is now 192.58.128.30. 1396. [func] dnssec-signzone: adjust the default signing time by 1 hour to allow for clock skew. @@ -3895,7 +4295,7 @@ 954. [bug] When requesting AXFRs or IXFRs using dig, host, or nslookup, the RD bit should not be set as zone - transfers are inherently nonrecursive. [RT #1575] + transfers are inherently non-recursive. [RT #1575] 953. [func] The /var/run/named.key file from change #843 has been replaced by /etc/rndc.key. Both @@ -4210,7 +4610,7 @@ 860. [func] Drop cross class glue in zone transfers. 859. [bug] Cache cleaning now won't swamp the CPU if there - is a persistent overlimit condition. + is a persistent over limit condition. 858. [func] isc_mem_setwater() no longer requires that when the callback function is non-NULL then its hi_water @@ -4386,7 +4786,7 @@ 811. [bug] Parentheses were not quoted in zone dumps. [RT #1194] 810. [bug] The signer name in SIG records was not properly - downcased when signing/verifying records. [RT #1186] + down-cased when signing/verifying records. [RT #1186] 809. [bug] Configuring a non-local address as a transfer-source could cause an assertion failure during load. @@ -4398,9 +4798,9 @@ ignored like it should be. 806. [bug] DNS_R_SEENINCLUDE was failing to propagate back up - the calling stack to the zone maintence level, causing - zones to not reload when an included file was touched - but the top-level zone file was not. + the calling stack to the zone maintenance level, + causing zones to not reload when an included file was + touched but the top-level zone file was not. 805. [bug] When using "forward only", missing root hints should not cause queries to fail. [RT #1143] @@ -4440,7 +4840,7 @@ in rndc.conf. 793. [cleanup] The DNSSEC tools could create filenames that were - illegal or contained shell metacharacters. They + illegal or contained shell meta-characters. They now use a different text encoding of names that doesn't have these problems. [RT #1101] @@ -4464,7 +4864,7 @@ names when mapping them into file names. 786. [bug] When DNSSEC signing/verifying data, owner names were - not properly downcased. + not properly down-cased. 785. [bug] A race condition in the resolver could cause an assertion failure. [RT #673, #872, #1048] @@ -4483,7 +4883,7 @@ 780. [bug] Error handling code dealing with out of memory or other rare errors could lead to assertion failures - by calling functions on unitialized names. [RT #1065] + by calling functions on uninitialized names. [RT #1065] 779. [func] Added the "minimal-responses" option. @@ -4626,7 +5026,7 @@ 735. [doc] Add BIND 4 migration notes. 734. [bug] An attempt to re-lock the zone lock could occur if - the server was shutdown during a zone tranfer. + the server was shutdown during a zone transfer. [RT #830] 733. [bug] Reference counts of dns_acl_t objects need to be @@ -4766,7 +5166,7 @@ 688. [func] "make tags" now works on systems with the "Exuberant Ctags" etags. - 687. [bug] Only say we have IPv6, with sufficent functionality, + 687. [bug] Only say we have IPv6, with sufficient functionality, if it has actually been tested. [RT #586] 686. [bug] dig and nslookup can now be properly aborted during @@ -5084,7 +5484,7 @@ --- 9.1.0b1 released --- 591. [bug] Work around non-reentrancy in openssl by disabling - precomputation in keys. + pre-computation in keys. 590. [doc] There are now man pages for the lwres library in doc/man/lwres. @@ -5133,7 +5533,7 @@ source address for notify messages. 577. [func] Log illegal RDATA combinations. e.g. multiple - singlton types, cname and other data. + singleton types, cname and other data. 576. [doc] isc_log_create() description did not match reality. @@ -5144,7 +5544,7 @@ have their responses validated and would leak memory. 573. [bug] The journal files of IXFRed slave zones were - inadvertantly discarded on server reload, causing + inadvertently discarded on server reload, causing "journal out of sync with zone" errors on subsequent reloads. [RT #482] @@ -5313,7 +5713,7 @@ others). 519. [bug] dns_name_split() would improperly split some bitstring - labels, zeroing a few of the least signficant bits in + labels, zeroing a few of the least significant bits in the prefix part. When such an improperly created prefix was returned to the RBT database, the bogus label was dutifully stored, corrupting the tree. @@ -5341,7 +5741,7 @@ 513. [func] New functionality added to rdnc and server to allow individual zones to be refreshed or reloaded. - 512. [bug] The zone transfer code could throw an execption with + 512. [bug] The zone transfer code could throw an exception with an invalid IXFR stream. 511. [bug] The message code could throw an assertion on an @@ -5532,7 +5932,7 @@ 452. [bug] Warn if the unimplemented option "statistics-file" is specified in named.conf. [RT #301] - 451. [func] Update forwarding implememted. + 451. [func] Update forwarding implemented. 450. [func] New function ns_client_sendraw(). @@ -5633,7 +6033,7 @@ e.g. due to corrupt zones with multiple SOA records. [RT #279] - 423. [bug] When responding to a recusive query, errors that occur + 423. [bug] When responding to a recursive query, errors that occur after following a CNAME should cause the query to fail. [RT #274] @@ -5678,7 +6078,7 @@ 409. [bug] If named was shut down early in the startup process, ns_omapi_shutdown() would attempt to lock - an unintialized mutex. [RT #262] + an uninitialized mutex. [RT #262] 408. [bug] stub zones could leak memory and reference counts if all the masters were unreachable. @@ -5745,7 +6145,7 @@ making the functions dns_zone_adddbarg() and dns_zone_cleardbargs() unnecessary. - 389. [bug] Attempting to send a reqeust over IPv6 using + 389. [bug] Attempting to send a request over IPv6 using dns_request_create() on a system without IPv6 support caused an assertion failure [RT #235]. @@ -5802,7 +6202,7 @@ of a very large RRset could cause an assertion failure during logging. - 370. [bug] The error messages for rollforward failures were + 370. [bug] The error messages for roll-forward failures were overly terse. 369. [func] Support new named.conf options, view and zone @@ -5945,7 +6345,7 @@ 328. [func] Added isc_base64_decodestring(). - 327. [bug] rndc.conf parser wasn't correctly recognising an IP + 327. [bug] rndc.conf parser wasn't correctly recognizing an IP address where a host specification was required. 326. [func] 'keys' in an 'inet' control statement is now @@ -5975,7 +6375,7 @@ where they previously didn't. 321. [bug] When synthesizing a CNAME RR for a DNAME - response, query_addcname() failed to intitialize + response, query_addcname() failed to initialize the type and class of the CNAME dns_rdata_t, causing random failures. @@ -6251,7 +6651,7 @@ --- 9.0.0b4 released --- - 253. [func] resolv.conf parser now recognises ';' and '#' as + 253. [func] resolv.conf parser now recognizes ';' and '#' as comments (anywhere in line, not just as the beginning). 252. [bug] resolv.conf parser mishandled masks on sortlists. @@ -6321,7 +6721,7 @@ requiring a quoted string. 233. [cleanup] Convert all config structure integer values to unsigned - integer (isc_uint32_t) to match grammer. + integer (isc_uint32_t) to match grammar. 232. [bug] Allow slave zones to not have a file. @@ -6358,7 +6758,7 @@ from confparser.c, because of yacc's code, are unfortunately to be expected.) - 223. [func] Several functions were reprototyped to qualify one + 223. [func] Several functions were re-prototyped to qualify one or more of their arguments with "const". Similarly, several functions that return pointers now have those pointers qualified with const. @@ -6523,7 +6923,7 @@ 183. [func] ISC_LOG_PRINTTAG option for log channels. Useful for logging the program name or other identifier. - 182. [cleanup] New commandline parameters for dnssec tools + 182. [cleanup] New command-line parameters for dnssec tools 181. [func] Added dst_key_buildfilename and dst_key_parsefilename @@ -6568,7 +6968,7 @@ --with-mit-pthreads option is no longer needed and has been removed. - 170. [cleanup] Remove inter server consistancy checks from zone, + 170. [cleanup] Remove inter server consistency checks from zone, these should return as a separate module in 9.1. dns_zone_checkservers(), dns_zone_checkparents(), dns_zone_checkchildren(), dns_zone_checkglue(). @@ -6661,7 +7061,7 @@ than continuing to itemize every header which changed, this changelog entry just notes that if a header file did not need another header file that it was including - in order to provide its advertized functionality, the + in order to provide its advertised functionality, the inclusion of the other header file was removed. See util/check-includes for how this was tested. @@ -7053,7 +7453,7 @@ 31. [bug] Use ${LIBTOOL} to compile bin/named/main.@O@. - 30. [func] config file grammer change to support optional + 30. [func] config file grammar change to support optional class type for a view. 29. [func] support new config file view options: @@ -7117,7 +7517,7 @@ 13. [bug] lib/dns/master.c and lib/dns/xfrin.c didn't ignore out-of-zone data. - 12. [bug] Fixed possible unitialized variable error. + 12. [bug] Fixed possible uninitialized variable error. 11. [bug] axfr_rrstream_first() didn't check the result code of db_rr_iterator_first(), possibly causing an assertion diff --git a/COPYRIGHT b/COPYRIGHT index 2eaecb296f7d..8d6a0cef1378 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -$Id: COPYRIGHT,v 1.9.18.4.10.1 2008/07/23 07:28:54 tbox Exp $ +$Id: COPYRIGHT,v 1.9.18.5 2008/01/02 23:46:02 tbox Exp $ Portions Copyright (C) 1996-2001 Nominum, Inc. diff --git a/FAQ b/FAQ index 90b3ca045388..2c333bef3b24 100644 --- a/FAQ +++ b/FAQ @@ -1,6 +1,6 @@ Frequently Asked Questions about BIND 9 -Copyright © 2004-2007 Internet Systems Consortium, Inc. ("ISC") +Copyright © 2004-2008 Internet Systems Consortium, Inc. ("ISC") Copyright © 2000-2003 Internet Software Consortium. @@ -205,6 +205,8 @@ A: These indicate a malformed master zone. You can identify the exact Q: I get error messages like "named.conf:99: unexpected end of input" where 99 is the last line of named.conf. +A: There are unbalanced quotes in named.conf. + A: Some text editors (notepad and wordpad) fail to put a line title indication (e.g. CR/LF) on the last line of a text file. This can be fixed by "adding" a blank line to the end of the file. Named expects to @@ -375,7 +377,60 @@ A: When reloading a zone named my have multiple copies of the zone in other errors in the master file as it still has an in-core copy of the old contents. -3. General Questions +Q: I want to use IPv6 locally but I don't have a external IPv6 connection. + External lookups are slow. + +A: You can use server clauses to stop named making external lookups over + IPv6. + + server fd81:ec6c:bd62::/48 { bogus no; }; // site ULA prefix + server ::/0 { bogus yes; }; + +3. Operations Questions + +Q: How to change the nameservers for a zone? + +A: Step 1: Ensure all nameservers, new and old, are serving the same zone + content. + + Step 2: Work out the maximum TTL of the NS RRset in the parent and + child zones. This is the time it will take caches to be clear of a + particular version of the NS RRset. If you are just removing + nameservers you can skip to Step 6. + + Step 3: Add new nameservers to the NS RRset for the zone and wait until + all the servers for the zone are answering with this new NS RRset. + + Step 4: Inform the parent zone of the new NS RRset then wait for all + the parent servers to be answering with the new NS RRset. + + Step 5: Wait for cache to be clear of the old NS RRset. See Step 2 for + how long. If you are just adding nameservers you are done. + + Step 6: Remove any old nameservers from the zones NS RRset and wait for + all the servers for the zone to be serving the new NS RRset. + + Step 7: Inform the parent zone of the new NS RRset then wait for all + the parent servers to be answering with the new NS RRset. + + Step 8: Wait for cache to be clear of the old NS RRset. See Step 2 for + how long. + + Step 9: Turn off the old nameservers or remove the zone entry from the + configuration of the old nameservers. + + Step 10: Increment the serial number and wait for the change to be + visible in all nameservers for the zone. This ensures that zone + transfers are still working after the old servers are decommissioned. + + Note: the above procedure is designed to be transparent to dns clients. + Decommissioning the old servers too early will result in some clients + not being able to look up answers in the zone. + + Note: while it is possible to run the addition and removal stages + together it is not recommended. + +4. General Questions Q: I keep getting log messages like the following. Why? @@ -396,8 +451,8 @@ A: Someone is trying to update your DNS data using the RFC2136 Dynamic Update protocol. Windows 2000 machines have a habit of sending dynamic update requests to DNS servers without being specifically configured to do so. If the update requests are coming from a Windows 2000 machine, - see http://support.microsoft.com/support/kb/articles/q246/8/04.asp for - information about how to turn them off. + see + for information about how to turn them off. Q: When I do a "dig . ns", many of the A records for the root servers are missing. Why? @@ -468,7 +523,7 @@ A: If the IN-ADDR.ARPA name covered refers to a internal address space you are using then you have failed to follow RFC 1918 usage rules and are leaking queries to the Internet. You should establish your own zones for these addresses to prevent you querying the Internet's name servers - for these addresses. Please see http://as112.net/ for details of the + for these addresses. Please see for details of the problems you are causing and the counter measures that have had to be deployed. @@ -541,9 +596,16 @@ A: No. The BIND 9 bug database is kept closed for a number of reasons. that have been fixed post release. That is as close as we can get to providing a bug database. -4. Operating-System Specific Questions +Q: Why do queries for NSEC3 records fail to return the NSEC3 record? -4.1. HPUX +A: NSEC3 records are strictly meta data and can only be returned in the + authority section. This is done so that signing the zone using NSEC3 + records does not bring names into existance that do not exist in the + unsigned version of the zone. + +5. Operating-System Specific Questions + +5.1. HPUX Q: I get the following error trying to configure BIND: @@ -559,7 +621,7 @@ A: You have attempted to configure BIND with the bundled C compiler. This ./configure CC= ... -4.2. Linux +5.2. Linux Q: Why do I get the following errors: @@ -569,7 +631,20 @@ Q: Why do I get the following errors: A: This is the result of a Linux kernel bug. - See: http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2 + See: + +Q: Why does named lock up when it attempts to connect over IPSEC tunnels? + +A: This is due to a kernel bug where the fact that a socket is marked + non-blocking is ignored. It is reported that setting xfrm_larval_drop + to 1 helps but this may have negative side effects. See: and . + + xfrm_larval_drop can be set to 1 by the following procedure: + + echo "1" > proc/sys/net/core/xfrm_larval_drop Q: Why do I see 5 (or more) copies of named on Linux? @@ -594,7 +669,12 @@ Q: I get the error message "named: capset failed: Operation not permitted" when starting named. A: The capability module, part of "Linux Security Modules/LSM", has not - been loaded into the kernel. See insmod(8). + been loaded into the kernel. See insmod(8), modprobe(8). + + The relevant modules can be loaded by running: + + modprobe commoncap + modprobe capability Q: I'm running BIND on Red Hat Enterprise Linux or Fedora Core - @@ -608,7 +688,7 @@ Q: I'm running BIND on Red Hat Enterprise Linux or Fedora Core - A: Red Hat Security Enhanced Linux (SELinux) policy security protections : Red Hat have adopted the National Security Agency's SELinux security - policy ( see http://www.nsa.gov/selinux ) and recommendations for BIND + policy (see ) and recommendations for BIND security , which are more secure than running named in a chroot and make use of the bind-chroot environment unnecessary . @@ -699,7 +779,19 @@ A: Red Hat Security Enhanced Linux (SELinux) policy security protections : See these man-pages for more information : selinux(8), named_selinux (8), chcon(1), setsebool(8) -4.3. Windows +Q: Listening on individual IPv6 interfaces does not work. + +A: This is usually due to "/proc/net/if_inet6" not being available in the + chroot file system. Mount another instance of "proc" in the chroot file + system. + + This can be be made permanent by adding a second instance to /etc/ + fstab. + + proc /proc proc defaults 0 0 + proc /var/named/proc proc defaults 0 0 + +5.3. Windows Q: Zone transfers from my BIND 9 master to my Windows 2000 slave fail. Why? @@ -725,7 +817,7 @@ A: This is the service manager saying that named exited. You need to Directory "C:\windows\dns\etc"; }; -4.4. FreeBSD +5.4. FreeBSD Q: I have FreeBSD 4.x and "rndc-confgen -a" just sits there. @@ -736,17 +828,17 @@ A: /dev/random is not configured. Use rndcontrol(8) to tell the kernel to /etc/rc.conf rand_irqs="3 14 15" - See also http://people.freebsd.org/~dougb/randomness.html + See also . -4.5. Solaris +5.5. Solaris Q: How do I integrate BIND 9 and Solaris SMF A: Sun has a blog entry describing how to do this. - http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris + -4.6. Apple Mac OS X +5.6. Apple Mac OS X Q: How do I run BIND 9 on Apple Mac OS X? diff --git a/FAQ.xml b/FAQ.xml index 0f864ef753a2..b624d06d5341 100644 --- a/FAQ.xml +++ b/FAQ.xml @@ -1,7 +1,7 @@ - +
Frequently Asked Questions about BIND 9 @@ -27,6 +27,7 @@ 2005 2006 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -390,6 +391,11 @@ named-checkzone example.com tmp of input where 99 is the last line of named.conf. + + + There are unbalanced quotes in named.conf. + + Some text editors (notepad and wordpad) fail to put a line @@ -660,9 +666,98 @@ zone "list.dsbl.org" { + + + + + I want to use IPv6 locally but I don't have a external IPv6 + connection. External lookups are slow. + + + + + You can use server clauses to stop named making external lookups + over IPv6. + + +server fd81:ec6c:bd62::/48 { bogus no; }; // site ULA prefix +server ::/0 { bogus yes; }; + + + + Operations Questions + + + + + How to change the nameservers for a zone? + + + + + Step 1: Ensure all nameservers, new and old, are serving the + same zone content. + + + Step 2: Work out the maximum TTL of the NS RRset in the parent and child + zones. This is the time it will take caches to be clear of a + particular version of the NS RRset. + If you are just removing nameservers you can skip to Step 6. + + + Step 3: Add new nameservers to the NS RRset for the zone and + wait until all the servers for the zone are answering with this + new NS RRset. + + + Step 4: Inform the parent zone of the new NS RRset then wait for all the + parent servers to be answering with the new NS RRset. + + + Step 5: Wait for cache to be clear of the old NS RRset. + See Step 2 for how long. + If you are just adding nameservers you are done. + + + Step 6: Remove any old nameservers from the zones NS RRset and + wait for all the servers for the zone to be serving the new NS RRset. + + + Step 7: Inform the parent zone of the new NS RRset then wait for all the + parent servers to be answering with the new NS RRset. + + + Step 8: Wait for cache to be clear of the old NS RRset. + See Step 2 for how long. + + + Step 9: Turn off the old nameservers or remove the zone entry from + the configuration of the old nameservers. + + + Step 10: Increment the serial number and wait for the change to + be visible in all nameservers for the zone. This ensures that + zone transfers are still working after the old servers are + decommissioned. + + + Note: the above procedure is designed to be transparent + to dns clients. Decommissioning the old servers too early + will result in some clients not being able to look up + answers in the zone. + + + Note: while it is possible to run the addition and removal + stages together it is not recommended. + + + + + + General Questions @@ -705,8 +800,7 @@ zone "list.dsbl.org" { requests are coming from a Windows 2000 machine, see - http://support.microsoft.com/support/kb/articles/q246/8/04.asp - + <http://support.microsoft.com/support/kb/articles/q246/8/04.asp> for information about how to turn them off. @@ -856,7 +950,7 @@ serial-query-rate 5; // default 20 usage rules and are leaking queries to the Internet. You should establish your own zones for these addresses to prevent you querying the Internet's name servers for these addresses. - Please see http://as112.net/ + Please see <http://as112.net/> for details of the problems you are causing and the counter measures that have had to be deployed. @@ -962,6 +1056,23 @@ empty: + + + + Why do queries for NSEC3 records fail to return the NSEC3 record? + + + + + NSEC3 records are strictly meta data and can only be + returned in the authority section. This is done so that + signing the zone using NSEC3 records does not bring names + into existance that do not exist in the unsigned version + of the zone. + + + + Operating-System Specific Questions @@ -1009,7 +1120,31 @@ client: UDP client handler shutting down due to fatal receive error: unexpected See: - http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2 + <http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2> + + + + + + + + Why does named lock up when it attempts to connect over IPSEC tunnels? + + + + + This is due to a kernel bug where the fact that a socket is marked + non-blocking is ignored. It is reported that setting + xfrm_larval_drop to 1 helps but this may have negative side effects. + See: +<https://bugzilla.redhat.com/show_bug.cgi?id=427629> + and +<http://lkml.org/lkml/2007/12/4/260>. + + + xfrm_larval_drop can be set to 1 by the following procedure: + +echo "1" > proc/sys/net/core/xfrm_larval_drop @@ -1064,7 +1199,13 @@ client: UDP client handler shutting down due to fatal receive error: unexpected The capability module, part of "Linux Security Modules/LSM", - has not been loaded into the kernel. See insmod(8). + has not been loaded into the kernel. See insmod(8), modprobe(8). + + + The relevant modules can be loaded by running: + +modprobe commoncap +modprobe capability @@ -1094,8 +1235,9 @@ client: UDP client handler shutting down due to fatal receive error: unexpected Red Hat have adopted the National Security Agency's - SELinux security policy ( see http://www.nsa.gov/selinux - ) and recommendations for BIND security , which are more + SELinux security policy (see <http://www.nsa.gov/selinux>) + and recommendations for BIND security , which are more secure than running named in a chroot and make use of the bind-chroot environment unnecessary . @@ -1233,6 +1375,30 @@ named_cache_t: for files modifiable by named - $ROOTDIR/var/{tmp,named/{slaves,d + + + + + Listening on individual IPv6 interfaces does not work. + + + + + This is usually due to "/proc/net/if_inet6" not being available + in the chroot file system. Mount another instance of "proc" + in the chroot file system. + + + This can be be made permanent by adding a second instance to + /etc/fstab. + + +proc /proc proc defaults 0 0 +proc /var/named/proc proc defaults 0 0 + + + + @@ -1310,8 +1476,7 @@ rand_irqs="3 14 15" See also - http://people.freebsd.org/~dougb/randomness.html - + <http://people.freebsd.org/~dougb/randomness.html>. @@ -1333,12 +1498,76 @@ rand_irqs="3 14 15" - http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris + <http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris> + + + Apple Mac OS X + + + + + How do I run BIND 9 on Apple Mac OS X? + + + + + If you run Tiger(Mac OS 10.4) or later then this is all you need to do: + + + +% sudo rndc-confgen > /etc/rndc.conf + + + Copy the key statement from /etc/rndc.conf into /etc/rndc.key, e.g.: + + + +key "rndc-key" { + algorithm hmac-md5; + secret "uvceheVuqf17ZwIcTydddw=="; +}; + + + Then start the relevant service: + + + +% sudo service org.isc.named start + + + This is persistent upon a reboot, so you will have to do it only once. + + + + + + Alternatively you can just generate /etc/rndc.key by running: + + + +% sudo rndc-confgen -a + + + Then start the relevant service: + + + +% sudo service org.isc.named start + + + Named will look for /etc/rndc.key when it starts if it + doesn't have a controls section or the existing controls are + missing keys sub-clauses. This is persistent upon a + reboot, so you will have to do it only once. + + + + diff --git a/README b/README index 20fd84a13e44..0a0bc9e86f6d 100644 --- a/README +++ b/README @@ -42,6 +42,9 @@ BIND 9 Stichting NLnet - NLnet Foundation Nominum, Inc. +BIND 9.4.3 + + BIND 9.4.3 is a maintenance release, fixing bugs in 9.4.2. BIND 9.4.2 @@ -355,7 +358,7 @@ BIND 9.2.0 This does not apply to the use of TSIG, which does not require OpenSSL. - - The source distribution now builds on Windows NT/2000. + - The source distribution now builds on Windows. See win32utils/readme1.txt and win32utils/win32-build.txt for details. @@ -404,11 +407,8 @@ BIND 9.2.0 --with-libtool does not work on AIX. - --with-libtool does not work on SunOS 4. configure - requires "printf" which is not available. - - A bug in the Windows 2000 DNS server can cause zone transfers - from a BIND 9 server to a W2K server to fail. For details, + A bug in some versions of the Microsoft DNS server can cause zone + transfers from a BIND 9 server to a W2K server to fail. For details, see the "Zone Transfers" section in doc/misc/migration. For a detailed list of user-visible changes from @@ -428,7 +428,11 @@ Building NetBSD 1.5 Slackware Linux 8.1 Solaris 8, 9, 9 (x86) - Windows NT/2000/XP/2003 + Windows XP/2003/2008 + + NOTE: As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of + Windows, including Windows NT and Windows 2000, are no longer + supported. Additionally, we have unverified reports of success building previous versions of BIND 9 from users of the following systems: @@ -482,6 +486,14 @@ Building -DNS_CLIENT_DROPPORT=0 Disable support for "rrset-order fixed". -DDNS_RDATASET_FIXED=0 + Sibling glue checking in named-checkzone is enabled by default. + To disable the default check set. -DCHECK_SIBLING=0 + named-checkzone checks out-of-zone addresses by default. + To disable this default set. -DCHECK_LOCAL=0 + Enable workaround for Solaris kernel bug about /dev/poll + -DISC_SOCKET_USE_POLLWATCH=1 + The watch timeout is also configurable, e.g., + -DISC_SOCKET_POLLWATCH_TIMEOUT=20 LDFLAGS Linker flags. Defaults to empty string. @@ -510,6 +522,10 @@ Building To build libbind (the BIND 8 resolver library), specify "--enable-libbind" on the configure command line. + On some platforms it is necessary to explictly request large + file support to handle files bigger than 2GB. This can be + done by "--enable-largefile" on the configure command line. + On some platforms, BIND 9 can be built with multithreading support, allowing it to take advantage of multiple CPUs. You can specify whether to build a multithreaded BIND 9 @@ -559,6 +575,9 @@ Building on your system, and some require Perl; see bin/tests/system/README for details. + SunOS 4 requires "printf" to be installed to make the shared + libraries. sh-utils-1.16 provides a "printf" which compiles + on SunOS 4. Documentation diff --git a/bin/check/check-tool.c b/bin/check/check-tool.c index 1f5f1cdc985b..2136a63a7588 100644 --- a/bin/check/check-tool.c +++ b/bin/check/check-tool.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: check-tool.c,v 1.10.18.18 2007/09/13 05:04:01 each Exp $ */ +/* $Id: check-tool.c,v 1.10.18.20 2008/10/24 01:43:17 tbox Exp $ */ /*! \file */ @@ -46,6 +46,14 @@ #include +#ifndef CHECK_SIBLING +#define CHECK_SIBLING 1 +#endif + +#ifndef CHECK_LOCAL +#define CHECK_LOCAL 1 +#endif + #ifdef HAVE_ADDRINFO #ifdef HAVE_GETADDRINFO #ifdef HAVE_GAISTRERROR @@ -59,20 +67,29 @@ result = (r); \ if (result != ISC_R_SUCCESS) \ goto cleanup; \ - } while (0) + } while (0) static const char *dbtype[] = { "rbt" }; int debug = 0; isc_boolean_t nomerge = ISC_TRUE; +#if CHECK_LOCAL isc_boolean_t docheckmx = ISC_TRUE; isc_boolean_t dochecksrv = ISC_TRUE; isc_boolean_t docheckns = ISC_TRUE; -unsigned int zone_options = DNS_ZONEOPT_CHECKNS | +#else +isc_boolean_t docheckmx = ISC_FALSE; +isc_boolean_t dochecksrv = ISC_FALSE; +isc_boolean_t docheckns = ISC_FALSE; +#endif +unsigned int zone_options = DNS_ZONEOPT_CHECKNS | DNS_ZONEOPT_CHECKMX | DNS_ZONEOPT_MANYERRORS | DNS_ZONEOPT_CHECKNAMES | DNS_ZONEOPT_CHECKINTEGRITY | +#if CHECK_SIBLING + DNS_ZONEOPT_CHECKSIBLING | +#endif DNS_ZONEOPT_CHECKWILDCARD | DNS_ZONEOPT_WARNMXCNAME | DNS_ZONEOPT_WARNSRVCNAME; @@ -125,7 +142,7 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner, if (dns_name_countlabels(name) > 1U) strcat(namebuf, "."); dns_name_format(owner, ownerbuf, sizeof(ownerbuf)); - + result = getaddrinfo(namebuf, NULL, &hints, &ai); dns_name_format(name, namebuf, sizeof(namebuf) - 1); switch (result) { @@ -297,7 +314,7 @@ checkmx(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) { if (dns_name_countlabels(name) > 1U) strcat(namebuf, "."); dns_name_format(owner, ownerbuf, sizeof(ownerbuf)); - + result = getaddrinfo(namebuf, NULL, &hints, &ai); dns_name_format(name, namebuf, sizeof(namebuf) - 1); switch (result) { @@ -370,7 +387,7 @@ checksrv(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) { if (dns_name_countlabels(name) > 1U) strcat(namebuf, "."); dns_name_format(owner, ownerbuf, sizeof(ownerbuf)); - + result = getaddrinfo(namebuf, NULL, &hints, &ai); dns_name_format(name, namebuf, sizeof(namebuf) - 1); switch (result) { diff --git a/bin/check/named-checkconf.c b/bin/check/named-checkconf.c index cc63153e941a..96efd794661c 100644 --- a/bin/check/named-checkconf.c +++ b/bin/check/named-checkconf.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: named-checkconf.c,v 1.28.18.14 2006/02/28 03:10:47 marka Exp $ */ +/* $Id: named-checkconf.c,v 1.28.18.16 2007/11/26 23:46:18 tbox Exp $ */ /*! \file */ @@ -224,7 +224,8 @@ configure_zone(const char *vclass, const char *view, zone_options |= DNS_ZONEOPT_CHECKINTEGRITY; else zone_options &= ~DNS_ZONEOPT_CHECKINTEGRITY; - } + } else + zone_options |= DNS_ZONEOPT_CHECKINTEGRITY; obj = NULL; if (get_maps(maps, "check-mx-cname", &obj)) { diff --git a/bin/check/named-checkzone.c b/bin/check/named-checkzone.c index 08e958eae49c..f16053bcbb11 100644 --- a/bin/check/named-checkzone.c +++ b/bin/check/named-checkzone.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: named-checkzone.c,v 1.29.18.19 2007/08/28 07:19:55 tbox Exp $ */ +/* $Id: named-checkzone.c,v 1.29.18.21 2008/10/24 01:43:17 tbox Exp $ */ /*! \file */ @@ -77,8 +77,9 @@ usage(void) { "[-f inputformat] [-F outputformat] " "[-t directory] [-w directory] [-k (ignore|warn|fail)] " "[-n (ignore|warn|fail)] [-m (ignore|warn|fail)] " - "[-i (full|local|none)] [-M (ignore|warn|fail)] " - "[-S (ignore|warn|fail)] [-W (ignore|warn)] " + "[-i (full|full-sibling|local|local-sibling|none)] " + "[-M (ignore|warn|fail)] [-S (ignore|warn|fail)] " + "[-W (ignore|warn)] " "zonename filename\n", prog_name); exit(1); } @@ -227,7 +228,7 @@ main(int argc, char **argv) { zone_options &= ~DNS_ZONEOPT_FATALNS; } else if (ARGCMP("fail")) { zone_options |= DNS_ZONEOPT_CHECKNS| - DNS_ZONEOPT_FATALNS; + DNS_ZONEOPT_FATALNS; } else { fprintf(stderr, "invalid argument to -n: %s\n", isc_commandline_argument); diff --git a/bin/dig/dig.1 b/bin/dig/dig.1 index bf532807dcbe..c9df21eaf4b0 100644 --- a/bin/dig/dig.1 +++ b/bin/dig/dig.1 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000-2003 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: dig.1,v 1.23.18.22 2007/05/16 06:11:27 marka Exp $ +.\" $Id: dig.1,v 1.23.18.24 2008/10/14 01:30:11 tbox Exp $ .\" .hy 0 .ad l @@ -33,7 +33,7 @@ dig \- DNS lookup utility .SH "SYNOPSIS" .HP 4 -\fBdig\fR [@server] [\fB\-b\ \fR\fB\fIaddress\fR\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIfilename\fR\fR] [\fB\-k\ \fR\fB\fIfilename\fR\fR] [\fB\-p\ \fR\fB\fIport#\fR\fR] [\fB\-q\ \fR\fB\fIname\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-x\ \fR\fB\fIaddr\fR\fR] [\fB\-y\ \fR\fB\fI[hmac:]\fR\fIname:key\fR\fR] [\fB\-4\fR] [\fB\-6\fR] [name] [type] [class] [queryopt...] +\fBdig\fR [@server] [\fB\-b\ \fR\fB\fIaddress\fR\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIfilename\fR\fR] [\fB\-k\ \fR\fB\fIfilename\fR\fR] [\fB\-m\fR] [\fB\-p\ \fR\fB\fIport#\fR\fR] [\fB\-q\ \fR\fB\fIname\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-x\ \fR\fB\fIaddr\fR\fR] [\fB\-y\ \fR\fB\fI[hmac:]\fR\fIname:key\fR\fR] [\fB\-4\fR] [\fB\-6\fR] [name] [type] [class] [queryopt...] .HP 4 \fBdig\fR [\fB\-h\fR] .HP 4 @@ -59,7 +59,9 @@ Unless it is told to query a specific name server, will try each of the servers listed in \fI/etc/resolv.conf\fR. .PP -When no command line arguments or options are given, will perform an NS query for "." (the root). +When no command line arguments or options are given, +\fBdig\fR +will perform an NS query for "." (the root). .PP It is possible to set per\-user defaults for \fBdig\fR @@ -70,9 +72,9 @@ The IN and CH class names overlap with the IN and CH top level domains names. Ei \fB\-t\fR and \fB\-c\fR -options to specify the type and class or use the +options to specify the type and class, use the \fB\-q\fR -the specify the domain name or use "IN." and "CH." when looking up these top level domains. +the specify the domain name, or use "IN." and "CH." when looking up these top level domains. .SH "SIMPLE USAGE" .PP A typical invocation of @@ -139,6 +141,10 @@ operate in batch mode by reading a list of lookup requests to process from the f \fBdig\fR using the command\-line interface. .PP +The +\fB\-m\fR +option enables memory usage debugging. +.PP If a non\-standard port number is to be queried, the \fB\-p\fR option is used. @@ -551,7 +557,7 @@ RFC1035. .PP There are probably too many query options. .SH "COPYRIGHT" -Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000\-2003 Internet Software Consortium. .br diff --git a/bin/dig/dig.c b/bin/dig/dig.c index ba5d87b24e98..5cde9c430e60 100644 --- a/bin/dig/dig.c +++ b/bin/dig/dig.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dig.c,v 1.186.18.29 2007/08/28 07:19:55 tbox Exp $ */ +/* $Id: dig.c,v 1.186.18.33 2008/10/15 02:19:18 marka Exp $ */ /*! \file */ @@ -50,7 +50,7 @@ #define ADD_STRING(b, s) { \ if (strlen(s) >= isc_buffer_availablelength(b)) \ - return (ISC_R_NOSPACE); \ + return (ISC_R_NOSPACE); \ else \ isc_buffer_putstr(b, s); \ } @@ -71,7 +71,7 @@ static isc_boolean_t short_form = ISC_FALSE, printcmd = ISC_TRUE, multiline = ISC_FALSE, nottl = ISC_FALSE, noclass = ISC_FALSE; /*% opcode text */ -static const char *opcodetext[] = { +static const char * const opcodetext[] = { "QUERY", "IQUERY", "STATUS", @@ -91,7 +91,7 @@ static const char *opcodetext[] = { }; /*% return code text */ -static const char *rcodetext[] = { +static const char * const rcodetext[] = { "NOERROR", "FORMERR", "SERVFAIL", @@ -144,8 +144,8 @@ help(void) { " q-type is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]\n" " (Use ixfr=version for type ixfr)\n" " q-opt is one of:\n" -" -x dot-notation (shortcut for in-addr lookups)\n" -" -i (IP6.INT reverse IPv6 lookups)\n" +" -x dot-notation (shortcut for reverse lookups)\n" +" -i (use IP6.INT for IPv6 reverse lookups)\n" " -f filename (batch mode)\n" " -b address[#port] (bind to source address/port)\n" " -p port (specify port number)\n" @@ -156,6 +156,7 @@ help(void) { " -y [hmac:]name:key (specify named base64 tsig key)\n" " -4 (use IPv4 query transport only)\n" " -6 (use IPv6 query transport only)\n" +" -m (enable memory usage debugging)\n" " d-opt is of the form +keyword[=value], where keyword is:\n" " +[no]vc (TCP mode)\n" " +[no]tcp (TCP mode, alternate syntax)\n" @@ -383,7 +384,7 @@ printrdataset(dns_name_t *owner_name, dns_rdataset_t *rdataset, else if (nottl || noclass) result = dns_master_stylecreate(&style, styleflags, 24, 24, 32, 40, 80, 8, mctx); - else + else result = dns_master_stylecreate(&style, styleflags, 24, 32, 40, 48, 80, 8, mctx); check_result(result, "dns_master_stylecreate"); @@ -392,7 +393,7 @@ printrdataset(dns_name_t *owner_name, dns_rdataset_t *rdataset, if (style != NULL) dns_master_styledestroy(&style, mctx); - + return(result); } #endif @@ -429,7 +430,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) { else if (nottl || noclass) result = dns_master_stylecreate(&style, styleflags, 24, 24, 32, 40, 80, 8, mctx); - else + else result = dns_master_stylecreate(&style, styleflags, 24, 32, 40, 48, 80, 8, mctx); check_result(result, "dns_master_stylecreate"); @@ -638,7 +639,7 @@ printgreeting(int argc, char **argv, dig_lookup_t *lookup) { strncat(lookup->cmdline, append, remaining); } if (first) { - snprintf(append, sizeof(append), + snprintf(append, sizeof(append), ";; global options: %s %s\n", short_form ? "short_form" : "", printcmd ? "printcmd" : ""); @@ -716,7 +717,7 @@ plus_option(char *option, isc_boolean_t is_batchfile, FULLCHECK2("aaonly", "aaflag"); lookup->aaonly = state; break; - case 'd': + case 'd': switch (cmd[2]) { case 'd': /* additional */ FULLCHECK("additional"); @@ -801,13 +802,13 @@ plus_option(char *option, isc_boolean_t is_batchfile, FULLCHECK("defname"); usesearch = state; break; - case 'n': /* dnssec */ + case 'n': /* dnssec */ FULLCHECK("dnssec"); if (state && lookup->edns == -1) lookup->edns = 0; lookup->dnssec = state; break; - case 'o': /* domain */ + case 'o': /* domain */ FULLCHECK("domain"); if (value == NULL) goto need_value; @@ -881,7 +882,7 @@ plus_option(char *option, isc_boolean_t is_batchfile, goto invalid_option; } break; - case 'q': + case 'q': switch (cmd[1]) { case 'r': /* qr */ FULLCHECK("qr"); @@ -957,11 +958,11 @@ plus_option(char *option, isc_boolean_t is_batchfile, break; #ifdef DIG_SIGCHASE case 'i': /* sigchase */ - FULLCHECK("sigchase"); + FULLCHECK("sigchase"); lookup->sigchase = state; if (lookup->sigchase) lookup->dnssec = ISC_TRUE; - break; + break; #endif case 't': /* stats */ FULLCHECK("stats"); @@ -989,7 +990,7 @@ plus_option(char *option, isc_boolean_t is_batchfile, timeout = 1; break; #if DIG_SIGCHASE_TD - case 'o': /* topdown */ + case 'o': /* topdown */ FULLCHECK("topdown"); lookup->do_topdown = state; break; @@ -1024,7 +1025,7 @@ plus_option(char *option, isc_boolean_t is_batchfile, #ifdef DIG_SIGCHASE case 'u': /* trusted-key */ FULLCHECK("trusted-key"); - if (value == NULL) + if (value == NULL) goto need_value; if (!state) goto invalid_option; @@ -1158,7 +1159,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup, hash = strchr(value, '#'); if (hash != NULL) { srcport = (in_port_t) - parse_uint(hash + 1, + parse_uint(hash + 1, "port number", MAXPORT); *hash = '\0'; } else @@ -1211,7 +1212,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup, (*lookup) = clone_lookup(default_lookup, ISC_TRUE); *need_clone = ISC_TRUE; - strncpy((*lookup)->textname, value, + strncpy((*lookup)->textname, value, sizeof((*lookup)->textname)); (*lookup)->textname[sizeof((*lookup)->textname)-1]=0; (*lookup)->trace_root = ISC_TF((*lookup)->trace || @@ -1250,7 +1251,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup, (*lookup)->rdtypeset = ISC_TRUE; (*lookup)->ixfr_serial = parse_uint(&value[5], "serial number", - MAXSERIAL); + MAXSERIAL); (*lookup)->section_question = plusquest; (*lookup)->comments = pluscomm; } else { @@ -1276,7 +1277,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup, if (ptr2 == NULL) usage(); ptr3 = next_token(&value,":"); /* secret or NULL */ - if (ptr3 != NULL) { + if (ptr3 != NULL) { if (strcasecmp(ptr, "hmac-md5") == 0) { hmacname = DNS_TSIG_HMACMD5_NAME; digestbits = 0; @@ -1425,7 +1426,7 @@ getaddresses(dig_lookup_t *lookup, const char *host) { char tmp[ISC_NETADDR_FORMATSIZE]; result = bind9_getaddresses(host, 0, sockaddrs, - DIG_MAX_ADDRESSES, &count); + DIG_MAX_ADDRESSES, &count); if (result != ISC_R_SUCCESS) fatal("couldn't get address for '%s': %s", host, isc_result_totext(result)); @@ -1487,7 +1488,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only, if (homedir != NULL) { unsigned int n; n = snprintf(rcfile, sizeof(rcfile), "%s/.digrc", - homedir); + homedir); if (n < sizeof(rcfile)) batchfp = fopen(rcfile, "r"); } @@ -1567,7 +1568,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only, tr.base = rv[0]; tr.length = strlen(rv[0]); result = dns_rdatatype_fromtext(&rdtype, - (isc_textregion_t *)&tr); + (isc_textregion_t *)&tr); if (result == ISC_R_SUCCESS && rdtype == dns_rdatatype_ixfr) { result = DNS_R_UNKNOWN; @@ -1588,8 +1589,8 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only, lookup->rdtypeset = ISC_TRUE; lookup->ixfr_serial = parse_uint(&rv[0][5], - "serial number", - MAXSERIAL); + "serial number", + MAXSERIAL); lookup->section_question = plusquest; lookup->comments = pluscomm; @@ -1624,7 +1625,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only, lookup = clone_lookup(default_lookup, ISC_TRUE); need_clone = ISC_TRUE; - strncpy(lookup->textname, rv[0], + strncpy(lookup->textname, rv[0], sizeof(lookup->textname)); lookup->textname[sizeof(lookup->textname)-1]=0; lookup->trace_root = ISC_TF(lookup->trace || diff --git a/bin/dig/dig.docbook b/bin/dig/dig.docbook index 6a28b8851a07..92be18050cf0 100644 --- a/bin/dig/dig.docbook +++ b/bin/dig/dig.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + @@ -42,6 +42,7 @@ 2005 2006 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -61,6 +62,7 @@ + @@ -118,8 +120,8 @@ - When no command line arguments or options are given, will perform an - NS query for "." (the root). + When no command line arguments or options are given, + dig will perform an NS query for "." (the root). @@ -132,8 +134,8 @@ The IN and CH class names overlap with the IN and CH top level domains names. Either use the and - options to specify the type and class or - use the the specify the domain name or + options to specify the type and class, + use the the specify the domain name, or use "IN." and "CH." when looking up these top level domains. @@ -230,6 +232,12 @@ dig using the command-line interface. + + The option enables memory usage debugging. + + + If a non-standard port number is to be queried, the option is used. port# is diff --git a/bin/dig/dig.html b/bin/dig/dig.html index afdaa4f92e97..a8c459447f12 100644 --- a/bin/dig/dig.html +++ b/bin/dig/dig.html @@ -1,5 +1,5 @@ - + @@ -29,12 +29,12 @@

Synopsis

-

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]

+

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]

dig [-h]

dig [global-queryopt...] [query...]

-

DESCRIPTION

+

DESCRIPTION

dig (domain information groper) is a flexible tool for interrogating DNS name servers. It performs DNS lookups and @@ -62,8 +62,8 @@ /etc/resolv.conf.

- When no command line arguments or options are given, will perform an - NS query for "." (the root). + When no command line arguments or options are given, + dig will perform an NS query for "." (the root).

It is possible to set per-user defaults for dig via @@ -74,13 +74,13 @@

The IN and CH class names overlap with the IN and CH top level domains names. Either use the -t and - -c options to specify the type and class or - use the -q the specify the domain name or + -c options to specify the type and class, + use the -q the specify the domain name, or use "IN." and "CH." when looking up these top level domains.

-

SIMPLE USAGE

+

SIMPLE USAGE

A typical invocation of dig looks like:

@@ -126,7 +126,7 @@

-

OPTIONS

+

OPTIONS

The -b option sets the source IP address of the query to address. This must be a valid @@ -151,6 +151,10 @@ the same way they would be presented as queries to dig using the command-line interface.

+

+ The -m option enables memory usage debugging. + +

If a non-standard port number is to be queried, the -p option is used. port# is @@ -226,7 +230,7 @@

-

QUERY OPTIONS

+

QUERY OPTIONS

dig provides a number of query options which affect the way in which lookups are made and the results displayed. Some of @@ -545,7 +549,7 @@

-

MULTIPLE QUERIES

+

MULTIPLE QUERIES

The BIND 9 implementation of dig supports @@ -591,7 +595,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr

-

IDN SUPPORT

+

IDN SUPPORT

If dig has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. @@ -605,14 +609,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr

-

FILES

+

FILES

/etc/resolv.conf

${HOME}/.digrc

-

SEE ALSO

+

SEE ALSO

host(1), named(8), dnssec-keygen(8), @@ -620,7 +624,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr

-

BUGS

+

BUGS

There are probably too many query options.

diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 9e7e79659a69..8736c0cc75c5 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dighost.c,v 1.259.18.43.10.3 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: dighost.c,v 1.259.18.49 2008/07/23 23:33:02 marka Exp $ */ /*! \file * \note @@ -277,7 +277,7 @@ dns_name_t chase_name; /* the query name */ /* * the current name is the parent name when we follow delegation */ -dns_name_t chase_current_name; +dns_name_t chase_current_name; /* * the child name is used for delegation (NS DS responses in AUTHORITY section) */ @@ -493,6 +493,7 @@ void fatal(const char *format, ...) { va_list args; + fflush(stdout); fprintf(stderr, "%s: ", progname); va_start(args, format); vfprintf(stderr, format, args); @@ -510,6 +511,7 @@ debug(const char *format, ...) { va_list args; if (debugging) { + fflush(stdout); va_start(args, format); vfprintf(stderr, format, args); va_end(args); @@ -616,13 +618,13 @@ set_nameserver(char *opt) { return; result = bind9_getaddresses(opt, 0, sockaddrs, - DIG_MAX_ADDRESSES, &count); + DIG_MAX_ADDRESSES, &count); if (result != ISC_R_SUCCESS) fatal("couldn't get address for '%s': %s", opt, isc_result_totext(result)); flush_server_list(); - + for (i = 0; i < count; i++) { isc_netaddr_fromsockaddr(&netaddr, &sockaddrs[i]); isc_netaddr_format(&netaddr, tmp, sizeof(tmp)); @@ -891,7 +893,7 @@ setup_text_key(void) { result = isc_base64_decodestring(keysecret, &secretbuf); if (result != ISC_R_SUCCESS) goto failure; - + secretsize = isc_buffer_usedlength(&secretbuf); result = dns_name_fromtext(&keyname, namebuf, @@ -1025,7 +1027,7 @@ setup_system(void) { domain = NULL; } } - + if (ndots == -1) { ndots = lwconf->ndots; debug("ndots is %d.", ndots); @@ -1088,7 +1090,7 @@ clear_searchlist(void) { void set_search_domain(char *domain) { dig_searchlist_t *search; - + clear_searchlist(); search = make_searchlist_entry(domain); ISC_LIST_APPEND(search_list, search, link); @@ -1409,7 +1411,7 @@ start_lookup(void) { current_lookup->qrdtype_sigchase = current_lookup->qrdtype; current_lookup->qrdtype = dns_rdatatype_ns; - + current_lookup->rdclass_sigchase = current_lookup->rdclass; current_lookup->rdclass_sigchaseset @@ -1490,7 +1492,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section) INSIST(!free_now); debug("following up %s", query->lookup->textname); - + for (result = dns_message_firstname(msg, section); result == ISC_R_SUCCESS; result = dns_message_nextname(msg, section)) { @@ -1545,7 +1547,8 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section) dns_rdataset_current(rdataset, &rdata); query->lookup->nsfound++; - (void)dns_rdata_tostruct(&rdata, &ns, NULL); + result = dns_rdata_tostruct(&rdata, &ns, NULL); + check_result(result, "dns_rdata_tostruct"); dns_name_format(&ns.name, namestr, sizeof(namestr)); dns_rdata_freestruct(&ns); @@ -1845,7 +1848,7 @@ setup_lookup(dig_lookup_t *lookup) { &lookup->name); dns_message_puttempname(lookup->sendmsg, &lookup->oname); - fatal("'%s' is not in legal name syntax (%s)", + fatal("Origin '%s' is not in legal name syntax (%s)", lookup->origin->origin, isc_result_totext(result)); } @@ -2089,7 +2092,7 @@ send_done(isc_task_t *_task, isc_event_t *event) { for (b = ISC_LIST_HEAD(sevent->bufferlist); b != NULL; - b = ISC_LIST_HEAD(sevent->bufferlist)) + b = ISC_LIST_HEAD(sevent->bufferlist)) ISC_LIST_DEQUEUE(sevent->bufferlist, b, link); query = event->ev_arg; @@ -2169,7 +2172,7 @@ bringup_timer(dig_query_t *query, unsigned int default_timeout) { &l->interval, global_task, connect_timeout, l, &l->timer); check_result(result, "isc_timer_create"); -} +} static void connect_done(isc_task_t *task, isc_event_t *event); @@ -2191,7 +2194,7 @@ send_tcp_connect(dig_query_t *query) { query->waiting_connect = ISC_TRUE; query->lookup->current_query = query; get_address(query->servname, port, &query->sockaddr); - + if (specified_source && (isc_sockaddr_pf(&query->sockaddr) != isc_sockaddr_pf(&bind_address))) { @@ -2663,7 +2666,8 @@ check_for_more_data(dig_query_t *query, dns_message_t *msg, goto next_rdata; /* Now we have an SOA. Work with it. */ debug("got an SOA"); - (void)dns_rdata_tostruct(&rdata, &soa, NULL); + result = dns_rdata_tostruct(&rdata, &soa, NULL); + check_result(result, "dns_rdata_tostruct"); serial = soa.serial; dns_rdata_freestruct(&soa); if (!query->first_soa_rcvd) { @@ -2826,13 +2830,13 @@ recv_done(isc_task_t *task, isc_event_t *event) { char buf2[ISC_SOCKADDR_FORMATSIZE]; isc_sockaddr_t any; - if (isc_sockaddr_pf(&query->sockaddr) == AF_INET) + if (isc_sockaddr_pf(&query->sockaddr) == AF_INET) isc_sockaddr_any(&any); else isc_sockaddr_any6(&any); /* - * We don't expect a match when the packet is + * We don't expect a match when the packet is * sent to 0.0.0.0, :: or to a multicast addresses. * XXXMPA broadcast needs to be handled here as well. */ @@ -2850,7 +2854,7 @@ recv_done(isc_task_t *task, isc_event_t *event) { } } - result = dns_message_peekheader(b, &id, &msgflags); + result = dns_message_peekheader(b, &id, &msgflags); if (result != ISC_R_SUCCESS || l->sendmsg->id != id) { match = ISC_FALSE; if (l->tcp_mode) { @@ -2955,7 +2959,7 @@ recv_done(isc_task_t *task, isc_event_t *event) { return; } if ((msg->flags & DNS_MESSAGEFLAG_TC) != 0 && - !l->ignore && !l->tcp_mode) { + !l->ignore && !l->tcp_mode) { printf(";; Truncated, retrying in TCP mode.\n"); n = requeue_lookup(l, ISC_TRUE); n->tcp_mode = ISC_TRUE; @@ -2967,7 +2971,7 @@ recv_done(isc_task_t *task, isc_event_t *event) { check_next_lookup(l); UNLOCK_LOOKUP; return; - } + } if ((msg->rcode == dns_rcode_servfail && !l->servfail_stops) || (check_ra && (msg->flags & DNS_MESSAGEFLAG_RA) == 0 && l->recurse)) { @@ -3093,7 +3097,7 @@ recv_done(isc_task_t *task, isc_event_t *event) { if (l->trace_root) { /* - * This is the initial NS query. + * This is the initial NS query. */ int n; @@ -3108,7 +3112,7 @@ recv_done(isc_task_t *task, isc_event_t *event) { if (!do_sigchase) #endif printmessage(query, msg, ISC_TRUE); - } + } #ifdef DIG_SIGCHASE if (do_sigchase) { chase_msg = isc_mem_allocate(mctx, @@ -3127,13 +3131,13 @@ recv_done(isc_task_t *task, isc_event_t *event) { isc_buffer_usedregion(b, &r); result = isc_buffer_allocate(mctx, &buf, r.length); - + check_result(result, "isc_buffer_allocate"); result = isc_buffer_copyregion(buf, &r); check_result(result, "isc_buffer_copyregion"); - + result = dns_message_parse(msg_temp, buf, 0); - + isc_buffer_free(&buf); chase_msg->msg = msg_temp; @@ -3149,9 +3153,9 @@ recv_done(isc_task_t *task, isc_event_t *event) { } #endif } - + #ifdef DIG_SIGCHASE - if (l->sigchase && ISC_LIST_EMPTY(lookup_list)) { + if (l->sigchase && ISC_LIST_EMPTY(lookup_list)) { sigchase(msg_temp); } #endif @@ -3308,7 +3312,7 @@ cancel_all(void) { */ void destroy_libs(void) { -#ifdef DIG_SIGCHASE +#ifdef DIG_SIGCHASE void * ptr; dig_message_t *chase_msg; #endif @@ -3348,8 +3352,8 @@ destroy_libs(void) { clear_searchlist(); #ifdef WITH_IDN - result = dns_name_settotextfilter(NULL); - check_result(result, "dns_name_settotextfilter"); + result = dns_name_settotextfilter(NULL); + check_result(result, "dns_name_settotextfilter"); #endif dns_name_destroy(); @@ -3421,7 +3425,7 @@ destroy_libs(void) { #endif debug("Destroy memory"); - + #endif if (memdebugging != 0) isc_mem_stats(mctx, stderr); @@ -3518,7 +3522,7 @@ append_textname(char *name, const char *origin, size_t namesize) { (void)strcpy(name + namelen, origin); return idn_success; } - + static void idn_check_result(idn_result_t r, const char *msg) { if (r != idn_success) { @@ -3554,14 +3558,14 @@ void dump_database_section(dns_message_t *msg, int section) { dns_name_t *msg_name=NULL; - + dns_rdataset_t *rdataset; do { dns_message_currentname(msg, section, &msg_name); - + for (rdataset = ISC_LIST_HEAD(msg_name->list); rdataset != NULL; - rdataset = ISC_LIST_NEXT(rdataset, link)) { + rdataset = ISC_LIST_NEXT(rdataset, link)) { dns_name_print(msg_name, stdout); printf("\n"); print_rdataset(msg_name, rdataset, mctx); @@ -3578,15 +3582,15 @@ dump_database(void) { for (msg = ISC_LIST_HEAD(chase_message_list); msg != NULL; msg = ISC_LIST_NEXT(msg, link)) { if (dns_message_firstname(msg->msg, DNS_SECTION_ANSWER) - == ISC_R_SUCCESS) + == ISC_R_SUCCESS) dump_database_section(msg->msg, DNS_SECTION_ANSWER); - + if (dns_message_firstname(msg->msg, DNS_SECTION_AUTHORITY) - == ISC_R_SUCCESS) + == ISC_R_SUCCESS) dump_database_section(msg->msg, DNS_SECTION_AUTHORITY); - + if (dns_message_firstname(msg->msg, DNS_SECTION_ADDITIONAL) - == ISC_R_SUCCESS) + == ISC_R_SUCCESS) dump_database_section(msg->msg, DNS_SECTION_ADDITIONAL); } } @@ -3616,7 +3620,7 @@ search_type(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers) { if ((siginfo.covered == covers) || (covers == dns_rdatatype_any)) { dns_rdata_reset(&sigrdata); - dns_rdata_freestruct(&siginfo); + dns_rdata_freestruct(&siginfo); return (rdataset); } dns_rdata_reset(&sigrdata); @@ -3654,7 +3658,7 @@ chase_scanname(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers) { dns_rdataset_t *rdataset = NULL; dig_message_t * msg; - + for (msg = ISC_LIST_HEAD(chase_message_list2); msg != NULL; msg = ISC_LIST_NEXT(msg, link)) { if (dns_message_firstname(msg->msg, DNS_SECTION_ANSWER) @@ -3747,7 +3751,7 @@ insert_trustedkey(dst_key_t * key) return; tk_list.key[tk_list.nb_tk++] = key; - return; + return; } void @@ -3770,7 +3774,7 @@ char alphnum[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; isc_result_t -removetmpkey(isc_mem_t *mctx, const char *file) +removetmpkey(isc_mem_t *mctx, const char *file) { char *tempnamekey = NULL; int tempnamekeylen; @@ -3783,7 +3787,7 @@ removetmpkey(isc_mem_t *mctx, const char *file) return (ISC_R_NOMEMORY); memset(tempnamekey, 0, tempnamekeylen); - + strcat(tempnamekey, file); strcat(tempnamekey,".key"); isc_file_remove(tempnamekey); @@ -3823,24 +3827,24 @@ opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) { isc_mem_free(mctx, tempname); return (ISC_R_FAILURE); } - + x = cp--; while (cp >= tempname && *cp == 'X') { isc_random_get(&which); *cp = alphnum[which % (sizeof(alphnum) - 1)]; x = cp--; } - + tempnamekeylen = tempnamelen+5; tempnamekey = isc_mem_allocate(mctx, tempnamekeylen); if (tempnamekey == NULL) return (ISC_R_NOMEMORY); - + memset(tempnamekey, 0, tempnamekeylen); strncpy(tempnamekey, tempname, tempnamelen); strcat(tempnamekey ,".key"); - + if (isc_file_exists(tempnamekey)) { isc_mem_free(mctx, tempnamekey); isc_mem_free(mctx, tempname); @@ -3861,7 +3865,7 @@ opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) { cleanup: isc_mem_free(mctx, tempname); - + return (result); } @@ -3875,7 +3879,7 @@ get_trusted_key(isc_mem_t *mctx) char buf[1500]; FILE *fp, *fptemp; dst_key_t *key = NULL; - + result = isc_file_exists(trustedkey); if (result != ISC_TRUE) { result = isc_file_exists("/etc/trusted-key.key"); @@ -3953,11 +3957,11 @@ nameFromString(const char *str, dns_name_t *p_ret) { result = dns_name_dup(dns_fixedname_name(&fixedname), mctx, p_ret); check_result(result, "nameFromString"); -} +} #if DIG_SIGCHASE_TD -isc_result_t +isc_result_t prepare_lookup(dns_name_t *name) { isc_result_t result; @@ -3975,7 +3979,7 @@ prepare_lookup(dns_name_t *name) lookup->rdtype = lookup->rdtype_sigchase; lookup->rdtypeset = ISC_TRUE; lookup->qrdtype = lookup->qrdtype_sigchase; - + s = ISC_LIST_HEAD(lookup->my_server_list); while (s != NULL) { debug("freeing server %p belonging to %p", @@ -4008,12 +4012,11 @@ prepare_lookup(dns_name_t *name) dns_rdataset_current(chase_nsrdataset, &rdata); - (void)dns_rdata_tostruct(&rdata, &ns, NULL); - - - + result = dns_rdata_tostruct(&rdata, &ns, NULL); + check_result(result, "dns_rdata_tostruct"); + #ifdef __FOLLOW_GLUE__ - + result = advanced_rrsearch(&rdataset, &ns.name, dns_rdatatype_aaaa, dns_rdatatype_any, &true); @@ -4037,12 +4040,12 @@ prepare_lookup(dns_name_t *name) srv = make_server(namestr, namestr); - + ISC_LIST_APPEND(lookup->my_server_list, srv, link); } } - + rdataset = NULL; result = advanced_rrsearch(&rdataset, &ns.name, dns_rdatatype_a, dns_rdatatype_any, &true); @@ -4064,28 +4067,28 @@ prepare_lookup(dns_name_t *name) isc_buffer_free(&b); dns_rdata_reset(&a); printf("ns name: %s\n", namestr); - + srv = make_server(namestr, namestr); - + ISC_LIST_APPEND(lookup->my_server_list, srv, link); } } #else - + dns_name_format(&ns.name, namestr, sizeof(namestr)); printf("ns name: "); dns_name_print(&ns.name, stdout); printf("\n"); srv = make_server(namestr, namestr); - + ISC_LIST_APPEND(lookup->my_server_list, srv, link); -#endif +#endif dns_rdata_freestruct(&ns); dns_rdata_reset(&rdata); - + } ISC_LIST_APPEND(lookup_list, lookup, link); @@ -4139,10 +4142,10 @@ grandfather_pb_test(dns_name_t *zone_name, dns_rdataset_t *sigrdataset) do { dns_rdataset_current(sigrdataset, &sigrdata); - + result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL); check_result(result, "sigrdata tostruct siginfo"); - + if (dns_name_compare(&siginfo.signer, zone_name) == 0) { dns_rdata_freestruct(&siginfo); dns_rdata_reset(&sigrdata); @@ -4150,7 +4153,7 @@ grandfather_pb_test(dns_name_t *zone_name, dns_rdataset_t *sigrdataset) } dns_rdata_freestruct(&siginfo); - + } while (dns_rdataset_next(chase_sigkeyrdataset) == ISC_R_SUCCESS); dns_rdata_reset(&sigrdata); @@ -4180,7 +4183,7 @@ initialization(dns_name_t *name) return (ISC_R_SUCCESS); } -#endif +#endif void print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx) @@ -4204,10 +4207,10 @@ print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx) } -void +void dup_name(dns_name_t *source, dns_name_t *target, isc_mem_t *mctx) { - isc_result_t result; - + isc_result_t result; + if (dns_name_dynamic(target)) free_name(target, mctx); result = dns_name_dup(source, mctx, target); @@ -4226,7 +4229,7 @@ free_name(dns_name_t *name, isc_mem_t *mctx) { * return ISC_R_SUCCESS if the DNSKEY RRset contains a trusted_key * and the RRset is valid * return ISC_R_NOTFOUND if not contains trusted key - or if the RRset isn't valid + or if the RRset isn't valid * return ISC_R_FAILURE if problem * */ @@ -4251,17 +4254,17 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, do { dns_rdataset_current(rdataset, &rdata); INSIST(rdata.type == dns_rdatatype_dnskey); - + result = dns_dnssec_keyfromrdata(name, &rdata, mctx, &dnsseckey); check_result(result, "dns_dnssec_keyfromrdata"); - + for (i = 0; i < tk_list.nb_tk; i++) { if (dst_key_compare(tk_list.key[i], dnsseckey) == ISC_TRUE) { dns_rdata_reset(&rdata); - + printf(";; Ok, find a Trusted Key in the " "DNSKEY RRset: %d\n", dst_key_id(dnsseckey)); @@ -4276,7 +4279,7 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, } } } - + dns_rdata_reset(&rdata); if (dnsseckey != NULL) dst_key_free(&dnsseckey); @@ -4306,7 +4309,7 @@ sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, do { dns_rdataset_current(keyrdataset, &keyrdata); INSIST(keyrdata.type == dns_rdatatype_dnskey); - + result = dns_dnssec_keyfromrdata(name, &keyrdata, mctx, &dnsseckey); check_result(result, "dns_dnssec_keyfromrdata"); @@ -4338,22 +4341,22 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, result = dns_rdataset_first(sigrdataset); check_result(result, "empty RRSIG dataset"); dns_rdata_init(&sigrdata); - + do { dns_rdataset_current(sigrdataset, &sigrdata); result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL); check_result(result, "sigrdata tostruct siginfo"); - + /* * Test if the id of the DNSKEY is * the id of the DNSKEY signer's */ if (siginfo.keyid == dst_key_id(dnsseckey)) { - + result = dns_rdataset_first(rdataset); check_result(result, "empty DS dataset"); - + result = dns_dnssec_verify(name, rdataset, dnsseckey, ISC_FALSE, mctx, &sigrdata); @@ -4370,7 +4373,7 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, } } dns_rdata_freestruct(&siginfo); - + } while (dns_rdataset_next(chase_sigkeyrdataset) == ISC_R_SUCCESS); dns_rdata_reset(&sigrdata); @@ -4396,18 +4399,18 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, dns_rdata_init(&dsrdata); do { dns_rdataset_current(dsrdataset, &dsrdata); - + result = dns_rdata_tostruct(&dsrdata, &dsinfo, NULL); check_result(result, "dns_rdata_tostruct for DS"); - + result = dns_rdataset_first(keyrdataset); check_result(result, "empty KEY dataset"); - dns_rdata_init(&keyrdata); + dns_rdata_init(&keyrdata); do { dns_rdataset_current(keyrdataset, &keyrdata); INSIST(keyrdata.type == dns_rdatatype_dnskey); - + result = dns_dnssec_keyfromrdata(name, &keyrdata, mctx, &dnsseckey); check_result(result, "dns_dnssec_keyfromrdata"); @@ -4422,20 +4425,20 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, result = dns_ds_buildrdata(name, &keyrdata, dsinfo.digest_type, dsbuf, &newdsrdata); - dns_rdata_freestruct(&dsinfo); + dns_rdata_freestruct(&dsinfo); if (result != ISC_R_SUCCESS) { dns_rdata_reset(&keyrdata); dns_rdata_reset(&newdsrdata); dns_rdata_reset(&dsrdata); dst_key_free(&dnsseckey); - dns_rdata_freestruct(&dsinfo); + dns_rdata_freestruct(&dsinfo); printf("Oops: impossible to build" " new DS rdata\n"); return (result); } - - + + if (dns_rdata_compare(&dsrdata, &newdsrdata) == 0) { printf(";; OK a DS valids a DNSKEY" @@ -4443,7 +4446,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, printf(";; Now verify that this" " DNSKEY validates the " "DNSKEY RRset\n"); - + result = sigchase_verify_sig_key(name, keyrdataset, dnsseckey, @@ -4454,7 +4457,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, dns_rdata_reset(&newdsrdata); dns_rdata_reset(&dsrdata); dst_key_free(&dnsseckey); - + return (result); } } else { @@ -4468,12 +4471,12 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, dnsseckey = NULL; } while (dns_rdataset_next(chase_keyrdataset) == ISC_R_SUCCESS); dns_rdata_reset(&keyrdata); - + } while (dns_rdataset_next(chase_dsrdataset) == ISC_R_SUCCESS); #if 0 dns_rdata_reset(&dsrdata); WARNING #endif - + return (ISC_R_NOTFOUND); } @@ -4486,13 +4489,13 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, * ISC_R_SUCCESS: if we found the rrset * ISC_R_NOTFOUND: we do not found the rrset in cache * and we do a query on the net - * ISC_R_FAILURE: rrset not found + * ISC_R_FAILURE: rrset not found */ isc_result_t advanced_rrsearch(dns_rdataset_t **rdataset, dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers, isc_boolean_t *lookedup) -{ +{ isc_boolean_t tmplookedup; INSIST(rdataset != NULL); @@ -4567,7 +4570,7 @@ sigchase_td(dns_message_t *msg) } } - + if (have_answer) { chase_rdataset = chase_scanname_section(msg, &chase_name, @@ -4627,7 +4630,7 @@ sigchase_td(dns_message_t *msg) chase_dsrdataset, mctx); } - + if (result != ISC_R_SUCCESS) { printf("\n;; chain of trust can't be validated:" " FAILED\n\n"); @@ -4679,7 +4682,7 @@ sigchase_td(dns_message_t *msg) chase_sigrdataset = NULL; have_response = ISC_FALSE; have_delegation_ns = ISC_FALSE; - + dns_name_init(&tmp_name, NULL); result = child_of_zone(&chase_name, &chase_current_name, &tmp_name); @@ -4758,10 +4761,10 @@ sigchase_td(dns_message_t *msg) } chase_keyrdataset = NULL; chase_sigkeyrdataset = NULL; - - + + prepare_lookup(&chase_authority_name); - + have_response = ISC_FALSE; have_delegation_ns = ISC_FALSE; delegation_follow = ISC_TRUE; @@ -4855,7 +4858,7 @@ sigchase_td(dns_message_t *msg) } } -#endif +#endif #if DIG_SIGCHASE_BU @@ -4872,7 +4875,7 @@ getneededrr(dns_message_t *msg) if ((result = dns_message_firstname(msg, DNS_SECTION_ANSWER)) != ISC_R_SUCCESS) { printf(";; NO ANSWERS: %s\n", isc_result_totext(result)); - + if (chase_name.ndata == NULL) return (ISC_R_ADDRNOTAVAIL); } else { @@ -4915,7 +4918,7 @@ getneededrr(dns_message_t *msg) } INSIST(chase_sigrdataset != NULL); - + /* first find the DNSKEY name */ result = dns_rdataset_first(chase_sigrdataset); check_result(result, "empty RRSIG dataset"); @@ -4926,7 +4929,7 @@ getneededrr(dns_message_t *msg) dup_name(&siginfo.signer, &chase_signame, mctx); dns_rdata_freestruct(&siginfo); dns_rdata_reset(&sigrdata); - + /* Do we have a key? */ if (chase_keyrdataset == NULL) { result = advanced_rrsearch(&chase_keyrdataset, @@ -4995,7 +4998,7 @@ getneededrr(dns_message_t *msg) print_rdataset(&chase_signame, chase_dsrdataset, mctx); } } - + if (chase_dsrdataset != NULL) { /* * if there is no RRSIG of DS, @@ -5054,7 +5057,7 @@ sigchase_bu(dns_message_t *msg) dns_name_init(&query_name, NULL); dns_name_init(&rdata_name, NULL); nameFromString(current_lookup->textname, &query_name); - + result = prove_nx(msg, &query_name, current_lookup->rdclass, current_lookup->rdtype, &rdata_name, &rdataset, &sigrdataset); @@ -5076,7 +5079,7 @@ sigchase_bu(dns_message_t *msg) } printf(";; An NSEC prove the non-existence of a answers," " Now we want validate this NSEC\n"); - + dup_name(&rdata_name, &chase_name, mctx); free_name(&rdata_name, mctx); chase_rdataset = rdataset; @@ -5157,7 +5160,7 @@ sigchase_bu(dns_message_t *msg) chase_sigdsrdataset = NULL; chase_siglookedup = chase_keylookedup = ISC_FALSE; chase_dslookedup = chase_sigdslookedup = ISC_FALSE; - + printf(";; Now, we want to validate the DS : recursive call\n"); sigchase(msg); return; @@ -5250,7 +5253,7 @@ prove_nx_domain(dns_message_t *msg, " validate the non-existence : FAILED\n"); return (ISC_R_FAILURE); } - + do { nsecname = NULL; dns_message_currentname(msg, DNS_SECTION_AUTHORITY, &nsecname); @@ -5328,7 +5331,7 @@ prove_nx_type(dns_message_t *msg, dns_name_t *name, dns_rdataset_t *nsecset, ret = dns_rdataset_first(nsecset); check_result(ret,"dns_rdataset_first"); - + dns_rdataset_current(nsecset, &nsec); ret = dns_nsec_typepresent(&nsec, type); @@ -5396,6 +5399,6 @@ prove_nx(dns_message_t *msg, dns_name_t *name, dns_rdataclass_t class, rdataset, sigrdataset); return (ret); } - /* Never get here */ + /* Never get here */ } #endif diff --git a/bin/dig/host.1 b/bin/dig/host.1 index ee537bd47fa2..9993c0eac8da 100644 --- a/bin/dig/host.1 +++ b/bin/dig/host.1 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000-2002 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: host.1,v 1.14.18.14 2007/05/09 03:33:12 marka Exp $ +.\" $Id: host.1,v 1.14.18.16 2008/04/06 01:31:04 tbox Exp $ .\" .hy 0 .ad l @@ -154,7 +154,7 @@ option is used to select the query type. \fItype\fR can be any recognized query type: CNAME, NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified, \fBhost\fR -automatically selects an appropriate query type. By default it looks for A records, but if the +automatically selects an appropriate query type. By default it looks for A, AAAA, and MX records, but if the \fB\-C\fR option was given, queries will be made for SOA records, and if \fIname\fR @@ -213,7 +213,7 @@ runs. \fBdig\fR(1), \fBnamed\fR(8). .SH "COPYRIGHT" -Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000\-2002 Internet Software Consortium. .br diff --git a/bin/dig/host.docbook b/bin/dig/host.docbook index 8ab767902a5c..2c0ad3d7962f 100644 --- a/bin/dig/host.docbook +++ b/bin/dig/host.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + @@ -41,6 +41,7 @@ 2004 2005 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -199,7 +200,7 @@ NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified, host automatically selects an appropriate query - type. By default it looks for A records, but if the + type. By default it looks for A, AAAA, and MX records, but if the option was given, queries will be made for SOA records, and if name is a dotted-decimal IPv4 diff --git a/bin/dig/host.html b/bin/dig/host.html index adc9883a66fc..88cd830f033b 100644 --- a/bin/dig/host.html +++ b/bin/dig/host.html @@ -1,5 +1,5 @@ - + @@ -32,7 +32,7 @@

host [-aCdlnrsTwv] [-c class] [-N ndots] [-R number] [-t type] [-W wait] [-m flag] [-4] [-6] {name} [server]

-

DESCRIPTION

+

DESCRIPTION

host is a simple utility for performing DNS lookups. It is normally used to convert names to IP addresses and vice versa. @@ -148,7 +148,7 @@ NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified, host automatically selects an appropriate query - type. By default it looks for A records, but if the + type. By default it looks for A, AAAA, and MX records, but if the -C option was given, queries will be made for SOA records, and if name is a dotted-decimal IPv4 @@ -184,7 +184,7 @@

-

IDN SUPPORT

+

IDN SUPPORT

If host has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. @@ -198,12 +198,12 @@

-

FILES

+

FILES

/etc/resolv.conf

-

SEE ALSO

+

SEE ALSO

dig(1), named(8).

diff --git a/bin/dnssec/dnssec-keygen.8 b/bin/dnssec/dnssec-keygen.8 index 542190b9b665..e667ba9b08e6 100644 --- a/bin/dnssec/dnssec-keygen.8 +++ b/bin/dnssec/dnssec-keygen.8 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000-2003 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: dnssec-keygen.8,v 1.23.18.14 2007/05/09 03:33:12 marka Exp $ +.\" $Id: dnssec-keygen.8,v 1.23.18.16 2008/10/16 01:29:40 tbox Exp $ .\" .hy 0 .ad l @@ -187,14 +187,14 @@ and .PP \fBdnssec\-signzone\fR(8), BIND 9 Administrator Reference Manual, -RFC 2535, +RFC 2539, RFC 2845, -RFC 2539. +RFC 4033. .SH "AUTHOR" .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000\-2003 Internet Software Consortium. .br diff --git a/bin/dnssec/dnssec-keygen.docbook b/bin/dnssec/dnssec-keygen.docbook index 8e81cb4f6ee6..ec7b69be2f42 100644 --- a/bin/dnssec/dnssec-keygen.docbook +++ b/bin/dnssec/dnssec-keygen.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + June 30, 2000 @@ -40,6 +40,7 @@ 2004 2005 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -340,9 +341,9 @@ dnssec-signzone8 , BIND 9 Administrator Reference Manual, - RFC 2535, + RFC 2539, RFC 2845, - RFC 2539. + RFC 4033. diff --git a/bin/dnssec/dnssec-keygen.html b/bin/dnssec/dnssec-keygen.html index 7ad747f2b031..e0b0bfe059aa 100644 --- a/bin/dnssec/dnssec-keygen.html +++ b/bin/dnssec/dnssec-keygen.html @@ -1,5 +1,5 @@ - + @@ -32,7 +32,7 @@

dnssec-keygen {-a algorithm} {-b keysize} {-n nametype} [-c class] [-e] [-f flag] [-g generator] [-h] [-k] [-p protocol] [-r randomdev] [-s strength] [-t type] [-v level] {name}

-

DESCRIPTION

+

DESCRIPTION

dnssec-keygen generates keys for DNSSEC (Secure DNS), as defined in RFC 2535 and RFC 4034. It can also generate keys for use with @@ -40,7 +40,7 @@

-

OPTIONS

+

OPTIONS

-a algorithm
@@ -148,7 +148,7 @@
-

GENERATED KEYS

+

GENERATED KEYS

When dnssec-keygen completes successfully, @@ -194,7 +194,7 @@

-

EXAMPLE

+

EXAMPLE

To generate a 768-bit DSA key for the domain example.com, the following command would be @@ -215,16 +215,16 @@

-

SEE ALSO

+

SEE ALSO

dnssec-signzone(8), BIND 9 Administrator Reference Manual, - RFC 2535, + RFC 2539, RFC 2845, - RFC 2539. + RFC 4033.

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/bin/dnssec/dnssec-signzone.8 b/bin/dnssec/dnssec-signzone.8 index d150c3fc15fe..680960ae8928 100644 --- a/bin/dnssec/dnssec-signzone.8 +++ b/bin/dnssec/dnssec-signzone.8 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000-2003 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: dnssec-signzone.8,v 1.28.18.17 2007/05/09 03:33:12 marka Exp $ +.\" $Id: dnssec-signzone.8,v 1.28.18.19 2008/10/16 01:29:40 tbox Exp $ .\" .hy 0 .ad l @@ -261,12 +261,12 @@ db.example.com.signed .PP \fBdnssec\-keygen\fR(8), BIND 9 Administrator Reference Manual, -RFC 2535. +RFC 4033. .SH "AUTHOR" .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000\-2003 Internet Software Consortium. .br diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index 46cd4a74dfe2..9b4916910440 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2003 Internet Software Consortium. * Portions Copyright (C) 1995-2000 by Network Associates, Inc. * @@ -16,7 +16,7 @@ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dnssec-signzone.c,v 1.177.18.24 2007/08/28 07:20:00 tbox Exp $ */ +/* $Id: dnssec-signzone.c,v 1.177.18.26 2008/06/02 23:46:01 tbox Exp $ */ /*! \file */ @@ -128,7 +128,6 @@ static dns_name_t *gorigin; /* The database origin */ static isc_task_t *master = NULL; static unsigned int ntasks = 0; static isc_boolean_t shuttingdown = ISC_FALSE, finished = ISC_FALSE; -static unsigned int assigned = 0, completed = 0; static isc_boolean_t nokeys = ISC_FALSE; static isc_boolean_t removefile = ISC_FALSE; static isc_boolean_t generateds = ISC_FALSE; @@ -969,7 +968,7 @@ active_node(dns_dbnode_t *node) { fatal("rdataset iteration failed: %s", isc_result_totext(result)); } else { - /* + /* * Delete RRSIGs for types that no longer exist. */ result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter2); @@ -1194,7 +1193,7 @@ signapex(void) { dns_fixedname_t fixed; dns_name_t *name; isc_result_t result; - + dns_fixedname_init(&fixed); name = dns_fixedname_name(&fixed); result = dns_dbiterator_current(gdbiter, &node, name); @@ -1224,16 +1223,19 @@ assignwork(isc_task_t *task, isc_task_t *worker) { dns_rdataset_t nsec; isc_boolean_t found; isc_result_t result; + static unsigned int ended = 0; /* Protected by namelock. */ if (shuttingdown) return; + LOCK(&namelock); if (finished) { - if (assigned == completed) { + ended++; + if (ended == ntasks) { isc_task_detach(&task); isc_app_shutdown(); } - return; + goto unlock; } fname = isc_mem_get(mctx, sizeof(dns_fixedname_t)); @@ -1243,7 +1245,6 @@ assignwork(isc_task_t *task, isc_task_t *worker) { name = dns_fixedname_name(fname); node = NULL; found = ISC_FALSE; - LOCK(&namelock); while (!found) { result = dns_dbiterator_current(gdbiter, &node, name); if (result != ISC_R_SUCCESS) @@ -1270,14 +1271,14 @@ assignwork(isc_task_t *task, isc_task_t *worker) { fatal("failure iterating database: %s", isc_result_totext(result)); } - UNLOCK(&namelock); if (!found) { - if (assigned == completed) { + ended++; + if (ended == ntasks) { isc_task_detach(&task); isc_app_shutdown(); } isc_mem_put(mctx, fname, sizeof(dns_fixedname_t)); - return; + goto unlock; } sevent = (sevent_t *) isc_event_allocate(mctx, task, SIGNER_EVENT_WORK, @@ -1288,7 +1289,8 @@ assignwork(isc_task_t *task, isc_task_t *worker) { sevent->node = node; sevent->fname = fname; isc_task_send(worker, ISC_EVENT_PTR(&sevent)); - assigned++; + unlock: + UNLOCK(&namelock); } /*% @@ -1311,7 +1313,6 @@ writenode(isc_task_t *task, isc_event_t *event) { isc_task_t *worker; sevent_t *sevent = (sevent_t *)event; - completed++; worker = (isc_task_t *)event->ev_sender; dumpnode(dns_fixedname_name(sevent->fname), sevent->node); cleannode(gdb, gversion, sevent->node); @@ -1605,7 +1606,7 @@ writeset(const char *prefix, dns_rdatatype_t type) { unsigned char dsbuf[DNS_DS_BUFFERSIZE]; unsigned char keybuf[DST_KEY_MAXSIZE]; unsigned int filenamelen; - const dns_master_style_t *style = + const dns_master_style_t *style = (type == dns_rdatatype_dnskey) ? masterstyle : dsstyle; isc_buffer_init(&namebuf, namestr, sizeof(namestr)); @@ -1818,13 +1819,13 @@ print_stats(isc_time_t *timer_start, isc_time_t *timer_finish) { printf("Signatures successfully verified: %10d\n", nverified); printf("Signatures unsuccessfully verified: %10d\n", nverifyfailed); runtime_ms = runtime_us / 1000; - printf("Runtime in seconds: %7u.%03u\n", - (unsigned int) (runtime_ms / 1000), + printf("Runtime in seconds: %7u.%03u\n", + (unsigned int) (runtime_ms / 1000), (unsigned int) (runtime_ms % 1000)); if (runtime_us > 0) { sig_ms = ((isc_uint64_t)nsigned * 1000000000) / runtime_us; printf("Signatures per second: %7u.%03u\n", - (unsigned int) sig_ms / 1000, + (unsigned int) sig_ms / 1000, (unsigned int) sig_ms % 1000); } } @@ -1914,7 +1915,7 @@ main(int argc, char *argv[]) { fatal("jitter must be numeric and positive"); break; - case 'l': + case 'l': dns_fixedname_init(&dlv_fixed); len = strlen(isc_commandline_argument); isc_buffer_init(&b, isc_commandline_argument, len); @@ -2080,7 +2081,7 @@ main(int argc, char *argv[]) { result = dns_master_stylecreate(&dsstyle, DNS_STYLEFLAG_NO_TTL, 0, 24, 0, 0, 0, 8, mctx); check_result(result, "dns_master_stylecreate"); - + gdb = NULL; TIME_NOW(&timer_start); @@ -2102,8 +2103,8 @@ main(int argc, char *argv[]) { DST_TYPE_PRIVATE, mctx, &newkey); if (result != ISC_R_SUCCESS) - fatal("cannot load dnskey %s: %s", argv[i], - isc_result_totext(result)); + fatal("cannot load dnskey %s: %s", argv[i], + isc_result_totext(result)); key = ISC_LIST_HEAD(keylist); while (key != NULL) { @@ -2111,7 +2112,7 @@ main(int argc, char *argv[]) { if (dst_key_id(dkey) == dst_key_id(newkey) && dst_key_alg(dkey) == dst_key_alg(newkey) && dns_name_equal(dst_key_name(dkey), - dst_key_name(newkey))) + dst_key_name(newkey))) { if (!dst_key_isprivate(dkey)) fatal("cannot sign zone with " @@ -2140,7 +2141,7 @@ main(int argc, char *argv[]) { mctx, &newkey); if (result != ISC_R_SUCCESS) fatal("cannot load dnskey %s: %s", dskeyfile[i], - isc_result_totext(result)); + isc_result_totext(result)); key = ISC_LIST_HEAD(keylist); while (key != NULL) { @@ -2148,7 +2149,7 @@ main(int argc, char *argv[]) { if (dst_key_id(dkey) == dst_key_id(newkey) && dst_key_alg(dkey) == dst_key_alg(newkey) && dns_name_equal(dst_key_name(dkey), - dst_key_name(newkey))) + dst_key_name(newkey))) { /* Override key flags. */ key->issigningkey = ISC_TRUE; diff --git a/bin/dnssec/dnssec-signzone.docbook b/bin/dnssec/dnssec-signzone.docbook index 8d928318ac27..67eacc143272 100644 --- a/bin/dnssec/dnssec-signzone.docbook +++ b/bin/dnssec/dnssec-signzone.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + June 30, 2000 @@ -41,6 +41,7 @@ 2005 2006 2007 + 2008 Internet Systems Consortium, Inc. ("ISC")
@@ -459,7 +460,7 @@ db.example.com.signed dnssec-keygen8 , BIND 9 Administrator Reference Manual, - RFC 2535. + RFC 4033. diff --git a/bin/dnssec/dnssec-signzone.html b/bin/dnssec/dnssec-signzone.html index e794d4c66a37..18d851d1fcd3 100644 --- a/bin/dnssec/dnssec-signzone.html +++ b/bin/dnssec/dnssec-signzone.html @@ -1,5 +1,5 @@ - + @@ -32,7 +32,7 @@

dnssec-signzone [-a] [-c class] [-d directory] [-e end-time] [-f output-file] [-g] [-h] [-k key] [-l domain] [-i interval] [-I input-format] [-j jitter] [-N soa-serial-format] [-o origin] [-O output-format] [-p] [-r randomdev] [-s start-time] [-t] [-v level] [-z] {zonefile} [key...]

-

DESCRIPTION

+

DESCRIPTION

dnssec-signzone signs a zone. It generates NSEC and RRSIG records and produces a signed version of the @@ -43,7 +43,7 @@

-

OPTIONS

+

OPTIONS

-a

@@ -241,7 +241,7 @@

-

EXAMPLE

+

EXAMPLE

The following command signs the example.com zone with the DSA key generated by dnssec-keygen @@ -270,14 +270,14 @@ db.example.com.signed %

-

SEE ALSO

+

SEE ALSO

dnssec-keygen(8), BIND 9 Administrator Reference Manual, - RFC 2535. + RFC 4033.

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/bin/named/client.c b/bin/named/client.c index 3b87d2648c0e..03cfdb6a714e 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: client.c,v 1.219.18.28.10.2 2008/07/23 07:28:54 tbox Exp $ */ +/* $Id: client.c,v 1.219.18.31 2008/05/22 23:46:03 tbox Exp $ */ #include @@ -132,7 +132,7 @@ struct ns_clientmgr { #define MANAGER_MAGIC ISC_MAGIC('N', 'S', 'C', 'm') #define VALID_MANAGER(m) ISC_MAGIC_VALID(m, MANAGER_MAGIC) -/*! +/*! * Client object states. Ordering is significant: higher-numbered * states are generally "more active", meaning that the client can * have more dynamically allocated data, outstanding events, etc. @@ -286,7 +286,7 @@ exit_check(ns_client_t *client) { * * Keep the view attached until any outstanding updates complete. */ - if (client->nupdates == 0 && + if (client->nupdates == 0 && client->newstate == NS_CLIENTSTATE_FREED && client->view != NULL) dns_view_detach(&client->view); @@ -817,7 +817,7 @@ client_sendpkg(ns_client_t *client, isc_buffer_t *buffer) { isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr); if (ns_g_server->blackholeacl != NULL && dns_acl_match(&netaddr, NULL, - ns_g_server->blackholeacl, + ns_g_server->blackholeacl, &ns_g_server->aclenv, &match, NULL) == ISC_R_SUCCESS && match > 0) @@ -834,7 +834,7 @@ client_sendpkg(ns_client_t *client, isc_buffer_t *buffer) { isc_buffer_usedregion(buffer, &r); CTRACE("sendto"); - + result = isc_socket_sendto2(socket, &r, client->task, address, pktinfo, client->sendevent, sockflags); @@ -1108,8 +1108,8 @@ ns_client_error(ns_client_t *client, isc_result_t result) { /* * FORMERR loop avoidance: If we sent a FORMERR message * with the same ID to the same client less than two - * seconds ago, assume that we are in an infinite error - * packet dialog with a server for some protocol whose + * seconds ago, assume that we are in an infinite error + * packet dialog with a server for some protocol whose * error responses look enough like DNS queries to * elicit a FORMERR response. Drop a packet to break * the loop. @@ -1534,7 +1534,7 @@ client_request(isc_task_t *task, isc_event_t *event) { * For IPv6 UDP queries, we get this from the pktinfo structure (if * supported). * If all the attempts fail (this can happen due to memory shortage, - * etc), we regard this as an error for safety. + * etc), we regard this as an error for safety. */ if ((client->interface->flags & NS_INTERFACEFLAG_ANYADDR) == 0) isc_netaddr_fromsockaddr(&destaddr, &client->interface->addr); @@ -1595,7 +1595,7 @@ client_request(isc_task_t *task, isc_event_t *event) { view); if (sigresult == ISC_R_SUCCESS) tsig = client->message->tsigname; - + if (allowed(&netaddr, tsig, view->matchclients) && allowed(&destaddr, tsig, view->matchdestinations) && !((client->message->flags & DNS_MESSAGEFLAG_RD) @@ -1726,7 +1726,7 @@ client_request(isc_task_t *task, isc_event_t *event) { ns_client_log(client, DNS_LOGCATEGORY_SECURITY, NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3), ra ? "recursion available" : - "recursion not available"); + "recursion not available"); /* * Adjust maximum UDP response size for this client. @@ -1820,10 +1820,10 @@ get_clientmctx(ns_clientmgr_t *manager, isc_mem_t **mctxp) { return (result); manager->mctxpool[manager->nextmctx] = clientmctx; - manager->nextmctx++; - if (manager->nextmctx == NMCTXS) - manager->nextmctx = 0; } + manager->nextmctx++; + if (manager->nextmctx == NMCTXS) + manager->nextmctx = 0; #else clientmctx = manager->mctx; #endif @@ -2093,7 +2093,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) { if (ns_g_server->blackholeacl != NULL && dns_acl_match(&netaddr, NULL, - ns_g_server->blackholeacl, + ns_g_server->blackholeacl, &ns_g_server->aclenv, &match, NULL) == ISC_R_SUCCESS && match > 0) @@ -2482,7 +2482,7 @@ ns_client_checkacl(ns_client_t *client, isc_result_t result = ns_client_checkaclsilent(client, acl, default_allow); - if (result == ISC_R_SUCCESS) + if (result == ISC_R_SUCCESS) ns_client_log(client, DNS_LOGCATEGORY_SECURITY, NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3), "%s approved", opname); @@ -2538,16 +2538,16 @@ ns_client_log(ns_client_t *client, isc_logcategory_t *category, void ns_client_aclmsg(const char *msg, dns_name_t *name, dns_rdatatype_t type, - dns_rdataclass_t rdclass, char *buf, size_t len) + dns_rdataclass_t rdclass, char *buf, size_t len) { - char namebuf[DNS_NAME_FORMATSIZE]; - char typebuf[DNS_RDATATYPE_FORMATSIZE]; - char classbuf[DNS_RDATACLASS_FORMATSIZE]; + char namebuf[DNS_NAME_FORMATSIZE]; + char typebuf[DNS_RDATATYPE_FORMATSIZE]; + char classbuf[DNS_RDATACLASS_FORMATSIZE]; - dns_name_format(name, namebuf, sizeof(namebuf)); - dns_rdatatype_format(type, typebuf, sizeof(typebuf)); - dns_rdataclass_format(rdclass, classbuf, sizeof(classbuf)); - (void)snprintf(buf, len, "%s '%s/%s/%s'", msg, namebuf, typebuf, + dns_name_format(name, namebuf, sizeof(namebuf)); + dns_rdatatype_format(type, typebuf, sizeof(typebuf)); + dns_rdataclass_format(rdclass, classbuf, sizeof(classbuf)); + (void)snprintf(buf, len, "%s '%s/%s/%s'", msg, namebuf, typebuf, classbuf); } @@ -2575,7 +2575,7 @@ ns_client_dumpmessage(ns_client_t *client, const char *reason) { isc_mem_put(client->mctx, buf, len); len += 1024; } else if (result == ISC_R_SUCCESS) - ns_client_log(client, NS_LOGCATEGORY_UNMATCHED, + ns_client_log(client, NS_LOGCATEGORY_UNMATCHED, NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1), "%s\n%.*s", reason, (int)isc_buffer_usedlength(&buffer), @@ -2595,7 +2595,7 @@ ns_client_dumprecursing(FILE *f, ns_clientmgr_t *manager) { const char *sep; REQUIRE(VALID_MANAGER(manager)); - + LOCK(&manager->lock); client = ISC_LIST_HEAD(manager->recursing); while (client != NULL) { diff --git a/bin/named/config.c b/bin/named/config.c index 632960c15c37..233d9e097f26 100644 --- a/bin/named/config.c +++ b/bin/named/config.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: config.c,v 1.47.18.32.10.3 2008/07/23 23:48:17 tbox Exp $ */ +/* $Id: config.c,v 1.47.18.35 2008/09/04 08:03:07 marka Exp $ */ /*! \file */ @@ -403,7 +403,7 @@ ns_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp, static isc_result_t get_masters_def(const cfg_obj_t *cctx, const char *name, - const cfg_obj_t **ret) + const cfg_obj_t **ret) { isc_result_t result; const cfg_obj_t *masters = NULL; @@ -521,7 +521,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list, tresult = get_masters_def(config, listname, &list); if (tresult == ISC_R_NOTFOUND) { cfg_obj_log(addr, ns_g_lctx, ISC_LOG_ERROR, - "masters \"%s\" not found", listname); + "masters \"%s\" not found", listname); result = tresult; goto cleanup; @@ -599,7 +599,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list, if (keys[i] == NULL) goto cleanup; dns_name_init(keys[i], NULL); - + keystr = cfg_obj_asstring(key); isc_buffer_init(&b, keystr, strlen(keystr)); isc_buffer_add(&b, strlen(keystr)); @@ -655,7 +655,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list, isc_mem_put(mctx, lists, listcount * sizeof(*lists)); if (stack != NULL) isc_mem_put(mctx, stack, stackcount * sizeof(*stack)); - + INSIST(keycount == addrcount); *addrsp = addrs; diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c index f0703cb06505..e8e36f3e5e52 100644 --- a/bin/named/controlconf.c +++ b/bin/named/controlconf.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: controlconf.c,v 1.40.18.10.40.3 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: controlconf.c,v 1.40.18.14 2008/07/23 23:33:02 marka Exp $ */ /*! \file */ @@ -345,9 +345,9 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { listener = conn->listener; secret.rstart = NULL; - /* Is the server shutting down? */ - if (listener->controls->shuttingdown) - goto cleanup; + /* Is the server shutting down? */ + if (listener->controls->shuttingdown) + goto cleanup; if (conn->ccmsg.result != ISC_R_SUCCESS) { if (conn->ccmsg.result != ISC_R_CANCELED && @@ -364,9 +364,6 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { { ccregion.rstart = isc_buffer_base(&conn->ccmsg.buffer); ccregion.rend = isc_buffer_used(&conn->ccmsg.buffer); - if (secret.rstart != NULL) - isc_mem_put(listener->mctx, secret.rstart, - REGION_SIZE(secret)); secret.rstart = isc_mem_get(listener->mctx, key->secret.length); if (secret.rstart == NULL) goto cleanup; @@ -375,7 +372,8 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { result = isccc_cc_fromwire(&ccregion, &request, &secret); if (result == ISC_R_SUCCESS) break; - else if (result == ISCCC_R_BADAUTH) { + isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret)); + if (result == ISCCC_R_BADAUTH) { /* * For some reason, request is non-NULL when * isccc_cc_fromwire returns ISCCC_R_BADAUTH. @@ -396,7 +394,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { /* We shouldn't be getting a reply. */ if (isccc_cc_isreply(request)) { log_invalid(&conn->ccmsg, ISC_R_FAILURE); - goto cleanup; + goto cleanup_request; } isc_stdtime_get(&now); @@ -407,17 +405,17 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { _ctrl = isccc_alist_lookup(request, "_ctrl"); if (_ctrl == NULL) { log_invalid(&conn->ccmsg, ISC_R_FAILURE); - goto cleanup; + goto cleanup_request; } if (isccc_cc_lookupuint32(_ctrl, "_tim", &sent) == ISC_R_SUCCESS) { if ((sent + CLOCKSKEW) < now || (sent - CLOCKSKEW) > now) { log_invalid(&conn->ccmsg, ISCCC_R_CLOCKSKEW); - goto cleanup; + goto cleanup_request; } } else { log_invalid(&conn->ccmsg, ISC_R_FAILURE); - goto cleanup; + goto cleanup_request; } /* @@ -426,7 +424,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { if (isccc_cc_lookupuint32(_ctrl, "_exp", &exp) == ISC_R_SUCCESS && now > exp) { log_invalid(&conn->ccmsg, ISCCC_R_EXPIRED); - goto cleanup; + goto cleanup_request; } /* @@ -436,16 +434,16 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { result = isccc_cc_checkdup(listener->controls->symtab, request, now); if (result != ISC_R_SUCCESS) { if (result == ISC_R_EXISTS) - result = ISCCC_R_DUPLICATE; + result = ISCCC_R_DUPLICATE; log_invalid(&conn->ccmsg, result); - goto cleanup; + goto cleanup_request; } if (conn->nonce != 0 && (isccc_cc_lookupuint32(_ctrl, "_nonce", &nonce) != ISC_R_SUCCESS || conn->nonce != nonce)) { log_invalid(&conn->ccmsg, ISCCC_R_BADAUTH); - goto cleanup; + goto cleanup_request; } /* @@ -459,7 +457,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { result = isccc_cc_createresponse(request, now, now + 60, &response); if (result != ISC_R_SUCCESS) - goto cleanup; + goto cleanup_request; if (eresult != ISC_R_SUCCESS) { isccc_sexpr_t *data; @@ -467,7 +465,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { if (data != NULL) { const char *estr = isc_result_totext(eresult); if (isccc_cc_definestring(data, "err", estr) == NULL) - goto cleanup; + goto cleanup_response; } } @@ -478,20 +476,20 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { if (data != NULL) { char *str = (char *)isc_buffer_base(&text); if (isccc_cc_definestring(data, "text", str) == NULL) - goto cleanup; + goto cleanup_response; } } _ctrl = isccc_alist_lookup(response, "_ctrl"); if (_ctrl == NULL || isccc_cc_defineuint32(_ctrl, "_nonce", conn->nonce) == NULL) - goto cleanup; + goto cleanup_response; ccregion.rstart = conn->buffer + 4; ccregion.rend = conn->buffer + sizeof(conn->buffer); result = isccc_cc_towire(response, &ccregion, &secret); if (result != ISC_R_SUCCESS) - goto cleanup; + goto cleanup_response; isc_buffer_init(&b, conn->buffer, 4); len = sizeof(conn->buffer) - REGION_SIZE(ccregion); isc_buffer_putuint32(&b, len - 4); @@ -500,31 +498,27 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) { result = isc_socket_send(conn->sock, &r, task, control_senddone, conn); if (result != ISC_R_SUCCESS) - goto cleanup; + goto cleanup_response; conn->sending = ISC_TRUE; - if (secret.rstart != NULL) - isc_mem_put(listener->mctx, secret.rstart, - REGION_SIZE(secret)); - if (request != NULL) - isccc_sexpr_free(&request); - if (response != NULL) - isccc_sexpr_free(&response); + isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret)); + isccc_sexpr_free(&request); + isccc_sexpr_free(&response); return; + cleanup_response: + isccc_sexpr_free(&response); + + cleanup_request: + isccc_sexpr_free(&request); + isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret)); + cleanup: - if (secret.rstart != NULL) - isc_mem_put(listener->mctx, secret.rstart, - REGION_SIZE(secret)); isc_socket_detach(&conn->sock); isccc_ccmsg_invalidate(&conn->ccmsg); conn->ccmsg_valid = ISC_FALSE; maybe_free_connection(conn); maybe_free_listener(listener); - if (request != NULL) - isccc_sexpr_free(&request); - if (response != NULL) - isccc_sexpr_free(&response); } static void @@ -548,7 +542,7 @@ newconnection(controllistener_t *listener, isc_socket_t *sock) { conn = isc_mem_get(listener->mctx, sizeof(*conn)); if (conn == NULL) return (ISC_R_NOMEMORY); - + conn->sock = sock; isccc_ccmsg_init(listener->mctx, sock, &conn->ccmsg); conn->ccmsg_valid = ISC_TRUE; @@ -660,7 +654,7 @@ ns_controls_shutdown(ns_controls_t *controls) { static isc_result_t cfgkeylist_find(const cfg_obj_t *keylist, const char *keyname, - const cfg_obj_t **objp) + const cfg_obj_t **objp) { const cfg_listelt_t *element; const char *str; @@ -808,7 +802,7 @@ register_keys(const cfg_obj_t *control, const cfg_obj_t *keylist, if (result != ISC_R_SUCCESS) \ goto cleanup; \ } while (0) - + static isc_result_t get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) { isc_result_t result; @@ -828,14 +822,14 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) { CHECK(cfg_map_get(config, "key", &key)); keyid = isc_mem_get(mctx, sizeof(*keyid)); - if (keyid == NULL) + if (keyid == NULL) CHECK(ISC_R_NOMEMORY); keyid->keyname = isc_mem_strdup(mctx, cfg_obj_asstring(cfg_map_getname(key))); keyid->secret.base = NULL; keyid->secret.length = 0; ISC_LINK_INIT(keyid, link); - if (keyid->keyname == NULL) + if (keyid->keyname == NULL) CHECK(ISC_R_NOMEMORY); CHECK(bind9_check_key(key, ns_g_lctx)); @@ -891,7 +885,7 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) { cfg_parser_destroy(&pctx); return (result); } - + /* * Ensures that both '*global_keylistp' and '*control_keylistp' are * valid or both are NULL. @@ -925,7 +919,7 @@ static void update_listener(ns_controls_t *cp, controllistener_t **listenerp, const cfg_obj_t *control, const cfg_obj_t *config, isc_sockaddr_t *addr, cfg_aclconfctx_t *aclconfctx, - const char *socktext, isc_sockettype_t type) + const char *socktext, isc_sockettype_t type) { controllistener_t *listener; const cfg_obj_t *allow; @@ -945,7 +939,7 @@ update_listener(ns_controls_t *cp, controllistener_t **listenerp, *listenerp = NULL; return; } - + /* * There is already a listener for this sockaddr. * Update the access list and key information. @@ -1339,7 +1333,7 @@ ns_controls_configure(ns_controls_t *cp, const cfg_obj_t *config, update_listener(cp, &listener, control, config, &addr, aclconfctx, - cfg_obj_asstring(path), + cfg_obj_asstring(path), isc_sockettype_unix); if (listener != NULL) @@ -1385,10 +1379,10 @@ ns_controls_configure(ns_controls_t *cp, const cfg_obj_t *config, isc_sockaddr_setport(&addr, NS_CONTROL_PORT); isc_sockaddr_format(&addr, socktext, sizeof(socktext)); - + update_listener(cp, &listener, NULL, NULL, &addr, NULL, socktext, - isc_sockettype_tcp); + isc_sockettype_tcp); if (listener != NULL) /* diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h index 11f3989460e9..9c86afd46d5f 100644 --- a/bin/named/include/named/globals.h +++ b/bin/named/include/named/globals.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: globals.h,v 1.64.18.4 2006/03/02 00:37:21 marka Exp $ */ +/* $Id: globals.h,v 1.64.18.6 2008/10/24 01:43:17 tbox Exp $ */ #ifndef NAMED_GLOBALS_H #define NAMED_GLOBALS_H 1 @@ -48,6 +48,7 @@ EXTERN isc_taskmgr_t * ns_g_taskmgr INIT(NULL); EXTERN dns_dispatchmgr_t * ns_g_dispatchmgr INIT(NULL); EXTERN isc_entropy_t * ns_g_entropy INIT(NULL); EXTERN isc_entropy_t * ns_g_fallbackentropy INIT(NULL); +EXTERN unsigned int ns_g_cpus_detected INIT(1); /* * XXXRTH We're going to want multiple timer managers eventually. One diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c index 2a82c9874764..08d33d9912c5 100644 --- a/bin/named/interfacemgr.c +++ b/bin/named/interfacemgr.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: interfacemgr.c,v 1.76.18.8.44.3 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: interfacemgr.c,v 1.76.18.11 2008/07/23 23:33:02 marka Exp $ */ /*! \file */ @@ -90,7 +90,7 @@ ns_interfacemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr, mgr->generation = 1; mgr->listenon4 = NULL; mgr->listenon6 = NULL; - + ISC_LIST_INIT(mgr->interfaces); ISC_LIST_INIT(mgr->listenon); @@ -323,7 +323,7 @@ ns_interface_accepttcp(ns_interface_t *ifp) { goto tcp_listen_failure; } - /* + /* * If/when there a multiple filters listen to the * result. */ @@ -510,7 +510,7 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) { unsigned int prefixlen; family = interface->address.family; - + elt.type = dns_aclelementtype_ipprefix; elt.negative = ISC_FALSE; elt.u.ip_prefix.address = interface->address; @@ -550,7 +550,7 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) { static void setup_listenon(ns_interfacemgr_t *mgr, isc_interface_t *interface, in_port_t port) -{ +{ isc_sockaddr_t *addr; isc_sockaddr_t *old; @@ -564,7 +564,7 @@ setup_listenon(ns_interfacemgr_t *mgr, isc_interface_t *interface, old != NULL; old = ISC_LIST_NEXT(old, link)) if (isc_sockaddr_equal(addr, old)) - break; + break; if (old != NULL) isc_mem_put(mgr->mctx, addr, sizeof(*addr)); @@ -700,7 +700,7 @@ do_scan(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen, { isc_interface_t interface; ns_listenlist_t *ll; - unsigned int family; + unsigned int family; result = isc_interfaceiter_current(iter, &interface); if (result != ISC_R_SUCCESS) @@ -882,7 +882,7 @@ do_scan(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen, UNEXPECTED_ERROR(__FILE__, __LINE__, "interface iteration failed: %s", isc_result_totext(result)); - else + else result = ISC_R_SUCCESS; cleanup_iter: isc_interfaceiter_destroy(&iter); @@ -913,7 +913,7 @@ ns_interfacemgr_scan0(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen, /* * Warn if we are not listening on any interface, unless - * we're in lwresd-only mode, in which case that is to + * we're in lwresd-only mode, in which case that is to * be expected. */ if (ext_listen == NULL && diff --git a/bin/named/lwaddr.c b/bin/named/lwaddr.c index 78c2b0b85184..02e8f4de3be5 100644 --- a/bin/named/lwaddr.c +++ b/bin/named/lwaddr.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lwaddr.c,v 1.4.18.2 2005/04/29 00:15:23 marka Exp $ */ +/* $Id: lwaddr.c,v 1.4.18.4 2008/01/11 23:45:59 tbox Exp $ */ /*! \file */ @@ -81,7 +81,7 @@ lwaddr_lwresaddr_fromnetaddr(lwres_addr_t *la, isc_netaddr_t *na) { } else { la->family = LWRES_ADDRTYPE_V6; la->length = 16; - memcpy(la->address, &na->type.in, 16); + memcpy(la->address, &na->type.in6, 16); } return (ISC_R_SUCCESS); } diff --git a/bin/named/lwdgnba.c b/bin/named/lwdgnba.c index a500d278896e..a54d44375124 100644 --- a/bin/named/lwdgnba.c +++ b/bin/named/lwdgnba.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lwdgnba.c,v 1.16.18.2 2005/04/29 00:15:24 marka Exp $ */ +/* $Id: lwdgnba.c,v 1.16.18.4 2008/01/14 23:45:59 tbox Exp $ */ /*! \file */ @@ -220,8 +220,6 @@ ns_lwdclient_processgnba(ns_lwdclient_t *client, lwres_buffer_t *b) { b, &client->pkt, &req); if (result != LWRES_R_SUCCESS) goto out; - if (req->addr.address == NULL) - goto out; client->options = 0; if (req->addr.family == LWRES_ADDRTYPE_V4) { diff --git a/bin/named/lwdnoop.c b/bin/named/lwdnoop.c index fa591b41a245..69cc957e261c 100644 --- a/bin/named/lwdnoop.c +++ b/bin/named/lwdnoop.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lwdnoop.c,v 1.7.18.2 2005/04/29 00:15:25 marka Exp $ */ +/* $Id: lwdnoop.c,v 1.7.18.4 2008/01/22 23:27:05 tbox Exp $ */ /*! \file */ @@ -44,7 +44,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) { result = lwres_nooprequest_parse(client->clientmgr->lwctx, b, &client->pkt, &req); if (result != LWRES_R_SUCCESS) - goto out; + goto send_error; client->pkt.recvlength = LWRES_RECVLENGTH; client->pkt.authtype = 0; /* XXXMLG */ @@ -57,7 +57,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) { lwres = lwres_noopresponse_render(client->clientmgr->lwctx, &resp, &client->pkt, &lwb); if (lwres != LWRES_R_SUCCESS) - goto out; + goto cleanup_req; r.base = lwb.base; r.length = lwb.used; @@ -65,7 +65,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) { client->sendlength = r.length; result = ns_lwdclient_sendreply(client, &r); if (result != ISC_R_SUCCESS) - goto out; + goto cleanup_lwb; /* * We can now destroy request. @@ -76,13 +76,12 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) { return; - out: - if (req != NULL) - lwres_nooprequest_free(client->clientmgr->lwctx, &req); + cleanup_lwb: + lwres_context_freemem(client->clientmgr->lwctx, lwb.base, lwb.length); - if (lwb.base != NULL) - lwres_context_freemem(client->clientmgr->lwctx, - lwb.base, lwb.length); + cleanup_req: + lwres_nooprequest_free(client->clientmgr->lwctx, &req); + send_error: ns_lwdclient_errorpktsend(client, LWRES_R_FAILURE); } diff --git a/bin/named/lwresd.8 b/bin/named/lwresd.8 index 825645aa1eaa..827edcd65737 100644 --- a/bin/named/lwresd.8 +++ b/bin/named/lwresd.8 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000, 2001 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: lwresd.8,v 1.15.18.12 2007/05/16 06:11:27 marka Exp $ +.\" $Id: lwresd.8,v 1.15.18.13 2008/10/17 01:29:23 tbox Exp $ .\" .hy 0 .ad l @@ -85,9 +85,9 @@ Use \fIconfig\-file\fR as the configuration file instead of the default, \fI/etc/lwresd.conf\fR. -\-c +\fB\-c\fR can not be used with -\-C. +\fB\-C\fR. .RE .PP \-C \fIconfig\-file\fR @@ -96,9 +96,9 @@ Use \fIconfig\-file\fR as the configuration file instead of the default, \fI/etc/resolv.conf\fR. -\-C +\fB\-C\fR can not be used with -\-c. +\fB\-c\fR. .RE .PP \-d \fIdebug\-level\fR @@ -217,7 +217,7 @@ The default process\-id file. .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000, 2001 Internet Software Consortium. .br diff --git a/bin/named/lwresd.c b/bin/named/lwresd.c index 1f7184e72dcc..8a89b1c764ce 100644 --- a/bin/named/lwresd.c +++ b/bin/named/lwresd.c @@ -15,9 +15,9 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lwresd.c,v 1.46.18.7.52.3 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: lwresd.c,v 1.46.18.10 2008/07/23 23:33:02 marka Exp $ */ -/*! \file +/*! \file * \brief * Main program for the Lightweight Resolver Daemon. * @@ -224,7 +224,7 @@ ns_lwresd_parseeresolvconf(isc_mem_t *mctx, cfg_parser_t *pctx, for (i = 0; i < lwc->searchnxt; i++) { CHECK(buffer_putstr(&b, "\t\t\"")); CHECK(buffer_putstr(&b, lwc->search[i])); - CHECK(buffer_putstr(&b, "\";\n")); + CHECK(buffer_putstr(&b, "\";\n")); } CHECK(buffer_putstr(&b, "\t};\n")); } diff --git a/bin/named/lwresd.docbook b/bin/named/lwresd.docbook index 5b3143e6e5b4..6dd2c40adf61 100644 --- a/bin/named/lwresd.docbook +++ b/bin/named/lwresd.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + June 30, 2000 @@ -40,6 +40,7 @@ 2004 2005 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -145,7 +146,7 @@ configuration file instead of the default, /etc/lwresd.conf. - -c can not be used with -C. + can not be used with . @@ -157,7 +158,7 @@ Use config-file as the configuration file instead of the default, /etc/resolv.conf. - -C can not be used with -c. + can not be used with . diff --git a/bin/named/lwresd.html b/bin/named/lwresd.html index b59a7cc72581..463e6b0ee3cf 100644 --- a/bin/named/lwresd.html +++ b/bin/named/lwresd.html @@ -1,5 +1,5 @@ - + @@ -32,7 +32,7 @@

lwresd [-c config-file] [-C config-file] [-d debug-level] [-f] [-g] [-i pid-file] [-m flag] [-n #cpus] [-P port] [-p port] [-s] [-t directory] [-u user] [-v] [-4] [-6]

-

DESCRIPTION

+

DESCRIPTION

lwresd is the daemon providing name lookup services to clients that use the BIND 9 lightweight resolver @@ -67,7 +67,7 @@

-

OPTIONS

+

OPTIONS

-4

@@ -87,14 +87,14 @@ configuration file instead of the default, /etc/lwresd.conf. - <term>-c</term> can not be used with <term>-C</term>. + -c can not be used with -C.

-C config-file

Use config-file as the configuration file instead of the default, /etc/resolv.conf. - <term>-C</term> can not be used with <term>-c</term>. + -C can not be used with -c.

-d debug-level

@@ -197,7 +197,7 @@

-

FILES

+

FILES

/etc/resolv.conf

@@ -210,14 +210,14 @@

-

SEE ALSO

+

SEE ALSO

named(8), lwres(3), resolver(5).

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/bin/named/main.c b/bin/named/main.c index 6b9b67e13550..d8b0a3345138 100644 --- a/bin/named/main.c +++ b/bin/named/main.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: main.c,v 1.136.18.17 2006/11/10 18:51:14 marka Exp $ */ +/* $Id: main.c,v 1.136.18.21 2008/10/24 01:28:08 marka Exp $ */ /*! \file */ @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -85,6 +86,7 @@ static char program_name[ISC_DIR_NAMEMAX] = "named"; static char absolute_conffile[ISC_DIR_PATHMAX]; static char saved_command_line[512]; static char version[512]; +static unsigned int maxsocks = 0; void ns_main_earlywarning(const char *format, ...) { @@ -356,7 +358,8 @@ parse_command_line(int argc, char *argv[]) { isc_commandline_errprint = ISC_FALSE; while ((ch = isc_commandline_parse(argc, argv, - "46c:C:d:fgi:lm:n:N:p:P:st:u:vx:")) != -1) { + "46c:C:d:fgi:lm:n:N:p:P:" + "sS:t:u:vx:")) != -1) { switch (ch) { case '4': if (disable4) @@ -435,6 +438,10 @@ parse_command_line(int argc, char *argv[]) { /* XXXRTH temporary syntax */ want_stats = ISC_TRUE; break; + case 'S': + maxsocks = parse_int(isc_commandline_argument, + "max number of sockets"); + break; case 't': /* XXXJAB should we make a copy? */ ns_g_chrootdir = isc_commandline_argument; @@ -466,17 +473,14 @@ parse_command_line(int argc, char *argv[]) { static isc_result_t create_managers(void) { isc_result_t result; -#ifdef ISC_PLATFORM_USETHREADS - unsigned int cpus_detected; -#endif + unsigned int socks; #ifdef ISC_PLATFORM_USETHREADS - cpus_detected = isc_os_ncpus(); if (ns_g_cpus == 0) - ns_g_cpus = cpus_detected; + ns_g_cpus = ns_g_cpus_detected; isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, ISC_LOG_INFO, "found %u CPU%s, using %u worker thread%s", - cpus_detected, cpus_detected == 1 ? "" : "s", + ns_g_cpus_detected, ns_g_cpus_detected == 1 ? "" : "s", ns_g_cpus, ns_g_cpus == 1 ? "" : "s"); #else ns_g_cpus = 1; @@ -497,13 +501,19 @@ create_managers(void) { return (ISC_R_UNEXPECTED); } - result = isc_socketmgr_create(ns_g_mctx, &ns_g_socketmgr); + result = isc_socketmgr_create2(ns_g_mctx, &ns_g_socketmgr, maxsocks); if (result != ISC_R_SUCCESS) { UNEXPECTED_ERROR(__FILE__, __LINE__, "isc_socketmgr_create() failed: %s", isc_result_totext(result)); return (ISC_R_UNEXPECTED); } + result = isc_socketmgr_getmaxsockets(ns_g_socketmgr, &socks); + if (result == ISC_R_SUCCESS) { + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, + ISC_LOG_INFO, "using up to %u sockets", socks); + } result = isc_entropy_create(ns_g_mctx, &ns_g_entropy); if (result != ISC_R_SUCCESS) { @@ -550,6 +560,7 @@ destroy_managers(void) { static void setup(void) { isc_result_t result; + isc_resourcevalue_t old_openfiles; #ifdef HAVE_LIBSCF char *instance = NULL; #endif @@ -603,6 +614,13 @@ setup(void) { } #endif +#ifdef ISC_PLATFORM_USETHREADS + /* + * Check for the number of cpu's before ns_os_chroot(). + */ + ns_g_cpus_detected = isc_os_ncpus(); +#endif + ns_os_chroot(ns_g_chrootdir); /* @@ -655,6 +673,23 @@ setup(void) { (void)isc_resource_getlimit(isc_resource_openfiles, &ns_g_initopenfiles); + /* + * System resources cannot effectively be tuned on some systems. + * Raise the limit in such cases for safety. + */ + old_openfiles = ns_g_initopenfiles; + ns_os_adjustnofile(); + (void)isc_resource_getlimit(isc_resource_openfiles, + &ns_g_initopenfiles); + if (old_openfiles != ns_g_initopenfiles) { + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_MAIN, ISC_LOG_NOTICE, + "adjusted limit on open files from " + "%" ISC_PRINT_QUADFORMAT "u to " + "%" ISC_PRINT_QUADFORMAT "u", + old_openfiles, ns_g_initopenfiles); + } + /* * If the named configuration filename is relative, prepend the current * directory's name before possibly changing to another directory. @@ -665,7 +700,7 @@ setup(void) { sizeof(absolute_conffile)); if (result != ISC_R_SUCCESS) ns_main_earlyfatal("could not construct absolute path of " - "configuration file: %s", + "configuration file: %s", isc_result_totext(result)); ns_g_conffile = absolute_conffile; } @@ -757,7 +792,7 @@ ns_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) { if (debug) UNEXPECTED_ERROR(__FILE__, __LINE__, "scf_handle_create() failed: %s", - scf_strerror(scf_error())); + scf_strerror(scf_error())); return (ISC_R_FAILURE); } diff --git a/bin/named/named.8 b/bin/named/named.8 index f5e82303024d..9487dac2e178 100644 --- a/bin/named/named.8 +++ b/bin/named/named.8 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000, 2001, 2003 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: named.8,v 1.20.18.15 2007/06/20 02:26:58 marka Exp $ +.\" $Id: named.8,v 1.20.18.16 2008/09/01 02:29:00 tbox Exp $ .\" .hy 0 .ad l @@ -33,7 +33,7 @@ named \- Internet domain name server .SH "SYNOPSIS" .HP 6 -\fBnamed\fR [\fB\-4\fR] [\fB\-6\fR] [\fB\-c\ \fR\fB\fIconfig\-file\fR\fR] [\fB\-d\ \fR\fB\fIdebug\-level\fR\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [\fB\-n\ \fR\fB\fI#cpus\fR\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-s\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-u\ \fR\fB\fIuser\fR\fR] [\fB\-v\fR] [\fB\-x\ \fR\fB\fIcache\-file\fR\fR] +\fBnamed\fR [\fB\-4\fR] [\fB\-6\fR] [\fB\-c\ \fR\fB\fIconfig\-file\fR\fR] [\fB\-d\ \fR\fB\fIdebug\-level\fR\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [\fB\-n\ \fR\fB\fI#cpus\fR\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-s\fR] [\fB\-S\ \fR\fB\fI#max\-socks\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-u\ \fR\fB\fIuser\fR\fR] [\fB\-v\fR] [\fB\-x\ \fR\fB\fIcache\-file\fR\fR] .SH "DESCRIPTION" .PP \fBnamed\fR @@ -131,6 +131,21 @@ This option is mainly of interest to BIND 9 developers and may be removed or cha .RE .RE .PP +\-S \fI#max\-socks\fR +.RS 4 +Allow +\fBnamed\fR +to use up to +\fI#max\-socks\fR +sockets. +.RS +.B "Warning:" +This option should be unnecessary for the vast majority of users. The use of this option could even be harmful because the specified value may exceed the limitation of the underlying system API. It is therefore set only when the default configuration causes exhaustion of file descriptors and the operational environment is known to support the specified number of sockets. Note also that the actual maximum number is normally a little fewer than the specified value because +\fBnamed\fR +reserves some file descriptors for its internal use. +.RE +.RE +.PP \-t \fIdirectory\fR .RS 4 Chroot to @@ -230,7 +245,7 @@ BIND 9 Administrator Reference Manual. .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000, 2001, 2003 Internet Software Consortium. .br diff --git a/bin/named/named.conf.5 b/bin/named/named.conf.5 index 00c92a69c13a..a2ccbe07fb33 100644 --- a/bin/named/named.conf.5 +++ b/bin/named/named.conf.5 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: named.conf.5,v 1.1.2.26 2007/08/19 23:26:13 marka Exp $ +.\" $Id: named.conf.5,v 1.1.2.27 2008/09/05 01:32:08 tbox Exp $ .\" .hy 0 .ad l @@ -174,6 +174,7 @@ options { port \fIinteger\fR; querylog \fIboolean\fR; recursing\-file \fIquoted_string\fR; + reserved\-sockets \fIinteger\fR; random\-device \fIquoted_string\fR; recursive\-clients \fIinteger\fR; serial\-query\-rate \fIinteger\fR; @@ -516,5 +517,5 @@ zone \fIstring\fR \fIoptional_class\fR { \fBrndc\fR(8), BIND 9 Administrator Reference Manual. .SH "COPYRIGHT" -Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC") .br diff --git a/bin/named/named.conf.docbook b/bin/named/named.conf.docbook index 8635f9754fd6..32aa53742488 100644 --- a/bin/named/named.conf.docbook +++ b/bin/named/named.conf.docbook @@ -17,7 +17,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + Aug 13, 2004 diff --git a/bin/named/named.conf.html b/bin/named/named.conf.html index 09e71a324cdd..f729988d4da1 100644 --- a/bin/named/named.conf.html +++ b/bin/named/named.conf.html @@ -1,5 +1,5 @@ - + @@ -31,7 +31,7 @@

named.conf

-

DESCRIPTION

+

DESCRIPTION

named.conf is the configuration file for named. Statements are enclosed @@ -50,14 +50,14 @@

-

ACL

+

ACL


acl string { address_match_element; ... };

-

KEY

+

KEY


key domain_name {
algorithm string;
@@ -66,7 +66,7 @@ key

-

MASTERS

+

MASTERS


masters string [ port integer ] {
masters | ipv4_address [port integer] |
@@ -75,7 +75,7 @@ masters

-

SERVER

+

SERVER


server ( ipv4_address[/prefixlen] | ipv6_address[/prefixlen] ) {
bogus boolean;
@@ -97,7 +97,7 @@ server

-

TRUSTED-KEYS

+

TRUSTED-KEYS


trusted-keys {
domain_name flags protocol algorithm key; ... 
@@ -105,7 +105,7 @@ trusted-keys

-

CONTROLS

+

CONTROLS


controls {
inet ( ipv4_address | ipv6_address | * )
@@ -117,7 +117,7 @@ controls

-

LOGGING

+

LOGGING


logging {
channel string {
@@ -135,7 +135,7 @@ logging

-

LWRES

+

LWRES


lwres {
listen-on [ port integer ] {
@@ -148,7 +148,7 @@ lwres

-

OPTIONS

+

OPTIONS


options {
avoid-v4-udp-ports { port; ... };
@@ -172,6 +172,7 @@ options port integer;
querylog boolean;
recursing-file quoted_string;
+ reserved-sockets integer;
random-device quoted_string;
recursive-clients integer;
serial-query-rate integer;
@@ -313,7 +314,7 @@ options

-

VIEW

+

VIEW


view string optional_class {
match-clients { address_match_element; ... };
@@ -453,7 +454,7 @@ view

-

ZONE

+

ZONE


zone string optional_class {
type ( master | slave | stub | hint |
@@ -538,12 +539,12 @@ zone

-

FILES

+

FILES

/etc/named.conf

-

SEE ALSO

+

SEE ALSO

named(8), named-checkconf(8), rndc(8), diff --git a/bin/named/named.docbook b/bin/named/named.docbook index 74b41f5031b6..15d554c07f27 100644 --- a/bin/named/named.docbook +++ b/bin/named/named.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + June 30, 2000 @@ -41,6 +41,7 @@ 2005 2006 2007 + 2008 Internet Systems Consortium, Inc. ("ISC") @@ -64,6 +65,7 @@ + @@ -214,6 +216,33 @@ + + -S #max-socks + + + Allow named to use up to + #max-socks sockets. + + + + This option should be unnecessary for the vast majority + of users. + The use of this option could even be harmful because the + specified value may exceed the limitation of the + underlying system API. + It is therefore set only when the default configuration + causes exhaustion of file descriptors and the + operational environment is known to support the + specified number of sockets. + Note also that the actual maximum number is normally a little + fewer than the specified value because + named reserves some file descriptors + for its internal use. + + + + + -t directory diff --git a/bin/named/named.html b/bin/named/named.html index 294ecce406a0..ed4f16a3e218 100644 --- a/bin/named/named.html +++ b/bin/named/named.html @@ -1,5 +1,5 @@ - + @@ -29,10 +29,10 @@

Synopsis

-

named [-4] [-6] [-c config-file] [-d debug-level] [-f] [-g] [-m flag] [-n #cpus] [-p port] [-s] [-t directory] [-u user] [-v] [-x cache-file]

+

named [-4] [-6] [-c config-file] [-d debug-level] [-f] [-g] [-m flag] [-n #cpus] [-p port] [-s] [-S #max-socks] [-t directory] [-u user] [-v] [-x cache-file]

-

DESCRIPTION

+

DESCRIPTION

named is a Domain Name System (DNS) server, part of the BIND 9 distribution from ISC. For more @@ -47,7 +47,7 @@

-

OPTIONS

+

OPTIONS

-4

@@ -126,6 +126,31 @@

+
-S #max-socks
+
+

+ Allow named to use up to + #max-socks sockets. +

+
+

Warning

+

+ This option should be unnecessary for the vast majority + of users. + The use of this option could even be harmful because the + specified value may exceed the limitation of the + underlying system API. + It is therefore set only when the default configuration + causes exhaustion of file descriptors and the + operational environment is known to support the + specified number of sockets. + Note also that the actual maximum number is normally a little + fewer than the specified value because + named reserves some file descriptors + for its internal use. +

+
+
-t directory

Chroot @@ -191,7 +216,7 @@

-

SIGNALS

+

SIGNALS

In routine operation, signals should not be used to control the nameserver; rndc should be used @@ -212,7 +237,7 @@

-

CONFIGURATION

+

CONFIGURATION

The named configuration file is too complex to describe in detail here. A complete description is provided @@ -221,7 +246,7 @@

-

FILES

+

FILES

/etc/named.conf

@@ -234,7 +259,7 @@

-

SEE ALSO

+

SEE ALSO

RFC 1033, RFC 1034, RFC 1035, @@ -247,7 +272,7 @@

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/bin/named/query.c b/bin/named/query.c index 38eb9a13c15b..5cafbc9e45a8 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: query.c,v 1.257.18.40 2007/09/26 03:08:14 each Exp $ */ +/* $Id: query.c,v 1.257.18.46 2008/10/15 22:33:01 marka Exp $ */ /*! \file */ @@ -2298,7 +2298,7 @@ mark_secure(ns_client_t *client, dns_db_t *db, dns_name_t *name, static isc_boolean_t get_key(ns_client_t *client, dns_db_t *db, dns_rdata_rrsig_t *rrsig, dns_rdataset_t *keyrdataset, dst_key_t **keyp) -{ +{ isc_result_t result; dns_dbnode_t *node = NULL; isc_boolean_t secure = ISC_FALSE; @@ -2331,12 +2331,12 @@ get_key(ns_client_t *client, dns_db_t *db, dns_rdata_rrsig_t *rrsig, isc_buffer_init(&b, rdata.data, rdata.length); isc_buffer_add(&b, rdata.length); result = dst_key_fromdns(&rrsig->signer, rdata.rdclass, &b, - client->mctx, keyp); + client->mctx, keyp); if (result != ISC_R_SUCCESS) continue; if (rrsig->algorithm == (dns_secalg_t)dst_key_alg(*keyp) && - rrsig->keyid == (dns_keytag_t)dst_key_id(*keyp) && - dst_key_iszonekey(*keyp)) { + rrsig->keyid == (dns_keytag_t)dst_key_id(*keyp) && + dst_key_iszonekey(*keyp)) { secure = ISC_TRUE; break; } @@ -2354,7 +2354,7 @@ verify(dst_key_t *key, dns_name_t *name, dns_rdataset_t *rdataset, isc_boolean_t ignore = ISC_FALSE; dns_fixedname_init(&fixed); - + again: result = dns_dnssec_verify2(name, rdataset, key, ignore, mctx, rdata, NULL); @@ -2382,7 +2382,7 @@ validate(ns_client_t *client, dns_db_t *db, dns_name_t *name, if (sigrdataset == NULL || !dns_rdataset_isassociated(sigrdataset)) return (ISC_FALSE); - + for (result = dns_rdataset_first(sigrdataset); result == ISC_R_SUCCESS; result = dns_rdataset_next(sigrdataset)) { @@ -2757,6 +2757,13 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db, &olabels); (void)dns_name_fullcompare(name, &nsec.next, &order, &nlabels); + /* + * Check for a pathological condition created when + * serving some malformed signed zones and bail out. + */ + if (dns_name_countlabels(name) == nlabels) + goto cleanup; + if (olabels > nlabels) dns_name_split(name, olabels, NULL, wname); else @@ -2924,13 +2931,14 @@ query_resume(isc_task_t *task, isc_event_t *event) { static isc_result_t query_recurse(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qdomain, - dns_rdataset_t *nameservers) + dns_rdataset_t *nameservers, isc_boolean_t resuming) { isc_result_t result; dns_rdataset_t *rdataset, *sigrdataset; isc_sockaddr_t *peeraddr; - inc_stats(client, dns_statscounter_recursion); + if (!resuming) + inc_stats(client, dns_statscounter_recursion); /* * We are about to recurse, which means that this client will @@ -3162,11 +3170,11 @@ query_addnoqnameproof(ns_client_t *client, dns_rdataset_t *rdataset) { cleanup: if (nsec != NULL) - query_putrdataset(client, &nsec); - if (nsecsig != NULL) - query_putrdataset(client, &nsecsig); - if (fname != NULL) - query_releasename(client, &fname); + query_putrdataset(client, &nsec); + if (nsecsig != NULL) + query_putrdataset(client, &nsecsig); + if (fname != NULL) + query_releasename(client, &fname); } static inline void @@ -3269,12 +3277,12 @@ warn_rfc1918(ns_client_t *client, dns_name_t *fname, dns_rdataset_t *rdataset) { dns_rdata_soa_t soa; dns_rdataset_t found; isc_result_t result; - + for (i = 0; i < (sizeof(rfc1918names)/sizeof(*rfc1918names)); i++) { if (dns_name_issubdomain(fname, &rfc1918names[i])) { dns_rdataset_init(&found); result = dns_ncache_getrdataset(rdataset, - &rfc1918names[i], + &rfc1918names[i], dns_rdatatype_soa, &found); if (result != ISC_R_SUCCESS) @@ -3335,6 +3343,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) unsigned int options; isc_boolean_t empty_wild; dns_rdataset_t *noqname; + isc_boolean_t resuming; CTRACE("query_find"); @@ -3360,6 +3369,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) need_wildcardproof = ISC_FALSE; empty_wild = ISC_FALSE; options = 0; + resuming = ISC_FALSE; + is_zone = ISC_FALSE; if (event != NULL) { /* @@ -3369,7 +3380,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) want_restart = ISC_FALSE; authoritative = ISC_FALSE; - is_zone = ISC_FALSE; qtype = event->qtype; if (qtype == dns_rdatatype_rrsig || qtype == dns_rdatatype_sig) @@ -3402,6 +3412,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) } result = event->result; + resuming = ISC_TRUE; goto resume; } @@ -3602,7 +3613,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) */ if (RECURSIONOK(client)) { result = query_recurse(client, qtype, - NULL, NULL); + NULL, NULL, resuming); if (result == ISC_R_SUCCESS) client->query.attributes |= NS_QUERYATTR_RECURSING; @@ -3773,10 +3784,12 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) */ if (dns_rdatatype_atparent(type)) result = query_recurse(client, qtype, - NULL, NULL); + NULL, NULL, + resuming); else result = query_recurse(client, qtype, - fname, rdataset); + fname, rdataset, + resuming); if (result == ISC_R_SUCCESS) client->query.attributes |= NS_QUERYATTR_RECURSING; @@ -4220,7 +4233,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) result = query_recurse(client, qtype, NULL, - NULL); + NULL, + resuming); if (result == ISC_R_SUCCESS) client->query.attributes |= NS_QUERYATTR_RECURSING; @@ -4437,6 +4451,7 @@ ns_query_start(ns_client_t *client) { dns_rdataset_t *rdataset; ns_client_t *qclient; dns_rdatatype_t qtype; + isc_boolean_t want_ad; CTRACE("ns_query_start"); @@ -4575,6 +4590,15 @@ ns_query_start(ns_client_t *client) { if (message->flags & DNS_MESSAGEFLAG_CD) client->query.attributes &= ~NS_QUERYATTR_SECURE; + /* + * Set 'want_ad' if the client has set AD in the query. + * This allows AD to be returned on queries without DO set. + */ + if ((message->flags & DNS_MESSAGEFLAG_AD) != 0) + want_ad = ISC_TRUE; + else + want_ad = ISC_FALSE; + /* * This is an ordinary query. */ @@ -4594,7 +4618,7 @@ ns_query_start(ns_client_t *client) { * Set AD. We must clear it if we add non-validated data to a * response. */ - if (WANTDNSSEC(client)) + if (WANTDNSSEC(client) || want_ad) message->flags |= DNS_MESSAGEFLAG_AD; qclient = NULL; diff --git a/bin/named/server.c b/bin/named/server.c index 79bd125c5498..784ff94d3414 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -15,13 +15,14 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: server.c,v 1.419.18.57.10.3 2008/07/23 12:04:32 marka Exp $ */ +/* $Id: server.c,v 1.419.18.68 2008/09/04 23:46:08 tbox Exp $ */ /*! \file */ #include #include +#include #include #include @@ -31,8 +32,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -197,6 +200,7 @@ static const struct { #endif /* RFC 3330 */ + { "0.IN-ADDR.ARPA", ISC_FALSE }, /* THIS NETWORK */ { "127.IN-ADDR.ARPA", ISC_FALSE }, /* LOOPBACK */ { "254.169.IN-ADDR.ARPA", ISC_FALSE }, /* LINK LOCAL */ { "2.0.192.IN-ADDR.ARPA", ISC_FALSE }, /* TEST NET */ @@ -438,7 +442,7 @@ configure_view_dnsseckeys(const cfg_obj_t *vconfig, const cfg_obj_t *config, *target = keytable; /* Transfer ownership. */ keytable = NULL; result = ISC_R_SUCCESS; - + cleanup: return (result); } @@ -454,7 +458,7 @@ mustbesecure(const cfg_obj_t *mbs, dns_resolver_t *resolver) isc_boolean_t value; isc_result_t result; isc_buffer_t b; - + dns_fixedname_init(&fixed); name = dns_fixedname_name(&fixed); for (element = cfg_list_first(mbs); @@ -472,7 +476,7 @@ mustbesecure(const cfg_obj_t *mbs, dns_resolver_t *resolver) } result = ISC_R_SUCCESS; - + cleanup: return (result); } @@ -482,13 +486,15 @@ mustbesecure(const cfg_obj_t *mbs, dns_resolver_t *resolver) */ static isc_result_t get_view_querysource_dispatch(const cfg_obj_t **maps, - int af, dns_dispatch_t **dispatchp) + int af, dns_dispatch_t **dispatchp, + isc_boolean_t is_firstview) { isc_result_t result; dns_dispatch_t *disp; isc_sockaddr_t sa; unsigned int attrs, attrmask; const cfg_obj_t *obj = NULL; + unsigned int maxdispatchbuffers; /* * Make compiler happy. @@ -540,12 +546,18 @@ get_view_querysource_dispatch(const cfg_obj_t **maps, attrs |= DNS_DISPATCHATTR_IPV6; break; } - - if (isc_sockaddr_getport(&sa) != 0) { + if (isc_sockaddr_getport(&sa) == 0) { + attrs |= DNS_DISPATCHATTR_EXCLUSIVE; + maxdispatchbuffers = 4096; + } else { INSIST(obj != NULL); - cfg_obj_log(obj, ns_g_lctx, ISC_LOG_INFO, - "using specific query-source port suppresses port " - "randomization and can be insecure."); + if (is_firstview) { + cfg_obj_log(obj, ns_g_lctx, ISC_LOG_INFO, + "using specific query-source port " + "suppresses port randomization and can be " + "insecure."); + } + maxdispatchbuffers = 1000; } attrmask = 0; @@ -557,7 +569,7 @@ get_view_querysource_dispatch(const cfg_obj_t **maps, disp = NULL; result = dns_dispatch_getudp(ns_g_dispatchmgr, ns_g_socketmgr, ns_g_taskmgr, &sa, 4096, - 1024, 32768, 16411, 16433, + maxdispatchbuffers, 32768, 16411, 16433, attrs, attrmask, &disp); if (result != ISC_R_SUCCESS) { isc_sockaddr_t any; @@ -609,7 +621,7 @@ configure_order(dns_order_t *order, const cfg_obj_t *ent) { return (result); obj = cfg_tuple_get(ent, "name"); - if (cfg_obj_isstring(obj)) + if (cfg_obj_isstring(obj)) str = cfg_obj_asstring(obj); else str = "*"; @@ -662,7 +674,7 @@ configure_peer(const cfg_obj_t *cpeer, isc_mem_t *mctx, dns_peer_t **peerp) { cfg_obj_asnetprefix(cfg_map_getname(cpeer), &na, &prefixlen); peer = NULL; - result = dns_peer_new(mctx, &na, &peer); + result = dns_peer_newprefix(mctx, &na, prefixlen, &peer); if (result != ISC_R_SUCCESS) return (result); @@ -840,7 +852,7 @@ on_disable_list(const cfg_obj_t *disablelist, dns_name_t *zonename) { dns_fixedname_init(&fixed); name = dns_fixedname_name(&fixed); - + for (element = cfg_list_first(disablelist); element != NULL; element = cfg_list_next(element)) @@ -911,9 +923,9 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, const cfg_obj_t *alternates; const cfg_obj_t *zonelist; #ifdef DLZ - const cfg_obj_t *dlz; - unsigned int dlzargc; - char **dlzargv; + const cfg_obj_t *dlz; + unsigned int dlzargc; + char **dlzargv; #endif const cfg_obj_t *disabled; const cfg_obj_t *obj; @@ -1064,7 +1076,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, result = ISC_R_NOMEMORY; goto cleanup; } - + result = dns_dlzstrtoargv(mctx, s, &dlzargc, &dlzargv); if (result != ISC_R_SUCCESS) { isc_mem_free(mctx, s); @@ -1183,8 +1195,12 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, * * XXXRTH Hardwired number of tasks. */ - CHECK(get_view_querysource_dispatch(maps, AF_INET, &dispatch4)); - CHECK(get_view_querysource_dispatch(maps, AF_INET6, &dispatch6)); + CHECK(get_view_querysource_dispatch(maps, AF_INET, &dispatch4, + ISC_TF(ISC_LIST_PREV(view, link) + == NULL))); + CHECK(get_view_querysource_dispatch(maps, AF_INET6, &dispatch6, + ISC_TF(ISC_LIST_PREV(view, link) + == NULL))); if (dispatch4 == NULL && dispatch6 == NULL) { UNEXPECTED_ERROR(__FILE__, __LINE__, "unable to obtain neither an IPv4 nor" @@ -1223,7 +1239,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, result = ns_config_get(maps, "zero-no-soa-ttl-cache", &obj); INSIST(result == ISC_R_SUCCESS); dns_resolver_setzeronosoattl(view->resolver, cfg_obj_asboolean(obj)); - + /* * Set the resolver's EDNS UDP size. */ @@ -1236,7 +1252,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, if (udpsize > 4096) udpsize = 4096; dns_resolver_setudpsize(view->resolver, (isc_uint16_t)udpsize); - + /* * Set the maximum UDP response size. */ @@ -1273,7 +1289,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, (void)ns_config_get(maps, "forward", &forwardtype); (void)ns_config_get(maps, "forwarders", &forwarders); if (forwarders != NULL) - CHECK(configure_forward(config, view, dns_rootname, + CHECK(configure_forward(config, view, dns_rootname, forwarders, forwardtype)); /* @@ -1293,7 +1309,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, /* * If we still have no hints, this is a non-IN view with no * "hints zone" configured. Issue a warning, except if this - * is a root server. Root servers never need to consult + * is a root server. Root servers never need to consult * their hints, so it's no point requiring users to configure * them. */ @@ -1416,7 +1432,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, view->transfer_format = dns_one_answer; else INSIST(0); - + /* * Set sources where additional data and CNAME/DNAME * targets for authoritative answers may be found. @@ -1516,7 +1532,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, dns_resolver_setclientsperquery(view->resolver, cfg_obj_asuint32(obj), max_clients_per_query); - + obj = NULL; result = ns_config_get(maps, "dnssec-enable", &obj); INSIST(result == ISC_R_SUCCESS); @@ -1745,14 +1761,14 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, if (result == ISC_R_SUCCESS && forwarders->fwdpolicy == dns_fwdpolicy_only) continue; - + if (!rfc1918 && empty_zones[empty_zone].rfc1918) { if (logit) { isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, ISC_LOG_WARNING, - "Warning%s%s: " + "Warning%s%s: " "'empty-zones-enable/" "disable-empty-zone' " "not set: disabling " @@ -1794,7 +1810,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, dns_zone_setclass(zone, view->rdclass); dns_zone_settype(zone, dns_zone_master); CHECK(dns_zone_setdbtype(zone, empty_dbtypec, - empty_dbtype)); + empty_dbtype)); if (view->queryacl != NULL) dns_zone_setqueryacl(zone, view->queryacl); dns_zone_setdialup(zone, dns_dialuptype_no); @@ -1809,7 +1825,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config, dns_zone_detach(&zone); } } - + result = ISC_R_SUCCESS; cleanup: @@ -2125,7 +2141,7 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig, "name")); else vname = ""; - + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, ISC_LOG_ERROR, "zone '%s': wrong class for view '%s'", @@ -2499,7 +2515,7 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) { } ns_interfacemgr_adjust(server->interfacemgr, list, ISC_TRUE); - + clean: ns_listenlist_detach(&list); return; @@ -2588,7 +2604,7 @@ setstring(ns_server_t *server, char **field, const char *value) { *field = copy; return (ISC_R_SUCCESS); -} +} /* * Replace the current value of '*field', a dynamically allocated @@ -2630,7 +2646,7 @@ set_limit(const cfg_obj_t **maps, const char *configname, result = isc_resource_setlimit(resourceid, value); isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, result == ISC_R_SUCCESS ? - ISC_LOG_DEBUG(3) : ISC_LOG_WARNING, + ISC_LOG_DEBUG(3) : ISC_LOG_WARNING, "set maximum %s to %" ISC_PRINT_QUADFORMAT "d: %s", description, value, isc_result_totext(result)); } @@ -2647,31 +2663,48 @@ set_limits(const cfg_obj_t **maps) { SETLIMIT("files", openfiles, "open files"); } -static isc_result_t -portlist_fromconf(dns_portlist_t *portlist, unsigned int family, - const cfg_obj_t *ports) +static void +portset_fromconf(isc_portset_t *portset, const cfg_obj_t *ports, + isc_boolean_t positive) { const cfg_listelt_t *element; - isc_result_t result = ISC_R_SUCCESS; for (element = cfg_list_first(ports); element != NULL; element = cfg_list_next(element)) { const cfg_obj_t *obj = cfg_listelt_value(element); - in_port_t port = (in_port_t)cfg_obj_asuint32(obj); - - result = dns_portlist_add(portlist, family, port); - if (result != ISC_R_SUCCESS) - break; + + if (cfg_obj_isuint32(obj)) { + in_port_t port = (in_port_t)cfg_obj_asuint32(obj); + + if (positive) + isc_portset_add(portset, port); + else + isc_portset_remove(portset, port); + } else { + const cfg_obj_t *obj_loport, *obj_hiport; + in_port_t loport, hiport; + + obj_loport = cfg_tuple_get(obj, "loport"); + loport = (in_port_t)cfg_obj_asuint32(obj_loport); + obj_hiport = cfg_tuple_get(obj, "hiport"); + hiport = (in_port_t)cfg_obj_asuint32(obj_hiport); + + if (positive) + isc_portset_addrange(portset, loport, hiport); + else { + isc_portset_removerange(portset, loport, + hiport); + } + } } - return (result); } static isc_result_t removed(dns_zone_t *zone, void *uap) { const char *type; - if (dns_zone_getview(zone) != uap) + if (dns_zone_getview(zone) != uap) return (ISC_R_SUCCESS); switch (dns_zone_gettype(zone)) { @@ -2704,28 +2737,31 @@ load_configuration(const char *filename, ns_server_t *server, const cfg_obj_t *maps[3]; const cfg_obj_t *obj; const cfg_obj_t *options; - const cfg_obj_t *v4ports, *v6ports; + const cfg_obj_t *usev4ports, *avoidv4ports, *usev6ports, *avoidv6ports; const cfg_obj_t *views; dns_view_t *view = NULL; dns_view_t *view_next; dns_viewlist_t tmpviewlist; dns_viewlist_t viewlist; - in_port_t listen_port; + in_port_t listen_port, udpport_low, udpport_high; int i; isc_interval_t interval; - isc_resourcevalue_t files; + isc_portset_t *v4portset = NULL; + isc_portset_t *v6portset = NULL; + isc_resourcevalue_t nfiles; isc_result_t result; isc_uint32_t heartbeat_interval; isc_uint32_t interface_interval; isc_uint32_t reserved; isc_uint32_t udpsize; + unsigned int maxsocks; cfg_aclconfctx_init(&aclconfctx); ISC_LIST_INIT(viewlist); /* Ensure exclusive access to configuration data. */ result = isc_task_beginexclusive(server->task); - RUNTIME_CHECK(result == ISC_R_SUCCESS); + RUNTIME_CHECK(result == ISC_R_SUCCESS); /* * Parse the global default pseudo-config file. @@ -2799,20 +2835,22 @@ load_configuration(const char *filename, ns_server_t *server, set_limits(maps); /* - * Sanity check on "files" limit. + * Check if max number of open sockets that the system allows is + * sufficiently large. Failing this condition is not necessarily fatal, + * but may cause subsequent runtime failures for a busy recursive + * server. */ - result = isc_resource_curlimit(isc_resource_openfiles, &files); - if (result == ISC_R_SUCCESS && files < FD_SETSIZE) { + result = isc_socketmgr_getmaxsockets(ns_g_socketmgr, &maxsocks); + if (result != ISC_R_SUCCESS) + maxsocks = 0; + result = isc_resource_getcurlimit(isc_resource_openfiles, &nfiles); + if (result == ISC_R_SUCCESS && (isc_resourcevalue_t)maxsocks > nfiles) { isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, ISC_LOG_WARNING, - "the 'files' limit (%" ISC_PRINT_QUADFORMAT "u) " - "is less than FD_SETSIZE (%d), increase " - "'files' in named.conf or recompile with a " - "smaller FD_SETSIZE.", files, FD_SETSIZE); - if (files > FD_SETSIZE) - files = FD_SETSIZE; - } else - files = FD_SETSIZE; + "max open files (%" ISC_PRINT_QUADFORMAT "u)" + " is smaller than max sockets (%u)", + nfiles, maxsocks); + } /* * Set the number of socket reserved for TCP, stdio etc. @@ -2821,20 +2859,23 @@ load_configuration(const char *filename, ns_server_t *server, result = ns_config_get(maps, "reserved-sockets", &obj); INSIST(result == ISC_R_SUCCESS); reserved = cfg_obj_asuint32(obj); - if (files < 128U) /* Prevent underflow. */ - reserved = 0; - else if (reserved > files - 128U) /* Mimimum UDP space. */ - reserved = files - 128; - if (reserved < 128U) /* Mimimum TCP/stdio space. */ + if (maxsocks != 0) { + if (maxsocks < 128U) /* Prevent underflow. */ + reserved = 0; + else if (reserved > maxsocks - 128U) /* Minimum UDP space. */ + reserved = maxsocks - 128; + } + /* Minimum TCP/stdio space. */ + if (reserved < 128U) reserved = 128; - if (reserved + 128U > files) { + if (reserved + 128U > maxsocks && maxsocks != 0) { isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, - NS_LOGMODULE_SERVER, ISC_LOG_WARNING, + NS_LOGMODULE_SERVER, ISC_LOG_WARNING, "less than 128 UDP sockets available after " - "applying 'reserved-sockets' and 'files'"); + "applying 'reserved-sockets' and 'maxsockets'"); } isc__socketmgr_setreserved(ns_g_socketmgr, reserved); - + /* * Configure various server options. */ @@ -2859,24 +2900,64 @@ load_configuration(const char *filename, ns_server_t *server, INSIST(result == ISC_R_SUCCESS); server->aclenv.match_mapped = cfg_obj_asboolean(obj); - v4ports = NULL; - v6ports = NULL; - (void)ns_config_get(maps, "avoid-v4-udp-ports", &v4ports); - (void)ns_config_get(maps, "avoid-v6-udp-ports", &v6ports); - if (v4ports != NULL || v6ports != NULL) { - dns_portlist_t *portlist = NULL; - result = dns_portlist_create(ns_g_mctx, &portlist); - if (result == ISC_R_SUCCESS && v4ports != NULL) - result = portlist_fromconf(portlist, AF_INET, v4ports); - if (result == ISC_R_SUCCESS && v6ports != NULL) - portlist_fromconf(portlist, AF_INET6, v6ports); - if (result == ISC_R_SUCCESS) - dns_dispatchmgr_setblackportlist(ns_g_dispatchmgr, portlist); - if (portlist != NULL) - dns_portlist_detach(&portlist); - CHECK(result); - } else - dns_dispatchmgr_setblackportlist(ns_g_dispatchmgr, NULL); + /* + * Configure sets of UDP query source ports. + */ + CHECKM(isc_portset_create(ns_g_mctx, &v4portset), + "creating UDP port set"); + CHECKM(isc_portset_create(ns_g_mctx, &v6portset), + "creating UDP port set"); + + usev4ports = NULL; + usev6ports = NULL; + avoidv4ports = NULL; + avoidv6ports = NULL; + + (void)ns_config_get(maps, "use-v4-udp-ports", &usev4ports); + if (usev4ports != NULL) + portset_fromconf(v4portset, usev4ports, ISC_TRUE); + else { + CHECKM(isc_net_getudpportrange(AF_INET, &udpport_low, + &udpport_high), + "get the default UDP/IPv4 port range"); + if (udpport_low == udpport_high) + isc_portset_add(v4portset, udpport_low); + else { + isc_portset_addrange(v4portset, udpport_low, + udpport_high); + } + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_INFO, + "using default UDP/IPv4 port range: [%d, %d]", + udpport_low, udpport_high); + } + (void)ns_config_get(maps, "avoid-v4-udp-ports", &avoidv4ports); + if (avoidv4ports != NULL) + portset_fromconf(v4portset, avoidv4ports, ISC_FALSE); + + (void)ns_config_get(maps, "use-v6-udp-ports", &usev6ports); + if (usev6ports != NULL) + portset_fromconf(v6portset, usev6ports, ISC_TRUE); + else { + CHECKM(isc_net_getudpportrange(AF_INET6, &udpport_low, + &udpport_high), + "get the default UDP/IPv6 port range"); + if (udpport_low == udpport_high) + isc_portset_add(v6portset, udpport_low); + else { + isc_portset_addrange(v6portset, udpport_low, + udpport_high); + } + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_INFO, + "using default UDP/IPv6 port range: [%d, %d]", + udpport_low, udpport_high); + } + (void)ns_config_get(maps, "avoid-v6-udp-ports", &avoidv6ports); + if (avoidv6ports != NULL) + portset_fromconf(v6portset, avoidv6ports, ISC_FALSE); + + dns_dispatchmgr_setavailports(ns_g_dispatchmgr, v4portset, v6portset); /* * Set the EDNS UDP size when we don't match a view. @@ -3037,7 +3118,7 @@ load_configuration(const char *filename, ns_server_t *server, NULL, &interval, ISC_FALSE)); } server->heartbeat_interval = heartbeat_interval; - + isc_interval_set(&interval, 1200, 0); CHECK(isc_timer_reset(server->pps_timer, isc_timertype_ticker, NULL, &interval, ISC_FALSE)); @@ -3184,6 +3265,15 @@ load_configuration(const char *filename, ns_server_t *server, if (first_time) ns_os_changeuser(); + /* + * Check that the working directory is writable. + */ + if (access(".", W_OK) != 0) { + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_ERROR, + "the working directory is not writable"); + } + /* * Configure the logging system. * @@ -3277,7 +3367,7 @@ load_configuration(const char *filename, ns_server_t *server, ns_os_writepidfile(lwresd_g_defaultpidfile, first_time); else ns_os_writepidfile(ns_g_defaultpidfile, first_time); - + obj = NULL; if (options != NULL && cfg_map_get(options, "memstatistics-file", &obj) == ISC_R_SUCCESS) @@ -3344,6 +3434,12 @@ load_configuration(const char *filename, ns_server_t *server, result = ISC_R_SUCCESS; cleanup: + if (v4portset != NULL) + isc_portset_destroy(ns_g_mctx, &v4portset); + + if (v6portset != NULL) + isc_portset_destroy(ns_g_mctx, &v6portset); + cfg_aclconfctx_destroy(&aclconfctx); if (parser != NULL) { @@ -3414,7 +3510,7 @@ load_zones(ns_server_t *server, isc_boolean_t stop) { */ CHECK(dns_zonemgr_forcemaint(server->zonemgr)); cleanup: - isc_task_endexclusive(server->task); + isc_task_endexclusive(server->task); return (result); } @@ -3442,7 +3538,7 @@ load_new_zones(ns_server_t *server, isc_boolean_t stop) { */ dns_zonemgr_resumexfrs(server->zonemgr); cleanup: - isc_task_endexclusive(server->task); + isc_task_endexclusive(server->task); return (result); } @@ -3501,7 +3597,7 @@ run_server(isc_task_t *task, isc_event_t *event) { ISC_LOG_NOTICE, "running"); } -void +void ns_server_flushonshutdown(ns_server_t *server, isc_boolean_t flush) { REQUIRE(NS_SERVER_VALID(server)); @@ -3635,7 +3731,7 @@ ns_server_create(isc_mem_t *mctx, ns_server_t **serverp) { server->interface_timer = NULL; server->heartbeat_timer = NULL; server->pps_timer = NULL; - + server->interface_interval = 0; server->heartbeat_interval = 0; @@ -3658,7 +3754,7 @@ ns_server_create(isc_mem_t *mctx, ns_server_t **serverp) { server->hostname_set = ISC_FALSE; server->hostname = NULL; - server->version_set = ISC_FALSE; + server->version_set = ISC_FALSE; server->version = NULL; server->server_usehostname = ISC_FALSE; server->server_id = NULL; @@ -3814,7 +3910,7 @@ ns_add_reserved_dispatch(ns_server_t *server, const isc_sockaddr_t *addr) { result = dns_dispatch_getudp(ns_g_dispatchmgr, ns_g_socketmgr, ns_g_taskmgr, &dispatch->addr, 4096, 1000, 32768, 16411, 16433, - attrs, attrmask, &dispatch->dispatch); + attrs, attrmask, &dispatch->dispatch); if (result != ISC_R_SUCCESS) goto cleanup; @@ -3917,7 +4013,7 @@ next_token(char **stringp, const char *delim) { break; } while (*res == '\0'); return (res); -} +} /* * Find the zone specified in the control channel command 'args', @@ -3975,14 +4071,14 @@ zone_from_args(ns_server_t *server, char *args, dns_zone_t **zonep) { } else { rdclass = dns_rdataclass_in; } - + if (viewtxt == NULL) viewtxt = "_default"; result = dns_viewlist_find(&server->viewlist, viewtxt, rdclass, &view); if (result != ISC_R_SUCCESS) goto fail1; - + result = dns_zt_find(view->zonetable, dns_fixedname_name(&name), 0, NULL, zonep); /* Partial match? */ @@ -4001,7 +4097,7 @@ ns_server_retransfercommand(ns_server_t *server, char *args) { isc_result_t result; dns_zone_t *zone = NULL; dns_zonetype_t type; - + result = zone_from_args(server, args, &zone); if (result != ISC_R_SUCCESS) return (result); @@ -4014,7 +4110,7 @@ ns_server_retransfercommand(ns_server_t *server, char *args) { result = ISC_R_NOTFOUND; dns_zone_detach(&zone); return (result); -} +} /* * Act on a "reload" command from the command channel. @@ -4025,7 +4121,7 @@ ns_server_reloadcommand(ns_server_t *server, char *args, isc_buffer_t *text) { dns_zone_t *zone = NULL; dns_zonetype_t type; const char *msg = NULL; - + result = zone_from_args(server, args, &zone); if (result != ISC_R_SUCCESS) return (result); @@ -4042,7 +4138,7 @@ ns_server_reloadcommand(ns_server_t *server, char *args, isc_buffer_t *text) { } else { result = dns_zone_load(zone); dns_zone_detach(&zone); - switch (result) { + switch (result) { case ISC_R_SUCCESS: msg = "zone reload successful"; break; @@ -4064,7 +4160,7 @@ ns_server_reloadcommand(ns_server_t *server, char *args, isc_buffer_t *text) { isc_buffer_putmem(text, (const unsigned char *)msg, strlen(msg) + 1); return (result); -} +} /* * Act on a "reconfig" command from the command channel. @@ -4091,14 +4187,14 @@ ns_server_notifycommand(ns_server_t *server, char *args, isc_buffer_t *text) { return (result); if (zone == NULL) return (ISC_R_UNEXPECTEDEND); - + dns_zone_notify(zone); dns_zone_detach(&zone); if (sizeof(msg) <= isc_buffer_availablelength(text)) isc_buffer_putmem(text, msg, sizeof(msg)); return (ISC_R_SUCCESS); -} +} /* * Act on a "refresh" command from the command channel. @@ -4125,17 +4221,17 @@ ns_server_refreshcommand(ns_server_t *server, char *args, isc_buffer_t *text) { isc_buffer_putmem(text, msg1, sizeof(msg1)); return (ISC_R_SUCCESS); } - + dns_zone_detach(&zone); if (sizeof(msg2) <= isc_buffer_availablelength(text)) isc_buffer_putmem(text, msg2, sizeof(msg2)); return (ISC_R_FAILURE); -} +} isc_result_t ns_server_togglequerylog(ns_server_t *server) { server->log_queries = server->log_queries ? ISC_FALSE : ISC_TRUE; - + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, ISC_LOG_INFO, "query logging is now %s", @@ -4239,15 +4335,15 @@ ns_server_dumpstats(ns_server_t *server) { CHECKMF(isc_stdio_open(server->statsfile, "a", &fp), "could not open statistics dump file", server->statsfile); - + ncounters = DNS_STATS_NCOUNTERS; fprintf(fp, "+++ Statistics Dump +++ (%lu)\n", (unsigned long)now); - + for (i = 0; i < ncounters; i++) fprintf(fp, "%s %" ISC_PRINT_QUADFORMAT "u\n", dns_statscounter_names[i], server->querystats[i]); - + zone = NULL; for (result = dns_zone_first(server->zonemgr, &zone); result == ISC_R_SUCCESS; @@ -4258,7 +4354,7 @@ ns_server_dumpstats(ns_server_t *server) { char zonename[DNS_NAME_FORMATSIZE]; dns_view_t *view; char *viewname; - + dns_name_format(dns_zone_getorigin(zone), zonename, sizeof(zonename)); view = dns_zone_getview(zone); @@ -4278,7 +4374,7 @@ ns_server_dumpstats(ns_server_t *server) { if (result == ISC_R_NOMORE) result = ISC_R_SUCCESS; CHECK(result); - + fprintf(fp, "--- Statistics Dump --- (%lu)\n", (unsigned long)now); cleanup: @@ -4306,7 +4402,7 @@ static isc_result_t add_view_tolist(struct dumpcontext *dctx, dns_view_t *view) { struct viewlistentry *vle; isc_result_t result = ISC_R_SUCCESS; - + /* * Prevent duplicate views. */ @@ -4369,7 +4465,7 @@ dumpdone(void *arg, isc_result_t result) { struct dumpcontext *dctx = arg; char buf[1024+32]; const dns_master_style_t *style; - + if (result != ISC_R_SUCCESS) goto cleanup; if (dctx->mdctx != NULL) @@ -4526,7 +4622,7 @@ ns_server_dumpdb(ns_server_t *server, char *args) { dctx->dumpzones = ISC_TRUE; dctx->dumpcache = ISC_FALSE; ptr = next_token(&args, " \t"); - } + } nextview: for (view = ISC_LIST_HEAD(server->viewlist); @@ -4646,7 +4742,7 @@ ns_server_validation(ns_server_t *server, char *args) { else result = ISC_R_FAILURE; out: - isc_task_endexclusive(server->task); + isc_task_endexclusive(server->task); return (result); } @@ -4689,7 +4785,7 @@ ns_server_flushcache(ns_server_t *server, char *args) { else result = ISC_R_FAILURE; } - isc_task_endexclusive(server->task); + isc_task_endexclusive(server->task); return (result); } @@ -4746,7 +4842,7 @@ ns_server_flushname(ns_server_t *server, char *args) { result = ISC_R_NOTFOUND; else result = ISC_R_FAILURE; - isc_task_endexclusive(server->task); + isc_task_endexclusive(server->task); return (result); } @@ -4798,7 +4894,7 @@ ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args) { char *journal; const char *vname, *sep; isc_boolean_t frozen; - + result = zone_from_args(server, args, &zone); if (result != ISC_R_SUCCESS) return (result); @@ -4806,7 +4902,7 @@ ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args) { result = isc_task_beginexclusive(server->task); RUNTIME_CHECK(result == ISC_R_SUCCESS); tresult = ISC_R_SUCCESS; - for (view = ISC_LIST_HEAD(server->viewlist); + for (view = ISC_LIST_HEAD(server->viewlist); view != NULL; view = ISC_LIST_NEXT(view, link)) { result = dns_view_freezezones(view, freeze); diff --git a/bin/named/unix/include/named/os.h b/bin/named/unix/include/named/os.h index 24afdcbbcc4a..6c603dcc2a22 100644 --- a/bin/named/unix/include/named/os.h +++ b/bin/named/unix/include/named/os.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: os.h,v 1.22.18.3 2005/04/29 00:15:39 marka Exp $ */ +/* $Id: os.h,v 1.22.18.5 2008/10/24 01:43:17 tbox Exp $ */ #ifndef NS_OS_H #define NS_OS_H 1 @@ -45,12 +45,14 @@ ns_os_inituserinfo(const char *username); void ns_os_changeuser(void); +void +ns_os_adjustnofile(void); + void ns_os_minprivs(void); void ns_os_writepidfile(const char *filename, isc_boolean_t first_time); - void ns_os_shutdown(void); diff --git a/bin/named/unix/os.c b/bin/named/unix/os.c index 386461238fe5..ad26a8e9b0e9 100644 --- a/bin/named/unix/os.c +++ b/bin/named/unix/os.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: os.c,v 1.66.18.11 2006/02/03 23:51:38 marka Exp $ */ +/* $Id: os.c,v 1.66.18.17 2008/10/24 01:43:17 tbox Exp $ */ /*! \file */ @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -116,6 +117,16 @@ static int dfd[2] = { -1, -1 }; static isc_boolean_t non_root = ISC_FALSE; static isc_boolean_t non_root_caps = ISC_FALSE; +#if defined(HAVE_CAPSET) +#undef _POSIX_SOURCE +#ifdef HAVE_SYS_CAPABILITY_H +#include +#else +#include +int capset(cap_user_header_t hdrp, const cap_user_data_t datap); +#endif +#include +#else /*% * We define _LINUX_FS_H to prevent it from being included. We don't need * anything from it, and the files it includes cause warnings with 2.2 @@ -148,6 +159,7 @@ static isc_boolean_t non_root_caps = ISC_FALSE; #endif #define SYS_capset __NR_capset #endif +#endif static void linux_setcaps(unsigned int caps) { @@ -165,13 +177,23 @@ linux_setcaps(unsigned int caps) { cap.effective = caps; cap.permitted = caps; cap.inheritable = 0; - if (syscall(SYS_capset, &caphead, &cap) < 0) { +#ifdef HAVE_CAPSET + if (capset(&caphead, &cap) < 0 ) { isc__strerror(errno, strbuf, sizeof(strbuf)); ns_main_earlyfatal("capset failed: %s:" " please ensure that the capset kernel" " module is loaded. see insmod(8)", strbuf); } +#else + if (syscall(SYS_capset, &caphead, &cap) < 0) { + isc__strerror(errno, strbuf, sizeof(strbuf)); + ns_main_earlyfatal("syscall(capset) failed: %s:" + " please ensure that the capset kernel" + " module is loaded. see insmod(8)", + strbuf); + } +#endif } static void @@ -326,7 +348,7 @@ ns_os_daemonize(void) { /* * Wait for the child to finish loading for the first time. * This would be so much simpler if fork() worked once we - * were multi-threaded. + * were multi-threaded. */ (void)close(dfd[1]); do { @@ -496,15 +518,37 @@ ns_os_changeuser(void) { ns_main_earlyfatal("setuid(): %s", strbuf); } -#if defined(HAVE_LINUX_CAPABILITY_H) && !defined(HAVE_LINUXTHREADS) - linux_minprivs(); -#endif #if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_DUMPABLE) /* * Restore the ability of named to drop core after the setuid() * call has disabled it. */ - prctl(PR_SET_DUMPABLE,1,0,0,0); + if (prctl(PR_SET_DUMPABLE,1,0,0,0) < 0) { + isc__strerror(errno, strbuf, sizeof(strbuf)); + ns_main_earlywarning("prctl(PR_SET_DUMPABLE) failed: %s", + strbuf); + } +#endif +#if defined(HAVE_LINUX_CAPABILITY_H) && !defined(HAVE_LINUXTHREADS) + linux_minprivs(); +#endif +} + +void +ns_os_adjustnofile() { +#ifdef HAVE_LINUXTHREADS + isc_result_t result; + isc_resourcevalue_t newvalue; + + /* + * Linux: max number of open files specified by one thread doesn't seem + * to apply to other threads on Linux. + */ + newvalue = ISC_RESOURCE_UNLIMITED; + + result = isc_resource_setlimit(isc_resource_openfiles, newvalue); + if (result != ISC_R_SUCCESS) + ns_main_earlywarning("couldn't adjust limit on open files"); #endif } @@ -665,7 +709,7 @@ ns_os_shutdownmsg(char *command, isc_buffer_t *text) { ptr = next_token(&input, " \t"); if (ptr == NULL) return; - + if (strcmp(ptr, "-p") != 0) return; diff --git a/bin/named/update.c b/bin/named/update.c index 98054f8b3ceb..fb6dec2f11e0 100644 --- a/bin/named/update.c +++ b/bin/named/update.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: update.c,v 1.109.18.23 2007/08/28 07:20:01 tbox Exp $ */ +/* $Id: update.c,v 1.109.18.27 2008/02/07 03:16:08 marka Exp $ */ #include @@ -114,7 +114,7 @@ } \ update_log(client, zone, LOGLEVEL_PROTOCOL, \ "update %s: %s (%s)", _what, \ - msg, isc_result_totext(result)); \ + msg, isc_result_totext(result)); \ if (result != ISC_R_SUCCESS) goto failure; \ } while (0) @@ -403,7 +403,7 @@ foreach_node_rr_action(void *data, dns_rdataset_t *rdataset) { result = dns_rdataset_next(rdataset)) { rr_t rr = { 0, DNS_RDATA_INIT }; - + dns_rdataset_current(rdataset, &rr.rdata); rr.ttl = rdataset->ttl; result = (*ctx->rr_action)(ctx->rr_action_data, &rr); @@ -843,10 +843,14 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db, /* A new unique name begins here. */ node = NULL; result = dns_db_findnode(db, name, ISC_FALSE, &node); - if (result == ISC_R_NOTFOUND) + if (result == ISC_R_NOTFOUND) { + dns_diff_clear(&trash); return (DNS_R_NXRRSET); - if (result != ISC_R_SUCCESS) + } + if (result != ISC_R_SUCCESS) { + dns_diff_clear(&trash); return (result); + } /* A new unique type begins here. */ while (t != NULL && dns_name_equal(&t->name, name)) { @@ -854,7 +858,7 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db, dns_rdataset_t rdataset; dns_diff_t d_rrs; /* Database RRs with this name and type */ - dns_diff_t u_rrs; /* Update RRs with + dns_diff_t u_rrs; /* Update RRs with this name and type */ *typep = type = t->rdata.type; @@ -874,6 +878,7 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db, &rdataset, NULL); if (result != ISC_R_SUCCESS) { dns_db_detachnode(db, &node); + dns_diff_clear(&trash); return (DNS_R_NXRRSET); } @@ -1119,7 +1124,7 @@ typedef struct { static isc_result_t add_rr_prepare_action(void *data, rr_t *rr) { - isc_result_t result = ISC_R_SUCCESS; + isc_result_t result = ISC_R_SUCCESS; add_rr_prepare_ctx_t *ctx = data; dns_difftuple_t *tuple = NULL; isc_boolean_t equal; @@ -1647,10 +1652,11 @@ ksk_sanity(dns_db_t *db, dns_dbversion_t *ver) { * Add RRSIG records for an RRset, recording the change in "diff". */ static isc_result_t -add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, - dns_rdatatype_t type, dns_diff_t *diff, dst_key_t **keys, - unsigned int nkeys, isc_mem_t *mctx, isc_stdtime_t inception, - isc_stdtime_t expire, isc_boolean_t check_ksk) +add_sigs(ns_client_t *client, dns_zone_t *zone, dns_db_t *db, + dns_dbversion_t *ver, dns_name_t *name, dns_rdatatype_t type, + dns_diff_t *diff, dst_key_t **keys, unsigned int nkeys, + isc_mem_t *mctx, isc_stdtime_t inception, isc_stdtime_t expire, + isc_boolean_t check_ksk) { isc_result_t result; dns_dbnode_t *node = NULL; @@ -1659,6 +1665,7 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, isc_buffer_t buffer; unsigned char data[1024]; /* XXX */ unsigned int i; + isc_boolean_t added_sig = ISC_FALSE; dns_rdataset_init(&rdataset); isc_buffer_init(&buffer, data, sizeof(data)); @@ -1671,14 +1678,14 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, dns_db_detachnode(db, &node); for (i = 0; i < nkeys; i++) { - + if (check_ksk && type != dns_rdatatype_dnskey && (dst_key_flags(keys[i]) & DNS_KEYFLAG_KSK) != 0) continue; if (!dst_key_isprivate(keys[i])) continue; - + /* Calculate the signature, creating a RRSIG RDATA. */ CHECK(dns_dnssec_sign(name, &rdataset, keys[i], &inception, &expire, @@ -1689,6 +1696,13 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, CHECK(update_one_rr(db, ver, diff, DNS_DIFFOP_ADD, name, rdataset.ttl, &sig_rdata)); dns_rdata_reset(&sig_rdata); + added_sig = ISC_TRUE; + } + if (!added_sig) { + update_log(client, zone, ISC_LOG_ERROR, + "found no private keys, " + "unable to generate any signatures"); + result = ISC_R_NOTFOUND; } failure: @@ -1770,7 +1784,7 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db, CHECK(dns_db_findnode(db, dns_db_origin(db), ISC_FALSE, &node)); dns_rdataset_init(&rdataset); CHECK(dns_db_findrdataset(db, node, newver, dns_rdatatype_soa, 0, - (isc_stdtime_t) 0, &rdataset, NULL)); + (isc_stdtime_t) 0, &rdataset, NULL)); CHECK(dns_rdataset_first(&rdataset)); dns_rdataset_current(&rdataset, &rdata); CHECK(dns_rdata_tostruct(&rdata, &soa, NULL)); @@ -1820,9 +1834,9 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db, */ CHECK(rrset_exists(db, newver, name, type, 0, &flag)); if (flag) { - CHECK(add_sigs(db, newver, name, type, - &sig_diff, zone_keys, nkeys, - client->mctx, inception, + CHECK(add_sigs(client, zone, db, newver, name, + type, &sig_diff, zone_keys, + nkeys, client->mctx, inception, expire, check_ksk)); } skip: @@ -2006,10 +2020,10 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db, dns_rdatatype_rrsig, dns_rdatatype_nsec, NULL, &sig_diff)); } else if (t->op == DNS_DIFFOP_ADD) { - CHECK(add_sigs(db, newver, &t->name, dns_rdatatype_nsec, - &sig_diff, zone_keys, nkeys, - client->mctx, inception, expire, - check_ksk)); + CHECK(add_sigs(client, zone, db, newver, &t->name, + dns_rdatatype_nsec, &sig_diff, + zone_keys, nkeys, client->mctx, + inception, expire, check_ksk)); } else { INSIST(0); } @@ -2274,7 +2288,7 @@ check_mx(ns_client_t *client, dns_zone_t *zone, ownerbuf, namebuf, dns_result_totext(DNS_R_MXISADDRESS)); } - + /* * Check zone integrity checks. */ @@ -2474,7 +2488,7 @@ update_action(isc_task_t *task, isc_event_t *event) { else if (client->signer == NULL) CHECK(checkupdateacl(client, NULL, "update", zonename, ISC_FALSE)); - + if (dns_zone_getupdatedisabled(zone)) FAILC(DNS_R_REFUSED, "dynamic update temporarily disabled"); @@ -2881,7 +2895,7 @@ update_action(isc_task_t *task, isc_event_t *event) { * The reason for failure should have been logged at this point. */ if (ver != NULL) { - update_log(client, zone, LOGLEVEL_DEBUG, + update_log(client, zone, LOGLEVEL_DEBUG, "rolling back"); dns_db_closeversion(db, &ver, ISC_FALSE); } @@ -2933,7 +2947,7 @@ updatedone_action(isc_task_t *task, isc_event_t *event) { static void forward_fail(isc_task_t *task, isc_event_t *event) { - ns_client_t *client = (ns_client_t *)event->ev_arg; + ns_client_t *client = (ns_client_t *)event->ev_arg; UNUSED(task); diff --git a/bin/nsupdate/Makefile.in b/bin/nsupdate/Makefile.in index 6bb22f846ca2..713ec30b60f7 100644 --- a/bin/nsupdate/Makefile.in +++ b/bin/nsupdate/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2000-2002 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.22.18.1 2004/07/20 07:03:20 marka Exp $ +# $Id: Makefile.in,v 1.22.18.3 2008/08/29 23:46:16 tbox Exp $ srcdir = @srcdir@ VPATH = @srcdir@ @@ -55,7 +55,7 @@ UOBJS = SRCS = nsupdate.c -MANPAGES = nsupdate.8 +MANPAGES = nsupdate.1 HTMLPAGES = nsupdate.html @@ -76,8 +76,8 @@ clean distclean:: installdirs: $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${bindir} - $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man8 + $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man1 install:: nsupdate@EXEEXT@ installdirs ${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} nsupdate@EXEEXT@ ${DESTDIR}${bindir} - ${INSTALL_DATA} ${srcdir}/nsupdate.8 ${DESTDIR}${mandir}/man8 + ${INSTALL_DATA} ${srcdir}/nsupdate.1 ${DESTDIR}${mandir}/man1 diff --git a/bin/nsupdate/nsupdate.8 b/bin/nsupdate/nsupdate.1 similarity index 97% rename from bin/nsupdate/nsupdate.8 rename to bin/nsupdate/nsupdate.1 index 8e3963acc3de..454f50560f20 100644 --- a/bin/nsupdate/nsupdate.8 +++ b/bin/nsupdate/nsupdate.1 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000-2003 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: nsupdate.8,v 1.30.18.14 2007/05/09 03:33:13 marka Exp $ +.\" $Id: nsupdate.1,v 1.1.4.2 2008/09/01 02:29:00 tbox Exp $ .\" .hy 0 .ad l @@ -24,7 +24,7 @@ .\" Manual: BIND9 .\" Source: BIND9 .\" -.TH "NSUPDATE" "8" "Jun 30, 2000" "BIND9" "BIND9" +.TH "NSUPDATE" "1" "Jun 30, 2000" "BIND9" "BIND9" .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) @@ -342,7 +342,7 @@ base\-64 encoding of HMAC\-MD5 key created by .PP The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library for its cryptographic operations, and may change in future releases. .SH "COPYRIGHT" -Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000\-2003 Internet Software Consortium. .br diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c index 7f101744d9dd..88749e64f957 100644 --- a/bin/nsupdate/nsupdate.c +++ b/bin/nsupdate/nsupdate.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: nsupdate.c,v 1.130.18.19 2007/08/28 07:20:01 tbox Exp $ */ +/* $Id: nsupdate.c,v 1.130.18.22 2008/01/17 23:45:58 tbox Exp $ */ /*! \file */ @@ -311,7 +311,7 @@ parse_hmac(dns_name_t **hmac, const char *hmacstr, size_t len) { strncpy(buf, hmacstr, len); buf[len] = 0; - + if (strcasecmp(buf, "hmac-md5") == 0) { *hmac = DNS_TSIG_HMACMD5_NAME; } else if (strncasecmp(buf, "hmac-md5-", 9) == 0) { @@ -1155,7 +1155,7 @@ evaluate_key(char *cmdline) { secret = isc_mem_allocate(mctx, secretlen); if (secret == NULL) fatal("out of memory"); - + isc_buffer_init(&secretbuf, secret, secretlen); result = isc_base64_decodestring(secretstr, &secretbuf); if (result != ISC_R_SUCCESS) { @@ -1222,8 +1222,8 @@ evaluate_class(char *cmdline) { } r.base = word; - r.length = strlen(word); - result = dns_rdataclass_fromtext(&rdclass, &r); + r.length = strlen(word); + result = dns_rdataclass_fromtext(&rdclass, &r); if (result != ISC_R_SUCCESS) { fprintf(stderr, "could not parse class name: %s\n", word); return (STATUS_SYNTAX); @@ -1407,8 +1407,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) { failure: if (name != NULL) dns_message_puttempname(updatemsg, &name); - if (rdata != NULL) - dns_message_puttemprdata(updatemsg, &rdata); + dns_message_puttemprdata(updatemsg, &rdata); return (STATUS_SYNTAX); } @@ -1480,7 +1479,7 @@ show_message(dns_message_t *msg) { setzone(userzone); bufsz = INITTEXT; - do { + do { if (bufsz > MAXTEXT) { fprintf(stderr, "could not allocate large enough " "buffer to display message\n"); @@ -1662,7 +1661,7 @@ update_completed(isc_task_t *task, isc_event_t *event) { char buf[64]; isc_buffer_t b; dns_rdataset_t *rds; - + isc_buffer_init(&b, buf, sizeof(buf) - 1); result = dns_rcode_totext(answer->rcode, &b); check_result(result, "dns_rcode_totext"); @@ -1678,7 +1677,7 @@ update_completed(isc_task_t *task, isc_event_t *event) { int bufsz; bufsz = INITTEXT; - do { + do { if (bufsz > MAXTEXT) { fprintf(stderr, "could not allocate large " "enough buffer to display message\n"); @@ -1766,7 +1765,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) { ddebug("recvsoa()"); requests--; - + REQUIRE(event->ev_type == DNS_EVENT_REQUESTDONE); reqev = (dns_requestevent_t *)event; request = reqev->request; @@ -1883,7 +1882,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) { section = DNS_SECTION_ANSWER; else if (pass == 1) section = DNS_SECTION_AUTHORITY; - else + else goto droplabel; result = dns_message_firstname(rcvmsg, section); @@ -1912,7 +1911,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) { break; } } - + result = dns_message_nextname(rcvmsg, section); } @@ -1977,7 +1976,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) { dns_message_destroy(&rcvmsg); ddebug("Out of recvsoa"); return; - + droplabel: result = dns_message_firstname(soaquery, DNS_SECTION_QUESTION); INSIST(result == ISC_R_SUCCESS); diff --git a/bin/nsupdate/nsupdate.docbook b/bin/nsupdate/nsupdate.docbook index 0ea49061addb..43fe69ad4853 100644 --- a/bin/nsupdate/nsupdate.docbook +++ b/bin/nsupdate/nsupdate.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []> - + Jun 30, 2000 nsupdate - 8 + 1 BIND9 @@ -39,6 +39,7 @@ 2005 2006 2007 + 2008 Internet Systems Consortium, Inc. ("ISC")
diff --git a/bin/nsupdate/nsupdate.html b/bin/nsupdate/nsupdate.html index d11b57ea6eb8..1fe0f9c15806 100644 --- a/bin/nsupdate/nsupdate.html +++ b/bin/nsupdate/nsupdate.html @@ -1,5 +1,5 @@ - + @@ -32,7 +32,7 @@

nsupdate [-d] [[-y [hmac:]keyname:secret] | [-k keyfile]] [-t timeout] [-u udptimeout] [-r udpretries] [-v] [filename]

-

DESCRIPTION

+

DESCRIPTION

nsupdate is used to submit Dynamic DNS Update requests as defined in RFC2136 to a name server. @@ -153,7 +153,7 @@

-

INPUT FORMAT

+

INPUT FORMAT

nsupdate reads input from filename @@ -402,7 +402,7 @@

-

EXAMPLES

+

EXAMPLES

The examples below show how nsupdate @@ -456,7 +456,7 @@

-

FILES

+

FILES

/etc/resolv.conf

@@ -475,7 +475,7 @@

-

SEE ALSO

+

SEE ALSO

RFC2136, RFC3007, RFC2104, @@ -488,7 +488,7 @@

-

BUGS

+

BUGS

The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library diff --git a/bin/rndc/rndc-confgen.c b/bin/rndc/rndc-confgen.c index 0764104ffa22..bb7ba8151ef9 100644 --- a/bin/rndc/rndc-confgen.c +++ b/bin/rndc/rndc-confgen.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001, 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rndc-confgen.c,v 1.18.18.3 2005/04/29 00:15:40 marka Exp $ */ +/* $Id: rndc-confgen.c,v 1.18.18.5 2008/10/15 23:46:06 tbox Exp $ */ /*! \file */ @@ -62,7 +62,7 @@ #define DEFAULT_PORT 953 static char program[256]; -char *progname; +const char *progname; isc_boolean_t verbose = ISC_FALSE; @@ -148,7 +148,7 @@ main(int argc, char **argv) { isc_boolean_t keyonly = ISC_FALSE; int len; - keydef = keyfile = RNDC_KEYFILE; + keydef = keyfile = RNDC_KEYFILE; result = isc_file_progname(*argv, program, sizeof(program)); if (result != ISC_R_SUCCESS) @@ -286,7 +286,7 @@ main(int argc, char **argv) { fatal("isc_mem_get(%d) failed\n", len); snprintf(buf, len, "%s%s%s", chrootdir, (*keyfile != '/') ? "/" : "", keyfile); - + write_key_file(buf, user, keyname, &key_txtbuffer); isc_mem_put(mctx, buf, len); } diff --git a/bin/rndc/rndc.8 b/bin/rndc/rndc.8 index 14a51b3c62f8..6858ed77cb15 100644 --- a/bin/rndc/rndc.8 +++ b/bin/rndc/rndc.8 @@ -13,7 +13,7 @@ .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.\" $Id: rndc.8,v 1.26.18.15 2007/06/20 02:26:58 marka Exp $ +.\" $Id: rndc.8,v 1.26.18.16 2007/12/14 22:37:16 marka Exp $ .\" .hy 0 .ad l @@ -133,6 +133,7 @@ Several error messages could be clearer. .SH "SEE ALSO" .PP \fBrndc.conf\fR(5), +\fBrndc\-confgen\fR(8), \fBnamed\fR(8), \fBnamed.conf\fR(5), \fBndc\fR(8), diff --git a/bin/rndc/rndc.c b/bin/rndc/rndc.c index b916aea88bd0..772cc2975ca1 100644 --- a/bin/rndc/rndc.c +++ b/bin/rndc/rndc.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rndc.c,v 1.96.18.17.42.3 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: rndc.c,v 1.96.18.21 2008/10/15 03:07:19 marka Exp $ */ /*! \file */ @@ -61,7 +61,7 @@ #define SERVERADDRS 10 -char *progname; +const char *progname; isc_boolean_t verbose; static const char *admin_conffile; @@ -93,7 +93,7 @@ static void usage(int status) { fprintf(stderr, "\ Usage: %s [-c config] [-s server] [-p port]\n\ - [-k key-file ] [-y key] [-V] command\n\ + [-k key-file ] [-y key] [-V] command\n\ \n\ command is one of the following:\n\ \n\ @@ -106,10 +106,10 @@ command is one of the following:\n\ Retransfer a single zone without checking serial number.\n\ freeze Suspend updates to all dynamic zones.\n\ freeze zone [class [view]]\n\ - Suspend updates to a dynamic zone.\n\ + Suspend updates to a dynamic zone.\n\ thaw Enable updates to all dynamic zones and reload them.\n\ thaw zone [class [view]]\n\ - Enable updates to a frozen dynamic zone and reload it.\n\ + Enable updates to a frozen dynamic zone and reload it.\n\ notify zone [class [view]]\n\ Resend NOTIFY messages for the zone.\n\ reconfig Reload configuration file and new zones only.\n\ @@ -152,7 +152,7 @@ get_addresses(const char *host, in_port_t port) { result = isc_sockaddr_frompath(&serveraddrs[nserveraddrs], host); if (result == ISC_R_SUCCESS) - nserveraddrs++; + nserveraddrs++; } else { count = SERVERADDRS - nserveraddrs; result = bind9_getaddresses(host, port, @@ -485,7 +485,7 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname, (void)cfg_map_get(config, "server", &servers); if (servers != NULL) { for (elt = cfg_list_first(servers); - elt != NULL; + elt != NULL; elt = cfg_list_next(elt)) { const char *name; @@ -521,7 +521,7 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname, else { DO("get config key list", cfg_map_get(config, "key", &keys)); for (elt = cfg_list_first(keys); - elt != NULL; + elt != NULL; elt = cfg_list_next(elt)) { key = cfg_listelt_value(elt); @@ -599,7 +599,7 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname, get_addresses(name, (in_port_t) myport); else fprintf(stderr, "too many address: " - "%s: dropped\n", name); + "%s: dropped\n", name); continue; } sa = *cfg_obj_assockaddr(address); @@ -739,7 +739,7 @@ main(int argc, char **argv) { case 'y': keyname = isc_commandline_argument; break; - + case '?': usage(0); break; @@ -773,7 +773,7 @@ main(int argc, char **argv) { logdest.file.maximum_size = 0; DO("creating log channel", isc_log_createchannel(logconfig, "stderr", - ISC_LOG_TOFILEDESC, ISC_LOG_INFO, &logdest, + ISC_LOG_TOFILEDESC, ISC_LOG_INFO, &logdest, ISC_LOG_PRINTTAG|ISC_LOG_PRINTLEVEL)); DO("enabling log channel", isc_log_usechannel(logconfig, "stderr", NULL, NULL)); diff --git a/bin/rndc/rndc.docbook b/bin/rndc/rndc.docbook index 0719a74461b5..f2f0a0d6a84b 100644 --- a/bin/rndc/rndc.docbook +++ b/bin/rndc/rndc.docbook @@ -18,7 +18,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + June 30, 2000 @@ -224,6 +224,9 @@ rndc.conf5 , + + rndc-confgen8 + , named8 , diff --git a/bin/rndc/rndc.html b/bin/rndc/rndc.html index d4d0ebb693fe..c460225cb646 100644 --- a/bin/rndc/rndc.html +++ b/bin/rndc/rndc.html @@ -14,7 +14,7 @@ - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. --> - + @@ -149,6 +149,7 @@

SEE ALSO

rndc.conf(5), + rndc-confgen(8), named(8), named.conf(5), ndc(8), @@ -156,7 +157,7 @@

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/configure.in b/configure.in index fb2f2e2aac3a..6320b6a18b19 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl esyscmd([sed "s/^/# /" COPYRIGHT])dnl AC_DIVERT_POP()dnl -AC_REVISION($Revision: 1.355.18.71.8.2 $) +AC_REVISION($Revision: 1.355.18.85 $) AC_INIT(lib/dns/name.c) AC_PREREQ(2.59) @@ -232,6 +232,15 @@ case "$host" in STD_CDEFINES="$STD_CDEFINES -D_XPG4_2 -D__EXTENSIONS__" CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__" ;; + # POSIX doesn't include the IPv6 Advanced Socket API and glibc hides + # parts of the IPv6 Advanced Socket API as a result. This is stupid + # as it breaks how the two halves (Basic and Advanced) of the IPv6 + # Socket API were designed to be used but we have to live with it. + # Define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. + *-linux*) + STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE" + CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" + ;; esac AC_HEADER_STDC @@ -245,6 +254,7 @@ AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/param AC_C_CONST AC_C_INLINE +AC_C_VOLATILE AC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME)) # @@ -316,6 +326,78 @@ lifconf.lifc_len = 0; ISC_PLATFORM_HAVELIFCONF="#undef ISC_PLATFORM_HAVELIFCONF"]) AC_SUBST(ISC_PLATFORM_HAVELIFCONF) +# +# check if we have kqueue +# +AC_ARG_ENABLE(kqueue, + [ --enable-kqueue use BSD kqueue when available [[default=yes]]], + want_kqueue="$enableval", want_kqueue="yes") +case $want_kqueue in +yes) + AC_CHECK_FUNC(kqueue, ac_cv_have_kqueue=yes, ac_cv_have_kqueue=no) + case $ac_cv_have_kqueue in + yes) + ISC_PLATFORM_HAVEKQUEUE="#define ISC_PLATFORM_HAVEKQUEUE 1" + ;; + *) + ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE" + ;; + esac + ;; +*) + ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE" + ;; +esac +AC_SUBST(ISC_PLATFORM_HAVEKQUEUE) + +# +# check if we have epoll. Linux kernel 2.4 has epoll_create() which fails, +# so we need to try running the code, not just test its existence. +# +AC_ARG_ENABLE(epoll, + [ --enable-epoll use Linux epoll when available [[default=yes]]], + want_epoll="$enableval", want_epoll="yes") +case $want_epoll in +yes) + AC_MSG_CHECKING(epoll support) + AC_TRY_RUN([ +#include +int main() { + if (epoll_create(1) < 0) + return (1); + return (0); +} +], + [AC_MSG_RESULT(yes) + ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"], + [AC_MSG_RESULT(no) + ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"]) + ;; +*) + ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL" + ;; +esac +AC_SUBST(ISC_PLATFORM_HAVEEPOLL) + +# +# check if we support /dev/poll +# +AC_ARG_ENABLE(devpoll, + [ --enable-devpoll use /dev/poll when available [[default=yes]]], + want_devpoll="$enableval", want_devpoll="yes") +case $want_devpoll in +yes) + AC_CHECK_HEADERS(sys/devpoll.h, + ISC_PLATFORM_HAVEDEVPOLL="#define ISC_PLATFORM_HAVEDEVPOLL 1" + , + ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL" + ) + ;; +*) + ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL" + ;; +esac +AC_SUBST(ISC_PLATFORM_HAVEDEVPOLL) # # check if we need to #include sys/select.h explicitly @@ -898,6 +980,16 @@ case "$host" in ;; esac +# +# Work around Solaris's select() limitations. +# +case "$host" in + *-solaris2.[[89]]|*-solaris2.1?) + AC_DEFINE(FD_SETSIZE, 65536, + [Solaris hack to get select_large_fdset.]) + ;; +esac + # # Purify support # @@ -943,6 +1035,14 @@ AC_SUBST(PURIFY) # # GNU libtool support # +case $build_os in +sunos*) + # Just set the maximum command line length for sunos as it otherwise + # takes a exceptionally long time to work it out. Required for libtool. + lt_cv_sys_max_cmd_len=4096; + ;; +esac + AC_ARG_WITH(libtool, [ --with-libtool use GNU libtool (following indented options supported)], use_libtool="$withval", use_libtool="no") @@ -1695,7 +1795,8 @@ AC_ARG_ENABLE(linux-caps, [ --disable-linux-caps disable linux capabilities]) case "$enable_linux_caps" in yes|'') - AC_CHECK_HEADERS(linux/capability.h) + AC_CHECK_HEADERS(linux/capability.h sys/capability.h) + AC_CHECK_FUNCS(capset) ;; no) ;; @@ -1781,6 +1882,18 @@ AC_MSG_RESULT(cannot determine type of rlim_cur when cross compiling - assuming ]) AC_SUBST(ISC_PLATFORM_RLIMITTYPE) +# +# Older HP-UX doesn't have gettune +# +case "$host" in + *-hp-hpux*) + AC_CHECK_HEADERS(sys/dyntune.h) + ;; + *) + ;; +esac + + # # Compaq TruCluster requires more code for handling cluster IP aliases # @@ -1839,7 +1952,7 @@ case "$host" in [*-solaris2.[89]]) hack_shutup_pthreadonceinit=yes ;; - *-solaris2.1[0-9]) + *-solaris2.1[[0-9]]) hack_shutup_pthreadonceinit=yes ;; esac @@ -2162,27 +2275,39 @@ AC_SUBST($1) ]) # -# Look for Docbook-XSL stylesheets. Location probably varies by -# system. Guessing where it might be found, based on where SGML stuff -# lives on some systems. FreeBSD is the only one I'm sure of at the -# moment. +# Look for Docbook-XSL stylesheets. Location probably varies by system. +# If it's not explicitly specified, guess where it might be found, based on +# where SGML stuff lives on some systems (FreeBSD is the only one we're sure +# of at the moment). # - -docbook_xsl_trees="/usr/pkg/share/xsl /usr/local/share/xsl /usr/share/xsl" +AC_MSG_CHECKING(for Docbook-XSL path) +AC_ARG_WITH(docbook-xsl, +[ --with-docbook-xsl=PATH Specify path for Docbook-XSL stylesheets], + docbook_path="$withval", docbook_path="auto") +case "$docbook_path" in +auto) + AC_MSG_RESULT(auto) + docbook_xsl_trees="/usr/pkg/share/xsl/docbook /usr/local/share/xsl/docbook /usr/share/xsl/docbook" + ;; +*) + docbook_xsl_trees="$withval" + AC_MSG_RESULT($docbook_xsl_trees) + ;; +esac # # Look for stylesheets we need. # -NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, docbook/html/docbook.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, docbook/xhtml/docbook.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, docbook/manpages/docbook.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, docbook/html/chunk.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, docbook/xhtml/chunk.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_HTML, docbook/html/chunktoc.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_XHTML, docbook/xhtml/chunktoc.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_HTML, docbook/html/maketoc.xsl, $docbook_xsl_trees) -NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, docbook/xhtml/maketoc.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, html/docbook.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, xhtml/docbook.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, manpages/docbook.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, html/chunk.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, xhtml/chunk.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_HTML, html/chunktoc.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_XHTML, xhtml/chunktoc.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_HTML, html/maketoc.xsl, $docbook_xsl_trees) +NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, xhtml/maketoc.xsl, $docbook_xsl_trees) # # Same dance for db2latex diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml index 24642c13c2b7..cdcb9d8a4108 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -18,7 +18,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + BIND 9 Administrator Reference Manual @@ -639,13 +639,11 @@ Supported Operating Systems ISC BIND 9 compiles and runs on a large - number - of Unix-like operating system and on NT-derived versions of - Microsoft Windows such as Windows 2000 and Windows XP. For an - up-to-date - list of supported systems, see the README file in the top level - directory - of the BIND 9 source distribution. + number of Unix-like operating systems, and on some versions of + Microsoft Windows including Windows XP, Windows 2003, and + Windows 2008. For an up-to-date list of supported systems, + see the README file in the top level directory of the BIND 9 + source distribution. @@ -2927,6 +2925,33 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. + + + + port_list + + + + + A list of an ip_port or a port + range. + A port range is specified in the form of + range followed by + two ip_ports, + port_low and + port_high, which represents + port numbers from port_low through + port_high, inclusive. + port_low must not be larger than + port_high. + For example, + range 1024 65535 represents + ports from 1024 through 65535. + In either case an asterisk (`*') character is not + allowed as a valid ip_port. + + + @@ -3582,7 +3607,7 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. <command>include</command> Statement Grammar - include filename; + include filename; <command>include</command> Statement Definition and @@ -3603,7 +3628,7 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. <sect2> <title><command>key</command> Statement Grammar -key key_id { +key key_id { algorithm string; secret string; }; @@ -4364,7 +4389,7 @@ category notify { null; }; statement in the named.conf file: -options { +options { version version_string; hostname hostname_string; server-id server_id_string; @@ -4425,7 +4450,9 @@ category notify { null; }; update-check-ksk yes_or_no; allow-v6-synthesis { address_match_list }; blackhole { address_match_list }; + use-v4-udp-ports { port_list }; avoid-v4-udp-ports { port_list }; + use-v6-udp-ports { port_list }; avoid-v6-udp-ports { port_list }; listen-on port ip_port { address_match_list }; listen-on-v6 port ip_port { address_match_list }; @@ -5627,11 +5654,12 @@ options { to address (A or AAAA) records and that glue address records exist for delegated zones. For MX and SRV records only in-zone hostnames are - checked (for out-of-zone hostnames use named-checkzone). + checked (for out-of-zone hostnames use + named-checkzone). For NS records only names below top of zone are checked (for out-of-zone names and glue consistency - checks use named-checkzone). The default is - yes. + checks use named-checkzone). + The default is yes. @@ -6058,7 +6086,7 @@ listen-on-v6 port 1234 { !2001:db8::/32; any; }; - + Query Address If the server doesn't know the answer to a question, it will @@ -6068,25 +6096,94 @@ listen-on-v6 port 1234 { !2001:db8::/32; any; }; If address is * (asterisk) or is omitted, a wildcard IP address (INADDR_ANY) will be used. + + + If port is * or is omitted, - a random unprivileged port number is picked up and will be - used for each query. - It is generally strongly discouraged to - specify a particular port for the - query-source or - query-source-v6 options; - it implicitly disables the use of randomized port numbers - and leads to insecure operation. - The avoid-v4-udp-ports - and avoid-v6-udp-ports options can be used - to prevent named - from selecting certain ports. The defaults are: + a random port number from a pre-configured + range is picked up and will be used for each query. + The port range(s) is that specified in + the use-v4-udp-ports (for IPv4) + and use-v6-udp-ports (for IPv6) + options, excluding the ranges specified in + the avoid-v4-udp-ports + and avoid-v6-udp-ports options, respectively. + + + + The defaults of the query-source and + query-source-v6 options + are: query-source address * port *; query-source-v6 address * port *; + + If use-v4-udp-ports or + use-v6-udp-ports is unspecified, + named will check if the operating + system provides a programming interface to retrieve the + system's default range for ephemeral ports. + If such an interface is available, + named will use the corresponding system + default range; otherwise, it will use its own defaults: + + +use-v4-udp-ports { range 1024 65535; }; +use-v6-udp-ports { range 1024 65535; }; + + + + Note: make sure the ranges be sufficiently large for + security. A desirable size depends on various parameters, + but we generally recommend it contain at least 16384 ports + (14 bits of entropy). + Note also that the system's default range when used may be + too small for this purpose, and that the range may even be + changed while named is running; the new + range will automatically be applied when named + is reloaded. + It is encouraged to + configure use-v4-udp-ports and + use-v6-udp-ports explicitly so that the + ranges are sufficiently large and are reasonably + independent from the ranges used by other applications. + + + + Note: the operational configuration + where named runs may prohibit the use + of some ports. For example, UNIX systems will not allow + named running without a root privilege + to use ports less than 1024. + If such ports are included in the specified (or detected) + set of query ports, the corresponding query attempts will + fail, resulting in resolution failures or delay. + It is therefore important to configure the set of ports + that can be safely used in the expected operational environment. + + + + The defaults of the avoid-v4-udp-ports and + avoid-v6-udp-ports options + are: + + +avoid-v4-udp-ports {}; +avoid-v6-udp-ports {}; + + + + Note: it is generally strongly discouraged to + specify a particular port for the + query-source or + query-source-v6 options; + it implicitly disables the use of randomized port numbers + and can be insecure. + + The address specified in the query-source option @@ -6432,17 +6529,48 @@ query-source-v6 address * port *; - Bad UDP Port Lists - avoid-v4-udp-ports - and avoid-v6-udp-ports specify a list - of IPv4 and IPv6 UDP ports that will not be used as system - assigned source ports for UDP sockets. These lists - prevent named from choosing as its random source port a - port that is blocked by your firewall. If a query went - out with such a source port, the answer would not get by - the firewall and the name server would have to query - again. + UDP Port Lists + + use-v4-udp-ports, + avoid-v4-udp-ports, + use-v6-udp-ports, and + avoid-v6-udp-ports + specify a list of IPv4 and IPv6 UDP ports that will be + used or not used as source ports for UDP messages. + See about how the + available ports are determined. + For example, with the following configuration + + +use-v6-udp-ports { range 32768 65535; }; +avoid-v6-udp-ports { 40000; range 50000 60000; }; + + + + UDP ports of IPv6 messages sent + from named will be in one + of the following ranges: 32768 to 39999, 40001 to 49999, + and 60001 to 65535. + + + + avoid-v4-udp-ports and + avoid-v6-udp-ports can be used + to prevent named from choosing as its random source port a + port that is blocked by your firewall or a port that is + used by other applications; + if a query went out with a source port blocked by a + firewall, the + answer would not get by the firewall and the name server would + have to query again. + Note: the desired range can also be represented only with + use-v4-udp-ports and + use-v6-udp-ports, and the + avoid- options are redundant in that + sense; they are provided for backward compatibility and + to possibly simplify the port specification. + @@ -6618,8 +6746,10 @@ query-source-v6 address * port *; transfers. The default is 512. The minimum value is 128 and the maximum value is 128 less than - 'files' or FD_SETSIZE (whichever is smaller). This - option may be removed in the future. + maxsockets (-S). This option may be removed in the future. + + + This option has little effect on Windows. @@ -6629,16 +6759,23 @@ query-source-v6 address * port *; The maximum amount of memory to use for the - server's cache, in bytes. When the amount of data in the - cache + server's cache, in bytes. + When the amount of data in the cache reaches this limit, the server will cause records to expire - prematurely so that the limit is not exceeded. In a server - with - multiple views, the limit applies separately to the cache of - each - view. The default is unlimited, meaning that - records are purged from the cache only when their TTLs - expire. + prematurely so that the limit is not exceeded. + A value of 0 is special, meaning that + records are purged from the cache only when their + TTLs expire. + Another special keyword unlimited + means the maximum value of 32-bit unsigned integers + (0xffffffff), which may not have the same effect as + 0 on machines that support more than 32 bits of + memory space. + Any positive values less than 2MB will be ignored reset + to 2MB. + In a server with multiple views, the limit applies + separately to the cache of each view. + The default is 0. @@ -7041,6 +7178,10 @@ query-source-v6 address * port *; Sets the maximum time for which the server will cache ordinary (positive) answers. The default is one week (7 days). + A value of zero may cause all queries to return + SERVFAIL, because of lost caches of intermediate + RRsets (such as NS and glue AAAA/A records) in the + resolution process. @@ -7320,9 +7461,8 @@ query-source-v6 address * port *; The current list of empty zones is: + + 0.IN-ADDR.ARPA + 127.IN-ADDR.ARPA + 254.169.IN-ADDR.ARPA 2.0.192.IN-ADDR.ARPA + 255.255.255.255.IN-ADDR.ARPA 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA D.F.IP6.ARPA @@ -7567,8 +7712,10 @@ query-source-v6 address * port *; success, referral, nxrrset, - nxdomain, or - failure + nxdomain, + failure, + duplicate, or + dropped to be incremented, and may additionally cause the recursion counter to be incremented. @@ -7699,7 +7846,7 @@ query-source-v6 address * port *; <command>server</command> Statement Grammar -server ip_addr[/prefixlen] { +server ip_addr[/prefixlen] { bogus yes_or_no ; provide-ixfr yes_or_no ; request-ixfr yes_or_no ; @@ -7908,7 +8055,7 @@ query-source-v6 address * port *; <command>trusted-keys</command> Statement Grammar -trusted-keys { +trusted-keys { string number number number string ; string number number number string ; ... }; @@ -7949,7 +8096,7 @@ query-source-v6 address * port *; <command>view</command> Statement Grammar -view view_name +view view_name class { match-clients { address_match_list }; match-destinations { address_match_list }; @@ -8005,7 +8152,7 @@ query-source-v6 address * port *; Zones defined within a view statement will - be only be accessible to clients that match the view. + only be accessible to clients that match the view. By defining a zone of the same name in multiple views, different zone data can be given to different clients, for example, "internal" @@ -8090,7 +8237,7 @@ view "external" { <command>zone</command> Statement Grammar -zone zone_name class { +zone zone_name class { type master; allow-query { address_match_list }; allow-transfer { address_match_list }; @@ -9433,6 +9580,19 @@ zone zone_name class + + + + IPSECKEY + + + + + Provides a method for storing IPsec keying material in + DNS. Described in RFC 4025. + + + @@ -9671,6 +9831,19 @@ zone zone_name class + + + + SPF + + + + + Contains the Sender Policy Framework information + for a given email domain. Described in RFC 4408. + + + @@ -9684,6 +9857,19 @@ zone zone_name class + + + + SSHFP + + + + + Provides a way to securly publish a secure shell key's + fingerprint. Described in RFC 4255. + + + @@ -10469,7 +10655,7 @@ $GENERATE 1-127 $ CNAME $.0 is equivalent to -0.0.0.192.IN-ADDR.ARPA NS SERVER1.EXAMPLE. +0.0.0.192.IN-ADDR.ARPA. NS SERVER1.EXAMPLE. 0.0.0.192.IN-ADDR.ARPA. NS SERVER2.EXAMPLE. 1.0.0.192.IN-ADDR.ARPA. CNAME 1.0.0.0.192.IN-ADDR.ARPA. 2.0.0.192.IN-ADDR.ARPA. CNAME 2.0.0.0.192.IN-ADDR.ARPA. diff --git a/doc/arm/Bv9ARM.ch01.html b/doc/arm/Bv9ARM.ch01.html index 30e9e0da4724..76a4bb71ecd6 100644 --- a/doc/arm/Bv9ARM.ch01.html +++ b/doc/arm/Bv9ARM.ch01.html @@ -1,5 +1,5 @@ - + @@ -45,17 +45,17 @@ @@ -71,7 +71,7 @@

-Scope of Document

+Scope of Document

The Berkeley Internet Name Domain (BIND) implements a @@ -87,7 +87,7 @@

-Organization of This Document

+Organization of This Document

In this document, Section 1 introduces the basic DNS and BIND concepts. Section 2 @@ -116,7 +116,7 @@

-Conventions Used in This Document

+Conventions Used in This Document

In this document, we use the following general typographic conventions: @@ -243,7 +243,7 @@

-The Domain Name System (DNS)

+The Domain Name System (DNS)

The purpose of this document is to explain the installation and upkeep of the BIND (Berkeley Internet @@ -253,7 +253,7 @@

-DNS Fundamentals

+DNS Fundamentals

The Domain Name System (DNS) is a hierarchical, distributed database. It stores information for mapping Internet host names to @@ -273,7 +273,7 @@

-Domains and Domain Names

+Domains and Domain Names

The data stored in the DNS is identified by domain names that are organized as a tree according to organizational or administrative boundaries. Each node of the tree, @@ -319,7 +319,7 @@

-Zones

+Zones

To properly operate a name server, it is important to understand the difference between a zone @@ -372,7 +372,7 @@

-Authoritative Name Servers

+Authoritative Name Servers

Each zone is served by at least one authoritative name server, @@ -389,7 +389,7 @@

-The Primary Master

+The Primary Master

The authoritative server where the master copy of the zone data is maintained is called the @@ -409,7 +409,7 @@

-Slave Servers

+Slave Servers

The other authoritative servers, the slave servers (also known as secondary servers) @@ -425,7 +425,7 @@

-Stealth Servers

+Stealth Servers

Usually all of the zone's authoritative servers are listed in NS records in the parent zone. These NS records constitute @@ -460,7 +460,7 @@

-Caching Name Servers

+Caching Name Servers

The resolver libraries provided by most operating systems are stub resolvers, meaning that they are not @@ -487,7 +487,7 @@

-Forwarding

+Forwarding

Even a caching name server does not necessarily perform the complete recursive lookup itself. Instead, it can @@ -514,7 +514,7 @@

-Name Servers in Multiple Roles

+Name Servers in Multiple Roles

The BIND name server can simultaneously act as diff --git a/doc/arm/Bv9ARM.ch02.html b/doc/arm/Bv9ARM.ch02.html index cbf6c15b65dd..f2abce42f488 100644 --- a/doc/arm/Bv9ARM.ch02.html +++ b/doc/arm/Bv9ARM.ch02.html @@ -1,5 +1,5 @@ - + @@ -45,16 +45,16 @@

-Hardware requirements

+Hardware requirements

DNS hardware requirements have traditionally been quite modest. @@ -73,7 +73,7 @@

-CPU Requirements

+CPU Requirements

CPU requirements for BIND 9 range from i486-class machines @@ -84,7 +84,7 @@

-Memory Requirements

+Memory Requirements

The memory of the server has to be large enough to fit the cache and zones loaded off disk. The max-cache-size @@ -107,7 +107,7 @@

-Name Server Intensive Environment Issues

+Name Server Intensive Environment Issues

For name server intensive environments, there are two alternative configurations that may be used. The first is where clients and @@ -124,16 +124,14 @@

-Supported Operating Systems

+Supported Operating Systems

ISC BIND 9 compiles and runs on a large - number - of Unix-like operating system and on NT-derived versions of - Microsoft Windows such as Windows 2000 and Windows XP. For an - up-to-date - list of supported systems, see the README file in the top level - directory - of the BIND 9 source distribution. + number of Unix-like operating systems, and on some versions of + Microsoft Windows including Windows XP, Windows 2003, and + Windows 2008. For an up-to-date list of supported systems, + see the README file in the top level directory of the BIND 9 + source distribution.

diff --git a/doc/arm/Bv9ARM.ch03.html b/doc/arm/Bv9ARM.ch03.html index 18f2711517c9..4d39c51a8520 100644 --- a/doc/arm/Bv9ARM.ch03.html +++ b/doc/arm/Bv9ARM.ch03.html @@ -1,5 +1,5 @@ - + @@ -47,14 +47,14 @@
Sample Configurations
-
A Caching-only Name Server
-
An Authoritative-only Name Server
+
A Caching-only Name Server
+
An Authoritative-only Name Server
-
Load Balancing
-
Name Server Operations
+
Load Balancing
+
Name Server Operations
-
Tools for Use With the Name Server Daemon
-
Signals
+
Tools for Use With the Name Server Daemon
+
Signals
@@ -68,7 +68,7 @@ Sample Configurations

-A Caching-only Name Server

+A Caching-only Name Server

The following sample configuration is appropriate for a caching-only name server for use by clients internal to a corporation. All @@ -95,7 +95,7 @@ zone "0.0.127.in-addr.arpa" {

-An Authoritative-only Name Server

+An Authoritative-only Name Server

This sample configuration is for an authoritative-only server that is the master server for "example.com" @@ -137,7 +137,7 @@ zone "eng.example.com" {

-Load Balancing

+Load Balancing

A primitive form of load balancing can be achieved in the DNS by using multiple records @@ -280,10 +280,10 @@ zone "eng.example.com" {

-Name Server Operations

+Name Server Operations

-Tools for Use With the Name Server Daemon

+Tools for Use With the Name Server Daemon

This section describes several indispensable diagnostic, administrative and monitoring tools available to the system @@ -739,7 +739,7 @@ controls {

-Signals

+Signals

Certain UNIX signals cause the name server to take specific actions, as described in the following table. These signals can diff --git a/doc/arm/Bv9ARM.ch04.html b/doc/arm/Bv9ARM.ch04.html index 09507fe53cbc..e31d85d2c33e 100644 --- a/doc/arm/Bv9ARM.ch04.html +++ b/doc/arm/Bv9ARM.ch04.html @@ -1,5 +1,5 @@ - + @@ -49,29 +49,29 @@

Dynamic Update
The journal file
Incremental Zone Transfers (IXFR)
-
Split DNS
-
Example split DNS setup
+
Split DNS
+
Example split DNS setup
TSIG
-
Generate Shared Keys for Each Pair of Hosts
-
Copying the Shared Secret to Both Machines
-
Informing the Servers of the Key's Existence
-
Instructing the Server to Use the Key
-
TSIG Key Based Access Control
-
Errors
+
Generate Shared Keys for Each Pair of Hosts
+
Copying the Shared Secret to Both Machines
+
Informing the Servers of the Key's Existence
+
Instructing the Server to Use the Key
+
TSIG Key Based Access Control
+
Errors
-
TKEY
-
SIG(0)
+
TKEY
+
SIG(0)
DNSSEC
-
Generating Keys
-
Signing the Zone
-
Configuring Servers
+
Generating Keys
+
Signing the Zone
+
Configuring Servers
-
IPv6 Support in BIND 9
+
IPv6 Support in BIND 9
-
Address Lookups Using AAAA Records
-
Address to Name Lookups Using Nibble Format
+
Address Lookups Using AAAA Records
+
Address to Name Lookups Using Nibble Format
@@ -205,7 +205,7 @@

-Split DNS

+Split DNS

Setting up different views, or visibility, of the DNS space to internal and external resolvers is usually referred to as a @@ -235,7 +235,7 @@

-Example split DNS setup

+Example split DNS setup

Let's say a company named Example, Inc. (example.com) @@ -481,7 +481,7 @@ nameserver 172.16.72.4

-Generate Shared Keys for Each Pair of Hosts

+Generate Shared Keys for Each Pair of Hosts

A shared secret is generated to be shared between host1 and host2. An arbitrary key name is chosen: "host1-host2.". The key name must @@ -489,7 +489,7 @@ nameserver 172.16.72.4

-Automatic Generation

+Automatic Generation

The following command will generate a 128-bit (16 byte) HMAC-MD5 key as described above. Longer keys are better, but shorter keys @@ -514,7 +514,7 @@ nameserver 172.16.72.4

-Manual Generation

+Manual Generation

The shared secret is simply a random sequence of bits, encoded in base-64. Most ASCII strings are valid base-64 strings (assuming @@ -529,7 +529,7 @@ nameserver 172.16.72.4

-Copying the Shared Secret to Both Machines

+Copying the Shared Secret to Both Machines

This is beyond the scope of DNS. A secure transport mechanism should be used. This could be secure FTP, ssh, telephone, etc. @@ -537,7 +537,7 @@ nameserver 172.16.72.4

-Informing the Servers of the Key's Existence

+Informing the Servers of the Key's Existence

Imagine host1 and host 2 are @@ -566,7 +566,7 @@ key host1-host2. {

-Instructing the Server to Use the Key

+Instructing the Server to Use the Key

Since keys are shared between two hosts only, the server must be told when keys are to be used. The following is added to the named.conf file @@ -598,7 +598,7 @@ server 10.1.2.3 {

-TSIG Key Based Access Control

+TSIG Key Based Access Control

BIND allows IP addresses and ranges to be specified in ACL @@ -626,7 +626,7 @@ allow-update { key host1-host2. ;};

-Errors

+Errors

The processing of TSIG signed messages can result in several errors. If a signed message is sent to a non-TSIG aware @@ -652,7 +652,7 @@ allow-update { key host1-host2. ;};

-TKEY

+TKEY

TKEY is a mechanism for automatically generating a shared secret between two hosts. There are several "modes" of @@ -688,7 +688,7 @@ allow-update { key host1-host2. ;};

-SIG(0)

+SIG(0)

BIND 9 partially supports DNSSEC SIG(0) transaction signatures as specified in RFC 2535 and RFC2931. @@ -749,7 +749,7 @@ allow-update { key host1-host2. ;};

-Generating Keys

+Generating Keys

The dnssec-keygen program is used to generate keys. @@ -800,7 +800,7 @@ allow-update { key host1-host2. ;};

-Signing the Zone

+Signing the Zone

The dnssec-signzone program is used to @@ -844,7 +844,7 @@ allow-update { key host1-host2. ;};

-Configuring Servers

+Configuring Servers

To enable named to respond appropriately to DNS requests from DNSSEC aware clients, @@ -932,7 +932,7 @@ options {

-IPv6 Support in BIND 9

+IPv6 Support in BIND 9

BIND 9 fully supports all currently defined forms of IPv6 @@ -971,7 +971,7 @@ options {

-Address Lookups Using AAAA Records

+Address Lookups Using AAAA Records

The IPv6 AAAA record is a parallel to the IPv4 A record, and, unlike the deprecated A6 record, specifies the entire @@ -990,7 +990,7 @@ host 3600 IN AAAA 2001:db8::1

-Address to Name Lookups Using Nibble Format

+Address to Name Lookups Using Nibble Format

When looking up an address in nibble format, the address components are simply reversed, just as in IPv4, and diff --git a/doc/arm/Bv9ARM.ch05.html b/doc/arm/Bv9ARM.ch05.html index 80418b9a22da..33d1d0d195a0 100644 --- a/doc/arm/Bv9ARM.ch05.html +++ b/doc/arm/Bv9ARM.ch05.html @@ -1,5 +1,5 @@ - + @@ -45,13 +45,13 @@

-The Lightweight Resolver Library

+The Lightweight Resolver Library

Traditionally applications have been linked with a stub resolver library that sends recursive DNS queries to a local caching name diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html index 59b9cf59a2cd..e2929068970d 100644 --- a/doc/arm/Bv9ARM.ch06.html +++ b/doc/arm/Bv9ARM.ch06.html @@ -1,5 +1,5 @@ - + @@ -48,52 +48,52 @@

Configuration File Elements
Address Match Lists
-
Comment Syntax
+
Comment Syntax
Configuration File Grammar
-
acl Statement Grammar
+
acl Statement Grammar
acl Statement Definition and Usage
-
controls Statement Grammar
+
controls Statement Grammar
controls Statement Definition and Usage
-
include Statement Grammar
-
include Statement Definition and +
include Statement Grammar
+
include Statement Definition and Usage
-
key Statement Grammar
-
key Statement Definition and Usage
-
logging Statement Grammar
-
logging Statement Definition and +
key Statement Grammar
+
key Statement Definition and Usage
+
logging Statement Grammar
+
logging Statement Definition and Usage
-
lwres Statement Grammar
-
lwres Statement Definition and Usage
-
masters Statement Grammar
-
masters Statement Definition and +
lwres Statement Grammar
+
lwres Statement Definition and Usage
+
masters Statement Grammar
+
masters Statement Definition and Usage
-
options Statement Grammar
+
options Statement Grammar
options Statement Definition and Usage
server Statement Grammar
server Statement Definition and Usage
-
trusted-keys Statement Grammar
-
trusted-keys Statement Definition +
trusted-keys Statement Grammar
+
trusted-keys Statement Definition and Usage
view Statement Grammar
-
view Statement Definition and Usage
+
view Statement Definition and Usage
zone Statement Grammar
-
zone Statement Definition and Usage
+
zone Statement Definition and Usage
-
Zone File
+
Zone File
Types of Resource Records and When to Use Them
-
Discussion of MX Records
+
Discussion of MX Records
Setting TTLs
-
Inverse Mapping in IPv4
-
Other Zone File Directives
-
BIND Master File Extension: the $GENERATE Directive
+
Inverse Mapping in IPv4
+
Other Zone File Directives
+
BIND Master File Extension: the $GENERATE Directive
Additional File Formats
@@ -353,6 +353,33 @@ + +

+ port_list +

+ + +

+ A list of an ip_port or a port + range. + A port range is specified in the form of + range followed by + two ip_ports, + port_low and + port_high, which represents + port numbers from port_low through + port_high, inclusive. + port_low must not be larger than + port_high. + For example, + range 1024 65535 represents + ports from 1024 through 65535. + In either case an asterisk (`*') character is not + allowed as a valid ip_port. +

+ + +

size_spec @@ -428,7 +455,7 @@ Address Match Lists

-Syntax

+Syntax
address_match_list = address_match_list_element ;
   [ address_match_list_element; ... ]
 address_match_list_element = [ ! ] (ip_address [/length] |
@@ -437,7 +464,7 @@
 
 

-Definition and Usage

+Definition and Usage

Address match lists are primarily used to determine access control for various server operations. They are also used in @@ -515,7 +542,7 @@

-Comment Syntax

+Comment Syntax

The BIND 9 comment syntax allows for comments to appear @@ -525,7 +552,7 @@

-Syntax

+Syntax

/* This is a BIND comment as in C */
@@ -540,7 +567,7 @@

-Definition and Usage

+Definition and Usage

Comments may appear anywhere that whitespace may appear in a BIND configuration file. @@ -774,7 +801,7 @@

-acl Statement Grammar

+acl Statement Grammar
acl acl-name {
     address_match_list
 };
@@ -857,7 +884,7 @@
 
 

-controls Statement Grammar

+controls Statement Grammar
controls {
    [ inet ( ip_addr | * ) [ port ip_port ] allow {  address_match_list  }
                 keys { key_list }; ]
@@ -979,12 +1006,12 @@
 
 

-include Statement Grammar

-
include filename;
+include Statement Grammar
+
include filename;

-include Statement Definition and +include Statement Definition and Usage

The include statement inserts the @@ -999,8 +1026,8 @@

-key Statement Grammar

-
key key_id {
+key Statement Grammar
+
key key_id {
     algorithm string;
     secret string;
 };
@@ -1008,7 +1035,7 @@
 
 

-key Statement Definition and Usage

+key Statement Definition and Usage

The key statement defines a shared secret key for use with TSIG (see the section called “TSIG”) @@ -1055,7 +1082,7 @@

-logging Statement Grammar

+logging Statement Grammar
logging {
    [ channel channel_name {
      ( file path name
@@ -1079,7 +1106,7 @@
 
 

-logging Statement Definition and +logging Statement Definition and Usage

The logging statement configures a @@ -1113,7 +1140,7 @@

-The channel Phrase

+The channel Phrase

All log output goes to one or more channels; you can make as many of them as you want. @@ -1632,7 +1659,7 @@ category notify { null; };

-lwres Statement Grammar

+lwres Statement Grammar

This is the grammar of the lwres statement in the named.conf file: @@ -1647,7 +1674,7 @@ category notify { null; };

-lwres Statement Definition and Usage

+lwres Statement Definition and Usage

The lwres statement configures the name @@ -1698,14 +1725,14 @@ category notify { null; };

-masters Statement Grammar

+masters Statement Grammar
 masters name [port ip_port] { ( masters_list | ip_addr [port ip_port] [key key] ) ; [...] };
 

-masters Statement Definition and +masters Statement Definition and Usage

masters lists allow for a common set of masters to be easily used by @@ -1714,12 +1741,12 @@ category notify { null; };

-options Statement Grammar

+options Statement Grammar

This is the grammar of the options statement in the named.conf file:

-
options {
+
options {
     [ version version_string; ]
     [ hostname hostname_string; ]
     [ server-id server_id_string; ]
@@ -1780,7 +1807,9 @@ category notify { null; };
     [ update-check-ksk yes_or_no; ]
     [ allow-v6-synthesis { address_match_list }; ]
     [ blackhole { address_match_list }; ]
+    [ use-v4-udp-ports { port_list }; ]
     [ avoid-v4-udp-ports { port_list }; ]
+    [ use-v6-udp-ports { port_list }; ]
     [ avoid-v6-udp-ports { port_list }; ]
     [ listen-on [ port ip_port ] { address_match_list }; ]
     [ listen-on-v6 [ port ip_port ] { address_match_list }; ]
@@ -1797,6 +1826,7 @@ category notify { null; };
     [ max-transfer-idle-in number; ]
     [ max-transfer-idle-out number; ]
     [ tcp-clients number; ]
+    [ reserved-sockets number; ]
     [ recursive-clients number; ]
     [ serial-query-rate number; ]
     [ serial-queries number; ]
@@ -2739,11 +2769,12 @@ options {
                   to address (A or AAAA) records and that glue
                   address records exist for delegated zones.  For
                   MX and SRV records only in-zone hostnames are
-                  checked (for out-of-zone hostnames use named-checkzone).
+                  checked (for out-of-zone hostnames use
+                  named-checkzone).
                   For NS records only names below top of zone are
                   checked (for out-of-zone names and glue consistency
-                  checks use named-checkzone).  The default is
-                  yes.
+                  checks use named-checkzone).
+                  The default is yes.
                 

check-mx-cname

@@ -2789,7 +2820,7 @@ options {

-Forwarding

+Forwarding

The forwarding facility can be used to create a large site-wide cache on a few servers, reducing traffic over links to external @@ -2833,7 +2864,7 @@ options {

-Dual-stack Servers

+Dual-stack Servers

Dual-stack servers are used as servers of last resort to work around @@ -2988,7 +3019,7 @@ options {

-Interfaces

+Interfaces

The interfaces and ports that the server will answer queries from may be specified using the listen-on option. listen-on takes @@ -3068,7 +3099,7 @@ listen-on-v6 port 1234 { !2001:db8::/32; any; };

-Query Address

+Query Address

If the server doesn't know the answer to a question, it will query other name servers. query-source specifies @@ -3077,23 +3108,83 @@ listen-on-v6 port 1234 { !2001:db8::/32; any; }; If address is * (asterisk) or is omitted, a wildcard IP address (INADDR_ANY) will be used. +

+

If port is * or is omitted, - a random unprivileged port number is picked up and will be - used for each query. - It is generally strongly discouraged to - specify a particular port for the - query-source or - query-source-v6 - options; it implicitly disables the use of randomized port numbers - and leads to insecure operation. - The avoid-v4-udp-ports - and avoid-v6-udp-ports options can be used - to prevent named - from selecting certain ports. The defaults are: + a random port number from a pre-configured + range is picked up and will be used for each query. + The port range(s) is that specified in + the use-v4-udp-ports (for IPv4) + and use-v6-udp-ports (for IPv6) + options, excluding the ranges specified in + the avoid-v4-udp-ports + and avoid-v6-udp-ports options, respectively. +

+

+ The defaults of the query-source and + query-source-v6 options + are:

query-source address * port *;
 query-source-v6 address * port *;
 
+

+ If use-v4-udp-ports or + use-v6-udp-ports is unspecified, + named will check if the operating + system provides a programming interface to retrieve the + system's default range for ephemeral ports. + If such an interface is available, + named will use the corresponding system + default range; otherwise, it will use its own defaults: +

+
use-v4-udp-ports { range 1024 65535; };
+use-v6-udp-ports { range 1024 65535; };
+
+

+ Note: make sure the ranges be sufficiently large for + security. A desirable size depends on various parameters, + but we generally recommend it contain at least 16384 ports + (14 bits of entropy). + Note also that the system's default range when used may be + too small for this purpose, and that the range may even be + changed while named is running; the new + range will automatically be applied when named + is reloaded. + It is encouraged to + configure use-v4-udp-ports and + use-v6-udp-ports explicitly so that the + ranges are sufficiently large and are reasonably + independent from the ranges used by other applications. +

+

+ Note: the operational configuration + where named runs may prohibit the use + of some ports. For example, UNIX systems will not allow + named running without a root privilege + to use ports less than 1024. + If such ports are included in the specified (or detected) + set of query ports, the corresponding query attempts will + fail, resulting in resolution failures or delay. + It is therefore important to configure the set of ports + that can be safely used in the expected operational environment. +

+

+ The defaults of the avoid-v4-udp-ports and + avoid-v6-udp-ports options + are: +

+
avoid-v4-udp-ports {};
+avoid-v6-udp-ports {};
+
+

+ Note: it is generally strongly discouraged to + specify a particular port for the + query-source or + query-source-v6 options; + it implicitly disables the use of randomized port numbers + and can be insecure. +

Note

@@ -3356,21 +3447,49 @@ query-source-v6 address * port *;

-Bad UDP Port Lists

-

avoid-v4-udp-ports - and avoid-v6-udp-ports specify a list - of IPv4 and IPv6 UDP ports that will not be used as system - assigned source ports for UDP sockets. These lists - prevent named from choosing as its random source port a - port that is blocked by your firewall. If a query went - out with such a source port, the answer would not get by - the firewall and the name server would have to query - again. +UDP Port Lists

+

+ use-v4-udp-ports, + avoid-v4-udp-ports, + use-v6-udp-ports, and + avoid-v6-udp-ports + specify a list of IPv4 and IPv6 UDP ports that will be + used or not used as source ports for UDP messages. + See the section called “Query Address” about how the + available ports are determined. + For example, with the following configuration

+
+use-v6-udp-ports { range 32768 65535; };
+avoid-v6-udp-ports { 40000; range 50000 60000; };
+
+

+ UDP ports of IPv6 messages sent + from named will be in one + of the following ranges: 32768 to 39999, 40001 to 49999, + and 60001 to 65535. +

+

+ avoid-v4-udp-ports and + avoid-v6-udp-ports can be used + to prevent named from choosing as its random source port a + port that is blocked by your firewall or a port that is + used by other applications; + if a query went out with a source port blocked by a + firewall, the + answer would not get by the firewall and the name server would + have to query again. + Note: the desired range can also be represented only with + use-v4-udp-ports and + use-v6-udp-ports, and the + avoid- options are redundant in that + sense; they are provided for backward compatibility and + to possibly simplify the port specification. +

-Operating System Resource Limits

+Operating System Resource Limits

The server's usage of many system resources can be limited. Scaled values are allowed when specifying resource limits. For @@ -3429,7 +3548,7 @@ query-source-v6 address * port *;

-Server Resource Limits

+Server Resource Limits

The following options set limits on the server's resource consumption that are enforced internally by the @@ -3478,19 +3597,42 @@ query-source-v6 address * port *; connections that the server will accept. The default is 100.

+
reserved-sockets
+
+

+ The number of file descriptors reserved for TCP, stdio, + etc. This needs to be big enough to cover the number of + interfaces named listens on, tcp-clients as well as + to provide room for outgoing TCP queries and incoming zone + transfers. The default is 512. + The minimum value is 128 and the + maximum value is 128 less than + maxsockets (-S). This option may be removed in the future. +

+

+ This option has little effect on Windows. +

+
max-cache-size

The maximum amount of memory to use for the - server's cache, in bytes. When the amount of data in the - cache + server's cache, in bytes. + When the amount of data in the cache reaches this limit, the server will cause records to expire - prematurely so that the limit is not exceeded. In a server - with - multiple views, the limit applies separately to the cache of - each - view. The default is unlimited, meaning that - records are purged from the cache only when their TTLs - expire. + prematurely so that the limit is not exceeded. + A value of 0 is special, meaning that + records are purged from the cache only when their + TTLs expire. + Another special keyword unlimited + means the maximum value of 32-bit unsigned integers + (0xffffffff), which may not have the same effect as + 0 on machines that support more than 32 bits of + memory space. + Any positive values less than 2MB will be ignored reset + to 2MB. + In a server with multiple views, the limit applies + separately to the cache of each view. + The default is 0.

tcp-listen-queue

@@ -3507,7 +3649,7 @@ query-source-v6 address * port *;

-Periodic Task Intervals

+Periodic Task Intervals
cleaning-interval

@@ -3837,6 +3979,10 @@ query-source-v6 address * port *; Sets the maximum time for which the server will cache ordinary (positive) answers. The default is one week (7 days). + A value of zero may cause all queries to return + SERVFAIL, because of lost caches of intermediate + RRsets (such as NS and glue AAAA/A records) in the + resolution process.

min-roots
@@ -4062,27 +4208,11 @@ query-source-v6 address * port *; The current list of empty zones is:

    -
  • 10.IN-ADDR.ARPA
  • +
  • 0.IN-ADDR.ARPA
  • 127.IN-ADDR.ARPA
  • 254.169.IN-ADDR.ARPA
  • -
  • 16.172.IN-ADDR.ARPA
  • -
  • 17.172.IN-ADDR.ARPA
  • -
  • 18.172.IN-ADDR.ARPA
  • -
  • 19.172.IN-ADDR.ARPA
  • -
  • 20.172.IN-ADDR.ARPA
  • -
  • 21.172.IN-ADDR.ARPA
  • -
  • 22.172.IN-ADDR.ARPA
  • -
  • 23.172.IN-ADDR.ARPA
  • -
  • 24.172.IN-ADDR.ARPA
  • -
  • 25.172.IN-ADDR.ARPA
  • -
  • 26.172.IN-ADDR.ARPA
  • -
  • 27.172.IN-ADDR.ARPA
  • -
  • 28.172.IN-ADDR.ARPA
  • -
  • 29.172.IN-ADDR.ARPA
  • -
  • 30.172.IN-ADDR.ARPA
  • -
  • 31.172.IN-ADDR.ARPA
  • -
  • 168.192.IN-ADDR.ARPA
  • 2.0.192.IN-ADDR.ARPA
  • +
  • 255.255.255.255.IN-ADDR.ARPA
  • 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
  • 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
  • D.F.IP6.ARPA
  • @@ -4292,8 +4422,10 @@ query-source-v6 address * port *; success, referral, nxrrset, - nxdomain, or - failure + nxdomain, + failure, + duplicate, or + dropped to be incremented, and may additionally cause the recursion counter to be incremented. @@ -4397,7 +4529,7 @@ query-source-v6 address * port *;

    server Statement Grammar

    -
    server ip_addr[/prefixlen] {
    +
    server ip_addr[/prefixlen] {
         [ bogus yes_or_no ; ]
         [ provide-ixfr yes_or_no ; ]
         [ request-ixfr yes_or_no ; ]
    @@ -4587,8 +4719,8 @@ query-source-v6 address * port *;
     

    -trusted-keys Statement Grammar

    -
    trusted-keys {
    +trusted-keys Statement Grammar
+
trusted-keys {
     string number number number string ;
     [ string number number number string ; [...]]
 };
@@ -4596,7 +4728,7 @@ query-source-v6 address * port *;
 
 

-trusted-keys Statement Definition +trusted-keys Statement Definition and Usage

The trusted-keys statement defines @@ -4627,7 +4759,7 @@ query-source-v6 address * port *;

view Statement Grammar

-
view view_name
+
view view_name
       [class] {
       match-clients { address_match_list };
       match-destinations { address_match_list };
@@ -4639,7 +4771,7 @@ query-source-v6 address * port *;
 

-view Statement Definition and Usage

+view Statement Definition and Usage

The view statement is a powerful feature @@ -4680,7 +4812,7 @@ query-source-v6 address * port *;

Zones defined within a view statement will - be only be accessible to clients that match the view. + only be accessible to clients that match the view. By defining a zone of the same name in multiple views, different zone data can be given to different clients, for example, "internal" @@ -4759,7 +4891,7 @@ view "external" {

zone Statement Grammar

-
zone zone_name [class] {
+
zone zone_name [class] {
     type master;
     [ allow-query { address_match_list }; ]
     [ allow-transfer { address_match_list }; ]
@@ -4891,10 +5023,10 @@ zone zone_name [
 

-zone Statement Definition and Usage

+zone Statement Definition and Usage

-Zone Types

+Zone Types
@@ -5103,7 +5235,7 @@ zone zone_name [

-Class

+Class

The zone's name may optionally be followed by a class. If a class is not specified, class IN (for Internet), @@ -5125,7 +5257,7 @@ zone zone_name [

-Zone Options

+Zone Options
allow-notify

@@ -5613,7 +5745,7 @@ zone zone_name [

-Zone File

+Zone File

Types of Resource Records and When to Use Them

@@ -5626,7 +5758,7 @@ zone zone_name [

-Resource Records

+Resource Records

A domain name identifies a node. Each node has a set of resource information, which may be empty. The set of resource @@ -5888,6 +6020,19 @@ zone zone_name [

+ + + + + + + + + + + +
+

+ IPSECKEY +

+
+

+ Provides a method for storing IPsec keying material in + DNS. Described in RFC 4025. +

+

ISDN @@ -6126,6 +6271,19 @@ zone zone_name [

+

+ SPF +

+
+

+ Contains the Sender Policy Framework information + for a given email domain. Described in RFC 4408. +

+

SRV @@ -6139,6 +6297,19 @@ zone zone_name [

+

+ SSHFP +

+
+

+ Provides a way to securly publish a secure shell key's + fingerprint. Described in RFC 4255. +

+

TXT @@ -6277,7 +6448,7 @@ zone zone_name [

-Textual expression of RRs

+Textual expression of RRs

RRs are represented in binary form in the packets of the DNS protocol, and are usually represented in highly encoded form @@ -6480,7 +6651,7 @@ zone zone_name [

-Discussion of MX Records

+Discussion of MX Records

As described above, domain servers store information as a series of resource records, each of which contains a particular @@ -6738,7 +6909,7 @@ zone zone_name [

-Inverse Mapping in IPv4

+Inverse Mapping in IPv4

Reverse name resolution (that is, translation from IP address to name) is achieved by means of the in-addr.arpa domain @@ -6799,7 +6970,7 @@ zone zone_name [

-Other Zone File Directives

+Other Zone File Directives

The Master File Format was initially defined in RFC 1035 and has subsequently been extended. While the Master File Format @@ -6814,7 +6985,7 @@ zone zone_name [

-The $ORIGIN Directive

+The $ORIGIN Directive

Syntax: $ORIGIN domain-name @@ -6842,7 +7013,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.

-The $INCLUDE Directive

+The $INCLUDE Directive

Syntax: $INCLUDE filename @@ -6878,7 +7049,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.

-The $TTL Directive

+The $TTL Directive

Syntax: $TTL default-ttl @@ -6897,7 +7068,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.

-BIND Master File Extension: the $GENERATE Directive

+BIND Master File Extension: the $GENERATE Directive

Syntax: $GENERATE range @@ -6922,7 +7093,7 @@ $GENERATE 1-127 $ CNAME $.0

is equivalent to

-
0.0.0.192.IN-ADDR.ARPA NS SERVER1.EXAMPLE.
+
0.0.0.192.IN-ADDR.ARPA. NS SERVER1.EXAMPLE.
 0.0.0.192.IN-ADDR.ARPA. NS SERVER2.EXAMPLE.
 1.0.0.192.IN-ADDR.ARPA. CNAME 1.0.0.0.192.IN-ADDR.ARPA.
 2.0.0.192.IN-ADDR.ARPA. CNAME 2.0.0.0.192.IN-ADDR.ARPA.
diff --git a/doc/arm/Bv9ARM.ch07.html b/doc/arm/Bv9ARM.ch07.html
index 96acfe607e2f..4ddbcedc9a8b 100644
--- a/doc/arm/Bv9ARM.ch07.html
+++ b/doc/arm/Bv9ARM.ch07.html
@@ -1,5 +1,5 @@
 
-
+
 
 
 
@@ -46,10 +46,10 @@
 

Table of Contents

Access Control Lists
-
Chroot and Setuid
+
Chroot and Setuid
-
The chroot Environment
-
Using the setuid Function
+
The chroot Environment
+
Using the setuid Function
Dynamic Update Security
@@ -118,7 +118,7 @@ zone "example.com" {

-Chroot and Setuid +Chroot and Setuid

On UNIX servers, it is possible to run BIND in a chrooted environment @@ -142,7 +142,7 @@ zone "example.com" {

-The chroot Environment

+The chroot Environment

In order for a chroot environment to @@ -170,7 +170,7 @@ zone "example.com" {

-Using the setuid Function

+Using the setuid Function

Prior to running the named daemon, use diff --git a/doc/arm/Bv9ARM.ch08.html b/doc/arm/Bv9ARM.ch08.html index a475378f70bd..65f8cec8d3ba 100644 --- a/doc/arm/Bv9ARM.ch08.html +++ b/doc/arm/Bv9ARM.ch08.html @@ -1,5 +1,5 @@ - + @@ -45,18 +45,18 @@

-Common Problems

+Common Problems

-It's not working; how can I figure out what's wrong?

+It's not working; how can I figure out what's wrong?

The best solution to solving installation and configuration issues is to take preventative measures by setting @@ -68,7 +68,7 @@

-Incrementing and Changing the Serial Number

+Incrementing and Changing the Serial Number

Zone serial numbers are just numbers — they aren't date related. A lot of people set them to a number that @@ -95,7 +95,7 @@

-Where Can I Get Help?

+Where Can I Get Help?

The Internet Systems Consortium (ISC) offers a wide range diff --git a/doc/arm/Bv9ARM.ch09.html b/doc/arm/Bv9ARM.ch09.html index 3c2e779607f0..71ea617e6afb 100644 --- a/doc/arm/Bv9ARM.ch09.html +++ b/doc/arm/Bv9ARM.ch09.html @@ -1,5 +1,5 @@ - + @@ -45,21 +45,21 @@

-Acknowledgments

+Acknowledgments

A Brief History of the DNS and BIND @@ -164,7 +164,7 @@

-General DNS Reference Information

+General DNS Reference Information

IPv6 addresses (AAAA)

@@ -252,17 +252,17 @@

-Bibliography

+Bibliography

Standards

-

[RFC974] C. Partridge. Mail Routing and the Domain System. January 1986.

+

[RFC974] C. Partridge. Mail Routing and the Domain System. January 1986.

-

[RFC1034] P.V. Mockapetris. Domain Names — Concepts and Facilities. November 1987.

+

[RFC1034] P.V. Mockapetris. Domain Names — Concepts and Facilities. November 1987.

-

[RFC1035] P. V. Mockapetris. Domain Names — Implementation and +

[RFC1035] P. V. Mockapetris. Domain Names — Implementation and Specification. November 1987.

@@ -270,42 +270,42 @@

Proposed Standards

-

[RFC2181] R., R. Bush Elz. Clarifications to the DNS +

[RFC2181] R., R. Bush Elz. Clarifications to the DNS Specification. July 1997.

-

[RFC2308] M. Andrews. Negative Caching of DNS +

[RFC2308] M. Andrews. Negative Caching of DNS Queries. March 1998.

-

[RFC1995] M. Ohta. Incremental Zone Transfer in DNS. August 1996.

+

[RFC1995] M. Ohta. Incremental Zone Transfer in DNS. August 1996.

-

[RFC1996] P. Vixie. A Mechanism for Prompt Notification of Zone Changes. August 1996.

+

[RFC1996] P. Vixie. A Mechanism for Prompt Notification of Zone Changes. August 1996.

-

[RFC2136] P. Vixie, S. Thomson, Y. Rekhter, and J. Bound. Dynamic Updates in the Domain Name System. April 1997.

+

[RFC2136] P. Vixie, S. Thomson, Y. Rekhter, and J. Bound. Dynamic Updates in the Domain Name System. April 1997.

-

[RFC2671] P. Vixie. Extension Mechanisms for DNS (EDNS0). August 1997.

+

[RFC2671] P. Vixie. Extension Mechanisms for DNS (EDNS0). August 1997.

-

[RFC2672] M. Crawford. Non-Terminal DNS Name Redirection. August 1999.

+

[RFC2672] M. Crawford. Non-Terminal DNS Name Redirection. August 1999.

-

[RFC2845] P. Vixie, O. Gudmundsson, D. Eastlake, 3rd, and B. Wellington. Secret Key Transaction Authentication for DNS (TSIG). May 2000.

+

[RFC2845] P. Vixie, O. Gudmundsson, D. Eastlake, 3rd, and B. Wellington. Secret Key Transaction Authentication for DNS (TSIG). May 2000.

-

[RFC2930] D. Eastlake, 3rd. Secret Key Establishment for DNS (TKEY RR). September 2000.

+

[RFC2930] D. Eastlake, 3rd. Secret Key Establishment for DNS (TKEY RR). September 2000.

-

[RFC2931] D. Eastlake, 3rd. DNS Request and Transaction Signatures (SIG(0)s). September 2000.

+

[RFC2931] D. Eastlake, 3rd. DNS Request and Transaction Signatures (SIG(0)s). September 2000.

-

[RFC3007] B. Wellington. Secure Domain Name System (DNS) Dynamic Update. November 2000.

+

[RFC3007] B. Wellington. Secure Domain Name System (DNS) Dynamic Update. November 2000.

-

[RFC3645] S. Kwan, P. Garg, J. Gilroy, L. Esibov, J. Westhead, and R. Hall. Generic Security Service Algorithm for Secret +

[RFC3645] S. Kwan, P. Garg, J. Gilroy, L. Esibov, J. Westhead, and R. Hall. Generic Security Service Algorithm for Secret Key Transaction Authentication for DNS (GSS-TSIG). October 2003.

@@ -314,19 +314,19 @@

DNS Security Proposed Standards

-

[RFC3225] D. Conrad. Indicating Resolver Support of DNSSEC. December 2001.

+

[RFC3225] D. Conrad. Indicating Resolver Support of DNSSEC. December 2001.

-

[RFC3833] D. Atkins and R. Austein. Threat Analysis of the Domain Name System (DNS). August 2004.

+

[RFC3833] D. Atkins and R. Austein. Threat Analysis of the Domain Name System (DNS). August 2004.

-

[RFC4033] R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. DNS Security Introduction and Requirements. March 2005.

+

[RFC4033] R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. DNS Security Introduction and Requirements. March 2005.

-

[RFC4044] R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. Resource Records for the DNS Security Extensions. March 2005.

+

[RFC4044] R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. Resource Records for the DNS Security Extensions. March 2005.

-

[RFC4035] R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. Protocol Modifications for the DNS +

[RFC4035] R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. Protocol Modifications for the DNS Security Extensions. March 2005.

@@ -334,146 +334,146 @@

Other Important RFCs About DNS Implementation

-

[RFC1535] E. Gavron. A Security Problem and Proposed Correction With Widely +

[RFC1535] E. Gavron. A Security Problem and Proposed Correction With Widely Deployed DNS Software.. October 1993.

-

[RFC1536] A. Kumar, J. Postel, C. Neuman, P. Danzig, and S. Miller. Common DNS Implementation +

[RFC1536] A. Kumar, J. Postel, C. Neuman, P. Danzig, and S. Miller. Common DNS Implementation Errors and Suggested Fixes. October 1993.

-

[RFC1982] R. Elz and R. Bush. Serial Number Arithmetic. August 1996.

+

[RFC1982] R. Elz and R. Bush. Serial Number Arithmetic. August 1996.

-

[RFC4074] Y. Morishita and T. Jinmei. Common Misbehaviour Against DNS +

[RFC4074] Y. Morishita and T. Jinmei. Common Misbehaviour Against DNS Queries for IPv6 Addresses. May 2005.

Resource Record Types

-

[RFC1183] C.F. Everhart, L. A. Mamakos, R. Ullmann, and P. Mockapetris. New DNS RR Definitions. October 1990.

+

[RFC1183] C.F. Everhart, L. A. Mamakos, R. Ullmann, and P. Mockapetris. New DNS RR Definitions. October 1990.

-

[RFC1706] B. Manning and R. Colella. DNS NSAP Resource Records. October 1994.

+

[RFC1706] B. Manning and R. Colella. DNS NSAP Resource Records. October 1994.

-

[RFC2168] R. Daniel and M. Mealling. Resolution of Uniform Resource Identifiers using +

[RFC2168] R. Daniel and M. Mealling. Resolution of Uniform Resource Identifiers using the Domain Name System. June 1997.

-

[RFC1876] C. Davis, P. Vixie, T., and I. Dickinson. A Means for Expressing Location Information in the +

[RFC1876] C. Davis, P. Vixie, T., and I. Dickinson. A Means for Expressing Location Information in the Domain Name System. January 1996.

-

[RFC2052] A. Gulbrandsen and P. Vixie. A DNS RR for Specifying the +

[RFC2052] A. Gulbrandsen and P. Vixie. A DNS RR for Specifying the Location of Services.. October 1996.

-

[RFC2163] A. Allocchio. Using the Internet DNS to +

[RFC2163] A. Allocchio. Using the Internet DNS to Distribute MIXER Conformant Global Address Mapping. January 1998.

-

[RFC2230] R. Atkinson. Key Exchange Delegation Record for the DNS. October 1997.

+

[RFC2230] R. Atkinson. Key Exchange Delegation Record for the DNS. October 1997.

-

[RFC2536] D. Eastlake, 3rd. DSA KEYs and SIGs in the Domain Name System (DNS). March 1999.

+

[RFC2536] D. Eastlake, 3rd. DSA KEYs and SIGs in the Domain Name System (DNS). March 1999.

-

[RFC2537] D. Eastlake, 3rd. RSA/MD5 KEYs and SIGs in the Domain Name System (DNS). March 1999.

+

[RFC2537] D. Eastlake, 3rd. RSA/MD5 KEYs and SIGs in the Domain Name System (DNS). March 1999.

-

[RFC2538] D. Eastlake, 3rd and O. Gudmundsson. Storing Certificates in the Domain Name System (DNS). March 1999.

+

[RFC2538] D. Eastlake, 3rd and O. Gudmundsson. Storing Certificates in the Domain Name System (DNS). March 1999.

-

[RFC2539] D. Eastlake, 3rd. Storage of Diffie-Hellman Keys in the Domain Name System (DNS). March 1999.

+

[RFC2539] D. Eastlake, 3rd. Storage of Diffie-Hellman Keys in the Domain Name System (DNS). March 1999.

-

[RFC2540] D. Eastlake, 3rd. Detached Domain Name System (DNS) Information. March 1999.

+

[RFC2540] D. Eastlake, 3rd. Detached Domain Name System (DNS) Information. March 1999.

-

[RFC2782] A. Gulbrandsen. P. Vixie. L. Esibov. A DNS RR for specifying the location of services (DNS SRV). February 2000.

+

[RFC2782] A. Gulbrandsen. P. Vixie. L. Esibov. A DNS RR for specifying the location of services (DNS SRV). February 2000.

-

[RFC2915] M. Mealling. R. Daniel. The Naming Authority Pointer (NAPTR) DNS Resource Record. September 2000.

+

[RFC2915] M. Mealling. R. Daniel. The Naming Authority Pointer (NAPTR) DNS Resource Record. September 2000.

-

[RFC3110] D. Eastlake, 3rd. RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS). May 2001.

+

[RFC3110] D. Eastlake, 3rd. RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS). May 2001.

-

[RFC3123] P. Koch. A DNS RR Type for Lists of Address Prefixes (APL RR). June 2001.

+

[RFC3123] P. Koch. A DNS RR Type for Lists of Address Prefixes (APL RR). June 2001.

-

[RFC3596] S. Thomson, C. Huitema, V. Ksinant, and M. Souissi. DNS Extensions to support IP +

[RFC3596] S. Thomson, C. Huitema, V. Ksinant, and M. Souissi. DNS Extensions to support IP version 6. October 2003.

-

[RFC3597] A. Gustafsson. Handling of Unknown DNS Resource Record (RR) Types. September 2003.

+

[RFC3597] A. Gustafsson. Handling of Unknown DNS Resource Record (RR) Types. September 2003.

DNS and the Internet

-

[RFC1101] P. V. Mockapetris. DNS Encoding of Network Names +

[RFC1101] P. V. Mockapetris. DNS Encoding of Network Names and Other Types. April 1989.

-

[RFC1123] Braden. Requirements for Internet Hosts - Application and +

[RFC1123] Braden. Requirements for Internet Hosts - Application and Support. October 1989.

-

[RFC1591] J. Postel. Domain Name System Structure and Delegation. March 1994.

+

[RFC1591] J. Postel. Domain Name System Structure and Delegation. March 1994.

-

[RFC2317] H. Eidnes, G. de Groot, and P. Vixie. Classless IN-ADDR.ARPA Delegation. March 1998.

+

[RFC2317] H. Eidnes, G. de Groot, and P. Vixie. Classless IN-ADDR.ARPA Delegation. March 1998.

-

[RFC2826] Internet Architecture Board. IAB Technical Comment on the Unique DNS Root. May 2000.

+

[RFC2826] Internet Architecture Board. IAB Technical Comment on the Unique DNS Root. May 2000.

-

[RFC2929] D. Eastlake, 3rd, E. Brunner-Williams, and B. Manning. Domain Name System (DNS) IANA Considerations. September 2000.

+

[RFC2929] D. Eastlake, 3rd, E. Brunner-Williams, and B. Manning. Domain Name System (DNS) IANA Considerations. September 2000.

DNS Operations

-

[RFC1033] M. Lottor. Domain administrators operations guide.. November 1987.

+

[RFC1033] M. Lottor. Domain administrators operations guide.. November 1987.

-

[RFC1537] P. Beertema. Common DNS Data File +

[RFC1537] P. Beertema. Common DNS Data File Configuration Errors. October 1993.

-

[RFC1912] D. Barr. Common DNS Operational and +

[RFC1912] D. Barr. Common DNS Operational and Configuration Errors. February 1996.

-

[RFC2010] B. Manning and P. Vixie. Operational Criteria for Root Name Servers.. October 1996.

+

[RFC2010] B. Manning and P. Vixie. Operational Criteria for Root Name Servers.. October 1996.

-

[RFC2219] M. Hamilton and R. Wright. Use of DNS Aliases for +

[RFC2219] M. Hamilton and R. Wright. Use of DNS Aliases for Network Services.. October 1997.

Internationalized Domain Names

-

[RFC2825] IAB and R. Daigle. A Tangled Web: Issues of I18N, Domain Names, +

[RFC2825] IAB and R. Daigle. A Tangled Web: Issues of I18N, Domain Names, and the Other Internet protocols. May 2000.

-

[RFC3490] P. Faltstrom, P. Hoffman, and A. Costello. Internationalizing Domain Names in Applications (IDNA). March 2003.

+

[RFC3490] P. Faltstrom, P. Hoffman, and A. Costello. Internationalizing Domain Names in Applications (IDNA). March 2003.

-

[RFC3491] P. Hoffman and M. Blanchet. Nameprep: A Stringprep Profile for Internationalized Domain Names. March 2003.

+

[RFC3491] P. Hoffman and M. Blanchet. Nameprep: A Stringprep Profile for Internationalized Domain Names. March 2003.

-

[RFC3492] A. Costello. Punycode: A Bootstring encoding of Unicode +

[RFC3492] A. Costello. Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA). March 2003.

@@ -489,47 +489,47 @@

-

[RFC1464] R. Rosenbaum. Using the Domain Name System To Store Arbitrary String +

[RFC1464] R. Rosenbaum. Using the Domain Name System To Store Arbitrary String Attributes. May 1993.

-

[RFC1713] A. Romao. Tools for DNS Debugging. November 1994.

+

[RFC1713] A. Romao. Tools for DNS Debugging. November 1994.

-

[RFC1794] T. Brisco. DNS Support for Load +

[RFC1794] T. Brisco. DNS Support for Load Balancing. April 1995.

-

[RFC2240] O. Vaughan. A Legal Basis for Domain Name Allocation. November 1997.

+

[RFC2240] O. Vaughan. A Legal Basis for Domain Name Allocation. November 1997.

-

[RFC2345] J. Klensin, T. Wolf, and G. Oglesby. Domain Names and Company Name Retrieval. May 1998.

+

[RFC2345] J. Klensin, T. Wolf, and G. Oglesby. Domain Names and Company Name Retrieval. May 1998.

-

[RFC2352] O. Vaughan. A Convention For Using Legal Names as Domain Names. May 1998.

+

[RFC2352] O. Vaughan. A Convention For Using Legal Names as Domain Names. May 1998.

-

[RFC3071] J. Klensin. Reflections on the DNS, RFC 1591, and Categories of Domains. February 2001.

+

[RFC3071] J. Klensin. Reflections on the DNS, RFC 1591, and Categories of Domains. February 2001.

-

[RFC3258] T. Hardie. Distributing Authoritative Name Servers via +

[RFC3258] T. Hardie. Distributing Authoritative Name Servers via Shared Unicast Addresses. April 2002.

-

[RFC3901] A. Durand and J. Ihren. DNS IPv6 Transport Operational Guidelines. September 2004.

+

[RFC3901] A. Durand and J. Ihren. DNS IPv6 Transport Operational Guidelines. September 2004.

Obsolete and Unimplemented Experimental RFC

-

[RFC1712] C. Farrell, M. Schulze, S. Pleitner, and D. Baldoni. DNS Encoding of Geographical +

[RFC1712] C. Farrell, M. Schulze, S. Pleitner, and D. Baldoni. DNS Encoding of Geographical Location. November 1994.

-

[RFC2673] M. Crawford. Binary Labels in the Domain Name System. August 1999.

+

[RFC2673] M. Crawford. Binary Labels in the Domain Name System. August 1999.

-

[RFC2874] M. Crawford and C. Huitema. DNS Extensions to Support IPv6 Address Aggregation +

[RFC2874] M. Crawford and C. Huitema. DNS Extensions to Support IPv6 Address Aggregation and Renumbering. July 2000.

@@ -543,39 +543,39 @@

-

[RFC2065] D. Eastlake, 3rd and C. Kaufman. Domain Name System Security Extensions. January 1997.

+

[RFC2065] D. Eastlake, 3rd and C. Kaufman. Domain Name System Security Extensions. January 1997.

-

[RFC2137] D. Eastlake, 3rd. Secure Domain Name System Dynamic Update. April 1997.

+

[RFC2137] D. Eastlake, 3rd. Secure Domain Name System Dynamic Update. April 1997.

-

[RFC2535] D. Eastlake, 3rd. Domain Name System Security Extensions. March 1999.

+

[RFC2535] D. Eastlake, 3rd. Domain Name System Security Extensions. March 1999.

-

[RFC3008] B. Wellington. Domain Name System Security (DNSSEC) +

[RFC3008] B. Wellington. Domain Name System Security (DNSSEC) Signing Authority. November 2000.

-

[RFC3090] E. Lewis. DNS Security Extension Clarification on Zone Status. March 2001.

+

[RFC3090] E. Lewis. DNS Security Extension Clarification on Zone Status. March 2001.

-

[RFC3445] D. Massey and S. Rose. Limiting the Scope of the KEY Resource Record (RR). December 2002.

+

[RFC3445] D. Massey and S. Rose. Limiting the Scope of the KEY Resource Record (RR). December 2002.

-

[RFC3655] B. Wellington and O. Gudmundsson. Redefinition of DNS Authenticated Data (AD) bit. November 2003.

+

[RFC3655] B. Wellington and O. Gudmundsson. Redefinition of DNS Authenticated Data (AD) bit. November 2003.

-

[RFC3658] O. Gudmundsson. Delegation Signer (DS) Resource Record (RR). December 2003.

+

[RFC3658] O. Gudmundsson. Delegation Signer (DS) Resource Record (RR). December 2003.

-

[RFC3755] S. Weiler. Legacy Resolver Compatibility for Delegation Signer (DS). May 2004.

+

[RFC3755] S. Weiler. Legacy Resolver Compatibility for Delegation Signer (DS). May 2004.

-

[RFC3757] O. Kolkman, J. Schlyter, and E. Lewis. Domain Name System KEY (DNSKEY) Resource Record +

[RFC3757] O. Kolkman, J. Schlyter, and E. Lewis. Domain Name System KEY (DNSKEY) Resource Record (RR) Secure Entry Point (SEP) Flag. April 2004.

-

[RFC3845] J. Schlyter. DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format. August 2004.

+

[RFC3845] J. Schlyter. DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format. August 2004.

@@ -596,14 +596,14 @@

-Other Documents About BIND +Other Documents About BIND

-Bibliography

+Bibliography
-

Paul Albitz and Cricket Liu. DNS and BIND. Copyright © 1998 Sebastopol, CA: O'Reilly and Associates.

+

Paul Albitz and Cricket Liu. DNS and BIND. Copyright © 1998 Sebastopol, CA: O'Reilly and Associates.

diff --git a/doc/arm/Bv9ARM.ch10.html b/doc/arm/Bv9ARM.ch10.html index 03cce5aae1f4..892ab16b942a 100644 --- a/doc/arm/Bv9ARM.ch10.html +++ b/doc/arm/Bv9ARM.ch10.html @@ -1,5 +1,5 @@ - + diff --git a/doc/arm/Bv9ARM.html b/doc/arm/Bv9ARM.html index 8a33041d76ac..6de42bcee192 100644 --- a/doc/arm/Bv9ARM.html +++ b/doc/arm/Bv9ARM.html @@ -1,5 +1,5 @@ - + @@ -40,8 +40,8 @@

-BIND 9 Administrator Reference Manual

-
+BIND 9 Administrator Reference Manual
+

@@ -51,39 +51,39 @@
1. Introduction
-
Scope of Document
-
Organization of This Document
-
Conventions Used in This Document
-
The Domain Name System (DNS)
+
Scope of Document
+
Organization of This Document
+
Conventions Used in This Document
+
The Domain Name System (DNS)
-
DNS Fundamentals
-
Domains and Domain Names
-
Zones
-
Authoritative Name Servers
-
Caching Name Servers
-
Name Servers in Multiple Roles
+
DNS Fundamentals
+
Domains and Domain Names
+
Zones
+
Authoritative Name Servers
+
Caching Name Servers
+
Name Servers in Multiple Roles
2. BIND Resource Requirements
-
Hardware requirements
-
CPU Requirements
-
Memory Requirements
-
Name Server Intensive Environment Issues
-
Supported Operating Systems
+
Hardware requirements
+
CPU Requirements
+
Memory Requirements
+
Name Server Intensive Environment Issues
+
Supported Operating Systems
3. Name Server Configuration
Sample Configurations
-
A Caching-only Name Server
-
An Authoritative-only Name Server
+
A Caching-only Name Server
+
An Authoritative-only Name Server
-
Load Balancing
-
Name Server Operations
+
Load Balancing
+
Name Server Operations
-
Tools for Use With the Name Server Daemon
-
Signals
+
Tools for Use With the Name Server Daemon
+
Signals
4. Advanced DNS Features
@@ -92,34 +92,34 @@
Dynamic Update
The journal file
Incremental Zone Transfers (IXFR)
-
Split DNS
-
Example split DNS setup
+
Split DNS
+
Example split DNS setup
TSIG
-
Generate Shared Keys for Each Pair of Hosts
-
Copying the Shared Secret to Both Machines
-
Informing the Servers of the Key's Existence
-
Instructing the Server to Use the Key
-
TSIG Key Based Access Control
-
Errors
+
Generate Shared Keys for Each Pair of Hosts
+
Copying the Shared Secret to Both Machines
+
Informing the Servers of the Key's Existence
+
Instructing the Server to Use the Key
+
TSIG Key Based Access Control
+
Errors
-
TKEY
-
SIG(0)
+
TKEY
+
SIG(0)
DNSSEC
-
Generating Keys
-
Signing the Zone
-
Configuring Servers
+
Generating Keys
+
Signing the Zone
+
Configuring Servers
-
IPv6 Support in BIND 9
+
IPv6 Support in BIND 9
-
Address Lookups Using AAAA Records
-
Address to Name Lookups Using Nibble Format
+
Address Lookups Using AAAA Records
+
Address to Name Lookups Using Nibble Format
5. The BIND 9 Lightweight Resolver
-
The Lightweight Resolver Library
+
The Lightweight Resolver Library
Running a Resolver Daemon
6. BIND 9 Configuration Reference
@@ -127,83 +127,83 @@
Configuration File Elements
Address Match Lists
-
Comment Syntax
+
Comment Syntax
Configuration File Grammar
-
acl Statement Grammar
+
acl Statement Grammar
acl Statement Definition and Usage
-
controls Statement Grammar
+
controls Statement Grammar
controls Statement Definition and Usage
-
include Statement Grammar
-
include Statement Definition and +
include Statement Grammar
+
include Statement Definition and Usage
-
key Statement Grammar
-
key Statement Definition and Usage
-
logging Statement Grammar
-
logging Statement Definition and +
key Statement Grammar
+
key Statement Definition and Usage
+
logging Statement Grammar
+
logging Statement Definition and Usage
-
lwres Statement Grammar
-
lwres Statement Definition and Usage
-
masters Statement Grammar
-
masters Statement Definition and +
lwres Statement Grammar
+
lwres Statement Definition and Usage
+
masters Statement Grammar
+
masters Statement Definition and Usage
-
options Statement Grammar
+
options Statement Grammar
options Statement Definition and Usage
server Statement Grammar
server Statement Definition and Usage
-
trusted-keys Statement Grammar
-
trusted-keys Statement Definition +
trusted-keys Statement Grammar
+
trusted-keys Statement Definition and Usage
view Statement Grammar
-
view Statement Definition and Usage
+
view Statement Definition and Usage
zone Statement Grammar
-
zone Statement Definition and Usage
+
zone Statement Definition and Usage
-
Zone File
+
Zone File
Types of Resource Records and When to Use Them
-
Discussion of MX Records
+
Discussion of MX Records
Setting TTLs
-
Inverse Mapping in IPv4
-
Other Zone File Directives
-
BIND Master File Extension: the $GENERATE Directive
+
Inverse Mapping in IPv4
+
Other Zone File Directives
+
BIND Master File Extension: the $GENERATE Directive
Additional File Formats
7. BIND 9 Security Considerations
Access Control Lists
-
Chroot and Setuid
+
Chroot and Setuid
-
The chroot Environment
-
Using the setuid Function
+
The chroot Environment
+
Using the setuid Function
Dynamic Update Security
8. Troubleshooting
-
Common Problems
-
It's not working; how can I figure out what's wrong?
-
Incrementing and Changing the Serial Number
-
Where Can I Get Help?
+
Common Problems
+
It's not working; how can I figure out what's wrong?
+
Incrementing and Changing the Serial Number
+
Where Can I Get Help?
A. Appendices
-
Acknowledgments
+
Acknowledgments
A Brief History of the DNS and BIND
-
General DNS Reference Information
+
General DNS Reference Information
IPv6 addresses (AAAA)
Bibliography (and Suggested Reading)
Request for Comments (RFCs)
Internet Drafts
-
Other Documents About BIND
+
Other Documents About BIND
I. Manual pages
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf index 586aaafd0e72..29637452ec51 100644 --- a/doc/arm/Bv9ARM.pdf +++ b/doc/arm/Bv9ARM.pdf @@ -561,7 +561,7 @@ endobj << /S /GoTo /D (subsubsection.6.2.16.8) >> endobj 380 0 obj -(6.2.16.8 Bad UDP Port Lists) +(6.2.16.8 UDP Port Lists) endobj 381 0 obj << /S /GoTo /D (subsubsection.6.2.16.9) >> @@ -1170,14 +1170,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 678 0 obj << -/Length 994 +/Length 999 /Filter /FlateDecode >> stream -xÚµVË’¢JÝû,5¢­©¯Z҈ʂ83³°»‰hÅ+8ý÷7¡ªDÐÛ›‰.*«ò˜yòd@4 ?¢&29åšÅud`bh›ýk/à› ˆÄ`mŒãvãügðó7Ö¶ú:§ï°ÁˆpNµý@72tÆÔÉÛ |»„ºòª€ýlc3D0‹éÈvר4Á"ÔË282e5ü1|™‚É7©©¥; -Qm]»ÀÒíÏ¡[?NùËk5ú~Õ Œ,Ìr À¦v|™ý*Ô˜"ËäV£ŠÂýí´›•"("6 Š±þ0SצњfkZÂòUv:d•Ø%e•íK±q‹CYœªü¼PØ ÁÀÂÀ¿(ÕýÄ­Ø’šÔÀK/‚F‘aš¦féZÏÏÕUèñ5üŽºÌ‚¾Z¼ú_êÒÿS]ÜêHZ“¶&»«n±«Þק±‡Y_bÔ×ÏĈSÓÖ,Ê€'ŸÉ§Àãkô­z¦8¶I³.g™öyYæÅApª -±žËLÖ³yG„¡Üï‹m¾ëœ¬[aló²:åÏçJX½æršÊ›âwÅIýûCÇóéX”ÒýžW¯ÂR¸ú¤8K1w™ÄA‚ºëpßAÜ0hSÚk&ò=Ëø/§54d+Igñ'ßf[Åv])KF_?²V1eÍöPTù&ëÕßÖ{ìÉÚÙZ•Kÿúí­©ƒpšTß„ëJ wž•ÍÀàbŽ˜Îêb-ĵH:÷ä˜EÓôiÄéЉ剟ˆuGßý‰7»úæ:‰BÔ;a;áDºÂ˜€8þB‚ †Ì;aê{Òùä§saÅÞ̉'âJÂó•‘nIi­~$ é\Q¼C>tƒÕÄg½äþbøª–{L¢©X^ìÎÁ1²ô¡óè~ú£-´fg"®Û–bGvS? ½$AŠƒXCÉ×ûîAÍ:QšDP[¬˜¬‚æô¢þ4Ž²¶(iu®YaÏÅ^W‰§Êá›tùÀP‚ØɃâáÁ Ç]Ùµº©…ÝîBÙiìtd -½YàϼÐõº™¢&ró°Ðµ é¶\ d> endobj 743 0 obj << -/Length 3153 +/Length 3152 /Filter /FlateDecode >> stream -xÚí[w·Çßõ)ø(=ÅýòèkNÒÖvlõ¥iÖÔZæ ÉUI*®ûé‹å.€Y;ÚȵD&'‘líìŒæÿ#ì…M¨ÿ—M”&Úq71NE™šÌ–gtríöÃ뙆ƒ¦ð¨ç—gz-Ìħ¹ž\~šH¥W»“YB­e“Ë«_Î_¼}sùêÍ凋_/:{uÏ -=3*ÚSþóì—_éäÊðÓ%ÂY5ùâÿ@ sŽO–gR ¢¤áogÎ~Ž'?Ý™fF šg~.À¯ÒþP±‰QŽháÒþ"’XÂ.¦ŒSzþC½ª×Õv¾º¾˜rEÏÿ\Ý\L­æçäbªüï‹tî;Ù]©©Ïº:åsO›õõ¤ûæ=T+ØM¡á¾Zûçoõâz/Ž ~.ŒÔ{`E¢)Õ‘Þ³òa~½Š l?×Ý7oVþ;Cõ‰”˜Õbb€!F T #&F ê=#QÚºHŒè‰yѬþA)¿¾]Gn>Ôëßëu;Æ0q¬¨Œ2òXÌ0Ä:q3ÎH&ŒÔ»a~ÈѾ,!IÅC (‚¿˜0†ê=!`ÑtØ0Þ!°½¹i͵oŒ0§‡šä 9,&b„@0B2q`„ Þ!šeä°Lˆž{\2¸ñ“Ä…Ÿæv·$¡œ¹ýÝ-aÕqÜ“[Œ0ÄÐâ©ñ‹Msq`è Þ:Ò%ù°¾È÷ï7uß<¼í67êðb‹Ó­U)sÅ\CŒ ¨ŒZn.Œ Ô{âB¢†}S±æÐóÛþùÊúh†SKŸÎbV’† -k|ë+ -æ:q‘æN‡¢;PžßÎÛixµÉô+óէݫâUÿnVíú·1îQ^-³P¬/0Ädy|ó"&1ê=iÌ‘òNbr¿ZÞl¿¦÷dµ;ÒÇþULR1ÀC` ÂøE. Ô{B€2"™`Ó³[aò“C?‰œÏ6ðÙiÎòcÜÎ +¦!Ùa0@9Æן3A`(`®# Öa¥à:ž]]í.t«áJ‡Yá_T³Ï»)ƒÓúéȲQ*3°CdäzüÚ·LˆÌ¨ëðò)C„âàã~øQ }yÏtÔ3¢Þ'ÍÍSž3Ž¾ÍªOtñˬ’ö.+(ãøÄ2A`o²Â\‡w("8hìásŸçÜ=…5ˆ>Ÿåïe fè[Y’V -y'ËÝö‰ïñrç¥Í¾ŒÄÿLjSŠÿï¯ No7–ííeväÊ,n)qí¹„ŸëŠþ®L䶖ÝA òÿ?J~endstream +xÚí[wÛ6Çßý)ôh?‹ûå1מvw“4q_¶ÛVfJ¢W’›f?ý‚" -pdìÖÙØR{Z;1‡3žÿO ’lBý¿l¢4ÑŽ»‰q’(ÊÔd¶<£“kÿ³ïÎXÌ44…G=¿<ûËka&Ž8ÍõäòãD*E¸ÚÌj-›\^ý|þâí›ËWo.?\ürùÃÙ«ËxVè™QÑžò_g?ÿB'W>€Î(ΪÉgÿJ˜s|²<“J%…³8ûpöcÖëz5«Ç3N~ïñ`ã- Z°ñŒÓa™ÚóšýL1KŒéWuo³©y=s‹W‹zY¯¶~¢˜9Ö~e”ÒâO0Ä>YP2Œ“L/¨÷0i¥š©UÀe¼Qù{µ} +EyÓ¢¢ ?õ´wP é,Fb¨@¹G%† +êqM¤`r¢<4†I›`Ùá"Úõ/«mõÇÅT8uZZ½(1•¥ @C”T(¹8Ppï ˉ¶‚PxÊ˺­C«yªBÕê*ô½Õu»:ÿ-Ìô¿Æ*{ÌR1Àcª Ä8™80Pï}]Q†­< +WÙ—íL£_EíG eÍiÔ@Q é,Fb¨@¹0T2q`¨ ÞÓp¡,Ñ̙˩®ü· „Tƒ 1P T(™80PPï ©‰²©¹ñ œêÊ>!KÅ CŒ¨Æ@&ŒÔ{èo•h Œ……߯¿ýn]-—U»zdÄ©½½ƒKÈh1.ÀÃ*&ä8.™80\PïaÂ9Q\†ÊÒÖïþ΂`ÄZ*½ƒö¨j¶è AŠpÆṁmµ­Ó4&Òe¸=õÀ1çÅ<CŒ'¨©Pã?÷˜B+þpå$䲘`ˆqµÂ8ÉÄq‚zœÙnÀŽ˜¨ƒ˜ÌW³ÅíU£DãØ¡ÉŽeü¨æÉ!ÃÅð$;Œ Ÿß› #sÀѾ&iæ4ú¡È9<¾|íëùòf˜ÊbD€!Æ” +ƒ$F ê=`¢(tRæ &¿Õ_rS__‚œ!ìiÕ7漘'`ˆñ5ÅxÊÄñ„z< KM£Ž}œ8Š>½N*¤¶˜šd‡A„ãÛò3A`È`®1ÜsbXBÆDfÑ\_·;É2…Êø!Ï©Cë9JÕnØâbt€!Æ”ƒ'Fê=àä?Üé´HŠŸ{Ltþ?»¬þ´†;䲘`ˆqµÂ8ÉÄq‚zW™$å„Sã)íõHÛo[Þ‡FSßUË0ë}ªV«:·êç9©”î{÷i]m< ZðãšÕ„ôà 1x |büæ€\<¨÷pÚ©öðøäºYçf:’mÍx$µGU¡bzKá†<ù$…'PÂX¤êðÕªÅçu[èã¾>EXƦ7\é#¾îÓ]Œ0ÄP‚rÊñm½¹80”Pï%­==”0þ (žéHæžÐèÒZŒ 0IJaÈdâÀA½d”$Ô2ž9|¥jYm¶íýñùù±tú`¥«z…ó 1~ †r|×o.ŒÔ{àGrB¥S‰ùPüܧ¿r¹¿Š¹,æbœ@­0N2q`œ Þ'¢ðÂîêð¥ªæ¦•z“¿à`ýÙ^ªbÇ5µ 9.æbü@ 1~2q`ü Þ?Ìg5¨Sú¡ø¹Ï+ù¨ëQÈe1'Àãj%Ç·þåâÀ8A½§Vœ*â”I‡uœçM³¨«^Ô·=S%Ü_mŠé*†b0@9äøÕ¦\ ¨÷w‚8Î-„¡_—yݬ?WÝVv·KÊO· ÙˆÙ+e"l ÔQãO.„ Ü{bÃújá`ë£Û§‚µl¼¼­ÓͶšývç‰`âÛ»eék 1UÅ C (B& Ô{A;b•T Ùðl6‹·B¿h7صãE³h‹Æé¾ç”¸b,€!†Ã"†ê=a¡ ±Ü j‡ê°ø~åØ•gãbª);ݾ˜Ç#$°`ˆáRãýH. Ô{ÂC*bœfÝáñãmÝ>¼h÷@7ø@ảŠ˜·b*€!FÔEߧ–‹£õž¨‚=ì>LGE÷ÚŠË GÏ×Õjóq7©P†°ˆ‰+ÆbX@aÔxSš‹Ãõž°àŒ1ìCl‡ÅO/ßuT¼‹Oퟴ¢äi¸H™+æb\@eÔxš‹ãõž¸ ŽÊEÄu\¼½<õü×Ͷ^¦Ç¢ÝîÊÊ,>Oo9o‘±R=®5˘€by!&/L°ßS”‹“õåeέ¬EQ?ˆ=å!A ÓO¼‰ˆ9*%" 4@ÈÅ€{OXE´Ÿ÷ `ïêõ¼¹šÏ⤀ŸW›~Åa×aü^-ÚÏô·°>ù°„$# 1 j|oX. Ô{BÀ¢é°Q`¼C`'zsÓ,škß0aN8ÉrXL0Äa„dâÀA½'B4#ÊÈa™=!÷Ø>¸ñ3Ç…Ÿ3æ®tIB9sûWº„UÇq›pLn1:ÀCŠ§ÆŸš‹CõžÐ‘Ž(ɇõEv輿©ûŽâmw¡£/¹8Ýf•2WÌ0ĸ(3¾§4Æê=q! Qþ‚©Xsèùmÿ¬e}´Æ)ƒ¥Og1+ÉCŠ5¾Ì s8áŠHs§CÑ(Ïoç‹í4¼ædú•ùêãîµq‡Ä¿›U»nŒ{”;gbŠõ†˜Àƒ,¯TçâÀ$F½'™ RÞéALNãWË›í—ôάöêÆ7´õ°=HHR1ÀC` Âø²t. Ô{B€2"™`Ó³[aò“C?‰œÏ6ð9jÎòc¼´VLC²Ã`€rŒ¯Eg‚ÀPÀ\G¬#ÂJ1 Áu$<»ºÚmz«a×Ã,ð/ªÙ§Ý”ÁiýtdÙ(•Ø!2r=þ`˜LˆÌ¨ëð"*C„âàã~ø± }yÏtÔ3¢Þ3ÍÍSž3Ž¾ÙªOtñ‹­’ö^+(ã8?™ °·Za®Ãû4öð¹Ï3ïžÂDŸÏòw´3ô -I+¼Ÿån{ˆÄwúN¹óÒf_LâÿcÄ)Åÿ÷W§7ËöV3;²K‹[J\ûv.á红¿C¹Åewˆü?m2L-endstream endobj 742 0 obj << /Type /Page @@ -1874,7 +1867,7 @@ endobj 785 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [499.2773 292.7672 511.2325 301.7235] +/Rect [499.2773 292.7672 511.2325 301.873] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.2) >> >> endobj @@ -1909,7 +1902,7 @@ endobj 790 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [499.2773 232.6088 511.2325 241.5651] +/Rect [499.2773 232.6088 511.2325 241.7146] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.7) >> >> endobj @@ -1965,14 +1958,14 @@ endobj 798 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [499.2773 136.3554 511.2325 145.3117] +/Rect [499.2773 136.3554 511.2325 145.4611] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.15) >> >> endobj 799 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [499.2773 124.3237 511.2325 133.4295] +/Rect [499.2773 124.3237 511.2325 133.28] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.16) >> >> endobj @@ -1986,14 +1979,14 @@ endobj 801 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [499.2773 100.2604 511.2325 109.2166] +/Rect [499.2773 100.2604 511.2325 109.3661] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.18) >> >> endobj 802 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [499.2773 88.2287 511.2325 97.3344] +/Rect [499.2773 88.2287 511.2325 97.185] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.19) >> >> endobj @@ -2019,23 +2012,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 807 0 obj << -/Length 3353 +/Length 3350 /Filter /FlateDecode >> stream -xÚíKs7€ïú<¤j¥ƒ°x€ÝÖ^v”rd¯$W¶6É&ÇËâPáÃŽ÷×/†`š"¦%8~ÈJ‘’¦§›Ýß4ºÌõ¨ûõŒ"TXÙÓVE™ê &;´7r{¾Ãü1ûá }xÔáåÎߟ ݳļè]¾ç2„Ãz—Ã_w^ž]žœ]^ìý~ùÓÎÉe<)T̨¨ÏøÇί¿ÓÞÐéÿi‡aê}p?P¬å½ÉŽT‚()DøÍõÎÅοã Á_W¢©¢„!Êpø$\€OÂ8'Æjg²¤îoõG)wŠëâgàpÁˆ1T:õa‹Ùr¾(‡ûïÊs0<·2ÄrSøƒ/ýE9)«ÅÞ>Wt÷ù¬?™ôg{ûFÒ]²·¯èx‘Ö~ŠÜ­€+nHÁ)k}º¡Ù¨×¼9‡1 rûPp3f›ç_Ŭذ#0²#ÕÞ#5)´f‘N¿(1Çåo”òj¼O«æ7ýjؼy=ïÊú­x˜œt\˜ ÄY H T{ ˆPDsf[@Ø€¼—`pé>Vw¤%ăI%Ÿ3¿Ü¦àîl˜€ ÓZ8u7L ;0˜Pí-L\]¦…‰˜îÎ2…-¾?v:¡ n͆bЬ… &a ª½…†9+ZhÄÐüoZ•ih¨¶ú® dÌcN=wÁÜ Ä`Z §é†)aª=ÂTXKŒ*d “ü"0Ý´bgØŠnÍ… -"Ь…MÓNhRv ÐàÚ™’Dkm{…ÑÄR&4„¹¦Çó¿5«°^îYºûñ¦œ;_É^Â|ý¬]˜ Ä!ÂIØ‚joÑŠXY0o9ºîÏ‚òï ‰/ÎÉ]¸‡fã1\`À4ïÆ%a† ª½Å¥ÄZj!.âv>yyS5:|›FbÜ‚ç²¹‚02 ;0.Pí-Š*”\Ȇ‹ãU2ø -âfèŠæý«éõx0®G©Ô£ {pLvØ vèx-»Ãž° ;ªÝÕÖÑ+$%ÔÐÐ߸DÀèZ&x6¾vßýò K؆lÆ€ Æ ³VÝŒ%ìÀCµ·}3ƒqúQׯŒÓµ²µfmú¶y=/çÓål™ÝA~3˜®~1œßjh~¹*}³˜†'ÅWåĵ:Z<¼iÛè‘ìxA,ÞÐãX¼v`ñFµ·C +ÓT´ñ^E\ÜZ#Ø“¬,‚òq‚0 º{?e†ª½Åº†„)pà—ønùçbÙ¿nh(ÿ¼YÁPÎçqò"¦…óU/S<ÚA ø)› ˆQã »'¿Rv` Úã  ¬+)•µ‘îãñ|°L„ûçÿ$„ü¦áÿÖsíч¹„@A„µ!„¤ì@Áµ·„J•&"ÍbÀÀ˜aÀ$ìÀ€ÙОꂄ­ç'ü«ÆwA—{Œ±ÝÙtù溜_¹ñ«ÎG]î‰g¸o³fgݲî;ÚàéwljM]?¸Ñ[ù)òØëM'“°ïâU3L;ÏLêi)·­Mö¼œ{A9äzZ‹!Âͦ>˜ê8¤‹Âjý]˜Æoè[­­/þæ{åjêo?û0½s×Õ?›Ÿ®¦š7ƒ~Xlo^ê{ÔFÍ^@Ÿ³§Ëp†«~<í_=ŽþåR93h¼>ÉŽ6Ľæs$Þ ;°€£Úc¾Pš¸^Õ÷Ò« -®N§Õ ‰X]ÌÇb.îÆ=ºêW£µÏƳq˜’<[NÞÔ3ÔÎŒGPÈG7e31Ö€0°cÕŠ0ão|4±æú¥Þ)Ñ^µG·®ë祿Š,¯oÜE+åvì¸JÁÛÙ(A ¥µh"(%ìÀPÚО¬Æ¸ ¼ðâ.“s¾{psSVÃñ ìžoŽb÷.Á€V‚AsL÷&$x:ÌZ“—cD0¡Ô#¨ÖÎ ƒwÕôÃu9Õ)µÞÏí¶òÊ¿z‚s³¯ ˆ]=0x1 ;0rPí±ü⶞ï5" SÃcëK¨É´‡³qéwMÿ8ž/¦³ë[©ã@||vqkÄnÖ… -Ê -ÑY¹(@A…µ` (¤ì@PÀµ‡$Â&’ -æIàMy^Vå,TX1Èçå[?RWán›Óêíj!x5]Vاµþ}— ÄÀ€±±ÝÛ‹Rv`` ÚÛ¡‘~ïõA3™_§ˆÓWï ͇áÞšpÇÝo®ž;pÿÜ«;¼z»5 ¸1›‘VC #dÓ LuL… ÒòÀ‡hÇáøÍõx:šõo®>¶HÄÑáb9•õóöBBé]w×Ð"8"i#x. ˆ1#ƒA‘°£ÕÞ¦ ňº\„¼q^þ±t¡oï°!bâËÔÀÊù³£y„üiÔšÑeÙ@A  ˆ„¨öakà~ ©å¬ -Íýñ¬ÿ¶ÆÀZ¾mLîÃLðj63@cFÍv¯µ¤ìÀ˜Aµ·Ìp]?QDfDà ¸«æx:X‚Ôqð&Îö6-ˆbO%{_e“1`,0v`$lhOÍópªˆ¦¶Áð°ÄîÏý*Þß}Ó!Ó=Qú¾Ó=P™îY³Êv?žsņÖTÁŬ ZÉ&‡«aUØÝáxô¨’æ÷sókŒGîu‘ën-Þd);Øpí6ȶ–yØxÛÕ´.à”ÞÒöõh¤F·¹/m^n -¦h»}þ:àŒv‰)C0ÜPõ·ÂãïÏ<\ öuj«æórP?™}T?“GJµeê3ÁäÝÍR+‡¡‚Éh÷Í - +00Ý‘#¥‰qÿ
+IÁë¹(9„%SƺŸB›°bƒ¦ø –ûõ­®\&ŸàþgĪæ憿ö™í÷zÖñ2¦ã~ A-œÊžPDú*A!›¶WËÿ¢P'bendstream +xÚíKs7€ïú<¤j¥ƒ°x€ÝÖ^v”rd¯$W¶6É&ÇËâPáÃŽ÷×/†`š"¦%8~ÈJ‘’¦§›Ýß4ºÌõ¨ûõŒ"TXÙÓVE™ê &;´7r{¾Ãü1ûá }xÔáåÎߟ ݳļè]¾ç2„Ãz—Ã_w^ž]žœ]^ìý~ùÓÎÉe<)T̨¨ÏøÇί¿ÓÞÐéÿi‡aê}p?P¬å½ÉŽT‚()DøÍõÎÅοã Á_W¢©¢„!Êpø$\€OÂ8'Æjg²¤îoõG)wŠëâgàpÁˆ1T:õa‹Ùr¾(‡ûïÊs0<·2ÄrSøƒ/ýE9)«ÅÞ>Wt÷ù¬?™ôg{ûFÒ]²·¯èx‘Ö~ŠÜ­€+nHÁ)k}º¡Ù¨×¼9‡1 rûPp3f›ç_ÅLoØHÙƒjo‰‘šZ³H §_”˜ãò7Jy5^Œ§Uó›~5lÞ¼ž÷GeýVyyS5:|›FbÜ‚ç²¹‚02Zts‘°ãÕÞr¡8¡BÈ…l¸8þXõ'㯠n†®ØhÞ¿š^ãzÔ‘J=Ú°Çd‡ba‡Ž×ª;ì ;°°£Ú]ía½BRB ýKŒ®e‚gãk÷N)ûÝ º„ aÈf bŒÁ0뢛±„c¨ö¶ïqf0®Bß#êú•qºV¶Ö¬Mß6¯çå|ºœí1³;(ÃoÓÕ/†ó[ Í/W¥ïqÓÐâ„¢øªœ¸VG‹‡7m=’o ˆÅz‹wÂ,Þ¨öv(aašŠ6Þ«ˆ‹»Ck{’•EpX6@ÃÃ!a†ª½Åº†„)pà—ønùçbÙ¿nh(ÿ¼YÁPÎçqò"¦…óU/S<ÚA ø)› ˆQã »'¿Rv` Úã  ¬+)•µ‘îãñ|°L„ûçÿ$„ü¦áÿÖsíч¹„@A„µ!„¤ì@Áµ·„J•&"6?M]~–³~³îßé·pjgÀýü6-Þ<ïÊ_Ýk ðt˜Ÿ6´¦Ö>eÁ‰–Ê/Š­jüzíó`0(çóè–Å*¯Mýõb<_¬þ&·kžùW]pxöU±«£(aFª=Ò¤(Ñ–ú%7’Ú[îÒ·e’ùóèj6.«„J«W:cµ% aÿg¹XŽ‡©SâP5þ°'¾‚ÿ)Ć f 1b!4¦{a.eF,ª½-#œ€JdÛuùd}¨˜ãÒæø2Â5uáIõ¾© §U³AYâé$ÄN®‚ç³¹‚W0²W ;0®Pí-WuOj(‹\…¥¾×ó8óžnA\b, ©oÞ™ÖÞ46ÆÏ–Õ Ùê.õSl;¡ +nφ +bPÁ°bP%ìÀ BµÇá•Ib¹ôK“q£ZçÖĶ¼Õªx⋃ÀŸf1``Ì0`v`ÀlhOuAÂÖóþÎUã» Ë=ÆØîlº|s]ίÜøUç£.÷Ä3Ü·ÙH³³nY÷*;<âŽM­©ëG7z+?E{£édö]¼j†iç™I=M 嶵ɾ¢‚—s/( ‡\Ok1D¸Ù4ÃS‡tQXB­¿ Óø }«µõÅß|¯\Mýíg¦³wîºúgóÓÕôCófЋíÍK}Ú¨Ù èsötÎpÕ§ýà«ÇÑ¿\*gæ·Ñ'ÙÑ‚X¸×|ŽÄ;apT{ÌJ׫ú^zUÁÕ ã´4«‹ùXÌÅݸGWýj´VãùÁx6S’gËÉ›z†Ú™ñ +ùè¦l€ ÆÀZv`  Ú#Rfü&Ö\¿Ô;%Ú«öèÖuý¼ôWñåõ»h¥ÜŽ÷B)x;% ˆ¡´M¥„JÚ“Õ„~BüÀerÎwnnÊj8”ÝóÍQìÞ%ÀJ0hŽí^¾§Ã|°¡5y91FªñA=‚jí¼0xWM?\—ÃQRë=ðÜn+¯ü«'87ûê‚ØÕƒ‡“°#ÕË/nëù^#:5<¶¾„šL{8—~×ôãùb:û¸¾•:ÄÇg·Fìf]¨ ìñ •‹DPX ‚BÊ\{H"Üh"©`žÞ$‘çeUÎB…ƒ|^¾õ#uî¶9­Þ®‚WÓe…}ZëOÑwÙ`A ۽꛲ÕÞæ­ˆô{¯šÉü:Eœ¾z_øk~8 ÷Ö„;î~sõÜûç^Ýá…ÐÛ­ÁÙŒ´r" H!›F`€`ªcâ(‘–>D“8Ço®ÇÓѬsõ±E"ŽËѨ¬Ÿ·J躻†ÁùIÁsÙHAŒ  Š„¨ö6m(F”ÐEà"äóò¥ }x7h„ _¦VΟÍ ŒàO£ÖŒ.Ëb@À`@$ìÀ€@µ·@[ ¨÷Iµ(gUhîgý·5Öòmcrf‚W³™‚30j¶{­%eÆ ª½e†ëú‰ˆ"2#fÀ]5ÇÓÁ¤Žƒ7q¶·iA{*Ù#ø*› ˆ‘c‘°#aC{jž‡SE4µ †‡õ˜ vîWñþî›þ™î‰Ò÷îÈtÏšU¶û’ðt˜+6´¦ +.fÑJ6q8\ «ÂîÇ£G•4¿Ÿ›_c àãl‚€ FŒ!cÝI‚„ªqN(¡áÓ€ ×[µ-»¿BÙbMă1f )»†`„¡ê#aŒZ˜Ð噆°Y58ï2³mï¾:n! Ù¸A 7pƺoiL‚ᆪ¸YC éÌ™›°74Ö’U•xX«¿mEooDüú0å"ØŠ!ë®é7M@àÃôLA\áúB7’ïKŸéökÂV ‚‰mVû¬$¯ç¢ä–`Lë.ïVlпÁr¿¾Õ•ËäÜÿŒXÕÜÜð×¾1³ý^Ïú!^ÆtÜ/!¨%‚SÙŠH_%(dÓöê `ùÿ2'{endstream endobj 806 0 obj << /Type /Page @@ -2083,14 +2070,14 @@ endobj 814 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 698.7008 539.579 707.6571] +/Rect [527.6238 698.8005 539.579 707.8065] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.24) >> >> endobj 815 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 686.7456 539.579 695.7019] +/Rect [527.6238 686.8453 539.579 695.8514] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.24.1) >> >> endobj @@ -2104,14 +2091,14 @@ endobj 817 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 662.935 539.579 671.7916] +/Rect [527.6238 662.8353 539.579 671.7916] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.24.3) >> >> endobj 818 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 650.9798 539.579 659.9859] +/Rect [527.6238 650.8801 539.579 659.8364] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.24.4) >> >> endobj @@ -2167,21 +2154,21 @@ endobj 826 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 555.2388 539.579 564.1951] +/Rect [527.6238 555.2388 539.579 564.3445] /Subtype /Link /A << /S /GoTo /D (subsection.6.3.5) >> >> endobj 827 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 543.2836 539.579 552.2399] +/Rect [527.6238 543.2836 539.579 552.3894] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.5.1) >> >> endobj 828 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 531.3284 539.579 540.2847] +/Rect [527.6238 531.3284 539.579 540.4342] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.5.2) >> >> endobj @@ -2223,28 +2210,28 @@ endobj 834 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 449.6348 539.579 458.7405] +/Rect [527.6238 449.6348 539.579 458.5911] /Subtype /Link /A << /S /GoTo /D (section.7.2) >> >> endobj 835 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 437.6796 539.579 446.7854] +/Rect [527.6238 437.6796 539.579 446.6359] /Subtype /Link /A << /S /GoTo /D (subsection.7.2.1) >> >> endobj 836 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 425.7245 539.579 434.8302] +/Rect [527.6238 425.7245 539.579 434.6807] /Subtype /Link /A << /S /GoTo /D (subsection.7.2.2) >> >> endobj 837 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 413.7693 539.579 422.875] +/Rect [527.6238 413.7693 539.579 422.7256] /Subtype /Link /A << /S /GoTo /D (section.7.3) >> >> endobj @@ -2286,21 +2273,21 @@ endobj 843 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 322.0931 539.579 330.8253] +/Rect [527.6238 322.0931 539.579 330.9498] /Subtype /Link /A << /S /GoTo /D (appendix.A) >> >> endobj 844 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 310.1578 539.579 319.1141] +/Rect [527.6238 310.1578 539.579 319.2636] /Subtype /Link /A << /S /GoTo /D (section.A.1) >> >> endobj 845 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 298.2027 539.579 307.1589] +/Rect [527.6238 298.2027 539.579 307.3084] /Subtype /Link /A << /S /GoTo /D (subsection.A.1.1) >> >> endobj @@ -2335,14 +2322,14 @@ endobj 850 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 238.4268 539.579 247.5326] +/Rect [527.6238 238.4268 539.579 247.3831] /Subtype /Link /A << /S /GoTo /D (subsection.A.3.2) >> >> endobj 851 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 226.4717 539.579 235.5774] +/Rect [527.6238 226.4717 539.579 235.4279] /Subtype /Link /A << /S /GoTo /D (subsection.A.3.3) >> >> endobj @@ -2398,7 +2385,7 @@ endobj 859 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 120.8677 539.579 129.9734] +/Rect [522.6425 120.9673 539.579 129.9734] /Subtype /Link /A << /S /GoTo /D (section.B.7) >> >> endobj @@ -2412,7 +2399,7 @@ endobj 864 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 97.057 539.579 106.0631] +/Rect [522.6425 96.9573 539.579 106.0631] /Subtype /Link /A << /S /GoTo /D (section.B.9) >> >> endobj @@ -2795,12 +2782,13 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 933 0 obj << -/Length 611 +/Length 608 /Filter /FlateDecode >> stream -xÚ¥TMs›0½ó+t3EÕtÌI;ŽÁÓvÒ£$šbp$Í¿¯@Â&Mzêx<ˆ÷vŸvßzM6x„"AˆEˆ8&lw†»ôˆ‹ Æ `uš{Ÿ/X @þ0ÑJNòâRÄ‘o0ÌÖËåõÊg1ÌÓs? Ãëeº:ñãæ³Å¥…²ïYžÎ3?`"$ðìËÉ2OW–¢Nèt¶pù«4»^¯ÎÒñíf=[¥ót‘gþ]~å¥ù¡‡iŸ³¾_Þí…i÷Êȉ„ƒó‚‚‚r†xÈ؈”^æÝ'ìú¡o#Ê"úq”"rêˆ&1ó‚±ñ¤Ûï릕…sm/›M«ªGçØ«nåN÷]6MP 6β3“A£Ñ@Ê¡°À¶ÞíU)µ7UaáÆO`W9´®,¸±rÓø$Ò²U·»—¥ê‹­+õ;(ÕOéàIÙ†ÕCÙNÓÞx¼d‘ûœÃ z–®šg9Üôö­‚çÖ+­ê¡N,ìíùÚñµ®ZK}íEUUÔ/ÚÆènûd©>„„PùN¢¨™‹ê4Ð[%Ã|[ú„ -ˆ,}Q7c‚}vû ­ƒbÓJP*ݾ-Wfü¦=»DÖ+ýÉ\Kií“ù'çs·?0¦¥ÃUõW`[ïí¡”Ï²´ÇB >Ém[7¯ŠšæWN¸ênÈÚÊQD·ºïZ3ô¯åcõóÁª˜¯›æ/æñß*ŒKzܹénÐ8AabD\Q½Í„¾«|Üà÷¥ÿ¦œ@šendstream +xÚ¥TKs›0¾ó+8Š™ ê@:&I'ài;iŽ‘S¦¹<’æßW aÓÆ9uFûüv÷ v‘~°ËB +"ÜH!ÌÜÍÎAî³ö];ØÆøc?ºÈœOW4r! Ýl;ÁâqŽÝ,2èiÒÕry—x4Y|éù„!p·Œ“s/ +@6¿½6¦ô[šÅ‹Ôó©0˜}>_fqb\Ä]Ìom~§w«dÚýjžÄ‹ø6K½ÇìƉ³Ã Ó91¢ý¿œ‡GäæzÜA*8s_µ‚ ‚¸;'`²€ÒÑR:©sœx‡Ô“¼a É âvqi S昀„GddÎó1Bš“n¿Wu+sËÚ^Ö붨ž-coM+wM?±Æ¥“ A®O8 #AÀy:ÓšK –„96j·/JÙm]õ…hjƒ®²VUY¯9Êuíaž¥Q«n÷$k¹5çª*~ûeñÓ†¨IÛ¼1mŸi-@cÍc™FílÞ‹¬›BUÀýHCÁ˜áh(…)X›¡Õ¨mkL_<Æ@Qåêµ1†¢Ú”]nê¿÷àëÒÃD€³Ò B´÷‘±ÙS:ˆë¯”ˆ\©Ú­+ãëö~ëa ü|ÝJc*‹¦ý{,|+à ™\|¯N( ‘Ò˜ÛVHâóËEläï‘ÒÚ‹êŸÀVíPÊY1/å¦Uõ›1mò쇣‹ ۑꆬAš¶.žºV_üh)ƒýâœØýÚËýïý<þ´‚RÎÉqõ¦+B"®AlS=û˜¼ë|\ä÷­ÿèD-endstream endobj 932 0 obj << /Type /Page @@ -3772,22 +3760,30 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1097 0 obj << -/Length 3638 +/Length 3978 /Filter /FlateDecode >> stream -xÚÍ[Ýsã¶÷_¡>EÎœ`|$Ó‡KâK/M.iâL’Ì…–h›s”¨ˆÔùœ¶ÿ{w")Jvje¦s“ÁÅb±ûÛÀlBá›(M´ãnbœ$Š25™/ÏèäÞ}yÆâ˜Y;hÖõÙÕÙÅ+a&Ž8Íõäê¦CËj-›\-~šjÂÈ9P ÓÏ¿}óêõ—?~ÿòÜÈéÕëoߜϸ¢ÓW¯¿¾ ­Ë¯/¿¹|sõü¢ÂM?ÿÛËï®.¿ït$òÙë7_„¨~ùêòûË7Ÿ_žÿrõÕÙåUZLwÁŒ -\Éog?ýB' X÷Wg”gÕä~PÂœã“å™T‚()DÛSžýpöD°óÖ:&@)Ñ\‰ÉÌjÂV‡§ SP˜66•#Æ(;˜u¦-ÑŒâžPK8ïl‰ël‰‘ÄY31@D .üŽë¡L¬!J8·ö¡p lí¸Hf-ÁY—â>wŽŇ쭫Mƒ ^¼‚ŽÝXÆ¡mN£^®PKìôõwø4¯z3HCŒ°:~´Ú.¯óÍq¡ˆÕJÅa jÜééÕ]>B‘ƒÚXù(ACœ€ï°¢̖ŲhòEษB'?ï6çÌN«íí]è~„z´'3&1œCƒ§÷T23}Ÿ•Û¼í뼬î±i§Œr:›‡u1ÏÊò!üô3åu³)æÙîí9›Öyh_ÇñëÀÚ<¯k˜9¢}V6çðájU¬nÏg‚êiVãS…‰ªª‰J›µ -¯ëj™‡ó (¾€6§ÓlÕ~Ü䛢~FüLýõãàÁÂëù]¶É€ïMü Ÿõ8 -°s(3ÝÖ¸@lyž?×e6Ïïªrá © |Öy™Ï›ÞØM¶ZTËо+nïfqßQŠ‹1y 6’¡•IJÁ¨ûÎbŸ‡lBÒBǧƒ--‘Ãí±JËGp% ;®t)Æ•{ëM~S|x²A=²¼¹¯6ïBg½ÎçÅÏ”r¯UðÖk•ðÊ»LXb¥lqe_@Â0bq'“P¢øˆˆì EÝ“Q¶XŒ¡ ¸à+Ã2Ð\ÁÃÞTeYXÜ{Q€-¼(‚dê2«ï"|Px§ußD½e_DË–(ËP’@¡¹ËW¡ Z¡-ο®nBßuÑÔ¡U¬Ò‡qxÞ,³úàŽ•vzuî(qQ"@˜ëïÁ–+ÜKÃ<5|fãÅ 'î(·”8'A®F'5{öŽ&Š³.ÉýåvÉBd“†ÛQC4ÕíŽ.³‡°â -üx›6búªÚ„îüC¶\—ù‹Hˆ Œ¼“”7vl>M”¡¬ã‘n<,¬Qjb©8¸Öòög/ ’¦I ÅcŽšÂ¶Ž8ºL•d„¶æŒ¬Ýa®ÔqÚ-iTÞñ8Q•%œB/ø˜ˆ$ƒ4½!ð9ke$aϸéÑqˆ˜ýyÇöÅu'mÅC‹GvuÄ“þ“c3h/ŒM¡Õ!§Øõ7§òŠ·ä Ù"ÝA¯áŸÖ÷ŠôÅRíWü.®ÙAÂÀŒÚ{.D´g]Š#nŒ¾Ç_±u‰ —â—c¾ix«ÙeÅj aó¥0æt+MY*7Àת¿ÖU¶ÌÇÁ ²ÖXBX·Ž1r¾j|T˽wÁ†§-é]ödáQCl£Bÿ7Ÿ1†.“bl辎°g`C”a}Ô +÷v  5ļEµ -u>ßnŠ&?bSm}ž mJœÒ¦(…äØÏ`5Ó„*µ©vÜélªCñˆMuù+‹ºyŠUA¸$Ã`ßBeBM«U;6Ṭ‚V˜!n5-F ^J¹ÓI&Q|D4ý#`_6ãxõ?¬Â'„J–¯!ÕkB|)c|‰ÝËb^•ÕªýÑó‚ F¸šž9å«E0`0›ËZ;Š¤ŽØPG;OeCm¹áé$Û/ÙðÄhqÔ„”ãà§!{:Z¹ÀRƒbÒu”Ãj5[å·YS¼GÝÔt*ø âïð¶X5ù­Ï£á†õÉ n¢5!…ÞÅï8ââº#||AC_»‰ƒÈd&6Ü)$'5L5/·5piÖ…›¾Æ4@p˜k>Ï×Mv]"\‡ºHxµ„´½ ½7Û ù&ôG(Tv…òÂþ¡1¯`½šð£ˆ|WÌ£rí«:<Ñ+Xg랧 &F+p£V»?ª`Jà 2¦ÛYs·Ò ;qølŽg]Šûü1ʉ´ÐÕãð@4À˜%”ÙŽþk;ým[‚6ÖÍ|¡K›v×±û¾(ËÐòµ'xÆÚ´|•Ÿá²ÁÙQ§™ÖÛ–FV@ü0Y÷P_,}•ìbù@š¼nÈ.þ®F3\±y4þîîð©p¼£û4ã'‡ëR’u©ŽGàJà†Ë`Ìuñ{~PÛ§ÓÄÅcšØãpÏŸ¢‰>3 @ -±ç‹,݇(!úWi»Q#Ú%ÿº]µø¶?§Ä8Û)õ å‡>a*Hʸ0m0½Èo²m9 IF¬LE7²«(ø¸§ð/GKk • - -»ͤâ£;.8d®Å}uÐ=?j)κ$G⠈…´|7ó‘=ç3ÖÏE~Û‚‰×aiƒ•ÄœûôBQá· ;SY… ôøÆôå¹Ì>ËíÆRð»ï³¢ Óÿ\VÛ–ë ¸æÑ´O:B)uƒýÅ ~TìxòeSE-l­0Ï{¢8ë’Ü»”’X𔆻!ÖÉd í1(;HñAå2Ùß‹Ö6²ØºÏê~hp¬eÞ¯nöì©Î7ïóÍàóºÉ6MŒ†N`tk@yÊ.MaI*iØ<‹qXµÆô2œáïp€âB™7Ôx±7¾õQ¸ÂyV_ˆ#!C­6ŸŒ`gñ§E²¿p™½"Ró®V›rLNU»‚w#Ô±4˜O£…•ÓwEY]?4xà´OTQ™¾ùæQÝ*þ[>™±%DÖ‘±™dnWK‚8WéèñËpxûdo‹T…bŠArǾ"EL{ÉCÓ«<ñTÒä¾ùqú-Â@;æãô¿ñG_žkÆ”¤ìTB†#ñן¶Ù4—[ŸsSÔzöª>1‹H‡™á0¾Ð2&>е]ÕÅíÊÕ) I(0)ÂL‡òpÎhͬ”ÚHIš(ÔÌ'9Lí%90núc/†•.j0`ÒOñíšXFõ®ÂvòÁÌ öž é:¯®µ‰P*»ÉˇÁš^fœ)Caì6F1‡#Òn¤÷ÌèñÏL„àêxù -|+qÆÙ>ï2V¾JãNV¾êR<\¾êñ£Ë,Â-˜ådü%Š0È' ¬Çઋ–ÁÍK%Z'sYø$E?Ó"\Ü‹a8ñ²JÇ6‡”:“n–TVµðPͲG øm ]9#€z–ΛÍ6?p†'„ž?õ=/DœÖµ\Þde=FIÔåVr±„¸„/¯°Ä=o]å ÂØÂaå%_Ä„¡ a©^´ŒlÝŒ¡ûIÇ«l„WØdmùÑE_3v(¥P—ô£9q×´ÿkBru¼2#Œ!à#Bæ±(Àî\ƒÿó¡|7öÙ&ÞRœuIŽ™¸)»>“!5s £x«¬ßb­\+Åó}MÀ™V3<ÑOôÆBCh¹tFúK¦¸yxôÚéÌÖYÁ˜±€a[ýd¾6ùÍ&—6öÂsP`å†QÂ82Êp_Æ:à!憀ƒlkúOŸ)-cù [EìÉÂ+`cka˜<ót«áÒàÈxÐǺÃrê¯éE¸>wšÁC»¤wGÄ„ˆâÔœñŠàÞ=>êҵºÌÞç¡Ë‡Õ¾¯Ù^‡–/"¾)§*Iï.Ç>zÛ¾1Ô nÛþo_¥ƒhˆ6¬±Î@E8sº{Kwï¶.7‹t\àêœb;àâ,ÙzçÂ3·’¨\xß™.SJ§/ Ð“è ¿Éšö€àëë9ûw+( £|G*ûá’’ãõáðÕîÆLúv‰ó½ §‹Xùkxì¿~›—ù2žðþSïäÛEö¬ý§Ç(|BBã—X†ê;ÄfŸÈnœó/-AÿðGLë·Y+^?ð¢ÌW·Í]òï°Œˆí½eà!©·Å¢Ö6/߆ÓýNç¿­;ôÿ'1ÅFöt–xÓÝÙZ·ö‹¯®ŠÝ0YhüXg·c¨0ØtÔ´u¸b°ŒÚÍÒk4y= ½)–Ù¦ðüŒ÷ðžC¼¦°È›|³,Vyüx>Oäñ,Ü™+CG¸«÷@²ÚÆùR] ^Të|“á -w "p ?Œ%ì&yŒ?±.&/Â_Z3©Ô9¹µÉàúóÕl4šŧ@ÿà.e’?««Msà|_HÂ…m‰ÕMÖx}ëU!òG¦£žGµ‡†¡Të¦h¶M»ø¸Ê¬¿»<în0.ˆQfHƒÌ6k÷¾È·ªSrw¥—‡R_±ºýäÐM Çálãð‰tyÌd²Bf%ôŽR(Ž03œÑ5qþ±Û1{3ö½<? þ³;c+ÿ׊¬¼þî½ìŸ@nÍ|L¾òäá#S¸tÁ÷8gè -ÍGXÿ/Õ/oendstream +xÚÍ;ks#Çqßù+èOUÂܼvåÃYæ)çH'G¢ËdÕe .É­°vq<:ÉO÷¼°  +áªën³3===ýîYvIá]*M´ãîÒ8Ieêr¶¸ —ðîÛ ÇLÓ épÔo.Þ¼æÒ§¹¾¼¹À²„ZË.oî~žhÂÈ@ “o~øðîý·ýñí•‘“›÷?|¸šrE'ïÞwZ×ß]ýáæ'øE…›|óooÿrsýcx§#?¾ÿð§ÐãÂcÔ¯ß]ÿxýá›ë«_nþ|q}“73Ü0£wòëÅÏ¿ÐË;Ø÷Ÿ/(ΪËgøA sŽ_..¤DI!RÏü⧋ÿÈoýÔ¥dDs%.§Vn´Ú¿lX‚²±©1FÙ­U§ÚÍ(ž µ„óÁ‘¸Á‘Iœ5—€hÁ…?‘æi›&Ö%œÛ ;([[&É4œ!îbç(Q|½§vÕ#‚oÞAÇf,ãÐ6—ÀQo—È%vòþ/ø4ƒY£¤!FX'-׋ÛzU.±Z©8 X;=¹y¬ 9°•GâÌ Ãš. ;oM_ߌû6tÒøóquÅì¤]?<†~ÀG¨¯öå”IE çÐ`Ä)Å=Ôç¦Ç¡ÌL>WóuÝ…öm=oŸ±i'Œr:û—§fVÍç/á§_©îúU3 è°ˆt¯¯Ø¤«Cû6Ž +¨Íꮃe#:Feu—Ëfùp5TOªŸ*,Ô¶=PT8¬exݵ‹: ˜Uñkhs:©–ir_¯šîSñwªè~õ/ð`áõì±ZU€÷*þ„i#Œ‚ڹŔ™¬;Ü ¶™@< SCüæMן"Uà.É0Ø·™„P“vYÇŽUx.ÚÀU1Ä£¦"©ãa„Ð`¥”;e2Ä#¤hA÷iSÖ7‘ÿÃ.|@¨pù„z}ð/eô/±{ÑÌÚy»ìB´¼ E‚¦f$Nõò.0ˆÍƾUIŽ"¨24àÎsÉPJ7œ2ÍØ'CàÀ£ÅARŽƒ†èé`æS ŠI7`RtCÚåtY?T}óySÓ‰àSð¿ÃÛfÙ×>Ž†èÖ7¤&xˆÖ„zã¿ãˆ[ðëjôðñ }é·Ãiƒ«#O;3éÖ FÕTüv° +æ¡{³ðY²7‹Ò×]O6þ×ön4Û£þ÷ð„Ï¥çœ"Z²ßâ‡ûù‚)Â;¢è·d£tr‘ÓÀóñáâ!>b¸Ï[ØæCPNÑYP*$A°§˜x f{ZÈR•>ßþ#¼#ÛçÎ%Hñ€v#S@"e Ðò» ?Ç“<ã‡ìãL"Ñü–…·¡ÙtÑI Cò±LÒz’ÊP‚gH(A|ñEhá=¶ÒŽ‹jr¡!¬[È Äðd[}í9-‰fÆ/ùÜNÔ8Â-s{OT*K·sŸüt¯>Ó q:¹{ª5 3›…j ȳŸ·»QñÀr¥w3ê;\ Ê€RphÆ2¼žÄéd“1 èUMæ¹}.í8Cæ|RNáQâŒJé¸Ò^ ãBžo¯⑽ +ÐCŠq>Þ+–AŽ0Ø7©D2’’ñÝภ¹AdqDp“°r`NíØ;»ÙÚE‰àq£3V –Â~fÏ“H§C¥œ„ä4߬|i¤¢Ikƒ…”4ÅB¶>Ä<š†dÿÙöœ!ٳаg£ÝxÏ™gPfP^G‡Ÿ¶*Êðƒr# #”S}¾­gˆG¶.Á]"O9nXl³¥ôk´öR‚T´±¾¥”b2‰&uaÿX®@1P¦ÆòCÌiTÏV­ÅjP ât²Ä˜jGæHÃNÖ,XØàÒW(pûã +ÅÈ4E„ÖnÛ2£²g(-Ç4EsˆúC¾”Ñpœ\ïK¢«o•'ulf}å…°5*ùc‡_¶f˜ÆZ¹Ç2¬¦Æ°nBËó%ôÐ +t:( c切î'l +èøÓG©Îó`’W`ÅÎð€ˆº¹;£?Lâ<‡œê]Ac8F´ËÑÓz™²A»k‚Ö6Î,BÎYû–MÉÑuˆU”ú¾ZÏK| ªÊÊ|Elª¦Êȱjx[4@•Ë¯›{Æ‹'.Àñ5Æ‹ã=s!AœAŒ¼,Vvà̹%’±qåæ×uÝy·¶¶µÓ5hJ á ;sš ̳eƒ«/Íbíc?ІŸ«fò‹þç¢]/ñr“Q®\$“|ê¶Î×›—Ùñž ÇΈ‰5©W{+ ât²à­H 6Í—‡"»!ÖÉ, éR0;PM㈂YüY$Ù¨bë¹êƉÔû -³$<þ.ÈHžºzõ¹^mMïújÕÇ<ëv:·x4ÀŽ<×bö_äÃ~æ°Y³ÖíãÂ:ü®›¹AHï{ã[Ÿ·“nVÍCæG‚ nW¿/è>蟤Éþ½è/jE¤æ[¼Ú®J© A8ØÉT!*@sÄÒ¬Ä|ÑQX9ùÔÌÛÛ—¾îJNx%\æ9ßïš½®[œŒØ¢~¨"bÀÔnRo+q®òEÍoÏ€áÃÉ>4ùΆ L³­cÚ /DŽŽø|È uhzÖ'z‹~ ÷ͯòo®K¥1_åÿJ½Sf,àÌuãmÏ /½ú{•©v͆j›CÏŽÓk.ùêg¸: 3´Œe"èZ/»æatW2F êY¾eÛ¯ÖõžBˆí4ìØòR¢¬KXÞWónOx9Q.^ø X ÔWx!h–Lå̺±†Ã:u}†äÂdP#ogÝ): ùÉ—QYW8d³?åM¡L"Lé +Ÿ"Îä³Û¯†¢ýÿ÷¦fÚß—´‹ +ˆ[F$Ö ¼×Þ€)ÜIh€ )Ú<öÕBž N‡ KB.‰„ž’Á!- +º&TóÄ®?àÝ"­D¹Œ…©d­ÜAigx:Ã+9‡ÐrùNé ²~Œ¾¹9úÝΉp¦OU‡îBI\@´­>¯U}¿ª»Ç¢ƒ,¬œá§8è2ÜïŽ)Ú½Èmç¦ â­Éß||¤´Œ× °ÕÄž*<ðÆ@i/ ÃgžoŸ:àYâ@#l}´—Nã=}>7Ú£œÁF»ÌwÈ„:Å©mõŒŸTí|÷D]þ «›WŸëÐåkßׯoCË_º8 úJå\—x6Ÿý>æj¶¾Oü¿ÍÊùZð8¬ÂN…&ÀÌfø]ãÎ÷ÜXLÔ¡êõ (Ýd8ËÒ>øD”è³ZäOD°3¥tòöîX%Äï«>Ý©ú®Á¤ÎîutŠ—€‹ùTöÓ D&_Êéê0kóÙ ,úqë} w,0Eó¯á±ûúc=¯ö„÷ð–>írÄù?ƒð‡0€¿Ä\ÔÛƒæˆn\ów  ø[yO«D^?ðͼ^>ôqȇmDõ>ÚÞ+õc ñ±¹KãÃÞfóáBô ó¿öí;ôÿOFŠíû>ä?ª-|MK3©_ýíîæËf lkíæk·-ß1²wD +I"øæ <=¡yõÿGÁ0Lendstream endobj 1096 0 obj << /Type /Page @@ -3800,98 +3796,89 @@ endobj /D [1096 0 R /XYZ 56.6929 794.5015 null] >> endobj 250 0 obj << -/D [1096 0 R /XYZ 56.6929 304.8746 null] +/D [1096 0 R /XYZ 56.6929 194.962 null] >> endobj 1094 0 obj << -/D [1096 0 R /XYZ 56.6929 277.1668 null] +/D [1096 0 R /XYZ 56.6929 163.332 null] >> endobj 254 0 obj << -/D [1096 0 R /XYZ 56.6929 277.1668 null] +/D [1096 0 R /XYZ 56.6929 163.332 null] >> endobj 1099 0 obj << -/D [1096 0 R /XYZ 56.6929 249.2319 null] ->> endobj -258 0 obj << -/D [1096 0 R /XYZ 56.6929 169.6708 null] ->> endobj -1100 0 obj << -/D [1096 0 R /XYZ 56.6929 141.5207 null] +/D [1096 0 R /XYZ 56.6929 131.4748 null] >> endobj 1095 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R /F14 685 0 R >> +/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1103 0 obj << -/Length 2809 +1102 0 obj << +/Length 2913 /Filter /FlateDecode >> stream -xÚ­]sÛ6òÝ¿B™{¨œX4@ðóúÔ¸NÏÖí%ÎÜÍ49Š‚$Ž)R%©8þ÷·‹]€¤DÛ¹kG‹Åb¿’3?9KBO¨4˜Åià…B†³|w&fXûáL2ÎÂ"-†XoïÎ.ß©x–ziäG³»õ€Vâ‰$‘³»Õoó«|÷ëÝõûó…Šyä/ÂHÌßÞÜ~O”†«_nßÝüðñýwçq0¿»ùå–Àï¯ß]¿¿¾½º†O û%Sxbû›Ÿ®ivýÓõÏ×·wοûñìúÎ]fxa)Þä³ß~³ÜûÇ3á©4 gð!<™¦þlw„Ê ¥,¤<ûpöOGp°j¶N Ðá,Tà%Ðx^ÌaêEÊWNÌ2ˆ9…i¢à ÅüIÈøøªR°)ˆgCz'§:¬ÓcaÚ+̃h|lF¾×4¹ùþ‚&YKãJ¯ôŠ>—Œ×m5r GÈá2õ‚@"kH©ÒˆÔpÆi»¬Ó;]uOê9^€Ÿ—øë‰[¬—%þÜ©‰;-ñá±(9#Â*Ûñ¬^³Ì+W«æ\&sݲvY—oiZm7©™‡¢Û>§ß˃åžåå”nBÏ—~òÕºñ¥…⥠3ÀzF7ëe݉PüçÕ70Hôm1M²E˜ØK!YºÌÐ@[¢ö ¬'«q04b©êJ¯(ànÒKÃÐ'ÂBYçY¹­ÛŽ7>®RÙ#TºkñƒÀ‰›>öôáL’G œý\÷H(îuÝØ»ã.;vp4â»àÔˆ'K^[×ËSávêñ(®t›7Åž¥<ð\çÔèVfâ|Çs„ŒâSCèŽð#4¯Â’‹˜\hÉE6.GsÐî¡eà.[é#<K,‰–Š–fícÕeyWä´G“ÍñZ½Ó€i¬h°9#Ô]ÑV€Ð`Š6i!™·E•ë)u·:?4E‡ìÆ -ùÆÓauÌF ãÜ–ºš Ÿ³²X´šå9ùZL6_:ú •oÈ>ŽHd4 ©Ñˆ€m=ÔÆ´õås9o[°%•Èù-1ȱ„C/¦tîTÛéfG3ã /Ä2h ZkEÉÆqp¡¢Û*õaÃӪΨ+cÚ“vô¯­F‹U% üt¾)>[ÈͯqŠ (\`çB×úB+È*®äõnÏ~¸¢´!f…¾>®áõÁ\TÒU,Œ æ¢k²Ïº1‚0àÊ1‡ê£›0²C2Ù¤åÊthÎiDLhÔlDìd.*Ð߶³1ösOÉÜínZYé½®V-Á-úà ¥! )  /ñÆ_‚yiò)øb]à ¢Ô”9ƒçuÕ‘A”£,Ï.J‚ÔÕ }Ýt-£›¤Îf- °J¨È°ƒ»ÎÐæáPlÈ™è9mÓUq†ûÌÈ+öŽj|GZ´ö‚JH, —ü`­ I•eýБ5GÙ³™†Ûß;'ÂWº*8)YQã‰R5¿Y#GÉ܈ˆs |ë…±Bˆc"Œ™MŠž›Þ -c ¸2d²I\à€hªV‹°8.ƒk5¼ò¢ª»b=UP‡ÝqÌÈô"/Œý`Díƒn&‰…ž -üÿƒÖ‚ê¨ø¼$QÉØÆó,wEéð4¬IÓ(|済ÄjtDŽª]S„8¢AO˜$ÑKôÆìö&ûLPƒŽPªÿ‘;¢¶gÈS M”ÙPgKáØ0Á21¢»‹+*ýÍ´§÷’Э†…Mß«šƒ^ݤv'ñÂGájú·Ú^S¦Ä–o·ƒyÓv KÒÇN{¯ón€/9ošÅrSCYµÝaôöCJ{þ0LìŒg¶Pny7AÛòÕݘ£ nGÑ€=5ߤ ‘GI`óÌZ(YJL&‰ÂŠ×—zíªsüv—ô³•9öð©x³ô¸¼+)%–a¶÷é ->tÑÏMÚ…±ÂhÊi -â±?W[ì/Ùn_êÉ6…n{òŽá¥RÚ6Xz¾§.ýà[Ì%éüÕù"ç1POªo'<Z_»ðME¯Üüò{¡ãU^FŽÀi§ÁÍ XRÉþŠ%4›®8ªÎDè“Ü 1lÒCœê‘ü<=ðŽqp.ëúþ°GKP¦FI0àÁÆ3¥U¦TN&FÉ—Üí€2“ùǶ|£`&!Wù |¯»¥±qGûT°qì%Òå S¹[GÙ ®kë%pDKæÑ -¶Ùgª£ä@ÔCÖò(hF¶±„öô~ê嫯‰\'¸´Õ{f‹üº¯®è°×ôM -µCôž“›ãeV«/¢g -|EõÏR1¿ªw}½ö[½/rƒíGHVƒöê-~Ç…F)åvÍ‘ƒ–ÈQ‡ÅeÂ׶»bìvØŒA·ßëŒ1Àðú -Ê`‘žbôè¢Óí>˹3ÜeÇ‚'¢¶(¶ìà ŠJ´†Í¡±:‰c¥Æ>/’ó»óԟ״`(i§áF¶šM“Áš–€&øà†’±ï h 0bÅ&×<Ò25¹°lš\À!;ÍÀ‚Ù!ËÀÕoÞRþ|º3h¡--/÷ºqo -xS·BëˆÀ:â}x’-dh*}Ú(. PÑÄ1–^("÷Ú,XñîÌC$¨qÄ1£ô‚3gOfÕbW4^aŒ–"”g23ø%û«H=_BU4êD./‰îŸæëÍ›©Fço u\¬yþñöæß43º¶ô°•Á‰Qý3êê¶á{nûÐä:¾m¶Ñ/G‡«Þ«MñÃÏy¥!9rkÀ²ÎUR½[?Eà¨GíÿO:ud|paGžPÊÕÂx>øƒx¤ bm»¬éhO•}òDP÷P$ßfM–wÆçqáò5ÁñÝ´-³Û;9|D%,j7ñå•&Ã3^_ÄP€]ü~fˆ A¤‚ƒ…‰«§+.,D™ a^(Z»Ç]ñ‚‹HØŽ<=ˆ -Š^8r/(8ò¡\«ÀG]Ù³3ð‚_…LZ›ˆh%”äãÇŠŽ‹m0VöîPvžtuv…:ÏiÞiÞW扗ŠwXéÓ[* •P\Ô•†ðeßS¼®1ÝñëºO%¦² Ì“¥¥oë}%{ÀKáÜ£çoJÏüÐtòŽ³üÆþËðúòïÓa|ØüaÜo¢¹NQ¯ƒ`Çò¦ntJß>ML;¡èNÑ\ÈØK¡K“ž¸]ðÔ킧’Ter^7é½ 2önï>hD«1fðÔÕ•¼$Œâ f†Ù+f/%…—(¨‚G¾qÊ(>2áXÖÕKÉa1ï 7¾Pž­Ç×çÒ©¿õTèáݯ 'á?ý·{ÿÿ`{*Iüéÿé ’y‰ŸÆ–)d\©cÎC(ŽÃÄ'Xÿ/™Ö}Íendstream +xÚ­]sÛ6òÝ¿B™{ˆœX4Aðóú”8vëNëægîfšÎ”¢`‹cŠTIÊŽÿýíb DÓòõÚÑÁÅb±Øï%f>üÄ,<_fá,ÉB/òE4+6Gþìæ¾?Œ³0H ëýõÑé…Lf™—ÅA<»¾qh¥žŸ¦bv½úu~öû×矎AäÏcïxÅþüýåÕ‚dô8ûåêâòû/ŸÞ'áüúò—+:¿8ÿt~uv¯@Ö ¦ðÌ‚‹ËŸÎitþÓùÏçWן»þñèüÚÆ=°ð%žä£_óg+8÷G¾'³4š=À‹ï‰, f›£0’^Ji ÕÑç£Y‚ά^:%ÀH¦^”É„1%Á(óbH-A<´ð‚ã…ð}þA}õý .û²©é¤y½¢Á—.¿Ux^ *ªþlÄžïÇ™¦÷nµjE:W]ë9ßä}±¦aUv½†óœ¾mËMÞ–Õ#½î:µ¢QßÐs¥zÕnÊZñ⢰䋦î5­¦"ÀMÓÒàH6;Þ¯Sí½â‰f«ÚOغe’ͯ×êO†gÂË¢(Ðgq˜„M«®¡ÑîXÌ™Å`^Öôì×F8{"OA©1hOÓÃó«z¢}*ÆPz~%Œ‰RJMd^”„‚qº¦í‘â1zL ±®Ï{µQuOçð¼Ä´ªNoë’4%Pª]_ö»ÞžO™ïk7`í¢ììKøajd(ì™É€ŠœMj©Œi=Ò ¹¡g¿æ™›¦ªš‡²¾ýçsgÂóA\Šƒ¤½A„ŽŒ2¦r „Ì~õE2ÞŽkÂäà–éÉž{z>ŒÃxoO#•Ë,•=à«ù—ïC–UkÐïc˜Ï +( 0bd/HÈÁ: "ƒõ²Œíêi¼í´”ÜmÇbÚ’0\}äT2Ö璘iP7½võƒ¢‚›„~ú‚¨¬¢2X/‹êЮŽ¨ÆÛN‹ÊÝ6§£ß)v¯Ë'lZlQ+ŠòŠ#ûòqp¿‰ Q' …‰:w*Ç|d½R98ÏJ\Â3Öa‰;X$n°^–ø¡]‰·–¸»­ \u¾Qû1ÍØí·6y†CŒiæ¡ìׇt¡—&ad²FQMé&ò¤ÿ³nDì…Aø’n¬º1X/ëæЮŽnÆÛNëÆÝ–½¡V{WFª.ª¦3kLdY¶9”ñ@ú™ǘú¼8â’ô|È©RrÒƒNz2>nsb€¬_åô¨T¾‚´G/ê[Q囜k1‰É¶½£)Œu¿¿zQ }[Æ\§ÁÙ¢ +/)Í¡`„Úµ¯`=‚ñ¡i$R7µ"ÐDA„USäÕºéz^¼¹ÌÄ€P«¾ÃÛB +_8r[S‡¢$Î~n$7Ôqæì¸Ê<{Øš ñYp¨ÅŒƒ%ÏÝ4;ÃSiWªý3‘¾Vª+Úr;T¼Oªt+=°¾ãYBŽâ©ªŠb4/[@ÇL.2äb—ã9hw×1p“¯ÔÏÄC"†©²£Q÷X÷yÑ—­á:ŽçšLmEÎâœP7eWB‹N é¼+ëBM©»SÅ®-{.Ëo]ô…lÔ µS±‡¶b¿Ï«r•SùîìhóÍ®§Rù-ÙLjDN45š0…=ØÖC£=I_Æ¢\¸©˜_ƒ+ØôdJçVµØVpõ€ÞðB\ ƒÖÑ 3QVl;*ú55$»[>¨kL«¦Ø¡®´iOÚÑ¿× +-Vú(dóÛòÞ@°úAЧ8²Á‰ý²gUœ)šÍ–ýpE3(hMÌl·G&øø8‡Çs‘aFG10B,™‹¾Í¡ËÒ‚ÐàÚ2‡ê£›0²] 2Ùd1åÊÌ5ç,&&j6 cv2—5èŽOÛ› kµ¹gdîf5ͬÔVÕ«Žàýa†Ò”PŽ—¸ ã/Á¼ù¼±®a„Ýæ„YƒÇ¾gèPOö²<»¨ïô…TÚBc×ì—û&ýp63½ßɨIŽãÚœÅTœ‰Ù h›ŽŠ#\§Ÿ/M娳/òb=u!„5iG¶‹€H"÷¶ƒÈQw7!FôâÐi¿DoŸýÝVgŸ j¾'…ü“ܵ8ûCÞêm¢ÌxýaÙÐÁ2}æ"/Ì@ŽŒº¬òânÝTSì†)`J1pƒ‘5ëºái"€çBF‚E±®OЗpM¡æú\nÊ*o«Çc!„fÙ& +Š½°%Ycj$˜z ´§+/ªa2g¡½lC`CO°t"ƒµí ˆFVêz”+<|ÒµnFt7`qe­^O{ú Õ™hXšô½jì}À“Ônã$x5é÷ÊœRdÄU`VcyÛõ C1ÀF{«ŠÞÁœ6õduÛ@UµÞ`ð"Êz¥5vÎ#S'w¼š ÝnÙ©~Ÿ£GÁ€µ@g ‰GihÒŒ:¨X*Ì%)Þ¬nx~©nlqŽïvá’b~¾Ò»ÂÞO–«»Š2"`i†aù­àE•ÃXg]xÖL9KA8æÁþ–o¶•šìRÊzòÃË„0]°ðOžáw˜J²ù«ãE¾£¡žßM8"t¾2±Ñ›j @Ú%ø BÇ)*¼´Ó^áõ6"%Uì®XA³iጥjM„^ÉÛÃä<Ä©éÎz‘%8ÇèÖµiîv[´s!.B‡WkÇF™BZ™%_q³ÊLç_º!îíÅ2j¶MÜ{E؃(µ[ÚO›$^*lºÐ…«¶ud‘ 䲶YG4¥ï¬`bßS%]PsI+ýlß6–ÐÞM]| %‘m—¦xÏMß Åmö†^°Gá˜sc‘6À³r³¼è'2ñ"§öCŒù sÖl†‚í3özß^þò·ú¡ùþRÆýš%/‘£‹ë.„Ûï&ŒÝ¹ÝTqÛ­ÊLïa(¡4i*AŸ.{ÕmóB™Ï?cá3ñC[œöaT཭ÜîZ£•8ÕR)lôb1¿>΂yCzƒŠVj®áÉvsÛæp¦¶# ?¸ bì»ú‚úòѯu{ÓÔå´îráù.Ù+–ÌÙÎNøùöí }™n :èK«Ó­jí¥Â#ç©c¡}D^‚kYûð[ˆk2›2 +²ªSÍ”4I‚u€—„PûàÄ=aÄïL\ëK†Ø§ÎŸ9=H/8²ö¤g vMÏ3"ŒñÒÄĞ̌?eõ3/Píµ"§§D÷/óõöíT§ó¿‡:N6<þruùi]zØËà@«þ€º¥£î¿ï»ìÙàÕºúáÐg½’¾Ç¹n­CXÞÛRjpë猚Ôá;üSGÖßkÈ‘'”r¶Ð^·$”¬]Ÿ·=MÐí©4wžê‚ë¼Í‹^û¹‘÷)8ò¦\­ÀKS›½szà-ݾú2in"nWôaÞ¹­è¹ÚƒaeovU_n+[h×x£óÌpüÇÃė߬¿üÇŠáSF˜x2MƒéO + s/ ²Ä0…ç•r̹ýÆSÖÿ œÐådendstream endobj -1102 0 obj << +1101 0 obj << /Type /Page -/Contents 1103 0 R -/Resources 1101 0 R +/Contents 1102 0 R +/Resources 1100 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1093 0 R >> endobj +1103 0 obj << +/D [1101 0 R /XYZ 85.0394 794.5015 null] +>> endobj +258 0 obj << +/D [1101 0 R /XYZ 85.0394 769.5949 null] +>> endobj 1104 0 obj << -/D [1102 0 R /XYZ 85.0394 794.5015 null] +/D [1101 0 R /XYZ 85.0394 749.6335 null] >> endobj 262 0 obj << -/D [1102 0 R /XYZ 85.0394 438.8479 null] +/D [1101 0 R /XYZ 85.0394 336.0663 null] >> endobj 1105 0 obj << -/D [1102 0 R /XYZ 85.0394 409.9891 null] +/D [1101 0 R /XYZ 85.0394 307.6963 null] >> endobj 266 0 obj << -/D [1102 0 R /XYZ 85.0394 349.7918 null] +/D [1101 0 R /XYZ 85.0394 248.6123 null] >> endobj 1106 0 obj << -/D [1102 0 R /XYZ 85.0394 323.4555 null] +/D [1101 0 R /XYZ 85.0394 222.7648 null] >> endobj 270 0 obj << -/D [1102 0 R /XYZ 85.0394 249.9022 null] +/D [1101 0 R /XYZ 85.0394 150.9902 null] >> endobj 1107 0 obj << -/D [1102 0 R /XYZ 85.0394 222.3206 null] +/D [1101 0 R /XYZ 85.0394 123.8975 null] >> endobj -1101 0 obj << -/Font << /F37 747 0 R /F14 685 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> +1100 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F14 685 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1111 0 obj << -/Length 2453 +/Length 2398 /Filter /FlateDecode >> stream -xÚÍZëoÛFÿî¿B@?TB¢Í>¹Üö“ë8>—´µ}8ÚGS´E”"U>â:ý;ȕDKN¢+Œá>fgwfvf~³™`øG&"B‘¢j"G1IW'xrs'ÄÑÌ=Ñ<¤úáæäÍ;&' -©ˆF“›»€WŒp“ÉÍâ×i„(š<=ûéûˋ]Î$ŸÞ\þôa6§Oß]þóܶ.®Nß¿?½šÍI,Èôì§?ßœ_Ù©ÈñøáòÃ[;¢ìç ¦WçïίÎ?œÏ~¿ùñäü¦—%”—`¦ùóä×ßñdbÿx‚S±˜<@#¢¬N¸`HpÆüHqr}òKÏ0˜5KGõG0¢,¢# -¤lLB¡ˆÁ”VàÙ«Wó¦},2Œ«iZ­VYÙ6¶×´IÝÚæCÞ.m«]:Úö¡r‹–I¤mV»eoÞØïoXà¦HšåkÇN·aØnR.ü¦e›—g[mí“yºênkf½|læÚ ˆ9!H ATyš³9£Ñ´ÈËL[—ÅÓ›eöhÓ¤,«Ö¶o37æ±°Ý$­g$žVMcû«®hóuáˆõÆ›{4ßC;âæôzl™|t´UéEu?¬qŠ¶f”cb ›ê[g¶ymÛY’.‡QÛZuMk[]ㆬ¦ aLßu’×ú.£~;‰£Òl÷®ª÷¿’lû&/TÁ%ê—Äf‰æa ºÍÛò_³µn¸K¤›Ú€ú›ØÓ˜‡PÃí(³¿Ü#܆bÈƶ~³Ä/|ØàüÚö²YéUu÷K·¶ÝäáÌS<ŽYÂo¸Þ‘¥—s]góªk¶d3*ÜðC`MŠc© ëëeV¡j·ñ–Xgµ›s>”;x¬:Gaîiv—Õƒgòâþf„Î;blF)âãpd}ÒoF„‰Ž%Ð'/»ÕmV»óûÒ -¶Üõw­è9c)ÞT¸‰á ¶Q@XÅoÌ ÎèýÁ9IÒØo^ºhþê•mxýË ¾ù›€†»þ >@Âý¾ÈÆ’¤`¹z^–$)%øx–„ƒÆI…ùÓ¼ì: ¼\Ó¯Ød5 ÎcDU¬ÂdÚ«ÿnQÄ$‰&.B‹È¨è߇ˆˆMk„„kc]ätC§Wæ@™^öm:½ØÖì‚%\L.jt5ù´ çÌ…m#ý 3ðærÅ&o+qˆéÏCÎFLÃE¬T°¿)¨]ÿ™Ö‡ÄñLuÛ$Ý0WB7šl•§UQ•¶«#Ä¿ÿÖ.± ?3·×„ »¶rKÁgtkê˜'n?Ÿ9 M§ó ™mì÷qFÍÙFæAoTu…Nñ‚›°ÀÓ|u÷ÓŒ—¬¡÷Æ2 iô ‰uL=H¤Wçå\¦Í;Ûz2¯4ö=à¶à§yßwVì6÷Œ@Ü6›9Þ¨ñH!«xÞÓ¯»úÚÉ„Šàîhóë3ô&ˆ—Ø:¨õ&2!1Ñ›r¬¥â=¸‡¨ˆ!”œõJs -3Ð>÷Èè¢NV«¤~"×Æ(’Šyï£àfçCKÙOºÃ?bz°É“EĤø3ùì -}›Õ ŸTæŒËéõ]æé\ÖKG¡Â•£°¶OêÂ'S±‘ëaØ¢Ûq9^ßjˆè¦•Y@Ý.“ÖqIJÇ`½Î’Ú¶õI«ÎPèûœU“—÷vî@CfdÅjú>)ÿ@;#Y'þÄgãÄ~n‹*ýc3³7Ýí|`ä’ùÃ2÷wRwŠÆC…¬^å%,s@a;n«@Ñyß&ñ'¨¬¤o|{÷¦[¯«¶ünÛ?c‰0–¡ ¼ª8zŽ/1¾DÀÖ¾ôe«‚Ô'P{‹ÑøàWl9³ Ð+qÌB_RC,fdˆ€²[Ë'i1âLjpéRã"Ó>XšH)/!A”ÉÊÔd0rù³J kƒÆ‘®’6]ƒééœ. S -LY;fij©uÊ[h‹»bÌÉ’h‚ÿÔ}AÕìF` Iž29 õñuÖ¶$’ÉžÏÒ¯xÊhÐ ì²×hò<#JöîZWEó Ë¥…s‹Æ#ìAÇv` 0!+Ü´G÷·Y¯_§ôÛÇÝÛmÃc…uAâÁT].Ò‘ÃAÕ¢"æ×µy‘·3BÈt õ|·mHŽhC)”ñ‚H,âæµ»EvЂŽ®Ùˆ—íÑÙpœc©Ìú?b¬Å‘Œè,’ 7ºø#{<¨¯f¥¹ÖQY„Í"Ø -ô‚Ϊ‡ØÆ =c_e"WÂ7éà–C)œö Æ?Š¹ÉjÔù§uMŸ©n®//öX+Ðı¢ÔñS …Œ,äÔB9C\)›Z f½×*ø<“1 ˆÂ hY Äb@õGóaøìÁýË…Y’õÙXgh-ƒd™äê†icê“RkiÇÖV_æiæ˜ÊCóO·À\nB¿~Ûø~áÝç·¶§nUíÕl—+·¶ßçáÔSíÛð·iÕmÙl»ûà=@"ÚGàÇ•ªªƒ6^Õº9‡¡Òa`×l… F7ª‘õŠËÁ;¡lJHÂ8dNúÅÄe2 €àn ôÉëíúZ»4³s¹¬Ý©8šÀ»õ™%†÷n¼@hÁÖ p+ø½™Œ$¹‹¾Ú³šÌéÍÛðò9@Aúù(Èœ`þZàp׿ _¼S )£ß/©;Uçóծ˖-+n·U 艠哉ð}€£}…îÞm7›¦…-¿>Äg–&¥‘.¹$OŸõæB%` ƒ¬ö°ô¿­ +#¡0ÿØ«Ï=ÿàW€Ù]iN ,F, ¡D šÐŒâˆ`€áÙæE5NŒ2(GSJC°6ŽTHã.!>ÔùÚÔc0rñ“Ê «‚Α®ó¾X}éé +0 6C¥M¶ŽYQXjqÀmaWMÙh>$™Ÿv(¦ºû8… B=âx™|µ&9éx ç³ô+PÖHâìqaˆò"ÍØÖ¶©ºg(®¨(:Ÿ\"¶+HTå¦}b­ñ:™_ïÆÄÞnK¤kŸHµõ¢˜8dcRP¸m_Ve¿›aŒã‡UŠçeÿê0:*Ä:Ì(¤lÔ=‚€ÓÞ.Ô“*ttÝž»´)Ð#B ÎóZB{u_…!³ ÍŸZŠ“T¸ÇûßÕîIuU”Z@Ff™E 5¨Îkð:ë!@Ö éû$#\1 +ß| vup1$5þEÌM6“Y@[~ +² m7Dª«ç¨+Äkù©×W…¢ +?eâ,M2žÚÐõêRKàó4FSH(Lò-÷°ŸA‚ÐÞŸƒÀפÌ¿Z˜%j|÷ÖZË` Q&_BÙwvÀ' jì&³úA[£ ^WYì•fˆ?¥-Í…¥6¨Tw­z:¢„5’‰*÷c“‰¿:Ù,á>[Ê žQGdÞeu2`2F“IèŸÌÐ~ÒQ•ËU?¿Súc'ÜAšÊ؇Yä.GŸgPÆPyðà¿öøÔïÄù ÔÓ +4ŠeòPÜg4x\ØL Ž¿-ÀAXLò§Ü1B ¢ßë¼3?+|Nú˜r«I6¤0♎N-…ÍaÈÄÀΖã¦kç»~{íXÖŽSWé—ý‰ç¸OÍðï73ÙO•?žABùÛ*N HçùãzKE‚‰°zk6:F= ë>WÔâ’Y¼¬škó” üà‘aü~‘~CaµÔŽÜTk0¿P7ù¶š.Goü3oêÕÞÃêEñ2Ñê‡ÃŒ¢ ´Å̱œúEÞÂ^ü«ýø”f™þAž¤àG2`¢g)µ¦MÙ½7\ÿû¾' ÿ_À¶endstream endobj 1110 0 obj << /Type /Page @@ -3924,16 +3911,16 @@ endobj /D [1110 0 R /XYZ 56.6929 794.5015 null] >> endobj 274 0 obj << -/D [1110 0 R /XYZ 56.6929 426.5656 null] +/D [1110 0 R /XYZ 56.6929 330.9243 null] >> endobj 1113 0 obj << -/D [1110 0 R /XYZ 56.6929 394.7216 null] +/D [1110 0 R /XYZ 56.6929 299.0803 null] >> endobj 1114 0 obj << -/D [1110 0 R /XYZ 56.6929 335.9523 null] +/D [1110 0 R /XYZ 56.6929 240.311 null] >> endobj 1115 0 obj << -/D [1110 0 R /XYZ 56.6929 323.9972 null] +/D [1110 0 R /XYZ 56.6929 228.3558 null] >> endobj 1109 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F62 995 0 R /F21 658 0 R >> @@ -3941,23 +3928,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1118 0 obj << -/Length 2937 +/Length 2415 /Filter /FlateDecode >> stream -xÚÅZ_sÛ6÷§ÐÛÉ7ÿ $O®ãäÜiÓ\â>µ -Ñ6/驸ž»~÷ÛÅ$%Q¶çæFÀb±»Øý-(1áðgW^O2¯™áÂLæ«#>¹†¾·G"Ž™¥A³á¨ï.ŽþöFeϼ•vrq5àåwNL.¿LOÿ~òþâìÃñL>µìxf,Ÿ~wþî5Q<=Nz÷æüíÏNŽ3=½8ÿé‘?œ½9ûpöîôìx&œ0_F&¼9ÿáŒZo?œüøãɇãß.¾?:»èö2ܯà -7ò¯£_~ã“lûû#Δwfr/œ ïådu¤bF+•(Ë£GÿèzÃÔ1ýå˜q2Q !˜7FniÐxf•TAƒ¸i -àœOóù’¶÷±ÍÛbUTmÜí:_­ò5îŒâFá“™ÔÌk¡³ÀÀ§Y•¯ -zû7ÎœHÅ<*eÖ‰„3‹uÑ4ŸVy;¿ù´,›6Œí &kÿñŠDØÞÈ 3Æ­q݆ä#z]üʹ¬Ê¶¬+¢äÕ‚?7ùu—Q‡wzqSt²ôƒ„gB8ƒ“6ö ÄUiL3L›iÞ4åuÕÄz4÷«ËzYÎé´Š­¶ŽÃªøU 7u"ÁNƒN© ¾­¸›žÇ¥®‹6®S¦FÏû*pªW[‚Ü®Kð‚{zÙ4YJi&tÛf­¯¢Z·dB’ š(Só„|z2ŸwCN몥å£ñ~ÀÔü•~rúCOÁÂú`‘1¯Àÿqáwu [P -Ôs“·Ø²AAHÙ;¢0؇Âü%’I H]mšÈã2Rä9Å‚Èwe{3â2sÌóL<ìœVgqÌeqU“t´Pž'éI‹Š_¥X6ÅÝMA³^-óÓªŽçBÏÄŽY`‰»<ŒÞNs¯" -Œí–D /Ëe}W,Fõç ºªqTY]Ó+i„Õå¦\¶³²z¹9…Ð,Ë291V1§´~Jì„`*̲íØùu³’ ¼×ØA h^±™fl³šu›šAc.ór™ž ¢¼1†éÈòê~Äk¼bJ½æGôàÎhËx`nj80lWņ;¦µÕ“(ŒzþHc-ôÿOt¦`×R‹Çt¦!E -NîXÕUñç”VÕOÓÙ@˜o¥³”ãžÎ2Í8¬3 *B¹Çt¦_3AËzž/qûBq™‚øŠg:“Óó÷_4‘(‰ÉFRsÓÄ`¹+ª¢½«×Ÿé¥¬Úb}•Ï‹c1Mª.ò bY›"Osß@ -}Àt÷t–iÆAÓië`¤zÔÝyƬŽ:¦«0‘?ÙtÂëY ¡‚Ó quQ5ô¬éI6žÎ^H¾Jýw7%&SLƒ42͘õnr4®P„^„ìí0Ez7ýX,#ˆICÃ5«º¥Æ-A…/à.å"ÎÈéq—ßS£…Î8oQÀ2«’¢D/”¸”Ô‘iHõ¿eYTÀ亽iè=81ÒÑÔŒN­-§°KLÏ+êk6ÿH’ó¼)^Œað h2ð!SϺ±Û ¬ZÞPWŠxÝÁI²C3ʾ؊æÑþ`a¶Ïc¸¼Û©¡¬"Šæ¢mBF‡Oíð8<ïˆõ§¶/¢þÈBxɸ‘$L€Vs{Uâv㡪ÓÊ(⑪NyË,·}U§b4G<]/›¯(í ¬’ÚŽ=—¾¢K@pËë~¡pÄZj!f´ÛOÁ½Âˈ…€ìiŒ„,ÓŠŠ«¿Æ.b:è@ØO³ã*·õºíx÷/¿Å*!ix&$çcõ&uüA¸9ùÐV\ø\Üwû Ĺøei\5°È2–qgÑ -clk¿©ÊßãNs¨4¨ŒZÕfuYDuÖwUjÉ×ëzs»OþS;Ú‰’{¢ín%;Ñè`ñŽhTt^«Ÿâµ_Y¿Üy¼~—pªM–J²N„Ñ(&¹Ú¯á•õbæËXô`A™Å½¤Š‡Ìoòª*–± y¤† -ž±ÂƒžË{¢Ä<hùÒXj·õº¡þÄa{¡Œb}0‰åÌX¾sTkp¥<êÐf”Ó¬‹ ñ>HM±þ¾“é)¦3+QMìÛZ§õ»Ãî¾þƒ.Ú¶pki±}C`ô“\§4±®ó+Lª3צ-—e{OìÃåH¼Š ÎktÕ"JÕÆ:YIÏ”î3§ˆ¥×V}Ü®ËâK‘ê…jöúÝÇaw³Y¦û‰Á½ :eœBjD¨:Pc:Y°¾´ìI5v§d "ÙB¹K€¦rè¸Edçoøâ¦eCÄœ^/NßÓ{SÏ?ctÂ6†‚¢¢jÆ䑨õ¶˜—xÁœcÐÅ2Ãô,ow“<Ø 6­$Ã2óPUÕ'W ;tn<µÎ:Ž³!Ë}­°†„Ú¯Œ†Ä1â^‚qoÓM]8%O×A“Ðu dFjõítÐq|Dƒ€¬¶tó¸T:†•ŠHŸÒ%ô®wâJ¸³’Î…ˆ&Ÿ¦÷X*«†H±ÔOˆ1ZšÇ"™€ªð b¥Á VÛ³ŠeÞùg+¶ã8²ÜW¬4YMæû•R,”˜\§ ¡wJ­ârí°rÌAU¸ƒ“x'x]6Ÿ 3¡†ÃÁ݇R+–8mˆÇ¨þ†žäÞ0*ÙÊMïÊåbÞ_¢={[½Š÷ó Wv;ŽB ªŠ9f˜ê ² -™IS²J>Ÿ·-%<ö† -5®èÄÂ¥ÂpU›é(dà³SsY§§Ç^bá‡ýÑh­2`J^ì÷:‚Ë˼À«k.­#pÞ²ƒÞ*,„J™™‰Pž Úg{kÇq6d9r£`=„¨ºay+6šG¼5ƒS‡¼|9–¥¢"Sí7ÓüìŠÔw_o°ò÷ÉGÓ†[ñkÃÎ<}•ÉGA‚6Î ¢82$7‡ÕbŒ4¬X;£†Ü·3²¾½Ì矣µè4‹ÝA½¡øÙWÞÍdI&À~bDz8Èu_”êõ¸â5ºSü›„Èù ŒB@R6C ƒ ðR±HWúët}ð{¹Ú¬†™oÖˆ³„ÆÌœgšk›ÐLXäüjû‚•ª³á¢ƒúbwŒ7j{0"GF‹ºo)ÄÅoCRêõ@Æ‚¢#…Qs0Œæ³ÌN£ÇÀ2Ý8á7Œ¢—¨WÔˆw -&\÷ hHäõ.xø€«ŸÇÙåŽA²Êú•@AÒ‹ðrxa3Áp3Ûøõ"ÅÓü2BqŒ¶mŒÀeÓlbÅCŒGLLCoº[…ŒélàDwÃØŒgú¼K"—÷}x)-´†vÿ‘6ÜŒ„ ÖK' ‚ÑrªÞdáPS†ÎÌêtÖ¡4Ü„Eð ´g¤Øù&~:ÌšÒ(*fŒL7wjà#¡ø0lðÅM…Û‚²¥4¯—yôZI€Ö¨j‚ Â|‡OâµÉ÷–iåäà·Ìì7Àñ‰álÀqÆ{82ë–EécîÞ˘õÜ}3;† ¨¸Fæí–„éß »L3ðVßgEÖ»¸)£ñé)S4VÓ¦\Ý.£uÏߧóÈ1A‹2v÷ë{g}¼•ãr‰á3}±Ådû*]¦Ü!o 傾w÷=è­ãÜfk˜’ÏWvÇoÖ3ƒÝœyØsZ5DÛÅ8üp¾K”Å2ÜÙDͤ?,Œ€JJzñÈa°àÙ·Û}ÇïÁÝ« <Ínï~ô(ÀêÌK¯¾™x‰ßƒâiþ(œŠwèXÀ1Ö&%ÿ6P^WñÏ vè?WÊ0ü£ÔÈ?¤øäѯÓOý?Vÿg5 ØÓ¹Á}µs}.ï£P¸!eö¾u¤?ní‹þ_üägJendstream +xÚÍZÝS#7ç¯ðÛ™«X§oi²O„e÷Hí’= O›­­Á`níÎ3@È]þ÷ëVKã±óHUŠ‡‘ZR«õëVȈ‡?1ò†q•é‘Ë43\˜Ñt±ÃG0ö~GÄ9“4iÒŸõÃéÎ?Þ)7ÊXf¥ž÷xyƽ£ÓÙçñþ?÷>ïN¤ácËv'Æòñ‡Go‰’Ñgÿ§£w‡ï>ÞÛuz|zøÓ‘ÞíìN„7ÖËÈaË‚w‡¨õþxïãǽãÝ/§?îœvgéŸWp…ùÏÎç/|4ƒcÿ¸Ã™Ê¼ÝB‡3‘er´ØÑF1£•J”ùÎÉο:†½Ñ°t?-“2S£‰òLã·oK[pØ66…`™1›»N„0L…:1–qm\§)z:R0'33r&cVI”ÒË›b‰ØÀtÕŸÎ=Úá64¯mÎi±l󲊺ú…syq½ÌÛ²ŽÄú +Ûqz"æô¹‚Í„Oâ¾v–7eÃ6õc¸cÞq1êëeP©L2#¬CÐhÂk¢¯5ã7¡¯³ÎÑ•h—×M[Ì&ߊ»æqÌ +ĺ*"²ír×Ãzê¿=:99ا62|Ñž¨eD•dš!ª 4D0º)‹Ûg#m3¬ÍäøàH"ýWNÂLÏåcÀ3rÖúÉouUüQàpí õ¤y-ÐV.ö1Ÿk2¼Ö|ö[•™`ÚYðâÒ1îÖ}ý=Ÿ¯¸e^f µ®Ž«ž^Ô½ ©FÖiæ×ðÓˤ•5f `È¢RæõÅEY] hO9¦,hšæåÕl˜—2NÅ9Éwð‚SpáRr ·tóÊU˜Eu†ÆÏM~1tw7NºÝ”„O¦„»8ߪlSõ°»6ã¼iÊ‹í±CŸænqVÏË)õUlµuœVÅ/@‰éÀ‰;˜Ò )žâ~|·º $Zej¬xŸNõbM«e VpGë¦ M)ͤ—~]­õy„uM¦`Ú$4Q¦æ{JðñÞtÚMÙ¯«–¶Êû€©ù 7|oÿC_¬õ"Ë”ta㣺…#(ð\æ-¶l)kÂà@ÇP˜¿E2Á€ÔdD;‹”ä³gD¾-ÛË;γŒwŽ~‹!@&fuògÅyMÒÑFeÜxš¤' ,?#J1oŠÛKÊ‹7@sÙ¸ªãýD-Aæéßs£ÑЪ$Õ"ži¢ÌàÖoÏ!„ZGƒcÖ™Š¾´º0šL1%L +BÑ€;Íã}¹¬á¾ ¤P$ipÿ}a^šB(f!ÿ9˜3Í Ay 3ˆFy²ïj8ïz´ª~f=a^ ³âžÎ2­ØŠ™Ê°ºê1Ì@6ãUÌw¦ùOÿ ÜœïŠ7ÚÉñá§M$ +¡D²‘´ò¸iaˆ 0‰¬UÑÞÖËoÔ)«¶XžçàˆqZPu~§çÉÚäwš;(ÚÛ5ׇäe0¯4醗ü95tZ±]sÚ3)ùcÖ®<¼Ñ÷ÕUÆŸ¬:‘éàX ¡‚Í ³ ¢RjYÒ—tŠc¾|žÆo/K ¥8!¨i¤š!í]æ¨\¡(wr¥wHRdæÇ'uÈD`1ihÚ¬&bU·Ô¸¢DáÌ¥œÅ9}nC ãºYÛ,Jr+¡DϤ¤ŽLC ÿ•(ó¢&íeCý`ÄHG P3=´ÖŒ>$]b|XÑXs²IRaš7ÅwC¾l@.ÙU%ÛU=é殧`]í°è;¼îâ$Ù¡e_Ï׊æ;¢ý;$A”±}Êz%§Ò«¾¬[<ŠæBÛ”=pk{×áeWlukŸSæ¾~b! \åFP—a<ÒË\%¡œk™C¯öIï®ü‚6JtŠÐ“ézÞ¼¬®[qY•s) \3ºÏ4nXK-LØ#íêk°®Ðù±»FGÈœŽyÏßã1í `ÎO«ã.Wõ²íx¯:_b Šùhx"$çCÅ& üNIs2¡5·žü!®ÅÔ¤q×ÀÂ9渷 Â[[Æç_Wå¯ñ¤9”ÔÿE­êzqVD8ëÛ*5ûä‹e}}uŸü¬m8É{¢m%VÎh{ån™“|e·ú)vûg•ï’ãëMªÈ:ݘäê~ ¯l1f:5Ö“.ž%´8ez™WU1ÃXÇ#5xðŒœÝ%Ò@Ëg¿@W˼­— 'ë9röA)–3c7-»cJ¿4XGAÍú!€Ÿ€`pzŒñÌJį‰ck›â²ÕépxUþÁ [x´´Ù}E û“è# áe5›hò4¡:u]·å¼lïˆ}x ‚WqÃi ®®šE©ÚX&+™1¥7CggM${»,‹›"Õ ÕäíÑI¸¹ž§ç‰Þ³ÉêA7ˆ¹jƵZš^®öª¡'%>ɦ< ¸§hz!û†ÛiDvö†?."æÔ=ÝÿDý¦ž~Cÿ„mtEEÅ<ÌÉ#9fHëU1-ñ³ÁÜÅ2ÃSîY^mFyÐÜ3íGð•ÎŠ§„d ô~8´N:†“ÇûY´òÀY+Ûí‹â…¸1`[‚ñ̦WºpEž€ƒÅ<Í6´—ÌH­^ €ŽáÃhHŒ€,¡@Êèt1T*&ù*aÜp½áQÂc•ô>ø2é³qêÇ*(X0DŠ¥V/çÙrÀ‡ Ù½­ßGU|YÍÄȦäËAíøMV ïc*‡ÒÌeiׇ …º’ëtKÁÝÞÏ»L«¸Œ ‘Y%D›?o0oÀ÷fa¢•Ã­]–Í7Ê”ÛpÙõP_ź†~ãDàú’Uì¤%?¾-ç³éê¥5¹ÒÒ›m¿þãó•RC¿ÕóÑ£/DOýÏ€Õ¿M@º¦¼ßòP—AG¡#eîÊ3ã¥ýÿ‡ýÿ’endstream endobj 1117 0 obj << /Type /Page @@ -3970,57 +3950,61 @@ endobj /D [1117 0 R /XYZ 85.0394 794.5015 null] >> endobj 278 0 obj << -/D [1117 0 R /XYZ 85.0394 769.5949 null] +/D [1117 0 R /XYZ 85.0394 656.7756 null] >> endobj 1120 0 obj << -/D [1117 0 R /XYZ 85.0394 752.4085 null] +/D [1117 0 R /XYZ 85.0394 632.436 null] >> endobj 282 0 obj << -/D [1117 0 R /XYZ 85.0394 683.64 null] +/D [1117 0 R /XYZ 85.0394 563.6675 null] >> endobj 1121 0 obj << -/D [1117 0 R /XYZ 85.0394 653.5261 null] +/D [1117 0 R /XYZ 85.0394 533.5536 null] >> endobj 1122 0 obj << -/D [1117 0 R /XYZ 85.0394 576.1881 null] +/D [1117 0 R /XYZ 85.0394 456.2156 null] >> endobj 1123 0 obj << -/D [1117 0 R /XYZ 85.0394 564.2329 null] +/D [1117 0 R /XYZ 85.0394 444.2604 null] >> endobj 286 0 obj << -/D [1117 0 R /XYZ 85.0394 417.9499 null] +/D [1117 0 R /XYZ 85.0394 307.3784 null] >> endobj 1124 0 obj << -/D [1117 0 R /XYZ 85.0394 388.7174 null] +/D [1117 0 R /XYZ 85.0394 280.2293 null] >> endobj 290 0 obj << -/D [1117 0 R /XYZ 85.0394 267.384 null] +/D [1117 0 R /XYZ 85.0394 163.9859 null] >> endobj 976 0 obj << -/D [1117 0 R /XYZ 85.0394 235.1866 null] +/D [1117 0 R /XYZ 85.0394 133.872 null] >> endobj 1116 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F39 863 0 R /F23 682 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1127 0 obj << -/Length 3451 +/Length 4048 /Filter /FlateDecode >> stream -xÚ­Z_sã¶÷§Ð#=sB €äérñ]i|©íÌ´“d:´DIœ“HU¤ÎçvúÝ»‹(R¢l§—ÑA`¹X,öÏo‰ ‡Ÿ˜èŒe.uãÓ\èÉlsÁ'Kûp!Í4MûTßß_|ó^š‰c.K³Éý¢ÇË2n­˜ÜÏM2–²KàÀ“woÞ_øåöí¥QÉýõÇ›Ëiªyòþú¯WÔúpûö§ŸÞÞ^N…Õ"y÷—·?ß_ÝÒPx|}óõ8zœaz{õþêöêæÝÕåï÷?^\Ýwké¯Wp‰ ù×ů¿óÉ–ýãgÒY=y„΄séds¡´dZI{ÖwëöFý§£úœ¥2KG˜Ê1jÇ2 C¨À·¸ =BàǹCþH±¯Ê/¨Ï-M™‘" D³ºjw—Â&õT”šd¶Ê«ªð/YR6Ô™Óã—›ë¿ÓÀ¼ÞäeE½M=ûT´Ô^—M[Teµ$²ÞÑhh.%`¹`píßÕë|W6ð‘zw¨´²iʺj¨Ú1¬NsûGt}˜.÷ö¦Ì·Ûuéw©Y°>¢­Z˜—ô>këÝS`м´¯¾>EgmÐ.Û¦X/H]BBLÐBFuQ$<ˆ ª\V5½Ï™ÿˆ±cBO{ï§È\²Ý•›Ü‹/ù¾]Õ»òßy[zY kS —Í_Á¹ÔÝÆïgõfƒÛH/ËËw@zº3%w**ýSñtI¥Õ̺ÔN W,ãξ&–¦ÌYkÇ#é´ã8í³¤09ÍZé%;ÌŒ"bD1¡˜„xÚ9ê4…Dñ¸*g+ÒÆEˆpA9=¢ÇW1Nù¡lr•ƒzFŒcwçmBHËœ°âÏ[oÇñ…cÔvj¢ -jz_ŠÙÞç x $|R†<Öé æXàe‚)ÝÅ9 –Y çÁí–jÜŽ¡Ï>ýyðÔQáR½-6”þLšÜä>í™üCwE½ïòàÏ$3c?=ÕšA˜’ÙOð^Gõ‚È°%B¹Ê y -5 ؤéãH"˜°&¹]5ŸAΔ‘†„ -`²Ñ _c>:©ê±à’B0¶Ðëu3-pÖî7m9@™sá¹%8ÑÀÀuVE®ÀÆb#… -Q=–ë51oŠ0 OÿÌé1/ù~Ɔ‘;:¼/ýŠ^ Lé¦`¼®·ùìS€P€ŒÖG–Ïça•°hiU"Ràb_¥¬¾Ð5®þœÑجÞWm±$ØÒÐ·ß -ˆQFˆäº"’vU†ÏfyS¼!øÜñÌ×MMt«¢¢¾3à ê7‘éW쬂ü º\ÔÛY¿ˆXú8tS®†p²·ßX:©äaóºðåš]èZåŸ jåc&Ÿ¼w²—Ø›qžfT cÌÒ Rãö†åžŠ×‚¶AjŸR4|zVa\‹/‡RVù,í¿Z-n_R(€âYeÖ -+Ô ^PPDO7„r+zá€pœ8n’>ÀŠ^xE~S´£‘Ò¦„®Øáü8XXÇçXGk4ÎÞ †“[`sÊ?Kaõ:ZÜ£¯z€ù°H†Ž8@¶Ž­pö‚}qða_®[ŒÓX°Ãûý¥K“šÆfdŸ9e_ o 7–ÿÌf樰|^ËPšÈN=¸ko¨¤Ú]ÚdÔ®lßÖ`Ù¡8d>Eý,qa ëdšLdÄ\i†!^ ®æ™1àf,ÖF6öDsó*ÃÉœŠ1wÛw•¢µAÙÖõ:§:ýpÐÕÚp]^5eÈ“ÖQ]ýt¼ö†ÂöBË¢BÃ*éR$¾Pêy¦¥ =>¨x½ÎR¥Ž\j^.Ë6_ãQL o·0 ²œêi£`ÍÍÁ©±·sj|Ù@ÄÏ—ñÃŽ¦]íC——»¼tØ çÉÇ‚”2,SJ¼òãîÇ}ÈC\ 9àº%æ›ü‰…ëñÚ@®… =TǶnšòÁŸsÉ€µ¥IöMèÈ+z_ OR–„á°)Ðoéq@9Is8@‚2ð‰_R -û -5º,渻ґq¦óÑHãŽ+ ÀƒL!=‰  IM4øÇz÷),5F^À_L(+†y¬!T®ÀÞò§‘É}©-âŒO ¾ÆMÖŸÚûðôê€gP‡ -Ö á¢)7ÛõõùA ¢Ê‡´¯â)Š:œ¢œÆ–2¸€þÇ‚ ”lB¥qMù¢õUUOL»r¿úW{ż§H@†õzü 鮬f¤¶£JA!ª»Àó|„‚Uc -¹{ÐϺB}J.@.€zóbf¯é ’Ö<%"¾G:›ƒâ6[0kï$HµGŸ¼ô$á—–:@ÙSR•“Ìà©ÐI^ï;‹ ÎÒ ( ö/t%cÄ“.Â(IE0²*—«@],éã‚F|Ä•®ï°åºlŸ. NÀ%ÿðùr(!ÞÑDå›Ò§¤S»e˜6úúa­=Ü¢–G :âkh4P臡Å`Hº¹¥õ¾›DñäeCŠU½_Ï©#µÆR:Ø.¿Òz«B‡3+€V²ƒV¥¿  YƒðõcEnåb ™†ÏšÉØÖÁexÑ =r™N‹~áuÓ5ÁÛñØKb<“ÈñÀJÔWù ObN‚¦ÖQ¥+ŸÎq%mh Ï™u,¶°±÷ÉWc ÍC9Ù`gévalkuׂ:ûeôqä!šr‰éh´‰3žFãŒ3—viót¯E‡t)ZÉÐB SäñêÆf>ÿa'Ýùøβõ#¨Œ†Ž°ë¼­)Çé*YvØhG°n ©4¸œ§ñ©†| -BȤ†µ‡%ãâCÉåS ^Fçc6Š8’ªðÀÙÒ¤ÖÀÇkàxR`8òh&¡¥:“TÏÙnþ²FyFË€Ÿf Ë3nh2­Ž­Waæàò¯9¨‡^ûãx Íó‡ø­O©Q8ú!*r`{}.šwVÎû§ò¾?ÜšÐùæãªy¼ M<ÆghÑ^­Ä¨æe$îÏr¨-ñ…`è›N€À¿¢'«c¨%Åc$½âl ‹éñ À·cæ…Ç@™å)ÔYž ’t9ZøæȸõßY+SŽgý*ȳè6/CtÊŒ“Á -K¹Îº{}9œ#L™­÷ó ¹»Þñ^úïrÐöXQËñ ´ u`‚¨jQ® >ßIÄ£$¦“${…$?hûU¬šü&#øÅ‘Sít"ša!x|ƒËà9J0b V$jä”OjDzÅÎg £;4†U»ì]¥Ã`ÞQoë2²{Ä ¡ÎÙË08gÒì+%BU8ëßzN%Þ¶[a‡qá¬"µ|8]ÏŒˆcM²Èg˜ ¯üwÊÄù¦¬ øêÀ"Þ˜/hì´ì²QÙ QП -­qjˆ>û"»‘zG*À‹ ëäP»’x L$ð«Ã½=öl¡^ôÕ”Óü]ž1É{D‚Ø[|É¡âÁÓ¨å"׃CGŽ¦¦8Ò9 öowågŸqðáHš(K¾7Ü#õ(A€OE ÃIuýQ,÷b‡'^FÇžO7ÁÓbüÿãg§âé¶ÿã×)Üះ†×ûëe ›¶Ú%ØlÑwC]ÐÞ"ÜFˆwL6=âKÔÿ=ã4d˜ŒÛnåö…•M|³Ï¸eÊÁûÓ£[áÓûmäH„Öæ¼`þÅ#ÿhVÁœæá½+RèÝ/þv>9cƒJ lÝß] ÂÜæô.R°“¥cð)^¸Yëȧ=ú‘ ­c®ƒ{5GAr<E¥†i@¬ÇúäJ­#z^€^‡ 5œ=jŒ‚BÊÃ.ê}‘ê¡}ÙÁ`ÎhSÉR œi¸ýevÔÓùéRŽy¯(ý¤œH’€6™êIr¢ËŽæùù8EM²s×Úø/ )Çfäõß·âÊàEzæ†×X¦,0 B¡ð2;‘<þ?ñTôÿ¢8Šþendstream +xÚ­;ÛrÛ8–ïþ +¿­¼eqp%€ä)“NzÝ5“îMÜU»ÕݵEK´ÄŠDjD*Žgjþ}ÎÁx‘ Û³IùA$œûæ— þø¥Î³Ü wiœÊ4ãúr±½`—+˜ûñ‚‡5ó¸h>^õçÛ‹?½—æÒe.ùåíý–͘µüòvùÛ,ÏDvØìíÏÞßüøëÇ7WFÍno~þp5šÍÞßüå=ýøñÍ_ÿúæãÕœ[ÍgoÿëÍ/·ï>ÒT`üùæÃ4âèç ÐïÞ¿ûøîÃÛwWÜþtñî¶?Ëø¼œI<Èß.~ûƒ].áØ?]°L:«/à…eÜ9q¹½PZfZIG6Ÿ.þ»8šõŸ&éÇY&d.2E@í²\ÂpÑÔu¹èª¦n¯æÒèÙCµÙà“šÝ•4R,å®+—ôÖÔ4[Ôaàž~»uXß>¶]¹ý–ÖÝüòE8ËåþŠÛYÙ¶e Ï-ÐôʉYCó› +¾«Ð+>«à¤¼Çq¹(<°%²è0çEc‘”ž© „Ö ÞQo×UúÑ*ËY[mw›Àä›_¢Z2tÔülÈ,XÑ›.4¿´¢èïpîë`^! ; ®4´„þ˜Þ„:Ï!BÍQ„¤5ßLïâ| ò”ÞBˆ,WŽ;{Ë»LÇ"|L8E¹)Áóuø7VuCïËè˜ÀÛÈl¦±È›”ƒª°ž‡ºúš2Þ"3’çÑxOÌ®0#³+rÒP,èç×7ÿCËf[T5¶ÍâsÙÑ3%%¤y°¬ÃdåqíÑŠ]Ñ­i*‚ ksÒãøO’Ђ01{VŒQ%œF13µÞ¹Ø<€‚‡E«éL86AÐÇƯR6‚g"—‘gèƒÒ¡¹e,.ºNÀÑ™1ujê2•›HžåÂ=é§Á|.ãšÕ¾9ìÒß™>=é58i3ûÐt:Þkz*mÃÈnSt`•·-‘ CþO‡úçO40ÂL +Ü„úŸšM!lÉyä(öKøJ¡Á¡ f*ìee§Mp„8ƒL˜` q½ÓÖ/{ql‚Éëëj±&Š¡aˆQЇåŸbÁ`‚À\ª<Ó¹OG +‘ 8 물ÔNdBéo/‘D€ó1ÄSp<˜Àõ«ÎF>ÿ†ÊÛ egï +r¹Ç„G£ÆÜy™ÀŽÃ +Îw;oñ™£Ùv,w/81‡(C«è½;rç¼°™âO( Œ¢è¾ã#Äg, @·<âäÀç”À@ৣõšGŽæÄ›M$AC¿å×rqðN^†|ß(ßô‚sYàde‚(}*Ëså`mY&|þA3ûÕ%=|L•Á‡Õçk¸a ò·å–<Ÿ³…÷xFÎ~(`¸¦Ñ·ÌaÒ;‘…·®œ¤Zg` äë“’s¿æIdÇÜ{„mUŸìÁºæ‚¿ŒJýê§w>‚é½8¥ëD™É ŸӔ€gJª'ÏÞ¯yƒcH#nb‚Œ¨jŒJŠ±â®9t4ò†ÑÜê?˜å‹K4î'r55ÌUªºÍ}Ë=S‚e™2ò¨€Ä1£s‰’!×X2LXªÞd¼Â4›TÁŒ¤ 1°o»¢óÉöj ¿»ÃÄuºvgtq®AòSFB.ûT˜ +×¼-Ãngúß‚~–å}qØ„¹©ÊóQ‰ _ƹ×!lÒ1lÒC5š‚%púFkõDÞ/­UšáUúÐÔW]XÚ äPwåb¾Ž¦^½â`Œ ç³›š–t¾6s‹¢-¯)Pîa›¶¡ukßy±ê\”¤]ÆsýÎ*†e—ü”³þ1Éq¨Ÿìˆ#~c’¤fw‡ð°lJŸ¸¡Ø…¡uñ¥¤§"%ó‚S1ç鲟„ ¨ (›HIäd̾@Ð ±“SACô: À.`í=@Ñ(–adŽ1°ø2$­Ê»cÿÕ=Éâvø’l¤É +«¥“0®Àb†DÖÔt|)SÒËdË r÷˜ÍœÂÏœ^G‰{ðùaGé°a³8A²ŽO¡ß‹cqòîPm:4Ô˜šÃ{lPâÜ‚ä³ gË¢àMðÆD?³¹9J!Ÿ¦2ä ²'rí:¶|ììÈ®ìXÖ`Ù‡k|ŽôYáÁ€Ö³y‘ØÈbNš©ç@³<Ñ$H0x¢™y‘àäC]ú(vèsBk±­tI3Tçp0Ô†µ¡âû¢n«à(­£Æ©Ž¦{áÉ^‡¾åÛ>#‚ÕË*lKFF¼Qñt1ൕ:R©eµª:jEÂÆÚöC#ËLh]Ú`¬™”G‡þ¼lÁâ«øa¿¦[ÂLJjb¢¿ÞÀ±.ôÝýî ýRg²GȯÄï!ÜNÊmw ×^KpÕ•>À¾§_¢~ii¨='Z9™¬ÿÝW˜j‹ Ú‚w]€y!æÃñ©å…GÉhò¤‹q”¤’̬«Õ:¬.WôqI3ÞäJ7ÖØÐC¦{€|>û_ï0aelÉK4ómå¥SR}n¶ÊĦAAÖ>Þ¢'êªÅZHéÃÔýdJá½óÊ5LZAwXpź9l–4ˆ&žR>„¬_Óz©BHß‘²­*ß  ]òÍCMý«û fx½©]Ž]t†å`ÄQW §¢?xÓö îXà’2žñä<4=_¢'=ñIt(µ‰$]{Ž'éÂô¤¬c¶…ï}5Ñ"Œ‘’M8K„kõ(°r@ð—; ÇÉž¾þh¨‰;&š…,s¢÷›O„÷š÷¡nìøR„r@Ø¢ˆ]ì÷{ˆƒÔÞ¡qçÃÃÕ¹.AÛÚj¨œ«ÙªŽB3Î-Á—Æk¸¦ +×¼ +HÈYgGÆǜ˩L¡…žhUÂlD1á«°àìó÷·TáÇBÚ5Ýê(܆MÂõ13«KªÄÙ~ÿIhø$óˆ?Í—'ÔÐ ÷­z©EÀuØ9¨¼ÃŽÁ_€×€Ñ²¸‹ßzŸ‘ƒHb…„œÈÞŠïOáJÒ¨þ®ã•5º¡´cëp k0M,Úglõ{ùE*ÊôY +,[Vm@y¼Í]â ¢×=ñ.ýbºšŠ[V’tþ‚ê/\ŠãÀ«”|a!(wI˜\…ºÿ«dê\‘‘÷¯Sâš)ÇòqäAô\ľ‡™qRâSÆÃ]Y¼l¬¯æœ1ŒS›Ã2îÓ¨~…7÷;•ÕÛ w*ÅÐêûjS¢ñyBˆ ’¿‘Jý:fMžÅA~õqÈ)mz í4<îÕ²!xŽ$ä ÇŒD%ª|Rc¤Wî½ÃѸÃÃ4k—£¦9LÝÑê]SEphób¤s¶ËâæŒÈ¿ó€tY‡ +ÜôvöÕ-?ºdz–Z¾ƒŠgèX3»/è`¬Ü€4q¹­jH¾úX{ã÷4wšvÙHì–VÐõo§‘{ƒ²Ÿ¡+–ÔÊ°NN)𰯺pc7±¯z¡¨…F}ÝCê«É¥ù¦1³÷âhùµÀûUèh‹¸ž&˜Þ˜âL¯,8¾ÛW_¼ÃÁŒ~èÂ"‹¡ >Å^v"@=òšõq #ÒÍo bñnî+^F¥-Ï©¢› è!^üÿX;DÔ9Aú?,.àó?üÑÀ;ü…iiz³j€gë-­Äû›õêuê¾=Ûà/›Á%Âýóõ¹>¶]¥Lu]XO£oþ—Š¡Ñ¦ BÅ™’±™²$ …˜Ëüóø¿§¨ÿ å®jendstream endobj 1126 0 obj << /Type /Page @@ -4028,135 +4012,137 @@ endobj /Resources 1125 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1093 0 R -/Annots [ 1129 0 R 1130 0 R 1135 0 R 1136 0 R ] +/Annots [ 1129 0 R 1130 0 R ] >> endobj 1129 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.6967 676.8938 256.3816 688.9534] +/Rect [55.6967 576.4843 256.3816 588.5439] /Subtype /Link /A << /S /GoTo /D (rndc) >> >> endobj 1130 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [268.5158 676.8938 332.4306 688.9534] +/Rect [268.5158 576.4843 332.4306 588.5439] /Subtype /Link /A << /S /GoTo /D (admin_tools) >> >> endobj -1135 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [378.2799 73.4705 428.5017 85.5301] -/Subtype /Link -/A << /S /GoTo /D (tsig) >> ->> endobj -1136 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [112.234 62.1828 168.4527 73.5749] -/Subtype /Link -/A << /S /GoTo /D (controls_statement_definition_and_usage) >> ->> endobj 1128 0 obj << /D [1126 0 R /XYZ 56.6929 794.5015 null] >> endobj 294 0 obj << -/D [1126 0 R /XYZ 56.6929 403.8784 null] +/D [1126 0 R /XYZ 56.6929 311.2132 null] >> endobj 1131 0 obj << -/D [1126 0 R /XYZ 56.6929 377.7405 null] +/D [1126 0 R /XYZ 56.6929 286.8682 null] >> endobj 298 0 obj << -/D [1126 0 R /XYZ 56.6929 339.6466 null] +/D [1126 0 R /XYZ 56.6929 252.8569 null] >> endobj 1132 0 obj << -/D [1126 0 R /XYZ 56.6929 308.8302 null] +/D [1126 0 R /XYZ 56.6929 223.8335 null] >> endobj 302 0 obj << -/D [1126 0 R /XYZ 56.6929 236.1221 null] +/D [1126 0 R /XYZ 56.6929 155.208 null] >> endobj 1133 0 obj << -/D [1126 0 R /XYZ 56.6929 207.0192 null] ->> endobj -306 0 obj << -/D [1126 0 R /XYZ 56.6929 125.1654 null] ->> endobj -1134 0 obj << -/D [1126 0 R /XYZ 56.6929 93.2531 null] +/D [1126 0 R /XYZ 56.6929 127.8981 null] >> endobj 1125 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R /F48 885 0 R /F14 685 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1140 0 obj << -/Length 2602 +1137 0 obj << +/Length 2663 /Filter /FlateDecode >> stream -xÚ­]sÛ6òÝ¿BôLˆâƒàÇå)Mœ{WçÎqçÒL†– ‰S‰TEÊ:_¯ÿýv±ERpìNnô `±Xì.ö K1ãð³\3®Šd– Ó\èÙ|{Ág+X{!Nì‘â!Ö÷wß½SÙ¬`E*ÓÙÝr@+g<ÏÅìnñ)zû×7ÿ¸»º½Œ¥æQÊ.còèûë›RÐßÛ7ï®ßÿ|ûæ2K¢»ë7¾½zwu{uóöê2¹°_: -Olxwý÷+½¿}óÓOon/?ßýxqu×Ë2”Wp…‚üvñé3Ÿ-@ì/8SE®gG˜p&ŠBζ‰VL'JyÈæâãÅ?{‚ƒU»5¤?­r¦s™(UHº`©‚%TàÝÚ €*¨"g™à9ÐGœ_Í£ÃQcœ4Êá´]Ù™­©;ÐO¢yYÓ ™Ï{–n­ƒ#a £®ÙdcÌÆá/GH@©©á\®û²«G!‡Ð8òUÝV +2)®™–™ê¡2Ç€T..ãz*Ø…,tô7óØÒ ãîY¬ÒŒqÍÁ|…`…ÖÒnDk³\…œÑ?È“¨çÜeS Üá3/~¦ñ–¨“ÊapoèÿÐŽÐQ¹Ù…oA&’8™,ZgêmÒÑÒ*–èŒåiWfš)‘%Ž9¸µnßlÚ€`­¹ÖâÌn¬6ÁY¢µžjSóÖ˜©· ž°Tèl–)Í2) -´{Zܯf4¸8J7œ;Ê9]d⣙;´¡F²äŒ ¢%€>$æ®=Ös\œQsªÄÂöÐv4²ÿ s2;˜–n™\ Öß``‘Æ3År.Aá’3ÎÁòGQAOíÌ}l£#H ñ'Mg™°,'/ €’yž‡Ã_ÜSŒ‡$­²Æ¬IÍ’B'§“‘Åjò"gX$Å+4ižÑ60’YôkÝk–-ý“q D†AÕåÖØ2ªRI+‹f[Vn?bÑèPW¿Ìæ‘f¦ê®Z>VõŠ6BDÖ5etݘ\÷žº¶½> v(„ûË×.Qi^x÷3û³y)XƒànãEˆyÙ‡†ý¥È#2¶Ž4Pž¢wëÒAÜ©m†Q öU«>p«ní÷V.HyYõç‘R}ˆ[,ˆ—ÖáoËn¾vÁDOeáuEĦ"–óŒXÉóxƒÛq0bFU=o¶te€3Ö×僡µ{cj‚õÂÀØ ë%Èš``Yì);Qó¬·²¬k³jö@`ëç5Ý?_|kæÄXÇüòón i¦¼[÷'9w -. -†“BùüÿàÛŽ`<¤píT1^dƒƒŸvm ª©“Õ˜pêÆ¿¶Û[ã˜n5kwf^] -›°MK0¿Á@éRuß•pPðع«@,Q¯&pÕ,UÑ ÜÕÂí;ìv;s¹Oc(иàb|këm9· (ÉX.yÖ«s’ît_7XJíºRPIB鬞#•OHI™ˆ¥ˆ«’?Ë—Ôé“ÄôŸ%¦ò g5Ó¾,u~2!'`˜%zBO ù$= ï>^¿‡Ø,ÀH±/Y ƒ*•ÃÊÐb0šKÝ]âFÙà”¥í Oj•ä¼´à̈ðTtÿHàr·ƒ"¢€]rW„¦j{ØR}ØÞÛ ¶¢Ö§]ÑÀ“­lü‚õÁãP\™* AËGa½ -§ `ÿf+¶beP %§ç< íL°LùÚô–@n~"j¥ÇÒ>CAà3Ý4d)‘² -æT*DEñÍ!ËŒ‡ÏC–Ó…ÈOSµ(Xg:׃°…š¥›-Ä ¨»…ÆÝ„[wuþànÜV>LÖV%T{ÊÆÜáí¢“ØºÐ…"ç”S%„ÿ®à,[§ M äÅ…G$Y_wôÇ,ѤɸÌèP¬ áy. 9E›fµrÍ£ƒb_Úûr»-÷ÃÂä–#ç¤ÞžH -·ò -XVø0Jû‰0æë²®ñÕ9˜|¡Šm@Àí¹6¾FiYmú®ÄäŽ#K÷âÕc t8T-†–f'‚Þoqü_ú;Ô›j[Ù›p¸‚FŸCŽêè·ÕÌÙ2ÝpgÎÚ>¶ Ïáø˲œWH‡¡cý®naöû¯ Ô‡Íæ$Çë!ḃÄ`1‡öŠšÃâêf¤$8µ«íXîëÞüé ì4„g»p3)ž—ÍhÛÂÜ!Ç•ëW.G¨pýÕ|(âPã¡ãÉøMc^uâ>g ^¶ºy¼{qNi¬¸S -ðÔUÞ'ž£2µ("öÇ xËígϹ£ËMg¾ûztYO®3ƾ‘{¤@[Cæ×O„AIA&}üqðzÜW§D¶nË• ä•I€ ·úð} 2Ÿ|<Á$%UqÞ¶‰•ÊM:z{!Ô¾spñhÛr8z(÷•A›Ä Ö%ˆÕ m»Žâ"Nl -6Ÿ!.Ý!‚Ü2K°Jо•ÛPÓÞ P›øÒÑýsñ ŒË˜ÎòI¼Þ­÷%½q1 ¶Í¼¹[ê4‡nwèhmkºu³h_ћߖn¥—ȶì•©a\Ù'刯zöR‘¥¸o$(Þ¿¡…o÷Ù:Áè -N݉[»¨k ”U0®}åÜ»dàQÆÜ«´×v• VfcæÎn×Í‘xùÍÁó hÓ¸ U¨¨Ä-Ùקb˜<Ã,|˪`Y2~Ù~¨ms%I¢¦‰•G‘ô<ÅÊ3¨’<Ð÷Ò¶³ŠÜCœ'LÎtŽ@4Xüo¬wàÈÀ ÞoªÖ²Ž€£8êéâÃÕד¤ý¯KwŽm|òä®Ü·Ö„5ÏH2¡½d"r” [©­-=Xs ZÐQÛX>pD“h¾Eþ¢ìÆeà[qôgŒÄø)Ö;ØVw0>õS1÷j–H1ù–aï{ ]¹ï\ÞK¢Ãu Ý'¥Ô0-&ƒÈ¨úf늢ĢGjë®ü7± Øu[°=Šÿ.“ªÀ¥ªÓg5¯·£íLzç -9‰ s.:ØÞì0-tù×îíèÙtïÏå$¬üÒwŸÆý›T²ôÔËŠW϶ù-!bj7ˆIþ]k»€¶H9&ôMWÁm*ú¤Ãûþù{ïécx–›ç2ümHñ”å²ÈR-R¡()—‹tp>X½\—Mcjt›lÊ2§«…âœ(!Õ6èÓñ‚¹>s¾›bòà$›É£Á-(aÓÆCYAžú¸ûÔG'€Ô#iž/òœÃéiýœ(‹¢ˆW(éÀ1³tÆšŠÆ%É´ÌŽ;[«U,Š¼c¡¯¬K3ˆŒ®ˆ«ä·¦=4–þ¢íœ+axž4åƸ•<©—ÇQHÊ¢Îì¾™],J)¡ŒG’»Ëc˜!–å°;LG8Ÿ’÷ëÒcü®ˆmÇY ÖUwCâÄ‚ ×V>I9óc±0Iq«ÊÒyúMÙ/×>¹€ê¹½IǶª+¹P(JQ$ œŽÇ¡ÐU Ô!xd@s¢0̯ËoçnŒi7(°W¦p•¤E 7àD8{U 5x™ïªïÚ0Ø„±/‡hP†ùã Å(¦]X„µ-”•a=ì4 îB'§š°œå/mÏ0sŒ„v.Õj´ñá-Á@€šX3f”YsÛŸ®ß9[O5ƒë¶fY3wa›qaÒ¥êï¿+÷ ±K_8¦ÁLªPU%à¬V~Ý~»mw½¿û„ ˜ÂŠ2ʦ.¸Þ”Ët³’2E +NÕ¬æ,%Qr¨'x¡°+xìÁëV<Ū8aÅya–[Z‘ý]¹¸Ìd&ÿ.3QD%ƒ[3ÊR''ì€*“'ü$ãò ™Ð?Ü8É> % Ü BÓH{ŒÍæœ&×çšBÞ€ax¼¥3HÝÚ:—"ñ/Kœðn„t"¹¹Gt¹ÝB‘†ÙÐþr ¤¦j³ß Q³ßܸ ®¢–Ç] ÏWǶrù æ·ˆO§yÅ?¯ –… €“C»¨²ÃˆÿÊÞV,1äŽDŒ­¡>f‚ŸzhZЈµƒ·K¨ ÁnÜÍd­î±|¸¡ ñ™þ4e –“ +fxã®sö┦cŽó”%ÀÁ¤fÅqc¼E]ŠVÄJr”¶¬eñd5›tÜDëOÂÏû:t6~)_ÎW9È#\ΟîÐoq[ÛB÷ NJ±²¿¾à,;“æ Ü‹«@ˆ:’¡î5ˆÀ¥à½¯T¦†Öö­¡º½»ó=k½ß•ðúßEë¤ 40ÉãNßPÒN"ó3R ƒÑà+Vl#^üÙk‰n«Ú“oK{¹[ȱ°k¹ Ú¶é&kýæPat:†¸µðŸø³oêjS¹“ð´ ¡/±Àóïªÿ™7ÝxeUÎïÚÝw`Ï1üõ¶\V5\‡±üVõ+³ÛÅäú3èW×G=^å`QCuÆc°é`¨% !¯Ö#Á®íÔl‡r× Þvoa¥ (»·O7'Åóm;Y¶27{ÏÈKåûhË é=µ«8¶øt»É‰m!núÔÞ ±^Ý{ã$èÖ´¯£gÏ眦†{ §¾ +1ñ—SBÿÿŒ¦z‡ÑóÂq»¯'‡õà®ï)þ¶å®s,©B͘ š±<)¬f¶“ÚãÌÁñƒ‰©´€À ™t­“c„‰'4n½WϺÜ(}†-a‰ÿEÃÁ|ùÚÙàc;5öá^Hb¿¶G> +СBxñGýã> endobj +1140 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [406.6264 730.8852 456.8481 742.9449] +/Subtype /Link +/A << /S /GoTo /D (tsig) >> +>> endobj +1141 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.5805 719.5976 196.7992 730.9897] +/Subtype /Link +/A << /S /GoTo /D (controls_statement_definition_and_usage) >> >> endobj 1142 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [103.6195 731.9163 159.8382 743.9759] +/Rect [103.6195 677.087 159.8382 689.1466] /Subtype /Link /A << /S /GoTo /D (controls_statement_definition_and_usage) >> >> endobj -1141 0 obj << -/D [1139 0 R /XYZ 85.0394 794.5015 null] +1138 0 obj << +/D [1136 0 R /XYZ 85.0394 794.5015 null] +>> endobj +306 0 obj << +/D [1136 0 R /XYZ 85.0394 769.5949 null] +>> endobj +1139 0 obj << +/D [1136 0 R /XYZ 85.0394 749.4437 null] >> endobj 310 0 obj << -/D [1139 0 R /XYZ 85.0394 589.1911 null] +/D [1136 0 R /XYZ 85.0394 543.6821 null] >> endobj 1143 0 obj << -/D [1139 0 R /XYZ 85.0394 558.8491 null] +/D [1136 0 R /XYZ 85.0394 516.3776 null] >> endobj 314 0 obj << -/D [1139 0 R /XYZ 85.0394 294.8462 null] +/D [1136 0 R /XYZ 85.0394 259.6272 null] >> endobj 1144 0 obj << -/D [1139 0 R /XYZ 85.0394 261.6947 null] +/D [1136 0 R /XYZ 85.0394 229.5133 null] >> endobj -1138 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F53 962 0 R /F39 863 0 R >> +1135 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F53 962 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1148 0 obj << -/Length 4109 +/Length 4006 /Filter /FlateDecode >> stream -xÚ­]sã¶ñÝ¿ÂÓ—È3'?zO—Ô—\Ú\Ò«ûÐI2J¢$ö(R)ëœNÿ{w± ”!Ûio<‚ X,ö{!y-àO^›$Jr•_§y!Íõrw%®7Ð÷Í•ä1s7h>õÕÝÕ—ouzGy¢’ë»õh®,Y&¯ïV?Í’HE70ƒ˜}ýÃû·ï¾ùû‡77i<»{÷Ãû›¹2bööÝ_n©õ͇7ßÿæÃÍ\fFξþöÍw·¨+á9¾z÷þOÉéqaÒ·oo?ܾÿúöæ—»ï®nïü^Æû•BãFþuõÓ/âzÛþîJD:ÏÌõ ^D$ó\]ï®b£#kí õÕß®þê'õÚOƒô“"R:Q*" É£D+í ßK ‹bv·-i‹ËmÑ4eM/?nEWâfaJ=šR\ÏÌà&{Sóu»¡F{ì÷ÇžÚ›¶ì¨Õ·ÜÛðjíž;hÈlÆKÅãã—I*p׸ã×Ò&&ãq¯iâ‡öÈû*^ªøÈ‹ƒ4ŒÎšñÜ–»é?Ï©hú¿~Ê#i€!¡eÈ ßÞ—œ.IG´L’ÙªüYÕT}Õ6Ô½;v=õUͲ>®Jn|×WM1 _Öű+©³ß=A»â¡#Øi[Þž»ìºbc鎃ʺ\ö圭°ny|a7*e”#ÇT†1™ó£gÏOD0Kf¸º|/y<í3³}qè«å±.ôÞ=tÄÐ^˪®ú‡)åììóÞ²!~Ðͪ°L±¢åʃ}kÝŒ=qL±ã)\GÁœd_VU·äYÊ{,Íì]O"GL¶®ìÖÛ=’¼¨ki &5u<è&÷gcm+ú6°RÑEXG…Ö›¤¥ßöãÉ PêédÎÀ·@û3  ‰Ÿ+hzÁnHäg—7…z!å¦;2i«èO«L” sˆçÙ#QD£Ÿ{ñöèƒMùÇMl¤5É°@"‰€Ò™kP;90ïôTFÚìü±±†(¨ HŠãÜ ‚ó-È_‚†sªsçücçq·° ´­¡€§[·’ôŽÁA3“.2·dWý2è`÷㥇ô/ÍY9G©ëÚeE~'âwªÐ¶Ž<£„ãÝ|†HæÂñ|ª-HöÁ…8SˆÊö"ÑfÛ¨Z+‘ «H„± ” Vº%Ï’8MaÁå§eY®º³«fU-yC0)!C§³÷-pÛc‹v%M¯ÀPkÁ4ûȯ½ûKòS…~Óæ,Y0ìgp¨» -ô>Vìag« Vû¢ÿœy#x™²ÄœsFkŠ2Ƭãà†Ÿà¬¨Û…=ÌĶi­;ºT®žú-&™¤"÷B¦.PÉû@ŒG¸åNÎ.à‚ÜÂ脼€—‘¦Éóî4~ÓÖ= å«“È€ó1=æ®o‘4°!„Ktrš3.æB€?Ahƒ2œÚ/ƒZ0 (¯¨ c¥^àH\©ä\dqÚ±¨j/ª€bÕ#‡ Cº<‡C{¤Åô8s/ÈÓ¯†XœäZèH'™š -öˆGÔ0‡–’½­kbe“Iø„èay¨¼hïù Ž®• -àÑ”'jÀF%M«@ä7Çõ`n˜©¬ó2¬¬˜Uáû6Ä)ˤ™y‘ãªr%'E -£ii…];^wUôGàÅ©8ó ÙäÙãùª·^‘  Â>·ÜKÒcÓWüe×=öóv=_Õ°+1ªº½f; nÇxþÃMS¢*ì.­èp!f¦1጑MwŧjwÜ9FÊUŽ’«“ÔÁ¢Ü÷•‹o/&œÇÀV¡g,ǺôLSÆ”™$_šÆ9mu6G êH¢b¬gU©Ìc7È{Gç*Y›T¿HÊA‘M¹®ûcÀšË4cˆ³©EðQv"ÐöüÊ1įø¿-…”ŽrÌ×OÎs]!‘pÐøSô®þ@ Aeà›¦¶”ؽñÈþP5ýœ"V÷Pv¯Cá)RX“±ó ºÿyNÐk¥v>m$MæSœ£ ˜ 0,¹¼gR£<“š¦>Àž’ç{£^X»·)wh£'{ƒöhöÎÍÂIŠãŽsTŠ}4«'ù{vÅ4ç—A]ÚD, -ò`ÀG*µéúõƺâ[_ŒøSpðã<~–`*ÿÉÅZ»‚ç܃Äa|+’ÙŸ›öÄPN‡W%GÚŸ2=®b'í%ècyhÂIAq€MÓ‘’Ò!'we»@V“T½t–]QÕa­{t/NâøoU€ªíÈz&*{)2Ålÿ%d^¼¥‹‡«²˜(}é<õ>H_=¹¡y Ì*Ð×™0+¸!… j!ÍÅS(™Œ€ãÛãq¹Í¢¢$‹³çfqnÃò<,àœ\™—¢‚g*ï>tê9úñKgZ÷ûKtò¥“Ôí²¨CQ´L„ú]óÈÿ}3žG}&|ôgš'þLû2Ÿ Ÿ$4Vf}Êê¢?'>}k§J_€Ò\%óÛ6b£ÐI`®/ÖSKÎéê-r¢ém‡7à¥;î÷ís rFÆÕŒ b,Q†Ã­Á´Ù­gßRŽÿ¼²æÊäƒëö”}Ïü9ùk€Å^Ռ޸V$}­ˆËøÜrºÜŽÌlrHú¢/xššÝxl|-¸¡gØøbéP¦FO¶-ÛfJ¿‚JTrb‚qf6ÁX£²ñ àÀ•}8Óâ¾$PAï”@û´­lÙz¹’@Çè²fuä ÁK»ix™€ËšŸ¥Õž:#•zmÈu5{“Â%IZàÇŸÚquŒÜ¦³Hœào÷1¡è`MË—!Wm/A®!¤â‘×h\Ë…7ÞYœ¤zj@Ðí£Ú4Rr¾cp8L“¿0vzÆ—yÍ"#ý¥•™ÚÃGfϺúô3ð$|TüBGá‹Ž¦ÿY©,^{°Šß^ ;J£¾6Ãò@0¾À» 6÷GOJHa_µ&3u<ÎÓ 9*n'q”§Ù™ÖêúCQm¶¸ºÊ‰[à‰Œ®Gy:2¢Ë&8lkqƒÖ±ãù¹®Y$³ôw:W6s£gߺ–p’¨òqÂÆÎåg]7m„«]” €ÑM ;’nj@sSÝ—¼—!7fÃÌ$?Si>R_¸¨œnÙ¬ž©\¿vÕj¿«Q ¾â—7ŸGóˆ$f=ZÛÝ"¹XØŒ%6±á ‡/G•.pºíþ{]âyL•Ý†ëàˆ,$õimn"z 5ˆÍOÔ°û²¢Û»}yØU ïñd -[@Ŧ?Òõ|ß*NR4p¼:/å,½Cy¼ãfkkòÒU'ãIuÒø^TæÔTØÇEÿxdñW0ttÁ¡Ë) Á†TìóFU8…¥ã—1S<ŽÏ\FRÓlª‘lb‡-ôÌšLõ›„,NŸ¾j¡y¦=Ë_ôJñŽ«p*¦Z–á Rà²éQQ ]0ú+bØýÞ›P¥Q®³lÊÙ6y,Üý! .ƒÀëiÈ) W¶BϦ\½¢ò„M³ö` -y¾!´wÀ}W€á0Äy!Ç0ŽR;F½ÌI˜ÎV>/CÉ`ãT.p¶ÝU~©Àþ8ùÓlYh[¨¢$ÏÌÅ©=Öll’õ¶SäSsà2¾œM+«{oVèlwaÛÌû^ö”Œ¯Ëvý -/X†#©X¥ÁäŸÉGžS~–üKÁ‹HdQ¨ëý•±:±FkÙ]ýéêá¤×}埉ҩŠ0Pém‘¤ºuw³ÔÚ,º¾<öu³¡·áð +Ö.ÊÝ!z±k7›Ð½¯º®ÜTüéñFæ‹jSºç: ꛾üLíêè:Û#R7ôì·¡_µÍOB¨Íp,ûºå^„ì*joZþ¢}iëê¡v=î°c)eRX«ÜÚVÛ²iª]÷Šv­=ÒQà–ܬ™j‚2éµ~àp.lü¤”Á‰@2‹ ceª€³9l’›v¹¡13æ{ºhˆCDDh½Ø>•Sv¨V5®¾Z'ŒKNp-ef’Ôj{½Ô&)t®ƒ.€(Hp!ÄâÎSÍl —?leWEÞ)›dFäٛϔýa詽i«nÎ̶©æ\Þ·$4•™j²´¨B23ü6EˆÒ66çq¯ ñc;ðºJæÛ¾üÈ“{îËæ‘É÷p?ðœÊ¦wlÆæE"-Øh%&K 7ñí§êˆèÒlÂË4ÑÃ=jjÞAèÞ]O}u³Ú ëŠÀ¥ߊ•ãðÕ®ºŠ:ûmÙ´+;‚¶Ð}dÜAéÜ jW­úêF:ÙÀCËãPZ/+ŒÉ­Ó&|öüDó”Õ¥0ó>»8 }X »òHïÝcG¢í‡rUïêþñFJ¹8ûœ”?˜«L7U77€$¦Ü3 +ßQ²$¹—uÝ­ jÇÒH»x×B”ˆÙÒÉIŽ)ÃMÔ°»‰ÓùbWï란D'À˜Ïí*Ø{\ ‡·î¶ €§zÇ°{þ¨\­ªC_­©ÿþñl‚q'ú“°"ôx[æzê.¢úFåI!mÁ*Q7mÌØäI.‹`l„•¯H¾É’L[9 Ø°¥2å _œ¥…gd|)#4Ii“ÜXž­)÷°òˆ*‹¤(tldÕT`ë+ž¹¯÷<ˆÉÞyŸ`丂‘›•ßp +&§Yÿ¢ezÇ­Â7Þ*lz“†›4ÉužÎ902Í>ˆ¦íç6nÔi4#Í#26 71wÛ*Æ't»Âo]3€ØŒœpÝ£¢@,¡—Ù™D_¦3ŹígŠã+lp¥®…ûPê³lñÖjWŸÁ»0Xí‚l„ÒAcµm[R;Åú¤«êà硹y@»[Sc²4?ª°¡g6`»‹sÝÙ¢÷óé6@Þ”e!Å5m,XÈ|ñüaë¾zðѯ{¯î’-x’ÀÆ2 Øé4Æ‹U ¢ú§ô@P™—A<ìó­èÛÈL)dŠYd›|’–aÙO‘Y` ÔsdÞÀ·Àû¹ÂâD"&ç +š!Fp ÅÙ‚ÄåAJ¡^ȹùŠ€MÚº§h!'J‘lñ¼x@˜[ù©ÏQ!0ø”¿Ü öÍIŽJÄòG f§áËþÄšƒŸ爢ö²$c +¯>¶ x >ª.|ôÃþÞe2ÐvŽž~B\hÒ;GcÌ\ºÈý”]ý¯˜C¿ŸÚ =!µœµ”º®]Õw"}§}ë$2J9á-Ælˆìa!+ÎÂÒ}!Î ¢²–£HôÙ.í€ÖšsdË&a¥£—ƒîûŠ±¤ÞR8põyUUëîìúY×+^ BÎ$(ÐÙâ}K#¼ÀöÔ£»ÑYàõ2jÝs&Í1òëþrÍäsÝõLï¤Z0®g ¨»ì>V`eë ^ûbüœ'xYòÔžKf”'äLYÇÉ ?!,XS·O{Xˆ]Óyw ©(_=õ[,JEá…Ì|¢’þ€˜pËÀ'5¸„1щE:…(#ËÒçÃiâ]x@ÆW§‰…àc.´]ߢ0hCH—hç4—|Î…€°ƒÐc8µ)a† ´d@T_Ñ¥^H^©ô\eíTUuPU¬ö(áÂ’Å€® áОX1=-À Êô«1'½:Ñi®æ<šÈˆqh)IÑÛÝŽÄE¹j>!{Xëû¾o?ñœ]+—À£©NÔ€…JB«@å7Cƒv°°,T.xgV,ªð}“Ìe²Ü¾(pU…’3†¿"ƒÑ´4þλ.û’³ €L&Ò¹ÙàpTPdO”«ÞEE‚’ +÷Ür/i4†¦¯ùË®Ýso;ôËöayO\À¾Â «îöôJ”í»pdüÇ›P¢)ì.Íèi!a¦1ç%£`Ù}%ñs½öÞ€‘q•“êê¬tp_mËOu¨_*$x9ÍA;/YNmiÔRÞR,Mã®[áˆdi’AŽõ¬)•…ñƒBttn’µÍô‹´ Ù\êº_F¡¥ÌRØ“ÏײìT ïù;çŸÁÿí8¤tRàÙËl?jdúŠÑÕÏ4š |Óô ýÀ–û×19ë¦_RÆŠã«îu̯Ҹ±„5»Œ’ûŸ×ñ +½†(H+ùe'ióPúà"mÄe€c)ä…:“šÔ™Ô¼ôŽ”Ô´†¤8 +œôÂܽ«¹C#ÙôG‹w )†=רÇhÎNò÷Ši.0ƒ¹t•X”Á€NT–ËójÞh‹!¿uÙñÅŒ?ƒßæY†©â'ŸkíKÆyÃüV¤‹ß6퉡\¯+δËéQÈ|» äN:hÐÇêØÄ‹‚â<›—-%¥'vî«v®¦™z)–}YïâVÁr/"ñò·.ÁTÇVä"•¿”˜r߉˜/éâæª<!Ê^ŠgwˆòW'_\ÐÒ€° +ŒufÖ˜Á³âK$ÙDJãåvV‡•¤¹ÉŸÃâÆÕ1ºY 9…²/%÷ +Lާخ{˜—bzè—ø,äK‘ìÚU¹‹eÑ +D0ê«ðÈÿâQ߈ýð˜o´.ûèIcxðh6”¬.Æ#& å[‡*{IK•j¬o»ŒR'µ>sæ–¹Â!ýy‹œYz×ò xé†Ã¡=r­A.ȹ†±@ŒG`”ápç0]5DëÅo¨Æ~²îÊcèö%ÿž‡rñæ½Þ1yÓ³"ΊøŸ[.·CØ‘›MÏÉpê ‘¦æ`×L¯7ôŒ;_<:”™Õ³å$«¶yˆ•_Á$*9sÁˆ™]0žQ¹|hà£}ØÓòSE ’!(öi[»cèå“4ò8>ñ‡.WafPÇW54Æ×±{ižäE67ð_Ú#•kÈçjî*…/’x² Ž?µÓÓ1 +›Î®`\`qŠ·ƒ‚ßÇ‚ƒg¢x| ÕÑ×…#ÈH©8Eä9ßòéMg¥žè×QoN)¹Þƒ98l¦-^X÷QR{;Žy# Í+í’@•]œÚãGÏ]ý1"!+~a ðóŽÐãmðxíÑ|{5V쨌fÃþº +Ë#Áø‹ñ7\ížTÂ>º…d½P›in¬áÐávj’"ËõyÁçXÖ›-ή +’x¢ ëI@`Œè¶ Û:Ú 5tŒÿIèš'2Ͼ2¸r•½øq´=0…×DUL 6>qF(?wUÙqÓe¸Úgɘ\Õp#éª47õ§Š×2ÖÆ\š™&fà]"ÏrL×lÖÏœ\¿ö§ÕaU“| ̯Ž_ ëH$f=™Û_#¹x°i$lb#0_H•.lHºëþµ!ñÒÐÉnCÄm HDžŽšúekn5ªá'n¸u9Õ0î.B_÷uÃk<9…Âp±éºßƒï‡²CÃI†¶WˆRÎÊ;TÇ6[w&/ý餙NÚpÅ‹Ž95ì›é¡¿™øA|£Â ÜGApì62‘"WÏeKF`òùåÐr![ˆ1£¿.¤±V„+÷COÔ‘ËAªaÇ–ìô Á”°so¶‰K$Y^³…$§òØŒÃgH° eBݨŽ—«´y™0™i~æ+’šîÈ`SMï¬ +MÄ=ó&sû&!3Ù—¯ZAjžë ò£R¼¯,¼‰©WUü‚„lzr¨†„Þ3ùkØÃ!¸Pgx÷3ŸK¶+ ?EਃÀëi¬) l…‘Mµ~EÇ®ÌYƒ-ðâ™}þ(B耇œyº–7À’äÅC“dÖxA½,IXÎV¡.CÅ`ëM.H¶[Uqé€â5òçղزÐþ$ifÎÜÅ©vì\‘í¶7äswà+¾\M«êOÁ­ÐÞîã¾åëNÈ ¦ +Ëé×xÃ2žI•E‹¶˜DNÅYñ/ ÔÓ;[TØbìíª£;ý‚ø9y~ݺ˜_·.&÷?1HÐ9,’ÂÉbžMïN 9I†uf ÈGçŠnú(0í|ÚšûÚd®yØv¸s> endobj 318 0 obj << -/D [1147 0 R /XYZ 56.6929 769.5949 null] +/D [1147 0 R /XYZ 56.6929 728.4063 null] >> endobj 1150 0 obj << -/D [1147 0 R /XYZ 56.6929 752.0323 null] +/D [1147 0 R /XYZ 56.6929 705.2957 null] >> endobj 1146 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1153 0 obj << -/Length 2579 +/Length 2604 /Filter /FlateDecode >> stream -xÚÅËrÛFò®¯`ùb¨J„çÇÀ>9Žd+µq²ŠrJR.’¨ÍånåßÓ==äX²k[:pÐÓ3Óï—ø‚Á_¨8d2‹i…1ãñ¢Ø^°ÅöÞ_p‹³tHË)Öw÷¯ndºÈÂ,Éâ~5¹K…L)¾¸/ Þ}xûóýõÝåRÄ,HÂËeœ°à»Ûß$£Ÿw?}¼¹}ÿëÝÛË4 -îoúHà»ë›ë»ëï®/—\ÅÎ {ÃÜÜþãšVïïÞþøãÛ»Ë?¾y™òË™DFþ¼øí¶(í.X(3/öðÁBžeb±½ˆbÆ‘”R_ürñÏñÂÉ®9ê“_,U+‘z(¸O€q&RH#À®) d) †./42ÇääX…‰Èbx ñA@R&ÁýFÓ©uÝ>ä5­Ký°[ãRµþ¬-´ÈZäÙóÜ8¨G¦I@V³ÎÍoy| ¨šÉŒ¸§Ç”#„TÑìrØ2|€]¥`G»Â}5l<ž+Ê.uÁ¨<4ù¶*|AK†œK‹vT^½ë53RèıþeO{G¢¥Ó7‚à -Á‹TO9î¶U£É ÷£›L¢ºOK¿]Õ€ƒ91N üvåCQJrË9»4ZöÈA…*•‘EÝäønÄ!kŒ?;†R€¶ :b$Q2nÛ„'Ø+óÁ®(èàž1,‘ÓÅô[·ëµ.CŸ -cä.Ž¿úm~˜>2 /Ž Ô’(TIÍ•’{ÈI!½&Ž˜þÐá¾@ÏC%™E³AçʦµÝ@éª2JMÁÀvy]øØä+¸×W͘I¦dðR’YýJBòºoé^#Æžž$Ðê,v‰@(h“¥߲xÄB¨BÒ™v -¸gÝv=I¦‰t™$@y4J€&æQ”âÇŸ;ݺDá)î, ¢ QÆÁøšù‡¿ã¶u :d Àv› ÖÆÚáw¯kŒ2R%ÁMÕݸ¬£DPùä #*ŒèS9ŒqÄ#‡(L¹šÈˆoì†M ‹÷K.¦¡ -¾\¸¥ ýœ1G9à‡M#°z°ç€Ë(£jÍã‰2 ¥H¢ÞDµìX¶CÕ6½%"?ÌŸ…àZÒÊäîòŠvûÒÇÓW6t¢ÑË8;ñRc«2vÊ…j3¯÷ù¡'¨Q4À ¹Ú¢šjJ:+ÝU[×ížj/€SÅSêî5ФqTTGss&!Õ¼8AËaIðAÛª‰´Ô˜ÚÞ³‹%|3ÁEêk_Q1lÉ«_2‰ŸÕ È/Ù©fL6R€5Dã+¥ qýcã5M8B-oôÃ2-£‡Ç¯YüZ‚?$’ kÝè.¯A–øÖÇU¡ÝW7+»å—K·û‰”9!8 ¾]GàG—ã‘ ->´{ƒ‰èT>-Ãa+*:)#, ¶L£º/ºêa7§-(O±_Ñ"f"dèÞÐ Òf·^ÐânÒ=ŽøËéê§b8¿ üEht®ÿ)BqJ¤æPbÅ;}ᬱž!äü6j¾<Îc )Ñ=ƒÕã'›qŸë¦he®·móì^¢á¿ze» WX݈9„–sýóîÃe÷7?ÝøîêúêîêöãÕå’«˜Ãza)<±àúæ‡+}ºûðãî.»ÿþâê~”e*/% +òûÅ/¿…‹Äþþ"d2Sñb!ãY&Û‹(–,Ž¤túâç‹Œ'³f©O±T,V"õ(PHŸãŒ%¦P÷ e<èu÷Uw8ƒ"o,p÷øX¨ÿtÓW_-~©vëuÕ¬é³jVm·Í‡ªm}¿Ñ–H5ØÿžfªÆC! ¶m©Aý‘ÁÍŠ0†SæÀ¯{T:H¾äœeq,Œëº}Èk@V ÑÅaÔú«¶P³;ü¯»K®FXÀ6FZ˜ú·6síÜ4ÆÝB™r +xÈ)Mì«ú’5}âǵ®)z)Ô#…’ÙÉ0¹ÔC^Õ¤â0hwÃãn@ËsH2¢ +S@õº¨VúÈ'0ðxQÐ÷è 0¬uÕp¸äœ£?#l…ýG¾}¬õ;ÏÃ90JRÃhAÜ\.“бP_Ì>_¬âÌŒ¬B²ŒŸZwrÒ«UÛ¾z?CÜFˬÁ³RàPúÒKùÏ÷—Ê2daÈ•Á +,B Ö&ÖÅ³Ô GåÓøºù·’áPÚ™Ž°kp2‚äÍCµÕv´±ƒ1ÂÁŠÊâ£CžmÏÍ¡Ãp“&yÍ:7ÿåq'àÊ»i3%Ç!U4#SFð«|àèW8câîùÉ!ê.uÁ¨<@D¯ +_Ð’Œs9tg>$½ë513r8Ï°fîÈ´töF°S<@!x‘éq+Œï§HwÛªÑäÐûñ˜L¢Ÿ–þ;ðlTãÄÁoV5d¥¤K:fíÒXÙ£ÅT*#‹ºÉq߈C(6é= +¡ mƒ1’.ûã´ O0WBÑ@# +:8g AäÅD˜þëv½Ö%ó™0Féâø¯s¿ÍÓM&áÅ €„‚Z1•ÄÑÜ(¹‡JÌÄ1Óz`Üè9¤Î$³h6è¼±im7Pº2UVœ‚ƒíòÚTŽ1¦qÎ +ÎõUSx •R’EýFFòºo‰®QcO[’Íhm»D T´IáÒïY< +TâéÌ:ÐY·ÝÁÃO’°4‘.“Ú*nE HŠ“RÃÄßwºt‰ÊSÜyDâ:ƒq7ó…!ÿÇi{€h‘u<?Øir<o‡ÿ½®1ÊH(9¯«ÆØÆe%‚ʧ ¦0¢Oõ0Æ"–r5Ñ1ßØ=Œ˜¤š<Êz_°äbªàË…šÐÏùsÔ~Ø4£ qpeT­yN¢Ì˜I4“Ñ#›È Ÿ ÀöûœÞ2‘æÛBp-idò wyE»}íãê76t¢ÓË8;9¥ÆW¡¼µÆ…j3¯÷ù¡'¨14À »Ú¢šjJ:/Y*­©ö¢Js–îÞ/¡4ÇM#ÕÑÝœKH5/NÐsÂ$ø¬mÕDZnLm ûÙŠÅ2¾™à"÷µ¯¨6„ä5 „/™Ä/Zô—‰ìÔ2¦9À¢ñ•RÐ<ƒýñòašp„Z^ë‡%dÚj¿ ãwÐ<¨Dd­Ýå5è_ˆõqUh÷ÕÍÊnùtév?ÑR"' 'Ì·ëüHàRcœ§LÐâX„&¡s"Òú"Žl^8óh³0{©9Ĉ8¶¯{"YêU¾«bùòлMÑ{tŸHŸÛ=ÁE´*Ÿ–á0Å„ŠNÊ+‚-Ó¨„î‹®zÁÍé5 O±_Ñ"‚Ø̯ØÚÉn½ ÁÝäeÄ_Nœß œÓEÖ…½ö0wP"§,Ajf+ÞégW9#Ö ŒœS£æËãà<–=Ó3X;~±÷¥naŠVæzÛ6ïÁï%:þÛ·¶ ÑÀp„Õ˜Eè9Çe´Þ d'¹£³Ê‹ª¶Ù´3Gž¾¯¡Î¸i›úpÊÄ“v¾Ìǘq“»Å¶Õ´m¦y"ÀŸcE*ŒžÖú¤•ò*Ÿ¶hæ2ˆ1¯PR¨VŽ’îA$=Wüˆí$}YN“A ¹¶û—9ӆߪG·%Ði§ã–Þ¶FA£ërMgwµv§³L|@”—¾¤0šmu&ðs[W«î]K3eÀ\˜éò9:tÝ5£ôz¹zmy2ù…yýÑÛ'Swvf¨ñaÔöpmo9Ÿ5S±ë:Ý g 9UL^ç^ç”Ï„„‰Ÿ  ¥LÏܱ? DñņÿÿIþfe5»zvÇÂS–I¼ŸÝ Ê“MåÚ¾w†ÍxÖúÑ®¶Å‚3ž†‰ÿ¤ÀJKÆñ5(ú+W2Ùø*à»y€ŽÆ.ùŸ¦^©  €x—ÅPX õ-O ‚e +ûßÈr$¸œP¤Œ8oÚ8Kp¹Ã"ñPxÊÁb9Þ}Ž¶Ä s= ÓÔ61vn§©kugúÓ³áÆÕ@rÒ v¹+toçÜMàÓ ‰t}ŸÙëìc©À†ÙÑðb"˜)8Æ[æc}Ô´»N¶–7ƒ›é¶®/?Ïé-Œ½µÄJ³¶•s+\U8«-`’A×N‹G“iÎ5ŽEˆR®Ì¬wsªÝMèìöÉ0çr©ø*ª)ÿPGB—!tÙišÌ«›ks‰šE@‚¤‰ øe_~zhÞPCã©"÷Ô¿B}ç‘•G’©Œ¯;ß+‡µ}å@B†$t}[êèࣦ ±,¶¹„ ô6™ix‹Ÿxláæñnl‹^Ðy*²äøèBìVŒoa¥e ]÷‰7M3|ˆô”­á(ùÿüÞy| ŽR&•þúÍ®D–:¦P@™r>>Œž³þ_ÎŽÙÙendstream endobj 1152 0 obj << /Type /Page @@ -4208,7 +4192,7 @@ endobj 1155 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [173.6261 500.8708 242.2981 510.2804] +/Rect [173.6261 465.0053 242.2981 474.4149] /Subtype /Link /A << /S /GoTo /D (the_category_phrase) >> >> endobj @@ -4216,25 +4200,22 @@ endobj /D [1152 0 R /XYZ 85.0394 794.5015 null] >> endobj 1151 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1159 0 obj << -/Length 2502 +/Length 2725 /Filter /FlateDecode >> stream -xÚÍZ_sÛ6÷§Ðô%ÔL„#’ /OnjçÜ9;9W÷Ðk;J„,N(RH»ºN¿ûíbAŠ”)É>;3?˜\,Àoÿƒâ#þø(Y{ñHÆ> \Œæ«3wtcθå™4L“.×÷Ó³¿] -9ŠYzáhºèÈŠ˜E|4MqBæ±1Hp÷o.¯>üûö|,}gzõñf<ñ×¹¼úç=}¸=¿¾>¿Oxpçý?Î?M/ni(´2¾¿ºù(1ý; ôöâòâöâæýÅø·égÓö,ÝórWàA~?ûå7w”±å…Žú#Y­se°ð\Uo4 èdKœè°q, ‘ʲ-ìæõ&«ì p¯¢²bÖ„^1µ«™˜Ù["ɵåo /J­í²ÆëÔ±¢}í‡Rq0w¬ -æ#¸ëü<Ž=§¬ß¤Ä±ó¿npnu~T’ô×ä1ÔÀjû¹âsoàO³WO°˜»þže¹"¦ïºÓ‘üÝ»!'Õ¾ Ø8)+%±MÅÿõn¦¾ÕíÔwp¯´ôÀùÅï›ìkÀCà<¶ê®MV­CfzN¹Æê8ÁØeñ.¢ŸÚôœìå8­ãq|óxÀ¤ˆ¤\E ‹=Þ®ÇY-lC–ç—ÌEa} ëéê…ÚL0=uC.Û Çõ å9Ö1 ÇÃÈe'*ºþ.·ã ¹Rï“,Of9\–Ò«b:>Ì€¶ ÇTéù&[WYYX®rÑ,œj»V{c”æàýa³Jpz;kkW/‹*É -6ÐuÙa ÚZ%Û&¢X£IS•öíhQWuWÆ®È'j® jÒl¿”çn ˜„ X ƒ'ó·˜tå^1ÿÿÍj6‚µ äê0ï€æ¹ Ë>63ú¢&í¡ ¼ŒaÍ8Úµ -½ê¼Ç{¡džÊ5´2ð_3å©/ä.iú¢S Ù!ª~5½V4%Ü¥ ¤–±á VWö%¡Æ¹!ï¾?ìê\?Dç"² ¸úÜN+ |»«7Ö8‘¸LôPˆŸ)U •ï]ÃñÉ|xˆ_¦64¨£&‹gˆlf¶Œ”qœ°¡Òçú*Ô&ÉŸf <6ñe¾œ@ÀgXårçÚ´8R-AÝšžueÊY|´ËTF@žhm´†îhÂÊVødÈ4v틉 EÚæ‹í^RÍX½¶mšµœ#Êí ö2Mì+×MåØb~B¹.œJ¸”BÒ¤JfÃd_»×mÚAÐSð!H+èÁH4UfÐTˆß -·“°§P§Ú ‘-@·=èí6ˆÉÊ>iµ1]£Q­-5tÕËÿ- µgódÞvü°¥ÃzîøZzn"ÊÓE6Ö³- ÿ¸š½H°Â¹­VmmyJÍçëµ³¼Oò=SUd Ñ$ü6©þ^+]é#°îöû2öQõ^UH±ŒN$IOr„]®4Ùä$¬ï÷ÓŽébMfï™’n;¦r«‹9ø ¸³õ×Bø+$Ï÷™F'’‡7–Ü¥°QºÌÑåO!üÃÍOãIe)™$̪é·x×+]Ï—8 ¹F› .H°÷Š5à¯h,/Ë/õZÓøš²Ãd¨BÀ"·©@­b»›/ún2Ï3jÆ»W‹É.8µšéLÏ|Pí<_7\½®c ž„8¡v(‡Â8¦´„ý•AnÈŽjþ?mÀ¯6I¡a¦Þ»IèfæbȪ]e÷Ç=«³÷o9vyÀD'2¿Ú—¾/ûÛ[Ö¯€1^G·³í×E÷uó­ActÊ~AŒŒbÊ·¶·RÉŒHÝ|œ^]þÜ úU9/ó#Ðíöô Û%CæùòDNY,¾Í©&Vž„îS/5…ÛçT(Ý}¾œÆ¤ ž#²™qN2_z'ÐŒ$‹dLù³.VØA’zzÏãÀ~ƒÀ† SRJćÄönu‘Ìre9mc–*¨éWYÑ—öÁ4sCå=jKD±Sš¯@.}QAÂÃ2Ãl´ªóõ -GMtlï‘`‡úøæqÊОî>SCW‚ÝE[&èW¥9ç´†<ºu‹8~³îæþÜÕæêÕ*1ßå„}µ—èžàæ–à Âö,âÐ5&`;~5—”‡<Á“L -ì§Á;S¼`‡ -fºÌ´ýž"Í…¡8t)„0{‡Ò¿y!Å~XšiꀒÐkS³"ÉèK`'Ÿª)UÞR{7ÛÒÀî«.bfzø›^ã°M[7 x—ËcñÜ‹Þ#ž¿s©—yé×£žÏžŠ£^„?D 8Z¨ê¡Ü|9é÷7–"(T»¦C9+;{ù–S÷ Qãá Èx.Ù`¹NÁ/N·[ˆ‰Ù¼¹DÂ9Çàêìã[†ËuYè†'.¸ë3t¿Z“¯uµ`•ñœ$NG^‹’¤&> Æ%]]ìÿÇ,5Ÿúßݯ¢|ÉDyÿéñdZ!Ð*¡,DÕwý,©ù…åêlý‚ú˜endstream +xÚÍZKsÛF¾ëW°r1TebçÁc}Rl9«ÔZö:Ê!›M¹ r(¢  Há¦òß·{ºHÚk¹Ê¥ƒ€ž™žž¯ßʉ€?91¡&*™DIà!Íd¶:“;ûáLòœi;iÚŸõýÍÙß^ëh’øI¨ÂÉÍ¢Ç+öEËÉÍüW/ô•„÷òíõë«~~qÞÍÕÛëó©2Â{}õÏKzúáýÅ›7ïϧ26Ò{ù‹w7—ïi(dß_]¿"JBÿ0}ùúòýåõËËóßn~<»¼éÎÒ?¯òûÙ¯¿‰ÉŽýã™ðu›É¼_&‰š¬Î£}hÝRò³ŸÎþÕ1캥£øIá+ª•Ð$~¨aLµÝà1`²ìMVÊe¬`œU¤+;çY}–¤3±äYË´B|"o¶L‹;X/±W—D¬—–…} ÊÏW¯žÓSZðä´Øeno›;¢•M½nj"ßÙÂnÒšxGÞÃ2ËíˆôZ?ˆ“è³ÄÏXúªN7uVðîÍN¦:–*¼¥ôcÁçã¨ê,Ïéqs«Š‚8À»CÅÑ%¦Ä“Dšvê<«f©šÛ9Ø¡Ž•wµ ±mÙÐCa-ïãЄÿ³t]7n™%~õ²åHx!²±Ø±X5UÝ—Ù9¥ üvs†àž²zé-†‡e +ï?J§Nú6#}' Ã9½A¼eGSDZ\×YYÐ3ƒ Àì<£ÿ³š¨ žbΈÅnÚ ½’ÁV•[Ÿµ¨}Tbä'ZENŒ·Å –·$ ý6'šƒþÏ-r*ìÕ"ò²šè3˜[òó­%,y»Ô¡w³l˜ie°8ôÒ¼¶çÒÛÐ<›,¯§YÁ H´Š&í°É·çRJïù˜Þn†Ž¶…Ø–Vå<[l·V½s»H›œ×äåÝ;ƒðnyêºÌŠº£ÎÀ!ïÊMf+ž—ödío¾Lï»:€û°pÚ’²é1ÐAüB–v°9 ön¹I+;bxÀM~ÈÀqƒå­óèâÏî%öV.!yw0Ðy W•4à΂sH©,Z-’ŒHä*"ñtˆWiQÓS]ÒPeyöC+‘sÃG«XtMðï1-'ÒØm­ZI©”ųšhÈÏ™dB‘FyZ´›zÕÚÎÈ8!fœṲ\ |… ráœp7¿Ó'8Ž¨ I &M[ÙªJï,Ë ¶>8Ÿäèƒv¥UÜS¹V @‚éè}H]ðL‡2PP'-LÆ£9µf?’'ŒŸ´1«¿y ¢VµMÑÁ 88¢‰TÒìËh"­Cé)Ñ:GCÚ#¨‚¸•€ˆ%äcu òE™çåCç‡N¾Ë/»0›±/6•ÿ}$‚‹a`Ü5½°€/hªmÊ|1$ºδ¿^pÊÄãØívÞ¢ £K©Ð³¤«un—ÛúYEUº¥™ŒsØúHã†LËM¶³f“Õ¼¼«¨™M;5¥Wʼ› ™ƒ-Ò¼âùíf¡÷ÑÚ5oëœH=#Ú7àa$µ3ðÈ·˜õ¥ð~9O$ïgœÕvî×ÍʪíÒ*`µýÐBña0ð§“Ui?‘"J¼ÀêÊMú®¿Éß½A½ظ(+%M›î±§Ù½ƒiht;õ”•˜œoTÄ}‹‘`Ï~Oà±Q÷•pã´Êþ¸«õ8Sºšóð.¢›ƒ +f?2ŒZÇH /é¸+‚Ø챸P´µa³,8ä dv$@ü±°›)f§~„Àm1`_!CP ¹cãp ŠD‰ã÷ºE°KíøBn„Ôû4ËÓÛê-¦ ŠœáªPx¸Ú‚続m2Wªò¬r1` eøvm÷Æ(ËÁúÃf•r¥K«¶¼{YÔiVøc½)»#Œ[«tÛF6šùÜ·v´hz½‚é÷¹DÍ-M•¿ßÍJ‘@ý%è“4X’RŸÒÏBÚò#íõ³ÿߪV,!U‡Æ–€Ö àÅíŠ!«iw(,5`FíºåAq ±…Œ&Ý}êðD‰wd‚Ö×\uèh—3Ý+†xˆŠßŠ^kZîÒRËÖØð‹«Ñ¶¬¬pm(Æï»27ѹˆì‚î>ãeeow͆‰ØÍÇ[k‹±ê½o8‰ü@Bû݇øËÔ†ÅcÜFbý,Û‡-!‚& Ž[ô¶~p;Bù§Y‚L\|™-§ð},r¥÷Æu8{å:>ó5>ràr¤c§Uå´†îèÁÊŽùtLY»îeÐXsÜé' ÛŽ5kîÒØrŽ(·‡Ú—ib_¹Á“*×_á ݆Æ7qD){žÖéíx9Tî›.kkcÚX +.Y‰®È4mh‚Ž9/ÂJœ@›vS€B¶4½ö±;¼ÓâR ½ºéÝ}Tõ iü·,ìž ÌÒY×ïƒHGÔ¼Ã充ܚ觳l!8¬eû"§ãj¤F‘áb•KËSj¾X¯é‚é>Í÷PœÛ"k‰.ßw9õ÷ÆVuuÖžÀ_Â>®êIqU¡/µ9‘$`‘â+å6›œÄõå~ÚÙ]×ñ5Sº©ºŽ©Ãœ•1çƒÁ#÷D*„¿FòÊWÊœJ>PvGaDa}c«2¿ïîí#üêú§ó©²”lV5ˆôsüÜyU3[â0]Qã4]À׊ àoi,/Ëͺ¢ñ5e‡Ñ¤ƒEn[¶ZÅv7_ ýd–gÔŒ÷oÓ]tê4ÿ(Ô¹žù Ú{x>mÀzRÇ’‰ðU$ÔqµËDû± )/aåP§ ²£šÿwñëMZT°²Ú»Iè§ö^ˆÕn³û£žÕ—ýŽ]2æý¯a£ÇÀFÈpˆ0ß±~ˆñ¢ø8¸$µüÖÁ C_›äD•!Ђ.÷öŸT2#T×oo®^ÿ2úu9+ó#Øõ„ú–±3ˆàDR•pª$‘œT]°<‰Ý»An‹·ŸS£ôå|*8 T +‘‰?ƒe»â œAÍÙ 4ƒÐ:¤Õ+lÇF? +*ñebøv\ôIÙRnÞš"½Í-ÏäÎln¡ª_eEK^òƒëæƲ'jKljûš©A_Tð°Ì0]#­î}½Â‘´":ö÷Hp‡Cý|óˆ±ùt÷™}»TP8…í‡\hX#{´=ºš$þn£ßŸäî¨JC kV«Ô}—Óý´à[t¥¥»æpU‚æ®EºÇ”ÄÆ»½¥<ä +*$ µýÞw¼4Åv(anð9}O‰Ü¡>t©5}¡×:€Ú¿y!…?,iú ””^Û¢IN_[ù9~˜†Zå95x·[Ø}õÁM˜a6j Uç°mc7x—€Rásoz{~Ï¥¾ÌK¿jز>FãÐW¡ (ZØú¡Ü|<éõ×<›`©A9){’|Ãy'~$ãQ€lÍz.qºÍØB8Ìfí®9‚UOŠ/;X €“‚âo‡UlF%&'üÔcí~©D¾Žc5þ;+\ +y!BxôS±öW[<«'úÿ.n‰endstream endobj 1158 0 obj << /Type /Page @@ -4247,40 +4228,35 @@ endobj /D [1158 0 R /XYZ 56.6929 794.5015 null] >> endobj 322 0 obj << -/D [1158 0 R /XYZ 56.6929 729.6823 null] +/D [1158 0 R /XYZ 56.6929 687.8392 null] >> endobj 1156 0 obj << -/D [1158 0 R /XYZ 56.6929 704.9004 null] +/D [1158 0 R /XYZ 56.6929 663.0573 null] >> endobj 1161 0 obj << -/D [1158 0 R /XYZ 56.6929 387.929 null] +/D [1158 0 R /XYZ 56.6929 346.0859 null] >> endobj 1162 0 obj << -/D [1158 0 R /XYZ 56.6929 375.9738 null] +/D [1158 0 R /XYZ 56.6929 334.1307 null] >> endobj 1157 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1165 0 obj << -/Length 2770 +/Length 2655 /Filter /FlateDecode >> stream -xÚ¥]oÛFòÝ¿BÀ=žî'ÉôÉ•œ‹ÄéÙ.p@´´’ˆR¤*Rv}‡ûï7³³K‘eÅqt—»³3»ó=#³QÿØ(Qa$R9ŠSªˆ©Ñtu°÷áŒ9˜±w¡~º;{ó^Ä£4L5×£»yWFIÂFw³/Á»^ür7¹9s:<+?]]_ÒJJûÏ×ï¯>üzsqËàîêó5-ßLÞOn&×ï&çc–(ç¹ÃpäÀû«š}¸¹øôéâæüëÝÏg“»ö-Ý÷²HàCþ<ûò5ÍàÙ?ŸE¡H5z„(diÊG«3©D¨¤~¥8»=ûW‹°³kñOF,d\‰¼‚…)‹“ãt‰FtÝ”)JïÓ3‡RÅ Íx¨…— -g©0)ÂD5ŠUjÁ…ËŸ[³ÉMìxÑÆÄJÆ@án×fšÏŸˆ§K³9gI`èÓã°õ²Ú3šß;€¢Z,Œ[kª‰Ú1(Å-þ‹æ| Ü ê&Û4Ûõ?à+dD5/´Û, M¦YcÕæÉÝ»÷N-C®™p?þ@Ú3îàó¢ ÜYQWöŠcñP®úW5ev_àËⱟ³`óD_øN{WüØ–…©ë¡ ò8ä’' >ÁÉ‚ÄbÉ\µnòª$ÜË ¹'ÀaSÒ]Y…i"W²:ËÀߢˆ›Ù Ûï–†Ù[Ðïb'¦lü‰{]mG¸ñ§EpwËW¿Ð³ÙŒŽÔn#+gCôãùXè8(·«{Ð*°b½Hµ=aw,)œ¸; -­ƒ2[7-2$‚»#OkBk\5}ºÄ+ã1gjïe°ÊÝ ~Ûz&LnÌt»©IðyiêœNÎhx,²…Ã9Tµi†ý[¤¢"Ÿã¨žÃ9Æ´@*(«¦…€sÌAM.¯o{Äà„»Ú¶6´€d&x†Ö«M³{švl¸'¡F›Î¥·_Äz‹XCRX‘vvˤ ‡( -Pë#øÇþ¦Áê·àÉyD¾ãéí õÇÇÐü•­Ö… §ÕŠ°\]ÓxÿÑì‡ÛÉÐé.é·o‰hüQv@´4Í1¢c"Ú ("J¬5u½ð+]»I( ‚‚'."ùœtB*IB q"ZèÜ)sì™åõ:k¦Ë“áâÒ’7<¨æ4æ%ÈÒ­²`Mÿ0Öð`«©Üh&µÙt³À_ëla¾Å¸% “]w㨭$ajyh,‚³`—Qœ¡UêÀ„Ø/xÔVv»¢‘Zv6uø2‡!£¡ÈËæÑàÿi¡MR²1DNìGrAå±1û^_qH[Ћq¥CQuH››Åˆ&7ïØ»È;vÙsˆ×6ëÌ”êXbòÓ× ’#KeáoÿžŒWŽ åR†Zéc¶Pã.Øáí±áBד€”ñnWºá…VÙMîí‚V9äP‹©O±Hò“¾£Œ–ûúSÙDIö„Ž0}¡ãJ›Ä"ücÞ,iy–ÏtîžT6.EÐàî…Ž÷_T$­Í¦Ôl×›³N8~Æl@àKý«[×;Ü<vÍ®+Xwreѹ4kîÒ¬]`•Õpj´œí›‘Òå@ÂyBÞ˜fúfc-ëX‘*ÜÌÇOP¥ø›Š½» bù̸Wf4P ÁY5'3Å<Ý+”mžì½Û2Ç,û s›­×¦œí~?ìzÇŠìg­º_E¹ÎÇËDÎÛß)õ,àÒ$eCœt¤ê Öéâ꧱ԯ¢|DÞ‰jñ~—Ä!­µWè·f9þöZ»7Q‘ ž'¿çº8؃åö~ŠÌWÛ “ÚÿÔsêá9¸bû0’rïÉ™@Qih×¥øÒûgœµ™€ì7 pÏŸËó%ÿ°d'­UõÇvMË÷Æõ¾Ž4SIU½â®³ÆÍLáÍ£ -û£HÚ%ýä°ŸzGm=÷ê?XØý5‡Ä~D÷·ƒž‡ñ}w)|µdõHB•ðxàêÿ5‘Cendstream +xÚ­ZmoÛ8þž_aà>œŒ=©")RR÷S¶I{Y´é^’è EfládÉkÉÉå÷ßo†CêÅ–ë¦Ý()r8CÎ çá¸lÂ_6KdŠ4šÅiÈÉY¾> gK˜{wÆ,ïˆü!ÕOwg¯ÞŠx–©âjv÷0à•a’°ÙÝâ“÷æïç¿Ü]ÞÌ}.COs_ªÐûéêú‚FRjÞ|¼~{õî×›óyywW¯iøæòíåÍåõ›Ë¹ÏÉ`=·Ž,x{õþ’zïnÎ?|8¿™¾ûùìò®;Ëð¼,x?Î>}g 8öÏga ÒDΞà# XšòÙú,’"‘n¤<»=ûGÇp0k–Né/ +YÀ¸3_$A$er\,‰A¬í2¤RîKõ™ˆSŒ6‘*¡ÛÙ„³MX$‚D9‹e(Á…1Ên³ÈZí7:ßm‹ö•ëÄ`¨'–Q Âþ|³ÙÎYâÕYIêͪuº*Ü`ý@-±§¾Y§ÿØé¦m‚}kD`ŽX)>âû#¢$à} ")ƒˆÅü%<Ý’£ÚVa(žÈSÚŽâ@Å1…~[è椖o7:/žIoO+Mª£OÇÃ|4«zWZýß[‚²^.µkk£i`ë;-+¶s<ÕkÚlÛî6ƒ¯˜‘Ô¢ZÒl»ÒÔÉÁ†Ëzë¼ctN\1a7~ü€àïa̸¥{*Ê’xgeS›-ú<ä\º­’Êt•Ý—x²8EîsæmŸé ÏiöŠ»ªÔM3µA<âÉ`ƒÏ°rb‡`±8b–®Þ´E]ïU†ÚŽа®h¯,ƒ4ÉX­F¿…!׋Iµß­412» .îÅttÕº12÷¦Þ¶VpëæetµÃW¿Ð³Å‚–4vcr$Ÿt‰ç¾P±WíÖ÷àUpc‚íEª(ŠqƈŽݣPÊ«²µ¶ty™¡$è—…©$`D€î‘QY ÉÉ'ç= ¬Þ1$-™Zwo0o‰3sc':?ÆuÑäu…)}¹Ûf Lò ÍýD¼®äN‹‚øŠ+Œç¼~Ô]&)ó¥wöRj Î*ê,0!lú5µG³H»ªsN'ÎÞ›{ âM]îð@_ð™5¾Ï½ÓNxøtïVuš(a-UrÊixÀ‰ìÕªK½4öôëª<ýì¹èèÁ”€šÌ"Ƙþ“&Ü{_/šéà9~´«¬¥Þ*{Ôû½NîyÍCm,”£D<6FÇöúŸ?œc~DoB¸`f J‡Ž5ë®l银5ƒ#O9Ž9‘/„òþSWšzb@uÀáWÃå…ÂÁêÓúŒeÀÓÈÑ›ð 5¹ZE"€µ»ûÁvtƒ)Uš¨±¶0)ÅæqWúÈ÷ù]ïÊý3ÿTÝ×Äa¼W7ø¶Un#L¥ˆ9VàÙÄŨÞpPw¡‚Ó¤1D î_F£héÔÙWn¢0†-IŠ,¶0¶,4V>mÝëó¶…‡áÚ ?ShÙfë5\Ÿ‡Æ_@*Cؽƒ +ËÁµ„B ³´å>À2ŽøÉ«“ŒŠöý§!9½$Š"GFGš±Ñq¤C±HÿT´+^Hú`Tµ"(¸í…ŠÇV°¤Þ¶ÍúÒÜàž´3KÝ©»›wºv(&âM_l˜Gvf=X˜Õ—ñˆV§:Й²Ùç\âDkò)ŽH¯r½ÇØI†Ì“4ë½ +ËŸéÞûÅE ÝEÏœŠú®ìŒý,Ïõ²q‰Ÿf”ù˜îꪚZ[‹„^aIÕS,6r5 I9# Žxgê#ÎV Èi`0x×EÛQû?Nز»)Q‹tRWšstWj³œhÓæ-Î^àk@Åò!“:',Âý« 0“ᄄ uIØë¿  ‚6£bμÞ'pl8â o×#”áIŽ“lEQÉ:˜wCF€ØØ€ßd9V—¹H> >> endobj 1170 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [84.0431 240.8428 117.8035 252.9024] +/Rect [84.0431 204.2448 117.8035 216.3044] /Subtype /Link /A << /S /GoTo /D (lwresd) >> >> endobj @@ -4308,32 +4284,33 @@ endobj /D [1164 0 R /XYZ 85.0394 794.5015 null] >> endobj 326 0 obj << -/D [1164 0 R /XYZ 85.0394 451.0558 null] +/D [1164 0 R /XYZ 85.0394 429.0696 null] >> endobj 1167 0 obj << -/D [1164 0 R /XYZ 85.0394 423.9067 null] +/D [1164 0 R /XYZ 85.0394 399.3522 null] >> endobj 330 0 obj << -/D [1164 0 R /XYZ 85.0394 301.4703 null] +/D [1164 0 R /XYZ 85.0394 269.1889 null] >> endobj 1168 0 obj << -/D [1164 0 R /XYZ 85.0394 271.3564 null] +/D [1164 0 R /XYZ 85.0394 236.5067 null] >> endobj 1163 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1173 0 obj << -/Length 1216 +/Length 1372 /Filter /FlateDecode >> stream -xÚ¥XKsÛ6¾ëWðh€‚o²99Žœ:Ó8­¢œ"A c’`ЖÛô¿@Š”Õš’G£Ás?ì~X,°´-$¶å0ˆØ -cúÈö­¤˜ k-Ç>Nl3´“@Öûùä—7´bN`ͳVQÙÖ<]\З]\¹»¹ýømvuzóÛ/w—ÀñÑÅÍíïS]û8»úüùjv ìÈ·/®»úc>é¡À`¼¿½û {b]üèlz3Mﮧ—÷óO“é¼³¥o¯\eÈÉâY©4ûÓA7Ž|ëI6´ãرŠ‰ç»Ð÷\·íÉ'_'v€½ÑèQþl7pŽèØ–mÃØ÷ƒ~ ×q;mW²‚º(0¤æÚʯ RRþj\¸V&ˉ{;ƒ,à†RMï;@"–¸ º¶¨X-t•VKո׭¿uñùH× À2§ÜüìäpšÖ¯à-ȳ®ÉÊ}nëÚ;3 BhÆþy§m’%ò"è»N¼§ÉAÓò!§¤‚²R÷à2Õ•o¯I·Ö€?LJ~ä‡þôD·7Q²ìzq Ô¾dõ²d#p#6 ÜöÝçñ)Q÷J"ƒ`% [*NW!¥8oª~}©ãÎÙ ?@4¤=t§(Ÿ‘lÀ:oÈéJgyÃ7`wk)Ëù¦){*OÚ` § É© ÿüt+T |“ €oMPjŠ©G ´¤ÎAMx%¯ r†í[$ÊóÏ°¢d‚f‡N0x’m•Ó„ß‹úy#·0ÞÙ'¥ÎÇEϱO7O¾®äÍ*ÆòÓ…ÕÙòè6«Á -srÆI/9' %^ågœ#þˆsšb1–Ác9còÙ™’þeg‘®ŒËdÃêþèxó -°’!Umô‘ÎÐ' ©„Œ•|¤gDV?á:=Ì€”Ç<9£u› ©TfLüÓÈ]"f²¬Å)™”YF¦JízmÂ4âÖ—!CÆäè·5 Ü?@½!äž½[ËIåÏ\ËË€ q¶÷3F°´j5NŽ}p}¨òø# <ê¢7.ØKñd^EÎþK@?qpB™ÇDÄ(¥,ñœš·ß^ªþ/#„¹rendstream +xÚ¥XKsÛ6¾ëWèH€|³99‰œ:Ó8­£œ"A¾B€¶œ¶ÿ½J¤M§3 ýöÝÅ’x‰ä/=ú‘-ƒÈ…ÂÞ2.hy'×Þ/°ÙúM`¸ëÍzñê –Œ|Û_®ÓVQâå:¹±|hÃ3‰€¬·Ÿ®..ß¹>? \k}ùéê ز..ÿXiêýõùÇç×g‡¶Þþ~þçzu­—|ƒñæò꞉ôãÐëÕÅêzuõvuv»þ°X­÷¶ íÅÈQ†|_ÜÜ¢e"Íþ°@ЉBoù â(²—ÅÂõ蹎ÓÏä‹Ï‹¿ö€ƒÕŽuÒAÛñí ÚΔ½úŽ\R\gT!·âÁVAÛ^m)“Jp³iˆg0 +#lvqA-h)”‹\‹qõô,ú½e÷$ßÏ‹JÏ‹i¹†QàúGI¶_\j'Ûz{ÜWTįÊ«üÆU™Nˆˆ<è»Ø1 2>¤Ã¬K¡•geÂb)”›¤-Ý|!ec (¸%p”›}.–FyžÝ!±¢-$˜ë[e[li£èÀªR=×ÙÛÍH¤n†èas†C‹æD°{Úo-ˆÞX%)̬ȈÐϪ6O†Ü¼ÍÍZÏGŒº#±ÐSq¦góªúÖÖzzKÓJ£tÆ¡±Qœ’nQqªü¨‰0Í»“ázD „Ô5-šÀ}ì!S%Àñ¡k;î>ͱ#S!$Uä‚6òóððe’7¤(¤˜ç èŽ.{_"jÿ)ꦮ¡IVoÔàVþÖ¯ÈCš2›œqÃðÏž$Ió?x7ß裦$q»Çšzm6AÍÚ¿¯_p“B'ƒƒ›Ü#ÜôŽ~EÈ.™`UiN£L4ñ…“»©Ô”¢lz8ˆFþ{ž9ÒËŽõ©¦ÜÓŸ~žWšTÁ¤çô#®Š¢×„S£¤J +õ¢ë’iŒp–?jºåÔ±53… yVçf/íö‰µ<'÷fõGUR>Œ 7ÉĤwp¶gœ]ÕÊ•GÄäÈUO|ºÎ˜A蟦² ëÎ`ŒóB Å!t=×3Ðk6qP²&"LUQÔ•ˆ‘ŒQ2DõeZ¦OòR!õmhû~¯ +»œþ6 ìA/ +¤—¥ŽmJËÞ±: Uñ±©ËuT‚nôŽ{(]L.VÞ™œº*`†;«¸8Ô‚~ôS~<äç´‘2K†Ã KŽ× a EÕ˜Ú  +éFép«¬#à4ö‘îÝ!‚]J›ÓE‹N¶¹:3:ú$îlX7‡SP#AŽñ~L⌂”åôt ’¶¨g²´P¹#ë‹ùñ#Õk–Ì”.Ï»•Q^ÞÍäÿeÕUÙ=ùHù¦j6eu„¤(wÃð9…=¡ê^QݨJ@wL…ÇYGrÕéè®;GÈOÉ7 +Ø÷–öIwŠò©lD3p—·ôt¥Ó¼åèn-e9ÏZ‘T3<˜ ' ΙnÕN…òÔÀ?Ù™¢ÔõÈÇ$!+YAr ›úZ^t†}¯bù3¬(+ÁÒ§A0j é®ÎYÌÆý¢noäæÇç{5㜛4¶ñXS|ºy²»’7¨«*Ÿá\™ÛBþÛ¥ ØNgdzÉ9-É6Ÿ‘/†]¾Œ²„ˆY4êÅH¶ ^væ.kZʤŒ³ª®^(€­,©ê '$Ì0™Ä1­…¬µl’UªjH“<}R;Šä”5ý»z•"O}$q<¨¾lL|Ò@ûîû—? ¾.¹²‰C{úÛˆȦ9” F)e½k?Ó¼ÿÒò\õÿ8Õ+endstream endobj 1172 0 obj << /Type /Page @@ -4346,36 +4323,35 @@ endobj /D [1172 0 R /XYZ 56.6929 794.5015 null] >> endobj 334 0 obj << -/D [1172 0 R /XYZ 56.6929 769.5949 null] +/D [1172 0 R /XYZ 56.6929 716.8068 null] >> endobj 1175 0 obj << -/D [1172 0 R /XYZ 56.6929 752.2028 null] +/D [1172 0 R /XYZ 56.6929 691.8907 null] >> endobj 338 0 obj << -/D [1172 0 R /XYZ 56.6929 693.9224 null] +/D [1172 0 R /XYZ 56.6929 633.7645 null] >> endobj 1176 0 obj << -/D [1172 0 R /XYZ 56.6929 663.1642 null] +/D [1172 0 R /XYZ 56.6929 603.0741 null] >> endobj 342 0 obj << -/D [1172 0 R /XYZ 56.6929 628.9495 null] +/D [1172 0 R /XYZ 56.6929 569.0137 null] >> endobj 1177 0 obj << -/D [1172 0 R /XYZ 56.6929 601.0964 null] +/D [1172 0 R /XYZ 56.6929 541.2283 null] >> endobj 1171 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F39 863 0 R /F23 682 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1180 0 obj << -/Length 1186 +/Length 1187 /Filter /FlateDecode >> stream -xÚÕYËrÛ6Ýë+¸´:O’˜¬WNiœVUWªGC“Ìš"‚’í4ù÷Bâ[¢lRÌt¼òž{îÁpcé?lØ"*˜a 9ÂÜpç=dÌô»=œ}ò@õ«÷£ÞÏ×Ô2&1Ñ´‚eCdÛØyã‹«_/ †}@8º0ap]¼¿¹ý%íéÏÕçÛë› /û»Ý|¾M»‡ƒëÁpp{5èls¬íI†°Çàúæ·AÚú0¼üôérØ¿}ì FE,Õx1¢ë@¾ôÆwÈðtØ{RasãI? ˆ… ƼÇ8…œQš÷½?{€•·Ó&ý8µ!·‰Õ$ ¨ˆ‘ –aqMJèFÁq˜]¸Ò}¡3—*íøq”¶æŽJdœ¶¿¥?*pV²ÖKµˆB% c¼ÖÆ Šµc(8'—%ô“‡5˜©ãµFqõ]Ú¼Û ƒFøZDóçípŽô‰rgx×Ù“x®{iß‹T“(ž„Q³}Y?Lä,ö“—CæÏÀ]áŒYÅ«óúlSù÷κ«äAôÂ(ñ§™Æÿf/ªÇCueõ&RùêdÁߎûøòtc¿Š|¬Xz °ˆâ¤NvÝÓu€RDótˆë¯eòÌ—@ÙZ´˜”w'“¦p«ƒ9»çZÀéÚ¡¢eìî,ÍeË_°ÉÚK¾.¯ñ°% %×°Ðb”oPJ_e~*/Š­`Ó‚Ô"¬‘NbÕy%òÌ7ÖõŽÅpæ›íóÍJßUݾeL‡œÚœ­©¨­” d6c”¨V'˜ Ȩ0O(H -e!¶i½kO­š:EÞ6g¹«™° 1é0‚)#];SýÔ8f?F¬=ÙCZeù?Èž®Ó©möÔÆjî<åHü¹Ôemú&\ÎïeÜbíÚ…ˆ–É1¾´£_‡èN#qÀ |æ[Xkˬ–ZÉöö5öJƾd5d\”O­ýWì}©;Ûû4ÀRvä^¨®‹3½ùmgzJ ?xÚ:•Îð%ëWN¹;µÉL:EZضJÜl»Ð±†EÎUÚÞå;îê -Ë2›£ñN¡r׸"l­Þ¯ñ¬m)¯l!´aÕªRe‡Q%ˆBB-±ç“€N²VÐÎ +AÌùž3Â×7¥%Cl!óLt‰1³I#Ý¥Ò“vŸ¼oœjc”ß'ç%_ªÜ(ôT¥æ‰“!´š6eQÛ(?nÚXR&ÄÛ,ßž4å <äÁC²¹clœ4*jºTÑ€%Ë·°Öê•ï-ëÿyƒ šå•Ôÿè! õÞXš¯[µn›{³HW»–­³×sçû©äûy+ãzU‘8îã1ÞÝ@:¡Î6—ñÊ öéßt¯N9\_†7Ü‚£¢ =úνü‡Ós߶IqNhå:"ÚDX9©uŒŒn3/.çw©ÿÏ@wJendstream +xÚ½Y[s£6~÷¯à1îŒT]Í>eSg›n¶uݧ4ã! $L¸xvÖ³Ûÿ^a.Ç“L°è;ßùt$)Ø@ú6‡ˆ +fX‚AŽ07Üp„ŒýîÓ߀ò#Pÿêãlôë%µ …ILcv_ò!²ml̼›³‹ßÏÿœM¦c@8:3áp}¼ºþ-·ˆüqñõúòêÓ?Óó±ÅÎfW_¯sótr9™N®/&c€mŽuR èpyõÇ$ÿõizþåËùt|;û<šÌªXêñbD³@¾nn‘áé°?¤ÂæƳn ˆ… F8bœBÎ(--ÁèïÑ_`íí¦k›~œÚÛÄjPÔÄȆ‚ Ë°¸€&%t£à͘ÝÇɳ“x2QyûGþ(Þú‹¹ãyIa[ÄIZÙ³ÆmÞú? „ùÂü߇²©ÕÒ”ÆPpNêî½¥•:îP2YU4úú±#ŠLç俈£5?šGN(ÀýÜÀ•(\žbÝb×Nq©Bv°rj•4MM@k…4î£Ôªd1¨ÊU_è¨T&e›‡ +œ•lX©q¤dg‹txG: QæÞñƒ†Áˆâ¤†Ú7¢ðûn8'úD/8{öÏÕùÛÖRÍãdÅíýñ~?JåCâ§ëN­Ñw›‡ï³JVoë³E'åß~ôÐ_%'âgÅ©¿n¬@ÙÜ“JÍC'uç¯Òî«Júm)““0ñLà::êÙ¦‰©ûrV›Hw™(?Žb¹ðœth rPPìIU> €_ çÉú¤žú¯9Õ Ô:J¥òÕ`äî½ÿ=ÆÁpr.•+–Þd{U“jfé;æ«Ø÷NEÜgh‡W04‡‹9ûZF œ97[ FÐ(yºÊ­æ}=çk›Š—‰»·ulù V«‹ŠúÉ‹kXh1Ê6¨¿4J«Ú‹ªØ´ µkÕbÝy-ò²vÓ•²Åpá›òÍ·¾ëºý,˜9íuK!j'%¨™ÍX69 & £Âl¥ñ:Aº F]zAû5|(uª¼mÏs_3aAb"ÒC³œ‘>uQÝP¬wÍóXöôºãCô>‚tÍž†B¡ó½*@ê‡R—Ýù›hÞɤÃÚµ/Óãø †ï§ÒØ@t¢ÑÀHÝp_FåÖ9fÙÚÓÑ}’]º“f÷M©¸’ÝÝ7úkç¾>ÍçkARU‡é×úûR½BµbëÔKÙ·{9hºöÔ{çîD‰# ôÏ;‡îЉօ]õ:4•îÔ&Å0y UõšÜªú.t¬Qß«TÚ-:õ•„CaYfûBrì–é¶Ãâ¿Ã³±#½°Ñ·¡J…„ZâÀÁ'½d­¡íîu®ìµ\$˜óG =®G¥%Cl!ó¤%ÄÌ&åísG‘ßNOκ\ªÜ8òT ¥ö‰S tš6Ûš¸U0~Ú´±(¤Lˆ—âì:i¶3pð‘m»[§fâ-7á¨*MN¾wßþS‚éa°mR]©Z»R§È„6VI* ‘Ñ]æÕý>õÿ/9v›endstream endobj 1179 0 obj << /Type /Page @@ -4392,16 +4368,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1185 0 obj << -/Length 1615 +/Length 1261 /Filter /FlateDecode >> stream -xÚ¥]sÓ8ð=¿"oçÎ`!ùÛÃS–+s”»žJ§§ØJâÁ±Œ¤ôëà¿ßÊ’;1% ɃV«Õîj?%“1†?‡ŠR/Çi€BLÂq¶áñÖÞˆ¥q["·Kõz2zyîÇ㥑'³¯á$!ãI~íDÈC'À;o>^ž_¼û|uzÎäâãå‰ë…Ø9¿øëÌ@ï®N?|8½:qIçÍŸ§OήÌRdy¼¾¸|k0©~ÂôêìüìêìòÍÙÉÍäýèl²>K÷¼ûú ßF×7xœÃ±ß0òÓ$ßÃ#’¦Þx9 -B…ï·˜rôiôÏšagµÙ:h?‚‘çGÞÓŽŒ" ¬â0E‘ïù¯OÜcgÁ¨PSF•[TŠ‰;Z|µZN™xe&7ú¸ Ó%¥aèu4Ûf4cÇ2ŠªBª"“p ]Š×¼äóG3ûÏ 4Ï“òvIU¶¸-A‚Áÿ¸yõœ2\¨ ío±B2år‘3ÑãÖ`neÍ23·¼~v!ÔÚ¡;üxõŒYJºd®R‡úcIÜ*£ÙâØÍìíé+‹¹ Î/òB=†BÏ"ÏjQT®à\ɵ_Iˆâ‡™ôÈä-·NnïµàwE>Ècé‚}[1©ŽÜ­„NâL¸Tº²†|<öñØ "~áªbÉŽóÄÁï3i4Qâñ dWCYô´¨¡$ØRWßêÉ{ bªà-Ý™àK—®ÔâXlójÒëfý£UJ úª™;çËsŒ×è™b”Ä8\?ÏHO.¬ï´µ®YÒ<¡>ÁuŸ-!üÌô-û‚±W5Î` C೤sfeùç ˆòà¹E<£ÏdÁÖ -mˆH‚Ò4XÓ´ì2ó“Nv”ó}.ðÒ@«ÚŒó’Ouþkxs,˜(®ÇÀ™2»A²Ü@ÓG3ê7&2àdQØm[—Ôë®H…•ÓÔzeÌx& µÚ^ß3º¨úQäP=Ĥ‚¶í|%¨±®^Ó˜’éÇD˜:3ƒT È8’8ÌlÔÊi4Å€a£%iJ~mÙ@œl[öðNC𲑵6¢8-yöÕ€÷…¾1i -Ájp†ÖÀ೬ ¯…’6hq„’0Mû¶ÉÙŒ®Jt÷EY¨qWØÜüs´ó¨'(&$‚0÷ ~„"·KÕ¼Á{fk?¬©¥ -Á2Å¡þnINcIò¼ä–h@r×{+Øë‹ÖYãú^èÜsñz›™€BM@%ŽÖ«Áò™U»ÇÖè8pô÷ˆúÓÊ’Vp7¡SÉË•²´úz©kžv±˜íòÚR@š(µþ$û8ê»ÓxÐLÂù$ ýÊ*ƒ¢ÒŒæ,%ð½k‰¸YQMjhsb}\BHs¤”XiŠ6r4ÐVMX‚¶g€%—Ê@iÀxv¯T½²KæP²„˜¡92‰Óû\³Uõñr$VÕ@Ž…>ŠÓij9fº­niÊKÜžSCƒçô¯©š€Ñõ˜U\@ßZ -}–C6{ 6ÞÔKëhä¦mÓØSDS7ößCø‘ µE ¥qY‚?^˜ˆ  oùqöCÆD\@¶ÕòÏ™5¾4÷‹¢)9ÚM^òfÝÑEM(]8Ü0 Ûˆ@º&³ü|Uæfqj÷55ÖÖ 4p1Ðé„~öõÑ‘þd8P,ðºWÿö—ÉÍgÛ F~’xÃeÇ‹$ÀÄ*¥•‚Ýk?aîªþ?aΤendstream +xÚ­X[wÚ8~çWøÎY¹¾`cŸ<¥)ɦgKº”>¥9a ÐÖ¶\I$!Ûýï;²ÌÅ@RÛ<i>梑dümÃóM?tBcöMϲ=#J;–±€¾›Ž]ŽA›AhÔûIçݵ;0B3ôߘÌ÷°Ó +Û˜Ä÷]ßtÌ XÝ«»ÑõíÍ×ñeoÐïNnïF=äxV÷úö¯¡¦nÆ—Ÿ>]Ž{È<»{õçåçÉp¬»üãýíèƒæ„úó +èxx=GWÃÞÃäcg8Ù®e½¶åª…üèÜ?XF ËþرL7 <ã –i‡¡c¤¾çš^ßu7œ¤ó¥ó÷p¯·=i?Û2×wN0Ü3``™¾P/4}×q Þ÷oY]œ†2&é|­ÿêͧ8Ž¹nÜçŒË-_5të¢ìo!cš¦&Jö›&˜Ö‡lÛ =ÏÙW6Åψ>Ï9JØ úB4;[¥3ÂkÊÿÃV<ÃÉž¸¢¦"'Ñi{!bœœ¬¬ì- b,ñ9òsšÑ@¸¢¼8ú~ÎìQBpF³¢™$ü' í¿$˜ËÁ²@e…ØG¤­`I…¤‘h‹ YÎ üªÙ¢Âž1M±Œ–Óf(ƒúáâ-@RìÆ6…ªhŹ 1^A+8ÇN¾³÷05wúº N ’²©CUFfŽ–5…Ò¹­¬  Χ1•ë“¡P;«Rš!Θ 5X Rlfºµ&bÊø4cµ“1çì‘Æ'1jhÍɲ¾t5 ¸Jâˆ#,È!Û.¢0™CÄ/‘¤)i爃6 '4‘|}D¡GSˆÊRŽŠfiaÇ ’2UÔ朥¯ä²­?±ŠôjV1œÅ€“Gº‰Ëå4Ãë4Jòs*W±›¢ç9‰Q¹Ån +i“´É!Îç²HV¥6ß,ÏÒÔ¥þü,[ð«0Fw£áVÄ®¡5‰3VqÞö¬S_´ê7ØÍÀk Y` ˆeɺR7Ès”¬bR©4Ê©{ÕªR9j¨ »_C]m¸1x–„“ãT.ÓÒ¹€˜fÕ +»R-†‡ì·Ï¥ƒa $S*´N= rîKù·J˜êA7¡$“å„£Â7­wÄß…$ÔÑŽ¿hÎ8¤ó.÷$y–?9~RIU{}$Í¡ð °ðF‰F»’XGjÙZþ…eD4ûTàï5_QÍvÚÂÕU †wªæq|S·„ Ç5CÛêW©Ïœï®ÛØN5W÷pá¸Û·Û‡û½¥Î´¹Ú³„¾¯ã>I!ütóùfYNVT8Í +¥‰¯/H9—»ww†©Ï´]OO5Y’­B»Av`†a8€ÁjÌFƒc0ׇû·ë•ãÄžr®Û…¼ÐÔ*×ßEÂf*ÿ½[4$Sß~wFJAbMÍÖú«4LMN–´;˜0Åå`U1/ç)özMED{Æó”ÚNÕÛjSu}¿‹ÕgãLÙv±âX[Wõ)NBÔe »·sÍ”KÈ8;è-¨”SlŠ†õ3Cû×–i‡–ý°C¼¬çÚQM8KXô]“OT˜ÔÁªyz¬¦Á5º[^1¨¯½¹ž©žmN¼×XÛ>ûuh÷tyà³}ø©XÅf?R)e›~ÿHóÍ3Ò±êÿ12endstream endobj 1184 0 obj << /Type /Page @@ -4414,37 +4390,38 @@ endobj /D [1184 0 R /XYZ 56.6929 794.5015 null] >> endobj 346 0 obj << -/D [1184 0 R /XYZ 56.6929 215.7523 null] +/D [1184 0 R /XYZ 56.6929 122.4687 null] >> endobj 1187 0 obj << -/D [1184 0 R /XYZ 56.6929 183.9675 null] +/D [1184 0 R /XYZ 56.6929 92.1609 null] >> endobj 1183 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1190 0 obj << -/Length 3744 +/Length 3581 /Filter /FlateDecode >> stream -xÚ½]sã¶ñÝ¿Âo¥'ø"ÉSrçKœ6—ôΙN'É-Rç$R'Rçs}w±R”œ¶3‡ÐbÉ],ö`×ü±k­ÒLy]™ªŒ©ëåö*»~„¹ï¯˜ÃYx¤EŒõÝýÕ«·¢¸6©Éy~}¿Š¾¥ÓLkv}_ý–¼þáÛ_îoßß,¸Ê’<½Y¨`ÍÐ}¦²ÔdLøǺno‚eɮޯºý¶iáwf’ê¹-·Í’&»ªjw+BèëåaÃtâàÿêÚºÿÆ\&ÃÚaq…hAOë:¼Ÿ ¨»ÃÃÆÓ+Û -¥[L+¥a™ Ü2½Û7Ÿ‰nP„4ø=Ëø¦îñ‡NúuwØT4ñà0WÝ¡­Ai’fEx €—•c©uX—­¹·a±cœ§nÿ‘¤e¿¯“1– ÂË"¹÷ï1pq™_Y\¿«— .¢®È¶‡~ ®ŸÈ”}>ôÝæ08è®Öé‰Á8­ÌužjÉäeձΫnÀBvA;êjñ%7Õ[Q¤Y.ÌeÚ딸Œ½“<Í$ìüˆúýºÁ:évCÓáf‰" 0”O=ÔV*;0&åàE€ üÎÝ@o<•=}âУøÔ´ô$§‡sšCGO»a«g´û H¸(›1.N/±`9Ø."wÌŒE:á{!Š<ÍçS[@­ê÷å6ER2¹³J¢ƒ³Ö‰¥ç9KÚŽ~÷õ®Ü£rÄdžN±?Ñ‚ b”q¨#D7Ÿm]Wuõ ²À“fpÐÕ¡]âÆ•›fxŽ_{=4›ÁÚÁñìx½à¬^°±íÀÑúzÿ¸…èrÞ$Oü“ˆ°.˜„ÇB.ëλm ªsâËEÊÔ ´=Ò í‘'—:…É qr4 )Ç€—»Ý —UY¥VN•WWÜ\OCëØU‘”› úuI>˽ Ës¨u[£UôÆS3¬g”IpÁ5óê}ÿ×ÛΨ/RéR"àâ.¶]è"-2iÆÚ¿Ü4äM‘«Ÿu:A^ðT©„Dç2K‚A"¤¼¨¿,!<Ö`Eì«èëÛò™w{z:È´s,=ü ‘ÃtU÷ÍQ®0ãÜŒVô-¿?ÁðæÂI¡xr·"q° R“\ñ± Ö=Èãœñ8Ï= ÙmÎÕqj´Í0A&ž« 0²!¦~ç\’¼ÀqG[˜åà - -îæw%Ï2'‚¿?Áñ 3g\A¦eü,Kø«ËtEʵôª31¿ ‰\¥…2¢ºƒc>1g¤Y?ƒxöOM».À¯8ÿμ …K„D˜ÊÆ‚Ô5ß3,s|ž[YæF8F÷ -u[ÞºþBƒªyDG:#GpŽ9Óf,G öqqŽ&øÉÿZŽ P@Œ;.eƒLÃÔ¶ó¹Ì²ìmšÈPOM4÷Æ„_1b¥>à Oyžûh哾8e²›È’“¿ôòžÇHàlÄPêx*r1bÄXç#FÀ:Šz7›DÉˤ=Ò iqšB‰1m08¸˜7”ÛÔsñC½Ùlmži4yD¡¬A2ø·½\qÒk€ùð@ÐØ,8¹´žF6nXr½§fójn¢°¡.3`#­:ùf oR×­t&ͱîSê?™ô10á‡IjðÝ°n¤F™:@­Ú¤|ظ‘• Ìlº²rÿ _ñØÚÊ}qƒP'*­(½Ú:÷/Tš>©‹B„ -í;@¨W¬êÏÕ+Xyݹ×άcQÎõÚÝ:|û¢ÕIHÕÌÕe«‹±Î[]À²ñ©\®ëIëÄî`Óóѳ†ç±fÈ,Ô6çY1¦OÅ‹Ý$÷´qߊ ²—°I]»íÍ›ÎI­sâ³^©—¬$º`%Ë&<õ¶Ê¡s^öçÌ%—àŹÌEÀšacd0`'¹f|ֱ̌ÁhC£}¡ÍÑ`b`0>í›ÁVŠ‡ÅQ;à‡¾|ôèaÁî;#ÖÒïúK3`ÃóPÇ(“Â^N’Å“NØ1˜DlL³YuwÍ¡ö±¯›¼ïWIÞ•žÄ•oÈéTæœ$ -MèzÃBÀÈEk“l Tï 6W ãÊÄV`àfÆê4OµÙ®µºÔ)Ï\†¯lrì$7s:TnúŽ`M;PQ–³Í‘ƒÂKŸÛ ŸÒc“jÒ°&~?ß4¤hV×1šé¹hVû–ƒkeºŽÜ²îàîïlbÉVØn‚ †…(&DäÙ‘\Pe×h=Ue™™ÌÝûÜW¾¼ÝQfÒ°û\î_íí+ÒwØ„—‹Y zPwÈ}à¤Bo^ß;-V㎵³õ0°)ÿRÕôX‡ôôŠ+;l1‡ÊšPÒã—»74ˆ A_x’ôV<ë½Lá -Ÿ"ò¿øaŒÃ -ˆÞzêçËcH&Ñ»´áÒ` |Ï@¶g’I×ãÛvŸAi@ˆKÞuƒ›³{:Ócϲ´(„wEgÇUZpæ‘ì9|²¤;P3ð¥C¦#õ»-2ø §·uóÙåd!ŸÑ6;Ð7ï>Ы.úe·q´öeèÍ/1WÓ2(>;ÌÙØAD‘¤W”°wxè˜áºÇñ¼6íæ9ÜpÇÝ8ãúªÑ)ž}SõºQž"øóUøY’'Îu6¡³@º$D|Î]è96'B( yBþv,·ÛCÛ,K«ÇÄÆÿ¸éJ÷Iýyõ†l63¹~A¿#¬ -‡‘‹ªþÜ,Oã"ìc"¿L>`ÍÐg|f¥3`µ̆èîÙÒýFG‰ÏÚ7vÏ@ùâóÁ!Ruh!#|3.а_r;ý*>wûf[î›Ó [ÃlЇÛ×.åÓ›M+Ãn‡gd ÌöÒãIX®Ñx@=zzÚs);sjûÒ:V{Hf¼EfÑE½,º¨—ù‹z™-ck‡l/é¡9*ãïP!æÎ}XøûÅœBÛÈ‹X,ÜðÃÀk•ÆX©Ì:æS€0ú°ì¯§uc˨°Fy<$Ã_ñFúët™K ,ùÆ1⟥gÉ~íN胈cŸÍž\Ø„ÎhÉ<¶á6¶l܈Ò%^ø“¼" -Ë0^ãîáì–µþ².ý`ëVQÐB›\Cq’e¾Ü£o¼Ïåæà(ͦ9BPQjå»0°?¯Ü%‚™4G§Rú¬Ëíi,S©‘r’Å¡è€>ÈŒö•K㥣ñí„P›¶ê¶£Îß«HéúçýüÅ8Ž¡Žç£K‘ß™,£ÈR®ë„Ô†ò£­Þ`X»‹žË~WR‹22ƒ-¬|RŽ7m34Þñ.»wéñ@šE@w¸‹ž}{º®õ~8ìœ7o¶á6g5NäÀN»ãIyÔ¢î=ÞljÝÇ ‰ÎTþ¡Ë™âõæ ÿnOÿç[ÔÇ+æxoPë3EŽÈòTsSx¦P¨RM9WB§Jób†õŸ¶›‰endstream +xÚµ]sÛ6òÝ¿Âo•§‚‚¦Oiâ´î]Ó\âÎÍMÛ™£%ÊâD"‘Šãûõ·‹H"åÜÝÜx<„ ìb±ŸÄ%‡?qi4ãÊ&—™M˜æB_®öüòú~¼g–1Ö·/Þ¨ìÒ2›ÊôòvÍe7F\Þ®_¼úéå»Ûë÷WK©ù"eWKòÅ7o_ÄÒçÕ¯oßÜüøÛû—WY²¸½ùõ-ß_¿¹~ýöÕõÕR-`¼ô3Ì xsó×kjýøþå/¿¼|õçíÏ×·ÝZâõ +®p!Ÿ.~ÿ“_®aÙ?_p¦¬Ñ—ðƒ3a­¼Ü_$Z1( »‹ë&ŒzÝÐ)ùie˜62› TSÔ–¥ +ºP€ëb“w-­ê±Üí¨uWÐ÷Økv²Jθ† ȤeR$Éô®z¤eŒEL‰)¦–cª<«¶><) ©™µZ'ÝaMÐŽ"g6KÓ!ñÛ-¬]I½x¬Ëêž~KWÂ,€­+±@δÞз cšâð¹8 Ö &©dñ²ò¨U]-ó»¦Þ[û·Û*ß þLe5škUWp.-kß‹]r¹\J²ã),X0«µtìÓª$q{¨µhóEE ¼¡/­eó~.â–å›ÛÒ£õ‹Æ !ܪ¬ð2BŒ >HhW¯§Ðµ©ÔØ×MK-/‡\Û‡£‡Ó¢šðCó‚Ý;­`£ ãa©dü(¼5;+Bì-Ø 8 +°‡ s +PhØ\~i‘Øš\¤2rq³!„| +o0YU·ÔhŠU‰«)ÖßÄpÚMìê´ir.P°vÀ ³!@[î?'¡RÅRÎ3¿<6%Pí,õß|G“HÅjü@eHã1fK%r±qzOÛrµ¥¦$£M…~R0±hÚüТëXj£ƒºL±Èü|Ûú¸[Sç—WÔ×®†Wæ4ëªR¦®íyWcÍ»ª ©~,ž–óî*]<9O¾Ãš ?pWØË…2ð÷­3nÁÅlnO.‹ÛÅú ¤\Qçña;Çm絡)VGÚ‚ÿ«®Šæ;òF´½o€·E7 ¦éPŽw»@/¯Ö^å8n‘íÕ¡üLìH‹"¤Fï¤éÕ:î<æ¦>VhX*±‹rCxkh/ÏRÕj»u:#{ЀÅq"of|]’…x`G $4PeŒžûcÓã)2å¾]$À_gUWÛ”¥I–WÝk^u;¬Î}.¿ äÆz«2ÆSð8giwX§Ä“8q‰d<P¿¥(£À¹<ø ¡²ECùm1åÙ,kÈt¼k»ii¹˜S¹ˆ +_ʱÏ]+~݆mž<Ðí3 …¸<ÄÅnâ%¬Û•J?;éˆï%x^– +)Ƕà<ìý!ßcàœáÆ)‰éòX³°MR†~7ÅC~ÈÛ)ŽD’1¥´øŽ4¤‹ü3BT\xƒoUëbý=² eë¡›cµÂËweû{=–”Râ´žg/@H[8¬^‰ÓXNƧPs&¥„ÕϘD„uÆ$–‹„Î×û¼¬N}¹bB?C; MÐxòÄ0^vHœ HÊ3àÚùÃäEµvJ­½>ê ®¸;>…„¦sì:[ä.D=Ùæä³ü`XžG½/ª5hM#Ëv;¡LJ–õ¾ýËõ?&ÔHfL€EvɈ#àã.¶]™Œe<±Cí_íJòÇ6óYé§cÑ ŽA½CCG"Â.S…¯JèÒ{øA"‡îuÑ”½\¡Ç» hQÖkÃþÛ'™vY¥‡àPµ¥ZÍ€l°h@&çlÄih@Ëmsªû®Á6CETèðÅ´\…®?¤L&JÉSp™ô »9¦A‰sãOp<í„À±æÒÒ† GøÛót“& ª32¿‰T³ Jªˆ Y­`ËP³~ñËw]iü»‚T>R] +P?bRþDm/KEÁ¿sk ËÔ†Úã©æÏ(¼mñ…ëòé„Á9¦ÂءطÄÅMÉ´áÉ-Ç%( ÆŸ²ÁÆaŠª8tЫ¼qi¢ôB=5ÑÜ›Pa Ĉ“ú3’É4 Ñ*$}qÊDT–¾i<%¶‘ÀlÄHÒ‚80"¤ùxz9oÑÜ&3¨ä,Ý€sJWfOj@Ø… + Îå5e¿.é\þTìv{—aZC>Q(BЇ´at(vº0 °„$gÖPËE ‡C΢ ԨȵQÀW° ö0ЧÎM[#u¨ÀëÍT‚ãgb¾"&™>$áÄ$5Ó—¬Žåèu +ünç[N&г«óµ‡„)B­ãTk e B½¨ ÕÕÐäø•f©•fèø»ÚU9¨t§úýáæ3PsÝøaó¦êÀX”mý‡·íæ>ooÜ‚“Ež7¸ëŒÅ,™òÕ¶Xö§`ÃÓÁŒ¥ƒÓ§ƒk‚üðtP²TòlHŸÊ·Iþë"¾ä-Ý&ÕÕn°7¯k/µºíNVg¥§2 9|òÌiEŒ5/½˹âãþaVx–™ôÚi‚öPt 3‰§üV¥ƒËg3ðmC·ç/ö® +¸Šf4h·ùh»×ô}¤$ZeÕ´‡+³8®(çÖþÛÔDj&^Bœ4ýul·‡j½òf \­ïfBœNe”£­nFú0::ŒÍppF_6áßùa³¸èo0±Lñ,½T)Tˆ˜AÅí„dÖ3}7±ìf\ÆSÒÍÍà´2L¢ä:´ ‹lR`€n%âÃÍI+Q) ÏYI„uÆJ–KuŠ}Óæm æ¼jæÌ¢qj­=ÏE‡5ÁÆÀ`RËR#ä2cbƒ1– Æ„ +ÃØÞ`b`g0|<”­«‹£ƒ<€›ü> w öóÔžXE¿‹/e‹ŒL» +Fƒ[Tz”&žœõÁ$¢0}Ù„l¶Eˆ}õh|X%yWúWá(ΰÄÉO…\Ô]ÂB,ÓòÑÚ.vªó·ô\ÙØê ÜLX‘̘.ϥ믬êÀÁnœœÀ¶AÜ›µS F ²grïiÞJ’«”Ëõœi‚"Håà9ÂÒ)åaY ªH”o§ +)Že}Èê㘙ŠcYo–xVÙúãK +·*¸yN3±LËè^ +;èBe£Ð¡RÞ“ëïçèpõT‰1»CÞöE(©Ak´Ò}Î/Çêi:ìÀó,†;É}ê­U¼mî7eQI¨RâªÄì#=N»Í[ê{Ì+ß"õT WgÖ€Õ”÷ØÍ°Û++Þ|‚Û«*ÌÓü1Œgw`>?6ÙðB7•| !?ÁIm~<³á¼l°Xƒ;VMÖÀÀ×aкl°ihˆ/8\‡ Ê—ÓçÝÍkjÄ„ ¨ÏI÷ÿ’ù’'‹®m#¤µÿºÚPÍtàZâYdÂGY"é£J‰‰ÉT1a]àMLñyCCÈÛ¦ãG1ÊÊpq?JÕŒ&‚¤>zˆ5qŽ¨¢D*"â©©ñqö ߤ3¯pY·ÝõeÊQG©¾¼È½IÕ›3¥K86ZÍêPÞEQb¤±R |îa!ŸãJ üU¤ÎÃý%5ÞGºÛá/㧺{:/òÿ¡XÑ-<=¤”L€ÜÍɤÃ:•Ù€§+ê°žáät¶³Î|ŒTB÷Ò¼ëH.G«é>kà,¸bF›ô,É锦WChD½§0‹ß^¿{qûêýp¬@ 2•ãþŽœA(¸‰<Vî®pàáÂ@^o‹ò³Ïɺ|Ƹ츃¾~û†ú »­WõÎÓ:äÝ©ü +s5“tŠ/ÀS1tQ$ɺçZ¹w ²;+ͺ'ý#¼l-«ÝS÷JÀ_qc?Qî'ð¾›NW¿§‡ù)B¸yÐYè%yb_í:¤‡AÄçÔ#žþX¢ ¥Ýã.ë‹âýþX•«<¼äñ·"±ñßïê»ÜO ¢gso†!äâCß Uƒ/óÿù=qÿØŸ‰3g™> >> endobj @@ -4465,30 +4442,27 @@ endobj /D [1189 0 R /XYZ 85.0394 794.5015 null] >> endobj 1188 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1196 0 obj << -/Length 3362 +/Length 3429 /Filter /FlateDecode >> stream -xÚ¥]sÛÈíÝ¿ÂsOòLÄrÉår9yrbçêëÅnm§íÍÝ=PâJâ„"u"e'×é/°À®H™’“i2c‚K‹Å7@‰óþ‹óD*‹²ó4“AŠä|¾> Ï—ðìÇ3Á8S‡4íc½{<ûˇ8=Ï‚LEêüqÑ£¥ƒPkqþXü:QA\…pòþîöÃÍŸî//R9y¼¹»½˜FI8ùpóó5A?Þ_~üxy1:“÷½üûãõ==RLãÝÍí­dt9BôþúÃõýõíûë‹ß:»~ôgéŸW„1ä³_Ï 8öOgag:9†›0Y¯Ïd‰Œc·R=œýÃì=µ¯ŽÉO&:H"©@’Q%:—²R!)•IF^Ê‘“²ÃB)o¶fa¶[SL—ÕÎZDQ$I|Þ§üb5Â@Üc@DiÄJ 9¸Y€äu4i7f^þ†‘)ÞÀJ&&ÝÊà£xR•mg -Bë¾n A¿…IxIÍ––.á, Z}.«ŠÖgLȬËÎSš™¼'ô„6°Ó±²°‹eÍÛ:^ò¢(§('ÔNÅ) -@€r:NW6u^‘1µfŽ·tÓ,èšÓåÙ~%˜h7MÝ0×X„“G»<+Ì"ßUÝ”-]놺†®"±°üã5“fi„Òº½»½Fñ/Œ›-He*FŸ6³>Öq3óX(•mÓtÓÂTf™£D¦M]}}alID±ˆOsá±FØ[’‘ˆÔÇ‹,œì¶ ’XƒJìU€ˆIÍÆ07kSw´Ž*C¼CÆíbÉD¾j EÜ5Z®Ì“©øõf—uK†‰ y]ÐvG ÙSJÄÞž( þÙÔ†Õþ\v+§_¶©MßÜÌ—yµ+Xßè3VÏ 6ˆ‹W3"xÛtŒÒ6k†è –²÷ˆ¾íÀûZ)8³2Á’Íö·(’W×ø÷ ?ðç‹,šüó`ñÓþu§)ö>~z¸þô!o©-²žfá<\¿§‡=†í³¼ã«5@˜™ªy~b¯m(…rà#„O±Uh | cS²²T… -„„¤žç ´¢D»WÚ.ïl,󬼂C˜‚ÝæλSçâþºiÙ÷üÙæ. -Tìï3Gl³©J$vÌÈbL·ê•â¡uÂÈ–•JÝBŠ›VMó9oËâeùË 3}š5ÂÂÀÄâ xbÈÿVƒ’Òm»7#Š”*€RË+r„åC5†Òšñ)³6O€ÚÒ6ltzò”We‘w¶ö€[ŽÎåÌdz1© ·tf[ç6êªl²6ݪ)˜VãI±…B é-ÒCÅ}àõ8LÑWþvý Š ‡9%®¢%t¼Z>-`S Ût†tÁÌ(!!‘{Ïú»”„ñÀ¸ÎŽØ{‹Á}—tY¨ghðÒ¹°Œ!Ři»*„h¡ß¬À²P¿€IG&?ú;ÖÍvmS',U‚Y¯”ìo•·ô 2‹Ž–˜†œ|6|Ž]Ým/ôd‡…*ïˆH¤S)ƒ0‚X(2þ4¯ç+’iÊÎMÒeÑn6Æ– V“Õ*ÚW0Þ1¾CÎ åŠÒ/­ æØ–([ÃOw›þÖ -œŒ‘J6¦’­bV?Ð3’…iFBL¬ý ÛಷÙW¸Vžn{ÄlS[™´åº¬ò­-Ù|sàÏ9?qï?—SÑ*áF¬Ù‡mÇ€m%ï!" w0òµ)†µ»‹â{û9È!ÁiôZ ïcä«çTk4Ç™™¼Û¾Œæ Ò@æ4k„A4W2HÒ42ò€Qc>¥“Ui¶”5綴ø¼*ç+‘]‚¬ # -MöIÎ$¨‚íaØ£¹D9+YÖV+»ÎÀ -_†žO54áéAhÓµHê~ -B^K@_ÍX± Rh#Ý RdÿtD–X‡.$EˆJV„òùÜl:†ëöÙl[ºA·Ä+Pr¨î¸"S½ãÔc²%q ³ÌEкãŸepŒ®»àŠp/¸Z‘FÔ—¡:(ɨ¢AßÎ$ÕJe½Ä»x²°¡–¡£êéÒ":A žõuXœ¹‡Vb¶äJ¥ ñ¥#"ú$0Y¢92»º0Ì@>’«ãÂÖ:ôÃÝK&8ó"„sT¡"Ð*‘ßU¼$!x½ÀÒ¯ç]ùd‚‘­¦"GÔz—Qf~ ‡µ0¨/„>ç]ÓTƵŸwÜz Wqœa¿ÒÜô±Ž‡+eÍc×­¦õÖÔ‹™|”‰'·÷X#û‹NöÉ!£^“i,³ïsú8ì4q¨]ÅpXÀBE(SÁ/]^ŽÑÕA¢„C™¹œì+· -Ã6'áf j·ÿ¾ºûxysÛÏ|4‹j™AóäªC—ô9bͽ}2[¿—;"ˆR}Ð~S$ÖZà\ú+ß*±£‚*9'ËœJˆ¾4ÿ‚çûù—Ö¼ÃØDåT'êÛƒÕ['m›–awÍé2_åõÒЖ ªÿ×ô„§Èi˨âée6ùÚì˜Æ~¤˜A:·q =á¸ä“A¿#C= MUøÂgÝ3“ãÉ í‚íaÎ cmë‰}ѱŽH òZÇßa®GË’H‹š³è´Ÿ÷±Žû¹Ç²ñÎ`ìŸCž6õÔ|)»—fÈ4“§yðX#L ‡vØ¡‡\<®\ùF£&nÃmWбÓ@Éöß4¡ u7šš"ðt¾2óÏd pg›Õ­Y74†îÑäŸÝæµ›ò•Úˆ!ä  ]Ž¿t@uÃsîö`ÈÐ?¹`açÊf l­ß³Œ·ÇíuÞ+Sä>Ö {pX4…É+hH¶Õ - -É0=½­CÙ¶o™@zb¸í±¡×Ý'í•H"ô%RÆâ CDí"i*·S£ÐŠè›ãZKKñÞÕzýàâØÙÚ–{™q·P%-¸\Ä`Lñ­u¤i.W˜5Ú…5±$N441ÖÈ4N’IUÖŸ1cèÈ鸊}¡l•@—I;î–«Ž¸÷q$€W`q(<óÂw C,Ë„­g–íÖCbQ¦;KP;/>²m<+JK?– °ên¬£3Œ3GEÄÂÖÜ°dKL¸’tíŠýÜbÑm.àüM=‡=¶Ü« -@ ßÃ:¦ƒÐ¨´Ð6×N]*ùj • 0M[°ÂnùXÞB†µ¹ šà6[¨ÁßÐmc7Dȸüô¢•P'y#^™|ÛÍÀ<§ŽÒX -ÝC"op`‰&«fc;Êüp[ì¶ûÜ×5Ës8§rb™÷¼j9ˆ¶» ñ‚zØU™†ª#=h$öŸ8Üç7Äüø`ö›X{š ¶¼g¯}i¥T¤©þöâ„[Í(M œŒ#÷í†3Ñè¤:ƒj]g~RíbäÁ6qh™¹ÎÀ‡þLs1Ñ€$ K¶]€ëp° 6Çqða%Ñ@c·ÉSižG8‰’@„:éÙÇè¡tìË«ŸBPè0}1pCjr¼º‘°?Ï[>™­Ž2íRàùk ”TX* ¾ñø·o?˪™yóﳞ…T¦ß Xé¡>Xù"D](ßÎÈtÂáÙ§;Å‚Ë:‡¦s»GqH‘¹>£O—ïÚh•¾O&¥»åۻǛ¿LøÇδŒcÃ!â::ûmªü‰ýô 4áø…ˆæ,Sh<}ÐÎ0tí°0Žzb¹\Zn«–‚²i´D‡F¸Þ­gÕV+DΆÉþÛ–3‘•ý´Ÿ‚¼¢*ÚbBÌ0:z - ÿðÀ}Ýñ…·Þ¬_¬ƒôiÜ%³=Þ>åºbq_|5uÝÿ]+N]g?ŒP¾pñTÞö[ƒÃÜçüœÂûµöû¸eÅ f{Þ¨€iªÊUųѴ…Vœ†‘‹ŠaÄIÂ@(õj¨ˆ“ÔÍH0†MÒ“Y%Þ7]¬Í`©õð;¹íì”ËM°Z²’€+ö‹Jx½Â -} Š ífû·0Ûª„p@Ó9 ÂüaO óÛÁ ´¼ÜU9¿…_Ê÷œa-eñºâ“?´+úÅ ˜Žé}Á{®Ø’Uj¥B£Wåf£ð瀸A `’¡g>iz$OD-OU!ƒ0t–`¾lÊ}Oû”¼þ<‡}C¥,†ÔF4ôGV·ÂߢEc>ÜÿAŽ m#]Ž›H%þzk¤Ù}Jÿ¿$¶ÿLƒXë#k”BÞÕ@„™ÂIõ²?ß΀Ô_²þ?~ÁÞendstream +xÚ¥]sÛ6òÝ¿BÓ'y&B  Áé“›8½ôçÎvîcÚ>Ð$dqB‘ªHÙñÝÜ¿]ì‚"%JÎÍ%3æX‹Å~¯ä,€ÿr¦c§a:KR%t õ,__³G˜ûéB2ÎÂ#-†X?Þ_|ÿ>Jf©Hã0žÝ/k#g÷ůóX„âVæo?ݼÿðÓçÛ«ËDÍï?|º¹\„:˜¿ÿðË5A?Ý^}üxu{¹FËùÛ?]ýåþú–¦b^ãÇ7ïh$¥Ç‰Eo¯ß_ß^ß¼½¾üýþç‹ëûþ,ÃóÊ ÂƒüqñëïÁ¬€cÿ|ˆ(5zö /iÎÖJGB«(ò#ÕÅÝÅ_û³îÓ)þ)m„U œŒD¤âpšËR$RR¢¤ZG=—C9Åe…\ÞfuѬ…}*s{xf*‘ĉœ >ھǚØ?ì/ÃT$ʨ1÷+ ÷–ó¶Ùm/¥™çüÞ,éiëÎ7›èz>0⮵xŒ~M»}²[¼aƒ®+[zn¶å:Û–×Ö~Õe³%àÝÍÝÝõ[dÜŒRl)Eª5‰l³±Û¬+›º}s¹ˆd8owù +  ˜g-=ïÿ|ýO‚:`}›å‰Kçp4U¼ÔÙºÌée·)²ÎŒ<Ág[>Ö–‘ÿÕÔ¶…ã)3KÞ§ÙðÂ}córá<Å¡£ø· -bIE\C€…àt€çÇqD®,ŒHz_+×ôö¼*Ýaá#¼!ró6+èmx‘RJ¼0 óK¿}É„øgæIÀm‘£Q0`ñp‹?v嶬÷™8òsYUÀï.6+z^Ù!ILÀ!Ú•àÞÎ>\ʹõ¨öë*Ûµ-à QBAìºéplw.Þàˆö«K`ñ2ÛUŒ÷”U;Þ Ž$ƒyLŠ©D(4;À÷p?ß“ÞòHËb#Œ€¯×ÝI¬Ô"UJEYûÏè^C•zn´!ö¶0ý†FœŒ"PƒØÔÀ©¶Ïek‘Aê4šèZŸ04ÂD¡§ìÈî# „ÖŠ‘I˜i·.û‚‹ ]"uK›wô^ìH1CÅ‘‰ã±”uÙ•YE6?oj¼¥ÇI V Ê-BYGO6&wÙ¶Ûmè¥+×–QkþEØ=ë†xÈ~ùv÷Ðï±ôNH¸)èò¡ëaûën0QçÀë´è±›­]ÚíÖ‹G”Ä#/Â]€¹>»5AÀØ $BGq<¦ÀéŽ U&õ +i¢yU¢®Z÷²±¡„_š)º‚,Ì0Êêã¼]—]¿Òƒ]òñ"(Ì4õHZ ƒeÍÛzZ²¢`{ +fW¤:¿¡x¡yéjm¾—*4àNPè°} +@»ËæIäqno-¢EfF“?Ä'+ëÒËhVóÒÌ-8nÝ|º¹Föœ³‚Ž8x%Öb3åt¾i:ÐøÊ>:=[4uõr$l !XýóTôXdŒ„MkÊ0Óq‰Qî$2¤‘‘s¶½faÈíÚi&Ž;ŸkðÆ„»Á’¹ÿå]KèÈâ®ÙÐpeŸlÅŸ7묬[öž†m~AÎ +nÓÉS‰XFòä|<]ásÙ­üý²Lm†âf¿æÕ®àûF½ÏÄ©[ð¦é¥m¼ñ¢3¸•{ÊÙžÞ”U/{±²â‘Åö·0Tï®ñïžð—Ë4œÿí`ðóþ=08ôñóÝõçõ’zàáÄ:mÈ{¬R­QìàÝöØšëThXæ<=Ö#k+¡“D ¹C«±D +“ùª´[òš9€- r­ A$— ÇÃL“›Éx Š`îhÞ‡^J¨¤†ïd&ðVôaèlaB‘&f|õ ºÎ)3t!È_Âx±SÁ‚L y ÍÀH‘ü×XpÔN¡ IA¢¡,Ïí¦c¸nŸí¶¥—rIOXÉ£úãÊ4_PŽ=I~¨#aÒÔ[к™¢ŸypŠ~6®{ãŠðÀ¸râË ŽÆVƒ"ÔíTQ¬D%¾4¢’,CF5¸K‡èxN×aðÁO:Ž¹+Q’lÄ…ŽˆØ;1€IÂÍ/³« Ëd¾êÐ.lB/ÐܳPcc¤g!ë£P)LÜþ-xÑAâë…¬!ÃX1ïÊ'+&¶ZÈ,ˆQ j.Ȧ‰ú^ ÆÂp}ä9?6Me}úù‰S¯æ*Tˆ‚è•äfˆuÚ\õXNC5&`RkR‘D*ýß”’XVš(0>b8 `!"T‰ä®®¦ÖŇô(Þ'÷‘[ŽŽaç“p³†µ›¼ûôñêÃÍÐóQ-ªe퓽ÓgjúÂ(ïÆáŽabÒo²Ä&E ÜJ¿ð\%fT%g$™ Ö—ê_0¿¯Ó—ÈGl—`•£ão7V?xn;· ›øgF|•Õ–¶Ü7:p†[‰GhÌÕËtþÒìx}I1wNUiXè Ë}ÄŸò„øMUô!„/Ï,»g^Ž+'´ ¦‡'ŒØ­Çû c_$œàve èø·‹ëÉ°s–4~%½ ÖräŒE߃ ^4õÂ~-»ãô2*IÕYz¤c +Æõ Wç0#¨§¶/´qîò-¹ûèXÍSûV³!”ë†@[s)Û+›!ÑÐÜet·j× …!o´Ù—vÜ8@¸Š¤¨¤€‡áXÙÒÃD{P^ž§/¿y3á*Êv d­¿s„ŸnSHAP%¯ˆÂëŒ,x,ª¿d¤"Ûš0‚äü¶ibÛ¡¤R÷äxÛSÁ]Ü7³Î)N2ŽdÐG)³3Ø÷•Ü ·L]½(p%"šð`n%ãÚa|÷QÞÐì`¹q²å?f\l:/9PD3L–­õKÓ02õ­°k” 'bpTh,b|#‹HëyUÖ_ÐW˜°oÃ(f„p±“†ü’vÜ=®:šðßc1Ÿ@¢ëëqµ ¿ßðXÖà\ü8ƒÎ3~Ac€Fý~¸ß‡)—ÀãbEÉmCbVÝMe¬ûÖ¢ïEç>ìû̾ËMÜu#®ÑâÐ].5öslHs–:l³ï¿Ã¦ÓPç<Ð6×Õ[°'ÎO'¬\MÀwÌkÚ-›ÊK[ð­Î „sÜf Ñ÷zm܆YBOR/Ä+›m»Ï…_i*ú„¼A÷-h6,á|ÕlìrG>^ûf­ö}5G9œÓY9p®L{VµlDÛÝÆ7¦[ëãÔ@¼‘Tu÷Í ßxëX_øÑ×çR7A ù@_ëËM$Qq$’Ä|{XÂIf˜h$£pܵ™î¬ËTÄøS”àÀHì…¨T¶ÔSÃqšb1 ¹Lžãš: 8'—¦'¢T©Ú8ò›<•öy‚’P ô?g` s|(õ‘‰» ‰…6õ’£Zûº'O«¯ùyÖòÉ\`”bU— —^CÈTì"…9Øråw(@UóÐË¿ÿtA%*ù†ûˆb3¾qêWg‘øS± ×ôôÿ"mÿs=•ˆÈ˜Eë…2°…ä«ø8À-ŠŽHÿ/¾v=endstream endobj 1195 0 obj << /Type /Page @@ -4501,31 +4475,33 @@ endobj /D [1195 0 R /XYZ 56.6929 794.5015 null] >> endobj 350 0 obj << -/D [1195 0 R /XYZ 56.6929 387.6589 null] +/D [1195 0 R /XYZ 56.6929 293.8263 null] >> endobj 1005 0 obj << -/D [1195 0 R /XYZ 56.6929 362.5676 null] +/D [1195 0 R /XYZ 56.6929 268.1652 null] >> endobj 1194 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F48 885 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1200 0 obj << -/Length 3390 +/Length 3311 /Filter /FlateDecode >> stream -xÚÍ]sã¶ñÝ¿Bo•gŽ>Iàñrñ]éùŸ34ÍO¢,62鈔}î¯ï. H‘’®i:½ñx´\,€Åb¿I1ãð'fÖ0®œžeN3Ã…™-.øìÆÞ]ˆ@“D¢¤OõíÝÅ7oU6sÌ¥2Ý­zkYÆ­³»åÏó7~ý×»«ÛËD>OÙebR>ÿöúæ;Â8úyóáæíõ»o__fz~wýá†Ð·Wo¯n¯nÞ\]&ÂóeXáÈ„·×¹"èÝíë÷ï_ß^þr÷ýÅÕ]w–þyWxß.~þ…Ï–pìï/8SΚÙ3KÙg?±J§—„+»Ü4LÎWH´*-–}ˆùô2‘—K(‘´Kã…‡ÕXsc-ÞQᎫü×")±ä¥mÊh‘ºìôæÕÄîÃ\H1aÄp÷k¨m0 - -«çK§á¶¼äa¬~l˺¢Ñ¢ÂraIMù°Ûä-]<ûÊ©êOM½)ü½ú»›Ð!=EûòF¯øñêöRÙŸ.…p~ÌÜ…Y1´ÄA‘XAå¿ uLk˜Þzþ92YWGïVƒ1hËõé»íS¿ÛŽÊßmÑ.ÖÉýfWŒ¯–ÃÔÔžÞ»£šØ|pµÊ€áõO‚»ßÑ ¦vƒi6ïpáŽ@à*U¤€‚ÈNö0 öÔVÅFï€IÊù‘*|e°cäç,ò]ã5ö ®(•ý]"²¦ß¼m‹‡Ç–"ÒïH*hf•êñ" SSï<°`µÿÅ."Ë–~—å²úS€×ùS˜B„uÕ´ÛK;ß-‚Ö»xòå²D9{φ«åmNPΊ.êþºy>`ó–.¼†ö‹×Þ5\á3ÈO¹,h‰à óàóð ãù¾™àQ7rÒÊö¸Á€ ½ãj׬“ÕUÑ$u•4ë]»¬Ÿ«C6$Äe©¥;ÉGG4fdàþy -ñOË'ó7®” -Í0YhþPD%ÅâsÙ64´Ü„ ºU”O^9pìãõ»»«Û÷¯ˆ œ†ê°Ò²;`€ëSy%‡‚Rm9låÕK˜Eµì"%Ê çmÙ Z¶à ?jßN—Æ1Ó÷GT·üü…:a¡0ÖbŸ_MTãA«Ï„ZÈe˜æ©;­^}ªãúÕQùÞ\§Ø,“Ŧ,ªv”îApdS“ tT kR8­CȘU–v>áç< ËK1¯À9Mj}·ñ›â˜önD„™dÊaÜÖ< ½]$‰kÞWuç!ñ 6y9œî@[Rkçw—T“tOgŒ LÈûî(tÜ÷-Q`³³Z¡ÁZt)=ƒË›P6HߵË9P±Š=%t¯´žP±Œ9%㚘Êp9o‹VëC–Ûç:¶ƒómÞ4Ýˤuh컊¨¿ù®]'Õçeý—Sa-'‡â›f[Bå';»ëº¾ÃíDÑ,FÑíj!· &RbJX²}Ò5ˆßÄ.r ‘­È—ÇRÂNžñù}ªF©ü½×M›4-dhM[.ÆF©ÁŒlªO3ÐQMp04JtòY6dÁç>Fôâ¢O‚ˆI0@”ø†ÐøkQ<·+(žÃoï žhUoÃÔ'J{ÄË¡ð¾ÅGa1a©˜ ì_#ä ²°IɸÙÁÛ’²]oˤËðˆjýÞ6ä'øêàLFܧ:~ÛrŠ¶ÒÂR~¦Vvò)oÆÙ1˜ºKõi6"ј <‚‚ÜØð“*½Ï&œÚ×/¹¬e&㮋aP?‹ùuKó½G d¸¸dX:J -,ÚÃ'´ð¸„}¶%…nÉ&(Ä–rúi·yÕ€ -€ßîXÝÔ÷¤ÂHäHh„çD PUŸADúÀuµ x€Úá“U@þ’Í1ð9î¸62íÏq%HýÄ« åôy%FŒzÓègÂÓc 5>XTXýz5L})Ïy©w1AZLbë^\ÑC½kïë}Ç`t¾ArÔ†³Åwl»f굞L‡ûÛú 2iRÛ‰7r7õßìM~ĹäGB•n¤ §-¯GuÂò"•·¼²*òM² µÆØÓfÀ!åÓ,tT< q -V‹!׫ á9È9múaÝöºÉÐqzc0±Bètl[&TW ‘kz^V(7šA¯øõãšèH{Ëå»ð.ßiûî WÑ®kHÊqeHõ©SbX2b)A%£±dl¨|´ˆ‹[„&ø·]¹¯ßxìÞÛzšMqï;!^õ•³Âg_çõ@Vø†ŒMÙä¾}È_ºPC»§®ÓWÄúd»Â^_µˆ–º: —üÌÙre 8ìAq£ÿ€šC€_ÙÓfק:nv•7;8B ‘8Yø -réSNšÓ tT ›¦LeÊY7æz<€)B¸4Æ*@•a(¸z€,‘x]‡Ç|³ñ­é'd¿ž*ä/€ô±‡b:1å››×ï¯ÈX JÒø.i`,cƒ“Š¸“rþTÖÔÏ#´×(@“F‚Ú€„¬Zæa o]Š£àuÂÕs>Ø(ß<ç/M\c[R†#EµªC7©9Øu$~x;ßu™ã§º]Ó±‡ïÐ|‚[v¤]»fù’-!Z=‚ÀÚþ˜"+É2ÇÏô©ûT'9R ßxôW‰0êô¾ÕÄÆCcÍXŠM˜ÁΓACp1ÀŒR0#Œí½þ§vNÚ9ôrØ›±©2½Ï¹ÒÁgS0Òy\j ¹ ˆœ³' åÑ~Æu±‘e\nGA\0u¹30‡ä7ÅÕ|±Î+ÿm8J _ã¼Ù*– -ÈN”Vÿž†·÷3nû÷é“þ„‰{­‹|}Œ]MäM31jÓ)Žß)Ù7ã>]¤:ÃÃxµ€ëÔRÐ@6zÆ{!‡Â…qJ½q¸]wCx; =l ˆó­ (Ãé:J¼Ú?…Õ½Âp5òV”–—N«Çæòç…ÏÉ¡‰íEÝy„÷mFÝÛª-Ñ/x–ƒ©?¼&à½wAô6˨ޘTa¾?<üúâ~»†ºÃì4NÒ‚|ÓÔÉѯ" —Èt¨) ±ÂP"~šäNå‰6ËbžHK|¶6Þ/5,3]?Åw_÷`^0þ»Í¾v@ ¿ì”QOd¨˜ÕÝ }3?Ê•úˆgÂ/mñ õmÊEÙN}Ÿ—1+yöpy“¿/”|:O@ 糧] ‘—MHÜâmSÔ}3;l;Ýe&‹ß7ž¾g Quÿ’=dtÓRÒpíý×ñç*¦WñÝÇþC·(&-»lØofǾ„V†i5é‹øììÇ _ú•ôþr¸deû_b >4æP%I—E¦ð :}‡?§³þo¬@Cendstream +xÚÍ]sã¶ñÝ¿Âo•gŽ ñE—‹}u¦çkg:i’Z¢,6©ˆ”}î¯ï.vA‘%]Ó›éÇøvû ˆËþÄ¥5q¢œ¾ÌœŽM"Ìåtu‘\>Á»÷‚q¢€õ±¾}¸øæFe—.v©L/æ½¹lœX+.f¿LÞýõíß®ï¯"i’I_E&M&ßÞÞ}G#Žï>ÞÝܾÿéþíU¦'·ïhøþúæúþúîÝõU$¬ð½äŽ|psû·k‚Þß¿ýðáíýÕoß_\?t¼ôù‰BFþ¸øå·ärl‘ÄÊYsù?’X8'/WÚ¨Øh¥ÂÈòâÇ‹º {oý§cò3ÊÆÆÊlD€Rõ(€uz™§ +^¡oçW‘²fÒ. +þ]W • =sz¬ò¦-6;¤7W‘?¬ö¦hŠÍsÀ|)—Ë0Zͪ·í`æ»·7?¼¹vRü±-ÆikÆ óì–YæÏEƒ[rˆ„ˆ1Ò3õkb’Y1Ï·Ë@›šêdò°ð7iõv‰ÄÀV·›òéÉS‹?üÜ°fÊ|Ipµ]=Ô题þNÓ•ÕÞמ2‘”µgª~.geõDÃe˘ÛõºÞ´£\XÒ9@ýâgÀ_~1x1?VÓ¤_Î_Ön‡G,!ô²(—ÅÞ,ÓºªŠi[ÖýFQùEaì¹ * k-õ< à–7vÈTaÕ邆÷õà9§9Ó𸣭%.—Ō߽â á¢¯áNÄ*K$,+Vu‹b ¼¾%(°µ45Œ–ƒ^ŽÍ+“逳lêèè|ÚÅÒèŒqcÏ}$¬¢­)d±SÒvö&SÉ‚€· / xæøݾÂH½¡gÓnw_½Aаæ ˆ0 ŸtÌ«iö> á§í2ç¯~•Rï(Û®¿¦ç,o Ä`\Pqš Sã9¯¹`MN³ ˜÷¦,úâ÷@]-_ Z›y½YÑ ’¡æÔl™2Öðƒ÷aQä›ö±ÈÛ¨¬Às=ƒnÕq’M(>­K¦–Ö)y½|6+Ù6põšžèÑÐy»Sô½r¨ô}Mﹶ&î$ÕÓ›²òÞEº¾ÊóhJ¡a.ÊâÍÁ¾ÒsÛ0AßÜhÛ×æ,‹eªÏ[†…/“¾ÉâÄ´9!× ãxZ•?Í›ÑÕ!|Y=ýÕIYÀ“§qæT:”Û:oð;c¶fb©ŒØ£P']Zìè‚á@½ñÊæ±{Æ^’ÿ†—(Ÿ÷ù0HH+ð¯ðMlŒ *µOñ³CF8—}Ž„;¤Çi†ƒl¦ð8æ¹ö3’ŒŽ~Ü&þ sChÜܔƼÙÿÆÜ¢î£Ó=Ã{Ãq'8åp‰­uŽW<¡$:VJeC%Áiÿµm8ÊÌÊ&\}‚XwvÚ“ Åï'~B7‰—)ø  â³R?•¹Ø +ㆩߟû*Ò ºG) ï˜‹Á°颎©(M¸ÉLI,¥eó¤ äŸN‘7›AÚäHoUÏ|Ò¦ÍiI«D(R¤5é–ÈTv€µsiý}+ ¾ÏÁÿ&”¿tü ¦'¦'g1&gã$dð6eo:bêô/†¼]BúüŠºoa1œ!²Ê*žjT~=¾fñA˜K\jÏÉÏ&qj•öÒy¥bO€PIe»”®“ÐNhüÙ¸°zd|Yi}Q«6©hjrFZ©3iÕéÌa(°å:)°%_³zA5.ljÎ Ì@`Ï”8“œU±SæØ£äk$CR uN`¯­ÈÜ™¨~D`Ÿå¾z„|Í)¡’ÌÒ³þ_Éئ\5p6ýçÅvÒ0{})¹íZYÿI¸, %भ×S;è­)üƒë‹´'h…=ÝZÓ¸´VÜ¿©Û®Ë²ËRvÙO¿6ÜÏÚûØ`Ήçˆ4/¦íÉ.ˆ„ Êà°áœ‡êl­Í2ÛïZ z™ cäÒxsGz·Œõ±57ôE;,ßÈ/¢KŽƒ´M(‹Ôe§ï°FV&Cà,®~‹Å<¤AÜ,¶zb±ôpvËK•k.úámQa¹0£M¹Ú.ó–¶*ô$«~lêeá÷†¿»û‘bÒc´¯k~{ûÃO×÷WÊþ|%„€ Ðc&Ž d£%ꥪ þÖ1u¨azóQG‰¬«ã{›¤±H’ôÌÞö°NìmÀò{[´ÓEô´Ü‡[›À§\»ÃY|°µÊÀ–ö9ÁÕ©Ó+S»ÛAlæ„1Þ#lj¦Š†YðÙÑÔžÚªÐÃè1ÕQr$‹„ +_ìÞûo¦ù¶ñkpë-ëõê,7–ì$oÛbµnûÝ&K+r¯)Íb«ÜP'ˆé,LM½õÀt0:­ý»8ˆ}h|ÎÊYõ†ÔwˆnMëªi7Wv²²Ö»À¡=æ=Ζ·9AM×S†¾YìÜ$¹†©‹x¬sÈÛ8p…/]K¸)gMÁÎ0gŸ˜óoxŸïš 885¤²=j0Ê@áÒ3ΰuÜ`:,ªÑµm6]›¨®¢f±mgõKµO‰„Ð,µt§Ié°FhÄ0 ˆCbþAg:JqKLA.š¯Šî\^ŸÊ¶¡W³mAc¬aEùLçðîÇÛ÷×÷Þ3I¯jžiVó +æúX^ÕЗY9TŒ¼zå°ÉØýŽMÙÍþ¡—ÀFôü±K*”îêæ{²ï„S§Å.Ë)Ê™…3W%6Ö:;ã”ûX't,`ù]\,gÑtYU{ôAˆŒ&' è°F(0 EdWbHŸÁeiç™~Éy°¼“ +\kRë{Î8¾Z/‹íûÝ8À_’A#„Ñ['|œàQÂœOUÝù x„E^÷?wxHhíäáÊj’îi¨â¦åÝ£¾û®1êlyV³‚Û¬E—¨Ñop|#Ê&Q.]š6²9{*e¸UB÷*ìóÇ aNLh9iÖÅÔŸHn_êÐ^盼åaÚ—QëÐØ}Aóm»ˆªO³z•—cÁU@‚½w 2N¶Lb-;»;u béf>• Y¦SbLXP!u²:Ö"ÓÚ„^r ñ­ÈgGRBÁjuÆñ÷±Že‡å÷½nÚ¨i!OkÚrzh”ÌȦú4ÖC£„­H³lH‚Ï€ŒèEGŸ +Ra€(ýåù{Q¬Ùí +>“iîO-ñÓgJ~Df‡%‘ØAcˆá©BN°?Lȧ|Di'Rd{g&e»`oŠ¥ËðÕAp|·EgXÐÞíÖ‰ÝXH)ÚJ ÿQù‰ÚÑcÞæÈ`ê.Õ§ÉH‡dèlàdÈfŽZé]† 0©]3’ÑÚØd‰ëbX¤¤˜Ü¶ô½÷ãpž‹SòÔAêPfÑtWACT†ý]•º5¦œ ú‘Ó£ÝäU*~»#uYó¹«0)R{á)ÑTÕçÑ‘>p[M) vø”ÿIÉ^¹ÂÓ1XqddÚóq…TG°•¼PN@+ +H¨0™æl~­k¨ôÁ¢xöÛùØ•‰×zÒÔ ÅáŠ_ñ-ŒmûTïúü ’£–y 'mÛfô,=u18”ÐXoðúJAj;r.ySÿ|÷hò#Î%?Xf9—œñ³}¬ã–×ayË+«r•/£ W‡ž6 +!(Ÿ&¡Ã¡aˆÓØb>8 âv>"<9§M?#¬Û^X7Y¸øaL¨ÓzÛ„Æ„I5VC(ìoMψkZø߀1¨ê8¬±7]¾å}§!ìïNxI•ÛE I9Î ©>ÕcJ G%Cá¨D(g•a"‹†ÃÝŠrW*º™RÄOÞÆÐÓ,‹'ßñª¯ ˜þöÕ®’CYѽ±“Eé*íB ßðÚ¿UÅYòjZ ïKínoÑ&°Ÿ9[® G‚=¨Äè/Ps¨Ãy ³ëa0»€åÍX(!GS_AF:+'Íi:¬ +̦i¬2e‡$ðŽ¹^?`Š. ± +†J~Å® K(^סx Òƒ³_Åù‹3~褘N „ùîîí‡k2¨’´Äjª¯c‡'Q'å乬©«GÃ^£d¸ËÔt”x[ ì,ç9¼ t)¼¯ÃT/ù`¡|ù’¿6aŽMIe¾)ªyÍ=¥foÕKÉ>/v²í2ÇǺ] Ó±p­a(¸e‡Ú5mf¯ ÙrÊÑj—ÏšøØÍ[eb¼.;¢EÉåٮϽ•»»² %¢²öȽ•@ . D¡8tvpÖ®ï’þ§ÿÛendstream endobj 1199 0 obj << /Type /Page @@ -4533,121 +4509,126 @@ endobj /Resources 1198 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1182 0 R -/Annots [ 1204 0 R ] ->> endobj -1204 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [182.6146 117.0296 231.8861 129.0892] -/Subtype /Link -/A << /S /GoTo /D (notify) >> >> endobj 1201 0 obj << /D [1199 0 R /XYZ 85.0394 794.5015 null] >> endobj 1202 0 obj << -/D [1199 0 R /XYZ 85.0394 720.9574 null] +/D [1199 0 R /XYZ 85.0394 625.316 null] >> endobj 1203 0 obj << -/D [1199 0 R /XYZ 85.0394 709.0022 null] +/D [1199 0 R /XYZ 85.0394 613.3608 null] >> endobj 1198 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F48 885 0 R /F21 658 0 R /F47 879 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1207 0 obj << -/Length 3814 +1206 0 obj << +/Length 3763 /Filter /FlateDecode >> stream -xÚ­]sÛ6òÝ¿BoGÏD,@$0÷ä&N΋sç¸s½iû@K”Í Eª"Õ÷ëo» H‘’Òiã™–» `¿9ð'g: ÙYjãP ©g‹õ•˜=Ã܇+É0s4ïC}ÿxõÝ{•Îlh“(™=®z¸L(Œ‘³ÇåÏAFá5`ÁÛO÷ïï>üøpsÆÁãݧûëy¤EðþÔûðpóñãÍÃõ\-ƒ·ÿ¸ù×ãíM%Œãû»ûw4b©9ôáöýíÃíýÛÛë_¸º}ìÖÒ_¯ -òÛÕÏ¿ŠÙ–ýÕ•5z¶‡"”ÖF³õU¬U¨c¥üHyõùêßÂÞ¬ûtrÿ¤#•D©Þjkõ,Õ6LLá>¾ä¸•=ÐH„Ix„ƒ©ê¶X½2X£’&$ƒÕ›¶¨«ë¹²I°Î^©“•MM½§œÚf“/Š_„ˆò%è àoÚIVd¢Ã(•1ù_]åœD:ÔJE Ô´Y›¯óª}s=UÔQØ¿‹ê.²†ù)Zjë¯ùv[,óæ7ó(V¡ˆØv)C«uÔ[:|{z»’4LãcAôâ( îZúx_ïÊ%uëª|Åžq[ç0狼i²í+ýlkšnwÛŠ?Y]K¬xú¥`ŽüÉ pÁ³\d»&_Ò\Sf_ó¦C+˜Í‰éÁjÛ¬y G²/ÃTÊd– - ²jOˆ*ÁÌ{@$¨rJÓinóÅnÛà*ŽÈZ*¥gÉz˜1ÙþñH‡‘‰dïVtŽ±éÚPá•ã6l|Ô2 ­Š Àý «pŸ-t°‘Á»ûÏôû·]îκ[<Àš¶!(áÕ3&ΊàQL]§É· Àôɾ(K¦Ô‚”mZvòƒKn3‚’$ûzû…Ž]£9JÍðà=sup5"&´BÁòš½ãÇFèÐÒ¤”Aˆ$bÜQ71X!pâ -S)†´i0Û¡ìV -ýeíä¦Aëøƒ’PgËWšùRÕû#®˜U0ê°¡‘T¨ ¸lá×KÞ…÷12Ì-+üÎúÃ+0ٰـ5ÈC:¬GGæ–ù*Û•-ý(š É‚-•Nå7ÈVÊ0Žˆ -îë–©´/™#‘ÂFµmQ=O˜1pBo‹¶½cU=AT›0M;ÆxÛ0¯gC+ÿ -&$HiÊH«#ÛQ§:X¹oê5ýzfváG,³6›¢#„Ž—8ÿ5ôÍ"[¼äg3×QèõdòU¾?Oì)g~4á^xÖ ……V–áö) âà¤7_ *Aivã´rûmw-ƒ|[ä;¾$x è‰@:牦%D, 8#Ín+šô[Ç[¤Ð׶ù¶r -¿êM¾ÍZ2+‘²A³÷8¡Ž"Ä=÷ŸïÞÿ—úÙrɲΓe]ÙmÜ‚¤>ç9Ãa0å֓Кȋà*o/óçr7åÜcÆÒÛÒì õIç“H°Ý[œ÷>}¨Ór:²ZDJ˜yûºÉå1u *)d¢Î“ï &èô;‚­·i2dà³×%Rví®WO˜‘$Ó䂇‚Ïë÷Ÿ,"tñ€§’“tzAb‚®mr4ÌØC/†-[ôڵˆ>ÍÊÚ3½/Ú—â4øüé†À†ß’‘QÊ8µC5[Õ[¬*ÙýêÅÌYt/}draø`ráÇ´É…h8•Vv±î”ÅeúÞ⿬ÁpC<œ~SدŒËbÌtØú‡¸D¢Oã¢ïàâ®ÿbˆjî¹—.B Ó—ºngÁ'¤g›h¦ÁÔ+›º¥Þ÷6C'±¤0 BíNq?]ƒ4ðŒÒ!:9 h'DV‰Û—Ùo3ð=±µŠ`z}·ÒøïîÖÑì] ë™õ—Äxç=ÄnEõõHAž«™…i#ù¹w+5Áëu$À¥Ób½)]8N6Þ¸”[N ¡gGç'Fkfýýs‡¥à ™ãüðý9Q‚ +4µ(ŠCëø¼iŒSL·’ ‘y…; -öb^,盺.G†Q@Ø R=ë£F5¦§5„Å…È?RšúÝ¥9¤ë4öÔÔeÞN¹ضX'¦Gɉ@Vî³×Æ÷Ëzyÿôa;tïÞñX/€À¨Á­9é²â8¼t, 3§Â@>Ožc’Y@±hFæß$2=K½“ú+P³>ùyS:ùGó¦Ä§'º—ãè.ljƒE]–ü ˆ_²‹q`€c;‹¡ µœöh·G áøEh±«J -f/R@ÂFÿÎ< .NQœ£]NIŽJæ5iásW¿p#OYCNº¯Ô:ª«×é˜]‚0ÄXæ“ìLz/pFIïà -ækº¾™‚>y¡ØƒíJ °…‹‰E÷Ûð*9ÄØÖmZF<ŽôQiÁU:td ¬t¸ÝÖ X˜i ˜C€öiLµ\Ð×HtJºbƶs]ôjã‹BøËP\îÖƒ}Zs¯¦9G@ù(s,a‘ÄnJ¾CŸ*!E­¶·´AsÆ7‘|¿KtßR©.ÂNº{*$‰…EßàüÍmŸÙ»>|˜ˆúð§+ˆ¦‹ƒÙÅz¬„°ÍŒ ŽVà©Á±õ)Œ-Ž‡ºÀÈÛd`æͧJÁÁ$ZŸ·±}¨ÓF¶ƒê\ßï`ó‹RÕÈœ'ìÆ„^Ï&XÚ”CÂäôTz¨ía¿;íôl*Ùwz‰M]MF¼Ö;BPå®8›RÛeÑdO(ìøãî§÷Ã錚M¶IÞ•Ù–‚çðCw#;Þ`uVJøÅhY_0 ÑâÈ6Äþëì l¾Ö3£A2x›mýµXÎêX¿R,üé£:¶ #FõÆWŒ¢´†küg4˃ÏûðcaÖ¬‘Zù ÈìŒ$­ƒºÀÅ[/2eô>p±øæméà/q4Â;ÚˆjG9$ÎàÕ/ìJu‡1¶óÆFÁQšôB@ׇ:cl<Ô”+Ðë³Ô;¨ òÃ|fÈô;hÙu³Ø=u©WŠhSHŽâ?¤ŠÉ!X9V?ðA­`çôÏÃ_Xòï·j`,C™öÏjR=Ô6ÆØÎËš_›Ä—d­uFÖ<•„ÝÄ´¬Ï5REç©wP䇲‡©Ó®>ý¿FÖŽWq,k`í€ÍÓ²7‘FzNÖ<ü…%ñ~«¬©44òßùêclge-J1Í“‚¨>ÔiYë b»Í³v¾ ü(kæÍ&[äã„ÕBdåy6:¨ >B§âPGBáJB,!ô÷ò=i,(À‡.@ÏPãRh×Ù—œGœüÆâ»â ßPµôs‘m·EöÌ_ ®šà7¦¦¿DQL,ã¿Ž±@ìšjB! %-ôú0u‡šT{ Hó8æë%Ûf‹9_ç@¾&Ž/[ˆâèN„ïe ÷ÊÖ9 íÝ5Ý—¸©Œ~Òùº®«åÂL›=ñŽ#Ùî挢M…¹U¶(ÊÓMú]ÖÙ’ïgRºeAʯ±GÙ“v‡‰¬PóãýÝOÌî+ämë©K¾G‹a!”»çôë9¯ðÖ„d« -0œq{ÿH­[´ï>}¦ÎÚ]ñÐ¥  îÜ‹PØ7Ô>ÕX&Çs ½Sç/S*@~ãùWS JN£Þùûå,ýz¾ã%èSl€©´Kh¿U -‡+éKá_´'¶1õq™¡Ê÷eQù:^Öïq½o±È7pÒoüÃòÈ)MU‹çªæûñÓ¶œc¢ÕSz:cIÈ]-—ò“•óÕ¶^ϳ]ûò¦»­L¹ëÌ‘¿Óà—Reβ×ù&4nßå€A_²ñáÅŒr¼ŠLb—P–ïúqæ)ɾ.o´îa€k³Š[X`½E“€÷@”:š(ã½¾.{ãG"Ø»·q$ùÎÈ™œÀrn2AP®*„]à çº]¤¬-b›(§î}ì"XÕeYï;ìoïo>ÞzºË© äwÇf°¨š°ƒ2¡JÀö"Ô%#6Øsû"Ýc·¿RööÆ;Ç Þy8è©«C™âc²ó7‡2ø>†U Ü äë6r!Ž²»$”îÉ ²Å%s)˜9¾d'èÆÛZþìPNwó;vFÒÊßó |QOÀZY_ù…íD3dÿ€{\Wè"žw‡Ç,0_TTæóJûj®éÍÑL_\ŒJÝ7‹A¤ê;³A7®° ã¾ì(°ü9ቜ'+©ôl)ø°†‹¢nÈ׸MÿúÆA@¨\nŽTÅÍvåoã_&ÙÁ÷ÆÞ-½~Àâ®Öä¹`¬©×<Ûí.óàÜgÎZË7®Ç‚¾« ˜/¶XOzÃUâ+Áâ›$÷¥b=âN}¶üH†áøù–aj¾P‡§L‹zË—ÊmÅe}E'Ñ5åÆLÔŒ¢¨ú/ªü0 rïæ.9ljbøŒ=ñˆ‹;ÄÄo8Œ­ëe÷ÒÁ¾À-"rëg`WùvܸR½I’à¦lj”Nˆš²¯uÁqQâ0A‰$+à6~ã=údÔC£¡pé… fX^a¬Ùäôv0 -vj»8×ÈÃû²¥–˜€MÝ4…++âpþû&¯žrG5b#ê¬ôÄ1xÍåw)uéì)”Ã?¯D­DÁÚMÞ©ÝÕ‘`bÙÕ‡^ÿXíYÙ'Íõ{”* ªÿžá3’°î¦´îN²YÄnÖ|i¨·¢Osw8ðñ'jK8˜•§óR7-meûF[©05Öß•¬ê:dŽÂE½žº5·¨ÞM²íÄ©¸½@ºc^ñ‡c0W†ÅZÅG†­‹'¼b=\t"D µë¬(;Ö«¼ºDT2Ô¢+r#ÇTX@vzÒ -¿ˆ£·L80zÊ‚ƒèEnøZŸnày;üÅ:u¼õ‘ÀÌþRm°€SÈ•ñÕ÷D&º7úqùáå}œ†Ê˜èt¹"6€„™ÂEÄfÚò+ô1ëÿDµºendstream +xÚ­]sÛ6òÝ¿Bo•g"Ÿ$0÷”&NÏ7çÎqçzÓö¦(‹ŠTE*®ï×ß. H‘’Üi'3&,v‹Å~á3ÿøLÇQl…%VEšq=Ë6Wlöc?\q³@‹>Ô÷Wo?Êdf#‹xö°êá23†Ï–?ÏãHD×€Íß¾ûxûÃ÷ï®5¸ý|w½šÍ?Þþó†Z?Ü¿ûôéÝýõ‚Íçïÿþî_7÷4{ßßÞ} KŸHïo>ÞÜßܽ¿¹þõáW7ÝZúëåLâB~»úùW6[²ÿqÅ"iž=ÃqkÅls¥´Œ´’2ô”W_®þÝ!캩SòSÚDZ¨x¶*2@Zʹ†~t‹?¢D‡«o!XXmDZ6õâ` Ž6­ŽÒÚŸÄz‹z‘ ÂØãì¥8}ämd’$ñ8H`‹º*§èÅ:J´TE ­3_N0¸VÑ×Áç‘ëöz}tð «ÛèD hÐQuÂ2¡Ñ7`õ‰xþû¶,²¢àÙ–ü.o¢ã—㆒íà ÚÌá¶t›‹þ*°‚3ñwØllzšØf.ˆ2 ¢<¿ÍÊ‚QVÁàFh§Ø !)ØuðUÌ;– dáÜtÒA6ÒRÂß”ðJÉk—`1ø;1Ô®‡I…† ®:–N¬Qrc| Ê°Pƒ–¼P…D­Çœ¾Í6ϧØj:[00}¶8è¯H:^œ?™po:ÒR5àGò ¬$¥¤è(<¯‹lMÍ,m»"xç±ü%Ny.ÊÒSjA×ÐÏb·Óè\úoJPü€ä¹Þ}õ #ðäÈqæ +jàjùR@Z5ÏŽæý26hiœs4„Â:oáË"Niaè ËLy¡…è{º•B{Y;­…a8{~BI¨Óå |­êç#®<«Ç EårNžéØ{9 +ã¹õÇ ~§ýî˜tØlÁ&äm– ËṗÛô£h&½f¡Â_¡[IÏ¿À"ïêÖSiש#‘€ ÚvÚŸ1m‚EÚõ¶Lú!H«’¤cÌ‹ÝûõliåßÐ7“'†p™ }Æge89Ñó•›Soèדg~ÄóeÚ¦S@´…‰î´öð»†ædi¶Îÿæ]K`Þ”B«Ç '_åÏç‰=æžM¸—ž6Ce¡•¥(>©AœöBZ€¿cÔf×O+§¾ßö×|žï +CIÏßz¢Î…b£iIK{D½iã¿ ÁÀ±ˆ$z\á*§¬ð«Þæ»´%³" êjöà$'ÎAê㋺Xc¹ôºî˺þºß6>Þù’û0Ä…SÎ=Ž¬AWy›­Oå~ÊÅ+)liúîú¤ ÒÂFLšø¼ êCvA”;#«LHfíË6åxŽ$ã±k°áÜ<ÆW‰¨¸à7¢š©™³èAûÈäjÖ3¹š0¹Ú‚VXþú |¤|`MµµôTe¶¯ªtIã +wfºÒç/›Åú4.šÇ—o†CT‹ÀÝBqI JzZ×I|BѶÁ1aÖ-õ®' +îkNZv÷ó5„Uóø+æ£ + 3ùÆL‰$Ò‰[Ëì·øe­$˜^Û­ô ×ñöv#fjXϬ¿$wÑCìV‹Á9’ +*9SREÕ‘þÜ9‡•˜ù˵€dÐÿ(6ÛÒådãKð뫠в£}W1dzÆšY_²n³$ìBl!m^jœN• 芌ÁS$À*$üBtŽÈ8 +ð¬iì P¢`/År±­ërd„ 6¨vlÔ˜ºJÇ6: ÿ@Éœï.Ù¡³N}M]æí”[$JÇGyú¨ê–ÏéKȯ˲Π{ó?CØÍÛ¾¯@àú hNº,ˆ÷À½Iya_zPgö%@…„yÙfqDÖŒö<€‰AÎ2ÐAMp0tZ:2p֜Ȟb8™4{ŠC’¢{™Žî25Ï겤Aª]¤>³Ò×'?šJY„ “ûª¤Ñ„‚àqa$ôaàŒâò‰ŠsWh6 8ë· +…á”>oጅ¯CÏcÚ¾äúøâë°Huõr¢¡d,zE‘þ;“> Ü€‘<¸¹~Iw¢d"ýø… Õ®l×5°ØêÊÑpJËGb„K•)0åJh5Œ7]ÕC'ó4êçâ“Å9F C2S-3šD§´KÉHY¡ú%5 +D8ÏëP\î7[ê9m|«¦1RGè@ý(sê<Ôò úT9I0p·ŒÛžüH@ o"¯ë¾½’]œwqöT`"ñH%æÂEH)ôá'®§Ž±®Aè +Q€}Ž¸_ÍÈHÄàÞúÆ6'@]`dŒm2< 6TX%§î ;CÛ‡:mh;¨Îþ–ÿ¸:Åñ™ó„ИðÀ÷ÙËœ|H˜\ŸLu>lw}§]Ÿ‘ä}×ÛÄUf¤aó—zOªÜjª7âwY4é#*;þ¸ýéãýp8¥Ï6Ý&ïËtGÁ +ð¹Ï ৻OHÂm ^ä)ÎÝE![ûk@ŽGD³£dQA°IʾÓçÌhˆü:·»ú[±<ìÕñùJ°þ§jÚ.˜¤¯ +̆èöä…“À}ø‰Û½c¬Ó'kt¬ÀüEqÌõ€‘¦uP¸cëÅG£¼~ÀG ŽC±W‹¥ƒ¿ÄÑïH0*’£ðœë¼ú©tPxc;ol墜·5 3¦ÆMið°‘C}Žt4¦=LxAcHûÄ»­oÙu“íŠÞA©WGÐ&êÂø¦<ð>àu•ç^?¿ÞÖ×<Å#žô6iòÜ ó<Œp×/ˆ‘¥R²¹>Ô PT v—Ó*Æ —äRœ§ÞAM*™ÂÛH=¤ÿ×hÙñ*Žµ ,°yZËàŒÇÜðÁBÏ©Y€¿°ä1Þ×*šÄ[r}aß;¨ lŒ±Õ5Aº¶ú‚1ëCÖµ +)¶»–Ÿg£ƒšàc tREZ0=dÄ×?¸}h?§¾Óß“*FA=ôø2´ }\ZßMú5÷=N;ä«Øéï¦Zú™¥»]‘>ùƒK&øéè/B(R`®>cÝ=ýÄP‘…SÎÃÔ~d0 ÌÝ<_ët—f ‘’bÇW-½§HB"”@¾•nrêzvtSâ†RúIûëš®Š #múè/oÉöp+g艎­Ò¬(ñ‰˜Ÿ\ÖéÒßÌ$t¿”Sc‹2(OÚm&²BŸïnòì¾@®¶™ºîð7h +’w/*à×S^á} 邯$@wê¿wôuKƒï‡Ï_¨±q—;thæ·<¨P<·oèûXc[žKhÚžPéñ•û_M=J€È8½ýËY†õ¼õKЧØHt$“.‰}­WÒ׿hNm–µ>Jªü¹,ªÉ3ƒJ_†ÏÓòå›p»°P#NG±ÊH˜Bé+3¶x¨I±˜`ýÿ…¹Ñýendstream endobj -1206 0 obj << +1205 0 obj << /Type /Page -/Contents 1207 0 R -/Resources 1205 0 R +/Contents 1206 0 R +/Resources 1204 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1182 0 R -/Annots [ 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R ] +/Annots [ 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R ] +>> endobj +1208 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [154.2681 743.8714 203.5396 755.9311] +/Subtype /Link +/A << /S /GoTo /D (notify) >> >> endobj 1209 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [80.6033 407.9328 154.2566 417.1482] +/Rect [80.6033 320.3921 154.2566 329.6075] /Subtype /Link /A << /S /GoTo /D (statsfile) >> >> endobj 1210 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [265.4578 363.0047 326.6578 375.0643] +/Rect [265.4578 275.0376 326.6578 287.0973] /Subtype /Link /A << /S /GoTo /D (server_statement_definition_and_usage) >> >> endobj 1211 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [367.5441 363.0047 416.2908 375.0643] +/Rect [367.5441 275.0376 416.2908 287.0973] /Subtype /Link /A << /S /GoTo /D (incremental_zone_transfers) >> >> endobj 1212 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [280.9692 332.6817 342.1692 344.7414] +/Rect [280.9692 244.2883 342.1692 256.348] /Subtype /Link /A << /S /GoTo /D (server_statement_definition_and_usage) >> >> endobj 1213 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [277.6219 302.3588 338.8219 314.4184] +/Rect [277.6219 213.539 338.8219 225.5987] /Subtype /Link /A << /S /GoTo /D (server_statement_definition_and_usage) >> >> endobj -1208 0 obj << -/D [1206 0 R /XYZ 56.6929 794.5015 null] +1207 0 obj << +/D [1205 0 R /XYZ 56.6929 794.5015 null] >> endobj -1205 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R /F62 995 0 R /F47 879 0 R /F14 685 0 R /F39 863 0 R >> +1204 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R /F62 995 0 R /F47 879 0 R /F14 685 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1217 0 obj << -/Length 3673 +/Length 3807 /Filter /FlateDecode >> stream -xÚ­Ërã6òî¯ðmåª!ðuœL¾¹Iôâáî—÷þxûîöãíû··7Ë0B˜/y…3ÞÝýtK­>¾ùùç7oþxøñêöÁŸe|Þ0Px?¯~û#¸^ñ¼ -„ÊÒèú@„Y&¯wW:R"ÒJ9Hyuõ/¿àhÔNã_¤R¥2™c`6b`@[Ç×I”‰XIeX™ñí;è¨2A¬RXqEY±C½x4ôÝ77aº¨_ŠµY$oé{0eù 4e¸(6z®êCÅ0ób*‚vÛºÚb[AÛ¼ò2vaÞ¥ª;j~˜Ïùn_±ªwø«® ÜÌÒŽ麢zÂS]/ÝA–a(²(’ö<°L‹ ÅrQﻢ®öȨ™áˆ‰*æ+ªz†[¡R× e]´ùciZÚ Û¼ú£Ùæ/EÝ<¯ÖÞåÏ®!XkšÈuU¾:(qgµ¥‘ ­¥ùz]à1ò’Öy—Ó0β!E,gØ@Œ̣VÑÑ7¯ÚƒiZêlè²w®À"™ÙEˆ—J©—Øñ‰¢êLeE{–nlô­Ç/Ü~RÑ]Þ/7 ,K:<KZ#ÁV Ai¢šLf©ÅKaí@÷èðoºÎìöQFxóða—Ž[³óC§BZ$J]– -%Ò$Ô^‡Pàyõ¼l݆{³*6¯,¯3»@3á%³ê›XL‹Ìn¥"‹Ÿ*. ¯rËlÜ’®`^ÊF (žªÚ« ñ)Eæ%É”‹ƒúX¡YS£¬ŸBŸCÞTxBÛÙ™¶ÍŸÌ¬0Ý_â†NEÆmù妩wËU¾²çÒòÌm„‰ã0tÓW]Ÿ—V³`ÆHeµSChË QoŽF&»uŒT¹åH15+&2é¦åcG"KŽ4‘VÅȺú¹ß£EÙâå¡$/Ø:lÑ~â bZ¦"¸ßÐhgXFïV1Vè)Ú!*xõ¾e ÐO\›¶ X3ÞlÙÉ•[N©æÔïÜKZdOà, -#´ª‚¯º -D„€–ñ,d<‹›¹ˆŽDèúm?/a¿nÿÉÉõTùŽ}Š' Eë|GÁ¦ë)Å ²†ãÔ¨ªPŠ4ƒöE«ªÎYÕ¥Ÿ?¹½­£aÕ Ìˆut¿4kÂ-3ùÃ8äÈ#u. fÐ!Ú}Mn%%…Kõ6iaëfv[B€¸þÓýí÷‚àdùìDðÀ%/Fz@òŒsƬbëÅü†{رiI °9á=ŽxoÍÒØàñÆñÏ~0·6ت›#“Ç|¨Ë¾#ß?´C)Nry#H" EDIÈiÎÅHË1–M&âáò…ŒÙåÝj»Üåû½Y/Ab .ሠ"NÁì^¤ÃcÍ2MH"ÇØL(¹ÛLêt5 ©œ@¿aÇÁ@"2%]\…Š™Úäº֔,A”,î>¼h>' ¦!<6ÝKKÖ`@²ìa,!»â1:!QD !PL³©ð•E‹v ÑØ‘Œ«@²?A°ÛšdQ9¸P«4À8ƒFd€rèX/n+°/“’Ä„ÀŽâê˜ÌuWì9 9›¾œ³xVP»w¼4¸‰p€üTTýgj¶¯`vÓË$&õè¡nž©EzS÷OÍéólšÊ”ÔFõalöµÐ²*Ýz4µÞ~àẪ Ê°ëŒÞ;óRN _—Á 8Ó gF’-Ùj;aµ2ûŽT9$ ”¿$=8¯­WÏ6ÓhßrhŒwJ¢f' We,‡":#OîrîN>âÄÊRKMŒîž*+ÎУD,Nœ„@ËúÊ‹’!  ´k¢O{ý@Ž4á$äŒ'DÙ“ÅšìE:£ÎÅ'‹}ßìk·NÑÎ „諺o sXŸµxZgB‡ú oŒuÞây,ܼøLnžœâºØ`ÄÀ€81|!ì¤e\&ÇcÍÐ31U@䔞_½3ŸX>™¡/VMŸ …ΔϢª5Ù#²!`©|TÀ²ÎmDŒ •9P#9ºÛˆo~@Úå Ö¼©Ž%€/lØÆ"ÕRNïCAÄ@YÌqe oi$§"úyµä9$H{ËüÅÐÈxñÇW‚1Fþàåi«aûÁ8ŸPœ1À,ëw,boè*º¨uNM‰ïº3éÙ˜t -yèÑÈñHÈú–†˜œ”ïRaDS®ú2¶´}bG¶Ębje¬~&ëö< -¯9Tw2rœ3g+ë§'kÎ4Wð´«àéȲñ-ÿ ŠMÅ+è¸;Á6›b9ã>¬ «m^=^b•ó¼¾½œ]ÑuŽk«á»†l¢íˆþ|Çû H´41Ÿ5?>³<‰iýl,Óü3²Ë|‡!%Šb É™rè.êåLŽä¬ånMßG¼¦)4Õ µQ~ׯ+BÃõ¬#A±¢UŠM4¶[fÌ~aZÎÝé¡XÛü1€Ô´£/‡ja>ïMe­x@ ,ýÙrK&‚Þ~øÄ+T Ù™]mó6hƒwnûó§ûhg_¨¶¡ã 2 ÂEë -}¯’a‚Uè™ûäèZ’ÞaÃëv¨î ©€%ýK®4Ø p_šŽê‘4®Î›,°Qu48˜>4¸­§ºl·µ™ü‰*’ž$5¯“ˆ`mÎÌ•Qp’ñ ìAñ—¡TˆLå™8âò,¦!C„Ç¢¢Èd˜8¬ÈˆpÄ’q¸˜9öfž…ÞÀqÞç1ýnC±(;{¦Ê¸|‰ˆ…¯Ùíë&o -WsB[Y#HUG’°ñ”-“8}°U(ºW®0ðÚÕ³:1“LÕš¾5¹æ,h»‚1׈³„£ÊvfÃ(‘Œ\®Ãzqº°RBeq<òù3µfˆdâ^|ÈGÎD±²&9ãàXn§GºÖ,Uˆ¡SšSrû°-¬q‡&Çë§D-RBBozû_ÍØD¤‰d¢ÝíC¬] DNÂvDD¬DÙ™,E&c·KÝÌñ8ié/ñ8?-X³=)ì1w±•È0 gƒa™H§’är0<Æ: {,˾ìŠåÀ‡I쫤óizyw5³ýô]-q„Óý¹ž¶Ã×sbIVaÖ^Bƒ*åØz­{ÂÙÚÀAö ûÒõìYÚÉ«e›±Oþ¼©Þ鎒4ùò£ÖÜ*|—ÑáQÙÿȼ å)ت|µs‹Ñ˜Ê²ù"Ø -„êoT9Ò¡Ê!ÓÄ–E×´—ÚRW“JÝËM’9•Úúm‘» ýîÑÚ”êg¢‹ÿ±m¯ -¦’¾]߀±ÕÀòÌŠô°RƤ¢YîÇ#§´ÛÜ2( (\µæÚlr¸Xÿ&0SJ•HPò.½Ûñ ÊyýBö&`V.ë×ë‚~9,+HÓŠ‹&§ -– ¦úòökfÿÉQ#:H¦ÜV ¤éâû÷÷÷·o±u×=¸ØŽl@@{I‡Éhñ©rל²¦™?fª†Qø•â ~Å‹oJSVí`—œ·µÿ9€~Ád®k‡2Î/™àSTMÅn8ÈZPçkÄKk¡Ó8þŠs•¯0áˆÃì²|±ÎË—ÇÉ×K^ë܆ÙÇ2GBÆIv™5CÃô¸:SS"œŒáK‡“1l¨²ý‚¿NÌ¢T-Þ×™ñ®¶”gŽ±'jtDWœˆ(ž“é…w‚в¥fWŸbØ·ðÀéå/áREMMü™" Ö~”>ŠHYÎ {ëæÿ '!MõÿÁÄ…Ó„Äù²Ž°.ˆ ÃÝ ¶KÈ‹†Þ6§u4ü÷C¤.“á±fè˜ÖÑ20:!ä¥ËáÂ’á_¾¾òù+ÈdaÌôŸ0ßá 8ªTykëÞŒgÓä$Rç­" žŠþ!sF”¯Žÿóÿ>‡?ÅêD¨4=À© †´8& - ×Ù1åþ¢§¤ÿðDÂendstream +xÚ¥]sÛ6òÝ¿ÂoGÏT<àøè¦N/6Í%ÎôfÚ>ÐeñB‘ªHÚq}÷ )ÑÎåj?X,€Åb¿!uÁ¿º´I™<¾Ìò8L"•\®÷Ñå=Œ}¡gåVS¬oo/þùÚd—y˜§:½¼ÝNÖ²ad­º¼Ýü¼ú×õ»Û›÷W+DA^­’4 +¾}óö;†äüyõóÛ×o¾ÿøþú*‹ƒÛ7?¿eðû›×7ïoÞ¾º¹Z)›(˜¯e…g&¼~óã ·¾ýÓO×ï¯~¿ýáâæÖŸez^<È¿þ]nàØ?\D¡Émrù(Ty®/÷qbÂ$6ÆAê‹ÿö NFiêÿcÃÄêlÚL¨"hÇée–äaj`ø[éº.7p¬<ª¿6ºª¹gЦè nWÊížám¿+

o˜Îàu±Þ•À÷8I‚7 úv/£]Õ°nÛtnZÕ ­rX°R*Ì“DÓy†fSvÕ±¸«Ëo®V&2A7¬w8CÍ4Áã®lBg¢Jà¥u°n›uyœöÏiÉ8~äiëŽ)«¶[¿¦`áÁ„ˆV–¨dÑ®<²#=Bźº ¦¦#SSì‹'†ÝÉX±ÙÐ%¦ŽáÛ·› +ï·”þÝ# M¼ÂKîÝp•(ű¯Ê.Ťip]w-Cƒ*mµaÑHÝÂô®,h:1ú[8îì(¬¬rwV#µ^jQc_9!ƒ‘ǪXw(‰<þ2×x¸=”G/¸dÏ_& +m×U  .?ʦ“!ºª32tðÇPáÜK×з¬ø|Q][Ó¥àqG;c«ê 7I9«Npîä{` x¨ø®Bò_¦3’ ßŒA7ô4®'9‘ô… +lœ­ØHÞuz±E(ˆ♞¸YtŸ:nmÛ+Èì¢áïOÿá¯Hvë×Úº­vm×#)`›ó‰iÑÆ„™Í3 )Û¶m(D…kPxš0³ELPj¾PN‚‹»7pßsZöÁበX1 ÁRÆó+ûMëxÖ8Ì­2²3:¢@EüÝUíIoÊ~teÙ4—p¢_M{ÜuMÜŽÜ!èJEj:ÌO%Àߢ$º– |¾(¸†?€+î‰V²^G¡Î”P3£_˜“¤!˜|=gÎòÙ`­(5V]T1 0|O dSáûXÖ5²A+@}jÚÇF`å™\€‚«îÑN(2¨O²Œ7ÃÐiÚž•Ÿ##S¡"šÄ=DzïÑ4Ñ¡ÝANìOI™‚Q?8Ó‘Ômf…š°"Ó¡±ÚÉIÓ.IBê¼-£lª½NLj­ƒÕïÊ]ñP‘¸g7õiÄ-æíRØÔO:µ®š•f¶ÄŠ¦äfˆ 6 S=²A;6°mAæ‰V4Ý#»%è8½d{n™•Æ˜‘•Øñ÷ˆªéˆ${D66†Îã7žÅ`—ÊŸ‡ÄO¢MØ‹"”'šyàág™à¡*»pÉŒ_÷}¹?ôxB°Q×)ìÒ `WîýйL¨(3c^ +ÚLÅ^…PÞeõ©lx(×ÕöIÄuah:ãx,×ñó"‹›&6ÌàÞçz È나[ò­Ì Ù„Õ}Óz d>ˆYd^–͹8jO"Ö +u{/ñ‡Å±áX:{°~Å}¹$K^bFlC«¼±%~µ=¶û…X°A¬Ÿ¹ •…*UÎ:k&É@㌉ÂÆN ¡ÁƒE Ó‘Ùn½ 5n9VËXÔä˜5“بÒ$̳=du5)r®ý4P…ˆÒP\Êâ‚-Xq1‰§Æ°D Í õÅœlbjrPS´B8TÉêC'@ ŸH13ÝÿFˆðF‹&7ný%ZÒB]DÐ(Jíi¸sIcô´=ÅBÆ‹”‰‘KøH,€®ß ‹öËÎ9Ÿ‚ýNSìÅ¡x•Dÿä~š•…Š÷PÒÃCq||Ý-d–¬‰^­pþ«“ýœC»+ëöÑû>¡éP~æWlž&Ôm–xŽ¦¢±d»Ž&Ñö¼%ÇZ!æ/F-Ãá±ð!ùÐÛòx,j +žªÈFà( ‹Ck[ÙÖg2Ø!™âÎG·¼"ew ù¤”\ÅÜ<ˆOizîÓ*ÎkbC"\lâ% èÇYð¡‚îÓiœ‰ÖÌ3Œ)/0åC æ(epÌdMj¼±<¹"Ÿþ¥‰P ¶ÙLgML¬(ÎB@Ay ¶ˆûðD^ ˜SÏ)Ùs›j”míªyΨ®üüÙyw +&AêV„Üg ˜KLð!é,6¦JÂëVâ’îвS±’wå.‹ˆKÒdf¿c„÷7¯?~¸ù.d8>š¸si™=Lrñ‹ "Ȫ7¦jp{13 6g¼³BÏ{²JS{';Ä?†ÑÚR¤ÕO,žO3‡ž=ÿHÒìdxVx‚x7±X/RaÇËu6ÁYM¸J¤Êl‰³Š~½[í‹Ã¡Ü¬08MžÒ £(Lmœ¿H„G:§bžˆ$ BD3%ãÍ–¥1¶³h)ÔƉòSudanô$Ù4–r +ò©–m@’oÞ=ÄrH@ÊC³¢»‰eÞ +­xŠÎH +@®jm>»ºêÐD +ÍK·‰´x»] É¶$šT¡H]8*€q<#LÈÀúZ7 XÉ9 +bB@Ç w̆º¯öŽЙíP/Ù:ÑŒöNW%nB¢ «føÌÍî tßQ))eÅèc{üÄ-ÖÎî©ÏŸOå±)kn£â¶xYh‘2wž€˜[·¯ÞÉpÛ4\DY,ì8â8•…¯K‹`#¸Ñ­$DZl‘’rLX¯Ë×РÇjª$Q"=8¯kן(諬&x§,j4i¼ª’8”ð¹yv—KvËÉGš‘,uÜÄ°î¾!q†'`iæ$Zä]p¨¨j€ÖDo +–ú–]h&É4Ø gNˆr`[5Û‹uGsÏ‚Ãp<´nå2.Äæëv8BÆ°yÖÖ™T…&ù‚­› =oëî\}fïξpSm±2P‚õ?3y +ö‰u”½H‹G:'ff¥€š8Ò3b~ñ|fótŽþ×¼hô´ +ãÜøÄ©Ù°%bë6ÊG"¬Û‚¢ˆ„ª†iÊGîcôÆ·šÈHûZ–`¥ÁÁIp𪗅 A,`ÚXŸ¤è!¢ä(óüÔÊJˆÁ;)x€ÉƒþH@‰<‡”¸Ê9ŽL¿{b˜`a´ž·Úƒù¥xÆåD€âÌ&V߸cñø@‡ðÐEªËµï’Ãu!=Ÿ’Îa=;ûr°¡ã!!GêûYõz¨‹ÞÁJÅ ì3;ò`”aŽ£×TÙO²D´zEÖë99»Ìe…Äÿž Y,%»Ø•ìâ„ØøŽÿ•æjtÜ`[Œpœ8³>®ë]ÑÜ—²Äº îd}ºœ}Õ÷Ž²ÒðÝ@ÑõL±—}P$:žX,ŸLžŠÄ¼`6‰¥”ó[ #QkHø؈Cï|Q/gz"gt[þÞÉ0˜Þ OÙ¢‘>råwó‰Oµf4z%Bbükª”glw˜}´ZâÃcµ¡œ12Ç Æf|K1'­ôg+ˆL½z÷QVh²/÷-åjÐ¿Ü {ç3Î÷‰}árFœæô<ˆô>…¢ïUReXv~NïÐ’ÞaÃëv¸Ô ¹d¥ýk).PÖw¨Ëžk‰5…P`[l4=N^8=n=×eÚ–²÷× =IfY'lΕqX’Ë9Ÿ _Pÿ,9ýaŹ%Ž¸ÜJhÈá®j8&'Ž+ +"±)þ厽¹g¡7p’ëyL¿ÛXÊŸ=SSºÉ=Àaý¶=ÇÊ•™PÅÖd¹ÎÈ6²kÝ»œèžø^¥¨tÆkWÂêÃ…z®ë_ŒN”µ´w¿¿g.P?'j…ï‡zóËÿjÆf¡Í´í.‚ìúD +–µ"R&*Ê¿Èdæ:u»¸'¹9UhÓ$þ“é[‚{Ûsÿ&-T|TJÏFÁʦ¡³ðr<Åz>öXÄ¡î«ÕȇYÜÈâ­}ywµ°ýü͆i©ùþRÂÓáK8©–ß;(1—Ðs@ë©g'¿˜P|†Cízt–nöŠÆifê³>o©Æw¹“ìŒA¾â#¨­<¶âCL¬N“™¹u¡_*à[ózÖ–~f‘çËÕ °:Ræ(oØÉ[ºÍ¨ºá}ÜO*\ʺ§š,wܳ®ôd©d[n°¿ã\D’ãç#¢ ÿ±Í?쀅¹ˆOëÉk°nÕŒLaÇ<þn‘ŠVy8:9¥ÝÄ q´JÖºÜp±þ`¡(dñ÷Ö¾øP'7Ä(Ïë—QaAöö²~M°^Ð/‡ERÑ€4­¥Zr®`y¨•_ÞÞc-ì?;jã˲97„Öß½ýðá涱ÔzÛóÅó¤KÂ0L'ÁÇÆ]³=´¹0'ª…F‰úJñ¿âÅ×òS©Í¹Fƒdm¹_ ™›Öa ŒËÓ%ø“%§åw8>uȯ¯8c›¦_q®gåËÂe^¯ ÒóÒå&ÂõPÔÕ†~%u&`iê4Ë_Üß#0?iê873 +œt᳆“.lOH¢~%_'`‰5ÁÛ¶/ü*ÕŽÓܱôLNÈJ³0ÉƧc~MÅ ¦ì¸Ù·Ówñ*2p~í+¸NˆúæõLõK>&>‰EÜïÀJñäàÿë¦ó0²ñß1n®ð•„øãÒ…»üû7¬ã|ã,4Ö>˜(…ÐŒ”…„Çù)åþÇ®ç¤ÿ"‹™‘endstream endobj 1216 0 obj << /Type /Page @@ -4660,29 +4641,34 @@ endobj /D [1216 0 R /XYZ 85.0394 794.5015 null] >> endobj 1215 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F48 885 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1222 0 obj << -/Length 3453 +/Length 3299 /Filter /FlateDecode >> stream -xÚÅZYs#7~÷¯ðÛÊUã/>*3žY'Wvö¨$m©euÔí¨[vœ_€ûRKÎì¦jkj, Àd«s ÿÔy‰Èj{Û@„R…ç‹í™<„¶gŠy¦žiÚåúöþì›&>·ÂF::¿_uÆJ„Lu~¿üi -.`9y÷ùæÃõÇ糋8˜Ü_¾¹˜êPN>\ÿpE¥óÙ§O³ùÅT%¡š¼ûûìöþjNMñíõÍ{¢Xú92èüêÃÕüêæÝÕÅ/÷ß]Ý7séÎWIƒùõì§_äù¦ýÝ™Æ&áù T¤PÖêóíYÆxÊæìîìÍ€V×uÌ~A˜ˆPÑùÔ"ùãVV"V -˜âЊÈhÓXY«1+{.´òb-¾L‹t›UÃ+ -@ßî°Â®é¦#]i˜§6ñ÷뼺€ÉÙIùTçeeXOÛWÙ’(uI”Ý…J&YUïòEÍ-댚ët—.êlGô*«‰žK*T¯EþF­åŠ;e»:ÍYì²ÜRÈ"¤M–%HD¬ƒ§,lj7mZ‘HM~–Ro\/¨€ØoJnxsGVÿ©,*ÏG¤E–?»¹eåHå–j4?(YýRî¾8NÀpL^f«t¿©©òœîòFÅ¢t#-óâ‘Ç*ÝLd -û*}„Át,')i“‚ëÉ: ü(–ÊQÃt @lÝ7F(mcfû½,P1âf¤cÕªŽÔ¼•$B¡â1Vi¾Xå9ÕÕÕµ±=kµIŸ³‘u(¬‰’¿Pó—tWŒ 2À¤G4wBÒ¢zÉv;_™ÀŠñÒQŽì;æ¯Öy´,°óPågÊ••Ö" ËêìØOGô\ÊÒÌé¸Ö>áûD¡ xˆü±(w£Ka…1¶µ³…c‘ÈÁïa¿°ŠS -4%™ì]êÈLVÎœ@Þdé†h벪9À±Åe¤oÑÁ‰RÁQÁ-ÙŽ­ •Žµoþá‘a¸gÁŒÜd&‰V,”ß–Ë|ÚKÅf•Ú¯êÃ+ïNn((¾3bVÙ·É »ŒI›Øûyúô´qÉC+Ê·ZZ^Q ”/¦9¤yË)J£Hš]R}6›Q&-ŸþMöTÎHøº¶ÑäºföMÅOkÁÚy×¾—Ë|Ú–ñÄeré(æïi¯Ç?3jsÛ4ÝÜ]áîóŒ(´k'€„à ±upìnÈŸ -™<]Àš¶ºÝ I•èP•˜U‰&·÷óQc.ò²Î×L|ø%ªY, ¡Aˆ˜Ë|‘ÖÎ¥sZsCMÜu±žR•F~† ÄÃoÊòËþ‰%¬ˆ–RÕ1¿œÖ%+†¢åÃ5C÷¾¾™ÎÞ¿Ÿ‹ÙüöÂjr/$ßFC’‹nnº¾¹Ç\$ ã£HZØÁMrDu¹Žƒ¨†« ³íoCÁÖŠ$”ÉiÁžiDpo—“€ èÒ“ü%£ :C½v¦† -gbCñ¿}o"ÄZ–î*îQvWÍ@LNéçú–«Ë%cŒ£,§_hêä~C>EÃ&+WÂJ«¿v“iŸÝTig´±0É—=•U•?lx?zN7{—TÂãŒíÙ$‚$xmĶ>Ï„ibd'…]+ŒÍ±¹¹mžR‰DñáÛá:¾ž« ß¼¨³GXÝ×Ãø…ƒ¹ OË÷L#òûñ+…N"ÓWà6ÛmWIL¸ÎŸà„tI4ô*µZ:§zEM.îá×»¶{ÂUã,m/åá Pݧ=䄦»ùENþÉ!œˆ(‰!<„Vp8VÝÏM˜ ÈŽè¼3*Òù^!ì‘+bÏÑÑ O¯8–7ûŒzÈ"û-¯¸+¹´ÁÓkÔDsˆ`:U&„gu Þ\Žz 9ÊbóJÍy1å5r÷…¶P4¢¥"¨;‹­¼ür_OËU3LÜfônÂ!ÿÄaÇåÔ ‹]9Ia ÓÌà% ²ÎÏh4‰‰Ù¦|¡b]>1ãŠ~YA(µƒŸvbÊv&†;™‰Ê6™`i'mXݬXðI¯ñu(“ByÄFI¾þÌÉÛ@ÈÇa`ÿDšMÞ‚&€3Ø7u—ëxnk¸ºˆzºp‡†aj3Z§:-¿áQ ŸÜbg¹ ¯ÁõjÄvV„ZzÀ6’#ÇJasÀÎ9œÜͤNBÜÀ "áž -¦Háˆqø±‰­#8U¬ {@>‰hcò»›Ù§«;¾IQ&‚ÃGbú®zÔ™è’g ÊÇFÄ‘6_‡ä8•IPùÞírwª†«]°j÷|Ò«NË÷L#òG|Êô8âS&H¾Æ¥`U×¥¢„]*²Þ¥€ä]*6Þ¥€HwaIߥ [»DcùˆìWM3ùJ,‰|àW¡"çÿ·_è¦;íV-Ó ¯b¦ŽSÁYñöÁJ"”Ôú¤ì†éPxÿÅ™˜°'ý_´ÞA4y"0F ?ˆ{ˆ+à ¹º¤6¾nƒ’‡ÉA“9€è'ãȼGÙáBeص]K`ßp"8F©äkpýñ5”ÐEFol8]®«è¹VÊvå´(§U™Nëzs¦µƒÐœV áÑ ¿”1l$QÜW×RyøWïá`Ç.·@M÷õÏqi?ó}hàkjøº„$Àèî5‘ðë>Û5÷«”6Í_°Þßÿ@‚AþN8!êPX«Ñ‡N* oÚixŠ¿ßk -üœõTp¢¤‹~óÃßßé’³üz¨£c+¤‘ꯀ:°\°TqxÚóº\Ç=¯áñ¼é"… <ð¿PhŒrR†kDþ‹@À€LOò?Up @Yw-´ÖÕ°Öu5bÃÕÂfw‡tt¸W¢9wÂ[~ltîæ(Ü»³ÖÚ*Zk¤ûµvBJ ®Ž«Ñ½5RÍÒåØê+%óæêã› LÞØ<º\'Vßs¹ÎÓŽo„é§_ª/‡ €DdßРáQ¡ïë€^B9ÐöÏëY‘í`±]â1>Z¡y>¿»þXqUnàðÄwLÖ]†õÇ[~Ù¸ê>à. uËß¹ë²îÔuÙ½íóO=€y7¼¤• 'ßß}OÐùg)MúHD—DlØr½¿¹ûþê?Ä8ŸscI¿ËŒ®…2jÎW¾¯Ã&Pú’½RSµ.÷›%xd¾¨Ä­yH¶a6ÐÂYPŒýehØNÃDOkÛ’VÔPwž€ ÚžUñ‹²&j3w Îç<äCY¯©ô’S)â“)“à@ËT¢•ø:µóñÓq,!N…Fpó•›ÿ`Øu”!€<I" -À…ý7B -þ@’Ò]rD\2‘x·'TÜy-Æ÷¶•ëÓùNB†€ùÆmJȱH "?pþ,E†ü°,üÝD5€Ø¼¡™Zåé/ù2£VJôôÉRÖ){áÙà.éу`¿`E³íè&ߊcW@å³»Ï -äÝ—ŠŠtµeÐÛ»»P¤Òë–X*~iâŸ8Jfüc-–¸^P¨É²3ºcs—+Xl@‡ëôJÒY -w¢[±ŸxY’ kþHc0ËœAòé¿w¡û3Í®:áW \8Õ¬FKN}Ø×Äð’Wën—ؽrR ß:‘Ç™)w7n@õ/Ì(±xu÷ü€ŽÐVfì8p• Hq܃n¡pв›¿ëi~ÕáŸ9_Öùb=ÀPdÈþaŠB¿°~Ëkîè|øè®ÇBÇÑ›f‡éÄ7kÌäæ(Ê[á¨Ãð¤PÏs(´›)l) @yW(?…XÝ~¨ø¤¡Ñºe›¥ø°Úo¨ó4ÒÉÐÉ7äý@ÛÐÅng@ò~ dÛ§ºq±²ìŒèîE“…ó­$Ðî¡K ˆ^ÿ–™ïªzü2I®K¼*¦¯éËDÈ8@}Îù¸KG÷t؈ü) -GF|‰”Ç=¾¡-†©lçÐV´Ž©Ä_Ò(Úø¢æJèÆÅßjÏÇÞÚ•ãð,Úå±:M(ðKÌ—‘ç>>ÿç>Û¯a|±Nô¸÷é8Aƒ°Rhsz.뇘°ëÕÿQÔ2endstream +xÚÍZ[sã¶~ϯð£3³æò"Q⣛Mö¤ífSÇ=—iû µåÄGr-9Ùô×€eÉ–îiÎd&¦@Á @I $ü©Al…uÚ ‰Xªx0{:“ƒ{èûx¦˜g˜Fm®ï¦gï¯L2pÂYmÓEk®TÈ4Uƒéü—¡ZœÃ rxñùæêúãÏ“ñy §×ŸoÎG:–ëë/©õq2þôi<9©4VËŒo§—ê²<Çw×7ˆâèçȤ“Ë«ËÉåÍÅåùoÓïÏ.§ÍZÚëUÒàB~?ûå79˜Ã²¿?“¸4¼ÀƒÊ9=x:‹b#âȘ@YÝýÔLØêõCûìÅ©ˆud#‰ä÷[Y‰D)`Jb'¬Ñ¦±²V}V\håyQUùl”Ífùºå_×ËM>ß_»‚¡:IÓA[À W¦¥‡²Jh+UW‘±×à|dŒz5ÎU:U€ ‡Õò¾Èê-Ñ*bzyÈ ê}Î7ËÅ벸§Ž7ww—ÔîD,@¦9õÎóE¶]±Ðe…Ë~¥-]¸ÂZ ¶UJ¸8Ö^×¢$ÖAze”ÞåuíClÕ ÷Êu½, ¦–ôû«ÖÑk^áVyöœó€"{B[`óy»*òMöe•wÇÓ׫앞³ºÎf°æ} 3ZeDâlú¤Z\' ¸pé¿oóÍ몼ßìaãÔ˜zwŒ-µ°‘Ô]Éwë|H€õGâ£~È7ø`H'¢ƒf÷´%ðP=”ÛÕœÚ_râ­êlSçóf–‚Za pr šŒL‡× CÛ0FÅB*ÐÐ6ÉÞJ"îNŒ (¬¬YÔ:?WÃÙGB8F‘)R.•RçóweyÑ´¨V jVŽó¼Î7OË"@ìËëÞkv ¼˜1¥\ì±t&žeu~_‚ÌËØX¤ÆD-Ë,óªÇ0666;:ck¢¢Ó0ns‡qÃ…gùìq„»^ÄCØ]é7„7\=Ò;XÖph³'~ꃅ‰\, ïÒ¶•ìþHáª7ËYÍ=>ÌA×ì!Ûd³}éU^=+æÔ¨^‹:ûJ½¸±~P¾©³%‹—OÔ†²iS0,S‘X»Aò)«H¤±C芷E±ïKî€XM V]Uà#Ò,_>Ó1`‡ O*Ÿè‰Ö"¯_ÊÍ£?éÓÝm;ºÛásæaF +Ìf¥ŸiÎg†E+âJd×±¶UvðN š’6:}¢‡W0Á!¶ Ix§l ÙJ»„Ùþ( å“àLIë`Bj8˜:¢ÒTè(V<Ç"[®úŽ¤XDN%­# æîW]cMkµ‚£§gB g Øþ}š¿d›¢O&Ý£¹’ÕK¾©|r$ ë ¯ ŒI;ðt⃇Ï`Ë••Ö"ÆS‰ÔÙ0Nû¢¹OæBЂéÔž¸}â#öøïâ#ä/å¦w+œ0Æ%íð8€I®Ž4ØB3Œ½Gh«Á(épëýP[3\xsy•ßg+¢=”UÍŽ=>B ý æI +x +ö +îHNÖ†‡–µoruAdØ'Y0#w™aª åÉŸÊùrÔuKÍfÅã®{TÑ4ЀC׈³Ê`“¾à¾g[+Eb’ól½^ùØ¡g[Òñ†¡|)|’!›Èè© "ßÑóx<¦­z>ý› TH˜Thg‡×5³¯*xZ ÐAûnÊÊQ[&CÈeˆŸ@˜| "ÿ©ÏŸÐus÷ŽwŸÇD¡C(¸$. Jœ_€g÷ @þ ʳá’^öúà I{¨JªØáítÒ+°!/˜ø12Óà}©j6+¥ŒšˆËb¾Ä„e˜³š;j¢ø4 ž3z¤™¡è¨xúUY>n×,aA´Œƒ?ÃËi]òbAœâqJw}3ø0ãÉí¹Ó/$ßÚ}’wn™b(:šCÁ¡¥hôF)Ðæ:žC5\;7{úzP +8‘Æ2=-80õî–PÐ¥#ù%£L«€Ćü~»h"øZžm*Q¶ÍDLÎèçú–çsNe|} G_èj…~é·áÄc?GŽ¥pÒéo=#AÚg¿T:¡–2é~Z¶.«jÙÏÙjjÌÌ{ŽlÈ#¢4z#Ù€ä5Õ ÃDÏA +‡Vœ˜ÿálëƒm„‘Nº7Rÿ6×qØ6\;ؾ,WóY¶9¼ ÑVDR˜zÄwŒfì:ò)÷×&Ú]@;Ð(÷׆1”ƒšt¨¬ ‹Uuþl +¯§ ÓFF Nš”%.Nç:4r"IõÞÓÌ ìš¿Ùê ‚ ¶#h¿d¯pTüX臇|ž½*¡;ò¸Û6a]óòáw[@ê5¹?Zuðqh´WL”§¬ž=P™êUƒ"uY?<‘ ϘGô(JšˆB(ÞÉ…âLâM,‡ë3xÌ(l‘Ïj\šs»*:}¾ÜÌÃ.*ÀÑüS›DØ$„ƒ×ÞœEEÂEÆu3O˜2(êå\ƒhz¬`ßÞ^CW+!·ÔªØu&2ºÏe«-•Œ~0l©º¯q嬱§Ý·ÍuÜ}®û.‹:¿‡Ý}=ô_¨Ëe|Z~`ê‘ßõ_)tjMWÛ|¶õ¨’p=žä Ùœhˆjí´ô,^õŠº¼ßÃo€öá®q”ŽÝ(Ò úN‡”ºî&çq<ü'»p*ljÓÞª©I­üÅhëà3FSÎäÖIGTÞ+L{ÇEÙ;;å“&(Ž­ûÕ6§2z§È¿.+J6XŒ`USÓ]ö~6Õ8"X‡ŠÊ”òYr‚‹„`.O=Œe±z¥îe1â=r»ˆÂ w©¨¥­¢T3ñ[ù嶕‹fš¤5MO@ÚV}5œÁR©pûË‘—èg= )Ì(uÜ +¾þˆØ*R ñ~FËž½ÃN^?t‡åñK¾*_ˆZ—kf\­Q¤jzvFÁ-£xغT8e\oqãcOˆG" µ:$/f\+6îícvŒä)ñ_3$¾˜þùÂ?Q"JÕŸòé[‰‘‘N@%¼Y[\'"kàjçó£™/Yö«Ñ"r°„“ò®º¡5PIF] zoÛˆµ ébOôß› 7åý’Ù_‹ê4è@ÂŒã9„ÏÁÉOÙ_}öÚxvÌñÃöGŠPTÆ2"µt,ùâfüéòŽ¯q”±Pú¤¦‹ò£P +¯z eDbµù¶:⨴5ØÞxÙæ:ª†k·aÕæù$ªNËL=ò{0eº +Á”‰Òoì¢jCʦ )뤀 •˜) ÒE\Ú… Û@Ðyˆ+ 2®šnÂJ,‰|€«Xíòvõ+8´b§Þ¸|hsÀUàjá +Š]Lø^á¤BI­O‹o¸zäw_á!S8/: +ü‹ßÚášB~í˜t²¾ˆ“‚êõñ•´Bª5ñˆa=žÌ‡}^IÒŽu·£ÀÜ{è ¥œJ¿¥¶8º“*5Ô8¹“m®ã;Ùpù|-ß”£¢Ue6ªëÕaB¯EÅæ´ Wݽ„-Ô6éªÀ{©B +Zo¡¸ÒÏïP³mý€µdV/ŸùN¶À”ŸÔþ .$yÅ>‰^†z*d —¼ÓéDñé” +÷š@À(«…Ó‰:‘Õ‡‹óÝ2e¹ÿÚ8¬‰Ó¦ +ªÚƒ¯þ ‹ÖòÛÓ8!ü[ŒëibÕÈkq@^àêAÞh–S~#EC¦rR†«GîK»X$¤3E +2TÁåüÕÒvPç6Ôˆ w {˜ÝéüaÒ<Ü°á·;=Ü<…G·öZ;þŒéa¯=!sV‘R{××Uï kU³µÇ>©–yk÷ vró[LÇ÷>0ù +k=‡ú‘²þÑcõx˜—@.aÝiñ Ó¡ü.Ì!}‰eW9:¼Û¿Ïñ»þœÈ?…îÉäîúcEÄE¹‚ò‹o¸œ¿ŠêÏ·ü^å²=!쾿š0ìÎ;~põÖM›óuÛ»ö]cxÑ9ÏÞý2iåâáw?Pêü«”&»'¢.Þq}¸¹ûáò?Ä8™pgI¿Íg)Ô½\„±>7ÖcþJ]Íg<@üÂ3ó5)€8ÍS² ó=-¼EßUA¸ŠwË0vh»„mÎ ê¨[/ àqWíâç +þÛÓZ;'žòKY?PëeI-ËE-“ $f*ÑÀ΂Z|™ÛúòÁëØç{à¡BcbóWŽýP!Æ?cì¿l>ŠûË_Kî>%ð­Fz$Á×I +E4LÂJ¡ât¥Ú R€têÿ£„‹endstream endobj 1221 0 obj << /Type /Page @@ -4694,149 +4680,149 @@ endobj 1223 0 obj << /D [1221 0 R /XYZ 56.6929 794.5015 null] >> endobj -354 0 obj << -/D [1221 0 R /XYZ 56.6929 183.6365 null] ->> endobj -1224 0 obj << -/D [1221 0 R /XYZ 56.6929 158.6249 null] ->> endobj 1220 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1227 0 obj << -/Length 3161 +1226 0 obj << +/Length 3218 /Filter /FlateDecode >> stream -xÚ¥]sÛ6òÝ¿Bo•g*ߧOiâôܹ:9Ç÷pÓö–(›JtE*߯¿],@‘%ç’ñŒ .ØÅb¿)1ãð'fÞ0®2=s™f† 3[n.øìæ~½g‘}¬_î.~z¯Ü,c™•vv·îíå÷^ÌîVÌßþãÍÇ»«ÛË…4|nÙåÂX>ÿåúæA2z¼ýpóþú×ß¾¹tz~wýá†À·Wï¯n¯nÞ^].„7Ö˸Éï¯ÿyE£_oßüþû›ÛË¿î~»¸ºëÎÒ?¯à -ò÷ÅñÙ -ŽýÛg*ófö /œ‰,“³Í…6Š­T‚TŸ.þÕmØ› K§äg”gÆK7!@©zÆÚΜɘU0…l 8‘7ó¦Ø})v8Öó粪 -Ó[Uuý™f×õ®›¤A¾mž‹K1ð²mŠj ¢ÔBϯ×($¸Ë¬ÇŠ†9é282Qo«Â0,-sÚêˆT6‘ѧbYþɹ,V?$S¯!ìFï—/öèl!µdÚi5[Á2cd Ç|Îw—ÂÏWÅ®aGWÍ7 …N8ƹɦU;"-úXt3bJµÖ>Ò“J3\ž%&H”BeÌ+P°íOŒQ虈"Îäüú#òÕ*Ȧhš§&”û‚Þ÷M±¢i ’LËíjˆûJ{¯Šu¾¯ZB-Ç”‹ÍSûB°ªl"ÖŸÜðm¤‹T`çE¼T8—w£;퇕‚¥ûg·P=sÂÌ÷N€4óe¾¥A^55ÂYqªÞ¢¸ö$”Aë„O§‚\Õ›¼ŒS÷yS6¨ÇŠÃ¶UýÜQ#¡Édf0x¨êû¼êfø«ŸÚ²Þ6qULJüZ5¯ÁNvåj¬Ûêy`à9=¾ä»²Ò†¹zMÀçüÌ`¡Àýýçä]ï NbĦh ò”ïÚr¹¯ò½Ó -j@P8[®ñk’N±m oh("kçA&0ù˜)†ç£x“{>Þ’¼Kßè´cÎðä]¢µÑrô?á}îšvÂ/yɬWÍ£H™ƒPñc\¿£ç¶niÐ; ò8W×4E1¶se=:9³”ÔM˜&w3ÜöL¾Ã_ôÛüñ¾Áæ‹%ªO -¥’I5fHË 37`èÈótX¯°q¼²Á&®j¡ÀC;!ÀšåI™‘Ia™‚ðÍ9Ÿ¿ÛçÕ¢ióåg:ç š‰ ¥ØÂ3Ú¦¿N)KQãDCïtq½SS -Œºé¡® ¶‚À*G…è%ë]K3¨þ®wŸûû×ûíŠÞŸB$EÐ}Ul"4P|Òvùò1¿/«M7[í#{)¦Ì¾ê„ŒÕmÿôxŠêIƒ¢„ âøúã=Tg€Ød ô$׃Ǻ‰{m€·r[œŒ—Æ8¸÷J¼ìcŽ—žqÕ]ã¢9Üü nZq>3çyè°&˜DNZk¹r1ˆœJ›(¥í|›o%ŠÏQE¬ A0å<ÃÅÐ|¾\6Aƒ.쾦Y/-lÔ &í…8ff„öCÕhw½¡* o·™Å„m¡œGWª\øGÎ ˆQ¡h?b‚4Î¥ì ç7ûpj€ÞÉA™ ¸H²ŒêKšxŒ¸‰ÒÅóz£LG'ô¼; fxQz>æx8Í]8BbÊ(“˜#~COT%©yЧ˜hò.–‰þH/AÿY†Þ‰ŸÑÈq01Lðl´$ĵ@!d5ð,b$[Ƴì·Þ¸P°x&<ªê F ZÇ8_{òA«Í#Ú}QlSälð¦V'ì|Yo6A³ð¥"ÁÁÓ°‚=Lùné¡Úpàåé€xµqùBOˆC æ¼»KÒŽ‚¿o!zO›ž ÞÖÛvWW¯ƒn–$ÖéXÖaÆJ`é#r8Žb`"Ú»W¨wXäQLƒ½X?¢?¬ÿ¤˜??–ËGÊ"´ËŒx¦Ê'Ö‚ðŒGíc×E;Š ³tT RWàþ"(Xàþ·ÞFólCT?I¼±2¨9DËŒ”zèC¼ñ)¼À€¶ÄÑÒ´TÜî%ó,ëãû tU e"ò&¡Ý©LÄÑ}¤×ë] ¤u‘·c„’ŒkmãÆï‰6‰aÚtHoÀ1@Ƀá”(ÄÄá¼R”xK— ¢hB·LEbÈA൅@<É&$BÎféø]Šk^YXëƬc&â ™‰|”q³þ!jù\áz_á{l0zôŠDCZÚoM ,ËÂñ…Ãxmåðø£S?ü:ðRŽbì%퇘Ó)?¦ÅÍI{cSoZ´„iäù‡&åÓ¨¢h+'Ý‚ )0€uC}¬Ón¨Ã:¨=žÝ„÷BŸ'ÞaMPz!áüþ€üÐ tRŠÎ ¡™u^à/ä)Ó Àæ3êÔ1É© ˜ÍßÝ|¢) -¯ ¸“ILYší»‘\F‡1žIaeßÈä Èê<ø.ÄDk®yà#\<§}„—°—Î^qÃd6á"¤ç$^AÔ[zÖ`ýpš -ç°˜y\q^n c!ı/ˆ2S¨Ç#S½^-ßj»3"{e2Ô‘y†–r,wÓ‚Ô`Gm×}Mûu{ï§ÛÿÛ·–­>½­ã°W¦í‰;› -R;øJÐ .Pf¥v¹K$}Ó»0cµ  -Ì(™nú8Y1¿ƒÿr~u$ØTIÈ.¤r,èKÆìø–eŠ°zãpÚƒà§ëœ½«áL³þ±Ò΋þÖá\vàbÀ³dÊuÐMæœÌ:K¾P_­Äºaþ²XæËK$õSî™[F­³Þ7 ¨\·´ ½Ä¾w¬tñyÈ5±®NF”Ôah^Âö:R.A~¦àHýëû>P¶Ì8äü‡¯Kߧ¯Ôu÷¡¥n!²ž‰Hpsý!äèó©Ã9Þ‰ê¨ÅDfz˦[<k‚‡a‹G1ã ?01lñ¨.9Æa K8ìµ Å!,)Åc PÌŠ6Îâ÷³]\wp9øFI+ Âqñó¤QÝ7µÀ‡’X[s£)9dÐü¡ íÄ8Žó}E×":Z-b¯_ÇžÈ17ܵ5nÀÌ®XîwMLÖGä@ÒÎólDnß•ÏåšÈ]tìZÍklU>—Ídâ/N|]¼·¡»ÌÿM+¡†2Ù¸±6x°S2Á°›†t$òPÕ˼Úmós¬BñUëç©’gž[Õë˜ Cädê(´b^ÈW*Ø>ÖKMX'n|`§D&_¡Ÿ&è¬ÔB©Ë1ˆõZ©=@0LVj{Écxé¬ÔÆ6¥Åñsœ&Ôp¢/Ô% aÅcìä?<&@§/Ö"ÖL›ðb”6vôÑò+ŒGƒOÖn”’­b5lÕ‰“¶ªÄú ¿qÊ7xˤÉĈ^Š{’,Ɖd1νb¬Ò%þÕÉ5×æ,é.Çöœ‹a+ 2„XÇЙ,ñ„± -¨šúÛ­U~›µBò!•P絇tÚVÒAàû§dÜÇedW’¥s¤;¤cÚà  -¥å€ø°Æㇻ®Æãý÷Ì‘B -Àf¿ µ -Œß½lóM¹$ªðJ'lJÝBžZ@4Æê ¿È̆_%M -%ì¸ð8¨‰Í¢ÆbÞWÅö… ’îÕ.Õ6Kµ†çùMÝmÃ'b7øUÀ;ÂTj/ÛŒúœ.)²ÍúMc<*xžâªë“_ÎǭϤ‘å¶A×æ~>ù­Z -ðAN›™Åt\¼Òmî°ôc…ïyô•Ú±£OÔÒræ¥w=>ŽôµÃ9OR%ÀVzÔÇ=fvê`Ê0üÕÖuÞÕZßýã°Ã/ç´#þÜþÕËÌ%¦ð ætƒþ˜õÿØúÎÆendstream +xÚ¥ZKsã6¾ûWèºj„/¬œ&3ž¬S›IÖã=l%9Ðe±†"‘²ãýõÛnB$EÉ»›r• 6@£Ñ¯AÉE rᬈufif„¥]¬vWñâú~¸’̳왖C®ïﯾý¤ÓE&²D%‹ûÍ`.'bçäâ~ýkôáoﹿ¹»^*G‰¸^Ú$Ž¾¿ýü‘(=>üüùÓíÿ¼{šèþöçÏD¾»ùtswóùÃÍõR:+a¼âÎ øtû÷jýp÷þ§ŸÞß]ÿ~ÿãÕÍ}ØËp¿2Ö¸‘?®~ý=^¬aÛ?^ÅBgÎ.^à%2ËÔbwe¬ÖhÝSª«/WÿzýÐ9ýYí„u*Q ’s +´™H´Ò^¸g ÿ@q ;lö/ù~]Ö¸5˜@&ˆ°wa•IýÐûmq½Ôqmü ké"?h6Ú䫲*»WâXå5‘xÈ¡-ÖDéfñyÇ9uW4ñ#SÛ²+–/庠ÞU¾ê…hx…œe*^xD±.öí;x“YD‹¬+4‰º}¾Aâoq¬V¸iܦ”"³–L¬áÀjâ¨*ë¯-5½Ô:‹Š?»b_çQë|WP‹WEsJ³è¶#*©yÕ6Ôzà k­³{¶ªy¡æ‡b_¼úÃ+­Î«ð mÎˬyxÝ0a›?ã­)¿µuIúX!ŸJ£|µ*Ú–Ú^å`Ú‚·5nµèP“&‰1¼”ív8$ª¦ùJ­Ãñx5•Íž¨¨&^%¯__ò×k)e„º2Š-p`LÀÕ¬V‡=hêê•&…ŸÙS·m@•ÞIƒÎðeƒ«cãe[®¶Ôô{Ã)’Ú%ðÚÃF~€9÷e—wå3óçõš릘²{e§Ïëö%L_ó³ãÞ†ÅI$‰El!È%I +{KÕ|äd¦åë¼ã.Ô9ízº®TRØTf—\3+#†T‰°Â×héû-êXg*jžºÒ;n&£@£Ê®Èk°Í¡¢žrCt2I ¹Ъ²íÆ’¡Ø=uÁÖRm£÷DΫÏØl(îél° àn3غW\¹‡N££Ê„s ¼Ä KlÉñ–&†¬•5qÀb“*t)•°ˆh ïÁ4‘ØÐ ûuÂ7ÕÒ0¦¡°ô¢TJ-²^h Bi’œ™ÐžëoºžÍv¸¬Ý⡽›‹•ÄåìQjg @TQ¡»¦…ì%¿¤Nj„e¡¼¤¨6p\Fšèvîp”´"UAïÞzf'©I 3yG)ŸŠU‰J*Öx™~kd›Ø5@¼Þ¿e÷ǬŒ&5z|Ìã³9ïë±.NÒ7|}ÀuÁ×{®¯£]LÝ]á@Ê‹K÷L3Kœ]ƒhtöáÚ_‚ŽQé½÷*ðµÛ_ˆ¯×”†Ú6ð4ÄòPÐ;Ál‘¹dr:ÐB´!H‚Ù±ˆµœ®LÀÓ(\`ë·ØÆ5¯‹«ÀÌK>TïÙzlêƒÅa¤ýù‹,N`uB«ÌyÖiJSÊÀAlùÍbWS£¾ VˆÚôüôx*HÂu³ËKîzÈÛŽÒ Âj¤5Õ;4«æa ÷žÈG‘¹åQÍ\¦õò&Ú¤}¹^{߆0æÅzNç’°W7ô5"BÒGp¤!ÿýëãîè¤`l‹Ž(Où¾+WÄþ6ÜDíÑõ–ÌmH;EÝßØ}¸ĸ§Îsè(ç2%…—¡×™T¤6îÃKŸZýp ßöø409%°?f•‚0ˆ“ ìxÇã÷|1Ø £‹§TÕ»ÎSG׉ÃBB-,ÈšHiЇ©sÿ¸ ÆÝÀçÿr8àÔéOçõNÒ'v*Ë”Pz*dGÔY:è$ô®7Ä8 Å3GàU‰TJ-aL¢†uæ:èã!¯–m—¯¾Ò¾0Ò¾P%~žá@­¹üÀLÑÒ;\A/\ÉÛ;ñZï,H¬ri€Âq²ÙwÔCeˆ^šý×áüÍ¡^Óû®íIU±ãUÐCñÉ%×j›?ôÅL¶>°x}V›øE´â½ííðôäeí¢„ ¸}û˳Û3P’ÞC&p<ϵÙÊú<:6Æ +ÇörÆrϘ˳pŒËöxô£Ì ˆÖ¤™½,Càšb”;SÀ IìÆRŒr§6–5ƒåW_CÑ—UðœäQäò]¬GðCý¡à3\ˆca×P¯åCóS{s‚Nj>Ó%JXiܤøÚxCSÀàžd B¶¥N¯Ê¡Fù¹H¢è@E7@¼,{h}=þÂþÝÁ慨ZJÆL/ušϨžûŽ-óöëá:`ø2z¤7®3 ubçr¼ÄxP}ðs›ãæLœúÍ!…A£êÕÌü-=Ñ”°¥#oO 5ã†U¿þÄ.ÁþE¦]Ÿæ-ršM¬PB áJÔa DÏ‚SÙŠ÷r¨+< àñB:4ÕQd ñÚp¢á×~|ÝËlEQ÷©³Å“ZŸñóU³Û…Jº"ÅA X!ç‚·r™HRó´AF99TÆy´‡¢¼¶]±C@fýå=ŠÑ™^h“ ›õzüËမ´}2ï=€h`”BNå WžÃé/\Œ^–¢ÏZvˆ³ñ ]^VíØ„·x-7t _In^ûÔÆ~2: oãmw¾üÝCÍ`äåd6ä:ŸÌ—÷a¬– QÂi1.}cõÀ5³ü(p˜ÄMÖ—€J†+8¥|F`j€FH÷2SíÃå K…ø±¹‚¨Äú‚p™f2+¬ô¹[õe¢!ðÚA&žPšdýöCŠcÞP(Y&I:¡Hjé>UŒ:Â=#´F÷Œ)ß1øõèá ‰š¨´~¾ ‘°0óÛ—)&ìDQÄäŽi˜ÿŽ—ƒkç>¢<j?&`üˆ‹š?í±ÄdìMƒv£<2Óö€M}ål¯2ÕÉå04ä:†×Ñìéîò$ +Í;i./¸fVG! ùâþhùq:Ú0`Š…ÐÍBú1 +9‚šžØ~%BÓß™ät˜E?¡®þ–t6¨ `ZÝD/“ÍX'”LÔ0¨>×9ˆ-±”3—3pÌ£êà9#œ‚¹LöFˆ0 B4†åâ°@¯ÞÔPˆ Õ;z6àýÇxp^ —*c¦ÑG\ÖèXJy Xgíx⪷›ÉUËÿë»üÝîôÔØ=ý­2×»§°@Æ°ÄœÉ:²õ·>&£-ÄιùÉNS)¼?;‹a.nö#ÆS-{é@¢ÞøP0D8@iE‚_Œ±ÂÕV“u~à2é9cÝýIÿ AVF÷ð_E7'ªIµ²n!zGæ_ü±ß²L× íw{Ô‚'|{»S‹ ìi1ÜV?ór8µßW2 +1PJdêuHÔB©A„»–P`{«ÄÂ!z]®òÕ54zóW¸[F—gƒÏPºÖ4 ½ðÕ7—ºøÙÌÍ}Tæ¼%™Øja‰° U³Ê«ºèÚï¸Åw4­ïæ.~µÓƒÛ’qvÈs¿x‚0ˆ?Sšq‘8¤ƒ¿ük¨ãOÅ ”—ΩçÑ€ÊÒ^(ÜŽ½p‡p"ú8᣽endstream endobj -1226 0 obj << +1225 0 obj << /Type /Page -/Contents 1227 0 R -/Resources 1225 0 R +/Contents 1226 0 R +/Resources 1224 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1219 0 R -/Annots [ 1229 0 R 1232 0 R 1233 0 R ] +/Annots [ 1229 0 R 1232 0 R ] >> endobj 1229 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [367.5469 658.7781 428.747 670.6783] +/Rect [367.5469 543.9652 428.747 555.8654] /Subtype /Link /A << /S /GoTo /D (zone_statement_grammar) >> >> endobj 1232 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [483.4431 456.4665 539.579 468.5262] +/Rect [483.4431 345.7585 539.579 357.8182] /Subtype /Link /A << /S /GoTo /D (address_match_lists) >> >> endobj -1233 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.0783 62.7905 261.825 73.5749] -/Subtype /Link -/A << /S /GoTo /D (dynamic_update_security) >> +1227 0 obj << +/D [1225 0 R /XYZ 85.0394 794.5015 null] +>> endobj +354 0 obj << +/D [1225 0 R /XYZ 85.0394 769.5949 null] >> endobj 1228 0 obj << -/D [1226 0 R /XYZ 85.0394 794.5015 null] +/D [1225 0 R /XYZ 85.0394 749.7875 null] >> endobj 358 0 obj << -/D [1226 0 R /XYZ 85.0394 642.7523 null] +/D [1225 0 R /XYZ 85.0394 528.8451 null] >> endobj 1230 0 obj << -/D [1226 0 R /XYZ 85.0394 619.131 null] +/D [1225 0 R /XYZ 85.0394 505.7912 null] >> endobj 362 0 obj << -/D [1226 0 R /XYZ 85.0394 502.2708 null] +/D [1225 0 R /XYZ 85.0394 390.6092 null] >> endobj 1231 0 obj << -/D [1226 0 R /XYZ 85.0394 478.809 null] +/D [1225 0 R /XYZ 85.0394 367.7147 null] >> endobj -1225 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F63 998 0 R /F62 995 0 R >> +1224 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F63 998 0 R /F62 995 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1238 0 obj << -/Length 3053 +1236 0 obj << +/Length 3335 /Filter /FlateDecode >> stream -xÚ­]sã6î=¿Â÷fÏÄ\‘ú Õ}J·I››ëv›ÍÍ=´}m%ÖÔ–\KN껹ÿ~R–íµÝéˆ!ñíÈIÿä$ND’ªt¢ÓHÄŒ'ËíU0y†½o¯$ãÌÒ¼‹õõãÕ»»POR‘&*™<>uh#'«Ÿ¦‰Pb‚é‡>ÞÝûχ›™Ž¦÷?|œÍULïîÿqK«on¾ÿþæa6—&–ÓßÝ|z¼} ­„i|}ÿñ‚¤ô8Côáöîöáöã‡ÛÙ/¿º}ô²tå•Aˆ‚üvõÓ/Ádbÿý*ajâÉ+¼B¦©šl¯¢8q†²¹ú|õ£'ØÙµŸŽé/ŠˆU”€&#h=®d)´”€££@D*j•¬ä˜’*9Ûlª×ùa·Êš|þTí_³ýª(Ÿ‡ÂK-… @êî'Œx¬NÂ'R'Bà¸ÇÊç]¾,~•×pI8}]Ë5-×UÝ04ÛϤ™æü‚ìç+zi*zևŶhhýͱ̶Œ_>~¦É[>Ûd/9 ->™§±F¡DR¤q¬,ÿ®JûIÌŸÄjºÈé‡|­,3°E(€ºfœmV7ù ,2”zúèvVùSvØ4ôRÔÈ»»Èt¦T"©XNþ3›'A0-¡÷´ü/}ÔÓ2˜ø“ûæšÈ;"CyVÖÌì:ããKf›4D» Š6'Ý( -#Uì”CÎêÄGÛ™«HO_‹ÍW†”]¾JÛ|…òéôq–ªiE8y™-6Œç†uG±@ùšk4”§ã˜žR)d¬Ë|Á¸A û—̪ÍÊ£Óìû7U‹ÂÎgbËj ƒéK¶9 Áàº3ØÓt]Ž°.Ã\™?vÅÃ¥®i„®Ié>ÙŽxcTA12Hø“‚E8ÔÐç‘^–Õ¡kÞÙ«©V‡%G(A3!Æ«®R›â%¿ÆK'+Ê%Þmê<l€ºÞUe],ŠMÑ íÎ"x‹`¶\æuMëeUÎä´!&6«×Õa³¢5nˆÊkѬ'³OÒ‡ùþ…ü“Y-«¦EG邾ÉÛxQ ¿• -hc·>VÈn¶Jž:'ãö, ØɆ뾵3,Ïšƒ y™í3#Bµ,„%°ëmväcßUuî€$n‹\÷£ë¢Ó6dɘñH|e/=3¹ÿDÏlµbe×Xd5E ½±í¦ì\(LRÓdË_ë÷ôVçù0…:À°3I¢TD&¶™ööÏZÑ÷[Ú½ÿ¯bHBϬ\ >°Ñ/‰…2QÔ÷¦Ÿ•ŠÊbAé >Ùd‹|S#”Þ‰¶ž.Š2Û»8˜'M:ý*œ62)ÓQÀ\°, ó–8ÞÆÒú5÷…ǯó’ðW9…ó| iu=º »ÖEèЉ7uåì´KË<,#Œ^V¯ x.ÙÊ9dp¨ÆHPmswʾôi %{ÎÏ;Bœ„BEi|ÙºXçÁcµŽ` ç)ߟ883ô/ñåó=Ö='P±0Ƀ^©ØÕt¸ä:9RI['#Ü×Éø‚‡O¾¡¼xa,¬p…åcZ­_ØÍ5cµ)SpÑU_Ç"Á–¯[Œq™B ™@Ò·®ŽROâ4\)“²ÉM…©38XÙ"žµWΊEION⥠-ÔÕ’ [œžH) #Õ Øô6/[ŽJ‚+­a¹Ìj[À‚i7©@QûbeˆóÜh#TlœÆÈÇj'jG}`Ðk%ýzä²úÒ@GCœ_>9dí(ñšÓôÚ' ß«´Žì“8òÈ Ö€´°†zÞ{Bî¼ì½¬ Þë°PôŪŒuµ9)/d E IçòÑkäìžã‰wÞs\Hj¶„ƒÇ¦ÀWÕo´å”ÃåBÒ®rZøzO)n·peoѺkÇëßù¾p¤Zo¶g2…ƒ­5·`ªÍKîØ¥Æ)&MY8Τ”S6ª݉xÛ¼JÆTç'u£ÃåƱk Æn…•ËMÅç=ž³ÐÓ–(wˆtàz¢ò¼ÓãœÇõx§î -Ù9„¯,7Eý [ÉDÄ3°h°î±OzÊ 9Ò+tö;{ªol_‚!ÅdûÊé°±«övKîÙSåÚé ׬Fûqýê Þð¥s+¶:xÁÍQ?”ÂÆ¡¦ük‹_tÃé í:/çU9"ùÜãö̈BÞh6=±ùÒQ(ãb]“ýJ=¸=ГÎÈ6ÔÉ¢F±á‹%i™1-Ù0í5èøôÍ6Z.¶5Ã6êÕØHCe}Bc½·æ„J¤Æ˜ñ)áÜSœwIÒ µË_¨ 6ihÛ=¥Ê’ÒÉXaËþ…L:Šo1 5AÁ­÷˜´ðmœƒ•à%ùè:cÇ_tIWŒI‡ò¦RB%íèŠl®çl.‹¹ø²8àI§K¶K<|S3z • ‹ß³É¶EŽÃaLt¡¢õjtôð=ľb·uÏ@À*ýRÂh_nùzÁ)¨Û‘²¶Xì;׶æ¿g[àâzÄ‘æ&1º2ó­ìعª ‚Z˜Þ,nØ” ¾$íá -Š»¨Gíobs("&oïdriΠûA4‡2Â9é ÞõóJí¦I,³-ƒ| (õ–¡»U€Ø[Õn¾OÁŽS`§odø é D§®Å£M2# k „dåšôqt:ÞR9–ë¢ÌÝ䇭6gËÝ9ÇÈÎY6k{ÔLÛšsÄPÁMMýa;u \(_ýÅôœÊî¬ëÔ ÝŽ¯aÛÀ!|ÿ¯5þÚÕ•ôq¼ÔO!üE'2Î_’±,”²2Œzm·ÜhÚq¥í¡§#×®éƺÐY’Lj«0"žÐØÌäÔ¹.-¯Kì}xÚßÑ%@Ÿh"=™k°_­M¿_)ÊeµõýoÝz±†`ãâœÇ¸ÿô’ŒÚÒ¿p„qgX_4ú|cÕèA)˜iƾê¬54¾Qz¹R°?‚A9QÐ,$aðç“°§8ï’Pi"‘ªHÙÕÝÜ¿],~ˆ’ÓiãÉ\,‹Å~“|’ÀŸ¤šéLd“)–&<,v7ÉäÌ}wÃ=Î, ͺXß<Ý|õNšIÆ2-ôäiÕ¡eYb-Ÿ<-žj&Ø-PH¦o|ÿîá»=¾¹5júôðãûÛ™H“黇ÞÓè»Ç7?üðæñvÆmʧo¿óáéþ‘¦´§ñÍÃûo ’ÑÏ¢÷ïîïß¿½¿ýõé7÷Oñ,ÝóòDâA~»ùù×d²„cÿã&a2³éäƳLLv7*•,URÈöæãÍO‘`gÖ-“ŸJ-K…Ò IÉ„Ôr\ÊœÎÉ(΄NE”²àcRX(å|»­^f‡bq<Ô›ªžš ¸£ÒI—ôk„Ùá€KÉ’4°ðq_,6¿$‰(êÛ™Ôvú²Þ,Ö4\Wuã¡ùá–ÛiáíbIME¿»ü³Ÿ&Tw¦gúíX6a‡fí0ªã§ulüT]ž‹*hŽÖéôa…BÈe®R¸ç,K/ s £@Á•±!>î) Ÿ–Uƒ›7iÖE9²­VLXîWÓnx®Ól‘/ÖÅÈ~¬(Íø`¿c¢Ã 7+‚ÀÆw82Ó +¶>¼lêbd{žhÆe"ÎÙT7QéÕ­aÑd&­e6Ix%Y¿g,²eÈ= –Å*?nzø%I“1†¹ãÊ3±­ù¶,šúkZåžQž²¥ÃYaN‹ÜIàOÂμ„7Em K$ºj¯]¬Ëö±Z™÷˼)ÎŒ•b¢ÕõÝ#ÖÈö=cpÖ˜þþ=cI4V‘˜`¬Æꂱ"+ëã|·ihüí©Ìw›!|ûþ#Aé5AWÕ »¼n +?þOU5˜©Èôô‰ô|&øSkE_ZeÑ™×Å„XçeQžÒn àùˆMÁ!ìNÉÐYdÓ÷US´YçMD¬^6å'‚·ajž“ö¼ñ°öH``LuƒGÿów¿êáƒ;X2ð5Ë%-©ë¾^nÊ›óz^çºbSfЗh-ÂEš<|šÐ౫5Ö]0¢5gtÖ‹f㎠Ü&‡Ü)˜²€Ü%~¦¹ë„T,3h9]HƒœãhòͶ¾l»°sH×m·ƒuÅvÖÐvgÀÎK~X¢¢ ¯Æp\#¯3±F8é]ˆÑÌØî±ÎÍXËhÆ0 f ÃÖŒñ!š1<íÈÖŒaÜš1>83†AǦ:˶ù³·×,eÜ +Þ×ngÙx]~I*¦ó‚žIpÈ×Ò1S„"ClÁIP—Ü8ïàf:QC¢É8¿¯lW{„f WÒ;þÿB$¢K´&þo,ØIÉkXsGäƒL‘¡"/kÏ,y +–žmïÍÝ,j)mF²&c–‹´/œp|r2ÊL_6Î9)KBȾ8¥F¨™L²éÓm&¦áe>ßz¼¸µ2]Áå;B®QQV§19eœñTô“Qå†s®ì;e/Ú¼<É~ýªh1‡ÿ#±å$ e2}ηG—ÜIŸ0Ðd]Ž°Îeùª°ìŠ Ö&á¸pM#tÓ:fwçÇ£ +‚´ª“%!ßÇúò<Ñâ:– Í{ +GËãÂ+‡ä ‰ÅAW9ÈxïðÒÁÈ6åï6 –:àcƾ*ëÍ|³Ý4'B ïQ#˜/^`¼÷ y)1±%X½®ŽÛ%=ᆨ¼lšõ`ç¸qaL²=«”{ô‘hçü¹l7e™ÔÆÍP–ÊzÃ’AÃI7@¯GÃq_Ù=¬È›c¬2€ s"DNËAüÜx—Ÿü¶¿ï«º@:m‹\‹vÛ’"»l·<â4ÀýžþUà\¸°Õ¦ìÜVêÓDjš|ñ¹¾œH“ ×™¤J0“ˆW2ƒ€=ë Ÿ‡¡!Í/É +dª©Ö=FÎKä€t}%(=uÖc ¦»ª+éׄì\‚Oºž t±.'«õ¡ÏzVŸJÐÚšâS/7€Â9K„¹ÎCÄa¢—(ͬU}&žÖ”§Ójï¯Æ/¹jPÌ&:"*åR/G±Ã ÞU•ó<@ìÛRº—W§Ó7ðÏãU¢é7/—ƒÎíéj`¥úvô‹ªÜÌ)®Á’m>/¶5Bé™h›é|Sæ‡S¤Í¦ßCjÓº$a[ï ˜síyÓ·1‚4~)¢FáöXÎ;üe±÷Í pEË»1Ÿ@½ç ö­}Рùnë*èi—–ËtÀM4ýr ¬^<àSéµÜ; ï£ÑT»"ìr(£/Ú/É?— ÛS\qݺX— !bµ†àgUΛRàK,O¯ï±Fè×¹)³zÈA/AV" É}‚¬„nd„ÇPãð×ßPáQÀÔÖ£øóyZ­]¸ÉµÇê6¤Î;2M™ÆÆj7 óùAÉ£†¥¯]¡žùhÌ´2OÊ…5!³ p0rÙ%üÖQ8KlJúmÖ£m#e˜’¡äp¾; e 0©n@§wEéº@ŠÇBN ÃEîzB +T»!H‚:l–®r¸Ì±L¤6HŒl¬G툋GÃõ_–5<@°ËU°Go !Þ]kmCŽáyô V4ð­ŠKÖ›€Ä!¼b½¬+Ö°ðèó-äëj{ÞtH8KëêÖkdo9èFª,lÞï& á’7øÙn07ÅQµòm"p} +éF b¦'„¯³pänÑŒkïÇm‹Zkv{z +G— +ªjà9¨¶ÏE`—*&Ål¦QŽZ­œó©WªŸÂŽxÛ¸JÊZ¦ƒƒ’ï:õqî±Û +a"ESùýž.ièy-$Á”IB1T^6z|›Š»‘N»Ä¶5 R±Ô$6¾Âæî-¨ ”VX!­rÈ~G6ø +>>5™ò Ž«HЧÄE®B¡ ûêà: Õz&B!ãFàØËÑ-®_4*>t®ÅUA'Ï}YÔ÷¥vÈ)»Íǘ‚º§±³ŽŠ]”³Ñ× ³ˆÛÓ#òy£áÂ$µ_@ZI¦mpvMþ™ªor _Ú#ßR ‹ÅR/å$eéÈʬWš[à3–Ù¨ºXÑ +(SË- Æ¥êKÞÆ –YkÇßÅÍ"ÁY‡"½¨ìr'GÔq_ +” „¤!‡©ÀzCþu‚¯pù€{íÒåÐù¾×oúAÖן jŽ#R Å%].Æ +™B0¡‡íªž™…\Ëü4ˆ}gå-‰—Þ×ÀæƒpšÓê×0ï½g[äTÝað‚ñíΠÝðx½Í~;j— ƒQö%¶#˜51ÑŠ™BO·õÂò§~ +Öâ÷|\ÜXÐÌJ–¢ {¶ù€׊ò½)È™a¶×~–#ƒ•$<AZ§zÔþÆÁ)K¦<9xúŠëk­=ØI‚!áûšt éÆ¥ $–ù΃¢(U•2\*@Ü¥šÐÒ@¤àZ(0Ó×1\Brp¯@³PÜѦ3#¬Z$//ФÅêRGk—/Ö›²Ý¯´…WL]°‹ü’b{iii›lŽè)©ÍÔVÓ°ÿ•¼5ÞKϤ‚Ë趷ÎM0ÌÄäµu,þßêôôúi<ÇÏX¢ÕÙgÏz¬ 9,—ªWøºÂ—þ¥µò)v¨€V'\‡:¤ëédP¤ˆY(`ø…Šæ–O‹ëÒŠ²Ä¢Ç÷÷;²èŠzГ™õ5ƽî¢ÚÅRþ·n¢Xƒ¯ ^.b<|xÖcªôïø%BÏË$ýkø¢^÷`ÍÆ¿Úíg@ø¾ØOÄô§·³1Pðªìz‚àÞzAæ8á˜)®ÿtüg]’瘛Œ°ûvç‹9‚à \ò¿ŽÉHñ&‡‰„g}&/¥ )æ:ä„þE¼¹œ‚?×m©ÿºåA +lz–‡>…ko¨Á@1–Uø€œ €æ·˜ÇÅ KöùÁ1Á—ëL‰¶Ž÷ß—T‹ÏÎÙJë\wN­ëŒFѤé±ïå¥×Ui| "²(­SžØÊo¸öäª}Œ’ Âc}qíh¼Î=¢¤Ï”püæÃÇ<î  ,>ìeá–¾Ž‰V¶ 7KˆA_ÿdļu¯ ð­aMP'€>¾{K©2Ù½¹T üF• Î\ÂIr ¬ ‘:Ô´”âc¢s—_ðwË…;óÊ·n¿Œ^$$¢( ~ká P*ž½#$PG'ÁÂD¬ƒöDéϲ4ŠM»ç¼XçÏèÌÝ2ëã‡MÚ#Ö”Â(¼â¾õ¢}|5ÚÃ.}Œ(S†_ŽtQà¿ØŸþP±ýŠSú´fü« c™²@Ä3…çIÅyó)ÁÅëÿƒ”îendstream endobj -1237 0 obj << +1235 0 obj << /Type /Page -/Contents 1238 0 R -/Resources 1236 0 R +/Contents 1236 0 R +/Resources 1234 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1219 0 R -/Annots [ 1240 0 R ] +/Annots [ 1238 0 R 1239 0 R ] >> endobj -1240 0 obj << +1238 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [369.8158 645.68 418.5625 657.7397] +/Rect [184.7318 660.5919 233.4785 671.3763] /Subtype /Link /A << /S /GoTo /D (dynamic_update_security) >> >> endobj 1239 0 obj << -/D [1237 0 R /XYZ 56.6929 794.5015 null] +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.8158 538.8963 418.5625 550.9559] +/Subtype /Link +/A << /S /GoTo /D (dynamic_update_security) >> +>> endobj +1237 0 obj << +/D [1235 0 R /XYZ 56.6929 794.5015 null] >> endobj 366 0 obj << -/D [1237 0 R /XYZ 56.6929 475.2364 null] +/D [1235 0 R /XYZ 56.6929 372.9462 null] >> endobj -1241 0 obj << -/D [1237 0 R /XYZ 56.6929 451.0522 null] +1240 0 obj << +/D [1235 0 R /XYZ 56.6929 349.997 null] >> endobj -1236 0 obj << +1234 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1244 0 obj << -/Length 2371 +/Length 3002 /Filter /FlateDecode >> stream -xÚÍY_sÛF÷§ÐÛQ7áfÿ/™<¹±“s§uRG}¸kû@K”ͱD*"eŸsÓï^`±¤H›rÒ±nž¿?ûðëÅñÔéhvöñœÈ§ïO/NÏßNc‘ëep`Áû³ŸNiôáâøçŸ/¦Ì~<:ugéŸWp…ùrôÛ|²€cÿxÄ™J3¹ƒ/œ‰4•“õ‘6Š­TKY}>ú¥Ø›õKÇìgTÂL"݈¥3 I™U0…¼+V«i¬¸‰ò2»\å8ÖQs±ÌÖTçÛÛ|KÔª$Ú¦Ú6D1Š(Ë*°då= Î>ÝZšË‹íT$Q^×yM“¿sÃïŠæ:0±.Ê«VPo1Ïü²E˜­æ7y Å+ =+Vp`“X–#ýIG‘šHH¥q¤£jIÒ GtC¦æ: ‹@)«–PÒ§7ÎlhñïœËÿÒ”ä\¼Y\&oÞ¼V’HûÃâ’:ßdÛ¬ÉiŽNöñFDjžÍ¯i´Îšùu¾;`Ou†féxR¦¸Õžg6MeT‘뮳›œF^}´w‹cH¬ŠºÉKWáÓß*Èrž´ßþQvuŽ:@ø¦=ïë42^#’WeŒ‚,çÑÿ裬Êü- ÿ|Kr^ r”`Ò -çåœ-[µ¯èñJÉpxþxÇÇreNØ40W›¦h×ï­´Éç^q¾xõ„)¢žiJ6rofOÁtUtýZÂ2ôc6ûe—oƒàc¢Æm(-xPª:ªö8ªw ¸¨òºüGC7eu÷€7+ë;âbEk2úúe—×hF TQ„È!T—T 0H ˜Óé1j 2¦¤iïËKŠëj·ç#Ž;öAèìoñÈÚp*;Àš!”AÀ<à?4B=Ô; XœD…ŠT­qÑû–!w^Q™hè h/BÒxŠV“vqÀǶy}ÛŒû¾3Ì:— |ŸÑ€o<Þ@kÈÀ*°gÝ ÜT'¢¿¢‘”2§ ÿSqmZÍA3¥mQßx¨7VÚ?}œZ@÷uÑ4£d.œ&d;ûD3ƒ«Fî2&ÜB†6íqÎÎON†§‹›ŒsRZO Yš$Éxwã¾HÊî}õŒÌ8nö;£–Ççÿ1*à¢MµÛ[•’F¬ gR‚¹ƒÿˆ~‰ dt‰®¨„÷|¬”Œ÷‡'’­¥|ÄŒ*ù)çœiÙAò¸w8édë·[ÒÒ -h¹÷e¤˜ÜB WëpŒr³-n‹U~åfCpèܭ/}L „Ù’ô"¬Ýp­•ZÉ[SÅrÌ0j$<  (Í+—@BD`^p~Ö‹W>¯ò2ßf«Õ=ñ×wÝ - -¦{bXõ"=»jwñ˜œ„ìµ \-iŠùn•EÂñûº!"Ž€TÌcè|¨"í!d†\nS'öW8â@Bʤ?ˆfÀ>D³J -©¥ÏAR¹¨XoVżhÐlR%h6¬~kš¥¼d,eü+Fœ!÷)¾¢u‘NÃ9Lཀྵ«<[Ô­;$,±p²ApáõHD÷²Îç»ï=Œmà¦;$†6dô&PªÖ]¬e·U±ˆou¼[lbTn —SÎøîQ×¹€:\É¡Xû7Ä»ÓéæYI‡ºÌ‰@Q€”Ö¡„¾Åœèíµ=ôPB ‹ƒÕ7Kòýu[‚­òy­}çÛ&+B­å5F3 -îÍ艋|™íVM(î(5äo¾]¹J _§ö2àDHÃŒ„Â*F¯Uf]“öÚ{-4NdÊ0<^dXêœé¯yÜÉ)¦tš>ëë§ÓV†ô#õä¤71TÏ¥#«¼~¶¿èí¡¦Xkˆua¾+%jÈf©O¶cIn$”y*»Ò2¢ÂÐ/€{}^»ÇeEè~ïÜYÖ;· 4ä2a*¡›8ï±Z„œeTŽát_±•ÑéC»€H-@3•hÈ7ž|Kr¸UE<½±?éÞžðúl-''œgÒ;R+7î ö'‚kï¸„Ò -pu¢9¦)ê|pšt.ƒpÞo|hã -?»ä`û8 ”†{Nû¥96'ùåTbp†e}…,”-Jë ˜ß.èA ”åTqŸïñËe…=5Ž~=ùDœÓ Íá‚%F«a”ÌÞaí—èV7€_€~øÀš1±Ñ%*¹C`OB“Ì¿!¤D¢gH!>cÀ\UúL‚ìQ¼.Hx¸âT™ã:äÕ2fxÈû°Ahª5ÿ0ë’À ;1_Ùàw¬lHfWÞ ¹;{è‹:uÌ‚Z“~)¶ìUj­8Z¥j·’@Q†Ek·ö¿o÷t@#[v¶tÀ°çÕÓÓ¯{$fü‰YjÂHez–d:4‘0³åö,šÝAß»3Ác7(Žúáöìû·*™eaËxv»¬•†QšŠÙíê×ùë¿]|¸½¼9¤‰æqx˜8šÿpuý†(}^ÿtýöêÝ/7牞ß^ýtMä›Ë·—7—ׯ/Ï‘ó%¯ðÄ„·W¿¤Ö»›‹÷ï/nοýñìò¶?Ëð¼"Rx?Î~ý=š­àØ?žE¡ÊR3;Â(Y&gÛ3mTh´RŽRýãìç~ÁA¯ê“ŸQihR™x(•O€& c](À‹ó@ 9¯Ê¶Ã–˜7k¢ìò}W.U¾§ßWîc‘¯Vûs‘΋¶-Zê\æ55òªmhÔ¢ J»+–åoQ$‹Õ  Èd^òØã¦\nÜü¶ iÝÆÍ+ö÷ÅþÄ]Q·Ì ÛÊNó®À«yB„™1Ò®m–‹ŽnlÝì©Qä¸+¶¬ap²D¡Ÿw¹ý®*è :J ¿ÇMóÊ–wl¬Š¶¤™¼ðŇ+j”<¿=ìv;sý‹‡É +íœxö‡JC'¤òïUWî*{`¸a1¸a…ÐÊ`$©MÀÍÑà¡:˜8LD?¸ÙueS3wö:-_ÌΡ-V!Êl —ã§| l¼ ¥U6X:È’Pi•:ƳÄQ4ÿ}òúáµþûÊw‹'¢è¨%¤Ò£Åþ"£H¼\-Ò—/¿Wò•‡‰$`?ö%%íw,« +ΙyQç‹ +õ1Ò¬˜@¬ó-“zªÕJ kH1Š(Vñ\PƒM ú¦¦¿E&:–݆±-ë;Ç°·Z²Br¯Us˜(Ѐž×«ž+@‰G‘ŸÈ´Uh¤oØšð†ƒºMÎK¦Ô#ÔôµbžMFóúD]£›!Òé°8¥7eÛG§â}¬‘JÖ‹­mÞ-7`@žXQ,c3²CnÏ39oH“·ùÇbj|µØ¶gÄ)";þÚKÅ ÎïEÀ|ÖÍq26¯Û#bCsrúùÇ¡hQŒh§  /‡ ³8¥¡À‚Tv9=^a@h%0î¾ìJAÛöËÂsà >Ž˜ý¢;Šc>UgÅ€Y;ÎÕõÅ›7 ±‰2@§"™éLìLŸŠe˜¥iê‡ÄA¿b0\’ðî=#$:sÚÙÞëy„ +~1Îtr’*ÅŒ@›(”Ò¤c+99´1@ò 5¯¶€×ÒiÌ›Yóñp$Â$SŸÓ…QÖûg¿ª¨,N‰Q)²””"ËJaA=uîÁª›- ؃BÓÆõa»(x…µÕ7Œgr¼–MþãîpÀ0Ö½+ÆûïJˆï+¢v¼VÍ–0ßDfÊÄcC&‡cy¢ã%Þ‰|©€ÃåB"5¿Ý0 ;>VB|¡z·l==ƒ £¤ŒR»!>o#Á{¨4vvL÷:8¬vnìó ijÌ£^»ë÷§o‰Ðã cÈ죆ûÅ‹MFñã±þ~Žs$µ™²¢¤°ž˜X°á2Ô•A6°¬+€©ÔIaæX·D‰;m&È£=b4ÇSí<¿oÊÕ—™A¤µ“¼_Z ‘(Î’ñ²½¼Àª2©ÌW ¬LöåQ£ôÏÝ•÷Eå´‘vây#TzÊ ×9äy“lÓ/§T‡‰âyq?·¥Ÿ•ÈBeíYïÉXitìË#)º/})¢ÔŽ-ÍØ]Ž¸§ÜíLg1š¯À)4\Rïøfî¶αÎd¦i’yf™0K’x8‰2Ð@$*œ*ÁTÙÓ*Ô±ä}ôSÜéÏq§ŸàNŸ¸›"9‘‰PÚúÏ$ ð#RñU~ ttA<Ú"C)’lì{ž¿¦u¶)@Çz”Lx|\<ô©ˆˆW>€¥ÂTÅN¿9ŠÀò).?b3ž—k"QªfWl´® û©ôB]Ôö dSµ¸/WÖÁ)c¨r©os·Ï·[òˆ +d@¦à×9j6Rln_2’n_Bwqï:7Ü°ì@Ïö;Þ„]Ï÷ŠÓèyjh»M±E¬<Ï+¢ØÛ°ÕMMÙ ðÉØŸÔ È‘eæW&š® +²–ü>/+,Œø®)Ã,*6_¾¦D¦z|M°&Êvº ,›½s¢MMñûûK‚!½@°ÃÆ›Wx{ ePDz-Ч‘M·pŒg¿’TÎæ¨"=I‹šc=öË/¿œÏ?2¯aNÏxÈ–° ÜR+6F™'JaÂo^ß°æSÕ‚Ç×Mþ`CÌe% (}Ú¥®–žb;´LkkŠv¼,!›«ˆ^Q,¸ã¹(ã‹åa_v'œ–j[“†.¬¢¢Å¸ .ÿ]¸¾]Q¯xoª½¥óû|_6&îòÀ'A°É´Úh-æ‹êà—#*‚Bkð²d:÷²Ùn MaDÉ3èv¹‚ðÃ"E謊¼å~)‡¦&ß@@%˜¼(‰šQ€‡^ùŽÝ-Ì8£ØÞ ocËëزàÔSú"ÃΡÓ÷<°èr`èǭ‘¡´À{ Î/Õ5 Úmn-Gp‚´ncýv‡ý®!c“Š¡¼èa´ˆO¼ àÍbô|u¿­ç`Ë N²kj|:ðÀ1Hh%¾ì}„L†–ÜŸCR×àaÐ{Èž[=¯‹#ql[ªYÑüÐ5[ˆ KÖºà¹ùnW•'®‹Ú›.úÌ·1êY5ùÊ¥ŸŽTÆ'ÆjÕ1âné[ÔKÀ1ùCâ6Áw’½ù⽂ee"¿ +DÄq“O3˜ç/Z|1/Kò6pŒ–CºG­G ‰pø”§@>™$“‚˜ÇŸÙæÉŸQír5‚¼CøŸ· ¾#ðIJ&ße+]öaê”M ¨ŽOW]?5§W'«bËÜÂno ‚]zy&ÿ„y€±Š§‹Ï©Î‹Äc_oóèA‡ÂÄ—ÔV"ˆuðŒ¬¥Õ­écƒñÒ¦\”QH +UΉá5}Ûfˇh  j"‡RØ •22c[øåúêŸhâ’}dK?@‹ªÔ_3«æèż)œ½Ï×?c²2Š“ÑÙk‚0v¿nÓÜNô!A¸íwûòüœÕ1ð¨h£H&ЂýV É/“6—¶wÐB`#ˆ 7<0">Â9*#? YÓ0'=V_É=ù +ÃY»{Â$¯×6ÈQÑájÙo±r…|æé¨Ë>5Á½%ÃT,)huZ߃'ÓòîqÇ.òë,èÜú‚*¼>¥Úå"~–FTC]Mu Cp3Ù%¶DqøeUTù¼Hò´¸ìkÖ1O ªÜâQóšG[ÿ ß©ÿ®„%‡»¯ä8ï8…9t}o¹m¾.œ3:9–²žøp©öÞØß ý…í®ï鉻©u^Çó¨f<«è“BSɯ¨iô5Ÿg¯úü²FªÀáMËžcr÷Ã|Ãá¾ÿ8Q&ÄñüHÔWþô£œþU‹Wi*ýÿh˜5Le–8¦ðHF=zpÿ¶ò˜õÿ‡Ëgµendstream endobj 1243 0 obj << /Type /Page @@ -4849,42 +4835,27 @@ endobj /D [1243 0 R /XYZ 85.0394 794.5015 null] >> endobj 370 0 obj << -/D [1243 0 R /XYZ 85.0394 644.6312 null] +/D [1243 0 R /XYZ 85.0394 558.6856 null] >> endobj 1246 0 obj << -/D [1243 0 R /XYZ 85.0394 617.8313 null] ->> endobj -374 0 obj << -/D [1243 0 R /XYZ 85.0394 131.6963 null] ->> endobj -1006 0 obj << -/D [1243 0 R /XYZ 85.0394 108.3585 null] +/D [1243 0 R /XYZ 85.0394 533.2657 null] >> endobj 1242 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F62 995 0 R /F63 998 0 R >> -/XObject << /Im2 984 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1249 0 obj << -/Length 3641 +/Length 2437 /Filter /FlateDecode >> stream -xÚÝ[Ýs·×_¡·P3&Š¯»GN•il×V'Ó&y8‘GñÆäÂ#-«}w±‹ûâ‘RÚÌ´ÓÑqÀX,~»Ø]@êRŸºLR‘zí/3oE"Ur¹Ø^ÈË{hûþB1Í<ÍûTßÞ^üé­É.½ð©N/oW½±œÎ©ËÛåϳThq#ÈÙ›÷ïÞÞ|ÿ·¯¯2;»½yÿîj®9{{ó—k*}ÿñõ?¾þx5W.Q³7~ýáöú#5¥<Æ·7ï¾£O?'ýxýöúãõ»7×W¿Þþpq}Û®¥¿^% .ä·‹Ÿ•—KXöRï’ËGøBy¯/·61"±ÆÄšÍŧ‹¿¶öZC×)ùÙĉDÛôrn¬p0ÿ´”•È”¢,ñ"5Ú´RÖjJÊ‘ -¥œošz^Õûrõ4^±’‰ð6Ë.ûÃMÞRMÌnz³+%ÅÑìß¿H©«¢¹šíf9þd³ûM}—o¨jS6{*Õ+j½ùÀÄËåîJ¹YÑ4Ô?c7«òmA¥¦Ø})vܼ_ç𷨚C«öŠ¥-°ò²`j\{èµf2ä…ÛË͆J¿ÊÅçÍSì^¡haäû‚©¨/,1ßì×TÉËgVoVÃe‘MÉ+¬é…2¸ H'ôabÐ4—B Ñ6uªÃ¶iæ}ù¥¨¸Šó‰3PX›¦ ˆt° wldÜ°–[ã¾V ð¡ÀÊ›­2J‚úóPËb•6LP6± ·Û‡ý™](ý"YÕTŽö˸n<9Y¶Ø è•8:ƒù KS0ÂV?sö©NŸ†-Êj›ïwyÕ¬ÈàÌ÷嶘—ÕÑјH‘¸ó|0͸ª“T™!7Õ]}¨Ð|;O(EÖÐt;FÚÍUUV÷Ô¼©«ûp!é:¯b)*PÚæÕõÜ–Õa_p5! Kwqžb·-çªÌ¯*ÚÑ -toù"T(-hqʈMÅu}Ø5´ÛÃá`/ÊíaK_òÍ¡Ž¬O›?õFµÒŒf<$ -— Î#©GuI‘jIår3‰$› >ÔyNZª V†hÒ"óÊ yéФZ4©!š¢ã3! ʨ©øûx¯ï£­£ÚàO¨YªE–JPèWjÆà‚o—bp©¸œqztl¼\é)l©[ÿ5h%Î -è’œ‡VŸê4´ZªÓFª>ì­T*”òê<+-Õ/l¥°Y08`æýaÏàBo„OqôJ;págßTá÷@ÂÖ*PkE¥èK¦B©Ýޞãè`Ã.}@y3¥ÿwõ?n­ «2V=©ÕHEªÓÖjRà,[ÿ +-Õ/Cså„1rÄL)##¤Œ”{%Ug¯ ìüNØ+è알آ¾Á^IÂÖbˆ[Ø^I‚WèÅ"a€¥"+6 òÿa³¬÷Óì<ÀúT§ÖRo½Ø•ùfþÛ¡Ø=Íw ¬#`”çy˜fbþ¨L -XjÀÀ§Mþ%ft'kÓš¨~ëe¹È7!ð„¶À-5nófŒT÷úkŠ~á7ä1–D€z*ËU°Y¤¹Ëœ'¬Û;'à -Ü@càààjM<;?[€¼³:]ç‹5Õ7‡XŠÌBñ@1 ”rú¡­çª-èòç(¥‚uäºãp›vFZåÕ<³³ox´ªØ?Ö»Ïôq—WËÇr¹_‹©@ûöÊCD -”pàoÊmˆVÁ ‰ ®åÊ tâˆD «ÀˆÖ*&ï€Æ÷†lFcXÑè<ÝãºÝ^ð€(!ÊC I›ª€&D²L9Ö7 &›Hvå©ü®Ä«£N¡~×,ºò) ÇU+5 G¢ÄL¾À“v‚[‚ÎKNý IgdÄQDf»µK#A0«uµÁÞÒÊ0·g„K’Ñq:iÖ´òœ J˜vÍóÅUc{½šÔÛ>G¤õ,€#Û 9:÷UÍ®Dgk&ò9¶Ö·i¥—l­’:l-›Ÿ› -sšd÷4%ùæ.¦—€—±¹³hîÀÖQ–Úzˆ¬2?´ÊmŠ¦[.|t¦p%Ê›èÅPŽ~IŸ‡†ÈŸ idN$ ’ßg3›¹‘@N˜“X‘»tÞœô©N›“–*H§ï¯êÝ6?vu9ÏDK5ÁÅÐS‘"Íl:dãÁYP>é;¼ø¹À wÜN{…%Þ”Ð鱦¼X /¨%¥…5¯¦Î.“ çm<½€90ðL¤%-lrIQc¦ôB8é5Ó ÏÍãM*EGM«œWg3¥#ßbvìeËЉ½ãN‰$uG66q|¬eÁ ¡šØÂ:ä:—0ÉZg)Ôô»,B`Z19)g f~h"þ…½Äk–‰4¹ÂMq½=aÑH‡PO†Fîä~S¬ñÚ’†!Ñ„e¡¦¾{÷‰j8#LµÁAÀZ6ƒ5]ñ,Š~m¼&¢.QôÔ¶œZ“ýþí ‘n¼j3àùâ3óž74cˆæ(žj8d­žºÌêó®U6¾â¢Êœê¦)ï6L -XÍíôÃ2“8ÔÂ9õRÔ;!U{ RòìÛºóN³Yô8$ÉK¾Òfv‚ dŽ;ÕUˆ[ Ôê^ÿÑYJ@P¢†Zt÷D&Í´É÷poBPŒŽþ#5r<Šõà…ˆ¶w`}ØÝ ¬ñ¦=ʡ͉¯LLYHÙk³Â‹„*ëê1ï]8B1­ê;—X×1ï?µø)¥˜¿ñBºZ­^J¾Ñ“š/‡µ4=©†”þ2ŒZ—úÇrAIˆ¦^qÕOWIZÖ …÷ÓÝuet¹mç\«‡íÌRoÿ€ÕgBf2ë›Üñ9)’Ìÿn›j½R-w|o¡ø–rYð]O¼óÉéç‡ï *tÍ›eÜ=½Ð Ñ`ïLÒÝWÒp"B¥Ç—¬'h‘HûL,Ó§:í|´T}á6SwÎ6Üγ³·TÓ/8!²0°æÁü€¨Ùm,­W­-?®ÀìÌÎéö6Ao´mßZXr[°pÇ”ƒk+$'`ƒ„¸Ý…¢F‹ÔŒn¡Z]12Æë¡Õìê—ÎØv%§¯~ƒÖD}˜[¹o*Òç"˜›Ðp\¤IGJ÷ñø;ñ=—è‰8nŠHAñðлrÆŠþó‡jÁ•a3°#h(†‡hz2A|5 žÞ´d#Ó@Æ-dY³Ên¹Åè^ߤ •¶×´ˆºÍ¸EÛ“ -¤Â/iÏ+PŸê´µTCÁO¥­ó™‡húìô-ÕÄüCœx‘eI6d hU½h?¢YMo_°®nÜøE*„¥ž -!9©6ÂÂSöUIO¨¿Í*KÕpç)È{­zø¢! XköMßê]„„zØÿÕxÿ9Å—´xz&ŸÆ\¡+}6C>Ljk°I „Ù­gõ">…BÐÃT=BöˆÎ`‰†ŒÇXuœ•ÒNXkÔYZ¢cÌè5… gÀ'0ûðÑå9)¤dgÈñƒSÔjpÍ>é%ˆdbÕS¡nÐÇæ2HÔé±[B¯ãê-=ÞÊé'¾Ÿò5ÛzÏo¾èM_÷Ð Ó¡!îyɾ'ßÁÉŸ€“¶ í©Š†[OYká³,íF¾è<iù£ó`ˆ‰±×dáxsnà5áRùÀjŒÏIÆpZ¨øPé‰ÓBQ^u§…Îø´À¼òžèøE¤R|B)=:zS*>(ÜÙ +\÷)ˆnÀòc \†Î´@”(¡ÂtµÚeMƒInö+c!‚oóŠž½#™!X¹T‘³Á…äN3ê– 21D—Þ_ã^œ× ëXÏ$C¯sƒûºÝõó«wĉ`u®&àÆ X¹Úâ%ð¯wºé0?Çw8mÂ{Tr^hï9À¼uÁ•h>Ý‚¿9÷‚wuåÜÙkšqºàı ÈÒÈ3:ÐÎÅ2¦xÈg/ÝOÄÆ' 'â$çsZ—4ÞW[¿çc^d.nât‚7UÆBð³I0ô„¯s.ôbmXóCNùjÏq¤ßd¯¼?ì}ùI»çˆ&â˜.D@ÀHŒü–QDC†PZˆoE†;Ÿ"Í"ŧðûÚ%_Dfø„…„ˆéÒ™çÚÑ̪Î<U·D4ûíÀëÜLÖ¶yõƒØ’kºYÊÓ$¡ ]8èÐå&|¨©—èïð_Öz=çƒ+þ:Ðü÷»ŒáÿÔIýŠsî¡ÀvÆHûÿP‰Ž˜Uß4Ë*ųìße‡;Ÿ÷¥bȲZ“ƒdÅã´hꉪ8œz:_ Z³ÆŸ¹äy9‹B6—Ê¿ÖçÁãm#™tÛƒ¯A ý™Ô Pa²KÍçcxÁ_‡™oïc +£ašOt/2QQbyÜ·ÜD1Ö1Œ…«+_û.fœóÐÝVʧ•;:e‚E#]=u~Ò˜p“6D”Ùr“VySú1WøÜ© i@º~ÇÄá:]æ3!³MÛŒ¦>9US¯…R "&E^æ­[{!A‘½¬÷•gÄÎÀ-¨ÓIi7i;:2]ë@*»î¢:ê;šç¦ÍJ,~É‹nv]Eýäº[Eï8 Àò½Œ+ªàù©7|/ù´ãàQÌ!ŒH€C’Pù;ÑËÓ|Èu —s*ðÚ9¹Í±lΠ˜Vàï…÷\ÒG~ +îDú« +ñÊ¥J‘¸®WÄáCQߧMyÓå.ÞÞ¼óÌ]›Ö4´>ö,IX¥eFT“í EÂ_<­¥•~€Ë14Yånß.n^ÿ•è$@»Þø"â°G5øÓÚþG—û 5ïÅ×^½ Í.ëí3QIÞá•õ¸gTdÀ+Dk¶úS}âÈ958"?ìr8+ Ðnî ptëGò~ç%ݾû}""Õ—µ{®—s%!/mP?aY¸ÉŠ­'œá™U;3«°Ü[ßÀÉ©°¾Q·+êâß=åEAÔÇ}¾üàüÅ-¯Ð´°óCæ7©h-1-°_ÂI|¯êÍz²Ã¨¦¾mÈA9ò‡ã¯AЀ!=/aS@ªvfc>äYå§ü3y">ä5wû§²„‚Èoº<Õ`”,ŸØÕMJ@¢·ªáô»|•Ñhú³—2bè|£o/^Ñ‹'O ÷'Ìk‘SHh›˜NÄØÚÙ8cX9iG\K;4‚ã=o|¨»™QÇ*Ð*¦¤D[OÈL ö-ûjaB +¨Ž=©­Òw qðq¸³x}›º ew’Ï@’u¬õr°{ç,Î`þbHÎL:råîË7¤ºà†tÜ|Ûu™.mYê8Ñ­²uº/ºOuÇå²rÛúTçÕêW¦Yå_ßÝg987æ€eJ‘­[üül6‚#.'ÃÓù\Ø1¡¡Êôïó.ãÝÎÛ¼Ìæyu’5”ìÉE%<Ë©#¤ µár¤ÄMuµ‹k+U—€ÖC‰„ðŒŸE*êáuQWÔy"þð›&QÔ³*8ZõL+˼ڷ™Ÿ& !ußÉÉveî¿ìÆTåGv+ðºÕá æ!Ö‰ìp ˆÜ@•ÞÐ=·ƒ‹ÈË}IƒÇ´ØgãEâŦσ]“G/bˆÇTœ\Ñë<Šz®Iå«bFÐE%P=]Ö¤çšPe &Å–'c]hâ=šøMÑñ4ú(>·ô»ÅCåhÖU¼Gï‘Å5Êy.{pq.~.€¼â_—9‡-~ÀÖZeybõg 5ອŽë|„ª÷íiˆ2ç–_V¥çšÐe„-ƒñ ‘:Tæí¾õàÂ:Äço¬Gm ‡¡ +Ç€ÄG+Çí¢Q]E˜rT½ƒR‡SJÃ%C@ÙH3v”ûþo¢Ub#!¹¼Œ¨Óy@uLçCÕ$ž FVö²=Ó©"ãH•DR²±&0IÖI26ŠTŒ"Ð.RÁs"R1F‘Šu¨¢µ.R1BÕ ÑãßøHÅXn•·‡‡–‰bˆ_ãX›üG«îs€Žð·ò‰eýͯþI~ðÁ*†n+ÓØPÁª6ñJ¡¡µ:u +ÿÛý©êÿyVendstream endobj 1248 0 obj << /Type /Page @@ -4896,31 +4867,38 @@ endobj 1250 0 obj << /D [1248 0 R /XYZ 56.6929 794.5015 null] >> endobj +374 0 obj << +/D [1248 0 R /XYZ 56.6929 401.1388 null] +>> endobj +1006 0 obj << +/D [1248 0 R /XYZ 56.6929 376.7118 null] +>> endobj 1247 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F62 995 0 R /F63 998 0 R >> +/XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1253 0 obj << -/Length 2555 +/Length 3630 /Filter /FlateDecode >> stream -xÚÝZ_sÛ8ϧðÛ)3µ–ÿI=vÛ´—Ý´—un¶û Ør£©l¹–œlúé HE²e7fçæn:S$H‚ ˆ‡Oüã§S&35±™J5ãz2_±É'{{ÆÏ42Mû\?ÏÎ~z#í$K3#Ìd¶ì­åRæŸÌ$¯þùòýìâú|*4KLz>Õ†%?_^½¦žŒ>¯Þ]½¹|ûáúå¹UÉìòÝu__¼¹¸¾¸zuq>åNs˜/ -G&¼¹üõ‚¨·×/ûíåõùŸ³_Î.fÝYúçåLâA¾œýñ'›,àØ¿œ±TfNOî¡ÁRžeb²:SZ¦ZI{ª³ßÏþÕ-ØõSÇô§¥KµvDBöÈÐÊL¬ÎR#a˜¯x"“Ô›¶¬×yU=P»½-°É‡×ï©gSoÛÔ·kŠQËz;à7Éöœ»¤XÒ§¹¥Î/»b[ 5º=aò}îq½ÅÃ:_•sßmy[4p)R¸ärI,ëºE½Ã᧜§™ÖŸ¤)¼tÀX¶ø°è2ßUmC­¶¦oNŸæ¡i‹ÑózÝz1êªò‚@ß]^í -"ïoËùm ˪"j×삲 q8I ¸Ébv¯Qx!“öœ'Ä$“rÝÛe>s> -¡æUÝLÇNW4-j¨‘é°vÒ^«º-h X/Ð’A³Û²!žHÈ´ÚÅ5óͦ€{ð½å:ìsÖ®-qí4("˜ï™—ä&ÕÜd ¹7¬ªªï§í6_7Ëbøûæhlªô;™í€6…*˜J'ӌ㪠7OJ–2ùZƒ2סqS”ëOH‚Z¦$ù­Bš¤\cM3ठu4›b^~dL¨4ÉTPškÁWź¥)`ca…Ñ©:œ©;<ˆ1mêÝv^ŒèÁ²T0.ÂzO°Aî öü -7/‚B¬H0bh7;¼G®“yŽäÆÛ#vÔw …r±(Ö¡Æsjn‚lweq¶ÄG¾zmáÈMÞxKBò˜Êõ¼Ú-¼Ú±;5 -ðHâ{5ÂS&Œ -s¯ Ø„財 -îËö-}óøÕ(›ZÍ¢šý‰w -®ÏFiëíÈ:°«3: -çõ3º³™ L7U=ÿL²õeô¸4½O»mN;±§*Ò}t‰Ün^Û§À‹t-Ý8¼€“±&5¤>ºÍc°V ãŒáRÓ(ÝTà 9)y…º»BjP²²£²”­¼Ž®zZÔFq¬TKUýî|jx2ƒÿErq XT -í&†é”+î¡wòe–¤²LWö§}Ô‚ïøér%&¯k8Ó¤¬¸ò´¿´?¼Ãž]h8¢c ·€ý–|Õïu…Ž^‡<&KàêRN¤ÇA$ŠÀS•Å–zuøí<Ñì6|ž -¬'ômK¯䯱—ží>Ÿü=4–ç’›ÞG—Ù+Äxë`òü\°ä3þ‡¾„:0C•YˆŒœô/úÇlG:X2ƒ€iúçü˜eOE–â ~3ëÔxäÉR†7«µN•†ëì,–ž×O6½3fiLj ¬Ößá@ŒŽkDAŽÑ*¹'É,º’&_*ÃgmR.2þ]ž0Ú9xª4ç­^ü5/6-Ñ„Þ£…› /5M×Vã1ª¼|g Œ®”ÆÁ€+A^"[‹ÛuîC,k/Ç¢p(¥ÔÐÆ@¿ôâ0zªbÚEàZØ€ßdŒuß ÇFÆ)˼¬š 4¸¯œ…(SÑiC¢0Emì†üÄeRïÅsO “¤íp· f.ð(L*‹žAÉgIˆD’Ùw¸º8ãLJñ²fê[0 ”ð¼(©8Zã߀‘ Ÿ@H%!†’ô0©“Œ%ˆ8õŽ‹¿<`tÜ—˜H"EF„2hIx786#`MuþýÀ* "GMß›ÐÆDö’f(As[ïªE ‹–Ônúö¸‡ ÑÐɘQ ØôD4ê¡J@]Bëè`!ÛÖ›/À©0½T‚^(#ÏÌzv4ÅDÚ+ ‰E±)Ö¡s·©×ôöº­bŠ!‚>ëÕwáûnòø–O¥ñë¡ X·˜Mbc É?%þÐÀÄÕˆ¢ƒ.ýçðc/ì¿LHZ+õi<ê¸NàÑX@áÀCbÑßä’Óˆ(HrŒY9”!IXÖ‡$l>B¶ú$,§ÜÚÆ´ - €ˆ„ô8$1—rÞå¿ÇÕ°'½S©âJ aÉ >Kà%-³=X¢g¡À;aÕðYœöÅÏÇ2ùXŠ‹„C -¯NG5}®V¹]ÐéȯÞàÕŸ¦ã‘f`HØ›rf(·MÀE/á²Iaÿ£I¹¬gR ×aüZŠÎLSF0yoÂ’]˜ ý½B¶TÇq®_ -ÄþzÄB¦ðj,z` ëzäÒ¹“¶TÃù¶P!Ö-CdÜÛQ³ñ9“©Y,7<ÍØ^6…?ò|dš…’k¿Îíb1aµÉÛò¦¬ÊöXùQ#¼ æß­û\Ç°ã"}µåòá˜Ù)x-X;¹}Çõý¹†Q‘éiöS ¼&¦A‹LrU®}¶ÍT,õJÉx=Ï+êDà0Ô+¥bðÀ]Håµ_FǶ¯žãœP=Gf*"ãèMÀ-AËlS•]\ü6• lrõnvùæßÔ»9òO¾NnŒŒ%_–|‘“J¾8K¾@û’¯‰ nSåw‘,¶wøD­JÆ«¾&ƒ´² ?W9¸ûí˜ãBŠ½º:`@kˆq‡Ïn^å;|QR*ªIÂ׋‰•Ñ11”áfP|&S‘Eg©E¼c½½ü/?<*¶ë•~}Ó—~‘¯/r±sÖU-Ÿ`†à2]¿ê‹kûª/¡ê ®B}:çyæ@ J˽:pˆÆúU_ßÆ2ù Ä–w=Ïv8B%ai^(üú(ð¾½Â/-:ë|¤Væéê`Ó%_¿~WÜ Iïˆï–Ò¦Bi>|@OªÎ>¡Êû¤jñsWy¹Õ•eú«¼¼gfå·²Wn SeúYÓWßÔq­ÿ†¶¿ô‰–C&`—ÿÿEÞÞ=ÿO×x ¤’}#žŽL.k, |VoåÃX&2î?ò xKÇÝ@€_ËÏÅh ,Ï=Õ¯‚V…äîÇ_¤Ýlªð«<•FðPÓÓ1²ˆYͺòbù6,õj` räï"¤†`–~0ØW›DÏýÃ4ñø%ʦ`BGJ²’Hý2ÛI…*Òz_öîÏ+F„ÿÜÝd{endstream +xÚ­]sÛ6òÝ¿Bo'ÏD(>xL§çÎ5Í%îÜ̵} %ÊæD"]‘²ëþúÛÅ.(’¢dgz£ `±Øo@Í$üÔ,³BŸÌRŸ+•-·rv}?\(†YD Eêû›‹ï>˜tæ…wÚÍnÖ½¹2!³LÍnV¿Îßýóí§›«Ï— må܉˅urþýõÇ÷Ôâéóîç®øåóÛË4™ß\ÿü‘š?_}¸ú|õñÝÕåBeVÁxÍ3œðáú_WTúáóÛŸ~zûùò÷›/®nº½ô÷«¤Áüqñëïr¶‚mÿx!…ñ™=AE +彞m/k„MŒ‰-›‹/ÿî&ìõ†¡SôKl&¬NÜla‘9˜c’ÊRH T[¤Ö g´é¨¬Õ•#R¹)ve¾Yü±/vÏ‹]Þã}+'…öÎÎú“¡ÐAMà`z8(g…NÓlˆÄ—MþXõF|‹]ƒ5*7j~4ëU¹Ì7›gê Sç6oÚbGͽñzÞÖôýMJ]­ Þ·ÔX®©á¯º:¬ ´ rµßÞâ<@ÙÂZaŒÊ`›Jxku@úžpÎü|yŸWwÅ +,Ñn~•/墳ÙÇRDŠû¦h¨”Óg[Vû–gÊ·õ¾Bü²l^¯©­½çÎfÓ­H»¼\ ÿƒg«Šö©Þ}¥Êm^­žÊU{/Âäó›K¯çH•Ì7å¶Ä•å… ­ÃÊ øv3,ìbõŠZE‘ß›²ÍX‹fçåžîËK5_ò„H¡2PAv—*›3|ST-Vûl~C³Ùùc¾Ùí‘ÒèJÖ…î‘h'¬—dý¿¦©ÐÎ*Q?´e]ᾕšç-UVmq‡gÁ=%nC*Þ¼Dý³Üî·T!Î"ˆˆîa÷R… SóC„kŠe]­’@…À– †DfÝðpWÅ:ßoZÒeøj)Žô+ —ÂnUr^±ô€Në•4¢-îk¬S’TH ÚâÜâÐñêbaóh”þò×x6ÚGÞÔÙ<ó1æc8ܸ<ühM—$É€+hÁ¦hi=:{h9œ=´vgáì¡ Nv¹ßLJƒÓ°&¢1 >ïT‰#5æ3&;ð1 H6›ú©XQªAüÞôØ´ ÏeuÇÐ-uäÕ3îÊÇ¢¢¾¶Üh:SËÔÄ~OŸUMë’uKà¬O²÷¼^Ü5öî§Ä¶ =àH5=…ò®ª‰h=Us|² +¹Ó[ó G«$ûGËÚçº3““Ú±oÇÚ.‰ÚÎi»µ¨ºpŒ:ñà¤~xŽ4dõ°]¨4!TX1`3w¯Š`Ú𠱺oˆ€PÏ7)ÌŒŽLC.º:B%#ãs3ÍuÔ%@ÈsG9f;%¬ËÌXÅÚŒmZ\j‰=,BÙÁ!°è*€š¾«ºÁïbp’ÍÍøÐBü…£\5bb_Fá™d½3aÒÈL¤ +‚Ž;y^‚Œ(hòMØêO@êýÇ/Ô²-š&¿ãÖà`+kÁz +ˢߺ$¹¢!‘ôÔ·šÚ“¶NþÉ+9ËDÙÈùò+ãž7´"Ž'¢§Að=d˜cܵJG¸7Ô˜ó÷¡nšòvàà}ÕÜO¦‘˜äC- º|-×C,ªLtK^}[|Ót^1F¼,AŠƒi0óÛb r<¨®BÔ¥fÿðPïÚbŦ¦ÌÛQnÑ ++ÉdØä-XcœÀHt󟨓£P¤˜V7:á¨ÛÃ!Èèa‹0%‡¾LüÉÀhX±pèK„–ëê)çÓÀ0BŒiQ7Þƒ®H|ŸÄ|þ±gB(¦Èo@ÿfkur‰wCß|ÓàÑKÓ£jè@úá—Ù¨s§*—¡©nê57ýçÒZà¡UýÔÐTU Dôì¹ÛöàY»‡ãLO^Þ½~i÷àû¦2í«ÜÑZVØÔ«oÕ©I7d›?“§pËÞE {Þ•«UQq¿9}xöƒ>…¡y#ŒÛçWº Ôé¬Ï6A)”s£Ò‚s² à ÏÃJÌ”œÈNtžGê´çÑAõIÛ,ÊêÈå€crR¥çWï &–¸‰LÞ`ùÀ}(Ö]•Î£Ö¡ã·¬n!l_Q…’Xê9*¡zœ}(— · ¹»Ìæûª¢¨ ( ±-†FbP£…3é‰ÔȪ‡b”Pª¦ÌL9]É ^ˆsGaX$k_W$ÌE8nB@Àk‘Æ$$ãØgqÂ]O6ãæ¡A÷øe€<$wEµäÆp8µ3ñ(‚nÈ`)Zé¼…X@§#­Hš d¨“Òò°Ýâ ^¡°©óÕPd{]ËEaðð >Ñö¤ü€>KòB uZ~:¨!á1óv”0àDÊìüòÔÄúCÊ„‚Ølˆ@ Dõ"q¬D J´ ‡†m€ ‹ÖH„°Ô!'ÂŽ BX¸eȾ!è "ÉdS72ý`„3Œ*=Ôh +Ôš¶‰ AßâÏ%x<|þëñùsvŠœKí)|šs~´ +Ç ’H,ÁœO:–`c „ØJ‹ŸâBP}™Sî.ìAáÂ5äÂhǪ㬸¾iæÝy,:¨ 4†™n%ÒâÆœÁ”½´T)AN )yPçXáµ’}^ Õ{òŠ˜±é–!xo0~ÇJŒ(`=öLÖä(!~ž\øpV‹4í¶i¨£ÛD%¶è ¡C>Üó–}Ÿ©ü©ü ¦ÒI®”ŠvAOéláÓÔõ¬‚‘¯² +@-d†l1vœ0rY:ðœp«Á:°0K°ÝéÈ» 6Cq"Ø(=a3%±³óèÕÁfè”m¦•[‚#ë€-d§”Y‡Þ’Š­¡u`Ó?Dì C ¨ôñ˜†£ë„×L¬íùƈz¦ÉûÈÌÀýÄöš¿9uÝÏ0”ÜÏP|&0v?±é„û™@Lcœ3ÀÂ`u\ÒåHîwD\ÄmM«M/¡.Äÿ‰RéÿæéíÁš,uê´Žì Ž‚ É—Ç—`X½N^@¢ƒz eSá¥}cnª¥Y̽t pñ'»ŒŽ9¸@FÍóÕŠó ŒïYiâ—u.@Óå!¨”O •nÞ}¢ˆqU,1%Å„J1Îù!CO뢥LSF"νô gŸ:ýo=GW½ ×@Ëî0'«¢ë˜ i2Û϶@7Ëôôfêâ’ïÖq>Ž/c¡Îs§ó_Þ¢ŒÇß u!»6€wÑáU况—w‡5apÌAÄùVÏ ²Ê%õïV :µ ›Z^LL\84%k8˧»è¾¡Z80´~Èy¦2~KÖq³ ˆ@[´fPŒ¬‡Eb/(í›=K“Æ kÜsaÈ—ZóÕè—K5' ®wë|Éc~Ó:Ynêf1uNà%"`‚á°ÌËaã@íCGn­ÆûÕ Of€m÷qÎüá¡ÈwÔZV¼Î=Ï5œÛàÜÿ˜Ì”('¬rчëªE'ùɸT$RÓÁ¸ò›`#<ÄRS×*Æ€¼1+®Ü”¥À7Cá ׄŽ˜y÷6 ä9 lþ²Ä„9Í2a¢…¾¨»ãs‚¶9wéh$ÄÎ]ZýÕjOËÎÕ&y‚òøN‚"HªÁ³;DÄùìNð•œY`hX`¬sNÕhKJAÀŽb' 'Zf,>¸(›=_9Bs>É &>¾‘"JHí’±ùŒ<NG’œÛ§²½/«sIª$©•‘ÌaÇÇ+kð +u±­wSgð­ÈúLÎ#SÙ[0X_‡!^ÎêAÖ»Ûïòx"CöyS¹ J +‰›i¼¿rIöšK& ﯲéK dR'\ªÝé¹hœ„¹¸G §ZDìÊX‘x­ûATwVH@ DNÒ™ò™ðœ*¤ÑÇ­G!Á7:’úçË…Sóø×ó«#ÒÀ¤,_¸2̤ o¯fÌ€“>9(‡Ý¨¾»ÞêÙûö4ëo+μèOör8~´ ѤsÄ—_ê *V2eàEú¹V(*R~ +ÃlÊàC _ÃC‰®áçŒ8ÄDÀ=ÜR´-IŸã7E¡•ÄŠVOú*ëKðsXµŽl'¹A):ËK-ç_ñu uƉO!v»Ðw ÎK3[^Îý=ΆhN`'È“8ûÆŽW¥&=ïWwP'ôØâÑ¿³CNÐjÖ_aâCM 2È>€ZLÑ£`Òåw +×é%ÁDì„ÒÓ— 'õ0Xè,ëò¸oÉ©N#ýu”Úšzã¶ï/&^4€›êNEøN+uê…ç‘ 3¯#ˆÜ’vñš¨÷Ìq‰sŒÄðØÀdP;},Þ¢NSĦØUáe‰I]/Aˆƒë_¨£ƒ_’t'Û -›² 7eªš +‘È—ëž|¼Ú ;‡¬órÓ0Ò“Ïð||÷€ +„’:^•æôft{þj÷Ȥ½wS úĩ缨•Ìä½ììÐß~ê{x Ž¨"=}úF:pØ|‘Â=X;ÆÜšLØL§¨ÿß»xÊendstream endobj 1252 0 obj << /Type /Page @@ -4933,25 +4911,29 @@ endobj /D [1252 0 R /XYZ 85.0394 794.5015 null] >> endobj 1251 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F62 995 0 R /F63 998 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F62 995 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1258 0 obj << -/Length 3193 +/Length 2802 /Filter /FlateDecode >> stream -xÚ­ZKs㸾ûWè¶tÕŠ+§yx&ÞÚ™ØÞÊa³Š¢mf(R+Rö8¿>Ýè%ï$)—‹x4»@ãë%þä"6¡I£t‘¤:Œ…ŒùæB,`îã…dš¥'ZŽ©ÞÞ]üåƒJi˜šÈ,îîG¼l(¬•‹»õo £ð8ˆàÝçO®?þzóæ2ÑÁÝõçO—Ë(Á‡ëŸ¯¨õñæÍ/¿¼¹¹\JËàÝßÞ|¹»º¡)Ã<Þ^zO#)=N0½¹úpusõéÝÕåïw?]\Ýõk¯W -… ùãâ·ßÅb ËþéB„*µñâ:"”i-6:Va¬•ò#ÕÅíÅß{†£Y÷êìþIFÊD3ɹ ŒÓШHõ(Mha[„€ÈÖ´Ä_ß¡Æ—f×Qëç²íZ\1ˆ]FI¨Œ%ÙSS®—Oz¹_o—[ wT ]¤§°ebx×½R¯™f¬¡LÃÄHëiˆ­ùl5¿Òn‹¼¼}SdøAjÓ@sO#×_ž4“Ôë~ÈÐ-$ÑÍv³x.«ŠÆꆇV…Û“e$D¨•NK)Ã4ŽÉ@÷m"¬2dfeо´]±ñcmùPÌ4ûÝ¥´A^ЬצzŽ8ÿZt-X®2¸{,Ú‚&*wLÄÀ±+žŠº£¹:ÛxuîÝ\³¡‰ü±iÚ²~˜ªZçMkŠÜšv°mîÅ8šêÓ®ÑLFa€wˆÊ–FV.bÍš|AŽnäŸBD´‚笪`¥JÆÁõý„ýûbÇ/>Ó2a°Ùsã¹ìi²Ý瓧Š“ž?έ¶{,Èþ³º}.vÔ~nöß2h<Ü •ˆáÍéB<·õµÚb÷4#é1{b‚®¡g¿zà÷•u8s©`9ʆFk9¾ð)_øÏÛb—utòÀåÖ'¢\{”þöoÊÙxwn9‘íÈùCKCû6{àYw£4Ødõ Ó{ÑЦÍŽˆßϳš+æR¡RÅMC¨à6Ï*gM0ó”U{ÿZFì¸SUÍ3Q¥ÁócÁ9p#æ,þ@”‘tw >à Up‹oÙf[?Îá›R¡Œ#VòãÌvÂÙD6QLâVŒ²V,“ð[e û•q¶sFœˆB•¤‰'•hi#=#6ŽB ½h_ȶÇSìd£UÓRñôšµ{(²ÕKWÌÙ!h0Cd͇8£”N´f¥èÀä ßT•NÑrLu:›è©œ»jvÅD¤*ŒdüŠ`O4#xñ[À s øΣÚô¨ŠÇ6Š’è‘7}H€H¸ßl&ït$¬÷›êðD¥<‘˜‡šWƒ'¢•dº“‡¢m¦úµCS>”žÊi–uÙ‰CIÐÙœì‰fJ¢Á<'‚i3!Es.çn§ªÈ¤Å¦Ùq×ù÷{p¼x,C/ r†CKåü¡)ˆÀ "Š¿ûÐ@AîzõÌ;Ó(L¬9ˆiÜZbˆ×•­©ç/)4îÃsX—-<¦8ejÎwRJL^‚Ð¥œÙ^ÂVµLÕð`vžuüʘwɲ‹oˆ£¬O/£œMøœê?"ä&^ãEƒ¾OMpá•£¶¬”.ï‚Q>8Ø Ûï¸U”Ùà g?,Óàq´† =ïÁol¨óþÓíðV™Süy¸ -0ºõPa°¨\v§ -nš}µýØŽ³‡ê…ú`v÷{Än£\žŒc=ž3¦qþ°› Ì7Þ{ 9߀1©?"±&+8Újžð¼Md¹Ð7 V{Ž.)Þ4œ4A™Ô䪄âíê]V¶<éé'>=ùtãï+´bÇ!®éC\CîƒÞ¦aú eÀ¨Ï Íñ%t.Ý ½ÏœÝK³b[Ù¢=i9ÍaÄËÅ!g<0ÖcŒàLÆúK ¬_?Œ®^^n¨Lv ™ !¢JTê‘ n™gùc±ô{, „¼J¦çë`@TûpWäû][>KÆ«B+c5Ý¡¼*‹z6AWBXÇ܆ø å'}’²²%Úœ÷IcªÓ>©§B-°"Rí¡Üâ~ÊŸ•ë‰f䎗m„ÊLårT›ŒÂ$¨÷›™ ™ <½†®Óù׆p4a@ƒl“ë2øòÖåfÐÊ›N £î<¤”3ñxPbðWЙ÷W‰ -5ú_ñj²£g³êµ0CT¯éˆêÌ‘z*‡D]–3’ЀÏÄ!¥¼Ùlá8VeUv=–&€½wáWD+‡@<9»™+¥d¨D4vÚÿ‚û–tÒmÛÐÆ=sðÙN’ÊîC•±IÝïëQ§äçèãi[!œ·¥Õ[òT§VyhF"~EO4£À¡ p^S n ‡Úm>z¼Æ…’Ø";€F‘¹’ -´XqêoöíX´ÅqQRÛPBŠ>Y͹jž§eaÇ|'Õ<ÔH#.×óTab|vw{ªW´8æFA˜Çå2¶"ø‡+£6„È'vâÉH‚S‰ÓéÕɶ\nÃ` =ña4ÜwäáÂh€³ÃxÙ*®£á sºãךj]¸±8¸Ëê6Ë}0 -#î’ŒÉ{±Ãé%´V<í»f ;üŸÉ[6ÍS_ÿÿ-E‚0˜þÿ"/©!Œ:±ÇT§/vO…›¶[BdÓ•-ìF»„[ut·µ“ÄØóJôT3ZLn·ŽÃ$¶rªÆ5žŸ±äLX4‰$™KK$tÄÐ63 -à gmðĵÑì°@š°zWÄ’AÃáùüMH‰ó§¦#;7:·OͼÄouàåk©ßÕRÈPZóJÉnLuæD=Õ4å¥uS¬fÑYzª¦hm TzªÄ\T-‡CGÕ0]uY]4û–¨èêñ"¸HÝ4_÷ÛvgÉ駫ÒŠ;@Òð×±Xc)ÒNÏoU¹É‰L,â)p`ÑÛW—ï¿\¿™&*º¹üx5 Í¢‹Ëç4zýæçŸß\OgÜj½ý×›O7ç×´d</¯ÞÑLJL¯Ï/ίϯޞO»ùéìü¦;Kÿ¼œI<È·³_~c“ŽýÓ‹ejõd/,æi*&÷gJËX+)ÃÌêìóÙ¿;†½U÷é˜þ”°±‘&‘/ØVZ§E;¾-›Ì¬Œ’éi^ô^~¾²šYë4Õ“™1ä´ª3¯ÎãTköµI,+&‰”1Ã)0ï*ئ±6Š#g±–Bs¤ø8ÝÀO™Ãš8SL 6å7ž|›ð˜©4•DÓ»“î5à&~¸¼“w5œgÒ?’ç;ë1v'2¢ç°\€B¤’“„%@•¦NàËåt&‹§‚Eõ–^òŸ<ªê–&vesG£ö® A¶j‹ ú_Te­Ÿk7S+U³œJá2riêíf(jzÎýû¶)òW84C š»z»Êý¸hIïFöŽ>AÖ¢ÈF3iÖnÜöÜm g¸;@b2Ð ±Ð:ñÖËÖëM½±¹ŽJ8Õêq +îœÀ‰r Œ<ê)¶´ÄıSòb]T~r»®+Ü…õ[Í:'ƒo‹¶-«[Ðcb£Ì?ªÕ·ó‡psól‡øJo¨E÷DcààWÆĦiéeS,7Ú _¾mÉ (:è2>ôIeÒXØÔNúáð}&!tL +p3Û£Ä÷ÅÿL¤±µIêLs>Üa’11t,YÄ(ÊŠGÞ\Dd +¦Ÿv£Ñi/ +DÇt$õЋÀî ö'%鈎Eø_cB dùÒ ñmÀ›œ ç÷΋{gjh¹ö €j1B™v™WÊb×x–îÏ°Y‹ȹ¬¶w¥g–Ël»jýW€^Ǿy9a0ÀcU˜›C1ÃMêÍ]Ã7Ÿ +²zÙÒ³·¥fã[BE'"5žÑ#}d³$VRiOó+ÓléT£û噥Ǣ¾_gm9/Weû¤ü´ÿI@]ÁÅ3Ø£zÂ)¬-—§œÞÛ==³;`¦böéí´‰žª ÷ÚÌ ðÈû²BŸ“LE»»ráÊ ­êE¶¢Ù>ÎáR–çävMƒ•·”ž‘´^·e]e+ÌÛøþåÝ'úf]oZO¼+Wžñ¼ð™ýŽ1t=¬L€ÎP¶Ågã²:T¶ÑÕǛˋÿÐì=È‘Ý D‰12ºqN =9=å3´[Z¯‹lCcdÇ“ ++Üf•=„a±yÀ…jÿ͈KHÞ\tÅç}8¿óbic-d@È?03xä…T­´"ïb•m1ž¤TðéÄ”t="ˆ¡ ú¯w3r…Yt'‰ E{¹†‡åÁvM @u_T­-Z¿€j e•sjÓ¸¡QXlPÞ +gÌœgÀäœKƒ—l½ ‹ÌWr †8µL ýeîK±,¶)ó¼¨ü»{&¡¸[û´ð‡ÏÎi{+ˆ¯ôÉËÒÌ^ü—›¬º-h(Eb, ÖR¿¦ñÿ^åÄ‘ê³UIìõѧý= +ÚâÀ§ VPt–‚»¨Ã) +&œÙÃ.ÎìâüÒÙ¢¾«W!ëB¸Te÷E>ÖAQnôT¾ þ"vpý•ð—v}á¨ô@övÄy§–æŸP²htd®[…u™Â¿W&ÜW%‡wϨd>L+Š>"ÿsX£IÕtÎÀcÉ´¥ÃþîåÀÝ£²A5ãøË!='2ù“øÛc‹ÝÛL0N8ÈD;FÙ5ÜZýX‚ê2Ý%‹“f†Ã3“ÎmÜ>‹»ºn(a7±0[ºx‡ 0hN†M×M 6@cEhL#L(Êö&|€‘ë áéš$wdåÛI˜|DŽnä~ƒàοsm0Î9ˆQô{‰ÁvÇܽ6{¬Ý½œ—«…ƒ›æµÿnÙ]‹þObÙendstream endobj 1257 0 obj << /Type /Page @@ -4959,1448 +4941,1515 @@ endobj /Resources 1256 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1255 0 R -/Annots [ 1262 0 R 1264 0 R ] +/Annots [ 1261 0 R ] >> endobj -1262 0 obj << +1261 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [361.118 590.715 409.8647 602.7746] +/Rect [442.7768 250.2874 511.2325 262.347] /Subtype /Link -/A << /S /GoTo /D (configuration_file_elements) >> ->> endobj -1264 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.1258 196.3262 404.2417 208.3859] -/Subtype /Link -/A << /S /GoTo /D (journal) >> +/A << /S /GoTo /D (query_address) >> >> endobj 1259 0 obj << /D [1257 0 R /XYZ 56.6929 794.5015 null] >> endobj 378 0 obj << -/D [1257 0 R /XYZ 56.6929 769.5949 null] +/D [1257 0 R /XYZ 56.6929 318.8054 null] >> endobj 1260 0 obj << -/D [1257 0 R /XYZ 56.6929 751.6696 null] ->> endobj -382 0 obj << -/D [1257 0 R /XYZ 56.6929 674.5298 null] ->> endobj -1261 0 obj << -/D [1257 0 R /XYZ 56.6929 647.321 null] ->> endobj -386 0 obj << -/D [1257 0 R /XYZ 56.6929 331.2658 null] ->> endobj -1263 0 obj << -/D [1257 0 R /XYZ 56.6929 306.5278 null] +/D [1257 0 R /XYZ 56.6929 288.9425 null] >> endobj 1256 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R /F39 863 0 R >> +/XObject << /Im2 984 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1264 0 obj << +/Length 3378 +/Filter /FlateDecode +>> +stream +xÚ¥ZK“Û6¾Ï¯Ðm9U$kOŽc{JììÌlí!›EQ3\K¤"R¶'¿~»Ñ ”(M\©©)âÑD7€î¯”\ø“‹ÌÄBçÉ"Í“ØiåîF,aîÝdš¥'Z†Tß?Üüý­Nyœ[e›`­,Y&ë_£×ÿ|õËÛ»Û¥2"²ñíÒX}ÿþÃ4’ÓãõÇoß¿û÷Ý«Û4‰Þü@ÃwoÞ¾¹{óáõ›Û¥ÌŒ„÷¯pá…·ïzC­ww¯~þùÕÝío?Þ¼yöîW +ùýæ×ßÄb ÛþñFÄ:ÏÌâ tD,ó\-v7‰Ñ±I´ö#Û›û› ³îÕ¹ó3:‹M¦Ò™TrîM[­´;@ܳ´1”BD÷Õ¡èë摶yÿÜõÕŽO«êÚ㡬¨÷S½«û÷\tÀE,`ä1Ê­ÿð„/¨,êªÃçêp»„ý[GCÇ®xäÙvƒÏ<ÚÍ3Ó{ÖÐ>ÜÊ,rì±QVü~Y4ÔXñ*[ªZÃ%j¡£û²ØVkšù\lþµ‚–ãÎvÛ~!ª<úÂʨ¡N·¯ÊzóŒg»Ä}Iç†÷u*²T$@ük£·íGeT}-vûmõŸVx'RëX8@áV•ïfN®Ge©'q›F^+æyìP|lÕ YÁ8ÑvBÅ:ÍSÏN¤:Md¦’¶FÅ™“ö--˧B"Ø5mïÑqoXºÇú±X=÷U<# $±M„ôGK6}løg„JÒ8©Y(º„ßáf{¼[m‚w©ÛÁ©C ì@#½ÓGh슯õNñ¹¨·ÅjËsÅ®=6ýœÈÊÊ8³I¬«MqÜö3‚ê$γÌ2ÈÑðçC£±‚[_ +&«§tK€E[ÀÁ‰òmÚAëÐAmjÑêÐðÖæ¦Ý¢8Ø6 ¶]U'/­«®<Ôû¾ny¹Y‚‰ØèÔðÖºúê5 V–fja«e&íŸB…–ÍÃàrXq.yŽqÚX¸ŸtdìD¹"¥âD¯àtâ“]ä"N¬H'» ÉÃã‚wô32NTãl]ä_•ãÁÛXžJ“è4V2É'Òœù‚êÎWCbV:0}™J—\ÈȵåCÈ$ÝÖé‹SÛÔ®÷££îæÐ>GN|“Ós8P£÷<›bWy¬Ø0ºw+´à:ùItßzºQ€ð&q€›ÎT´n›¿!ze2êŽû}{èi¼skaËá8ÜoÕ%Å ã.˜ Ãç  +Fðд륶Š=µýØ“ˆí3õAí6GDp«£‚i +z|)˜Æy Ë΂ßz‚äl!©¿"f±&+¸Úgj^ð|Lk¹ð7VGTlÃIó“Ò'6]úÄ[î8aæPÔO±zvxvëíZŒ²a˜k‡0×’SÂÀ·m™~W85æê™æØc·¨ï3Û|n@, q«;Ô'P-'9Œx¾8ä”ÆŒœpÂØ`"óû‡ÑÕóÉ«Ó•)ÒŽ$3A2dâ©Î=RÔ-Ë¢|ª–uO€%…°W˜ɋf=—¼eqž$>}¹–4ôn;½m$Vank^¸Ö€êʵz*‡F}Q~š7Lœ§Æ^g=PÍðž\¬ ø6Ÿ2Ÿ(A'&ÓzT¸”SÓ%S\ýíq¢I³1õü¦8ñ´†’,k¬Ä`Ð2,ëIÁu½û@ö¿PÈÓ*ó?•;8çò?løtÎQ44ÖûNJ8ä“BPö ¢`0ÄâìÝ*óêxȤj†¢Èš¦ë¦¯ ø•gê¦Ï¸ÙÛ÷äÛÀï´¸ÒN‹¤ä/š•¶îKýBR]6«Ê;•úëÆíz¹m—³&f%„¢"¿.Æ@5#Ç´iãÔ*5„`ë1TÊ9T±U×n«¾úVE}„ÓEYV{—¹º^³æédžã1žqElPui2(ÛÝ®cUoë~Ô óƒ£%…äi8βž›”–±*tÝÿ{Mºè¼Á¡í‹’‚v“ì²{جR›cÔzj~_-.ë»Ôꈩ®è’§º´ËS5J„J®K0P͈pªF¯dSî+‡‰;4| ˆ +)±Ešªph±èÔ!íÛFtÕy2µà +`’™z1‘ÎëXÿ|<ñVîEk—ÆĉÒ×= ºlëžÈ]S¹¿häZÁª*½Êy :g=MšSà=eýà«­A…ÞŽm* ÛS‡‘A‹¡ýðúl›¦œy>”ÇÊn:©ìŽEcÊø»$~NÈN´ù|¶U˜F<÷[‹4εJ_rÖRêX&òoR]¹tOE6âÎa½ìÚòS5sõwÁ¹˜ë T3"LñÝÄ+eSÜ‘Bp3Ü8L¸Ç1\cÛÿ^ =t4ÀY¼Û½æbuœB]…GÝ®_×-¶MU} `™ ˉ¤c]Ukn¢•ãsUÑ’«ú‘qßÄZèF&]5íñÑY2ׂáY¶ìJrï_²À]qLOW1Øôû" ƯÎkšÚB„QQ}ñÖŠ‰º™‚ßüR‘Çò#£,6®×‘R¿ÝÍ…¨ü!NÿØ?¶\s÷v߇:®@ÏÅûºŒx þÃýÇÕß1¦ÞT‡Žkê\o´a½Ñ^(X Ê*}µØHuÑv²ÑÿEMÀ’ºñ•Uë];gùAÖÎÔ&')»TÙœßL?¡¢cH<²$!Š%#çÄ\põ2ÇhbøA֟ล/fŽ¥«OoÁ®yèòžS0dÎ ;89zí™+–=HRh nÆݱ“1ÀüI~¶9öTG«âK¿QÔøzÖwÀ?ú_þýâøãÎ$…3ËÔ…¼ô+/à…rJ–žJ>üÐñ\ôÿsg=endstream +endobj +1263 0 obj << +/Type /Page +/Contents 1264 0 R +/Resources 1262 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1255 0 R +/Annots [ 1267 0 R 1269 0 R ] +>> endobj +1267 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [389.4645 694.3759 438.2112 706.4356] +/Subtype /Link +/A << /S /GoTo /D (configuration_file_elements) >> +>> endobj +1269 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [375.4723 314.3269 432.5882 326.3865] +/Subtype /Link +/A << /S /GoTo /D (journal) >> +>> endobj +1265 0 obj << +/D [1263 0 R /XYZ 85.0394 794.5015 null] +>> endobj +382 0 obj << +/D [1263 0 R /XYZ 85.0394 769.5949 null] +>> endobj +1266 0 obj << +/D [1263 0 R /XYZ 85.0394 749.7681 null] +>> endobj +386 0 obj << +/D [1263 0 R /XYZ 85.0394 443.842 null] +>> endobj +1268 0 obj << +/D [1263 0 R /XYZ 85.0394 420.887 null] +>> endobj +1262 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1267 0 obj << -/Length 3155 +1272 0 obj << +/Length 3275 /Filter /FlateDecode >> stream -xÚ­Ërã6òî¯Ðm媃'GgâÉ:•8Y¯w÷Í–(›5©)kœ¯O7ºA‚%g+[:°Ñh4@?É™€Ÿœ¥6:3³$3‘ÒΖ›+1{†¾ï¯$Ó,<Ñ"¤úöñê›O:™eQ«xö¸x¥‘HS9{\ý:ÿø÷›_o®ÊŠy]/l,æßÞÝG˜Œ>¾ÿt÷ý¿n®3¼ûùžÐ·Ÿnnï?Þ^/dj%ŒWÌáÌ€Ow?ÞôýÃÍO?Ý<\ÿöøÃÕíc¿–p½Rh\È—«_³,û‡+é,µ³4D$³LÍ6WÆêÈ­=¦ºúçÕ?z†A¯:µƦ‘U&ž-€XYi¦wYD®-#JÈ~—•œÚeO…»Ü-·‹eUuׯXj|U2 ÙžLÞSMÌ®ƒÙ¥N`ú£Ù_ -Øô,žoò¯åf¿¡F½ß<;‚›5}[论¼.š}K’šàÇ¿0²©ëbÙ•MÍTÝKÞyÈÍ•ÌÛb÷êÙʪ"(_.‹má&Ì*A=„ÅÉ(³V²‚‚¬Šu²P£tÛúœkUdScaƒp ‚hÆû‘D™†m#šèDÝøLc0‰Ì&ñ僩Î|O…3ÂŽ/–ùò¥X´åïÅÉÙƒ¾‰ Œôâü=Õ„£µ‚‹ÄʱnCµI‡Ã×&›ç›fÇŠxøŽ Ø4»7êïÂí[½nvÜãùùÿ[K(·Ò'z^Ö„{z늼B,ìü?/E=pq:`ÒHªLŽ•ÀK§bEª ßUÞå!gü’ªà¦%pw-ÓymÔÌXQÙRWUnÊîÂvÚk)À¬¥Ž¡[÷ÀpÙ¸ïŠYáîà·øº-‰€Ú[jlònOPõæV)üòÈ[®”·%Y…B^Ë9ÈI-':|ë†éŠ¯Ë¢X+ØO-Äü®¦þœ>n10~GÍCÙ½F è®ÜV<ÍkYZÜ •„sóÄržo·`÷­g»Íwy‡‹!a{ñ‹ñêèðø44œ·Ó,øâ„_g -,qaËÊ øÞÚ±1iíÒðàÆ›ò¾vâ« £{§™õQf Ýy]ÖÏ4í£cw ¾ Öc“N!‡Í«#´k[…mC.vÉd'>I·‹$Ÿ›£ã‘üm⤵Ê"a¤äxÐï™´NcL#“±Þ„ûz´:ÃÊħàböœà$‚ýQd¯Øp–ßXÐ÷̘!AƒÆ+ZÃx¸J™wþæ0¼Fh5æ Xɶ—uä¯Ðñ¡ú¶g×Î$á+>зæöv¤ü~ß8ˆ‘Ô,—p|ž W®¾é;eUHuÞ z*\ÉK‘ﺧ"ï.ØAéT§—eè©&„W2Ò±•c)ÈÄá]0baÁ1ný{S3ñ&G™ë¼vZ]ø•–úœŸE\î™à¸–p›|÷ÙÙ óvJß¡ÔP첆®JP¥í„"ƒv¤`Íi6VLO -·¤>N%Ù`?˜²ÓãÌçrÐè~:÷£I÷ÓP÷aÌC‘·M?U<ô•cÂCÃa$NC_Ih0…)¯v!)$™#³ êR^ìê â$ö&‡x—x -MÛdrˆ LnŠwLÖ•Äl]@⬠κREÖxRì Uab5u) i¹:f}ø_-Qg*‚dõÄ1¤:o‰=Uï/×5\°DÅÒ\ÁMˆ0ŽG`~™Õcøê Šºaw»t™„区èÍî3QöK >Ì> :W”‘5Å…-8’<•ñ¦'±CkÊeÉi'"Ò6ÎÆZÐ[•Ìb§ŸøE«ÂïÀIA"å6B†÷=r,Vïp8ª7~I½ -Ô;àËê¼Q½±Ç©7¨ÞÈÞ©7¸',`‡ÄÜx8&Ja>ž4óõQæÕØ!¹TJý™i/&ÙÏ{(I!÷¥!.ífg»ð­šœ*e£ÒùÍÚ%å#N(×*¤œWœ¼—í©x.y&®Ž¦ì”ªKHDè®Ⱥw®ŒÖÚÌQVDR&@]*We»lpbÎ×ëSKm<º`h^ËQ”œy þUÕ<§'¦à2æ8\¤i¤Lê^`SOF O;®øÇG‚Ú™„«ÄÆNªíš-A4SŸQ4\‡ë&¯—sžò’¿²û{&߉3 `V~ÞçI¨2Í{w{!ÕŸç©Ü5NËm»rÙ^tzBÇïÑSMHqìö„LŽÄ¸Ï7î -bÈ?Ü ‡í¾$„ž'¦®šg¾ÓHϺ8™Ù|¬wXgV|êã F>MMªý…Ï$ǃ̪ä8gˆzH)†»á!lÛ>Sækb÷uaÛúL¡0l[q¶÷ŸNŠÃköKA{¢RÀ™x¦À½›X˜?ó¶ö&Ò4~Ûÿ i,b{žÀ‹A?bÌjá¥F©ÕY¨‚ý©€FH Õ2”KÊ&‘¢¢ù>Péè 6jeX ~†tOBù¼ˆÕüödc€¥V¡];Ì@‹L–i" -`·Ôa â›»š}×À‚fáš<ãEÀÙ­)V£›EX^*`~{ZB‹rw®j¾]+1/¸Qn¶U±)êÎ]g ¢¦/?™”œ¼É’(Ö1ìc°·í¸ ‹â D] ïZM™Æ`¬}§ûƒØ‚™‡×&Š¯M袤Ù6` o.4WáS%¿qeŽ€…¥ÄÛeˆ -¡ù* ÑÅ—}^I+9; â‚(û Ë—¦i f‘Ó§vÎ{Jº“BÆë7B× ~´âœÐ º&Œã7‘ w¼b×™œãµºÞÖЃÍwøÊQ“3qéihË%Äô7êZV¸°Î÷3}×Õ +Ó'“Ç¡^€ÖØ,c«ìÎ1pÊ×w:ÏóA‚—.Xº¼ž˜”Óĉ7þ|ÅW-¯#lrt1¾Úáeß„³4$X®42ù3 -®ÀŒ/ª·á3°<Õo)Ud$X\OFïxÝòåDH#¢8êÿ(¤çøžê¤8“c!zN¾&Zùë/º× åY¬‘î¢qïÃoŒzÍv[,KWùCcH¸6‘ó[zÛP§E™DEcÉX°£¨¼ú kž*oÛò¹.XžòàË`¾¾JâÒ¢£âû¦^ÔÅsî\°ÆG1b|ÁS?£«FtNmÏ’Oy뇹|\õ0ˆÚ6mIEv¸MðsˆÀ¡EkW˜ô鶞D’e<¤§­coáLX§<؃ȻŽpî Mûg -@x)bп4;zu¹K×|£1ÿë…{W’’ga­¦aÿènà íü†ðÃÖµ_à9ÁÔX-MUzÁy«~šðÒS†VðÐŽ fø!‡(†3Éx½”¸aÛÉú!|ód¾Zñ-Só2 ‹)#Ý iâ/%îC˜ƒ®÷; -f\ÃÔ¾"zóùd Æ¾â@RèãÊëÖ9†!3fÁÉí'ƒT|Í1ùpîo7ÚFFëÉÇ1ó§ù—ÿ“3üaÉ$d%jºÜÑ"ŽR•%½T¸Ó69–Ýê4²©J¦„ÿ1VONendstream +xÚ­]sã6î=¿Âoç̬U~ˆúxL·Ù^:mÚÛó]z}Pl:Ö¬,y-9Þô×@€ËÞÞô&3‚ ⋤åLÀŸœ™$Jr•ÏÒ<ŽŒf¶Ú݈Ù3ô}#™fá‰!Õ·Ë›o>èt–Gy¢’ÙrðÊ"‘er¶\ÿ6O"Ý1ÿó㇇ïÿõñî6çˇŸoʈù‡‡ï úþãÝO?Ý}¼]ÈÌÈùû¿ßý²¼ÿH] óøöáñ;Âäô¹Àôãý‡û÷ïïo_þps¿ì×®W + ù|óÛïb¶†eÿp#"gfv‚†ˆdž«Ùî&6:2±ÖSÝüóæ=Ã × ÔŸ‘Ò‰šP Ò3™<7³ÔäQ¢¡ ¸Ü–--ªÙweS¼-Y•]WY‚íæVfó]u<€‰½5f^ÖëæÔFg +‘Q*e2KÌgé…Ñ"¤"ùå”x*”W|Y¬ŠÕÖ.Úòûvz©â(S}}þžjB€PzS•%c –[ÐŽ3¥ÜwØÈçÅ®9Öu4&°»æðJý]C¸cË£7Í{<¿Ö^, ÁôþÖÊ­ôÀ©îéµ³ øE"Ìü×­­. ŒÙ"Î"W)£ÜådöÒ©D9éð».º‚ äŒ_' nZhÛh!‰"g@ÐU•»²{‡°†úE |*«Ê3të®÷]3+Ô~í—}IÔÞScWtG‚ªW·Já—GQ¡Åá šn[tBqJBÎÉ ßºa„ý²²vm× L-òùa_Šêh tª‚¯¤óvoWeQáÒAó;[ÔeýL]ƒçëdÑ/{ZÓ³]S{ãšÍnXÁh©´“¼5Z¢?Vh\RÎOd€ƒQåËå-!­ÂJã\Îï@[Ët¼"ýd_O,2Îþ͇8 B¥i”ô#åX;åZ¦¹øn–‹Œ)QEm/ Më½Ç­Ö18˜LÇkõ;aØhá«ÕâÉí§Ñ0[>×N{¸³ÏöÐRë?Âñ…Øõ@)ßÃÓ¶\miü®x% `¶Å ËB¶@[ì,QC¥š,†`ék"ÛÁæ•5xÒ„ “åÈâÀq¿oÜØ5Þd°D5AZÑ´Ñ„*r#8ê8Vûb…›®r›ÎÈ}Ó–]ùÂ,’™EeÛöíDê§o ovsòPÐ>K·ž2Uêj-êDjòqøC”HªùCM˜‚>}èøTv[‚vǪ+÷.'Á—ÒžZÜ.%y¤ê}Yí÷UéB•c¸/E‡A#Ào |œÐ|1Ô„SÝ‚Þ¢©µ-·œ$×vS€„Ôð©U\Ì‹‰4Qžfùõ¼R]΋=•3ŸÕ~Q•mgëÅç£=žgF-¢LÅæº=Õ„£Ì¨M” “eà̘ÏI‚Iš…vºÚw[—¹²¶W Ë¢õš€]Ysneµ"Ró؇Í(sæµµ­fïiihŸM)5SèsÅj"e–BĪê\PÄ–R1&HNëWDP%@„Š +B«¦î(zWÜ·mNì +ô;„–ïé©kP}µžeÁR“!„N¦³Œô·&$ê [ô«W.˜ƒÃx*ÀË]^‚†«6A³ã~ÎÿàOvÓGìy²ý¸}Ѷ.ÂLî#Yk.ª¤ó£‹pÁN +!ŽÜ…„4 D倛…)+[wos:G¢l15Sn íÒc”‹$Å´Å:8È$’b“bþ‹=”ͺ\‘G.o%JÞ~¢æ$‹D¾ö’Ÿ5s¦¯ûiHuÙO{*—¿+*%‹pî¨p”Hdv]„žjB†±£æ‘Œµ áœ/Ö‰ ¹·rŽVMÚ!„¸îj^¡ JˆuHÐ6Tì˜ì¬èAÒ¡®A’ÎÏÍÁ×q‡¸ÿ:±ÓênK_pôºã¢!K"“ÅoŠ†P¯o”ºÚø¢¤¬\I§‚ãQtl8O‡o"è{aÌp€W-áp•1ïâÕa¤«Ob¡Õ˜/Ö"/Že­íaCæK9Ã[à ç}knïGÆïõF-vC<ЭV°}pܸ˜®bcà¤Å BªËnÐSáJ¶¶8tO¶è®øûáÜs]†žjBˆ‘Ä:2KÆRˆáè ‚ Z„À¸#ôMÍÄ»e®‹ÚY=tuWZêsqq…g‚ãZÂíŠÃ'ç?€.Ú){×i¤áÜϺ†²ü¸Ÿ0d°Ž +qH»£t†ÇëÖ¡ÓÌç©4\ÂáWvvœoÇYhûÙÜ&ÛÏBÛ‡1mÑ6uñTñP_F"ÜŸrp8,€Äiè+ ®0õÑ/dcÝœš±[Puuvy—SiÒïJ0@¡Ëa›\1ËMñNȻ҄½ HœwÂyW¦È»O¦€=¡)L¬†².•!-Œlÿ«'ê,‡•ùŠ'†T—=±§êã媆+žh"•¤æº =Õ„cOœo³±\OçÁýÁ À®\-arøÊçµíà¤ú‰(ûEPÖŸ]Ê, + +]ç){Ú´ÎïÓ¤Éβ‡ÖTÍRØNE¤Í›”Ô»•Ìg øE·ÂïÀiNíí[B‘ÅöGûÆ/Ù7B}|Ù¾‘÷Æzœ}#€öì}C|*¡‰=¨w—9&Œ›w'Ëù"BåÞŽ’î$¢-ê^¬²Ÿp(£«Gâên&pΠߪ)èZ&VÙünãªò'” ¯Å„pÞrpò^¶'û\òL|<š:|»ä¨¡¡[9 ì>¸ƒ¤Ö±;¿#’Jyj{ª\—íªÁ‰¹8B\oN-µqkè*«y)×D£äÌc˜Ø¨ªæä9=1ŸcÞæ‹,C_ò /°©'S†§_'·¤¿ tG©¶köþšgêK +3®›Â^Ñù æŽÏ> endobj -1268 0 obj << -/D [1266 0 R /XYZ 85.0394 794.5015 null] ->> endobj -390 0 obj << -/D [1266 0 R /XYZ 85.0394 568.5356 null] ->> endobj -1269 0 obj << -/D [1266 0 R /XYZ 85.0394 542.9142 null] ->> endobj -394 0 obj << -/D [1266 0 R /XYZ 85.0394 177.2349 null] ->> endobj -1270 0 obj << -/D [1266 0 R /XYZ 85.0394 152.7841 null] ->> endobj -1265 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F62 995 0 R >> -/XObject << /Im2 984 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj 1273 0 obj << -/Length 3133 -/Filter /FlateDecode ->> -stream -xÚ­]sÛFîÝ¿B÷tôLDs¿Èåä)MœÔÖißÜCÛZ¢lN$Ò©8žLÿû ,µ¤(;7ÉdœýÂb±_”˜%ðOÌL§¹ÌgY®c“3[lN’Ù-¬½; 3÷@óê§ë“³·*›åqžÊtv½ -pÙ8±VÌ®—Fi,ãSÀD¯ß_¾½x÷Ÿ«W§™Ž®/Þ_žÎ¥I¢·¿žSïÝÕ«ß~{uu:Öˆèõϯ~¿>¿¢¥”qütqù†frjŽ ½:{~u~ùúüôïë_Nίû»„÷‰Â‹|:ùóïd¶„kÿr’Ä*·föƒ$y.g›mTl´R~f}òáäa°ê¶NòO$±T©œb`>Å@“Ç©’Ê1°kî›usûx:O“$úŠšIç"ѳ¹qnŒt€"9³/Ýr2\ø—¨3©G«$ ¯„`ÎDú’ -1¹Þ?´g>y"-ž½J÷—@ôYœ+iÌCµ^ƒL¬ˆî·§ÂFåªÜÒ¸-·ŸËm‹55MÖe÷Ðl?Ò@$Ôvw%Amš¶{ݲÓ>–ƒŽóëÔ­K”‚PÛzÁ{œ=Ad€e;qðNAð3†È!辘ÒròÚb˜C±-M-Ü3‚ÎÕ9P^ñR³åí´áŽ±{Ònªþ+Iä펃/$/É£ÿÞ•Œº ̽ˆ5û1h=[=”í]¶'î~LSV7N-ºÍ¢›’Úûr‹V‘b茘oSmg£S@'oŠÖ7Œ«¦;ü»¥Q ´ŠýLÕú­Ž?Ö«é§]Å°Œ©çq <Å™ÔIƒìr‰ä¼H¾Ær„꽑٠nÍiª½™ë½ä¡SÚ ›Ú8n «³§8¸)!ua×”ƒðŠxw\)ê) -xy3òø:eŸ¤’r¦2ˆ²Ì~K a†µöH˜Ñcœ‡(ã im,a¦‡B*7EÉȈF–¢ûãhì1>C£1êL¥C"H”B¥Jx~cʇ© –ܲiêX`UG2{SÓ̦ñVGí}¹¨PÎÓ“áµ@‚Vv¨Â`ZñM¥âˆ»E%Ðy6#¨×*Ç2åk÷²qÏ ’ÔÈC¿›@ÈhA‡ Šð=çw~n˜ò»c¼C¿ „y¿+õZ‚ä ®˜ð» õ%Ø¿« c>/\bhᮉi#nVOJLhУ¼ÏVž6Bi¸Ùµ×–ëiN[¢Ó¡Ö -W™t1¤Qùå~]-ªn‚œTÇÐȧ­ˆ€¤ÁXÈV”‰¤™þîÚcœ‡(_¨0âf&ÛŸ|ÔŒ›AñÇé1>G$–¤UC"™ Irï¨6„²jê’„…qNt uJÊXÑg¦™¡Ñ€lQ) ¿b®ûàšË¦°sÃ;I/dtñ;i‘02ƲÆ0æÛ{kð  -b·Íä¸ÍµlõŽ/#W¯¥¥;Øs÷‚¶ÀRò²í¨ò4vKæÇÁqœZ UÁ3üNƒ1ÎC”SNÃÄ(ãê¸c£›+ð*?ŽFñ9As™¦C"i$€d&g~Sⶢ¶tÆ{Îøa‡ŸëbBé´Ía»¸+¹®ò«$OG5ÓÛ¢ª}a¡Ûׂ´cµ½k‘ý_5€î®î*í -jH,¾éÚU³«—£Hüþ{—Q(ÍévBr”–CrÀñ(ÜÁä ð]Á@7¥  çè)—øXRH͇›%óW÷ÎÅ‘„Œ0„8¸CÆññ.jÆ­h>&’6 x ä ^ `Ï¢ÛaÚ ¦UÕ¦êªÏ% ÷†D$œÙá4SNƒÏ€?BŒø#)îÚ~oC-ø0ðôþ˜£ûë©Àž„/óqqIæ” B»i>fúM7åmU×”FHRóÁzˆÔ%g*ºÄ._’Þc[PóùSáù *+u”õ1êÉ$îXgCÑXæ¬:Në;bpæ™ Y™^èv:"H=Ó‰z.“' ÇL¦66ÆþˆL‚1ÎC”S™„Šm«=Ø©Ä‹ZšGdñ"Ñ+%ÔÈã©„Ñ`uˆá/:)M9Ã$N„TßßÈÆñ=~!>~uÚáL œF&† ´Â ËŽü¯m2eë ±gѶÕmíòý”¬,4K¸eAåœtÃR_ÔIÇF±ÕÔ2„¿cXâf!Цª«Ín3ufňñÕûÓ›){Ø»ÐL¹•¡˜ð(5kù¹A‡¾=:ŒÊfsø­á:Á -ýCåû¾Ô±(+GµCBåµ ú]ÎÍ„‡jiˆì?—Q3קJ3önËnŠEáÍ[ª ‰cXOUó°ˆÜ—šybEm_—vÕª5¯‚a«Á8åý·SW‚”ë²üÒÜÆÝA?\:€}Å Ëù”›ØÈ—v¹j#‘c®icq&5-1EhªEÊz €Åª£B«õ•O€-+®>&v_Uõ(%£ä"a°¢ú•ý‡ÞÄ’öOÜ¢F穦K¡8ßÞ55uoÅJ"E-ƒPZ¡DÈocTôG¯˜?RL€F5¬aŠ -¹»S>À0àæTµÕ_W™Ìë$ôŸà˜kºØ«¼!â‡)&¢u¡†ñÑŒåá:ßjÆ¡ÅógB{n™|Ì-3xÆûŒ‡¹…‘uM3LXÞŸ®ùtŸ-M€˜1´ìYh}L¸ÏϘ™93sâ6ã·Œ±î bµå¯ûÕ ”uÓàc…5äØèSÿ¨ªºÿ®8þýŠ’6ñý_ºO”gg´rñ”°éîa©ëX~ô·1_K là¾þùü’z«jë‰]UÜA¥|ðý¤çá;@üÆãw4>瑈)ùø_ãêûr8¥öSÿ¶T*Êb ¦çIÌžÊ\NqØ_x±.Гc÷õhÿ³ÅS'¥v’ß»–…ãïX··> endobj -1276 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.6732 432.1255 286.8984 444.1851] -/Subtype /Link -/A << /S /GoTo /D (rrset_ordering) >> ->> endobj -1277 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [209.702 354.4169 283.4678 366.4765] -/Subtype /Link -/A << /S /GoTo /D (topology) >> +390 0 obj << +/D [1271 0 R /XYZ 56.6929 564.5444 null] >> endobj 1274 0 obj << -/D [1272 0 R /XYZ 56.6929 794.5015 null] +/D [1271 0 R /XYZ 56.6929 539.4426 null] >> endobj -398 0 obj << -/D [1272 0 R /XYZ 56.6929 498.9148 null] +394 0 obj << +/D [1271 0 R /XYZ 56.6929 176.3615 null] >> endobj 1275 0 obj << -/D [1272 0 R /XYZ 56.6929 477.595 null] +/D [1271 0 R /XYZ 56.6929 152.4304 null] >> endobj -1271 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R >> +1270 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R /F62 995 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1280 0 obj << -/Length 2260 +1278 0 obj << +/Length 3129 /Filter /FlateDecode >> stream -xÚÅYÝsÛ6÷_¡É“|SÁø&>¹9;uçêÜ)¾¹¹IóÀH”Í)%ª¢G×éÿ~ ,@eûêdnô@\ìÇ‹ÅîŠ(üØÈ(B…•£ÌJ¢(S£Ùò„ŽnáÛÛh&‘h’Rýpsrv)²‘%Vs=ºY$¼ ¡Æ°ÑÍüÃøÍ翹˜žN¸¢cMN'JÓñW×Å‹7ï®/¯Þþsz~šÉñÍÕ»kœž^\^L/®ß\œN˜Q ÖóÀáÈ‚Ë«¿]àèíôüçŸÏ§§o~:¹¸imIíeT8C~;ùð‘Žæ`öO'”kÔè^(aÖòÑòD*A”"ÎT'ïOþÑ2L¾ú¥Cø)aˆ2<Ð&2¥I–QÐNY¢ÁßO'šÒ1³œ0m?ãòûî”ØOýqøF™Ã)hÀ±JñG8Ã+LžáÇ«K‡= êN̪¼ipø¦·Þ‹â‚X66p=-î+œógžà‹¿PÊoïSy!Þ©qЩqÐÇ·øîˆê[²®ò™×Z -ÐÚ‹•2p€©àÒÞ9]¼_uýpG˜`‚þŽíf;0©øÈ+JTÆm m¶ù¶XbØ‘ëb³,ýaEööçÛÒŸ' ðv³ղůXw@2$ ®aÛ»†1ÜR à‘x¼uù¤s{¿/}^55Ž¶Ã¸™ òc©"ñ‚&$¡œ÷1û®ŸÁ %‰ÎÔHº¤ZYæRiü¶¹á`šäÞ‘|’ÒûÔ»+¼ÏÕ)ñ¢$nŠ¯]𠊾B’k"„2j€–ê E¹9Mî§à„VËn -r¾Â]»B' p¶Žš*裧œXö¬jˆkŒ®…&-ÇIÊì(Ç-ìµÜ ö[¾.fnÁ9‘TÅsW†;a^¸cƒñÈya˜Æ$¬yâ-@i©ìÞ0÷‚TG&PY² ¨¥ê &9T¶1ʉ¶B¿±Èq’²ôˆu”cþ:{Á>]s·íb!—EC>"2¶»u1`5„5¦yô“H”ÍáÑ.œ~5£[ŽOÍyF´„kýÏ[½'îZ­`(c€~5¯—y¹:ˆ4à¥VYûõ o9>a¸ÀF›Ã_ Yn‰1™íZ¾¿:¬ç„£ÓØ0œA¸PïÜÓvΕ˅d¸.sU&–¶nªÕ"#RAÄ„ú‰dÔšç^! Ðf½Vߟ[¡ûæÂQ p^aWôo‹hL¨%¬UGîW)ˆ,Œg’Ìûœ}Á¿)&Þ×Òi§4)$ëðÙç“2ú$¤i;Îïu¯pXÔãBÇÿ©WÅPFïVU9Hà ¢5¥Ð¼ n·±P˜}úü|–qÅñ¤°GRŠ§vÂA-VùjŽ­ÿaUŠ{›Í·¨h[4õ2Ò  ÞM’Éñ#°'ö¼ £o -;·P™4û„[Ed¦0eœífU9ûf°ç A}¿šOpô)~椖}­ Øÿ©ñÿL["2@|âê&uZYTX‚êPìh„gz¸ÀŠÿùäR„ÐxY‡ÆShÛ¾î(¹K]JsÐHšJ±ÔèTÜIïÿ*ôê}¦íGç¡Aís7zåúN$hBfõòUìt·²ð|ö *ôÛÐ|TìX‡jqÌ9÷ëYîÿ^À®Ï.í¿ì[{:KšÖÞ@7:?ÚgÒm#) ä†!Ç)t]c;Mó}bÓÙn98 -‹ÉC¿áxkÙ.‰Ž3-(‘㣹_8mýÍé2¯ŒÅÞ%dj†P(x»€æÕC¾kºMÊã'ÿ‘0ë»,ç±ñ™´Fa|~¤ ìHTé{øÕ¢× :LÚ¤…êQ>»)¦ÝÁë5x¢ëu‘{]öînÀ¸¶ û -2Z;˜õ2cð¨@ê‰(¤*‹†ûWÊB÷Wî@ÿ†Žž¼‹žûñþïtér}Ãt¤b8 J9ДíkÞþµ|¨ú~˜endstream +xÚ­]sÛ6òÝ¿B÷tôLDã“&Oiâ$î´NëøæÚ>Ðes"‘ŽHÅñtúßo P EÙ¹I&ã`,‹Åb¿(>cðÏŒN™´j–[•jÆõl±9a³[˜{wÂ=Î< Íc¬Ÿ®OÎÞÊ|fS›‰lv½Šh™”Ãg×Ë?’×ï_ýv}~u:š%Yz:×K~º¸|C#–š×.ß^¼ûÏÕ«Ó\%×.iøêüíùÕùåëóÓ97šÃzá)Yðöâ—s‚Þ]½úõ×WW§]ÿ|r~ÝŸ%>/gòùä¿Øl Çþù„¥Ò={€K¹µb¶9QZ¦ZIFÖ'O~ï F³né”ü´4©6"Ÿ  ¶i&…tìšûfÝÜ>žÎ3Æ’¿ñ@3!S‹ÜÏ9O­ÖÂ!rvf^ºi6œø±É3¡F³tAaÀ9ãÙKêH¤ä hÍ|rGš<{ œîäóÔJaÎCµ^ÞÜoO¹IÊU¹¥~[n¿”Û;"ij¬Ëî¡Ù~¢gÔvw%amš¶{ MVÍzÝ<”K¸y¤öž¤’`©'û'Ó f7Eû‰–­Sü ˜ãSÒ*jÜQ©ˆ¬’‰D¦”†Ãvw4M,P~]”÷]å¸ÌfEÃQÃTDQ9F%C61°éXEFÃîwÕÂo_yÚ{™°œÒuY´½Ç´Åzö¨î6s‡zíŽËrUìÖ~Õ^E±{;­¨ö^"Ý«¶kÖÍ¢X£x^F}8;ÐÈ©7­-KMõ-š‹ÔZ­¦5œ:çi&¸:N‹Ö1 åAZ¡G¤öÆSs›ÂõåýÛ‡gÓ_ÃjÌ猦ÎsxüŠ$t=0)Žˆœ¥Z +àÜa|©ðäþÉùX2@Sq`MK0RŒÜzöyÆS¦¬•„Áî¬{¸³‹˜½iàD³èPð<¦ì•‰èÖ¹ÈS–+`@ÓY¯BîPYl5@6Vj¦^//¦¨Tj$ˆMxY¹!•‡¶n:?°¹_—›²îœ‘Àé½@6KLY”>°ßÖ÷)ªš¶™Í÷.âûÔ3Ö)“ +ÔëŸð'ʨ47Â:™¡åYÊÁºpï©Òm³íÖU°»¢sÒ›6ñB¥VÁóØ©²1í}S·nDÂMÒLAÝ7—©ÿyWn Ü4¹€e´=Œ:Cƒ02Üã`ƒfç€Å`tѸvÙÒB´šWW­³ãkÕl7U}K³ÅÿCoÂd¶%òiUئìp#ˆMØg’LÖÅÆCäëöç%°´Ô£m»Ý¶¦>¹« VvwÕpV%nwÃ\QÓÂêÜß²ìJ<9\'ús;þ Ïs³Cz,®Kºðfê6ZKÿ·[àcÞl=á‘Êh– +ÎnÛ+—#|ž!¼¼”ñl¦¤»À~ÓÜöÖÛ¦«(À +èó?ØØÈ ©"/Ë…7"ÀIxjÌä +ÌrtèõXÏ0rHÍËUHØÌ«0´XW½˜‚¶®I•p¶Yz¼ö®Ù­—1^±Ýõmt@]¢€N€}chÂc½.œåIqO‘Cs¿­àª0ÀÈ3 Rt4_µn(Ov-½)\S?z`¹ô¬¶¥§GF:Dr8¯N`]¢) +±­~3&H ¨l'¶ÙIÈÞCXˆðÅ”Š“ƒPƒbÁ¶4´po€%nª,p^ù©fë—Ó2ßøkѹ÷ì†ê?·;z!{Ì&ÿ½+=é‚(÷W¬¼ƒ6ˆ5`™^`zcâÎçyó\  Ç…‹dò䦤ö¾Ü¢I¤:'á›,ÄÚùhÐÉ›¢ ȧÕ#ÓþÝR/º4‰LÕ†¥N>&¨éç]åq=¥^j$xgO'­±Ë$^ç¢û¥ ÖǧÁÅ›íÑÐöÐÆAe*[½‹<4p;ÈQ œ‹VÕSìÜ”¸x¿dáòŠOxvœ)ê) y4Öfž2ÊäzhŸ ËM>“9„ yn¾%Ê€Ãs$Æè)Îc’‡A†{©³\ïwF67E¹È˜IŠÞÄd2P|ŽI•§F0>dòÈU‚V@ȃÀ1ãÃÛ© ’ÜzÛÔù«:ºD085lš`°×Þ—‹ +õyáü\,¼|Uï] QÄ]ƒ;œßÞ͸íÇDNãín(| Î.)ݳÉ1«ª6UW})©»·$œùć=çÔéé äÃùH>œ“Bâ®í×6Ô‚?¶9º¾žŠëéò…–„¥\ÚMóe4Ò/º)o«º¦,Bšæc¢.7“ÉÅ'öù‚ôÛ‚_-‹‰?x.‚5A%¥Ž’>Oz2…w¢3ñÕ/Y“t>«ïHÀy&$}d{*îtHbLš+&Ÿ±¸Ì¦´v&2“jm~@Œ(Îc’S‰=òèÑžH$XªŒýNžÑÌÅ[üó¦»Ç%Љü›hûŸp“E´¯ßŸ_´ª¶ÙUåQæ7Þz¿¤¯}Çsä3p™˜ºŸðCœH}_‡ä~èŸÃ–*E®Î™?I9piÅ”„Ãë=9‚¯G맄͟Ú)3“òÞµþ2Sü ‹“öÖˆQ_ûчÔ)þúj¢*Èú_W|÷¼öܱ¬g̱Ïz,éÛ<0…ÑvÌyÿk°CÖÿ}2»Iendstream endobj -1279 0 obj << +1277 0 obj << /Type /Page -/Contents 1280 0 R -/Resources 1278 0 R +/Contents 1278 0 R +/Resources 1276 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1255 0 R -/Annots [ 1282 0 R ] +/Annots [ 1281 0 R 1282 0 R ] +>> endobj +1281 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [242.0197 432.1255 315.2448 444.1851] +/Subtype /Link +/A << /S /GoTo /D (rrset_ordering) >> >> endobj 1282 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [353.6787 434.7534 427.332 446.813] +/Rect [238.0484 354.4169 311.8142 366.4765] /Subtype /Link -/A << /S /GoTo /D (the_sortlist_statement) >> +/A << /S /GoTo /D (topology) >> >> endobj -1281 0 obj << -/D [1279 0 R /XYZ 85.0394 794.5015 null] +1279 0 obj << +/D [1277 0 R /XYZ 85.0394 794.5015 null] >> endobj -402 0 obj << -/D [1279 0 R /XYZ 85.0394 505.3435 null] +398 0 obj << +/D [1277 0 R /XYZ 85.0394 498.9148 null] >> endobj -955 0 obj << -/D [1279 0 R /XYZ 85.0394 477.7522 null] +1280 0 obj << +/D [1277 0 R /XYZ 85.0394 477.595 null] >> endobj -1283 0 obj << -/D [1279 0 R /XYZ 85.0394 352.0635 null] ->> endobj -1284 0 obj << -/D [1279 0 R /XYZ 85.0394 340.1083 null] ->> endobj -1278 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F53 962 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1287 0 obj << -/Length 3153 -/Filter /FlateDecode ->> -stream -xÚ­Z[wÜ6~÷¯˜·•Ï©TÞD‰iâdÓ³uºŽ³/mä‘ÆÖfFru±ãþú’’æÖtÓ“s" >óƒ|•êDaV™QIÊxºZï.ØêÆÞ]pÇ{¦xÎõÃíÅ÷oe¶2‰ÑB¯n7³µò„å9_Ý–¿D:É%¬À¢×®ß¾÷éæÕe¦¢Û÷®/c‘²èíû]QëÝÍ«Ÿ~zusó<åÑë¾úùöꆆ´[ã‡÷×oˆbèsbÑ›«·W7Wׯ¯.»ýñâê6ìe¾_Î$nä÷‹_~c«¶ýãK¤ÉÓÕ3tX«݅Je’*)=e{ññâßaÁÙ¨zìüè–H–ò¯ËEbLªŽ‹epY¢µ>³šÇ`-×ô3–KM׫ ORÉx¸^!Wœ'&MÞ¯‰Ì¸^ei -w®é~¯ñ„-§IR­82rËÐÜr|¸Œ5náܬÉ2‘­2“KaE¯~_ñ„)c$1ÍÚv¯ÓXÂ÷ïwbõ¦…­f›ò Çó•í¦´˜Ù,˜*p|¡’ô·ß>T´+-g¬‚%*S¹ÛU×]ò4ê«!n»KÁ¢²êÜœùòpñyn¸›ÓÅPíªf¸Œ¥QÝÓ·iáªlGF›q»}qŒ»Ç­W•ŽÐЗÜ[„es -}Öc£bp*‘ZÂ5Ó•Òõu°*ŠY•mÕSËj„ §6ûññ¶+¹Á_…P¿2&¾\JP»Ä. ´žF çS7÷Éþ•+m‘›|57·o³`ô•ÔhØÛä…ßæ_K§àÌ>8?‚yBJ0넧pŒ1°}.L46pxÄ0P½Ò9ⱂûÔ©\š÷áqîÎ̓UZ/2ûª¤–urøöøÒa£ ='ƒi<ÀëÎíæÕ µi;Gz¨zGsû NÝ„q/ËŸ‡Tyz½Ö‹½:‡Í‚üð|‰¯9“ ->Ρ¯™Dç*óžÆŽ»š‰RÆ‹@tµŽG͇vì&¯ÛÓ<‡÷)ñÿi¾. -@Jõe]ÙË…væΫxqÚ ýÚ†'4av,âçz»%Œ¸søÓ×[“ \u—9¼œò•°–¾™ƒR' €k㨆%gAŸ{ç>ƒ5z§ñ¢XD¼óp41A#Çäù4ÁáÍ9ÙéPø‰à”³L/¤»79ÕþÐóg õ.dr1h; -ì:O3qþžç\§/:pÙ›®›¸kÛ¡?¸eÆ0}’çE®#²÷ !ˆQÁ,„;àÊQ ½fŠ¿`ÀÆ_ðµ7Õ’+w³= Å@-:kãPù÷±v¯:[ÉÉÑ&®ªöœ™…Ô|OjK,wÎ 1“j²Ú_±^W É×VðÏÏKã1ù4NAº”‡ '‡¤‚Ü•Â\>×úkr ™ÛŠH~:—‡E3#þJ&äfì¥-^»XbêÉ2u"—Ï!žËr±Â,ˆ§Zü¹|À”A4,Á™âoËåýÂñ|åÃ\ƒ4-•\É,M˜4®@ásÙEm }]Q Zæt²:?Ïo»" g¯ “%Y=o@±0IžgÆ: WòO²H ìB§ùy0 \6À¨ïcx.ë²^⎰ƒÞ°© ‚ž­æÍsÑcl©Àìf©ÇÇÇj]ctŒÁ¬d.ÂÆÇ6l#¶á—bÉ0QDXYLØŒÃHHEý燪¡Ö›ë¯^S6ÞžÑÉ,ơ݃/«°ò´t‰O•RõÀé¾jªŽâÉyTôD.¨ëV¶ …d«;ÐË—¦ØÕk"Ž%,ÐÓ¾nûG/ €¿á`¦Æ}ýGuXû…Ø-ãæ¼øÀuD¾Ü‹ rÈ•– -ø’K6•\Šh¨{_3»‚€“F>½ù™Hw£­oÈѲÈjoYlÒ‚/CeL²è?huÎX€%€ –ߦ7:‹R.\%§%‚bFOEC7"ëR™- ¦‡¾.mI·C¥]uÃDtÕ hÝ9ʬœ'pëÿ¶JÌ`4M¹;ŒM¹;Ló?H@Ó‹Ae÷çŒýX8¾8Nåẩ3DÁýòvàØ ë€WÔÎì£ݦmâI1­ƒbÚ)¦hô]#.ŠÒ3¶Ç¢ïixx \ïhèŽúŸ1Á>zíë$Ì*†cî|7EF›®¸™.ô‹õgg‡ÖŸ¿÷Q×lŽ³½=f_bsK:RK¾†ZÎȘ·ÐŸCV'ùŸ”WgL§ýÝ3ùòêIoljƒËž˜e˽R3R/„“«Ë\¹Ç,Ÿý¦òslÙ³¶ãUß÷Ž™Œ[úÙtš.»Ááªq4ûó?|=d\Ì1‡¾Ìµÿ#åì6¥¿2åpA\Ps\°# ;A=¤*„¥«è«EE_@€å;5/ßÉé7Iy1•â=ö€9ÿ O€ÀDÛYXŒ¥ØC`ôË3{¯£¿à˜O!€9. °IH™!À‰¿T’i¢ŽÿÀBAï›ÿŠiús9vžŸ(6‹,OT‹8¥è§éCgàZQý©F`Šendstream -endobj -1286 0 obj << -/Type /Page -/Contents 1287 0 R -/Resources 1285 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1255 0 R -/Annots [ 1290 0 R ] ->> endobj -1290 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [297.8955 313.5049 347.2449 325.5646] -/Subtype /Link -/A << /S /GoTo /D (dynamic_update) >> ->> endobj -1288 0 obj << -/D [1286 0 R /XYZ 56.6929 794.5015 null] ->> endobj -406 0 obj << -/D [1286 0 R /XYZ 56.6929 670.419 null] ->> endobj -1289 0 obj << -/D [1286 0 R /XYZ 56.6929 646.4658 null] ->> endobj -1285 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R /F39 863 0 R /F48 885 0 R >> +1276 0 obj << +/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1293 0 obj << -/Length 3875 +1285 0 obj << +/Length 2262 /Filter /FlateDecode >> stream -xÚ­Z_oã6ϧȣ¬Uþ“H¡‡¶»Ù6‡ë¶—M´}P,ÚV–\KN6ýô7Ã!iÉ–ã.î°‹ˆŽÈápfø›‘ù5ƒüÚ¤ “¹ºÖ¹JRÆÓëÅæŠ]¯`ìû+îyæi>äúîáê›R_çIž‰ìúa9˜Ë$Ì~ýPþ:{÷ÃÛŸnïoæ"e³,¹™§›}w÷ñ=Qrz¼ûéㇻï¹{£Õìáî§D¾¿ýp{ûñÝíÍœ›”ÃûÂÏpæ…wÿ¼¥Ö÷÷oüñíýÍïÿ¸º}ˆ{î—3‰ùãê×ßÙu ÛþÇKdnÒëg谄繸Þ\©T&©’2Pê«OWÿŠFÝ«SúK¥IR#ô„…(3h«ìZ§y’IB>în¸™µŸms3—"ýƘp$û\ÔuGÄ~]ôÔz¬ÛÅgj.wÅjc›Þ–Ôߋ϶÷oMùM»;yç—÷?O0¦/hiꬨSôvùÔ8l{Îy’§©p{H¹ Sy|émG(9›=¬«Ž¨ñÙ”vkáOÓ¡]Ò³_[jå“ÝõU‡[Â> °°Õ“gxÜ/‘´D‰°ÿKJšæM m@Ã<AQ>[6Ý|_nç]õ§õìÃÉÀXtî™aJžœØKX -&¯y–HÆÌ´y¦ù‹Ì€OùQàÂU7EjÆïí|Ùî6p"G2ðL&™æu!"ׄ#cÌ@E p$Ƨ­]T(…EÓM»£Á‰Fm/Ÿkãâó϶qv¡“²ÎÚã½ÈT%Bgb´Ü­®©q?ØUä¿°«Óyݮ좯چ$z¢åQàš`úuÝF® RœÎv0¬yÊ!¢­–vYìk¯Ê§¢Þ{:¸Œ3S™â‡L@·ÞN{û¥Ÿ°e!“#1½qî:W"K8Dž‘×>¯«Å–SÜy(>é´•˜u= -¥‚åöEMòË-=:ðçõ‹›3jö¡¢ÓÇyz¶0ñŽšd;-ÊÑF¥È©Eva§:‘ܳâŠú²­<_¨k¿ÌI 2͒̈¨ºÁÀâ]pÓô->!bZê¯lcw…ò‹g[Û‰ Ã¥L”ÔÊ‹Ô[Îíf úpÞqº…¯ñŽ@ZAr9$çDj5f*«1QCMOºî¬\åc“Ž-´Wýš<Α³®Øø–S45kûdkb,º pX¥‹sémÑYHªÆÆH–'ÏD(Œ˜iž]v3ÅÓh mƒË®ö»‚îPœž”ëNÉ d¸5z»!x‡]0Ï‹ÃûŒaâ :’΀²l`.´„{j to° ñzï%Y^ðGëíI3Gb àsW•¥ ³RÏÜn¥q¶-…й·1dØGž*ûL#E甃îÒRÕ,ê}Y5«0éÄù¤:aÐù:…0Ø Ç5<Xm¯òÛ˜>„9Äé„)ÍÇ®uæÂ*a:ZÅÅãSåàMipy§’Éy2/>Ÿ PŽp”œÚŸƒýdgPzjòD¯¢ô!×y”¹œ3Ô¨¶›‡ÿcow/oH¦Mñe>9~,¥ÈtbÀ_3rMÈ9FA®h#A`v¨@–¡b#õ*JÕT}…P©t"±ú7û bUH£°?¡N³ß<Úx+‚™>‚”Û¥!…Ûïºê ®ZKÔ¦ªcVíÞ…:TKÃäÖ)®þBÃ+H¢‘Rõþñ‘I ‰¶àðo¨­Lˆ"`(|óàFø»¨‹®›˜Ô@¼Í"Fùû¥9½ÓˆàRŒ¶owO”© tQP’ybXnÆžX,v‹dxàféb¿¤âÁvKa(EYVè'îx3ÔŠ¡Ze>ä;F·,½ÒCÄ 8!` v¶^R«ß7~µž=´‚ÑàÛŸpxqEÐâ¸>à×ÂüÝ{uÝ®V¶Œ•OÙvܾrá=v8óĦ –ÄeóD œÀÉ˳(/4»u»wxÚ4+ 9‘Öí356dzÐB{«œ$<…p´ñ¹HO²Uhô–ÊIÝcf²lTqȯÜŸ­×B”¯kë';¥ÖƒaáB¨LÁfwË‘­É઎HN)[¢ý²°«ø#ªSÙ›ÃôåÀZ quÝžPŒà”ÊK¦)mQ“q¢Ûïx?MÛÌý–·mÓQÑGf³Ã…KG$/‚ }dþ2žC*éFz•Ã»+(’ÎNF…ãêaÅ¥«~áà‘³Á ŸýÍx3d|¸V/©b €e…³"ÑÒl†76¨SCž0¤çð/6ÄñèÇêöÙ§v% ¸œ£>Dô}ïr B2HL^º5"M'œ›bST˜Gg³oÈ¿ËIOÅNd‰`"€»³7ã)šDÙ`Et‡¡}¶Dø“¦iß„K—ƒ3ûC¬q‚Æ¿WW”,ÂPÛŒEM:ÊàVRæ¹F¼dBnÄáN3ÃÇÚø›ˆ†Ñ²¾F½p¨*bÅWÐÇIZ%`Ð+aHÇJh§c$ t¬´¦'ÌPÇØ 4-½¿ß:E!é±Ý£~°éK@ô~ÑkµÙ¶®Øë˜_¦à)çiI:VèÎ# -6=uÆ4yÓgÁ¢Ìàß,,¹ÎƒÅÈEᬯ–/óÒÖÅ ä -O/—¯¯¹&–¨J“`Ùx}ºV5„H'ç|†îb|>¬º.]¶d°úÑ?[‡Ÿ«À>‘ƒÕU2¿7¢ml×+gÝ:\‡@.èÁÛµò¡@ជNLñaú¸Fl0™2 H"r–Á˜ÁäUYñÏàÿÍp›}·¯ê~ÒŠðÂ@I9UÌ*\ê8aHà9s¡ÍA¯Ò&“†Ï¨Ú>U¥ µ8ê¶Ö¶Þ.÷51–U±jZï I„~MSíWkz£ zOHrEwƒŸCÂæ°Gò;p;ÏO0 -w׶³û²÷ívî -ó²Åè?U‘"ÉR"ùcÕ”ÓÕX¡yð6'¬r¦WƒŒðüÝoú41#¿‰xÚÁr¬0C(òÙ .öŒu¬ãöŠ]O-§+Êâ±;Pô(cÇá3*‚g‹ÓììÒwŠø)uÈê°'³Ž¾Rž;3ü4lHHl˜‰36<×)Ng$. ƒsvx2¢Ñ1J¬Ò›ìÂ1bRÃc 0Ô^aZç9¸–Ã:ðë’¬Cc/çƒ_g "Â[çDÌ$ -Œ×¯~÷qê:„€¡U°ÜoãÂdN!á )2Ÿên‹¸¥&Ñ’†c¬ÉñnÇ£í¨Óí -ru¾©‹'F˜àoE ïì]+Ky]©67¾T PªÍµWeî®ïÎ7÷€S)@2í¥ÝSci]927áU=k(Q@’_©¬ºâ±ÍKå\êãpî‹s23³½sa¥ÂG'uP’ÄÚ…mßäbæØ©Ö†ô5DØ£÷¢KOœ?Üp2æR¨Áâ·ÖÚÍüB‹–˜$ŠÆ]ˆH/zÚ/ÛºZ80 ½ð^J1G©³f sšh“§ãœá•HÈy@qH¶°äÔ/Ö1G¨2¦ügøE]?ÆU^¶öÌw2™‡‹óá?Sá š2}õû/?ܨS>£ðº—ºN2ogDx¹ðЇïÚÐq_—sÿùþw%5õâ‘a'¢h;/ÊCÝ [þµÂ5ääî÷ -Ët̉û‰¤4úè(ü:ÓõmŒL€cäQÜòQÎ{šÇz À½¾´1ñS–Xy8ã…øû Èzäë^8ä:ï…‘ e]¸ ¶9rCü¨Îåë ¦‰…G6&!ƒÌÕÑÊä„YvÁõú@Ž^˜ ÊpÚG^cä…Ue²,z!4š‡sžóBÃ¥³ðU$tÎ ]Õa세ȴÀoÂÏÕ#ùKÞï¦çñÃ,N~µãÁ”TêÁ‚çuDÇkÚ=)g ’)ˆÃ)Ü(‹uÕ xéʲ„·³Aþ“z$– ö`Ôñ¯ -\@(MÃTˆ¢Ê•à‚HˆÀ=øŽå¾Yø•HrGxa»«6…3ììwX@ 7œmÑÃ+ee¥ n**oà`…¿C£$¨—Ò<õ<´Ec哳-uÝšðX¸(Üw`–{½àrŒª#Žc?Ÿq`ÌñwÏ ›‹Ð̵£Ö¡`)òKáã‘Ù8̓ñíÛ© .MŒ,l×Ææ2aŠžÿK´ÃoSW^ v¦ó±.0 6Öºªò4Þ¥‰HxuíÈtºø8Þ1¸6\݇;=»{? Nz*àéAÀËŽž> -xú4àéËðv®²<îÞ'Ÿnïÿ}{?•2d à}õWÃ`ÎYö5˜ÃI|ûBÆ ˜Ü˜±™ýåp'Î9D ¢ø ÉDIðIyŒ hpÃg€Â`ª‚憀áh ¨Ä¯ÐÆß:RÓ .`o ëãB¦‡22ñz\L'"‹¿g;‰›ìlpp¿LRÇÁÁ½s2}lœú|õÑ4ÁßROx"»Æð?ÿdûP„Q:;g~*Ê2H³s„rÅÓŠKüm÷©èÿ”Ãendstream +xÚÅY[sÛ6~÷¯Ðä‰Þ©`Ü ¤OnÖNÝi]Å;;;i‰²9¥HU¤ãhwúß{p£À‹lï:™Ï pp.€ƒsŽÈ Ù ‰¤¦z–jŽ&b¶ÜœàÙ-̽=!žfˆæ1Õ7'g—,i¤%•³›uÄK!¬™Ý¬>$Qt +pòæÝõåÕÛ,ÎOSžÜ\½»>S“Ë«Ÿ/\ïíâü—_Χs¢IÞüxþ·›‹…›’žÇW×u#Ú5G˜.../×o.N?ÞütrqÓÙÛK03†ü~òá#ž­ÀìŸN0bZ‰Ù|`D´¦³Í  ÎX)OÞŸü½cÍÚ¥“øŒ(“t +@H¨BœÂP*4’Œ2‹àNçã„hŠˆTˆžQþ}ˆ†þ·€ÀlÎS¤(NgsB‚>Â>aðìÌM^]šý€N]¹e™5뾬·¢(Cš`þ,IRE’n~¼¸v½û&wD¿szçÈà›E2YI¦d’o†{!nìÙ¸±çâƞ¾7ú2ÜøX€è Hcs‹µ7LÞæí._ç~°½ËZ׫òÖj†û*}'‘p“g—p—Ô0H‘fTYš›;ÀœJ™¬ë²¬ŠêÖ}æ_²Í¶ôsEYºÞmñÙíN‰Jò¬©«ìS û”ßeŸ c‘ãè;mQÖËÌ3º«›Öõ²juj\×:Ó® +'fÙ–{7²¬« +>óÕÒC½û­o ö%WF‚Ia¸Š4iŠMQf;7ØÖ¾µÊ‰žòðU¯ÓÙjåti7ÐÔ»Öñ-*7¼»L8Òè‹×b‘7Ûºjò°,¯Ú¾¿ßç»"÷:®­zÓ7Ïí§Õ…1p4]‡£é¹MbL%ëì³1à fÕÞuŒ=¦íxô¡5#híg¦Hel†™ufXŽµk;3ÌGgF§ÅÄvÕ Œ[±nïu{C™kG"= ×Ó}ø“ +T[·l$Dûg±†!'‰ú[fFšl“÷¸‚ñ÷÷&ÁäGÌ÷;ÚRt‚^U·®ó)w­9Cù +¹kÚ{K»kšZÞ†°,š6x #^ +” +6íqí 1 ~}ƒMMßÏáI×y„x>)°s2¤¯=§ŒuA‘ˆ€Ë#.Mî‘x·[Tàu&=…‹Ä ·Lþy—[¯ ’Í}ÙsòÇ£¶íªq$™)Úû]eÏ LUð=ž¼jìÞ™9ï—6ÙÞ |òlàyZß—nÌÞ]há,þŠ1½½åy'¯Sîý õ)fñÝÕ'¶d[fK«5g µ˹çCþHÛÃiü œUãÑÇ;BAàlð7lw;ØymÀŸ@^`$Rˆ2mÓfm¾qn Dnóݦ°—9ØŸµ…½O@a턶ӲÃÁ=/°nD2 ža=x†»ÅÖA@øêó‰Ç œ¼Ï=}V6µëµÓ¸©âc.áŽAcaJ‡˜}7Œà•ž1ã ¡‰‰¥Ýäîvæ:‹(øîèçñ|÷Åø=Þƒ£tûb³w ÙH' ®FiÖÓi”tTOi2âf4AnK‡s¨%ïG!çÕôaàåíÎj¬8H’J¥3N1‚UÏʇ((§Ôt64 ç1GgbO5 ³i*‚í¦oóåÄÁ q,Âm*ü«°ÊÍÅqÉœC?ì°æµ÷¸°§‹þ[ðÁ…âVè ’’LâuT1`„0”2ƒ¦I2ùbÄ:Žó˜¥…¬§íL©,ÙˆÍ<¸ùdÂYòÑAó¡Ýoó ³Á³IÃ9 D=«5àˆ•üŠVŽOY­5÷”¿Àêqßj]üù«U½ÉŠjt±1A’0ñõ ï8>a8ÃI æ 5e¹FpëtßòÃë9a=EÔÜÓÈ7LÆÛ#»Q±¿¹2Ñ°€×Ä®B…äÖ §$ñ]sŸ sKóäfLù—Ý,Xåë Þ¿¤™ô^àüd6èüú_Ó®AjÌ@ŽSNyå ÀÞƒJÛ¼“e'ê¦cÝÔÝR†8íµÇt“ëfg$ð†“)"ûaL_ÝðÜzGèÕ5Á;þJ)ŸR+8(ç:¥þ2¡67%¨p‡,Ç œ5-“æ7èÿïÅ0K§’bXUæ·™Ý?gå}Þ9éÝ„rJÁž>“𦺠¯|¨úzä´°FþÍ ƒB)Öê9w—q´é Ø÷¿­ +ŠàCyá¨n^¾V ýf0 +î%dZ‹#,Ìr¸ß œ;„ .ð3çç‹ËüˆBfbÃC‡è¢— peœ ³˜¶%GHâ¸ÝïGŒú/8,pÁÉ¿ë*Ÿ +éͪ2GÃýæ"Eœ@¼#ó2´Í¾Â+¥ñóóY†Ç73¤8gOl «ÐÛ¬#«V®´ñ_쟈aï¢ùnÿÞ'hðŒ¤û¸ür¨ìÉ4ªY[Mïüh™Ivu$é„ '_T4uí,ÔÌQMok¨¦pPHˆ†øMØ×[šºX/Ê1¦y%2×4÷k£­}7MØ•’Pº„0M!Lè ´’•Ù¾é×(ßüG¼¬-²œ‡ºgTÃø|OãÙ¯2<áWëA}h±qðª‡êÉš˜dZ ë;Á‚í6Ϭ.‡ðv?a\W†},„La1œ(Ojˆ ¤,òûQRBóKîDíÏž|Šžûƒñá×tn}E§ý”wg,(eËÀx¤yøey¬úŸåF˜endstream endobj -1292 0 obj << +1284 0 obj << /Type /Page -/Contents 1293 0 R -/Resources 1291 0 R +/Contents 1285 0 R +/Resources 1283 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1301 0 R -/Annots [ 1295 0 R 1300 0 R ] +/Parent 1255 0 R +/Annots [ 1287 0 R ] +>> endobj +1287 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.3322 434.7534 398.9856 446.813] +/Subtype /Link +/A << /S /GoTo /D (the_sortlist_statement) >> +>> endobj +1286 0 obj << +/D [1284 0 R /XYZ 56.6929 794.5015 null] +>> endobj +402 0 obj << +/D [1284 0 R /XYZ 56.6929 505.3435 null] +>> endobj +955 0 obj << +/D [1284 0 R /XYZ 56.6929 477.7522 null] +>> endobj +1288 0 obj << +/D [1284 0 R /XYZ 56.6929 352.0635 null] +>> endobj +1289 0 obj << +/D [1284 0 R /XYZ 56.6929 340.1083 null] +>> endobj +1283 0 obj << +/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F53 962 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1292 0 obj << +/Length 3119 +/Filter /FlateDecode +>> +stream +xÚ­Û’Û¶î}¿ÂoGž‰^tãã6Ùô¤Ónzvݾ4}-ÚÖ‰-9ºìfûõR–lÙM&Mf" @Ÿ1øËgi0©ÂY¢Â b<š­ö7l¶¹o¸¥ñ‘?¤úaqóúLf*P±ˆg‹õ`¯4`iÊg‹üïÍo]Ü=Ì}1/æ~3ï‡÷÷o £èóæÃý»÷?þöp;OBoñþÃ=¡îÞÝ=ÜÝ¿¹›û<8¬v‡ Þ½ÿùŽ nùåöaþç⧛»E–áy9“xÏ7üÉf9û§H•F³g°€+%fû›0’AJé0»›Ç›ÿõfÍÒ)ýõ4 Y YÄ¿Š-RQ8Í–Áe$AÇWŽ@ëìeA·b¼ÕñzcŃH2Þ_¯3ÎEïW± áp­IÁÇt¿÷¨aC©‚(9rÛÜP|˜û1÷ð¯ðîNïö 9Š|R) ëÙçX¨”$¢lÎzÔA¼~¿³·œh68”ÛØîl‹Ír‘, A)Àˆ¼Øj:V,´¶LÂÔ«®ç<òÝúU=ÌËum× ÷‡›OSe—4mÖê½.Û¹/¥ðŠ†¾ee/¸6é­»ÝîÅî;³NçQÒ—ü!…~Á’!†>«®öQ.PDÈX¦3Ÿ®”®¯†]‘HR/¯tC‘+‚Mw8ÀIýyvò£áGÆÄ—¹±sÒDU£2|POQn‚Ó+˜!H2šÛ÷Y0úJ¤b5ó^ø}þ5v +.y|t +>ó∡â‰Q*†)<0ÆÀö¹P^W‚6Îâ X>ƒ4ÜdH‘¢BN‡‡(g½‘Ög“ÞgÏõÏŽ‚¬Æ÷ÜV]}t¼SW…âÛ$w¾ÊJJ€‹þ²Òæ~N¬¾²+ š°Q0<¤àÆÔs±ÛQ˜XÚÔ;—™`Īç)¼Ÿ絋a}M-'ˆ]k»nÇ”}6ÖƒZc .î]IŒ"‘òBÒ€êJHrTNÓ—#RJ(Òëì{ª þãˆùùXû8G±{âá{9_4ùÏÛbµ­„œ·×÷¯7€yò¢Ìê iª¦h p½'í^¨øˆ|)R—„ãÈ$åc§<¾ŸiH¾U‰LÓÈ{Öú¡YB  ¹$ŒÒ»%¬{÷pùšVÿ¥Ìa÷Ù «¬k,ef +¤Ÿ;]Ú²oí +¹ºº¤ñ#Ô¿ ªßßa±zûþçW´v©iG<$;J"eêíªÆ”Š4Ú–f„1°â½Î °fšyxh̵"Œ'o:¼0¤Í,öþ‘¾æQÁ‰9>¢náÏë[‚]C—g³âIÆa–j×™8=q˜is¥›æ¢ŸAu¤±Š®ûÙ겟õTÆÏŠÒ¯«ªmÎ`HÞs•uO5Á[ž$kB…|Ìܾ)JáµÓëZ7[ÏöªïjM¢ u[¿œÓ:ä™û`0‚ˆwMþžèü#çQa  Z`AÍ ®@­ÆV€a´”›ía.WnA!ñŸÆff)ö 1„ -f©·ÙSa.UB .éK±¶±n‹ iƒÏèóÙ—¤²ésõ™®_,Uhmè?Ü°Úfå¦o2"£zȨíC˜Ï ¤Ï nk(õÖ¶Ôc‘÷[ƒ¬@îí0e?ðk·“Åqo4ÜL²)—ÜÆ ¬÷`ê£e×Î5‘Nö¬KmC°Ë—~û¬Án\‰ÝwS<ѱa²ÙeO–®/•qëÜ;“.ÐN[ÕóöÝ9š…ñÅ'×ÅaŠúH>oC"2€,2•bhqG-NÆ¡‹ˆ§‡qù@;WÑ×(ÃÐи¯o Δ–ˆíÃm|fz'¤½½ÞyãéÕ뤫©§ *ÝÇ{FwÃõTP@2舌2PêVKj9\’ý!À*7삃ãÝÃÀ¤\’à.iMƒ˜h»%¡P¨Æ²·Óà-»l˜ºö>f“ip¦­Q -Ø›qdïwlúD-ô».âœË€‡ôs×åX=¤º¬{*suyÙø]~ð›â/}ÞðRàix}O5Áœ„˜œ'c\Ã+96¼²¨-×·¼{‹íœùíí¯„Zv¦¿&GK<#½!1E R¼´Ú2ɼßÑꬱIL°z|¤/âÂöÑ*B„LÅÇÆ­]G) äu‘LÆSumS䦳ǡ{ìÕ i{q--fÐRxôÿw¶r›Í`:Må;ÌËwXæúc:6(ìéš®é2ËÐýFA]ûÄõꌭý ô̱GÖá‹Øª&NÌÛò*ý£`qÜ $ØHl¤U1$û–Œn÷éè7½CÖ¸…[ +­ÝfKSKÂjÇèDt´g"ýªl2a[³£umúbƇlõÉš¢qé×.ó¬±æwBì:AlhL-m + ²vÆœ‘^øß02 +Âé&3ë»ßý?eŽ?©‡I 1a™N”°3$Ày­Pæ·O~*y$SxÔD2!úßL*úhendstream +endobj +1291 0 obj << +/Type /Page +/Contents 1292 0 R +/Resources 1290 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1296 0 R +/Annots [ 1295 0 R ] >> endobj 1295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [353.2799 712.4951 410.176 724.5548] +/Rect [326.242 275.682 375.5914 287.7416] +/Subtype /Link +/A << /S /GoTo /D (dynamic_update) >> +>> endobj +1293 0 obj << +/D [1291 0 R /XYZ 85.0394 794.5015 null] +>> endobj +406 0 obj << +/D [1291 0 R /XYZ 85.0394 667.0947 null] +>> endobj +1294 0 obj << +/D [1291 0 R /XYZ 85.0394 641.059 null] +>> endobj +1290 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R /F39 863 0 R /F48 885 0 R >> +/XObject << /Im2 984 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1299 0 obj << +/Length 3888 +/Filter /FlateDecode +>> +stream +xÚ¥]oã6ò=¿"«üE =°ÝfÛ=\·½Ýôp@¯ŠEÛº•%×’’uýÍpHZ’å¸E±ÁŠŽ†Ãá|Ëü–Á?~«’(ÉDv«³8RŒ«ÛÕî†Ýn`í»îp–i9Äúæñæ«wRßfQ–ˆäöq= •F,MùícñË"‰DtØâíÞ½ÿîçoît¼x|ÿㇻ¥Plñîý?hôÝÇ7?üðæãÝ’§Š/Þ~ÿæ§Ç‡´”8ß¼ÿð-A2z\ úñáÝÃLJoî~}üÇÍÃc8Ëð¼œI<Èo7¿üÊn 8ö?nX$³TݾÀ„E<ËÄíî&V2R±”RÝ|ºùW 8Xµ¯ÎÉ/Vi¤DœÜ.e¥°ÿ¼”y¤9$­²(‘B) >'e…RÞå_–}±_¶åïfzdÎÓˆs@Ò=Û=`Íl/ÛJÄ2™Œ÷ÿdºön)ÓxÑm €¥r×ïhòðí‡O4úù۟ܺiÛ|ã-ßvTç;SÐð¥¬*·lj+kz>;Ó‚Rh.ÿ¾ËÄ"¯J‡òœW½iQ + yÅYŒ§‹2¥„å5?ÜñtaPQäBqà»!@̲„ ÿeŠ9Zv¥é»¶,ŒCß–|ÈëÃ|r¶¬LÝUG‚æÅÿú¶3PæÀ»lñ¸u˜…Yç}բݖà~ä˾Ãí;x:6>Wßö9nÏÄ‚N˜·MMóus Akº®¬74)…X!À3§GÝÔË_ð|ÁÐò5xecŽ½`K¤n_Ìa„&û¼õ­å²é7ÛñiÈo<Ñêgƒ.Üt¬—¼ªZvÛ¼£ÑSÕ¬>Óp}È7;ºU#˜ïóÕgRO˜äuñ +còiåùD>è N6N¼9¼zîFœr± ­’ãÓ•²ExÖ…Ùƒ†ÏhÖôìH9(γ9te‹GÂ91°2å³Cxê×Z#G8GÝEŽ&¾Cèl| ³ü™¢nGncbë øH9dRÚ©;u>+ÑY”*xëUÇ6ĺìØ960˜^~e– Æ;¸‘©“*Zǯ3°f¸ù·˜EB¥zÌƧ½Y•È: ’&7bÆŽ?;Æ;ÄçïM=ÂlýD±ÖœùjЦd Gg¡ÅÃæ–§ +øWNuN—¼öª+ÑG GI$#}ÆOÊ¢TBt{U¶ëgÔNŠZ“7Df‚×Á‰ó:8,[RS™ ¯ŒAHbÂéig¾t3º a+ÀOH÷.<ˆ$â—‡žçe[®¶°]Ì­…â“n;ÿÙ!gP¸%ØÎú]œ]îéA«ËQ¾x8ˆKïJº}¤[ӳ’w(“ƒJ‘ER‹äÊIu$¹C9ù-dõ¸/Wà<45_–$‰–—Šdì¼@ã­ ÚG­(¬Á|cjsÈÝ2€mkfœ—2Š%X±dürÕìö kçGÈTÄ•VþœMS¡óLåâCÓÚ“|3îú²Å°œdrðƉÐrŒT”Ác¢„êŽd!¤jYœeá [hyénTeÓW®-eê¬ÿŠU“¦¸Ÿ]¬"™*9”Ü U¯æÚ_ù.?ÙfW: µÍÎ8ØÚÂIeµ5«ÏŽ§øV¦M_Ýñ…»þ'÷öÞP^+0«°Bã ‹@-³±¡ AÍ€^Û;pö4#Bð†^¡D“eƒ‹Aå`zñÞQßç+W}Ê\ÎÉ’yòVK”n;yĔ̆¸-íS4tªºéï÷6Õ#s¦Åù£rÁ¡"Þ&ùËÜQ¡¤zî¤6‡ ÛÕp™Môug ùr9'>„· „û€±½%/1ÉT+qvÉX15â’ˆî ץ͟ÜvC·Ó—²Û‚Ktä¢ÍwndMÃÊ<›ŠóÖ3ìwiCd.œ2Z Q“¤Ÿ4O^pQè2U–\·³˜«  MÛnúCNAÉ“pí-¥>Ó0„Îì(¿Ã©Í0/³ÃS úüÄ…hÂ] +zÊ’ºÐ¹-I`€ÐÞãvï8YåŽñ'ãô –N"bÙç¡, +ëg¥^ØÓÊÔê<öäC—NÇá0^y.Í ­<å­ +,Ú¨ ²^U}AU‰%:s?JCÑ™ˆ?''`þº†W›¢î•îó—°G±Xó±"]ˆX"Ž˜DŽqz«¬Iy“·"™¥“ˆù\…BE¤&8×?›÷“þ]HÓáÜ^è„4}ˆu9MXÖªDÛ.ý…ÿÖ›ÃñžxÂ2sv}Ê¥Y§ Í€5ÃçX’q'vŒ… ³µl‚VˆåD +².»’jhuªu›¬ï`q×ï0Y¥õ[¸8©ûÝ“ aQÀë‰o¦âNù®?´å3„ZCÐHUd–MßRÀ‰Ž–ɬî~¤å Ô€5ÁH¨¡wAÚÅGv$u”Å!UøÛŒêHÇ©÷"¿¡+¼ÿ GøUaí~N4›„$åï—h¦ƒ:’øõN<öJ Ç7‡gªa]7…œ\yʲi~±Z™=H0 d\[æuö{r+É‹¢D;±×›p/VtÕqâ»Nˆèš8øJƒvà”'ØA©Ö4êúÚíæšAÉ©A‚o׎àj‹¢v®AàFÌ…H¹àfcŠÐ*pÐAsˆ-N=)6ìe±gXÀ"¿-Äi†!…ŒÀòË“À/ Û-ä|‰*8 E¶Í v¤z0B}+-'\;Ú9BÖSÁ“t9=¼¦r÷™4eXr;wùgãص—øk›êÙÌõŽNŠ…¹NÛûõHפ7U $£”ƒ#Ð|YŸ«ø~Ÿk/ÞŸÈÓÞXI¿ mBŸ§”Ý°Ÿ‡ý¾¼"ådB1E¿©š`ÎyßÔ-u}d²8\ºr96äM€à#õ—áîl¦’l¤9¼»¡EÒÝÉ pÜÝ︶í/\œ,:ê÷s‡Á= auœÆŒAbY"UÚËA˜iA bc‹W¥d Cø”F.ÔÖ8yrËUóâÊ»‚lÝ ‚ÑœzßÙ¢€P’cp‹É¦åÏ’Øåeír̉ºõ5™x1kl Û™$Lxx18ž'4ò”@xE¢0†*Úàw"ÓÜ{/KñÁjþ°õí Ô¤‚[ÝõÈVâY[¦Øfzv‚ô~Èî`ýxšE*IÅX&ÇfbP®?#^©ˆ*¤‹¯$ Óö‹#ÐéŒc‘’Œc¡­Œ0q¬…“1. dŒSO nèý~o… §¦Gùàеèý¼&Ôr·olÃ×"ç2TÎUĵPc\Raü¡ç"2¤™iæóé‹ù¢„Ô)I•z=_b]Îy´®\—…©òãù÷*© ¬ãÕÝÖÌö£ å:R:æãý)²jð’–ÎùÍ%u%±ÆììÂLø¹Ét/Æ„¥Ú•+@ÀÕr0¢ÞJâÎF0÷‘«¥ŠˆÎéþÛ6¶²!C>ÔÃ$Tù*ÊtþfÐýB1Äë@£S¿Rd×è–H…šè8ÑA÷õ\È‘‘V©wïÁ³Q›I¨¡Ù$‡ýkþ.4E"üíðŒÏa·~³¿üåSéëH¦©¸ðÁL£ŽÇ”íˆsOÍ°A&fXÿ?Aȸendstream +endobj +1298 0 obj << +/Type /Page +/Contents 1299 0 R +/Resources 1297 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1296 0 R +/Annots [ 1301 0 R 1306 0 R ] +>> endobj +1301 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [324.9335 676.047 381.8296 688.1066] /Subtype /Link /A << /S /GoTo /D (zonefile_format) >> >> endobj -1300 0 obj << +1306 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [84.0431 287.1511 144.9365 299.2107] +/Rect [55.6967 244.9849 116.59 257.0445] /Subtype /Link /A << /S /GoTo /D (view_statement_grammar) >> >> endobj -1294 0 obj << -/D [1292 0 R /XYZ 85.0394 794.5015 null] +1300 0 obj << +/D [1298 0 R /XYZ 56.6929 794.5015 null] >> endobj 410 0 obj << -/D [1292 0 R /XYZ 85.0394 361.2567 null] +/D [1298 0 R /XYZ 56.6929 320.529 null] >> endobj -1299 0 obj << -/D [1292 0 R /XYZ 85.0394 334.109 null] ->> endobj -1291 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R /F11 1298 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1306 0 obj << -/Length 2000 -/Filter /FlateDecode ->> -stream -xÚ½š]oÛ8†ïó+|·60æðC”È+·qºLÝ®›3 Õ–¡Ž”±äf³¿~EJ¢ešŒ0À LQ/ÏËç¢ŽÓ †dÂcK*'‰ŒÇ„O¶7xòî½»!F3oEs[õæþæÇ;–L$’1'÷{+–@X2¹ßý>E3ˆ€§o?¬ïVï~Ý,fI4½_}XÏæ”ãéÝê—¥n½Û,Þ¿_lfs"8™¾ý×âãýr£oÅ&Æ›ÕúV÷Hýq%èfy·Ü,×o—³?î¾YÞw,6/ÁLüyóûx²ìŸo0bRðÉ3\`D¤¤“Ç›ˆ3Ä#ÆÚžÃͧ›w­»ÍPgþF”ÅÔ‘@ʬ -‚¸”|’p‰b·T?=eÛ|ÿ’_ Œ Öˆ„R -°QÒ*;~ÏŽ3"¦ó|7›3F¦eUécö“lÛI†d¤üœzÌ6=U™jâ©j"Õ¥þìîÕÙ¹‡¾J+}{_ž -3ôË‹ ñ`†~Íj5h®&5™“ˆ¡8a1´’œÓf>*âgÌ1ü½¨ûS±­ó²€½ÀžÞ«hª—íÓÓ¡v¤‡P#w~.Q”`È¿Vç•#"ä›°6^Q™# ¥°()rD™S˜˜HÀjÎ`Cɺg…Ĉ$ð` »ý”êy^hÌåãSý¢›¿qåpÆ™#Î㤉·6«ÇÙô¡YM«²Y(èúÒEWW™Ž®$ÿk¢7½j>}Xèþ´0ÁÖŸôg“Êl[6Ÿ;cP‡µf°J1mV©2†©Öë‹=ŒºÕimfùPžÍ)¦³mQÓÃA%BÆÓ/™þL‹êY¯¬V=‡rÛʸž¹ê}~È·ºùç);æÊY]¿¦]”õyð*+LzT¼f#«ŽUQgÇ"«ÿaâ4S(Ûz¿U‰(Í~=Òd¹Wc>cL·y -O e¬¨.¢nÎп-ÕþmšµÎ«jª'¥zJ·™ óPŸŽ…¾¿þÏí‡÷‹ÕZ_é»ÕSYTzÓX0Њi²£5¦<¥Ç:ßÎ]ër:ÀòÂü(íB%¼›tÒæ zŠÑtt ê2Ö»Cõ§»™°ž-tíu’õÕæî­B$fL³Úý=>epè(«Ux1²CUê¡y±=œv™ KϘÑÁŒá0³g ÷õŒ¡õñ{¬»š-¨;- }O=XýmŽÍ*ÿZd;õ訲¸‹D¦‡¼øæ‹™UfH=ƒãØÌÈžHù4wí½/éö›>QÎ'¨:š$rsÌ«†‰­Sñ­(Ÿ‹‹‘êLbœœB”JóŽQ­´®Õ‰£æ‡õþƒÎ]OÓc^dú2ß­þhÎ+= 9¡KFsГHw/º#ûo^Õ•në¥ÁêD×bx|7ÕBèÚÊê¥wn^eÇg}xíæêxs¥ÒÒ¨Wµy1má©HÕ;«‹u‰5É€–>qìÆÖÐÔ&÷©þÈúW€Aç&ÍB¥íè´ÊœKѽ2·§£v(ÌdK·Ê½ÓËl‹¼úçµ’ -ê3$<7ÞÒV5‰¬XB ð‰­XjÖŸ1¼¦ Ä#‚úM[Ñ¥©³ì:3…’mµž/no7h±ù8“tº¸ -uC³@íl«<à­*î3íÁ‡¦npÛ”ÐäõäªhBd€ÜRyÈ[UÜgÚ“MÝä¶)åpË×ÓcŽ’X‰ðÐ[*}« -ÒûL{ú¡©›Þ6m -OújøH$(Â"öÃÛªëð*ï5íà/Lðg¦$»ó$ÀÞ‹<èF$÷8öàG7·åï†QØÃ$¸-•¼UÉ}¦=úÐÔÍn›9žQx‘²Ð¢[*|« -ÂûL{ø¡©Þ6¥x<‰|C!xKåoUAxŸi?4uÃÛ¦”Œ‚g’£ÎJ?¼­ºß©Bð^ÓþÂÔ fJé8ø$AT -€·TøV„÷™öðCS7¼mJÙ8x.Œ’@Ik«<ð­*ï3íᇦnxÛTÕ:cà# AxhÛ[*|« -ÂûL{ø¡©Þ6¥|<<&4bÊÖVyà[UÞgÚÃMÝð¶)WÛ1Ì4PØÚ*|« -ÂûL{ø¡©Þ6¥ãj;*8ⶶê:|§ -Á{M;ø S'ü™)WáÑ’%»ÞyÐ(HîqìÁŽnnË‘Ž«íh$`I`ÃÛ*x« -’ûL{ô¡©›Ý6eãj; -úH„¾ÍØ*|« -ÂûL{ø¡©Þ6eãj;J bQ °µUøV„÷™öðCS7¼mJbxÜåëé‰d(4ð…ÎV]§ïT!z¯iGaê¤?3¥£O8Š”¶¶ÊCߪ‚ô>Óž~hꦷM1úkÿVãpÆx‚p"õ°­òd¬U3æ3í364ugÌ6%GƘ@ ME´­òd¬U3æ3í364ugÌ6½EwŠöuä#–ð@-a«<ä­*Hî3íɇ¦nrÛT åv gBω¥ò°·ª »Ï´gšºÙmS9Š]¨?æ òÙ]'oE!pŸcÇ=ttbÛŽ‹QÔ1G,ôë±^sÙhBÈ»Žx`ç¶ìÞŒâeêÍã,]áÇüÿù_þÛ*ë7‹ bB\Ù´4PÿA3©æOièÅÌÛ?ºœúÿL[ŠÃendstream -endobj 1305 0 obj << -/Type /Page -/Contents 1306 0 R -/Resources 1304 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1301 0 R +/D [1298 0 R /XYZ 56.6929 292.5255 null] >> endobj -1307 0 obj << -/D [1305 0 R /XYZ 56.6929 794.5015 null] ->> endobj -414 0 obj << -/D [1305 0 R /XYZ 56.6929 729.3676 null] ->> endobj -1308 0 obj << -/D [1305 0 R /XYZ 56.6929 703.3028 null] ->> endobj -1304 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F14 685 0 R >> +1297 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F11 1304 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1311 0 obj << -/Length 2689 +/Length 2800 /Filter /FlateDecode >> stream -xÚ¥]sã6î=¿ÂÓ—“§k•%‘lŸö#ÙËN›ÜeÓ§n[N4'K^KNšþúHIŽœìmfgÖ‚€Íü‹f: …4ÉL™$LE”Ζ›1»…µ'Ó,ÑbHõîúä§3©f&4YœÍ®×^:ZG³ëÕÁû¿ýÏõéÕ|§"ÈÂù"ÍDðîüâa ý¼¿¼8;ÿøûÕÛ¹J‚ëóË B_ž^^¼?/"F°?fG6œÿzJÐÇ«·¿ýööjþçõ§“Ók¯ËPßHHTäëÉŠÙ -Ôþt"Bit:{€FÆijÍI’Ê0M¤t˜êäóÉ=ÃÁªÝ:e¿Tê0Õ±š0`,§ ˜š0“°„<Ýl»GÐ)Jƒ¿›ºhL‚|7tP¾-º.¿©ø+»cÄ}Y<T÷EÅ êᚺböùvK ìmú­-Ó­iiYå-£Î/B>”-ž¿"ŠbBâÔK VYDQhÒ4¶*²2 Êú®Ø•å$³`m÷4Zl¶]ÙÔ--•kB‚–Þ€îíkuCÈU/`x°àÄl»-–å!bw¶5#@6£d3‚êR¤ÁõÜÄŸÓÜ»]¹šÔ‘Ø€cöZÀGU¶£×ô;¾¬€o~lö,ózDKþ²YÓõÊ»BVÅ@…ø˜u³# ø+ßl«âgÔ"Ý UE¡’àر µVÆ*ÈÂ,¬ytl&DðCøÃ/Äbäë‹)çh“±ªfxð±ŸGA[Ö·ôEj ÍjETÖ-±ËëÛ‚á%Þ‰]]¹Ë¼>ÕŸÔÞ5ûŠiòŠhòú‰Iƒ»üž£àÙ2¹;k$ß„ ¤Å}2MHöm^•Å28¯ ³ÝåË®\ôÕÝ•¼BµÈwüÁŠ¿5Þ97–ž]˼eè¡ìîÚäõ#A_÷ ¶榰ŪžÓ©¬×»¼ívsì—ÝÞß™‚û*vh,ú × Î7ãÊš~uëölá¢óeÑbˆ)|nO7­Á:n{ÎP›/w6—e^MñP å«‹be]y4cåè»áhYÛªyti$Æâ]^×6§# -úÈ¡Õä¼%È7HkÃ]ÇÌK¬Axì9Ë„•(ú–÷,ŠCcÒdú=í5¼h*‰ó¢}x1èvŒYõuC§aC±0xö¼­gF„*‚z!5i˜f*³v¿$4K"$ŒD˜Ê$·—+$`ˆ˜àôÐ2À3‰@4¸Æžgûâξ΢P$ÆH"ÀV×ÞñÓù&ž}h@£Ù@)Çx1äl•ÊâA~‹b -´IªÀpYª­È×ö®•v9§ ¶ù®¨;ÂÂ5cZ -îç1¼Sä±:XÏE¡cú8ÑÁßsû|Læ3PÙd<1³Ób^U¸×ˆÜ~ZØ׫bGà‘0÷’j=Ü«•Ý‡=ÒÚX $ä@>óŠhÍn¯½)€ÍŽ^-=a`‚ï“œ‘ˆ~ë«ñ¾¬˜‰ÍºWH{“Y©&”¼&ö`…‡ÒÛ¬Dß0Ô¸ëÄx…P j‡°·õÀ<‚ЯÚ1ýª(¶ÎÚeÝ[€]Qxù†>ua&gÃxz]ˆb2HMff‹¾~}]Y$¡Ñ‘„‡]††K짅Eª±4¨Óg†h¢ öTxCT`PF<´P”$¡Ž’l6äûätO5qü°FȪ©Ÿÿ+Å5¾ÒöÝAˆ²0¾o¼n!z² Æ+Ç_z  \>Tヘϗo‡KËÆþò¢}H`×FÐ"ØA…®½P[AŠ{xí+Â’«ÐAíûÆ¿IõÁë„üÿÅH?„8Hrï$1«§ïßw€\ÿ¼S ©Ž;…§êbÙÔ–O¼Â@¸¼t¼§š8äiÆâPï±NØ+bN"‹f³šÍ¦ïSÂr- ÆnKÖ-ú¥Þ-p‘ê+Ýw`:·H 1snîg2y[|‰ã$Äÿ¾Ï "…¦V/¸Á€ê7pT½X˜µ«â‰/¨,4"Iž—ÁSM1òA÷’ª±§uß–¹njÔ«åÎZî¢\«‡%¼ï]͹Î÷Uß·1:–†¤æq[K­B™ˆBnHuÜÖžêHÃ÷ÄÖðL%"{^O5!ÄØÖL™±z»J Uy_®ö¶ €ooÞd`^ÃæM†æ•ÞÿåмÒ÷ã¸J.`úx‚¹#·—0¨ùb•$Þñˆ®n‡—[ßÀ—›‚*üë/ ÔŒÈÐ@2Œ"¬á,,ÊÂHÏ‘‚KKàó¹Ë»²…®‘Ãø¬¤(80§ ¾•)FýÁv؉x[ÔÅ.ïœü7ìOÆy>ƒ”›²sª$à r³go®Ý€¢\AQY.s7pwtßrªî+9«ç5Zí7[—¬nK7Š¡Î؆—›ÍÔÅþÏÍAF7ãO$_üñǧ¯àƒ?Ñ“|©0J*£Mbà#š¾¢' -óõ~scK €m)¿[öÚÚ6-/òoN?`ˆz•ûB0¿×å_‹¶{¬˜³õÁ.ßlAñ$†–»ÈÛ½ŸŸ0+h¨™¼?õÊ}”õ’¹|Êë} ðDyáÜŤAd D sKUpÖTUó@S‡,å{—Yf/€ ‘H®uC €qxæv´DeÞ²f¶™Ûµlöugm‡G=n –‡*1 ¸Ï«=ä¸ú5·ÙºóÔÓ¦HîœHúÔÃ9 -€7„¤ù+“›¤ÎQÕà³3bED¿m(ª¿KöüûÓqØHA4ÊqIp[572'†£Ðµy‚ã†Ë`ðö•Ä•Á¡ÌZ¿–s³X©‹2XÎé‡ÅSÎ"Ê+¡|Á4yðmyo‹‘ÑÏñMm ùM–râæú‚Ö¥®fSv>åø™¨¯†G/3rÅ>HCƒ–>F¶„æ4„+àx<s7ˆ(Ž@=ô£î…O1õĈóY•iBwN˜Ñ¼ OM™ÑFÏ„W H¿<;-~.KBÕ¨^J“=Í÷æIÎg–©w€Ã¹(ª6:0}«ŸŸ5R… ´Ò$Ð -õ--³Lt¨„:øÒ÷íLêêXü?c·ã g÷J-4¾G*î(‘¡ÆWga¥¥ˆýr‰£÷§×bÀ>i¢xZGq€Aí\`›b!H™Éz_¾I+?‡V<‡vIÀîóS€'¹Ø¶BÔcû>ý–0óðÛ k¤‰’èƪ‡›.hÝÛ1¥já®\ÞMÅFß²Ù?,Ù..O¯®.¯èEü€mSÛYžtoé;ú­àéer®ÕíôºWWO§EPµ«,‹gþJ_ç#èRh=šì|#K·ã¨Ûe‘Oé0\°îŠu±Ûѳõ²ã%Qìat¼$’½£!’.Õ‚|CâÑ ƒ…V¿Âg[„YL¾ŸöŠÛãw3Ðûu¦L„Uœáí¨ì0Ù× -?uõß½ûá>¸‹Ô:žnÚ¤ÈÀ™@A™â°œ:yhÿr¦ˆþMw&Lendstream +xÚ½ZÝoÛ8Ï_aìËÉ@Í凨½§´qz^\“^â;,n»Š-ÇBÉ•äd½ýÍp(™rd9ECˆÎ×oHšňßEšqû£0ö™æBO|ô}/„å™4L—ëýüâçkŽb2ÍWŽ®ˆñ(£ùòwïÃ?.?ϧwã‰ÔÜ Øx¢Ý\%¦Ç‡Û›ëÙÇß]ŽCß›Ïnoˆ|7½žÞMo>LÇiòÒj8!p=ûç”Zï.?}º¼ÿ1ÿõb:o±¸xWäÛÅïðÑ`ÿzÁ™Š#=zÎDËÑÓ…¯Ó¾R esqñ¯V¡ÓkDûâçëˆi飉òY€ŽÞ(sÆ5Dmê˜Jª6ÊRôE¹áÂ(Wiùœ–cy“lyŒYHͤŽäÈUüÊ|ËÕc_9ö…âLªXw˜¯Sˆ{z3Ø ðŠ½×Ô4.bµ.v›%Ñ×é¶(kê{ÎêHèýÛ.-÷'tæÉSŠha"ÆŽ‹2à,öãÛìŠÝOïþ3½#Ö0Aßr¾dõš4×û­ÕÜ ¾¯™<°ìóßæ=*4•¶,ïÈãÅ&©ª}ŸKª(‚ø k-›Es{ߣZ…,QhuÃR±´¡…·-³§ÄÄ +¨Û]¹-ª”^LààYíkâŨfiEäÌ>ë¾/Ó¼ /[Ye/댪Òóh†¯Ømzóý"©jkÕŒ¼+ÀBèà5@˜’E½K6›½}Ë«ð2¤×}±+Sœü*Þý6]€§È÷:À’‡ Db²î:1Êò"OÿÞë³Hˆff,³*yؤÖÏ-¡^¤UÕºw49/ nBR cÕ§ì8è»ë+ŽÃ~וÞº¨j\}îÇŠÅ¡ŠÛ‰½ÙÌ"Ùá¬PŠ›Õc5áÈã³í3(\ô–TÔ½*v¹}Ø[k+ú˜Ö(4!ÜÂW,UÐpÔø…kÿ‚òõj—/ê¬ÈqP·“èËt•ì6uOx„Œ@¡õÆçu@|XhÀ$†mRÖÙbÒ7.» /|hánÉVU¨[§Ã&nÐ '£%´ð5 Ùôd¹´“·@ZQŸèíîú‰ˆXDVÆŒö¡O{ +’B‰…½eÛT‰fùb³[¦}°Èc%<†dæz ýä1ÐgŸŸ"™)HDõáÂ:LQ“6«ì1O—¸t0†*h5 o“å_‡t¦•Á-¹ñØu¤ØNúæÞC²øJ¥ë LµMóØ°ú µË¿æÅKþJÒndh$b2rs”±Ýa°•Ô5æôŽÓìâ2…µô”å)½f+ËK“­HÀ$D aæ°<r!Yî‰þ™UuEmN_È ›È³Äa ùÙ¤4µ?X6YùB©k9ÁäÖH‡‡v{³-Á']™àŽuØÃÚ°Ú`@‹òÛXX4µ|Bô°XèÚà SÒH'UÚ3ív¹Ø•¤?·›¬²-óòÚ’YõË©³’†mB1x2<ð˜ìQζ +ÍHµzÐß/öÁãc +÷Aćìµ<Ç»_à<Æï× g³›ÉåÕÕ»¼û<†ÒË“hñ‹Qñsx®Ä ×yÌCVÔÇfûq»f… ߌÝð“ŠËaì.×iì-×YìƒVØ_™íÅÞ1+5œòƒøíøá£?Ïâw¸ð7\çñYuð›íÇïš• kòíøµd*æê ~‡kÃuÿUÿ±Ù~ü®Y©±¦qøsàÃÎùþ™88\qh¸ÎÇaȪ‡c³ýqpÍröc³ÏÁù˜ Í"u6f×@Ì®ó1²êÄìØlÌ\³âÿ3‡Lk~¦êêrŽYËu6fƒV1{e¶7f³Wìñ¾ {Ãá˜g°;\Ø®ó؇¬:ØÍöcwÍFlú=è±DŸEïp  o¸Î£²ê ?6ÛÞ5z,ÆžAïp  o¸Î£²ê ?6ÛÞ5{ù}è¥Ï|Å£3è®ô ×yôCVôÇfûÑ»fߟD?šL‘€Î*a¦Ø%t{þ¡‚„ô*­k,¸Ò›9ýßWðœ¥/ÔÚÀ±}c˜ãÐÌAŽ·[jútµ¢•å[QUç ivèqEß%q¤=ëÖãžÒ‚uAi8íÓ2«&8Ä;è,¶x‚¬¨ËŠ•)¤´¡ò!.ЗD\Üjãt4îµÂâ2ÖžÛ&Œª©ÔÁ†QÙ0š‚öæ8~ÖŸËl¨|‚'ËEïÓñµ9s¾£ö¾Ø5ÇÚ¼Ã{Tp*oóqs*n- tY3T¾Á£ïŸÉÓv“þÒsg +*X ævË­3Þ ™ 8÷~b?õ•Ü'}:f+*ÔØÎX{;{€åǦìØ­Ö`Ý1É›Zf·ž„f®¼Ã± fÜ¢g·‚f×ÉsêÔ4ÛÊW|˜?­Ž=Å‘£ÖwØØa­bHejŒHÙ–X Y¤ôV¯3+ë4MJûb.#àiJ&Øx0üvÞ"« Ô¢;l=%¹-q·Å_’5ˆc™ºôkLö:*_•IU—ãÈÛ-ê];`¡pŠ·ðb ™¶\HMS² Å¡F +2۱𰂋ë+TÞ}AtòØZAtñĶªdQfNù؉—Ôõ/OÓ¥™¡¹Ôé÷Ð^¬l7žY•&;âB\'yžnŽ–Us‹ëªH¬Hò’Xš“Ó\©Sa„®¶x~b‹oNô›®ç…„Ïí÷_ÏøH1úò´.’ã Ë6‰®*çgœ…¼»E¶†­zE;¯Gߧï£'_èÀ´™2 ©½Jº…•" ÷Âzñ¦Çq>äGqÀbAf£o#ÔÇŠxœ¶Azˆ€!ü<{’£«ðŒHÞ‰£Ø@ +dç¦-d"ð€äwjŽaä•)M̯¨ðÔ +ï¤ä±„ Šfkä­Æ@¢eÖHäý56ûvjÙÚì\& %¦têLLqͶLjCjJÚ®¢ž@€ܘbn 2Ñ3´Ø€`Û²8öçôl ë!dÆ«žÜ<'õ[ƘåÝ`‚ëO¶U4ÃY›‹vøØhfÔR¬,s¼Yéò/ÓtÛD;ËQ§F™¦­îŒöáܨ@œÅôcËŽƒx49ü燓ÇÀvø¨‰õÿˆÈ­-2E'j|Š,’1|ËkøúV4È:­VÓ‘<°9Îÿê° Üendstream endobj 1310 0 obj << /Type /Page /Contents 1311 0 R /Resources 1309 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1301 0 R +/Parent 1296 0 R >> endobj 1312 0 obj << /D [1310 0 R /XYZ 85.0394 794.5015 null] >> endobj -418 0 obj << -/D [1310 0 R /XYZ 85.0394 357.3908 null] ->> endobj -1193 0 obj << -/D [1310 0 R /XYZ 85.0394 335.0796 null] +414 0 obj << +/D [1310 0 R /XYZ 85.0394 693.6703 null] >> endobj 1313 0 obj << -/D [1310 0 R /XYZ 85.0394 147.1444 null] ->> endobj -1314 0 obj << -/D [1310 0 R /XYZ 85.0394 135.1892 null] +/D [1310 0 R /XYZ 85.0394 667.7108 null] >> endobj 1309 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F62 995 0 R /F21 658 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F14 685 0 R /F62 995 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1317 0 obj << -/Length 3355 +1316 0 obj << +/Length 2594 /Filter /FlateDecode >> stream -xÚÍZ[oã6~ϯ𣌹¼ˆ’ø8fÚm¦›IÑÚ>È’œ+[®%åÒ_¿çðåÈIf; ,DÔáíð\¿CY,8ü‰…ŽYl¤Y$&bš ½È·g|q }ß 7få­ÂQßÜœýã£J†™XÆ‹›M°VÊxšŠÅMñÛ2f’à -|ùáÓÕÇËï~¹~žDË›ËOWç+©ùòãåÔúîúýO?½¿>_‰T‹å‡ïßÿ|sqM]±[ã›Ë«o‰bèqbÑë‹×W.Îÿ¸ùáìâf8Kx^Áäϳßþà‹ŽýÃgʤzñ/œ cäb{iÅt¤”§ÔgŸÏþ9,ôÚ©sò‹¸`Bj’ä,âô®´‡]]S*fÏé¦+Á ðTEŒ>ªDŠ@%Bh¥É"цÅJ*«’ÝãáЖŠ†«`8%ÑQ{ป»ò|¥Òt¹ë·ëò@ífƒO³ü³/UÙñá®Êï¨y8é²lûº+ ¢T;šqõéâúúÓ5n ¬„`Fkiwr“öÍ®Å%QƒUwG­]CÏ"ë2v¬ÏH' Q' äð÷d«¢”)°ßÅÊøšê’02åòu)Í)ŒSWÑl3â›ô%µô…mÔ>}á‹Ó6§ú’:¶úž«}ûé§÷—WS…‰ç -{A)Ái¿®R¢¯©”Ø@”ŠMúŠR@©±À&«êþP¾Ñ‡´²:9KëFðjÝž£i9¸ÐÜ:­AOF¯Ä€ÎX͹鉼¨éîÈ4ø²»Ëv¾ÕøþlÝÜ—§5ŠêÿØÍâD2¥Í+Q1Nf¸ ¨x(óþÐVÍ[ý,£ŸÅ’ü h£ŸÁ‹÷3hæYßZƒ±_ -÷´€Xv uîK«ÉYEnšÃ–ÔDÚö[Råží+-»ðù;çrWx}—1«êwíÌ‚Dú‚þÁ~-ýG K%O¾`I?ã´þ%H>¯è?Ö §0[ôûºÊ³î­>­¢1/BÛ:4+ -ˆÚwÀbb–ûæÐÙfê—ÆØS®{‡ Š¥{ëžö.8e»‚yµ­£Õ´vV<Í{]Ò!À0÷v`“eñ‚mJÿ{†ô?µMÄ,©xÅ6EÌDÂIÅ¡ÙïÁJÞ™¢dŒLQL‘ hcd‚ˆ$Ôð! -v~ö– =تª˜SØ]¤¡óõSÝ—øj° 9@™&Ø* A£yéÈ%ö#—3fIŒšÈÛ/´ÐðÐê¸vV‡DkuØpVЕ>{Ú•úu[ÂÞ»®žµFò«…ÓjökàXV¼V§àœ„'GuÊ7Ë3"bÃT’CÓ&¬ožÕ92IÁv•4Ó±JFW3…¢–1‹¸SêEfCe<–x0Ì£ Îõ=)žÂ!žñ¡ªkjÙtKÊÇ,G­Zz³+]cã¼)t>™@B\8wjûmzÆí”\«¥÷nf)8™Ö‘p(7åáyvv¥$Y¼q¥Óµ›P‡Šèí ¬*@wF%zXiV³$OûˆâÒ|DÐÞô;+a6¨€NéZ ôcDÀ£ç…¦£@ËEc‹ÄÌÈí‡Cß–:߹ƑݣÁz` V¯øþ;×Á×¾;šz} ™Âm2…Ä€sœîâå3TÚ•bŠX¡••D^—uóÛ‘¸ÚDa@A=«#—–¾ÂÆôhH!—ö “[ô°Û]…u*¬ˆi\±d„ô.Ý^VÏ0zŸº*ïëìp âÈdÊ î¸Á“XfR¬ÐÈñµ·# WOå]K„¬u”{ï;ðѪËü:z´è&GÃqÔ÷—H°eiw™[ûD¤¢¬ËÛ …ìºÆ‚ÍšQÒmÝ;»]Ï䥵½(¼ÀWo‘¼î²Ê qvƒ,=VÛ~K/• !Ðç–lˆ"¹9“ü“h²P$9‚öŽ&èz»nLobšÞŽªQ·ìjsh¶«SqGpÈõ‘2#ʘIk’ÅÂøØ´kæ–«Ó0|)ãïKóf ‡/l¼$Šäc¼a$@ l…d¬'ÔVf™‹ &:C¡*0±I^ °Š¥x³BÃ\D0¢ØÈ xÅ\ê£ëÀ!ÁÐ}ÑæUù `jg­`$Œ??Ë£‹ûcãüdýBA‰º¾¯š¾¥¨8³âœ=»õÝsBP‘˜Hª7d! ,ÌB*öž­Ê=IWö• KDÝö6Wb«êE…) -ÞŸ¨‡ü]ù×s¼YÎ -w¸A+C‘ŒÊÄõö®@D…:vÂUúY.€®©wÆCZÑ>­Ä›»Ž -$îïaÌÀ?!¡´ývïŒ2¦¼iõT’ñàðvľ -ã»Y„2‹¿ìj#ä”k_~0+K—Q sYø 4Ä\ô†…¡´)÷T8 gid¦L¬¸Íðcq©£ˆ`QÌõ‹QD0hùU9¨M\ ác -GʾiÛ -ù±ožà™öe^mžÑ%lH†éôØ»ûýÞC•ºÚVGN>Ø­>Ò»õéÆMÌï]»Ñ};/U©¡ðT*öJËWN²mõל\¡ÆæJ'ƒDè,xwå„~§BÙ~Dhx“JT>³*ʾð¾­väŸQÿ©‹V‰&ÄD´)`²(Ãí;à—)DÒž;N~=×ò»»Ù‹ü¦ïf ”%‰J¿´Ôz¾àsûü—?åu•Ï­“2 çpÃB„À Åxa&$Y3Á&hL>a/vº•ʺžRh¾¾wàýÖª9 %ÎÜΤPS  ¦A"ž8¸ Õ8³5g öé남k7‹"‹Rjy71¤xx'¨|ÅIN“Ø´Z$Þœ§Ö†ï£;ਧ½³c–Éñ1¯ÚËJìï| yê-½eôh·yÔxßogmè R DçU 1 Oª;ìÚ™ýÑ…íìÞ¶1(´.ý.®ú § -3–Œ{!Æc×òfR¸{ cÛ€Jfáä_rÓÔP•ëùk€ÌáÚ~»Í|ôy±ÙûÂëÄ5ÁLâƒpÍ…J¾,\?ûzé3Á_É™ŠNüËYƒž:ò×ê~Ð,È ·¶e$^Ü{ô|ó ΑšA`ˆ&»_Îù;h,Ö.<•s×ëP¶˜H—‰¯Ö'“ë¯pw'Ç(É æQ”›¬¯eÝgC ]µsZŽñW‘ùŒwBéJD¨—5 :­a?(Ðp^—€•w·+[{ÜÓ·†‰²ã„ì’/²1 zÎÇäÀø+ -d„ä+Ç/2Øv)GúâeK×@8ªË,ÌUc­T¨ŽñóŸ½MRËuF¿™€ºÒtw¦ðüñúšŒÉê[ w[*LV†3€SG@CûÓ¬¢YÊ£é¥æ¼TŸi_²T -?²Ißᢠã¹Ô$!ŒF9À(cNïÓ9—ê%¨€)£!G±Èˆ~ïô«¦lgGy^]u© å4ü:m`¼Ëó~þ§ÞÆ”fø³Æ+á /Ï¿ýëÉñ§¥^šÊy{s•gÊ~B‰žûkŒå ëÿÅ?àbendstream +xÚÍZÝsÛ8Ï_á·S¦µNü’¨½§l›ôÒÙ&{ivæf¶û Xr¢9YòZr>î¯?€ )Ù–O?ævvº‚A$@ ›Dð›¨8ŒSžN’T†*bj2[œD“{hûp¬ÌÔ M‡R?ßžüýB$“4LcOnç]:Œ´f“Ûü÷ yx +¢àÝõÕÅå‡ßnÎNÜ^^_N¹Š‚‹Ë_ΉúpsöéÓÙÍé”iÅ‚wÿ<ûõöü†šb«ãçË«÷ÄIé³GéÍùÅùÍùÕ»óÓ?n?žœßúµ ×Ë" ùóä÷?¢IËþx…"Õjò?¢¥)Ÿ,N¤¡’B8Nuòùä_^á Õt³ŸT:T\Æ`Iꈙ… c “HsL{#s6fd'…F.ËîeÚ«Çbµ½bÐÊXóÉPïÎè^jdx1žqJ ­ã^³rþr:" ž²Ž(;!C×Ù¢°íeU•-—EfÛËš¾Ýƒ[2ÝzU9q>_Ÿ ›fùÚÆyc[ùߦ.ZDN¢ƒË9f2i¨ešâŠÃT)næ_ƒ §léÛ⊾D/ò·Ä‰Õž"õÿÍv õ!EëCêÎrÖm‘‡;H´þ#†ZÅò0(†RûAá¥zPÌšºËfÝ*xBˆ&‡‡÷R#ão¢B…:›ã{Pp--(¸V›a[«ÛZ xH#*°•LŒMT`“AEßÔ£çÍ) VD[` ¨†dÒCÊÇB~ 0¾p.CüßײDÄ„x©@pR=Ìš§EÝUÅ$$(•¤‡çà¥F&±L‰2åÆ,ÎidcŒUüæeÛ33g-ç(aè(Á ÷[^^̳uÕyã[vFþ·*Ì`lÍu }-èRlí¤p•vEÓÞ滶ŽCJvx^jd›¶f¡N ucï{» +ˆ¡¼|,óuVÑoo^90ojÍ+‡æÿbh^áV™cW·"h–]ÙÔDϲš4ÞaIòDm¥ÞA<‘ë0x¹t èÊÎúoY +¡–F1xIˆ±Aµ;ÓPDDÎÌêùÜe]Ùvå̆ñEIQ°eΈôB^0ê|÷v«;NØMñ¾¨‹UÖ¹ùßY<î”*>ƒ”‹²sBÁb3ÈÝÚ¢¹n,QæE £e•Ë1ƒ{Ö9ª6Vñ$LO¯(_/–.YÝ—uëRX÷`Ë>UYoùŸâ§ÏøµñÍ›7ã.xïGô"_"¥‰€2•)ü`ã.ÚYÐIP¯w¦ØÚð]ZÔÖ&Ú¢µö›Ñ Qç™/%€ó[]>OÛš »l±„…K΂E‘µkRlzè ³*[Ø~êÜý(ë™Õð1«×ÙêÅ;d€JEª–BxœBfM‚‹¦ªš§²¾‡–XYŸ‹86Æ'ÊG# +dăj«4kº™÷=Z’2ûnY[µ±ë5kÖugì†C½, ;ªÃ@à1«Öv §Õ·¹ÎÊ#‹£t‰ýÅ&‘>íØüûÿ[b‚ˆí$‚Dzx"ìä3UdŠ$b¶¡ˆ’¾—èõ÷£WG + ü&ƒûª¹ƒt¹±"J0aË6e'T¡ëuÁo[…sÖ"ø¥„š„f›(aÐœÑÇN/qIü"_/|_>šBd£ƒ×áÔ*d¾“‘ñ\_κ´Õ,ÊΧ›¹ÛÁ}-¼±+£V ß­¤Ëõ†-!œm +–‚‚xdäè€e£XO…ƒ¡„OÀ,­"ŸQ­lCìÎMf£:hC§¦¬h¢g8¥lY¦x†ŒQ“!¡bL^K‘½Ì×æHšœÏ,c{€ çv¤ Z@êÀôQä?í4Q +p”ND¢B•¨£ÕjÉ$J¶Õ_×ËMV-“Pó(Ù?ê.Kº›ª¦~Qˆ’ +¬x¼dL…R''!b²w»žÍŠ¶qL*QWcô‘€aíÀ´I²¦VÉ|]ÿϵËïðc‘嶫²K¦Ÿ¿ØÉÆæ DÇb<üªÏˆ3 ãX/Dšð‡o^`ÍcO]©Ùñ†’)Ô +åìa,:ú3vfçÅÏÕõùÍÍ5ÞðˆØ +µË¦n j¶™å;úV°ñZ’²¶ÕíÓøronvÊ©’PÂN;:õÛ€‚‘ÖP8Š0=x¥´£ÒõؽH„ZJñ +öX +“­‹y±ZÑÞõ:ö$ã{H#ö$=ÖI~5¤uäyÄr°Òê[ìØFq¦£›¨ñr{À=ƒu›-¨{xÖò°wx +ßDQf¨ŸW«¶èŽÌ z°-m2ƒ9ÊZ;ï ¹éäPœúHÛœÖ#ÛEmyÖeû½50Ã÷u–ü®Î‚óz™æo%,T±=F×ÏyƒßqîâJyw!î¯wþ°îBrÓ]0=ºí‚–«¿¿þtvy5–Õ6üuÀ'ƒÕþ•#HÀy}ïm–w +äÞØvž•ÕzUBxÆŸ@Ag¢¯(æôí£Hù‡ü­(R”ãDð'MÀÕjO¦ãƒLg èî¡ðUsæï’מÝ5ÅLõWöh¤¡zÍ¡ &‘2±[Öl½jñÚè¸0‹Yf1íYÈëà ~¸0r–á­+ÉvN{™@ÚÜ­@ã’£~„ª~A^²·ÌvÆtBªý­&^"x'7ý]Qo— 3³ž¶†1GĽîïíú½¼ÿŠeCoÍ_q?Ãg!íézYÁ¹¬;6¢Å \¶\ÃòXHÎÂÕÅB£àT 'ÙÅ’\˜zo¦EOÛ' +º¦Ó1^ÎÂ6×/æyáRæh¥U_AÇn;í_1 F·Ïqpùëئœå¹MC-^Ç$i°lV!µS™§Ìm³9®³ÀþÂk›²êœˆY•µ­åU¤;ËG/¤î +>\Á#wéšC§¯búG`“qØÚÙ+Sß,(5å«f¹”—˜dóÀ%ÝÁ!¯OLðƒ®€pJÚë4äù¬´Ç]3Ž8 +p'4>£ÊG,çUÚ—óŠ +Fä4ñR㞃$Fýô äWô˜:Kšh*~Sé.ðD¤,êI—N@XÔ xPù;£i}×0vÝU£h¤80^8Àg¿ûçüÿÇU‹áH—â I„R±døH´óXÄÒ‚O¦ZàÓÕž·¢þq0"¼Êe&QFþ$¤…GàȉƒÏ øGÙ4<íGþA(³×YÌF!WøÈÔÿ^»îùendstream endobj -1316 0 obj << +1315 0 obj << /Type /Page -/Contents 1317 0 R -/Resources 1315 0 R +/Contents 1316 0 R +/Resources 1314 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1301 0 R +/Parent 1296 0 R +>> endobj +1317 0 obj << +/D [1315 0 R /XYZ 56.6929 794.5015 null] +>> endobj +418 0 obj << +/D [1315 0 R /XYZ 56.6929 598.1755 null] +>> endobj +1193 0 obj << +/D [1315 0 R /XYZ 56.6929 575.8643 null] >> endobj 1318 0 obj << -/D [1316 0 R /XYZ 56.6929 794.5015 null] +/D [1315 0 R /XYZ 56.6929 387.929 null] >> endobj -422 0 obj << -/D [1316 0 R /XYZ 56.6929 493.5807 null] +1319 0 obj << +/D [1315 0 R /XYZ 56.6929 375.9738 null] >> endobj -930 0 obj << -/D [1316 0 R /XYZ 56.6929 466.9981 null] ->> endobj -1315 0 obj << +1314 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1321 0 obj << -/Length 2924 +1322 0 obj << +/Length 3098 /Filter /FlateDecode >> stream -xÚµ]sÛ6òÝ¿Bo'ßD(>I`ò”¦NÎkr—ºs7“z2´DÉœH¤JRvÜ»þ÷ÛÅüéؾLÇ‹ýÂîb²˜qø3kWNÏR§™áÂÌ–»>ÛÀÚÛpi1Äúþâä»7*9æ™Ì.ÖZ–qkÅìbõqþúo¯þqqöát! Ÿ'ìta>ÿþüÝqôyýþÝ›ó·¿|xušêùÅùûwþpöæìÃÙ»×g§ a€ý2Px`Ûó¿ŸÑèí‡W?ýôêÃéåÅ'g.C}W¨Èo'/ùljÿx™rÖÌna™pNÎv'Ú(f´R²=ùùäŸÁÁªß:e?m,3R'³…ÑLí¦­Ì7`µEª“N’ÎÊRLY9b¡•wÙ—E¶Ì–×ù¢)~ϵ O˜ IߠÚ@ $‰I“#.®óÓ…â -e)v‡M²]u([Wë€ïªúŽÆEIß«»6ohØVô=4ສÃJdÑäõM@8û¿„]¤=x‡NÜü_×yÙoc€å‚ƒ Áœ1ÒË¥“F{éð»ÊÚŒF(~=[קÂÎsœ7«£m±+Ú86ýÞ(2Žo‹í–FËmž.`O2°ÚlhÚ4ÅM¾½ DªÈ+k{ÙP?>VÌ‹€bNRÉyY@þe™ç«|¶RBÏÏKgôéå” g{MÐÝaÛûmN³›"¿m^NPP Yfûý¶ » Á}VgmÐAúãEx·±·ªÄCiC9Í ëÒxΧNÎQv.Éç¾Ê׈HЈ@rrC§œI-5ÐF’‡ÒË›¯uäßà*ÂTÀD=§Íʢ܇`åe[“ª0ɺ„Éþàg`áçk?­v‘B@ë´‡qUz#!´íѼûŠD3®y:>æ}^ÕªXRÊóÎD2¬-v¤d€¸k=[H͇¨]@ø*n”'…©U¤g9ç'àóŸ[8¼]NayµÎv;Pô¾…áÐdʤ””"èûOÙjUün_çëâË6//iá?^;©˜Ãd<Òí#a\U›CCû¼ùTÕŸÊŠ¦/és9åÿaó¾®nŠU¾(¾¬ëgÐCuþÛ!oÚçÒÉ‘¯Êæ[ö.«=%v*»«hÚ'h€—Ãs ŒDhë¬lÖyÝ|Óîäñ:6å†Ó¨*ó ÜFŠÿB—wÞt[Ęé×”þœß5ÑÇü§@ÅØøøð -cì2øèÏ×´©õ2ï5-öÚ@ÔIˆÔ1%S”Xª•ö„þê— sišÌð^÷ûªn»¨ÂÉå„|X.al‹§È¹¸I†¢&÷Eu׉Ð?ATÉ“*u“Ç·V±¾{šA“”©Tê ¥9–ÒÌðç4ULiç& :’òqsögógœ¼LZ™N - -©¬[3, ŒPkgHÜCé¥pQðdBúÈpRüË¿^—³L¥R¦­ÖÏf6¶‰²’™ÄèIÚ¤;»ç›E9l(¦¼/òœt¿o1‹y6³±Y bšÛ£¢ø—SUd<#1 è¾\°— ?ä¿r.Ë¢-ª’ Y¹¢Á/M¶É'ʯ®ŽH»¾"Ê3(ç,K,7¡F ܧ%KRèÙÚ@6. hô²ùê ¦Ëk¨S—-”TM[,ÐW«ð½Êé›5Mµ,²ÖWu0%2§ú>TîªÖo€²;Û…­AHèY z•NÍÏ×£{ÚŠ2}¡½Po‹y¹t\šG—ŽØ—÷ -¨ïóe{ó•¯X}íˆ&WÒ3Èú›œ†¾ÙQQ¦†Ð"©e…r¢,¾Gàzþž -S«v쪦=â¼$27 ©mæÛ8÷]ŠfÚPżÚúÃÍÇ ¹dè X üèlСݯC¡|wi♣ýWlY•ë©Jß1¸"* T@ýo¤ÅT -Qf¾ê†»~ý˜*|HÅ„¦j¾ô ªåòPÓ0 k¤8¸L[í ²Í¡ øëPªJ<‡Íú-Š7"dª@¾((‹‰r6¡–† £lØw]Á¥™Å‹#­ÐgRGÞý}HÈŽYžež‡ù¤\ª ë™un³¢ôͦÅb’À^St]õÄÙAûcSó”ÓZÜcO °‹Mðj¯«&°G_Њ@Á‡-iIX” -- îRµ_Ð ‡»Ü0+Ž*£ªŒ/%]¿‰1ZlʪZrn -È&È'½ÙÚ‘ û¤)$Okž`ŸÄY9e%RÒÞuºóŠ-ÿ_^ö€¼³ -à&T ÕÄáé a]âD½7¡6ó»ê@ƒUÑPzô3zP:ñ6À0ûã<æBczÅ隸ñ펫CØ•­ƒ¬ÍÐr‰ƒ¨þÜa-}³@%ôÅ8¤ç$…+äÆG’]jð»z*§bÙixpRH¨>z/+é_V`r“m1¯'CÊ2q·dœ×Œ(Á½-ºüÓ¹çèR0©£ÜíÁú¦êÑÜ-9ÓºsïÑSÁÄMa±€ŒÜⵆyn•·x[ÎwÅ%€n¯sou?¡GËÔηÕ2Û¬/à¨5˜ê:iXô' ø»¬iH"ž3 „§Á=°­0‡x¦¾ñJ24˜8:ö¢\''ñòðdþ»Ï›8Š­!Î *Røu@ï°‘³Ã|¤•ŽÀ·ÙMŽ ÉÃÿ¢ÒЪw9¦!]!™6ðœÊJÊr¸³ã•}—Où$§•ëðó±â” Á¦ReØÞxY†×ÚTR -3ï/«€†ÊoâŽ}Õ4ÅÕ6gtçážöŠ!IÅ f†sýtŸÇ ÈgÛP žiü´•r\š¦ý+úPI”Ä÷ârt ­LÒ¯:¢¤«MÃk3 @i”ÓBPÌ"0¬z;]]¥†ÑÕg…(\WFÅx®ö¡êEÙs! è -¶¡N€ïf[]a4x˜ßÚÐä -Âös @þf!Ë(™Ìÿª’j6Ê “÷˃U¥¶*Þr£È µ s½Ot·•”™BZ’Vôi ƒ-DLK°t}ZB<¯•¥fqCPKë¢óX9 oÚ5up¬š;3¶å ™&c?=œ§Ñ‹RÂÆŽmŽô2^ŸQ12m"3 Þêw¶/†öµè­°Z­{&28 –Ý¥õø±ÙÄÜóV ^„ô 5'ÔDNå¦x1Ç2’‡Z—÷>Œ°Î‡a}/ø¢êÈ{éÓ½õüßoð‡\¥Ò8„e¥‡e÷;,¯Â2Yñ{zÕÀÕžpp%€e‡¶ÚAÞIͧž¯)ÕÁè*ó - ø¾Œ†ס}]‡‚Ø7Ä>üûfยæ×aÞ…¯—¹7@ˆ–cå!Ê·yAý/Þö…ÿyJ¹¡òv¨¡ë4t¡è‡õÁ>*éq´Šì«ö%ŒtLß°Ô¯²ƒª wO•bZAÅâœùêE¹è°F¶h®«Ã¥„"4ÛÞfø’ŽãÛªþŒ‘“$¡>ØþPï©íIHâJçV2­”yr:שŒE"Zm2QÝÑã—:7Ê“A¯"|ýIûÂû³WÈúªÛknôªh“!fŽ^d EÈÕÆÓ³á×lL,tåu>£œ™U¡ÞB¬«Ê¿+Y“–“ïÀÀg_ÂMŠ]`V…ÕÎó`B?E;A?£{~_²–ŽQÆ"HD تNÄ~\î½|P®›ÍÝÑ ß²ÎšëØbÄ,µ¬êúÔÎû6,ÄÜyTFÁ8G ‹=ôßÊ cMýSïÞ0¿ù?=úƒÑ)SÖÊéÿŽ€Ê•YéÒ(”-5Ç’ <|¥¿/úÿd2Ïendstream +xÚ¥ZYsÜ6~ׯ˜·U™ ‚Gí“ãÈŽR‰¼++•Çåâp03¬ðó<ÙÝÿ¾Ýh€Ç˜’ìré@£4}|_1øã«XùL&Á*J_1®VYyÁV{{sÁ-瘼)×w?¼–Ñ*ñ“P„«»Ýd­ØgqÌWwÛ÷ëW?¿ü×ÝÕí¥'[‡þ¥§B¶þñúæ'¢$ôyõöæõõ›ßo_^FÁúîúí ‘o¯^_Ý^ݼººôx¬8Ìv…G&¼¾þõŠZon_þöÛËÛËw¿\\Ý g™ž—3‰ùtñþ[máØ¿\0_&±Z=@‡ùõvi5GMË×Õ°b®7¿jWYsÉãµ.uÕé­Ý/­¶4\¦'âO·Û¼Ëë*-Š eißjìzA>!@@ÆÝÎÎú¦…%–dÝ(%,gV÷ Kc×®i»ÙbåÉDù"dáÊãÜOpN9;†¿ ƒ¹`a˜h¹<KfŒ­_$s}§3ìZoH³C^í$‡U…ò¹ŒÈ6î@ž ÔD_ØÖ­[3XNƒªe¯Ó¢­‰%Ý78»è\CÄUOj¦/È"?Ž¢ÑÍúykªh—UkŲ’Ð@W)/F•õ½=Jç8HÃí±®Z;tÔÍ®6dnG€0Šùí”i•¡©DɺÞáu( pÔõ]Ñêî’¯‡ÛÒ >œ‘ÙÛ0#ÈÙRSWé¦ Ž£éôyÈ »š=5S»æ¨³Ý¡n:/ë;s*6?±H‘^°1½k!≰0˜Õ°rÕQ•e$ æ´j´¥ÞÞúÔ¸©;í6I»%ߊ”AI=gŒ<àÎ$ÐŒÀV¶É¡A’Q­0TêìVy[Z¯c‘Ÿ0.&(•˜ËT³ìñ‚¾@ a¶„oUwÔ #* òY£NüuB㧛wÔRhͽÑ´w}e4ì×ù- éz¦Ž,áfGÏ›šŽ„[ÞÖº%²‘Όá÷šÚd÷Ð8³{4 X ÔÜ+öÿdŠéÏ™>vgSoo[ÝÙMÈQ¶º!¬3àt?Ï mfWrˆ!¨b‰V¦‰¼ÑEýp3­7}G™¹gyæÒ8Bº–ç.riç±0¹EÛWùŸŒ X±ƒøÏ9_£×2µ¾¶{™{îcÚtyÖi|³3‘Éèî¸Ã“aâ`ý`_9;ZB„4ëZ"¤­¥T¶ßwà£y—ºuÔh!0LŽ†|4öw]ÙÝŒCÚ!µkÃamNÛêBïST²zÈ»ƒË„Õié’öEoíîúÌ éÈ×Æö‚ñþ©kâ-’7]š[k7(Òç¼ìKêÌ® “û,ɸ#’3Ë?‘"Û‹$GPÎÀd†£]7æ·³¬¹l’Þ®©KﱸÃYàDNPÇBZ˜Ã›ªziå+Oäk´Y]Âá·&Þ’@NúIœ1%%Æ +£³ÔÆà/\°¼0‰ž °Ò¶ZF6ˆb"g1dBÍõ8&c:.¦g ¤‚¼2V0Æ<~ZÚ6íÒEã|küB†`†÷yÝ·ÔÙæmº½gO÷nxII\2½B~E’‰i’¡óDhåöKwõ©ÏmX"jÙ›\‰-r!Mq®ÔÐ?Ñù» ]d §¹ zF²­=Ü  ‡ÒçÑùåÜúÑ€ˆ#th•+Õ¹†æÞiE¹´$¸5h±mR#Ž:ù‘ ¥íË£5Êò¦a2‡7k ‡7 öAýP¼XD(‹xЮJ¸øŠË +·\# ”ÛŒ™Ë”@@CAÌE½Í‰F'E¸„L=E¸-·ŠOjWDøØAƒÃ‘r¬Û6GyLÏÀ<ÓQgùîd‰W° I5Or=”bªy™Ÿ9ù`·êìÞO×vb:ñÞåîÛe­ +5ž”®h„äáYͶùßKz$Ôµ*4BgP +‡‰|NM@eû¡ÁˆÕ t™URö…~™WäŸÁ$ÿÓ­4 Eˆ‰hsÀdP†ÝwÀ/sˆ¤œtœüq© äwoÉIê¾[.ª£h(㿺ÔZªö#ºü—2¨ö—Ö‰}ç°lS„ÀŠð=ÃLH2f‚ +LИ%|6…½8hWzÐE1§Ð|Ά:Ä š… ‹²Nڶ΋¹'PÚÏÌÞà&T½ëŸëh  ˆ) ³Ü65$55$A¤ùÙDå C©skPp4w<ÎlÚn\SÛêPYä<ÎÀ€dm² +¹h-ƒäɇ£‘Q©ãP‡HäºMKM¤3™“À¡I@!¾™ª[ƺqý>Ë´65°›6M;­Ý˜hû”ö(tÛÚMw3y‚!»ÑgQ^ÓÀ¯nÐkb¨)P†Ï`ôðÁÙƒKQÃ11s +`Ÿ¾ØucgQ„ c‘R®3óAŠƒwœÊWœdo›@óÈ™óÜÚ°?ºrŽÖŽÝYfvŒyµ0&âW®……<õ–z)}Ú2%ŠÖU_nÈì¡ô– DëU _ª;ÌÚi«-'šò×l Zh·‹­þ¦‹?r@ –Œ{!Æs×rfV¸; cÚ€J‹ï;·ä®. *Ösϩŵ}Y¦.º¼X]áõÈ3ÁBâƒp͸Œ¾-\û_¼A3Ÿ©˜¯d¨|«`ùÍÝ2yS®ÇŸŒ®Eœ3Ý Ð#€0On?p-ì?/™$â·x.Àõ’×'>• '¸ðç_µŸ¯Rf6îÚíËœO©f0’­Þ¥}aíë>*é¼]ºër’ç‘^ðì=KPMðgîyÂõÄ=;®É=g…Ð\í=S„ÀÁ¾¸òàÀö¤$ׂ(3ëfÌUÏe!-‹d|èp…LIOBÈÕ¥òʱn*TÊMn2Ž€¼Ð±¥zÞ´ï§ðýõöwš<áI‹=‚‡CIEŠ—0 U2GæO‹×íÇ,˜?p.+ö ~,¸› ™¥ï4‘Ø4% Œ¦ùÀ˜)CFýùœëlÀôQ¡ZD€¦húúóz 8Ïp9Ym¥)4ÍùÙím`ì˲Þd»GmVä +¢?m³S®Çmvàz¤Z˜™ª‚ð©g¸$˜]ÜL…g"x`ròì´ÄߨM UŽ53´)ÓUž:Jž’ÞÔàk~™Â†ÅÉÒád9xèúvn;û3„›bî"*ç,8{ ³Ò!|¤ ˜—jåÕ X“rÎ9ì7·-S.¾ ,:ÌŸ¾ü-c_Ôœ¼‹àVû½…‹-Ô æç:\¤v{¥Ý(Û íP±r¾…Ã|oÜzky`^6‘œÒg”S¸‡S –àfùÑÄèÝçúÁ„à±äÓ-Óã±ÈI/¸à1mЄý©€G­ + lÏÑŽû¡E™/A×Â…G5‰Ðq™G&³ˆÂ|—VúÊÈ»øc+˜J”Är’/%üÌVÿⱕ:épƒÐ9ö¦·§@ª¦}ÂÙε²pÑP»‘Í>r> X4WÌ$XaÖ.kå¥BfíÀ»؃Œ„/³Pß?¥FöwÔéï4ï:¸ßj/ÿ¼k¾a >]£ÑŸzÝvߺÆL½­Úï™ëõÛ#vCrUÊWž“÷.0¡kÒªÝé¦ý®Ù½|k)jÕ•öÜ»öÿë„®N–ÞSø|Ó§ý—>µÎÆ̧í¨2š,ðþñß÷?Xýß—']úßp&ü‡•…ÄÊïûîÿ‹ÿi(ˆ 0ˆÅr†– €—H"'”qpu.ùð4_Šþ|¥¸endstream endobj -1320 0 obj << +1321 0 obj << /Type /Page -/Contents 1321 0 R -/Resources 1319 0 R +/Contents 1322 0 R +/Resources 1320 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1301 0 R ->> endobj -1322 0 obj << -/D [1320 0 R /XYZ 85.0394 794.5015 null] ->> endobj -426 0 obj << -/D [1320 0 R /XYZ 85.0394 670.6895 null] +/Parent 1296 0 R >> endobj 1323 0 obj << -/D [1320 0 R /XYZ 85.0394 644.0686 null] +/D [1321 0 R /XYZ 85.0394 794.5015 null] >> endobj -430 0 obj << -/D [1320 0 R /XYZ 85.0394 402.7331 null] +422 0 obj << +/D [1321 0 R /XYZ 85.0394 732.0195 null] >> endobj -1214 0 obj << -/D [1320 0 R /XYZ 85.0394 370.338 null] +930 0 obj << +/D [1321 0 R /XYZ 85.0394 704.3916 null] >> endobj -1319 0 obj << +426 0 obj << +/D [1321 0 R /XYZ 85.0394 215.3041 null] +>> endobj +1324 0 obj << +/D [1321 0 R /XYZ 85.0394 190.7685 null] +>> endobj +1320 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1326 0 obj << -/Length 3698 +1327 0 obj << +/Length 3841 /Filter /FlateDecode >> stream -xÚÅË’Û¸ñ>_¡[4U&ƒµ§Y{ì8Éz73³Imy} DŽ†1EÊ"åñl*ÿžn4À—¨yìR:lF¿ÐÝ_0øñ…Ò¡ND²0I*ÆÕb½=c‹ ô½;ãnLàÃQßßœýù­4‹$L´Ð‹›Û®8dqÌ7ÙÇ¥ExØòõÞ¾÷óÕŹ‰–7ïüpÅ–oßÿý’Zï®.~øáâê<à±âË×¹øéæòŠº´Ãñýûo’Ðß ¤W—o/¯.?¼¾<ÿtó׳˛n/Ãýr&q#_Î>~b‹ ¶ý×3Ê$V‹{ø`!O±ØžEJ†*’ÒCʳë³t½vê,ÿ8 …Ôb†BÎ1P%¡–Ð… ¼¹Ëq0”†ò$Œ#~“gUã ñ‰(4‘ÔnкLM~H/³¼Í÷Û¢Êü6Ëû»¼½Ë÷Ô -‚–õ:- Öäû¯¾ÿ¾(K¶m¾ÝµnZMÿn³¼|óáÚ͸Ë+‚­ëíöPë´-ª ’¼"`I¬¢EÀy˜(%,±÷E{G¢´Ô`c˜òmݺoGÈ=DÜÌrÊödùmz([ú(š9öi2r Ö<äsìãQ˜DÒó8$jy Tj%¡e€\Î’`a¤ )8d» )~Ëg–’'nt½k‹™ãN[”SÌhäx ­ŸßüD}­µwiK­ÂÍK3`U[4yFðÕÁ«tëANFÐúrÈ÷(žnI»ó8Q™œ˜hßC™HžŒe¢ðÏóD,ӲȨÿkZ¬Î ¶Li2u(.JZ”,#–h‚¬ZRÓdù+Slˆ¢>´M‘9í]áÀû´Ú8 ÓUDãI,ʼjËGDöïCÓæ`æ$a6Vı^"2Yzèúí¡$˜c @ê5î‹æŽ:í¶"Ö ¢!xJସEfÜæÄ“ª%ð×sl—¾<·Q™ôVi¡©#Ž”§÷s‘¤™Ýuä­lÊz•–ÀÎùòÁnë=5òoévWæL»uê%éìÍþ§ô÷+c‚ºïS…íjŸ2í·H•‡xWà•>[íį’´h3B´+‹¼é¥iíôq_ -~Y:ÃۦߵRðVRGS+åÒ[)´œ•ˆ«Ø¶ø!:w(ÉbÞ4éÆ vö -o•Ðô¾Vú*£Š’‰QIoTd¤Q(%Ó)wò‚,MnÕ diq–†À¡¥aWgiØI -ˆ`gi$J-é- ¡cK $ãζ,zÇGœV8¼ma¿Ó6€žPäÏU}?Õ˜—+æï×6g+RoéËŠñ”‚o•½ýbû°ÛÕ{rôѲ½¯ ü[]¹Á-0»¹õ÷p`×hy`üч`»«¦}5w* QœêVyïá±–+*#üP0ùÎîy-X¥£ÉBCM†á\€‡•!‡p$*âZSlc¼ÔÜA×µýÏƺS±rj»B…’©Îv«·©¹]à æ‡îÒõ熖NZg‰yœÄÉä]Ý4ŪtC‹ÊZö;ÜÄŸ¹-<‘¡Qj|²>½¡}¬`•5!Ô¾Gb™Û#b]€¢ßŽ¢åêÐÒ`š$@–ÖB‚6TÐR •Ãu¨2 £­ëÌÁîâq€$‰Ão–V ߥíú\›U·…‘n€54àPÍ Ò-ýNlAD*ÐyDË_Ð Ú“:ÖöðƒF³Ë×Åí}Üßë;j’½PÛ¤ÆGªÐ°g6R‡ÄÛ%â°‘¨6{z€µB ¼,:+Þ€w åX|A7k´}rƒèåãxùþvfµH…‰`/[ÌHÇ„(‹dɲª[ -›-ÇPMòìEÑ‰Æ Æé`åÁBD‚B9;±ž‘`ÙÑø¤3i óêøß´)ä$A1ÿ‘/J CÓ&›ÙʹrP…YÿÂÆq¾ßöøL)â¡MBŒ-wÞ¤,¶EKM -€ Q¶+T8‡Z°u]­û> DXQ­êƒµ&ø £Á¢îȲƒch¸Èˆÿ8mœAÁR9HÉÜVFÊYÕsþ\—ˆ£‰Vœ`D&ñ$žµcEˆžgÃѹ¤kï’»sÚ²ZR,y™I¦6Ô;§Î³Zf¢PDlœ¹”PB@Ã’„?#Ô„•¹ž]Ÿó‡i»bZLÓöÒŽ 4XÔ$3TF=©°È´"ˆ5SPB‡U#žª‚ˆ0‰ãx¾tƒFªoŒwþ;Öº[×J6—z‹0îE”å¸åʺȹ(9!]8Vb©&»Ÿr˜¡_:rèþŒtyVB#ü“ c‹Î \•&]»à?ÂL lµ€t­} ¥õ¥“²†Õ7×ïß½šŠ’k­_(AŒ’ÄÈ@êÛoÔ¸T”üð`8þ¸ t„i¸Î=ݱUMIáR‡Fk5¢å¨¦Õz‚„clŽœðe½lÓò³«:’þS`kÆ•=ò]2ù9DÆâÝŒ/´ bN­ÚÇW9º…Ì`¡W.ÅÁ9M±`°J&k*¬6lª´=t¥Õ•Ï”S0øßäU¾ÌèóДOåaê1!¢è“ü²¡–mìv0úA-îh„2éCÒ@K³¼gUÃòŽÛ:Ôz_lŠŠŠw3ÏSµº‘·H?øË¡pqþ؇¯ºšÀ¦ò}6üT¾‚-ä-&ém㢄Øï°0.bŽHllöév ýÀS×÷Îs h±ÒO8n2®åÄq#VÈ0ëû†ÚÖ‰`c{(ÛbWº!ˆ-cHòz@¸M °ub0”xbQ¯ã/¶ W -à: -MÌ'!æ ¤(]æy:W-™pÈÆç‚AÌšÖs•H?¥H|€Š:‹WrnNã ¾êÔLsm̈ñ6½Q}> "íô ïúÈå&¤Ý”aÞ‡C²Ì%„'eGÚeGŠâyç¤ä¯OÇ‹|2ÏÔ0™¸Ë1n­@#C7dkꎤzó¯yéÕ?ˆà{K ª¥ÍŠí!c¼Ñ1^›Î¥9 -Î’X¿HäA7käVl²&„c üœš- ‰å5|eº”"%w¥H¡—4ßx™däp„o çžØ–P’(¡^¬q2LLw³òô~Þé¦ÏÑ)t”1äs±ëK–·iQ6¯¼ïÌ'Þ5Ë›õ¾ð%3eלς` ï¸^j¤FEO©2òw©àÒ£.ªiÜ! °@±ˆ˜c¡Í1P7>N8Ž@ŽñŽ¢ º^à@B3% œq¨Á³ŒH: -…ºQOrŒmp¯$ñ^IÈø¹Î—{þÃ1 -þí´Dµ€“ˈ§Ýn—›0ÎËÒèP3%^îp•w¸ú¤ÃUÏt¸¶….<¯1aÌ"5ÍY[¢Åt%ʆ¾—SG./—cb|qÖZ¡INº[ }dÜ&"¿SÝnO"õ~ æžr·F…¶ñ\!Ëu¥MtG”ƃÂɈMxÒTc'ÅÙŒÓÞÿ¤ÎXœÜ½‘usO9]ˆ¦€oêeú¦ºëîµ'ev+dN`ÎLrù¼œ\ꮄl/?µ¦„1ý¨5BuÉëáÉÍë©1I_²±ÕLí#wÃüin˜ ÷¡„b§ ŒÉ“ESSÇÊ D/±¥\ÍE/RÛtqi|`‹OŽ`üîí˜Sö£´³œB7˜ÚoPšH}¸¢N‡+ (uNòi©*=>Îq±UîËaI³xIÿíG û5êù¦@®ú¹ÖcWëvŠQf*©°Ô…÷9q÷²‡'çg˜6ííå^`3#‹õº/ÄÚÇ=.Ù²øe2.±KO 1iÀý+F3c´{›Šâ0_C}¬=ÿÝ\ÆûñxÜËñÚ¿a~úäŠAs´ÿ÷»9f=‘óÝt<ì¹<~Cu²¢lè°…ÆÏövîX3&Ì?pDX9gÇš¹:LB!º{‚A9^Ĭ«ä5ôùæÃõõåkjS­} /*+Ô-^pb<Y4†Á+ - ¸:ßdG°5® 3§×^”Ýð`0~.Œ›`‡“@IÆG¤€kMäÔǤôS\FÚäÿÂ33è]—`‰>*§%ï8M_–·ð?(¹ -Ù½öî6v‡UY¬©m }†&éÚþªº -ÒC{WÃz):~»› ɺõìÝ£MÕ”»¢ xªÊ¶rS­šX¿I®qjÀõ -r'*sŒ?i{¶øƒÐ£WÔÊ ÿâ ýÚ¿ÓËÂÞ‹)*rí_shwÙÍõ€eøå’zhÕóèž]:xÜ3šçW:TTäš}ˆôceOtzÀ ÷%A¶¼Ã;h„¬r[Uöîå·9t%5;ÑKé³ÝŸãhë»} Í–Á\½gµ„+mÇè`À- ðîÒÌÓsΗDÇW*E6˜\¹A;âæ×¼šÛu/îé#?G_v…E÷ÑùÆÎc(æ×îóeïýÃ+Z›Z§­{RT¾:¶Êê-èTÓåÚÃg$·¥z·5WI»°‹ALãü7´ð:€\´Ä§‘{$Õ•»Ë0ªICõrü, ¶Éã9kš¾6ñ”·Žñ*ÌWÎú‡B€=Ëó­_ÉæHðŸ+l)¸‹Ì64%+)W¸åÄÂ~êFß]D¡JÌä8´û¤4¯IûôŠ%ƒ°Êö’Áºœe(4C¡ÕqÚóÜ1qÈDülæÄqÿ"³*»¬¶nòéÒ=ïàÃ'¨ºK]½úòbëSþvù‹4„ ý“R›««&o§Êß³ôO^ÝÛáî‰^áÕ»+µ]wϽ† 4ÏœP¬‹Tþð»éþQ9„;2ŽÅüY'@^pÖJO” Šôåþõ1éÿVendstream +xÚµÙrÛÈñ]_ÁG*e"˜ 3SûäìÚ§obksÔÆ•‚HPBL\”¬TòïéžîÁ%Ð’²•âgz®îž¾b‘ÂO,L–d^ú…õ:1©0‹õþ"]ÜÀØ÷‚ç¬â¤ÕpÖo®.~ýVÙ…O|&³ÅÕv°—KRçÄâjóÓ2Kdr ;¤ËoxÿöÝ÷?~x}iõòêÝï/WҤ˷ï~ÿ†Zßxý‡?¼þp¹Έ巿}ýÇ«7h(ã=~óîýwñôwfÓoÞ¾ùðæý·o.?]ýîâÍUGË^‘*$äç‹Ÿ>¥‹ ý»‹4QÞ™Å=tÒDx/û mTb´R²»øxñ§nÃÁhX:Ë?‘&RerŽ~À@—&Y +[Yã“LIøÓå*KÓe{Ì«f[WM}:® þ=5iyÐÿÈ7›#Aþ/„õ‰’Ö,V"±Z™°Ñ¯ÂI¼µÙb‡M-þéP[j–‡`çõ¾¡¿Oa¼žDÁ"h‰Ä#¿‚çê.¢š=FÕÛDÕÿTeª€óÖÏ¢ZÕm¹}xC3›(+5c©§XšÅþr†Z•(í;,ÅY,Ÿfg7ÿ›÷"‘NÚYvþ|*ŽcnòâX4MxwÐ{)E"lšÍ`œEÿÓ輞–Ña=˜Y¥l¢Ö/>lÌådb2£ŸäIww/g‹òh¬æ¤/ +̬øý¶˜6f‹–:Ñ©Óc™þÏ78úë·Rt<»—Ât—èLgËÜ@ +Û5Åñ®8’UÿØæm±/ª–ºßOSY•mYWÉ« 5~lò›‚R 'I“cl8éê¶èðé' —d.50ç0÷’`¤-øž6À-Ë áV4Ô]ßæÇ|ÝDziË5Ûšþ¯ úÏ›¦^—°Í†ú÷e{Ë#ôw¼nYìë6,Ë*ßóRF| 8JéÕòÝv´ò@K§/´vW\Šeu'Ðu¹D?QìU°û¡X—¸¶Ø¼BˆY¶·²\ÉpL«SP³Þòª€SCÓâVëñD\6€©Jõò‡j÷@c°)5öuÓNN^Ó64àV»üÔðŠüpØ•ŸAûßäá³ :†‹1¤5‹$ +2SÓü(leEw>òÐàì½Í<ß9ò“¬ëj;#àÃÁ/Ä© P¡k¤C' + _“B…~J +ÆVÌH¡UËu^Q£^¯OGjæ_Zßýõ-–z•ž˜qP²602H(5ÇG8¼áaâ4Î;¨¨£ýÆ,JËOm½‡<¤“rO½Ü’©ƒÖuœû¶H¨yuËÙë–âõï“i8D¹¯G» ÿnYA¡0«Nðæ%¥¿èíËõ-5Ä»!…¾£ÐsÐãƒuÒck¯Ûo ¥£ù†¡îz•De¸z.Ó +"ïÍW媛5âEs[Ÿvˆ%¡ùî>h¨}_?£ædLJ;œŽJ{2O +’ùsæÜÉD+ežmε•1HD®ÍJ£;%zZã¬÷#;Ét•ün:ÞŸA.DÝJöèÝ<Š M±c …!§©.Þ4:«L.¯“yhdÈœâx g]ס¬06Z¡M²`}i&PRîù°šG;ɃNIþW,·5ïR|É÷:FKƈ °SŠ|SUé¥|`P®O77“ßú˜7·1ňVj]—ny:´<€µ˜|h1s&ëe.Ôimq±©š3…ÝÉcÔ‡Sï:1‰í#zá8hŒèÖ%zÐæ8sßòÓCËËjúçCìòÍwï?ò +Š³–3öûSF/8^òr*£ÆwÀeGLÝ¢CyA“ŽËçsºÙô ŸRR)ô Âì˜9À2 è>+˺²^Òê´9¬šò_sea@ÉgÎO<&äèµñžW'ļ…Ößý‘ƶÄi»#é±|¬jK*üúà¡xH ¾#Çï”®ñ‘rçÀºeãk¥HÂïÄàÏ—“]¹¡ñl4”°ôÕ 0B”¤È/!€ÊrýÐ’˜úðf0Ü¢>µTèÃÁö¶d0×ȲŠÛDË„jè曞Àþlð !™3W´«NûQ~a ëÛÓŽ`Ì@€r5xZ6·4ÈÒi ÁsoÀF3¶ìÀ©¼1X1 +Ï°÷`B;¡9#GB¢»rFDi¦îÜ¡3Œ°€7ÒñWÛFÃÌê®x5µe}Ø12hló°äÞ6FAШNûkªWó÷ ³Éj}:öQ!ÂÊêº>e‚N,+ŠqYq䊆‡ŒØËÆi=«òÇ3DʈSó/©`¹d÷•ÀìèÄM‹¹;ùÌc%Fž g È×Ñ"w¾:¾ùÍË•„ä¬/—t8¯,ͳBfu"u:NÑ’øø*’Ô‡Ç×çä…ÂÈȯÏÅÙäݤ™œ&ï’ ˆñ¨!ÈÜ7N%ºÇ™~…*S¸Wª`m"m&žóªL¼snþ#ÔU·áj°cøÀtB=Øo—eݹAS6s ¸L\Gñk¦ Ñ̆>W‹·â”™P?åpŠvé‘É@óÇÏKáæ:¿·C‹üRƒo!И²âgí? 8ÃËÉ +ÆÖWß}ÿjz%bg&‹ ´ïÀ?:Þ,¨ñaðEoœ½L'v©œî‰|,"Ò΂75S<„Ê›efˆÈ£Š»I_?ÿÑ^ý{xz,;dË6ßñçø”Uó?…µv\ipÙØlYÈäÿÂÙྻüV£ø}‹–Ví×OÁwç–AÃÇ–3ßq+ƒuß9&¥Ý†¿øïþx ®Î99Ïni>®©ˆTø–1{„yüü1êÿb–OÁendstream endobj -1325 0 obj << +1326 0 obj << /Type /Page -/Contents 1326 0 R -/Resources 1324 0 R +/Contents 1327 0 R +/Resources 1325 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1301 0 R -/Annots [ 1328 0 R 1329 0 R 1332 0 R ] ->> endobj -1328 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [87.6538 510.6542 137.7628 522.7138] -/Subtype /Link -/A << /S /GoTo /D (tsig) >> +/Parent 1296 0 R +/Annots [ 1329 0 R ] >> endobj 1329 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [370.941 403.021 439.613 415.0807] +/Rect [87.6538 61.5153 137.7628 73.5749] +/Subtype /Link +/A << /S /GoTo /D (tsig) >> +>> endobj +1328 0 obj << +/D [1326 0 R /XYZ 56.6929 794.5015 null] +>> endobj +430 0 obj << +/D [1326 0 R /XYZ 56.6929 659.7801 null] +>> endobj +1214 0 obj << +/D [1326 0 R /XYZ 56.6929 629.052 null] +>> endobj +1325 0 obj << +/Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1332 0 obj << +/Length 2654 +/Filter /FlateDecode +>> +stream +xÚÅZÝsÛ¸÷_¡·R3 HLžœÄN}í9w¶ï¡“Ëx(‰–8¡HE¤¬ºûßo ðKTl7ÓéøA ¸X,»¿ý ƒ ƒ¿`KŸ N"ú’r²Øœ±É +Þ}< ,ÍÌͺTïîÎþz)¢‰öµâjr÷Ðáû,ŽƒÉÝò³÷þoç¿Ü]ÜLg\2OùÓ™TÌ{wuýf4ý¼ÿt}yõñ·›óizwWŸ®iúæâòâæâúýÅtÄ2€õÜr8±àòê4úxsþóÏç7Ó/w?]Ü5géž7`òíìó6Y±:c¾Ð±œàùÖ|²9 ¥ðe(„›ÉÏnÏ~mvÞš¥cú“"öeÌ£r1¦@©}%à*0™Î„ÔÞnÄ^úmŸV5MTÙªHê=ÍãTì²<§—ó”~Wi‘î’:]Òã¾ÊŠ ëµ]ô5}² ·é"û1î¨×iË\{Ia§“í6-–Ž¨ž^Ùc©½MZUÉ*…«R"òÎñ@³ ðµ”Üœªw¼¯r—­28' I¹¡'ôpSÖö¹Jw §gýeÝ%þ¶Ïh°´¼Jú; I÷nþäösÌP?Ax~sŒÈׂÇæçy½.÷«õt2+$V»d³IvôP>´oÜyйó@h?RRgd»U–ªk,#PÂ-òd_Ù­’@ËÂ×hRlSËÊéÇ™ 4 B?Ší®”<}±ß‘š‹:·Z¬öÛm¹óUÞݸB´pÎíQë]RTdˆ³ªÜïéˆz"p>®c»-u”¯ušïìQ°Ž'T÷4–Jr˜ßð˜oY¯ã›€{JÆêUW>kVõpebqn¿TóQ,îÝf›,OvöX ééi}äî fzˆƒ»Çµ'ŽÅerqùj‹¾Žœ2^pžK=ò6¥Åkc/‚Žæ‘zúY¦u’åžé^—iµØeÛ:+ ‹Ë£ ±Ãçk4’á³N*#ñ_8)„cèàåó’¥@¹šiŒ¿ôr·šÐরúYwÁqÀ>æ‹ûߢß8ýaÊ(?:I)`#xO¤£Ì¡¡zN#n(ˆo-!à"~1úî À¾RÅ!vEüyÜeñÇñËŒ”¯˜ä¯G\éWD\ùBÄ5#Ä‚Þ(òcÊ>ôÒQ€PÑf<=Uqs˜éaˆ¡@ 1né“x+ày7°2@KíiO2uÀkOám$}Çxé% ÏÞâ‘Ñ d¾Ù^š”ªRA]i$Ö[ì½Îóìá˜N .äS 7ù:{“AÔÜnvØ= +ùø3wþ}ÇŸ8€žb™ ßÝ}ß4cê»î e¨õÓ§‹D[ok½I(—¼GÌÅóˆÙŒÞÑ­˜%o2$]o2lJz1·ü%6’ †ò¡ÌI2#” ä@8mø‰~ÆçÖ°†9å@RYÂ%&aʶgêy:a‹ +Â%Ÿ¿U©ú7›Û8rH¦Y¬ûzù?:GüäË-L½ªà¥þc¶kŽŠ‰mJ‰œ€*GÙ²×ÄM u?ÃÒi·¯ Š˜™êÈp½­¡ªÝÎbµo .Ã_èŽtPs€‚u‰3¥]N +xÿÇ\‡°‰ Mÿê)G‘¬Øoæ˜SoÜ¥Û¯z)d|>¦{=_óóÙ÷ý/_È‚Feÿã혲Až0‚R®×)™³—*ùCŠ×XdmrCñ¿aô±öOæa[bõÄ8æ(µÏ1«eö†Z cÌ^„&Ãã‡ëÛÛ‹÷4®R¨O³ú‰ž¨·PÖ•O¥p—2«3L…ç&Àéã¬a@‡ñ$ ¸FJ=—U:úYwÁX27äÛÏ*A˜Ð‡ÒHš uO˜ãN”%zF‚#^”Mš&À¹Óç¬Å/Îô°sʆúÈ)›žŒzá×ݪW0ï°N zAy ¶ûyž-hlm¡&L÷Š²˜%ûz]Â~ ¢?MS9ŒŒÝ~_‹òP˜ŠMzó½Ъp‚ÍíRc)< ‡N\Ρ„2rC"ÒÒñL'À”ÞÐ(…ÒÛ”á¢ý‚z6øap ¤x¤ÍZ´*Ã'[Ûèggùl×€®s;í jvùc=¹O… ëè×ø¸Ö óÖIE3óo §e÷·Ú7­5³ÐÒ%ôX鈴gÜ™ž]/ Y=ؾ®ª‰WR÷ÙÁ¸ëdé䙉xIž-;‹ K´%m>¦ÅØ©Ûë¶ö®ßj¬Ê¼i0&5 Í¶¶ðØ€ŒíÞmÙì;²–ØVØIØveáºdóe¹›ªš’›ÖºÀÝ8“l‘kÐQ‹l;wƒÌÆb8Œ~g’LÃâܹT©,–Ôj…i´“ +zÌ3º1ê¶ô£¶GñbÇ@¬]~¸ž2r_¦Þv'S*Áoú¯Ìô„›ülEK–9•l0o¿‡ub);–O!Q†¾ÔÑ &šsRµW%m•Åt'¹2o d°?g +«P5Úñ¸v¢Øg<~±râ8vé¼IÉlq[VépëVwðàêTÕT°Îþ{展¿_üÓ¥ + +r5H6onª´Z«Ò¿8{·lÈiH_z=w—÷¡|£Fz2 `Rê—k-Pj$ Úf "FˆB¤¦Ù¶%ŽO6œh<–B@’d±nÖVpÑÖE´59í‚“á`ô´ä¼4]$›ô é›Ô;€™"Y¹þ›E¦º\”ù+ eëÍ›AŠÕ´èÞ%{UØŨ­õj8MÒkÝõWÒ©-ù'òÃaΛ>féáÇ’oâ ,¯{Ô•Ql+9ÐÔg¨U«êK7IâMR/Ö³Ež$M2o~°,´¸7÷¹œÿãíX >îÕæTYü8³bvÙÈŒ\éŸÒê¾ÜÝåó‚QOiº°6ßÇtl;»‘í¾ñƒášÙ¨‚_^!ðç,àXp®]ii¶ù6ú +0t ¤²ŸÅRÈÊCº{ØÌŠ¼H5 h¾¡â9j>Q+úDxšXžyZ÷¹C6«Û¯‘Øo¨͘~l@ÝŽ'.!¹í]›Ûuצ£L»k@NŠß` ¢˜² ø=¬K˜cÃoR}"„v-¼«ºÿ¾Î{÷"LÕRRŒ)"ù`5ÚlWmóÌò¢á\Zï·–1~s*÷õ©oï`øÁ|¤>a%þðwùöŸÀœEóñJG0åDz+”±ù£f}óÿXô?—8ŸLendstream +endobj +1331 0 obj << +/Type /Page +/Contents 1332 0 R +/Resources 1330 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1339 0 R +/Annots [ 1334 0 R 1337 0 R ] +>> endobj +1334 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [399.2874 660.1853 467.9594 672.2449] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -1332 0 obj << +1337 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.8521 151.1974 481.8988 163.257] +/Rect [461.1985 408.6709 510.2452 420.7306] /Subtype /Link /A << /S /GoTo /D (DNSSEC) >> >> endobj -1327 0 obj << -/D [1325 0 R /XYZ 56.6929 794.5015 null] +1333 0 obj << +/D [1331 0 R /XYZ 85.0394 794.5015 null] >> endobj 434 0 obj << -/D [1325 0 R /XYZ 56.6929 305.0663 null] ->> endobj -1330 0 obj << -/D [1325 0 R /XYZ 56.6929 277.7349 null] ->> endobj -438 0 obj << -/D [1325 0 R /XYZ 56.6929 199.9149 null] ->> endobj -1331 0 obj << -/D [1325 0 R /XYZ 56.6929 169.7741 null] ->> endobj -1324 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> -/ProcSet [ /PDF /Text ] +/D [1331 0 R /XYZ 85.0394 562.3583 null] >> endobj 1335 0 obj << -/Length 3052 -/Filter /FlateDecode ->> -stream -xÚ­ZÝsã¶÷_¡ÉKä™ÄIôž|‰/q¦qÒ‹ÓÎôrsCSÅ9ŠTDÊŽÛéÿÞ]ì‚"e8r›Œ¸øàb±øí¨dÃ/™å:Š¥Q³Ì¨Hljž•›³xvcßœ%¬["ܶáYtŸa„iäüªŸn‹]_•ûºØy¶ûÎ’r€^µ;ž¾·‰–ë¶użhGØgûý–?€ÿj÷}àëâžØ _j½ƒ•7#7 -Rg œ™ xät‰¾ú)d ÒèˆÑx{ó12 Z‡eÛa3Á“Ã^‚>Rp^;œ -°aÐm‹’û 0H=TuMSny¬³¶!êöq²N·¿MNWb§¨Œž_0B0¢¦G¡™ »<#G„»Àâ/Ïç÷€v²ahT+«zžÔµd ¸l_ýÈ/ƒ¤øÒћֽ·Ü‰çcˆ!ë˜}èqò"s°ÝX¦3•)È°¤xIú""ãÌ=”¼,Ž‹1KJíÆòÉ<‹´ê°ò༅T€º8ƒìïOràxBH%’(Ná'BºueYâ‘ß®§ãð—]À` 5ËÒØ»O -_ 1!"HÉòÆBY™”í¥^ßàNÁ9E$ÖE[ê@°¹©c°aÇ6l<64×ÃÊÏ‚MF2%ªT6AýlÌq1fäTéháßÁZå*Ëþ<Ž'dåxz!ŸÃZøâ2ù©Ü{Äüy¬¥1„j™¾k“œ,PØr®&€ÃrJ›ùÊ$å¼i{"º­-+ôìv ™µÔj~Ûö¡’Èó‰d"äó O¡ìJMæ¡@Ä$8¨ö&OlÍà+CˆZÚU‘v‚aŸŽSJñR)X+°¨]ªcÆfe1’H™Î¯šalÈÜ Ge(£Ö¶ü̱ÚP,8æÚ*Äß,‡:ô…Ú“‘’±ø]í0•ÒúÑ^Ž¯ˆÁ~£uÇ›ë‹Ï¡|Ò$@6Ø$iy¦ -ÅÄS+¿‡u…Å£L•/ëî«%D*ç(ll¹.šªÛPÓ¥X8N–=>€#íÎ;[ÛÒ÷ù‰.1bG™ê’7•³dä—¤=#uËÂŒ,§„ráwwºº  ʆ!#ÇB6K½~D–€Š¦#’³ê ªÕ†²Ð„kZ^bÜYs×ó‹+Òñ†9z[p¬†’‡(ù&–uvâNv9R®Œµ«M ¸×óÖ­¹tI=6Wô샵‹É£FOÖ.è›ÑŽøVü쪻ÆjO]¿‘!¥\fCæôHYÔÁ*êÖŽ§tm} p‹5‡Í8Æx{b뇭:mAJÉ8>²á‚…Ü c¬ j–ƒçÿJNd^e¾àŠç?9 rJ\(j“dZü³¥ÌlÂ'òKjbQ‚›Dº¹™Ø•½êdéJ)¥ƒöPCÊÙ< Ô㞢,ÁwV·5·•ëf]'•zÀ,u†`&²,I| -gÓeê-F"ço}± ‡*b3=TV•ÈЄq7 Ôáà/8ìãPGe0t5å`%&×o‚walZÿˆaŠ_ǸË*ê#GÄ-݃à.¶àdg¼z_…îP¨Ò…3°¿XëòÍؘªÀvMQ#}t±]`GÃ׃¸õ—!\ÍrÙŒ&tSÙ|TßæNªï‹ÆÝH¾’ÞÌ cË·TØð:²jWi”håmÐ3 äñ1J!B*ÒS9SI§OȾ–Dy[sóB¢è²„LœvzHÄ9Üñ(n·ÏRH'Dr”m·.²ãc Pk§4 ® ]x;S¹úgÂ^ʽC‚¾Q€P:›ÿc`†—{~Âb´%wõÞY1swx¯F -Çóš`Ÿ9_(UjN/8 8\£X,åOҸ܀žôàD÷­Äü ðŠb$›+L9€Óp‚帷Ôp[幓¼ÄIÃ»ÐêžôÈk½(²Œ/Jù‚¼ãöôàðºœDf«v¹ãèúÞ–vi›’ûZ¾ÿC®­çêAx'à{¡ªSâE†'OÒŽ‡2O0ãPÓ€ø÷s­ñÎ…‡s*†»Î“†¢ãþÖ#Tºv8DOçVüôà‰_]O§ÁÀ~c—Ì÷ºíyu6§8å*Å-Ö,üë÷¡7{—É üI'`ìdÁï°EH²+ïªÃù ¹ºö¾›ö€\ -&Êv³­j»\ø#<À—ë‚ÞÛ©Oã% =Ü.'#õè6P"K8ãøžQ)Ê/‰ê -t€Öðh洞$9AZã]‰ášÈΡïpå‡/QdJY'®ê÷} ³«N•Œ<Ç -îÈ-—¤ -Ì=1$vb ØuuqÑ<S6AðÊr>( ,¨1ÍÓï¼ÄÄëàòmCN{Žh·4RÛ{[S†äѤdPñ~ÇwZ8Jš&z8yžÝUKFÆÒ§ÖY”iq”Y£õå1…Xxâ•=QtÁ‡(vŠÏÇÈÌêÝØR°ÌŸó@I&À™ŎؘзàÍeP>äæñ°¾ˆôbž¸¨=Ž¥qL†ƒ,f`ƒ´©¬ú`C¡oL(ß^ØÐG–98öÎg±sQ½AÌ…Dž ÂÛ²ô™…Ù¹¡k*¡æõñ¼Š#¥_òI,´U) à(WÄ<Ö·v¬Ê«¥™¤ÆÓËìrûÇ-Zû‰$—ùúI–Óè}ÇWXÇu ÔÏ[ýûüKà’v-£8Wzߤ¿ðÉþãoÎÁO§¯_Ó”g|Huëv_/‰æš Iü¢âÏ›ZíÚÝçQèxÑgí$ŽÜïuþæø´À†±šH÷㎯ °±;\¨8yíî¾*¹Ñ·!!'`Ø JË|ÑåñGî—ËTðB-‚¢·‡oß¼æŠÅ[óƒ0*ñÚÇö åWƒ°_ïé3éèK¾í¦ü§Û†¬­?>q0o‚ÊH’1ZBÌá¿i£‰‡ïîøO;‡4©,’y.ÂÿÇ‘1dü% å¾ðgÇ’ÿîy*úâ²endstream -endobj -1334 0 obj << -/Type /Page -/Contents 1335 0 R -/Resources 1333 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1338 0 R +/D [1331 0 R /XYZ 85.0394 535.0538 null] +>> endobj +438 0 obj << +/D [1331 0 R /XYZ 85.0394 457.3433 null] >> endobj 1336 0 obj << -/D [1334 0 R /XYZ 85.0394 794.5015 null] +/D [1331 0 R /XYZ 85.0394 427.2294 null] >> endobj 442 0 obj << -/D [1334 0 R /XYZ 85.0394 728.7887 null] +/D [1331 0 R /XYZ 85.0394 274.9785 null] >> endobj -1303 0 obj << -/D [1334 0 R /XYZ 85.0394 703.8893 null] +1308 0 obj << +/D [1331 0 R /XYZ 85.0394 250.6389 null] >> endobj 446 0 obj << -/D [1334 0 R /XYZ 85.0394 574.0702 null] +/D [1331 0 R /XYZ 85.0394 122.1428 null] >> endobj -1337 0 obj << -/D [1334 0 R /XYZ 85.0394 543.3965 null] +1338 0 obj << +/D [1331 0 R /XYZ 85.0394 92.0289 null] >> endobj -1333 0 obj << +1330 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1341 0 obj << -/Length 1191 -/Filter /FlateDecode ->> -stream -xÚµX[sÚ8~çWxò;#Å|›>¥Y’Mg“v)}¢FØ2ÑÖ·JBKÿûÊ–llâ$@¶ÃƒuýÎwŽÎ9:ÂÐtñ34ÛŽoúšë¡­¶$=][ˆ¹ëž¡Ö€jh®z?é_Y®æCß1m5°<¨{ž¡MÂiß&½ùñîêæúËøbàû“›w`Úzÿêæï‘l]/no/Æ`x¶Ñ¿üëâÓd4–SŽÂxs÷§ñåçÐñèj4Ý]Ž÷“½Ñ¤Ö¥©¯¡[…"ß{Ó{] …Úz:´|ÏÖÖ¢£CÃ÷M-é m ÚC˪FâÞçÞ?5`c¶ÜÚi?C‡¦å˜]ô4LM1äÚ>t,Ó*-È79G×û bÓw…NômÛ,E$V‹Îð#Jò’ŠÅ)Ša8?“{€eCϱíöÖ_Ý“FsRH3-èú°]¼®¥I)g²ÿ³\Þ u~.—Ü"<È&ŠcÙb‚SÎd'Íx¥¯X‰CÙ™oä—?(EsŠW$[ªM%Øe™´üTÒÓÍ;ÙÚ×ÒjãhÉ”PŠƒ%ed¥º Ó T‡gò[™¤¥Z'7…–¥•â/òøD³ •0Tñaœ’€WVÚLíÙKù ²DüÈRÜŪ’d)G$%éB!¦±:ƒ|9IPõP`ÆȼòÀ‡Œ=£o)±å¥›–ë˜>ô<×o»Î©!PD#öðó+ÓÐê=Q!|èŠXv­:Í™–H]zeØ2}æˆãDœ¿Êp% ¢¯úÅ‘ÛаlkÏPEk–¢Du§AŒ»oYL¹JK£W,&5›ÖQ˜­Á÷%¦›v|„¡p/6+#hÆëh)¿÷]§ÐÂä¥,Âô†]æ¡0ë[@[úK8g§Û3393£ËÊÁ¦ÂûcX³ ˆ¬F¢6<Égo…™g”×ãEGIP¦'ì4+v“7ø -SÙò«nëkDÓm„H¼%‹4£XŒ-I/ÙW"&§Ãu\“8 UioƒÙ,£³"¸¿¸”ðÍÀÁZ…Å˼ٞe9¯sùDv «ÈáU–=`£ éb;ˆ2*\~gY.RÞ–¢õQôo¶ÜÝWGrÖõ1 Š[bÊøQ§ªp0mßÑ¿Ñë[& sÄN;r7Orð†#%åe öˆï— z” q¶ŒüP@é2™W‰ø >uö$ž–-ùÛ‘8IŽBjiÖÌ {vÙV%N.25á­A-`W½@ZŠ!ŽÑ¦ªôD9²ƒD‰ô ožêù\ûué°`"r«ò³>’²- Ç…–kt‡–]ÂüQNÙÐw]GkŒïböµ(“ì€áZв_2¢äVN“¦ó”¦gCKHÿM4}šžév-j,ÀD©&Ê°S#‘X¡˜„âV‘¯¯U•TŒQu ““Q"²Å‘(‡Êx;)ÖŠ¨=¤ƒ §›7@”<ƒèzç‹Š¾xœw¼Êõºšó»?HÄ“Àò<³~Þ‹'ü®Æ7]ñ¼÷ˆ"U¾¼'Ì«? žRÿy£™'endstream -endobj -1340 0 obj << -/Type /Page -/Contents 1341 0 R -/Resources 1339 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1338 0 R ->> endobj 1342 0 obj << -/D [1340 0 R /XYZ 56.6929 794.5015 null] ->> endobj -450 0 obj << -/D [1340 0 R /XYZ 56.6929 516.9892 null] ->> endobj -1234 0 obj << -/D [1340 0 R /XYZ 56.6929 489.6463 null] ->> endobj -1339 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1345 0 obj << -/Length 1111 +/Length 2718 /Filter /FlateDecode >> stream -xÚÍX]sÚ8}çWø1ìŒK²lkò”fI7mÚeÙ'–a‰6Æv-Ñ„”þ÷•-clbÉL‡ñ`]ùû!éJȲõY>…6aŽå1RQk2ïØÖ­îûØAÅ7`ý¨~õaÐ9½$žÅ s±k f,Ú¾¬ÁtxrñÇù×A¯ß˜Ú'.ìêÚ'®®7fþ.¾\_^}ü§Þõœ“ÁÕ—k#î÷.{ýÞõE¯ O‘ÖÇÂ…Ë«?{æícÿüóçó~w4øÔé J[ªö"›d†|ë G¶5ÕfêØ0ŸZºaCĶæ‡HBÖ’°ów篰қ«6ùR{Md"Û‡ÌažåQ]‚IîÁa¸¶}rÏ—`*R>Qqº4¢$Pwã(˜ó3ÓeÖê!BQŠ«êOÅ/†Ño9%ÓNÂ@Ê‘iüÈUaÕ2)4d|çguCPÕ ãm‰³å×tL§)—r<Ôän -©Œüg ïÐo ž¾5¦JƒHÎxz lƒý‹d(fqú¤SݾíyrÇ'÷à^ÞoeJ+ÃeÜ ‘Œ3bEf$qªJyÖÕ’px€„pÍ®µ;YÆJ#øצ¶öi´š"\‰Û(N¹–¡†)ÒlþTá"©¾ãD‰8j0áz6¨´Œm cæT<ÍÔ³ÌÐÑߘ¤ø£Z¥ÁÃ^¦ü/Ò(Ûr©aRsà ŽÂåj&R©^ã€px*kÉôŽùQ3C<ÎRpH~rm5OÀ!‘ÒØ"òÒÒÝÌÅ$‡|ÅU?6«©UV‘Õ>®ê}«ÜÀF%x=þC™=b2;ÂøHñT¸$ZÌoÖ m+Ï>–«3S=gDÔ¿ /ÔñHJÌ÷¡„^:”Rußʹ"øcŠ‰¨'‡ÉÍùÖC%‹›2Yª,w½ï9“JH½ªMø&ÏEâT2y•C A‚=ª‘ çšý–wQÈ<ϵ*òM>¿¶¥•.f!ÑJnØâ ¾»UªîsªÌƒØÍ+ªw Šm1ñØŽ^½ÜZAË89;¸:‡re#JwÔMϸ¾êZŒDží¾“k±‘ããæ2Lr°Ó½ûTcf·Kz׃ÄÃήèУ¢ƒ<‰ÃXctj,_OùÍüyÙÉÄùq­é¥8@ª@éíPLä¡›±®±ƒ}ªŠúê®Ë”Ït‰—/îï5ǃäLTºÜ =ç±/DÅ"T˜-çЀ}>FçcçØó1Ú:ßérð¬ÉŽ]æ 9ÈC~d'“Ê>ÝÊsop‚:=5ÿ×q1#¯æIÈç\õêöìÅ•ÍLhR™În—^:Œ´³ÛůAÊð8DÁ럯ß\½ýÇÍÅy·W?_ŸÏeo®þvIÔÛ›‹wï.nÎçB'"xýãÅûÛËšJ™Ç««ëhÄÐã¦7—o.o.¯__žÿ~ûÓÙåm§ËP_)Tä³_f Pû§³(TF'³Oð…Â9ۜʼn +“X)?²>ûåìïÃÁ¬ûtÒ~" +¥Jå„¥š2`bÂTÁp•Êê©ÕÖôÜë`_½Ù¯Ûr»¶ôÖØÝÁîšõ†Íç2 +SkÇé2/V8»ŠÁ®2ÉJû‰ E“I(c¡yQÓæ­Ýت=Ÿ+!ƒ…ý-Šde|AN£Ž“£ê%M´+K?\ÿB#U¾±Í6/x¼]åÌòS¹^Ó’;žk¬­ˆº»íÓìïÛŽw*Ö%Hf˜Ç& .œ5€«¦c!B“$Ò©B+Áx: 6y[¬P |Éñ¡A‹s "øR.i®lyQSïwçB¨¾_½ç 7n›†¾±F;8+32q +©b¶1²ÀϬ$°RÌ2™…Q"O‚° ÖzÀóŽã|È’Ü{(ŸTÊ8í7F)^dÔ&Ì”H¿£ŒžãS2f2ŠÇB®Ë¦Âtfø"Ù»^ö‡ãÄï_š ‡;diä}ÁY`Γ2L£§ ÖLH T©ÔKP¬ó}ãЮƒ¼Zá †ÄÂ6mYåmYW4€XsK‡XÃkøòÖ@Pt;?Šµ$ŒdšÍÀJad"ߎ5æ8²œÂ¤‘¤ýÎ_›Æ*¿£žãSBÆf,âcP4fF  æÏÆB-…ð­UzÔhûH¦ðÈFÇ#¼afMLp…2)TuKD³µE‰qÝ.žÃHwu;•?„ ¤#!Ç| +‰75™Gà|"%ÁÁèdÌñ Õ ~" ²°Ëò"i‚YŸŽæRg@ð»0–JŽ}5Ç´#Á¯²˜G”Jƒ«ª›+Éñ’² À犜ª e‚c>SªBúÍ4T"'ZO…±Šä­'LÇIò5ÖÓø‰ìQî]7¬\›´[Í•d£{¬øÑÞOíª¦Iìá÷iU‚7Ã9ÄÁÖ™¨>” tˆT(Nll±Ê«²ÙÐë²ÞÑ ÜfU¯Œc\ÔUk?·ªÎZPÐ…*ŠŽüƒ¾r…Üuch fV]äܩ̼ÉÀ¶ä'WÔ Ì!™èTˆqSðïÚÕíP3ue<*)0B»rJFh´‰0I8 %žQ¤iü°q@¶lgØŒÁ‘×¹-‹bfyç:›ˆ¢8Ž÷Xb¯r¤:¬Fñ#ð…¡l‹³'Ä•¡Àž%ô¯îi6PŸB ø%1Zt”B0Hˆà?`X¤"J÷©o€h ë¡©Š)áà„#};‡£(eƒéZˆtÂ¥%,RÔë÷Á"osbÂÁŒ›'ø‡(JŠiv](p{p¹“F5û9߀ŒÏÄÃJÀþ®Ê×HÓ¨«`ý4øÅÑtŒˆWîesnb·k`×)RcÛî·“mí»¼ÂóIÅ—Dy÷‚-%<÷Â6@²¬ú…ÀŽÓP$±÷=Ïd¢|OC­¤œÀ6ðæ$ªº$ªÚð„ªkATçc¸nJ¨ƒ3ɧÃ@Ò`îxbNÛÊ×>)”ò¸Û­sBc¼;õiåŒT)oÀ„Ì]é®]ÒÞ+alâ$ þÕ1«ê~Á¼K°æë½%²dæî𞮎×US8}ä|¡ï‹;ÿÂñfÐïN®‰Y¬ØŸ¤q5=éÁ(êËà ðœr#¹+.éÁi¸ü@b•ìˆ½8Uyí¨qÒð·ÓêÎÝÎñ½ÇI¥Óú%ß?A2áÌõðà`Ef¯v5££¶\¡Ø…­ +«®,p\kÏÕ‚iM”Ä^.–'9f$” œ•XiÄã0òÏó’:„[ŒõI“ÈôRÃã½Êœ°q ‡èñÚ’Ÿ¼RÄÃé«ëñ2˜Øoì‚ù^×-ïî“\Ê݉۬šûϽЛ½«`P +(Fòc§èòšâÇX„$‡ò¦ìχB†#®®}ì&KÎDQo¶åÚ.æþ{øòfÓ—’Î| ^ýÙÎâPŸ÷æ‡90íDk¬àŒ£"c›©zø’¨> ÀX ö½!ÉIN’ÕäP+ÃIrë/úð#ÊL¢¯6qW?¹okX]pª÷„L­±sã V)@tpwaHla„?ºº‰¸¨î'Kµ8„ àåbЄ± ·4ZO 9¢n_W4á¬çˆzK3k{°kÔu<¼[é Å=Dº/ôKøóe—{ ‚p8’îýŽ¯žðe×_¤8yíîPü‚>úPÈ‘˜6'¥e¾òpݽmN—)çjE˃ý Ìœx+žb†^÷à€w¸c¡ünö×û…«ëÝ~ô÷ÛŒùÕ†ª­=>Ù»7Ae ÉÓhÿ° lõrJäe¹>b>÷r…‹»g/Ùs§øÿyÂdwêõ¾‡=õïz|»ÊíXÜe{ç –Ýÿ¾9:ÎíÎÊzßôçþ•þ9â$G¸±K÷¨SýÀ›d¤Ú)è¯ê¯?²Ý•Eë­ô=áÏÕr‡ª}é÷wTýÛðNê›]@šPëÌ|ð'1pIþ'¸ÀÔÏ%`9þÆaâÇ ðŸ9|óO)úß™ÄY¨´–Ó¿’$< LX(÷+ý@rÿ›‹‡¢ÿL„Fendstream endobj -1344 0 obj << +1341 0 obj << /Type /Page -/Contents 1345 0 R -/Resources 1343 0 R +/Contents 1342 0 R +/Resources 1340 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1338 0 R ->> endobj -1346 0 obj << -/D [1344 0 R /XYZ 85.0394 794.5015 null] +/Parent 1339 0 R >> endobj 1343 0 obj << +/D [1341 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1340 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1346 0 obj << +/Length 1045 +/Filter /FlateDecode +>> +stream +xÚÍXÛrÛ6}×WðÑê P€o“'Ç•]g§UÔ'U£IHFÍ[È’\åß ¤DÚt¬[Ƈä{pv± Hýaó!²üžáú=h#lAÜAÆL½»êàr ¨ú¨Ãί—–køÐwLÇNkXDž‡a8:»øýüÏaЦÎضƒÎ>^ßü¦-¾¾\|¹¹¼¾ú{pÞu{gÃë/7Ú<è_öý›‹~`ÏÆÊß,^p¸¼þ£¯ï®çŸ?Ÿºãá§N¸‰¥/FVÈ·ÎhŒŒP…ý©ƒ å{¶±Pbß7¸Ó³-h÷,«²D¯¿6€µ·…k[þl˃¶gº- 4±1ômÛldÐö¡c™V‘ÁŽ‚ˆ1Öÿå@†iA?ÏØpTr••1’òÅPT Ò³ŒôEé|›S¾ªpµ= 9bÜM"&¤¶ÿ ¯ã&¦ùSr’ˆ)å'†g¡Jë1 ø5ÈÒˆÍ è7ýfÂçQµ +Âñ>¬E +’T²iže“œw‰™¥\nìùC9C9ÁèE³b·3ÙàŽ÷ ¯8¡ ÿ -OÖS¢5›%)§Ê†3ý(¿1^×BpÁ¢0 <Ô¶“”O’tg–H:ãL®žìUÈH4Ïê÷“4“,Mvdʪz’³d¶³£néÜLS®J~›YI—rÍÉb¯ú7ó„DqQ›eȤI´ZOr¯U-q(ù‰UßH[N9¸%â°)¼eœ#–T¤úOˆì_—1Yj(ÁK dßVñN|–›Ý°PUZ:—Ç#Iï…Ôˆ¬¾ƒ>ÉËZ_è2S;5“ £î×åΤõT ¤) Ò$;#dóÛ{ºzçK÷¯×KK.€PÐmó±¬Wk”u€Z®©”!†nϲ ˜_ŠW6ô]×1jömϾÖešÀ®•ï’¨9‚§NÓyNSé*KÍþ“húš…ºk!šk, ”TS²âÐÎlHÄBõ«Rü¾ð‡jSݳg”ê oF±ÚE8*9tWôÛA½–wí! -L$_QðØ¢ŠjC2N™V7#ò®Õ;0x¤<oªŒ 2z½8@« ÿ¾QàÕëë|‘úºÌo‘¡Ç ò÷úí€_úv¥ÜØôÕ h—ÈZ^Þ‹ûý•é{ÿNÀ'ÿN0ßNQã+jó(jü¶ŠÚ|EÝvrdÙ0?îi9çA›£œ£O•¶Gn=¥°<ÏÜYµ£ 9Ð3}·"UùO™oŽŸžSÿ5Ñ9’endstream +endobj +1345 0 obj << +/Type /Page +/Contents 1346 0 R +/Resources 1344 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1339 0 R +>> endobj +1347 0 obj << +/D [1345 0 R /XYZ 85.0394 794.5015 null] +>> endobj +450 0 obj << +/D [1345 0 R /XYZ 85.0394 769.5949 null] +>> endobj +1233 0 obj << +/D [1345 0 R /XYZ 85.0394 748.6299 null] +>> endobj +1344 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F39 863 0 R /F23 682 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1350 0 obj << +/Length 1052 +/Filter /FlateDecode +>> +stream +xÚíXË’â6Ýó^Bª¤ÖÃ/Õ¬z:t‡© “²"åA«ÆØŒ$ÒM‡ù÷ÈØæ ‹<Š¢,YÖѹGWÒ½Â2?l9.ta–Çlè ìXýqY#ÓöTÁÙ7`ù(~õ±]¹{¤žÅ s‰kµ‡,"ßÇV{ЩºÀšA@Õ‡/ÍÇÆÓï­ûšgWÛ/Í ª>6~®§¥§ÖýçÏ÷­À¾ƒ«?ÝÿÒ®·Ò&7ÃøØhþ˜¾aéch«þXoÕ›õZ·ý©Roç¶íň&†|«tºÈ³?U¤Ìw¬WSA3F¬qÅv(tlJ—oÂÊo•_sÀBë¢k©~AB]R& +è#è"å9 º”Ð…€pªŽióâm(Ás xú~ÆU/–½(N«ÒG7±Û 0†ÌqÈ:’Ò\ª´Ò™ÄR§E1é%•nZû+}ü´Ö­ +•u˜çý‚Á@Àë|å³´d +ݯÑî@³¶ïGYò–ÊÆ# Ä{&I4?s¹O¼‰¢e©!—@ BDt,ÙOõåHZŒO¡„÷K)ŠµÎJ}.óþ6 E_¬;Gê5 ŽÂÙÑCM¦Ï¹³Yî*+-E4:Z“\OeŸ¯ü\Lì‚'ÏØcÏ1Hг©³úaÑä@æy®Ux¿òçË`_²ÑAj:•Ê°Áü驺ÛT™‰Ù?nC• jö0•R B N’µ€–p²wpµÏåÊ ÁŽS:ý%\JK†ØCî¤%ĶOJ¥*vÊ›/Ä£ðqNïzzÄÞ5;ÎE³ƒ= +©ÍXé쬱<ìò«õs‹ÕÉ0$>ñJå|#”´9E_{¬ów²± $J®^›ûÙgÍå &ZÎN‚ÀÛ D8£(–|+ä»»KŸÍ8[‘ñ$äci>€ût&¥:ÓKu&:+=}Þ'^†ñ+ø6år¶8'[Wª7tÿ¥4¿™’{·„ÓI±Ü‹'ÉŒp'ÙåGf-Iw0Œ¥Qu¥Œæoz.ƒ×“1 FÑÁ +%±j>RéC8¸'O¨²éeØäg9Þ )п)™;7 Ã×Jžnœ‡kå!W˜7óüÍC®Îu=!WÎC®6mä!ø&yÈÿó?> endobj +1351 0 obj << +/D [1349 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1348 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1349 0 obj << -/Length 1074 +1354 0 obj << +/Length 1867 /Filter /FlateDecode >> stream -xÚÕWÝsÚ8ç¯ð#ÜŒUIþ4yJS’KçšÞQúRÊ0Dâ9cs’åšûß+Y¶±‰) LnüàÕ×ow+íJÈúCN‚aæ惢À™-;й×c7TÌqËIn}ÖÛaç͵GXˆCg¸¨aQ)EÎp>ꆃžF€Ý«w×·7Ÿ—=âw‡·ïz.`÷úö¾•n—>\z.¢ê^ý~ùç°?°CañööîíaöwtпîúwWýÞxø¾ÓV¾ÔýEÐ3ŽüÓ¡3×n¿ï@à18Ý€1†eÇ<øžWö$O¿*ÀÚh¾´•?öBÜF «H!¡†"¡‡½œÀQÏ !ìÎyÂï#g©›¥ÉÖvn¹œdb’f¶yacã´Öì"Xà:Ì"N¸•¤qzÿâ…ËH*.Ìrw‘‰e¤l÷W@Å¿©'m´Œ~†‡†db‰ùÅxõ´ˆ…TÇpp Ò¶¿Û_1¯&Ñ|.Š¾U&TÕoã†@©/ÿý÷bZäßwn6–M’X ž^cðèo^ì-Œ+ð&k#íÏÏ=AMO¾¹JD©\páÆsç8µ#éz9åâ;¥¤âåÉ@«õ´ò³¾ô||G7®l”ÙZÌø.Dñʯá)‡@„“@#â{Aô[>FHèÔúw¡8¶å¬}&áO/j¥aÏN÷1¬›>7•€uù5¦bèé\FX«©Q¢ÜWÑZC36ùlõOµ•Œ‚ 5ü-¶¥cá/¢€|Š[©]Kª/8Uÿf)w¥Ò¥Dªx&_QHôÍ#M#yb1‰SWð…àò!Ï'ç™S@ÐsK”ØžkÇyëDÅ®- -Çâb0”ðšC:Ç -ì°=3&Ú»¸OÒ¨´p4K")«ú”ïî6Xµ]ñF¥½8^Œÿ‡Eu×ÚnˆwnDð^Döì¼8jË›kŒœª{aLÓWMˆwWuìëë7,Œ³wéO:Wð%O•m¾ã_!ÄilÔÚž([᳌îy¥gw¯5 ø€ùÈ«é¨Ðô¥Ò4ì1ÍóŠËý[;E r0A2Œ_tm×¥%`AóÖ~Ò¢ÒŠZ ê·ë †*ÄrEÊ-=ÒÄè¤Ok dxÓ/b@t¥Ì ,…%Ú«M'> ˆQ­ÂL>^5¥’‹G“XŒüé3…)ëF¶]&#ϲÕÖJÙÂNR%„I÷VÒgÓ -ÕX±U f¾t×&N+MyÛ9¦Is•ÙÿJôífñ¼ˆÖê!±)TeW*7yN0 k‡bö÷‹O}@C/têìž0SSú‰Ž2Ež²¶§¬N×ÙËÝ«[ûàQŠ«Ò9&øTƒx0X†]Ÿ={Ëh1«fúpÍýýendstream +xÚ¥XK“Û6 ¾ûWè(ÏÄ _zMN›t7ÝN³i7Î¥ÉN†¶¨µZYr-z÷ñß ¤Öv´}e|‚|I³ˆÂEyB¨(d”’$”%Ñr=¡Ñ=̽ž0/3 B³c©—óÉó+‘E)RžFóêHWNhž³h^~ˆ_}{ñÃüòv:ã S2%)_^ß|ƒœ?¯ÞÞ\]¿~{1Íd<¿~{ƒìÛË«ËÛË›W—ÓËë¹×ðÄ‚«ëï/‘z}{ñæÍÅíônþÝär>ìåx¿Œ +»‘_'îhT¶¿›P"Š<‰ö0 „Ö™’H!§™¼›ü8(<šuKÇâ—ˆœ$9ÏÆXŒ0)H*¸püó…Ý(šqA +F¥ãþÖµz:K)uÔ§V­ýðòQ}‡ƒßÝR\'¢c¤HÌ‹9lüŠªÛîն̠wRNDpð‘&´k›ÃU½í Œò_àçîŸõèmüCŸñSo>©²ÜzÞ¦Ûšow'f!Ážûü9nž›/u£ï•©»vf7€Ìƒî?uÛOm7²‹ÙYèøhFÄ×f„ŸeäÌÏÿèËó+΢]Y×B”ãîmÕp %D½sX!ïŒ2z­[ƒÃoôGJy[[³ÈQm‰Äû^ÝëÁÎ#^m$)$Gvó–~,ͧÄy£ûójdŒÊD%œ–Ðü_Õ#…Š+’Órü_‹‚Gµõ¤}\GA•'C:NU͆-Í$´A.Q痵Τ <Ïó(a‚d9Çt®UoôÖ‡Z‰g’d¬ÈÁ†›¯ld!¨½Þ>€¼£W +ªŠçE¬pìu9zÙmHu +™ ¢TÆ/€êDb˜ó`±:€µ¯›©…«tµh|ÖM‡ßÍvÊò¸{¨K?¡vfÕmk€_ýXm¿w]ÁÐ jCÎc£ô±M¾>_¬Hápã,J°ÿ¢—<ž Beö$ d²,d^òë"Ø7êAA€‘L0€ ›–ÌË:2ä*ë9 +?.üzÓÔK…óa~À‰W}Urî0öeÉsZÌnˆáµñVd$ãÁÛ¦îwx£—õÌ74™™æò@¶ i‡„,ö\Þ"cÝánptýκSòû~XYùas †ÅâÌJ™@y#!˜À[BëC·QK8x§ñnä—Õ8™†zIƒ•!ÄBÐøžð1 èþ¶-UªE¶júnìpƒ:œ ­=qz$­Q÷«[KæC¦ßÚêÁ ÈPüò€¼RWjטg˜}³…’¬†*„]8À”£¥_a¡¯ÁÝŒÅx~óŒÇ‰@Ž;Wà‹¡Â'ä……˜\9à· +^p¹Rí½.q€íå:ˆ=&¸‹Ã˜owÕ¡nïaRZì ™x'-£Ý­.VÀ]èjÀ™sÛ Ì‘e¹ÇBÐé;† ÄP¤Z'Û¢¬ËÞF»u³¡“'2^¨Þ…HU™Àõ’ö'6-  —ÐY9Péá—§GËÏ˜ó ¹¸ –"ÔåÀÅ®-g_›Rç®[ÞüÝõk¤~ÑëVB‹øºòjQ—­ðÆk³û´_—Wúå³Ñƒ}d؇%NúšH„?šìÔ‹ìá”1ÃÂ.(pF±‹Á€ÆmÁ®j©ºKŸG¦Í8Kð””{ßš*Ås‹ÃŽ¼@ >í€_…Ÿ!®ƒÂÞ¨­±ý9MáRVUaÕHÜ‚zNž ƒ®e·†.S:ß9ƒb¬Ûe4øí*<»ò£ËÙT-m=ÚmP/ ÀÕM½®Gh ½Òóöø‘E܂⠌̽'’®s‚ÀÔîëÒ¬,Èoº zx¸2€pƒêÞK`UfÎ>cjðБDuÛ#Ë/pV»ÖWYf*/»êv=øÖãèqŠ9Ôô(µqš}®ÚkŸ5'ÎÅ}WÇã@øæñ®×ÈP86ûnÖdäBûwÝÍNõË•^{i›âÃÍ_xP¸ó‚`I^¡ˆõçÑ´©õ¦Ñϯ—Ю‡«Ç €æòÐåso×]N/? #9¼üAv6Àrä6‘Â^ÐáÖQ߯ ZÙ4j©Ãù¡ý½‚S"~öàõ• }wƒç«Õ­k @)ü iEጠ+ñ^rB3ž Þ?ÿû ä.“zñýJûóåKÍ‚b)hãŒÀ;1„ÃÈÀË+;MÝÏ;$èN˜ ì·wß!ÑL¡p¿ÀØÕßñ2  ,tˆ}䮌ÞtAYp‡³Çá†ýªyý¾Wˆ)b½-I ªnß[Wø=t;$6;ƒR°IäÐ@`Îz¿ÐeÔRÊk‡o«¬}û3eÐøˆ«ßñwÆñýýëÞ’ç„e4Åkoʤû«ˆ¯ø¯þcêñ_;°7@>¼ANïé4%9/²H$Ä겹ɾ GøËK¹þFÇ>endstream endobj -1348 0 obj << +1353 0 obj << /Type /Page -/Contents 1349 0 R -/Resources 1347 0 R +/Contents 1354 0 R +/Resources 1352 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1338 0 R +/Parent 1339 0 R >> endobj -1350 0 obj << -/D [1348 0 R /XYZ 56.6929 794.5015 null] +1355 0 obj << +/D [1353 0 R /XYZ 85.0394 794.5015 null] >> endobj 454 0 obj << -/D [1348 0 R /XYZ 56.6929 337.9712 null] +/D [1353 0 R /XYZ 85.0394 589.0297 null] >> endobj -1351 0 obj << -/D [1348 0 R /XYZ 56.6929 307.8573 null] +1356 0 obj << +/D [1353 0 R /XYZ 85.0394 558.9158 null] >> endobj 458 0 obj << -/D [1348 0 R /XYZ 56.6929 307.8573 null] +/D [1353 0 R /XYZ 85.0394 558.9158 null] +>> endobj +1357 0 obj << +/D [1353 0 R /XYZ 85.0394 534.5045 null] +>> endobj +1358 0 obj << +/D [1353 0 R /XYZ 85.0394 534.5045 null] +>> endobj +1359 0 obj << +/D [1353 0 R /XYZ 85.0394 522.5493 null] >> endobj 1352 0 obj << -/D [1348 0 R /XYZ 56.6929 283.4459 null] ->> endobj -1353 0 obj << -/D [1348 0 R /XYZ 56.6929 283.4459 null] ->> endobj -1354 0 obj << -/D [1348 0 R /XYZ 56.6929 271.4908 null] ->> endobj -1347 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1357 0 obj << -/Length 3651 +1362 0 obj << +/Length 3416 /Filter /FlateDecode >> stream -xÚ¥ÙrÛFò]_¡GºJ‚ç¨<9ŽåUj­dm¥ö!ÉD‚"6 À eæë·¯€”£\*Õ4zz®îž¾†úRÁŸ¾ÌÓDÙÂ]f…KR¥ÓËåöB]>Bßû -4×èzJõíýÅë›]Iῼ_OæÊ•çúò~õóâí¿Þüxÿîã«k“ª…O^]§^-¾½½ûŽ17o¸»¹}ÿÓÇ7¯2·¸¿ýáŽÑßݼûøîîí»W×:O5Œ72à nnÿýŽ¡÷ß|øðæã«_ï¿¿xwÏ2=¯VòûÅÏ¿ªËûû •Ø"O/ŸàC%º(ÌåöÂ¥6IµÓ\|ºøOœpÒKCçøçLž¤¾È8ø¸ö⺼†‚u4:Àž-{­µJ”¶þò:MM’«,…RL„¢0-Ëüe–‰·Æ’Tú¦ü\!o^ßf¤Ît’Y\‰Þ'óLh ü£k ÊuϘ’›ý+/ª]S/KîïÖ'ýÛ²ªý8 Hѳ¸ß„MèÉ&Œ*’ÌeN¶Ácû™ÝÚ,ÉLØmS÷ƒlxW-ëk¤G†g‰ó¹C†%°ŠhQÊTx‚4[ð‘RØòžÛŽOÃ_·?ro¹Z1ºïãȵ ‡²¾ÚÆÍRÇ°)‡É"™€[v-oRnn(—C˜ ÃÖ/»U9È°š;=Œß§ña•ÈbkÕâƒp„G@Q5Õ¶jãTeËè²é»Ó=ñ-~€‰-°¶-·xzqQjaÕ=‚y”áq­6Z|{dܪZ—‡f¸béû²í×q@ØnIaVÕsÖDÔma»™^ìº=ž'3‹Ô2¦k¹eV ùU–Üâž #„p¹)ÛÇjÅkRʦa²Q°€}8Îíôn}¬ÛG8ƒs¨ûÖ¥²ID´‡íñ -°Õ:êöц±ƒe„(â0`Pi¾© -­g¥%Ú–iË9éí*wÍg@I»ÅCÙ+,×CÀŠ9Qû“5Q¡@–o@ÔpÓ‡š¸Ãº³ár%f˜D|·Ú³ªDÊ¥A;è*"æ©6 oq÷Ÿnß3ô[uÄm¥ªXÜ®eZž ox#³á9±%ùÐÕ_]Í^<8P†s pb×ljag¨Øõ $OûzâÀ.L@‹7‚ƒaŠ1]„­*Bu?'>ÑL”¸ · £VÙ[ÓÁMÌx9ðKöPÜÀ¤(ЖÜD¾Æ û¡ÜhŸ½_üÔ‡Që0j†oaz£4û…8ײۂ•YÑÞ†ËX·Ë@8pÛ­‰y8äS­zFGUEwtØ1±USoëYÚ‚­ì9 -@÷ãŠE 7 ÂŒ|Båd,'<À´OõjØ ’kµ¸ëE°áJl7l©…‚oõ¬ä~Q©ª‘áÁ"Ù f¬ÚžQty³9´rËV¡g-´›îÐÃÞz˜IO»4iMÏT;’`4v¡‰UŠ¸ŒçŠeĪ³;°rÍâÐWŒ(ù{xê®PÙ†±`þɺaW¿Ü€ a<³ Š•‚üEÂWò†‰ì¢ú2+¶r»k*T”¼à°ÁŒ¡ÇD!ÍËåÁÊç².§ÁOª“¼p!D¨¾Ð ¨åL4á!HKs¢Žúq3ð*»¦\VÁTW•¸ÆŸÈ[n2ØepîûWüª[2 •Üĉ¤àcàÏìÞ™De&»ýçȳ¬Œò§M%þåùÌVÃÄÎÏÌf R…] -(2âf•ŠîR$°N,ð„ûˆ}êh^ÁÅ$ oºÓa¢@¡ê€æ˜"§kô¡ “u îà{Há³?ÂmÞ¾ ßÖg <-9Tªî©92¶^s{ì ìSÁ!£À2ëe I¡Rf… 5²Öªó7t°¨×Ðý=ËERm_§ñû×åNY@{v·˜ü£<# y1Ñ€‹™dx›^H4ŠÄxX`\àŸóˆ1¤åëˆ0i†ëìgu–ä4gGƒ«A²Ü5·h^CWÈ -f²\ô]s®Éû$‡\[.0N¶¯Ô®gîz -V#K !¥´ÔBæ_Ëüß<†Ô68ãÁ÷8Ö¡J[›Ç–Œd!ÐVO ÀvP{R*ʘÒBâgègíC¨à¦?ì0W›ä(Ê=Û‚Hð9K'Ç´m[´À=•bö!ý…½Þ -©¬{c„¦‹ KÀ¤Ã^òk™?*ÖläDÚf|04Æ£¡Y6bâùÆ€zÝÏ,vNrk kŒʦnD-ZÆØULÕÌÞXÐ¥n«’nEÆA5E¨šÙ¨¾ÛJ|¼,9½Åø®ó^†/»C³bð±’°¶DFJ2F¢;/«è˜¥€.pÜy>‚)µg,Ë¡ºåN©$ø±Ìƒ#Â¼Ô -Bùz§F;^d+¸_ªƒ¢Ùæô1Ûú ^A‡N¼átH‰¿*‡`‰£èa |®«qˆŽ¾BÑáhæÍ|f0Q`«ð¶ÊT¡fA>ÖpøÄ>±çÜD–63ÌüqÀ £¢£DhSö °˜fä)ú©Üx®trç9¢¼ÓJGa˜3¨tRÙ< sJy²G#Tèy^,CEž…W†„9Ë£öó>äW\2“ˆF ¢ S ûG„¢~àÓ°U†!»}ýYB RAž³ÿ?ý¬©æù½_|¼y« óÇÄí -†Gî$‘yÿL+†ÏÇøÀû¨žÓs÷}&ˆðëö7‘”û]9ãà ›€×ytHfI`Ö!«%Yñ’÷Vû¶l˜JXê'UrJ‰{uXì4 9•5Ý–±Öª3'ֱ䅴kšÍ|eŠ4æ]2ëTù’ËÅ!/æ]:͈µìKyL§Ñ‰3iÊEònÿTîWsï;Y’©Üy—sÅâc‘ô‘¨CØÁ_èñśéÄHà7]]hÏt“‘“9I«‡÷'NTÄòîœÑ&“|ªVS5 €]?2Ê@e\8ÖX :-hØ$‰ !(ã˜"À‡wsORÀ7w­Œ}™¿6O|kHüÆ É- r¿(gæ‡ÙŒr“ž°2Ššfçzv9çy.A¬û:€“õlšdÆå§ç™dKᶤù3¶]Iܵ©—hœ¥q€ÊÝŽ¢d4®£~?Tûº’ø^ëØéÿé‰À’Tx/•@E÷àÑ»….¾Lªl¬yz T7÷Êf ŵÿt’gQüă Ÿ&ÎÚôTu·’ÿYy{°à(ؾK‡áÚ/†&-·Õv7” mFë}²sí59ý[7I†n,âÑÄÈ«X|0—àHÚ%^ƒ9}x;»ÌÖe‰“rñ ÇITŒ(yØ— ïïp;–œ‡É„¼³¯ô -Š=ç1EÈp’¶Œ;co@éϘø„ÅÖ¼=šGNÈØ>ñ”¬úpóL¦Ý©¾È³$z/´?ôÊÀ‰ºŠ%õ1šä÷ i<‰/X묃 ƒc¸ùˆ•×î\ñÌM€=¹ô\¡æøQ$ʨ"ò-(—¸¬8{c—×Ag¨|+^ÙáSåÎ=w;Ø+ecö<8x许¨ÊŠJóÍ ÄÄ ;dr~«Ñ‹Ï5•îa† -åì»ßÃagGNP5W±åGûPµñ·ƒ4êá±’ä6ì‰nCê€Tž&Ë°q˜õ‚ò¨üLœ$ËùLôÿ¥pgD|ed2†;òs‘¿?¥ x1ÔÉ=Ødoÿ¢ÂŒÄÎ1|Æð—æ{~_ÀrC=ÔÄ9|Ž¤¢˜ÖâýåÕ²ë+%2­'‘¦–'N­§ÏÉŒ8ôò(A¯«ˆA…¤ýÑW©f““ÿ²zë"¼…c‘a|í>ìPÉMÊÅlDp±n:vz’‚x(:nqãT#ÔüÚöl ~N!î0o¡ Š øÂPiò‹-¿×ø ÜK)RÅ¡x/e¤tº°™B1™»¶øKœµôwÜÁŸs2Øùb{*)¡gÙ”½ÝÞ]1ÀGÀaᤠ‹ ‹GvÛ]ÝT«kr5€ß¶Ìþ0„ó"y»…v<0~M²!Å¢‚{0yoqwœÉéø;UyŠº½“QT`@LÛqûp¨›áš‹·Ï"kÞª¸YqÞlL.äW]qü œÎþ\M'ÚX3÷C9ø—]~õÏòÆß,º,±yn¢I9õh -ëØE†±ÃœÙ“=©ƒ¸>ÍÍH6ÙüÿpÏ¢aendstream +xÚ¥ÙnãFòÝ_¡·Ð€ÕÓ/ì“3ñLìx²/v$´DYL$R){”¯ßºš¢$:“ìÀ0ºX}UWU×Õ2 f'*Ém>Is¯bmâÉl}¡'OÐ÷þÂȘi4ŽúöáâÍ;—Nr•'6™<,keJg™™<ÌŠeÕ%¬ £·ïÞݾÿ÷ýõe꣇Ûw—SëèÝí?ozýáÃõýåÔd±‰Þ~ýãÃÍ=w%²Æ··wß1&çæ•EïoÞÝÜßܽ½¹üåᇋ›‡þ,Ãóíð ¿_üô‹žÌáØ?\håò,ž¼À‡V&Ïíd}ác§bï\À¬.>]ü«_pÐKSÇøçm¦â$Èf¹Š÷¯ïË{hØW@›8¥ 0úxßifT’¤(íUžÔ %ÅX­rXh’ƹJœu$•¶Û="kÞ¼Äap’©Ô[Ü]/]ÊcJ¢?šºd\ÕJ_µ®VÅ–»»†‘…ô­Šçò0ñ +Á<*?ÏÊMÇ#ºe!PÕñÀí¥É¢r³ªfEWÊM½Ú#­@ÕԕDZ%òº%¬îlÝ}Â6“ɳ†ÚyËÍ‚; þ\mWnÅÇAlU¶˜Ïè×/ë®âµóP}}>žÒ†C|m¢"LµZGuÓ –¿Û®¨çgúÛ–Ô +Pp@º¿Ç—=ITf³T.0.6W³¦^ŒÜu0)Ø +ú윋–•¬¿k‹'¡Px”©µ`<µOŽ9M*íàž¡¬Aaæ$D@²¨Ë€Tŧݖ”ª»àâœ9ƒý¬}åÜ´»Í¦Ùví¨˜qï,aA >cédq„ZÖ1€{)ö—Æ2Ø1Â+8MŠ2Ðl—´,bÖÕg¼‚v œxIûÁ2âçE,q/:ÂW ü]êÉ@tï+4ŽV^V£ê>P`§ñ¶ÊR Öö±6ªPØça#ö œ›že–Í 3ÿ0áˆQ½£DhY´ °˜FHýÔþp®xpçiÝ9Òi\T¬VÜ/.Î÷1ƒ²lÏÂŽ<¢:„Fè)Vm3&Uö,äéÄã-y³¡ïkÅþê^ÉgŠu¦XŸéϼ£Îzï {GˆR‚ÈOê,øIì“Á7|£4ßqlEä3vG:„+:„Am³Ú¡}ígPW ­K£§ê-‚óÝÂq q;ô„ž})6¡T³…}øM> ' i4n×-›m…AÃsÆ0GoÛ;öó xÞã t>8ŒDA§„1ìêõ?蜖­2LÙl«g -`JÙ½4Ûßøc×NÇÃ\?I¢ûwoMn2þ¸]€aÀž;IdОêcÅð%}|$½ +$lœÎÝ÷ QF«ªž"ªØnŠž;^Ûˆ§Ð*ÉX`ü@Áß$ 'þ[dÊm]¬x”°”–&¢€äLJvÿa³ã€æXÖt[ú‹ |qc|@¬cê43ó™WYâ’É0ŸùÊÉk’hv2×$û‹öS^K¼\ê”Ï8‰I¼ˆM.žøÂ&“%Ä/àÇK±È2MUªaTŸ{yŸG?[ëyŠ¤ˆD=ÂþB?Ž-ÞN/†¿éúB{¢ŸŒ¬Iš8¼CýBy´)Ç"ÖÌ`&¬‰£Ç¢­àbO-ø­k9—ž ÔƇc‘•>?»u*= ‚¤¨£¬ƒ7 ¨Âën¿)ÇÖO1äu2÷uþºL%ir[²Á¸:°§“³ ù8_âd{‹˜Ý©DÄ©Ui§§^z”Œž³,“… Þ}ŒÀÑ~.V©õÙñyð>„ðNA¨~ƶ+‰½–Õ mGk„ž¡b³¡H lèßwå¶*%Æ7&6Y{|ËÑšt÷šqqC\¼ ›-x³}³cà¥à¤Œí£oɪ7ϦƟV™*qed¦Öç’¬‡QΖEýtSÂðÇÍ*8Â0¹9ŸVÀùæÜñÈMš||ªPcüÈ•¶:ïùÖ(¯|šŸž‰âBë-d_±Ïì!éÃüÎzîv°½È¶íØóà䮡áN•Ö›ˆÉvÈâÄ@?W³’ga¸P\iÒã®ãÚ +Ë !2[&‘(Ç$¡r“HìNPÈ QoRVxZ!·&Æz Õ§Á6lF½ •Õû3q’,Cô3Ðÿ×Cža$ñ•ÑÉ!äI 8Õ¿EÉ„Wà ý>w_¨3ÃTû¤Ä"ðÝëÌÄ:ƒE‡ª«ˆwðÁ¥1Øÿ[–DÓV +e40Ä›¸„´}É“r>@ì8„Ç… +Æ J}ô‚ªÑ4î?¬à&1Зî +¬O¼Û šÛ˜KÚˆà’Ýpîð$9ñ(Œh¸E©Rhr¦öt~ä¾ôTaöB+@uð†¡Þ”Dë¦í’Š“”ªqpq1)nœ„ü ¡>¥›º8eŽý ·Aðc…qä»_l%e­¤ Ð3[­ º½»b€€ÓÂI[-ÎlÖ›jUΧäl1/Ån5J‘dGF²#380~ r"Í¢‚'`ôÞ"uœÏÁ\®!æ´fèöNfQ™1uÃíã®ZuS.ដPH§#;¾j8wò«nùÁld"˜ÄþÃŒ× ‡5™Ò‰{å*ƒNï ‡Ãü2Ó©0aU>Q}xžNLˆ“CV•÷6„Ý´BË¥„Ø9Û¨¬CÑ„LuP&è9ÝŽUìd1vÚ°x½Øm·½„¸aÖ?²üùúX|QPOûúèíÇWÜuwó€ï–W\ýûxÿ]’â¾ë:<ñÔí MÈ¢±T(«‡ \=Ã¥<"a¼ÞìºñØŒ#·ò3¾²Qý²ÆâƒÏ{`‹ôÖGñ`Ögÿ{Æ·Êà¬@SŒ@Çžï˜ò‚ªó&·ä§Mÿ~÷ñÃõíb4K¡ySÊzs 9œÎ ˆRÆ>"¡ ‹£ÊÏÄ{ëY%×±ñÎñ#âÒq—ê´x¸*‹AÈwôµzŽù‹J WÀÄ.øE*¶:"[/ˆ¸ÀEÜŽƒ’ÈøƒNP4 Ñ8é8‰ ›žæ°_[†ûëlÅÁüžÑ¿ø.sâ<>~–ÿ¿&2€• "?0«\‚ +¯ùg¯ú6Í hsn‚¿W€Ø'=ü,⸀ ?90>Uij’þglXPP ·™œÉˆBhÜF´ð}¤drV¹oZ†Ù%#DµI8o—¿eÀ¢Y­š¾pš2ul nÈÝÒ5ÑäÎO»¬Â®|õГ³2úü:@f )¯ õ +p#fݩ̧!ßAÓ9^*5©Êµ ·TÐ,ÇBMå!4œhL=XZŸÛ“ò@Höà;|<Å$@÷ÞE÷ý³f+·¬;+tŠÕx.Zé[¿Š•&€ô v7så]œõb92€:Ü[–mÕ¼– æ.ÔDrøh^IK¯Â öOìá½¾B¹&ô<4“·ù¯·ßÈ’?rǯl–q)a?’p6ºíŽ 8ÿ1@»,®tg*ÏO“Ö#ÒPG‹GtqdÕŸ‹mÕ¯F…Ü·]¹n¹ßâååÒáO!vX£é2‚Þ2©r7>Çn†o¶T+—•9¢†9ølƒ-þ&bê‘0¿•û—ÁÏþÜ!|ÿiì@Æ)ÿ .Dú(µõ}ÝÔûõ‰Ê±.¨×~ëä¨6öË$øõï ?ƒç²ÌŒáQ4M! +ϘÚ3ÊVÖ!>'ýlßEendstream endobj -1356 0 obj << +1361 0 obj << /Type /Page -/Contents 1357 0 R -/Resources 1355 0 R +/Contents 1362 0 R +/Resources 1360 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1338 0 R +/Parent 1339 0 R >> endobj -1358 0 obj << -/D [1356 0 R /XYZ 85.0394 794.5015 null] +1363 0 obj << +/D [1361 0 R /XYZ 56.6929 794.5015 null] >> endobj -1355 0 obj << +462 0 obj << +/D [1361 0 R /XYZ 56.6929 167.2075 null] +>> endobj +1364 0 obj << +/D [1361 0 R /XYZ 56.6929 139.8789 null] +>> endobj +1360 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1361 0 obj << -/Length 3077 +1367 0 obj << +/Length 3031 /Filter /FlateDecode >> stream -xÚµZKsã6¾ûWèº*Bð" ‰=q*cg=NÕî&9Ðe1‘HE¤ìñþúíFƒ_¢&›Ùr¹Í~ ?4€n‰‡?1 #Yig±Õ,ä"œ-¶|ö cï/„§™×Dó6Õ·ßܨxf™d4{\µxƳÇå/AÄ$»[‚Ù?\p¦¬ g¯ð™°Vζ:T,ÔJÕ=›‹ÿh¶Fݧcó§¥aad¡%01‘9-—dpë›F±ÈD}±s#XÅЈŒfJèøèÛò‰Wh%gqhY¤¤r>Y¦›ô9©²"Ÿùæ çè›;~&8°Æ‚,üàq•8±2¨Ÿ‡2]R«*è™æ«b)L°H±CÕ:¥‘¾8×YVIuðÌŠ•gž¯öIYí/MpXTÇ-Eí@ ˜:fÃP:}þSä)~ËEð+yz)ö ‘V">|MCw׈ -÷ƃû‡÷@+]åoÔäåkº§ÎjTÔ›yî¤Â"Í^@„³:_³j]ª1Å’ür®t¤Ÿv›l‘Uøf˜×›mÛ½Çiñ£þéæ ’ÈÙgÕõ—é¢&6 ÃfCÝO½¢eW‘æI…J +ƒ¤Ä§ -îþùÝý‡«Û;FÝäYl-‹Ô“äEå¿ÙíÐ]ØD/ã˜S;Ð5UúÉͽ n#ÓRÂ|m–´4wl<¥ôD)YêG M<ؤɊZÎ׌0ÚvOÆyP[ÅD¨¤ÇôgD9…ð î¯pÖV0ÑÔåf;¬Aâé˜@¥±g床-}ä—ÁÜMļÚñÎkâH–À“õ#”†õl"ÍÚ ûïÅ -ÍA …³ù1HzðMhÃnÐûŸ>ªÕ ˜ Ý¡Rà“V¬ÄL¦ ÄÕy†,4*jœ#›N$“ZÛfÓ‘šI(‡Õün“”å A2d:Žµrѹ¯JjçÉÖ÷n“7j;DY²Ùø÷'O°*6›â•ôúÑ„ ÔÁ-Ü®†CÔÌj©´yPîÒEö+ç2]º8&=õp9¨&Eäá}{7Ö3:= †Në—ˆ™å2®YåUºÏÓj„¡Ž™‘<>2_ì5DZmeØ]£´{€áeyئK˜%x³»ðf|Qìý*ó±Õ¤ø°öQã6 -jm“ß}”ķ‡ERú°á…aÒÆQãæ“¡ÉÃzöÖi™Ëƒ•eÜ*ãɼç”ÔNu|"^–ÔtJcÃí -Hƒ[ä¶ùÐQ¦û— ÷KG~Œ"ðöáöñ+Ïò'øÂt\Á,ä ‰” n«®´3c c©’!Dߤµ•ÎC쵺癶jˆÑä ·8Õ_’}V¸½ùVV鶤‘eR%O8Ñ€M;cyX¬ýçž´ÙÓ(žÉŽÃ®&ßí3„–çœäKú¦,èYä`¢V‚&öü‘¾½Rt]žß¾ÿ8¶4Ó:¬ý×à‘å[^äoÛä ¥yý}QW°\×îaBt64D÷—tSì¶i^ш“Ïwë¤(a=ႆ-5¡Þ¯îè»MSU,Š -Ú›¹ã”)­èØfK1Ç£…þívgA1„_{}€Ë‘ͺޗ[¡‡:ðÜs\…Ãù‡­.äõÔÂñý~ÌJ2›¨½€üæÞ ës‘Ù˜(šÁ!v ·»òÝ› Ý»˜\Žû‚Åb¢†u.ǯ7žhÞ¦:½Ó4TîÀ‡!þÏVo}á­Ð'¥7T#â;ÈÄ )»â?¦i/..Ór±Ïv~!S@N¯—ºöU߈žd ÊèzÍä};KLÆJtì¤ÁýóŒí­½¦?cñ/™¼8‡xÓ}•à€–gßPQdÈ a'ÁÆ-SÓ`kQM€­¦:úéÏCºÁšd\i;-¼¡‘ÞÅàCDª+þK‚­1¢58P¨æä1†5Åx$⎓Xóôg,òý|¬iËb-äôÔ7Tgr›ÄšŠá@ëhkmªÓXk¨ŽnªöpõY¥ûÜ$‡è,Âiù Õˆ¸a¬ú|I¸µíè Àúت“ˆƒ“ ‹Cm;¦N ®¡?côïç#.Š™VZMÏ~CuN‘·iÄig~ŸA\‹jq5ÕÑS‡œXÒax§òHOKo¨FÄwññÜÄqWþßÛíàíhEm’®Åéø‡(Îuwš§â[MÆä!ß¿°—Z-¦ç¾¡:£ÈÛ4Ú¦N=ƒ¶ÕÚj*”HšïŠM¶ÙM!Ç¡ßPÈïÂMÃJUWÍñº{ ùUJý3…„à£:êÞvŠ#½{ „¿O#û>T0UÎpmM§‚XMÆ´!ßQXÁ ae Óy§ç¸¡:§È€Û$¬¤1L‰HLêMuV UùÏáÆõšì—Yþ<X, p5­HC5¢I`q^h›õÿ‰g=ƒF¡5§c›ædØ1z„ ýó‡|?;¶éÈÂCØi?4Tçp›!\¬x¤Ô¶¨&@XS‘ÏÊâÔ”‡ÌjØú&…7T#Ò».çl ýžj<ÒÛ4É+«Ã†Þ³1¸Á%¯u»Â±Ïmѧ.•Ùf²ÛgÛ„®r£½ö[· ˆÙcn VÒÛ _èRµеÛ`ž[IþFÛŸ|ÇrI~(Ë´¤ï:*¤qª!Ä$œº$l -MHë,þ"†5êúŠIVW^½b_QË°ñ”öt¡B!MLC(DØ+þ¸4În -ÈQWGLÅ2ü,mC —Ĩֶ5G$Á¥€Só¥ï!Ç™z¥jg Hœ‡ÉhŽ9I3DV³VÉaS“®h4T£Ù=Ø­#¬u‹§Ó–B@Ô¡îen›jb'Ö´Ó·euxêT}Í¡Ù½ÖíúC³c¦Û]]XÀÕr2” ¸:YcÍt(oSå •K®ÓÅs\åð2@àá Õˆôî!•’TO<•f”¶¾èEõκϗ|Ù{<úª}F%T^/r –${×@è–´¢~—öÇFù–WÉ'uðÁÒ}•d^ì²ØR[S¼òõX:h¸àK­Ç‚ª(ÀÕ¹q_Á ˆý¦ð«]ë¿+ò²¦ëU{¡§U§7²yZ½û?ÜU á »«^°’Ò(°XøR§ˆWqêÇ–o»Ôã÷¦®Ûu EŒÃ1¬Þ=ÈöѼ…˜èÉêStOŠÝU1²mcÒ@Ô‡½U’mÆŽ„°%ZÑŠ¥§U— y‰´Ü$/c×g²X)õ5‡ól>&HÁ¥E5?µî1s%£3é·6Õĺ¯©Žë~û©/ØZf°È2)¸&Üý‘Æd«èJþ2i·¶þý 6d‘n*@#)7¥;6N¥@jú3æùžº&ˆÁ]¾€-ùÌ´7Tgr›Ä˜ Y«3[K‹è4Âj¢£ƒàŒ»\Àn˜ß…Ë“²kš¡ìîOS»Z¿ÌÕthBOv Þ´æt1Ïg1Vó[L%Ejòi‹\?fø›ˆo“ÓÞÑ¢ÏkcpwÁ@0 ±#Íįpˆæè,ð?»_g ¤<œ’\“ $wñÅ™4‘j‹þ’ðêÐÇ—`‚O«àÌ".LËÈɧž´·Ïó/€ FŒPS3ÞÐL«Ðã4Ž¬:é -G€ñ,üûSÎßþîñÊ:†hcN”ëß”y¥PñX× JÁñh¨úL§®endstream +xÚµ[Ksã6¾ûW¨ö²rU„àE8:OÖ©ÄÎzœÃn’%Ñc–%R!©qœ_¿ 6$:oM¹Ñ|h [PøÇ*"Th¹H´$eÑb³¿ ‹ÏÐöݳ˜UZõQß<\|ýQ$ MtÌãÅÃc¯/E¨Rlñ°ýeùá_W?=\ß_®xD—1¹\E1]~ssû-Öhüùpwûñ滟ï¯.¹|¸¹»Åêûë×÷×·®/WLE Þ綇3/|¼ùáKßÝ_ýøãÕýåoß_\?8[úö2*Œ!¿_üò]lÁìï/(ZE‹x „iÍû  I!ºšÝŧ‹»{­í«Sþ‹„"‘âÉ„¹˜r`¤I, É8ðª(›§¬«T´üñæÁär›}ÉvåaŸ ¶ä5þ~xJ˺Ț¯àQ‹eŠµ?\Ýâ{‡ê’©eÙ”›r‡M›¶&K›lk{* +R±bŸoWL'´ßK&—ÿ- Û²M›Á¥Õ0·úlÒÂø°bŒè(â­5ë ‡§>d›üWJy+*^òæ KF.¼ äÒ=ßhp3UÐ%ÕÝ'yœˆDŵ٥5èŒ0Öƒ­ˆRq¼X‰„…Ž6äâ’ॴ³º;4yYÔ#*QB#`yœ0qyfêXЪ‘g#ïPF¡t·+_V0üùãëP8“ŒH•ÌHw¨ ñ}¿1«üOYv‘¶°ÍêM•·îÀŠòq½:!”KmGahÅ@t¤ˆ Áy14T0Ab¦cÏPl¬>/°pß3ÙágL÷‹&oNÆB0pÌH%T®õŒïjN‘QoFr–mMÌâ¶õP¶u¨Ó8ý~̪ ²N1îPÒ}²EÐ +ÑÐÿždsF ¹–%@ðy®Át¡'¹fñ3û};׳–&qØõ5§È¨·0ר†%O%3\ë¡\ëP§ajª´¨aiÑMÎUX|šï‘-’„S-|ùlÊ#[ߊð8&q²ÏòƒN” ÏÒß:üŒÑã~ßÎ7‘DÑç;Ôœ"£Þ‚|‹ =E4÷>ê<ßê4RÇìW²1Û E\‡¥;Ô„xŸo0±„ä¾ü÷äÛÉŠ!Û8Q$Ÿg˜ïæ Û,~Æäq¿a%5oÐ8ì{‡šSdÔ[˜m°éQ „0Ûz¨Û:”‘ˆ#´:”»|3±–*Â8—añ5!ߧ›0ǘÄWà“Û\×èÿ~…?åûÃÎ’Æ舻|þ¹UÜ ðÙZÀ/ÂjG["Ç0†s‘€¸¯iˆV~Æ´q¿“´‚ûˆV’ÃLŠ°jF‘qoaZ1ˆyTÏѪ‡ +ЪC §ÿ +Î[/iµÍ‹ÏC=8¿Áf>¬ˆCMhÒ7žÓˆØ7ëÿÏ iÎiÅÎÆ6)¨9FhÏè ~Æüq¿oŽmŒ™’áqp¨9EF½I(•$@W&auž„…cV—玤¶ZZÎw¨ éÞ Øß%Ñ@ü]±{·s½Ügidy<îð9Ÿâ˜£YÚœ=ƒÂvIGIw†h3)Ðc +ƒü%Ã2¦7 Ð¬ÃcÌÖÖøkÌ4ØÔXƒ¯[Ä.¯Û„’)éÞÖÖYõ%«¬€_iDmj _M‹A'‡*ߧx’3»ÔÞÚŠÙÅ} +b*è‰Á’[; €}HÑ™U‡Ý±ÆRZ¼báæ'[±Ýâ8ÔuVã{^‚Ê`ÚÕ˜b¶]<ŠO1Í›£Y XÙ@M*S%Ë+«^Y5XÚ§V½u6Ðå’-At¸6]‘?ö˜E3ÞÍ€yêÂ&½IÛˆÁãNÛžPBSvƒZlm œêf²y潤̎¤a4šš”¤e‚3AÁòò˜wô[aï3•ÜÓŠÄ&Oë9fÆRFÉ~€Èp,x±ž1˜,fs\cÉЬ¶›¤‡Ó¢hµ6]¯nÉÌö‡æ‹f¶œå°G±3±¼‡ +ÄòÕæGŸ²ÍóÊÌÎz¼K$VzF¸CMH÷3>0$&Nyâ0ÔH#vß ¬›Lݱn'žqX‰5–}M•oÛ‚“\ƒ%iáº%– &ŠÅ¤-9S¿MúV¶ 2ïeU“æVò¶ÜcYbȪ­B…‹? —ƒX‹ñ€"^š ºkß‚ûuiL¸n Ö‚CYÔ®þ·Xóˆú=>¡‰P(²æ¥¬žÛë…3Õ§‰_Ò*w +l6eÛS»¥Â¾Ê©ŒüŸ.Ïݼ2Káe51µâ˜PØŠu Ú>™…×-¬£Ý¢?1&Vî„Hq¶Ç4ßMm aUÔ¬NÏ«ÎA'%ºµ¯Þ¥_¦ŽÐöVBˆwÔö´Å” ~ÒüÌÔþ…á‰ÂœŸösšôû?F3žÃ‰S'<$ÓaFBýœIÍ-LOêûúºWÖˆÄÒíôÆîP=óLJ:ìóÜÑ€ŽÌ°r%L‹¯&¨Â°§0›˜†=a3|ê¡ŒêP§q=ívG¸³" «k…å;Ô„þœ×‡•ò5xO~õíO¸Ébªó)6iNÕ”{¦†r!~Æèq¿o暤&{¡“°÷jF‘qoAÆÁ8Rr†q}ÔyÆ9Ôi¤ò¢É>Wy3>ŠÂ´ˆá¤VÀ¡&4ð)§Ìu¼òUxOÊy† 9Ç£<À9‘ÀÁH ÏÖç:üŒÕã~ÿç$‰y’„ÝïP3ŠŒ{ s.SÆg8×C8סNCUçëÝDÖ­½A—°èÅ;Ô„|ŸqŒH®µ¯Àû\‘ŽÌ^#¢´ÖkóÁ ÷- ^#XüŒÍã~ß¾žjJ8çaßw 95†}…Éf>$jŽl=T€lªÝ{f•9¯®ê2]5Ínà(ŒSajBŸnКæ«ð>t›0dH8E„ \’ÂqBr¥=SƒñÍâgŒ÷ûøfîW• {ß¡æõ¤Ó“h&ÐG§œCõ®­0><×Ï#ÎÅ ‹g4p¨ <Î%”$:èð>‹ê”%ÃOíà'ÏŽLZ/é«7w«eñ3fû}ûª +§/Å:쇚QdÜ[˜u°,DŒÏ±®‡ +°®C‰æÂuZ¯å¹„˜‡« d‡ší±k¢bˆæžìöž´ÍSÊ.™$t›Á*LÑ“ŽØ^bíÚ¢l¦JÚ¼ ÔMYaÚÅu,i—Š†vÓa›ý¥]&Ǽszå±4Wc^S_1B™EÜψ÷ý9ºÌ‚8㾡|Î^_l†¤ð3oæ6£~'šaŸ«ejSü1 K,µ>ÀËSÞdõ!Ýd«m¶Ë÷¹}5YvRLzxk14˜„YÕõ3Ðe›M¾²·Vo/må®·ubƒNÕVÃ@~…©â6 hêÚÔ¿)ÔÇuý~ÄïguOK‹s÷âðpHëvŒÛðùh¾ÀíÔ(ÃêØæu6•†ycî±ÿ’¾¾žÝØhY£æI²KìuB5á4Il +Ö $륵à¡KkA<õ¾.Œv«TëæÓ7iJ¹›4ó ²Ý×Þгþç%[ÖX.R{½f$«}¶/«W|D/lWë] +¼ÁÇNSkY{õ–Ø$2÷&i +³NNÙ t{x}·7é³u’7 oámë½¢rù%Ý1Ó*NT1 ‡²6[ë ›òG¬M·ÛÜøt‡õý€"—Û*··bÐôd2“mõ:Ë +¬ƒú3¦‡¥áI‰µ6`I{«f>„o³Ãlù©Ü8†±¡NOß~8¡'Û³Žt›Ýq;ý]6¾š›Xµ>ž–,(wW&E6Ñeg@ŸÓëW/£JÎ}©/""§ïàÏŽäßþŠÿô_¤ù üìVͤ?¸I RÆ©‰jî>÷«þ?.1Š\endstream endobj -1360 0 obj << -/Type /Page -/Contents 1361 0 R -/Resources 1359 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1338 0 R -/Annots [ 1365 0 R 1366 0 R 1367 0 R 1368 0 R 1369 0 R 1370 0 R 1371 0 R 1372 0 R 1373 0 R ] ->> endobj -1365 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [284.2769 435.7745 352.9489 447.8341] -/Subtype /Link -/A << /S /GoTo /D (access_control) >> ->> endobj 1366 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [282.0654 405.5217 350.7374 417.5813] -/Subtype /Link -/A << /S /GoTo /D (access_control) >> ->> endobj -1367 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [299.7586 375.2689 368.4306 387.3285] -/Subtype /Link -/A << /S /GoTo /D (access_control) >> ->> endobj -1368 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.0084 345.016 360.6804 357.0757] -/Subtype /Link -/A << /S /GoTo /D (access_control) >> ->> endobj -1369 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [330.7921 314.7632 399.4641 326.8228] -/Subtype /Link -/A << /S /GoTo /D (dynamic_update_policies) >> +/Type /Page +/Contents 1367 0 R +/Resources 1365 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1382 0 R +/Annots [ 1370 0 R 1371 0 R 1372 0 R 1373 0 R 1374 0 R 1375 0 R 1376 0 R 1377 0 R 1378 0 R 1379 0 R 1380 0 R 1381 0 R ] >> endobj 1370 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [401.5962 284.5104 470.2682 296.57] +/Rect [312.6233 667.7189 381.2953 679.7785] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj 1371 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [257.6971 122.0209 326.3691 134.0806] +/Rect [310.4119 636.5559 379.0839 648.6156] /Subtype /Link -/A << /S /GoTo /D (boolean_options) >> +/A << /S /GoTo /D (access_control) >> >> endobj 1372 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.7975 91.7681 379.4695 103.8277] +/Rect [328.1051 605.393 396.7771 617.4526] /Subtype /Link -/A << /S /GoTo /D (boolean_options) >> +/A << /S /GoTo /D (access_control) >> >> endobj 1373 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [308.6055 61.5153 377.2775 73.5749] +/Rect [320.3548 574.23 389.0268 586.2897] +/Subtype /Link +/A << /S /GoTo /D (access_control) >> +>> endobj +1374 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [359.1386 543.0671 427.8106 555.1267] +/Subtype /Link +/A << /S /GoTo /D (dynamic_update_policies) >> +>> endobj +1375 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [429.9426 511.9042 498.6146 523.9638] +/Subtype /Link +/A << /S /GoTo /D (access_control) >> +>> endobj +1376 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [286.0435 346.6843 354.7155 358.744] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -1362 0 obj << -/D [1360 0 R /XYZ 56.6929 794.5015 null] ->> endobj -462 0 obj << -/D [1360 0 R /XYZ 56.6929 639.5425 null] ->> endobj -1363 0 obj << -/D [1360 0 R /XYZ 56.6929 613.8858 null] ->> endobj -466 0 obj << -/D [1360 0 R /XYZ 56.6929 492.501 null] ->> endobj -1364 0 obj << -/D [1360 0 R /XYZ 56.6929 467.2627 null] ->> endobj -1359 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1376 0 obj << -/Length 3026 -/Filter /FlateDecode ->> -stream -xÚµ[[oã6~ϯ0úR¨¹â|œ¶™nŠíÌn&Å.ÐöA±åD,¹–Ó8R’âžüÏC´ +†TSˆ2:Ï4J`(ݵ3F´[<šõOÐLCÀËSÞdõ1Ýf›]Vä‡ÜU®ƒ”ÚẌ·~Nr -ó tÙee“oŒ@i¯··“XõÍ—3PŠhéƒ4. e»a!¿‚ù½NËëKËWרÏuöÛĸçVKsö»‡cZÛ5¶=Àãù35ª¸:~øÁ® ¬BÏž‘×M(È}HHÝÇKúêµ!®ñÀÖGËj5/’M78µBa»æ6€] -Â0DÙ}z.÷D°äxÚ9Ÿ ¢8‘ž<_œš/&(f¶ìGúÊÌGCõ3ë/¯ñºví2mò^|^nÙ¡:½ºGç…Ýæ¡H!€7î1hê-Cfa%XÛùz&X•9Uãh¤!¬j“owÝÞ¤ÏÞI½ôÖ{p¯Ýàlý1-ÎF¥ôB3p¬j“Ngn(ß»Þt·ËM€O ×ß (l½;#N~¶§ô£ï~ȲÒõAvþlwôO*×ë[×Ù ¾o -3[¬áõ‡ê0ɱ:=‹À ôb{H·-λ@Á—¼y’+7±êá|9² í¥ q£)ƒ]N?¼†ÞRoöäá渠:~òtQó'O‹²‘2‡E<ŽÎÌ ªJ—Û¢&÷ÎU¦LíIþ<9õEÿQõ„¨9âær"Ä ÷ê™ÉmZü‚±ãy?=&a®¼Þ¢ÏÍm˜RH(†ã ë¢æÖ¢ì -eEö˜ë7UY¼Žk74Qù4!¿G4û\&\|×Âœ–4}4m¾¶ªØÞôx,rwˆ -<‰õSîŽDM©ÉùÁµL -cÎqÆäúvïG3‡Æç¡PÜ0,<_³z‚±X" IÄåØ0¡6GéU f¸ ÊÈzÉ‹ÂQÔ^s°š%Z Œ¤íášúàg‚´ýô1,AÑM|9~‡ËÙž­®e”›çƒ²ˆ%ãë " (cäœ/éi7NŸ1âë¸à5!¹Ÿ> Ä9¥}Ñï­(åëC––­îÏ…?¤ö®ßQ¼M}œoµëJ݇Óߦ^þ d6»´G³ Bp7’‰ÙHØ\ÃxD¡•Øƒì‘ídnSÈÙ½¬VÅ¢ªž!œ:½+7¸OóÂqŠhŒ0ŸϩtߘŒ€HàÁéÕæëDbÏW™ŒŒ3ƒnWÁàcÖ4íWÊÊu¦eýâÎr“Õƒõ5ôõi‚L4Ó.¼Â`î¿hÃ@L>k;Ú" è`3+@¤îÑËV¦+ˆ&¨D¹F’â)Ò‰(£Ë Ä)m˜vÕÄÌÄ`g”>tvLs\ïØ]›,Ú¹—ýqI$ËÝ`¬uÉ“lÎ4•Æ:?qWŸÏÓ’)D HY e¡e@Ù´ë÷½Õf3w¹!áHŽ‹oQò‡—"]_ÿ^kbÏ8 Ç¥»£ÀšY’˜W”™–r†Áæ±—"æÁúÜŒ–é!s]†L!hœ h¥>É3Ø¢zt#?'<ùµ:Ÿ î& )ü¬vÝMçîä[¯¬½¾sì‚NR.a×R -Ûÿ½½C® ö@mù­{Ðî#,]Uos³´qíl[ d j}Þ6Ã/8ûM—ÝL—!¼ö:\°Î Ø -Ç8³ÒÓ†%r› Óî…A‚ë¨QØ]¾·ç€_Ëb1‹²b¦o¼1®Ì˜ÛwÎ’ÙC4EŒ²…xÞEÍoœÕÛ8Íá¸ñî½`3¯É‚-jB‹žÛ §Á’Ôh·‹A>””»jkoBYuj¶PÙ^Þ¶*sK“õmKÄÝTÏ{ZH¾ØÂÕkñt@YyâŽ*`ˆ"Œ‰¸à5!¹œ(Ä$®û¢ßøÜC…}¤HçJµ›êËÚ=:xÞÖRZÙŒÄ~úcw—•¦8I¸¯|îÏjOóõ0jè>'ÃÞ|¸ &H­3Ûª5²24½QÁ%'l´Q] 0§•e¿Ûê–$¦`Û¦á'T\½µÆL"!X˜þÖ&I¼&ЗSßDÁ‰¹4‚èÌ© s95a‡ MÊ׈sl6k±Àæ*Âæ€rvþ¾±GÑ>óñ#?d›ñí6ï;ˆ`qMZÔ„*=z+XËDª¾.Ÿç5VÌ¢Z *¥œ¥bZ‘žÑ±×Y¿`þxÞ¹+9zÅMØ£ëТϽòÁ ·¢záR±‹šga‹š\³|WL³²fóú-ªI‹šP¥ÏBSÂ2ôtù<׌1‹†,¤H$ŠDX!ÇÔN]k¢,ôøóÇó~: äÎT‰ø:´¨EƳÅYÈ!cÉÂÅcaa@ÍGŽêÜŒh¨b‚‹¸*-jB—> 5‚”@÷•ù›hØ5i¨Gç4‘ß-i¸¼gvŒˆ¿à€ñ¼ŸND#K @ jŒæŠ³€£¤#qvPÔ|ä˜d!FB‹UZÔ„.} -$ÌO,zÊüMGrפa44ß±Ÿ˜hN“¼gu”„¿`ÿxÞ?AÂO_‡ZPc4W”„À$‘qv@ó w Õ˜«ŒQC@3N£B[ÐXjÿŸ4¤=±Ÿ‡kå‡ u­bþý(‘\uí‹½Þ ð¸¥£YÿÄË=p%_ðw Šk1š+þ«%Ž(Y8^/˜È/–æ²*æ7.éëÔ½„¦šÆ䶘‘àá„&‰èJþœ¬ºè?Ì¢:™wLa[pBUÇÄXÈ -許Ã9g‰ÅÇ %Cœˆ˜Ã[L\‡ÁLÓ´ -½™_ OHƒ?Eð—è~ù_PÏC5s{EÑ2(e—t¨9§ -qEä„êÿŸÉVrendstream -endobj -1375 0 obj << -/Type /Page -/Contents 1376 0 R -/Resources 1374 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1388 0 R -/Annots [ 1378 0 R 1379 0 R 1380 0 R 1381 0 R 1382 0 R 1383 0 R 1384 0 R 1385 0 R 1386 0 R 1387 0 R ] +1377 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.144 315.5214 407.816 327.581] +/Subtype /Link +/A << /S /GoTo /D (boolean_options) >> >> endobj 1378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [322.5463 736.902 391.2183 748.9617] +/Rect [336.952 284.3584 405.624 296.4181] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1379 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [331.4327 706.0223 400.1047 718.082] +/Rect [322.5463 253.1955 391.2183 265.2551] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1380 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [361.2812 675.1426 429.9532 687.2022] +/Rect [331.4327 222.0326 400.1047 234.0922] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj 1381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.4835 515.7582 328.1555 527.8178] +/Rect [361.2812 190.8696 429.9532 202.9292] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -1382 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [387.5019 215.9139 456.1739 227.9736] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> +1368 0 obj << +/D [1366 0 R /XYZ 85.0394 794.5015 null] >> endobj -1383 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [381.9629 185.0342 450.6349 197.0938] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> +466 0 obj << +/D [1366 0 R /XYZ 85.0394 726.6924 null] >> endobj -1384 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.5803 154.1545 467.2523 166.2141] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> +1369 0 obj << +/D [1366 0 R /XYZ 85.0394 700.1172 null] +>> endobj +1365 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F48 885 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 1385 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [393.0412 123.2747 461.7132 135.3344] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> ->> endobj -1386 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [255.0796 92.395 323.7516 104.4547] -/Subtype /Link -/A << /S /GoTo /D (boolean_options) >> +/Length 2958 +/Filter /FlateDecode +>> +stream +xÚµ[ÛrÜ6}×WÌÛŽª2X\ àÑqd¯R;++µ[çšáHŒ)rv.R”¯ßÆuxí].×€À!º8ÝY`øG"C™¦z!5G±X?^àÅ=´½½ ³ + UõýíÅßß0¹ÐHg4[Ün[})„•"‹ÛÍ¯Ë Qt =àåë÷ïÞ\¿ýåæÕ¥äËÛë÷ï.WTàå›ë^¹ÒÛ›W?ýôêærE” Ë×ÿxõóíÕkÊ|ß_¿ûÁÕh÷3ÑéÍÕ›«›«w¯¯.»ýñâê6ÚÒ¶—`f ùïů¿áÅÌþñ#¦•X<ÃFDkºx¼à‚!Á 5ÕŇ‹Å[­öÕ±ñãB!Ay#ÉÔL2A’IŽ‘ÄRÆQ¦dl”ÊŒò¦Ì«Ó®o¬ÊÈ¢Ýá@lˆe-±š !@‘ŽØEáÆûøà ›â°Þ—»cÙÔ®¢Ù­z6h‰0å +è*ß“É(bŒ©ƒ•uß> +Â`ìÛª»ÆýýÂnZ¦FüŒ­Ã~±ë³Y†Ö$Cd p_ªÒcQsŠ z3Š ©=s$ÖHÑ9vA ryž¢*îscúª©«—¾pPeœ¦¥GÐP|Û^t”QÖ•k¹¥³åGŒY~oÊbi5±µùnW•ÅÁ=÷ûPÖGÌë«:Ow®ôgS(œËåõÖ·=X";ۄЈp=ÇÄ7d+‘H3HýÝåŠai£öª3Œx'빬*oDuðšß¦ë¼¬Ö +(BÒàz¶×ãþ’¨e‘‹ãa~p¿åÖÿý¯¯÷›RpÐîl:÷}Ùyÿ5ÊMò+Ë2¤5#i‚µQÓ ‹(cÖ¶Ù?çûM_®fˆR!ÒrhDn'~)Dq¦ºrßÛ`L,‹¼.ëûí©2ÏÜŽ§©·³f +nÖLÓƒsS•»§¼™—M±?8LUŽvÉâ–¾Ãc IÏ–àXƒ@î/‰=A˜ôÚ¬óӡ𲢊UÓ|‚8êôn\ã6/+G( +œ0Bº„Ê·ÇbS/ûS&ž¬PÙ7Î4:—‚ÆûâxŒ¯Ô«ÌëÃ3t Ëñw¦"[>?”Õø”)żuàÝt8Ž‚]ZÃ(<7§ÊËÏ«ªyö:¹šºÙ?æ•« +Ãamk\]ð.*)lQ2ƒxï*‹Í4û  +±òŸA î{P‹úfpûÃÊŒ ý‚#h(¹›ÀL® ý[¢9Ø(B¤˜ãæ©ØïËMák|Á°Ù•š­ÞWÍg¨ëR™0¦]\…ÆÒ¿hã@êÆWvź4st(k‡ÈÝ£’Q¦tAjH#&4’4£ž­PÒßMÀH1šÅøl‰kDö¬ËƒÚ‡Ì–eŽæ­Àºqú9Toôgls®Òn‹#göFvŸ"µ íîÁ Àͧ)2m6H3ñ¸šædDÙ­Ö[«Íê.?ƒ¨œ!&˜NK é^b‚ \Ñ®ø_jjW6‹äɲ”hnbjÜ!À””k0ô5–SÛ÷`GÜ´Öùc᪠“ZMPØC´Êý¶Î`«æÞµ|ÄÿÞœöu^A‘„JL+ß«uS¹yåÚ+»ÛÀÚì¨E€—LÈ.µ!2²¼þÏ›äŠþP“¹C T”÷Ç,®Â±' Œq•±«5p6jyZû/8ãM•u£sYzó.˜fî^¼€Ý®¨=óáñ#¥Ü¹Ìëy +9¥(:ø +~åk;«Íïu5»q²bœÏ4=ßñƸSÅ”Ë9K¦}†ÀVÎúL •ð™€êøÌñq·òÃÙè0Š‹%"jD‹nLÏ`œõÔˆ¾ãÂ"õ¦YŸ‹:î›Ö­ô¿çõf2‚—בˆ›)¨ži®`3¯Ot5=ÒeYä‰Û?í‘Ál’rhDng·È‘’šwå¾òÛ œHQXò¶ù©:ºZ¯ØßîÑ‘À“°–ÏÊnBì¯_m7Em#Xø“´tzµ+Žy=´®OÉx.>üÀ¾XjÝuÀ)F0&cý ×/` …½ƒñÜÔ,DÔŒÃÞÒ$„Ã*ã|f'ØF%HP.çt4©‹þ™†›¬ˆJ‹  ±mK•Ù—o‹ý:t;+ߟeØmeYâJ$)´Úª§nð~ÆÖa¿_pƒÇÇJ§Ç<¢æô–¤U⟹Âk£¦éQçZmŠ*ÞàŠ„¦*-=¢FÄwÓ ÉIWþ×YYûVôD›€ªq6Í6ð"%ïšb[ÀϘ<ìw’mb¸Åp€=hrð#jF“aoiº™Ã 3É°6*A·€2w§»OÅ€hæ8»'¥z̈ÐÞñQp8¼w„^›±–<$§ ¤¾ 雌€š˜÷‚òsî+ËúhSæIø|>Tût²¿áâÛ*“ï5eŸv„·Œ¹¶*¾þTìíÇ:?‹´yK@Êû:_ùD Gš³þEï霦.õm~x÷áÃÕkW6}X©ÓÃCŸÝ3µƒ/®t¾[ &ÇoÂ{.eÙ<º§MyødÒ88椡Rû¶&pwÔ¸}9+“Ÿ•6†ánæ;x‚ß»éæ»ÛAÂM×41†cäÌbÜ%ØëA!´:aÚÇr=¼—£æÀNdRz Åw‚%…=G[üõvä m¾‹Pÿ×÷á‡ý“½é…òù»ƒOE± ŸGx{sßTÖ[s™ê¹ ŽØöK†òpþ”Á +Ræ–wýàj×y¿e°¿›Óã®Ø8¶ÃÁCaLz¯­LÿÈE±4w—aqž˜V–½¿hÄE|cS`ÝÏaG’Å¡9_ÉM2Žå ÏDÌ6jšseÍ*ïWOyUnÊãËʤýÓ0ÅmÒ+œ«’jDÔˆý$ ‡šŽ_gC8iÍ0C™æ‰ CJBLl[’LÀxüŒéÃ~?ÅæೂÍP!€fôô•\® xVsù—6*A¾€r>´ŽŠ‡æ´_ﮨ¹d’3JDÔˆݸ§‘=-¾Îq–žéO$ˆ‡•9“Ž¹)âüŒáÃ~?ûÜË$7÷}"=5§È ·$õ`ÃkÔLú¹š&^MÌÕê)P)ĉH+AC-:Äã β£Å7㷥爖 ƒ=e¤mnŠyž6|Ðëçç[0ü0Éá ´ƒ¾’¤ËbtîkÈI|oå0öÆ°:®>'Ú1ˆO„ˆ” +3СK8Ž¸96·”ø:kl”>ã@4Ö‰kðL¸jY›$œG'íî÷ùtã0k°'N }Ä$Uè÷4εŒÈ|Å?" þûƒÙ_þcó_RÀ)E'ò b™‚N¼RFqɇ^‚aógå¡êÿXÔ€9endstream +endobj +1384 0 obj << +/Type /Page +/Contents 1385 0 R +/Resources 1383 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1382 0 R +/Annots [ 1387 0 R 1388 0 R 1389 0 R 1390 0 R 1391 0 R 1392 0 R 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R ] >> endobj 1387 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.5276 61.5153 385.1809 73.5749] +/Rect [231.137 736.902 299.809 748.9617] /Subtype /Link -/A << /S /GoTo /D (tuning) >> +/A << /S /GoTo /D (boolean_options) >> >> endobj -1377 0 obj << -/D [1375 0 R /XYZ 85.0394 794.5015 null] +1388 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [359.1555 437.0578 427.8275 449.1174] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> >> endobj -1374 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R /F39 863 0 R >> -/ProcSet [ /PDF /Text ] +1389 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.6164 406.178 422.2884 418.2377] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> +>> endobj +1390 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [370.2338 375.2983 438.9058 387.358] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> >> endobj 1391 0 obj << -/Length 3018 -/Filter /FlateDecode ->> -stream -xÚµ[Ksã6¾ûWè(WEžX{šL<³Nm&YS{Hr`$ÊfD:$eGùõÛ`ƒŸ Sq*5!~lôãC ÚlEá?¶R‰b¯t,‰¢L­¶Ç+ºz€g¯˜ÃlZЦ‹úæþêëB¯bGÜÜÝ|zsýëýwW7÷Þ–®½Œ -kÈïW?ÿJW;0û»+JDlÔên(aqÌWÇ+©QRˆ¶çpõùê¿^`çióê”ÿ¤2Dq'‘’ñi/3¢–ŒÐ•k¼ÌÙ”—[”õòÓé·/éyhl̈Šøª+o4ªÃL *:ƒÆ‘5Rö½ÍÁÙàvh™¯àjغ~Ì*ì)žê¬p¸—Äufyæ»tgïÔz_”Ø]=¥ÛlÎò¼Oð¶²-¶ÿ,òß²æ6]þõç´Ì~¡”o“ËÅÑUö'ëŸÕ†IKa ÁH¬ol©Oå53ëÔjÈ­†xýöÓçÏ7ï±me4:sÔÃA_S® • 0¼9É®}oß<(Žx·Ëª/@lAYëCèŒÝ³¢ /jlX÷ç‹2ÉEikm-‰׸¦‚[Iîðnq1:@sl`¸ÈhÖ8jFÈǹ ó·‹šç¯GYe­?7U ‘«êl[ Çgœ1VÀ£&4è’™qEŒ} n÷vЯ?HÓ¥=<¦ÐqF?…i Þb¾²ÑÔΟq´®Ò¢†í—ìpÀÖ—4}rÏ[“÷(ËÏÇ–ÁÐô††›SвÎj2@¾lûˆ½ÛĽñ›{w:>ïÎkF ¥lÀùâ}4¬'®‰4‘r†]b³±sìN¸BÅD*ÿÆ.µ@œ1–sù€jÞ5žvÕ<ï$dkIÕï:¨ïZTcVö°yNÙ.«Ï›–J¸±Oj›µuX šÐ£Gʼn„žžŸÓtàž]Zmˬ͞ÖGû‰ ÅšP.ã6HsÖ ³¹ \ÄÒ½‘,`™2XÒµ–+lÜuL÷øÓÇrÑöíÅJ»]`aj¨“„I«ÄZЂ#YVyò1AàŸ\ _ _‹jæ_™äÕ>m2ñ¦*Nå6'>Øpi½ „GMhÑO|1Qj Åߣ^›øfl( a“¤U€xÔ@@4ë™"^‹_0|,wŽxz¤’–ÄpÈjÁxÔ’"#iAê)#`'‰0õº¨yêyÔL¸6Ïш}ÂÉÔ‚5¡H}RÀY÷ùÇØçÌè`$áÖë³°5à‚õ,°Å/Ø>–ûjJÊáÌÅU8µ ÈXZ˜€°XAÆ` ì lQvÄäPo^“ÿd,Π"5¡IŸ’È6k=UÞfí 4ä "‚Â9ržƒp|fÒôlrÐá¬Ëý ”CØ2ÃàQ ŠŒ¥…9È9¡báÌÜè@xMeAص« "4Ö¤¿ù3DÀjÔSå%àtŒc»8)pYGÏ -¶ð°õ#©¯' à°s " -k1’dŸ´H¨\8òvQóüó(;â©J7¯Í‚–5üTÆ£&´éq0ªRÎûê¼ÍB¼`ÔPHŒ™hž†kgÏð[ü‚ Ær_ÏD ìa"Š´ ÆHV˜‰%±Öz‰T€‰-ÊŽ˜u¶?ÏqA€—FoA£÷όıýáß&ýŒŒqb˜Ð³Tãp(¦öcOׄÕ<~Áæ±Ü×=TL O‰°ï=jA‘±´0Û%RÑhmT€m-j¨ÉC%ΈAZЄ=ÂÙm·P¢¯Á?@¸éUVƒýŠÍs²58(6=[Cé­Å/˜=–ûzÎ ‹c,Âî÷¨%EFÒ‚œ°-‰ùÒ—–.jžseG–û~¡¥Œp -Ù(ZÐd,Í“oàß’(&mø*·äZ=¹$6£”Òõ·ç<96eD`ÃOO»¤vAü±8dÛlr/CAI8@Š{JW£#£¦F.Õéé©(k[–!Õº~)°;9@„ó¤ÎžSì8¦õc±«ð¦)I‚ëC™äuvÍÖM¹tlYš×…ƒF™=<Ö®¯ÀžÒÒ;wÞ.¸95vU]8¨Ó¯â¾àÆl¶EnéøàŠ‰\½ÆoçPq£À€ˆÿíùP¼lpô™o/T¶l¶eHa·dwî;b#jódc3¹ð+Øšø¯9X>âÌq…MO–³Ïéá|ÍCÞØh -bbÈBÌÀû 9u?maL´P¯´¯Ù†Þ’S•b!ÐKQ~©:5A¶Q%ÇöirÆFâ0¶HFÐhý„F¾tHŸ뎙?d€-¯ý냉­6üs®ýÛäpù ©‰0fîÈ -ÓB┲Fh9>/ÂéJD|Bõÿ1Ýnendstream -endobj -1390 0 obj << -/Type /Page -/Contents 1391 0 R -/Resources 1389 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1388 0 R -/Annots [ 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R 1398 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R 1404 0 R 1405 0 R ] +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [364.6948 344.4186 433.3668 356.4782] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> +>> endobj +1392 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [226.7331 313.5389 295.4051 325.5985] +/Subtype /Link +/A << /S /GoTo /D (boolean_options) >> >> endobj 1393 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [352.879 640.3349 426.5323 652.3945] +/Rect [283.1811 282.6591 356.8344 294.7188] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj 1394 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [307.1508 609.8077 375.8228 621.8674] +/Rect [352.879 154.1545 426.5323 166.2141] /Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> +/A << /S /GoTo /D (tuning) >> >> endobj 1395 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [334.8268 579.2806 403.4988 591.3402] +/Rect [307.1508 123.2747 375.8228 135.3344] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1396 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [337.0185 548.7534 405.6905 560.8131] +/Rect [334.8268 92.395 403.4988 104.4547] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj 1397 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [364.6945 518.2263 433.3665 530.2859] +/Rect [337.0185 61.5153 405.6905 73.5749] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -1398 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [374.6372 487.6992 443.3092 499.7588] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> +1386 0 obj << +/D [1384 0 R /XYZ 56.6929 794.5015 null] >> endobj -1399 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.0276 457.172 360.6996 469.2317] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> +1383 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R /F39 863 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 1400 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [319.7036 426.6449 388.3756 438.7045] -/Subtype /Link -/A << /S /GoTo /D (zone_transfers) >> ->> endobj -1401 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [460.1655 396.1178 533.2211 408.1774] -/Subtype /Link -/A << /S /GoTo /D (tuning) >> +/Length 3140 +/Filter /FlateDecode +>> +stream +xÚµZÝ“Û¶¿¿Bº €Ú''9»N;=_¦ÓIò@KÔk‰¼ˆÔ•éß],ñKäuâNÆ!¸X,v¿ýObÁá?±0šqiÕ"±Ši.ôb½¿â‹{˜{{%<ϪaZµ¹¾¹»úÓ™,,³q/î¶-Y†qcÄânóóòÛ¿¾þñîæözi¾ŒÙõJÇ|ùÍ»÷ßÅÒãÛïß¼{ûÓíëëD-ïÞ}xOäÛ›77·7�¹^ £¬¼„ Þ¼ûû ÞÞ¾þá‡×·×¿Þ}usliÛ+¸DC~»úùW¾Ø€Ùß_q&­Ñ‹gxáLX-öWJK¦•” ewõñêA`kÖ-óŸÒ†éHÅ‹•Ž˜áѸ“9㜶J”`±µg'GbÌÉ :9ÝÕ«úÕ6;\ ³\Uåñ°ÎVOqß~apY¼ho2P¥aQE¶T&fq’È®.³ŒN ~ðƒMV­ùc—Ê-ªÕ3Ì&ŒGÊ€óõ±– zÐÒ¼è þ§µ{hòp¿ ÁmËþÀ?〡\rÀúl*"VÄ,髤bÎ'Ó¸fJCEØüb‰ÌÏà°Å5Æ w/V‡l{Ȫ‡Uï³Wä„}úe”ì¸ëÃiÈÛ‡Á +èÈL›¸Flè·LVª¨k„ƒ­°¶8èÀ #…¶ÔÜDŦ +iÃ?£âPnb¨Œ‡˜Ð}àjÂt"ä´³׌&Ci“Ó6b‘†`cm®Ë \.¼¿l©ëÙÊýj“oñ:¡¬XgÕ°±ãLE<™V'pèÓ½ch¦àÆÔÑçëôu³Võo 3I4qÉ :PÓ±{ò’áùg<0”{)ã‰A„À½SÄq4}kF‘¡´i4Bc"“™»n‹i‹ž ·ûœà¨`}y85u6âjrïÀ4ܼßÒY®½û×)¯ú„ E2ÑÑEˆˆ¨mædCçÙ§ H½³a}À+'t]SNL3:ôeM#L¢ÆJÌ@¬Å5±†ËÕÔã®ÎWû´ªá¶7À˜d±1fz÷À5²}eÊ°8ᢻÿ×Éo}+ú(PR¸¸Œ2m5¬h0…2Ï>cð@ê‹“™4Š%îb“Ž\sz ¤MCGLÃÚ¨µ¸& Öp¹CrÇó çÑ.[mËÃ>­ˆƒ|GpÛT"phѽ7⸎ºj|ÄvÁ˜žã<ÑÀÓPh­ì˜;<Ï>c÷@êEà š:AC¨ç pÍ(2”×s.\ŠÓBA©’?*HQÏH1­(ç|ùÝ©H÷ùšløéq“Öþ,wù:meøb¬ÊIôŸãUì>Çã:>>–‡ºÂ7½¬ŸK"§;8Þ"­ó§Œû¬~(7½@Üóþu~-–Å=Ö»<+jÏEƒÁ!¿¨=­¤³¢†ˆ›`¼]U›ÔAËÐ÷~­É‘¿—Es¯Y—bñþèÚ¼lCÔO§3Ò‡>óógè]ù¼¢Ý/|{áªrZlÆ$ZØSÍÇD'jõˆg3Zû5tü²ùzXºøóæÕ#bö)Û®…„8M-ÝÚ‚/¸_Eô änÜDË©_h kEš/ëë]z¬àø$O–ÏåásECw¤8¨Ò}3›žhzsxÆËG²â)/~æ);T`¤Cá!Éhø®¦§Ã•g»4lÐåü` N8~EhC"ä4À×>¯ªñHð<¶¢&-Nmw¯K÷Ü„Øe*œÅ8Ê‹^E ²€Pw*fêT ³6\/^¸ÙÞ¹DR.óŠžEöì ¨˜Œš Š¥•ˆ¿lOöza>E¶ÏçEæ¹!ªjÇSîHp 'HSÏiM£s¼¢|/’N2ç¢9!qFa¶Áäò5:P/« …iå½®àDÌò¸sRaÚ +T ˆÍ6.PbP’OìÞ,]?tdxr§u ‰]nÃÍo²"Ï<íŒOØ6\pÎÝeÁ‡#é ƒŒ&ôµü”Ñ;ùlã‰'"’ph¢u@@ÍAÅ:¯AKð¤óå»-± ãœFÃÄAb~;fUM“ X•ÞûÙÜ+Yå÷tò0þ…k^?PMïÛ•W>KåuëÝqCÞã-OCðÐãîã»·>ªüp ÿc1ˆôW½(ó8uã3L;õ½øuêCôShqj<Ô׉SÊž·kqì^Z€CBL'—*ŠŒÇ¡GzAd'J4%åw:~.‰ð¡ÛU +p±;yŸ¥E^Üo;z'¬âÝ;ÊFØÈX,ÿùŸ"1PÓ\%é¥ÐÓðï¿\¿Ü2+uÃ]ÕÀ¼‡ÃClÅoIS*˜@[­&@µ8Rz=÷Ô·p@Ì”™ôJf›K')hÜÅ‹ ¡ˆãqÝ)Ä•s¡„N?ÁïŒí×2 }ž$ê€6,â¡â¾-6±#z%Qƒ‡D.³/)â¼":ECt ó–h)½údð—v6Á%5SëŒØÒÍÆÛUCî÷(ÊÚã)’PØlÔÅ-ÚeO)ºc´Hæ>u4χò¹“?Z™CÙ•ªüÜÍïÊòsõgr™´½Þ×2cú~…çzC#í* ÿCÈ-'QJÂÑ9áà¦óúô˜ßhô3=pª¢á¯Úð–*7T¥ 4϶Åñ¹2aˆû8•)Æ–*ÊwÙ=³6ËÅÚ/MéqÎì°ô!õëªãz $(m_Z¯š¬–vTq‰§I¬¨ÔÃ&ð@h^…ý>Ûä€I·±d +•“&J-Ù²¡1%6%=·Çƒ¯°¢Õ ï¹ÚáØB¨(v-PÏ~„J ¦e%Ÿ1ñ¹‘¯˜¶‰ŠŽ=þ»[én!Is‘1ídWv®¹ÀäE•´…„ù$Ì›F‘]ibºnŠ`J‡ sÏPSG¤[’¼*þvÒ?£P*ý:÷÷ FÃv)õXvUµSÇšß³0¯ÄÅNxàBÛö€iíå]–ÓÙaG@Iéõ9ßmÖièÚ½ï14_¾Ç;wzEëjJ5¨F÷T:›l{S¾}iíßi_FÐó9sw"‹?(ÙÐ+ª…óºKÙЪá¸Õª!¾î^»¹”w»ù²/뇴¸÷K]´ãPœ ).襧<×´GØÒ‹­ÒpyvŠfžªó%0IÕÎ’øæ.uŠŸ§;bU[¬_^ù sXC—K¥UOÜÌnäxÌVtós¢ŽÀk×dx{•ó舶'ÍIDBž› Ýù«‘`Üèæú4C•4íÑ9@r7 ËO‰Þƒ:L `Ö‘ ¾IøŠ SÕñÓ¿³µ'º–žß½ÿH³}QØ3<¦EåzN*ä +,‘‘킺rWè&.tÒ.Ë.wDN]@Ö’HîûôcÃê> endobj 1402 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [362.144 365.5906 430.816 377.6502] +/Rect [393.041 737.8938 461.713 749.9535] /Subtype /Link -/A << /S /GoTo /D (boolean_options) >> +/A << /S /GoTo /D (zone_transfers) >> >> endobj 1403 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [293.1435 335.0635 354.3435 347.1231] +/Rect [402.9837 708.0059 471.6557 720.0656] /Subtype /Link -/A << /S /GoTo /D (options) >> +/A << /S /GoTo /D (zone_transfers) >> >> endobj 1404 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.6803 304.5363 357.3523 316.596] +/Rect [320.374 678.118 389.046 690.1776] /Subtype /Link -/A << /S /GoTo /D (boolean_options) >> +/A << /S /GoTo /D (zone_transfers) >> >> endobj 1405 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.5503 274.0092 402.2036 286.0688] +/Rect [348.05 648.2301 416.722 660.2897] +/Subtype /Link +/A << /S /GoTo /D (zone_transfers) >> +>> endobj +1406 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [488.512 618.3422 561.5676 630.4018] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -1392 0 obj << -/D [1390 0 R /XYZ 56.6929 794.5015 null] ->> endobj -470 0 obj << -/D [1390 0 R /XYZ 56.6929 258.3212 null] ->> endobj -1051 0 obj << -/D [1390 0 R /XYZ 56.6929 232.6002 null] ->> endobj -1389 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R >> -/ProcSet [ /PDF /Text ] +1407 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [390.4905 588.4542 459.1625 600.5139] +/Subtype /Link +/A << /S /GoTo /D (boolean_options) >> >> endobj 1408 0 obj << -/Length 2918 -/Filter /FlateDecode ->> -stream -xÚÅZÝsÛ¸÷_¡G¹c¡ø$Á¾årNê¶ã´²o:÷õ@S´Å†"u"Ç3ý㻋ø!QQrÉMGÀb±øa±‹•˜qø‰™5Œ«DÏâD3Ã…™e› >{‚¶·Â÷Y„N‹a¯ïî/þüFų„%‘Œf÷^–qkÅì~õóüõ__ýóþzy¹†Ï#v¹0Ÿwsû=Q*^¿»}sóö‡å«ËXÏïoÞÝyyýæzy}ûúúr!”6(Ïâ§w·×ÔéÍÍ?®/½ÿÛÅõ}'òpY‚+”÷·‹Ÿå³¬îoœ©ÄšÙ3|p&’DÎ6Ú(f´RR^Ü]ü«c8huC§Ôd”eÆÊxBORMéÉ$,RЄzº_ ­'”ëú™*)»K;ß—9}¬ò_8—UÑuE”²®ß7AEÀ¶$ƒéøl!f­uóü ¿\DœÏŸviÕRõ¿T¬òê…jÐKP­b[´ž^¥›¼}ÙæýÕ~¦›ªþJ’Œ$‰'Êuš­Aö(, >œ\ Õë–1JV䞶ÝŠ2Ê€‚2vþ®ÊüДŠMÞ4éSNCש×ì³ ÷eùâû¥m¶ÎW£±^”+øŠaAkϹÞæ»Ô+˜ÂÁòpAB°ÄéTl6ùªHÛÜM`ZŠ›ÀZZ ÝZVTO+_©j*÷;˜sG#¼,ï»»vžÓGþ1ÝU¾hÍ_µ×#|8—~•@|^çÕhiPiŠ§ -f­‡Î.D6:öýµ Éü\]Q[׉ Lºö¸k·‘‹Šˆi–Õn¹«”6Úž‹v=Á…à8àäEAÕNì5„Uªõ>n÷´f›g…ã¾òG´šèL5/ëæŽY¢À&ПPa2Ô€ÌåU–R§^aG@Iéó¹(WacÕë†àóÛz·IïBˆùkÉÒ ã]MòxÐtwóv‡õ)žÌ÷ ê kmMb!ä<ù»NÛªÐÛçM‹ø ÿÛÁÛR*îÿ~ý#ÕòÙ:­žüPwÚqŠ‡üRÌÝ ø8ÊŒæè¦ôl›µ?e+/hî;¶W'Á¤ôÐJâ*Ë®yÄVÙúá2wcÜ^`-mØ™¯»ec[íYí¡ŒÍháÃQN£F èvB&a'¤Pn¤³ñfhãw¿ÑÀÅYÄ éñe ¡ªcã;ög8Ï€Ðê@?€:4 `ÖRÌ‹–:~L³øOžy"®Ëïoï¨õ•‚unÓª O;½V¢d2Þñ™p.L<¼•ÝY,‰œn·îÀ®5‘6û²-¶¡«ÓÌ%Š]ÐE¦”³Çᘎ´<¯RΉԑJaºÍ¾iIŒ¬®Ú”  ¹;qñÛ>-f4SoÒd¬H#2RÌnÆ!ksÂÚ¯F$LDàðn°³Ó‹bb1Ü_éèORñ!-ÁVLù>V0¥:Õ9óv<“T,A'‘:]M°Ñ,±"`€åSM ­x¿ò«0—GájêxÄÌJ.§&/O.M XÞ”8‚Y­DLjÓj5ÁQjй,q™g—È}x¡b¦M¬gÆhsÛÏñ╶,æñÿûFAÐmõ9)ãÀËWÈ1«E·(ˆ83rK •(4œ5¥ÌÌèˆqˆ>à˜³Dª€ºëiÖ.œSf%sšoR´ùhf"Ë}¨-ñÂÎ ÂòDctA)L~xA<äEõD€ K|5ŽcÈ`eié]¥úÀwBƒ”“Çoè6 ÍS¶P0i{æ@GLs1¶GðÒ†ÅQ$gÃøºÍE)ˆ|ÿ¼ðˆEBÈsx‘’ #“³¦j š~Šá…&†®±±ÔüÞ‰à0B­C¢@ÌÛ” -'ÑbÊ—Ú¤Á«®½}qžæ‚®¾BÂZƵÔßBƒ½ùVR†ÙÈ| *È“Ò°ç1TÏ@H'–IÄO_Q‡š<° ¯ñeÇÌ{‚*¢ËΙS|;gˆÎ™ÃÊØ™CÊÀ™[¨$î‚AP¨=ŠÝxrÀåÀ ê¡A„o¡æ=féÁ==ø‘ØØCz_Á1˜€>ø/…7šàÇPv•áROãq¸Ñ_žV±ÈF_ñ0â$•7ɹ+PG’©8Ÿrt¦¬™Hî¹H¢~C±…6kN¹ØNÛ…$¿¡Hì6é#Þ¾îfoŒ”ÔI}ÂE ƒ+-þ ׂ¨Cƒ^„P"L¹ ñ]‡ªãw9å@u¼ßIÄ,p#Á&‚9A~šÜr“€9Ò`˜§cÌSoŽÓ¦ÍwEóžžÇÇ/ÁÝÍÒ&?m™‡&ïëÌèêl*õ…NÎ9›*¶,Jxr&xœt5£QFÃ?WGø6¸)ÊtGD@ûĆ–¨.È>ù‚—DÁ€ä³|ÛÒí:m‰{çû©ëljل°¨ÿßg/²9eã㞇|+}*ƒ=ø¶q‰þ¦PQp‡)kÏA‚øÎá¹G)¬(>ô̸÷¦ ì°‚ÓXgßtÏ‘§±’Àb°âx:¬`­®Ê?é5®e -5 !5Kb£žOƒµ‹6:Ì|>R[ð­Òç9ÿO.#ƒŽZ20—É0áz”x…ë†Y™Ä˜^Œ tÑúÓ‰W+ð.4%^oºZö¼¹úTYÀ´_Aú|“‹õ‰¥Ç—Qšwò-–Ï}ïêý“ël!œ +—h‰ e7t?º¤¢Š»Tú$"Ð!Ø(‹¬hÝKõø>Åõ«.W¤†ïÜjàHc )½‚0MÜÛ[ /—w7o¯ˆ~{wEÄ»w¯<‰R @º½»~͈v™ð¹ã6™•| OþMá0=÷ðÒ¿N\ùgˆ*+÷«î‰â)õ«Û±ð¸åp”¢OŠ~yО -$…ËhCÕb!ÿàÒ¹$ï„kçO7ºŒ’P·u›‡T»ª0ËGo/.¯éÓm›o¶í8“·IW>çžÙ4f›Ë¼õ4ZŠ¶>ÁR¬gØ4uVø——X ùÖ´Ï+v9ÄC`$¦ôI GΙï½ìöÀ#´\’kìN'àÑèøËStAæßVø6L_bþBí»Âý ©$- ØîJLdºÇlqCIK†JX²´ H8†ø€ˆô*&Ë¥Ÿj~ðìò Å&Þ®LØ¡n¿‹Í¶Ì7yÕžü{À÷·w¬@ÀBoŠGþ!Yª‰ë>Ü^Ê0­”˜ú Ÿ¿úOýŸ¾tÌÀ·ÓWjwõ©P3±9”½ûkÔ„ðÿ(æ‹ûendstream -endobj -1407 0 obj << -/Type /Page -/Contents 1408 0 R -/Resources 1406 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1388 0 R +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.49 558.5663 382.69 570.626] +/Subtype /Link +/A << /S /GoTo /D (options) >> >> endobj 1409 0 obj << -/D [1407 0 R /XYZ 85.0394 794.5015 null] +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [317.0267 528.6784 385.6987 540.738] +/Subtype /Link +/A << /S /GoTo /D (boolean_options) >> >> endobj 1410 0 obj << -/D [1407 0 R /XYZ 85.0394 566.7855 null] +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [356.8967 498.7905 430.5501 510.8501] +/Subtype /Link +/A << /S /GoTo /D (tuning) >> +>> endobj +1401 0 obj << +/D [1399 0 R /XYZ 85.0394 794.5015 null] +>> endobj +470 0 obj << +/D [1399 0 R /XYZ 85.0394 484.6014 null] +>> endobj +1051 0 obj << +/D [1399 0 R /XYZ 85.0394 459.8194 null] >> endobj 1411 0 obj << -/D [1407 0 R /XYZ 85.0394 554.8303 null] ->> endobj -474 0 obj << -/D [1407 0 R /XYZ 85.0394 184.6798 null] +/D [1399 0 R /XYZ 85.0394 84.3175 null] >> endobj 1412 0 obj << -/D [1407 0 R /XYZ 85.0394 145.5857 null] +/D [1399 0 R /XYZ 85.0394 72.3624 null] >> endobj -478 0 obj << -/D [1407 0 R /XYZ 85.0394 145.5857 null] ->> endobj -899 0 obj << -/D [1407 0 R /XYZ 85.0394 108.7415 null] ->> endobj -1406 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R /F21 658 0 R >> +1398 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1415 0 obj << -/Length 3250 +/Length 3076 /Filter /FlateDecode >> stream -xÚÍksÛ6ò»…>Ò3O¸ûäú‘¸MœåÌÜ]Û´DÇœJ¤N¤â¸¿þv±€DÊz¤ggêv&\.°ï]ÀbÀá10)KtƒÌif¸0ƒñìˆ>÷·G"Ð #Ñ°KõÃÍÑß.T6pÌ¥2ÜÜu沌[+7“_’”)v 3ðä?®Î‡Òðäâò=@Bi#“Ów'oίéCH¸¼:#Œ£Ç釫‹Ë·Ÿ®OŽ3Ü\~¸"ôõùÅùõùÕéùño7?߬–ÜÝ–à -×ûߣ_~ムìîÇ#Δ³fð/œ çä`v¤bF+1Ó£ÑÑ?Wv¾ú¡[Ù$8“*•[ø$Å6>ÇR%ÕŠO‚ ` ç°±¢©—‹q¶YŒëŤÁMÂTª3 ¥fN í'99*n“I=ËËŠà*ŸeI9)ª¶ü•sY4ô-$õ¤Æk«’ó||¿FtŸ÷É›¢¥ ë;B,Ž…Mü‚‡aeuW/fy[ÖÕÀH™<Ü—qöYþHÀm .fóöñX‘0Ü&nL挑~c7÷H§EøqüÃsËkÞýq"Ë›¦—y[Lèý¡lïÃzÌóE[Ž—Ó|Aïo• Í9®góº‰Äßo - óÒÛõuƒ* œÄ÷6BæPûeN -üî Ž#€Äæüª¼v´xVu@4åçÊ sœW•W“@T“ râ³Kæ_Å⋧߸} ´AS`nüºh¼ØôŠÃÓ®Žëoïa+[†ì„%K-îQm‹2DÄÙÕˆê]ýPÀ¬hÔ0±YÒÔ †êsäl9mËù4 ÷¼’'ˆ˜‹YÙzÑâë.¿×󶜕-ð”ËŠ° ?¶¢,¾æ3˜ÿͶ´5a3/ÆåÝ#½´÷yKPN®úà{Uä‹Û@Lì$ø6˜t»(ýzD!.š–‘4FE±éÌ”PÌ -XNjSf3.Ñ­ÐÇÅç×?´¢vê:§óâ~GÅ80Ì;dÉDÊ„z²&k˜ÎÒÞ’ž8ÄHth68Mûë@mÞøQÍ3Ú÷­|ˆä~þɬ;¹ Ÿ,(³ÌYm÷³aEuh!OfÕ?j)™t‚°n)i×~—èS¾¡wo:kõ¼îyÈULñ¾(’™ÿ}s‹‚;&àŸA -0Ë´þ–Xª´eÏ6béÿ7*.¤c–;W@ã8ÌÀ8¢?Õpµ©aªØ€Û!!@m6H5<¹!ž×U´fr™Òºl-‰|;ßz@?‰ Žþ#Š!d>eÛ]½¬&쉞™Œiáp!ëå>Èl¼ ”R1·7Gz2e±›«¨£Üº\UŠiÃSr³s`IªS“œ ÷\šÕ’ÔOg‘oË–>|ɧ˂ÀàˆÀûç˜ÝЧHã§FoÝO$“¡71«ˆQ½x½i64 šÎAu8ð<®®¥3f%ÏþÄ”qÄNA™Œcª~HýÞhN‰êÍÍ{“q<¨|ì,gÅâ¤H†ÓòK@z^g‘×™Ug„¹¹÷Ú(/®é„Йӫ’Aà€*«¶øìéªmâ"g¹¬Jïe§øl@ZÕć|Hâ|Ž„è2Íå,_”ÓGz]ú¡Û€é¥?„c®¶%w°U”Šd ytA ¥„JËÀ/@y"0)šñ¢¼õ ¯÷õ<™Ö>J}vJ“Äy+n‹m¹ŠÿÙIÌ4îê®Ë)CÂÒÜ×Ë餟LÊfœ‡ÌtRwµåyø]½Ñ«³ì€÷1©`™pä}ÆS(@­•ÖÁý¸®û±÷ãÖîÇ®ÜÛ¨®ð[N(ã®Ûz\O s—ÏPßvúœ:D—²jÚ¼Šžg#¢w§Ý#±+^Ê ~Q‰ar“fæ€Ä(w䆮Ϩ€ÿ@Ù«]ªC•h嶢°“¼ÍÁ3nÖ”T&ì‹1+ÈcÅùò žJú•RÔí®¨©g:Æؽ†Á Ñ©&|ù¶Gx®¼”ðÖí‹¿"‡©c*á‚#g<ë÷QžäÍòamðU;Í2ÇwèGì§@©Á¬É62ã»z:­¨¦\ç¹ÔKÑÝö•Å%[Xù*ÙÖq)Ò@\B9‰]³;‰ÖàtR§³¿0‰þWƒaf–JƒÝæ‹-4±+vªÒL§¾c%D¾¦%(ŸL‚õúNŠtÉeE_È,¸¼¢§7©7Ôxi}NXzjßAטFø·üp¦·ðYΓèƒ|/N –˜ÝÆÛåÉKïw¨´4 Õ?Z:ØU¨Nà?p¸ZH`è—4˜UOlØÈ8È> UînöuÖõR…ˆË¦æϸÓ8b'û”Ef©ìû Ði(tN€c©ÕßÍ<SdŒyÕÍÕD¯á”OŸL@D>:…H³¼ÃOk¾®ãåÁ8]µÛÊjR†‚'tRôý0ÿôæ@èÙ-r•kŠ°¶–Þ|˜íNÐ[="põíöþiè_vw¬$&à™ÏPFûåù×yI>¤gù4 ºº©SÒMx’n -ðc§nv…þ.w–ÿR~ø{pYK&´:ÀdmX&CÅwz~} ¥ü/xò®žNš^5)?—mt°ãbцӖ¶8à€Ù‘·`(vo׋~Ž<%,“JqJ…î°çíÕÉÏçÀ¤TCöÖ¯‹¡Z[5„Àk×U9ö<|h–f¡MïÕ±#4-sï[¬îqHÊ@‚ê¼Å³[ÛŸ©u7øŠ[u2ã°ÞC~ÈmªiÛgA Øv]̧ù˜ZYÒ‚ŽR 4[÷«"hÝM‚L©ùS¿ìtíþôÑÉdZ׿ûcG§’åü4Iáó“;Ì1¾؇CJ/r_´ù·ŠÆ *­2 À7ËÛ–Þ "ð¹…£ÜbKö°Ú+Wqå‚×<÷M@.ò°5ŽzšÒ<ÐÁz¦‘°×¦ïyCß袢bŒqrK».V«Ó€`8TF2åÑ2ÍänåîhÍ+îØAÎ…÷%ø™JƵÒA¹G?ÿ¤­OFmhu¢´?=ÇÇ|y;-Çÿ^„ÓØîMü{= -OÖ#·áWùG]­ýþp·¦ï—•æjO^ÙåÂ+nÖI)!c‚­„È'” -žh„54=A LD8ƒ—Lî B£ÀgNQ†ˆò2ôß:2D"’áj”YÉa”áNyõäú,áu¸ò²é¨xÉDI -ÎR¼£´_xB3Ø¥£o?~áí ¨‹F½3¶®çú<­oc²4¯›+‡x£a9/ Þ,šb²:›¶øþÃéŽv–ú²ùÑ‹šƒ°)d•Æà(÷½\Ê=ß]^]|– -+7ó#‘žpúñT¬ƒÙ  N©D8¥tدØGctÊÐUgøâÕw$Jò¥îN_Ö?½h0&¬0DK0&\ŽÎ® äâ&ÃD)^‘‚:Š -`#©ka°‡H¤²×¶(0;’™Ìãž0ö—Àݾ”@¾C“LÈö{@Pgj:ÏØAýÀ®”wïøˆAaü·î?xWüÖ£|0GS?ÓÔ$ŸšH^îi„Õ (+ïßhžÑùé?è…–ç“ë aèàج2I“w†Þ–þ8ZÙävÙnËS›¶œgL¯P¢Ðèò-¶È86À¯fUŠš^ëPN‰=ʵ’Ú+îqÁGÆ•;8‚1cÃÙŸþ¹ˆPbÓó‚íûÊßÆTÄúu 5]<0ñb¡±á°!ÊMUJ©~…jì^½Z'ñRñ=¢èìò·ºœ`Üê†î4K3Ajá¬Â`ráY ¾²ƒ§³:é ó¯óúÖ­êqWÒ}Y¤ NBØ, ¤}_¼‹¹U¿âƒc˜n4XÉ2aÈ…þ Zéè-Ǹ…•@%<%(ª9½‘–Çó6°ªšœTqšÕÅ€Cä¼ÛîÂÝj°bu—ÂҙŴ~ðÖfÃ8‹7]Ú¶X„^?¼Óy®—?~}¤'-†ÑI"¢âå<W{ûm2¾À €"'¾±"p™~ó§×R|ž^hÎ!KÑŒˬqÛîòÁÁúá[ÿúaý :cjç}±p`¯pÙ:Ö~Yúä3âßID²ÎâÿäƤendstream +xÚÍZÝsãÆ ÷_¡Gºcm¸$—}»Üù’Ëd|­¬L§ùx ¤µÅ†"‘:Ÿû×X`)J–,_}™vežîô‰=¤OlyÙb?i I¬O$öúDúÞ ì]ÝØÎie¼ñyÜ¥¹€û,ãm“—ëœB€ØäúЭNXÝX£ÏZžÔO ö[òþËûºñhs‹+² ¡œÅ™÷ <ÛzãL¢vÙlÉz#>CdÐ*ZzžpÑ&Ib“ Æ ä“&f'˜=X@_œ…CŸÀÓXŒ!Á¡ïéÅØ=®½MË(8UÓvDÙ¶în[í; ¸ùªªy`<½¯hjžéw÷H”µÛÃûkÈ÷YÍ°ïf¤Ç2éˆy–Ü i{éÅ=ìbMX=˜{ÈtÄKñU¯Ó¨»”QCÍ“¶k yKáë8=J)¤$±}bÁ‰¤Á2S~AX‡×l×n^z•û>ª§úÎSaã)2£É‹üå¨Ê“\ĉ1è¡È, RI\°7.ÚÎmÊöw ILêàŸC¬;/ZwÚ1=Þë¼èŸi&)Lnò3‘f[³¹Ô½!Á-ýÒ8’ËAœ™GØ–«²*6D°Ñ'\mÚªçí£·< þÃ}ž»uG tË¢£Ùûؘ—n&¥Eñ©» ‹™÷À©ZÎyfn/Oz)üç$`/Âè\ŸA +˜VÎ…!F1/DŠŽ‡QYÌ‘<{¤àËq¤@œŸ$æ,Rr8êRüœ)Øjêê‘`Æ÷ÃÌX*#ò,ÑûNü¨ö‰F˜—ãd €¯…“]må¿«š¼®Ö"!*ÒÈh¬`CJçÃ"Ï“bÊ,@ @3Nl Ÿp%Êä™È¬!•|èí³Úyïöê¹ìÌÒj©¾ ú´ˆ½ÒÁqæ9sO +B´¡É„c? .H@¯Ã·§ìS$© H+¹R)L%À]G·`ÀŽ¨´[°ÞÎÀ}¯”`ß1<éÈÐGV vˆÅC¤×Lx©eñ‰§Ÿ¹°!ÊLرqD½¾ËÕºr+`î‹ÞõAÉæÝÍ­è°°óÅ{á!¹*¾ï=`÷p¢¢rðAGöˆ=ͳ`{ƒ^Çö ¶9Œ³¡ Zê+˜¥Y8Ô dפ8&R‹²Í{ë:šÐë(.hR@-kp «"à]©àS±Ó;~l̘ýß㥔2Ç€6]rjM‹CÃ/nä±ÅM<\œ“öGÄwòˆ¾‡ëbÓ•ó-… Föµ¾PÀ¢ôjÝ´a‚°~ë`dÑ1/€Ë8 Ééñr[™ÛÐý@"̼Рµ‘¥Ê8È:ç09µ0¡-ïk¯L¸ž˜äA왜[°“œóhÍòr›OžGÒëy)è© wÓ^QÍ(H¸К°ÿnyXâ 8£8Ñ—Æä|T.šØ Ò÷àéðNÍL„·‘Ì¢¶ÙðÕ1¹ÚV]¹®x¸—•b™ aí6«²#‹…Wº‘psë’Š3 +<çvƒ*ly±žÓ}.Ði,øý½/¤}¨7„ë\±™13‰s?è6eð0¨ÄMÛ ÒÆ­s‡É80a%lGAöª¥õ-©ss?¢ÆdC÷üãဧ1ôÓyñ¼·nÞõëT(!S!õ“=YH³toKO‚ùÀtnÞ4M÷÷ÁWÎ^–gA˜—Ê!°ŸYþɬ'¥`žl²•Üû¼z®sy2£”PÚî§ÓÝ3pNõÓofÅ0Ô ²¿S!ß`=­­m]v\µðëóeÕ á›Ö9”BÖ›rUlJªšd>K¡Öì1ÔJÁ‘|šs$ä£â +sì4„ø-hH^„ؤnøºl¨r]5>JéG~’0oMãå¿l¨›¸»fèpÊP¦âïyÃXdQ¶áôs¥É!Z^‡À?÷g5™@? é\ã×(ò<ó +rÀ´6†]O>t=vàzòë±½ëÉ+ì+¨ƒ‚í¦kæME”»b…`;‰àþ2uÛuð:—ùpÚg~ÃÒËáu’5q,2•¢‚(ˆ*Ó‡!NÜß2¯þEàîW‘m­:®I®kü¡Î…ÂËÒ'¿WÄO:Uk°õÿYendstream endobj 1414 0 obj << /Type /Page /Contents 1415 0 R /Resources 1413 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1388 0 R -/Annots [ 1418 0 R 1419 0 R ] ->> endobj -1418 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [312.8189 683.0645 386.4723 695.1242] -/Subtype /Link -/A << /S /GoTo /D (the_sortlist_statement) >> +/Parent 1382 0 R +/Annots [ 1419 0 R 1420 0 R ] >> endobj 1419 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [406.3277 683.0645 479.981 695.1242] +/Rect [312.8189 214.5127 386.4723 226.5723] +/Subtype /Link +/A << /S /GoTo /D (the_sortlist_statement) >> +>> endobj +1420 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [406.3277 214.5127 479.981 226.5723] /Subtype /Link /A << /S /GoTo /D (rrset_ordering) >> >> endobj 1416 0 obj << /D [1414 0 R /XYZ 56.6929 794.5015 null] >> endobj -482 0 obj << -/D [1414 0 R /XYZ 56.6929 769.5949 null] +474 0 obj << +/D [1414 0 R /XYZ 56.6929 424.823 null] >> endobj 1417 0 obj << -/D [1414 0 R /XYZ 56.6929 752.4444 null] +/D [1414 0 R /XYZ 56.6929 392.7174 null] >> endobj -1420 0 obj << -/D [1414 0 R /XYZ 56.6929 666.1281 null] +478 0 obj << +/D [1414 0 R /XYZ 56.6929 392.7174 null] +>> endobj +899 0 obj << +/D [1414 0 R /XYZ 56.6929 362.8617 null] +>> endobj +482 0 obj << +/D [1414 0 R /XYZ 56.6929 306.2038 null] +>> endobj +1418 0 obj << +/D [1414 0 R /XYZ 56.6929 283.8925 null] >> endobj 1421 0 obj << -/D [1414 0 R /XYZ 56.6929 654.1729 null] +/D [1414 0 R /XYZ 56.6929 197.5762 null] >> endobj 1422 0 obj << -/D [1414 0 R /XYZ 56.6929 474.0484 null] ->> endobj -1423 0 obj << -/D [1414 0 R /XYZ 56.6929 462.0932 null] +/D [1414 0 R /XYZ 56.6929 185.621 null] >> endobj 1413 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R >> +/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F53 962 0 R /F21 658 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1426 0 obj << -/Length 3051 +1425 0 obj << +/Length 2926 /Filter /FlateDecode >> stream -xÚíZÝsÛ6÷_¡·Ò3‹O¼>¹ŽÝ¸Mœ¬^3×öi‹WIÔ‰”Ü_»X€¢}$2—‡ÏX‹%û…ß.È{ þxÏê˜ÉTõLªb͸îgg¬÷Ï~8ã¾O?têw{}?<ûöFš^§‰HzÇÎ\6fÖòÞ0ÿ-ºzyùfx=8ï Í¢$>ïë„EßßÞ½ NJ?W¯ïnnøepynT4¼}}GìÁõÍõàúîêú¼Ï¥Ò&~Š¾¾»¦N7·¯®Ïÿþxv=l—ÜÝg×ûï³ßþ`½v÷ã‹ejuï,æi*z³3¥e¬•”3=»?û{;a空KLŠñ˜ -{}ic¥µÝÿZzƒ×z’ó8Õzû­°k3½Nbd+z!;¢çJÆVJÝ3: ÏPöw z¼b’EwÙ¬ ye«fR-Ëæ=5U9oŠ% -D+9‹^õxYŽŠœ:”s¯ŒsÝ\-R®ãm¡+ºIÑë®õóö/•%ØHÂw8¥H•ŠYÊô1‘*'Æ9ßÝ_¾‰›D—$ŠyÑÏÞÖ& '1Ÿtø…ûM˜‹X[yìðKp¯”ùHòvHAqé-XÙ””lƒÍ7Í—z»~NÅH9óE‚Ì©ÿ›ïG›oª‚ù*%¼né,7•ÄúÇrŽ{F.iê;jлÓlÞÓ/Å+?ÍŽW·!ë#½PÜÀß5ÇÏ3ñíóWòüÕÖp‘ò˜×0 îMÅFÈáTª…‡®A¡^®+8d=s‘-¢ªßmRA0ÑdÕHÕ P ÂxÐö‹¢¿ßsëèðáÜÝü©ç/€‘t¢`½ÇT¤-¼ƒ)K*z  4zãü¡z*stUaM4Ë ð2ß2-Š95Hl@X!ˆp±‰·±bÌóòÜ;x]Ôñ~Íõ¡x¿nÖ›þšU£Xlµ8vèhHv ÕT„ß8݈èvq˜µBÑ…ßE±¬«yM /ë0ÊÑ´ &áX#=Ž5¢ƒc‰®ßÁ8î€ã”3ˆÏÙô#ƒçö²:b8­¶Nìx§Jõ$)b€µçîo€sâ]tUÍñv';ïB\eET—ó¬Y…ƒYyÖd _Î6S |D(C8ïUÑa\ÖÝÍ©„ÑÒ&úS ^±Wè ª˜™Ä:³±6p^:¡ŸCf6D7±`ƒÕª)úÍ„"Ùêq‚É™ŽFOZIÈë’hRÕMM$1¤á¯E®WFi"v*J?0Ø~Uä%)vŒXJ"¬Ë ¢<ôA¦:™¾{´)û6¸æÚ÷¬±íù¶…È>Ç!»Bÿ\ Ë`µqâÚ’G£UCꦜN©Ï -W´ÃÈ®AÝ0ëïL3ÿøÑ]¯ª¯2ÍóP““ü€ÕtÔq*«ù‡.ä009?f42‰­Pî__b¢aã6×+gL8@døú­‡RÝIü@¿u¡ähãA[ 圻¢¨Ù,Šñø»'Æ“†#ÔÎV¿âsU¦F³ä˜F %J¥ t?8×:ú&‰Ú„B29ªœ›$6z.œ—õçc´#Û8‹ _Q­©…~ÒqÐz¿OÿúÓ½÷'ô£xÕX±_S]œJUÁNNXÏ–°^pƒc…>iÓ˜ A&:tU’B×ð<¼7$"Vî7ÿØ´ù°Áw×wÚ²õi->á±úX ,³$Iƒµ´oX;L¬ÉçI9ž ™xÃG¦7|$[ÃÇÁð/äÇ+œÎþX¸ÿyø朋4º ¶ÇI؃~BFî.+V‹Eµl‚r_–uaoŒØe¯ -;²ùŠS7 TÂÕ1\*µŒ9Ä('Ì·B#öÐ**Wˆ[VRy~ßÆØ©u¤‚Æ6"4,ÝB„9> »»=•RÖלÇîMqŒafëÞô¯ - áIKJƒ3°îæ}ë÷®’©é¡Ç`{ô.…E*bÁ4Å¿‰¿¬{¨¦Óê“ó·7ª{±(X¤Uð62žf¨aê·ñ‘ÆÎ -ßÏÁ‰6”ÖAÖp9¸`½“T‹ñjIÍy3õwµOٴܲ‘&l è߶M¤õÁJ‰ÿ•>Ù¹¿ (ÔÍ>Eâ*Mnï óÄ2u«ø[,o‚#ï÷¯î{Nun}„K ù‰£ —ÐIl¸O¸®^b‚×Õ$«jÂÅR{u‰bX5Õ¸šgìSãÆ-Du =øùvH g¡I¸ŽbVæ}žv¨°8ÈÖw0°Jž€ -e1`•®Ĥ=°¨½X-U]à ýs©²iÂáW(ßÔ»R³Ñªœ6ýöœ —ÌÎíºu=``úPûÓ¶ˆã Š 2íÊÞ€^CqæªaxŒEŽAÄðØHîû0ÊŽ¶¿â*Oe,ý§0‡ŒRø"#nú%}`¢—*GáZåî—¦oiÀØÎ7ÐÈ‹§bZ-(M³t?dœQ~Sé«æÿÂrÏ^3¼£cMA Ýb²‚wl˜„ˆ`“Èq÷!À©'ëK2w×ÍxàyÈxàÙS¶,«•Ÿ©~_ï,5ÅÌŸXÚeukbB>XÍ2<}ôu´E`,–îö¦Þ*Ôý‚î5°®æNe`_ ª 2 «>Uðr[aÓè‚ãG9½×°BBò—¿Hú 0¬LÕþáCSÌ=k¶˜–ã²qu$-3¿&†÷Ъ\Y‰ -~\b Ä–¿Œs“‡áþ­ƒALÄMåg.ÞeðÚ¿s–Íßïº;õ_Û€ R t·Kšî¦çÙÔEjxˆ‹#ª!_(¨Ÿ‹¶Àdõ„85t°ÑjŠxu;?ñC;oÆ+à º ö÷V*O(•±š®ä‘»†)¨1¯r‡ÄWN#;6G+ÀœˆêÍŠ»+p¡„eM¬5.S¡¦šÞ¹H½'E–»CÂ=Ð /ÐqÁJ`ôôpø -ËÔÏçƒ8¼ôoãUPݸëul“P C†ù"-/ÌE‚Pî#ì‚¡%Ãk¤…ì}7xAZâ¿K¿žl·ÖÔ[s^¨lÛ>Û rGEûÉJRœ¸]ž…$áÕÌŠŒ457gÂ&Ü'¤GWã›æÔpîO3ß»œùîÓrV6Ät‘~'Õ³VÑ[è`AŽûôÚãÌ÷ùiþ,~–r¾ñ¦q6žàEvj8 Ë ·î°µ¼re,ã¿àœx±pKa©²ò¬ÍïÝðDÑ<êøo"€×øg~òlZû©P91áü¹À/AC‰žŽÂ‹IºA‡^•¯-* Maíh‘»Ž,7KªÜÒ0û»é-õªB®±Œïç¿âÀßvŽ,‡8naÐŪÔGºñ"¢ž'E{ü®§‘AnÀòw %æà+¿NJr”]_ K¬SÉ]ßø²ÞÑ<æc¿(^U­L,­Ýó™d{ ùE¡¬Ù^¹–6ÖV˜Kÿ/>kÃýendstream +xÚí[[S9~çWø±©Š5º_vŸ—„™ aTÍîÌ<4v]1nÖÝ@2¿~ÏÑQÛm»“ÅÔò°IUt¤–dé;wIÅÀÆUÐ43\˜Áèv‡®áÛ»‘ú ÛNÃn¯·;?)7,XiW¹<ãÞ‹ÁÅø÷lÿýÞéÅáÙîPžY¶;4–goO¨%P±ÿñäèøݧ³½]§³‹ã'Ô|vxtxvx²¸;J ¨4Å¿>žR§£ã‡»^ü¼sx1_rw[‚+\ï¿w~ÿ“Æ°»Ÿw8SÁ›Á#T8!ÈÁíŽ6Š­TÛ2Ù9ßùÇ|ÂÎ×8ô)˜4LH£CÙbý¯Ò/pøÕDJÅ®sùGaÓŽiãy­|¼Tä…VÌ+eÎf|CèÏNügow¨ƒ…ÊM±;T^f³]á³¢®î#1J­ã¼É`ÇÍ¢çU5»Í¢«+,EÖÜtUÖT6_ïÒ·?¸áùtŒ¼xØ 1¸%„Œ ¬«Û¢)o‹š9šäu ƒUë»bTþÁ¹±Uöj௳Vº°<j¥=S µƒá‚Ã}"ƒcw+"óßj"l`ʇÒ1î–Eí‘SÜ2/ƒ–Y¡ÖH«TÓzî#ü‘ÈôU5™Tåôšª9É‚þÓ‘^Òp\²‡•ÇñÈéšz-ý l$ ê…"ƒ³>ä“rœÔú¬þÛ*Kç¢nATŒpîÅÈGÑÛÔ_‹Š‰¿¹Y­3Lè@¦tÖ:m±•Înªº!*“úÖh eÈŽ§ô…ôˆã*£N½Z£ÒF…V*u–SUÉáe™æ>>}â7Pƒ~BƒŠz4+/‹ÄØrš|´O`bÖko”mi/­îGlo»Ÿõ¼ÓŽY#eïŒ`RyÒ­=ø&W ˆ>ؤXK|S‚÷ãç½Ý€_gaÏÛì?à—·æG j;b=~ð£Î[ׇŸ +Lze ?€ÌJþõè 0`eë:ò„Üe4i%«wù¬)óÉ7P§è ’³¹¿ÂOèn¾,\z/šnº^Ê鸤yGMY¡"B ÒT©Œ + Ä4¿MÔãM‘ ,TÅ¢GZ[Cµèi»,­põøÆ‚Kº£žÝÝ”$(¯ªûé±ä!;ürWÌÀO›|’šºÂ ½Ë4š„éõÂÙáúó$i!œ/`˜wÌ;Ûk˜¹‚.Å´{GçoA»¥çÙ‡j”Û!òKÎNcjÀøè2¯ j®‹ÙC1‹â+Å7CÓò â¶j#x̵lèîïÛXŽ/HÑgc €¸dcO?€÷3Jd{˚͗€Z&eÝ$£»ŠûÂïŠl­)VBn‚¹³þm™â¶Ã6a¶À[kûP¶ŽÁ4d‰÷!yS²L xö¾šŒÈÉtŽËë²im쨃ƒö¼)zœ Ý‚ ªâ7€»Xõ¶°me|›–DsÆéssÆf ˆàžìý +i¬²b¸1HdÄ.&D´EÛ/AË]MËQÚÉ—à‡ho %Zv¨CŒGóâõìÐ¥L]P ×—ÍñZw‡Û²%ÂxÉdÊvÄZFè !ëK•Án@*äÈ¢$>Àí¬¸›ä£Èƒà²¤4²èqu›GN<jž§F¤¡á±lnˆ¶5èíWF@p°–è›UÙ¤ª>ã„*¨ìþîMô6Yƒ”+ 4ŠÉWêy“·X›Ò”¥y˜íõýeCõ‚:Ä#P€±BÐ:æ{åª]9v— +jœåik5O]óÔÖ3i;RlTÅrLßóš¾Ñ/´’ #ô•OD4mÙ´9kÒJ'}Ñ´´N®—îŽØî)Ë8Œˆ½;ýüÓò£ó¹c¨WŒ×õ¤ºl#¦»ª.1HÀžßßa:«‹q îeÒÆ÷7@ÚYë+’4÷Ìh˜¼RÏu)}|rô0^®IÂ%PØ?ýDeí 8È l¸¯#”@E(áKNU#Zênu»&j«P‘YåûÂ%ÍaBÏiãǧç‡ûÑ¥H§tvÍTõPŽÉTÍíÑmÑÜTɲ\1#sf-†+X9>­‹…Áš7ß‚¹šÅƒ¬!3’qzò,R|×Y¤ær·º0¼b‡¢,gNú>“¤œeÒ†@Ü:?8D™‡±mr)˜ýÒ¹…‘tÚdðô—ºÊ¥ã¦3 +! þ\ÉœcÛ3\üæ“‹îV·Å‘8Ý„(zȾœZÉ” &ÂU0ZŽÆ [<‘‡¢uäHGG¿u9ÖÉ‘wFÅ Øã=©É>Õm÷rº^w@#¯ËitI4è÷ß©BË‹)јZ¢¥ndhòÎÐËï¤òÙå}óTvQ7å$ù¿dœJÑ%PçÇïðt“ãÙeoÀQÏÌÒ©-4ÈñÖËW‡qÛ= Ü®}Ã@7ûäKX¦Åû¿ü¤PbÕ[‚ˆg6¾ð±_F»]ÇDªÑH#Ѥ£uŸÂzãZ¡Rjùhºl’¬Eò%ßÀŒÎ._qD(½g!¸>ó+!•4^QDa¨"D/ÙQDlæÜJ b<§ÖrzUÅ£wµ0t‰Ò.}„w6u]¶Éëðí.ü_3Ü>c*=gVz +i‡À÷iG'†…‚h¢œÕŠ;ÕHÚÛkS0?õ€ÆdŽ¤j§–®I‘NnôjƒïK·<Óx`â^€ß'Û¤zŒZçy¼ŽÅæË¢°']Ø@îå£àׯTÒba]cS:  +ùævžx$$€j‘øÎ|.8ýæ‡îv»œÜ–u} …Ö‚ guŸÀAŠ—(æÉÞéŤ#\ñì„€G§s¡î¬l¾¶Y]9^âÓ›8b¢´TóʯÀ<1)EŸ¿’¯zî(B=9ß;DŠiÑûp³+ÛºH09g~ä(©±V„ƒcNè¾c¡R$;òÛEŒdU`í)4Õ¾`jCéÅrYz©wËáØ/r©(½Hô"õéýné º•^­eâ 6Ò]¥êf÷кÈ’ÝCK 3¡$s•¦yâ§çë;•óóõJÓ‘Æç ø‹ž¾9Ð +®û|¯LiC‘M U!¾âÔzÆ +™y½¸'Ž=òYCT¼¢Õéâ‰6=A:=(ÓéR{‚zÖiÜF¿ÜÙúóÐăd'-æÀ)ÊHWß5óAï£ï}¸¿øÏ `d•÷k^ÍR8ÂåÜ*øJÅx9ïÕYúÇ=’endstream endobj -1425 0 obj << +1424 0 obj << /Type /Page -/Contents 1426 0 R -/Resources 1424 0 R +/Contents 1425 0 R +/Resources 1423 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1388 0 R +/Parent 1382 0 R +>> endobj +1426 0 obj << +/D [1424 0 R /XYZ 85.0394 794.5015 null] >> endobj 1427 0 obj << -/D [1425 0 R /XYZ 85.0394 794.5015 null] +/D [1424 0 R /XYZ 85.0394 695.8713 null] >> endobj 1428 0 obj << -/D [1425 0 R /XYZ 85.0394 289.3956 null] +/D [1424 0 R /XYZ 85.0394 683.9162 null] +>> endobj +1423 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F47 879 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1431 0 obj << +/Length 3069 +/Filter /FlateDecode +>> +stream +xÚÍZYsÛF~ׯà[À* Á¸6OŽ,ÅÊ&²–b6®Mò’#k`P²òë·{º‡iÞX®r©Jèé9ÑÇ7Ý ŠAbF~”Êt§Ú¦‹³`0‡¾Î¹pƒ.ú£¾Ÿ}{­âA꧑Œã‡ÞZ‰$‰Œg¿y‘¯ü!¬xÿy{{5¼aà]ßü”P:”Þå›Wwã«uD<ôû›Û×ÄIéqùööúæ‡_F¯†±öÆ7oo‰=ºº¾]Ý^^ ÿÿxv5^¹ÿZ"PxÞ?Ï~û#Ìàí~< |•&áà /ÒTg:T~¨•rœòìþì_ë{½vê>1é@øB† +øZˆÃ»ÒìʤT~ŠçÜÞôB©/àH^k?Hƒä¥êI^ˆÐ×I<ˆÃÔt¡äïÞ /"8Žw× EâÕÅÌ´ ·$öÙrYTsnML÷dLEÑõ%‰”DdÕŒˆw¾æÍfvQÓ¶¦õQúƒXûiJ8´ ÏðÚ´Ó¦˜˜髨Xov ¤ˆ”¿«<Æ ¾^§÷ÒŸ'H¥_M.Ü€—Ô„‘I OèF…~,Ejå2º³º‘ÞMõP7‹¬+jM,=÷\š¦­«–,ë%0ŠIiˆ ‘P^—3gV/²¢Rqì]}€%pÞÅ>õs SuY‰3DpRYB$ǔՓÂË*K¿¤²¢4òe”&'”RJ„ˆHY£û›†:Œ”wYƒÀ +Ô‹N„÷úöþþêrRئôÚb^eÝŠ´E¬YÖe ^a_¾Ø…òÅ'Ê÷ é@éÃ2ï¿ÌKÉÌ4‰ÂÿÇçÜŒÃ2­ŽËÉ`(‘/â€äxÿöÔ¸™ç¿´ÑP,6÷gÛeMÇ×ð=3òW]™ŽU—ƒÑtÏC!„gïÜ-„Ç1ßåžì +Þ4<¢‘Þ«~Å!PG~,’!P˜J_†)…@÷w×èƪïÆ:H¼n(}I7ã°áRJµ< +‡KÁ PŽßÑÓ@Ìãa*=ó¡#yp8ZÛç¬ýÔ$îèuÓ?Þç½òõ*ˆOÝ6Îa¬b DÌ–·à*”¡ƒ+$Ÿòbš#1r!“‘ É5rá‡\ç‡-¼]ár6ãìþçñÝPÈÔ;§6§(8¢Ý®–˺éœjßm!ÇÓ†C +ìIæ+F2%E|\:Ñ~)mEùN†.„±72KΩ0…âk'Q62Ãç;‡"µ¹h ±›ŠÅAº“Šýí*ÖñL¬ÿ²/¥“MòTYçÄA¼SÖü{³ÜA¼‘ŠAgÝúpon•C?*‹ÂÝ ê›„kHø‘ÖÔîj¶?7q¡llcsñC]–õ¦û ço¯u¿ði8e¢a;œ2-3T1ÛÚA¦¾T g#ù5Ž¶5ÝhS³]ÙGÝ¥‡ ¸©YuxW"ë1+‹#éÜ @ø]Y{’¡>–x}YÜzÁËN¥‘¦ê”›\8D¥ÜÜ/"FÅßTiÀ“;X›—º´¾@©CEËS9dß¾”|\¾ÌK¼.ó¬nA盬íŸ^áw› 뮞Ö%q¦\“ê,haPÞQÇÏ7cbX(‹bvâ ŽÕóGìÖà…¢²P® ¬ÂV߀È××µ—«fY·_ATA6-¸g!üôM»¯(2Yew±¾%á6óº~9˜¸·|×îŸ,¨´/úÔ +‚X«…é>V÷`H,üX {Ä&{ÊþŠËoJj!Ox¨‚üH…œü½@*`@o Èi†²M´—ÙRÇN*Ž Ž’¨13¦¬—TIlÍ Ÿ`“ß´Dr’ò_,³´ÂW`³ó Fön0Õ”ÒÃ"¼’Î$‘cÓà´ù·íÀ­|ú]¾ +}YSÔ+^©}nwʲä•Yð}€5ÅIÖ®-ìãxNÓ¸Þ9ׯ—Ža³èߩѵ5=ÁÛWOq/e__KP€sûÄ  Ëd¢ŽRÉ‚4Ù +@{D$«lÁL2$è|èLŬŲ,¦Eg ¸‰×d`€<x„Ve?G`Ã1QÁó![K[_¤ÅÝtÞu4ò‰¸®yeó!ƒm ï¹Èªç}XHçF$´ßtC»oSe¥jèÄÃÕ‘/gÁ¸y†)>rZx«©«ž·ëx~ÎS{;/³©ÅõT¹¯ÅÚ›æ”Ç$XçEà­aÉjTõÌâZh«‘=/G'À„ˆ¾óhkáSZQ¶ÄÚDeÚs5U†Âû`ÁÚ¹Él-a™©{^Ú3kE#ÓãñOXW¢qœâô‚7›â7Ø,££6Éd˜/Ò ÝZ$ mË&8Ñ%Ãï·{@…LÝ7zM¿tÀ¯ø<[Ù"¾]×•1.RuÁíºo”;1$XÄ2—äøîxÜÇ"‰z.§Y˜Œ”õnkÅ1Û2@zıõõrF ëQЛñèbÁÃËbQtÄ´` ϼ~⾚v¡»9¨zlO3;áeÞ›%¯RT[;M³inÀÄ"¡Æ¹;íºÇÜfµ­ŒÅ‚¾ªüx¹´…°˜«cÈâÊ?Ü †ºð ŠÀqÇwøx÷ñâYÙòR(‰1á +:Çšµû<½·1I×éðU™³„·ÄÒxáÎŽ¹ïÖ²«¤Ú ó_°Ë±ã‘ÞRVºq‹ŸÐìáRþ¸•êÍÙ  ÜÐÂUÊS·6"ê)7ëx³Œrrë(5_ù5/ʽ˜Ð‚ðÑ §n‰²&ÄÄГãÉ„Ô†O<ð¢ø˸ S”Ÿ^RZä¨ðø‹Ž[¯·!‚Ã켘PûÑ:Œ‚5Ù`Wi=ž.ŸÙ÷nKÓØؤšr¬Ò®æsÓrpBÞO”iyšP˃ózUrì3ánŠq¤»g¤Ç -]_’ï!üÂ3¯BzìO¤¤(øyݧØ ÏÍè€_Í÷b9¬LùT(ï v‰Ù ^o:q›¥l‰@|4‰d:[Ñ'W`@øDgM9Ôë-Çéu¦= ÀVQ­¡?+!k¶jø'UîÑ­{¾±a<ê—yµ®\4ɦïyv…CnT¶K]³rõQ­cÃió|{u’(`—BŠ> endobj +1432 0 obj << +/D [1430 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1433 0 obj << +/D [1430 0 R /XYZ 56.6929 420.9025 null] +>> endobj +1434 0 obj << +/D [1430 0 R /XYZ 56.6929 408.9473 null] >> endobj 1429 0 obj << -/D [1425 0 R /XYZ 85.0394 277.4405 null] ->> endobj -1424 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F47 879 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1432 0 obj << -/Length 2961 +1437 0 obj << +/Length 3129 /Filter /FlateDecode >> stream -xÚÍ]sÛFîÝ¿BÊŒÍã~ðcï-qìÖÖé9êMæš>P$-í…"U‘²£þúXŠ’©8×zî2ž1A,‹°ˆ•˜„ð'&QÄFšIbt…"šä«³p²€±ïÎÓ\x¢‹!Õ›ÙÙß®U21‰e<™Ýx¥A˜¦b2+~Æ -^‡pú¯w·W¯.dN¯o~H(Ééå÷¯ž]ÝÑ@̤onnßÆÐãòÝíõÍw¿Ü½~•èéìæÝ-¡ï®®¯î®n/¯^ý6ûáìjÖ‹<Ü–ÊûûÙ¯¿…“v÷ÃY(“F“Gx aŒœ¬Ît¤‚H+å1ÕÙû³ô £nꨚDHË=I5¦§È±‚!ÔS»l6ì*ÓÙìÇ– <« ˜—ôܶeAP×Ðsek»²”~B¾´õâßÌ4«™8£Çåæ•H§M¿ kÂ.íÜvíŸnÉìa™U¶³%S6÷ô¼©»rS—ZÔq!D`¢Hº½­ËÍ}³Yeu|””Óv»X”mG/Ý2롲eŠÎ®pG¼l¶UA𜇛ºŸÁ'Z¤×{zÙŽ¹€GSºÝÚæYE/˦íÐùd<½á¹=òeV/ʱm9ë(iX*Ôwgs»Îº²Í)úÅ )'“H§Å6/ B¬7–d5ÎÈJØ°0ƒA3ð|³uÞÔ­m»²Îw„*¶°%OZm…N)ñ=§SEn×W¶=9  æYþ‰É&rÞ-ðCVmK®ªæщÂÜ  Åƒ^®$0°i'×ÌÑ@D(².#È¢H±à逸{KQÿ½&T[æmjzqŠtw-Í´-!òl³±n;ð’1’WÉ›ÕÜÖ™ç"z.ˆÝìx™ë'ÖÌ©hV™²ÎÀƒ1ç™ùÝ÷ä;r6é›5G/¿o˺«v„Ûö–ÈxÊG)õº±x[„­Ó€ÂØ&¬Ìˆ•9´ÅÛÛ÷N\Yb²@x¥!A]bx† y!Ä´üÜmñ4!—òózS¶-)/bDdb®™K-´cNv2r x!˜BD Ø$îÞÚô†1î°¯¢Qï-€XƒÛ–¯àä2r? -Û'zŽ‰]“7žåP±aì@®m »®v_Ò‰1rê–v±tSc3…ãÚäŒÆËŸ„ÓG:‚€k»†C½[Ægô@ס)m¹yp–lÃO–¨©pÎ „:'´i -Ÿ%âs¶ZWÎcã•ð`‹ãEï®/i&$W}>æß=CÞÝ®*„(UezqÁ+ìƒèSâp|®2ˆbLÿ1 ¥“ _3J¶ÙÏæ‚~)yäÑ/Ê"A¨„8Ù17—4à úÑqìôCl;¶I—Õ: ›2š®Ìh–&fà)ðÀõkݹd;(R•„ªlíâ°ÔÓ¬ê õ-–4€²ÚzëCLCÒ–ÀÁB`¶ŽÞ¼âe·-E\`²Ú%Úö(â&È«Àr™+H¤Ø§¼›(·2Brº°ä-ƒQØ&ùßÈÌ»»€€Éˆç¨ /.lÍ,m·Á`•ÕŸP=`ÎN'V¶Ì"kÛí -2ÎË£ ØÒY„VrÓa(ë‰ù´?ØfÛú(ð¥%ÐÛê8²7÷Ý ÇVÛÂuW¯ Ày·Èæꮋµ£–»Þ§W<ÛääRàÐc3ñô‘ñ•uت”sFíÖ%Ó»¸‡¸¼e2Ïû£™nÏ\î‰ú‰ÈŒ m[M\Õ媩m>z¾ŠÏ}ÝçèyóàGì£qìËX, úDÌiÎö‚Üm|ßôzV$B¸TY¸-(4bÞßGÞ:{h¬— -*…ÅMsPŸÀak¹„FÅeƤۆÒ^¹îUâ^÷þ/…mÿ)ÙªÔ*SñÖ[G•ì¡]#@»,†oé¹U®rFÃÒX…šƒÐÝÜ¥Im} Iæñ…à3G YÙ®ëOeŸ•/)úÌ4V·¸ª‡’œ¯BýI7'ÎA‘©û,¹u@ÎX_zjΦúiÅ©‡§æ¨çÕîè¹ß7¼`èä >Fø©n«²X”'Xõ_-{õe‡ñLu¤1ÜÖ‰8²9P9<ò¼- )£p¥Ô ‹ë¹¸ê„"·Í}ˆýûñ×;Pð±_Ý2Uæk¾ßUq,£Ãï÷?7Ë 2PâI h^¼ô3Y]ô›ºÐZà{ɾ‹bÕ°M…FO´†¢XDÔ¸y\½ýÎa¬ÒpúÓ‡W‰J$Ô_€üŸW·Ww¯ƒžìH£:V p¬ý×öƒšÜû—Ô4JT<®!)à 51lFI@†äáOUòúC¯Óú¬ô¢úxYó©EªŸó)‚0Œœ:‹upV‰AÉ40H$O+f°ä7¬˜0 -@dùœ£€†Bm(Ü÷J€E@Ñt0àþíe˜?Ï8ì(€'Åøƒ³†¾’‚ZdrR-ÿ]×P©€À<ã*`‚‰]ßuZ ö/¤„}kùÿ‘ëDJ3P„ÉaûI¯ÂI S§çHyd¾ÜëV*„Vb_p)©\ÌVRSÕ€ˆeöÀCÔ&}RkáP_káËãÒæK"åÆ'³¢°¢6®žŠøbn;BÕÛÕœ:ÅŠ›’Ô{ÕÓùn0Iõ½9ÂK0Vêö¼¬(¸kŠ!÷Ù3(€àÛº.¨ä -éæç<¨ÅpØÊÃV@vTS)Iûë‹aìųüBùñçÕAé·/óXšÖ~î·æëBúFGñ›£}{ÁË,_>“L§š £•é{ê ùèXEZ–OªI“±Rz" ‘Ñ_wÀÌŸ:`æTLú=á—f C-Oÿ -n_‚Ä„dð‚/ß?Ý̸¤”&¡O:,›àÅ‘pyÿ´~ (t°ö_ æ…Óã^AXk#N¥(+ËH©Šb§ ËÓ½¦+µ Oëd°Ü éä¿I /ïµ"1AêÓ‚¡üÊ´ ¡t¨¿œ$¤ëHqÉ:[ÚöËá§0ƒ˜Vî%Ý-ž€DBz‡•Â×¹‹HU§±dòóSዃnaïQŠûÒ÷UûŽÇZw҇߃Z¢(H…AûBºSÓߧøÛ”·¶Í·#w'˜+]p-ófSœºGói®s]NN‹²Í7vîR6艦Ì>ì"ž® xNÙ@c¶¦4DYÆ3¦Ëú¹îBQÔT#Í%lÎ]µÖÉ!XÁÃÙ”ÖÇ.])÷¹Þ]l+×kël¾u· îÝ–®{£øÞN‰Ã-¸©óf‹öR¡çâ2öùH ³ÐÇ0 -¹Þp,Y„ ¦sê͉5Ln ŽÚùh¯ ¶,”»‚†Þ=˜„‹$À·Ö5¾°vx÷±#´»Öîn›ÌˆrÊÒ3Ä®¾¢œøžù'OÜ­OfÙ !‰…rÝ¡sº|fòÞW`”T‚h4AÅ”9Q5@«ŒXÌ_•™;+Úu׶+ÔšŽ¸iȃ».xçGg € X´¦ë…iå[šZ™®n‚粬ÖÌf×våªeJ(—Vt‹Ñ½‚ÖO/Ë%_Pr™Õ;ô´©}Ý’bæ5}kB)qìü„ì{‚Jõ—`Š~ß¡ÕzÔ­h (+ðS¼éTìÞø,Á8þ€!Rì9Hê:—µk0Q™[×ãæœ1·ÂŸŠÇD^Jz¸ß&¸V·CÖ…kÞ{‡Ñ Ï.}’t€ðÒñpŸ-wžpxŸ¯Ä3î+@¹Ý8PÒ¶D›u`î5ÿ.#ÞM‡«àW@Ûú!Dk ;ûÝO8y¶jùÚ_íi¥!Ù¦©Ïž}–õR¡º“ô‰ìô{$5&üSL endstream +xÚÍ]sÛ8î=¿ÂÊL£?ôÁ{KÛdÏ;Ý´çzo:·ÝÙ–m^eÉgÉIýï @Yv䶷ۙk3SA$ B€Å(‚?1Êâ0RFR£Ã8ñh¾¹ŠF+˜ûéJ0ÎGºéc½œ^ýí^¥#šD&£é²G+ £,£éâ·àÕ?nßMï&×72Ž‚$¼¾‰“(x9~xM#†¯Þ>Üúur{ê`:~û@Ó»û»ÉÝë»ë¡t,€bÿ~ûpGH÷ã7w׿O¾º›v,÷Å‘B~ÿ{õÛïÑhÒý|…Êdñè ^¢P#G›+«0ÖJù‘òêýÕ?;‚½Y·tHM±ÊÂ8“逞¤ÒSlÂDIåô„’‰P‚ QÓk!DP|n÷yIRŸ·»¢il]Ñ{½dM¶P½-¢ÑÔ¡ÑB;âˆt# òݵȂ‚^ÞÒ£)ª¶Xà„lE3[å»ÁËz·!ˆfEЮ™Î6Ÿ*ZÞÁñÏnöõÃ{§궞×å‹ë© ¯xǾö H]¾È¤cäFI…MK'éÚ®Önib‚¢š× ‡/ÌO뢢±¦­‰.ãXÏéQ囂–4Åî±ØÑhÍOæ¨.q¬ìR%i0®h É\|Î7Û²hè•ðhç›Nî_ÑJ°WýâT6r¥•&ëCY0h7¶ݹ—¶æç:o HÜÇp|nò¦-ÿcIǾ<å Àl}8_GzZ'[‰ Y×O~Sfi^ÃU-SCkÀ' èG'‰Ó-°ÍÐâ9å-؇”q°©EÂÖdÁÂô,¸E ó Ag‡3¶Z• •¶*Aäe»®÷«5M ¯¶Úç-y,CÔ†ÀÞFpl5¸Þ¬äm÷H'­4éEJC£dæDš’)(8¹|×èÜž­ŸÃ’ÁÊ>’µôfAL²¿•“IHÀ˜gr¢ã)ª`V¬lÅ$Ÿl»î¡Ád™WŸP=p8-»ÆðΖIäM³ß€… ˜(F¥YAO"@C¾M¡™öCY‡ÌÞþhë}ã£\HÀKä–@VH³;+G®-8HÚj^îÉÓàmé\ÂÎùÌ–¶=¸X;xr÷uYÖOî°Ñ·ÉÈ ¥€Óc3IðÄã¥E{=ANß¼à¡Ã¶`|÷pl^‚2™æòl¥“WG¤n!#œülá¦*6ueçÍÐ - +ôûŠ¢hnV?:çH|4NòL³tâ€UÑ„ß^‘9à/ëN`‚xC·*ÊÊ¡…F@ì‡^ÓpþX[ÏÕffW{<bƒ‚³¡ç1»n›Bb(í•‹àQ%îõh/ð²°Íj ɪ …Âbч•7!© ©{›á[L:DjåS~`kQ)‘æàxã‡>×åó¥ãà1/÷_szcÛ¶óº}6>¥èn¦˜•Ü÷B”˜/¹¶9õTàqwÁqÒ~ÈÓÝ-¹wÀœGy›D·©&¯)õÃÿni¨)æ˜oIÏÖžLèy”^0tò£üTÕOe±XHÁÉٹ˳:†{ùÝÃ7Õ™ÆP¬AuÜ{TVù z{âuHZ8ÒzB•®>Ôz¾ÛY”þ¸r&¹a¾êBìßÏb¡D¨!1÷¡ˆcý-)±J¢0Id|šÿ¹Už‘^8ºÈ­‹€ƒ^í§¤n:¡nb…2¢DŸ>LL/* ³86#ÈàÃ4KŒ;”ñûqx÷úWðÃDeQðˇë›T¥ò/ü_ww“Û°C;Ó¨6"Lµööþkò æÀfö=5$³PjÒús Im`n½dJÙ>WÉí‡N!—õÑÛéÖ‡HB™ó5‹&ÌÒ$vú8µÌÖÁn Z¥ub›X’—5ƒ{š\/‘•ÒÙ×ì$‚ð&ùó²Slˆ¿ õWÚÈP¥&ùŠmhÃ`B·Á‰k@’×· àÔ"Ó‹jéoø«%‹B-µþŠièL‡‘§–áC]ÖQ¿£ŽµšÿÇM'Ò8T" ĉ0JO‹FÏŠG*JÂLšÔ 7´Ñi¯x¤ŠGZ t/ÝRR¹ˆ­¤¦œÖù#Oaï¦N3-œê2-|yZÛùšPáû¸±.ùà ÷"Ýw#NŠäff[ªö›™« ¼tßL®€X³Co‘ +õ&·Ì–W¡Äjê3Ÿ|±à<¬9K…ÜGO/ý/ëjA© çGãwhPs,þ\ÅB@~–Q)Iòu©pU´ÏH~!ùùãê$ñ;&yÌMc?w¢ù¬¾Ð‘½§úLnÏx‘Ï×çÏÄ“OEYÑ£¢‡+ï©~ä +fòÑ¢xžKÊ$4 5cßæ`æO9˜ù–Tò{D9/“‹Qg—‚¿ +•(d.ÀÂ7¯Þ‡¿Œ§œQ‚#ÓfMàeI,Ü=€Z?` ìïýWc ùÞ÷ÀQC: …Œ.\Â(4CdRÉm€¾.DpTŽÂ½]VJo»ï¤”ÿåbøþv+RÈ)ébˆC$Ù7^ JÊPƱúòÅ 0Å’8æB‘m¾€ºÓ‹jÅ1TRoáÔÀë…‚Žl ‘£d‰`ô—‡Ý…]"ËÂ×U»ŠG[×L鮋%*13aÐ.ÃÔÇ`l§øfÊkÛÌ÷­¼,]t-æõnñ m”[W…“Á¢hæ;;swÖ͸†¦Ì1îâ8u xM×k 9[Ñ=D×.Ì猗wkmÁCTTµœ¥Ñ9ÕLJ`ýöWÓ½>pÝòåçJSƒr¥¶ÖÎ÷®¹àÞmáŠ7:õ)q*‚[:«÷x\*òT|=ÀîB˜+}ŒâˆG’™ð ¬/½ òØŒHÃâš*¨]ì”H~ꦅ¶LÊYŒ7ÖÕ½0yØú8аëjךÀ39å é bÑ _‘O|Ïý“¶Î&`d›Û  åŠCx82óè­À,©!Ð(¨Cž¥´ËÀéÑñ—Åcî\E»âÚ~ƒZÓ1× að¤ÕïœdàLí ˆOӕ´òM­ÏŽ\âÏuQn™Ì¡i‹MÃ,/m¨ÿ€›Q[ASÍm@ˆ ÷‡}°ê 5˜b¹<làÌøi°+ *ÕõÀrÇ«(Ù£:hI‹¢;ÅF§bóÆg‡Sb³9Vl9ˆê +—5[<£¹u%nÞÁ¦âJøsöÉsIíÎÖ®–JƒÕÂϨ©3röìnOâÆz´tÒ—³¡ùÖ#öÛyðJ4“.õ‡!'==õ nC¸y ǽm‹Út*¼™öwÁÏp²Aü÷ÖÛQ;.‡'ÔÃR†¯%˜f™\0Ä÷^Q>óÅwCí%ŠšcXvìÚ‚ååsˆ ’²`Ú®7¥/c÷öÏ Ê0aÃÝÞ-?éÑE7sÔüP0ê8κ¾­«w2º^y¦R:âµÀ`¹v!¼æ+º 3ôÜ’q–9Að••Ï?ñºšŸždU|f%1²r§:¦Y~-¢à]gB¸„Ω!ôE=x”.CP£/M) ñ†òYS—û¶ ·M‘WT“œR¦4 œzôNQÒœÇ5‰Þ’½ñ³ÕoêG, ·#ÐÝï©^ÀIªÞ»ýݱ»×ìlR²³Åú茱öÑ;î::O‰¹Ï€ÀîdÝhMOïs§ˆÎ÷bØÍü¶äË™§qK¹‹îÿrÁ0Ò©Ï»6û¦Èp ½‰"“0W `›œô6‘…Qœ¤g&Ý4õÜæ]_éÙGöyàÃ1¼ëo9ãvÈ-üà šÈ&ðç@·¿Ü^ dg˜»î]‚ˆacn‹g÷CÖk¸$äªÉÑU¤sCÏKá"_Ò 3ßGʸššå©§ãK²ç"ânUÐÓ™à3dÞœP—°ú¬¤Ü…éÅtß~–)5nG +ÃíxxÚUUMGƒÍ+¸¶sÄ#ßsÊŒD& rb4DQÇøýô~0ƒð¶wM:.*^åÒ‚ +Ì€áÀØ»³½­tv8kš¹ƒ +/ý,LÁw—RC?âŠF_ý`þÖŸŒ6§ÓPe™þnë¾ï˜)'5çœw¿-{Îúð{¼£endstream endobj -1431 0 obj << -/Type /Page -/Contents 1432 0 R -/Resources 1430 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1388 0 R ->> endobj -1433 0 obj << -/D [1431 0 R /XYZ 56.6929 794.5015 null] ->> endobj -486 0 obj << -/D [1431 0 R /XYZ 56.6929 675.8841 null] ->> endobj -1434 0 obj << -/D [1431 0 R /XYZ 56.6929 651.1818 null] ->> endobj -1435 0 obj << -/D [1431 0 R /XYZ 56.6929 465.6376 null] ->> endobj 1436 0 obj << -/D [1431 0 R /XYZ 56.6929 453.6824 null] ->> endobj -1437 0 obj << -/D [1431 0 R /XYZ 56.6929 285.5131 null] +/Type /Page +/Contents 1437 0 R +/Resources 1435 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1445 0 R >> endobj 1438 0 obj << -/D [1431 0 R /XYZ 56.6929 273.5579 null] +/D [1436 0 R /XYZ 85.0394 794.5015 null] >> endobj -490 0 obj << -/D [1431 0 R /XYZ 56.6929 185.3546 null] +486 0 obj << +/D [1436 0 R /XYZ 85.0394 769.5949 null] >> endobj 1439 0 obj << -/D [1431 0 R /XYZ 56.6929 160.9016 null] ->> endobj -1430 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1442 0 obj << -/Length 2995 -/Filter /FlateDecode ->> -stream -xÚÍZ_sã6ϧðÃ=(3µÊ¿Õ·´ÍöÜéf÷\ßLçÚ>(¶kN–|–¼Ùܧ?€eY±“ÝÛtÚÍÌ’"AðÂr"àONœ…ÎÌ$ÍLl…´“åæBLî¡ï‡ É4Ó@4R}»¸øúN'Yœ%*™,î¼\,œ““Åê×軿_½_\Ï/§ÊŠ(‰/§6Ñ·³›ï©%£â»w7of?üs~u™šh1{wCÍóë7×óë›ï®/§R«€fÿzwsMDof?]_þ¾øñâzÑ/y¸-)4®÷?¿þ.&+ØÝ"Ö™³“ø±Ì25Ù\«ck´-ÕÅÏÿèzýÐSb²ÚÅÖ©ô„œ”>%'›Å‰†.”S½ßÜ;Ø‘vÑoB¨]ÛÁNµH¢Ù¶fQ÷ÐP÷vW6»²+‹–¾óÝ¥tQAݺ ò6ß—2ú -¾ŒŒrêm‹Ýš%‹J¾\7mQS}—׫fS=^J)££ù]T7ÌØósw\Rq_~ VYXå# Èg*eœY«üf+v:¢z»mêUYßãz3ÅÛp&ÚäeEt,¨v}æ÷EÝÍCY1Í]N5ÝæËó¸†ËÀ².>2Šr_´Ì©_4ïßH½m~SKä«æÔîê¹)­ó8¥Ê¢¼~¤¦ü¶mª}WÐצÈkØ3Ñü¦TJÍ°Ò@Þ -¨^òš'hêŠ ƒ‹eW†IýÆ‘ -øí¨úö—!«eãËUKwÍ.Ìïè@ò²>Þ$Ùu êJ”Š(XmM öuì§ëVQå°ìˆM¾\—5àz±|X—ËõBTßëk·aÚ¢*Q«qK+^Ó¬ÃEýÆ ],LŠ‹[Øì[¦:2OD"K˜ˆÎ§ÉI àÞl’ŽTºm›e™wÅŠ¼R¾Zñ™´Ôp,rjûMXqEU/{(¯à4K& @ysõ–^ÉIÏ Òîï)ºe V÷–Æ™VÎ/ðŸ!!SM¦ -U:7´¼TEå5z¥aåƒO?)”· MXKŸ°°Ä=Ý"ÎV÷*½ ->!æÉÉFÏR —’F%s,v¾hàòðŒ´Ÿö„Ö²§È„W,Ëûº9¨ŽŸÕmWä¸"-DðYpD0ä)“# ¤&ò:‡†Þõbì´Äã -Ô~+8 -±S€>k+!†ML@­#;8`A‰œÁ2s€tÀT½ÀuÎ)§xbW[p5ïAJ±CûÇ0 Ŧ:•±K¤<Æ)o"š-JŽS ßð±i¹ËeQx hÅP°Vœ‘[ê€>v ·ƒ=%6Kk‚œù°,£<„ôá°b,{‡ÑEQ µ±„ólðÅB"€%.ºŽÂ=à¶XüÔžX@¼ÿ$“^zK¢®ÜÓ®™VÞA É( /‰æs*=°¬VôAÁ¡uøÔjz[vÜòž$ž0ÊÜrÌR0ºôTÄ`_—];œ9H»„ ½õG~?e‚Áô&ß•>DEm±: T“þ ©øušÖ¢èCm !cAÕù¼Å[À84T©²*Ú宼-˜Óºy JÕø€Z˜¾<Õm1˜hÚîšC4¤#/B(Ûu³¯zšSǪl—9[FZŠp¨"îªjz•èÖ4÷vÛ¢=¶Úêb¿øXî)‚S«Ø"¼°)Z¬yÿmê"ŸB±¯)Aýlj&FÁÕ"’OrØ:Óq*Rýyûô¨Ø7àÈ”H?ã -#F—P¿)pB*çÆK%—i;12•N ·þüîM¾$œœ‰ªÜ?2X›fa›`“š†*~úÀ†.p¨‹ûœßj,)ëW☈ë0,­£0·j©U.±¤mGFÅjnmÿúÕÃËXgðo¶·(¨ÖÍüìz^r° ýÍ/ß¿{{5» /vðj×í)Å¿£ÕnHÙ›}|Êø{SØäËÍž©ÑÙ Ù…ëá .1×á=DS&¹kï+z‹~ -˜…‹U’¨ÉP!¾LÉPµp<¸†N|N„Fœ×[ã ô¶ö½Õ‰‰LI¸óîÂà³%½ÑÁmLmùƒgâ—+vⳟVüˆŒ4]³¥t@¾!ð!?‚5ò#ÔúÊ#f` ¤?ØŠÏO-Ïz^WÅ]¾¯º‘óë•¢8@€9§E4ûîÈçõÏ-Ë£¶èžQŒÄ¿ìÇŠa^U1.$»>§FÄ€ É¡ay x8ÕÑuŽo®JYêT–/D¨„glëå É¿[*É©)ˈ€êÇe=¢œÏ=㊃hpÂW›o-ÁwÍÓ_‰Ð±ÉWÅ1§ª@‰ñݦ¡¤¦“iÍG¨ª-ïkºÊ( èÔ!æéPyš,_EUÜuÃ\¨ŠvåýóËF¤cB+•}¦Xo·M[vœ¨=Lä;/¦†h-¤Ô -,ZQ0ëAæWA²Ï«Š«»²›ž‚ˆ]QûÌ Fyû–Ó2yHÊpþò2>5…úÅéZÈH=ëvHp‘±ÂÝ3à`:øÎËú™@ŽÕ!q3>xÅZßOtbKæÄGx<Ü?jªö»À Âç>Ô´}b9„õŽ”¿ƒiï}eYP÷ÓÜc -÷.?­@KÞåÔ8f\ÿtÀåp1º`Ÿcì?8uÈËi…®ÄŸ:¦Ø}«Ž6àüËmÅh3Pyš¥Î8?ÙÿB*~2¸BÂ|ëœ)7‡ÝÓ“VÀ%ç°N86¼üÂƹoÖÈ€~¼˜ýÎSÞæ¿9UKŒª­‘bTýjÕ*/%™ËμV*1ªv©}tòn>û_¦­Ô":6ˆÞŸeÃÙ¾lPö%KâÔèô%™˜tÃåÔ¥ KnΛVîšæùìXÍ`Ò×Í_¯j eô³xUXÓLèÈ:ñK-1yñ´?õwa‡ßÆ™4ÖΩÓð¸‡Ñ€øžuš=9Äð2¦,ýH´xêendstream -endobj -1441 0 obj << -/Type /Page -/Contents 1442 0 R -/Resources 1440 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1452 0 R ->> endobj -1443 0 obj << -/D [1441 0 R /XYZ 85.0394 794.5015 null] ->> endobj -1444 0 obj << -/D [1441 0 R /XYZ 85.0394 649.2264 null] ->> endobj -1445 0 obj << -/D [1441 0 R /XYZ 85.0394 637.2712 null] ->> endobj -494 0 obj << -/D [1441 0 R /XYZ 85.0394 501.7371 null] ->> endobj -1446 0 obj << -/D [1441 0 R /XYZ 85.0394 474.4327 null] ->> endobj -1447 0 obj << -/D [1441 0 R /XYZ 85.0394 432.9601 null] ->> endobj -1448 0 obj << -/D [1441 0 R /XYZ 85.0394 421.005 null] ->> endobj -498 0 obj << -/D [1441 0 R /XYZ 85.0394 252.2904 null] ->> endobj -1449 0 obj << -/D [1441 0 R /XYZ 85.0394 222.301 null] ->> endobj -1450 0 obj << -/D [1441 0 R /XYZ 85.0394 133.0078 null] ->> endobj -1451 0 obj << -/D [1441 0 R /XYZ 85.0394 121.0526 null] +/D [1436 0 R /XYZ 85.0394 750.0533 null] >> endobj 1440 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F47 879 0 R /F39 863 0 R /F21 658 0 R >> +/D [1436 0 R /XYZ 85.0394 564.5091 null] +>> endobj +1441 0 obj << +/D [1436 0 R /XYZ 85.0394 552.554 null] +>> endobj +1442 0 obj << +/D [1436 0 R /XYZ 85.0394 384.3846 null] +>> endobj +1443 0 obj << +/D [1436 0 R /XYZ 85.0394 372.4294 null] +>> endobj +490 0 obj << +/D [1436 0 R /XYZ 85.0394 286.7057 null] +>> endobj +1444 0 obj << +/D [1436 0 R /XYZ 85.0394 262.3661 null] +>> endobj +1435 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1455 0 obj << -/Length 2169 +1448 0 obj << +/Length 2766 /Filter /FlateDecode >> stream -xÚ­Y_oÛ8ϧÐÃ=È@ÍåQ‡ÅÙÔéyÑ${©w{Øn›‰ØRjÉI{Ÿþ†R–%Í]ƒÕ˜g†3¿2,¡ð%Jó<ÉrIe*YnhrsïŽXà™F¦iŸë—ÅÑO§"Kr’k®“ÅuO–!Ô–,VŸRM™€šþyq>›L¹¢ééü=PLHÅÓ“ÿ¶˜]ℬ¿ÌÏßâHŽŸ“‹óÓù»ß/'™Ló‹s¾œÎ.gç'³ÉçůG³E§rß,F…Ó÷ËѧÏ4Yu¿Q"r£’{øA Ësžl¤DI!âÈæèÃÑ¿:½Y¿tÌMÏTÂÈxɶŒ“¢—PD1­Æœ¦Nˈ`œ¾U½-ÊjZ¹“}¼¹†vDÊxŸF¤ –ÅM—õvëBrä¤1RDAŸGÔ‡ Ò„ ×õÂ陳3¸ŒÇÐØÖ‡‹ÁÊ‚eŽæi—EÜê¾Äœa!Þ¹¯R.gߢú†Ä¾úuªt‚<üa¶W“€ û¸ò?ûXÈe–:!»¦ÅÀ‰¦ -Š.ÜFLbÃ×ã©›ÃNìX„éŠW¹,Û±¤b -º3“ŤŒ%bxüŒ "ï1d$“ÆgZ/z’ «…Ž>ŠúLjRQd,/‰Ty L0s¹ß¡ª1K!—MvHЧ#¨o(zRöcÀ¹»îÜŽŽAåMà2npnÍ­]öbä¾íz ë `Y®¿¯ì k oþÍ~Û€2‹vX4|cæÁ쪩7ûÖ’‘4‘® †ø%ÆaX_›©ä²ØÈq2Öp}üø¢ßaÜÉùñ™»¥ ÏŽççÓ³Ë?à¢6Šmýý¢ÎPgË»bÓÙ§ðXçnm·=™ýûøì·÷3rrqFPé Šj2d||& Z1’A×ßCpþÁc5ym—£åj€ºJªEŒ†k¨³O¸‚îuð»^ï\×:"43Z©¿½Ícâ œ¹ÊþŸzNî2çne½ -p‰(bS&2¸ñ¸è¯ÝEg0=py·±#Ñ T•”æEc¦C"ìàÓ ¶öé¿ï0ìf±• ê••‡½ütÑÆÉ2¿­a‰«T§óë±–ƒÁ…ÚpñÝS¢à?‘÷! Ä÷ ë u—ÐüAÁ麼NÙŒô\qí¾l×£uQtHõRDƒÞ%{€ËØ ìmhÉjWïËÆ>èLŸ¯,ƒÓÏäÿªS4ÞÝ1C'² šjBˆÊ¼W˜¤‰'ãi W£@æ%ýL×¢Z çÎî—÷ÈAŽA‡4(¿áèºûÝîJw}¸tn´C9õ‚îàFÊWuµ´±îª¡ãÍóaDõ /Rþra«þU¥X‘§Þà˜$wï/¯ñ– Â9Ü’_~ߎ+žºg”d”šï<†1gâ5_Ã…‡ê× ë ~ú5ŒA1cF¡Eþò,³<\ž¥¡=¼ip -S)‹<.|¸ÑÞƒ 4ëz¿Y!§kÎÝØÎ6m½³a´¸ö·L7QT#ÏqBp¢Õ!ã¡öǦ-L "µø“…tå“®…RªôʽHíîRû‚àV¸oSbßâèºBžûµÅw7ˆ.âàø‘À±#xaÑ@›¦û‡¤‹Ê Þ¢›\$Tx™rïá"“q¾ÁÁ+ÀS¤Ü]ß}A½mX»ðÊ .Q ¿ÂÆ¡ªiñÜöv…²‹À^àgåÔîÊb:Ö/¶¥s{/»ÞÕ[¤ð%&ט7HÉɲE»ßùçÁ7‡§6÷uv<ýÖÖKÔKý×j£þÆ'ÿ‡ I<Úþ3Ķ\ƒ^´[½N#3Dè,¡áYS†>Bh-.ô­§üÄJrendstream +xÚÍZÝoÛ8Ï_¡‡}P€ŠË/QÔ¾uÛ´—Å6é¹>`qÝ>(¶ 'K^KnÚûëo†Cʲc;éµÅ"j8’Ãß|Q‡?¥†™\æQ–k–r‘F³åî ïõ™ð6L±sÀã__]œ'2åñ«Ëß¡%”NeüâÏßN/&Ôa<믗W/‰’ÓãÅõÕ«Ë×ÿšÒW–2žjeÊÀarãôåÕÄfí@c”Öñ% BIžÇoþp  ~žd06^UÍv†ìiW糩€CÙ®äëö†Z í»¨Kr–¦ÖÖ¨€deЯ¡ +Û×N´£œväÕC3ç?¸~8´88§Gô#$Èãêˆ~äX?즘ýg³bíúî„vFóþ¸Ú198 mÓG¬£7KÉ‹?´ŸDLÎÆÏái¦þ‰£*Oþ«ÈjðÑJV‘±–É,ÏíQ"³:’ÇuD³S'´[GÐ@“³\§¨„ñl7€>¤2³L[\µI3&…ѧ©Q9“VQ`xçš—2ž—uõ±\Æ7ßWµ§ß”ô,ú¾\®úrN¯}‹²wÔ"s`ü ЈE¹C„ EŠf~HjJ0#™ò¡Ã0+­ôCþä)¯¿‹ÆoaaÓkèÏfÃôQ¢2Á¬#cA9Õ-åMYõ‹Ò' ­'ö‹¶+©Ùmf³²œ?£·‘^‘í Ú  A”GjÛ:ÐCZOœ>ˆßŸH¿ñ+ΊùÁb€<ŒN¤ÌX8¦D¥LŸ#`î© ÑäœÇïʾ¯š;’6þÞX¤61s-(bNnr÷Õ²Lú6Ám…t”ŽUËçF?Œc"ÃV]|¬.îUËcE°ÆuÐrµÀE?L•38s‘gÑ_‡0IJâP %Rlþ%"È£ …Cgò$f¡ŸqI?*ö'ç%4d#¤cA˜hJfàèüf¤Rì,zzöÄ !¥]ýŽ#9ä>°EQÙc¹# 쀰ƒÔ;˜´ó³‚°wšåm±©û=Ÿ7¢ÜFþ‰¿µ¹‡ä¡Ýô;®®[•³ +—9ÛÔ•ý PlÕýu¸ ý-17F˜Ó Ð/žÈ‘E¹´²ÛLÅ`I˜¢¥Ô)S¡±(œ¹A« éß;z’3“©O¨½uˆðR5{œ“‰ËÁÿ,ª0sȈӱ—;îÛ(ŒÃ6‚“ã['ÇÇNŽû½x‡"jhT§0Òí·BÀÓ+ŸïKE‰wùÂÊGs(2­6§+e3È›U Ïñ8U.ÈsäUŽ<’zHœ—ç"ö&î˜Zâð9&’h¼å˜Úù¡vs·ØctÖ8êÆOU~ZÕÕ¬réÒWà + tλ|Ñóì@±°ÄBñC…TÖf¡Î8RxžµöµÁeƒÐõð|S¬VÛçq|ùö£~¼`˜”^ŽÊ!rL•Í·Éõ¦¯Ú†zÑk÷ çü£"ƒ½®‹¦« Ï=ÛpŽ£.ßµ˜Ï½ÐŽ:Ü!BNê~NÚ±CÔ†¥Í‰Š9?R—%ÌE$:p²Q·K?ŠªIÜü™ŽY±^ô’*0…4T«!«°R¡¢¬‰ßN'ÔðÑW¯XTd’Çà*­` 6>¬9ÂÞ\÷ÎG¨(½èm©ý›nSÔ®HÁÑëªO¥†}Ù0—ÁÀJ7ˆKÅ)ª#d\þ‡âr +ûDvÞÞÃSîÃSz|a‡É$ÖäN€¯ß ÃǼ|˜ ð°Muçdˆè/=ꇉlIÁœxÃö‡»kL9¤û6H‚Šy¨.êW*yKàÅ÷`Úט•Ô½ iâ¼·)@)ú‚ˆ£"Æ·>PŽC%¨ ö¹ŸóŽÅá“€©8" +]‰;u!QU¼ç_­j?€6=K$¢»"Êì á&ƒæ[žs¹­Ò?¡Ö8q?-eü×®qp ó<„È9¼]’}ðwQÎæ9VHK,¤ñ6î﫤¿Ùåô€Ja˜ÌÓ#_Ë|*±’¶¤ÀŸ®'—¯ñ:ŠÇ»¶0¸ðƒùØxª¯[ý6û +áš)Íåi…ðŒåÒXòç‰Í@¨þÍÙ6nÛöô‡°A3£9¿•f~ LÕrúÂ|æ:°ãÆúe9OýÐÖ±èŒ) °ë󡎇’eáñZþàWJáCžk´ôÿð˜ÉÏendstream endobj -1454 0 obj << +1447 0 obj << /Type /Page -/Contents 1455 0 R -/Resources 1453 0 R +/Contents 1448 0 R +/Resources 1446 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1452 0 R +/Parent 1445 0 R >> endobj -1456 0 obj << -/D [1454 0 R /XYZ 56.6929 794.5015 null] +1449 0 obj << +/D [1447 0 R /XYZ 56.6929 794.5015 null] >> endobj -502 0 obj << -/D [1454 0 R /XYZ 56.6929 637.1539 null] +1450 0 obj << +/D [1447 0 R /XYZ 56.6929 756.8229 null] >> endobj -1457 0 obj << -/D [1454 0 R /XYZ 56.6929 611.4253 null] +1451 0 obj << +/D [1447 0 R /XYZ 56.6929 744.8677 null] >> endobj -506 0 obj << -/D [1454 0 R /XYZ 56.6929 538.4006 null] +494 0 obj << +/D [1447 0 R /XYZ 56.6929 609.3337 null] >> endobj -1458 0 obj << -/D [1454 0 R /XYZ 56.6929 510.9165 null] ->> endobj -510 0 obj << -/D [1454 0 R /XYZ 56.6929 308.8105 null] ->> endobj -1459 0 obj << -/D [1454 0 R /XYZ 56.6929 279.7922 null] +1452 0 obj << +/D [1447 0 R /XYZ 56.6929 582.0292 null] >> endobj 1453 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F62 995 0 R /F63 998 0 R /F21 658 0 R /F53 962 0 R /F11 1298 0 R /F39 863 0 R >> +/D [1447 0 R /XYZ 56.6929 540.5567 null] +>> endobj +1454 0 obj << +/D [1447 0 R /XYZ 56.6929 528.6015 null] +>> endobj +498 0 obj << +/D [1447 0 R /XYZ 56.6929 359.8869 null] +>> endobj +1455 0 obj << +/D [1447 0 R /XYZ 56.6929 329.8975 null] +>> endobj +1456 0 obj << +/D [1447 0 R /XYZ 56.6929 240.6043 null] +>> endobj +1457 0 obj << +/D [1447 0 R /XYZ 56.6929 228.6491 null] +>> endobj +1446 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F47 879 0 R /F62 995 0 R /F63 998 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1462 0 obj << -/Length 3059 +1460 0 obj << +/Length 2195 /Filter /FlateDecode >> stream -xÚÝÉrÛ8öî¯Ð!¹ÊDc!¸ôÍ(O¥Œ£éêšt”HÛ¬¡HµHÅI¾~ÞøXìžt×T}„åo_@1ãð/f‰f\¥á,NC¦¹Ð³õæŒÏî`îÍ™°k·(¯úiyöÃkÏR–F2š-oG°Æ“DÌ–ùÇùË¿]¾_.nΩù2i•0ÈØC')|tÒ)‹”T†Nˆ™f -åœÏ—÷!÷b¹|K½Wå®Xwåçqˆj‘ϲ4¡õákÝe_~´ ÇG+Í´ˆBØ€ë p³H¡Éˆ%!P€åÅm¶¯º ë*ÏÉQÂd -»ö£šbJÄÚ.X7›MQw@¡€C•ô WÌØÈâø=–*™zE$Iù¼3T‚Ž½#ýXžk=/7…û•ÊyCý·H=ÓûkÈC#hà¶ÙQ§Ý¯Úâ÷=^ÒüÞ‹d^¬Óæ- >”Ý=õöu^üƹ¬‹Üž·|Û‚ˆ†ŠÏÁ£³ªÍ`OÌ3JÃÍí€ " ¼‚¥Z“þì²úÎʤã0QQÓH «s8ïÓ|J³ÕòÕŽêeK`Ç(Áϲ¶Úøú%u¤âÉp&ÝV"¸ÀÁ @ЄàQ/Ú‘ìAóÎÚ®ØY.+‹ãâKWÔmÙÔ?žJ8£"¼Y\/À>I—‹?]#œ|NO9æH1ΕӟoªûÖs -YÂås•Ã¯aŽ‹N1Ìq>X)RÇNѪ¬õÝH¦,Iât¬fÀh¸râîÜ}ÝZw^Cà7èÿ_¢þ(ž2W·rcØÔ>IëH\êù¾5² ½MƒŒækRɬ+h<£¦-vea7E…–V¶ÍÞtÖ8´ý>ëìæºúJ½¼¼Å%·Föá÷­ÙÑlL‘­ïí}»de·f5µ%(NÖÁQà,}º8¬ƒ^7ŸC*p•‘p,Xãa*Šæ«ÛØÒ GfØY["VØ¿+j¼“]k´‡Û¢k©‡Ôé:á$ þ¾/©39'“¼Ý6»ÎBܯ¨óƒ Ç›?»– hà™`ŸUq—u`Yz#×®wåê„‘±5B/Q™ª¢µ;¯®ƒËW¯nØåÍ{$楃ç°,Q©Ï[±}wsõæ -¢œl"grH6‚{ɦ¾`ÂA´¸OÒ æúµ7¿,n^°Å¯—?¿»x(!cê¾ æåõåÏvòã~ ;ÆÈùäâç¬"ÿ ¿‰'¨AÎ pHRâRâæ$ORGœ4¢ ­{&÷ä3Êç%”ó# ãç¢`W9oT UÇá,”Š‰D$Ï «UªXÌãGaõ·Ë]„›ø"‰´>~ÚÇ–íºSPAT ’|U¤üA»‚)¥4xª%BÉQp¨qH,"[º¼7Ú%dU±ƒVÛ¦6˜¼ t u "Ý´h€B0z]¶ë‚¶k¶v׎Úaü¦¶ ¢š_9P÷öŒævmç<ãÏ”Z´óh÷Àë¦xP±.k)OɃB+0êÕÑü²ªh€Û”.i!ZbVçnÚÞì[ så …·M[b¸w ˜ÂQEÀã ¿O,P!ÊMàÀŒeø`ö[ŽÊš +!ØÄÓ²¦â–Ådaý!¦OÒÐg9÷Öö¬¤ñæ¡Æ°Çêlão­:ŒqpúÐw N^Ú•]4DR¹×4]ÖÍh`|YßU…'|Ñ@Ú$q1ê ÒLGÚ-À\.oª*Û9¸wµMì"H‘¾nVMÕÒæmÆÑG}¾õ˜ô!ä*wa´Ÿæ"b¡€.­i˼ ðC^9n«lM!FŠaœ‰O¤H—‰˜J·™ÔÝ™_àK÷ší0ísY¿+:êdÔ¼°›kj{h;ÛîúÁޯ͞Fë‚‚,eƒ,Ì^gÛbØìÏ(Ç„‡0¨†Üe{d0”©¹#4«lýïb©{Ú -¹Ùh+$¨Â´·ö¥,»k B@‘‚Ý10HCcÑçLµ,\ò\̇{¦ñ **@h;ºF¾7Ê‚ 0çÁ¹ÌÃ^C¼ ',·^’§àF¢*n;‚¸ÚJ’ÀƒJHIóÌUeOú®ü`R™LiÌ1‚-CyDS”i¡Ã“La”d­Ï ª)Œ &z{LÆÝ‚ñ/ ÷>^ ‹>}ò@Náì¨/%Ü=C;ç¯MTD)¾d›mU\x®i&”ÖOa>«@ò u‘ûL@Ê”:Á„TZ–Ë$ªQãPŸ(Eõ¹üï°Bü‚ûµ2iÕËÆQ‹Ž,Ž–6Ñ Xa%°¦ŸŒät:)¼ºé¨“­Ú¦ÚwF}‡„*œ(¹“À(ÙWÕ]­ÇƒS §ËøÑéð³FÍ%~Æñàƒl°ØØêŠ+c,ï ·UVRcíu›u媬ÊÎD¡}ÆÀÉ"ÛU¥ ÆRÖÉ|\Ä1KÒ´÷m>ç&¤Ac¬ð„¶+11Dø.¸«Ëoæhcô°-ë¼tÞÜOW1×€ƒñ¾hƒlíÝD+Öú¼˜–óz‘;ž:Ž3²ïLó†Üñ/¨Rˆ$d2J³ö:ÀeÛÇ9² a²~ŠsB³T…ö -!âNŽ=’C“M}daƒ—¼ÙdN(ˆ3‰ØÕ#…'†7ë¢mµåò´yW¦‡6÷% .ŒÐû>’ \¾ˆú_¼a”˜Ä@oHÝY”’4¸O³>ÑR?X€à4Hcœ |Vž/´"Í”¶²^ø­#Déñ¯Gäñ¯GrûÚMŸ°L¸mecøX¦pŸÅ<Ò8 -¤P>²]7Íîû(¨…X''•·»¾Ñ«“­ ¸D“ûì0Bv´;*%|_¾ñÙ“šøÜïì†o CS¡Q~õ|t·B‚&â@îÝyžËÿßÓendstream +xÚ½YooÛ6ŸOá{¡3'þ“ÈáÁ€,u:‰³ÇõÖa]_(6S °¥Ô’›fŸ~G)S±ÒtOŸ¢IïŽw¿»£é(…?:R’¤\‹Q®‘)•£åö$½ƒ¹—'Ô¯‡EãxÕ‹“ï.x>ÒDg,-n#^Š¤JÑÑbõ&9ÿéì—Åd~:f2M2r:–Yšü8½ÀóëÙÅôå¯ó³Ó\$‹éõ ‡ç“‹É|2;ŸœŽ)’îYüq=›à¢‹éåäôíâç“É¢9V‹¦ÜÊûþäÍÛt´í~>I ×JŽîá%%Tk6Úžɉœ‡‘ÍÉ«“ÿv £Y÷é™$WD*–؉Ñ¥DKÉz†’šdœqg(«š=Ó4M®ÛµÙ¡vÔ•ñz–O½(wfÙ–Lcõî<:…tkHN¹tlkû‘RÉUÑ´Ž)О•ÒÉE½Û-ŽÞ eU¶e±Ù<àëÊü™¦¬2«0‹ŸÎ/Îq ,‘**¿f¬tÒìoó~oª6p»1¦BÊ|lMµ2+8QÁdòzm¥…¬ +µ@…víõîTèY£Sè²mÌæÖÓ >—›¢ñd ÛÝÙ=+¿”DbwJA eíž«n¹_õ©í·ûÆ3»ñ#µ “»)¶&’…tJ*"¤Âãf'‚ái{©–›ýÊø£§ÑÑSΉÊ3ë–å7×óéËélÀG„ Š{âºoX ¢åÑtv~ùë‹É'ɈÌÙÚ Üà˜%„s•ž‹Å%b̲”HBqaåâP‹`Ë T?žƒWU[|ü~@..‰¤™2šì-'œ2æ×­êmQVãÊíñæ™"Lˆpo¸q`–»-ëíÖúäÀIQ¢ŒÞˆ?¦:#Œ4yÏ>èÁD8‡Æ´Î¯hpWêU³4K*ïºvƒŒ&÷%F õÏ’âÎEÕʯ¬ñYTHì«÷ûbSZÁ5ìq¼pʌ߷À/ÿòèG}4ÓÄ2Ù5-zNPÅÃfd]بÀ†§CT;á‡-;رðÓåönS.Ëv(ª¨$à\†@“¡ôöúõkð~ rç³³+[ê( ¯Î¦³ñ«Éü7¨Á-Þ/È ™¶üPl:ÝàŽe~ô-lO&¿Ÿ]ýr9!ç×W…ö¢d}Iú ÏXƒo(NEáìÂC:ùjÞËW=Ø•PzAÉåÞB¢}Á%z´Ë€Ï"x½+ß¡{?â’©LÊÀÎCìÀ™Ìÿ—„F┤ÂVžq +˜#òP—ñ<¹sî_/«ˆ`ãx3à.|U +¡>ËdTuðQø\|ÁÖ.¾àýþ€Ãv‹/^Y9ÜËMm˜,=ó»>±É#Í’éíPÑA9ô"Œ?{L)ëÓ€} I˜pR¨P¤ÎŸ(P;a#‰L€í¾l׃‰N‘wPõ¹¼‹v—¡,Ø_”Õ6Þ—yTœ~:%ÐN?ÿT¦ ü¾±å=‚~žC™’ª~Ù‹  T8G£»ŠàB÷„t3]´¯Q€Â5Ìίr9ðQhyÂàŽ® ¿ßÝ®¬wÇŸàMFIÞÿ§êcÀ!‚_ÕÕÒôØ‚GAQÐpö=*v$ì¥\aª¸[)дC}/ç ²#ûs_ʈÖR 7¾ÁšÆ2ý4/ü.^ž _ôYî ¶ˆ¶áÖõÇ<îu +˜¯èˆS»,E4‹NfP[[ï„Æ +@oÝkÈW4YÀ–Ýh›ò@4–[¨„ʶ½¹ÍqQD;]6pßM·lô¢F‘Rñ8æì”ÊXH,'© $¦¡4c¢m-rí{h¡ÒsœÂpFÊà.ì¨õX* ;Ьëýf…+m…nÇv¦iëñ£Å­ë5íDáÑ0ë¡!¸O&Q@¨ÜüDÏ[#çïé íäPzh…ÉÍ)\°²‹Ì%;hñÂ>›‹K×®¹_¼±ƒh &€—€v9¢cìt±ij¿¿¼ \¿wðf²U—þžŠçÒÞSñ\„ùoS‘²-¿}‚x[ÿíÂ%);¸D1Ü& UM‹ç¶7+ä]øå> Ãç€àe1¼)­yX®’Û]½E +/dr¼ùÉÂ/²¼LÑîwæöô“ëàiõ8‚¡s’qp‹8X¿,þ-ÒH ããÃ-Ú—¡SR¤€uÑ•ÛñÕ$K¾)‹ÊS~Tž.—_¯4µÌ‹?I@èînÁÜûM;nÛÍ¿|·N–ƒVyÊûiú•«1t(€ð2âËâTB oMxÓ,©‘¾´ÖsÔŸ©LAyxP¸uîÄáŽßïâ´¯™µ¯â I»ßâÒ^ pñßìÖŦŒf,E}ßçEqtºk,ÇÖ®¨Þy_Hm 6ÏDîïò@°jÕ<Ñýôn`º£fÇGMJ±JQë‹! „­œ{F¹rø¡©V”ßÁµ3ï؇Ëöá;Ɖ½†mO¾·—0QeøÍËÉl2?³&]üÿ›µ®xêírìÌð)ñÍfÝ _Hª”}np G͉æLýÓžÍÝ3¸&Ðéþ^¿)‘»ÛžöáÎ+¸TÐ6Øÿ_%üKI(W8úÁ#íüð‹^9à¸í#”bqewiVyh¿¼PVpEKÞýs,úßÑjŒUendstream endobj -1461 0 obj << +1459 0 obj << /Type /Page -/Contents 1462 0 R -/Resources 1460 0 R +/Contents 1460 0 R +/Resources 1458 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1452 0 R +/Parent 1445 0 R +>> endobj +1461 0 obj << +/D [1459 0 R /XYZ 85.0394 794.5015 null] +>> endobj +502 0 obj << +/D [1459 0 R /XYZ 85.0394 769.5949 null] +>> endobj +1462 0 obj << +/D [1459 0 R /XYZ 85.0394 752.162 null] +>> endobj +506 0 obj << +/D [1459 0 R /XYZ 85.0394 685.5532 null] >> endobj 1463 0 obj << -/D [1461 0 R /XYZ 85.0394 794.5015 null] +/D [1459 0 R /XYZ 85.0394 660.2382 null] >> endobj -514 0 obj << -/D [1461 0 R /XYZ 85.0394 769.5949 null] +510 0 obj << +/D [1459 0 R /XYZ 85.0394 468.978 null] >> endobj 1464 0 obj << -/D [1461 0 R /XYZ 85.0394 751.488 null] +/D [1459 0 R /XYZ 85.0394 442.1289 null] >> endobj -518 0 obj << -/D [1461 0 R /XYZ 85.0394 670.5492 null] +514 0 obj << +/D [1459 0 R /XYZ 85.0394 217.1462 null] >> endobj 1465 0 obj << -/D [1461 0 R /XYZ 85.0394 643.3882 null] +/D [1459 0 R /XYZ 85.0394 194.0979 null] +>> endobj +518 0 obj << +/D [1459 0 R /XYZ 85.0394 110.3497 null] >> endobj 1466 0 obj << -/D [1461 0 R /XYZ 85.0394 435.5355 null] +/D [1459 0 R /XYZ 85.0394 82.4166 null] >> endobj -1467 0 obj << -/D [1461 0 R /XYZ 85.0394 423.5803 null] ->> endobj -1460 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F53 962 0 R /F39 863 0 R /F14 685 0 R >> +1458 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F53 962 0 R /F11 1304 0 R /F39 863 0 R /F62 995 0 R /F63 998 0 R >> +/XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1470 0 obj << -/Length 1570 +1469 0 obj << +/Length 3190 /Filter /FlateDecode >> stream -xÚ¥WKsÛ6¾ëWèVi&Bñ" ÔJ•É8­£^šæ‰”…1_%(;ê¯ï R¢,7“éð€Å\ì~ûÀ‚M)|lÅ$Ny:MRI"ʢ鶜Ð鬽Ÿ°°gÑoZœïz»žü¼É4%iÌãézw&Kª›®³/³˜2 tö移Ûù‚Gt¶\}Š ñÙ»_o~[ßÞãB¶¾]Ýý‚œ‡wŸî–«÷ÜßÌ9[¯>Ý!ûþvy{{÷îvþuýar»T>7‹Qáôý{òå+f`݇ %"UÑô&”°4åÓr"#A")DÏ)&Ÿ'¿ÏVý¯Wab”pó+8qq §(%±€%‡ÓÉd…CV穪¦©Û0éö9uÓ™ºÒÎÖëHè* Ø}¼ùüÉ¿(åy‘Yâð­Ø”1’FwjÑéBD„1š ŽKÀK”ÒÙM–™óC–¦‡/ë¶Ô òέq\’T2éÅ­ªùBP+ˆÂYW‡ÑãÛÞº35ËÂRþ­;¸ƒÝdç{“¨ÇNÃψ½©7¦0Ýq|¢?"×áºÅ1;”Íxß?uÄ8ðŠÜ›êŒCä0È3‡G³Îl‘DM­ hÍÖ ‹‡H¤g¶„Jꥴúù -Žœ–0ö X<ÂX·‡­©ºâˆ,ý¤M¡7ÎK~vê §>óçIÙ ëêB¼Æac*ÝÏ÷{$ ä,="mñ -58XÐÌT1g¹ýSpSuy;W¦;â½kçjvØv”Ö Î¶ÎZÆØì͸°9"g¥n‰À3%êT? - ‰TÔ:;qM™“Á× IWÞ²¥‹žr‡‹šÖ”ž²™ÍÛ'Њ”‹Q:lÂ(rFÒ.lÜØ]ŽD)™úïè D‰4¾ˆ/Üâ˜kæÌ¡•gá´ÇMÐâ!¯òVË;ħDƒ‚þC^5ãjWí£Ì𾀈L„šs¦}Jà赯t™g‹m]6P^ü!/í…Câ˜Ëðì-¡^Ä=Ã¥Wδù¶vÅäØO½o<]‡qwñKv%Ì'N[û¦C–Õm?t5 m¶º€È -y ¥jœgØŠX^5;¤;ðÊÞçL†´ºçÙ&ß_±ÃßK‹W°„KËÝ9I€¦Ô’ -´8å뜊NUÿÞ$ $ß÷yuå¤ äÈkWD ðKúèu…5Ø…uˆÞÅpï(¸V¿¼×AåEBï:ィ¯É>K[]Ù]ϯÃèõÆŸš¦89 ©Úo94Pfr{‘áxó­ÀCœbLPÙŸFå)wö¹{ÚÔWGGYt•ç™E"SÈÑuæ]»ÕqdL`…cZ&塧|¾ÒÈÁòä2ºÅ”Ž ¥É Î)_ƒ>AÄq|{!ίÄ4IýXn¦Š‰—¹ tSøêž ÛÜZÄ -¦c g÷õ¡È~pvE1-˜‡bx ‘B¯øK@ëÍv?ƒÉ öŠ(QãâÔ q² ñä°íh8õìŠÜÑVÇ=ž¶]KLmå?ˆ$ÑÉÑÚT¶ ®Qô࣠ê¦èÀò‡½ž½r·Äœ¨T°ï5PúÄeã26·'鞨òî¹nq²9v]c'ç›"˜z+<ñT›,ÈÀno»7]>Üô‹,oò*ƒìÇ=ØøÝ…y¨h¿‚æž 9ŽæÒÿÄ%ŸÙÇn¯Çô£KI)|_äæåÁ P®ľÉÍúõ¦¶Öl0Ȥ¼Ó·Æ÷Ò߸ýu+Ãu+Ãu #€VLeM–÷:樒…ðêCÝ -—ëE»iPÛKȬ8Ž±±ŽÕê8ÅþØ Œ28žFVhiÑ4Çõ=¬ûñjÀ@m!cߘ˜ÊB} ‡”ú1érÂÛ17zûxh‚=»“>ž1ä9<À¼ ܪ±!xO—H^ëB]þ¸`ºHêë>Ôøké?~ø¥¡Ð çYÓë‹yíq -¯-÷¢¼ò”¤Ã»ì?\Ow™À«øõ7)O‘ -„¥zŠ¿Ð¼á¾Tý_õ 9·endstream +xÚåËrÛ8òî¯ðÁU+WY¡åpzœ¤£IUÑ€ÅWâ%D‡@Ì—…Ÿö ›ÆÁœšœ¯ê¦lËóL(c”çx3`à÷ÉJŸ„P nªH*ÌnË>A“ŠA òÂ& ÈÑqjq¯æÍ+Å ½•wlMÇG¯—PàØ2_øÁ»UÏ£œ~îµ9#ÿ íÔ-êc¨"h“&KŒcàz¹¼¯L pI€®Y¦J'!¤Aý’Ì-ø%¬¨«*_{¸÷Kã(ølÔ<-¦uÕÐÔcÙέ‹‡ ÄõùÙ<–Qš2;LsžF1‰[Ó”…!ð9¡N𩿪ò8™"*²m²¸`IöaýNtcÐ\Çzt‹qFMã÷¦¥NN͉ۼ¤¶ƒVoÚÕƪì}ª74º4]I]Iàõ,_™~ósÊìhbˆ-Yˆû({ƒü€BÛ;B3Íg4DÍi+‡[9è`êÅxržqŠ˜è> +i¤¸Èv€ñ]`ñ Û: «Xr…èŽS3v–%‹_°ÈŸˆõ +£Ä¼ªÜo«?ÐÞ(×–?¢—´':ŽwÂÙE]”hÙ!ê%‚<ÎKÌd J;·ŽÉ“8ÄÖ cÖa-7þîÓÜÒ-¦Hj%­1UáŽ)‹vN]4â-Ÿæ Š­‚ØïW¸ä)õ÷ԪשSÚ–®Ql¬®àLvp.°—ƒéd)÷Âr$¹–<ˆÊܵqº$û€•‹…)J°V•;è?v4WF÷ŠJ‚̱‚-b±GSb%<‰Ú/‰)>-È›âà'„܆±E…- ½Û'ã~AÏøOg–{ŸÎEŸ? k8;M”Ûyÿ +íL.lDD1_òŪ2g+AÜÄe’¼„UüZ¬Æ‚ɳ"dt$å ¶8Ù¤c¹ÿ¬c®vl3ˆ f°‚‰‘`ØÊaÂ΄‹³`x¶Y“hÛÌf¬\ŒVkõfg‡sµ›ÊmÈÝ‚œ¦ 3+yEcÖwõs_ ]bÒÀU^>­í”Ø  Z§Ä"á#¬2¡·e‡¼¬òieÜjë@¨oãQêö®¶÷w´g%,h&!Þ]a¡•"–)Þ+-?sW˜µœø£À´³Ll«äž#!|ãÊ [8¢x©Åà@4iŠâR´‡så7œÙsP¦£Xv +ó%hâ¸ÓfP”€Â‹(ëaüŠ: ´„;zÝ°Üi³Z‘Ì@Ÿ ›ÜIë­ì‚ÂÜåVºðGï1Å2d|ÆãNŠº]-øn+ÄÎXX[!ƒ–lìµ8ñÀâ$Â%9ñ+,9V¿’¹DoÕÞ²n©“O›ºÚ´V}ûd*ÞRò'QB{l|‘'€“‚Ó…Ú9=~.QsIàŸJ= kWV™;-ÅP>X°VYŠd4««¼-§eU¶6âˆm4L“&_W¥ ÆÈBœ+eZw¾-äܸŒ0ë±Âš¶Ä¤áû,â~Y~¥0'±FÛrY”Þû‚bz·|9¬÷EDMe£g}N¶ëxÈŒíO‡éØw¦x}ÞøãËRÆQ&y0k”©ˆ¤NTÚêŬñfFÎZ”ÁØå¶S.̸­ÇäÜ4b½GÌú%¾æ[ÐÏÑVUa–T :Mwdá$S´ëÆ­Ü §ÆóvnÖeë}›Ë3¶Õ•—$Àp_¾œ¹UëÓl´©L½œíÌ°ö £ˆ#–hod\,¼«3Š$Ê«L˜`ýãXŠaÕ}ˆ2ÓŇòmJ÷>€"N$7ýƒ@XÒ"ô£ +$?^Ð…†Ø;чË#R ýNÕAõÄÇa‰tûíEHƒ¹¡ŒÃx@ƹò%>XîªX°r‘·ö%[È<¼¯Xó {wà°‹ÒJ{ùÊú@qþ¿äv(?Jn…Øì[TÁïØ+·*‰X¬“ƒr+4‹Í~Z½\>ž´$c+—-ØôBrŸ²Ã =-â{(³®&~C3}Ö ão¯ÏhØ>œÑèÛ®Ÿ&gÁúü9ÿ»t\½º9À¶A¾Æƒz¬»Î7øj·c/ÛR ÁF|دŠ–g°Ü–ý! „8;c¶÷œ½d@Ðapׇ,E½È½*PèfÓ¯Ë]'n×3Ó4^šrÙÙÚ>#Ó»Å@óæ È}½zô/ùÿ‹§Œ 3 ½ÆèÌx6ü¢àÙ—BAö•I$…€èU©S‘/ ËI®\AÝ„M#D]…ú¥'u ?“Þîy{ÖRL5à·“Žþó¥5K ÆwŽÂ(”|Ýngõ] Ô@¤SÆ»]_é¥ÉÕ|‚I}N‘1(„ˆ¸âsë(Q)9‘þ>™_Óì\¤{ߎº]“~ÝÞ¾ßÁãÍûÉÍÍV‰bŒuFÇzµâs¦Òî³u:挱Ѥ(Êá!¥GìÂ"Ö„­Ad’ÄÜ%Í%\Ë¢_¶2.2ØÙ&¨þllm@z:¢éìXˆÃÚm&ú4;0ó.œèPÜ!6ƒ¶Ø,VÛ눟Ø#~ãgû"ÐH‚]º)†-‰Lz ßz›Ú‚Ùî +òëü1Ep”–¾ ±Àï\lçÒ¹A¢LenÈôúòÒ0ñËÝ5ó;û»º«^î€Ï©™–Ë|ý4\ï2H¸ŸàJlĽËôŽ´KNýÍGaÀt²Uämî•Ë&³vÓ×ÁØ@µ[Îùè¬Óš˜>ùÌ-òõ@ 7V.œ¹xžÏTu^ô£å0×è)U`5•µ-7.,a„æø Óƒé +ú¬[äŒô:£ ]¡Q +ÜÛ¡$„}sÛ#  Nw¤Ão¨5_ òá£ÅÕxZMíÔÝbvÃÏAÉr÷ït0ˆŒ«$Ä‘ÈøN%ÁN®aý8î*Õ裋1–PÀºøà}×áÇQš +oåaíÌED´&Έ¸ÿ lV£-yê¾/{ð_yÕþƒ°-Å\¢œÑ¼Ê–tùÓ »|ÓBpÑ–3û²´çË>Œñs¼ÀwxìøÅàêµ_ýõ_>ƶÚ.Ân·sÏîRH½L<»¹ÿ<ðùÕÿäoendstream endobj -1469 0 obj << +1468 0 obj << /Type /Page -/Contents 1470 0 R -/Resources 1468 0 R +/Contents 1469 0 R +/Resources 1467 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1452 0 R +/Parent 1445 0 R +>> endobj +1470 0 obj << +/D [1468 0 R /XYZ 56.6929 794.5015 null] >> endobj 1471 0 obj << -/D [1469 0 R /XYZ 56.6929 794.5015 null] +/D [1468 0 R /XYZ 56.6929 586.2823 null] +>> endobj +1472 0 obj << +/D [1468 0 R /XYZ 56.6929 574.3272 null] >> endobj 522 0 obj << -/D [1469 0 R /XYZ 56.6929 741.6375 null] +/D [1468 0 R /XYZ 56.6929 166.8772 null] >> endobj -1302 0 obj << -/D [1469 0 R /XYZ 56.6929 717.2979 null] +1307 0 obj << +/D [1468 0 R /XYZ 56.6929 140.1236 null] >> endobj -1468 0 obj << +1467 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F14 685 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1475 0 obj << +/Length 1085 +/Filter /FlateDecode +>> +stream +xÚ¥VKÛ6¾ûWè(Ç(QÇÍÖ›:(vÛ{i’mѶ°zU’³q}‡J~¬ƒ¢( ÎŒ†óüfLPøc’„Š,Ò,&’2lª vðíÃŒyhTŠÎµÞ¯fïDd$Kx¬¶g¶¡J±`•ï¹ûmµxžG\Ò0!óH&4|¿|ü%÷OË<ßÍÓ8\-ŸQü¼xXÍ~Ÿ ž}uWo•I +E¤âé:qq«N2#‰€O¶N;S›N&ŸG"‰Ã/TÒb‹ô0gá¾è‘Ù6]¥¤GYßšMñ…R>Þ^í)ÂaoleÀ?;óéÙèRˆÚz®t?˜Î^/MäÍ㥋 9áTwšv(š‚dèðuoêž’˜P'þR­+ð­i“„¥Êk凪õyÙðñwS»D‚H(h€â*ˆ#™”ÜÝÙ4õ`ê¡G@è-䃤»è¨¡Óu¿å?]Üx©mËcQïk»bT9´9´¥'Î?¿)É`ý.¡CœÆ¡ÆÃ{£¶}¶šHõ…Òº¨uwDzl¦¥kcòÉJ×]zºÉ]k7ÚVü'2ÃÉM×{¦:ŒÔÚy–¶,ß;¦s°² ¥IÎ`¾“37qœòuuÆaþž`*ÓDžw9Ú4U[”flÜUÇa<2Å„¿ºqƒ- ïJŒL¡ Ó÷X+`/ ²~ßÊéÍK&áÐ ïÀãÈ)슭¡TÐúb³¿0ãÆ _!Ó+€ NÖO¶¶ca-¼îý÷©Í@û²Zéñ¤vk0ÉbÊÿc%™—•ôˆÞé¢FØF\)¢$lkßÔ©ß•d¾ÛÛ³SL";aNT&˜wÐé×ApF¸ c;§ 6½éOÖQ›áµé^Y/†qc*Ìí€ZÖeáˆoM‘{ÚélöÅ`6ÃÁ1&ÊMkê¦u`Xµ×.‹]aþ +~¸ˆ/›Z¹K<æaßà9ìµ—ãiG2¡î‘¯4@µM7èµràÆïmÓ÷ÅAÇWf¸Ý+•îŠòˆ¬ù›1d½û(ÖÞ&Ï)ê¾ÈÍ£Áz€‡öVi.Sì°Û+˜¬$IÂem·©º(u’9·V Á@J(Ó(Â…fãB³Ò¢öov ‘0Eÿ†˜„ÆoF›TúÅ\Ärª·®õæåÐú|¶§xœ`šsø©v-°_¡8 +<%ŒÉør³!˜ìüX0] µŸõ« Ÿvü­ñï@0âu46-Z`Ð]‹G8tKüè#$±oø÷íþßOœÓ3/Ná7VñÛ¯A¢x–ŽAÙê)qùôzú?ro«³endstream +endobj +1474 0 obj << +/Type /Page +/Contents 1475 0 R +/Resources 1473 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1445 0 R +>> endobj +1476 0 obj << +/D [1474 0 R /XYZ 85.0394 794.5015 null] +>> endobj +1473 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1474 0 obj << +1479 0 obj << +/Length 69 +/Filter /FlateDecode +>> +stream +xÚ3T0BCS3=3K#KsK=SCS…ä\.…t œ;—!T‰©±ž©‰±1ƒEV.­knj©g`fA‚!ÂVŒendstream +endobj +1478 0 obj << +/Type /Page +/Contents 1479 0 R +/Resources 1477 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1445 0 R +>> endobj +1480 0 obj << +/D [1478 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1477 0 obj << +/ProcSet [ /PDF ] +>> endobj +1483 0 obj << /Length 1368 /Filter /FlateDecode >> @@ -6408,35 +6457,35 @@ stream xÚ•]oÛ6ð=¿ÂÈ“ Ä )ês}jÓvëP Cã>­{ eÚ*‰šD%͆þ÷ñx¤,Ǫ·À0t<ïŽ÷M¶ æÇYL(Ï£EšG$¦,^õ]ìÍÞÏWÌÑD1'qĹYÌì®bž‘8 ÓÅjÊäÍúêö}È!%IÆ‹õn”•¤)ÉÒ8_¬·wÑjÙ-WaLƒtùçúW<‘4K£FDB²(Ïì7~{‹Ô9~îe1t¥~ÂÕjúr+;¡KüXDx”„Ž_‘Œå¨@JØrÅ(¥Áë¢}?²Ñªpñ±ìµgÅ9É“0qœ8%!Óñ|Œç—, Gäxؽ/4¦¯ï>öæËn•ÂÒJÜÛ-.‘YÔBÜ«ŽlôAhÜR¢ Ñ ÐK·5´Žg³E )‹¯¨¨ên7èaªÃÐ; lFž\œ1’Çqh/.ªJ=®¥ËÝÓŒ™Œ÷¢(MÍ) ¾™á‘G\ú}u[ÉSê›RãU+»Êõ%Ѷçþ„1Áó³v’G ¶“Û[ã/ -ýM#I_P¾†c[¯7j?ôÔý5"°KôXVB›J_üôþŽ™‹ã¢oE!OÓ¨bc)d5@´æÜN8Ü8y‡º€`Døª®Uv°÷éý±²ñÇ•ÚÙдÒЗd® ˆÂßÅß—ÿXâÈ !MNPb·Ù+$eÏÖáóý0æFžÄŒ%HÄ_ÍÙ‰ÉHM‰N,Š…¾,É™ ŸÕ¬ÆßG!!'9£ü…qQ˜²ïMl¢f"Îï²­ÀÙ.F¼ƒ°t"nt°p¦†‚iÃm¨7²û¿xyÞ-öóØßÑ #‚9Ä÷Ws\U‹ÓÜÄÅÞì'ö'dV© §ƒÆTK¯úTb³ƒÅ \Tê8_L9ŽQ~Q'ÏrõÌ8—¢éoÕ8Q×®´“¥×LÜôSëÎÕ¢7{öŽ»Òß㺾²¿`ÒsˆæéôÚ—î7;¢5um#3>NDc½·ž„IP …ía°€2ÏY„9ˆ±-x‡¥¾ÆÕH2vDX M…MöT„  Âím¤lP”ï‘% aC%ÐÛ²_͆òÆ$úììò^¹®W«“¶Ö˜Ñ¿¶$×Êš´2÷§Éó.§eq¡ÇÞx„c:ŸxÈ̃/Ý@ôúóýÝ»OKóþXÏ O¦XæÔObûPöªó}VÛÖzõn=¾Pý»“Ç^±soXO²:Òàv*–Só óÔ3á.m|Ÿ‹û“˜ô´endstream +ýM#I_P¾†c[¯7j?ôÔý5"°KôXVB›J_üôþŽ™‹ã¢oE!OÓ¨bc)d5@´æÜN8Ü8y‡º€`Døª®Uv°÷éý±²ñÇ•ÚÙдÒЗd® ˆÂßÅß—ÿXâÈ !MNPb·Ù+$eÏÖáóý0æFžÄŒ%HÄ_ÍÙ‰ÉHM‰N,Š…¾,É™ ŸÕ¬ÆßG!!'9£ü…qQ˜²ïMl¢f"Îï²­ÀÙ.F¼ƒ°t"nt°p¦†‚iÃm¨7²û¿xyÞ-öóØßÑ #‚9Ä÷Ws\U‹ÓÜÄÅÞì'ö'dV© §ƒÆTK¯úTb³ƒÅ \Tê8_L9ŽQ~Q'ÏrõÌ8—¢éoÕ8Q×®´“¥×LÜôSëÎÕ¢7{öŽ»Òß㺾²¿`ÒsˆæéôÚ—î7;¢5um#3>NDc½·ž„IP …ía°€2ÏY„9ˆ±-x‡¥¾ÆÕH2vDX M…MöT„  Âím¤lP”ï‘% aC%ÐÛ²_͆òÆ$úììò^¹®W«“¶Ö˜Ñ¿¶$×Êš´2÷§Éó.§eq¡ÇÞx„c:ŸxÈ̃/Ý@ôúóýÝ»OKóþXÏ O¦XæÔObûPöªó}VÛÖzõn=¾Pý»“Ç^±soXO²:Òàv*–Só óÔ3áYü\Úø>÷/“ðô¶endstream endobj -1473 0 obj << +1482 0 obj << /Type /Page -/Contents 1474 0 R -/Resources 1472 0 R +/Contents 1483 0 R +/Resources 1481 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1452 0 R +/Parent 1487 0 R >> endobj -1475 0 obj << -/D [1473 0 R /XYZ 85.0394 794.5015 null] +1484 0 obj << +/D [1482 0 R /XYZ 85.0394 794.5015 null] >> endobj 526 0 obj << -/D [1473 0 R /XYZ 85.0394 769.5949 null] +/D [1482 0 R /XYZ 85.0394 769.5949 null] >> endobj -1476 0 obj << -/D [1473 0 R /XYZ 85.0394 574.5824 null] +1485 0 obj << +/D [1482 0 R /XYZ 85.0394 574.5824 null] >> endobj 530 0 obj << -/D [1473 0 R /XYZ 85.0394 574.5824 null] +/D [1482 0 R /XYZ 85.0394 574.5824 null] >> endobj -1477 0 obj << -/D [1473 0 R /XYZ 85.0394 544.7049 null] +1486 0 obj << +/D [1482 0 R /XYZ 85.0394 544.7049 null] >> endobj -1472 0 obj << +1481 0 obj << /Font << /F21 658 0 R /F23 682 0 R /F47 879 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1480 0 obj << +1490 0 obj << /Length 3343 /Filter /FlateDecode >> @@ -6452,96 +6501,96 @@ QØ´ \Tü·”Ã'ºm¶†É«üØ×qêðÀöæ0gUOÖ¨I2ı?¸ƒœœÚåJ…Ü.GòÖô›¦àe0 Š4N×  @µÜœÖh¹»†X܃s]àŒ®$Áý"pó³Šå$ƒÑâøé žnˆ-”üáƒdX–ɺÒ20~¦fÐÚ,väï«®áoúa©™ñ|¶ø˜´x¾hÃÓØó¥6lB¦ðªfTª|)høÍÌö‰Ú¦±$Û1¡Z, ÎOÖÊñ]º*{aÖáÃv¬ø`G ìÍ´phÛŽ0[4A™=ÔÇ]–³cDøµi]_):bÂbbùññ{þƒlKòxxXZ“ôk15µ8úꘚŠÁ͇…i\^ÅÉ1]Õ¦?Z¬hŸÌ‘5ø"8®ð¶è”´ÌÐu‹n¤-/¿«NØ–«s\}4Ê4÷¨Í1¦ãÏS÷cùb`}B×l8UŸN(פcšïšªÌÓ-Œ0~½2œ–u¬N_ñz©úøs’‰ŸCMó—µrÂy@[’Èqå4®Ñ_' „…;KôÕÊÝÏ[®—þìÕJMendstream +.júl?Qëœ&=aÏl7úReQnï¾›îù†b:óÄ'ž·ÍÉÖ|:‹b}Y±C¦}CL˜õmÿnmóÀÀ‹ |c›ÜVA¨ÁèfÅÒóö¸ë›u›í6®×€³=¬ ÆöCoXЊçØš¬ž>[4A™=ÔÇ]–³cDøµi]_):bÂbbùññ{þƒlKòxxXZ“ôk15µ8úꘚŠÁ͇…i\^ÅÉ1]Õ¦?Z¬hŸÌ‘5ø"8®ð¶è”´ÌÐu‹n¤-/¿«NØ–«s\}4Ê4÷¨Í1¦ãÏS÷cùb`}B×l8UŸN(פcšïšªÌÓ-Œ0~½2œ–u¬N_ñz©úøs’‰ŸCMó—µrÂy@[’Èqå4®Ñ_' „…;K¢«•»Ÿ·\/ýÿí-JOendstream endobj -1479 0 obj << +1489 0 obj << /Type /Page -/Contents 1480 0 R -/Resources 1478 0 R +/Contents 1490 0 R +/Resources 1488 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1452 0 R -/Annots [ 1485 0 R ] +/Parent 1487 0 R +/Annots [ 1495 0 R ] >> endobj -1485 0 obj << +1495 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [63.4454 757.0719 452.088 767.2337] /Subtype/Link/A<> >> endobj -1481 0 obj << -/D [1479 0 R /XYZ 56.6929 794.5015 null] +1491 0 obj << +/D [1489 0 R /XYZ 56.6929 794.5015 null] >> endobj 534 0 obj << -/D [1479 0 R /XYZ 56.6929 739.5018 null] +/D [1489 0 R /XYZ 56.6929 739.5018 null] >> endobj -1486 0 obj << -/D [1479 0 R /XYZ 56.6929 704.7645 null] +1496 0 obj << +/D [1489 0 R /XYZ 56.6929 704.7645 null] >> endobj 538 0 obj << -/D [1479 0 R /XYZ 56.6929 563.5308 null] +/D [1489 0 R /XYZ 56.6929 563.5308 null] >> endobj -1487 0 obj << -/D [1479 0 R /XYZ 56.6929 535.7626 null] +1497 0 obj << +/D [1489 0 R /XYZ 56.6929 535.7626 null] >> endobj 542 0 obj << -/D [1479 0 R /XYZ 56.6929 418.2412 null] +/D [1489 0 R /XYZ 56.6929 418.2412 null] >> endobj -1488 0 obj << -/D [1479 0 R /XYZ 56.6929 389.5504 null] +1498 0 obj << +/D [1489 0 R /XYZ 56.6929 389.5504 null] >> endobj 546 0 obj << -/D [1479 0 R /XYZ 56.6929 228.1296 null] +/D [1489 0 R /XYZ 56.6929 228.1296 null] >> endobj -1235 0 obj << -/D [1479 0 R /XYZ 56.6929 194.8993 null] +1241 0 obj << +/D [1489 0 R /XYZ 56.6929 194.8993 null] >> endobj -1478 0 obj << -/Font << /F37 747 0 R /F67 1484 0 R /F11 1298 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F53 962 0 R /F48 885 0 R /F62 995 0 R /F63 998 0 R >> +1488 0 obj << +/Font << /F37 747 0 R /F67 1494 0 R /F11 1304 0 R /F39 863 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F53 962 0 R /F48 885 0 R /F62 995 0 R /F63 998 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1491 0 obj << +1501 0 obj << /Length 533 /Filter /FlateDecode >> stream -xÚ¥TM›0½ó+|©¸6Æ`³IÚ²RÓ4a«ÕxT‚Ó@6Úýõµ3·¶ôTEóÆoÞ|x€"b~ Ž “1JeŒ9¡•[ µ9ûêQÇ Ï¤ð–u—{Ÿ¿°I,“(AùË–ÀDŠòêÉÍóé"#Nü!Oˆ—Í&à‘ðXNÇ‹,4þ1[f“éb¤±Ÿga,ˆ0ñÌ)Lg£ïÙøó P§Ôžó{oš_¹m–f»øí==T™žï=‚™ ˜J¡­s†yÌØÙÓxKïçEðæô:4<Îæ"J¦±¡éq‰fŽìô–z«lO‰ßÕ½êÀ,7ZwÎÝkûäþ/¥và)šŒê­-¶uið[xØUE¯*8˜ØyžE_€U· ã`wXUz[€×H¶.²RZ!—{Sô7üÐŽÛôRŠ%çÑ©'ÂTÊä)…Ú{2è]·ÊÜ,#‰Ÿoê˜Çâ- ”úŸ Œ‰I§Àßë]بWÕ\cÁ*uÛ›|u»vx_÷v溵¹å¬Â¥rÚÂÏæî ªö¾ê:å8úe¨ÁÝaÕÔ%ìÝQ­Àp#¶ý¬Ní_Õ¾Ð*å­î]HÓè#˜îâÀÍ9Ε‹ÿµÛŒc»›hþ®îÿÞûë!6¯¤ÑðJ›ëÄ"’é¹(;/Á?V~yAþ.ýÑÍendstream +xÚ¥TM›0½ó+|©¸6Æ`³IÚ²RÓ4a«ÕxT‚Ó@6Úýõµ3·¶ôTEóÆoÞ|x€"b~ Ž “1JeŒ9¡•[ µ9ûêQÇ Ï¤ð–u—{Ÿ¿°I,“(AùË–ÀDŠòêÉÍóé"#Nü!Oˆ—Í&à‘ðXNÇ‹,4þ1[f“éb¤±Ÿga,ˆ0ñÌ)Lg£ïÙøó P§Ôžó{oš_¹m–f»øí==T™žï=‚™ ˜J¡­s†yÌØÙÓxKïçEðæô:4<Îæ"J¦±¡éq‰fŽìô–z«lO‰ßÕ½êÀ,7ZwÎÝkûäþ/¥và)šŒê­-¶uið[xØUE¯*8˜ØyžE_€U· ã`wXUz[€×H¶.²RZ!—{Sô7üÐŽÛôRŠ%çÑ©'ÂTÊä)…Ú{2è]·ÊÜ,#‰Ÿoê˜Çâ- ”úŸ Œ‰I§Àßë]بWÕ\cÁ*uÛ›|u»vx_÷v溵¹å¬Â¥rÚÂÏæî ªö¾ê:å8úe¨ÁÝaÕÔ%ìÝQ­Àp#¶ý¬Ní_Õ¾Ð*å­î]HÓè#˜îâÀÍ9Ε‹ÿµÛŒc»›hþ®îÿÞûë!6¯¤ÑðJ›ëÄ"’é¹(;/‘~¬üò‚ü]úÑqÏendstream endobj -1490 0 obj << +1500 0 obj << /Type /Page -/Contents 1491 0 R -/Resources 1489 0 R +/Contents 1501 0 R +/Resources 1499 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1493 0 R +/Parent 1487 0 R >> endobj -1492 0 obj << -/D [1490 0 R /XYZ 85.0394 794.5015 null] +1502 0 obj << +/D [1500 0 R /XYZ 85.0394 794.5015 null] >> endobj -1489 0 obj << +1499 0 obj << /Font << /F37 747 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1496 0 obj << +1505 0 obj << /Length 69 /Filter /FlateDecode >> stream xÚ3T0BCS3=3K#KsK=SCS…ä\.…t œ;—!T‰©±ž©‰±1ƒEV.­knj©g`fA‚!ÂVŒendstream endobj -1495 0 obj << +1504 0 obj << /Type /Page -/Contents 1496 0 R -/Resources 1494 0 R +/Contents 1505 0 R +/Resources 1503 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1493 0 R +/Parent 1487 0 R >> endobj -1497 0 obj << -/D [1495 0 R /XYZ 56.6929 794.5015 null] +1506 0 obj << +/D [1504 0 R /XYZ 56.6929 794.5015 null] >> endobj -1494 0 obj << +1503 0 obj << /ProcSet [ /PDF ] >> endobj -1500 0 obj << +1509 0 obj << /Length 1964 /Filter /FlateDecode >> @@ -6553,86 +6602,86 @@ i ýf3GÕ51b‘æi‘diNŒ‘Œâ±ˆ±0·"ð0àâÄßZÕ7’\sÂw"ó‡&0ÍåþF—?$cRÍZº”í(õåŠ:éH^04g¢°û(½À ÙWáÓ7˜¿S,[>°úŒ¹…;î3`ô¦'bÕÀ¤Ö^ ïöEy˜]¹œ­Þv‹íçÞa¯Úák@n@þzh|ÇütÓOÓ0J¿mºã—¿ÞeÚâš(°ÁiÇEðá êÍâÀz҃ѣm§žæˆ§çOŒ$ ¸aѯt ÇtéùL]%ŒFèŠâ¹Bˆ%Ç#¥ e/v­Î©­XKí)™®×âX°Åu’_=ÿ~-ÃÔ¶GYðþÛ§päÏH—@ ­è×ØÚ:‰óÎÐÃBYn?z·XdÌqâd¾©Üä¤ÚNí:ørðï»QÕaáƒL·CÕMucVìâªV.Wª4 Û8Hü»Uoy)”@»Zìo+B)ˆ×­©ôD9ƒ©;B.ÊõTyåvÂ)Î6™îZds§¡ÁÓÏMí­µ°r=¶öä&vÓž®é^/yr€¡¶¯ÓP;«y Â1{9B€FãŸà{ËוÂM>p\×-ž‘7>å èWˆÌ¨WKÐÆ 5m"û¿À¥–€ã6WUŸÔž9ZØוå,¶VHbžþ‹'¯´=Í\¦pÀŸ'8TÃ[WyÌ#‰6Éyè5µÒÇî:4 ßál 3,•ßbÏ[œ+ªë/WF".ƒ›ËÊ?@”€/jŒu“1Ô¢+l',{_¼2ãâ•sä®ÏñÛªÊ ¿&–Bú–åç !G˜ ¥Ìrcø-Š¼ûãËü -“¤%œ¡i±Iæ² —â~ÚøÑŸ/¯6³Âv¡ám’rá÷Î.zïá°ú‹EØûÛxà8KQ”×ñܼÍBw1\­ýÎÆð»•s^ÀÍQŠ’säjMkç/Ú,ÜÚmR¡ÈEzís³ã¾‡êÁaWvEÊPæâ—öD¤p}ÉqQüë›2kl—*÷»roÙõÖ¿x|<ŸÏ!ïÊ£/ËGFßãn²pÇ71ÞlÔ,u×U>î­ý·­Â·ÀèªA§jW\†=?í„·Aû‡ÄD†ø,¹±Ù^dèEr\Ca—¹7ä:ŽüÖÛü¾yïî?ÃEŒùendstream +“¤%œ¡i±Iæ² —â~ÚøÑŸ/¯6³Âv¡ám’rá÷Î.zïá°ú‹EØûÛxà8KQ”×ñܼÍBw1\­ýÎÆð»•s^ÀÍQŠ’säjMkç/Ú,ÜÚmR¡ÈEzís³ã¾‡êÁaWvEÊPæâ—öD¤p}ÉqQüë›2kl—*÷»roÙõÖ¿x|<ŸÏ!ïÊ£/ËGFßãn²pÇ71ÞlÔ,u×U>î­ý·­Â·ÀèªA§jW\†=?í„·Aû‡ÄD†ø,¹±Ù^dèEr\Ca—¹7ä:ŽòÖÛü¾yïî?ÃŒûendstream endobj -1499 0 obj << +1508 0 obj << /Type /Page -/Contents 1500 0 R -/Resources 1498 0 R +/Contents 1509 0 R +/Resources 1507 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1493 0 R -/Annots [ 1507 0 R 1508 0 R ] +/Parent 1487 0 R +/Annots [ 1516 0 R 1517 0 R ] >> endobj -1507 0 obj << +1516 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [348.3486 128.9523 463.9152 141.0119] /Subtype/Link/A<> >> endobj -1508 0 obj << +1517 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [147.3629 116.9971 364.5484 129.0567] /Subtype/Link/A<> >> endobj -1501 0 obj << -/D [1499 0 R /XYZ 85.0394 794.5015 null] +1510 0 obj << +/D [1508 0 R /XYZ 85.0394 794.5015 null] >> endobj 550 0 obj << -/D [1499 0 R /XYZ 85.0394 769.5949 null] ->> endobj -1502 0 obj << -/D [1499 0 R /XYZ 85.0394 576.7004 null] ->> endobj -554 0 obj << -/D [1499 0 R /XYZ 85.0394 576.7004 null] ->> endobj -1503 0 obj << -/D [1499 0 R /XYZ 85.0394 548.3785 null] ->> endobj -558 0 obj << -/D [1499 0 R /XYZ 85.0394 548.3785 null] ->> endobj -1504 0 obj << -/D [1499 0 R /XYZ 85.0394 518.5228 null] ->> endobj -562 0 obj << -/D [1499 0 R /XYZ 85.0394 460.6968 null] ->> endobj -1505 0 obj << -/D [1499 0 R /XYZ 85.0394 425.0333 null] ->> endobj -566 0 obj << -/D [1499 0 R /XYZ 85.0394 260.2468 null] ->> endobj -1506 0 obj << -/D [1499 0 R /XYZ 85.0394 224.698 null] ->> endobj -1498 0 obj << -/Font << /F21 658 0 R /F23 682 0 R /F11 1298 0 R /F39 863 0 R >> -/ProcSet [ /PDF /Text ] +/D [1508 0 R /XYZ 85.0394 769.5949 null] >> endobj 1511 0 obj << +/D [1508 0 R /XYZ 85.0394 576.7004 null] +>> endobj +554 0 obj << +/D [1508 0 R /XYZ 85.0394 576.7004 null] +>> endobj +1512 0 obj << +/D [1508 0 R /XYZ 85.0394 548.3785 null] +>> endobj +558 0 obj << +/D [1508 0 R /XYZ 85.0394 548.3785 null] +>> endobj +1513 0 obj << +/D [1508 0 R /XYZ 85.0394 518.5228 null] +>> endobj +562 0 obj << +/D [1508 0 R /XYZ 85.0394 460.6968 null] +>> endobj +1514 0 obj << +/D [1508 0 R /XYZ 85.0394 425.0333 null] +>> endobj +566 0 obj << +/D [1508 0 R /XYZ 85.0394 260.2468 null] +>> endobj +1515 0 obj << +/D [1508 0 R /XYZ 85.0394 224.698 null] +>> endobj +1507 0 obj << +/Font << /F21 658 0 R /F23 682 0 R /F11 1304 0 R /F39 863 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1520 0 obj << /Length 69 /Filter /FlateDecode >> stream xÚ3T0BCS3=3K#KsK=SCS…ä\.…t œ;—!T‰©±ž©‰±1ƒEV.­knj©g`fA‚!ÂVŒendstream endobj -1510 0 obj << +1519 0 obj << /Type /Page -/Contents 1511 0 R -/Resources 1509 0 R +/Contents 1520 0 R +/Resources 1518 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1493 0 R +/Parent 1487 0 R >> endobj -1512 0 obj << -/D [1510 0 R /XYZ 56.6929 794.5015 null] +1521 0 obj << +/D [1519 0 R /XYZ 56.6929 794.5015 null] >> endobj -1509 0 obj << +1518 0 obj << /ProcSet [ /PDF ] >> endobj -1515 0 obj << +1524 0 obj << /Length 2543 /Filter /FlateDecode >> @@ -6645,41 +6694,41 @@ R ’ r”OœBç=Á 1j"«¢ºÑpQɧUäzý"GöÄÙ G,ØÝfS6ä ÐBdz˜€z²Ó„Q™DÏ B0q¶Ah3>£Œ7«®sÙØ£FfÁ'‘«RuJãÆÕùö‘]ôçÛ/¨N‡ÝVM)gQø|$¶Ì­} 8Épat*ÌÒ¹Ã^‰©€ck ˜Ö…/ ‘úf8ùtTù‘w)Ë¥áZ½RÜ0†Oå:»^•˜Ã&Ù:v3*LO„Y‰ÅèÖt4™\a¼°[`\ÃÈÈö®ž„Ž—ÌÉAM´Ěû«„Ä„ €É,Ö£ÄvFø[vAé÷Aô´QêÜéüY4²³Álˆ†±ˆC¶ýB=ù¸!‚nÌÊw‰P‰ü¨jiˆ¯ÔàbºHêØ슆 Â÷ZÁµêμûž¶ºž–Ï܈RvµïY×ÛæÕ¨äjµ¤½¬s«I˜ŒéT×wìDDåïÛÍêv{K‹<õ0Ø>Þá0(î9±Þs@ܘe·ž«„D±é Ønu»ÁƒÖÄqE?cÔq,¦…îÀ³ÆúE£ÁĘŽAÄ)ôkÙ>ËRži6”šQÑÇÑ í%"Û2R¡q¼µ2$Q†£5ÄÞÞ3Xßñ±bɾ¾Ûºù~­(z‚Hׇ î †FX³Á¿,0x,ã&þ,<^ NÖÀY_Ö# ÆÃkfÝOUÿÕ‰[¸‘{Y›åj_¼ˆ1î𥑈6Hy ÿ/óŽ#窀Š ã”U#7Cã@Q²€.ÿ¾ô™Ñ„K ÷yIJ­¥¥tG6µí a)\§ë€Ö&tÅŒ‚þ[år Òéú@Øèªé)ŽL½"Ÿûæ¢@ù<ópBµÙ>~æÜpËBtG‰ãÉYxEìÅbè á¥…9`°8#Û–8Ϲ6aù/3!(¬ÝˆUÐâ£:J¼TœpŠq«ëÄLM³ÿ@ÏM •($Ñì]€B‰±c€2i ?P‡nþmD4“Ç v;)*¼Q¾Ý3,$¶×`(‡æJý× éz`ê„Þw§Y1J†|%\‹B¡kùüEÙi¸U³“eÉJ}“/Ë…ü¦¯KÑX%=›4øªQÕ‘¢®óñg¯,•Ä²áŽg k ¥TŸ%#.Q=( ‚ש©ö¦7F ŸgàÑ[¦Ã–è@±¸ˆ$ŸægH@Ä%²ZI(Ž":ž( 6SaUŸiQc¢õFêƆEiX*×5ÔÏ]OÕ-ãÖXXE p³Í‚¥¢o¹‡›MÔºõÁùˆ4òK®øbðج–S€¼V(Ø&ˆ0ð[P£ ÄNg[iÝÑÒF´åêNuЧ—%KÞ©gI«w}o }U¯K­yHÝ2Ž"ÛüÁ×ý ÆŠýô3À‹¬ÉC–Påú‘?{°GÉÏæ#Sð¹c"ˆ£oë¥yó–þ®‚¸åé·žøqsˆ™Ìy™Àfá:ã¤m,ßû¶¿š°f¬…´íº¥®ÙÀoçÁâgþe5ñÐ7þùçìÀשŸ%ÃF¨gš½=mü‹Áßû jh¢Yendstream +®o¬ƒñ+ñ'E\2}8Ç’;i %Ò‡ï&ª°Wõ\~jÀaÛÍ{³˜¢GË!zeoA_^†NmÞxš^Xð”Ð;’ù‚Ïr{z8Ø'"Hóȃ…×UØNÑô©|hÑçò+Å™X‡¬Yzœï_wEî”b8Iù‹Oï×WHÎÄšæÝǧñ#þði>ÀoçÁâgþe5ñÐ7þùçìÀשŸ%ÃF¨gæ½=mü‹Áßû i5¢Rendstream endobj -1514 0 obj << +1523 0 obj << /Type /Page -/Contents 1515 0 R -/Resources 1513 0 R +/Contents 1524 0 R +/Resources 1522 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1493 0 R +/Parent 1529 0 R >> endobj -1516 0 obj << -/D [1514 0 R /XYZ 85.0394 794.5015 null] +1525 0 obj << +/D [1523 0 R /XYZ 85.0394 794.5015 null] >> endobj 570 0 obj << -/D [1514 0 R /XYZ 85.0394 769.5949 null] +/D [1523 0 R /XYZ 85.0394 769.5949 null] >> endobj -1517 0 obj << -/D [1514 0 R /XYZ 85.0394 573.5449 null] +1526 0 obj << +/D [1523 0 R /XYZ 85.0394 573.5449 null] >> endobj 574 0 obj << -/D [1514 0 R /XYZ 85.0394 573.5449 null] +/D [1523 0 R /XYZ 85.0394 573.5449 null] >> endobj -1518 0 obj << -/D [1514 0 R /XYZ 85.0394 539.0037 null] +1527 0 obj << +/D [1523 0 R /XYZ 85.0394 539.0037 null] >> endobj 578 0 obj << -/D [1514 0 R /XYZ 85.0394 539.0037 null] +/D [1523 0 R /XYZ 85.0394 539.0037 null] >> endobj -1519 0 obj << -/D [1514 0 R /XYZ 85.0394 510.2426 null] +1528 0 obj << +/D [1523 0 R /XYZ 85.0394 510.2426 null] >> endobj -1513 0 obj << +1522 0 obj << /Font << /F21 658 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1522 0 obj << +1532 0 obj << /Length 2893 /Filter /FlateDecode >> @@ -6694,67 +6743,67 @@ hf ©—´¦5õÃD œ$ŒlH„r«å&Âçݳ5º?¾·hdµÁk+ §/-UçI0> è¾ÏÝG$”uf,Õ­DC¡Æüx¾;˜t (–"—ÜYi4¹B™º¦qfèY'ÉíŽÑ–\z ¬nÌ\³&ÊKŸ ‰•v(Äð1“‘㣓Æ|ÒØŠž«Ëˆp}µ6eè£[SWöj›ŸMñ¢Âú`K@®Ö j]¼©VP%Ûc4ºãê#‘œ*Õ-õNB'V½S“ÖÂxl˜gr/WXÖà= #’qcYaç 8êò®• õ•Ëö0î$3£–F®ÁØÑ‚𪕲€¦)¨Ùˆ1|L7eX¥s*-qPC+a©÷Ö> XúØö±°ž  WÓgÀÀ´ëð{SJ­¹ô‡©©í>ÖØ"à© g0Áhrsÿñ ÃÈó1‘¦ß,°Õd0\>M„4Ê‘Qƒ+KŽ\”c.¬ŠhÙdEÛ¤Ašäèe<à‹uÝ«²ä~É°?Òì¿A{É ”Ôøø¾ÿˆ8"UÐ%1t\éÁî`ªŒ˜ ‰HÒ¿˜Þtè£}VÕÐ_àrÉhÓ±#}à'nLsD¯€“‡¶Æº$ë) kL蘌‘¦Ö¹aTìö¥ÚYu›ºÊ£²Ýbf`’–5ýv¢àdб¦œ)à·7En¡vÛ\­%””4é-„¼×ô[)¸ìZ6oçÈõX˜Ì¯'ûÓ·}‘ÙeÜÎJ©]±ÙrUQÖ57°eñE]u-ã "‰„“aë_ßu½«|•\ùð›^I×…õ¾Wk•xWþJø)mÑñ™*ÛÒã@ ;L/ʨY'²zÝššbb™Û—¢ÏÞ’9” Cfb‚ ã\sÂ]¨ ÏvHÆïV¼×V¾("+ª¬ÛÀ8«KsÕaˆWýßWW¢K =ÉIøô¥;^4@%(SÚÂdà†¸¿ÑʸSî”bÙH^šÉÉÇ!4F{\Zf6ç¬8€´} âç13êêʪ«Hó›!¾}°ü\ñœ­¨7Üoßú؉õ|Ø *¬(OJæpþÁÆä³H`7é^EžÄ)Û-t/`7õÄàÚýÇHžÇ~ , KÌëì`9B»EœLçsyÛÖà&Ñð\´Md½•ÌÙ|4o.hÔ¿4~^Wè­QâX†½lx7ã/Ñ»ÏbŠ„rS ƒ^E8©È@´ÂŒLcÓ’Ã/ܽmE! §UÝš&7!'\×JÌæ(ÎËñ.iU¾XvÝép’›ž¢2‰¦Ø;ðšÉ½W3ÜðÛjÕ“jº˜¼ÒÙ¿Ñy‘7Vĉ#EhîQÿ¾YúÅ`Á©s5eBÛûj×NÝl.›uvâ:¾;©+ŽD:òœŽèDŽ‘Nx½ç7±I<|à9NÍࢠDš4§è~ïK®üü:q -·KÊÿóWÞþCw;"Iüé¸~œ8Ô¥V(> endobj -1526 0 obj << +1536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [253.7995 146.8976 417.685 158.9572] /Subtype/Link/A<> >> endobj -1527 0 obj << +1537 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [63.4454 108.9117 208.8999 119.0735] /Subtype/Link/A<> >> endobj -1523 0 obj << -/D [1521 0 R /XYZ 56.6929 794.5015 null] +1533 0 obj << +/D [1531 0 R /XYZ 56.6929 794.5015 null] >> endobj 582 0 obj << -/D [1521 0 R /XYZ 56.6929 652.1213 null] +/D [1531 0 R /XYZ 56.6929 652.1213 null] >> endobj -1524 0 obj << -/D [1521 0 R /XYZ 56.6929 614.8935 null] +1534 0 obj << +/D [1531 0 R /XYZ 56.6929 614.8935 null] >> endobj 586 0 obj << -/D [1521 0 R /XYZ 56.6929 614.8935 null] +/D [1531 0 R /XYZ 56.6929 614.8935 null] >> endobj 1072 0 obj << -/D [1521 0 R /XYZ 56.6929 584.5024 null] +/D [1531 0 R /XYZ 56.6929 584.5024 null] >> endobj 590 0 obj << -/D [1521 0 R /XYZ 56.6929 289.5256 null] +/D [1531 0 R /XYZ 56.6929 289.5256 null] >> endobj -1525 0 obj << -/D [1521 0 R /XYZ 56.6929 251.3901 null] +1535 0 obj << +/D [1531 0 R /XYZ 56.6929 251.3901 null] >> endobj 594 0 obj << -/D [1521 0 R /XYZ 56.6929 251.3901 null] +/D [1531 0 R /XYZ 56.6929 251.3901 null] >> endobj 900 0 obj << -/D [1521 0 R /XYZ 56.6929 222.7156 null] +/D [1531 0 R /XYZ 56.6929 222.7156 null] >> endobj -1528 0 obj << -/D [1521 0 R /XYZ 56.6929 53.7852 null] +1538 0 obj << +/D [1531 0 R /XYZ 56.6929 53.7852 null] >> endobj -1529 0 obj << -/D [1521 0 R /XYZ 56.6929 53.7852 null] +1539 0 obj << +/D [1531 0 R /XYZ 56.6929 53.7852 null] >> endobj -1520 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F47 879 0 R /F53 962 0 R /F11 1298 0 R /F39 863 0 R >> +1530 0 obj << +/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F47 879 0 R /F53 962 0 R /F11 1304 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1532 0 obj << -/Length 2825 +1542 0 obj << +/Length 2824 /Filter /FlateDecode >> stream @@ -6766,378 +6815,378 @@ l ¶º/ÓÃi&·hÞêß¡fÔ_¦/Å«=sß²²~e|–pu?øCœejîú*ló£ýû›<€æ©»¿Ù4ª mõÖÒwm{RßCKqšµ-5lÖFʘ5!³vB7f}†ÝoÖ-ð»|SÛ˜n+Ÿ“²È^µ¢—§Ã¡8Vgçr1ëËԃرþØ?+ò£¡zž¬Ûᆠ±ŠSzIï–”CïZÊè=¢Ô¡w´¥÷.ö€ÞmðÕNFƒ” /]xœ½•i)Źµfk ®ÕÖ\éL ®íLÐð©p’f¯M¬Šxõ%Í´Ü-ƒ‹g= P’Šàã@wFªžV‹¶êi Ó$“pŒ"^Ø#µ¥†É4RšLßs‘é„nÈ<Ãî'³^Ìí¼€y¾UÉ|\lN*²‹ÑZÁBX”disæлsùбØÅ”ÕĈç§òYèzº†11ú FŒª;òdw$^æ!.ËDGn¹9ª [œ6LjHp•IÿnÐφé0 =|a¿Ô–rЯ¥,ú1Ô mÑßÅ ßWgU±.Ä.øÌC±él FD¥oíÕbD&&áÈMb‚;¹û}nýlŸ3C¯îs;s,“&,Ú6 3a;²}PâÚ,”G«•[ìëÞ2–Îñò_´ ¨‚™èÌÝvaI9ìBK5vá;΃Ж]t±ì¹TÖó¢8„È#ëB”õMm”F*ÊSU׉‹ÆÄÙì5,>}ñ­}ʸ Þ´#š‰È21ú ÄMŒƒsu\bZFñ÷ÃY‚©À² ¸ ¡£ùÈ -’Xï*½ªA¾§ª³ÃÐù"bÀø0‹^h%-¡aÓÓBæP•¹"’ ·1¼.p¿ÝÙÈÓÉ5#¾eCâNŨ—LÔ b fËšQ¥°™G{?µûeB¼1´5öÝ&ÉÔêóäoúùZÿõ+Ÿ«¯’ùõØ.…‚1¤•ß‡ð§ìÎ̶ìî6~•/œ÷u˜s:e0‰ ×&S[ÊAµ–²¸vÐ:¡-²»ØlÛà³b¿—»®Xo¶ö| “ Éjq,¥ŒôW˜Xž¶[èÄêNÆߥßúÎiˆBŽíc$êןŠEÞŸö±>uû®uŸ«=°r¦gjð1i“tôº-ž[½ç<ÎÿH·Cqæ!Í2sâû}&Á#Dü p[„%4lZ¨ù "rœ¸psè÷[ƒ¼LŽ©>*y<5Ö´Þ’HªtÝWeB0fþùé¬9ŠhÏÅqí÷~$yb þBýo +\ 5iÞõÙ— ·Qx¸_á6²ñ>¨óÒò%Ùů©Èú0Yv ][­˜–Î ú¤¶‘U!ŒÞ=½òjºQ'²a{1 (€æÃâ‹°æ+ˆúUŠcZîÒ*– ’:_ /Q2÷i¾ORí„zÍÖ’}¸1\½AªŸàö¨Ö3¹ý/ék톈FÑÀaõê—¿‚Ÿ}‡l> >õÿ:`bŒendstream +’Xï*½ªA¾§ª³ÃÐù"bÀø0‹^h%-¡aÓÓBæP•¹"’ ·1¼.p¿ÝÙÈÓÉ5#¾eCâNŨ—LÔ b fËšQ¥°™G{?µûeB¼1´5öÝ&ÉÔêóäoúùZÿõ+Ÿ«¯’ùõØ.…‚1¤•ß‡ð§ìÎ̶ìî6~•/œ÷u˜s:e0‰ ×&S[ÊAµ–²¸vÐ:¡-²»ØlÛà³b¿—»®Xo¶ö| “ Éjq,¥ŒôW˜Xž¶[èÄêNÆߥßúÎiˆBŽíc$êןŠEÞŸö±>uû®uŸ«=°r¦gjð1i“tôº-ž[½ç<ÎÿH·Cqæ!Í2sâû}&Á#Dü p[„%4lZ¨ù "rœ¸psè÷[ƒ¼LŽ©>*y<5Ö´Þ’HªtÝWeB0fþùé¬9ŠhÏÅqí÷~$yb þBýo +\ 5iÞõÙ— ·Qx¸_á6²ñ>¨óÒò%Ùů©Èú0Yv ][­˜–Î ú¤¶‘U!ŒÞ=½òjºQ'²a{1 (€æÃâ‹°æ+ˆúUŠcZîÒ*– ’:_ /Q2÷i¾ORí„zÍÖ’}¸1\½AªŸàö¨Ö3¹ý/ék톈FÑÀaõê—¿‚Óî››O‚Ï_ý¿:¸bŽendstream endobj -1531 0 obj << -/Type /Page -/Contents 1532 0 R -/Resources 1530 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1589 0 R ->> endobj -1533 0 obj << -/D [1531 0 R /XYZ 85.0394 794.5015 null] ->> endobj -1534 0 obj << -/D [1531 0 R /XYZ 85.0394 752.3015 null] ->> endobj -1535 0 obj << -/D [1531 0 R /XYZ 85.0394 752.3015 null] ->> endobj -1536 0 obj << -/D [1531 0 R /XYZ 85.0394 752.3015 null] ->> endobj -1537 0 obj << -/D [1531 0 R /XYZ 85.0394 746.3107 null] ->> endobj -1538 0 obj << -/D [1531 0 R /XYZ 85.0394 731.5461 null] ->> endobj -1539 0 obj << -/D [1531 0 R /XYZ 85.0394 728.1497 null] ->> endobj -1540 0 obj << -/D [1531 0 R /XYZ 85.0394 713.3851 null] ->> endobj 1541 0 obj << -/D [1531 0 R /XYZ 85.0394 709.9887 null] ->> endobj -1542 0 obj << -/D [1531 0 R /XYZ 85.0394 651.9592 null] ->> endobj -1016 0 obj << -/D [1531 0 R /XYZ 85.0394 651.9592 null] +/Type /Page +/Contents 1542 0 R +/Resources 1540 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1529 0 R >> endobj 1543 0 obj << -/D [1531 0 R /XYZ 85.0394 651.9592 null] +/D [1541 0 R /XYZ 85.0394 794.5015 null] >> endobj 1544 0 obj << -/D [1531 0 R /XYZ 85.0394 648.8377 null] +/D [1541 0 R /XYZ 85.0394 752.3015 null] >> endobj 1545 0 obj << -/D [1531 0 R /XYZ 85.0394 634.0731 null] +/D [1541 0 R /XYZ 85.0394 752.3015 null] >> endobj 1546 0 obj << -/D [1531 0 R /XYZ 85.0394 630.6767 null] +/D [1541 0 R /XYZ 85.0394 752.3015 null] >> endobj 1547 0 obj << -/D [1531 0 R /XYZ 85.0394 615.9121 null] +/D [1541 0 R /XYZ 85.0394 746.3107 null] >> endobj 1548 0 obj << -/D [1531 0 R /XYZ 85.0394 612.5156 null] +/D [1541 0 R /XYZ 85.0394 731.5461 null] >> endobj 1549 0 obj << -/D [1531 0 R /XYZ 85.0394 585.7959 null] +/D [1541 0 R /XYZ 85.0394 728.1497 null] >> endobj 1550 0 obj << -/D [1531 0 R /XYZ 85.0394 582.3994 null] +/D [1541 0 R /XYZ 85.0394 713.3851 null] >> endobj 1551 0 obj << -/D [1531 0 R /XYZ 85.0394 567.6349 null] +/D [1541 0 R /XYZ 85.0394 709.9887 null] >> endobj 1552 0 obj << -/D [1531 0 R /XYZ 85.0394 564.2384 null] +/D [1541 0 R /XYZ 85.0394 651.9592 null] +>> endobj +1016 0 obj << +/D [1541 0 R /XYZ 85.0394 651.9592 null] >> endobj 1553 0 obj << -/D [1531 0 R /XYZ 85.0394 549.5337 null] +/D [1541 0 R /XYZ 85.0394 651.9592 null] >> endobj 1554 0 obj << -/D [1531 0 R /XYZ 85.0394 546.0774 null] +/D [1541 0 R /XYZ 85.0394 648.8377 null] >> endobj 1555 0 obj << -/D [1531 0 R /XYZ 85.0394 531.3128 null] +/D [1541 0 R /XYZ 85.0394 634.0731 null] >> endobj 1556 0 obj << -/D [1531 0 R /XYZ 85.0394 527.9163 null] +/D [1541 0 R /XYZ 85.0394 630.6767 null] >> endobj 1557 0 obj << -/D [1531 0 R /XYZ 85.0394 513.1518 null] +/D [1541 0 R /XYZ 85.0394 615.9121 null] >> endobj 1558 0 obj << -/D [1531 0 R /XYZ 85.0394 509.7553 null] +/D [1541 0 R /XYZ 85.0394 612.5156 null] >> endobj 1559 0 obj << -/D [1531 0 R /XYZ 85.0394 483.0356 null] +/D [1541 0 R /XYZ 85.0394 585.7959 null] >> endobj 1560 0 obj << -/D [1531 0 R /XYZ 85.0394 479.6391 null] +/D [1541 0 R /XYZ 85.0394 582.3994 null] >> endobj 1561 0 obj << -/D [1531 0 R /XYZ 85.0394 464.8745 null] +/D [1541 0 R /XYZ 85.0394 567.6349 null] >> endobj 1562 0 obj << -/D [1531 0 R /XYZ 85.0394 461.4781 null] +/D [1541 0 R /XYZ 85.0394 564.2384 null] >> endobj 1563 0 obj << -/D [1531 0 R /XYZ 85.0394 446.7135 null] +/D [1541 0 R /XYZ 85.0394 549.5337 null] >> endobj 1564 0 obj << -/D [1531 0 R /XYZ 85.0394 443.3171 null] +/D [1541 0 R /XYZ 85.0394 546.0774 null] >> endobj 1565 0 obj << -/D [1531 0 R /XYZ 85.0394 428.5525 null] +/D [1541 0 R /XYZ 85.0394 531.3128 null] >> endobj 1566 0 obj << -/D [1531 0 R /XYZ 85.0394 425.156 null] +/D [1541 0 R /XYZ 85.0394 527.9163 null] >> endobj 1567 0 obj << -/D [1531 0 R /XYZ 85.0394 355.0758 null] +/D [1541 0 R /XYZ 85.0394 513.1518 null] >> endobj 1568 0 obj << -/D [1531 0 R /XYZ 85.0394 355.0758 null] +/D [1541 0 R /XYZ 85.0394 509.7553 null] >> endobj 1569 0 obj << -/D [1531 0 R /XYZ 85.0394 355.0758 null] +/D [1541 0 R /XYZ 85.0394 483.0356 null] >> endobj 1570 0 obj << -/D [1531 0 R /XYZ 85.0394 352.0499 null] +/D [1541 0 R /XYZ 85.0394 479.6391 null] >> endobj 1571 0 obj << -/D [1531 0 R /XYZ 85.0394 337.3452 null] +/D [1541 0 R /XYZ 85.0394 464.8745 null] >> endobj 1572 0 obj << -/D [1531 0 R /XYZ 85.0394 333.8889 null] +/D [1541 0 R /XYZ 85.0394 461.4781 null] >> endobj 1573 0 obj << -/D [1531 0 R /XYZ 85.0394 309.8192 null] +/D [1541 0 R /XYZ 85.0394 446.7135 null] >> endobj 1574 0 obj << -/D [1531 0 R /XYZ 85.0394 303.7727 null] +/D [1541 0 R /XYZ 85.0394 443.3171 null] >> endobj 1575 0 obj << -/D [1531 0 R /XYZ 85.0394 278.3282 null] +/D [1541 0 R /XYZ 85.0394 428.5525 null] >> endobj 1576 0 obj << -/D [1531 0 R /XYZ 85.0394 273.6565 null] +/D [1541 0 R /XYZ 85.0394 425.156 null] >> endobj 1577 0 obj << -/D [1531 0 R /XYZ 85.0394 246.9367 null] +/D [1541 0 R /XYZ 85.0394 355.0758 null] >> endobj 1578 0 obj << -/D [1531 0 R /XYZ 85.0394 243.5403 null] +/D [1541 0 R /XYZ 85.0394 355.0758 null] >> endobj 1579 0 obj << -/D [1531 0 R /XYZ 85.0394 173.5556 null] +/D [1541 0 R /XYZ 85.0394 355.0758 null] >> endobj 1580 0 obj << -/D [1531 0 R /XYZ 85.0394 173.5556 null] +/D [1541 0 R /XYZ 85.0394 352.0499 null] >> endobj 1581 0 obj << -/D [1531 0 R /XYZ 85.0394 173.5556 null] +/D [1541 0 R /XYZ 85.0394 337.3452 null] >> endobj 1582 0 obj << -/D [1531 0 R /XYZ 85.0394 170.4341 null] +/D [1541 0 R /XYZ 85.0394 333.8889 null] >> endobj 1583 0 obj << -/D [1531 0 R /XYZ 85.0394 144.9896 null] +/D [1541 0 R /XYZ 85.0394 309.8192 null] >> endobj 1584 0 obj << -/D [1531 0 R /XYZ 85.0394 140.3179 null] +/D [1541 0 R /XYZ 85.0394 303.7727 null] >> endobj 1585 0 obj << -/D [1531 0 R /XYZ 85.0394 113.5982 null] +/D [1541 0 R /XYZ 85.0394 278.3282 null] >> endobj 1586 0 obj << -/D [1531 0 R /XYZ 85.0394 110.2017 null] +/D [1541 0 R /XYZ 85.0394 273.6565 null] >> endobj 1587 0 obj << -/D [1531 0 R /XYZ 85.0394 95.4372 null] +/D [1541 0 R /XYZ 85.0394 246.9367 null] >> endobj 1588 0 obj << -/D [1531 0 R /XYZ 85.0394 92.0407 null] +/D [1541 0 R /XYZ 85.0394 243.5403 null] >> endobj -1530 0 obj << +1589 0 obj << +/D [1541 0 R /XYZ 85.0394 173.5556 null] +>> endobj +1590 0 obj << +/D [1541 0 R /XYZ 85.0394 173.5556 null] +>> endobj +1591 0 obj << +/D [1541 0 R /XYZ 85.0394 173.5556 null] +>> endobj +1592 0 obj << +/D [1541 0 R /XYZ 85.0394 170.4341 null] +>> endobj +1593 0 obj << +/D [1541 0 R /XYZ 85.0394 144.9896 null] +>> endobj +1594 0 obj << +/D [1541 0 R /XYZ 85.0394 140.3179 null] +>> endobj +1595 0 obj << +/D [1541 0 R /XYZ 85.0394 113.5982 null] +>> endobj +1596 0 obj << +/D [1541 0 R /XYZ 85.0394 110.2017 null] +>> endobj +1597 0 obj << +/D [1541 0 R /XYZ 85.0394 95.4372 null] +>> endobj +1598 0 obj << +/D [1541 0 R /XYZ 85.0394 92.0407 null] +>> endobj +1540 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1592 0 obj << +1601 0 obj << /Length 2889 /Filter /FlateDecode >> stream -xÚµšÝw›:ÀßóWøÑ>§ÑEŸ$v·‰›µ“·ÄVN0¤·Í¿#ôÀ zwÏž<¤AƒõÓŒfFà‰xâùÈH4 "yö&Ûý™3ù}WgXÊœ+¡sSêâþì÷4˜D(ò‰?¹2Æ -‘†xr¿û2E3Á™^,/n–Ÿ®ÖñÝõ_³sâ9Ó¿ωWsq³y¸ºZlîòv½ˆçËÕˆàÙyàGÎ4¾»[¬æË?EÌGutëåb3ûzÿálq¯_ÛüiØ¡ü¿Ÿ}ùêLvð ?œ9ˆF¡7ù 7ÂQD&û3×£Ès)U-ÙÙæì_z@£·~´wª°ƒõIÏ\<ÁEžGZ“åEȧ„Ö“µfeq€JŠ¿Ó—õûKŒCúµ«ÓávÕZêT·k.Lä‘ ­{Å~ÂÏÇt:_mÄÅz-ØߎCò´J‹¼ž“ÎOÁŽ ÓJ}x >Ð;xŠ8ÓKô~‘)c,~°Ã ‡ÓçäPÕxz#»âú?™Þ&ûä¥(eïZö>dÙ>És9h’ïDóÝ “H ~[l_’WVRxÞfB½Ò¹XÂ>>m«âÞ£¦ ‹ÎAC„ý(B¡ïŽ6¥† k)M8püaÂVÕ áݽ„[ºXøé«M|§–=7¦m½˜Aw‘ä/ø Òü›¸˜øh²÷²ÈX–%ò™.w˜Cú)F8RJJs›jƒCWw?SwÌ×r0½e ˜\úÓ§â Ú¿^k¬,ÅdBçM±M¸é ‰eÂ{ÝàOSÙQ=3q1/öI*;WÉ^¶nÞÊŠí{°R#{Ñ+Å`½r°äGZʶÆæ ãóÌó¦é¯”I‹ÓÃœkÇ £ÝÏwŠÞuVÅR®Šyº}Ió²È¥À‡$?&‡7½.üáuá¶çÒ1û4¤,ëBI©uAXÖ…Mµ±.ººû×…©ÖÅž0SŠÝÚÿò†zuð‹Í+Û¦OoõÊà÷5r.Ù,Þ\—¼¾rå=FïFÈÅ.5ð»"ΫÊÎ¥Q+±ìØnŸÓbÀhÃA¼^è"⮯)5ŒWKxÃa¼VÕ Þݽx[ºùš¥;¦~m|„Ó‡<å Dcg›…–åŽåUÊã*v(EÓQº|ª|9´i_Nµ/§V_NQzÔôå‘Ø„ù`Iž²L !|14Þ"å¿å£-Ô°Ge¼–b}Ì™ ƒö¢ADG@RÐJJƒ&Ô±€¶©6@wu÷ƒ6udr/~mŸ“ü›œˆ9ËØ7µw ±­Ã…àÉ¥W›¾È*ô ‘¡íÀJ…NqÕÚ#»±“…%Èuý1 -†”…‚’Ò`¯·P°©6(tu÷S0uÏ7±øé•°b³¼’MiÞweG<úvÄv¤óc SçÀ=Û%uQømBsIh‘”U–¼0ÙLkCß½Sq±°ûgM,&†af0s†”…˜’2ˆb6Õ±®î~b¦îõ&þãvîÁÎ(j4À2¢5~Åñÿb›E7 -jõ’¿¡æG(pÐØån`s¿k°‰`FÔÊ'­0ÝÐA>Lº¦)5 SK0-»UuóDw/Ì–îMUê] -GtzÉb ƒà“•¼Í­ò¾š!oP y£`ȯC.1ÂP„!ílòç9Cþ¬izŽ§ -™z…ñ‹ORøê¸Û!¨•Á¹Å´ñ´ÿÄr]ˆã؆”¶’2`GØ6Õì®î~ئn;û\(â/‚Øô©ŽZίY]™½°9–¢?•-Òõ††ë´ë ×-€ÀEÄÒ†ë ¥ëZüý–ëõñ‰ Ëþ CºÑUCÊBUI5T]KcUmPíêî§jêž³*Ù>³Ý³1Šìݨ@ôà‚Ù¥ÔõþÏ[%…42ÂþSj–Òh‚ÐR°ªnÐœèîEÓÒ]‡6ªÓ…¢ 2Ž §¥QàÒÈž’éTÙj0-e@´J¢k³æ•™ÏC6çÈ…Þ„ˆB- dTš’g”„n¤à¢L•¯U¶²‹ÇâÇ c¬É{öx˜…Ó&›$Ž3\¢¥¾‡â‘`HYV€’Ò+ žeØT+ «»˜ºï9P×u¹-Ö”]—Nãcõ Ûnõ&ºîŠ”—D‡ºŠïî×Â>y͘÷µ³NÞ%““~'ë{nüO ë§T¸Fb\‘G¾k¼*²åU7ìü‡NSì)lÃ#!o#ca(dAŠ±Å½Z”üÚZûé5Zy »¹ŽÏ±8ÀÙ‘¡.!„Kˆ™¼À•(ÔbU½%Fõëê-n2\l—!ðp(6c°ð¿¤óò"®áyA:y“LÕ-¨@S„>â¹ãFÈÂQ -5 ‰¥ngÓkì(îGi(Ž›t]$ãk}4HøÑ`'¿¿IËJ¦žÂ÷:íbo¸·8`ù,ä8Έ6¥†™k©æË3·ªn˜ŸèîeÞÒ­çc‘o‹Ý ü«~‡—&‡éÖ?Áô~²"âø¡ÅÍ~6oZ_ˆñzH3•¼„ÃÉ ö"â±j)e¡¤¤J¶ýÒªÚ ÔÕÝOÉÔ½fß©Øãö,WÛ¡Þ"›#/~w]è ó\ÍÝk–nBzSÖ•ž»Ï,HžÜNáüâìØ@¹Ü… ݑz)e¢¤4/²™ŽMµ¥«»Š©{<½ßT‡ã¶n’ufÞ8ÛèÙ#ùuÛ“ÿAÇæ9Â@b?üÅÆ ÂKL) %¥Ó:Š-»–Uµ¡«»ƒ©û2KÊ2Ó¡àruÏçk¯…w‰gºáGɾVU•t—3å„®dãNÒ¼ªç¾(ªîWÏÖå÷#>×ÅÝ989¶7¥,È””FK4iUm ëêîGfê^ÆjËà% -¶}ÎÁ=eês¦=÷qrê6=äé÷#ë#@ wÓ!(ôü  ¶í,c‰ÂÊŽ¥^I§‚ö;•“~f8ö•…!4LK 5eb©TÛô6¬ºŠ{Q™ŠµsCåã܈û¸¤Õµ›s£N$—ñ*W—+¤;vH†¾oä%MŸ´Nÿ`Ä:¥†ÇÍ”š”šwJ¡‹º°•çâ#Èó×Ö–ei²W_,j%­Ø_kç3»Á@ÓRgñÿž¶gò“þÏŸíUñÑ0^H"7„AäKñŸ‘“7Wß÷ž¾ú5Oendstream +xÚµš[w›º€ßó+üh¯Õh£ ·G»‰ÛÄͱ“ž½WwˆMV0¤·Í¿?#tA`Ý笳ò ֧͌ÀþðÄõ’p⇠¹v'Ûý™3ù}WgXÊœ+¡sSêâþì÷ÔŸ„(ôˆ7¹2Æ +xr¿û2E3Á™^,/n–Ÿ®ÖÑÝõ_³sâ:Ó¿׉Vsq³y¸ºZlîòv½ˆæËÕˆàÙ¹ï…Î4º»[¬æË?EÄGutëåb3ûzÿálq¯_ÛüiØ¡ü¿Ÿ}ùêLvð ?œ9ˆ†;ù 7ÂaH&û3æRä2JUKv¶9û—Ðè­í*ì B=Ò3WO0F¡ë’Öd¹!ò(¡õd­“²8¶‰œ‚d[vâú~3ðöš”ƒ¿’bä»ÂÐ/Eû*)þN_Öï/1è×®fLL‡ëÛUk©SÝÌ\<˜øÈ%~[÷*ù ?Óé|µëµlHþv’§UZäõœt~ +vL+õà%ø@ïà)âL/ÑûYH¦HŒ±ø‘f8˜>LJªÀÓÙÕÿÉô6ÞÇ/E){ײ÷!ËöqžËAã|'šïf˜„jðÛbû¿&Õ!…§áý`&Ô+‹e ìãÓ¶*á=jÊ°è4DØ Cxl„°)5LXKi¾ã ¶ªnŸèî%ÜÒ-ÀÂO_m¢;µì¹p0mCèÅ ºýÐ Ì Äÿ[€”æßÄÀÄG“½—E–dY,Ÿér`Ã|ÐO±?ÂÁ²pPRšCàÛ8ØTººû9˜º#¾–ýémƒ9Á¥7}*¢mñ뵦‘”¥˜Lè¼)¶17=!±ÌAx¯¼i*;ªçD\Ì‹}œÊÎU¼—­›·²Jö=X©ƒ‘˽hƒ•b°^9Xü#-e[csÐñyæºÓôWšH‹ÓÃœkÇ £ÝÏ|6Eï:«b)WÅ<ݾ¤yYäRàCœãÛ^Þðº`°í1:fŸ†”e]()µ.ˆã˺°©6ÖEWwÿº0uú ØfJ1«ý/o¨W¿Ø¼&Ûôé­^ü¾FÎ%›%›‹')ž~¤Û¤D=Ô‰"L‰AaîŠù“WÇìñ¸Ê$ +jt¼G¯~c¬úqe×õ‚ÐZ ÂN{»îH`dJY¨*)M{–}ÕªÚ ÚÕÝOÕÔý ,fBò‚‹e^%‡<©ÄÎû Ù–°—=+)~»üs±——…°ÿ\>{•q&®£ÝN9ù\üúÊ•÷= ÃŒø™ˆóê²siÔJ¬Å0+¶Ûç´0Ú`¯0D<ŸÙñšRÃxµ”7ÆkUÝà=ÑÝ‹·¥›ï ÙQºcêÕÆG¨?}ÈSJ4v¶YhYî’¼Jy\•JÑt”.Ÿ*_mÚ—SíË©Õ—Sä.5}y(6a>Xœ§I&†¾o‘òßòÑjØ£² ^K±>æ‰íƒv ¢~HG@RÐJJƒ&Ô±€¶©6@wu÷ƒ6uLä_üÚ>Çù79ó$K¾©í¸“Hˆm.O.½ÚôEV ‰ mV*tŠªÖÙ,(AŒyc ) %¥)À^o¡`SmPèêî§`êžo"ñÓ?.þ*;aÅfy%›Ò¼;ïÊŽxô+ìˆ? ìHçÇ@§Î{¶KÊPè{mBsIh—U¿$²™Ö†¾{§âba÷ÏšX8L ÃÌ`:æ ) 1%eó-Älª b]ÝýÄLÝëMôÇíÜ…ÅWÔ¨eDá+jüŠâÿÅ6 2ŠoÔê$5~=BÍ ‘ÏœÀØå|n`cŽ‰ß5ØD0£Fjå“V˜,p“n‡iJ ÃÔRLËngUÝÀ<ÑÝ ³¥{S‡z—Â!^&±…Að™”¼Õ y_Í7(†¼Q0äWŠ!—aH(Âv6 ùóœ!Ö4=ÇU …L½ÂøÅ')|uÜíÔÊàFÜbÚxÚb¹ âxŸúd¶!e­¤ Ø¡¶Mµ»«»¶©›ÃŽÅ>ˆ¸Æ !6}ª£–ó뤮̈^ØKÑŸÊézÃõ†Úõ†ë ǀϱ´ázézïåz=|bÃr `ÂÇ,£jHY¨*©†*³Ä1VÕÕ®î~ª¦îyRÅÛçd÷ßlŒ"{7*=¸`v)eîÿy«¤F†ØAcJ £ÑRX +VÕ šݽhZºëÐÆWuº@`¡AÆ‘Á´4 +¼C™ÏS2ƒ*[õ§¥,ˆV RtmÖ¼2óyÈæ˜$ð&D_ja £:Д„\£$t#eª|­°•]<?fcµHÞ'‡Y0m²Iâ8Ã%Zê¹È!Y†”e()½BìZV€Mµ±ººûW€©ûžeŒq[¬)3F§Ñ±z†m·z]wEÊË¢C]Ew÷kaŸ¼¿fÌûÚY'ï’ÉI¿“õ\ÖðoÁSÃú)•®‘Wä‘ï¯ÊŸlyÕMò +þC§)vŽ¶á‘·‘±02Š ÅØâ^-J ~m­ýô­<ÐÝ\GçX`Èl„ÈP—Â%D‹L^àJj±ªÞ£z‹uõ7®G¶Ëx8›‡1Xø_ÒŠyy×𿼠¿I¦jŒT ˆ‡)BqÇÜq#dá(…ÄR·³é5Hv÷£4GMº.’ñµ>$üh°“ßߤe%SOá{v1Ž7܉[<ýJJãPöîFé ] ààö–j¸^È«ŠíóIÆ + <¢8´3„†)! Ì -¥›ÞXWq/0S±¨¡þª’¼¬O*a vDMþ—Ç××âP ¡åhü‘JQ6‡F¯¯2ãcäx¡±2âN7H8`ù,ä8Έ6¥†™k©æË3·ªn˜ŸèîeÞÒ­çc‘o‹Ý üURý,/MÓ­ ~‚é;üd'@Äñ‹›ýlÞ´¾: âõf*y †“ì†(ÀcÕSÊBII5”lû¥UµA©«»Ÿ’©{|?¦bÛ'¹ÚõÙyñ»ëBo˜çjî^³tkÒ›²®ôÜ}féCòÄ:…ó‹C¼KÊå6(~LÀFêu¦”Š’ÒPÜÐf:6Õ”®î~(¦îñô~SŽÛJ¸É¤3óÆÙFÏÖºÈó)kOþiw˜ç‰ýðƒ +w,!0¥,””Në(¶ìZVÕ†®î~ ¦îË,.ËL‡‚ËÕy4Ÿ¯Q´Þ%úé†åw&ûZUUÒ]ž('t%w’æU=÷EQu¿Âèx¶æ(¿Ùð¹.†ìÎÁÁȱ½)eA¦¤4²€X¢I«jYWw?2S÷2ºP[/Q$ÛçÜS¦>gÚs'÷¡îaÓCž~?&Ý`ôn:®ç·Á¶e$Q@XÙ±Ô‹"îTÐ~§rÀÏ Æ¾²0„†i)¡¦lB,•j›Þ†UWq/*S±öq,P>Ž…ÜÇÍ ­®Ý ;UL\F«H\]B®î’C<ô}#/iz¤uú#Ö)5> endobj -1593 0 obj << -/D [1591 0 R /XYZ 56.6929 794.5015 null] ->> endobj -1594 0 obj << -/D [1591 0 R /XYZ 56.6929 748.5056 null] ->> endobj -1595 0 obj << -/D [1591 0 R /XYZ 56.6929 748.5056 null] ->> endobj -1596 0 obj << -/D [1591 0 R /XYZ 56.6929 748.5056 null] ->> endobj -1597 0 obj << -/D [1591 0 R /XYZ 56.6929 743.7078 null] ->> endobj -1598 0 obj << -/D [1591 0 R /XYZ 56.6929 719.6381 null] ->> endobj -1599 0 obj << -/D [1591 0 R /XYZ 56.6929 711.8197 null] ->> endobj 1600 0 obj << -/D [1591 0 R /XYZ 56.6929 697.0552 null] ->> endobj -1601 0 obj << -/D [1591 0 R /XYZ 56.6929 691.8868 null] +/Type /Page +/Contents 1601 0 R +/Resources 1599 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1529 0 R >> endobj 1602 0 obj << -/D [1591 0 R /XYZ 56.6929 665.1671 null] +/D [1600 0 R /XYZ 56.6929 794.5015 null] >> endobj 1603 0 obj << -/D [1591 0 R /XYZ 56.6929 659.9987 null] +/D [1600 0 R /XYZ 56.6929 748.5056 null] >> endobj 1604 0 obj << -/D [1591 0 R /XYZ 56.6929 635.929 null] +/D [1600 0 R /XYZ 56.6929 748.5056 null] >> endobj 1605 0 obj << -/D [1591 0 R /XYZ 56.6929 628.1106 null] +/D [1600 0 R /XYZ 56.6929 748.5056 null] >> endobj 1606 0 obj << -/D [1591 0 R /XYZ 56.6929 601.3909 null] +/D [1600 0 R /XYZ 56.6929 743.7078 null] >> endobj 1607 0 obj << -/D [1591 0 R /XYZ 56.6929 596.2225 null] +/D [1600 0 R /XYZ 56.6929 719.6381 null] >> endobj 1608 0 obj << -/D [1591 0 R /XYZ 56.6929 569.5028 null] +/D [1600 0 R /XYZ 56.6929 711.8197 null] >> endobj 1609 0 obj << -/D [1591 0 R /XYZ 56.6929 564.3344 null] +/D [1600 0 R /XYZ 56.6929 697.0552 null] >> endobj 1610 0 obj << -/D [1591 0 R /XYZ 56.6929 549.6297 null] +/D [1600 0 R /XYZ 56.6929 691.8868 null] >> endobj 1611 0 obj << -/D [1591 0 R /XYZ 56.6929 544.4015 null] +/D [1600 0 R /XYZ 56.6929 665.1671 null] >> endobj 1612 0 obj << -/D [1591 0 R /XYZ 56.6929 529.6968 null] +/D [1600 0 R /XYZ 56.6929 659.9987 null] >> endobj 1613 0 obj << -/D [1591 0 R /XYZ 56.6929 524.4686 null] +/D [1600 0 R /XYZ 56.6929 635.929 null] >> endobj 1614 0 obj << -/D [1591 0 R /XYZ 56.6929 500.3989 null] +/D [1600 0 R /XYZ 56.6929 628.1106 null] >> endobj 1615 0 obj << -/D [1591 0 R /XYZ 56.6929 492.5805 null] +/D [1600 0 R /XYZ 56.6929 601.3909 null] >> endobj 1616 0 obj << -/D [1591 0 R /XYZ 56.6929 467.136 null] +/D [1600 0 R /XYZ 56.6929 596.2225 null] >> endobj 1617 0 obj << -/D [1591 0 R /XYZ 56.6929 460.6924 null] +/D [1600 0 R /XYZ 56.6929 569.5028 null] >> endobj 1618 0 obj << -/D [1591 0 R /XYZ 56.6929 436.6227 null] +/D [1600 0 R /XYZ 56.6929 564.3344 null] >> endobj 1619 0 obj << -/D [1591 0 R /XYZ 56.6929 428.8043 null] +/D [1600 0 R /XYZ 56.6929 549.6297 null] >> endobj 1620 0 obj << -/D [1591 0 R /XYZ 56.6929 414.0996 null] +/D [1600 0 R /XYZ 56.6929 544.4015 null] >> endobj 1621 0 obj << -/D [1591 0 R /XYZ 56.6929 408.8714 null] +/D [1600 0 R /XYZ 56.6929 529.6968 null] >> endobj 1622 0 obj << -/D [1591 0 R /XYZ 56.6929 382.1516 null] +/D [1600 0 R /XYZ 56.6929 524.4686 null] >> endobj 1623 0 obj << -/D [1591 0 R /XYZ 56.6929 376.9833 null] +/D [1600 0 R /XYZ 56.6929 500.3989 null] >> endobj 1624 0 obj << -/D [1591 0 R /XYZ 56.6929 350.2636 null] +/D [1600 0 R /XYZ 56.6929 492.5805 null] >> endobj 1625 0 obj << -/D [1591 0 R /XYZ 56.6929 345.0952 null] +/D [1600 0 R /XYZ 56.6929 467.136 null] >> endobj 1626 0 obj << -/D [1591 0 R /XYZ 56.6929 321.0255 null] +/D [1600 0 R /XYZ 56.6929 460.6924 null] >> endobj 1627 0 obj << -/D [1591 0 R /XYZ 56.6929 313.2071 null] +/D [1600 0 R /XYZ 56.6929 436.6227 null] >> endobj 1628 0 obj << -/D [1591 0 R /XYZ 56.6929 298.5024 null] +/D [1600 0 R /XYZ 56.6929 428.8043 null] >> endobj 1629 0 obj << -/D [1591 0 R /XYZ 56.6929 293.2742 null] +/D [1600 0 R /XYZ 56.6929 414.0996 null] >> endobj 1630 0 obj << -/D [1591 0 R /XYZ 56.6929 267.8297 null] +/D [1600 0 R /XYZ 56.6929 408.8714 null] >> endobj 1631 0 obj << -/D [1591 0 R /XYZ 56.6929 261.3861 null] +/D [1600 0 R /XYZ 56.6929 382.1516 null] >> endobj 1632 0 obj << -/D [1591 0 R /XYZ 56.6929 199.468 null] +/D [1600 0 R /XYZ 56.6929 376.9833 null] >> endobj 1633 0 obj << -/D [1591 0 R /XYZ 56.6929 199.468 null] +/D [1600 0 R /XYZ 56.6929 350.2636 null] >> endobj 1634 0 obj << -/D [1591 0 R /XYZ 56.6929 199.468 null] +/D [1600 0 R /XYZ 56.6929 345.0952 null] >> endobj 1635 0 obj << -/D [1591 0 R /XYZ 56.6929 191.7053 null] +/D [1600 0 R /XYZ 56.6929 321.0255 null] >> endobj 1636 0 obj << -/D [1591 0 R /XYZ 56.6929 176.9408 null] +/D [1600 0 R /XYZ 56.6929 313.2071 null] >> endobj 1637 0 obj << -/D [1591 0 R /XYZ 56.6929 171.7724 null] +/D [1600 0 R /XYZ 56.6929 298.5024 null] >> endobj 1638 0 obj << -/D [1591 0 R /XYZ 56.6929 157.0677 null] +/D [1600 0 R /XYZ 56.6929 293.2742 null] >> endobj 1639 0 obj << -/D [1591 0 R /XYZ 56.6929 151.8395 null] +/D [1600 0 R /XYZ 56.6929 267.8297 null] >> endobj 1640 0 obj << -/D [1591 0 R /XYZ 56.6929 137.1348 null] +/D [1600 0 R /XYZ 56.6929 261.3861 null] >> endobj 1641 0 obj << -/D [1591 0 R /XYZ 56.6929 131.9066 null] +/D [1600 0 R /XYZ 56.6929 199.468 null] >> endobj 1642 0 obj << -/D [1591 0 R /XYZ 56.6929 117.2018 null] +/D [1600 0 R /XYZ 56.6929 199.468 null] >> endobj 1643 0 obj << -/D [1591 0 R /XYZ 56.6929 111.9736 null] +/D [1600 0 R /XYZ 56.6929 199.468 null] >> endobj 1644 0 obj << -/D [1591 0 R /XYZ 56.6929 97.2091 null] +/D [1600 0 R /XYZ 56.6929 191.7053 null] >> endobj 1645 0 obj << -/D [1591 0 R /XYZ 56.6929 92.0407 null] +/D [1600 0 R /XYZ 56.6929 176.9408 null] >> endobj -1590 0 obj << +1646 0 obj << +/D [1600 0 R /XYZ 56.6929 171.7724 null] +>> endobj +1647 0 obj << +/D [1600 0 R /XYZ 56.6929 157.0677 null] +>> endobj +1648 0 obj << +/D [1600 0 R /XYZ 56.6929 151.8395 null] +>> endobj +1649 0 obj << +/D [1600 0 R /XYZ 56.6929 137.1348 null] +>> endobj +1650 0 obj << +/D [1600 0 R /XYZ 56.6929 131.9066 null] +>> endobj +1651 0 obj << +/D [1600 0 R /XYZ 56.6929 117.2018 null] +>> endobj +1652 0 obj << +/D [1600 0 R /XYZ 56.6929 111.9736 null] +>> endobj +1653 0 obj << +/D [1600 0 R /XYZ 56.6929 97.2091 null] +>> endobj +1654 0 obj << +/D [1600 0 R /XYZ 56.6929 92.0407 null] +>> endobj +1599 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1648 0 obj << +1657 0 obj << /Length 2544 /Filter /FlateDecode >> @@ -7148,173 +7197,173 @@ i ͳpUÉç[BX#îŽ"â6å¶ÌÇ¢.ñ¡Ä<`µ¸ëj¤uk“¹–Ÿ Ó†¾L3Ø¢2ÃTÆd!dõuD^FhK!E: G@vᜀ-”È?1’ÐŽCHGh‡Å.ŽÇ<ÛêôFx5±Z>,TÉ0<& `&„ÁC]†›»4o Em‰?´Q_à#ØL¾Ò¢Ž%Ïü}$Ïf®C@›Ô ËóR3Ý‚lß4ßö¬ˆÂñN‰!¸›RÆ•”A9vPî‚68b[H7Á9£ÂÅØ|šÒ„»>»i*°5ÇÇ€%Á OŒxêÊÅÚØÏçFâ(ŸWæÃEtšDœÀ‰múp€ÂŽq¾ŒÁ¸X«%œÏ|Q„«Ez„_çi±}cÍŸ <ˆ TP—NsSÊN¸–2w¤ÁNèŽð3ìqÂ{àO§âǶÜ1ÀiÔÆùˆL¯!Ū[Âù}0eÈÈ;"";Œ~-2þ¨‡>ŒŽ 0¯ãFÔÅ VC2nÌ[òP?µè…`[D¡õÓˆ…§RøŸrö³<û ¸Ò™'ˆQP" šW,O•,¡Öü €3„Fþ…üÀ”r˜‘’ÒÕÔ€3rAf4Ķ˜‘ þµn­ƒ @œáPeu®Ž™©óÑÍ`á FE:QÊ Þ-àÁEÌ-ª—¬©ÚzHÌVaÑÀÍË©±ÈCfÕE`Mž*òUÖeÍŠ—ôtãüh—ÑB<Õ Ϊ˜@Ê %˜!dgQ i#ìh ¹p;‡ÀãšÈ’ žUõ“ø®SÁ^Nû=ga$G°™x˜À+Ï[ƒ%”–.PØU@åF·Ž )‡’•T§åÄá*NhCÍCl‹žMp­ÏÍéx,«f îÏeºS-~XYôM/ŒÉ ßóÌ+!Õ`¨²z«”¾8VY®5Ní÷cEñ…V)åи’êjÖÀ‘Ç:¡ ±-7ÁR³l¯: ×iÙù ÂS…m^Štv´µ@àšöIxÔmƒÄŸ¦§ý›HJÇLßÞ%(‚ ÇÊ SÊA„’ÒDÀQE:¡ "†Ø"Lp}"„:à—"wƒ‹›òpL‹€¸Z3ˆ÷ìÈ¡ ñ½ 6»;$!ÓOžxòo9+àdjG}í|æÎN™¿Êô+ÜËùG¨ÿê—mP”ëÃBcO‹ØʧQ/ /¦”O-ÕñIÉ£ºãó {œÏøB÷FßYѵEï”Kɬ`à|*û㽜ÚÑ]9+áU}ŒÖÛtÙî&6Fãà/ƒ)¤Sz9j8®AÊ؉¼fP¶5rfE‹h®ˆýƒNT¥Žh‚? [ÞÐîKð¼zÐôkÉ¥ˆ/ƒAþýIRÔ9ãhÇpl§‰P/@Á…TÀ”r¥¤4Sp6;˜rAT ±-\™àKþåg²­›$œ.Nͨ¼ç‰!ù•lró›húÎûâíè›(dxñÁïyU–Ö\o·“u=êTt„GT‡:Pò>ŠÕwmû›OŠ\B4ÏÔÓ½@Dúv"¡Ê‚ê—=SÊA¤’ÒD&Èår.hƒÈ!¶…H\çt«§÷Påbüè¨Ò¢î’¼³/÷üÓjžlü›ò~tŽæÔËS¥=U_(W[½ Ö•³mر1R`(°ôÄ)öbHžú=ñÇ—ºÌYÃh`i‡cÎûUå{û;l1ã#j‹<ÄXl8GÁXܶ`JÙmAKU”ãPtBw¶p†=n =pa ~8½íš&p×FOøÏÊ}•ßÀIs1òÙ‘`†¾Sš˜ÍQ<½ñăw©øþÈò\δ_L|¨–·o§ü&G7Rþ)gYS0ýÝ‘`É%Ì-¥ »²È>ÈLGá÷ú1ÿC ‡/¡ÜÝ”rP¬¤tÞFŽBÙ mP<ĶPl‚_g…>¶>§/LÕÌÙÙI;ZSȈ¥žH‚dü3ØM•~=’ §ý©n4‰•%ˆtÓ`ÙYPBÝ'©ÈQG»p;†Àã˜ÈÂÉb §áY…Hvà¾)ù³¸†A•áÊ8åÀ~/öê»~¬¼VY³âÄ-}¼'`(ŠÌ¦Gœºâ>]ݲòÜ”öÜêF}îòŸùüÄÓ -2jëHøÿûYF2òHlë¹B¦žDê¥øæ2|sýË­óWÿ/§÷Áendstream +2jëHøÿûYF2òHlë¹B¦žDê¥øæ:|sýË­óWÿ/ÿ÷Ãendstream endobj -1647 0 obj << -/Type /Page -/Contents 1648 0 R -/Resources 1646 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1589 0 R ->> endobj -1649 0 obj << -/D [1647 0 R /XYZ 85.0394 794.5015 null] ->> endobj -1650 0 obj << -/D [1647 0 R /XYZ 85.0394 748.4854 null] ->> endobj -1651 0 obj << -/D [1647 0 R /XYZ 85.0394 748.4854 null] ->> endobj -1652 0 obj << -/D [1647 0 R /XYZ 85.0394 748.4854 null] ->> endobj -1653 0 obj << -/D [1647 0 R /XYZ 85.0394 743.3452 null] ->> endobj -1654 0 obj << -/D [1647 0 R /XYZ 85.0394 728.6405 null] ->> endobj -1655 0 obj << -/D [1647 0 R /XYZ 85.0394 723.1655 null] ->> endobj 1656 0 obj << -/D [1647 0 R /XYZ 85.0394 708.4607 null] ->> endobj -1657 0 obj << -/D [1647 0 R /XYZ 85.0394 702.9857 null] +/Type /Page +/Contents 1657 0 R +/Resources 1655 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1529 0 R >> endobj 1658 0 obj << -/D [1647 0 R /XYZ 85.0394 688.2211 null] +/D [1656 0 R /XYZ 85.0394 794.5015 null] >> endobj 1659 0 obj << -/D [1647 0 R /XYZ 85.0394 682.8059 null] +/D [1656 0 R /XYZ 85.0394 748.4854 null] >> endobj 1660 0 obj << -/D [1647 0 R /XYZ 85.0394 668.0414 null] +/D [1656 0 R /XYZ 85.0394 748.4854 null] >> endobj 1661 0 obj << -/D [1647 0 R /XYZ 85.0394 662.6262 null] +/D [1656 0 R /XYZ 85.0394 748.4854 null] >> endobj 1662 0 obj << -/D [1647 0 R /XYZ 85.0394 599.7666 null] +/D [1656 0 R /XYZ 85.0394 743.3452 null] >> endobj 1663 0 obj << -/D [1647 0 R /XYZ 85.0394 599.7666 null] +/D [1656 0 R /XYZ 85.0394 728.6405 null] >> endobj 1664 0 obj << -/D [1647 0 R /XYZ 85.0394 599.7666 null] +/D [1656 0 R /XYZ 85.0394 723.1655 null] >> endobj 1665 0 obj << -/D [1647 0 R /XYZ 85.0394 591.7571 null] +/D [1656 0 R /XYZ 85.0394 708.4607 null] >> endobj 1666 0 obj << -/D [1647 0 R /XYZ 85.0394 565.0374 null] +/D [1656 0 R /XYZ 85.0394 702.9857 null] >> endobj 1667 0 obj << -/D [1647 0 R /XYZ 85.0394 559.6222 null] +/D [1656 0 R /XYZ 85.0394 688.2211 null] >> endobj 1668 0 obj << -/D [1647 0 R /XYZ 85.0394 534.1777 null] +/D [1656 0 R /XYZ 85.0394 682.8059 null] >> endobj 1669 0 obj << -/D [1647 0 R /XYZ 85.0394 527.4872 null] +/D [1656 0 R /XYZ 85.0394 668.0414 null] >> endobj 1670 0 obj << -/D [1647 0 R /XYZ 85.0394 502.0427 null] +/D [1656 0 R /XYZ 85.0394 662.6262 null] >> endobj 1671 0 obj << -/D [1647 0 R /XYZ 85.0394 495.3523 null] +/D [1656 0 R /XYZ 85.0394 599.7666 null] >> endobj 1672 0 obj << -/D [1647 0 R /XYZ 85.0394 420.5376 null] +/D [1656 0 R /XYZ 85.0394 599.7666 null] >> endobj 1673 0 obj << -/D [1647 0 R /XYZ 85.0394 420.5376 null] +/D [1656 0 R /XYZ 85.0394 599.7666 null] >> endobj 1674 0 obj << -/D [1647 0 R /XYZ 85.0394 420.5376 null] +/D [1656 0 R /XYZ 85.0394 591.7571 null] >> endobj 1675 0 obj << -/D [1647 0 R /XYZ 85.0394 412.5281 null] +/D [1656 0 R /XYZ 85.0394 565.0374 null] >> endobj 1676 0 obj << -/D [1647 0 R /XYZ 85.0394 388.4584 null] +/D [1656 0 R /XYZ 85.0394 559.6222 null] >> endobj 1677 0 obj << -/D [1647 0 R /XYZ 85.0394 380.3932 null] +/D [1656 0 R /XYZ 85.0394 534.1777 null] >> endobj 1678 0 obj << -/D [1647 0 R /XYZ 85.0394 365.6884 null] +/D [1656 0 R /XYZ 85.0394 527.4872 null] >> endobj 1679 0 obj << -/D [1647 0 R /XYZ 85.0394 360.2134 null] +/D [1656 0 R /XYZ 85.0394 502.0427 null] >> endobj 1680 0 obj << -/D [1647 0 R /XYZ 85.0394 345.4488 null] +/D [1656 0 R /XYZ 85.0394 495.3523 null] >> endobj 1681 0 obj << -/D [1647 0 R /XYZ 85.0394 340.0336 null] +/D [1656 0 R /XYZ 85.0394 420.5376 null] >> endobj 1682 0 obj << -/D [1647 0 R /XYZ 85.0394 325.269 null] +/D [1656 0 R /XYZ 85.0394 420.5376 null] >> endobj 1683 0 obj << -/D [1647 0 R /XYZ 85.0394 319.8539 null] +/D [1656 0 R /XYZ 85.0394 420.5376 null] >> endobj 1684 0 obj << -/D [1647 0 R /XYZ 85.0394 295.7842 null] +/D [1656 0 R /XYZ 85.0394 412.5281 null] >> endobj 1685 0 obj << -/D [1647 0 R /XYZ 85.0394 287.7189 null] +/D [1656 0 R /XYZ 85.0394 388.4584 null] >> endobj 1686 0 obj << -/D [1647 0 R /XYZ 85.0394 272.9543 null] +/D [1656 0 R /XYZ 85.0394 380.3932 null] >> endobj 1687 0 obj << -/D [1647 0 R /XYZ 85.0394 267.5392 null] +/D [1656 0 R /XYZ 85.0394 365.6884 null] >> endobj 1688 0 obj << -/D [1647 0 R /XYZ 85.0394 252.7746 null] +/D [1656 0 R /XYZ 85.0394 360.2134 null] >> endobj 1689 0 obj << -/D [1647 0 R /XYZ 85.0394 247.3594 null] +/D [1656 0 R /XYZ 85.0394 345.4488 null] >> endobj 1690 0 obj << -/D [1647 0 R /XYZ 85.0394 223.2897 null] +/D [1656 0 R /XYZ 85.0394 340.0336 null] >> endobj 1691 0 obj << -/D [1647 0 R /XYZ 85.0394 215.2245 null] +/D [1656 0 R /XYZ 85.0394 325.269 null] >> endobj 1692 0 obj << -/D [1647 0 R /XYZ 85.0394 149.4956 null] +/D [1656 0 R /XYZ 85.0394 319.8539 null] >> endobj 1693 0 obj << -/D [1647 0 R /XYZ 85.0394 149.4956 null] +/D [1656 0 R /XYZ 85.0394 295.7842 null] >> endobj 1694 0 obj << -/D [1647 0 R /XYZ 85.0394 149.4956 null] +/D [1656 0 R /XYZ 85.0394 287.7189 null] >> endobj 1695 0 obj << -/D [1647 0 R /XYZ 85.0394 144.3554 null] +/D [1656 0 R /XYZ 85.0394 272.9543 null] >> endobj 1696 0 obj << -/D [1647 0 R /XYZ 85.0394 120.2857 null] +/D [1656 0 R /XYZ 85.0394 267.5392 null] >> endobj 1697 0 obj << -/D [1647 0 R /XYZ 85.0394 112.2205 null] +/D [1656 0 R /XYZ 85.0394 252.7746 null] >> endobj 1698 0 obj << -/D [1647 0 R /XYZ 85.0394 97.4559 null] +/D [1656 0 R /XYZ 85.0394 247.3594 null] >> endobj 1699 0 obj << -/D [1647 0 R /XYZ 85.0394 92.0407 null] +/D [1656 0 R /XYZ 85.0394 223.2897 null] >> endobj -1646 0 obj << +1700 0 obj << +/D [1656 0 R /XYZ 85.0394 215.2245 null] +>> endobj +1701 0 obj << +/D [1656 0 R /XYZ 85.0394 149.4956 null] +>> endobj +1702 0 obj << +/D [1656 0 R /XYZ 85.0394 149.4956 null] +>> endobj +1703 0 obj << +/D [1656 0 R /XYZ 85.0394 149.4956 null] +>> endobj +1704 0 obj << +/D [1656 0 R /XYZ 85.0394 144.3554 null] +>> endobj +1705 0 obj << +/D [1656 0 R /XYZ 85.0394 120.2857 null] +>> endobj +1706 0 obj << +/D [1656 0 R /XYZ 85.0394 112.2205 null] +>> endobj +1707 0 obj << +/D [1656 0 R /XYZ 85.0394 97.4559 null] +>> endobj +1708 0 obj << +/D [1656 0 R /XYZ 85.0394 92.0407 null] +>> endobj +1655 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1702 0 obj << +1711 0 obj << /Length 2122 /Filter /FlateDecode >> @@ -7324,312 +7373,314 @@ S| ‰"ïÀà—Xw“uƒCÔƒ’Hò’Í5€CÍUã ( pRmápª»[wƒCƒƒjÕ8èvƒƒ'!,æ7˜5GºÊÓ|…é¾Zšÿ'î3HW‘î8w® Nü×8âŽÌ2T:Šqá<ró*wÆêù­(Æ)¥ý˜‰ˆP7º„™Å5€YÍuÄ,¢˜ ©¶0;ÕÝ™­»'7.‚Ý›,Þ¥ß(åI\5ÄúûŸ"¯]®Š«}—Sqð°íUsãU÷òGZv;ÂúáŒ0懱¸©¹@\w(˜ ©¶9ÕÝ ˆ­û>ݤzdéj­¼Rð")¶iÅ’̘ë|™ÿ†”gY˜™3ô,“b·Ä¶r·çgíjÁ¢€[qOMQqO þ%.Ky@š®ô’ˆÑQ”* p¹™Ll«ežúï…ÔƒÈyx¡Î³¹ú!m¸H}oÒAÕGHÏtwBÚÒý,—R9Ož¢óˆ€!ˆðÕþ'ªcÌ«ù³BëB®øZ\ϳéØóœå™S$}*v›¸3ú°ò»mçÀqº_íËê«Ó‡±‰€á2ª!áA¹Gýæ‘' .Î]rsi$Ívñ[ÕULSHÊ.Dæj ֬ЫgA ¾»Yi¬ƒqc$èèv±_­'K5‰?ŠÝ».>Õüe‘ì7P“”8¦JõÕu§okžç«4—rg¦cÇå;2ƒ¹Ñ…Õ ƒÑµÄ%Úö"³F]¼„Ž¾N#¡þ̤FøRt¿ÇZ[œžA«'+M,«x%Klcáå;Kù!³b«ö+ò#æÜm¶™Týbg¤7öR“x¯g“•Q]´·eÎ\Åõ+‡ãX`#Ö_áÔwô#ÎÔY -ë˜èÊÿ€\åºØg†ªµªÆ«ÄïïûßUQg5 %©!¹Ú>Zcn„½©SŸ!Ñƺû<3þ$)6“.|¶qžjéŒ:¯ü≀Æ2-“,N7:‡ê¸jX óñBçç®:s%võrá‹(+d-K¢øpuüa„ÄøÉÒ7YÂò°§O+|Ëô'66E^­Í\8ïõ¬S¸lvlԬسW ¥´^²“©¶~Ö3¯f*IM=ëÇŒ²38Ðó  LPxuµbá¥ÂÎk±7±âúîav”ëB±ê7r)‰X}y“;åF½Ïì<„RïÂõËæ:O&° lâ(LgÖŸGµóÈ™ÚÎ<ÒÒŠy„zÆ­¨o[Ê^´5Vć9Oñ>ÃIÓ .\œHºSá¤É»ŽпO÷j"s¡âÜvéj­“ˈ!lÀ Õß+Ô¼ '¸ˆàÇ%L8 üöiñ}£ÌëºpØbXWŸ,ŠB\ÛB¾ÆeUl M ÈÞLÿŽ#y†‚43OøÜSºN®tM52…kE’ÂY.{‹8¬ê£¼hs¬ÿïÿ¥¬ê% "컊p°¯‚³(µ—È=[yýÖùÒÿ š`£endstream +ë˜èÊÿ€\åºØg†ªµªÆ«ÄïïûßUQg5 %©!¹Ú>Zcn„½©SŸ!Ñƺû<3þ$)6“.|¶qžjéŒ:¯ü≀Æ2-“,N7:‡ê¸jX óñBçç®:s%võrá‹(+d-K¢øpuüa„ÄøÉÒ7YÂò°§O+|Ëô'66E^­Í\8ïõ¬S¸lvlԬسW ¥´^²“©¶~Ö3¯f*IM=ëÇŒ²38Ðó  LPxuµbá¥ÂÎk±7±âúîav”ëB±ê7r)‰X}y“;åF½Ïì<„RïÂõËæ:O&° lâ(LgÖŸGµóÈ™ÚÎ<ÒÒŠy„zÆ­¨o[Ê^´5Vć9Oñ>ÃIÓ .\œHºSá¤É»ŽпO÷j"s¡âÜvéj­“ˈ!lÀ Õß+Ô¼ '¸ˆàÇ%L8 üöiñ}£ÌëºpØbXWŸ,ŠB\ÛB¾ÆeUl M ÈÞLÿŽ#y†‚43OøÜSºN®tM52…kE’ÂY.{‹8¬ê£¼hs¬ÿïÿ¥¬ê% "컊p°¯‚³(µ—È?[yýÖùÒÿ š¸¥endstream endobj -1701 0 obj << -/Type /Page -/Contents 1702 0 R -/Resources 1700 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1589 0 R ->> endobj -1703 0 obj << -/D [1701 0 R /XYZ 56.6929 794.5015 null] ->> endobj -1704 0 obj << -/D [1701 0 R /XYZ 56.6929 749.4437 null] ->> endobj -1705 0 obj << -/D [1701 0 R /XYZ 56.6929 749.4437 null] ->> endobj -1706 0 obj << -/D [1701 0 R /XYZ 56.6929 749.4437 null] ->> endobj -1707 0 obj << -/D [1701 0 R /XYZ 56.6929 746.6461 null] ->> endobj -1708 0 obj << -/D [1701 0 R /XYZ 56.6929 722.5763 null] ->> endobj -1709 0 obj << -/D [1701 0 R /XYZ 56.6929 716.7581 null] ->> endobj 1710 0 obj << -/D [1701 0 R /XYZ 56.6929 701.9936 null] ->> endobj -1711 0 obj << -/D [1701 0 R /XYZ 56.6929 698.8254 null] +/Type /Page +/Contents 1711 0 R +/Resources 1709 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1529 0 R >> endobj 1712 0 obj << -/D [1701 0 R /XYZ 56.6929 684.1207 null] +/D [1710 0 R /XYZ 56.6929 794.5015 null] >> endobj 1713 0 obj << -/D [1701 0 R /XYZ 56.6929 680.8926 null] +/D [1710 0 R /XYZ 56.6929 749.4437 null] >> endobj 1714 0 obj << -/D [1701 0 R /XYZ 56.6929 656.8229 null] +/D [1710 0 R /XYZ 56.6929 749.4437 null] >> endobj 1715 0 obj << -/D [1701 0 R /XYZ 56.6929 651.0047 null] +/D [1710 0 R /XYZ 56.6929 749.4437 null] >> endobj 1716 0 obj << -/D [1701 0 R /XYZ 56.6929 636.3 null] +/D [1710 0 R /XYZ 56.6929 746.6461 null] >> endobj 1717 0 obj << -/D [1701 0 R /XYZ 56.6929 633.072 null] +/D [1710 0 R /XYZ 56.6929 722.5763 null] >> endobj 1718 0 obj << -/D [1701 0 R /XYZ 56.6929 609.0023 null] +/D [1710 0 R /XYZ 56.6929 716.7581 null] >> endobj 1719 0 obj << -/D [1701 0 R /XYZ 56.6929 603.184 null] +/D [1710 0 R /XYZ 56.6929 701.9936 null] >> endobj 1720 0 obj << -/D [1701 0 R /XYZ 56.6929 579.1143 null] +/D [1710 0 R /XYZ 56.6929 698.8254 null] >> endobj 1721 0 obj << -/D [1701 0 R /XYZ 56.6929 573.2961 null] +/D [1710 0 R /XYZ 56.6929 684.1207 null] >> endobj 1722 0 obj << -/D [1701 0 R /XYZ 56.6929 558.5914 null] +/D [1710 0 R /XYZ 56.6929 680.8926 null] >> endobj 1723 0 obj << -/D [1701 0 R /XYZ 56.6929 555.3634 null] +/D [1710 0 R /XYZ 56.6929 656.8229 null] >> endobj 1724 0 obj << -/D [1701 0 R /XYZ 56.6929 540.5988 null] +/D [1710 0 R /XYZ 56.6929 651.0047 null] >> endobj 1725 0 obj << -/D [1701 0 R /XYZ 56.6929 537.4306 null] +/D [1710 0 R /XYZ 56.6929 636.3 null] >> endobj 1726 0 obj << -/D [1701 0 R /XYZ 56.6929 510.7109 null] +/D [1710 0 R /XYZ 56.6929 633.072 null] >> endobj 1727 0 obj << -/D [1701 0 R /XYZ 56.6929 507.5427 null] ->> endobj -598 0 obj << -/D [1701 0 R /XYZ 56.6929 477.5928 null] +/D [1710 0 R /XYZ 56.6929 609.0023 null] >> endobj 1728 0 obj << -/D [1701 0 R /XYZ 56.6929 453.2532 null] ->> endobj -602 0 obj << -/D [1701 0 R /XYZ 56.6929 369.7201 null] +/D [1710 0 R /XYZ 56.6929 603.184 null] >> endobj 1729 0 obj << -/D [1701 0 R /XYZ 56.6929 345.3805 null] +/D [1710 0 R /XYZ 56.6929 579.1143 null] >> endobj 1730 0 obj << -/D [1701 0 R /XYZ 56.6929 310.6805 null] +/D [1710 0 R /XYZ 56.6929 573.2961 null] >> endobj 1731 0 obj << -/D [1701 0 R /XYZ 56.6929 310.6805 null] +/D [1710 0 R /XYZ 56.6929 558.5914 null] >> endobj 1732 0 obj << -/D [1701 0 R /XYZ 56.6929 310.6805 null] +/D [1710 0 R /XYZ 56.6929 555.3634 null] >> endobj 1733 0 obj << -/D [1701 0 R /XYZ 56.6929 310.6805 null] +/D [1710 0 R /XYZ 56.6929 540.5988 null] >> endobj -1700 0 obj << +1734 0 obj << +/D [1710 0 R /XYZ 56.6929 537.4306 null] +>> endobj +1735 0 obj << +/D [1710 0 R /XYZ 56.6929 510.7109 null] +>> endobj +1736 0 obj << +/D [1710 0 R /XYZ 56.6929 507.5427 null] +>> endobj +598 0 obj << +/D [1710 0 R /XYZ 56.6929 477.5928 null] +>> endobj +1737 0 obj << +/D [1710 0 R /XYZ 56.6929 453.2532 null] +>> endobj +602 0 obj << +/D [1710 0 R /XYZ 56.6929 369.7201 null] +>> endobj +1738 0 obj << +/D [1710 0 R /XYZ 56.6929 345.3805 null] +>> endobj +1739 0 obj << +/D [1710 0 R /XYZ 56.6929 310.6805 null] +>> endobj +1740 0 obj << +/D [1710 0 R /XYZ 56.6929 310.6805 null] +>> endobj +1741 0 obj << +/D [1710 0 R /XYZ 56.6929 310.6805 null] +>> endobj +1742 0 obj << +/D [1710 0 R /XYZ 56.6929 310.6805 null] +>> endobj +1709 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F14 685 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1736 0 obj << -/Length 1917 -/Filter /FlateDecode ->> -stream -xÚµX[Ûº~ϯ0Ð>hˆáE¤¤óÔÜÚì²)š-úìƒÖ¦m!²¤#É»1Šþ÷ÎpHÙòÊÇ(ŠÖäpøq8wJ,8ü‰E¦Wy²Hó„i.ôb¹{ÅXûÛ+áy­˜N”‚ÉÌj¬UÆt&ÓE| -òîþÕ›¿J±œ#õâ~=žeÒ”ñ|q¿ú½m[[¯ÊŸ7±ÔÌÐJ»‚+k˜}nú!”ùÓk9])# ¿ìʺ¼Q?tÅÐ8á¼ïíŒK€0ùXg.¸ô@Ê„?48Ð%÷`×~Û4(ºáG1ZZ†Õ]OKvY n¹YÓo9øÕà%Ô^€\ÑkXÈ@ ÅùÂõÈЊ3 RP‰µµC0׸àf÷»Úý€þ#xôlÓ½lrÐC{?´è!D¤ßmñdýìÜh½¯—E5žÖ¬g®0›hþ¾Â–'*Ô>²s²<×pÇœ¥iJÿ¶¶Í~³9*ÑÐg*uÍ´2¥çÁÀUJF5ÆxUpæÔ½"ús9l‰¶lv;Ð~\•µ¥5 -‰Í~gë¡GÓi Æ%î¢êâÚ½'Ñü±–r׬<”³3þBXSªq -0 ¤PžLÝ~L!1ÅŠ’GrbPÈ´Ô>GCgÇL%+ër‹‰ÞíboMÃ~—î4i<Ñ90ž1U‰C=U‰'9oÂí-^¬æLD·¦Eä7Iô¼µ50¼,òi΄0‰7d¼÷*™Ðé6ünÊ'[ãõµŠþYWåKt[tUé&˜~Qô×8M)»I££w·wˆ#÷¨»‚î^OjÖ³1o01vÏë’NuðfðÎæ™´'ø ÊE2 þݾʶ²§ÑÝO#ùÑ/–}¿·>ÊOü±gñÆõ``a6Zì$Ag”ù¾TÊC ‡V+¢¸ãâ -;‘ -¢ô­]–è„Kš‡²§|Á¸IÈŠ/(yÎàõ!¯)PÂ[Æó<—Uå BØCQút’ºë£`Tu‰Z•=¹%Þ²žñE¡5R„õ–oàÝÔTO!•eð\ ÝÄß—M½ž‘{Úh{„@œ¨ÿ_#`¡º¹`6&–_Žq9òùM.8^ÓØkŸéÔyx~|x8 ëÐêÐû:aøÏO¡½Œ|¯°'˜u0×ï˜Ìl -o§¾÷Pcµ·ž­¥>"† ÞÑÒÊ® ŒžÖQ¨™ž 5P~DrÍ› ÏC‰z*‹9?€ww¼àÏÿþôåóÇÿ¼a€×-g3ÅLfähg¨ð*ºß†«Rn>½~6æ|â C¹¨D97ù2"ó„%BžÕ®ç&/ÚòÞ*d T×qñrn˜q²YkÞ»ÆJÍíýR7 -ƒ÷Ÿè—¾¸VsAOÔb±*Zšøš £á*ÜдVÙ'[º{ìÕ'i},©9B:u\þŒ™ðw}HàáQ=1oì™Î^—¾…;÷¨fFóÕLBјT3— |~‡ŽÂ¥ÓõÁ)— zÏ; »R3Ò\˜*ßc†}3¯uï99>ÂÃg‰ ƒCûóù©TâHY@ iFL·w!`Z`é–<›VAd|ÿé$ß<9K"5KøY¯ºþÝ´¡Íu΂Cï,ìü}|Ý2ü–:ûNö,ñ‘‡>£N>mpÃ2™§¯ëóÓƲ/û/Œ¦endstream -endobj -1735 0 obj << -/Type /Page -/Contents 1736 0 R -/Resources 1734 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1589 0 R ->> endobj -1737 0 obj << -/D [1735 0 R /XYZ 85.0394 794.5015 null] ->> endobj -606 0 obj << -/D [1735 0 R /XYZ 85.0394 769.5949 null] ->> endobj -1738 0 obj << -/D [1735 0 R /XYZ 85.0394 573.0107 null] ->> endobj -610 0 obj << -/D [1735 0 R /XYZ 85.0394 573.0107 null] ->> endobj -1739 0 obj << -/D [1735 0 R /XYZ 85.0394 538.4209 null] ->> endobj -1740 0 obj << -/D [1735 0 R /XYZ 85.0394 504.6118 null] ->> endobj -1741 0 obj << -/D [1735 0 R /XYZ 85.0394 432.7569 null] ->> endobj -1742 0 obj << -/D [1735 0 R /XYZ 85.0394 303.3232 null] ->> endobj -1734 0 obj << -/Font << /F21 658 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj 1745 0 obj << -/Length 3971 +/Length 1944 /Filter /FlateDecode >> stream -xÚÍZÝsÛ6÷_á™>T™‰X€  ÷1ç|4q§qs±;×NÛZ¢-N$R)»î_»ØDJTÔ̽\<B X,öã· Êsò<Ë“Ü¥îÜ8dBfç³Õ™8¿‡¾7g’ÇLàiÔ‹›³o¾SæÜ%.Oóó›»Þ\6ÖÊó›ù¯“‰LžÁ bòêòͳišg"\¼ÿúêÕåÏð;01ywqõÓÅD{ÿÌÁ°7¯¯Ÿý~óýÙë›ÈLŸa)ròéì×ßÅùøþþL$ÊÙìü~ˆD:—ž¯Ît¦’L+(˳ë³Ç {½þÕQH‘¤*OG$Ês)—eé@™Kr•*/‚ëËwïxMûúé6…{‚7UOv⺕çÆ¿rA£»§u5+–ô£ªšYÑUMM¿›;žGöæ‘$BÀÔÂÏ3¯îG“&ÑJg4o\꯸a Ø[:u’A-äÀE¬8G]¬M¬¶ò pæcµd$».7‹Vƒ°ˆÚ¾]³ËjØ u/Æì(‰\õø4’ ÒSy"Œu~íßß\þxuý9àG/z¤ø/ odz;¶WÌ \'Í:àôükçåi‚›ÒÀAÂy@" ƒé½”šÝh–*±yXÅ q²C~5„HQjVa!,¸Ú¶-sË+Ôtö[3 ;nê’#øQ éÒP•qSJe´)¥r‰¾n‰X—Ýc³ùHUݪ³’;Q/­Eâÿ°ÙïÌ|ç·ßâÿ>ñ4“‹šøCA4Šs¬›MGôUñD[æ§]lý Ò(ô ¾ã‰:ŠõºU{eGÕéo WüŠ$-–‚­p 9 -“mÃÏÖá$*V`øÏS³x©¦Ò`ÃT‹‚H^Þz0+wQ³€>[þH¡ù›ÈÄåµÉ,a¨?8(è”ÔUñðĦšÏ=‡ß(8|£5+‘8™†]Mgãv•ëthWcžYéÄY`%í`|B¾f²à™×äÍ ÜA L~p¶`ßœ)ðÿÒ O¾`ùözϽ-Ûª™9/~# |ùvïÍ—‹¢iAÄ£ï&QýöNuÔs9£C8˜ŽÁUp˜iq{ð\a€a|,Ûߟ+@î„ïÖt<\>Duš¶âéo‹äJ+5sî$S ¡¼ðÆæ >„ÆD 7"cäؽªÜv-QUá“S†™wVHˆ¸˜²WˆUÒæj/è’¥è :ƒe9¦v)¨]ÐλjYˆºïn!ÏL…é¹[«ƒ!Æé½²ARѤkuK„‚õv峸 ýô‘ž°W$BbÊj¥w¾¾gMU "«K^ñuG"{2÷ŒÒk ñn³;zÒ.šírNô[vëð¬ÈÍ0å%å¼/êêO¼Ò”&†'M –sª&ès¹[¼4oyüšã 0æô¶ì²)œ¤ÑÒÔ" S'³@™™à¶-%Ä}žgÍj9Ü¥¶ÅQ‰ó1%™ˆ-ªú!JSŸÀZ=m;˜¨YvrÂ~<Þ QÑ/áÓë.ôù¸$2Þ3À1€ö˜OU2É” †7]ûTç"þ‹WÖ ˆr>æeÁa+ÑU_;Y—¦¶çdýf|´‡¹Ãž³Þž5åC‡‡8UÚ%&³{Êvô0S»7!|ƒþÌ©Uy(¦²žú µ†d»à!Þ°:IXÀàÔ°ëÕÕ55h+Ø -[Á6ÄÚé=¨ôœ>QܼjÃOð`ì™xSÈó×’øEˆL·eÉPÜ š÷ýv—"õrO_v¨÷bÑNV±êl?TkðI.ØOrñ5¤/ ZÆÅsœêñ %Lší«°T¡Ê5\8Lô×G#—Èe°oƒ0mScA[pXÔ  -)¶;) ~cSÔ-î둾Ò:ºC“b<ˆÈ'ÿÿÝbÎN¾rv¨‡1ýÉA+#¯Óîþ;Ì«Œy•‘!p‰†õ#Æó$@ À‰S‰<8v¼dÚEm˜ù²£¸rÎòz D)û¨zÇÑ㢢0,#ÅTdWòkOýâòê» ~ ßGžÎód’H{Þ¨Ýâi\<å•O.ð?ríd[/)‘3é‘Ð"]ùüNiÿ8r\¹=<®Ýº±O+5ÜËuS‘\E™w‚z¼ç ûç.Û”:·ç*½^Þù0ƒÑM~ð15MûˆÑg{ØõD]> ¼£9Ò "“(‘à(P.~þîCB$º~@bX¨ªg´ÖW|ò žiß=dϧ[0eVþõv˜kÊ^ÕWèz>V RIžŠì„†ƒVíÊcã¶ì"z)ˆ`$^RTÜmþq52¬Dd=ã o1 Ø Y,*í‹èʱE蘈.L6[õ}Ù†¬%ä„ý£:ƒ5z³§!´ª¢ÀU¹WÒ…ÈZ…+Øå3¾ëÄi¾æ(yýãÅñÒïcѹ?d8ŘDùÞ4””>1;‘þEw °=ø¼é§qûU:Û‡†Éw«ÃŽõÎݪÝ5Æ1w ˜Q@ŽG’¤Cw+LQ0óöjæÝvI?ç ?³€n«v±ãoŒ YkÆÇXÈÏÈBïîæmüEŒoök¦mH2¯\zx‚ÿÂpJþ õTj.K#yU¬×äeäàöÓk4(@kÏ3“v/áRG´Õ -œk,]IvfRqé`%ýK»q—Ž8$ÏNW`rªi¿ò8îoÄ®’Zñn¼¯ö=¢¢²•p‰–j¯r8¬8¾†'ßDï®›!X„‹áçt‹íÑ, zãð.ÙÄ;h38nl¸X6(ÊËÆâby^2^Ü• )5ÀÄŸ%åŠsÝ¿å$Âņ°gµü"Û‰Íâ‡#Ÿ) ¥Ò¨ÞÝæC.‘.—'¯ Rü$âð¢MFPm–‚m¾n€º\l»f -0+–þ*J÷,ø‚¤/€D)ïãúµI$‚éAðe_'œÿ^fĪ0ÊĪ&¼)ÓDªŽ©ª§¨XI±Y£Î7K2mÌàæ–a×+ƒë»j-4ÚI±{!p}ïo>!òe]¹»é-g]õP.Ãw"0ä{¨ó®lm›þÊÌÄ8̾ áÑKa¼Ù„/z …Ò êêövÉCñ¼|6‹Cë¹÷¿6\Ÿ[\4O.>Ð×bÌœzå¿šñV#Nú+ãý íÁúS©X¥v<°ÒîN"-fáó%ë¹/:®¢ðx”öÍõåõsÞdÔ46ª\%jïz_ÃAù䣯‡‚jÇ*,#'ù±ÜLpsYÌÍ>Ž+’Q×¢"ié&¿øsÙÒ -”Ø¢/Û†H½m„ËH Ž0]um¹¼#"‰*ß+—R‰ÊõÔ¸9.Ã;ÈGtzX†«¡à ±Jôtäj£ ;þ۱ˣ,DŽÅª˜C¹—)‰‚ˆ˜:¾—èuÝÐgØŒé9|ûîâåôÝ«l,§ÌÒw"¨#KñÐx¢@u”'jáÑñwÞFÔÐ ñ`ìA<Å>s"Q2ïC=LbòÆ´õ>ˆ8Aø:Qä\Í€1ñ{ÍÒ"NPÐã¶hËi®©¯¬gÍœàSð…hZ†/h—<É}YãEN;'Ê-'0ó‚Õl -œÀ4d‹V ½K²Üì]½„Á…s¯I°Måz°“âcÉÝ‹ÐbKöýãjmÁL­8¥×BªÃ>]ÁãsZVM!äm˜¿§ürK?ŠvÇ€oxóEÉSy¤·‡‡ª­|0ÆØ8È9÷]Wáo»õ¶£ë£^=ë%+ý1 -ê­yŽvQ.—_3¤¼Ý5TÉ -weþ>Kô@yðÐd·cá„`bÀ€ÓÕä±ê#QD¹4ÑÊž¸-?ŸïP>Í<öuZø²JaéL}.%âç+ÿó§ì»õµI”µéø‡W©±‰¶0 3å ‰ùá÷eüÍû!ëÿƒî5äendstream +xÚµX[Ûº~ϯ0Ð>h#†wQ穹µÙdS4[ô!Ù­MÛBdI‘äÝEÿ{‡R¶¼ò1Šƒb9~œÎf +la¡"—‹,—DQ¦ËÝ+ºØÀÚß^±À#• J +“™ÕT C”áÙ"=y{ÿêõ_9[pJ´æjq¿ÏÒYFh¾¸_}MÞ´­­WåÏ›”+š¼½y¸ÿ wI’™Œ¹]NȈJûŸŠz_TÈßÛ{˜$BjöhE4UÆïyKØMÊ(¥ÉªÜ8~Ç 2"´F1îŠ 8b‘“\s`#€̎Ëmöç~ã<ÃÑû»/8¨šæû¾Åñ~(«r8c$W* +&ᆡ2_uÓö¥×áÕ‡ûѦš&À¢’iÂT.æìÎ@N®ä…K1”€öÌw„ðw"ò ã•Œ\£ž¬õõ/½ížl÷¦é#ê¤NÄhFT®œë6«Ugûp+“³@q# |#ærS(b´ŠËª˜ä91&ËÏ×W×eeëñʧBfÄpšc~ÿ?`îÆQ;ƒž +çõʘE:úìn›nøÓ%[˜ó#~\û‚È\œQqŽ7\Åíÿ€÷ó*žs§9ƒ¤sAùô~¾:èÈëŒÇÞ‰ãäÇÞv‡¦!—b_dœÈŒý‘Ø?…¸û#×4öÓíeÑ':ÙíâwD‹\SÑ6UóXTéÄŠ)ã£e£Y¯dß÷¾¼ûÇíßïo?ßÜ“äÏ]²còY!A£#~£Š®š]QÖP$MÊzÝt»b(Gy²én˜IšÖvÀÊSkN¿Q*ìÏò±²Hš¦ÂÀŠ°ƒíiàõ9±ÁºiOÂôÝ“›TÐ,¹ +Ç;¹zävÛ¼CG]&þŒu Xë ¸+£}[‡@¶ÉEÝ?Ãq‘Z a›—5ðàxØwµ]áòUÙ¡Ž„Z8ãöh6·|„‡##>Ìœ”v*+˜}jú!üSµ¼­„f_ve]Þ°¤ºbh¼ð@Þ÷vÆ%@è|¬8\º!¡c¶PÉ=Ük¿m'º¦G1Z\†Õ]KvY8)ür³Æo9„Õè%Øh€\É/°`À +ÅùžBýíáE J8´JÑ$,VÙÎùÆmößýÐîç?Œ&Ÿánº—íŽóÐ> ­ó$âw[<Ù°Åu~´Þ×KE5ž·YÏ\¸l¢Töû—$—"Ö>³³$&Ï蘓,Ë0âßTöÙo¶3GI§×®–C¦ <.p…àIíb¼ªnæͽBús9l‘¶lv;°~Z•µÅ5 ‰Í~gë¡wW§8\.rUß ×¶è çÅ° »f ü=»/„5¦o-!…R9uû1…`Ä+LòäB!?à"R?„q Q7;f*^YŸ[tòi{kö{Pº;ठDïÀI<ê©IÉ{“ÛÞ:Åú1aÎDtÛ¹´èøµLž·¶Æ‘K'/‹|–Æ´ ™nç½Jû!}†ï¦|²µS_‰äŸuU~·H·EW•>P`âÒ¯ý7Í0»q­’··wï‘#¨»‚t/Ž'5ëÙ˜€×ûè‹uIe*z3xgóŒVK¥{ZåLNƒ·¯†²­ìit÷ÓH~ ‹eßïmˆò¿ðAXÂå0¸a2ÞØI0‚Í0%ô}.D(†­VHñÇÅv$Hé[»,.qËžã&“_ÓœÀ;„_3 ‡WMày.«*…°… EÐKêÕw‚aÕEjUöè–NËzÆ™R„q;Ô×vX¾†TS=ÅTfàáÄ@º‰¿/›z=#÷´Ñ‘81ÿ¿0F¸æ¾Ùɵ1&ŒÎH>ÀŽc\Ž|a“ŽYëK‰Y™«ÖgÜL­¨¡sÁË ¾o{à=†ë( ¼Ô%qÿîz¼&˜ ï6ƒë)¢¡4<ƒ©ÑSKù¾I›ø¼Áú>4h@õ +ÔÞ¶û‘*A‡K+». Àz\wÂÍô™†2Æä5»hšG»<•Åœ? +Yô¦?ÿûãçOþóš^·œA4‚h£ùè/Ð)ˆä~UŪ¾kr Ã¹¨H9:…ÛÊÏ%‘ŒŸÕ#öŠž¸Ž›´-äÏUÌ:Î\ÇÅË9æ)8ëlÚ¹÷ &”¬Û;übW ƒwñ‹¿7ø–Ù唩 ÄtU´8 µFÃU¸¡i¬²O¶B¾²?L/3“|(±ÉrtìÜÂ3?+À[F A|œO®7 Lg¯ÔÐ +ž{äÅ\Äî6]^ªŠ\Lªb(‡Óòúp,¿8p¿ øõà0Íê¢Wõr½f9$ 5Jöã¢d1|ÆsO¤GêøHƒ±³~¢ E;H#|ú¸½‹ VÆú@¨ÂÙYíß}ŒüàŽ¡ 5»-÷ a;zs»icŸì½Ä ƒ—ówøñyLÜϲ³íÀ’yðÙÉo#TÃó,9òìü´ñ÷Ý—ÇýóUžéendstream endobj 1744 0 obj << /Type /Page /Contents 1745 0 R /Resources 1743 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1589 0 R +/Parent 1752 0 R >> endobj 1746 0 obj << -/D [1744 0 R /XYZ 56.6929 794.5015 null] +/D [1744 0 R /XYZ 85.0394 794.5015 null] +>> endobj +606 0 obj << +/D [1744 0 R /XYZ 85.0394 769.5949 null] >> endobj 1747 0 obj << -/D [1744 0 R /XYZ 56.6929 752.2728 null] +/D [1744 0 R /XYZ 85.0394 573.0107 null] +>> endobj +610 0 obj << +/D [1744 0 R /XYZ 85.0394 573.0107 null] >> endobj 1748 0 obj << -/D [1744 0 R /XYZ 56.6929 504.0748 null] ->> endobj -1743 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F48 885 0 R /F53 962 0 R /F11 1298 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1751 0 obj << -/Length 2762 -/Filter /FlateDecode ->> -stream -xÚ­ZßoÛ8~Ï_áG»QI‘”Äö!m²EÝ6»I=´yP,9jKYKNÎÿý 9Cê‡%åpw(PKÃ!gøñãÌ -_0ølj -˜Ðrk(ÆÕbµ;c‹'hûxÆIçÂ)]tµÞߟ½ûUÄ è(Œ÷ëÎXIÀ’„/î³oËËÛÛëÏW7_„Š-ß犱åï—Ÿ¿^~BÙí¹——¯ïà5R,%nÔ"¶¼ºùxþpÿÛÙõ½w¦ë0gÂxò÷Ù·¶ÈÀïßÎX t¢¯ð®u¸ØI%%…p’íÙÝÙ~ÀN«í:€I ’0A c(Dš u¾É÷f®zÙlÒÆ<%Ë¢FÉ߇|_ä¾”yžÕØÞT(úQV¯®oŽM?ò#JÒ’ú¥Û§j_4›õ%+Ú[yÌ‹ò už¼BDË›[ßß|¾úÙ)꾃YUæ4ÈÑ, rÁy • -íôž÷çݸŶ×M^¢ÈBkÙiû¤;K`Ó´ åër -ê<æ@ˆÂìcóf¢–Q±”C³øðõê–¨ Žk5Øчr›×nåJü½üë×?)&Sì¾ñ3Éb~¡¡n£zAC¹Ä«´¦(žâ…öTe‰Y¥?0ÖzS4 -EÀB½A£ŽÖ œ–§ÑËê„E!,wªyÃ^ëÔò€EØ&’¾id‘ô,bÄ"éY$=‹˜c‘ä=1Ç"Ùe‘J ã9 °…SÚPiÕŽe“þ ŸŠ¶ªWÊ$‰/@»m˜’x2ÍI±  )C(.T?jt*ðVB -™+î`…†€TãøÅ}«Ÿó•¯¼my•Ž./„Ђ’§O†®¯ýÓtÈH»`–Tª6…­®">~ VB pGõwy³z·Ïëjû2u¬Ö°*¦Nh'šÐIÑLàyÜ’½þÊðÎÊPˆ\AŠÆð­}¬¸;z „ë$€³€ó÷'cÆ?uÜ‚ZQ‹h¬Ò§$žw÷ÕàTNî)±%†0¿§ºZÓ{Êkù0ÙÎb4LÎoÃä‰õñ0Ù3oS³ I65ƒS³‘`j6Otæн5 ¸¢¦%Ë ­K<2:Žö¤>œª0ø%Fã8}ÚšæQÚBN‡g¥ˆDY:ã®ü¡°‘Œ·‡Mfø‡Uã‘Ξ½l܃@y:åHuåý£;ÿÛ,0Í2uZÄñ,ëhÍ°Ìiµ,ÛT¯L‹e3ñ†^ëÔƒÁ…—†/Uß…[Ì[²­ ¥µ‡^)=ÛÌÀßgÚó$äÁÏƾb··SÓ3sC­ß‚¸£5±ÓòÃ&FŒŒ™œ·îµNÍ÷ñx+÷í_åîr"mÏ+ ŠŒ„€­û˪<îÚbr$âšó`ên‘<Î"‡^‡Ô0o@ÜÕš†ØkyÛiZ•Ûãd¬œ5ÞÆÊëã±²gjzpqgJë4mksYÙ9+zeCiï9Í‹%‚ýJfIïÌfªQ By%üœ‡Íñòñ@Í81xHéøÒ --Ø»ãžή3®o¡ë#ëXÝÿbð楀¹ØæM^B5<Éa®Â Iâ7Ît]­i{-ÏáÕ<‡g·>±>ÎážyËa`Uð€A‰Ãæ #(<|¸Â_ÃáÕ&_ýÀb$YQ›ƒG†46»XæÁÆáî(=K&èÉ4uîü¬$l{ùÆf¨j”Âœ.öû% ¾\}¾»»þ€Ï/é¶ÈÒö R­{õ ryš -LCÖ ç©ÐÑš¡‚Ój©°¼!œ5ÜÞžX¿!왾Â/†SÅ!}P|$ÔŸ.ïîÜ…l^v>Ãù"ÑëRmä?‰L€ÇAGo`ÛQš†Ö)µ7‹ ¬ú ¸R ìˆYÃ^éÄrZ ;8õLÿwÈÞßú?áêJe˜¿æ™óäÿç?iÿ$FÆ6Žãd?A†P6“S&=÷]rêú¿ü£®uendstream -endobj -1750 0 obj << -/Type /Page -/Contents 1751 0 R -/Resources 1749 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1754 0 R ->> endobj -1752 0 obj << -/D [1750 0 R /XYZ 85.0394 794.5015 null] ->> endobj -1753 0 obj << -/D [1750 0 R /XYZ 85.0394 695.9587 null] +/D [1744 0 R /XYZ 85.0394 538.4209 null] >> endobj 1749 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R /F48 885 0 R /F53 962 0 R >> +/D [1744 0 R /XYZ 85.0394 504.6118 null] +>> endobj +1750 0 obj << +/D [1744 0 R /XYZ 85.0394 432.7569 null] +>> endobj +1751 0 obj << +/D [1744 0 R /XYZ 85.0394 303.3232 null] +>> endobj +1743 0 obj << +/Font << /F21 658 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1757 0 obj << -/Length 2840 +1755 0 obj << +/Length 3825 /Filter /FlateDecode >> stream -xÚ¥Z[oܺ~÷¯ØGITR¤(©@$=ÈA{êž8hÄòŠ¶…h¥ÍJÃùõrHŠÔmO[ìƒ(qÄÎ|s£–îüè.±(’b—Ü:a|)aJ’ïW_îÈ®¹½"1+òt÷ 7$¦E‘ìW~HœU¬e»PE¿{Êzµ3ETž‡îPõWUSUÝ—÷¬p§³X)Øêó“lÑ}”>µÔ©/5Ëg"5R¿jû^–'PÇ|€Ñ$ÏíþºÓÂbÀ8NM¯†S¹— +±Ø¿^€-%EL“,ÝÆmAÓ£y8fÙ¡ÃëWB’¶²‚H ŸºS=&˜GmyV Óy2Ë<XÜ»ˆÕ< D'‹UÌ ?»V™›Ѿk‡²nu„±ØÕÈAmºîx~|>âµTòªIp’cS¾àS·Î§¼Åi㎾V–ªpV–:2Œqk8ÿTêhÊ œNox”jk«ø< ƶáë­£×9ð: ‘‚‹<ßdìˆfœCô$4æÿÖAæ(Àî f‹B`¶(,`PÉF>–Ô@p,‡'œyÐVéÁ mÖu>6 +|Ðt@íøŒ„ˆDp»<%ih? (…ÙóQ•"”©M\ìFœóåcÖOï_ÌSÌ1úåÄ9rîéÂ[B¶z…%f$‹$¹ìÃ.÷ÊoÒ¸^=È“sÐÜf³õ$…ê ¥¡jŸO˜qŒ¾kô» 7z„£GT³NeðUÆHôqÀÉçÊ…¦Á›‡®iºgŸÉƒ<ʦ7Ó£ÍÀ1õlDÆÒ*sHúOݳÄƘ‰KB^¶^;²ð|F¾g1à¹ìÇd&;?xþ®Ô¡Ô°âñiNcQ~Ûå}ªuŸwTÎé÷‡jæòUÄ8;ª9ënWxÁ'¼G¯W -1‰`ÑñT·†kx¬€7Í¡â«…²Áû}w8Èv°““źóp<ÛÉ -èꇷ¶£RðÐÅp\p,!bFT‘¿]Ô¥µ4*©h×á­,›8ŽµýZA3Bê©´€¹—¶<+ǦVE8*1%®z>*#5Å \µB-ï 3qÖ@uWÂX~tÕè,•8áiXÍ4›¼ÇT3c¾œkî7èÍ? F“FÝRõMø?ã‘S¯ tj׺·Öòıý8R·C€Ü}gYBú9¬[‚ˆšÕô‚%<ª KX*g ë«ë&û±`ñ_.X>=éÐøEç_p¾ªÃ­Þð@…ë;|†áop®¬*T{œÐuœš9*xáBçý<ÙJ»ê(X˜[{a/˜ÅYÎ$–òµ)S.\Oã`>íi@¥¶;²5:,«s<\MŽŠ„Fð)®§‡ -28B¡Í{®R78†Óª\€V×`“¥l³ÏÕ®¶×¡ruZ6©xzm·é}wÖÜöù¾iÐLBÓ¨‘5Ž}ÓÓëqtßjÙ×´Û®x‡ç‰6=ɧZ÷$G5&RŒ½ýª'm²=iÆÙ“ü:ÐÊØÐxJ²DS·²C”{³çÿ­BÖ푘ôB+îSmØÃR9šÍ~5ÇlòsÌŒùrŽ ¸›tÌr—Üah\W÷¨­Vxu¢À«ÚEÝõ¾ÿ³:Çá*AõÓN^ö8a -ƒCYÉת ¥#]_ÿ”ŽÁzOã€N|l^&^Üswí&:î%T/µmpÿHÊôê¡që«b˜ŸB$ÝDOµŽ Gåôý4å[äqÊ.°54s®“ª˜Aõœ±íͨ‘/•Ñ’ŽÉN]wëú²­G=qÍœÐXé]Xý½^_̾rß8WcûhF/Œ>Õ†),Õh -•Ä”­×Möcpñ_®Ö(ªNÑF±õ‰ëV”QD2öNZ}×Ëýxƒý Óe RjÃоÂ:¥¡uå#Œµ=„m‚‡ó©ÅòŸÚõÖK–ÿºhõ„×àÙ7aeà×!ATã“ñ ð¨6 a©$Æb-üÖ‘@Zl›¹£šsŸø,æ 4oû÷~Rû©É¹wÍ@ U›–ËiÈ5_1þxò ²}½n˜$#1tD¦OµnG5ÆœõÎ{ -¤YA·ù;ª¹¡mÀG™ <”`´ ·¶áÖ6<° w'Å$EÖ·£yXæáh¾d’ópß<ܘ‡óðàtyÛ<бæE~!”úTæ±T£yªªV»+›¹}„úÖ’m à¨æ„öIUÛHà™GXók˜'³æ‘'²¾íÃ…±@ûˆ%ûÖ>·0öÆ>™³¦¢ˆ3–Oê¢ £Ñz?Â/ÌûTëFsT£Ñšfõ”n“óxJ7c½|Jðþ$M¤±%ܾ‘¥*‘æQç+!¬|\¯Ø¨à13<¢ %"üzXä_nWʵ-ž¶Z›²\.Ö|ž ›÷Õ¤€â¼Ó'ŽpŸv`PâÅf{EÚ-}…:%K3{|»ptC⾆‚tmÕ‡A(ñAŽ2¨A|¥x ßÛañ³ž“Ó ƒÚRPMÂÓÍeÁ¡£²g£6a5î|z|“©9I¯-¾ÌA˜õ“4¯h÷ê¥UêRng»ïs ;I]Ã+tv"#zTŸj±–Ê|ð®e?ÇìèÖ[œ=·ž²^qkŸ·®ýÞ¥î0Æ|tÓ“ NK×™«V5 >¿¿ÁýJ¹Ó|6N’²¸ 4ÝDz‘¤¹!¨Û~e5‘Ï -ïýEpÌÔ#x®NÍ\ Zö<½È×~«Íç/¯}ûŸþàk#¥ü~.›°<û)ñøjÚv-„¥ú}\Ý@µm[q\êܺ“0ý1ÛãF×ÿ‘ÅI&.TÑÆ ‘ôI:6½ÅvÄó”ï2œ}ÆÍÌsÐQ£0Æ“êЬ†^M3…''Ô`#¦=b‡i|¶„i.Æ‹Ml%Y1ƒ´/¤Ýס³4Jb<üù¬Ž~šúÛÒÙ3x‰s^°0cœY:„NÕÿo¬'8LZ´UœÔí¾9WÓ#FýAÎBÝÿûÕÊï€/_þÙYçú¿ÿ”7þåg1×¾M&¤%Õ2¡”&Š|î7$Ndݹèÿ3=ýØendstream +xÚÍZÝoã6Ï_ õk•)‘ê}à²ÝMÑM÷6)®EÛÙVbamÉkÉ›¦ýÍp†´$KÉ÷rÑCŠçã7CÉsòßžéDE‰VÊS6g×gÿvzÝ«£"ŠUH –çRFY’Ä=$Y”ªX9\_¾{ÿÃkÚ×O×°)ܼ©:²çÐcS÷Ênvå2ßвú\/ó¶¬+ú]ßò<²3ˆ$¦nžUy7²˜4‘V:á1›ºþØД›òcñ-½ ²Î s)u¤Ý\ZØlÂìóNî_M±ÿ\ìéG•o jûÅÈòó$ÊŒIý\´ãû5¼/íŒÖ︌Œ”éyš¦pBbê„hм;ʶ#*FáÒÌü`Ù,Ž’ÄêÇ—õƒN—íí83Q¢2Ó_¶D¡[ÒÄ›Œ‡¤zOÏË÷Ô“¯V$œ†ß³Ÿz×RÛšhŸÅþá™”r¦¦²lv³ö«/óŠÆ.ø}÷Û­ýYO¬^òUݶÅjŽ’ƒÃ„SÕ5Ä›jH±,·N­šUuëÕ~ѯ§p½”)ýõ¯§fËzSWóU±)·%,ÜŸv¦E6ûϺàÑ$h4‡ÝnSÂx§ŠI÷`”1‘ÍŒdS8jÂà•R«3–;öxßZ¦QbþÉëݶEղݲqåôX×M‹§õ|ÔzAÌž¶^åYfI՛ϯӮs^™•Zp¸rv[Ó`"9(«»é—XF;­‘ ·<¤e .OÄqü¢T åÓ¢Œû¢Ô–D Ï{«þ\®ŠÕ˜3ÙDÇOŠQ¦)YÖUsش͈ó† ú~øMÑ.¿Ù;GðÒíÈÌþÀ_úÊ«1/ Þ)§† $’÷oʆ4œÆÒÁE$¦X§‘Œ¥ìËéfÍÇFcw›úyK²Úús.&Žy ¬W»ºZ5}=^•Ín“?«hÊS'%?î¨;ƒ¦ý´„tV´"JÄîÇVôcNVìšM@õtÚ[±l&…Vߺ¼\cÙ£.ÉðVC‡ùë`¥†!"<ú°›sb¢Õüq9wF="h? +÷íãö¨¤[ô(êá¢ã²î.ZV+À:­3LpR‚–ãƵœÐáIáÌ5KN‚þt(©±"êoql°PòêÿžSÇ?ßýÌëË7ÜûŽÆÜ[F'…wÐ&N#+…öNÅÅ6˜sÁÈ+fûs¾)WÝÍ8ÃVð: ƒ´oظԗ8` ¨[fêIµ=ç;«|Èu®6²ÚÊ¿€0ïË cØ]±‡(´íDÔöÃŽUÍŽ(g{1fGQઽç1 Td =e@Q|sùãÕõcˆ; îóÔ÷Ë p?LEû˜/ƶŠ AæãH½ó=ÇÚ:qï%€Ôó†Ðûä_:oz‡f;~¥ŠlšxVqBœì”_ ±Qø€Š< nMKË,xåœ:¼Êžrkf~ÇuUpˆ²ä b¢pSJ%´)¥R‡…¾nˆXí}½ÿHeÕ‚¦äË‚;Q-­Eäþ°ÙíL\ç·ßâ—qšÙEÅÜ¡ Å9võ¾%ú6 Æ‚ùiv€Wƒü ˆëx Ž|·+À?UN×QuºÛ¿"IËž¡`ËÈßGŽÂDF[?À±u: äH Ôþó©YœTLéH˜~ŽEÁ@/ns@;˜ŽgA³€¾ÜäîH¡ù›HÄåµÉ*a¨;8(è”ÔUòð ľ\­ø†ß(8|£5+e2ö»š/Çí*Õq߮ƳÒQf…Ç“´ƒÔ ‰šI¼cö\“?6½r{`,0 ¸Áåš]s¢ÀýKÓ?ùœÝåÛëûz[4e½ó]ü†øòíàÍ—ë¼n@Ä£ïFAý:Yø¤çÊŒöÑ`>†SÁ_ÆIìÞsAj†ñ±hF\ªTdO¸~Ú0k±‡ NÓ–<ý"oA®´R½âN25ÉsglŽãC8DLr#2Žã[ ÊMÛA>9WX:g…„ˆ)m…P%mªúùçÕz†Î`SŒ©] jçµó¶ÜžÝ-$˜±0wkµ7Ä0½S6È&Ú¼„<­jˆÓ£:l]ú¶§Ÿ.2ÀöŠDÈ(PY­tÎ×õì(ý× ²ªà_ç(q$B¬'sO(¯ï6é°£gͺ>lVD_°[|gE:0Rλ¼*ÿt¸+ŽibxÒÄÐh8Çjv>—û¸uÏ AsÁãw_€Y?§³5˜à˜Fá$õˆ–ÆQ˜z2ý“‰ñáÐP&ÜåyYo·¼ÍQŠ~[•8SB‘‰ô íQ¦&x¼í¸ÇÓ:±'HBÀ™å‹Ïï·Å¶Þsrwhò;NVÅâpwÛðÌ©(•j@*áTK 8²š7-l2÷ +vr€Ä~T½=QÑgâÓÙô¹˜)>@Š€P픿W2J”õ[›ïÆwŸešoVÖ°Ùb5 ˜(Ñ £_€,Žm'¸Í8$sû='=kJÕNl®t™Ä aRÑb;„Â-@·WÔ*LTIGµ‘Z5-¸AúáŒÞ#§XuöN »^]]Sƒ¶‚-¿lCü¢ý1Ô °ˆÚÞ áÅÍ«ÖüïÊ^“7Õ†_VYXû¨¹( +Öop}èzîÇì­“»ZH5ˆ“GYa4­zÅ©Z»Üƒä‚ý$WØêÔôq6Y8ǹ¨ÂÄÉP…¥ò¥·åxT0dB,™Œª"•Þ:œ ´u…UlÁaQƒÊ¶Øb\§$ø´}^5¸,’ºòïèMŒ±*ø¨ôÿw‹)û8 H*³}= ©’ènü¯ 'e¤çuÞNaÓӜϟó郪8âëPÊ0b<‡DÔyªÆAo¾Žˆf¾li.çs-Éø’Ä•]Ääè~]DcdWðk%Oýâòê» ~ =¢bO™ãÉx”wÒ £Ž‹Çañ˜WT.}¹À€ÛÙ¡ÚP’iâ‰Ð"³$ÒꨴLWjOë¸n¸" •jîå’ɉH. ++µÌ;ÁPÞóýó˜ KÈU³là*^Þº0ƒHM¶q15Ž»hÖe¢Øõ@].E½¥Â=Òs"“(‘àÐ1P.~þîCD$ºA¢_¨¬–´–~\b Ži×ÝgÏ¥‚0e}îõf,Öàž©•Ä"yBÃA«Ž%•’q{S´ÙTé 0nNÊ?n÷ÿ¸ƒ VI’ŽñÀ„7ë  ÅD‹Š»b:…rlrçä¦õ“-×yuW4>£òyå%AA„½‰IúFD«º( +\ƒj3DÖÒß ‡(ŸðÍ\w Nó5GÉë/¦«Ò÷y3q©‰º?Š1‰òe®()} +bÎDü…îR +ïóæŸÆíWéd !ËôîVû룻UÇ»•)w ˜‘GŽ Ü©»ƃ(˜ùð 5óö°¡Ÿ«šŸ€YÀFe³>ò7Æ‚…Œ:ã)Rà3°Ð¹Ðykw;äšÝrnã³€Ä)—î#œÞa8%ÿ…z*5WÌ‘¼Íw;ò2²w%ë4H µã™IÇ—sÓˆ#šr Î5”Õ$;3©&\:XI÷&qÜ¥#I“§«C)Õ¸[÷7âXå-y7ÎWûQQIMd‘–jPÕìWC _WÓ¯Çwà,ümõsºZwhÈ9½qzÁmÂÅ¸é‚ 7Ößv¥ecñ ±0¶ÉŦ¡6âIØ HJóEóŽSšcO5È+ªúžËa€Ñ”£Ñu!ؼû‰ 8[¦‚#ÞîZ.¤á<€çò®êfÆ…›uJ¿Öpw¦@^<Œ}Éã¬F<é¬ w;´ëN¥d•:~…ÁJ{o¹ŠÂãQÚ7×—oPÔÏy“AÐبR©ÁÍ3¾†ƒÒÙGW«Õb NÒ©ÜLpË’›}W$+‚®EÒ2›ýâÎå@+Pb‹v¼ij"u¶á/J:ÂtÙ6Åæ–ˆ$ªôh¬\æ%*×zÃæøŠ ƒ|DǧWc5ü*5T‰&®]º$¸ã¿M]l%>r¬·ùrºÈA¦$| +"BV˜ñI§ë†¾xÀfHÏqàÛw/çï^%cÁ8`–Y(bOud)ú O¨&y¢álD ×Tˆc÷Âà)†Ì‰HÉ´ õ0QÉÓÁù âþ“I‘r5Æ|Äï4K‹0ANEÞóTS_Q-ëÁ'ï Ñþ´ôŸõnx’»¢ÂK2œvE”'0« +‚ÕrœÀ4d‹VM}­°¢Æ¾ÌáK‰ÿù{éã×àÚDÊÚ‰o|bc#mafʆìé§Lüaõ)ëÿÜÈûendstream endobj -1756 0 obj << +1754 0 obj << /Type /Page -/Contents 1757 0 R -/Resources 1755 0 R +/Contents 1755 0 R +/Resources 1753 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1754 0 R +/Parent 1752 0 R +>> endobj +1756 0 obj << +/D [1754 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1757 0 obj << +/D [1754 0 R /XYZ 56.6929 752.1413 null] >> endobj 1758 0 obj << -/D [1756 0 R /XYZ 56.6929 794.5015 null] +/D [1754 0 R /XYZ 56.6929 501.191 null] >> endobj -1755 0 obj << -/Font << /F37 747 0 R /F48 885 0 R /F23 682 0 R /F21 658 0 R /F53 962 0 R >> +1753 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F48 885 0 R /F53 962 0 R /F11 1304 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1761 0 obj << -/Length 3318 +/Length 2980 /Filter /FlateDecode >> stream -xÚ­ZÝsÛ6÷_¡™¾ÐÓ -!¾HâfòàÔNÎmš¸µÓ»›¶”HÛœJ¤*RNÜ¿þvDŠ”|Ó^2 p]¿ý¤ø,†¿|–iK£f©QLÇ\Ï–ë³xöïÞq¢™{¢yŸêÍÝÙ«·2f‘Ìîî{ke,Î2>»+~‰.nn®>\^ÿû|.t½açsÇÑ>]¼wc7çFDï®n¡›èXG²$Ž.¯ßÿv÷ÝÙÕ]¦/0%JòÇÙ/¿Å³äþî,fÒdzö:1ãƈÙúLiÉ´’Ò¬ÎnÏ~ öÞÚ©S tÆ´PÉl®‘k’LSÌb Ûž§ -×R&“ʦŽÉSá1}]M×¾¾<Ü.—‚eIÌgý5GœÕ˜µ=Ö\¦,Sü€÷mÙÏ¥L£î±tz·^”[l'QsïÆP>O–Ó„Çü‰ft{æ›MyΣ|ëºUzõV÷¥±aI¦ÈŽìë|]:ª¬"e"I8Áúã…¸`±’Dq9±†aR -E÷ªëËœD Úò©Ûª€}ó,* ÚÏ¢mV»®d¸úl.²„ ÁñÈ93Z »ò=7 gTÞç»Uç:OùjGãUëžtr–ò×8µeÝ][Á©ÕžŒæÕtèÐl»¼+×eMóýÁJÓ?²L1Ø¢ ¿*»å«m xb°·û©Ò,QÜá7°v¦"{NÀƒ+€N¢ºqg S ‚­΀DF[Qa7$-ŽTôfÃp¼i„iá5è¹R*ú ’ÏU÷ˆ-Ý—Ÿƒ8è×V,¼Z¶îÊíÆtx”–‚r뼫žJ÷¦ÞsÉk¢þ\­VnhaA'AÛræ«-Çå£]Ì•…6à -ìÓÞ6ŠfWuë:«ªíü”>åøÖxš±Œ§¦Èqù8qW2cp ^k@Š‰¥8˜íWrò]É«VQ¹£ZÒI9Ç‹kÁx"“¿ -.6²äd.“T‚š&Ùi›Ú§:nS•µ©‹Ý}[ýY¾~3²ªJÁ‘rOòTcæC«ª KM¢‡Ü­U^›±ñéòÆ5†mþ@£ $ÿ½Å:*:HŒ­$Ê‹§rÛU­ƒ‘5h!°yuùá6¦å§,£HRtÁ,o&n<šL=Áâ¹+[†&;kfÅÌ¿TëÝÚuPcœúsÍTªÍPý×UM´©±[h]½>»ÇŠFû…þ^£¡“h-5[…F쎬Ý8œ®žÏ9çŠlÒèg !ÐÜz®»-ù€uGÛÎ[^Ð0¶ífWe1ev§^÷‹æ3é48<7w³­ÀB÷äâñP.œXØz[Ó -:Ó¸$h-ó]Kú˜»Þºký±+·Ï´M\­3«ÇtgLHi^еÕ ]óTV×Ê¢n_5R4‘0€¡>Í8P9„/hßd6d} ¨îíid^Ù²pVYJÔVMMï÷ ˜Yc¡¯ü}UÍ W—õÐx¸˜Ðš¥ïHIOÊâ‚ ÿ¡"ýÿîÿÐ7hô6>8øºnðÊ& X=)áÝrþ¨=ðtî,Ö¥)Z -H= -DŠ2ðA'ا:Ä@e÷õKÝü¶† ¬ZUu9Âc’±lëiþj,À`ïÓ81C n¶Æ=JdtNËÆ>‹Ö ®ªßKײç‰ÛØH§'`ø€ÏÜ=àhMK3íNçv«¶ÑÉ:'î.”ÂÖãn×s‡ºdNb3´oŽo^ä‹.s†×¿¡SH휎‡;hXdlˆAìohë0TæËG78Ü“CuDªÜuѱ9Æ"½@ ª¤ ËÞçK¸M €ÉÖ¦ËÝj§>+)`ìœO?î¼w{pŠC.룠‡ ]à)SRyp+›Ýqãª9L̤xÓ=ª˜öTÓ÷yµg‡:Ê49Í:PyÄ1â3ä}‰I’‚T¤é\£CÃ#¡×¾*¿Ð»¶Ü>Ù¼QQÚÏçfçè ¥2ñMî·W?kýüö÷±B°ÚÈwÚÔ¡9+‡ ªQÓÈT·ÝnÑ'ǨØ/¾(!K®ý°»£ÐQ)x@©õièô©ŽC'Pè,JÈEîÁ4t#¥ -,˜|A€@5–à@[lb¯‡"\t¸n0Nœ¥ ˜‘ªÝ¬òg´‡ H$:4:ŽÆž4ŒR¸Üºž¿¬„÷|2Rå+4~eañC _ü`§jÉ -BÈ.3=Ä„w¥T6Ì RB'0 Ÿ\·Ÿ¶Ç¯P—diú•ö¨N\©§ -W -®»-—£ëÔ1d"";Í4s×z‹‡‰‚§TL›P:ûº¯òk{!¨ Ũ¹€e¯lŠ Íß_ýÇ8áZ2s0†±Ö%À6†Ù—7UçS~_(À¸–…Õ@þJgx6ÅP(#ÀšµáP‹©°Õ`Z¾¶ú<Ï8ÓhÕ4¿;÷“ÅCBò>[ßëAŒÁ¿)NB0§~ØÅÉÂ4¥ÂËüòªF°„‡TÕšhã i ÿÒYJh$(o -.a*£©ƒ#÷5Φo®¯âÀNÙ‰à îÙ){;­I;%R4¡ÊÌ@jÜœüÛ–*¬8ï/9VW¦%å2ÝsþŸ¬•HÀå'æ… ¥OuÜZªà±ºfc g£¨%8#V§¹ª1û·ÅYªy:äÿ/æ\ØJ~N"7{'/÷N̵7åÃ?×ÉÝtØÐœJÜ–‹ª"ïlٮǠ&ºb&ƲX§Có×0Ʊ®ƒ7­1}Súïc̯8ï/91Tk%ôžócÖv…-Þc.š‚½6äaàEÜíüðé=¦Gw×7ï¯ÜVütõÓõÕí„mˆ,Ó©Ù{î½¹þp‰-7P­7+û *§øMÙrôØ¢b~¬Á_¬pãëåín³tªuœZWt¨.¶(³Y‘`"V(@í-ƒ¬³¸R·Ê"WÇÁFº )Ù: ÉMÆåÐÖ¹ýÉXº´8V^>+‘ŸþòsÐèØ»ÏùÔG®˜I?›EÞ¡ÇDè Îy„»Än³A)04Çoz)'ߊÌíd émÙ -‡Â™àø2'éå^úUe¿Â¨Ã?Ž[§jWü\¥ýtíx¸â ‹…9Hì@V™?´ßK¶¢¶>+F%U"˜öÖx)Rú¯ -ÐZBÀ+ËĽÆ_cR ˜÷Ο‰r‚‰8óíRÛ‡}C6ÎŽÐ×Î6 ç$OUÕSUìlÚ"EØŽ}åE.Ib‡9*âHû jòŵ‹²]n«}™ó<WŸ¼óEóTâ¯4À¨ÑM‹Ø}A·¹!öì½sü’óÜ”=a£í@ŒÜGTHî_Û»ÁÆþþö?S€aûË·bã¦/¨±NI“wšga&üõæ«©=ýÂúó¦<ÀÈr•·‡¸±»›PøÒCQHûØìVÅ0žÈ=Ôûµüý”ƒüòw«fá.>u*!è‡ø HH¼\­&TRp’—Œ~Ͻdô[ ;h£IZ4˜–Z:âû¶q3ü2^™m*hË26ƒ -’z¢ŠK"K¬@`á×ÆÛÒVš©šX”A»´ud0ºÛ¬hÜY!aAƒ€àÊ]'µñ¶mS÷N _ô°=ÉX¶;Ÿ,LÓY*E>@{ ú>@SžkeÑ……„û…÷þ:•êÁL¹ÚHùeYÚJ›RGL¾È ‹yøMŒ Ë–ëb*aŠ™Ð‰'Ü›w9§M,h`¶Ûª(ÊÚ×\¦I– Õkñ<ø e÷2ùÎÒW\ºaµeÊ4Ûï«oý÷ØòKŽÞþÇ~-&!s—r*®ŒCxò·I¶ÿœJ™Ä¯ï“a“Œ!||Æ …çb̡䃒L¤¢ÿJZÓ endstream +xÚ­Zmoã6þž_áoç µJŠ¤$ÐÙͶHÑnÓ&‹ëa›Š%ÇBl)µääüïo†CR/–”ÃÝa5EŽ8Çç… +_0ølj +˜Ðrk(ÆÕb½¿`‹'ûñ‚[™•Zu¥>Ü_|÷ƒˆ:ÐQ-î7¹’€% _Üg_—W··Ÿ>_ßüq¹ +[~.WŠ±å/WŸ¿\ýL}·—:\^ýøé#ÅBâ(±åõÍ—÷?]|º÷Æt æL %]|}`‹ ìþé‚B'jñ,àZ‡‹ý…T"PR׳»¸»øÍOØ5¯Ž D¨$ŒGÅJ‘€!DàczlŠª¼\ /ëmuÜeÔ~Ìé·IŸs;ü¶u­c]”Ov|›# +€¶îè≠’„)°µ¬N$Ó³‡ƒ=\p+R½´v¸ßýq׫c¬}§ºÉ÷5=¤uk€i<ç'lDËuZö×ðZÔÅãÎ>%Ú²XÚA¢E-h¥Bc†™-ŒÅ²:6/ÇÛr¹9\òdYíiä¥þ“Ê𷢃™Í³Ÿ£Þæ»ÝßjzØuSN$ú'cá."‰„-ÿapE‹+6ïï€^FvšbB8úV4[ )ï@*tH‘„Ó¬xÃ]„¬Ì·8¡nm.Ó}NI8WØ‹WÜŽPá;)¤’eQSÏ_ÇüPä=”yžÕ4ÞTÔõ\VoîÝœ†Ì®aOZÚ÷ÒÝSu€õíí»V‹öZsB ¢(¢åMI£n>_ë”ußÀ¬*s;‰¡$€`—Gá…vúµÈ¬ +¶L_lçË¡H›|uÎX ­-¢¸¢ÔuÀt"¬ .vd"; õùT\EEN¬«ö@šì%~Îcj&í+¸ÇY°®ÊÍÈìàbpV4ðfzl«Pƒ?ŠpºB2–±‘ýí˧ß/•Zþ“ ùõöþæ×Ïw#ëÐÃ(HT¬çh<ä±µ£Ý˜×É&ø“,ËãþѺª õ! O¶Ë¸ûÊÛ¶¸äËõÖN°Á)7ùº¡g¢$t½¥öes ±c[¸—vUõ||q&£ì[û4Ëm·a2OÜŒzIr5¸³Ú:»¸ÞÙÊŠúe—žˆÑàÇîª=¾/Z˜0¾®¶]uÞرY®<ŒHŸ¨ýXrˆ˜V$œe¢… +ƶ9¬àp dËÚëÏò&?ì‹Ò>:<à¥à³{;†§+-ë7rlùd …«²É³oíi#/À–Ìq°”Gë; QìóêØ Þ$ ³,x¬›§"¯o“Àvilú”ÒÖÆ-kŒ°Û¸èæFÇmŒ‹ÐP,ƒDF²OX‚ɨQË{ËM&á(à:™2;HàȉFh/¡¶ ]îH*I‰se5æ+¸·Ð¹7m`î2B‡m¦·zÀ¶<-É·C¯á«±ÂÄèé@d×õ+‘Äzø\B–€qœ÷qIkÚO@mùšîŽè²Æ0ìóN ;wÅsNÝ”É`ÃñÇñt`0Gêa>ÑÀ6}¾¸©û1òð(ˆíÒ‚ohÙ÷ƶ8DIúà“^:'6E`àþ•ìóÖçⱤ­ÿûYªÌ¦ W2ÂBÉhno…V])“ÙÊd$³õRf•_Ëê¡Y¿ sTŽØ;š½Ô¹êób8| û ž«ÿšá–KH†ª†z cy ÖýÇ[³y5th)µÆw03ý” +€[ELÛ,ߤSHæ1BxŽñ ½ŠÊ‘Zj|¹¾µÔõœèc¹Ëk·s%ý^ýñÃïÖ'[ß}ã{œÏ´[÷ uëÕ ;• Ð\§µõâ)ý8ÌHU–UúS®7E#&¡¬cÑ;4êHÍÐÈIy½®ÏX„ LªyÅ^ê\ó€EØ9yO5±Hz1Ë"éY$=‹˜c‘ä=1Ç"Ùe‘‚ªã~K ؇)«4b§²IÿEíÆz[ÕË?e…O@»m’x2íJ¼Â:Mò@q¡úÔëdx6oßÓõó[Ú.C’ý ÔCÅ®hN—œstS‚3:(ñgÊ×5þïòÈêÁÌF¨84Çtgç-Œšõ±hpl’o3jêy¾u¥¦ùæ¥<š=ªC~Æ9Å‚X‡É¼r/u®}P~+Hô%ï«¿AÍ.«e@€Ã%TY¥«=¡h¦ÃÌÈ“˜›3¼€Ï7É9ç?Íhœ¢l'1³ñ—QkdÆ<Ô¸‹8ðáDÝÖááÎEtf‚¤ÎRJI˜ ð_¦™ù£ãŒ ‘”Ç Ä°ù-íHÍl©“2[šUû´(¿Ç|Ú•×½}…É£„Åóx©súû +6D¼{&ÜaB'"—*@£Î ôÇ"Â4¤v"ý‚nRÜìþ{°y;Û¦uxˆC2ª¥+"» X Q3 YÜ^FÍèjæ/6d[ý’¯}æm¬UéHq¹P“*HyúII×Ö~52Ò‘¿2±©jS˜ì*âãµ’à…+Õ¿Ë›õw‡¼®v¯Seµ†]Á<¡]hb+E\ÀCT ¯¿3¼³3ÖE®!D“{‡Ñ>V¼½SýÛ‡$€ZÀÙû êXoG̳ W<»óñ¼{®ž§ròLe@Ú0œ?S]©é3奼›lW1ê&g•·nòLû¸›ì©7¡]’ Íã(4c…flÙšC÷vhGq$Ë‘Ö%Õ‡ÌÖ‡£oÚw¸ÍÂà×2šæéÓ‡Gi 1ÚÊÝËZÊÚo°ótn&è ‰d¼-6ò²Æ“­={ѸòtÒ;Ðæy6îŸ\ýo¢À4Ë8žx©ÞaYGj†eNªeÙ¶z›`Z,ƒ˜‰w ðRç .¼4 F{&ÜRÜ" ˆm]°lX{è¥ÒC°qþ>ÓÔ“ ª}Ænn§&!Èù$'ßéJMCì¥<Ä°Á£Q#c&çµ{©sõ}|#ÄŠÇ}ý×¹»œHÛz¥¡.ì±ÀÖ}€OeUžöm29âq#HýÃPw“äqyˆUp©Å;w¤f vR^wšVåî4é+g•·¾òLû¸¯ì©‡Ü£\Üaj¦mnî/+;µ¢¦“Rü)èBÈ7T”¼]Gj:'Õn³KŸ¦¡›SÞn¨}º®ú«ÿ˜n‘†Eú þÁŽtE J Õ½á/ÞâH¾»»RÓ z©ÖºlÔYå-¨gÚÇAí©§\X)[V+é.g^‡>På»ÐuuMãü—8ÊÒ&¥¯€(ðXØILrª”›Bö¼ŠBi/p`„&Wî] uç\OÙìN4¶54Ò™RÇ·©»|Bµ÷œø`ˆ`¾’ã §W³a6ª" ƒP^ˆ>çÑp¼|<ÚaZ4R[~SoEÌÝqOŒV×™×Øë#cX=ÿ=îìRovy“— Osj(âïøÔ®Ô ‡”çðúÏ)ïpx¨}‚Ã]õ†ÃÀ›@ƒ2‚„[c‹<(4>^Ó/rx½Í×Ï” @OVÔXxdöc6ô˜Í†ñÃÝYz4–LØ$êÜù™ž°}Ë0Æ©ª +Sz¸þ|w÷é#µ_Ó]‘¥m!Rmzù qy’ +:¢K§Y&t„¦‰à„Zì&¯ç´¶·ƒCµã—ƒ]½×ô­p*-´Ÿ¡ôãÏWwwî*6/;à|zèemVä?†LÀ +ÁD„ïÜ™´2Ó Z™öB±Í>ƒUÊ á@˜­^f¨vðGŽ_¤ºzÿ;Lïïþ?!ê*à_üŒ¬ùðÿóµ6%ñ¯<’‰j>;†:vF!LZ-÷tnú¿1W@endstream endobj 1760 0 obj << /Type /Page /Contents 1761 0 R /Resources 1759 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1754 0 R +/Parent 1752 0 R >> endobj 1762 0 obj << /D [1760 0 R /XYZ 85.0394 794.5015 null] >> endobj 1763 0 obj << -/D [1760 0 R /XYZ 85.0394 204.5196 null] +/D [1760 0 R /XYZ 85.0394 674.4719 null] >> endobj 1759 0 obj << -/Font << /F37 747 0 R /F48 885 0 R /F23 682 0 R /F53 962 0 R /F39 863 0 R /F21 658 0 R >> +/Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F48 885 0 R /F53 962 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1766 0 obj << +/Length 2837 +/Filter /FlateDecode +>> +stream +xÚ¥Z[oܺ~÷¯ØGITÞ%èC‚¤9hOÝ-øA^Ѷ­´Yic8¿¾Ã«HÝö´Å>ˆ"GœáÌ7’‹w~xÇE* +R첂¥a¾Û®ÐîÆ~¹Â–æ#zR½»½úÓ_i¶+ÒB±»}æÊS”çxw[}IÞ¥8½†Pòþã/×oˆàˆ$oon>üöþã¿á# „’¿¿ýíóÛ¿™¾›ëÈ~ùðéúîö׫·^˜P`Œ¨’äûÕ—;´«@î_¯PJ‹œïžá¥¸(ÈîpÅ8M9£Ôõ4WŸ®þé' Fõ§K +`6òú Íq2<éIz9 ×8©ÛGóÞ=D8ùý½y~E®qžèEÔ]kè+Ùצ» +lhïëÁ4êvÂîûYž^®1Æ €"C,¹}ªûéG¶D3Ý¿(•iäˆg  œ–¨VVɇòÜ ¯“äù©Þ?ÄŠ"9ȲíÕ‡  (Ð+2Î@«úóúÑÒDJÌÒ‚ˆÂÒ´ÝéP6Í‹™·—m¥$Dúø!ͨZ`-{X€*ù=PЫ•)¢ò€ýëØbT¤˜d|·9MgŒräá8Øi‡Î<¿"DÚÊ "MùÔê0ùÃvµåA:N?äÉNó`ñ߬æýã­¶îØégå¨ÊÁŒÊRG†ˆ±Yš*u´åE Ñ 円ZÚ:~)Ió<£ðPmà×Qyüz/ŒÀ Á‚‰<ßæí©æÌcœ2(bîQþ(Àú ˆÉ…09£pp‚F%ùXZhÁ±žÌȃ¶Mwˆ>Ær]7˜n ½"„^á ÔžÏHh¤ñΗsÄc+:X)䞪 ÁT- +@ãâ]0ƒ±î½±½&Óè‰wç<ÐE0…lõ KžLQ– ¹ìÉ>ÊoÒ:`=È“wÓÜå»t¡Fà8^»ö|B­{ô]£¿%ÌêF¬¡e=Qz•A·QEÉÇÁ >×P44yy蚦{™<ÈÓ©lz;<Ú<ÓÀæ@d-­Ò8ƒÔÿÔ={A\¤ñŽi*OÈîÏÎwG§C+ôï1<—ý˜‰ì`†«£Èë•:”Vüž ‘f$Û~R­û½§ò~¿?T3¯GP«cz³§š³ŽáÙ…lÂ{ôz¥0aCMŽ§ºLІn‚au_=(„”yßw‡ƒl78™¬;dz¬€®~xñs{*Q,ÇÇÙ)R¥þviÇ3ìhTjÑ®ÃZÙ¤´ô¶_+kFH=•0÷ÒiåñØÔªÔGE¶ÐUý£2¸- á©êÐxo™ùˆ³:IŽ.$›jtŽÊƒœð4¬&›MÞc²™1_N6÷ãÍ? V“VÝRížLqþŒ%^½2ÒY¬]çÞZËÇãHÝF r÷c éç°j ¦¶«y†·-R­[ÂSyK8§X-[7ÙeëŒÿrÙ ðéI‡vpÀ/:ÿ‚óUéhuð†®ïLŸ ïÐøxcÆʪ²Aµ7ºšS#G/3Ñùp/On‚ÒÍz6MÌœ½ÌŽ0K³œ.n“(gkÛ$žr&üÎÆÃ|º³m»=’«ÔaZãáis< Pœ||0½f>ÝT1-#´ýÎï†Ô‹iC„éU.À†×b“r:‚9dkÔ®–×-ä,-hÆãôØk»EHﻳæ¶wÈMc\Á cÕr¦Ñ±ïa:ábz=Žî[-ûšvÛ5O½9½HCª OrTc"5±·_÷¤-ö'Mù¯xR(@XCGZ·5’£,ÑÔ­ìãå¿6Ùó ƒN!ëö€Ê@ˆ_°G@µaG5æØrö«9f“÷˜cfÌ—sLÄݦcšûäMçäª=øºG½hµB#¨{ýƒyªUÔýPïû?«Ó¦BT?íä〓)A¡q(+ùZmFñH××?¥g°¾§ñ0N|l^&^Ü[swí&:î%T/µÛæþ‘”ÔCãÒWDE–2F.äÆjAžÊ#èûiÊ·ÈSN/°µ4s®“ª˜Bõ [àˆíͨ‘/•Õ’ŽÉ^]wëúr[zâš=8¡µÒ»¸ú{½>™û8æ¾qºFi–b¨ò·-1mÂvPLyÏZdÝâ=Ö)óå¸rwæPŠ6‡«Lü>E™Cq'áEÕo½Ü/f'Cuh(µ®¡i_ažÒÒúÂÚÚÂm‡ó©5…?+´Ó­+ÿu¹¯a³_¶Ê(´¯‚@™W t!Ó†TëpðTc™ßup$A·™{ª9÷Ih·$°m‹Ø¿ÓéÜCm¶½ÛØDZu ¹œ[{‹ñÇÓn”çë Ö +”]H¹!Õ†aÕh{Ö;ßM0”Ò¬ÀÛü=Õ\€Ø6PfSX,ÁhælÃœmXdæOŠQ2Š¬_GóИ‡ó°%ó Ìš‡…æaÖ<Ìš‡E§ËÛæ`E1»°ë©6Ìã¨FóTU­VW6sûu×’m à©æÄöI)Íc ógáÌ#"ódÎ<" DÖï£}˜°öÆ>bÉ>…³í#¬}„µOæí£ƒ©(Ҍ擊hÃh¸ )b]@´n2G4Z¬iVç¶ØŽgsS¾ËGs!ãOÒÆW¶íYÚ¦’go¾"DËÇõ* uF.\¼…T*rTæê°>È¿Ü®Ti›l]•6ãº\¥ElAC?.ï«ey§ÏáÝ\í@£4—íi·t% +®’ñÌÜß.äPŸøÛPðƒ®­ú8‘äF&+¶ˆ' 7øû·­Ö\ëy9-é° 0(Žd0‰ÝdYpØK¹SQ—°2»{›±=C¯Êì˜õâ3´ \פUìSnçö-Áu ?C]C-.Ô?7.¤ÊjµŽÊ^xײŸÃvôì-ÎkOY¯øvÈÛB×Ýt©†?†±×mzÔéè:ûÔª†Æç÷7¦áî‡"2ncúæÀ!œ¦Æ|éá¹%¨Û~e5‘Ï üEpLÕ#X®ÎË\ 6ë9¿È×Ý‹Õöâ ¶f^ßÁ¥ß|]¼”ßÏe—g?¥9¸šn¸À¬RÃ\Ý@µí6áfªsëÏÀôevÀ ¯b:ËR’‰ Ûå€hã/H–Hú$€Þb;âyÊwÎ!c‹fê8ð¨Qh›3ìѬšyÚÍ”93ÁÓÐ1{L›¾%LCš±b[$+f…t+öæ”'$5Ç>ŸÕ¡OS[:uO@iÎ +Óš8³tüÌÕÿoœ'xL:´Uœnþëvßœ«éᢾŠsPÿ~µòÇ;à«þ-·€´sÎõÿ)oüË!Ë cædO$ã)|,œPJ¡¹ã ”PH»sÙÿm˜þŸendstream +endobj +1765 0 obj << +/Type /Page +/Contents 1766 0 R +/Resources 1764 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1752 0 R +>> endobj +1767 0 obj << +/D [1765 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1764 0 obj << +/Font << /F37 747 0 R /F48 885 0 R /F23 682 0 R /F21 658 0 R /F53 962 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1770 0 obj << +/Length 3317 +/Filter /FlateDecode +>> +stream +xÚ­]sÛFîÝ¿B3}¡§Õ†ûśɃS;9·iâÖNïnÚ>P"ms*‘ªH9qý ,EŠ”|Ó^2 w—Øß%g!ü•³ÄŠP§f§FØPÚÙr}ÎàÝ»3É0s4ïC½¹;{õVdzT¤‘Šfw÷½³&‰œÝå¿77W.¯ÿ}>W6 Þˆó¹ Ãà‡‹Ÿ.ÞÓÚÍyª‚‹wW·0l¨H"X—×ïλûîìê®#¦O° 5RòÇÙ/¿…³èþî,:Mìì3LB!ÓTÍÖgÆjaÖ~euv{öcw`ï­Û:Åca•‰fs‹X£hšM¡-\{<ˤ›L2Å&…lúºÊë¶y}yx]©•H¢PÎúgŽ0wPcÔJ÷PK‹ÄÈÜ·E{>×:ÚÇ‚Õn½(¶8Ž‚úžÖ>–ñ†Çì‰w´5=³Í¦8—A¶¥iYá…^½µ}*T˜Š(1 +hGôU¶.j@«Š…Š"É@pþø ©Dh4C\Nœ‘ +­•a€ûÚÕöiŽ‚ßaYWM™Ã½e9ßgÑÔ«][<}6WI$”’Èr)Rk•;ùÎñÍŠûl·jiò”­v¼^6ôdÎ9È_ÃPU LwM \«<齃é0lÚ¬-ÖEÅû=cuÚgYb„Ýâ ¿*Úå«mxp·û)YéYø œ˜Àñ pHF… +`£ ª‰:NA‰àê0©*µŽT¸ S‹+%¿ÙÀ2°7PGx vnŒ >€ +0Èç²}Ä‘ î‹Ï¨ƒ¸èÏ6¨X(>¶j‹í†VZd¥ƒàƒhy•µåSAoª=–¬bèÏåjEK §„À ¾¹¯¦ ŒËGw>¸+§F8¸§“òz•UC“UÙ´~Kr,5'"‘±WSĸ|œ•NˆÁ[ P1q”7`ýIDÏÑ“¼iå%±jÉœ"‚LJ[%d¤£¿ª\bäÉÙ]F±3’Ó>µuܧvPΧ.v÷MùgñúÍÈ«,Í=‰»ƒ#zU“Š8ì»óªÊ[3>]ÞÐÔ°ÉxˆDöß;]GCŠqYþTlÛ²!5rN=¯.?܆|ü”gTQŒ!Ø+Ë› é@DÓ±X<·E#ÐåIòfŽÌìK¹Þ­i‚Cæ/­0±M‡æ¿.+†Sw…††=ðÙ>–¼2¸/Ì÷ “ÈZmyÝ™( BzX³!=]=ŸK)$9ƒŸ1…@wë±îZôäÔIl3àŸt¸`6@ìÆõ®Ê‹|Ê ì6dÞöóú3Û4<Ú»Ù–à¡{tÉpHn]Øz_ñ RÄ©iÆ FËl×°=fô@©Óè]±}æƒxã‚aÉ­³5™¥uú‚­õ NØš‡r¶VäUóú«‘¡©H€ÚÓˆ;¨1æƒôý›N†¨oA%Ê{ÇÄ[Òñ* Àˆš²®ø}MÏŽ‰‹8Nõ—W™óÎNtIO[`SÖò`ô-éIZ(™ç?4¤ÿŸücƒM…µ©O¾®jÙ„c¯§50™à–+ˆGÍA¤#^¬ —%r¶4$/zTm Z”@ :©ˆ}¨ãŠØA¹{ýRÕ¿­! +WeUŒô1JD ¾õ4þjLÀPÁßÇa”)¸Ù–˜÷•0Ÿ–µ{æ -®Êß 9~âàöãâé ˜>à3£°vQ7¼ÓÝtî®êæ¬3ÆN©Žw묚“ÖE@s¦CÿFx³<[¬ð PB2¼Æü ƒBY + +¸Þ¥¸8AÇj bCÄù†¯KE¶|¤Åáh Í¡2šb`#Ä*À»@"jtÚ{Ÿ-Aš˜ÈÎfáî5™Ï”• 0¤àÓÏ»”ìIa$Ô²> z˜° £‡°²Ùw®VÂÆD«tºuB§=T§Ó÷Y¹W‡:ê8:ºƒã>Èc4ä;é÷%IJ‘º¥A‹ŽGÖ^÷ªøÂïšbûäêFÃe<ŸëÁ³.ËÄ7=n¯~:·6øùíyl‚‹ë÷‚–ïüñû¢ +q•”áÚm‚,_<¨#‹R¸W¬‡ŠâIu1÷±Deu™ï´«CwV •ªBKcWÝ´»E³bø¢€*¹í‡ÛUCÔÖžV>ÔqÕé :ÕYP‹ÜƒkhG +ð`ú:¨1Öâ +{;$ᢅÂuƒÉpDžBEàFÊf³ÊžyÑ1PH´ètÆqV9]nhæ…É^LF¨l…ίÈþ°ÇÂþà¤lØ BÊ®;Ô JR¹4¯£&ŽÉUõis\¤ uQÇ/ˆ´uB¤ª)„î¦XŽÄiC¨DTry5Æ>'¤5qläýO$ ÊHBÕ ÿöê[‚—¤²Ú=× p+Ï~…s%œ88<ðã÷¼£ä­¿†6¼üÿKšcd”i´ßýñænŠ’¹±"Q‰F¾QŸåyÙBêÒÙ6u5Ž(½DŒRþ#Š ÓP@M~R ö0Ç•€a:hʇåcÖLä8JÄp ¼äïPüPCÆ*Õ}Äß:„s9…”RX³>TY»ëÌQaÃ{!h‹°Qg¸ËÐÐk ·nàÒV…Í·õ¦\9ãêRÍ/'šÀ&Q¤ÚôîøRXAHK’éð¼;ï$C H UŸ!·×ï¾ýçÅíÕqéCÚ aé%ù÷ Nh€‡r:ÐnwØbšÿ^<¿þ +þŒô ‰Dd}š„jLÃPR)"FC"\í…Ì™»«TðK«‚ÆèÔAØÔÁv¶çI°£îÎ~ÞŒþŸ Þ¹k<ŒÓ‡‰†§6¦]ëìë¾IÐo!í…¤¦kFÍ{å’TDÚüýÕ|ƒÄ’¤ ÃaëB\cX}yGQ¶¾ä÷ÌkE—²¦P¿2¯Ñ§¤œÊ(ðfMÇÔ|*mM±­_J[}çœq°ªëß ÁýdóÐÆP„wuŸëïõTLÀ¿)LJ Æ~øÅÉÆ4ÅÊÓüò©©‘ìJUç¢SßHú—äi¸ Ñ`¼1„„©Š¦ê¹ïqÖ}w}(Š?å6> ÜóS6ô~ +F“~JÅèBM:ªñrúo{ªîÄyÿȱ¹*p-±Ôñóÿä­T!?J_HZúPǽUÕE¬¶Þ¸ÆÙ(k‰ ÏÍiìÔýAØ’"¶2âÿ*æ\¹N~Æ¢L÷A ^1éƒ7ÅÓ?šd´.4çV tí¢2ÏZ×öñ¤‡êØ\±Ihã¡‹ùk:&±¯ƒ’¶X¾û÷uÌŸ8ï9¡chÖFÙ=æ‘Ž9ßÕ]ñkÑü…v)€(BÒùáÓ{,î®oÞ_ÑUütõÓõÕí„oQDbãtÿíMA¹÷æúÃ%ŽÒ ¥…r½Y¹oPçoƵ£Çëc)ùb'@¦¾_Þì6(§ÂÔP’´ +°¸¦ÌfÅ„aŠX:@*Z$_ Øg¡V·Iêãà3Ý’‰ÆŒ”}¦äi"õÐ×Ñýt¨©,§ÏQäÖ§¿<…,:ôás>õG‘Æ©çÍ"k1b" + Pç2À[â´Þ ˜šã7½XrlEäî 2€´®m…KOp}™1õ‹bOýªtßFa•ô×]Pu'~®Ò}º&Ä ‰P¥…Ъ³‡æÉŽÔÆ—qù¨¥ÊÓÑ…¢µÿª£%$x²Ž¨é5þ[ÐyÿáŒðL|”SB…‰g4•¶;þ† +hÈð×Φ[Θž²Ê˧2ß¹²E«î:î•'¹`ŠIç¸mˆ+Í3˜ÉçE³Ü– þ2—!Di>yg‹ú©À_i€ScI«¾ »ÚgNî¿ä<÷WO8hZ #óÂv²Á×N68ØËoÿ3Xv¿ kÚ¾à9æ:oÞmxŸS3åÅ›­¦>ôôëÏ›â@G–«¬9Ôw»iê¾ôpÒ<Ö»U>Ì'2¯êý^þ~ËA}y¨¤w«zA‚É$ÿpŸ&Dž.§­i×IÁMž2þ9>÷”ño%Ü¢Ë&ùT°`>jIjˆï›švøc¼1»Rеe\ LõD—IÖØ)î¿.ßÖ®ÓÌÝļ W¤ðýÒ–À`u·Yñ:y!å”B'QÚnh{\Â=݃©d¨Ž’×O6¦™—Æp °>˜~ °\'ÀYIpáT :ùÂ{/Nczjf¨7R|Y®ÓfÌ—¯’T„²ûMŒKË–ë|ª` +…²‘Ü»w&9ãK,øà¶Û2Ï‹Ê÷\AM£$š×âyðAËÝeÞÕ;Kßqi‡Ý–)×쾯¾õßc‹/Fûûµ˜†Ê]멼2ìÒ“¿ýK²ýïäL,4~}ŸL› n àŽôD!_ ’n1+IT> endobj +1771 0 obj << +/D [1769 0 R /XYZ 85.0394 794.5015 null] +>> endobj +1772 0 obj << +/D [1769 0 R /XYZ 85.0394 204.5196 null] +>> endobj +1768 0 obj << +/Font << /F37 747 0 R /F48 885 0 R /F23 682 0 R /F53 962 0 R /F39 863 0 R /F21 658 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1775 0 obj << /Length 2180 /Filter /FlateDecode >> @@ -7642,50 +7693,50 @@ C Tú˜¨Æ{X 7tÀâõ¶§z9(6_fÉ»¬¬·íòùé›C¥c¥§Â&A»Ôš–IÛŽö)ÌICÔ3¼aZŠß¹b5Ý«üÂø˜á§ó wÕC>Ú@LJ-Ž9vg9vûÍX¶‘ ¬Íõ1¿?Îò{NŠîU~ªçG-Z zŽË£/³jd—CVeò8¶‹f:ŒN´ {(°U2G¥Á·Ñ *Lâ0h\ß,Þ}šß/çw·#ya$,Ž·JGÃÒ/–4øk‹jƒéHÄQ'Í„©%Øä[€+S¬áØ\gì;$MC®ìëø×°&)KËCÂzÿ¶<¤M9z8?¿·rfÅ@ˆä­-tí,IÕ1”OOEj 1|~HL ¦¼?¨Klmk@ -­;,Z[ymíŸçΰ ½Çâ)¯ßŒ˜BB”àÚw>óš)$„Jß]nÓå¹]lí¸6e†wU•˜Pû6¶„,½{<"…„ø¾xÜ1Û'¥>‹¼QF]'IÂ?Ší”Õɽêñ mï1LE#¸-[è;!ìE é¤#¨_Ð̓¥@ç2ÝÀæé@Æ¡ñ1DP{@R¶Gë·m×åÙ,ËÓ¢2=3àæ÷Ošˆ>ESÆð/«Ó¦vUü%jØ÷˼,ª¢3¥Ÿq€?dlÊmèÉkš±oHž&m>ÖyA9«e|Ö|!_çÞ¶ÉòU²Ã‘öæÒ !‚Ç9À÷sSÿÙçèD쵇gXøZ<’byáþïGé—7wzô’¬BôŒ¶B¡š ®9Ý=_ŸÊþ_&øûÒendstream +­;,Z[ymíŸçΰ ½Çâ)¯ßŒ˜BB”àÚw>óš)$„Jß]nÓå¹]lí¸6e†wU•˜Pû6¶„,½{<"…„ø¾xÜ1Û'¥>‹¼QF]'IÂ?Ší”Õɽêñ mï1LE#¸-[è;!ìE é¤#¨_Ð̓¥@ç2ÝÀæé@Æ¡ñ1DP{@R¶Gë·m×åÙ,ËÓ¢2=3àæ÷Ošˆ>ESÆð/«Ó¦vUü%jØ÷˼,ª¢3¥Ÿq€?dlÊmèÉkš±oHž&m>ÖyA9«e|Ö|!_çÞ¶ÉòU²Ã‘öæÒ !‚Ç9À÷sSÿÙçèD쵇gXøZ<’byáþïGé—7wzô’¬BôŒ¶B¡š §=Ý=_ŸÊþ_'PûÔendstream endobj -1765 0 obj << +1774 0 obj << /Type /Page -/Contents 1766 0 R -/Resources 1764 0 R +/Contents 1775 0 R +/Resources 1773 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1754 0 R +/Parent 1752 0 R >> endobj -1767 0 obj << -/D [1765 0 R /XYZ 56.6929 794.5015 null] +1776 0 obj << +/D [1774 0 R /XYZ 56.6929 794.5015 null] >> endobj -1768 0 obj << -/D [1765 0 R /XYZ 56.6929 626.4701 null] +1777 0 obj << +/D [1774 0 R /XYZ 56.6929 626.4701 null] >> endobj -1769 0 obj << -/D [1765 0 R /XYZ 56.6929 517.4334 null] +1778 0 obj << +/D [1774 0 R /XYZ 56.6929 517.4334 null] >> endobj -1770 0 obj << -/D [1765 0 R /XYZ 56.6929 438.0429 null] +1779 0 obj << +/D [1774 0 R /XYZ 56.6929 438.0429 null] >> endobj -1771 0 obj << -/D [1765 0 R /XYZ 56.6929 376.8269 null] +1780 0 obj << +/D [1774 0 R /XYZ 56.6929 376.8269 null] >> endobj 614 0 obj << -/D [1765 0 R /XYZ 56.6929 339.1376 null] +/D [1774 0 R /XYZ 56.6929 339.1376 null] >> endobj -1772 0 obj << -/D [1765 0 R /XYZ 56.6929 306.6767 null] +1781 0 obj << +/D [1774 0 R /XYZ 56.6929 306.6767 null] +>> endobj +1782 0 obj << +/D [1774 0 R /XYZ 56.6929 271.6646 null] +>> endobj +1783 0 obj << +/D [1774 0 R /XYZ 56.6929 207.5268 null] +>> endobj +1784 0 obj << +/D [1774 0 R /XYZ 56.6929 137.3205 null] >> endobj 1773 0 obj << -/D [1765 0 R /XYZ 56.6929 271.6646 null] ->> endobj -1774 0 obj << -/D [1765 0 R /XYZ 56.6929 207.5268 null] ->> endobj -1775 0 obj << -/D [1765 0 R /XYZ 56.6929 137.3205 null] ->> endobj -1764 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F53 962 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1778 0 obj << +1787 0 obj << /Length 4062 /Filter /FlateDecode >> @@ -7708,24 +7759,24 @@ L ?œr0òPÑœœ>¼ÿtcÌìï0Á¿½û~tåÊ©W¥ùjóèw3º‹ÅçÔCýªêÃÎѦíã ]ÛpQ8Ç\•áôÖÝÚÝ]¼Ïr&8?ßÍ=ZÜ®ØÕ>‘ìšü)knß"ÑùÓäµ;H–Œ .é€xkêR6‘Mb}31R ŠN’ˆ•‰aPjAC¼£ã,Ò&õ#¹‹Cç.ÚáÑÛÔÇÚzꆾ¸öŠö_ÿ=@ÿçq ¾ÎªpÕ¼vɌΤg -—B³þrà”÷ÿúF¹öendstream +—B³þrà”÷ÿúž¹øendstream endobj -1777 0 obj << +1786 0 obj << /Type /Page -/Contents 1778 0 R -/Resources 1776 0 R +/Contents 1787 0 R +/Resources 1785 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1754 0 R +/Parent 1789 0 R >> endobj -1779 0 obj << -/D [1777 0 R /XYZ 85.0394 794.5015 null] +1788 0 obj << +/D [1786 0 R /XYZ 85.0394 794.5015 null] >> endobj -1776 0 obj << +1785 0 obj << /Font << /F37 747 0 R /F53 962 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1782 0 obj << -/Length 2136 +1792 0 obj << +/Length 2137 /Filter /FlateDecode >> stream @@ -7736,51 +7787,51 @@ V̳ €ž ÄÄ®ÙûoË›Õò뵧0÷9ÔžAj¬u•˜F¶E0µÙ”mc ñ«©m¯3]‡Nß5šew¼ïpÖ¸´ %<¿}p’ ¥;Q¯ÏÞETD¦k2Xv¸ešq›_½öÓN³j› Üë¡ ¸âÁ±uïÜðÔ*[~tµÌ[]*j¹…Fy¨Y¹…™ݎJbîäOÌ¥Î\Ú›Dè•$ù…ºóÕ~ä§s£+ ¸8¡üåÊ2æêǼ§•eà²hÝ—9)#Pì”ôU‘±r šžB2¾¨ÝÀåQoR" –94õ2]éÂN1Qäºq ŠÃþk¶‡|_¸5(i⇦ØEòHBÏWÁ$qt«fãËT€n%b毚%Á‡\ £ìîhG¸þÎiÖÔ=±Á ¿eó/WÒ͈Р¤£FMì—›JiŒ“¤8,Š¼g)küÚ²+Oš Ã"ð 3ñº±¹—¨€ýfæ.3;åî`ˆbÔJio¾±½x‚£<À€µ©ˆÈj§4õÛWËÜ(+±ŸÑÍ=Ù|$ ME³ §ƒê×zm‡ÑàC\²÷ž›Î JBG¼äƒ¿¡ø©(¿©Ù8v0…we‘WÕÃÙx‚áDø£G-*ò-y3 dP¨^ÁŒ× ˜ÑsMšÅ fÀ¤¤xÚ,N%м¨ÛÀåQn‚L’ˆñdª]¶×Ei¢E—[¿¢>îîÌß †6ùižweçØ t øÀž`všÀFPV½¤â¾) =•d'CXÃ-µÖ{-'¿éå÷B&8è  ” 6¨Z&0#A{$Ü¥Á[|<¦jP–€²°dŸÝOü# ’q$0ú€€á?uŒàwß´ÀK-Þë<ÿ‡ &ªÑå°€AÚ}õ‡ˆªØ1âåÆ7˜Á°ç®=Ø*¿`´ -'8 åÑ£àÉKCàSÿ åÉݱêJDX8‡”‹#âËãÇ~Ãi)ïåØ÷°`gyZËÞñÏük §ù«×“+th)þï”ÿ9‡[¤é3eš'’Àá¸WÊx<ý„ÜÏOuÿSnÏûendstream +'8 åÑ£àÉKCàSÿ åÉݱêJDX8‡”‹#âËãÇ~Ãi)ïåØ÷°`gyZËÞñÏük §ù«×“+th)þï”ÿ9‡[¤é3eš'’Àá¸WÊxf™§ äþ{~ªûÿSÆÏýendstream endobj -1781 0 obj << +1791 0 obj << /Type /Page -/Contents 1782 0 R -/Resources 1780 0 R +/Contents 1792 0 R +/Resources 1790 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1754 0 R +/Parent 1789 0 R >> endobj -1783 0 obj << -/D [1781 0 R /XYZ 56.6929 794.5015 null] +1793 0 obj << +/D [1791 0 R /XYZ 56.6929 794.5015 null] >> endobj -1784 0 obj << -/D [1781 0 R /XYZ 56.6929 751.8114 null] +1794 0 obj << +/D [1791 0 R /XYZ 56.6929 751.8114 null] >> endobj -1785 0 obj << -/D [1781 0 R /XYZ 56.6929 637.809 null] +1795 0 obj << +/D [1791 0 R /XYZ 56.6929 637.809 null] >> endobj -1786 0 obj << -/D [1781 0 R /XYZ 56.6929 571.6272 null] +1796 0 obj << +/D [1791 0 R /XYZ 56.6929 571.6272 null] >> endobj 618 0 obj << -/D [1781 0 R /XYZ 56.6929 530.4875 null] +/D [1791 0 R /XYZ 56.6929 530.4875 null] >> endobj -1787 0 obj << -/D [1781 0 R /XYZ 56.6929 492.9536 null] +1797 0 obj << +/D [1791 0 R /XYZ 56.6929 492.9536 null] >> endobj -1788 0 obj << -/D [1781 0 R /XYZ 56.6929 459.984 null] +1798 0 obj << +/D [1791 0 R /XYZ 56.6929 459.984 null] >> endobj -1789 0 obj << -/D [1781 0 R /XYZ 56.6929 390.8804 null] +1799 0 obj << +/D [1791 0 R /XYZ 56.6929 390.8804 null] +>> endobj +1800 0 obj << +/D [1791 0 R /XYZ 56.6929 303.7532 null] +>> endobj +1801 0 obj << +/D [1791 0 R /XYZ 56.6929 225.6163 null] >> endobj 1790 0 obj << -/D [1781 0 R /XYZ 56.6929 303.7532 null] ->> endobj -1791 0 obj << -/D [1781 0 R /XYZ 56.6929 225.6163 null] ->> endobj -1780 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R /F55 970 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1794 0 obj << -/Length 2915 +1804 0 obj << +/Length 2916 /Filter /FlateDecode >> stream @@ -7788,81 +7839,83 @@ xÚ¥Z[s Y\!O^ýöŸ¬`?]q¦`µÉ o«U±„ÃC™jF˜µ¾—SŽ;rJâ^Ö¶]Ñä²®Ú¬¨Šêñè-Rè4Oõ¾tè§ì9ïáä´éœ…_%¦Ï“éÇ5UµcÊ¢élg=´ý#¦•^QØ ¡ÚîÇ;j ÷ :¹W%™L’KŠ Î(‚GYE8ñÇ©bJ%òñ9£æm±Æƒ²:@#ò²Ü õâC`©JK²ToŸÐÑëÂÖb•QI—eý‚‡ŽQ-QQñAº±Ê{ûãš4C&%$Õ=ͨj+µÄMZ²L>ß*È ©»Ý›œºkËO½¡—¿¼{CÃÒ¨”z/EYRïÁ½‚ŽàÅÚ­W7MñPæÿ@[àÓS¼—¢qx4¤Ta•¯³}Ùöƒ†W^®Yªõ…ˆ¢Î(¯GYå}:‰ši­/ô ’½ˆ‘2-ÍÉÏ»¢j›žÇ‡¾s²hö›M¶s_»àBÞ¶mQWþeÔÛ¡x±ßäÝÂmíÒòPÊ )eì¬rU5M¾œŽƒ6 dñQç•xW?z6ÒmÄÇ¢ÆϦCÙ³ù6v6gIvgsJrèlz$ß“Y9i“Ó‡Nßé;ŽŠ{@>Þw±âôµq j…’Ž.H0@‘ GY n/²Û]ÝÖ˺-dÏ2w(dO¹,d{ìAG¿%RRp%Ñ9YD,Ù)W•â¤-‘zpç­K‚ñ ²5°Ìb|Ur˜äá±Úoð,qè!o_ò¼¢ î``jTÂ>R÷™4Æ&ÔÜ%Rþ ¬ƒVaÃ} ¬¯Á`îÞ)t½C¥§®"óÀAŠ?Ø m?Éé²h¨pD6*j­ŸÇøyãÞqû;ªP ïNšýr™CºWb•¤Ì˜KYhˆWâe•xw) Ýûõf•?Ÿ*1^ yž¹5À]?ÁPÌpiúìõncw©£âPzÕ{{Ëœ&ЛcKìV¹-Ãtd(G9¼ Èí!WÁ…¾Ã!nhjU{:¶hÃi§ÝÏÅʽž \Þ(ÌŽRéÍþ5HëµWé„ÅëÛP§‰É¨ÀUìcY$¨ÛŸû4Õ*!Ú ,_,sÌA”qû²£Î*ð•žxÝS!è /šÎ¸êÌÇv¦Úî©,:Þ¬2,á<Ò£í@΢Y¢0½ì]eôOUû³QöÚ‹†è<)•„fù”í²ekÝàH¹£,ÝXXÙ#Þ Üέ²Ö-ÚÖÔ>8ê.ý‚‘¢¥ÈV}VN²-f[褄wRhոɬ¤ò³§²Â0ÒÉÒÂjøÖO á5¬.>(B¶]õœ£Íÿð»Lˆn3 ¥œïÔ‡"Å· Î¸²n§¹x©Ô´»¼zlŸNÝŽb<Ñyæ:ÔwýØ™0Ë´ÏÞ‘Ûá^A9re€åÌŽøʹS”„L9Ý^¥p„2jºÉà ÜÁl]aÐ Ñ„ ¥}‹[îwŽb[ºô÷)sʃU¶«w\åNA¶ûÄÊÜ+Q—€AdÕ X§ô%DëK‡²úÒ†)!÷•ƒß ®ÑçùêPŒ_–piV³ð Rúb‚>Ý;IWffB¥ðR2•èähSGœÈˆ nú¤3i‰÷$G¤o¾.>¼¹¿{‡¢^ÑÐÝýÉ pƒA÷ žH°ˆsÓwzw÷þ]›bE>9‹Âä,rÉYÔ〆°g\&¿ÎwŒnÙ¶~Éì¡(‹ö{6ÛÃ|ÕZá;ÊàØ‘y%\õc–è@‰Ü}‡µ©°£[Áj¹û¾u^—×x8 ¥/茾;U÷ç‹·>eþœŸÖ°†Œa‘slu S¾ú7î‚Iõø¢š¢W4¯ò‡ýãcwsfÙb]y܉r dE„9fBiÒ£÷·w·_nP-·o»Âp> ôp€*óÿõÔÕ½\‚žÿf å†öò\Ö›m™“Ç©ÏÉ×û²<\''1$íØÚ{ºlFCàÔI 0d-/ñb‚(.6C_ý‡~ê¿ú}ªàýeÙþ 0 ù$TÖ©w5-ïS“™– œšŠúÖÚ´`½¬ Þ·6½s9‹¿$*šþ;d½`bÀÌŠÚv;5¾j 5⛿R-Ú£HÓ”lì[·P’%ÉXñŸéC”U\¡ûwi¢‚µèÓŠˆO¬/Ž"Ÿ§Ú¡NÉö]7‡>ØI,žç°ÇoY.—kƈÙ𸨄fÊ\úECˆ:#*º,ªsTQ“UH”~HRÔ½ûØ}"*È“ò]± o„¨`ËPÜ@eO.û²ò±ÞíÓfTÀ)x¡’óò @ãâõ ‹Ò=Gò Ücšƒ² iŽùÐT'ÑE=fÝ@¥dÃ)ïÿ6™&Èendstream endobj -1793 0 obj << +1803 0 obj << /Type /Page -/Contents 1794 0 R -/Resources 1792 0 R +/Contents 1804 0 R +/Resources 1802 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1797 0 R +/Parent 1789 0 R >> endobj -1795 0 obj << -/D [1793 0 R /XYZ 85.0394 794.5015 null] +1805 0 obj << +/D [1803 0 R /XYZ 85.0394 794.5015 null] >> endobj -1796 0 obj << -/D [1793 0 R /XYZ 85.0394 181.7045 null] +1806 0 obj << +/D [1803 0 R /XYZ 85.0394 181.7045 null] >> endobj -1792 0 obj << +1802 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F55 970 0 R /F23 682 0 R /F39 863 0 R /F14 685 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1800 0 obj << -/Length 1931 +1809 0 obj << +/Length 1934 /Filter /FlateDecode >> stream -xÚ¥XKsã6¾ëWè°¹2DâAbo[3Q2–½–¦*Ùh’˜ð¡ˆ”g•_¿  E²&•ÒA@£Ùh|ÝèÈà ¹@B†rI†8&|¸,x¸†µbyÇs½_ ~ü@£¡DR„b¸XÉŠŽc2\¤_FïCW nfóùä:˜O?Îþ{7›\$ŽH4ßßOf7Ó_¯‚c`fŒG·ãÙçñ'C»¿’áhüq2¿z\ü<˜,:ÅŽ•'˜j­þ|yÄÃÎðó#*c>üŒˆ”á°0Ng”:J>˜þÓ üŒˆ”á°0Ng”:J>˜þÕ ÇÌN|ÅU 4Òå’l™gI¡üª³†4ò:QêkFfdº3~Y×Ü]¬kª*ÿŽ<8?”Õ¶ÎêÓn”‰bA!!qÄb¸Bžê^ßo0Œý¥?Š*àX„郤§ò︼Ç×™âK<ºÑÒ÷®“ˆÑ®ZæIí {¡DP;»¨ÔIL=)x—à.BB©ezµ;x„r†DØ9k'T]ªÊ4h²ÂW³².ŽNe®<2ƈËè¤%¨öÍvß«,÷Éï—üu7Út£?<{ÂÕ¬»Í]šèg€¶è,Ò‰Ë/c}T õ$öÙ:‰ÙE‰™¾ìÏ.®~ÐS/Ð •G¤+n‰Þâ ÕDÒø3mD_9Çïuþ=k@i -…! O%Î.J¬«$€N5KòóÚ¨A‰_Ýê¢thÖÇjw^„9E˜ž6kΕÏB¡ǯ«´“ŸC7•”ûëÑV_±„l&edkÛ`a¸áN#„½™Z<‰¡é%“›Éüúaz¿˜ÞÍ<õíÛu•''‚MiÈܽԌ:; Ö–öÐþëÏT¹œŒ¦!¹öÖ2ÎL–„Ó,éáa>ýhhý7'Û0Rh%4¹J÷KÕßV+¢¬´gµ«Û&Y/T+ûÚ`õîakz;­¶‘Ò=t@cy°„&iô+ˆþ íZ€–ª\­Ý“Û…•Ñ°0ËÝ~@´ÅPuÝj°4=kŸPt‚î OãôYn²¶£²êÖ†êÚm÷rÛ5㮼-«ö ÊL2[\¥ªÑ¯*FI˜?NŸŒ¨ú¥&vò’§câÊuzÿ‡%„Üó’žjÕx|ŒÆˆrž¼dÙÞÐ>,$KûFá`±U:÷Ä -!@¿‹zª"Ü]¢üüúòÐ ù‹ÆqèYL£h•ÒÇ$˜½RÝ=Ô¾Öýÿ~·endstream +3wÜw‹¾|1Ä0 ­9ûðzŒCº ¿´Q«i/}»£2ºPð:¶@PÄDº uæŒgb lË7ƒ !q—„» L ò8ã'1ùdóóñŽPxXte€ïÊSïêÏ'6MŽ?Íï.kˆ:[—:ë¤ë¼jMÈŽ‹º8F±äN©÷ÓÙÙIÚ Ó"+3ðȤiCÔJÛ•Kë”·I¹‡dä=FpEwá_+ÀŒ»þðáÚH 9•y ²¢¶Àß3þ¿‹c§âÀééEq~SÉQÌHÔ7ðøó⧻‡Ë––Ú•ÊÆ‹ù¡†¢©6“k(2ª]“í‹—}!§3Ñå¡«váªv¨Ï1³_qt¹$[æYR(¿jà¬!¼Ng”ú†‘™îÀŒ_Ö5w뚪ʿ#Îeµ­³ú´[e¢XPHH±®§º×÷\ ÆþÒE„@p,ÂôAÒSùw\ÞãëLñ%HÝhiŽÆ{׃IÄhW-ó¤ö…½P"¨]Tê$¦‰¼Kp!¡T‡2½Ú*zûlÄì¢ÄL_ögW¿è©hÊ#Ò·Ä +oq†j"iü™6¢¯œã÷‹:ÿž5 ´Â…§g%ÖU@§š%ùym Ô ‚įnHuQ:´ë¿cµ;/Âœ"LO›5çÊg!ŽP„ãWž¶íF;Ï^ý°ƒ*¦*Rõ|æ~cþ +ðú2àM²kÎÝp%PÔ• Ô¦=ŸUÚÉÏ¡›Ê¿?Êýõh«¯XB6“²²Žµm°0Üp§BÞÌ -žÄPŠô’ÉÍd~ý0½_LïfžúöíºÊ“Á¦4dî^jFkK{hÿõgª\NFÓÆ\{kg&K‚i€ôð0Ÿ~4´þ“m)´š\¥û¥êo«QVÚ³ÚÕm“¬ª•}m°z÷°5=‡ŒÖŒ ÛÎHé: ±FcD¹O^²loh’¥}£p°Øª {b… ßE=Uî.ÑÿýüúòÐ ù‹ÆqèYL£h•ÒÇ$X¼RÝ=Ô¾Öý¿Y9·endstream endobj -1799 0 obj << +1808 0 obj << /Type /Page -/Contents 1800 0 R -/Resources 1798 0 R +/Contents 1809 0 R +/Resources 1807 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1797 0 R +/Parent 1789 0 R >> endobj -1801 0 obj << -/D [1799 0 R /XYZ 56.6929 794.5015 null] +1810 0 obj << +/D [1808 0 R /XYZ 56.6929 794.5015 null] >> endobj -1802 0 obj << -/D [1799 0 R /XYZ 56.6929 635.5323 null] +1811 0 obj << +/D [1808 0 R /XYZ 56.6929 635.5323 null] >> endobj -1803 0 obj << -/D [1799 0 R /XYZ 56.6929 476.3563 null] +1812 0 obj << +/D [1808 0 R /XYZ 56.6929 476.3563 null] >> endobj -1804 0 obj << -/D [1799 0 R /XYZ 56.6929 407.9215 null] +1813 0 obj << +/D [1808 0 R /XYZ 56.6929 407.9215 null] >> endobj 622 0 obj << -/D [1799 0 R /XYZ 56.6929 365.2162 null] +/D [1808 0 R /XYZ 56.6929 365.2162 null] >> endobj -1805 0 obj << -/D [1799 0 R /XYZ 56.6929 326.9947 null] +1814 0 obj << +/D [1808 0 R /XYZ 56.6929 326.9947 null] >> endobj -1806 0 obj << -/D [1799 0 R /XYZ 56.6929 293.3376 null] +1815 0 obj << +/D [1808 0 R /XYZ 56.6929 293.3376 null] +>> endobj +1816 0 obj << +/D [1808 0 R /XYZ 56.6929 221.9809 null] +>> endobj +1817 0 obj << +/D [1808 0 R /XYZ 56.6929 108.6903 null] >> endobj 1807 0 obj << -/D [1799 0 R /XYZ 56.6929 221.9809 null] ->> endobj -1808 0 obj << -/D [1799 0 R /XYZ 56.6929 108.6903 null] ->> endobj -1798 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F48 885 0 R /F47 879 0 R /F53 962 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1811 0 obj << +1820 0 obj << /Length 3191 /Filter /FlateDecode >> @@ -7880,26 +7933,26 @@ S|=R ’Uc3®è±G  PÅ…s ÈA×Æ¿)ס¾œ€¬´/ì®'“Ã>L0ƒ¾â4j¸;m$ï;ªúé««˜ÚnØ; n*n&Φ^#c8ŠìÚpò´-4”@ZPÏ*fž^u(†ß­Jªó4¯(¿#ƒHD}9SròSéLl2kÆ Yw9ÔαK[é§>qA2ä:Œ]—Ç®»Ùb9ÉtÐT½kwíâ®\ï£$T&Môqñ:®ùÆé™MÓ±€¾LÕ2‰ª ÿ!£ 4˜†…&þ’M IX"ú ºç…Xh¡Î¥{`mÃÄx‰âDº¥‚\+ífÛƒ·/®XÓ3Ês€–¤±4P9cF)¥b¨¤åØú,Á¡’Nñ{wYùÍöå–à‡}H¸X›ìÄ…Ëëˆ.ïC{ø¸1'– L3KŽ*0Î`'K¾ß–Uˇ~ÎÁC½ee4»Í&ß>¸Œ k®0¸â¢,÷A~¿ÛÝÄ-ÎHÊ8ÀÕ]%U Àì-ˆ¾3cÃÔĉs#?˜³ŽJ3˜×ÈN†\‡­Óqy딧®Ã@•Åªýä|4¶£²u\3““Ú©K÷¯.ÓÈéç‘NOe½kÖÏ‹œØåì[%'yÓ„Þœi>(ðlj>5ñW›Ø¸-† ­ÄÙ ÿLLƒí2fFo“Í.t»5 óQ ‡ÖqRÝL3ýçå:”a ÿ”3gÎS€kƒäwtg0©\„g5Méæ‹jaÒ]V£:k_Y¨®²ÈižP×e¬Û¹¦ÏQî àû®õar!h„Íf²Û,/ƒ½·LæÑ4b¸7“ºçV¿OeS»iÊUA#W¼rM¿·¼ª—’®Và©©ëÊOæ<4Ìå.íñ{–Çu¾ä*Ä…PK´ëÏ2 ‰Rw¤H§‚Þ›Û?5ÄÀn¯£¿wq ñq {ÛnÒ’Ü·[-™~[´OEÙ€{ôª‹H*T]vˆÍþ2ªk% âÞÑrÅ—ûñc- …Ô_« <B†?{'Š¸/.jCÈæa¿(ð´¬ ©O[Œür Oc­º´)ÔK ¯5z³îðó–Ëi …›R“rºV§tK„Í„ëa aªŠLUÑisâ ñ”˜@‡? -…<põ :*¯-ýjØäJæ_+á°¢¿šrÎ\|1ìiÆV»¢;wýoÝ-¶ÿ]Mw3v—Ѭ :ñ9xªwáòõ`°ÎÊo¾¥=‘2 ¹Ê—?”_ŸJ»ý1¶åoÈIÆyw™2„ÃQù:®Gs*c9÷X›R³Ð6œoÛ>ßæ ûètF"å¢>6ÑûºiÊÛuAL4Yùsï {IV§‰‰ï(ÜÚâs‹¿3§@qÎö/>¬`|¥ "¿TÈÑÇ.c‘i3Xe›?ZÒy™©i:Ÿ@’ŸLÒy¾Äu¶?ïíq[BrZ®Ÿ™ Aéß´ù'*©òRx¦2[ôÐX=C–_.é!¤Gد\ótˆ0ÜâW»Í#H¢dÓH$b¼§t†àÄàÅlµ@SÐSð lë+°{\1üa§ShÜò´àÀÙ¿?¥à—…¿¡fÐ5Šò  [}öF籃üû×å]G8Âw>Òz8S`Ôþ™ýeÓì´ÞÆïÇ“è&Þy¿Íî·’ºiâŠßá— yUø¢¤óQ—Q~œ…êÆòþ3¾”JY-ù dß°©g"Sø\¶û«|ç¼® ÷@„óîGme¨U_õŽt7Øô7*Üc)úè Ü(5‘-’‘Ⱨ×O7Íbé!ÿTŒg¾ågb\{‰XŒü¶î$zߘäû7äý­UŒŸÃÍ8³è>uû¿¿ºë¿/4ÌeÙÌ´0±ÖN¡PûRØ©èÝ÷yû²ÿ•¡endstream +…<põ :*¯-ýjØäJæ_+á°¢¿šrÎ\|1ìiÆV»¢;wýoÝ-¶ÿ]Mw3v—Ѭ :ñ9xªwáòõ`°ÎÊo¾¥=‘2 ¹Ê—?”_ŸJ»ý1¶åoÈIÆyw™2„ÃQù:®Gs*c9÷X›R³Ð6œoÛ>ßæ ûètF"å¢>6ÑûºiÊÛuAL4Yùsï {IV§‰‰ï(ÜÚâs‹¿3§@qÎö/>¬`|¥ "¿TÈÑÇ.c‘i3Xe›?ZÒy™©i:Ÿ@’ŸLÒy¾Äu¶?ïíq[BrZ®Ÿ™ Aéß´ù'*©òRx¦2[ôÐX=C–_.é!¤Gد\ótˆ0ÜâW»Í#H¢dÓH$b¼§t†àÄàÅlµ@SÐSð lë+°{\1üa§ShÜò´àÀÙ¿?¥à—…¿¡fÐ5Šò  [}öF籃üû×å]G8Âw>Òz8S`Ôþ™ýeÓì´ÞÆïÇ“è&Þy¿Íî·’ºiâŠßá— yUø¢¤óQ—Q~œ…êÆòþ3¾”JY-ù dß°©g"Sø\¶û«|ç¼® ÷@„óîGme¨U_õŽt7Øô7*Üc)úè Ü(5‘-’‘Ⱨ×O7Íbé!ÿTŒg¾ågb\{‰XŒü¶î$zߘäû7äý­UŒŸÃÍ8³è>uû¿¿ºë¿/4ÌeÙÌ´0±ÖN¡PûR¤SÑ»ïóöeÿí£endstream endobj -1810 0 obj << +1819 0 obj << /Type /Page -/Contents 1811 0 R -/Resources 1809 0 R +/Contents 1820 0 R +/Resources 1818 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1797 0 R +/Parent 1789 0 R >> endobj -1812 0 obj << -/D [1810 0 R /XYZ 85.0394 794.5015 null] +1821 0 obj << +/D [1819 0 R /XYZ 85.0394 794.5015 null] >> endobj -1813 0 obj << -/D [1810 0 R /XYZ 85.0394 751.8312 null] +1822 0 obj << +/D [1819 0 R /XYZ 85.0394 751.8312 null] >> endobj -1809 0 obj << +1818 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F55 970 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1816 0 obj << +1825 0 obj << /Length 2975 /Filter /FlateDecode >> @@ -7919,76 +7972,75 @@ U e nYÝ_Ö“ëT=]èObžÁƒ] ×Ä‘«8½RHiñ±üýõ¿©“HXÓ}tÕ¸Û¤‚¾¨V_phŸeäÉÝÁ  PµÇNý›êXú­ÓÐè>Æájíƒdxý@º ¿öˆÖšÑX9ø*øåfCbDk7•ùGÅuSž/…ËSæ4¹öÓ=[®ZÄ?G€NÖæÏ-Ï7hÁú'¨'LJM_ÿvõë§_®G"8„ìÃ%kœà“Òv[=7 þ§º#&Âî_S³ ý‘”;$oŸP À%³õh´Œ~Þ$4 ²Ø¢y Í›@ÔÛ›+jQ†† §ãóòÈËú -c­ß!+kÈ_W°L wáŽÆ&¼–aã}ç$ì{pß ž‹˜OCN%C7å; Œj!K}ö?vǺ!ȇ¢áHæî(wí6’0ÊkfâÉgwlžßFA^˜tÞƒN´û¬vIÁâ(}åcµöÿy€OŒÛªúË¿F¢jžfñA-¶§°¸Î›ñt ®³n Â×þ´({¯¬qÿ~©(¿_8µ®ÂTWZƒÖÛúžÙ·pê·rb…;ªåŽ^ú‡°„a)±g€Ê]ð‚AT=U”"2Ê[«û1ñ€,Ý“ÎÄ)¼·jÌ+ñÖ"üßÿ5túÿ(ˆ ”™*pJC<mO/xrîÆýÿÓþ?v—*Õendstream +c­ß!+kÈ_W°L wáŽÆ&¼–aã}ç$ì{pß ž‹˜OCN%C7å; Œj!K}ö?vǺ!ȇ¢áHæî(wí6’0ÊkfâÉgwlžßFA^˜tÞƒN´û¬vIÁâ(}åcµöÿy€OŒÛªúË¿F¢jžfñA-¶§°¸Î›ñt ®³n Â×þ´({¯¬qÿ~©(¿_8µ®ÂTWZƒÖÛúžÙ·pê·rb…;ªåŽ^ú‡°„a)±g€Ê]ð‚AT=U”"2Ê[«û1ñ€,Ý“ÎÄ)¼·jÌ+ñÖ"üßÿ5túÿ(ˆ ”™*pJC<mO/¸9wãþÿ‹Îiÿvï*×endstream endobj -1815 0 obj << +1824 0 obj << /Type /Page -/Contents 1816 0 R -/Resources 1814 0 R +/Contents 1825 0 R +/Resources 1823 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1797 0 R +/Parent 1789 0 R >> endobj -1817 0 obj << -/D [1815 0 R /XYZ 56.6929 794.5015 null] +1826 0 obj << +/D [1824 0 R /XYZ 56.6929 794.5015 null] >> endobj -1818 0 obj << -/D [1815 0 R /XYZ 56.6929 119.3275 null] +1827 0 obj << +/D [1824 0 R /XYZ 56.6929 119.3275 null] >> endobj -1814 0 obj << +1823 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F55 970 0 R /F48 885 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1821 0 obj << -/Length 1544 +1830 0 obj << +/Length 1542 /Filter /FlateDecode >> stream -xÚ¥XmsÚ8þίàËÍÀ´VõbÉöGJH›¶!¹@çn¦Í ¸5rÎ6´ô×ßÚ’ŒmÍÍMf‚-¯wWÏ>û"“>†?Ò÷9Â,pû^à"Ž ï/¶=Ü_ów=¢e#ä4¥ÞÎ{o®™×P ¨èÏW ]>¾Oúóå—Áèþ~2½ºù{èPŽoÑÐánGÓÏ£Ojí~ÐÁèÝd6tˆ'˜ B¼x0ÝN®œñûÉøãønz=|œèMæµcMç f¥Wÿô¾<âþö𡇠|Þÿ7‘  ýmÏå q—1³’ôf½?k…§Õ«608ó÷©gC#°¡Á$e Û_Ê<N¯å¯TFjÑYëßTýF?Ãís¡EºÕo=¡“µ¯„¹%,à›C -8§•¡ Iô -cöŠxÔõl¢mµ¨t*Z¶‰vß\ÃVŽ»,E|$|W"7RÅ´ØDå„Oé~HúNÛy­‘†¢ @„ø.(¬|êtjØó €%¿È†ÄDaå- Œi¢´â#8HŒ‚³ tÌʧӯO!ƒù&Î[æªë|“î’¥ÚùSåBßaÂC˜0Òò~©_¹ˆ–JC¬á ÕâJ¥º€­n#YtåN÷I81¾öX†Ûh {”+ËîET®EÕ^rœ1©ÑŠ·ÙxÚò†êýTáÓCõàY=ÙÇé.Oê‘ƺº6;¤ƒq±QkËhî’B+3Ø@ey½ hn=gñ@Qbߣƒ1¬,ªå0ÏwÛ.¹UŠTAøµ!­‰´Øe:<ôe¬îEš†h€,ðwD€Å³-¥ ílÙnqùb1ya±¤ù êmÕÒ¯W«ý2 -Wo6™(´FŸfwöúAÂPF›yá[Gò+,ûðèzᶚ A.6åâíÍôJ™ ´µå6–q^d!G-=4óK-݆r&¶,~™B«·ÙwQàS®ÇJ#åŒ[ô¹Q—“ºhXpshÀ‘xmøFŸçïï~Û„”‘fæìCuÐiœÊ<ÍŠx·=šus… —K‘çCå­€Dº0žTuÂYl¢ÅwS,ªØrä îUÂS9ãZPª<Ö›†U%)õÔUõX'X*ËŠ³ÞAÐâTZêéAáO-\*ŒåZ'iš&/!ãA¦Ï9T¬Î!``Ð -†ÖÎRKß'°AÊKÂY'$ ±€‰Çiª8?ÔRV„Ê4ýâìÍÕ·úªP›ä-®zçMцª¤+Òi-â.´¦¡ÖºŠ“¨tÁØøõh§'cpzZˆ^Mf㇛ûùÍÝÔÒÓ;$µPªC¨Ha*ÓM½”ìösE‚׺Xï4ãeZtå¢m(‹x‘kÑtÕj¥/ã=S—-$î*f'#ª&¢Ø¥—ÙÓ”ªØÓ‚Ó°§–*íÖœàÍa -ÁœâÙÑô¸¼-ý¢sµ”Å»9E늶{ãMUsÓ2> e›=å¥ 3•/<;ƒ[F¸@ÐIdžj¥›P«å"Ù-#uslÐñ¾œ +F¥yKË \4…§¼®gˆòF0é"‚N¥Ú"@Ä‘+:3]¨™kâeC°Óìz:´È˜ÇÛ8 ³ä`j›ÁÌPT mg¹I&°`¿áVCê·ŒTÅ­}×dÀ G‰ß˜4B“ÍXÂ)Ñ÷¼ŽÉû,–ÝTÞôW'¦ÉãòéiÅS r],šÃî¨8:¶k˜1u€¤Ž@ô3.Î:7dˆ¸ŒCè<üF¨Bÿ—}Æ|zÑž‘9µ×Áž‘€·ìÝGÙ*Ͷ-fÂyJG#IÃe§’&‰ºØ†0ndÇ#Š&þ*ÝÉã9æ4ë)d 悽ä`ghÒÍÊ8Ó1J.Çá(s> Z¦ŠÂ·“($<×½d̈œkÅhÏ¡–5Œýµ‰äîz¼iÿšó>ó.;éò-Ýe2LÚÕ'.jçEŽÎ}Iñ®üüaÙ®[àÿþÊrüž­…ùþ™†Â0Œ©, Æ© ‚½®ëõ÷˜Sßÿìœ/endstream +xÚ¥Xm“šHþî¯ðËUi%Læøh\7Ù$ëýÀ**  ‰ùõ×038š½ºÚª†¦»çé§_ÒÇðGúž@˜ù¼ïú LD±íáþž½ë-ã!§)õvÞ{sÍܾ|Ie¾jèòö<ÒŸ/¿ F÷÷“éÕÍßC‡ +6$Ñ+ŒÙ+âRîÚDÛjQéT¸l í<,¾¹†­wYŠxHz®¨DnÓb–d<¥û!è;mçµVDŠ|âqPXùÔèÔ°ëB! +J~‘ ‰7ƒ"Ì[@ÓX+hÅG +gAè˜%T A}¦_ž2BóM”·ÌU×ù&ÝÅKµó§Ê…¾Ã¤‹0a¤åý*T¿É"\* ‘†3P?Š+•ê¶º “¢+wºO"€ˆ¾ô´ÇI° —°ÇdeÙ¤ˆJ)´¨Ú RŽSâ"&!5Zñ6¯C[ÞP½Ÿ*|úq <«'û(ÝåñA=ÒXW×f‡tð#*6jm®‚]\hA(Â,¯ çàæÖsí%ö=<ÃÊ¢Zò|·í’[… H„OaÒšH‹]¦Ã£A_Fê~Q¤ÙaH€È'AtX<ÛRÚÐΖí—/“Kš¿ ÐV= ýzµÚ/s¡à Uðf“‰Bkôivg¯T" e´™÷¾u˜|…eþ]/x«Ùı)oo¦WÊŒ¯­-·QåE@pÔÒC3¿ÔÒmì‚Ø–åÒ+Ajõ6ûù1eàáz¬4r̘E'ˆrAê¢aÁÍ¡¾@žï¶á}ž¿¿{ø=n7 ¤DjfÎ9T]‘Æi’§Yí¶G³1.M¸8E®•· èÂxRÕ g± ßM±¨b++…[ OAäŒk~©òXozT•¤ÔUWÕc`iRVœõ‚¥‰¥ž’"ø©…K…Q²ÖIš¦ñKÈxHÒç*VgŽ0 0h Ckg©¥ïØ %ᬆXÀÄã4UœŸ j)+Beš~qöæê[}U¨MŠW]ó¦hCUÒé´ Ž$­i¨µ®¢8,]06~=ÚéÉÜ€ž¢W“Ùøáæ~~s7µôôI-”êPÇ*R˜ÊtS/%»ý\‘àµ.Ö;Íø$-ºrá6HŠh‘kÑtÕj¥/ã=S—-$î*f'#ª&‘>¢˜ÓËìiJUìiÁiØSK•vkNˆæ0…`NqmŒhúF¸ o@K¿è\-eñ®ÅCA‘Ϲl»7ÞT57-ãð_¶ÙS^r˜©<éÚÜ2"$‚Nj$óT+ÝZ}”,âÝ2T7Çí˹°€a41oi¹”‹¦ð”×õ QÞ¨&]„ЩT[ˆâ²3Óš¹‘&^6ô;Í®§C‹Œy´â ‹¦¶Ì EÕÐv–[dKön5¤.pËHUÜÚwMú z”üI#d1ÙŒ%œ=×혼Ϣ¤›Ê{˜öêÄ4y\>=­8p +DœcÙvÿCÅѱ]ÃŒ©”è„?£âl sC†ÈËø7„ÎÃo„*ôYÐgÌ£í™S{ìñEËÞ}˜­ÒlÛb&œ§t4â4Xv*i«‹mãFv<¢hâ¯Ò]r<Çœf=…lÁB²—Là íÂAº9@Ùg:FÉå8e·AËTQøv‚¤Ëù%cFäÄX+@{µ¬aì¯M˜á®Ç›Æñ¯9é3ﲓ.ßÒ]–q»úDEÍã¼Èѹ/)0Þ•Ÿ?,{Âu üß_YŽß“ µ0Ï;ÓP†1•ùÄ8UD°ßu½þsêû¿²»œ,endstream endobj -1820 0 obj << +1829 0 obj << /Type /Page -/Contents 1821 0 R -/Resources 1819 0 R +/Contents 1830 0 R +/Resources 1828 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1797 0 R +/Parent 1839 0 R >> endobj -1822 0 obj << -/D [1820 0 R /XYZ 85.0394 794.5015 null] +1831 0 obj << +/D [1829 0 R /XYZ 85.0394 794.5015 null] >> endobj -1823 0 obj << -/D [1820 0 R /XYZ 85.0394 562.7154 null] +1832 0 obj << +/D [1829 0 R /XYZ 85.0394 562.7154 null] >> endobj -1824 0 obj << -/D [1820 0 R /XYZ 85.0394 499.03 null] +1833 0 obj << +/D [1829 0 R /XYZ 85.0394 499.03 null] >> endobj 626 0 obj << -/D [1820 0 R /XYZ 85.0394 459.6249 null] +/D [1829 0 R /XYZ 85.0394 459.6249 null] >> endobj -1825 0 obj << -/D [1820 0 R /XYZ 85.0394 426.4105 null] +1834 0 obj << +/D [1829 0 R /XYZ 85.0394 426.4105 null] >> endobj -1826 0 obj << -/D [1820 0 R /XYZ 85.0394 390.6449 null] +1835 0 obj << +/D [1829 0 R /XYZ 85.0394 390.6449 null] >> endobj -1827 0 obj << -/D [1820 0 R /XYZ 85.0394 324.0377 null] +1836 0 obj << +/D [1829 0 R /XYZ 85.0394 324.0377 null] +>> endobj +1837 0 obj << +/D [1829 0 R /XYZ 85.0394 263.3171 null] +>> endobj +1838 0 obj << +/D [1829 0 R /XYZ 85.0394 199.6317 null] >> endobj 1828 0 obj << -/D [1820 0 R /XYZ 85.0394 263.3171 null] ->> endobj -1829 0 obj << -/D [1820 0 R /XYZ 85.0394 199.6317 null] ->> endobj -1819 0 obj << /Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F47 879 0 R /F53 962 0 R /F55 970 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1832 0 obj << +1842 0 obj << /Length 1880 /Filter /FlateDecode >> @@ -8001,50 +8053,50 @@ x =×gP[¨Ë&oÀ´ƒ&p>b­¢‡FŽu.ˆÉÖYžëIÓêöÐ8@¿ÜË`4¦ t+ep»«­<ÓFQIþìén½qC›š°î]o ÔZµ'(Ý÷NýZz·Ã-'欇—®ñe[c¾6f8×۹ľ¶šdvÞ«:£(˜¥PFge‘äù~BÑf1k “Í&ÏtzVõ6[Ö;³d\erõY啾ÝÛ§kÁi~TGôGô‚ñ„þJ{Ç÷Ú–•»z£½Êìª,ÏíH÷õ²;µ£¤rÏÂ=—µî»˜±õ²5®!vgú¯o÷)A)Ä`À0ŠcvèãL¦Á¯4ëµiå{ûÖ L40ífSÃí¯Q.I·æp~Ö[ÇûY׻ʵy’Ú¯&~êÖíµ¤ò½=¹î\}_V~K¶U´Û·ÙÐC^ cØ¡Qø”—â’7ÂQó·ééœh„aª2ˆ»°+s^7ôÝ5^cA ß> endobj -1833 0 obj << -/D [1831 0 R /XYZ 56.6929 794.5015 null] +1843 0 obj << +/D [1841 0 R /XYZ 56.6929 794.5015 null] >> endobj -1834 0 obj << -/D [1831 0 R /XYZ 56.6929 687.0104 null] +1844 0 obj << +/D [1841 0 R /XYZ 56.6929 687.0104 null] >> endobj -1835 0 obj << -/D [1831 0 R /XYZ 56.6929 626.5588 null] +1845 0 obj << +/D [1841 0 R /XYZ 56.6929 626.5588 null] >> endobj -1836 0 obj << -/D [1831 0 R /XYZ 56.6929 566.1072 null] +1846 0 obj << +/D [1841 0 R /XYZ 56.6929 566.1072 null] >> endobj 630 0 obj << -/D [1831 0 R /XYZ 56.6929 528.949 null] +/D [1841 0 R /XYZ 56.6929 528.949 null] >> endobj -1837 0 obj << -/D [1831 0 R /XYZ 56.6929 496.7215 null] +1847 0 obj << +/D [1841 0 R /XYZ 56.6929 496.7215 null] >> endobj -1838 0 obj << -/D [1831 0 R /XYZ 56.6929 461.9427 null] +1848 0 obj << +/D [1841 0 R /XYZ 56.6929 461.9427 null] >> endobj -1839 0 obj << -/D [1831 0 R /XYZ 56.6929 398.5692 null] +1849 0 obj << +/D [1841 0 R /XYZ 56.6929 398.5692 null] +>> endobj +1850 0 obj << +/D [1841 0 R /XYZ 56.6929 263.2909 null] +>> endobj +1851 0 obj << +/D [1841 0 R /XYZ 56.6929 125.0477 null] >> endobj 1840 0 obj << -/D [1831 0 R /XYZ 56.6929 263.2909 null] ->> endobj -1841 0 obj << -/D [1831 0 R /XYZ 56.6929 125.0477 null] ->> endobj -1830 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F47 879 0 R /F53 962 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1844 0 obj << +1854 0 obj << /Length 2946 /Filter /FlateDecode >> @@ -8056,421 +8108,421 @@ x ѨôÌÑi›jš‘ÊAóðYÁÑ,_):ò5uk²MÆœç½&Kç|í³+‘16R"c49_Kpª!ÉùºjIóP5qçØŒç;(¶ô/â²è|;_Ž_`ÚÕ2úµ—t+d¸øÁÅ— ŠÌ3<»0ÿÿQÑ I†ÏÜiSM[f¢r–YžOîA£VJëäQpñóÌ%ªî:öÉmÙS«.{?^+¾<õ Ë‹I|¨I»50ӳǯbd ½‰¹¿nþ„œø.%®ñwêÎêòøiZö1ÿ¹MLë_HÄ$;ã™ÛT3úTNÿÕÙK-Uýi—O^j™å¬¹Ô2dmôRK‡·Æ9k2}ƒ;®ÏUÛïleÀù_è XѦ© -rnW€—÷^5ŽWyʹt“øKO—Áñ, #N;Ó¨ó°™»2íä˜ï2[¯ž˜È—b²{É \«èîw.1gziÙ­X%ƒ¶…¹ýÝ—Uè©NEíÏ­o„«nkئܙ‚íËNu #ëlgšl×}øÍÂ`ùSvÌê0Xµ>Oµ½î¢Äòûƒï¬#ƒîÔ¡{pæk}[Ú  ñ(ŽÅã)/#ßÓ¬Š„Uñ–)ÍÞí Œy¯žÅ5†K{íÏêí©ò=Õ ÓȃDyàe¾)ê V§vy‚NT×zG‚Ý7”GÏêjÊĺ´|]MéTWS&ÔÕ Ñ­«AGª«A»ƺšŠ¥’A«©«­˜‘î°ÕMá[+þ8%0Û]c¬ûm³ý²ß>ÏéÊ`ѯï·}}û  èWmuú²%$ÜJž»ìÚÍ\µ Dξû¬ÈvŽ©Ø˜kÛ\Å|K„”~3ÿÓ܇AÒ%zI褫ù>%]¢“t‰:Ú™¤KÚ²ãLº¨`—']Š¤{ìË2>u1Â{÷>;¶‹U*X%ccÀ‹h@Ÿ}/¼¹ñÓšŽ£‰aŽ3$2e'ØôYL#¡!‡òþo.óendstream +rnW€—÷^5ŽWyʹt“øKO—Áñ, #N;Ó¨ó°™»2íä˜ï2[¯ž˜È—b²{É \«èîw.1gziÙ­X%ƒ¶…¹ýÝ—Uè©NEíÏ­o„«nkئܙ‚íËNu #ëlgšl×}øÍÂ`ùSvÌê0Xµ>Oµ½î¢Äòûƒï¬#ƒîÔ¡{pæk}[Ú  ñ(ŽÅã)/#ßÓ¬Š„Uñ–)ÍÞí Œy¯žÅ5†K{íÏêí©ò=Õ ÓȃDyàe¾)ê V§vy‚NT×zG‚Ý7”GÏêjÊĺ´|]MéTWS&ÔÕ Ñ­«AGª«A»ƺšŠ¥’A«©«­˜‘î°ÕMá[+þ8%0Û]c¬ûm³ý²ß>ÏéÊ`ѯï·}}û  èWmuú²%$ÜJž»ìÚÍ\µ Dξû¬ÈvŽ©Ø˜kÛ\Å|K„”~3ÿÓ܇AÒ%zI褫ù>%]¢“t‰:Ú™¤KÚ²ãLº¨`—']Š¤{ìË2>u1Â{÷>;¶‹U*X%ccÀ‹h@Ÿ}/¼¹ñÓšŽ£‰aŽ3$2e'„ôYL#¡!‡òþo-Àxendstream endobj -1843 0 obj << +1853 0 obj << /Type /Page -/Contents 1844 0 R -/Resources 1842 0 R +/Contents 1854 0 R +/Resources 1852 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1846 0 R +/Parent 1839 0 R >> endobj -1845 0 obj << -/D [1843 0 R /XYZ 85.0394 794.5015 null] +1855 0 obj << +/D [1853 0 R /XYZ 85.0394 794.5015 null] >> endobj -1842 0 obj << +1852 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F55 970 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1849 0 obj << -/Length 2037 +1858 0 obj << +/Length 2056 /Filter /FlateDecode >> stream -xÚ¥YKsÛ8¾ûW¨j÷ UYž$pt,eÖS‰âµä­Jr )Jb… öx~ý6"%HJÕ–l‚­îF÷×Àd„ጄ‡1¤ò¨7Zmz²$ÂR’Ñjýmüùhðxq÷e>›L)çÌß=>γ‡ÿ»ÀÀ,¿Ü-žï>›µÇ‰¢ã»ßæËÉÕï7óUgNßd‚™¶åÏ›o?ðh –ÿ~ƒSRŒÞà#¢¥7\0$8cíJr³¼ùw'°÷µù©Ë\H$(÷À 1ß;ã(‚|B€Éçzð%.?Y&í¦i¥·ùá“=F¥?û Zs¬ã" -«¼x?ö! -yÄ;ÈsYÖ1šÆz …+I¶ÝïŠ ‘ã<¯&S†Õ¸Ê­Lõ~ÉÒó\Æé€íK_HËYæVè.°âã,Lêud^@Ö Ââר´ 2ÎÚ_Y¾0ϾcL·uTqn¿ê•Ä2FŽyÙ› …QYFkm"86À½ÆSH Aã‚Ò`1Þ˜g1‘ã:3ôË»yæQÆiœEbWÃÎg  YÉ‚4Z£0[Äx3>öùeXõ¹Îãªãj€õæÑ™sX-.×q9¬BK!á+14/ÜéO9åg`…Ù¿€*¨9”Óª™ ª4eŸGfÅ C‡¥Ô €g>¤AYEEŸÉÐÿ|XÜ~žÍÍÛ2-ˆ<0×£C½åÅO(pŒàñj·*¸1/àóÔ°ÖÄA‰ÞµAVÔ¥ý ŸºŒbˆ.m=a`é±q9M!ÿŠçÁ)ô¶”¼Î×p¶\ 8gÇ*=‰ AÙe•-“Cew>CTao¨rV§{㼿ó̺± ²u©qsåY‰yÝäETg£$oÁ»¥R/I›õð;ë÷¾3¨;`ºãb4 ót'QcÖi¨EœÒë¡¢Iê³+¡êq]UËÕ„êW€Ü•æëèØ.åA·ää²]-“îAÁ1!øаå> -ã $SÞømAîæEg“~†»(ü©I¿ G³ÁB’§q¦#Üü4NÖ¡éëís9^\æ2K‡Î -‚$ÍËÊVÈ.Ùe‹™‡:¤pjÓ#¡¬“ʼçó ÌcÄIÝji~˜›g­£¢¬‚l}$°o¦Yô†»8ÛZÁÉ6/âj—š×ïXà§O÷æf* DƒËñc^–1ºÙV6ñ6¬}§`ç>’s ’ï”ò· ÈôÓs&{í¡ÍZG›ü¢ ²Š²µC‰®dJž’x›åEtN‚ -BÙµl>A\ÀÔw1›ú\糩ãÒu’ë¬?i¹˜!"%¿¬¹ãr¨&ŒD0óùCÝ«®¹äiЖ»Æ˜†Ê7G=èP'_" f¾œº0ÏhÜ0i“+žëq]ð\Ëe0Ñví“R#Lïü²ê–É¡zè9øêyþPwç¹_ò–±u`ígÇ Ž ~Ai`>ÂŒšYèi¾z~Z˜ÿgóÒøîó³9ÿyÒJ /ë÷’3ÝCr8Ú°6=LªVu‘µÉkQýWv,©‚ª.‡{$Ãa8*̈[X¶·¨+Q\QSKÛM…[‘ºJ¿Åå÷´æܳœÏÍï>/¿:öèrŠ® R׎ÛÞn<¥G¢ÞçF÷C2´"•uš©Ú ˜ ‡z়«@. GÚšóña13ò”ÝÕÚL\Vp€Éí8øm¬O³ÐºõKÕЋNÕŠ¨×ÀÜ~…î µ˜¨¡cïžWÿúútÉ£†ï!ƒ^˜E!Ëw˜’Sûû<+ó¢Šëô bÈ=jåp -KˆöJ`5 Ûp´J¿ÀX5, ›ßƒàAY/Ä6Ù(õ 5´Ò]ãʨx -—‹ðæÞ³|_Æåq­aPÁ¤ÇFDR$ˆûÚÚ¿¢BÇûb ì‹0w*ÊQ;®Þ¾=ðà·)ÿÑR^G…vVì!¤=õiøÇÛé&N"ǃ° ÖöìNîÚ!Â&=ˆ¬=¢E/õvšD¯Qòëb7µí¨Ô¡ -Š·ÇIûóMl]ÇŽ¸/ɱŽÌ!oÊÀ«„é[‘þTóp_—.É -Ié«cÉû«NÙCj¸ä1¤ƒQ'¯ì¨Ê!yè£ñ:Á |âˆúª¹p¼,ÜŽ¥ÞÉî_;꯫ֆTÞsžE¸Û&ÅÈ#À?HÒÙ|yÿôð¸zøºøÅ^éš6¼»Ñç:¨^z×™­"šnJSC™ -hhÝIf‹¥Sõ‚-1>‡VÖâñ>(*óI÷Sý4—W@˜^ )ekÝâ—Ú^eÁÊÆôZ«íay õ©9Бæ‡Ücw3Àuœ™Sl#´éÂÙÑð;¸m+¤]‚¶Wv}Ýv$¿=êìº-¢î ¡–ÛÚ»¨Ñ£oö^óŸ¦bK8¢T»¼®ÌszØÖi”Uå­#ŠDøˆIß럘]QdHø¸)œ‚#ßø&°ªí~ÕØ.ÌËÉ¢fµW§p%>FœuÙû!ªÂïZ¤BžÇd>Ð×ÊaAýá±o­öð{{5Wq{!±ªà8 À&Ê ñgqT¢s×è5}÷íèQ¸Ë½ÿûŠýð/®ã(©{즾ÐӶץA>=d`Ḑ¶ÿ Ðøendstream +xÚ¥Y[oÛ¸~ϯ0°çÁb–w‰iìîÉ¢usbg»@ÛE–m¡ºduIšýõ;)Y²i»ÀA4¢G3Ùo.dÈà ‰¤¢jä)Ž&b¦Wx´…ß~¿"–gÚ2Mû\ïWWï>0o¤’TŽV›ž,aß'£Õúëø=òÐ$àñâæÓ|6™RΙßÜßϳ»¿à]``ŒÇŸn7ÍÚýDÑñÍïóåäûê«ùª3§o2ÁLÛò÷Õ×ïx´Ëÿ¸Âˆ)_Œ^á#¢¥W\0$8cíJrµ¼ú_'°÷kó©Ë\øHP.Á a!O8Š `ò8AœïýD‰ËO–I»iZém¾û DQ!B…¢5Ç:.¢°Ê‹·C¢$r/ÏeYÇtlëi$¬|:°ívWLˆ?Îój2eX«ÜØÊTïK.ð¥t{ ¶ï{·œen…î+>Τ^GæiÝ ,~‰JË0!ã¬ýÊò…yö cº­‹ Šsû«^I,C`䘗g³¡0*Ëh­MÁ¸l<…”¼Ai°o̳˜øã:3ôÓ›yæQÆiœEbWÃÎg  YÉ‚4Z£#0[ÄH¥ãÞXõ¹Nãªãj€õêÑ™sX-Î×q9¬BK!á)14/ÜéO9å'`…Ù¿€*¨9”Óª™ ª4eŸGfÅ C‡¥Ô €g~Hƒ²ŠŠ>“¡ÿs·¸ýø8››·dZI0WÒE´1æ5/~@cW»¸…T9Ày˜§†µ&öJô® ²’ .íÏ`ñ±Ë(†èÒÖv—Óòö©xœÂCô4;ž3À4< ,g‡Ê¤ 5Ù9e-Ë‘²þž<†¨Â²¯lV§ÏÆaÿä™u]XëFãÚ Ë³8 óºÉ‹4¨NF.H^ƒ7KŒž’6Óá;ë뾨Ö3Ýeöq™†yú'QcÖqxEœÒËá¡žNgy!@=®3!j¹š }qÕ˜Á­Qi¾ŽíR1èçíj™v ª&ˆ Á‡†-Ÿ£0Þ@B0%ǯ»ò¥0/:ƒô3ÜEáMzM8š5î;3áæÓ8Y‡¦3¬K´Çýñâ<—YÚwP$i^V¶@F ȨAè©Mm Œ„²N*óžoÌ30M'u«¥ù07Ï:[GEYÙú@`ßL³è wq¶µ‚“m^ÄÕ.5¯ß°ÀnÍ ÌQˆ;öÇ÷yYÆèfOxØuÄÛ °öƒ{È'˜[|£”¿E¦Ÿ˜3Øk'mÖ:ÚàmU”­JtõR‚ô”ÄÛ,/¢Sj í`Ê.e“ðô€ÇÕùlêsΦŽKkÔI®³þ¨Íb†ˆïóóš;.‡êaÂøæ3e?Ee~ÒÍZ?Ím¦ÑhJ™ÇZ7™ø©¶wc°²1Üj»[Þ"C}hNK@¤ù~º÷ØÝ ²&Î̹ڴøì`2‚\·õ×.AO-»¦Ê®;’_Œ ºç¢îS­ïµ_vQ£G_¾ä?L?ðáüSíòº2¿˜£É¶N£¬*¯Q$ÂCÌ÷dÿ8îŠ"CÂÃ-XሕùÆ7Um÷«Æöäb^Žî$5«½w8F+ñ0⬫ ï¢*|wöòÆWHJæ÷‡}OM YRo˜&}kµ‡ßÚ{¸ŠÛÛŽuP‡!H6Q¶¿Õhˆ¿ë¨ˆ£º—‡¨éËtGÄ]êýßwöûÿIpGŸºgzêAZ+ ­QÚ„Ðã F”Áàrlû¿òb öendstream endobj -1848 0 obj << +1857 0 obj << /Type /Page -/Contents 1849 0 R -/Resources 1847 0 R +/Contents 1858 0 R +/Resources 1856 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1846 0 R +/Parent 1839 0 R >> endobj -1850 0 obj << -/D [1848 0 R /XYZ 56.6929 794.5015 null] +1859 0 obj << +/D [1857 0 R /XYZ 56.6929 794.5015 null] >> endobj -1851 0 obj << -/D [1848 0 R /XYZ 56.6929 496.4666 null] +1860 0 obj << +/D [1857 0 R /XYZ 56.6929 499.6076 null] >> endobj -1852 0 obj << -/D [1848 0 R /XYZ 56.6929 433.6488 null] +1861 0 obj << +/D [1857 0 R /XYZ 56.6929 438.3307 null] >> endobj -1853 0 obj << -/D [1848 0 R /XYZ 56.6929 370.8311 null] +1862 0 obj << +/D [1857 0 R /XYZ 56.6929 377.0537 null] >> endobj 634 0 obj << -/D [1848 0 R /XYZ 56.6929 332.0288 null] +/D [1857 0 R /XYZ 56.6929 339.322 null] >> endobj -1854 0 obj << -/D [1848 0 R /XYZ 56.6929 299.0792 null] +1863 0 obj << +/D [1857 0 R /XYZ 56.6929 306.8426 null] >> endobj -1855 0 obj << -/D [1848 0 R /XYZ 56.6929 263.5784 null] +1864 0 obj << +/D [1857 0 R /XYZ 56.6929 271.8119 null] +>> endobj +1865 0 obj << +/D [1857 0 R /XYZ 56.6929 207.6131 null] +>> endobj +1866 0 obj << +/D [1857 0 R /XYZ 56.6929 125.3906 null] >> endobj 1856 0 obj << -/D [1848 0 R /XYZ 56.6929 197.8388 null] ->> endobj -1857 0 obj << -/D [1848 0 R /XYZ 56.6929 126.0307 null] ->> endobj -1847 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F55 970 0 R /F23 682 0 R /F39 863 0 R /F47 879 0 R /F53 962 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1860 0 obj << -/Length 2811 -/Filter /FlateDecode ->> -stream -xÚÝZÝoÛF÷_!àJáf¿—D8±/pÑ8¾ÆA ´} ©•ÄV"‘t’þõ7ûE‘%ùôå Z.ggggg~óA“†d–„YÊg*åH`"fùæÏ–ðîÍñ4q ŠûT¯.^þ›©YŠRIåìaÑã• œ$dö0ÿ5ºº¿¿¹»¾ýå2¦G¯Ðe,0ŽÞ^Ý}¸úÑÍÝ_¦4ºzsó9gˆ”!“8º»z{s}ùûÃ78}‘ fF–¿þŽgsü‡ ŒXšˆÙ'xÀˆ¤)m.¸`HpÆÂÌúâýÅ:†½·vé” -KH¨šÐ%3BP*(A¤H2ʬÞÝ?ܾ»{pŒ°=)’"ÁˆšV¾'ŠûTaã å*³oÌÇ[¦ 1–ÐÓ[¢‰-YoK¸fFR1ÜòC­ÝµÞÞ?q7ªÊõ7ÒOºt£bá~›•'_UuãF›,_¥Ÿ.j÷›gÛìqí'«E·…Dæ„`ˆiO0*Jeγ×ÂHxÂç"ñ$Y9ŸàçbBñÀFžg³»$Iä¥Ü´M›­»£Î×m]Ìâß0¦Ëv—5EUº·ff­Ý¸(ëFgsGmìk°|®Y»n^LÙ‘ˆ‹4HùR7ùË2Ûè¹½çYÌ$EI!&v¡‚t‡™8e(5Íñ‚P˜H=˜(Y]Æœ‰H—ulÌ<7«¬1#¹Ùu•Í‹r^zªƒÓ›Épz³š¢luíúÝ>U»?A¶hônĵֻ§0¹Ûã†Ä]`4§]eåRå²4*šÚ w+«y˜îySí¾ø©V»§ÿ›¹ŸmU×Åc°†á¥0ŒRŒ¥W$0÷ŒU."J?¨¶Þ<Œ þ×Y &_L˜oLȆ”$#eœ¶ãA*«^UízîäÑÃJæ4{¬«uÛøÙmÖ¬ŒÙEa@Z@t]úTÇÑ¥£²è2ŸB‚’TCžëÇv¯ýׇèBÁqÏÉ×QM8D…¤„4ð½6‘%õ7ióLoªò»Ú?ñÜÐÉ3HTÁÚï”pƒZdú\ã«H Æ÷ÎÌ…Š®Í’¥5{+Ñ.Ë×™ ÖªgEꤾÊo_&vdà|Š…`ô¨cç“œ˜{Sé‚6!PUý°>ýX… žÕ£0tC¯+¥ËܱÈj]7A΀9c‚=ª&¨¬ .Ò -Ñ tsrË@4±å ÍQˆ&‡[þÔ–#Í8tú½\x/Ý·¥wêß°À¯åVn¶¬|*äì´øK9®W¸V&å9½ö¨Nè5PY½.'ÒÇ$•g¶ D[ŽÒÇD©Ñ–ßH¯Yx‚<ØóÚ[ìº -^(ö®>J"!£‘]d¨›¹Þí¦œN dOvô’¸JMÕ™KêS¿¤ŽÊ^Òf -9à H°Xg7I RKÂåiÁ:ª ɸH¡HNE: 2µ;)9‹lÄä<Ú€MÛsm-µÎ÷Èh¨ ®²lY›v0¹±Þ’úwî!äÜù#$…Âx®Ó‚Ûk"éJ!AttTS‘\"Â;6²±IžË’j7?kNgùÔGIÞçWHÍÒq>Ò•>Ã@7(}6yóù9骱‡•ÑŽè.§ÞVÁ!›jä·ï_m“& a.ÀÐ!ž3NŸÓè¡PñõOµyâŽaÜãxhÅ4âļ TæXooÞŽåc ?!“o'_Çð´| ÜZ5”ïúæÕ‡7¿À!¢xßpѺÎwÅ£žwð9QäBXÑ‚Aý³¨ó—à¢hõ¯gä4ÇÀ¬˜*vëöD' ÎY¤+ÏfšÿÈ·m}u%ÈO‰ÕÊ5ð ûá¡\¯}îÓLÐ+ÂÕX¾ÃÌ ò;S™Ç?ñÜçïwUy‘ý©ÝL6ÊÊÆ)¼°Õ+ün b-¶kOôúþCí[°·žÀ¦æ]½Õya -=1‘}ëÄŸË>¡R†ì›³¾|*l̤n êÛAe¾`žPUn\¯ÇL¯ü l76äswCkäw3[)ºlÜ„ ö0È÷a×T{ÎA‰žEà\‘£½]¸™Â3-ünméûNœû<Ô08`ÿ}`ëNÑëX™S¼ð©ˆOo â…¾V¸wǦ'²yW„Ô%‚ûÓÎ:"³á¢ÅIOìSwÅŽÊúâö¬/n«]sèŠ%\œ–+MÈ5Ì9 TR9ìÇ¢nB“Ñ$vð±Õ»BסéKf/ß8òÈÒ½/î©Î‡¾ÛÅ(8Ö¸²-¥a—ÓnfG‚¿S åçî´GuâN•½Óz¢ŒR ¨âä–hbËQ¥$‘Ã-¾T<Ú¡‹RC3ö©¡Uc“5p­E^ŸÈ×Mi.9ݧëU;uq,ÄF† ->Ø‚þ\4 -'– €• :NŸæYb¿€ ô€Êt(Àhòrë0ðòC·‚s† ]Ld-)}µ÷>K¨þ%…Ä0F‚aa~×Sœø–°`4÷w—±$ÂÇ’F7ª¦ŒŠª$ ’K»ùìã OSæ¨zc{Ú½ìÄËÛ ]Wp¦YÿXsÜgmÏ%iÿº¡ -¼DrD¡¾ ð¦ ñ„§ÿƒK„Ç€Wa¤0 ÐÜ%èêãÝìBí§h¨¿®,àþdÿg!ø¶ÓèÍQ †Œ’¦„{ ÆžpîÀ·?>Äì÷YŸbB!§I‡Ó§rÿ9æ-DÂo[k?Sx*°”?Ú2ˤ¾ÍÊŒ5Mtê(dli§Á¸u4C)9(ðÁgž¦ïN\˜ç«xegÏ”AV96çÌUNÛõ,÷`Ü–¥ë]ÁLÞT®Â¢Ñ¼Òuù]ã¦u XŸûj­Öyë8Í_À•¾€³ŸÄ-ÑHj7õ÷æ“ZØG×mûdb‚BJDÅ*¤GûLMkyBa€,‚ã'ÙÛT qÙÒÅ)aÚ©6¾}²¯¥‹Wb¯óàoFNŽÀø©Xë¥ö‹mì…—ºÎ³­;a¬ŒŠ\‚‹˜aý‘ëãá°ç¨_çúG4ÃÄRšì%rúûž…{þê¿xÚÿED1íX§ sÄ̇.&ðrF«¸ûã¨@דþ¿ñùjendstream -endobj -1859 0 obj << -/Type /Page -/Contents 1860 0 R -/Resources 1858 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1846 0 R ->> endobj -1861 0 obj << -/D [1859 0 R /XYZ 85.0394 794.5015 null] ->> endobj -1862 0 obj << -/D [1859 0 R /XYZ 85.0394 751.3856 null] ->> endobj -1858 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F55 970 0 R /F53 962 0 R /F62 995 0 R >> -/XObject << /Im2 984 0 R /Im3 1108 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1865 0 obj << -/Length 2226 -/Filter /FlateDecode ->> -stream -xÚµY_oÛ8ϧÐÛÉ@Íð¿DìSzMr^´n/q±ìîƒbщP[òZR’~û›!)G²e÷½C‹¤†3ÃáÌüfQøc‘ÒDn¢ÄH¢(SÑrsA£Gxw{ÁÍ´#šö©Þ/..oDb4×ÑbÕã•š¦,Zä¿ÇïIB&ÀÆó«O×&S.¥ÐñÕ—/×ó³Á\Q JãOWó¯WýÚ—‰áñÕíõýäÏů׋½:}•¨Ë_¿ÿI£4ÿõ‚aR½À„f 6R ¢¤ÝÊúâþâŸ{†½·në˜ ¤J‰âRƒ1$‘ܘqC1’0D‰¤„&0ê ÅÙ˜¡:*4ԴŃ^Þ(Õ£dŒ¤FfŽ¤­íîІiRõ%éÕè%zÒLBdbôº·M[äp'pMtìï’œ$Àý@ÇÖ\“”™$e«¨ËeµÙ®mS”~¾ÝÏÅÚ>Ú ²ÚÚ]ÖUY¿›LåqÝ.Ÿü«¬Æ§ˆ—» Kc›5>"®«å7 M jžà½Û¶.êÆ–{‰ºFÓT)áäS0¸QŠ;-ª€Gn«]S“à HQƨHE8Uéâ"u’Žû#E54©b§™ù˜…á~ËÙ´Óoª’”¤œ&ý»ßw¥ áIÊ# L^ˆ&˜÷®RiÉœOR¢—á*?O¦šÅ øåñõ‘m4°22ÒœCÞp‘ý1BÁÖÂÓôÆî¬oFp —³ >Tp ¨¦ÀwÚc쎤y?x¸ ZHiÞTjㆫRÇ‹rÂhܾ¾ógÔŸwºóé2Û€xª¾¡ˆRIòæùµgÝeþU”ñ‰›0Öy‡;pÎüc¨[îU€°šL%ƒjY™ûAm›nW5õf)楇qº´5QegëªÝ--ÎôMá^ ûÄ_ËÚ¡“×–Yc×ßÁ h ÉE& -ìRÔ~óÆfeàêS‡Ù q A!½ÒA"ú"'å,T[ÌhžgU‚ -ît<Á$ :8Ý ziå ÷ ¯“›øåÉ–#^ ¸"™‘?öZ‘òη‹ÀÒ h18xŠyÑ­8°É ',õ¨®­3ÌèÊœe¿>ÂÀAŒ™nwVø“€9ÊùБ ʆ¬i×E‰7ŒXðBŸ‹ª­=ñ¼°š#€á†²jü -DS…žñâ§ÇA‹ÎyaÓƒõóm²¢tn‹†{^_íàó\Ä@õS‡ñGøy‹ð𵟿${m vš¾•ú€œÛCõÐË•=§ï’¥À#)ãûšûÙíüêãýH.¡X‡µ‹#œ¡ý8T–.OµÐ§Z¿°ïK¡*á‚AUòXfXoàËú©j×x<8.>„èT~äò<—UÙxk¿Ç''xƒ54Ô€9¿]û8 @Ó„§]Á·+óåXë 53¤Ç@ô¦Ú±FèÃÐgùIô`i°vz½úT§ÑkO.ä_¿}ÜH5ŒÛˆ€å„&зäÞTÎðË–ü…õ°Ž@ÃßÉ$‘ñISq,׌:o©ÑiCuDÁN³ù!ê××wŸŽú0“NScOt¬ÇÀr -Ò­†0(òÔÌÌ«—ò¼yàŽ$ Âï+24 )ÙöÍ]ïQ¸3wmËÜÐqåÕ÷ðÄ„’ë-èPz5®…¨-sû¥¼´Þɳ„¿„RPùo_ÿ<¿™Ý~½»Bƒ/fŸç?N‹®E\%[3ò=aÀJHB™î:mÈ -¨écëó v"Æ•µëG¤‡"XkªÊü·´Wÿ¶ ‹¹­—»â¡ÛSv«Ðˬý͉@°¦÷H>ÌÙ>—í›"^¸ÄÎ Whб—aíùs‘w_Њž£¸ãËÁ÷cE¤f]#ä©\团,êÌQ…[½³« {ÙEð§¬l³õˆq™N±JÔý>ëðö!Â8¶1Þ |åz3û8ò:Ä°«•šŸó‘‹/(JŽã¼#B‘—¶Y^:?!à«ãð†ÆNéä¬ô=Ñ‘øƒð†"]¤ñ‹ÑêøÈ#qÑ{äÉ4Vgà'çÍÓ#:mžŽÈ™ç9Û]îÚ2˜h[äGÒ+yV=Ñ‘®¥CˆÑWaÜD!ð“Ô´ÈÏ[¨ÃAp{1Ú/Ó½oþôÿ8Þþ‡#!Y¥é _€$M`³î”ƒ2Æ/ -.¾r¬û¿IË!endstream -endobj -1864 0 obj << -/Type /Page -/Contents 1865 0 R -/Resources 1863 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1846 0 R ->> endobj -1866 0 obj << -/D [1864 0 R /XYZ 56.6929 794.5015 null] ->> endobj -1867 0 obj << -/D [1864 0 R /XYZ 56.6929 361.2723 null] ->> endobj -1868 0 obj << -/D [1864 0 R /XYZ 56.6929 210.791 null] ->> endobj 1869 0 obj << -/D [1864 0 R /XYZ 56.6929 130.947 null] ->> endobj -1863 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F55 970 0 R /F23 682 0 R /F53 962 0 R /F62 995 0 R /F63 998 0 R /F39 863 0 R /F47 879 0 R /F48 885 0 R >> -/XObject << /Im2 984 0 R /Im3 1108 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1872 0 obj << -/Length 2455 +/Length 3024 /Filter /FlateDecode >> stream -xÚ­YYoÛH~÷¯ÐÛÊÀ°Ó÷ñè8Nƃ±ãÅIŠ²S¤F¤ìõþú­¾(’¢ä³0`6«‹ÕÕÕ_]-2ÃðGfZ Ì Ÿ)ÑÀD̲õž=Âܧ3x’È”ô¹Þ?œ½ûÈÔÌ #©œ=,{²4ÂZ“ÙÃâÛüâîîêöÃõ¿Ï*ðü=:OÆó›‹Û¯zÚݹ¡ó‹OW÷ö¾&mÙ$ž¹ýpyþãᳫ‡N›¾Æ3«Ê_gß~àÙÿã #f´˜½À FÄ:[ŸqÁàŒEJyvöÏN`oÖ}:eÁ4šª P2#!èÀ É(s6¸¿ºò[½øóþ³ÝÏ»¼o8<ƒY¤ QŽýËÇËó„<‡í1Ï‚öì#É¥†Ï,÷o­ŠŒ†¾8þÿ'~A\B1Wé:_$Ù*Ïž²ºZ~ÇkøG§ÿ[Wùxz[-²1­|Ùž=ϛŤ0—~æpS a.%ŒÜùy¼¾¿¾ýàË„3[¬‹ªhÚmÚÖ[Oú’/s¿z•åžt“V»´œ0‘Q «x{ À2MÒ1%L!ª¸ð®óõá÷Ï_&dvx‘Žïºjóm•·^“ûצÍ×¹¬«¦Þ¶Ån½_—#Æ% r8Eœ*/üNƒ{ZƒÛ,Hbås ¦=¢À/Ç}í–ÿN©ò#{(~ÔäÛç<©u†¬KOصEY´¯SFÂÑ8ÜûÔkUoš¢‡ >ÎÀQ¹VHi3åÍ4§‚Ãx2Øa„¯¤'ÁÇ:3ë"Ó~ßì÷-ùé· úf‚8¡‘$4õn›åIºXló¦ñìÃ%’ZFöQr6!ÎHK!«…~ñ˜,‹2Ÿ+R‚ñ±Ø§7Å>å¯Çdr…4Åj,³ySfáD&¥œŒ%n&$&L‹¢bèÈÀý„`ʱic$ø_Ýèub‰¡ÍÀcÔQ¢á –+ØcæWÒEFk=”’NbÒé€8PR‚5d¿²U±XLlPÄ“ígõzV‹é°Ä5â63<ïÃÕýå—뻇ëÏ·ÝWGcSŒ$£ˆA) }ØlÜÂbÞ®r?¨79Þ¢®ÂëÒ?SÿQFHŠC„…`Äç×m˜Ø„&_ä=ɇZSnà€¢i¦u†‘Öå=OŒTAh–{IÃ:¿¡çb‘/<¥ˆ{(Á¥eAaŒ„À4"˜zÛ¹Sæi“7°+Îôüz9¡¼ÀHs•?fq†˜Ž/¬’†JÏõ“ÓJ°—¢]yrU{JĆ#–E•{r½±D¸œÏÔiû¸[çUÛ@&fÄ·þƒÍ¶bàófeÝÓÍ6;XeûÄ-½EG”a94ˆG…Í!»uo§¹è0rž×{úœeú³ ¯{ýGÜEHKƒ½ i„2§A{ „u _¯wU‘¥­…"S"ÜŽœ¦LÉhKŠiÒŽën”úÇÃåçÏ©ò¬-Îɼ®Àê+ø²ZÕ£çÜ›Æ}¾ƒ•ªÖ)±Ð J ¡Àç‹â±hS› èTlدö_»¼iƒŒ8ÓñÐKÕÂø?šþ÷Íð“[ýa‡e9XhRõÆÃϺ{Wnv![¥`“Ps®wMàüà à<Æ–Ÿ¯!&øÇTî‡Ò™1j¬¢?÷G‰I_¤ï6þiÃ`nö+‡ÜïU­ê—*l¼ Ÿ.}Èf'_¥ýR˜³{1±Tóç•ú`ìý°™¤úŽ1}ÜuÉæ,ÅÇd4dóE½ÌÚ§ ¯êO÷óNP›fm ®[ì.X¯» 1´[¡ Ü_|ª¶Ó—zWÛ ¨ËöÜÝ X¶+ÃäÎBóí–峫™î.4BÃA‰D -zº+ésÅû‡Ã¶¤ã²ëv͈èÇIEš`G›‘¾†V—›Ó*v\:ë(ÛQR:Tòk“OÞC*ʼn–i ü†iûÔe=³+uß[xf¹Ÿ°‚|x œ>–gø„ô‚gUFždÍYJk>ÒÍ®l‹M¬@ŠªiÓ*Ë›~½æ6ÿmWÛD×MËÒû‚uÞ¶u ÞE·eˆSµKÙ}'¿¾{æ£"H2éÙ±ìm‘ûšg -£D¹rá Œö¹Žc´ãrͦ0Š¡$GÚÚ@%A˜rvZ¿ŽkBÁá•DŒNÔ60¤óÈ• -xï¡“˜€$b&b¤%ÆiÇ5Yý‹=wbØþóE¾Ld¿Mõ¼NF‘¨å»¼ÍÞÙ`î.ɦÜhpóp øm§ÁÐã:†ÈåÀðôfÀê_F À9´ê‚ŸV®ãšÐnpºÐ*(L†êE‚QœN^– „B»†¹2=PËgÊB¦J—)Û½p.Ocú‰£'B#M>8úPÈŒtS -"²Þ_VBiL ^ ëÕ¬:K è0’ý•|D„ê)‰Ã"ù„`u£IÔù¥°õ%Ê×gð„|»ð#áÙol,Eö{B¢b5ØûÂìkN;.–ûɉd¤CäW}ÝCע΃"UÝF£Ä¥5^ùŠ¦=êpÚØxÈNû[鸻E&çmÍ›¡wM7ð5F–ã¤^ÓbCïa¢Ô@³þíà°ƒPóÎ×üm†‰-œ‰å Œüí„fz7±}ÓÁÆ¡3³ÃuÚf«<|”²Boóuhu¿ãé‹”$þÀ%˜ž3<ïaÀgzð™öåÈau® „¢7e(›Û{±ÂÂ^9¡örÇ.Ô]0Íõƒ–oY¸¦Þ¼J±~Ò½û Kµ÷AöÆÄë  ­j×åéð#Œ'ÚÊ’‚S0E„zæÃ’ÁÏe -®K¦Qu3¸ÅéC¯(:rÙÇ #ãì B; ™Ú;û¸Á½þÇ Õk"mBÇ~¼dÙ{Õ ‡Á]ñ·ØÜÿnËm]¬”; sÄ E¥ì~ acÕ»Ÿ@uÿ‚D|Õendstream +xÚÝZÝÛÆ¿¿B@JÖz¿—Šgûj\_®ñ ä'Q'Ö)‹¤Ïî_ß™ý HŠ’\ÄyiXËåpvv>~3³{lFá6‹¡"‘3“H¢(S³åöŠÎžàÝÛ+æihѧzõpõòÂÌ’h®g믘Ð8f³‡Õ¯ÑõýýÍÝ›Û_æ ®hôŠÌŠÒèÝõ݇ëÝÜý<áÑõÛ›÷ð(¥Ð@dLÓèîúÝÍ›ùï?\Ý,!BØèËlösG^ÊmÛ´iÑmý˲hëüsFNyN‰:ï=¢Ó>ˆRO¹À¹õ:8ZoÊúëõí¯ÿ|ûËÿ#ûkFT".Øÿ@tÆþžÈJ½tR+Õ—š.ÂœÔ˪\çO‹uúÉÆ€åRœ®#:–n *­ ¥Ê ÄCwqòõI9%ÚÄfZ¾[ 8öz €¿ˆD9¿]àÇ¿QÊŸÚ}ÚäUéÞâL‘¹q^ÖM–®5zÖàóU¶NÛ¢y1åeL©’ åˬY¾,Óm¶²ž-„æ$Ž!­,ºôà73± .H‚ÉÌñ‚ôk=`f¬æ )T”•u¼ Ÿ›MÚàHFn¶¨ÒU^>…—žêh÷8vA“—mVûýjÏÕþ£#H×M¶q­³ýç0¹Ûí†øݺì¿Ü¤åS†ÊI”7µ w++>¬r·eSí¿ú©6s§ÿ›ºŸ]U×ùcð†¡Q% ¥Ú+˜{ÆÇ*W†0£BT;ï(¨ÿu^ƒc'‚I§Æî»à1T@F³cÓŸñã˜@ù0«ÞTm±rÐñè%õØ™>ÖUÑ6~v—6t»“¸¢…¥ÏKŸê4²tTZVSЩ QÁ‘WÙcû´(÷‹chḗäë¨&‚‹!ZC.Hø>Ãœ’xKâ`•fÛªükíŸP<7t2.§àmÇ6eRAuȦ÷56¥"F yf©Lô?y²no%Ú§KŒ:\pm# ÚzVl N¨­àÁó²ø2±¢€à3"¤¡ÇlábR2´›IÆ~¸ )ªê',ˆéÇ*¤ï´%è +z]Ùü\.‹´ÎêÓ.6§±¼à‚=ª3.¨¬ ®ª© tsvÉ@4±ä ¾1„3¡‡KþÜ–#Í8tú½\{?9·¥êߨ¢9¨]Ê­ÜlYù"ÈùiþŸ èØi½Båp}¡fìSÑk ²z}š¨ãD_X2M,9ªccFK~'½¦aà –ÁŸ ï±E¢PB}T>B=£»ÌP7«l¿Ÿ +:EâÙI#Ið6 tÞH}ªÓFꨬ‘¶Sø+e@‚u‘Y’A¦ÖLêó‚uT’ p‘Ccœ¨d(T.4j÷˜)¥ˆlÆ”2Ú‚OÛsm>en¸: #RA^éSGÀä>äzKêß¹‡PmOÔP*Œ\§·ÖDÑ•@è訦2¹&Lvl,dŸb+(Hªýê¢;]äS8œ,$eŸ ˜ã§‡z„ ›ža¢4=Ûeóå[ÊU±‡M²lѧÞU! ›j·ï_}“Ç‚P©ÀÑ!0tœÈo9ݱúŸ:ÛYt}–Ç~ÌcèN„䇕qgïnÞE B¥ãï(bÇñ‚ˆb[)3ñÍÍ«oÿB^ñârv½ÜçÙªщ&W +.¸Õßòzù•lþþ •Í)ÈS”Hj.äû>ÕÈ TòÊ‹%ç_–»¶>Æ0Lš±ˆÇUe4ÔzØ%aúL@Ìxî+Ä>&]G„/Ò™›IWŸÓ²q  +/l' ¿[è^ó]á‰^ߨýì­'°%¾«wÙ2Ǧ&[½˜¨DÑK©¦—*Qèš¡—bÔû<ç6ÿj7˜ì ²¾à¤Ðan݉Noü l·6ýK·¤EùÝÌÎãKV6nÂ%~,†°ßTÎA‰žEà\‰£½]»™Ü3ÍýjméOŸ¤ô5¨a¦ý]ôA®ÛEïÜ +wñ—%¾ÔìN·‚Ý›žÈø.eLh +»] G‘h(dAгáا:Ž• ÇÝÅpÜUûæ8)‰¡R8+W škX@Úäz$ØyÝ„£F,íàS›í󬇒¾}öò³ `-?Äâêr¼]jùA`›*{¼4<ë´‹Ùô'm +PœÁ/Ø´GuƦÊÚ´žh©L ª8»d šXrÔRÍôpÉÍŒöy8Ñe"Ž}™hÕؤ ˜5_ÖgjwlÓµä‡Ò½j§ 'b(rtèæƒ/d_òæHáŒÂgP ¡\Ks)Ý‹ØÞ€Hø€O+ô™»+÷^~¾ÕA:_CNjï]K1záÇÃZíÂ䮧¥%ógÃJðâš/4ƒr~¡yts¤`*¸ŠgÜ@âL¸ ÑÙ§¬ “D8ªÞØîö ;ñòvËgo*ØÓ¬¿­ÀyÑgm÷¥yßÜЪ%1 b˜d¾•|ظP2Ý©ŽÝœŽ¶iî/$ŒGdxWzgîÂøJÕD¯nïÞ¸o7±Êæ‚FŸç\á+ä¿Œo: ðF‚¯î#Ñ*þm5gÊ·f¢L|8/ÅÛóÂoê~ÖmÓî37Þgž¸ ×#‡•˜€¸Šw öǽLÄ0ŸàáîáŠôÅÀÂ7MQ‰ òÜ­-3lÔ.ÜztTÅÞ_.·é—E]-?W‹ 8èžõ>NPjB¾áÑ$å±d(àuQTÏeèÅzÒ3ç}2–a'¡³jCûÕî†9Hm +4.º>s¨…q¹Ï ׺;ª¬©O"$§s¦þ.ÉDB¤áòpÞî“S©)1x«y"´‚1Õ±ÏM ýšá¡cº¶àø³ý÷ÎÂåm7æÑÛ“ ‰°´ò I¿¤t@ÙŸMq4û¬Ï€&Ó‚é“°Í$>€&Œ»{[<ƒß¶,³eV×)6'í`vÈgq üy{ì0/µÀ +OÛôßH¨•7ö3ÀÈ´F4µx¶TâaB÷b1±}XÔçöV‰÷np pRã°Ù¥#|ÌÜ›Mj Ãh»n 7ó˜-SDHæoD¿~snSEëßw _Ùå¾,¦D^fÈ@2ÏZBóUäÛ¼ Wsðw%™t½ÊœÆŠ¯îzÞÖ_¡ºÝ:‚ëû[âfoç,jÜUâ×ÙgÞ0~Å:küR˜'™ç êIRí…€ÁÊñp•*NîÃæPðùñª¯vc§‰ ÌÞÛýÑÞ¤å^/½Sìšjï¿ö‡Sc:£@ŒaöíOÑ~l 9cçûªÜÚÆ)­ÀË¥ÍÂÏ¥›¶4L×ín‡N)iä?èÖhK\Ñ7tVˆõ”Œ€“(ÆGüðÒ;5”½Ñ]ÕX3@ÅPÔxÕÊâp‘ sÞèðr‰9àÆÏùÖ-ë&ú2à³³5ÌWÞ›ÝßX>î§È›¦È¦lmÍš¡œÏÈÕvVöª1¨‚UÁA!Àé27‚Çâ¥d@#Æ'µ.AmëŽIëÌá‹‹ÝÚËáî®`\Ç}òW_œhc3rë_¶šêà ++­¦%WãZïÈúNµ—Ê,—UØwHTF™%IBµ> &*ÚeÁ?ü§t‡?”†€h'º@¨ø Ižy#/4 cb¬âîî> endobj -1873 0 obj << -/D [1871 0 R /XYZ 85.0394 794.5015 null] ->> endobj -1874 0 obj << -/D [1871 0 R /XYZ 85.0394 752.1052 null] ->> endobj -1875 0 obj << -/D [1871 0 R /XYZ 85.0394 676.9839 null] ->> endobj -638 0 obj << -/D [1871 0 R /XYZ 85.0394 637.9396 null] ->> endobj -1876 0 obj << -/D [1871 0 R /XYZ 85.0394 604.8838 null] ->> endobj -1877 0 obj << -/D [1871 0 R /XYZ 85.0394 569.2766 null] ->> endobj -1878 0 obj << -/D [1871 0 R /XYZ 85.0394 503.1887 null] ->> endobj -1879 0 obj << -/D [1871 0 R /XYZ 85.0394 431.0324 null] ->> endobj -1880 0 obj << -/D [1871 0 R /XYZ 85.0394 247.0209 null] +/Parent 1839 0 R >> endobj 1870 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F47 879 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R /F55 970 0 R >> +/D [1868 0 R /XYZ 85.0394 794.5015 null] +>> endobj +1871 0 obj << +/D [1868 0 R /XYZ 85.0394 752.2237 null] +>> endobj +1867 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F55 970 0 R /F53 962 0 R /F62 995 0 R /F63 998 0 R >> +/XObject << /Im2 984 0 R /Im3 1108 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1883 0 obj << -/Length 2199 +1874 0 obj << +/Length 2332 /Filter /FlateDecode >> stream -xÚ­]sÛ6òÝ¿Bo'µ €HôÍuœž;‰ãFJçfš>ÐeqJ‘>’²OÿþvñA‘dO§™ÌDàb±Øï˜M(üc©ˆÒ\Ob-ˆ¤LNV» :y„½_.˜Ã™{¤yëçåÅå‡(žh¢W“å¦G+!4IØd¹þcú3Ñdöçò×Ë2êárFO4ÐG¤/wï¯Éõç»s@•'ÈJîP¯îïoîÞßþg6ç’õÙ\R:ýtu÷õꣅÝÏ4Ÿ^ýr³@b7ËNŽ¾¬ŒF(Ä/þø“NÖ ò¯”D:‘“ø „iÍ'» !#"EyHq±¸ø­#ØÛ5GCº2!’ ZŒ§2k˜‘˜1@Š#\ˤÓ0g! {,ÔÈüÉéWö0#‰[¥=Uu;Ö†æDèDMú7žðå‘|õ­©c"b=âk‘•kk‘UµÛ¥åº±_me—×÷vá¹¹ãšDq¤F2Œ®æŠÊN^6m–º[«ó‘Û»÷v¥ÿåXXg›t_´ž»²­g,™V…lӲ̊#sïÜq°à‰O9ÃÁ„RÁß°nëëz,cÝßÇWª˜ÄŠE¯_é‘Wöµs ®†WÞ”éC‘Y™Ÿ³ú¡jÜGQ=>æåãY%¨„ÂȽª„>Öy%tXF ‡°‹G"Îôe‡1[‰"2¦ñ€­·ž$I8Üçžà©ÆM¤Ôj(B¾³Ç(#’‰øuµuX½ ¢…B hņ·~5¦SrÚnÝÂéikR€.©<¯KC0ªï¨KO0 ËXý#ÐfH™c @mÒÊ—” éÝH|öo”òÇ}¶yUZ BŠŒs\Ït|^1Q“ŠÉwSŒ'ø†bÀ\$Ö,ùÛŠÙí›ÖŠýà]¢¬^œ&ø«¦eºËÖô’·Û£údÎãˆÄ‰F+2¢¥´i£3˜'ä4-«Žíܧ­rÚd+c•¬ußm éÄ®sä@Šie0ÖYmÁ›Ê-FYZNwYÓ¤îÆç´È×Þ¢ðmk Ü°_­²l ]BÄåôvc¡e0u¤%aŠóó¦€Á5¨V©„ÄRÏ?µuGqÞ'yjl¨Á„'Œo>kì¹`AèÑœql–Cå‹ Qjž²UŽþž­ß¹Ól˜4ú’ÕA]®W¡’¡"/yQXÚH¶F碪þÂÎØ´¶ëÔn¢rÍbU¤{LQ¸FÀ_«ˆÜdõsV;¾Û´ÍvYé¨cmïáÒîCf¼ -Iq+'º  }Öx—Ó=CÏ0ßžÂzWÔÆ‚Ÿ¬+7݆uUq’:жj°yˆ¨BNK ´¹® ™màA¯ ܬ6ž˜<¡{7=žæF0:”%ˆ¤¦wU‹g©öÑÄ‘Ði"„]›;„6ÍÍ…°ÓlS+ïÚîCÙ!¼lóÕÖî9L G 8&*GÊö…ˆ¸G­´ù -„Y…±^{Úš;ÉÒeï Æ;£Ó[×á5Ûj_¸®n´ìmªŽM$Q9Ümúì@Y™Õ©»Øâv­em_ Ë9ìMÓ— !Œ(7N)i„ù`N‰ØÙ@(”æ©È 7&-ؘ=aÚ쟰5ڄ͇C |9“ÐÆIöFüRèÖýhðÎ_ž˜sm3€´\­wy™CÎN[/É—lã´Y®Ü±Oi¹¥Y5DnJØШ^yõ ¼£ HQBYÌß«ê†,RÕÞ™ÐúßãCaä)VLXä~g›Ovå - -é8ê -²ªÄ§®«¬ùå!óÎlýÀ‰Z[‡"ÄÏ@ÝöqJBþÒAóíý'Ì*Ó8Ý{ÿÙ·y‘·‡clê½R­ÆjåÜß -¾ô×smÓ(ü®öµó ¶8XIÂðû’:@ë6åVÏùÚñÙ vé‰ëa§ß67Ã"u/ º/µÔ$¦R½Öä Ô :PâY$¾C“g Îûí‹JŸ3ì5‹“ãů5y< ò¾±M*Òëë4û°×O°Ê€£S=4â"{>æÄÌZÎdz‹ŸÆûa—r¼k™³R=‹Å4hta‹›{ôêãâs@è@lmóJ*á?æ&wܘãätÜKz{¦Õ ƒ¤€RÙ°$ÆÏU”R½Ç'É(‹hœEtÌ¢c3C º7t8Y II;]‚ÍËÙ×å¿?y[‹·e›Õ¥O7‹CÝ3ê54 {òýîx/NŽÊÛN0¢˜è^þœ~’>x¾ŠE¿Å4zœ{Ü9.´•ã«ýi£šðD Ž†o <é¿qݤ{Ҥ¾; -–Gq༇²zj Ï“ ƒá QÈ $‘"ø 9Vsó|÷êSJŸÄiöðO)Ö…Ÿ‹¾÷7‹ë/·÷XØÎè;{!}Ç0åP¯o3ŠHæz÷²q×·¢ˆ€Ùû´X1è²"h­ÿ^³3Àñfx¶ÛI" (Æ/„¸9,zsÅ üo­\´Ç9ƒnÒS—U)d-FÃY“ïò"­í -©£U»÷å¡f†6ÛhËÿg×m° ”$Bùw±c&  -_,“.™Ìe$§ ?ï4îê>¢ŠÊ´ôvdèC®²fÄ)dHu¦µ7ßæ!Ái˜´ùprIqjAÅïrÈÕEU?"Ók3™Á‡ÛgÍüXÄÓYc7ŽÃ~MåÐ:ªî|Çœ»eé )p€„½”öPx.ü%ù«kÓêv{õóÚõpHë';¤\þ`a?\üøcàÈå°«íÚ}»Wäevî¯Ø“GQ(¯Ð.üã¿Œÿd$b%É™çgK‡•g -%fLœ¾/Slnx€÷ÿ°×…àendstream +xÚÅYÝÛ6ß¿Bo•˜á‡ø…>m.›ÜÉ6—lÐm´6½VcK[KÊfÿûr(Y²e§‡¤8ˆIj8gæ73Ë +ÿX"Q–ÛDÛŒHÊd²Ø^Ðä¾½¾`‘fÞ͇T/n/ž¿:±Ä*®’ÛÕ€—!Ô–Ü.K_MfÀ¦7—o¯^Îæ<Ë„J/ß½»ºyyý+Ì%" ¡4}{yóñò ®½›Yž^¾¾ú0ûãö§‹«Û^œ¡ÈŒ +/Ë_¿ýA“%HþÓ%™<„f-O¶™DfBt+›‹ÿ龆­S*Ȥ!’g*(.pBQŒhÆ€H PÚ뉳)=E"¯¦yã¯ùü•”BK—X{Še±s‹¦Ú=êƒ1KS{~S’õDÇ¢‰Á‰ŒÃ[ÃG²ýk½›1“VU/ÃUÚTQÖáÎL+àRÂœק™é(óUãvÈ÷Y¸º.ÊûxÖÚá`Qm·y¹Äɦ(òLó°ç¾Ýº²©ŸÁš`é]½s«*|•">/8áîP{–“Ì• O<’«#škS ÿLÛ¹>¸¦-‚ïó0ȉî2°æŠfõK¹‡ký`þ°‹æ¬BQâOëv±ÆODºˆ ×ÌXù€/V‹OšHÔ¬ó·m +ðÒ2r/Ñ€$ð¦vlÀ#Qª]SŸDAÉ9¼³ßÁˆˆ01þ¾+ô[Ná`FÁK©2_ÁAI!m‚¼)¨àf +)‘‚w1úç€}·õ®N¡^&½ŒEÔc Y‹H7Ÿ@=~õ†œÏ ^¤@ƒþÙÇíL¥oÉMÛ/Ïb\5Ø«PQ—ùŒà8ú +I¤Ôzoú5²é”|šqšS—ié6?ÌÀŒ" DÏü®Ø œÀ|ë€7E½õS¬_^îªAÇAˆ§h¶ì!“‡f{µáà|Y¸‡ç(¡²é^¿ZM@`"ë0é®(—ç)ì!<\8çø3–m‰"€_ÍÀ:Ó(ZHyý vM·«šÇìÕø`#ÕRÅ|µsuÕîz+­PqŸüsr›>®]9aµ¾Pc6ûºÕ +ÃÍ gð,»üÈÏ &7°z`Àø‘N˜A/˜_Ûä>¤Ë H0–~}‚P:ÙùÃÎ ¼9T†r>¾x`™ßˆ5Õ)”J!-£-‚a.ª¶FâƒóâêÒ#˜ßP†Tϧ“]N„Óc§Å`¼°éÎá|çš¼YUà@ìØò½:àçÙNmMò§ó£aÿFPø¿'HB‘OzªàVŸ5£ ÔdV%CfGGvDG]G{T£G¾wóýûù³ÛÕ}i\¶Û;´6ŠËÜ—¢9zÆîê$Íè×ô3 :£ŸŽ*èçËTI¡¨ôõD¾X»ù +lü¨£¯Æ%áYñzª ùF=!BX5ðM•G-ó&ÇÑ + Û‰¼^DéLMŠ~pž‚ã”ênY”¡F¾YØÃjuðméVy»‰¯ü¹p¾ w2Í QH+ôwIó´†,ãéuÄ §R<îõn²¯µ: |'šÿ³.9‘Féïßèr>“òqp|Å4:„Ü7:üxò¿P½Ã ¡AbÏÃÿúž‡ïÒ¸rüÔsñ˜£UüR8ä…E²_}q}óG–ˆW3@'·ñµM=îÄÒ9D(˜·±Q&¡¿;· Ð…\"¥K,·óò¾[ ½mºR|Õ6í®g²qyí09:…8C{ú& ýðf`ô<0‚A¨}+™É‡\‹Úë×7—o>L„x AáÒÁ×å ZµMìª}];°uq_æ>Ýðûf…­Yü­4[)¡Ñ[6xÀ÷ô-`ŸÂAA óc”u±†÷‰žº+—‹©ÒRfˆŽ‘h/Ú±DÞŠ¡6Η'Á‹q +&ÕçÁkHu¼zªø ÿþø¡ õÅÝÙc;¢‰cG˜D9¡êÖѹ¯°[¾ˆXQ  +›¯Ž0ßd¦³ô¤ª ^ñŠóšVTGõt}sëêJ ·Wïßá9¯5:;+FOt,ÇHsPc[Ž8dÝFÈ\VåyõÀïié“CðZ¥E Ên¨îºáNݵ+—ØÐ ÙÕSü +ÇÄŒkïtþôjZŠ0."Q[ö½Qrê¯lPù?MhŒöå›ÿ·ÿ c¦!E7|Z÷ 5¨”`…òzƒêúØè f ˆÇ²ÿbƒ¼žendstream endobj -1882 0 obj << +1873 0 obj << /Type /Page -/Contents 1883 0 R -/Resources 1881 0 R +/Contents 1874 0 R +/Resources 1872 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1846 0 R +/Parent 1839 0 R >> endobj -1884 0 obj << -/D [1882 0 R /XYZ 56.6929 794.5015 null] +1875 0 obj << +/D [1873 0 R /XYZ 56.6929 794.5015 null] >> endobj -1885 0 obj << -/D [1882 0 R /XYZ 56.6929 546.7712 null] +1876 0 obj << +/D [1873 0 R /XYZ 56.6929 175.2854 null] >> endobj -1886 0 obj << -/D [1882 0 R /XYZ 56.6929 448.103 null] +1872 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F55 970 0 R /F23 682 0 R /F53 962 0 R /F62 995 0 R /F39 863 0 R /F63 998 0 R >> +/XObject << /Im3 1108 0 R /Im2 984 0 R >> +/ProcSet [ /PDF /Text ] >> endobj -1887 0 obj << -/D [1882 0 R /XYZ 56.6929 386.1077 null] +1879 0 obj << +/Length 1937 +/Filter /FlateDecode +>> +stream +xÚÅX[oÛ8~ϯðÛ:Àˆå]⣛¤Ú4›¸‹:}P$9*K]’ñþú=¼É’¬&Ì yxxxxø I~d „™â‹Pq$0‹dO0öñ‚8žÀ3C®÷›‹wX¸PHI*›í@V„p‘Å&ý¶\ÝÝÝÜ^¯ÿ}P—ïÑe 0^~^Ý~]}²´»KE—«7º ó)Òl/ïo¯¯.¿o~»¸ÙôÚ 5&˜iUþ¸øö/RPü· Œ˜ŠÄâ:¥èbÁC‚3æ)ÅÅÃÅ?{ƒQ3u΂EHD4œ1% B‚Žl ’Œ2cƒ«/·Ö¿Þ¯ôN7ë/·zO0“ Œ‡ QD±4S6»Ì1‘¡JEÀ¬yÊxŸ¥3¢G˜H긒ªücúÔÕq›WåeÀ0[jJ‘é6_極UeIµ?ÙŸv´uÄ4k’:ôsJOmã¼°í]V_’h™ÁÙñ/W–Ó +k³¡”ÃI»8_ÌÜ*ÐÛÑæF!‘‹ 7,ìã9Oa·1zuým½‘ø†B . sÛ¿¾½¶ÜÊ~Vé>/ó¦sTµ%Ýg[§{™d–ô9.»¸˜1.‘¢RJ'õ§4A@)l€†jp‚¤æÖ¼ÖŸäS8c„øŠ„qÂɼ:¦`ÈeÐÇ£ì¹ôªï²6yg ‚ +Ûéú$ä(Äì z®s ÆÖ ¡c4˜UÓlwEk;gÀÔD LôS+a‰„l¿n¥×+Vò\ÆJÏqý®îJg©CžžJQðh¡^סç:Wbl("IB:ÖbÞPÎ7’¬i‚<=³Óú¡H„a4FßÃÍs€O_fÜf€î?\]Ânðb,›ñŽ‘äÒ‡¢_fê8ɈcŠãÿ[qâ/ˆ (¦6^É.K~hOø Á9þOUfÓáºL“)­x±a£Ig…!¿Œ°#ç› +ÃHq9‰uÿ— Õ3`³úºùõËýÛ k]¶Y]f²ǦÍöí\UeSÕmÞíOërĸ¤N—("ÖÌÖQ'‹¡FÐ7é8Xˆ“6šÜ‚içõa \s™ÙÖU( mKŠm5YýœÕ}j­‡–еy‘·Ç9#aoœÐúÔ±¬ ä°I¬Ph0¨hˆe³%¤rE‡ö«¡l Á\j&’y¦Ó¾%Øï[ðh· †fÒ©UE¾8hª®N² NÓ¢‹e/Á ž÷µÄw/9™‘ÌŠ¤§²c›?Û¼ÈfÄJBÁøTì7ÅþÈŽ?“É éÌæM™ ç™D”r2•x˜‘0 Š±#÷3‚¡,q¨$ty>ò¼ë›‡«ûõÝ ˜&s±iàçƒBšé'Àú0 ã¦¼4êõ5Šîní7¶U å€rˆ°…›ÌºuHh2¨~O’ϵ¦\ÁyÓÌë "µË[©œÐØ-÷»u\åàKg ä~…#˜TcŠnª0„OLǶ)¦Èâ&kteÏ¢åz;£¼À(âÔ+ÿ3‹3Ä"op]úSW€ò¹úaôƒÛÑKÞî,¹¬,Åc˼Ì,¹2—'ÂäDøÆFÛ§nŸ•mó‹»a´v¡Îèøì§Ùi÷4£M«ÔG'nk-E/ex’›[_£Á¡j÷ö—§§ËyVcwG±”g¸)Å…ëžôŸpç.-ö‚æAI$R4|Õä°Ò߆´’]™'q«¡ÈBá ®[FSJhMòiR·«¾ÛÏæêÎòƒç”YÒæ—dY•`uŽC˜Y¦yùd9O¦1Ó;X©l©ƒžSrdh¾Ló§¼uvV SþTÆmç +/ IΠú°œÖÚÀ•tµ+ŽZ;Ú70ÂðÔÿ ÐHò71̱ôF­Ñ=ýÍK:Ô}ªƒ«Ò«ÏÁŽÅѶ†(S#ãéxäW"ÉÞ|¶LŠ‹§ªîA´tmøþúyu|¾zEE–/»<ÙÙ‘®ÉOl?ÍÎbP¯múYbû­í›;<|³Ø‹ÈJÃÊMˆÔ‹)ÉzŒT%œ˜ä +®:^£Aj|½7ÄÁæaý1hÚ£y¯ÑÔ†¶Õ€ÉÐ/†îXµÿ貦u2üHÏï@/ÃôÆÿÑ ç7À~Þ°ÃUQŒšU½±ðÓîÞ—›}@Hv1ØÄÕœû®qœ>¼Î}ly<º˜`?s¹? +¡¤€ +î•PÈ«¿Ÿú½À` ñü«“†Â\õëºÄoõ,«ÿTSMv?Ì•ç¤S“-Ñ\Œ‹ÞHä*R¾N³‡ÛHlc½ s¯ §g0Í`54OZY½·yÈ»êÅÒí¸ÔÆIëˆ;Çæ¯lpµ >®k¡ ÀÛ¶_lžÖý‹Z?vÛ»±O úÐíë— +d¯®pƒ]3ófânPìêòiæšûBëo?¢žÞˆ¡ ‡ÿ“g†áâqÇ+¥wHˆ˜ªÞ?·žëþ_'x—êendstream +endobj +1878 0 obj << +/Type /Page +/Contents 1879 0 R +/Resources 1877 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1889 0 R >> endobj -642 0 obj << -/D [1882 0 R /XYZ 56.6929 347.8768 null] ->> endobj -1888 0 obj << -/D [1882 0 R /XYZ 56.6929 315.1782 null] ->> endobj -1889 0 obj << -/D [1882 0 R /XYZ 56.6929 279.9283 null] ->> endobj -1890 0 obj << -/D [1882 0 R /XYZ 56.6929 215.0111 null] ->> endobj -1891 0 obj << -/D [1882 0 R /XYZ 56.6929 155.9807 null] +1880 0 obj << +/D [1878 0 R /XYZ 85.0394 794.5015 null] >> endobj 1881 0 obj << +/D [1878 0 R /XYZ 85.0394 751.4893 null] +>> endobj +1882 0 obj << +/D [1878 0 R /XYZ 85.0394 670.0469 null] +>> endobj +1883 0 obj << +/D [1878 0 R /XYZ 85.0394 556.7566 null] +>> endobj +1884 0 obj << +/D [1878 0 R /XYZ 85.0394 475.3142 null] +>> endobj +638 0 obj << +/D [1878 0 R /XYZ 85.0394 431.8777 null] +>> endobj +1885 0 obj << +/D [1878 0 R /XYZ 85.0394 396.8929 null] +>> endobj +1886 0 obj << +/D [1878 0 R /XYZ 85.0394 359.3568 null] +>> endobj +1887 0 obj << +/D [1878 0 R /XYZ 85.0394 286.9477 null] +>> endobj +1888 0 obj << +/D [1878 0 R /XYZ 85.0394 208.4702 null] +>> endobj +1877 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F47 879 0 R /F48 885 0 R /F39 863 0 R /F53 962 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1892 0 obj << +/Length 2634 +/Filter /FlateDecode +>> +stream +xÚ­Z[oÛ:~ϯðÛ:@ÌòNñ1mÓ³9h“lã.8=Š-ÇBm)kÉÉæßï /ºYvzpŠ5EŽ†Ã¹~C…M(üc¥‰¶ÜNŒ•DQ¦&‹í<ÂÚog,ÐÌ"ѬKõ~~öî“0K¬æz2_ux%„& ›Ì—LßKÎÿœÿþî“ZΈæ‰þHôõæãòáö擧ìqå ¶ŠÒË»»«›×ÿ9ŸqEûùLQ:ýryóíò³Ÿ»;·|zùÛÕ=2;»š7çèž•Q‡øïÙÒÉŽüû%Â&jò”0kùd{&• J +g6g÷gÿjvVÝ«£ºc”p¡ùˆò8›0F¬‚³uµ§,Ñ‚ wÚÛ»ùõíÍáI1Œé‰áœFÍ‘=ѬK7±Z¤Â}gÁfªC Â&¬è Q•ûÝ"›¥Ëå.«ª¡„Lq”§El¨Fdìz S†p¥L_ÈoU6æY”H©ÕQ)¬CDœ=yZÏ„aÓzျ÷ÏY2]d~á32s«rç)Ã+lº(‹"[ÔyY^倠ÊvÏÙîÜÈ©‹ PC"ˆLPCã Ë—ý¦ÎŸ6™÷꼨ê´Xd•L½þá)ÛmóºÎ–þ7t4›Mùâ‡UV×yñèÊ•ÿ}(ëuxc8]ß=Ëðr±l¦t`ÒÑ…#iu‘Uä˜êbÇ$ü´v©ŽûhCå|t1æ£m,ZL±Êg«|“8¨€´bŒ=-_C5"`ÏA…!ZA‚èI8î ,!ZS;. ¶ÚÈŽw2< ðòwJùã~—zÃIœÙôš,]ú´;³¢}}™­Rp²‹um/Š(¡†E)ßeõâÝ®X.Ê;F‚èDÇ$}Ü°¥ì _h‰N¸B ržðãÍlõ#{w¦‰¤‰=)YCt(ZÏ°PÔ„¥¼'ÛQ°Fòá<‘“4¶ãœË¯\à›~&'£ã‚ v.â+ò”Ñ™JHÂmr`tÜæP6cˆ¡‰nl>”MçqŸ Š3²TNaîîäs!Rb ösá )$ e~É7Ø–™éCæ÷•Ë‹0ry~Ó=(£¨óEZ; q´ÝB«üz‹ý7¼òÜ’KÝnœ¯ÚÅ‘2dö³Qn™ŒIkYfA¢¬£R‘Úˆ¾R²ÿåU}4Ô”UÀUÈÓ±Ö¥:l •‹¶êͼÔ4Œ5ʉ±§ 4‡rõÇ‚ë&ú‚µ»ô+À­em9j×Ú`Té6Œ°–ão¯Ê»…ÕàÆ`ü²Îk?ܦõb…—ÒCR¨áu¶õþ}¶à'3or­`EÛ·x?Ù‹¤Mö"ñPľkÃv„7F#úAÈdDdžªéõÊ3-J¿Q<ΡÝÜþéi“cxá“)b§„Ǩò³›¼È.Îg’©HÀ¦ë²ª=)š >¼ú©VÞ%˜ø~Èb³F¹€G›‚=Â¥²)ŸPi=uÍÐDM$÷ÈÀ{)ÞP!‡¡0m¸÷M…Ü› 㦄…LSÇcYB1ãê œß¥:Ë‘ÊÅòÓ›•ó©ÜÕC¹,'Ò&oȉFäêjÎp>;ë>‹ð³“š;Ðvþá.@ß Ý0ApK„zp†¡Ñ°¬ÇÝVÍŽG¼¿¾ùèGöA„àyQº¢v™¢ æ\¬S@ÿ›V¸‹ð:¼£Ö…ky´ŒÖíP°n¤rÖý÷pK¨4FcÞ<µe$Ù²Wþ!SK®û[^éCtṙ2ä¦||„ä¨$ä)iØmB—ê¸*§„×q²ÁÕXtÅJ4Toè3»¾uY) à2zU0‹ Ð,±D)«ûGÈ—‡¥”Ť9­¶†jDoýr +`5ëïúÍ™N‡|ƒ€õbMIÐ%UÇuÉ £þ…ºŒ GtÙÙœÐæ˜2‡´aöʇôvpüì“>«“Ñ„wÖWŒ€®1¡â×)&2|C1`.Y€™ÿªb¶{,Øxì‡èEù4…›kk9N½äî†!(ÑUsÄÅ&±¬_Î+Á”š¦›Çr¯m㯠+ðÇÂC²:<×»p¡¡B±—߀béñ€òW38di5Ý°KÃŽÏé&_6uZ…;ì‹ ‹òLp‡pðС©ÀP¦9?nj Ü‚j¥†‡TöwMÝ0œu8š*0á c;G- Ð Òg¾g‡õ(@¦§l‘£³gË‹IÀ2®ßIº˜$y „¼‘íÎAAŠ…¢üá[ÉUyΦ;?Ný¢k*q±ŽÑüøëq%e-V¥=¨‡XØ;´´Gû9—BÇ.¼Çš „nð§oë}§ }h[¸çì«>Ø—¡ïPÓ§ÐZ4 ÞO-I¦_ $%-üdèš~æ[lx±A¾64üVµÔ-ò2ùƒö ‚$ÒÓ›Ò5ÆÔF‰hØQ;’aµÁ¶ž Ns·!¬TëpU¹ô«m‚Ø=ÁZ{© ó¡oG!ÊÀʃB$ìtð˱Ãâ²Q:?Ý Â`gtzà]µ.÷›eÓxñVe÷î{t7X§Ïaê1+²]6ö´ ® ­Ê ¤¸x‹ +Y¦ªÂM0‡0¢XÙ„-çÞ×>¹·d¼†î¾âi“9/%j?íLÃÂ,viD6añáu¬ÇaÐnRÅþBŸx7ÏÂÌ SÖO\.·y‘CÂNëx’¯Ù*h³X„×¾¤Å”æÕ ì”°‘˜s*ï(FNe†ÿL§¦›$Tƒëî¥úãCaà)þ˜ØXÆ•u¶yò£PMH#Qç«ÎLa§ ÔfM¨I|þ|ýåzî>SáÍ'žÁqÀ§¹ £åÏwžáò¨ë˜¯YôfïÍÇA‡Ü‘nOç–ÏùÒ1‰é Vzù‰Û>΀gŸœ9ÞæŒÜ’+K UúÄ“¨—‰À¦Z±_€ð<¿Y‡¡ÿÛ• q e&i¶=…ïøH0Ày÷•ÇWܶÊ:Ìý0ÙAÀ¬1Pã©í[ð>{n3bæÍ£9DO°I¸ñfd±É‚‰ÚofÃ0£1¾|zuåß½ü|;rê&²T{»ŒW´ß©¢ +þc¡kÇ….@Jǵ¤³æ`îèä(+àÔ!v"ÉágnJi ŽÎÅC8É ‰ÂÔ0‰ÂT›D‡vÖ`­u÷ÍA®’Š"‘í+óòÛüŸ·_OiÑç§ë¢ÎvEL6÷¯€Ÿ`Õ€? óäûm»/v:O2¼>6ñ/‚~’.8¾6²‹0»ß¢z g‘vu„†q7XëCa £RŒòýëž4³ðsÓzIstôÞïÈ#`¥b¬}§mþö*´Á!ñs÷±¯˜Ü(/ë(“1}xeþ¤áPöÿ-pUbendstream +endobj +1891 0 obj << +/Type /Page +/Contents 1892 0 R +/Resources 1890 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1889 0 R +>> endobj +1893 0 obj << +/D [1891 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1894 0 obj << +/D [1891 0 R /XYZ 56.6929 752.2728 null] +>> endobj +1895 0 obj << +/D [1891 0 R /XYZ 56.6929 348.0801 null] +>> endobj +1896 0 obj << +/D [1891 0 R /XYZ 56.6929 250.1909 null] +>> endobj +1897 0 obj << +/D [1891 0 R /XYZ 56.6929 188.746 null] +>> endobj +642 0 obj << +/D [1891 0 R /XYZ 56.6929 150.8976 null] +>> endobj +1898 0 obj << +/D [1891 0 R /XYZ 56.6929 118.3669 null] +>> endobj +1899 0 obj << +/D [1891 0 R /XYZ 56.6929 83.2849 null] +>> endobj +1890 0 obj << /Font << /F37 747 0 R /F53 962 0 R /F21 658 0 R /F55 970 0 R /F23 682 0 R /F39 863 0 R /F47 879 0 R /F48 885 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1894 0 obj << -/Length 2682 -/Filter /FlateDecode ->> -stream -xÚ­YÝsÛ6÷_¡é=”ž‹P| ˜<9‰Ós¦ù¸‹;Ó™^h‰²x¡HU¤ìsnú¿ß.€(šŠÓ¹=\€‹Å~þ3?1³šq•§³,O™æBÏ›3>»…¹Ï„_3‹æÃU/¯Ï~x£²YÎr#Íìz5àe·VÌ®—¿&?^¾}õËù\jž¼dçsÍyòîâýÏ?íãy.“‹/?Á«Ì3‹rvþÛõÛÞh5`¯òœe©F©ñ?Þ¿~Å^}xÿ—ž]^Gq‡G\¡¬¿ŸýúŸ-ádoÏ8S¹Õ³{xáL乜mÎR­˜N• -”úìÓÙß#ÃÁ¬ûtJEZY¦­Ì&t$Õ”ŽtÎŒ‚)<ÊÏMõoÒE×?Ôåóó¹<ù ‘ú–že³¤A»¢g]5%©Iåƒøl.,Ë…&Þ»f¹`‹¶YÑÒ#a´a2S^ŸUlS›lö‹5Žò¤«6ۺܹ_ÍÄn¹fÊFM±)—'wóeÚú¥àŠçÉõº¤Íþɹ¬KÚkß•Qûõî\ؤô]_ôå¦lúî9}2¹uí¶¯Ú¦­zF“ -3›K!Xª  ¹ÖÒÉÑ•»;wF§}ÿ!½Aã=>—£uÎMÇÇ#=V”€Ó+ä}¬¥4e9—ÁÉ)ž% Ù¾¨ðœø†*»+ýL] Ö@«©§D0)ãÚhÏ{Y®Š}ÝϽ‹b Æ›ôËiÚ­ò¬ÚºnïË%½Ý<г_ûeè¤{%4KS>Ò} zWR$ÅrIfî:" ‹» z8>nˆÄ‰›¥èBZ*8lå?[·]O£ûª®itã¿Ù—~n]6žo‹O~ÄŸ¼Çëmu>(<©ïNìÛ½·P ZI‘b’ƒccHN¨[r–ÆH³¥ú„!eÆl&íÈŽèž¹šœq©Í؈ÒúóåC#ÕQæÞˆ@ÊɽU,YÅR8 ý~]aÊò¬– ‘ -tÌ·˜:O.˜ÈLrú R0ÉÓ|sr®TBli™-Sá¡øœc’+ÜX´÷ãÍ! BÊW‡½«åÄî -J€Îõ W*“'[gÿö®¯\º“±mèI„m½iÑn6.« ó7d(()‰§åÓJ‘±Œëì)õžª±' kÁÎû°MÕ© ×MÑ/Ö^™`#f°Ç.[5·S 꼌9•FT:me48z*hÉÉgEðcz!ç²”2Jð$çgr¹'*øy®"P¢Ýïåë9ÖòÇ'JÂ!>Ð6j”Æ Öƒ#µLo2¿3SûhÉ„ÑÇéá!xµ/W€|“…Ã@C… ‚»Ò•½'8¤ -ƒ«w)Í@$’ñËA8tÚ…_<€6eçÃ)ÈvO~Õ"ðFýp.„H&ñåŪ?€ò)㤂e˜¼žÊË–)eÓCU¹oËg{Ô ò[ÓkÕ,êý²ôÀ»ð}C¿Cw¤ ìÔÆ#òE¸FiÇAx¿ÃDªݑâ,tgRëc¯((ÊJQGé ð¡¡ÃÍ À4|²&4'‡M¾nÛ®«njÿ‘wçSA€U"dº.CíÎUÄjϦƒ^Y?‘€28º_ ÀÊIXCáQNE!ô³Ð£ËÔ”YP“ ¸NổÐÓŽ[§Íá¶4Šr ɺ&õA’kXáYЃÚ(sdüó怃ò-!6ŠšûF¨”ÏpÔì77Î/‘áÍnÄ%¬÷! ”X ݺÖopµŠÁ6ËɦW(Æ Ï¿EÓl’+¼”„ÊðÙí·ÛºrY‡PwXpœ9‰8Žnü"Ÿ¯_Óõeá_œÆˆw»„†1Æuß*¹,œÙŽw#“Cß R> -6Ê—TY|.iDõª”ð¢&êÝm#Vðk§”iüË€nŸ,!VC*Œ*mwS, Gÿþ¦zÁ³:v­xhWš8"3i² ‰Ê <Ërv–Ò¡Ô/tœË®ü•Y -ݪËðúÁWüdX]pÉÈG4ÿuäDeçÐK¥ò뽆dœçöñEÊÑ5oÝ Žï«~0Ÿ;7A -5†«W @Å!L(9H¥ä#42ˆS(ižYKy‰á²;úû6´‰,3éȡõÉcE ز*¸eQ߶;8Íf*È!9 ïÑ­/ÖåS‘R2)›Åî!à\˜80u¯«àÌG—"ÈdcÿtêòRúa‘CsÊÁ™ˆëÒd±ß‘g4}ý@“mC#™üíÝÅ«ù»×Úß“åЗ’ljª·q!‘].ãÍdqÅ¡gA*ö,H-èµ+$GOä˜a±Âð¢ '” -ÀÌË«÷¯iqNß‘ÝîŠÍ„«ú‹;pÕã+šQnÄ‹bºÓáA¡nÒ5¯¥d -¶õÉ4%-àó g{"î …¶û>£WB›ÙAÇ\n™ä±+Ülœ¯•S±/™´<€èzü>EÝy ?7í}ãÅë¦öä–¥* ¬6ÕW6UL¨¸é3¯b-×øÄ0lIuÆ#†Øò!…àP>T]Fwݸ<º½z˜_Ñ74åûžMLÍt,Ø_×e -ãÐS¶åðR¬§½»uµ%‘‹âlî%ß÷áÎÙ2žK9ºÉòa[ÜU]Ä i`S4á’ÿÕ¦óùàSYŽ -õå/ï>þtéc¹ <\„9j Ð8^O„¿nºÑâ°ØA}Qdw{Œ­ZžQÊûNT,è$ öG®³Ëó£æ†óä?N3÷twí‘¢°¾nEmÚ‹)l<¼x†ìÀÃáý…ou§vú#2ƒŠl¡‰:úÆ ·ýŠÔ"â€ÿ¿­!Q÷Ã÷§ö–©ÿ(î<ª3‡îÀó›:!õ(8ÒJ«4üãÏœÄD2Cm> endobj -1895 0 obj << -/D [1893 0 R /XYZ 85.0394 794.5015 null] ->> endobj -1896 0 obj << -/D [1893 0 R /XYZ 85.0394 368.0049 null] ->> endobj -1892 0 obj << -/Font << /F37 747 0 R /F53 962 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1900 0 obj << -/Length 1897 -/Filter /FlateDecode ->> -stream -xÚ¥X_sÛ6 ÷§ðåeò]ÅŠ¤(ŠÛíÁMÒ6[㶉»Û­íƒ"1±®²äYòÜìÏwHP²l+Kz;?˜A@Ñq?:‰Sc©B"*ÆérŒï`íÕˆ:¿eòû\/æ£ç/¹+¢"ç·=Y1 ☎çÙGï¡™€ˆÀ»šú§og/_Ï&>U¡ ½é»wç³³‹_'>0gx—Óه餽›(æM__O>ÏÏ;µúªÓ€~}üŒ3°à§Q@¸ŠÅx “€P¥Øx9 -'"ä¼¥£ëÑûN`oÕntXÃxĆ|¡z¾PŒ‡cJI‰¾ø¢ï'~ö5ºnºÉ_Æ°1¥D rÛÙwÕ:oKä\,“Ô_fâ»#hyQx­ÓµnÀg!pž\ñ×ñ»èÅÏ[õÛö×íŒÿòÛÏ›÷?þx‚{ýÁãþ±‹Ï_2Þ³Äç‚Ä‘0VE•e½(íI^³Ð0àÊKnª?4Òô×d¹*ô3'ŒöÝIiº!ë2KNdŒÄB Ç´Í‹åÞÜãQ™¾M6šêmj§j”Z¯ÿÐk§•ã*ª4)UÝ ùS7Ç$ àGaB‘+)³Yö’ ¶:s$Kßy‘Q"d öݶ›}”Râ™ÃuœVË%¯a?c^S¹{ -£{Ú½3–œõ@ECûÛjëfTèí™ÏÌTzÛEž.pe¹AѪv‡ß8!™þ¬´¶9/w‡ ª™û±FJ/­J#án³Nš¼2ÛeìJ¡‘a Œ#Ô–As·Xv#t¾Y„@žÐØÓñ$ÿ|áXÐTÃÒ$^ê²Az^fy -”º=Æ^;žã<´g ^8ÔlãöºcïõåôÔ¿<8KŠ õº´«# òÆmÝ)‹ó´Hð¢Ì¸*›$/-§Ür“ÔÚBœè2­²¼¼ÃYuûBúï @ ¢Šª¶ 3{‘ðŸU›{0þ}S“H+ŒAøóHb>ßdkL \?Y!¨ç‹8³(æâ8‰eL⻽y;7¨·ñUœ(B"Cþ8>H)𤃿K6î€ -‰;4 žN¾ŸoÀºªÖ ..x«)^ -oó h hߘሑ ÜÔŽ=¯ÎMíªÐùwºÔ"î*ü[CDUKާ͛cÑ<¬ç#,¿½ëÚ÷Uµ ŒpÌß#G÷ñŠÐœîTŸ"÷ |¦©P²2ùÖhÜ°W… Q¸‡üÄH-$`ª Ž‘0-gçâLsœ½;7B².‹{$´ÎαF †ŒY0(hþ·ä Šb«¾xÜ”Yb/'kË'' î|?#«M³ÚXÔ¢ˆù€P:ó<à -„Tm†8Œ:Œô€„¬Kƒ>ráB¶<sÖUQùBôvŒ„Öm·Õz@xè„ÚT3`=tm#,ŠZVôVìXu`´ZçÆ%.i8‹ åÐ}[Òìô[²&""Ž¥SÏ\ ¯°#T$¦,þ¯Œ¡*"¡iýöôÖé¢Â>íäKYmK¯ŠÄ˜üµÁ©q³$ø‡]Û NþÆ¿åh×bÞ…Œ„öÌÙôòí¾>¿š@UþþìÜôÙ¯>\M7çog$1´êœaq·u–ÓÈeNE‡ž†Š]„ݸÕ]é·7áªMøOÒT¯äÄâa¨¤¡S¨[™!O»…¥Õ]™ÿéÂL Á†R¯tš›ÃÛSór¨Fº6æ0e"¢x¤ž‚EÀIåq¦Ú -Á)oÕã˜}F}“–ÒëTÌ4/ÕÌñS’L((}¢Õ&TÊ»Öú@ºçanË^»<„C”HÊÇÄA$ƒÉ~ÒkÆz–M󨻘áHáß4[æe^7Ø& éJßj¼÷2uÛ.“r“;pÂnFCGU` ó`jp«Öõ¹ËŒé›ë·¿‰ó,ˆÍsà™«Î½x¸Ö&©}J ‘¢ÿ"¦ÒÔ2Ö‚âÿóı 4Š æF]8 xÅç!¼ß ÞŽé‡ùë·W»å°k]¶àz}_ÃU»Šq -S¾YîÎ ¡ ŠºÛ„4ê>À›?‚£Î°r }ŸDÖ™AŸAÅà*åqwbµùožÝ­á¶]Á牉ͪ*ž€®×÷eµªóúð˃Ñ#Ž¸éq¹dCß  (+&L­þˆ`^ÁF;Ç_ºÏÈslµ)ýäs;ºA‹Ä^„€ª"è RP=Fšv½ºNf: ³ýЉ¼Í‹o¹èF_„C-E×ñ€ð²‹†§_=ª¯möå1@ðCyëyð&åD°ðàã ¶òøq;>_?ªn’ek]×O÷@ó¨Èt±®ª&ˇú=xQÑ…K'tó¨PxÙ Éc!ÔNÜ_ð@”y: ¤JÐeçÿþº·ûŠip)Žwi·ßrKA`sÔ*e‡\=R½ýx¬û¿d×endstream -endobj -1899 0 obj << -/Type /Page -/Contents 1900 0 R -/Resources 1898 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1897 0 R ->> endobj -1901 0 obj << -/D [1899 0 R /XYZ 56.6929 794.5015 null] ->> endobj 1902 0 obj << -/D [1899 0 R /XYZ 56.6929 449.4646 null] +/Length 2930 +/Filter /FlateDecode +>> +stream +xÚ¥]oÜ6òÝ¿b{¨Üz~ˆ™<9ŽÓsѸ¹Æ +ôú ìʶP­ä®´vÃý÷›áZI«uRü°ÔšÎ÷Œ,þÄÂjÆ•K™K™æB/V›¾¸ƒ½ïOD8³Œ‡–ÃSooN^½WÙÂ1g¤YÜÜpYÆ­‹›õoÉùÇ—×ï®~=]JÍ“·ìt©9O>œ_ÿrþ#Á>ž:™œù ¥Ë rìô÷›^½×j€^9DzT#Wˆøçëwìâ§ë÷xôäò¦gwx%ÁòúçÉo¿óÅnöà gÊY½x‚΄sr±9Iµb:U*Bª“O'ÿêvý«s"ÒÊ2me6##)B0§µ I;f”Tþ.Ÿžëæ¡-ÛéU ð£i¦K%06CZ€„¤Na=«:θU,‡(HunNuñrµ­×+¶jê[RÆø|±TsVöÝ始Ÿ¯>Þ\ýtM§Gèá°4Lr%fµ¬3&·AÉ ’¥Ò"éî \ðÞú7çòn·Í»²©i!U8pÛl{v÷X…L™R< h‘Ú’³4SáÌàcì)¿½º~Gäê|S -¶Å¶g°Ûž +›4m*»çS!DÖo„Lnîé^|À¹HîóÌ‘5—Œ»T/–$v’][nÊ*GbR'-²ÉnÕí<É‚ y½ÛÏu—ÿE뮙ыH9³©‰WÆ­*¼Œ6E?V:ùÔå]±)ê® ¤‡|õªjÚÂ3“&eMÐÏÛ|U´N»b»)kÀžŸÊî>J3#¥ŒR ÓÌ!V8ü¦\®šª©ŸT¥ÉE•ïZÄ6ì)â)¯B´nq£çÖ?TmŽõXÃû=sÊMD¸kwyE‡VÍ1¾ºç*r‰àmøøíîá¡ÙÞ×ý®e™äR=®× Á“WßìÛW³/|÷ÝÌ+¯Ö5ô[ ÈqÑÜÒoUÖÅ[æ±ýR—¢ûÇWb; CN_ (z'D?‘©M6»Õ=®ÚÿC…Άàî>¯g¨9Í”Íþ†UÛ½U+î‚~XtO¤ì + Ý=©4lì­ê5½ž×t®yÀÕNNÑftr°‡T11ŒPHúáEzÌ£Äsúù£xžœcs¶Wšñ¸½êÝ?ò{(¥4eŽË˜yAHõ//ñžø„"{,Ây#zÇX0)d(£îuq›ïªn$pÈŠ5XÈpœ(µ2ppÛTUóä# <}~¦_Šã°ðaÛË^ ÍÒ”OdßøØ +ñ`½&5·-ÐÄýý„ð/1 +ŠÄ³›¥>0JC<ìÞ7mG«§²ªhõ9¼¹ Ñöî‹:àmð—ð‡ôëˆõ®|Œ/ä”ÇgÏöÝ.h 1öR"畯I‰x·TQ¤Ì˜Í¤èÍó«qŒKm¦J”6ÜÏ •P¯Dé‚…ã‚V,iÅ’; üé¾Ä1ÄY®A"%èo>w'˜ÈLdrþ"R@U“º¡c,ɸ Šb™–nl\äŸKcLr…Œ‹ú>$AêPµ§]®g¨C±¦µÓÃZɸäÊǬrío +@_*™(A ëõíA˜¹(ã7V>Άä f9”"c×Ù—Äcxª¦zœÄ¬=ï"_ Ò$d¯‘caDAõuñ$¢ÁÕS¡@Jž?+¢Ó—åÑ“mðdÛ{²¥Ôˆ|²{[j‚ìáHthß:A á‰D'))@ill&&õà„lŠ±YvÄ5ÀV#¸&–3’ÉR̈¾ÉM°z`M°:X“x¼~Õ6´„$Q«oèo”<ÖØ ënš.  +n« 2`½0„2,å‹ð>Åø´`‹1@¹=´)n_åRF$œ1½ôîE¾;ñDŸb‚ohï[|ï[R&=ì§ +¸èÃîW±ºW”dÂ]¤SsÚñÎ5ï?˜1ñ4r½äIúÝ9O‚F?xRÆž„1Šl$ë] VÞ•à7¸R\)ãÁxÀ˜|ìÀ‘ vîT? èK‰f·]KÌç˜Ëo ”†¶_Dÿ@Ý̈ª4f0ŒÜožÈòÑÌÑÑ’ £ÇáËC°ê® òMV¾~ +$„ø² mÑ€¯Taqõñ1¥=* dÂñ†úÃU8<(mŠ6¸Säm¤ôpê<ê*6±3õåùm·/Ê甓 +–aðúR\¶Ð§ÛtŸUžÏÄú,ÖÞ±êŽ%ò°¶¦ÇúÎݺ…wú†n‹öîAQØ©íŒ/–kv| (ŒŠA„1ƒ°©õA{Š^«5 +_Pj1üΠ˜†Wh‹A“MÛ–Ÿ«ðR0×sN€YÂõ%É|^†ÜíT_«Í ÌZ¡¿€2¸º/º ÔÒIÄÀaG€Ð‘ÝmóÍŒ©†AŒ˜êxD3‰8(öç;ó&y-SÐm¦)I÷Rðº'àBh³¡uÔï=Rµ™í+è±Ï9Ë$ï»BüܶVÌù¾dÒòXDÄè„OÈ@Ý<Õ½vŽ&·,UiDµ)_ ª˜P=ѳ b-×øYô0c›P1ô-B¨rCÑe4ëÆã½Ù›AAû·tÅ íÄKù™Òîc3“F3Ý'ì—e™Â:ö” •r8ëˆv{_>ˆ ®ÈDq×Îw]œ9[Æœ‹c˜:ó²Ê{a`“×qÈÿ Õ¦ ñàSQLõå¯ç>þxcº8¼‡yhŽPhÝ'⧛vr¸€ZŒ}ÅçßHw&cA'a°?‚ÎNh+G_–†óä?^2÷ÈP&_–BÂùªYå¶ioæBèpð ÑÇ Ãó›ÐêŽ)‘þÛ#ÃŒÌÇŸaÌê™ö”3{@yî@:ø3_îyüÿþÿ…ýÿo¤SÖîÿ`Þ8~#w"2…w"›²Þÿ§Ã!ïÿÄ+â«endstream +endobj +1901 0 obj << +/Type /Page +/Contents 1902 0 R +/Resources 1900 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1889 0 R >> endobj 1903 0 obj << -/D [1899 0 R /XYZ 56.6929 355.3738 null] +/D [1901 0 R /XYZ 85.0394 794.5015 null] >> endobj 1904 0 obj << -/D [1899 0 R /XYZ 56.6929 285.1933 null] ->> endobj -646 0 obj << -/D [1899 0 R /XYZ 56.6929 241.275 null] +/D [1901 0 R /XYZ 85.0394 749.0409 null] >> endobj 1905 0 obj << -/D [1899 0 R /XYZ 56.6929 202.5209 null] +/D [1901 0 R /XYZ 85.0394 687.8191 null] >> endobj 1906 0 obj << -/D [1899 0 R /XYZ 56.6929 168.3311 null] +/D [1901 0 R /XYZ 85.0394 186.4649 null] >> endobj -1907 0 obj << -/D [1899 0 R /XYZ 56.6929 95.2288 null] ->> endobj -1898 0 obj << -/Font << /F37 747 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R /F47 879 0 R /F53 962 0 R >> +1900 0 obj << +/Font << /F37 747 0 R /F53 962 0 R /F21 658 0 R /F39 863 0 R /F23 682 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1910 0 obj << -/Length 3181 +1909 0 obj << +/Length 1762 /Filter /FlateDecode >> stream -xÚ¥ZKã6¾÷¯ðÑ Ä>%{šd&A›™ÙLX ›ƒÚ’»…Ø’cÉÝéüúTñeI¦ì>ˆ¦Jd©ê«'Å~l¡¡ÂÈEn$Q”©ÅzwCpï‡æiVh5¤úöþæÝ÷"_b2ž-î7ƒµ4¡Z³Å}ùëòý—/?}¸ûïíŠ+ºü–Ü®¥ËŸÞúåý¿ÝÜ—[×ïøøõvÅŒÌ%1Št]þüéÃw«ï>úþ‡Ÿn»ÿñæã}dkÈ:£yúãæ×ß袄7øñ†a´Z¼ÀJ˜1|±»‘J%…3Û›¯7ÿ‰ îÚGS¢PB¥yžg ƈQŠ„¡ ÉV>~ýîç»/÷wŸíÛØgNò£‹7„K–YâCS®Wë¶ÙºbT)`±•” wî¼âgë=¿žJ¨gøW:Ç<ÑjH|÷y‹T'\ ·4‚¡ùå-QbË¡° b -fÔxËÖÿï9öíÌgP˜¤ÎÁ^ö×Àç/4Œ è¿ÁÝ?ÕÛníÜZ&™ó×Y€HRA<Èø›ì"Ë©ò„IwP2bû]Õ¯ÓÐͳvµöL¾<ßÏÕ!±2b-TB÷Ú¡]”õ!±þJdšhPÆØ‘½`5-»}µ®Qh¯8n¼}ðsáæñÞöÀ,s{`Õ¦<ËÚxÁû5Ñ¿Úk ð\ó\)gWTωdÑóÍxWªÍ0¤ì™s_ë_ìúÐ÷C¥ð²äYvî® Ë‚x«õØ]ÍF6“E&£»¢rYVø¯±h¥Ê¢ÕÎnŠã¶wÖín缬!`5ÕÖ݉³`d·l ê; 9L#3Žp»m_ÒQ^0E´4êª&5A]6îxÎŽ nYy™@8¶£UÚcdNt³³u¿Ž‰Y¬û±Îfò›×PøÆêÔ6, ÒéÉØ8Û¿ÆBïz$sÈ…i{g3ªZB‰/²ËªRÍ«>RY1=•±’@ -yeË@”ØrTƬ^'[~9Ô>¢6‚£ÔŸÚƒ7„î©ùÁ+ ÝL2§²nÚ—°®òñ3+«Ïtøæœço YïØ°˜Wbࢴ¼¢šÕÕ*«šßßâƒ1´Ìúà‹¼|ð9sI<ânäƒ1—õ:Ê|‰Ëš9=h\Æ‚£©[+`^B\Øö­¸±;ºz$‹©wá.ÏÅÖvÏ`X¶»¢nN¤ vQþ>àjê‹E+”kZË„Õ%‹Î®Â†fÄè+}©ÑÐx"‹™ýUÌìÑÔ¦€Áì^îSæœ)1éEBq?æj¯}_Þb!.Ì Ç;–M;zÁ*Óæ÷ ‹¦¼ñL\«x%1"VH[¨bªÆ³bómÇ -l¾öîÙÙ¸n—ª¸%ŒÆBûÇ"¹Ô¡#±B´ãLŽ™Ì @w³0â˜=²\]ÆÑjH‘Ê"é@’!™Ñ@qí.™(¨ü‹ÜEª{#H)ˆ"š²1cL)ìŒÃE-»öhõ¶®Ü´Íáê¸u4eÑnÖi¾ú³Å-’8„â²àŸÚCýWèf\Øúïy"a)<ìtkˆrâkºW@ÝÎyek½fÆ ðîÝÔÞ¡í¹.+7‘ìô3MD<>zWVÏïü{%Âf±·j«JX Np–®ñûÃõº²µg8x@þ" d(Q¼i9\ÝÎMÕuî­™Î0N¨IÚEŸþк@íuÝì=I¼¥Æc×S#Ón|¦+1!óØ Iç‘ÈÇ p9‡J,[s+/ Oyp×ÓIˆõ=ßÉ–'ác85àf'æl†B´ùeF]Ü‚ÿ¾e3u¸(J7íd«« ⊠¯2Ÿ¦Ú.Ѐ>©>+—*Ëa -(Ó}xɲءhJÛ€ô=µH&:„{V‡¾Sc4ÔÑZLPï[ èÇ|°ÅwŸuhL3ìt\Ét‡Tó-RY‡Ö]-rŠ²^B>D¸ÿ,^úÌŒ°éùþlÚ6md·û‡bý»/F´¥vNO„ÍcQdxÄή`q@u‹Êb±OWHž‚ÎÖO‡¶íýiÔŒ_š JË‹ÌEªwãØʉ‘ ß{¾æ6&ÔÜÆÌÕÜí ­®4êxžÉiÍmü÷p=ÕÜÆõt´¿Úƒ¿sñ -O—%»Žx“ÇO&^êíÖ-¿/€1HÞ⸵·•7ÿÞß*JÿÙ‰`¬xzPUÖønÎ+ °ýë0`Š™¯Q4¸M¿í°TŠh®žyXÖ…a?‹¹wm{Ñðß k> AÚÀˆµ ô1ÃÍ.9·/Üg¸A½…õ'»nÚ£u8õzŠ„ ­GFÍr(àTã7ÇcÌ«¾‹cÄÕ* ¯Z]ÉŽDóöˆ,ÎW«,ˆq‡¹*ëS±Ê:c*Ye ¹òVke­6“ó²<›Å‹mÞrp²ïÏc1¹§flúm³}DŸá4õôŒõdÃVåÛaOá í¬ ÚxD—H b‰àÇm pÑø9ÍÿýiäéPi{µ×“Ùèá>ÇŠ¨ˆEãÙ¼'K’@J:že½'D‘ÉçÙ‹‡û‚÷x%“ +䦓£§»d÷øh97¤2É@¬`ŽuúúõÞÑÓƒ÷Ÿ‰¤O|ÞáôèíôÒ^Oó¦ÏöN°ÑÞ¬³£o+ ¸1âëèãç`œÉ/FáJŠñ&¡J±ñb +NDÈyK)F§£7ÀÞªÝ:è;Æ#6ä<Õ3S1"„ DZP$âŒ[cÿ{dlA~¦º´ÖËoz9ñ#0¼ÑuÓŸÿc7PJ”—ùíÀlû¢¯ÀA¡Û³NxŸ+ɲ¥®k]·ò쫨Ҥ¸¨ê§—ÕÒü²þÖátÐ’žJfo,. ÝM­@AIq^-óæb1ñC¬‹$õ™4¦ÖéR£¦·íÎÿùq}Wg,<>Ð,¶w­Š9-ŠÇ×;Ã6°D£SÚyõÞ8ô,ˆî6€n`ösŸÈ×Ñ“—kõaý~}Äß}x¹zóøñOhýpŸõÓÏç‚ÈH0Ây¤,ëAiOòš ®¼ä¬ú¦‘¦¿Û=pÂhÿêJSº]–Y:p"cD +%Ó:/ +”{v…Gezž¬ +4Õ[ÕNÔ(í·Z9®Þ¥4äOd‹I… E®¤Ì¶da"¶:s$ ßy°IÄÚt£»ž”R0‡C8v«Å„C¢0Ƽ¦ro{ +£Ú½3–œõ@ECûÛz™`èí™Ì4öÖyz+‹Š¦p¡jwø™’éOAÀJkóòæÁ,AÕâÐûÃXÇ^Z•FÂùj™4ye¶ÇÒ3”B#Ã.0ŽPsXÍÝbÙÐùf.ò„JO7Æ{г Ç‚¦–&iôB— Òó2ËS Ôí16ìxŽóÐ@¬,r±P¶á–ÞóÃé®øTà,)&ÔëÐR¬Ž0È·õFYœ§E‚2ãªl’¼´œñÍ!gI­ý(ĉ.Ó*ËËsœU󻺱º£¡˜¨¢ªm af ï¬ZÙHÀøëª'‘VƒZ$©Ä|žd«$ +*Q?Y!¨ç‹8ë”ÛIK"Cîöæ5î\¡zÜÞ¯ràD’8ä÷ãCÇ[øÒÁߥNw@…Ä4 ž½|3߀K”Y0%ªÕƒÂÛ|šÚÁ7f8"A$7õ}ë3Ó_Tèüs]jHŠ_K¸QÕÇÛñ´ysÛE4ÏFëùÈËççCû¾Š@0Â1ÿ…¡ìã; ¡œ¾¡ú=r»ëc«™JV&ßíz³~Ó"‰Â ä'Fú€h¦ +ê8IÓBpvW|…ébŽ³‘áÒ¹’uQ\!¡uv†Œ=h4bðʘƒ‚潆$oÀP[õÅÃà¦Ìœ¬-Ÿœ0ˆùfFV«æreQ‹"æBéÌò€C(t{±j3ÄaÔöMHȺt0è3 G.â–Ç`β*ê!¿B¼@oÇØAh·m^-„G!nµM5ÖÙ]a‹aQÔ²¢·ÚËŽUF—ËܸÄ% g’PÓ_Lšý•¬‰ˆ2vê™Ððê;BE$eòGCUDBÓžoè­Ó‹ +û´/eµ.]ÿ[$Æäï® 6n¶ƒÄu³¶kÛÁÉ¿øÚRŽv½!æ]È Œ&pæÑôpí>Ý;™@U~/;7ŸHÏÞžL7gÇGw$±$‚Kìélå4rE™SÑ¡§¡baFgnõ¦ôÛd¸jÓÞIšêË9±xªièjÇVfÈÓîCaiu^æ×N!ÌDà±l(õ¥Nssx{j^ÕH×Æl§LD”id‹€“Æ·°ˆ3ÕVNy«Çì3ê› ´”^§b¦y9¨Ü"!&Éà‹*_«9 M¨”wªõ–uÏÃÜ–½vy‡(‰yß ~3˜lö!½f¬×x`Ù4ÞGOq¤ð5Íy™× $¶ÉC:Ñsq/S·í0)WIqNØÍh訊šü05„UëtÏeÆôÕéñ.¿ê.ù*ækà+ν¸½Öæ¨ý’@:EÿM)c-&þž#n[@#i 7ênÀS|ÂçtÑ›¸1};{~|r?$t-Ë[O¯jˆ´+»p¿ qÊW‹»~žÀ‡£éˆ~uŠ¿ýcåæSKÖý3Ù¬¤± °9j•2ÆQ*o©Þþ‚¹­ûÿ”GÝendstream endobj -1909 0 obj << +1908 0 obj << /Type /Page -/Contents 1910 0 R -/Resources 1908 0 R +/Contents 1909 0 R +/Resources 1907 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1897 0 R +/Parent 1889 0 R +>> endobj +1910 0 obj << +/D [1908 0 R /XYZ 56.6929 794.5015 null] >> endobj 1911 0 obj << -/D [1909 0 R /XYZ 85.0394 794.5015 null] +/D [1908 0 R /XYZ 56.6929 253.0811 null] >> endobj 1912 0 obj << -/D [1909 0 R /XYZ 85.0394 751.0357 null] +/D [1908 0 R /XYZ 56.6929 157.3292 null] >> endobj 1913 0 obj << -/D [1909 0 R /XYZ 85.0394 641.026 null] +/D [1908 0 R /XYZ 56.6929 85.4876 null] >> endobj -1908 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F55 970 0 R >> +1907 0 obj << +/Font << /F37 747 0 R /F53 962 0 R /F39 863 0 R /F23 682 0 R /F21 658 0 R /F48 885 0 R /F47 879 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1916 0 obj << -/Length 733 +/Length 2868 /Filter /FlateDecode >> stream -xÚ¥UßO£@~ç¯à’co³ûˆZ=/Z{¶&&êì‘+‹4Æÿþ†(.MÚaùæ›™of§Ì§ða¾ÒD[nýØJ¢(Sþºô¨¿wgë1ъƨ£•÷ýTľ%Vsí¯žF\†Pc˜¿Êî‚#Â( ‚×ó“ãèøj~z6›‡³2–A²XÌæ'ç·aÄ0 ) .“ùMrg‹Ðò 9›-ÇÕOo¶zKkœ:£¢Ëé¯w÷@ý *øéQ"¬Qþ osdvÄbpð® é"O„ƒFH]‘@‡\†Æºªë™ ož+—n3Ñ @b˜=ÄjëjÛLÄ–¨NØ™`“iÕcþä¯<€Ñ*6mÚæeîÚsn{Åûb°™ÛW|*\Ô1ú‘àŒ0©5H>ŒnG–×í0 x5!¯´DÒ!¸KË<ûT_Kb¸=ôËÉaÔ[{8£3è5ºm03BÆ(—³ÆI.–W__¶Žýž*jà‹ #Ó½P£ûbGh¬a¼™ä„5ÌÔÑùü]mŸTV®hZ¸KUG×ùSŽ3æÖýÕ¼Äë7Ñxm×Ð3¤'SzDö”T\ºè=6¹Yý¸ºþZs×æµË[ÌdùÚÀl5øp\¹¦ªÛbW~¶!`·D'¶'}Kñ¿wõû’Œ‰0†¿¯áƒí+ÎzHª+Ž1ó!õa«Ìý ˳Øendstream +xÚ¥ZKoãF¾ûWè(QO¿ÙÄž&™I0ÁÆ3›q€’d‘¶ˆH¢"Qvœ_¿_?ER-ÉÁ¶šÅêꪯ^ÝfŠ?61ŠPQÊIQJ¢(S“Åú†Nžðî‡hf‘hÖ§úöþæÝ÷¢˜”¤Ô\Oî{¼ ¡Æ°É}õëôý—/ï>|úïíŒ+:ý–ÜÎ¥ÓŸÞßýòþß~îËmɧïøøõvÆJYH1jé4þ|÷á»ÙwŸï¾ÿáãÝíï÷?Þ|¼ObõEgTX™þ¼ùõw:©°ƒo(¥Q“ü „•%Ÿ¬o¤DI!âÌêæëÍÃÞ[÷iNJ¢ /2ºàlÂ$Ró2TI¸)¸S†ÝvI¡Ý¦ZÌíæñ©ÞØýL(bX©éÝ|]Ûyð=ƒŠ—ÄHÏoÀÄ)ó7Î ?²ïüèúÕ@Uïæ]Óâ®mWa ÈÎH©‹ˆ‚*˜ðëë¦Ýî›ýØZP…†D…2§0ѹ’gE µ«Ìú,<°Ê °ÕéÞ5Túëlþ{=ø}©¾î˜`°˜6XÛ2€ZöÍßAɃõ$ƒ† t‰ç"ÃÓšL+udùجþËeý‘a®Œ ä‘ù&â-Ì·Wåݶ».à RZñÛeøÍD §áÀã,Èg¾©Úõ]À# +€kÌ~UÜyUíêýþí讲\,wmÛUÍ.''âŠÒå˜éá*ÓþÎñã’ð»ŒãÍãAfè>~ýîçO_î?}¾K #‚F\‘ìÔ-N㇄S!B½G<0åŸýF):¤ I;³Ší.#“‚ñ”&2KsJdA…ø.y1ýÔ…•çaµ‡Ú?¡ÂÊæaéy’ñ¹Þ4õ&|9_uõnyŸÃ—]ëŸ/»¦›¹È:CL$ÂH=Äh³ye©§Ý2‡R'pÉ í‰Xµf6¦4)$xöúòœáv ÜnfÑîv·ÌLëý¶ÝTV„Œ:¡)®Êˆ¬ÚíÚÕ>³²(‰ÔE„½]-à é‚1~ "> V"Ÿ}H¬¡á½—¹ÙdÔ£áq¥‰lm`ªÎéGsRðN^=×%Ä%Þ>ÒæÍR–Ñ>¡r8ZvõzË›~ƒ/%䱦—2€F*LìnÍôæ^šnég“y‡jQ†0#‹ ÕlžS %…PQðvœÜÈÀ{_w~â°õóŒª +CJÊXIy3(k÷‚öH–ÿsÛTA†eØö¦®Ã”uϳb0®ˆ*ŠAÿøˆ^règ¬‰`#)ˈjÂËhu#BP¨ûM¦¨*ÆP œW]ûTcã»[Ô‰$B5D +0 1Ôoæ³ Ÿ_OjÈP€HÉ›‘@.V)}ªXòV)‰êˆ«þ’È—B@ª‹KF¢Ì’}e¡Ð¬TÃ%?¸ˆàsèÚ5Üg‘1\Òˆ—6„༆úÉÁpıûe³÷Ë-|\‹ÙDû€­#D2x” + Aó7ù….hÌ®Ùp(™°ý®îy躇]E¿@È—%ä~ÎfmT+F¨¨…ýëÞúE*ø°Òu5CGz±) fšî·õ¢±ú°þj'â‹—¥­aíèÛOwÂ\|ùphV„eþgQ]§4mAP|àiã«{¶€§–ç +E¥æìŠé9‘,E¾3‰{¥¦ìg€œ?sRÕ׆m¯wÝaKl*àQV—\ëÓp…æ טaº8›ÙJ„LáŠÊiUÛ_‡VªZÝìãü°êüE»^û¨‚Ö¦^ù7iNv˦0ü,M˜ö-—%\­Ú—|š E£,ÕUK(ZFs¹¼$;lì’uÐ Òz15B^“Dz”òšå‘(ª{–s=ã2„ûU»˜¯üpÙîC€Y£M럇‹×îÇI q²£~âh‘!:ìÊCkûóa³Éë µ>U),[à"ŸÊ T¨¢ˆ`rVÙ{rïq\éié'òh7òX៘TPÓ7ºòüCMk—kWÎuÛí¬ ²{WÞ®æ‹T€áCŸÖ{²S+[I¨Ñ£€s¶*àù 0MTYÄ¢è›sFµ¾ðä<Ç"ŒQÿÕì;_]Û#Ÿ 3õ2ãv©Š¤×ku$âør€/ ++øBŸíº¾sÐtºn½výd½š?´¶÷ñ?O[L"ÔGç[¦Ê¿xxÍù—D‡[z‡>DËó5EK« õ2ÿyhü ²6Ñ)ÿ9úçÁùª€‹IÎU·‚"SxÅÅê¶Ou¾ºMTNåñ˜M UnÊdðÞ)[_4&à¨Ð~Q¶D•NŒ TɆÒ}Må–…»ä>BÙ“ÈÚÇÑ+$ôA6·s.›ÛA&šnoO¨Q9þt°¹ÏMÖñÙ½Ôu d«Šq;ŽÅ¿04 Ùؤ@«.F;V$0wÌθ9kmnÏ×t©/[»OuÞÚ‰ÊY{‘³6Ü•ÌéèÐÚaL^-eDÚšjñ5í—[ûÙ*1´DÂIaölßoRa–úþ^®s•üãkl|Swê,zÒñËtr6ôc½ë,P Ó"ž3=G÷\Ò+ŽÞ§º`úHåÔ´Reåì™Oßœóâ)‹¢ðNgMÃдH†Úð¢iúTçM“¨œiþxK Ž7Ù|Q¶c >.ƒÒ b°­eƒt¼•Ò.ëù‘·c&Þaé“°9غ„ø´Ž"ðb}ðýˆN¥÷Ü?žç+wz†aÕ®çÍæ(¹‚ï#®Æ±8Ó´¢]3²ß&Ì.y´¾ +Û®ÛC’Ë°éQ]€M¤r°Ù^…M¼`†Sb÷wQ®H”‘KŒ$Ñáfíp<ï©e¯·oœ¤nôb{MWågüš¢„ãZ\ë{%)Eê“VèeêMÅUÝ^,¾AÆŠóè;¹u®ïÔ^ÏÈv;RHÏE&3‰²†r&ßPÀ|çÁÄa’]© úTÀ©˜v0•D‘ +Ù!g7G£å:o´(wþy¼q1¢CŠ !zzT¾Mª%"íÈЬ]•©©Ï^øŽ0Ól€‹y姽ncÙãìã,A|«á³–Ū;« ìy¨³—Óýe¿·¨ò§ñð«tN±©Ü1d€èñ ddC¼s6 ç5¨taÄõá@ÁƱ‡ríÞɹýŠØ+ÚLÀ éNèÿþ· ã¿?I{lÎd3AÑXÛƒz¡ì†+Ç¢§ :•ýÚ 5½endstream endobj 1915 0 obj << /Type /Page /Contents 1916 0 R /Resources 1914 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1897 0 R +/Parent 1889 0 R >> endobj 1917 0 obj << -/D [1915 0 R /XYZ 56.6929 794.5015 null] +/D [1915 0 R /XYZ 85.0394 794.5015 null] +>> endobj +646 0 obj << +/D [1915 0 R /XYZ 85.0394 769.5949 null] >> endobj 1918 0 obj << -/D [1915 0 R /XYZ 56.6929 752.4085 null] +/D [1915 0 R /XYZ 85.0394 744.3535 null] >> endobj 1919 0 obj << -/D [1915 0 R /XYZ 56.6929 626.6031 null] +/D [1915 0 R /XYZ 85.0394 712.0918 null] >> endobj 1920 0 obj << -/D [1915 0 R /XYZ 56.6929 566.5511 null] +/D [1915 0 R /XYZ 85.0394 645.3077 null] +>> endobj +1921 0 obj << +/D [1915 0 R /XYZ 85.0394 572.4552 null] +>> endobj +1922 0 obj << +/D [1915 0 R /XYZ 85.0394 472.7274 null] >> endobj 1914 0 obj << -/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F48 885 0 R /F39 863 0 R /F47 879 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R /F53 962 0 R /F55 970 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1137 0 obj +1925 0 obj << +/Length 1422 +/Filter /FlateDecode +>> +stream +xÚ¥WMoÛ8½ûWè(k–ß"nëvS´I¶qmŠ%'BeÉ+Ékäßw(’Šd3ñaaÀ¢ÈçÍÌ›’D~$IMu”hŽ&"Úìf8z€µ3âd^h1–z»ž½ùÀ’H#-©ŒÖÛÑ^ +a¥H´Î~ÄoÁh[àøëõûw‹w7×>®®ç ¢yÂãåííêúýÕ÷ù‚ +  ‰qüeyýmùÙÎÝÎ5—Wwó_ëO³Õz€5†N03˜þýø…£ ,ø4Èi%¢#¼`D´¦ÑnÆC‚3ægÊÙÝìŸaÃÑjÿiÈ\($(—àŠ¦a”2 '€Q?û‹’¿¼”ñ×¢5v¾ù ÄH\H¸÷"i–5yÛžúƒ`…™ˆh¬õ Û ÇÆ* C W'èîöù¦ø‰1Í[ˆÅq÷˜›‰¯ní„7'*6û‰ãcn'¬]Ææ$q†Ué.ÏœØ cˆ(%TY´]^¹Ý·ucõoêÝ.­2;»yL«*/ÝK ãMWÔÃ7=žzD±DT3îT5U¶ à¡ñ„9d€T"bxAÒBÐ~mÝ{HœåÛôPvö¥hí³ó«e]ïïÓÍoû6õ Lš ?‚ÎRÀ ⃔üu6Ž¥^fã Õ³± °Q#B…Ù汩ë.+š3:$‘úupƒTÝ„Ž*Vt +ï[››ˆk‹îÑŽŒWÏ+RLù Z¤¨Bàh"}èë½aŒÛ²¶ÏÖ°ûd_RóP±±ÜkÓÕ[y•ñB#L8¹ÌxꤎEYÚ­›¹Šx¾çqÝåÔM.d¼tKi¶°¬dÅX+5¥eVÛR³§d{\Ò¸ÞÚ™Á…L0)…¤Jè(5Ðïü)^@z°!]xØö>·ÏcStsCÛwë¬2íŠÿœDïðHŸ+íÔÍ°ØBigG…{‚JØÿDë¶>ôåÁL=YïÖSyðŽíXCZŽ¥H Ò‹µ #­™‹`s‰°PúÉXê• öR=Õ¡~BÒÂW°C›Ÿe¯¦ˆku— +à»@'P.õ .—º}´úÔ•ü¥Ôå(Iy5uÁÉ”èÓÔ˜Äã6ïž¹Ýêc•7n¸=Ñ?á=a=ë¿À{Ît ¬iOÕÉâs¸eS1µo©kSEçÞ³Â6âc¶7wÀ±PÒ5–‰‰Á²·ú¾ürûÙžöN¬ÇöNlñ_›ƒaí •e} ø”C×dš\hç†CÜ:·å½³þ`‰ +#GTUNN‡¾ŒŠþ˜a¼øp€@ýþ²³®`÷J¹)]H8Ô`jB“ Í`à.`§íƒ)ŽŽÂA¾cÿU2ñÃ2Þ7EÕÙajmºÛ—Á‚NczÌk£9Dl‰€Ÿòº×`*ªlêÆYöu•ÕC¨õa†ÎV «kê² ÕL`mB}y2J»ÁHßÐà iÎ"ñ +Û2p—W†¦sç™C0´-SP'$˜P'nØ癿[­¬žåç»›ËÉfvÿ‰VðG> endobj +1926 0 obj << +/D [1924 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1927 0 obj << +/D [1924 0 R /XYZ 56.6929 591.7686 null] +>> endobj +1928 0 obj << +/D [1924 0 R /XYZ 56.6929 465.9632 null] +>> endobj +1929 0 obj << +/D [1924 0 R /XYZ 56.6929 405.9112 null] +>> endobj +1923 0 obj << +/Font << /F37 747 0 R /F21 658 0 R /F55 970 0 R /F23 682 0 R /F39 863 0 R /F48 885 0 R /F47 879 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1134 0 obj [650 0 R /Fit] endobj -1921 0 obj << +1930 0 obj << /Type /Encoding /Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal 144/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] >> endobj -1483 0 obj << +1493 0 obj << /Length1 1628 /Length2 8040 /Length3 532 @@ -8480,7 +8532,7 @@ endobj stream xÚíte\Ôí¶6Ò ˆtÃÐÝÝÝÝ¡Ä0 00Ì ÝÝÝÝ’‚R"‚´t ÒÈ‹>ïÞûüž³?³?½¿w¾Ìÿ^×Z׺î7¶‡Œ5Ü ¬‡¹rðpr‹ t´P(ÐWç…C­fL9g0ЇÉ]Á¢#°5@ ðòxDDD0rp'/gˆ­+€ù‘ƒ…ý_–ß.+¯ ‘.[€ññà …;9‚a®ÿã@=0àjØ@ `€œ–¶‰Š¦€YIÓ †P€¶›¨C@`˜ ˜`w@ÿ:@p˜5ä÷Õ\8¹d\@€‹y {‚ÀN¿!v€ØÙââòø €¸l0×ǸÂêfý[À£ÝþG“3üÑÃñ{$Ó†»¸º€œ!N®€Ç¬ÚòŠétµºþÎíy„p›GOk8Èí÷•þ`4¨+s¸‚=]粬!.NP ×cîG2'gÈn.˜í¿°œÁ¶@gk(ØÅå‘æ‘ûwuþuOÀ¹=ÐÉ êõ'þÇëŸ ®.`¨ '&ïcNëcn[ “ë÷¨¨Àlàî¿ìÖnNÿÀÜÁÎ -Äü{fXE­á0¨ÀlƒÉ¥ w}L `þŸu™ó?×äÿ@‹ÿ# þ´÷×Ü¿÷è¿,ñÿvŸÿN­è…jÁ‚ÿxcê€ßÌs:B ^ÿÎýïžFà¿4þ;Wàc!d`¶Íàáäæù €¸(B<ÁÖÚWÀ}¬Ô»Ìì …ÀÀýSL7÷ß0};Èö»ôA`˜õßå?6éx.}yM¶ÿöªrèA§Ë‚GPè¯íÇ9pÕ÷rþo:# ¸õ?¿ùdeáž^7Ïãú=*áðû7¹ÿñüë¬tu†x^psr?Fr~ÿsÿÎýOÀìo4 +Äü{fXE­á0¨ÀlƒÉ¥ w}L `þŸu™ó?×äÿ@‹ÿ# þ´÷×Ü¿÷è¿,ñÿvŸÿN­è…jÁ‚ÿxcê€ßÌs:B ^ÿÎýïžFà¿4þ;Wàc!d`¶Íàáäæù €¸(B<ÁÖÚWÀ}¬Ô»Ìì …ÀÀýSL7÷ß0};Èö»ôA`˜õßå?6éx.Su¶ÿöªrèA§Ë‚GPè¯íÇ9pÕ÷rþo:# ¸õ?¿ùdeáž^7Ïãú=*áðû7¹ÿñüë¬tu†x^psr?Fr~ÿsÿÎýOÀìo4 0Üú÷äè¹aÖÃöOÃoäæìüØã?ûÿxýœÿŒ=ì a.ÌÁAb¡ö™9Y® Ä£ò/z{xÂœ*Þè—ÖÁ»2#×Dj,ïêÃ8›ÇEµyÍî;Ýoª²n öA™ºÓÁß‹(üèX>ã.3v±ms™W`gÅúϨ¯"› rn­êèš—ß¡RŽwð9£_²Ò¹Ð_8=óe4%v>oFÀk(Ù?`LÙ½¼`êú4ð±ûåÃ&9[~ƒ˜;26cLà«|r)Sƒj…×Íl(ßÛ b¬Å7ÎßÊçÏVð™h9Žù,¢I‚°RÊ• e®äß·RÆ%=²ìÙ êt›œ(†Ì%³LÇî)®Ž>1Ù¥‘„µ…^Ñ2¼éˆO£Ý %õ‰>•pjÕr{2–ÂwÍ<–g¬™-j—!3cäáakIè,AŒ$ÁLˆÇÆ‹J¯³nöùU»Ïm›Þ‰D3 @@ -8503,35 +8555,35 @@ $O t‡Í=žÝbóÆÃwî6ß"£“˵?”JËOP2RÐ oQo+†â1)©w†¦ÜèådîI½ÈZ¿VÍ­(e÷åû È"QÔüFØs(úF$'‘qL ®/¶!õÔ ¤HvkÖ‰Œh¼È‰¬ê؉á¶o?Ùa:Šÿ±qêcŒ° gã!_QÇ~ÏWê¡1üaœ¯UÝGmã§Yñmn%ìRãr9÷¬ß0qˆ5†/‚E…(êÚ“†,W‚˜$Ù½ï¶åçLxËÎÔ|ú奕£w†Z|ÂV€ãž÷,éOd ÞyŠGÝ ŽÎ¨Ý3lÍ4©¿Î\×T2Zª½Ag—.7Ù#ÏPæï™v¼eŦQLÞ»±Oþ¼Ô\’ ¬ÿĵJÅñ¾(š3Ç].Å*,MÎ>ÛBx(ÃSÃó|D³uû‚Þ¡ï†{:Ò‘Á¨2G9¡Cê{É•<|?ÒK áéá@F)Ø,êw÷ó?È ¸¢Ëa„Çh%Ù±o^Œñ{‹6™Ý @¥-«ä%Å~jÉwXjz1îi´·î¬%uÕ3^¿±g¸`d+ÎK[ŽDe—„]âò†YèÖýÇ?Ï>£³HjË,èkѸÍhÔ8Š” ™v_Å [ªJÖ®²9m=·âú?\‹k>¼à¬‡¤*³Ñ³ž,Y ê<‹ý¹uÓ Z/ZV$S·é#ƒmNOš¨5M@¿§rãÝ0Hõ7¬&7[àçŽAØñêOõƧÈêÚ5±pE6~d»Ž^.x¨T1¬µ¤$£Í7¿ÿ4òÆêüj§‹G1¬èípoóÌ3³QýÐZ:œNÍÆéç,0½‹Š‡Zg‹ðâ£à)‹Q©¯³‹X""œÛÆ0ÏÁ¾äBvFA‚)Y9(ÎYÖý…ì¬S…|¸Ôü¾“qbæÇN.LÔX§…_ï‚¿œ%%½¥åŒìé|°D>W²7}C–Í#—ZR¸­$º`bÛGο…a¿9gÝS%\”Á/œîñhC|?s§ Ø…šg¯ÎÙÈ)ª¬m}ÐvÖËk†Ÿ.bÉ&O üõí+uqfº`Îa‡„°£â,I§ã¯½/‘˜÷ÇÝ›Á¤'P6ߢH‚Ú?÷›½šÙ¹˜Žà9¦ŠmHr7:pMRYŸ#£ 'æW¥¿ðKCß|-¡mWÝ躖nᲶË0–«ÞÐ3äÛÙ=j’¸Ë-,n–³e±€¢üb½iÙ;‘˜Hâ°l<)žL.ßÐYÖÿ°Ú·)wL=(‚Œ£± L|)=å'ÀÆ-Å@²öò¾µ<ÃNrä³6îµEôʃ3±d¶kÓ»¬ÿ‹%ôµøü·(kD~ô(¬_yñ‡Í; ¯åä²fùOî{&*‰äyÒ¯9ÛB±T¨d>è.òY[a-³ZyÏ•px9ÝØÜ>穾„»*|,4°ç Žð=Ï añŽ©{ZwLVqžCÅo, H;ç_7Gg[åGx d½DŽ…*~ÂJSÛ/ *ûÎÔF‹µëújQ‹jw Ý]_-Òq;Œ,1t³õ2ߥÆíËòê{:Ö§Ùo$<×ð¬žôôJ©Àëóüλì„b›F=ÍçåcT”u;ÐuË›÷#³»Z1q“ÒYÖgHŠ^fiyv|‰¢,PkŠA±¢FH£s^…EËRôƇnQWEÛt%Ú·y3™{æÈŒõFbKã<%Æ)â"-L+{墒zS'“#é²ÊòZÃ+•÷U­Á׎#Ç©ÃCcæHŸ,êä;÷=íÏô .óYäg:¯jÔn¹¶Æô×êS:c¤¬UºW¹Þ/Ëf¹ŠšcO¥ÛøŒM¯lD‰Á¦9²ú:­ÈùÈßÛ˜ìÑËr6½õx§ç±2ú]úS¹‘ p7O¼,j1îöÐËÚ{ž$ªS7O–xYŽróæs÷â»ì(è˜Ýš‹ÏD‚@§­Y#žC²L%¯íáž›1A•Ã¸©3¾~M+ÖAîDí>¤¶¯cãµã-Nˆ¥”ûÚÔß ÄÖtzâ"¹tãØ'>(˜“”hSðÕœM]ˆÎÛ…0ìŽ ñâSPÓKD³—dOj nÌó®|KHtÞ‘Ñ+㢟S'÷@6„iõ“¨C,÷ág3B½žpÖáΡÄêφÖÑn‰Ü;ɦc“ _7T,Q1çTiHøBÕWL8­¡¾  ,œ²£.±ß u2†)¶=–Oš ¹ÿêÚ´­Ùê², Aq¨¿râ^T!1í¢ëç2)áN\§‹¬‚)æÄËR…Ëbž÷ž6Cb5ü´çêÞ›Ô;ð¶¹mH“üÅL¸^Ȭü¤Ý¸Ê {>«m@Ë›ðzéN‹›´×»ÔÌÃBÿ]¬—š@)õp[jÊâá…6붡²BSHQøר.öØ«N÷Ž`ðG¿§zŽ^n)?ìû±«892ÉÿxÈÌÄ÷Ù%¼­Ø3ÕÎZJðô]\ÿ^¸Äé„SXA㣅¸r}[(â0Ò@¥elöÉmi¶ö­EWÕ9úQѲ´ˆC¶Û¯µAñ=°g>MF{Q’= †*Ëk¨+™×Øõµk¤i@ïħÕW:x<›ó"Í}<=<²šC½Q¤4Æð÷i©UµSöA-ÒiMÛk×qnñÔÆèO“¦R<)D¾€÷/ÇT#î¡ÍM© Æ$ÖžåÔ3³Ð¿Á¢\ç{Uª÷Þ<UW=ˆ$®&<ƒªZ€0óØÒgÒR*¹ÉÒO¦1‘'£ùŽŠj*5wË-·‰ûùT j4ÝióÍu``òh߯µ“K…ݻʔÑk‡‡A›”ôÈÔDôìtk¯ö2ÅÛö÷ú—¨§$ÌöZ¥ï@Î^ùÝêõ^E~§”Üúí¨u4߉<*ôŽ±§¸KJßùy/žn•C*}…ÃåLgI£J·8jŽ[“Þ³ ”ØT7%JÈOïä,Á!ØžÈ+ÌÁ¯f—ÉȘs‡h`Úq¢O”1£<ƒ3(©dØOfBOŸ º'"p=Q£B¿âäpJ}ÝØü™ŸZ®¤!p{òëÈa}÷qÑ¥³äƒ£DKXôžòxÇ(žÏÑã ©¨“{ÏçÉšj¿dqX·ã·ŸP¦Üv£ä£Ï€³i¬¾AÕ;³@øyŠ*œoLœOœÕøë…ú¾›ºxOÛÝËc -@YšUʳªø;žBiäMÖð.•\rž;ùU´¾Rø'î…ç)眄š˜ …@ƒi/_ A®ÉéÙêr«0áFx<×Er;¾zÇ´UÏšøSÂö²Ù„.¥mô÷Œhâæ¨É2Ø’ç/{I;õŠjÑm÷¬ -*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}U¹ôZø: hÁ‚)8f÷EµÔëÛDäµsüð¢ qTMŠ:ù‘ɸX!±l®ûÔ”Ëû ΄,ñº17ýbŸgûŸ&fܽ×Y'jeAt ]ôÛïwV^þ%ÑåµÛR¼”tμ‡Ël¥¿é˜¦j¹„‚øϸ3èm>YjŸÖCƒÕ¸ÄžÄÈÊjbÆn“ªŒUý©?ô‹ïðu«ÈÃWøìý#ë,M€¾ߥJBQlŽ‰âXè-ebtxÃ]€s<—ÿ¢:XÝQ…¸w¶²-N;N¾?Vl¤‘vG‰…,Å%ë9êçöË'bìη9|1.…±!]¹¶DšÏó=RԌݬ¤Iˆg‰=Åh_ìŸ5rÿ/˜ÿŸàÿ  tv…;0ÿd õ©endstream +*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}U¹ôZø: hÁ‚)8f÷EµÔëÛDäµsüð¢ qTMŠ:ù‘ɸX!±l®ûÔ”Ëû ΄,ñº17ýbŸgûŸ&fܽ×Y'jeAt ]ôÛïwV^þ%ÑåµÛR¼”tμ‡Ël¥¿é˜¦j¹„‚øϸ3èm>YjŸÖCƒÕ¸ÄžÄÈÊjbÆn“ªŒUý©?ô‹ïðu«ÈÃWøìý#ë,M€¾ߥJBQlŽ‰âXè-ebtxÃ]€s<—ÿ¢:XÝQ…¸w¶²-N;N¾?Vl¤‘vG‰…,Å%ë9êçöË'bìη9|1.…±!]¹¶DšÏó=RԌݬ¤Iˆg‰=Åh_ìŸ5rÿ/˜ÿŸàÿ  tv…;0ÿõ®endstream endobj -1484 0 obj << +1494 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1921 0 R +/Encoding 1930 0 R /FirstChar 67 /LastChar 85 -/Widths 1922 0 R -/BaseFont /IQTQDN+URWPalladioL-Bold-Slant_167 -/FontDescriptor 1482 0 R +/Widths 1931 0 R +/BaseFont /AUEZLU+URWPalladioL-Bold-Slant_167 +/FontDescriptor 1492 0 R >> endobj -1482 0 obj << +1492 0 obj << /Ascent 708 /CapHeight 672 /Descent -266 -/FontName /IQTQDN+URWPalladioL-Bold-Slant_167 +/FontName /AUEZLU+URWPalladioL-Bold-Slant_167 /ItalicAngle -9 /StemV 123 /XHeight 471 /FontBBox [-152 -301 1000 935] /Flags 4 /CharSet (/C/D/E/H/I/O/R/S/T/U) -/FontFile 1483 0 R +/FontFile 1493 0 R >> endobj -1922 0 obj +1931 0 obj [722 833 611 0 0 833 389 0 0 0 0 0 833 0 0 722 611 667 778 ] endobj -1297 0 obj << +1303 0 obj << /Length1 771 /Length2 1151 /Length3 532 @@ -8539,42 +8591,45 @@ endobj /Filter /FlateDecode >> stream -xÚíRkTבª¡¬òRIÕzX%rÉKCH(`€"†¢ðFbfB¦Lfè0@R">¨P•e‹.yŠŠRaU¨”Zbn_¤U„KX^‹T­Š€¯XWWéÏö×]÷œ?gû;{ç;›á¦ðCøXŠc¤—Ź\ÆåêÌáÐŒV‘ŽªHX¸B¡'X†Þ -Àˆø+D|ð$iIàÀœ$ €XˆZ…¹ŠÔÂ:ª†Z…®F`ÒÀbë&o¤‚up*L¤Ã‹ÆåQ“`œ„`4ö¤&¦Áà ¥¥¼M¥ÃD*% -¸MÉdJ$„c¨@°†ÆÅ©n0¥åŸ5½¸4 ECUºÉòSNý%¯Ò!¨áw®KI#aÈq&°éÔHø89 !iºéY©BµKBaàÁ]Éâ¬|ƒ#©RDCa©Ö -M…§pƒ¦+¡ü›ÒÁö—*ÃbBÝÿÚ©d˜ -ÁÈpC - 8°§bî1eèA,‡Åáp)"µßžâ§5“`jB°$Àã{A¨ 4jˆ¨ˆ2¹Á X`=¥˜ÍÂp’º(g²'h“ÿêÉlNMDß<ÀNšœ=ʽIì¯Oó÷Çõ™+xÀƒÇ§ZqVzŸ“ý'¢: `ŒœÊ ·±¡<…a=¬¦™nàjï-ï=µ­6GRÝuÔš™º°ôð–Žs[O–z³†û¼®M?„Ãüj¿Õþcä˜]ÉHÈWlHÃ履g3ì­½öF['få>ŬêḄ—ÊÛÛÞÓØ~×´ØœÒäþàGקwÒÏYׯ¹ÇTÑG -fÖÞ¼ñòqNòÆÎ~“Í—ëP -¾üôš=°ò¿wŠ®LÜ«qSÍ¥ùqûž:¾2ÑÛn÷$ß²-–Ë­®—ú¼˜Ãaê54îþäŦ¨2áj…höBÏkÊŠR`ñ¾Ki”oKsˆü—ÙƒÝLá Ké»=²¼ì’àHYÄè‚£•êÚ¨OP Ýnh‹iÕùbòÍ kó’ºx>ÅÜ”¦=Œu‰ã/¿.Ù1óIüóç}Ï^Ò[¨3],œÏˆt÷Úï—îæ>ÌìàЭ¯~ft‰Vi¿¸KŠý‚ûlV¶ëþí7Õ2&QÂë¹N7Ž|æjâÑî‰Æu{+þ%qÿºÙ¸;N¢·F_Ä>¨zøóÅÖÂý¼i@l_â™ð›î—êÏW:ÖåÏŒ76K¥ÕKšg㽃þó]|zϵÇ™Ãv§éB¾è¾öl–b|Ñ1‘çžÞC?”D›F{.ʱÚ¼ y'ë~øòL¯_¬Î…Ô%º¼êN¿Ÿ·l/žå±voò±ÚÚm:Ã#áœ=G… ¹VYgŸˆ›¿Ó”E Þ-dãÓåÌvÆúËuH»¢°çU‰,"ÚïLkF`æãã™é¼3­ç{Ç%½êñ=¼î`Mæ®Ý\¹hûzšÈf wPHO‘|Z’ózËhoPš½¤¹#Ö„Ý=Zzûû~D8¸ùìAû4WŸ¨¯–ú¶ÒëÏÿglÕZž½&<“ƒF»XL0 –*]r2_òW%¹™œrÇoeOœ1cKJá6)É8ôòDu‰’cî]uÒÓ…\3V%ÂKe§Ðå3nÏ{\âl~Jl:p5XÐX±ò»U3Z9ás§{"-×ñòHAçO§WÈ5ò×±Š=‰ó5}×¼Œæî²vú·-§?Êüœ÷ũ¦MóˆPYô¥¶cÛ5Ç+ÁJ[ws¤PÏ{v$ª3ÏêÝì‚Õtú'XáÒú1ý¾úà2sÿ‘3"ÞÏ7ÞqS:—IJ^YF+ë‡:,ËãñDMꦆÂݪŠm?T¢DYxžºýVÂæÕÃòúÆã»l¶sj³Š»çæ·ÌZ¸cÓN–¥+*¿Œñ='ÈKWž•òûýæ|뺸HKB Ù'†Š$5’îJzƒ³žù}÷ôŽuàè’Ç‘gJ òŸ›µ}§½*Še×»Ä7Ûv3êºÑæš²üÝò¹µëß ²;ÔqYtÕÎgWGqÿ“öqú2òūؓ˾6$q{ -µ®É€°Ã­x mh_“C»+7W\æß}}çˆ6¡±óZyîOX„¢‘>Ñ^½o7"—íÛ>‹X,´šuïƒ+ÑŸ~“X#;/i¿ÚûùèÚ‚¦x63¾ÈCE®êáÏ3mx’v(¯š^7Àù›‹öÿÿÔ(¬"H\§"’i¿팦endstream +xÚíRiTSבª¡¬2©¤j=,Œyn4„„H! £ soÈ-ɽôrID¨¤*Ë"]2ŠŠRaU¨J-± +¯€iáËg‘ªUpêëê*ýÙþzëóçìogïï|g3\Âå,1Œo@¤8F² 6$þ2Y0Äԙ˥1þ¢ Q Pˆ@B¡X­ÓÞ +Àˆø+D|üñT&«IàæÏœ$ €X‹¨R™‚T#Zª†R¡r\‰"¤ Ä X;y# ¬EÒ"Ù40ª$Á$ÅhœIMÁ˜ +‚70¬K}›JGˆ4Jp›’É”HÇ4#*' §º!”–BÖôâRF¦ÐN–Ÿrê/y…Õ~gàÚT‰@†ÃM§F#oÄÉÕi§gƒI…UŠ±d XÐJ6wåM“¢zGI¥¨š4d +G0xºÊ¿)œPÿ@™4Ìý÷¯J†+PŒŒ0¤"€û{*†þˆ)“Tâ¸l.¢ˆÔ~{J˜ÖL‚)qÅ’ï¡0Ш!¢">È„ŠÁˆ zJ1‡á$uPÎdNÐ&ÿÕƒ 8$-m}ð'yrö(÷&±¿>ÍÏ×g²Vð‹Ç§ZqWzŸ›ý'¢RGFNeÐÛX…Rž"ˆQÒÌ7p¥×–÷žÚV“#©êÌlçÒ­¯~fr‰U¨¿¸KŠ}ƒzmVÛ´ÿöíÏj“áõ\§G>s5óh÷DãÚ½åÿ’­sÿºÉ´;^¢·Æ^Ä>ì¯|øóÅã~^¢Ô?®7éLÄM÷Kµ ç«kóg&˜š¤Òª%M³ñž¿ù.>Ž ½æÚ‰ã#€z§ùB·¾ð¾úl–b|Ñ1‘Çî^C?GšG{,ʱÚ¼ e'û~ÄòLÏ_¬Î…Ô&:=kO˜¾Ÿ·l/‘ÅZ³7åXMHÍ6­á‘pΞ£Âú‡UyÖÙ'â¦ïTeD!¨s Ùøt9³±þrí#Ò®0üye›ˆõ=ÓÒŠØàññÌtÞ™Öó½â“_uû^{°:s×Æn®\´}=MdÓß3 ¤§J>-Îy½e´'Pgc/ij3cw–Üþ¾l>{Ð^çêóÕRŸzÝùÿŒ­ZÃâÙ«"2¹šX÷Ëþ Ü\©­ubÀNƒ—üÉnfg“ÌñÛà'Θ©9Õ¸MJ2½m³ˆÅB«Y÷>¸ûé7IÕ‚±ó’–„«=Ÿ®Ù!xaNà0 +Y +rU7žyÓŒðCyUôÚ~îß\´ÿøŸ( Ô +‚ĵ +"…ö#FŒ‡endstream endobj -1298 0 obj << +1304 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1923 0 R +/Encoding 1932 0 R /FirstChar 60 /LastChar 62 -/Widths 1924 0 R -/BaseFont /BFVPZN+CMMI10 -/FontDescriptor 1296 0 R +/Widths 1933 0 R +/BaseFont /LCGMFN+CMMI10 +/FontDescriptor 1302 0 R >> endobj -1296 0 obj << +1302 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /BFVPZN+CMMI10 +/FontName /LCGMFN+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/less/greater) -/FontFile 1297 0 R +/FontFile 1303 0 R >> endobj -1924 0 obj +1933 0 obj [778 0 778 ] endobj -1923 0 obj << +1932 0 obj << /Type /Encoding /Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef] >> endobj @@ -8589,7 +8644,7 @@ stream xÚívgPTݶ-HPPÉ™&çÐÉ™–œƒº–††î&K(HÎQÉH ’sÎ 9#$ˆ€øÐïžsn}ïüº÷üzõvÕ®ÚkιÆsŽ¹VmVF-]^Yª„p@óùž4`ö–Î(]°ƒ¯ÜEXYå‘P0†pP£¡O†P@jÅÄÄXòGw$ÌÆ àÐ×1ääææù—åwÀÒýžÛ(˜€íöà G8ÚCзÿãºP(m XÃàP€¼¦–1HCÀ¡¬¡P†:@‘`8@ËÙ³¨Á¬ (('ÀÀÿZ¬ØïÒP|·X²(€r„ZÁn·Aݬ Ž¿]<G(Ò†BÝ~`(€ 쀾í€9XÁ!¿ ÜÚ­9"·ö·¾[0- ²BÂÑ€Û¬Z -JñDÛ‚Ñ¿s£`·nÂú6‚°rþ]Òß-Ì­ †9 h¨úw.K(C9ÂÁî·¹oÁ‘°?4œQ0›1à ¡6`$E¡nan±wç_uþ[õ`GG¸ûŸÝˆ?QÿäC£ pk> àmN+ômn˜ÿïA9X#@¿ìgÇø\ È? âø=3œ·$À„ÜZðk з)ÿ3•ùþs"ÿ$þü‘÷'îß5úo‡ø{žÿ­ä ‡k€ío௠p{àj€ßwÌÿ ¶‡ÁÝÿMôß ¡1üw 4ø¶ ²6·Rð üe„¡”`nPˆ me °Ão{ôÇ®ï"á0è­–ÚàŠˆüͧg ³²søÝôÇb\PÈß™ßÊó‡7¿¢–¢‚÷ßoÓ?QZ·ª£õÜo‰ýWêÈ?¿1äänO^ ¨€WH@ôö° ĄżþM¾?@À­ÕÁh$Ì ðü¶hàŸÒÿëý×Êìo0ŠVÈï9ÑEƒ ·£õOÃo·•3y«èŸÓ~[ò?Ö† +JñDÛ‚Ñ¿s£`·nÂú6‚°rþ]Òß-Ì­ †9 h¨úw.K(C9ÂÁî·¹oÁ‘°?4œQ0›1à ¡6`$E¡nan±wç_uþ[õ`GG¸ûŸÝˆ?QÿäC£ pk> àmN+ômn˜ÿïA9X#@¿ìgÇø\ È? âø=3œ·$À„ÜZðk з)ÿ3•ùþs"ÿ$þü‘÷'îß5úo‡ø{žÿ­ä ‡k€ío௠p{àj€ßwÌÿ ¶‡ÁÝÿMôß ¡1üw 4ø¶ ²6·Rð üe„¡”`nPˆ me °Ão{ôÇ®ï"á0è­–ÚàŠˆüͧg ³²søÝôÇb\PÈß™ßÊó‡7¿†Š¼¢¼>÷ßoÓ?QZ·ª£õÜo‰ýWêÈ?¿1äänO^ ¨€WH@ôö° ĄżþM¾?@À­ÕÁh$Ì ðü¶hàŸÒÿëý×Êìo0ŠVÈï9ÑEƒ ·£õOÃo·•3y«èŸÓ~[ò?Ö† uƒZ|™BX‰¼LLIB—Qdt ( Ã?V1ñŸx£+w¿³^õ9’e‡Ð†ŠÚ¥ÍäÊu””7œœ¸äN­Ñ÷ˆ¨/ùŠõ.‹ú…'Ð)á0äPùÝÚ…ke ¸éÛR§ö ]8sô&sß±­|*åŸî#>cÕ¯‡‹úœ‚ œEëÑymeê÷AÆ€>8m„ 1œ4¬jõõr¦XÜâd8„²³¤¿V>M¼çÀ7ÁÜ&N\€*ÄJÒÜOµøï8•^Ýçôáö¼J%qõ‡ ‘®.µ&у;ìXBÒ0ÊÚcVKŸ0-SÛ·ߌG?óí·Eƒòñ(€(§¸Ëš’=´øô•ú+y\J6.æꔋ‚œÞ»ó^eúÞ‚·V„(õb*$Ã=AÁžéÌmEéïa9žoñ€Rý3™ÙÑS×!÷8ÎãÒ9‹ÅÕçÜrƒÅ£‘C™Äù\‹-ÕÕ²k±ò¡øáÃÍ8 @@ -8621,23 +8676,23 @@ QH; ‡á{__bçâ.°ßþºæó}<¯½kb¶Þý9\¥™àpDË\TL[\a·¿«NüÆW¨œµ>¿¥t®tÉQÀRD‚!$Dr£G¢1¸AÌý¾ ¥Y í–.ç#_©ØÉ#¬w¥Å¹ò«|Sþ?Z:è:”—fÆ×’¸ʵhúÏÈ×XaÛfÚœ¯Ú3™B¶“—£Ìü¤‡uቇôä·ÏÔϾʉltãp)’&ÿT+p•°e –íZ­M31I¡ÒÏL«êÈcýªG’«ô"Hx¾çS•ö$Û_Œ*[£n~OYgÚC¢ã® ø LóÃI8GU–¿Bã¡\‚–Ÿˆ{éõ´Sû›7M‹Š–…;ûÛ䃵h¹0GQœ&÷ <‹"œ_ý¼ÈAze‰ÀN2ÿPÜJ"u]©¶ÕLòs.}æQùü‰iõHö5¨ñ‹‚‘öqLðëƒýUj[’ =Á®…1Ñè²YÆHOŠåoq ’„!¿‡RÒ¯¸ð%ê«~u¯ ³¿0Š×·6î;>nE=m½aÔ\{\ÄcïQq”&T/bµ^þü‹}m“¹ò A’ü陈×O/ÍI>c×b%ÒÌ&ìýºªú· ¶mJ;û7žb{ª6eC‰Æô_è<@ÀbW’+Q'‘šäçÚU›‚ݧ/ˆ+ƒË°a*¦Ûåõú/5 JÔ†½ó'lï 0Kf›/Ð^‰ˆÖ½žO¼¡M [If§€ãC `æÔbï1}ÚU*÷i g#™HÓÄ+¸"î2X|F#êLq¶ÀØÙªþr#g <¤þdÑ _IÒõ.˜ê¢Ï\9¾§é-xÚÖ-9?›ìÐv_ wóý}¾éH`…Ñ'>Êß4¬>äŽT‹¬ÌÛúGäµGÔà…$Í ï‚7LI›u`žUJ2ì„΃79ç¯~f´lá­ÊΚìïW 5?|¸':U—.ûrJo ÇÓlÔË5áAÜçxE ³º×ا‰3Ç•ÚTñ#åKþtâ•.iKW@ö/É›ÔÑ÷ ûj&Q ¦Œ²È˜¥t°Èð§Äh-ؤ1íý b?e¾™F Š– ÉXrÙ/&Šjz©¨rAÁM°re.2Òe%ÉÍ£™6"5[¹(H4 :\mdb“™[i:ýP½2“¿Ýä÷ö0JÑ»pÕh¯QšQ¨ý±Qó_»Ã7;mþã«÷Aú^ÁÐ; Ó èvñ¡Õñ¥ã«*’Hóß¹,QëtT½}…ÁbWý€g”ùxÔ$Ó¬GÞ×™®'}¡uÞói õ´’D§ùõ; ¼xðÞÔ¡Æ°~. °öâ%ÅÅ4O”˜»ª¡ Þ»Bï­\ÿÆÈæ  -†ìvm…$t§³ÎLd?莑ˆ+í–«I&VñZ"-¿35MGöÊìä§7À Ñ4‰>ÅauA×W¯½r‚…`Hã×W{Ûw1Û®­¹E¥^["W¬%BŽ… >«íÜMÑ#nNCuy‹¼Hû %Tž,TÜþ0]4.ïdîžk0œPañœ„5ðY ÓëF–?ªU'?Õ‹«žäfü¸Š·Ö¤qCr®až1j,†º¿÷2Ó“=²õáÿ¶D4ÏØeÊÀ¿I Üóv¼vþ´b„dîÿ¼ø)xý)\+"oÜ´¦ÜD1å[|)h$úØûeGUeŸ?õ¾†Ó<åízznKB†Éd–¬ö…Àÿò!øÿÿOXÁ¡`$aFÚü4)èendstream +†ìvm…$t§³ÎLd?莑ˆ+í–«I&VñZ"-¿35MGöÊìä§7À Ñ4‰>ÅauA×W¯½r‚…`Hã×W{Ûw1Û®­¹E¥^["W¬%BŽ… >«íÜMÑ#nNCuy‹¼Hû %Tž,TÜþ0]4.ïdîžk0œPañœ„5ðY ÓëF–?ªU'?Õ‹«žäfü¸Š·Ö¤qCr®až1j,†º¿÷2Ó“=²õáÿ¶D4ÏØeÊÀ¿I Üóv¼vþ´b„dîÿ¼ø)xý)\+"oÜ´¦ÜD1å[|)h$úØûeGUeŸ?õ¾†Ó<åízznKB†Éd–¬ö…Àÿò!øÿÿOXÁ¡`$aFÚüGÇ)Òendstream endobj 998 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1921 0 R +/Encoding 1930 0 R /FirstChar 36 /LastChar 121 -/Widths 1925 0 R -/BaseFont /EVPEDX+NimbusSanL-Bold +/Widths 1934 0 R +/BaseFont /NHCECU+NimbusSanL-Bold /FontDescriptor 996 0 R >> endobj 996 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /EVPEDX+NimbusSanL-Bold +/FontName /NHCECU+NimbusSanL-Bold /ItalicAngle 0 /StemV 141 /XHeight 532 @@ -8646,7 +8701,7 @@ endobj /CharSet (/dollar/hyphen/semicolon/C/D/E/F/G/I/L/N/O/R/T/U/Y/a/c/d/e/f/g/h/i/l/m/n/o/p/q/r/s/t/u/w/y) /FontFile 997 0 R >> endobj -1925 0 obj +1934 0 obj [556 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 722 722 667 611 778 0 278 0 0 611 0 722 778 0 0 722 0 611 722 0 0 0 667 0 0 0 0 0 0 0 556 0 556 611 556 333 611 611 278 0 0 278 889 611 611 611 611 389 556 333 611 0 778 0 556 ] endobj 994 0 obj << @@ -8658,7 +8713,7 @@ endobj >> stream xÚízUX\[Ö-4Á½p'hpw×*(¤€*Ü!‚»înÁ]ƒ»kÜÝ/çôºoŸîûtßîw«öZcÌ=æœcÍýíz(*r%U&3[ÐG[¨+3 ±1q„«Cå˜T@掀'Ó“ŠJ â` úú‰ƒŒ ¶Pqc‡'^Í o °¬@> 'ëÓÈþW -Œ ƒØغ”@ ˜5úD‰Ûš:Ú€ ªŽvvÖ™ -në3Áùà§Êþ3+@ÌÖÎ1·pЪ«hÒ100þ aåå嘸þÅÄApˆ9@ý´pYÛÚý‘éIBÁžŠ6û#V l,aqø£]­…ƒƒ ‹Øô„1ÃÁÌP ÝS¡P31[›?à˜x&LŸšreù»oVP[g¨ûÀ`ÔìÏ–ÌíXÔ¡{G´øÿ?A˜ÿÂÌAN ÈÙ@.¦,¤TsµýI²þCÍ<Ýílí`ck8È=]0ÝáÆN €Ìäéþ¿ÿ¾Ãde˜AL& ó§cø—ú ÿc/o샸tÌ@ +øÇ÷Ÿ+ý§5³…Z»þ+\ÁØ`STQÖ‘cø{ïÿŒµ}’dbåæ0±ñp>MÊ“"/'ûßÿéÅ_>ü‰*Cþ§Nà¿$¥¡`[ï?Úyòñ¯–œ@0øÓlhÿc:À¿ë+Ø:@LAÚŽø45OÖÿ:RÿÆÿ×Áú{ŽŽÖÖºBû;O~Àr€?±6†ýG¸± ÄÚõ¿Üð÷@MÐ?¦ÿÿ #í`l 1š[ÿÓ&ü#Äd¦q0µøǸüå²ÙŸÏ!HÉùãI0±r²þS³€˜ZAApøÓYüI fK)5µ5ƒ@ͪOSi 3û'ðmêƒ=Ùóç=Ýû× y*r™bÎMÛšòû[Vú7]•‹83ýfïäR¿xt|Çf¸ÁŒÔ¡ðÚª€„#ãœ'Ò ¡R]dydÄ€H‰0ng+^Ñff4|‚ÏøHRAÄ{ÌU +në3Áùà§Êþ3+@ÌÖÎ1·pЪ«hÒ100þ aåå嘸þÅÄApˆ9@ý´pYÛÚý‘éIBÁžŠ6û#V l,aqø£]­…ƒƒ ‹Øô„1ÃÁÌP ÝS¡P31[›?à˜x&LŸšreù»oVP[g¨ûÀ`ÔìÏ–ÌíXÔ¡{G´øÿ?A˜ÿÂÌAN ÈÙ@.¦,¤TsµýI²þCÍ<Ýílí`ck8È=]0ÝáÆN €Ìäéþ¿ÿ¾Ãde˜AL& ó§cø—ú ÿc/o샸tÌ@ +øÇ÷Ÿ+ý§5³…Z»þ+\ÁØ`‘TP×”V`ø{ïÿŒµ}’dbåæ0±ñp>MÊ“"/'ûßÿéÅ_>ü‰*Cþ§Nà¿$¥¡`[ï?Úyòñ¯–œ@0øÓlhÿc:À¿ë+Ø:@LAÚŽø45OÖÿ:RÿÆÿ×Áú{ŽŽÖÖºBû;O~Àr€?±6†ýG¸± ÄÚõ¿Üð÷@MÐ?¦ÿÿ #í`l 1š[ÿÓ&ü#Äd¦q0µøǸüå²ÙŸÏ!HÉùãI0±r²þS³€˜ZAApøÓYüI fK)5µ5ƒ@ͪOSi 3û'ðmêƒ=Ùóç=Ýû× y*r™bÎMÛšòû[Vú7]•‹83ýfïäR¿xt|Çf¸ÁŒÔ¡ðÚª€„#ãœ'Ò ¡R]dydÄ€H‰0ng+^Ñff4|‚ÏøHRAÄ{ÌU |ØGè´£ÇÀNâ¨Ð× éÛb®=R‡äEÚTBbCøª¶DÞ¤W:›[öŠ¨$dEY%Š[Ót¼/oü¥¬½”ùP'û[Ä–~ X2­µc×42:Xµ{—%ÍøFSÓ]¢8œÞ“’˜•G&$ÚÜ|-C­l7…à›ò~»,Nv}»Æî,@HíŒÅfMè\ƒ•jLw~˜,rÿMüF]_©!Ìçªu¶KD]ÅîÅÑO¹÷šÕæ%SSJd2N„ì1«Uòêm!fÕá†ïÆ /ëÍ•‰×Ô8ê.Õ›O4E¢6:UB 5 ž Í..7’M%¼Ì¶#M´-Û\¶1êh߉PÕ;þSB%•N’ek!_>”þl€ýHåQ·8ÐmÕRëp9Þ”Ô3áØš`— ùÅ‚ÁZdžÇÑTæw÷RüÂR#Ö\¸å%u± œÝ{WܘòÃ`rRç&ƒæ°ÅPýþ‚9Ú=q…« yì†,ÝŸ÷4^¾ÿ*»Hg½ kt”PØLrœîZ`n#úíÌÁë5&×Å놄ØS~¡RÎyïþyœkô²Aªl–O#ZÏ6±ÚÄ®Z8JH’ð>â.¤}Þ<•Y8R¹j­år"e¡“@nª2i‰6r–·EnX$:ФBLÅw3[Y©]Ê’TɽÈ|ØZoóY*˜1N1.5"Ÿq}|Ã7ÇDaq*áüqdŸ«AåRkD6–*u!óÔ¸$&³^´ È ýÍ8¶öOáÏoëÓ‚úïLîÓ¼¿œ+è¶kÎ6ÙAÝ$=43Žºoô°Jü¨rOwVsr¶Ê¬ðšz¾Ž~ÿ²ºþëÁ‹êËõ-!蔄Wd=R9‹ò”l:VŽhÔïÀ³¼LôÃaìtþ8QIVæyU&Á¡û«ü\ žj_E‘{<óéYàôDËæúløa½ê£D–Îîç„xô?¹é$Ì|’"Xûü"rø—Xu[ÊÚ6·èNâ÷AŒ»®qmƒ½Éý¢¹Hx7žMxÃ_Õ[±½z ¼*K«™Zú¹úÕ°×Wý¢Øø¹.ÔR¯æES úLkéDÐ?«áäv%.;#•ûc~¨¹i @@ -8681,23 +8736,23 @@ g. Ú=;ˆðá:ØÓÏäÁÏ/én¼¡,*¢`\ÜäK}["ÊHTÆÞˆo`ÝÙýz„N¢ &j¸'µ2ó‹|K×c6Qén)' üÖœëv?.ßüê´–®PÌ£§åZ]GOŸIªvIbŒµ³ÉЄH\Ô‡óÉ}vÆé¾°å1ù{'¾ógâ݇ûmœ‡½*œ‰VákÑJÃÙ9ÿ¾<§µÈi¥ßgCL‚¶áX±rX¯=Gó‹Ûìö.BÒÓ oû~o‡´~8:_ª˜WzåHTº{‚,×d?u-ôR,ýá²ÍþcQk®‰î•üâŒ'ÄݹQ쪡³¾§Æç‰g\&ÚQ„#J©Yð#Õ²á[ƒËEßE(@˵¸x†üœ³/ö®:g]!$…US ](%v¨ åÑÜ팼`‰jî&^Ûœ?-ó@öùàjÙ÷<³ïlY?XRr$Š™£-ÑTù†~ŠÇ/0‰ÌB¯7Ù×ìYSB{@&A^UE s $DH@ ٦ϭÓ%"Òð9ÓPëñÞç}ž¡œb -ý¸Bçhµ0ÊnnL¿ñE~„éMÇv¡“LYd< gñÕ¾ìQ±íÅ EþoÉ|Ľ„\cvê´ -Y É4j"¼ÒÜçÞ»6ð¯ø»(~7qBËb“½L*&=¤ö4P'©ð·@Xáѧ†÷§€R§ ÙiîÌ#k]3§&M<~èêÆŽ¬y×–=¶÷.Ö}ìh"rr²Ë«À±æ <³$wt•°CnEÕ@¸*ùwN.߆Z r™LŽ:øõŒªOâTãPêŽ".!ÉMù?dð<Ÿ½h·Õð¯=B­›B] oº×dûJèoÛ°Æ°­TFØQêP¢úC@qSÁÅùÖ÷¥7_±¸Ôˆ ²»ÞÌ3å³_Ž¾«š’ñ #¼Ì‚ ¸~sOsÔ|ùƱ-J?§>8_@1.æXIg5ßRic¹RcÔŠª¨Ûý*GÆKVJ°îŠ<íãÞÐèHïñúa˜ô0ÂAYêÎÈÈ¿Ô-U@®—‘ì»Be×âwª\ò“C’.US>˜ôÓ»,Ø "mY)×ÿ» %´Å§o_)5ݘñÊÇNÑ÷`AG‰Ÿ9PÙ6R‚stñ¥³e›è©ü[Ueï¬ÐÆ9ÆWúÞ¿ë­QW!'M(gÖG}ú1ö%dyÓõz¹þm¤)9adz/°jE/5Ϧ`†€wƹc:…@Å“|_9,ÑçpSþ˼ËËg;VˆÁÆvÓ[¨™5–`Ú¢!¸(횈݆jª¾¯Òº@–î¤û ðÛ`¶ª&ÂU\ôqŸaá |\+.oø."—Þlˆ“Íèô‹qQõ»6Z7ZíBÏ‚$¿Y휅xÁ¬„×ez¹¦b ¼`<¤tI¥å}Y:½¼ù¼ØÅ„ÝB¹ÞVõ-¦»ƒ¹-†p¸•÷IŠËÔíò»Dmä¼CB˸hB®ºåD™¤L.ŠXG]GbK/aµT”Ú¼_¯‘p (5w»0|2¿}¶ºÊ5i¤™Ø×ùîIJŒ*D-dtš?Ý£üO<*$çŒ7}_Ø´·{MF~F~Aµüž è‚Ú;nU•nÚ—sûZ˜7ûÎKø§Ÿ‚%g¼À¢Œ[Fð}‰X]Â¥2ý¢–ä•z‹8ŽÄ¤5üµòDoÅ2µ_¯âÔ¤°mÿ¢šüj Ýîå]¼@¤FÝÎktdÇjJ×yÇ8x­öàvËÕ’í&jÏõžÇQL6¬w=ÄŸÂËUdçHßÌÜn t¿”è®þÝüÖv—ü³)¦h ?„K¤AØñì¶,á:  á®ããÛ Nàÿåóÿ ü?!`j 2†9ØÚì0Ýa ¸ƒ-ì>aþ/q[Àendstream +Y É4j"¼ÒÜçÞ»6ð¯ø»(~7qBËb“½L*&=¤ö4P'©ð·@Xáѧ†÷§€R§ ÙiîÌ#k]3§&M<~èêÆŽ¬y×–=¶÷.Ö}ìh"rr²Ë«À±æ <³$wt•°CnEÕ@¸*ùwN.߆Z r™LŽ:øõŒªOâTãPêŽ".!ÉMù?dð<Ÿ½h·Õð¯=B­›B] oº×dûJèoÛ°Æ°­TFØQêP¢úC@qSÁÅùÖ÷¥7_±¸Ôˆ ²»ÞÌ3å³_Ž¾«š’ñ #¼Ì‚ ¸~sOsÔ|ùƱ-J?§>8_@1.æXIg5ßRic¹RcÔŠª¨Ûý*GÆKVJ°îŠ<íãÞÐèHïñúa˜ô0ÂAYêÎÈÈ¿Ô-U@®—‘ì»Be×âwª\ò“C’.US>˜ôÓ»,Ø "mY)×ÿ» %´Å§o_)5ݘñÊÇNÑ÷`AG‰Ÿ9PÙ6R‚stñ¥³e›è©ü[Ueï¬ÐÆ9ÆWúÞ¿ë­QW!'M(gÖG}ú1ö%dyÓõz¹þm¤)9adz/°jE/5Ϧ`†€wƹc:…@Å“|_9,ÑçpSþ˼ËËg;VˆÁÆvÓ[¨™5–`Ú¢!¸(횈݆jª¾¯Òº@–î¤û ðÛ`¶ª&ÂU\ôqŸaá |\+.oø."—Þlˆ“Íèô‹qQõ»6Z7ZíBÏ‚$¿Y휅xÁ¬„×ez¹¦b ¼`<¤tI¥å}Y:½¼ù¼ØÅ„ÝB¹ÞVõ-¦»ƒ¹-†p¸•÷IŠËÔíò»Dmä¼CB˸hB®ºåD™¤L.ŠXG]GbK/aµT”Ú¼_¯‘p (5w»0|2¿}¶ºÊ5i¤™Ø×ùîIJŒ*D-dtš?Ý£üO<*$çŒ7}_Ø´·{MF~F~Aµüž è‚Ú;nU•nÚ—sûZ˜7ûÎKø§Ÿ‚%g¼À¢Œ[Fð}‰X]Â¥2ý¢–ä•z‹8ŽÄ¤5üµòDoÅ2µ_¯âÔ¤°mÿ¢šüj Ýîå]¼@¤FÝÎktdÇjJ×yÇ8x­öàvËÕ’í&jÏõžÇQL6¬w=ÄŸÂËUdçHßÌÜn t¿”è®þÝüÖv—ü³)¦h ?„K¤AØñì¶,á:  á®ããÛ Nàÿåóÿ ü?!`j 2†9ØÚì0Ýa ¸ƒ-ì>aþ/¤½endstream endobj 995 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1921 0 R +/Encoding 1930 0 R /FirstChar 2 /LastChar 151 -/Widths 1926 0 R -/BaseFont /CORQZL+NimbusSanL-Regu +/Widths 1935 0 R +/BaseFont /GNUWIN+NimbusSanL-Regu /FontDescriptor 993 0 R >> endobj 993 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /CORQZL+NimbusSanL-Regu +/FontName /GNUWIN+NimbusSanL-Regu /ItalicAngle 0 /StemV 85 /XHeight 523 @@ -8706,71 +8761,70 @@ endobj /CharSet (/fi/quoteright/parenleft/parenright/comma/hyphen/period/zero/one/two/three/five/eight/nine/semicolon/A/B/C/D/F/I/L/N/O/P/R/S/T/U/Y/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblright/emdash) /FontFile 994 0 R >> endobj -1926 0 obj +1935 0 obj [500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 333 333 0 0 278 333 278 0 556 556 556 556 0 556 0 0 556 556 0 278 0 0 0 0 0 667 667 722 722 0 611 0 0 278 0 0 556 0 722 778 667 0 722 667 611 722 0 0 0 667 0 0 0 0 0 0 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 1000 ] endobj 969 0 obj << /Length1 1624 -/Length2 8351 +/Length2 8579 /Length3 532 -/Length 9216 +/Length 9443 /Filter /FlateDecode >> stream -xÚíweT›ë¶.R´¸;A‹»Cq-î H!P¼x‘Bq)-îîPZ(VÜÝݵ-íº{ï3ÖÝ¿ÎÙ¿î¸#ß;Ÿ9Ÿ©ï_˜è´t9el V E(ÎÉËÅ#Ð;[¹»©C!jœ²P'M+'0àÄdb’ƒ€p0"„ƒÄ† €<ÈÀÇàÅdÈA]¼``;{8€E_Ç•ã_’ß*+¯ –n`;€ùñÁäuqAàÿcC]·lÁN €œ¦ÖK %‹’†>@ Á€N-÷ÇT¬j`kÄ Ä -°…ÂNÖPˆ øwjn\\2n ÀÍd ~4yZƒ\~CÌìæöø »ì`@ü±p( ±vr·ùÀ£Üú' ôQÃù{$Ó‚ºÁݬa`8àÑ«–¼â_qÂíðß¾ÝÀ0jû¨iµvÿÒì‘æ…Á7ä ÿíË -°»¹8½}?’¹ÀÀÂpwCìþ²Âlœ@nn4Ü¿«ó¯<ÿ-{ ‹‹“×kè­Ɔ»œl¹0yù}ZÃ}Û!˜Ü¿‡Eb ðòü%·qwùæ‚ý)Ëï™a} h…8yl@¶˜ÜPø£KËÿ¬Ë\ÿ¹&ÿZüið¤½ÿ»æþ½Gÿíÿoïóß©Ýœ4€Îð×’Éb} 6GÇfÅhóŸüô²dU1ÈOÕ9è#á¯u4@ö׎H5Ÿ%?'ÊS}¶ÇÉÿ…ƒuŒbµ‘GC«Ï—xA–DM ;IJ¶Úa¦1ò“ò¡%+#TÅQ*Ýçæ/ì2ë„…ëZʃËtõJÑÛÂÞsáQí4ÔÜ0ÑPÍú0¯mÓï>ב'ÆEO+€lŽÑŽ£R<"N~øjë$/:…ÈŸï9šÕÒ Úi¥U6-LXzI"ø`M‹ ·´¶W¨‡CÎV3“H~ý8!^䥗NW÷¶ x¯X€J|õFÎg/H&•À…é=³mþÛÖW­6Þrm_C‹a¨©³‹ùTá¦ôíuD}:}ƒ_¢ªÞ•ô¯Å’wši•«¿Ím9ÄXà'wݪÇk °ÚåÎæ¹ö}Ç>ð}}k›6˜Qú,E´¹âùbîœÖê©ÑX\®ÐÏÑn6RÚø`šùOÎ1j$§^•dŽ›xNæ­Wb«Ž¥nYO׃jM’D‚Ö–‡a­Û¹Çv•ýUOtñ]}Ť½°¶¥¶ãž‹c&jžü õ«{Aî.5ûÛd -Ž{âA‚ݧL3bü J?ÙnÁ›C#ŒGV:ÂûSÅŸ†¸XJ½·5^9%4•Õó’‚Ò¨î_Zúäu¼AÁÜ݇€,23sËÛZÉzÎgIÞf­35TìQ›Ã_ ?Ôn¹)-ödÙ­¤!á-æÔ‡$J›½Àzö‚õ˜»‹Š)Nü‹:¸¶’{ý[}ð|ͯÍ*Úe™à€\‡v,­:j±ªÖÙH’R<[ݧ¹}I¡ÊíÐRò´hst4ý¯3¥{Þë— à e¶A¥ÆÈ)f!ÁîÎÈWn];FuéÅTK&|Õ‹æ¾\c…GîàèE9#½‘lý¤z‡X,¾t8íèëàvO¿šåj›@’ò»²·1Z1–ÈÈWc7Ü^q7÷õÛHm®#Í4š‹9.é"घ»Ž;ʆW=™PNïÞmMj§%·™Gô(àØ/õ]-÷'?E4œ¥ºŸê ЗBáNIV}ÄkËÏþÊÄi¡þy×°eDë­‰4Z~ˆ’wçRÊ:]â‡ØÅÛJQâìÚqÆâš™âO%êÈøâܳ„:×65›Ü˜I ãÊÌñ»_”ýi¯.MÞk`j}LÑ >¸TkÖµÏ0vµÊù§äÔPÜ4['L°P¶c¨°Ú¡üó¯jUL…nöŒå$Kì•R×5UŽ•Âµ=8Û¦æf‚®cDÊŸ&v=Ç4ßg{âîðFtÐ3qUÄ>czM6âêd¯»÷5s¬ç›²%<;ˆüÝÃüš¨`ØãJeîÒåWF­%ù¨yá9b´qm\«l>[êß Ý“Ñ"bÇ -idguÊ ÛáÜ‚Ñ 9¤ëË‘'jM.~×ÿfêKÃÔŸ’ SêkÉ'ë,Fèø.JìíÜÎXѶ%Ænvâš’¤c}å¹H×­òså|Îêœ “SYÐЧŢIŸ1¾rl_—Á¨©*GŠ¯ú"ÎùfÅx®[áqdÿk3@ÄëÛÀ Æþ´/úÎÕÇ·þßì/6ü-ZœG%Θ”ékL:õÔ¾²u9·2N&°ÌAéâ*ê&\D_cŸºâi$g¿Ð ÿ¥ð¡^df­Ümù!gÞ²Ã3Üú3a|ê0/Àd)°FyQ­unÅ(€?v Ú<$f-”1ÿ=ÿ´TÑ-ÓÞ¢¼¡Ö¡"7x'K¼É±kä*a»´P”xÍ©™â÷@9¿›ëê8D€š6¥ñ1*ã;ŠPfN¾à¨¸§zóQÍáÌ{Tz¹òÚï½Âìµ[lÊ%ÄØŠÆÔ¦åò AuŠ‘b‹ÐD’é -grØÝÙ)[¸³Ø´ÔÍR½§ƒÔî{•wåì>ktµZ±œs–¦ÝÙb5ýÕ‚“ÈŸ $i‘åqHÝ[óÕýÒË.é©ŽxÝdïUf¿K KÎZ§4ÕÛ&eO°Ò`+sDë ‰%ÝÞñ!zSµ‚Ðëâ̺r“–dø$.³nש–¶ê<±HƒD8ÆïÇSJüZâ =ÆôÒªµi3íü”‡ùµ^Ф9Ýö@»Àø†Ð­á÷˜ò.ø wœô/[¡ÄŒ\~Á‘¯>3=Ó”£½—©Àé¤YEp¢` ‰¡QÙ¨’ºa®zżžÊ*Þœzgç}¼;Ð#U’ýé -#ÄÎÝSDº“l ¹ügTù®„B'æ|pÙž2SXÁÖ =‹ç~õÎK–DÛ+Ïk¢·­ÀICÇCÜ0SApðäcZ:³ísž÷½Z÷•âKíÀDÙl”osúòÖ'+˜EŒ;úØÏb ]RN;-¿Œº(·]({5ׄX’³øö÷ô~™Ÿ=ÇŒpy¾7rB>Ý#ÛÁr{Yƒ©3ßrƒlšê¼õ~±Y¬Ø)Õ`qyûT±ŸIJ\^Òª2¶5ù¶…ŒÂ¨ÆÙ½C+âa¹ÜmyüÊ€=YÙGzm’ÕŸ>ÖÃI)ª~•¢•¾·wZ䥗QyyŒRÂfff8û“‚ -Ãz¹Ÿ ËR@T©k¡õúš{þbl?Àí §Ž( ±®íKßéÏÈ(A??—µåæ>ÇB¯pˆœ`ø$éLæ&ê3sRý@û²J¶µ»ãi†Ð‚ï–Ð0º7ñ¤‡>–"OhIåà"5àÊtþ]ÛŸe»ÝÁ†UyåÞå¼ë\_¹j†œO" o‰¾é~iŒµ -b âÔwyu«•¾Ö:°N¶ £Ñ(ðíî vú¬v¹f~)›³š+|ØÿÖÞÜ.ÙVÂ7îEŒæ¶Ü‘™î>ÏGôâ“!çžûTEqõM7<'€3È4³kÎ}$Án0þ¿4âf’‰Ã7nÙ8–ýµ[+–Ž˜vHÁ9cœÆò©R€u·ÔÏfɦŽoEZö›o´G»¥Î¬-e±ƒ^, ÃÂìÀÝ,} Úa:Ü]7Щ ztŽ¡)—ÏbŸ9qà·x2WÐ{ë•Ú'm£èw/ªÌ÷3z=çØ@ð¹ºæKvYùÝõådav£Û5ö#…C_«tþÙµTKÉ/ô#oÖÞ@øžè´Æz¹‘H4´DµÀzGÔ A~bDy›Ö‚×dÕR´¿ÍÀ(¥H‰ªØÏŽ¥Z öŸ’>»&,UïM6ꑼ+‚C)iÀvw®_.Fzõ³§r$b¸y<¿/}{X3_Ë®~ª¯m¤Z¨}?äÛtMðí® ôZks"ÄN,ˆ¡8ݪ–“§is«ú+|L]éþ,íC|O&qƇWÓ5ï= -•µD¬&TÕÒ¥­Jäd[•ã¯½¹Ý¹f= Á¶ç zð /¾N¤.‰'Ÿèe×1Q f&úþ ™»´9D¹•”~V&qéEmÁVÌuedµßØS±’˜¬„ë©*r{~œBU‚ÓvзYOaM:Çþž“IÄ·fùH©GgöÊÊr¨|úíëÉQÒtÚèˆ1ªÓ"u=ë'/¨c,_B½˜i$8K¬ºßáFK\ [²'H9󛱃aóM j?Ÿ3Ÿgµ7:^­4|¬.Ï3ý<º’N¡¥ôË)ókº³ßx -õŠ+/‡)Bä$€¹‡Rh¸—þUɼ™9"j²ŽP¥C«ÃȬL‰Á «mËùüˆs5 F¸°´Z+Ç* --Ëðš±ÅwWë+Š'Ñ5ḗå–33Ь|‚±85ó)PD~LÖ@Lx׆z1ÂÏUU7N£2<ýHÒùTW“¡`\=ÀEÚåó+«ÇÆêRÖÉR°¡  eú[ †•„Î~½JSŒ'ê­Ž®LÅë>HhÝÚK)“ï~¸oG„n41bÍAaeP¢ÏCýãè´§:ÅX:n5`jŽÐŠï¬Kq*¨IPµA¤¦YRÕ1ŒxÌ•žjŸ ªé‹JZFvyúì$,hNobŒk¦Ó4ö÷ ýÅØ'ÂÙÍ…pkõÛfÃàâ[×,ôdeGÀ7\Q{®ÁÀ²Š©«åU:¯ -$¨éå,3£¨{Q¾Qê5¨§6µh¸‰Üüß <ü‡ŸP1[½;džFoU—%÷UÒÞ,²Éš5Vo1ÀfÞ2TÝ9'szÖi÷îD¥&±Â¡3Æu‹Ìߨô¥Ìv†â±=w|ÂÃuQ¿Í½õÊ´òÎE[[ºÿþàôŒÏäf­µÝ¡ÂqÊ'3?é«éÔJ$íä˜|Úsõ—z”—YydšEÝþq5:Fwùju…ÛÞ»Ãd×ìxîî­ûEƒ>óŒWß™? í¤‰²8gddR)äÇL³(VVY7žFåÏõË;è8Ê5Z#«¤Y¿]²mt‡>^Ãï$æ1?ŸçÛôŠòïj´/âÉj¦YvÁÁJ^²õN:îeÚ}_ÛzM“»z.z1Ã>TCN‘oÄêå´óðäxübúÙÉ¢óÂYñ=Q¹i—QgOIî1ûKz 鵧÷C wgÞö‚‘KçÒÌGÔ¨ÁÙd=XIV»,Ö×]ˆìªl -Í/.qù{„l7LØ -¯b(æ¨@<¨é· ür±Êü%†þ0SËÉ W)}{¢ÕÜ„,§5š{ºì1Ul‡.ÈK0ð!–ÉÚd¥¢q\„˸nûËÀ€CÀ3œŒ$‡e=ÆmX¡ {?ñ–QJ~¥“!Þu×Mè8‚ΜƎ²G!Tõ„¡OïP5¨ƒå&z[4ûDeÄMpgÝRM³Éeçû’Ìeò)Œéw—wtæP伂Ø!Ô&ÝÃ+Aÿôn&;³‰_ÊŒ¿jß÷3–4Ó¼k7vQèÑ7eäqU½~¥Aä?D>…ÁC†_¿f&e,´ù<ªéae€ò@íÃléüDë‹œ’æÇK’r!¥0» S¸ÚBtü‘¥ò7>:}}趵Uÿ̶gG;«Xô¼ïp?Jy<Ú¡m»=á}2ö<ì Îì,ç;k=Ÿ˜ rZŽ¤ØFlù@IÜxþ§bÓ§ê<ïÓ»¤ü¢¢yx¥å!‘9óØ3D—î¡Js«ú¡ÎëmŸ˜º'AS[ă=7Ö»ÆE|§s"ÒeÁ 릅Ùò§•#ÚÖµ…©Œùn±Ù\KúSÓÌC¸›SrÜ‘âò¯ƒÜÑçD“RšÙaŠËUÊòzäYÉs'¨‡mx˜b¶ž<Ç!ÒµgÂE\™$ĽÞÊ!¨â+äC-ȃô_«žF͸V†¤ÈŸÆóÐÓÁM06éV0Âe‹80º¿£ xg;³à :3³4b"‚˜ø5ÅËQä›é¯ñLs‰ï­‘w±œÃx³ôEeßß ¡8-«á)‹¦¼¡óÖŒRDÚÔëctÀ—Ç›½ß.Þ]R ¶¨iðÂ=8§»5(e¶YnFÎÁÂA·é Îi·XyIÙ¨'už%­) *m• >—,qÅãr•¬U_G*÷õ>ǪÞ^ÒÏVÈ|ßõW¯MJ£õ³¾®*9A¼B™ÜÏp@+øá<¢ÀG|fk'¿AX©¶~:ÉØôþð¦oèŸß<àœ€,©ìS‰ƒqiÿÇ‘Ä Æ©›Ò5)®¤7Ñ8‹ŸÞ܆6ìçÉŽÉaâQ§ªDqØw²†ð¿æ*&}…ç&?Ì2¯Äoä¾El—J8ªðGú‰Î6똦â%‡ØçÙÇì 93. d-Äj¸z–e‹SùELO…åhº0Cà‡ëꯞ¢¢äHÛ9NÏË÷qy=Â3{ä¬ÞÞ"Y]`¢j;Gm³4sw/c5=…R‘0¤‹®™øD{PEÍDðL¦ÔM,¬•.`ôÉ拉;Ò¼Þ)±`ÖÒÒn˜øzÛ芾£Z4“äÂró(ó=`¼m<39â|ã”°·¤ùøõ벾+ù»!yæÇ2’½ ‰uÎúÈ[ƒ2ÙzÒ¸%³7ƒâýÑëôÓ5®My(¶[Ÿ0ÁÛÌk*ÖrS2ÈsDªW¯U¨U/&%˜b•´èësÙÆý}NÐ:%@'ÚÐø X~iwJ‹o9±É·Ï¬.IÃÉZ -‹u1+i\nxíÚX´Ñ\/ŸÈU?‹yunæm„„¼ðü•š95â"—tBiE½Þ»qVzÜ(•¡€˜—¸pCüCq^F=‚$@hoÚ‰º?¨¼o˜D5B||Ǥ?ïR<Õ6µßOuA«_Š?)°Ø+ê‹ÉaÄ%ÎD\ïÅ8mkÉè4¤Ò—•ýÄá):‘LtyøŽ‡8Eè¡t÷a¹]óWô†]GÒbN¾Æõ„0WÝ9n·_ „ öas‘™SvF™¡nÏieR! ¶Ð¾Xˆ¯:·¬][Ó¿K'Kmh‘fÊìàÁº<6nõ«Òá U¯b•ÊVµ‹=ÙJ:Lœ][E Ìu4Ž&Õð3Ö“*IÓfóZ¬‹0Ñ›ÙÅ7Ïö»eZ7Ù Ýz»w²d3j¶Ã} -%9‰üÅ*rêTÈ€¶³qXõ¬ ßyä ˜ib€ÞW`ÆW‹do÷>²ãçóÐNgJueÑɲ0!¦'E0-\cØ^ödæÓ pÏ5wÉžüS£‚JJt‘Ù;*tw›)¥xd3†'‡š±Á®N…±ŽÊŽõ_c£õ­6XÞDê¤F— ®ˆ<'x1šÿ Ô³!xõ‰¿?¸ðpYÛûK¯KFé5 ¦M 3Q©²ÖëJ¯õ´åCm¤ê{œÜV1Ò¾nÂÈï+[NR™Á¬!¾¢¦{Û\„Šà §Çi|¸eÝ(?Ò׶«v˜‹~¯äc1%¡Ž”Èã|(u<P—ƒø%ôX^ð-„æï´»¿ñŠ]U²¥57xŸE˜Å²¦?$Õz–Æ᛿Àù­ãUNW“žLÚþè-Ë>"²¹êºùy ¿|ÅH»Ù¤‰àó–‡T Õ9B@SPDæÇ¢Î/?3B5[(ià½ðþ´"ñ©fYTQlð¹µÚ†^i²Z¥‡ØÃQ?¥Û9‘™xá)ž¬Þ¯Ø¬v¬éŒÃBi s[ÿ¼ý1÷N1U÷.œ£Í×É4“2»us»›˜‘ßã9gØs1Sê‰<‹c‹’ä¼›ôÕÞ™;­Œ)BÃb^±®­LƒT¼Ðº~øfÈ/wÄ[˜aÓ÷IÎÀ/Õæxø47.iK=$îí·b.ðÂ7ñœ©kNð¹896Â3¼÷ût•-o×Ñ¿.f3YPÛµ߉ûª'ÛOmËTâ ±vÎç8MA,ÊÖ‹ØW.l"¢%Ó±°ì>™ÌÑ WkñÄlÂá5Û0õŠ¯ŽÝ/³&>:o’ßlãîIÃ7C8sÙeCÎåWßIÆÉã–.ŽÑ¤2ß¼h”ë˜jCo«(N´_4ÈW(ÈHo“©çÄ;ˆÝ™÷Άßò}äHtÁFq ¶Ï :”âØTœðÉ4¨-‰BÐRZØøfõ™Þò[¯b6±ï‰ØÚ’^ø±éz\É2_Œ–j%ñö1Q‰ñb£Æ[$»¶ð=‘™Y˜_Я0³ÌÆõ*Â*k -…möÍ}ñí‹V—óiÅ'˜f{ü…O¬«k¶M,Ðy‡ƒÙpÓÖ Ü^©,{åcùÖg bºº#2Iµ"$_âݧîl€hXÏSÝá‘=°S,úç@PY“,Þ+xM‰z’k½§…|u¡'VÊ­×ë¨úz„YŠ,š%}ê¹/£‡²æn¦ò‰’JÄ6žÔ.ß“_ñ!&}¥< "æœl;¥À(*®NŸõÐÁ½ö]n tTôÖ–…ÓëÖþðIû|¸?ûš½;›Ž·Eâóï(F×{׎»/‚L¡¼ÞŸúá7§ÙÞâáj®³7™äHSˆòJˆ]_Z¶Mî~¾J¡ÅJÊ°eé+eõ‰nUØ03ã›H7w'BÞBh‘„iÂâ—¬d>F5Ï…Žé5'j›r -=œ.†Ü}{Š½ar nüB¬t„ë”}N<§˜¿:r¥Ëí±QÀ¿CÐ}<„ºŽ5»¶_fþ­—·Ìnn¼ý%H¹¬¢ö×p²­–!rqݹü§¶\49wßà…ÞlÇù‘ ™ÛNȳþm|ç”v^ËJc>ÖÆ!ö ã›D¤îb›õåEºÂijê´öëQöG?[¸Rªkñ¡Ž6´ˆ4?Û­¡sì‘јɬa¢z·Î™*yAd+F>S§9 -$¼IH !íƒ^e¾Ë¸wc5+5 .'­Õ;~VóX•çÏè½¹Â)Œ7v<7jk^Œ¬!Ëìnò²¶‚"Uøv\È‘jÂÂå0åÜ µf$”› g´­ƒé[AùØ¥ZŽƒ´XÒ2Á[~øŒ´ˆ/gï“tÕæ çz{ƒö(žµ,-hX¿&ãåJÉõÀô{.åñ×MŒÞMe¦9”´w•=K™»>`Á©8RJN=V,¡1XÄ—ÖüM§oˆÓ¾Eã'^\y¯Ú×âʶÜÊ{4ÂD92ÆmðÞ}%:#PÄíèÆ+R.å×иËÀœ–˜EÉC«ýÛ*ÑIâó€„ÞËÝ`"ÉÌ û§Ê…H ~«!)øÙ*’[Bª<¶–Lþçt höØid¡öDÅ=öË[õõËéSt?¤ŠeJ޾̕2Sκ˜çïHì*‹ê [ w©¨:n¾WOvàÛZSùZÊѤ÷+'wzâÜça¾7øåíËÆ-W–Kt9[¦ïÀ8vq"ôïÁy^Lç-äx[}º¥Î;'(%"Q ò\T]0Md™• -ÙæÃ/ÚÝç†Ã…@9¬°YbÒ sì w·+ø•@±ø>ñ){„£ØݯU¬^E›÷ª†´ë?¼d‰}½X!!Œ4¥r Ö³Œèã¿ÁþPûrÕ/±úÍ [Bg_/©xqñ²õ¹È9†„–b½9Ãû_¶òò¾º·Õ´â|?¨ª/I~!ºofÐWÉ8ºBoÏÍXaö‘0+º³ÃLM­A›ª¸rr[„–!—PäÖ&.²…ƒs}2GzÌ"ya½*‚Eà,f^Cn^ÙZœ‹± æz1’~­aŸå ÃþŒ-•œ—Å-¸¦’m- wê™O ‘âû§l‚þ56*Q$£µÇ6Ý,þô ™Ë ß'¸‰5â[®ØTz‹‰ÄñöZõ'¬ MÙál-¾Ôœ%HüÆN…-¦–Èë/g6¹ä`¿êŸÛò©óÄbÖ¾O_CÜ+3å·°R\`WU>õµ©ž{õ-QDO]h}Ø'sjìBU.&ueØ/¨bu‡AnÃO…7[²‹T+"èŸÓ¾[}M=NœBŠ}¹Èéj’"Emî‰æ<ã·55b`J@iÒ“øå“®ãr}WM‹ÏU!Ïï’-Ç#úz*?½åÃÏßhRJ¢Û—¢rXŠ\ý4D¤‰ë¶~v`—þ /õ«”WÕw°Õ‚I ¾ª@+a®ó(©±ãA5¡=y=£­ñxç>USåD»<çÆÍMUÔ›€ÙlE— û†wRŽ{ÞÉíkGo-îçDq±¯R®¾  …ù ¤í€‹p¼ ìoB:04B»Ëß *pº¤¯O*=¾oFäÉ°ïCÀIüŠkú$ÛÆò wLv'1W—8w. -OêX¡gŠÛm9#Êó2Ôq -ÓRLvÏÍŒÆ/Ï7Xy!r8Ë!MÔ4ócK v&½›Ä4á”UO-EyÂTóTñèjvŠ¾ïU«P¤[J ÎY‘&•Ç -N57üçØw> -íûkIÙǽùît&Öð+JV(3ÎÕì~££yxbŸZ¦ûn Äd»7FPütM÷ªÜú»;PÝ“Ñï#¹ƒe87»ì˜ íŒzÐ[Ýy.ž:Oôa±aØCk´¨G5b‹±xÏVE¢8G=–>\Ÿ˜9§x1×®Ÿ&¹”¹¶«bÀè}òæ…º(ìd€U§J‡ r¶Jñ0¦£¢v–WáÛ­àkö ™ØW܃5Z—ÇšyûjËÝwâDvø§Z™\«Ã@ -ãL5Å8!á—˜ÐÀÀ7fyÀ,Ô‡(ÝœA£öùŠ´ÍÈ;L=SÞëÑ~Ø„&åQ§ú4»Oˆ~¸J­,­÷–£ ìL <ó«lj#–:¢‹ÁË9ºÐÊž¶®'Ïèê©SÅp}K%Áîx\5DGËM®LT¡Cà¿H¦:ØF¯ßÛx‹:ÂukÆÂu“K›` ;üxÐŽ»Z -aàùÚîjäßÜš¨SÞ‚{ÈTvø…ùî)x“›”Vˆc†šçùÁüÿÿOX;€08ÔsÄü/t[ÐJendstream +xÚíwePœë–.îîNCpwM‚»Üh ±†¦qw'H°à’àA îî48A“Cö¾gÎÔ¹ókæüºu»ª»¾w=k=KßõU3Òi¾á”²†X‚ä!Î0N^.1€:ØÉÒÝM â¬Ê) q´Ö°tžA FF(Cœe0@d Yøø¼¢¢¢Œˆ‹7lk°èjë³²³süSòG`éýäÙÒ lë `z~ð9B\œ@ΰgŠÿ±á³lÀŽ €Œ†¦¡’º€EA] rAŽM÷çT¬ª`+³ˆ`ÿ>¬ ÎÖà?©¹q=sI¹€7øÙ äerùq\@P'°›Ûó3ì°…aÏ5€A`g+Gwë?<Ëm ä…´†8;z¬A6ÜêسKËÿ¬Ë\ÿ¾&ÿZüoið¿¥½ÿ»æþkþË%þßÞ祖wwtT:=ÀßKð¼e UÀŸ=ø³h\ÝAÿ— Ð ìèýßXý«¢>èïHÿý+¦>—CÊÙö¹%œ¼|\<‹Ánò`/µ&fe°:>Wë/¹®³5êv=wõ¯‚>ñðü ¦c¶rpþS~Á¿!³õ¿Æþܨ¿"ç–—SRÔÖbÿïvë_ššÏ3Óñvþ}5ˆõþðHKC¼¾œB¼N>a€ˆ@D˜×ÿ¿ñø ï?Ïj@ì0æáâáá<ÿþãûÏ“é¿ÐÈ9[A¬ÿÌÌÐÙúyÌþSð¶r‡BŸ»û×ÍNúç¿òYa,ÍC¬ÄÃì3²2aµ¤y£²Æ=ݼˆá.% :Å…AÕ®ÀŒ¨MÑ +‹ß5á\ãb­Þsß]v”Ùv»I™»Ò@§Tþ/X¿â¯1µ ³ï†p›•`géÇùžÍªn  ñèínji›}üB=ÞÎE;»e záQDÄpã‚`•^ÿ–¸¯Ž ¶èûSÊÁí sßÐ×þ® ä/;”ì¹oÑÅ=°™bƒ\s)%Œt+|£^Ë àcš¤HÓ¯øbD{ˆÂÓ®hå_ãO•Ñ8V§%Ål¢¾Æ3Ö`éT¤¼‚cØÄÍùÉDF͸wvÎ%™îåH%ãc×ÊÎrYÓÀfhجس_ Ë7åCüUœB>þ¾o¤²:ØÏ Ô÷¾î}'CL!Ôk‡»Pôë*/Ìò[! ­â‚Y?ËSR]¸½ní΄Ê~Åœ Ž #DiþqõÒi!Oï +ùÊaº5BOsö;5¤²nÛ®”‡1?ß×!¶Õ¼Fä›`¾EïÎf%¥üÍNJ]Ë`| ü^VÒ#5“Ù>U¶,lT*$A6 /WÍo¿D)9A[ßÞE»¯oOäÁçeˆbAÔ²²O,m£a’ «>+^¾1AU«Ôsi¦l›sÚ(,ÜØV¹ZùF§­#â=Õþ§‚[Fª½Ph7ÆM&âCo#ù»¤ø²ù2y=õ)êilºGôÙO=?-íw¡ë#Ž'a²—¥¦ 4#¶š™5-+3>S¯áŒÌͱæEÆÛÚ?W«EAì/6sRI~ߟ¯òÒË +g©ùX½—ÿˆN|)ãÆs"•AàÂøžÉ&?®}߳ݚÀG¦ãkx%cqµˆ*Ê„þs#Ñ öàH_líÛòþЭDò.SÍò2µ¸‚¶cô~r×Ý&¼¶aËnàbAˆëàö‘·hàm|¢MæHvsºhkõ«Õ‚%ÍÍsu¢©¤¡Ÿ“=l¤´É¡¾4Ë_œœÅ¨””Ò8n“91Vh½#àÛµ-ÞTöw?Y¢Ô§¾LÑÜõÐop+–¹?µ­ªEzƒïê'&éµ' ´™öZ2VõzIÁ¿Ò$¼yíîRÿ}LÎáPŠ3”×/”})WCÄç^<"Ô¾±®ïÚáÆHýôbºY‘)ù O1€öúÊø½:†æ‡tУ+ÕÖ7v†îv™€ôü£FŠÛV+àŒ1ò^@+œÙ³AÉDèöû°‘Ìër;…Œm ¥S…(-ÎŽ¹¥…”›Ñ”*Ì”’îWx€ÖÇÀD‰}œ>sWw슱›ž¹¦§ª%X]{­Óõ(ýÜø¾duʃÊ(­¨ëFÑbÑd-];|Þ–B¯¯ªBH®ígs³d¸|Síqb÷{„3HÄ{lxýû¼Úþõ‡¸€1»ßÌÚœ&^^0*Ò7w:è¨}eëvjg˜MaY‚Ð%U7Ξ¸ˆ1]ñÔÒò<‡ÕÉ‹!¾Ô«L¬5m÷2fmû<ãí?S¦çŽ ƒŒ×‚ëWÕ‘QÛ—6 ‚ø‡ã!­Ã©bVBÑËwEçòn9væUŸì« B÷sÅ[º'®SöÚ@+¥ïn85ÒýŸHb– +\F P2ç´¢•ácƒÑ‹Ù‘…rò‹'ŽÔZOêÞ£ÐËT5ù„–ämýÂÆ¡\ƒO¬nÎhY¯ÊT£˜(3‚'Iáq&ÝàL‹x¸8'`‹r›—¸]kãï²—8x¯ô6»ŠÝw‹®A3‘3hÉÂä'O,˜G9¹5j v@Í¥×b*’ÅIœOb?¬Ð ÔP M%gxWªIVÈ!ñhÅÒø['¯¼¿.:°ÅλÒ6ù€@š<.œ»M=b¢³G<Éžb©ÎV逖4–Hº·ïK¤ŒS»7àâĺq›™ª””Óx`Ð@[{ù®Hš€@8ÅïÏSAø²ýäʲ½e#óòœ‡)P'dÖŒno¸”]`ú›Ð/ý»„ª6.˜²;NVßn81—hL°g/#³†õ½T5N•È&œ#kXÒ·Z‰[¦ZO¦í Vñ¨ÖŒ[ŸÓƒá~‰ò¼/×èa¶î^"’]d³¨ˆU?c«<œ)´ NGWŸÓJª"Z!ÉÜžo½¥I´¼ ½g:>:ªk{ˆëçÈ Žœ}ÊÌbÒ¡}Åó~@ó±F|íƒ-˜(2.°p{¶šIĨËq þ"AßEðI ý¼Ë¢oÒE±ã‡¢÷§Ðú0 r¿¡þâ°åÅKŒh—W‡ÃégäËC²},7Øz íå¶[D“ð §Ý÷3ð­beÖz«ë{çòCŒⲯÍ-kÛÓ~µ‘ñQÔ;¹F׌~Z¯r[Ÿ¾ÖcOSô•Üše  O4CwT(„¨]§kfž—zëd̹:E.g3G5Õ_üIA…nµ>Ĉe! ªÐ½×~sýücê{?ê…s’.âÈÑ¢8é+û3FX©wvÝ*— n~ ,!PÁzc³ÐMÕÁ—=®“@ ®±&Ó/C¦ì>š#ö¥X÷Þ•ß|/"rÈÏÞJð‚WXhÕö13/¾¼v"sõ]8«{¢5¬•n/ÁîÄÌÖZñÛÕêÇDßõÓ'R +­)ýHF º6Y~Ûé»n{0òiSÖ^q _±ð¦ÀO¦îEþ‘”8¢±7_'š-CØ¢bùu]<ÉeA$o4¬ÒÌ)¦hÔ?úõt’†:öª^m™]IçoÅÙY?¿î(g‡$ ÀO Æs[ìKÍ÷\!xóI‘s/}©¥¸{•Äb’Ó½ä>‘b;’|†_};ËÈá—´nTÍûÚ£™HGÌ<¦à\0ÊdùR#À:[áo½fÝÈ·!)=æ×é×jk4íH_íD§KÂ_C77=r7ÍZÃ…tšŒ÷4wɉž\¢kf%³˜&§ÅÌù¯ž-}øå1(i-ïÿ(ªÈ÷3~;ÿTO𕚆!»´ìÁözš0»Á¯-ö¹c?Ë,þÅ0Õ ‹×}ô‘[qÎ|HÚí‰Þn$/?µÅ¶Á^ôÃO¨:‡øg‹îXéÍt ÞÕ§kÝM•.@)%H‰ê>±_œJ´ë}Ç$e¾!¬PH3èýP +ƒPÒ€m\ûVO~L DiåÍå¿Làæñº[{Ú2ÛÊ«ÃÔM–7P)‘uJl¹!{øXq£‚ʵ3f+ò¢,˲“§eg·î+lê šÂãEfqrqv±ç|ý{EMË5ƒ,IËrévÅä›ß‘¿öoXH°íxBâ‚Æð’ESyŠˆ »O‰Ú0r¨Ð¾/é¹Kš9+¶“Ò/J½[Snø¸›°F]Sç?…)Vž›r3WKn'ÂS¢Bp?o ‰ËÅ„¶DkŸxͦ;é›!dœ\Ø)ª+þAáÓý¼+I§…Ÿ Â1/ÒØO±}¦Lhoañf¢yÉYnÙó7XîÙu®DBÈ_ÞI‰^nù¤úóÓÝ2«Áé +hãÓ‡¦øªB“ÞÉ, +M…ߎ9_³œü§Ó©7\y9LàbfLý”Bãôžå˦fð(iÚB5ö±¬r/Ö@¦• +/ôÙ°úQw.#EœêhüYУ„%UÛ96‘iYÆ·ŒÌï\]”¬®)”ÏâõŽê£p¯ª, ¹ESIªfs èLü„Ü#€˜ð5õ|ºó XŠÜ´Ñ;1*ýó$]˜o4^|œÖarAG–´@îõ´\ph®«`­ë úÓPfÅ©¿ØHéÒ©1AGRkwpe,Ûö=B@íÑZKŸ}{ï¾þ­…k ­„õŽM£Ñžk—ai»Õƒ©9«ïX×’”PR!ª‚-‹¤*SèÉýu¾!µóûæ5´8 ì²ôyÅ$,¨Ž‘ Fõó™êß¿ ˆ±ÏD±› á7èv,FÀÄwoXèÉ*O€‘\±‡®¡ÀÊê¹ëzÅM:í¯r$(YU, “(‡±~±jÍõ(çÖ ¨¸ï¸Íù;Çô<F‘¨˜Æ6Ž™æád;@u•iƒÕ%´·$«lÒ¦Íu§»/`S{)ªž|‚³%«ÌGw¢ +ãDáð£ìÆU¦1*] ÓýQ„dl¯}ߨ¨7(cKqÞ9–ã¨[kwOŽÌ|ö$·¨íŸí«æ|sŠR¿ +ÞgÔ h¥%Ñî›!«RèPêé]å’qh”ö$Õk<©6–ìùŒ“=Ý°ãs8Ëqçsïï>®ê še{Þ1#ìgŠ²8egç~¤’+J˜gÑ“¯©²j>-Z’µ×vi™4/CTÊ´Š]±‡|ë‰}¸=¼\Æè½,²è”®> ×kýH&«Ÿg9‡*xëI79j»Wj}üÚ1`’ÖÝÿc#¢¸Îù!øV¬éwþgb~½|Ÿ£Œ?»X´•äßó—V™ttõ—œ²Òû¾”ÜÂ|ä]y¸ðð·ìŒY»”d:¡F Íë$ëÇjNµ<`±ºé†gWa딣hU¾Âåï²ùfÌVr@±œBâAéÊúµÂ?,ѨÈ_­5±˜ÍÆq•Ðµ#Ú,HÉõuÜ¢y¤Ë›RÁ¶?âr6ÔŸ ­Œ7ª›§E¸lÛ6¿õô8¼¢ÈH‚yX&ÑÜÆåZ°·ñÓaÎ~ÂR +)¯…=ղŻ†â &И2Ù‘)„j‘^ êK¡„4“°ÜD•.")M¸ îo[¨j´"¸ìcŸ8§q cø?ž\Ø—:mÀw +uHöó¾¤Ç|X(ÂÎiá—0åÁ¯ýî× ‡%ɸìÚƒ]~2¦ˆ8­¢3¤PBþã^äK,l<0‰”¡ÄºwRÃÃRù‰Ú—É I³OFAãÃI•B„íŒ Lõ¾ b­*ÒW{pͦa¦öùŸÙÞâdW-Ë'ŸÜH£û´Í`7$^¤©W‘8z.êЋü;*Ö&>0A̼ I™µØú‘‚ ø3àU$NõŽoíeá—·©E¥¥Ë°‹c¸3¦)fõwÖ.=£5f–MmB]7{¾ùP5/‚–Žè';n¬·ÍýòøŽ—D¤ë"‚ÙV+Œ)r‹U˜5ZV % En‰y\kºsóL£¸;s2¹c:ÅeCÜñ—D³Ùyò뵊²:ä¹iKg(Ç3æxb6^<§a’ êÂ¥\9$Ä>Ša(Íâä£mˆ#ô}ˆµ˜± ®uS%aéA²çÉF<ôÄt0côz¸ ô(é²Oè=wÈF£>yN¬F0‚®w9¹ê Ñ!ŒüâUȲ­Áô7ø÷ó\â‡[äÝ,—PÞ\]Qé÷·¨ÈŽëªxŠ¢é‘t¾£ã‰£ò;:2 öø²x‹{e@ +ø6Uu^˜ç|:¥ÔËíäð%X8ä—@ÖONÙ™¿° +SÒ±H]^åí?ÒS”:j>ù^±$•MËÔ°Ö~¨ù®Ó›¨òëŠÖhé¸Zêî @­!5“Ößꦶü þyö{¶=êÇ{§ 9¶$â [Ùo„5òѨÛç³ -ïoGóù/. ÈR+¿”Ûû²W }˜x÷aî¶bK‚+52gõK䯰’Oß󅤧d0ð¨3”âK9ìºXÃø¹Ê'=ñÜdÇY–µBø Üc‰­’ÞRNªzcÐØ2•¼eཙüœ/ŒB+‚YK°>]3çÚàÔô‰é(±œÌ×üq]ÔÒ•h»¦éyù>¬oG{åM\4Ù™§© ÌÔîå«îTäfo¢d¥SʆuÓµ‘´F”T/¤*ÜÄ"Úé‚&‘v”gH æÅBY+*z âÛ“kȺªñŒ¯W¾q ¶Nr1=æÁ{F ³N·>©)‡kêøW}À{×.¬´;UBòœ•$‡3/ïtwG¤òt$qËoGćâ·éçë][ +‘mv¿`€÷˜¶”¬d檥—ˆT®•¨U~Ì:¼dLTФo*`›ð=Csì„ :Ó‚$G£C‹*zÒÛüªˆÇzY]R?Ž§iÊ­6&ldr¹á}Ö¢ç2D’©cŽ–RŽ½4õ1@@Ü zå©jF ¿Ê%™RQݤóvš•7Vi4(Á¦¿ o-ÎË C +ÈŒ./–ûš¡`¥ßV¬åÅù=uësôŠæò‚~ÃñQß‹?{Ù*.z{ö­`!ŒOÍžE¡â‹ù'™ÏmQ5%ä,fÝOýjïøÖî—_e^Š¬›GöŒ”"°‰»\ÃDnÂßCå^)›\íQ#l6 ²s™|lÄ=ý~Ðwÿ€Šú¡†Ê¹`Ê›V©káÇyùÛ[J•œû«9jn¨ûWN?°™âÓÕ#­µ§íGd©©,¾uÞ7ÑV"¸åµ–¸ËîÚ~ø>bNçØO!d¨ ÂÜk¿ütÞ $t~ÍI<bº ÞíÛŸ——¤Y¹–vÍŒ·…t0nÔžAƒS-L]~ýö¨®ñvÀi¤çPc3lwV¦ªt1¤ˆ´>8¬0±n!²ï|Ä»c_/dǙ߰N è5]·ªzŠ§9¨eS’ôêöjUÄ“b.doA&ò 1Þ˱[RßbG}ÎRâ²QÊõ6kŒlyhÆ*môãîOŠqÚWŽ°<˜;õ´ÞUH7$ÞO7#1Y‰jÜiÀOáA‰àûYT)®„ꯅÔ^ü„¶[m3#ªê!5÷?U˜'l(~1¾©Þ ·?lí)‘õ¨&Ýãùò[Mï@°ð»óH\Ç›xïÓ£¼äó¿ÚI—yÎ/vå)‹'±M?­šj)µ>Vå¢aȼ.íÜê9šº*ÇT÷QêƒcR F³ur7Œ4}¡ò‘ÖTrAØagdQ;I˜ûÚçÊõ)¯„6/k™^æ™65‡OWØY•—¦Ç“'^ûzâ¾Ú´FOìª1ô)•ägÊ3IÙq<õû!›0¶ä¿ѧ*ª]Fù¥O²Ð®˜Ñ(î«-†'óÊ^UŒ\¤€¡gó­µehôf'MzÂÌ[»•Ã W¡Þ]õ±îÐùꢿ:åd³a —Üý‹|š’6¡%kô¢@ÔÚÞŠ‰i,[J&im›Y¢¬ö03³Šþ§}õ+'Õ>-ï3ÁtÏM$©Eõ‹z¶K=ùkj¢š›ºùžÓ¦ÖÈà i]™"Á×m£ÇÓTH)ïÃ-!½¥g…ï °ùdYÎ2€«–Åù’åÕ ?Ká¯Ú—…V³ôö ˜–‹|¸²…~1®/‘ܳ.bñÛ¾v"Ü!+7‡Y;´~±wÑýᢳ›î1,Œ)×RU°*{Ø ¦è‰ã /Á^>3˜3â8T¬c —}ÁcŠ[¸o×5bgó+WFø­E(šÍ…ÛåÚR»sIrèߌÀuWÎw%ËGÈÆ!~vΉs­-ÓNžs“o{Øs/„çÓzFƒgUdˆ ÁŸ,ºï¯–¸nµpØ÷iÍKŸ_0Ü2]BíèÑ77k÷I_™v{ƒêÅ šæY|ÕA‰ÉmÄ„Ðkm =ʲV¯o¼³ ¢¯õ‰R)Å;DG–›-õ )û&a²M¼ÊýIûlXžæü£=¾ƒ"Tt·wc¹)öçöO,lyb¡R8K´ÆÏþcRÅÓt&ò®?1#ã+:=°µÑ(|UH5ßÁßX¼X™ªŸ_¾,¹LÒ íÏJ /°ñ¦°ðÉé2KJ맰‘0ªÎd蹇·` ý»6Vv¯|å âdzs‘@®ö\½®h‡êO´îÇ@²Ã$5Îëtys §\MsþO¦\CŸá§2íôè¢íeQ©úùy”†¶2Ú‚@ñˆÆrqªwYvi3¾q ïÎ2\Y±÷ÚåkU+ÇÂPª¬çø£ýóêÈ +ÒÆ °9QðÙsý‚v9êÎu12g‰j=I^Û¸å<¦¶±q;~?”, +:Ö¯}‰÷v,}çx>¯‡j+’¼ ¨XRÔi q8;­‘½–„¿¬Ÿ6mF\©%šÆžéƒàÉÒi?6‡/9ÒiHö^Å’ÕÃ&y{&Ìe$66Úr‘oMí’ÉÉ*Ëû†± õR¡ð•Á¯k7Î[ì…$"+•zSàCz¥ØöUP‹µ;«3ËP:1Ž .ÿ Û{‘q.ŸI´¬o^Ã{ßH¼÷ê£LMëV¢Z@eð» ¾Ô•w^6'þƒ¼¾z9–9ºB|`žB_úÓ­_!_‘ëÖxæL²b‹¨Fíã®F46<Ç~­½:1haFgØu• ü`¦¡i$úf©=wl†åQž ‰ÿÁµ5FXéFõüÐÝö¦”ysw]2_5.`kÕšQGB3ôpk­l·–_ÁKm°+Eâϲ¦þý<“¶†QwŸ}¾»L‚LT™Ñ§®ñ£[æmðy‰Í{Yñ‡Ç!ºÇ†Nî&…ÉÞ·Àí{_/&¦œÃ|eDòkæf§¯$/nœ­0³yü~öƒã4Œ3z¡RÈm)zí¯Â“‡è[XTÉ9ms¹Tº…äƒV-‘¸¯^qs—,HOï~öù {¹ÚLZ»¢Ý%…IhØ3Vß<9ïk¯Ã0÷›(;§˜¾ëXˆ`õQÔr[¬4ÎFRåS^Bãóx©Q÷(ò˜E)ò"|õãáÜk€áÍr¶S±|ürœeæ²èÒhÈ[m^ +ˆÒ—³AÕ÷Üì4*‡ËGFO„’P°Áñd‡œ¾×vu¼v£¬}  J6J(c8'Nj×mÕ‰kݸBgdî?PPÐuȈŒG/ýTø›!ž|¹$dKX]ò6ÃÑb~þÝäÄðå²W/]\î¢ã¸;cùb•zÿÔ9¿ßÊÍ^Ð`ö¶¨«QíÛ$ÂÐ2Òn«Ã­+³Çø/Bîr/–YÖmí‘×… ¯ñ™I"Wâ}-è¨>¢×6n#°Öӧ˿ÏT‹YeFÚ@ìT‰¨Ç¶&TGŒN·p/SòÖŽgzaN»zµú8#Xáü=ö6Œ¬ªˆ§)xû#YÄ)´9pÍd™"üF‚š¯€ÉŽ÷Ó±ü—j" F!m:™­•0./1S¿Àþ4×<¼ý@(°tÈ£^ž> endobj 968 0 obj << /Ascent 624 /CapHeight 552 /Descent -126 -/FontName /RONGGN+NimbusMonL-BoldObli +/FontName /FEIHRQ+NimbusMonL-BoldObli /ItalicAngle -12 /StemV 103 /XHeight 439 /FontBBox [-61 -278 840 871] /Flags 4 -/CharSet (/numbersign/hyphen/period/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/y/z) +/CharSet (/numbersign/hyphen/period/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) /FontFile 969 0 R >> endobj -1927 0 obj -[600 0 0 0 0 0 0 0 0 0 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 0 600 600 ] +1936 0 obj +[600 0 0 0 0 0 0 0 0 0 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 ] endobj 961 0 obj << /Length1 1630 @@ -8780,69 +8834,60 @@ endobj /Filter /FlateDecode >> stream -xÚíteTœí’-îîNÜ%¸{4îN 4Ò¸»»Kpw‚Ü'H°@p‚‡\ò}sæÌ:w~Íœ_wÝ^ëíõ>µ«vU=»Þ¢§QÓd—²t4Ë;BÝع9¸„*swWeG(]lí®jn¼|hôô2.`Ä* r tÁ–Y°€‡À-$$„FqtòvXÛ¸˜´5t™YYÙþiùã0÷þòé -±†^^<ÀöŽN`¨Û Åÿ8P ¸Ù€V{0@FUM_Aå €éŠ6à  -vÙÔÜ_Z±!`¨+˜`åè°ÿû°p„ZBþ´æÊñÂ%å -\À—0°—ØéÄp»8@\]_ÞW€µ êörnŽÔÂÞÝòO/v+Ç¿ -rrq|ñpxÁ^ÈÔ]Ý\-\ Nn€—¬j²ò×éfrû“Ûò­^<--Üÿ´ôöBó‚º PW€ØËíO.s0Àâêdò~ÉýBæäù« wWÔúŸ°\ÀÖ K{°«ë Í ÷ŸÛùgŸ€ÿÒ=ÈÉÉÞû¯hÇ¿¼þ³ˆ›+ØÞŠ›ç%§…ÛKnkóÏ°(@­Ü\Û-Ýþy€]þº ¦?3ÃüRÈÒjï °[¡qª8º½¤0ýÏTæø÷‰üoøß"ð¿EÞÿ¸ÿªÑùˆÿ·ßó¿RË»ÛÛ«€^àï%xÙ2Ž àÏž±¹þìgwðÿr€Ø{ÿ7ÿê¨ þ»ØÿàûWXÁ ôr)RPëaعy8¸þ6C\å!^`K5ˆ›… À -dÿrgÙµ¡–`{ü¢í_×úÄÅõ/˜– ÄÂúG¾¿!0Ôò_Ë‘ë¯â9*ÚúZŠ¬ÿ݆ýËSíeÜ´¼À€ÿH£«ìhùŸ‡?<ÒÒŽ^_v~n;Ïk€€/@›Ûÿ¿Éø ÷?ÏÊ 7ˆÀ‹ƒ‹‹ðòÿçŸ'ã¡‘ƒZ8Zþ™M7ÔòeØþÓð¶pwqyÑø¯ïÿ¥éœÿ{0Ø löuÑÑB$Ì63'Ë­¸`ø³¬a/7üp¸SE“ViqPcO`fÔ¦PÙc}8Gó”ðóGï…C§§ïŠ,»£½DöŒ=àÓ" -Zæ¾bÜu†NÖÝN“ -̬#Ý8ß³yà‚?—ÎîÖgu “òG$Ê©Î×.(g7ÌA´ÅAt×NXï »pšaðJR÷o®ÇF†‡zÎû¾“³æ'¢Ò‹x `2Ä9ç“Kh×øF³îÀ}Ø¥NèK)àáYÊߥ‡MgÎWª;hk]ðtåûå* À—§wkü@)7ù•gKØ™C"uSï3¸M_èKaKð³Õ^`ŸUrwªJY®ê E‚ÞÿÝoÕíâ_y-p¿žrž¬«Ý†:wb“Ivd«RƒˆÉ•Ôݧ~€ïñ?ò -äŸoÓÛ,0!í¤ŽØ ‡}ˆµùÆxÕ8H»ç¸÷M×»A%=Ú¾â#ÞtØ'§T¡h´ÏE2ïËÓºh®ã¡Ñ+r}Ó­À˺A´žÄ ‘‹ÍPEÛ¬ssáBâì¹ß|dé$;«ò€ì›@Ë\_—íä¹úô‚ï«®ž³¦ô‚a‚ÌWM5cxø8¡RèáÉŠ ÚtK?5B:¿…’Gèñ~-ÁL‘¹+˜Ù¤KsÍüݪ/©ãÈa4÷IÚAÙaM“GêruŸM’8[&eöfï @[öˆ­dF¼ž1"ùCŸ÷ÕAtÈ<ÒÎeq³îÏ¥YTÄËTüiþLFêë ¿»˜[#$ùPî äy7“¿Û(lÅÍPq…Æœë ø.¼lø¿¬Ðšv)GÔ+ Kö³ž†„1¹6ó|oŠú’ìÝSjÂíѺ±ó_ ð£ v^¢9SXžÜ´¬ W"nw§Y%\ãîÅÓ.Ã3*µ ýö!1/½öý÷œ=ƒˆF°-Š´q©dàÛëw»§÷Ów „ _—ÈÜHRbpàYtÖú+x΄'-íÉóañ‹zSß9øØe˵ÊL;©w÷ÝÇÛÅ«––n×h1³Ó®J}5â·KB§‡I‹ð,Gý@{á([ª¨6÷–5€­`ÜãÐh°}Wxæ ï­ n#´Š•†ßV¤­´%"ð< vÙ(1ÒsRrÐ'”Eƒ1¿Qu½p°fñÝF„áRîð&—ô’FÅâͲѦ•ŠÑ³2îÕ ²¢‚o ¯X®%ýùUmeöò$Œªÿäµ WNOÃ-ÁÓ™%;E¯ír$y§»€{))ý¶pîÕXðNã¦(©¹Ó¼5Bx¿ƒ]ìç)={ýÙ'ö æ©mQU õòà ÅSQbÔgaך¶æc“,IÄú™ø_ŽÜN§ñt\)*¶cèÃ~Úĉü—g=YÌjÎY°fx,FÜ3GËÑ{ײrž¯Í¯Cðq³Ç…6bÚÝŒtýׂ&21ºÖ¢SÝ ’â?öú½ ŸãΗÍ/ùn™oƒO{^U‹áªž ô¸ù)•=U·•àSÍÊj ¹9 ‚AºR90]פPˆUÃs¤qaK§Ôu yœ?P EøaþjpNp‚¿9I–¥Zw žh»ERG¬7Ûü¢2?,C‰ÕÆŒ=åàì'ÂÆ)l<˜eæ\R1Ô6(Jj6[eûUÄ0&ÇŠ~R3?•íê‚ÁûÁ¯7á)³0?ž»×Ì5Fe¸ü¾5ÓÎÁö)”SÕ¶b±Ç3ÚT 粨Έ ¦¶} %Y ‹`r¼–Xµ´¢×9í‚t¥Ömuþ6pY¯CxßB&ÇÚ4«@P¨‘¢éfÏï8Rö¨ÀøÎF½Âz±äi OSÅC^ó|D¯TPöd©ö0‹G ¥+fŒ ÆùªõÉÜâäó+!GvÂ_‹ØŒõÝz¦| G½F=ôÐ5X8"sH­"ä“åõvÃêd4„nDïH¨Åúq?yãFãÐYÌ”¬÷›òu+»Jüjž_ —ðŸx,=D†®¦bD†#£Ÿö? ½¾‚è25Ì -vèfÆŒ²§²V äLÔ´¡£=«µF0åQh0ÞFªâKw¿Œh -UÉn‰‹™âÚ“Vt*%ÆêõÓ0jt‚Š¡H”œfiBôwíqßL‹Ût4ÆYeC¤ùÉÝÖ³,ÝÔääÖÙÈ=M€uï)K¼9à3uðËÅvßàEc<Ô|§¢±.¯ÓDFÂ]›¤µoŒè-ÙÂ4:hXUó%Þ£µA¤î¬8ü¾ñœA†YüP9ôe!Þªò™“Ïx}tOª"ÓµÖæûí k*(™—ÛÝìÂÉtiÎ[ß]øeŒkBo|©F_ÑRýós§}DŒ‘Ëæ·ëDœ7¦ :ûbpÃÅÆ5Š[öÅ!‹£ƒž¢}œ?õÉÞÊJií¬)9õ[kY†\ˆ$äFà Sé¦ð¾z¸ÁkÛ…ìßš£ºM’AbNéH–83újØ|ž GüVFxùƒî“’ò~sÂÝûð7n&@ŠÌ†™¥ƒ™ ΋LQ‰{¬$¹8q„€ð+Ì~'¬åà*U[_žÜõgέèän¬*;½[нT¿Òæ1 -†…EËØ® -Ô~%@&š82—}õ`ÌM±Z¢”è “|{ã…¨m)Ù”š—Û´UµEð¡Å”2ÇÙv¬IÅg¾¶ÚD¸ƒµTŽAb)Înh0*iXppªN¼Õ÷eÌIœùˆûÔ©Ìåjb¾þ¾?¯·¿ñÐA¸5ÎM›®{øm’Š«ü‡Äžžš;¦ïë™é‡ïгgA¥´ÊŠK‚ÉÞïžC0ßj3ewH³©FÊi»ù¤Ðì ŒÛƘvH?+z²'²ÚU¿ËR-±2ªS§¡ïAäÂொ¸b¯Þ4Œ ÛHñ -Ú/XZ88VÂC&-Çy9?ß°ì•ÒŠz6ð &Âg -Ú -æi:[|º÷(J;n¸>Î…é$Æ+46wIš¥¼/Å3száIUðßîÁÏ)sþ†² 4µ¤SR^8ʈÎ"4¢ ±X^šÀ¹!2d ßVÜ]ßÙ¬SØžâÀ3ÄSvÝËèANÌ zøÀ¸E• àá™N>ýBß%¦¨U”8Î\òÏ°Qs½qWf·® ¥t'u‘"#øf™ø f‡H±ù‰÷•ê -s!ÅeÎ::‰í Í -ƒ°[Ñ»·æ 4¨‘‘ yóéÂt*?D2o",[Ž¾ŽÒÀ~´Ì‡¦°{^ê:²sæq¶þ\Ã@öu‡„}œ× ¾o ×òç¡IÕË3¬Œ“þ_žª­Ä\·ðBfœèÔا‡ÛRñŒ¿Æ—w]Ó®š=?iÄñ[ÿ„½ÉA¡k÷{³ÿ¤fVfC¢|Ã6©º˜³½'8óq´õý}ÒE¢Tòù¸´kß'$¬=êÏîŸ ‹oÄnõZ'‹¿°Þ·‡"[Á¹À`Œ”­R2uv ¦mž…·@.êÞû”­1™”`S=Ô †·àø‡. ¥É!SýìUWÜDÉ}`ØI<µ-°lÒs÷;ÿ}“U©æÏ:zG]Ú#šÓ7(kuÜ,ü–Çwee&‚^ÔæôVLÜtUwÔi?»øH+¸Ï0\Ñ//9l74“/à¹eã:©hi<û|tˆ,ýo”ƒYL Ĉx¼ÝÚ/?Þ¯„51o¢¹˜‘­$ömòÁ.³ÛTíëL²âÐú…˜Û%¸B÷ãWôÍ­÷½îý?sÀüFxÕ0<_eDß?L£„!¹ZÝ1‹´»qÊ!· ‹`p@šOÄ9÷‹@ùÂ÷‘¦µp‡oc0Û†ñÉvÒy bÈ>:}·76 -¤.°÷Ÿ¤˜E0»H·¨R¢Û ‘ê÷l“x¸ž@jùٌ뙴1óȽùbþÑc’«eGo¢äȺvÕDy_¢™Û!©lGUO¢é$~ÏÍ«×Õ»‰œ¡SW¥†+ÏgÒH}ò)å„gŠ„ÌNñ°¢!§¶fXT†îóì_X]7„„êØ=fçÖÆRο‚{*Òe?ß”ÏO–E´Ì““ßw|g]/½¦_;×ÿ8bŠoªÑ.M0h³žš0HzÑ€(â(îà(Aãtgûõ‰I:<ÀO -¤„pƒ¨ÀŸ‘r8–ÄÈ(ÈœiÔ´rHð ÇøÃRdQ¼ô”´çr~ Ö·'JgòŸÜ^ËCFd •Æl’ Ô¯N“ØÙ¤‡ ³ƒ˜!Ù†xmIªþŸõNÍšì_olµÈ#Ô G²Ž2ÿÑt $rqð*Àì+œšº¯Ö«[[PÑR6Ó8+WJÃÎ+Š¾_ô}ˆê…9úΛbUè¹–¦&Ìc†j_0Ô`§º4ÄÑ++w¿a8šMœ¬éÝ̸ȷ*çПÓêÁ¬%Dá]¯Ÿ£ OQX°ho˜eѹ.­ä¦ˆ¥ÅÞöèLÃ1·.Œ©²Œ$W™^º`ûuv¢w5—W¾9±rIƒ«&!š—¡ÇÛ†Œùe.ÉΫÍ[y^­ª‹å'éVq*?[Ó8K¦-b§R†ÂP³"’å„2Ì‘0¶ÿÑ,»b@w€&ÁQÙ­˜»PxGöøpþî⹺Ôu¤X§$#iή…:>Õ™.3 -%~hÍšäf2inm~Åf ˜ÿ»M ÁÐs‡ò&ºÍ¨Á‹ -sÑÖm{A³‰@ùŒ½^ô‹R°bGîr“5ïc4’rë¦b§Í´bjaUI‡*%ùýzc(ŒÔñeÆüÕ°ýRNG²ÎݼÈ;ÌÃL¹ ?2…vûü­jMéø+' -ž,뮕¶¥;b "ï¨û”3ñw××–H]oÚ,•^ýˆƒò‰)\=8ªvÌùà, ”ë+ A$÷y m9Vt¹ØsgÔç;”Xýiç£u‚ðê -Aϱ¸ŸÚé_ŸÄ­e»ˆì’aõÚÔdæ5ã¨:’™³Ã¨R=>çw:›ån!Eû©n QŒá©¡sJß7ŒºukGÃÖzŠs¶Ÿuý.ãÎì–à“ CqTÑ„ŽBYiÜ„‰4ù®ó€ÛøÈLö–e{ɶ€¿s Þ»\œiNC“°ôÊÅ1ÞuÓ|ù—„ñ6¯5­¯€N]Û³Q D©ü¤fíí§«ù&‡È¤¢à’ù¬˜FÍêÒ¯ê¹e¹÷ÈiË=÷#ˆU¦õ0í†VX}”°Åö¤™…[ŒŽé $¤æC£…Éq÷Ê—M#QÌB¸{¯€¬À;S†‘”ëYêzö§W¯±OgHëYÚßâ蜼•Õ;öy]ç” §:ª6¢½>L^­à%1²)©‰MýòœE{d„­|\ ˜¶<Éo³íi¿ã7T?"”ïÜ¡CMoR5G™elí˜$6f@«€:}Ŷ¥™áï'R.l$ž‚ÿe3#˜]é˜Û…™nÝdpø2…78´ -_ió!Øn*ÿ)ΠŒ -U¡Ý¡¡}”ÐGï»3WЖŸÓÉ37mé–Τ¥dü•¿Z”yS¯|ª!ÍÚãÈN5N`µ ³× ïëG¦Öù¼ÑåÛè8éÖë§ k-‹…9¡q2!ë×ÎûÈK^˜ð´b=A‹ëãš"Ï㊺jëû`‹`ñ”°2¬‰ÁhÃln[¤–nQú…±bF&ŽÁOI¾" ÏÍ’ÁV—HE„¶¥ã,‚ÃZ$ª÷sXSViHd²fÔÃíä ) K+Ë»Lóo…/œøÕ…ÜÑü|yZ «´3mtŒ}\4Ndž)èlk¶ÃÕCt:L(EË\{'ÃÁÌN6fI<ô9§¼X‘!Y•F°Ž}BG/‘ÈzßârÒéâ¡ŸêX"ÏÀù‰ðÛ‰–³KÈ›½OÔ1œŸ€`ôÅ/3µ“›ë§¿ef؞з´=;Ì"æQ{²¦Î9¦€ªÊê£íj;E²\cbgJk§5ôÇ=!=L*°7ƒ`ϲÜI”Æ¡•è“¹æÛÎadÝa .u]7½î䳪E%ô«‘Ž¤ˆAæø‡lMö³`{ÚÑÃË"ÔBZ‘Å–oï:×ÝèYàNQ‡áeyýV08:ä¡ c…Oü>Îœ>º_¬ß[ÿ²!¯±å·ûRcî/lmÑ̯Št:m™ -ÒFö’ÝÒµŸoÝ3P} ¹éI º<çš¾=LõGó—¶w-0Fº·%°݇,5à -©þ(‚ÁFzxPÙx…Uœª?1?vHÔ›DþøÚ—íŒ`Nç–, -.%<@ ÉbX ò¾ù¼F:±qí’LOŒ im>X,I½f:—¼;}O'?[Ü#b(„ÓÅgbÛGMv#Z[Ìi&6:Œ3Ðù°Ón!ÅT®yã…í¥]O±¡íò!Ý6-Jô=¦üö…™B!*Gy°v¹îAöb¨0(Fç†f FeåÃ|ÔóL×ÅôfI|!ºœã/o5G¯*ð -ïe†òsÿ²L]†ý™ÿ®¿Â+Í@êÛ¾Kü7gÜbNq˜Ÿx»r6T§†ñ,•·[ŠÞú®dnkJ4ƽéGû¶co¹ù/rËÅ,f=ÍX¯\ìÉð’rëeâp+íÉÔ#Š“7@Á œDªjù€Õ»“7“–Å?órPG;T6ßà -—`Ïæ–ûMÛ‚Y€ðj"dÉ^¤Sêl-%Ä’{}¶µžKëùMwä»íiò.=¹Ïžx+{T 'LÑt³ÑþaÙ¡¬ŸôU±WõMÎ/J83°%ýª+ºzæÍ_©¢(÷ËÈe<íéjN5ù…G#lnÕg€ý‹ ‰møVÒ6L̲£uÃ8ç a×i­ïÙïñÜÛ•™§ë³a N{¯%¶Øi¶W÷f[]¹Ãž7à1H‘Ç!¬Òþ·jYº|)aÕ¯"${ ö;÷W³ ˆË °¡v#gofZ©à÷jÛ@X½7qHRháG+IèªøùÍçîÈ\0¦”TžG_fŽèÑž¹×ÝhJ†íZö›Þ¡9}ºôµÙ£º©IÄSPJ%Ý„€D%ÅQXc>¢OmÂÍæÞ± ˜M&ëyóÊ¡={èÖ -‘pšR^Í°Ú+øt,Òr »Œœû#Ñ“‚~´”Šz5eûÎ+qbYß­ .M椨š÷9 >z+ÙÒ‘c¬õÎÐâšStzÃq)uu“WšW7ØŸâÓÔé’¨ëH•ïŽ°Ó×}PÏÚÒ%§S¨7Û.êOò¼ÑöŽ:Ñá]©Ø…jé¼übs±åm`ÝúìÝOò>þ ÑÈ‹ô»k•12û¢ýpOØñ–¼cuG N-óæ]õ2ú׫B³¼0®Ó©MoAG“ÙÔÇÌÝ]Ì“ÐkUyeó tÚ½³7pn#Adk";† ÊMOËîk]\8°…Æ@ï§ ém¦jÕÓˆ¼îxýŽÑ\y­ëü:ØÎe’C$¦z)s³È´Èú:4}Ö¥§Úú3©Ÿµ{1)NφڕåÙDúüN÷|ÈÚë˜dT\¼x¯ñÎ2Ä%¾ót{‡ŽIßðm«-n3\oZ¢z f3¨ÁÀ©Ì1 ÄÜï{±Ð$(eõÃáMâñTLþà áu$8ã4IuG†¹Ú%|Éb•z‰ ïîþO9Ò(`¨¢ò™)å=^aÖ¸»%³dbñ íérLW£r‘{U¼ ¢”¦ðƒ_ŠÃÆ«8σ †ÌGš»½m-VùÁ±I¬f‘¦v vo¶ùª7–ýÙ$¼É«œ¹uÁØ÷ÅçÒM.qøñø:d³äµ`دÒèÎe·°!øöiùs(4Sçµg+ªzš¬,L¾æ"ò»gÂØÜQ™ªn#ì±):wöYÆ™‰¯&Û³ 7«Ú”¶¦^OYèª<‹ñ£«×0¾u?ÍU«<à¹<¶÷Œ²¥…¤Ëº˜Žá|Ñra\Üð.¾²jÛa®ZÏMþñÎWïÁ±Ôß‘ÜZ0 -­P•¦C¨ð-a÷¬ójHhÀãÈŒŠŒðÅ–7€¿‘OÉÿÐy×Ð)L{Ìœ¨èg®á¦û •Ñ#½#$eÃæ¤è3KcEþnnYœ†@XE®4ÖgË‚ö+HB$£·=ù€A·œµ´Ù$UFEp)Øt ¼#=Y•¦u0W™vƒ\Ãu£àÖNJJíƒb -\Žúñb£¼ÿ‡&fCñ\Zz;ŸsqN\…½¬ºs᯹‚hüîÔ–§©¿ÁÖÎßeŸÃ¿ã¨ÜdÑHG=ÆyÚ–¥Äðö¥ –iÍÎLÐô<ÅáˆV“,QæÍÍÞ¿ñf},Õ—ðwˆ½ÒÙUÛQTÍë?e: o椣³2óS°È§î÷  ~î””ÿ<±tEAu]‡“È«bŠqW×à¾^ÊÝ,£ˆ¤”´Ð/c‹E·%ËΙº.3ô–Õ_kœ ÒV6èf;»äŽu]°üÊÍ»­t·^$+HÃÏH»LÒ©×@°c¶Jˆ?‹Õšùák§»Þi?›„||ýj…¾”ã£}Ç7cÕŽM0ošüÿÓÌ Îe£?ûu0ð-=6¦ d³U?ÿFªø0âü^R[ˆ}a¤P-!eïw§ '¾Û›qõ¦w»Î¼kÎ$B 2‚Vãé_#ûéJ¡]P¬@ƒßÒýÔ·Žr-„i±&àÐÏ°-cü^Ÿ¶×Ñ°{ {VçiFÈ8Ò“}9Cz5†›qñ~u©…®‡ªíTç©Uÿ@,îuÕ“oɈÙQf+ƒåÑjøµ„ÚÐÔ«°x7"…ìö²<òä ¹ßô—BÛ…ãØZµ•±äMjLq²'Åþöz s0•ÃGôŸáÇäS#Ø4®Íå‘+ÞÓ“ʆå-…oýrBxêôoø},‡í¿žÓ>Gm-ÜúY  ËQJ1¡Ež@&Üìâqj¾ùØH—HçÎà‘\ß;16&¨“Ð2'[Iž^DO:ù â†&z„ÁðòiÏ¿§übÏïƒd`t˜`=yvÿ\ûÖ“ïíå„hÙê¨ YóéǬ÷ù‰:ëç¥@w…¼´¾áR¢ž -©wf)“¡JïÏšiv»ÚüêK:ÚüÉvv©šŽÒAž¤ M­Òræ’µˆ -î+<)þùGÔÙȘãbœÈ¨IbGâaì´£+is_G0QÝìý¸‡ßy#]2Y&AÒxoï¨ÖÏÚ#ã‚X…U㩺öùF;óR—88¿ÖßAy ¤Ü¹ÉòÍ$Yí^IÞ~•×F¡÷GeýÁßjØ‹ñÎ)C$lÞØ0iÎJ©=·ôÓTëOÆœ9­íY}#Yrf•Ûu$8ú?`o6Y§Lalú{R3,QÜubfI4K›ú,lµHð®áÍ2„âãqÈ?îùW>á^é+õz 8Û=Â:‡× Ì|(“¯9n’zOS ÒW1Æ–74rœ{pŒ1‚§ïƒV¿ 6ÚR©§ÛÆæ,"×\-\ÇŽ€³+©Z[z+P}³}Õn¦ƒ­”m ‡öëzB6ã~_ŸP¢_ØŽqF”ãlu¸ÞnÝÈ…¥°ØM«(EæêÓHSÆH+†|ÒæG!ëÙ["m¸OU×¹.ï·ä^‘á†Èš:ÙÑ©J窘O–œ»lð~GúÅÙ½Û­µÇLRH[L(e}©*‡wGJ‹ m²«i÷S¸`q„t=âõæœF—shÏ(²(Oe¦²Õǯ9+ÎýHøºôÿ„(ËLŽ->Nf@|}…xOw=žåªóå§T@!Ûþ¼´UæÓ{þfl˾ÃnY¹ªG²Ð\|ïñ Ñ4º†ÍYôUÒ~–\†È /¸Oß² Ètý¿ïÀ>q¬b¥þȶËi &˜ù¬Ð¬ 7/¸¬â6êÁ1¡s“Ùˆ)œw§x,ò:Â<>ëò`o~ÿ -ÕçaΗŒ3SxÃïéšßOc:û~NBÒÜ.%Qò¡Æ [즉}’åÉäÐéŒ,IÚ˜f@úÚˆð­Þ» gX¤ì]ñÆ·‚ÚþhŸ´re»§gB„¾û.¹Ôøâ•#’¹½Z¦X•ÑoI[Ph¾ãô4A3¿­JLðïDuõÝïEs«Ì–µŸ7í;èTÚ˜òÞ+êò/¼4½üå{†–åx™Sy€ŠÚ{¯Òµ1Ç ëóÈ ×ðÑFI=p k51»i¬¯Ž>ìÊ$k,½}2åzPkq+HÝòöSÕwnÛª}¶¸°5­U¯¢é’Œ¡ðvÜžwK.aACsQÒœ,…ýj\„åÚ ¦.©0—Lœe³m\gSÅrm1aç÷ÖâóJ’Ýqª§ÅºÃó|8ýFnáßRÑx©(˜p/E77ûØ)FC[µÔöÒÜyK™ÑÙ ·5(¹þ—?´ÿOðÿ…=äâæèr±Cû?5–endstream +xÚíteTœí’-îîNÜ%¸{‚»k 4ÒXãîîÜ Áƒ÷Á ,œ Á!—|ßœ9³Î_3ç×]·×z{½Oíª]UÏ®·èiԵإ¬œ,@òN(;7—0@ìháî¦âQf×Ù¸«Y8€/=½Œ+;AdP0@dYxxÜBBBhô'goW°-À¤£©ÇÌÊÊöOË€…÷?—H7° ÀðòârprvA /ÿã@-µ¬Á €Œšº‚êÓUÀä +t¨»¿´b P[‚ n f€µ“+ÀáïÀÒ bþÓšÇ —”psY‚_Â@^– ç?Àäêvs{y€Ý6®@ôå N0ÄÒÁÝêO/vk§¿ +rvuzñp|Á^ÈÔÜ n–®`g(à%«º¬üßuBmÐ?¹ÝÀ/0ÀÉúÅÓÊÉÒýOKa/4/(†¸  /èŸ\ €ØÍÙèý’û…ÌÙüWîn`ˆÍ?+`¸‚l€®V 7·šî?·óÏ>ÿ¥{ ³³ƒ÷_ÑNyýg `¨ÈÁš›ç%§%ô%· ‚ÆùgX ÖNn®¿íVîÎÿÀ<@®]ÓŸ™a~)håqðX¬Ñ8U /)Lÿ3•9þ}"ÿ$þ·üo‘÷'î¿jô_>âÿí÷ü¯Ôòîª@Ç—ø{É^¶Œ@ðgÏ8]v‹;èÿ +:‚¼ÿ›ÀuÔý]ìðý+¬¾\ŠÄæEvn®¿Í`7y°ÈJ µ´X^îì/»Ä +äꆀ^´ýëZ_‚¸¸þÓ¶[ÚCþˆÀ÷7‚Xýkù/rýU<§®¼¦4ë·aÿòT™¨¶·3ðiôTœ¬þóð‡GZÚÉ àËÎÏ `çy-àrsûÿ7ÿ¢áþçYu{Œ¸8¸¸¸/ÿÿxþy2ù9ˆ¥“ÕŸÉÑ‚!V/ÃöŸ†?°¥»«ë‹Æ}ÿ/Mÿãü×؃@^ K´¯‹N–"av™9YÐâ‚áϲFý½ÜðÃáÎMÚ¥ÅAuN=™Q›B5æõáÍSÂϽŸ¾+²ìŽö90öd€N‹(üi™ûŠq×:XwC8M+0³Žôâ|Ïæ•7 ù¹tw·>khš–?"QNu¾vE9»a¢õ(" »vÆ +°|טHØ…Ó ƒ×PrxĺsÍ8862<ÔsŽØ÷œ5?•^Ä“!6È%Ÿ\ÂP§Æ7šuîÃ.uB_J?ÏúTþ.=Œh28s¾ºPÃQGû‚? +ß/WI¾<½[óJ¹é¯<;ÂΩ˘zŸÁmúB_ +;‚Ÿ­û¬’»SU*rUO(|ðþï~«m¯ÿÊkûõ”ódS ê܉5I&Ù‘­J z &WÒpŸøºÇÿÈ+cr¾Mo»À8„<¶o˜:b;ö!ÖöãUÿá UìœÓÞ7=ïQ”|ôh‡ŠxÓaŸœS…~v¢Ñ>ɼ{,O뢹Ž‡D¯ÈõM·*_Ö}¢õ$&ˆ\¤h…*Úe[gÈ}üæ#K'ÙY•§Ì¾©l•+‚â‹ãºI›"¨8®¢iñH]® .â³IgË$ ÌÞìè¨Á±•Ìˆ×3F$èóþ±:ˆžGÚ¹,nÖû¹4‹Šx9€Š?Í‚ÉH}½áwskŒ$Ê=ü1ïfòw…¸…3 +#®Ð‚K½!ß…—-ÿ—Z³.•ˆzdÉ~ÖÓ0&·fžïMQ_ò‘½{JM¹]ÁÚ7bþ ~”Á.«sB4g +Ë“›V2báJÄíŽÃá4k£„kܽx:exÆ墖¤ß>$æ¥×¾ÿž³gѲC‘6)õ|{ýn÷ô~ú®áë”$%žEw­¿‚áLxÒÊ<¿¨7åAð£?Œy¶\«Ì´³qwß}¼}¼Ziév63;íªÔWc~ûô Dqz˜´ˆÏrÔ´N²¥Šêsßa)QØ +Æ=Ûw…gúѺà6"€«ØXiø-ðgE: +A["Ïb—#='%}BY4óK`5· GßmD.•ÿarI/iT,Þ,[Z©}k“^M"‡'*øÆðúåŠQòП_ÕWf/O¨úO^;zåô5¡qž.,Ù)úm—#É;=ØÜKIé·…s¯Æ‚w7ÍÙ€IÍ­ÂÊ÷;ØÅ~žÒ³×Ÿ}b¿P`žÚUÅÑ Ú,?œP<%F}v«ik>6Í’D¬Ÿ‰ÿåÄݨéì§CœˆÁy֓Ŭî’kŽÇbÌ=s´½w-+çùÚâ:7{\h#¦Ú`¬ç¿4©‰Ñµê^ÿ±×ï½Xøw¾l~ÉwÃüË|[DxÚóªZ 7¥ÇÍO©ì©zí¨ŸjVVcÈ-X Ðõ‘Ê•ÓõL …X5=€švÔ9qZA]·àÇùR„!¯ç'ø›“dYªõöÑà‰¶[$uÅz³-.*óÃ2”XmÍÙSÎ~" lœÂƃXfÎ%C킲!¤æ³åQv_EŒar¬é'µòSÙ®.ÜÁ±üZqž2 óã¹»qÍÝò±aT‡Ëï[3íížBÙ1Õì*{<£Í´q.‹êŒÉ`jÛP’õR°¦Çk‰UK+úÓ@pWjaÝVçoC×õ:„÷-dr¬M³ +…š)ZP~§‘²GÆw¶:è6‹%ïHkxš*òšç $z¥‚²'Ku†Yê7꣇®ÁÂY€kìÁ˜¬®·V'£9Àt#úGB-6ûÉ7š‡FÈbfd½ß´‘Ϩ[¹ØUóàçÃ{k8 §¼9ùò>dDî"^W/艞hq«¼ŽD$j³Ȱ#²§Ýâ_‡£u¼á$=Wx„i\/O/b“íªíPœõ.§K©¯Š³Öføëßrr¼­Ö•1TzÔKR^-ïäláW§ïnk*ô9sÂÕcùwû½{—ŒÂ¬¹¿ùÐùæHCÌ@[é’¬u†²*ºhÔëŒÍIήŽ‘H‚B¬è1agójwÿÚNãçP…!3o¥t ¶»H;H¸Ù¬–AvX-Y¸˜2š<npêÐvòöÚ/•' kì{kþô‡^¨”ÆÖÜ‚zÏ`.ú]´ãSæ;^ÆØö ØÉÌض(ÃÕô÷öQx¢`*E¼+‚Í+GzÑ)QØÜlÉpkeeŒOW¤þ3冀dù?{µŸNüìëc2Âlå2­ÑÈœ˜?%’3>ä8…¿¨ê4€—4ÿ¸›4•PÞÌ÷£ë'G5ò¸rŸ’=1³ë-G(z(·Æ;ñªîý‡DÍÅæ:_ûP »Q›m¾eªr]-ibŸs u°Ñt¿yÚsˆ$é‘©–ÅòeÄÉ­[ɽ/ðì86ã/¢óÁ³ÈŒ#1Ï‹ty•j@Ög¡@[çØž¥2¿Š)DZF‹²i6{Ãœ+¥PV§ªÆ7ÁËLR †¿°¥V¦®é«€nVâ—‹”hK~Aº–9Œgê!ÌRÌ.´âLÚ­š,ü«Âßa¸Ö‘OÙÄêP5‡ïNèžI6K‘È=—ƒB:W=*–M€žÇsš}û*rê‚ÿP–r>jž_ —ðŸx¬<D†®¦bD†#£Ÿö? ½¾ë25Ì +vèfÆŒ²§²V äLÕu £=«µÆ0åQh0ÞÆjâKw¿Œi +ÕÈo‰‹™ãÚ“Vt+%Æê Ò0jtƒŠ!H”œæi†BôwíqßÌŠÛt5ÇYeC¤ùÉ¡ëYVPu9¹u6rOSåº÷”¥ÆÞŒð™ºøe‹b»oð¢1j¾SÑØ”×i!#a®MÒ:4Fô–la4¬ªûïÑÚ"RwV~_ÈxΣGì?~(ú²oU +ùÌÉg¼¿Ž>º§V‘ŒéÙèðýö…5”ÌËíîFöÀƒLáÎdº6 g‡­ï.üÎ2Á5¥7¹T§¯hj„þÎù¹Ó>"ÆÈeûÛ’õ "Î3‰Ý}1¸áb“šÅ-‡âEŽÑAOÑ>Οdo e¥¿´vÖ”œú­µ‰,ƒ/Dr£á…©ôRx_=ÜàµíŒCöo-P¡“dà˜‡S:’%ÎŒ¾6Ÿ‡'ð¿µqÞEþ`§û¤¤¼ßœpwÅ>ü ÔT™"3„afé`f‚†ó"STâ+I®N! Fô +³ßk9ø‡jÕÖ—'è Á̹5Üue§w º—ÚWÚü#FÁ²°h»UÚ¯ÈDçC²¯LX£ #VKÔââ•å:Ã$ßÞx!jCZJ`6¥æå6íÔì|h1e§,p¶Ý«GRñ™¯­7î`­T„cXŠ„³ŒK«o |sg>â>uªp¹™Z¬¿ïÏÃ+Çío@<´En…sÓf…ë~›¤â*ÿ;ÐSsÇô}=3ûpãzö,¨”VYqI0ÙûÝs¦â[m† ìi6ÕhC9m7ŸšI»‹ñÓéïgEOöDVûêwYj%ÖQu4´ñ=ˆ\|ãUWìÕ›F1a)^BûK ÁJxȤå8ï#çç–½RZQÏ~ÁDøLAZADÙ™¹Aÿ·¨’4<ÓÉgPèۢĵŠÇ™Kþ6j®w#îÊüöõ‘”ÞÄ¢RdÄß,?ÁLã)6?ñ¾RB]a.¸¸ÌEW7±½A³Y¡qv+Úc÷Ö"¦52Ò½òBsc0!o>]˜NÕð‡Hæ-@„eËÉ×IZ¹-ó¡)ìžW³ºŽì\Dyœ­?×(}ÝqGaçu‚ï[£µü9EHRõò +ã$¸ÿ—§ZA+1×-¼9':5öéaÀ¶‡T<ã¯ñå]·t„+…fÏOšqü6?!CorPèÚýÞì?©›—Ù’¨Ü°Mª-ælï Î|Gn}g…t‘(•üc>.íÚ÷ kú³ûçÂâ±[ýÖÉâ/¬÷í¡ÈÖp®0#$e«”LGgˆic›gá-à‹º÷>ekL¦%ØTEuˆÑ-(þ¡KSirÈÌ` {Õ 7Q2Ä@9ì$žÚN¹lÒs÷;ÿ}“3U©ÖÏ:z'=Ú#šÓ7(kuÜ,üVÇwee¦‚^ÔôÖLÜtUwÔi?»øH+¸Ï0\Ñ//9l7´’/à¹eã:©hi<û|t‰¬üoT‚YÌĈx¼¡í—ïWš˜7Ñ\ÍI‡Vû6ù`—Ùm ªöu'YqèýBÌ&í\¡ûñ+ú„N6û^÷~-_ ¯x¸û-FÖwV¸­–Ý]D}EŸŸ9`~H#¼Žj˜ ž¯2¦ï¦QÂ\®î˜GÚß8ç[…E08"Í'âœûE |áûHÓZ¸Ã·1˜mK‹xŒd7é2P1äŽ Œ¾ÛU¦.p🤘E0¿H·¬R¢Û ‘ê÷l“x¸ž@jùٌ뙴1óȽù<æ ʶØU®o[?áZø`&IzËDûv)Y¨™`mÈW1£W¯!_¨Àj–wç?¨[p`€œªûQZò‘5²iuN…M3@* Q8)V kküֵ׉CݵT²ÄM‘Èê÷:smj†b»¨g,ÞüÖX‹*|^í÷gcH‹/«gD³jvfMµ,¤7„”»MUÎËà¤~‘ÊÓ–Ö©·”KAñ3Ýw¸|ÛØ!4A.@Hš…¹*,Dúñ ;býÚÚ÷®-BÁ]áÀÉĆ_`m&”†FÅ‚‡-L!ž0ëÇn öIÖñd¾‹‡óFüð/&©(ã}1ô¥,ªÚµ»†>bþÑS’«e'o¢äȺvµDy_¢™»!©lGUO¢Ù$~ÏÍ«×Õ»‰œ¡S7¥†+Ïg[ÒH}ò)å„gŠ„ÌÎñ°¢!§væXTFî`‹ì_X]7„„Ø=æç6&R.¿‚{*Òe?ß”ÏO–E´Ì““ßw|g]/¾¦_;7ø8b†o¦Ù*M0è°žš2HzÑ)â(îà(ãtgûõ‰Iº<ÊŸH á9P•FÊáX#£ s¦QÓÊ!Á'xãK=’aDñÒSÒžËù}Xßž(É‚¾–È)Ù&j\&±³Ie1ƒ³ðÚ’Ôü?럚79¼ÞxÂöX|Mt?Ë&\þü~ñ´Š‚hM)»¾H8Â`‚ô2¹à†^æ 3X;Dy•W`›^˜]Ë‘î&å.6†xwŒOi(Ng‚fŽõЊƒFØAgcK·ñÝéZ* >ƺ„±ûŒŽUÔŒ\Ì#w…ÕJ‡ck_ ±ûbFøÙ‰Jÿ"&§°XC.c.1ÆÆKy€ºü¹®“^‹Q0@$H6ÃÚn¥ISRP-™ÀÌ:â,@„?mNÆä ðl‡á(f4 “¤ jMtåA$u¡¬Ûbã&wC†Ë6+™…³Ó[˜R¤Ø5ƒÆÃÁfy]Y¯¸ ¢%ÀÜHăJ~—Æ;Å#7Ñ*ŠÄΉ€95÷*µEæ/,ºl¹)‹a!B’D_2^±÷ƒ7õö¡•õ5éØ13XWÒ´ëÎ룥ÔÛ°\ç]þF[¾âBa{R¬ÛÍ–¬ŸEàÂkÎ$‚¾;4›)í$0€UW—1”QÉIÕ÷fÆÒ1–ØkíÒ+ÛUõK§ø°Õ PÈ:ÊüGÓ-‘ÈÅA«ó¯pê¾Ú¯ní€EKiØLã¬\)A ;¯(ú~Ñ÷!jæ¸lŠaT¡çZ™™2 Œ©ÁP‡êÒlG¯P¬Üý†á(h>q²¦3ã*ߪ’CN«³–ý…w½~Ž&ho2æ—m¸L${¯6o•yõª.F”Ÿ¤[Å©ülMã,™v\ˆJ +CÍŠHV†*t2GÂØþG³ìŠmÜZxGe·bîBáÙãÃù»‹çRבb’Œh¤9W¸–øTgR¸Ì(”ø¡5kºà›É¤¹µùÛbþï¶-Ê~˜;”7ÑmÆ ^T˜‹vÐí­&•3özÑ/JÁŽˆ¹ËM6¼ÑH*­›Š=Hœ¶CPHÅÔª’.UJòûõÆP©ãËŒè«Qû¸œŽd»7x‘w8™‡™rÁ`"d ++ìöù[Õ2š +ÒñW:NF1R„§ŽÎ)}ß0 +í>Ö‰†­õç l?ë&ú]ÆÙ-Á'†â¤ª?…²Ò0$¸ iú]÷·ñ‘™ì-Ëö’]ç¼w¹8Óœ¦aé•«S¼Û¦;èò#. ãm^kZ_†Žg#(¢X¥ò“º·ŸA¬Ö›"ÓŠ‚Kæ³buëK¿ªwöVåÞ#§-÷Ü@VM<˜ÖÊi7´Â£„-v'È,ÜbtL%!5--IŽ»W¾l‹ºbÂÝ{dÞ™áð0Œ¤\ÏR׳?½z}:CZÏÒþG÷ä­¬þ±Ï›pÈ:§lÈ8ÕQµ1íåðaòj/‰±m¡HMlê—ç,Ú#cl•ãZÀ„´]äI~›]O 踑ơ|Gàjz“šÊ,ûckÇ$± ZäÐù+†´Í ?‘Ja#ñü/ÛùÁ|ìJ§Ü.̤pPë&ƒã—)¼Ái¤UøJÛÁöSùOq†eT¨ +=èŽ íóÀ„>zß¹‚¶ìüœNžé¸i+h:“¶’IðWþjQæMýò©†4#{µ8<Ô2Ì^þ¯™ZçóF—o£ã¤[¯Ÿ&l´-æ„ÆÉ„l^»ì#K,yaÂÓŠ ô-®k‰<+ꩯïƒ,ƒÅSÂÊ°&£²¹íjXºEéÆŠ™8?%ùŠ4<7K[_"Ú•vŽ³F k“¨ÝÏaMY§!‘ÉšS·“7¤4,­,ï2Í¿¾pæ×rGð?òåi%h¬ÒÉ´UÐ5ñýq5Ò8¦ »=¬óÙWÑù0YL \-síaœ 3;Ù„%ñÐwæœ~ðbE†dUÁ&ö ½D"ë}‹ëI§«‡AªS‰<ç'Âo'rX.®!oö>QÇp~R¡/~™©Ü\?ý-3³Àö„¾¥ãÙaÙ0Ú“5ÅpÎ1¥¬¦¢1Ú®¾S$Ë5&fy¦´vZC_p|ÐÒä + P€{åN¢4­DŸÌ5ßv‹ ë +ãR×uÓëM>«YVB°éHŠdŽÈÙf?+ð6±§}1º,B-¤Ylùö®sJÏwŠ: —(Ëë·‚ÁÑ!š(|â÷qáôÑûbóþÛú— yƒˆ-0¨Ý—Ëhak‹f¶xU¤ÓyëÈL6²—ì–®ý|붘êcÈMOÑå9ÄìíaB¨?š¿´ƒ¸[ Ò½µè>x©WHíG 6ÒÃêÀ+¬ÒðTã‰ù±C¢Þ4ÚèÇ×¾l›t:h²(¨”ð&‹a5ÈûæóéÄØ­K2=1Z4Lx¤¸ù`¹$õšé\òîô=ülqð¼è¶^Y•=ü"ÄéîÊD ³ÛÜî­w¡ÓÕCïoúGíµ-˜謷_yà"Œ5é²Ðä…v®M 2úò0s3t¿Š#TO¡fØÙè=ƒ~Ûé+ç“Oâʼna.Ú2²­¡\F\Ò¿BçW¹D+þ-™úÕ½ƒ£QÑOF¹p±%¸ôC!œ.>Û!j²ÑÆ2`N+±ÑqœÎ‡v )¦rÍ'(,h/íšxŠ… m—é¶iáP¢ï1å·/Ì +™P9ʃëu²‡2†Fƒbtnh–!jTV>Ì×A}ŸÁt=Lo–Ä¢Ë9þòV ôª_eá½ÌP~Îà_V©Ë°?SâßõWx¥J}Ûwÿæ‚[Ì)"óóoWΖêÔ(þ¥òvKÑÛÀ º¦DcЛ~´o'1ð–›ÿ"·\ÌrÖÓœõ +ðÈÅžŒ/)÷±^&·ÒL#0¢8yX¼ÀI¤¦žX½;ys1iUü3/çu´C`;ð ªp öln¹ß´K ˜¯&‚—D:¥ÎÖRB¬¸×g[ é¹´ŸßtG¾Ûž&ïÒ—ûì‰çx±²GµpÂ@7í–ªÉúÉ@Í{ÕÀôü¢„S0[Ò/¡º¢«gÞâ•ŠJ¿Œ\ÆÓžžÖT³2¿ðˆS„‚í­úàL˜rÿ"@Sb¾•´Í³ìhÝ(Î%hØmšAûûEö{<÷væéúlX££œ†úà†ËT|AÅ}$Y‰˜E›•~´ý¯ÈÿØJ+~Þ4Û\×DW1âà G¸s7mÌ%f'Þè ä”øsÅß ëÉÒ¤^Úøv„H·à—^ó˜`vÈÞk‰-vžíÕ»ÙÖ0@®Å0‚ç x 2@äq «tø­V–._J˜Eõ«ÉAYçû«ÙÄåØPû‚³À73­Tð{µm@¬Þð88)´ð£µ$dUüüæswd.SJ*Ï£/3GôèFßÖB“ën4%Ãn-{‰MÿЂ>]úÚ|‚QÃÌ4â)DYJ%Ý”€H%ÅQXc1b@mÊÍæÞ± ˜M&ëyó +ʊО=ô +k…H8M)¯‰fXý|:i¹²»&Œœû#Ñ“‚6~´”ªF5eûÎ+qbYß­ .-椨š÷9 >ú+ÙÒ‘c¬õ`ÎÐâšStz£q) Ó7šW7ØŸâÓ4è’¨ëHUÓ×}PÏÚÒ%§S¨7Û.êOò¼ÑöŽ:Ñáݨ؅jé¼übs±åma¡}î'yŸ?ÿ†‹häEúÝǵÊ™}Qƒ~¸'ªÜñ–¼cuG N=óæ]õ2ú׫Bó¼0®Ó©M]oA'ÓÙÔÇÌÝ]Ì“ÐkUy‹ tÚ½³7–pБ ²5‘#•¦§e÷µ..ØBeïçeÒÛ -Cµ<ª§yC½ñúã ¸òZ·ùu½1Ê$ÿ†HLõRæf‘Y½2ëëÐôYמ6j›Ï¤~6îEĤ88=wšêWVgéó;Ýó!k¯c`f8ýQqñJà½Æ;Ë—øn,Ò;n$}÷­·Le¸Íq½iYˆvè-™Íe †§2Ç4` ¿DìÅBÓ@¢”Õ‡o´ˆKÄP1ùƒƒ†×‘àLÒ$5œæj—ð$‹Uë%&¼;¸û?åH£€h Š*{df”÷xuFYãîVÌ’‰Å0 L´§Ë1]*EBìYT=ò¶ˆRZ†Â +|)Ž¯âðœl\H˜ÝIC>–ù‡»…R©-/ ã–‡%Ü©Ù̺žÖ{ªûN{o6]”½óÚ#X1P™f`EŽ²=Ã(H¬ûO=CšÛw“ÑKÖß”s÷Ó“Ú7ª‰]ì„k+óJçmô/Ö³ôCû™)¸¦ñç‡ÝL*ØúÃ/:;<±á4Ó$Bo:€+?ÅÂìd/\:¢N/ØDR“à~«ù²¹á5LÑí©ÆÏÞw9 ‡ù¡þ Pz«×jQ +s½vI½6Få½=QZ&Iª r¬­¿˜¬Î=6yþ•.Ä÷’¦Ô¾Œt›x}Zp–F¤]ùuãôÚ77ª/°¶‰ž –áiX6EöúY2«.̸§Aá{ÏƧ`-cß×zV¶À•¤f¿ëª±” ÿ°IØ%?´˜7SsJY¶Äs}ÑŸ<'<±¬rù„ƒ³3í¶ÚÌ¡!›öˆÁP7KûC:Aiz¤öö˜ýSñð~ºrúsÏQY¾ƒ‚Š/ýthÊÕÔ±8‚Q-_:¥¶L+€6*£Ý0r’¡œ±ëDäª:✇'à g‚Ç×T[‘–m\ù„|-9ÝÙ%¯e?µ•Ñ¸;ªø·•âìO¤»Ÿõèó<êÈ|ô¡¹ÛÛ6b•œšÄjijÇP`÷f›¯zcÙŸMÛ¼Ê À‘[Œ}_|.ýÐä‡O•_‡Ìc–¼ ûUݹ ‚oŸ–?‡@2u_{¶¢j¤ÉÊÂäk !"¿{&ŒÍ•©ê6Æ›¢sgŸeœ™øjº=‹Èp³ªCigæõ”õˆ®Æ³?Ú¸z ãûQïÓ\µêžëc{Ï( [ZHº¬‹éÎgð-ÆÅ ïâ+ë¶æªõÜäï|õœJýÈm£ÐJUiª1„ +ßvÏ:¯†„6[–´_"%¸íÉ,z嬥ͦ©2ª‚KÁîø£áéÉjÜ0­ƒ¹*´;äšn·öRRêSàr4Žåý?41‰àÒÒÛ›úœ‹sâ*ìeÕ; +ÍDãw§¸°:Mý ²qù.ûþGõ&‹F:ê1΃Ю,%†·¯(µL{vf‚¦ç¹(@´šdqˆ2onnôþ7ëc©„¿c ì•î®úŽ¢Z^ÿ)Óax3'µ¹Ÿ‚e>u¿mðs§¤ü牥+ +ª³èì:œD^U3Œ»º÷ÅðRîfE$¥¤…~;,º-YvÎ$àu™‘·¬Áú[“l °Â°a7ÛÙ%w¬Û‚ÕWnî<Øíl¥»õ"YA~FÚå âDëþôa’–H¸‚óU +@üY¬öÌ_{½õN‡Ù$åÇ7ѯVxàK9>:t|3QëØñ¦É?ð?ÍÌà\6ú³_+¿¥§ÀÆ4…ç f¼lŠl”0Ât |Lòâ÷0ÌA«œê–¹¢D fhtV",µÊK3óÅ .IÄÕ x0>›µ@²åliØd‘žqÔö5£3=@ß2œï’XÏ·‹|B •ÃT«õÄ8×AþwbCƒÙlÕÏ¿‘*>Œ¸¼—Ôb_i'TOHÙûÝéÊɆ}3®Ñôn×…wÍ…Dˆa@FÐz<ýkd?]‰ ¤Ë‚h8à[búÖIî£åƒ0 !Öú¶UŒßëÓö:vtÏê<­'ºb²/gH¯Æp3.Þ¯.µÐõPµê>µ¼ˆÅ½®zò-Ù2#Êle°§æK‘­t‰tî îÉõ½3cc‚ -s²µäéEô¤³Ÿñ nhR¡×¨a /ŸÎü{ +À/6ñü>pF‡)Ö“‡Q÷Ïõ·om1ùÞ^Nˆ–­Žz±5Ÿ~ÜÉzŸŸ¨»~^ªì®—Ö7\JTÂS!õÎßh^êG—×;(”;7Y¾¢™$ë±Ý+ÉÊ_`åuPèýQYð·õâE¼sÎ [‡71Jš³VjÆ-ýôÕæÓ°QñdNk{VßH–œyåv ŽÁØ›MÖ)3Û†þžÔ +wݘY­’Á¦>K;m¼kxó ¡øxdGò{çDþ•Ox§WJ½(ÎçöÏŸ°Îáu3ÊäkŽ›¤ÞÓ¨öUŒ1‡å ÜçcŒà¸ò UÀ/ˆ¶Têëµ±¹ˆÈ5W ×±#àìJªÕ–Þ +Tßl_µ›ëb+eÊ¡ýºžMDÁ¸ß7 ”¶cœå¸X®7ݽ›™7t¤Ý«‹Ù“ãS+I4f=Öçâ \™Fƒœ^­‹ñòðIö˜B¡é÷VýµXõÔ’8~ Vš±¨á‚±ûSDZ~’»Ág3÷Îó°—Us†C[Ù¢œW Ä“šHThôb£«ÎoŠrJ!KŒéðK££8ò²7tÍÍé{ÛÚZQW¥o^å«®x+"ácˆ#d ÿkå ¦Øåõ}ŸÎ©! ‹_ +”°+ÊØöÿ`ûSKhÖϤfÊúw ¼0ݲRŽXU§­b»£=á{_{X®/L$š Ív…0.=o3_5ý1Œ¶äIçw*Úÿ¨ ÿm‰dýC¢[ÇÀJ.jUAoŠÉñ£ 9^Œ}è'‰£‹Ýïn™î¹q–Tå<¢™õþ%½qAp¹[䌥E¹ õqøy¤IÜIŠ:ùb<ÞCm%Û»¦Ç@z­1Y¢8 eÓnÏŸ»¿Ùñ~èE*Úh—÷áS£ØB„—ßv6äÙd›âÒyÈnÕðÝ}ܺ‘ Ka±ŸVU:ŠÌÕ76 ¦‘¦Œ?V ù4¤ÃBÖ³·DÚpŸª¡{]ÞoŽ"Ã? –5s¶§S“Î Tµ˜,9wÝàýŽô‹¼{·[뀙®L} m9¡”aü¥ªÞ)-‚´É¾¦ÝKTLá‚Å Üñ$iÐakwÖFdìrªî³ìbÌVIG&™`“`ùÍÙ–%¬0ö°²ò²:Þìøpô4Š×›se\α=£˲<•™Êοè¢8÷#áëÒSüNx t,3=:¶4nø8™!ñõâ=Ýõx–›î—ŸR…l{øsðÒÖ™Oïù›±E¬úCºeåªBTÈBsñ½Ç'DÓè6gÑWIûYr"C2¼à>}Ë6$Óóÿf²ûHıŠ•ú#Û>§-˜`æ³B³ܼà²ZtÔŒ9bJ•Ùˆ)œw§x,ò:Â<>ëò`o~ÿ +ÕçaΗŒ3SxÃïéšßOs:û~NBÜÜ.%Qò¡Æ[즉}’åÉôÐéŒ,IÚ„f@úÚ˜ð­þ» X¤ì]ñÆ·‚:þhŸ´se»§gB„¾û.¹Öøâ•#’A_­+§X•ÑoI[Rh½ãô4E³¸­JLðïDuõÝ™ìEs«Ì—už7:èTÛ˜òÞ+êñ/¾4»üå{†–åt™Sy€ŠÚ{¯Úµ1Ç ëóÈ ×ðÑVI#p k51»i¬¯Ž>ìÊ4k,½}2årPky+HÝòöSÕwn»ª}¶¸°5­U¯¢é’L ðöÜžwK®aACsQÒœ,…ýê\–„å: f®©0—Lœe³m\gSÅrm1aç÷6âóJ’Ýqj§ÅzÃó|8ýÆÐðo©h> endobj 960 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /LNUYTJ+NimbusMonL-ReguObli +/FontName /VYFYRB+NimbusMonL-ReguObli /ItalicAngle -12 /StemV 43 /XHeight 426 @@ -8851,97 +8896,112 @@ endobj /CharSet (/quotedbl/numbersign/parenleft/parenright/plus/hyphen/period/colon/B/C/D/F/N/O/R/T/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) /FontFile 961 0 R >> endobj -1928 0 obj +1937 0 obj [600 600 0 0 0 0 600 600 0 600 0 600 600 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 600 600 600 0 600 0 0 0 0 0 0 0 600 600 0 0 600 0 600 0 0 0 0 0 0 600 0 600 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] endobj 884 0 obj << /Length1 1606 -/Length2 16237 +/Length2 16371 /Length3 532 -/Length 17113 +/Length 17252 /Filter /FlateDecode >> stream -xÚ¬¶ct§_Ó%œ¤cÛøŶmÛ¶mÛ¶Ží¤£N:¶mÛvòöÿ¾gæ™u¿óiæùp­uª:»vÕ®sÖ!%TP¦4±72³·s¡e¤càÈYÚ¹:ËÚÛÉÐ -ÙÛ˜þY¡II…L ],ííD ]L¹ê¦&Sc€‘““š lïàédiná PUR§¤¦¦ù/Ë?!#Ïÿéù»ÓÙÒÜ@ö÷ÇÍÔÆÞÁÖÔÎå/ÄÿõFeSS€‹…)ÀÌÒÆ ,¯ ))' —Sˆ›Ú™:Ú\l,2–ƦvΦ”3{'€Í¿c{;ËJs¦û‹%è 08;˜[þÝfêalêð‹à`êdkéìü÷`é 0w2´sùÛ{€¥±«É?þÚÍìÿEÈÁÉþo„í_ß_0{ggc'KÀ߬ -"bÿæébaèòOngË¿n€½ÙßH{c×Jú—ï/Ì_¯‹¡¥3ÀÅÔÃåŸ\F¦KgCÏ¿¹ÿ‚98Yþ‹†«³¥ù1 8™š:™Ø˜:;ÿ…ù‹ýOwþ«NÀÿV½¡ƒƒç¿vÛÿ+êq°tq6µ1£ƒfdú›ÓØåonsK;húEÒÎÌÀÈðo»‰«Ãÿô¹™:ý«AÿÌ å_†&öv6žS3hz9{—¿)ÿw*Óý÷‰üß ñ‹Àÿ-òþ¿‰ûŸýo‡øÿõ<ÿ'´˜«œ¡íßø÷ø{ÃØdÿÜ1ÿ¿XC[KÏÿCôª›þ›áÿ DÒÅðoíÌÿJÁ@Çðo£¥³˜¥‡©‰‚¥‹±ÀÌÐæoþeWµ31u²±´3ý«å¿Ú ed`øŸŠ…¥±µÝ?Mgý·ËÔÎä?™ÿ•ç_¼é%$”T”4¨ÿó6ýW”Â_Õ]T<þûuÈÚ›ü¯Å?BBöoZf-;€ƒÀÁÎèûÈö/ÆÿZ˺8Yz´ÿ–ÌÀø¯ÂÿÇ÷_+Ýÿ€µ3¶7ùgJ”] íLþÖÿ2üã6vurú«ç¿Îúß‚ÿçú_#njêaj ½ºdoÌb•‘éR‘?4!¢Ý÷‡ñÇP¨CY“Jqa@­}FÄg•ÁG](]ó×W»çâ™ÃçÕáÈtòž4Ó«Ÿ¸¾Ä”½…H›dìÔ‡Aôzep™çê1Þ× 2Û Zl j‡»ŠJz¥àxSÌN×Ï”Än…¨$Oð~Æéñh]ˆÍ@ÈõEgçdÉ'ÏOä£ÃCƒ=·`½8ÔyñP¤Ün pdÑŽy8üZªUÞ‘T‹GYc6èç æ=C’èlëŒÜ›UCî¾Ww'òxÊ0ÃöŠC„®ÖN^A½É³°’:÷›ÍÈ~ÞÕt~¢Š'_»Jéã®1#žðzd Ãš-ÕÅJºEÆæöÄ»@÷?Åòì”íB! -IŒ‡1†ýºŽ”ûÌIQ;uP¥°A•åû˜3RD¼­u#AôìîÍä¬N£ƒ)GaÍA«÷qY< ‹#4?CÊœÃ-òÙ¼íV'Ù§óü*íWu| - í:Œ}V -T§:jâV6ðë>z1ZVª=àšì™ÓvÓFÑÐ54½ú!§¶å9A6P0ð®+MG¼bê¢Y‘ßçGaƒæ¶Ë V­c3çY?â!_¸Ù þZkbl¸bnWç¢Ã2ü5ÔQLàÃw ñ¿¥®VçÍ}SˆãÃ󀘡YÒ{§žæ¾òfƒ†/’€môú¤»AËý`˜âa^>Ñ;^™éu]Í;ñ!O>Z6Ú¬?^{êRE¿Xüä¨:.B³ª·uâ*ˆõdÈûwøÔïc>w-ü¦‘)W; ÍGö+±sSí»ÏrœÎßÊ:"9æÈʬñò7Íúd”%17!Ý-.DÊ“Ë®ÆmSûµÛ| Û{Vë2ýE|m²UzTß¿þ¤›Ì¡åPBH['²ùÍeiùwÊ5 -q;w¾æûD"'š0@=÷a#èQÏ÷ ç«î³¿k^G6ÊP ó'9TʤŽ!è§ËéסT;éîŠjè¦~C OÃúHm~Ë.!H!§[8=f÷‹âƒ|Ýt۲Ȁú!"L7wðÍV¦Jq˜œT#pÊw„áËàçýÚ@ZRÏÇ&—~¿w -bÛŸ=ÆMF"PÆ‹C×™‰X1±ÏÔhE 'z˜™òR##¢á݆ӮŸ}ü;\°„ ¢YÕ¸' þ*iêð‡$“9ù#›«1Q°ïäú*¬÷›‰8»xM°s@MT!}>*Ä3—YoÑôxå“Õy^/g¢8cÜů̌d¡å`ó~ÊÆ—êªÌêÔVï˜#J¥DEÉÚ—ØÅ¢-]»îvLó;6÷ñ€ŠÎ!;l‚é•AÔ¨zœjPxye'¼©j]e0_ÛŒÌeªå\´©Éí ¸2å%çþðÊí,UÛ—ÊÌi¹è[S1Ù÷OúyŸ÷Úl˜€|õÈÔÜ’ÍøyØ㢵Æh¨i?IÂŽcW¼¦3,¯0(çße°œšNvÞ1˜£Îü°Bþë3Cp…<.M À¤ò.Ÿ.TÓGI ‡f¡õ2eÝàä¼8jÜàú®A»½Òï.]GÄíW`²=a¹Ÿ9Hæ}Uw†IÙ†&öæNé@Sßø\¨hŸô<Šp”R%á™í®R1ìPxV߃IÀ íÇXtÔÇߣLµµ*ùØ yieF3¢˜Ý~˜,¯ž3A¯í ÐmVée…êMI–èd—ZˆU -AUä]<·õ—™ñÉ*1EQðÎ!A&åÔ@x*aÛ 99¬®ž8H”ó’Pv@^Kµ¥|Fû"gRÖç,KǨÈ%ô±6®eÄÓ•ØÇš Š§Óç ™'¹Óš„$‘óòè‰(aì LG×_u™“¼3”Þ-äX]IÕ - 8"T¾ «¥Ìˬx"-Ô¦[ð=@%ê⨹µAÇ!øÑ=wàûàÄÔ‹î3ížl4íõ¾s3&êš)\l^ÒÌÄšÍQõlëŒoúÞƒ´m9EMé`:Áóñ8ÕÇ7d@8‚f¸Òá` -쟖éÞÆIúcÃ@W—¹;ȯ~j ƒkj§wÁü‘Ï~*žŸR³žª¿d%>Á­g,e± Œæ*û²o®êž´t ÍÏwx^Î$òn2*´5Ï[X™ßþsß -Z€«¬_Žˆ9¶Nž9l Ú:Î\zäÏYÑŽ>}8êÕ:¬ÆJywkPÃíñÖ¸ÛJtÇlɬº‘;H•"@ë]P•½ƒ¼+æ%0)¨–úKÎ3á¯>KAÍHjú…L’Ÿ[ŸÞ KI-?<š ØQAŸ@éÛ™ -be2d5ÚÜÃ%Ìœ&Ø9«a7\Ô¦ï†F#Â#ÂìÑò#f¸E庲¨NÈ<ê¤yÈ(¢õœjŸZ^á&#Ø-•¤§q^Ñ+!d®g¬~3ûužíNO=³“Øý.E²ª%Uâ Ê1Ô¬}+lF†b ~ö°®–V¥Þ;ç£]£ÕKï o-K‡_JO«×ë‡ß|Šk£,¯±Q O|4õh|ñ>d@…ÈÐö}«á«YQ1ó–K€‰Pj£ÐËôéÐw8"%âqJA\f>ÇAÞ‚f+|%‡jU ÏØB¾þ–ÀíÉó½Ä/ÂA$­)^U“~úÀ¥ ÑÏ•²%e3{‡¦.Ê1+³_SL· ẽÑdø$É’»u£9Üh(3¾H¼÷Û×%I¨L›Ö<›õ"E;Ì䱆v&ŽŠ Š¸Äùl•ÙtÓ êWQ–¤Ã‘OÚ㡶ë:°Ì”Þ“®ì‡C·-à™¡©\òÁlËý¢XJ¥!n:"ö0&aô14©zÎV…ÉóÐüF¿ÖpÀƒ¤(»ß°×u$èxððCAdh‚½ Ñw>*ÁÛô£BX£éñMý~VØŒEz Õ±ºRÉ…¢É?qåpGÊe"þÐ'zr&Ô•b&ú<Ši™‚)!¯W“k'ÁkIH§³ ðõêyì$×ø%ë’9p}˜©dQǸ¢ø.éÚ7Ü(akØ=¯Cµ#Qϳçr}<18ƶˆÖÔ&+Jã8‘®Yw-Ô˜âÓ®$ß©†ŸµuCbRâ û§L!œ‡9ŸeJ´í5h·ÀÂÒáV&ËÀ_îÌjÐÊã—o{½Ižøîê5¡¹Zµë8tºœœ_z++ª£â»ÉYÒ3CM5¤œMkh–zyW¹•” I׉„§ÛÆwÛEƽW ÿ¾„|ˆŸÏÉ—É&kë†x¨ ñœÔ0Á¹—go2·?¤¡÷º`†T†€òǾé{ `n¨ÑBÚœUÇ® Žc!\"J÷¹âPÒÂ*Ù{XÄ$ìÛmÏxXWY?غ©\‚;BÜÈy®XÊgn «L_ö¡áu] ¡“|­„r諒/ö!!3Aj/Oi_^b,ÿ2u™ÍUìšãó â+æy”¹j)ðÇ!ýýŸ9=ð ñŸ®™á—ß´ŠYý$¨òœ- -ƒ+”{¾ÊôóóÜ–oãb¿À8ÜJ•‚¡ˆLRåVeË pˬ¦Z9ÂL0˜41üR–&ͳ -àLÿCîCÒê¸wCŠYøqxþ:Üzø65|Yúö ½uYN²Æp¿ ý"SëPy!W8½¤¡ÐWzFµ?¢V¢²ŠËHí’qn1Ux` º(9žì7¿P…óU@U¦6—zÚØÄ8 ë[ûrS#žaÃZ½Ñ¤/(ÀÓEã¦'¸²Oiüü`3Àú¶÷›ˆ÷îú`´Ç#;•,›zaòŽ™ü nNfè‰Ë£<æ”9€uݧt†C„}·T®ºSmrp4ÄÜ!¾re.¾ b”½ÞvÙ•Ó'DÌ##'`~(3Ásíß; _®G•‹¹¶s9ajI)v"£–ƒ‰ÉÃÒÒ7Äú‘õ²9˜äghî\Hªá¸HÚïH&j’‡ûí®ÃtО$;MzzöŒnuoRKÌ} -xa™ëi†µ'°'cÏæ͆ђÃxt }EjR—ᔚöc ’ËÎ(ë‡Ñ#ÔI]†kÑ›(‘…,·:®þ&q{iIÿHR[”ÅO—ÛÒßc,n7!Úhœè”>}yä¥GöЛ¿ŠÑäzõl ³†©Û^ÿ¥¯Î·Ùyø©ø–¸ã\öYŠ{ªm±r'Šü6ä¯áµ1W8·ðaø4ÃÿFE ×{rˆ †!ˆ¿`ÈÌ–ÂDO‡ÂõcÊôÅƼ®=þ÷æ…ãZ8{¹t ¥Cetݽ⣦ÅW(DØÇ/°Î«ZŸ}.0¯z¹V06 öeÊY’Zš¥±õÑŠŠ‡iô%PšÄ¹[ÀW'Ù™¢#ÝŸ›m)4».?uѹ yà2ô-‹Ø^2¦d´t=öª°M³‡çæøÂÒ% 3ç6¹Á0x@xœŸ,M Û™ê$Ì"*7 aý°¿…à0ÜŸç”–¦ˆòôð–ÌHÌ<µ0 Äó:3_´ë⡳ ÜñȃV: ?¸iˆwý)M„ÌþSŒŽ’³CÆßjþIö‡!Ím¹3ëU¾; ËŠV®¤››CÉü×L +ýwåѵ#;©UúR®yÉ/ÌŽ,Wþ–æá3ôÞrÒ$¥élr:Jët ÖÜþ¤é[Þ×4s•á?x+÷HX00SËjöüŽ·6Š†Q¥×ŒàmQrb‚Û w Áb-?‘Ûüú¿sB‹’+î¥äUcàë?Ò'l¨^檻% BïnÄÍ®1ã§Nj3àv½¬êE®Á€¸›ô…ê]‘å®ar¤ÀgÕ1‡ Kë|1&H<>ÓEü$Û€ yëéÓ©œÝ E6¸î¶O{Ϻ¨ u%çE?‚#Ý&DT-`ró)COêߤ÷´âA'ä÷[\hõ:–p")4©×G‡€§ÑeL -Â=ŠÚÅ׉_ó/7——1»—¬û¦£K`«¨àrøY±|Gõ`È=ÃÖápDÏŇ`™ Ý’(ÌZ“ Röâ.¨ñ”“¬Ù’ŒZ  eR:Ž™Ÿñs͉æ„DuaïkÕOSA`«ÑóuÎÝU'VAŸý^RõÂlyÄspèÈ^4ô—Ó$¥?ÝÛõ„$x¼@§åËÇÅÛoÔ$Z\—¬O„Z]È\(‚u™pvI½ç)Fó÷]iÉ~ñ­Ô‘•OyªÚh†˜:¥²'±€393šz€FðÏsä- ›Éj¤Ðk³R%šã3zý‚ú¸‹€S)#š?%€ª3ì¡|Aþ5ÔÕƒ‘û™¬ÿ#ÄêðAf—9¯¶^£Ývª²æ$ñ+úu#œBX)Ñ ›‰ó*]lV_fÐW†.˜©ì(“aÎúã`d`°ñõ&CðÕÑ*7^ß'ò@‰Ҍ¸˜Ä)Dô†?Ãõµ7Ó©¶ÄspcEŸA.¢9mòÏ´…!<Ép‚sdÌͨ´G%}ŒÎÍžŒwŒ'BE’c™…:ÚØTªÔñH+.„©ìd×õU-@V¼½VÌ{'ž«om¶ìGm—ÕEËÉ`·H©ãYâ÷”ZÕˆ$àtÏ꣋7-ݾ€Qfe×Zåûô $br·Üµšaxâ_‡ý=‹\ÉòÔ¥j±¬ ƒv¶vúó{üc -8-y¨u'ö8÷ó\9b€Btï1³‰+/áu?ÌeóBjŸ(³ÂMEAé¬%»…> :þˆù»ù5RÝôTIJú±Æ–-£œûƤEW†bCÜxFÖðh r 8J´ ®è«W¯çaŸÉ !#4ðWª1¦+­>Ûeñ6aLh4Ç5›·^;n¹Îm8¯uQ»DHÅQƒqÊ@Iñ©ªMI± lÿ7ž1ɇ,ªíùl†“=¼ò¯ír‘ã6+ý'‘ÌD.6F¿{hÖsµ%SJ} â⧮„ùmÁ1úž >9Œ.½QäO”u—&LÇ$“ø<䃰¿€[e2-ã‰ñ`„îÜ×2! ÔÂê3t‘ÖËs&—Ù‚TÑÀ•êmN=K×dB ¦b²-Ñ;|T·efJ2FþFße=p†8›@PÐ"?tï÷ëy ëΓ $´?1OûwÅ¥3K":¿Q:gÌ Æ ï¨Û6Vê¶ZÈÕ #Í9‚TGHcz2ý¢ÌÌ3Ǭƒ`:^Ì ³ÃŽ§¸P¯Å|ÂaËÕ:[ZäŸKÅU3ŒÃOL¿c»YÅäg[u¾ž«+‰G-UQ´]TM"EÕ«ºA wÍîÁøÆŽ·A7ýp1Eî‘p:×”:ÉEFt4`{$ö›;«1¥³Õs•ÎÒ»É.·¥bÈð+¨ÓÏ=SNÃñ)=Ñ ZŠžRÒ¹Ig–7<$ýzÔCâB¶Z‘éWñsÒ1;@iI”éAr£è†‚}§½ôç˜õZ4Zñn¹ËÒŒÆJ.‹"« øRÒý#¾œÙ1ôâ.´‰Ì-΋ª|,w ?¥:Àþ:ÈFÁšåÍ¡n8‰hÛ Ã-ÏŠcl/òHÚ;i^&P÷„<˜Cúì*Ðcò—f‡M°ÇÉÙùuqîQ¨žî5ž„%æœ,ùóR‚ ø].ót$‚°HñOh²Â–I)™i’¹$êÖ‘ýáv+ê\9 z0àzã½Ñf(Ìz¾ 1MsmÇ{.ŽÙô %|¡³âÏú¹c¬B‰"F›•Z"ÎQç{“ߊÛiƒY&iÄd 1][¬sÛÕþ§ˆ¥xªWÅÏ‘-ùTû?Àý× R{ÆZFzØ×ʾ{›çl]¿BZ®v­9z©TÄ>öT»¶ëlqF%óð²×æé×üíí¢³!RÑ`$Åæú(%ˆizÔ¦ yLy€«é.%t‡¡Qñß -aÍ×#êT/ãÜp·$3x»f' Óc;‚“ZàCq‹4:-žørf›B!èè‰<2©ÄP¶¿°wFôŽ.¨S:=ØܹDñF-M0î’s% d×AF*öm\;’Q±eÞ Î`e}…±‹÷~7E_œtB††ùÚx¿¦þPPÙZéâ@fðXQ½zËä+òƒ-\íÞ©’*×HDÒ¥*¡ûæµíh0Ÿ_|Ý's~Æ‚R¹ çô³Ðb¸"xW!ìê^ -ÑÁQ|®gšnîòøÃ>_adÿæþ©£ñ!Îò¦_ 'Á™Œž$\­ ÌÓ ÞbHz¹×szrP'ðÌïã];7wÿ]@Ë/c™&ïÑj©ØMËùgº ˆàRŠ*6?áÑÝ?­ jî«ž*ûbúdNOÇÔ°*]LqäˆKgˆŽ`ÿD ØpÛÍÛŽd ~}¶Ã#ŽT—Óì¯Ãˆí)'MÚ÷w¿“WL7DÚ»ê:üÖ£¾ÙÜjœèÉ:ÊAM+ï.y¦ž%^ ¼kÈ>ÆÙ ˜ñœ‚æƒg NAPRâÐ+:É0Ä©)Ù)­‘˜±ß2ooùFU©öUyÌÑMшnt1ÀÝ͈ú€gFYsvm¾Ahž«¤•®?*ÔÖeå ñEZ^svR|ŸiDF>F@Øxfl÷¸ýÀ)¼ÄäVg±û3;šh[Ù[ñ|â»U ë¬[ kx×cU[ôf¹óT ®¹€ŽFØcΉ‚]àÍ]9Q °«z<Âký…]ÜÀ0¸4xtÛ'¿U߶È9ãù±¡vÚ%  ›ë³y~¤$OUˆ*_¼¢­ùe}°ºÎAJ°­÷ɹæ-Ž¾ë™ÆL“†4%ÃOˆâŽÈ_î?vο1Uq£›º©xÙôéîŽ#3qû€Š>*ÛÆöó`þZZ‘³7U1±^Ìâ½Aãƒ~fô. -ª¹¬ÒNª¶¾E”¦PÆæÇ·ùÄÿÑZ׿R6‚|³ª°6wç'Yq'lx&á,fB™hØÐ@;&swW€nõÉz?¶¢‡çªM‡mh3ŽÅ»ñ‰. -ˆ¤ÅúÀÌ^wrËMbvÖºQv¸”ÀÕM€’û•}«9»\û®­µñ¶hý(t =Ð!yØôѼèãL[±I–ºîîfÖ ÷k6«6Ü´‚W· -ú4.Q¶É;X¸%ÝC³‹£w1¹G[è£ëWc/hl·÷­-Ò 2[Ÿï«+Çë9?èAaOc·to1b.y°i¤¾ÛÇ6%/] ä9©_ í1¹ù£APÃzGo‘W?ÐG'.îï,4žKÑ÷%þËÍVB°3»¥d¯>Gß™·¥_Æ™ë ~dM»ÒÝÉ’²Õ(ýcßÒ’þÚ (›w6y»l1úi»Ì¬=ÉúVV%|Ú{ƪó\ðé ´þŠÑ—ºÌ@®< œÔÔ’Õ´õ°û(qŒ]+D_ Usm?î>µÔÀ%w3üºñmõZ›±î9[£àl£GVì|ä×å×Ü,Àf(!½Åô`.A"펆n3ÿ8:Ðîã\ C±v®DW'–ÛA4´+£‰ÑP„ÛEÌÌD%;N^`°@^²N†¡Û3jùcN½¡3$påqF>”dìô É·«7Á Öê{›•ÌöÐQn¶íÓ™¤ÄÊòj®e#—³ýƒ!Ê®ú.WQ…øsîrž,TÁ‚£äÕ#ÂjÛ~1dÚ°ˆšŽ¨ù»–c½!|È× ¶ Éîg(ºîvRO¸ $8OG9ÛêDó¢a;P«oØpŒ$ æã”ÇóIìðB)ð·‹UDOœT×5ö-­(m†÷ÕëîOG“‹b«Æ¬ÆÀPd9•åÛÒ¨±yáÞluÇDÎÌð¸²ß ;ÕyÂ19½)içíö q€ú#ó¸adã|-‘³÷ $ç¹%@»µÒó³gx«ÖŽ¾—©ý$œ.¹gL<§ÍòÕõñ7bƒS¢£éj%;"Á2k)à"ÿx×9=FY‡ŸwjçJ’Rö‹$›¿a,~LoÇôÚ«Ñäå³8Y}òç¢I6EÁÑ«ÿ¨œUX¬ÍÂ\>HnŠNß–YÁ ðV -t /˜~ü;™nCÌ’}8êÂ)(Û8·ñËq]>\=n;‘:NœÞãË2hk]yt5Ï2NŠºœ¹ìI*œšuÚ D.²QQD‹°•6c8r…*Øê Í -ÉJ2kç¤%o72mÝIËKèo5šn$éÒŠY~èp™î/íy\mT§ë4çN²j ÆjKSO}Óé†6Ñ gô]æÉ•\Gu²Ô2%LzI|’µ–ʽ۳:½TÇÔõöãOA©! ·\x,{"ÌF‘Ýwz§ÇY2­Îž•OdçÊúÎ`/â•<Á³Û9ˆÖˆH!‹¾Ó„ˆvŽ–,ÕõMÄ[ñ«Ïõ^‘9¹Õ3Nr‘17'rùJÒ¢î•"bPŒÆ(#é˜ÛSˆËZZƒ•õuÄþà35<¥¥½::ãÞ‡ ®™!‚oš”,~"‚\ÕU¿{’áYAäÌ(q«Í€Šµf­Ágß‘ãÓÅ:%§££ð¨±ræ'ô*" -Sdü=zÔýKò*wEšyŒ“¼+±%]B>äÚ]½»=}ÁbÄ5Üm†5Á';ç5·øŽÙùñUI¥Ùnx5S”«DÃé袧ÎG«•dBG2’{nœ‹U‘æ[ü>9WíÞµ‘³t#Öf 2ñ’ø ›ÏsHæÜfbÏ^KÆo O|òQX>Š Ìà…×oDývΆ¨1 #V„°³\óM-­Vì.ó»u±á#ÝÐ2â!OK°vÈé²û±4wbäίɳ˜Æ5‡+,‹UtZ²ž®Ië8ºg*H·r29ñÃì¼Ã´ùöªõýyˆ?îÅ;'ta\ÖSúÝ óÆ>ôîœåáX½ÌàƳzœR©õªÇ5}Æ ú°DL b´Ũsü5 ¾ÎI­è&,) OB#-z) «ozM¶-:Ÿ mré‹í‚ƒQmIi€¦g´>L9ÿ¤å?èÊ`0ùµGÔJõÅ›Oc7yÏ¿8ÂÀ³#e­À”z¯» (¡ò›MœõðEQèö`‡ÔDftã,;1Ä·*„Z&ë~Ù “˨ÓõIUˆ7ÿ†‰ðyÇ(éûî6+¯sÁ!GH­#EëSÚ²ŠÙ¯,ãѺi§‰G íÄ´AAë·Ršýyy„ÐÚ[^kúZ‰yKî‚®þi 3r¸ØJÃaª²›ØbÃ^}±¢&¼¶¢ÞÎy¼r;|Û:#ÚO$pÒ2Ñ…è¦ãPD‡¯èxü²½oø’‘R`*îšý Î{bÆzœ"üiͱôPr¯!³!¶lº²kÇt÷Vk¨®PÌ<ªÖ9K¢låÿÛ{m&±ûîêyä·Ã³‘xtdâñFwXýdøXî“åOå³9€æÞ~`‘ ¬iJï+ÄSåÜV´‹(E˜Žk²ªuHlsÌ{+ò8Mw–^¸ñÙŸRÌêxf{ -tmQbà¯mq™‹Ó™Ãþ<}~µ[$ ÌE(-$Â÷p¯¦Ãk"†½®"ÂÔÑóM¯r=PUÏ£Œäç(–©N'Ù¦7ÍÌu™é¢Òœkv.È'ôEeü~ʦÌV°‰> -CÎTºMj8IÍEÐ#ë7¥´J™vòÔÛÚ)¡ºÎ,ÐÏ‹ Á“µV¸`Ç—öAÑEì ($¬-,=C÷_"þ1P³ž*?,c9âN™¨ýº:„Þ¤V•áíƒyÏA,ð‰'§n‘IV•fö;68ñ²ìµImüZÂÍ0A—6 &Ö@KY§6î/r¾Ò]ærG¹Eºd«É ~3*T¯­í,ëH€»‘¦žýRT.…}XÁOûÜn̳ÇPÍÿà>É&¦hGâ9žÄ¯ÐpRò…½4ÍHÞœÄk’-ŽÉS‰¶!-ƒ_IŒd3W{2ÅX)D̞π¯òjzV]E9FV¶“O8TÒHIºoADО8¶ž‹3Jì€j­¦ëp\°ÑSJ¾úÈM£wJè«>‹Uâ1ŸìÈIëc pØ’%æú&2,PÝ>™ˆPàR¶ærhÓh±¬ƒb4Yü3+\8=…à ä1óì)Àäk¶Á§`VâWÑCp+ºB#d~/ð·øbe#W›Ÿcs§Rñ$ -ñ¥ØDˆƒ¥™Pþh÷ioi1ÂÿðïîÅíº”a¬M(añêâiùà êÌ‹þîÜ0Æ«ŠÉ,zÃĵ:ûc -‡ÓÕà¦^=µ®ãF–:%)Wmqf`чÃyÜ©˜¯*Ò2|í~ðµÜæf˜wÔªóŽ6‚ê¶SÖÞ¹†öJya×ÀõÏ/4ÐF@÷š#÷ðzè&÷\(‡_zH>/pü’yŒ¸x&KNå< ö~Kr>!â­шÑs„yßrnèe½:‰×<QC”Öß°¡6äŸ>Cù Ü2,^Ö%a1Ò¼äJºÙ=ßH§Ž  Wà¹pß×(yAkâ“×püº%øE)pÕ]ÎÚ"L™~_/'þs¶iSG &0IÉúç[ðôúSMÿlò7µÄOOªMžO öÃèV@Äa®A†‚Meg©Ë°Ù>Êf«e@ëvò§g~lBÖ¶òú»ì`„~€!´Á÷¹gÌ’¥™ß#d¿Ï§4(ÌY,›éF&Ê‘”.]þjFÑ(˜;-QQPFjƒ,qx¢RâÝ'¨ë 6'JsÍV`ñ#°É…Pǽp ס=ÌO§9¯ÒÏSCŠPú#™x1‚ýÍt¡ÀÓÓ™øð`˜Š4¾À2¶Ž×j…ììø9¬–eÛYÈ´©m¶âïx -§[ªhÃàz\^-B }‹,Kþý×nc ]O;EÎÁm±dé¹cxá˜g¸=%T]ãë÷\†ƒ»jïÑÅðdêÅâºì´Z>»M4–‹ÎUìé´wâ; 0eÑ©€©KE*Ѽ—`0‘Êêk6_í „.‹6wVv>OÜ€@w¿‹Ê«ˆüŽnËé(Õä^…õšjóFkƒ^Ù*® cJ#,ÆÆß“Û§FõçÆÅ¢Ê ôó¶‡aÞx’)ïB'ƒ=Z°?éuÊiŽ% 1~fÌ3Aù/A€NÖß  Bl‡wÜB+<{ÔÄŠ €£iÝìG{K¿/è~¶ïõÄøìϥʰq˜X†bÝ>tÇ^hÜBÆ´½¾[â.1óÿb´$&ÄæEU¢láa/ëÔ tï˜Åpç7/îEbØ…> åÅ`YךŸ"3^›r¿ê‰Š;ÚQ€µScÚï|Ö%Æûêæ%ÎÖ@äR›„L19ÒíQa[ˆb}[2"¨œIÍžï š‰MÅîùÐÛ Ïü.ùœ©e‡2yÇœóé(-å5Óü´õö ´6¬±ÃþÚ™D;Ùäþºˆ_4×}‘ZQ%“›½™·]+ŒO‹àZâÃì&äÉ›Ã.²]ÝHŠöç˜ÉuÜPè95ÿ 뢗ÁfDZbŠDl~r’nü%n†MmÂ7áC¢†æ‰‰b Msû¹(ŽãŒ¬--¿ò^Žö垌½ª»1”Ék^-ý•‹Dúft^t,¦£®ud˜'½ã0"©1oQòŠýAÕؽ6$-0,µy±ZdR3cÛ^„OKoÿ(r¯”Šµß‚¢ùe :3ĆԱhº¡³Œº: -¤öΠ"¦ýŽ :B;«ø&&c€'I”…Òn|]ãh¥ƒµ• -%‘åwÕkïvm—wàpÇJ¹¾U œ÷&“³oP1‘\œfr;Š|Y[âéÂn†ö¹ë °¾LTÁ¸Ÿ£d«ãÇ­!5ñ樹õS^¤X#Ûwô¨$c#Õp×RqE.84A•„#ËPÆ4UÄ«SÚíÉ°ª\bÚô„ÑÑ`“ÇH­0åɹr,_QwæÖB“VŸ4 O=“½´†?â;ežÞ¿(‡½ -7©¨—.q `~K± -¯3}â ›ÛÉAj¸*óbŽ$k3VgzØOÜæ*PÛ=Idi)~*0vyÊî©àÝk–.Zsù+žÐ´YÍ„R£÷oÎáA<–ÊКäÞ]˜®žqÙÀœŠ‡é65–¹£e=ÌpŠO0°ÎeÞ ?ŒÅP‰¬¼Ïª1°¬{üê<ñÜ{Çš'÷uFŒÌŃÎ’8\PËHáäçŒRàñŠsŽŽ9ÞFOÎ* SˆºTé&A÷нðÃûn=ŸÑgœƒÔ i–”Ú|÷;–÷3W™µŽ'÷ø®I—¹õ­¾íÏÿˆ!!(šÐ (ì Í^÷H®²€Â#½7§”dËO €š>Äá}¿½8$ 4ûÝJ—ó^wÅý $-Z Ç;¯'ÉÔï{œU¡f -Rs2$Ñ%º‹ë!nß%BÛ»C)uv÷'\ó&6Éu¨ë=Ôä:Æ k‡z½ÌèœýU9S/ƒœþÀϨŠïw1~µ0D6Y+e»øݼF‚z—P÷«údoÀ· “T”,û«ðrJvº™‡ô¦ä‰_q ¸‰¸Oñ>Ëz0å™ð3ü™&UK&g&¥Ä²è÷˜‘[zÄ KR"áš…ÊŽ®è/¶ß~+˜àÔó†pJ§ã•<êw­òöViåhúyufRµÕ–4êåp\W a ‚Ó\—B -':o´ù]9>áÉ¡-Ö™)yãXp<âo_jð½äÂUZ帥þ06_VnO¨nórzcúî×Õ:L“5uþ¨8Ýi÷™¦»‚w®P€RJaa¨êé4 ¯a²¿{LÑ™B”³è\@oE…Ð;çA‰ Èø,È+”qËájŒÂ¹’dV8G³}cÖÀdâæî‚^.ìÍûÚ˜ÿà>*Õk …ÇÄx>2øµ•_&9¯!Æx˜ÙG"¼ï*“¹±ÌÝ»á‰V0D)É¢‚k‹÷ž:å ¯P4û -Œ›?yUGáõcç’£Ä %³¤™š€î°®÷šTYØô DšÉaNEn6Œß“ eoŽ%¤Kß»,cöâNeî idšÓF[í±fáoLò´ž«ïã–$ÆæèébhžÔé]ç}Æ9Å‹°ý~+T‹r]„–Y;·úÐ}eEvtU÷™TR³]OJ¹8Ë…ì×è¹Ën·¿#“£n- #v=MM×IF;Íä˜)v܉«¼£ªÀÓ™m]WO[JfÔwâò ²ª«ŠÜpòƒFc.îÒ¬÷OjGÔ£…W9=ì¶Ä±^µpŠCá§âáÄØ(eOi"3©%ÖsÃÌa«;MSìÇ82¹Jô@(¥6?3>¼r BS&O³ç÷MH 2Èwgƒ§ÕŠ«˜ÜîÕk♕Hp(Í[P›C^ÄY…IÚ‘Xà" ·Íƒó”Øšt×´¯hÏËB#4Z=\´3ÙA½Ëçhc¿@a~8]›/Ì·?Ãad>=0/Àcn,•Å\†ËL0¤ÙðX¤ÍÎV¬"»@½ZµFû%òùÕǺ—´FœXTX¥œ9|ò}Lí;h,¼ODf<ˆš»øÉÊËå˜Ì`/Bw -®V´:cMG  ÏÌR\Y^( [#¶æÉù´*Ž|J¾¿µ°æêÇߎR/ð÷hïšý®dèÍß!HŨ¦µ—`èHÜ Ù•õiÒ¥8Ÿ¢—"ƿ첈ïæÇ`é"¹º’à †Sð’ÞÈÏ–<$¸Îâ‰ã -y#K×2ª®q1g¬›“‘-öæÙú݃ÓIÝFÍ×½Mx°O cׇK2ºëAÆö¹Ì,b šO)Ù˜•䪎ۖÜå×ïLlˆ¨¯Ø: -:^fËër¡ó5‘ª‹ê(foC;a'¥'Ô'pq84«Åq†‚iµ‡„ðŽG~éÚ#>š;\Þî>í?I/;¤ z©Õ -¤¬™·yæN¡ÒÍ=Ñxhwí‡Ð¦-LêÅoR„µ ”3'ÅžŽ7vF£¼êb•r1uºÄ…›Ùaml³§W·áFIöõ»_ìß±#EÂp¯Î\R8úrî ,¸©n²o‰¨¡2V;ëÃrÁÿßþî [gƶé¾ï—OžBË&í)Ü\ù#ûÌÿ7õ|®æov·E|’ïÙ}…I%\ÜrŸø¥ 7K¢ì´v,_Zµ¢e¥ÐŠÒyÛÕíŽ%_ÿœ÷ãyìÍ2#íO¯Ö8_^{ñšÃÿ9ÊçC'±2]ØÓÔyÕáùÍ)Óç©X÷\â~¡æô}Ù’—§Ëøby³Äó{K9ì™ül“íÙtß9³äí2Ë~ŸÏMÖYYzࢄ°TƒÎŸ8ë6‰B9ûdIF†Æ{úáª:OãÊ.,|©–u‰•Énãk“9u³3zX&jîû7WD‹ý î9“fGÝÏòTNo½ª÷À’Ñž3(È'Pôè§b/©ˆóy§?nIËy¶ÚH©îš©ÖšÖæ-×¾$êMS|á*¹áö±k¬«¼+§Yå–óŸ}˜á·ÓÂ;œ¬ëönüÍ¢°iòüêÕþ™6íŸLÂ6/èžµý±æc‰][K8–¾‰KQùiš¾ZnrKb]Ÿ:ß˃ü—ü¬²´o\gl­V“Üèãë]šwó¹KÿM“? ÌÉ{EÝf3Ë…¼×Q©‘éÏÙ¼‚ýCÒR¥Èk_g-äM·´ÊQüµõ­öf -רÀäœÔÄ¢’üÜÄ¢l.Âåšendstream +xÚ¬¸c”å_“%œ¶í¼iÛª´mÛ¶³Ò6+mÛÎJÛ¶ÍJ[oýŸgº{V¿ói¦?ܵ~'"ÎŽ±ãœuÖ%#RP¦4±72³·s¡c¢gäÈYÚ¹:ËÚÛÉÐ ÙÛ˜þÙ`ÈÈ„L ],ííD ]L¹ê¦&Sc33€‰‹‹ † lïàédiná TUR§¢¡¡ý/Ë?!#ÏÿðüÝélin ÿûáfjcï`kjçòâÿz£²©)ÀÅÂ`fic +–WД”PŠË©ÄMíL m +®F6–ÆKcS;gS*€™½Àæß €±½‰å?¥9ÓÿÅtœL-ÿn3õ06uøÇE p0u²µtvþû °t˜;Ú¹üí‹=ÀÒÎØÆÕäíföÿ"äàdÿ7Âö¯ï/˜‚½³‹³±“¥ƒ àoV±ót±0tù'·³å_7ÀÞìo¤‰½±ë?%ýË÷æ¯×ÅÐÒÎàbêáòO.#S€‰¥³ƒ¡çßÜÁœ,ÿEÃÕÙÒÎü¿ÐœLÍ LlLÿÂüÅþ§;ÿU'à«ÞÐÁÁÆó_»íÿõŸ,]œMmÌèa˜˜ÿæ4vù›ÛÜÒ†áŸA‘´3³01þÛnâêð>7S§5ˆòŸ™¡úKÂÐÄÞÎÆ`bjà gïò7%€òÿNeúÿ9‘ÿ$þøDÞÿ7qÿ»FÿÛ!þ=ÏÿZÌÕÆFÎÐöïüû‚ü½aì2€î˜ÿ_¬¡­¥çÿ!ú¿ª›þ›áÿ DÒÅðoíÌÿJÁHÏøo£¥³˜¥‡©‰‚¥‹±ÀÌÐæoþeWµ31u²±´3ý«å¿Ú cbdüo> Kck»šÎöo—©ÉgþWžñfPÒ–—§ùï·é¿¢þªî¢âéð—ØÿªCÖÞä?ÿ` Ù{¼éXYtÌœvN&'ÓÏÿC¶Á0ý×ZÖÐÅÉÒ ý·dF¦þ¿~ÿµÒýo0¢vÆö&ÿL‰²‹¡ÉßÁúOÃ?ncW'§¿zþë¬ÿ-ø?ÖÿqSSSc˜µe{cž`«´Ìt—:ÌÜáIíþ^&Ðá‡ÒF•¢ÿû¿´ð]®JƒÚú¦iî¯vÏ¥s‡ÏC)ê£Ñ^ Šž_¦òñ~’Põ o‘wrÐ2è•Â§_¨G{_/Êì€i±3ªíM**é•|@àOw²8A]?Sù“¸ø£‘>9 ø§6Ä¡w!5¡Ôž_'>?Q Ž õÜ‚÷âÒäÄA“ñ¸Á“Gù;æàòk©VzGP/gŒOÚ`\0š÷ Kr>`°o„3…ólU»ÿüƒyw*¯ ;b¯8LäziíäØ—4×ë3˜Ø¹ÐdFþ›è®ºóM<éÚUê\oé”Ï#/ Îl¹n8FÒ-"&»//Øfàä)†w·tIHb"”)èwàu„ÜgV²Ú™ƒ*¥ šìy#E¤Û7R$Ïî¾t®ª_ô°e¨lYèu>.Kg¡±DæçÈéóxe>[·ÝAêä¸ ôž_%]âªîCOÁA¢]G1ÂJêÔÇ<ʾÝÇ/F‹#J5‡¼@S=ó#nÚ¨º†¦@å4з='ÉKÞµ%`©H8»hWå÷ÅùQÙæaxìr‚TkÙÍy7Žy)oö‚¾Öë˜êÿ°´«sÓc¶wúü8ü +…$ØVW˃÷æ¹)Àõá}@Jš2»œœ$~P–D™ˆ‡…:Nq©ó#5ßì" 󧈼ˆÎQ僶J–©Èµôc“Êç؉/Wñýê›X²˜HO÷|¬®-“[ÿƒn2ç¡‚÷`ŒàõÉùKH}&¢~t–ßêÆ“-µZ•÷ÎäÒàMV]ÓYÚñ‰‘06Îó'ˬy?‚²9¼oºÝ²Ï—YzÉA€&s5õC`ýnXÙ°ðõɃ í’D,÷gÚUÑ{MX8“Ž_ZœìÊø)“bzlS âz/ˆPr m¤–ÕýŒø86 ]¬ ++½ÄGL~Ö§æ0GW˜RS4Œ–¢V˜,ŠÈZzU¨âè(ŠcÆÀXÙˆ-jà±*ç+êJ"ÈhZå ðIƒ ïŒ œƒŠñ]Ñîç/µÜhà÷ šEh3ŸiqÌVHXn´Nx-ÿQ9ƒ]ne£(‰ßU;aXSû¦Ÿæ¿rçG.môú¥»ÁÊ|a™â¡^>#þ»ˆ^驵]M»qÁO>Z6Úl ¯=µ)¢_¬¾rÔ—!U;:±å$z2»?Ô?÷,|gP¨Ö:`ÌG*p²Sí»Ï³œ.ÞJ;"8çÉK­ñs·Ìúe”%±¶ Ü-.EÊ’JÿLئ h·ý,hïY«M÷s<ùi“©Ò£úþÕ›j2žE)mœÀî;Ÿ¡å×)× ÄãÜùšë_`Âý܃4¨G³0 œ{¢zÀñ®yÑ C‰ÁŸèP!“2Ž¨Ÿ*§_‹Z夻'ªá¯›ò =2ç#µõ-»Œ(…’jáô˜iÜS$JbðuÓmË~~*öÓØ q¦©ãÇ\EʧÉi"—ÌIG( ANë&ò²z.…ôû½S0ûÁÜ ^2¡2.|,†Î”HøF°ˆ‰DºF jEàÃì´791-ß¼vÝÜãßá‚3 bõȨÂ;÷Sù¥ŽpD:••û1ºµ ÷N¡¯Âv¿•€»‡ßЋ“f¢ +éèóQ.ž¾,Èv‹®Ç'Ÿ¤Îûz5+Éí.þÇÌHF.'_6®DWeN‡´¦j×I*92RÖ¾Ø.}ùÚu¯c†ß±©ŸoL¼`Åa \¯²ZÕãLƒÒË+-(þÍHUëO˵Íè|ºZÖe ±šÜ.¢{sN"p6¨Wvg‘¨ÚTzVóeÿºŠÉßDbþ}fìkGa<ÊaÆ#sSs&ÓçQ‹Ö:“m€¦ý)®ý]ѺΈ¼ÂP€œ_—ÁJîY*ùEÇd@–NËoÀ*EëgšþÐ*Eì/5³jð»|ªPu? <º…ÖË´u½²óÁјq½7Ú»ÝÎꀻüu-1ožÉΤåAúE¨÷ŸÚs,ªî_àboîT °q ÏŠö‰Ï`ˆÇÉ•ž™î*å#çu=X„<ð0¾L…Çýü=ÊÔÛ`’õ’WVà´“ÁŠ™íGIòêY“ ÚÎÝ&•>6è¾ä$‰N©Å¥`4E¾¥ [?™…ŸŒ"STï,R2. ħböMÒÓ£ªZàÉÃ9/ e”õ[ªg ð/ +fe}®ÒTÌòl"kã&|] ‰Í0ìIâ8z}ÞàÒÛq­IIØ!R9/žðb¦¢T$ý5—yYÀ;cÉÝb–Õ©¡áxyÑu¢Ì{§›û}ï-L«YO×]1‰’œâÕ1•°ZÅ ÿ*ý²oªìž²t ÉÈux^I'ön2*°5ÏY\]Øé½oËÃSÖ/CÂß  +K1Pm™`)9öã*ïÀÀ˜9ójQc£º»5¨æñxkØk!>Ìa±dQÝÌ¢N–ð§óΫÌÜ‹FÙó˜TKi•óLsè¯KÅÖ_T3’šy!—ägÀÑ&`pÆÆVRË ‹b¶ERÐ'Túv¦†\ +^‹2÷p‰7ÿAäœQˆ‹¸&jÓC+Šînöhù=Ò,‚z]QX+dyÚ4lÞŽöA}@#¯p“䀞BÚÓ° èõ‹1d¾g¼n+óuýNO=½“Øý>•U²²5EâÚ1Ĭ};tV†ra†N¥Î;ë£]£ÅKï0g=C—@JO »Ïƒ°šp~O»„¦jx¬ƒ qøf©}»…8d§Vøg{;èÔqÛñ ¢ÉÓóá\€¸å颭ÙGâ‘&"¹Ç.›ß¥+«Ê´ÕǨ,DTUé[+zê@òö±&Á†Æ¬}°—“úb%(›˜„™ÚàÒ’ÛÙ¯‚ØxVQØj}¼°‰ûš@1ªÞ·Sy5pí‹åˬQ*«/=gÄêo•,WÜ {¹·Ü‘½&“ƈãè¡$¦-¨\£|.¾6°Î®Ûˆù7 F?]Ï!LBgÔ5X«Ì&NFm2XyÕ°w”bVg% x>áÏ©Â×0£ç¯s¨eÒöâ%Q”³ÓÖŸƒI‚P¨8U"0O™ýÚZêU‰î¡”I†&•Ï™ª°Ù±>ƒ:‚_#×øЀde÷ŽÚŽx<^~hÈ4Mð·s!†ÎGå@›4H«t½ÓùâÏÏ +[1ȯ@€ÂZ6Wj™Àtù'î,ž¹t$P} 'g"])²¡ÏãèæiØb¢Aù:5¹vòQüæøTzÿŸ^=‚­².iXƒ×GéJµL«Šï’®ý# ¶†Ý :Ô»‚u¼û.×'“Cãl¡Kèm²¢4¸Ž“iašµ×B É>íJòj˜Û7¤&Å?ázKÂxYrY§EÛ^÷ò,,ne2 üäέ†¬yWF@¹Î¨@*ËÜ„zb+!Ë8ê”Ùô\l²C»~…,BaæÍz½æ•Û6“ +*€Œ#Ç3&ìߣöbYÊ_w‘&[þÜÈ_lˆèyIõÞqù&;è;ˆ¿/ÎÎ"Ëüè‚ð7Ñç–u’DŽzwÞŸ/é¼Õ†x³ëŠìb*]ü2)u§·O¨Wñ5òx‰1ò4˜•3MäŠ`AÁøý4g<üÔâ‡?yiûÇ©¹$sç£ñs}7š ‹•†‰µê~‡ ¥’ž·÷•ªm/:N–lÀD t˜p ÆÑùö5Æ„ ¯ú9ø[ìœÍýßÖty37ѹ­øCËiqgõ Þdx‘Ó²¨„$¬Üá”1ëR• .Yú›ÊLûo›03´Â£X‹,‘ÖpŸ—;ôq¸ 5iÉɪf1`CÏ_®9^¥u¢­­Ï¼%¹þêlóùŠèTžÅbàV0v¶?ž÷)mÌ? £B—ÎÞé +àò0߬éwŸ³=ÛåËLX·AõfQÑ9]ЧKB]+Ö#k†£¹ôÊ6 Ê[Jü–$<¾Î*bÛyøQuA©|Úh~šÚ½ÈÆÈ=ׯ™\‚~lîÞË Õh(Ðéø-Ý€<•©ˆÑyWLž–uk~E7&åÒ-W€I‹ +sxX‰Z–¸¤œ!D°‚¶åßà½y¶õè’Ê«ÔùY-”¬Q>tkøH†•¶½@Sÿ6M¯çÆo퀱1“Z(}‡lš‹HñxŽ¤pOz’.t¸q(ò錣íB.¸Ò™Å™ôÅ.ýX\Àªºö’¥«.ïÿ…ãÚ£È?¹¨®XH. +Å׆ˆbïÜ÷ƒˆwêßAp}ßuÞ,™ !èé{`~¸ÁBÚœMÇ®žs1L"Rï¹¼(qqü=´Gb +n„㉾o<¢«¬dÝX¦É.nä<_$å3¿Ž]ª/ûPÿº!ÈŽØI±^LµÿÒÞóŸ(=ŒŸ£t /1ž{•²Ân‰&vÍùùù• Œûˆ2FŒR¹Ú+ä¡ŸÕƒ÷©ášvõM§˜1@Š&ÿÁÕ¬0ô¸JµÿS™aaáÇòm‚·S­|ºt«EE#L‡ Ñûv¨ï¼Y È‰\¢øó÷çÏ€8‰ã 9c!øwÓüö½w{[‹¼öælÙ³P—| ",XȤÅÈPƒÊ#Îã(ÓI†¦x¼Mê7Éí¦M`š¼Åg7«–âk>òÓž¢ƒrœS£¡×zá ]!±îõ+󨽽ÿ-®‰´2tm`ß÷U_X€†Cö±ºr3I'ÁÖziŒtî/5_×¾Ú™*”{¡;#\{AwïÑ'év†º r¹³ŠE Wõ/n[-µj%)¨—¥]–­¦‘[êôÁ¼§ç–ýsCÙWû~ë÷}ÕjëÎÃd“Œ—×9ör!0¬ +‹÷ƒ}ö Üü\XGÔOCèÒ9®ÍŠ]Âdç šuFðê£ì§1œB'ÿ[©pT‘©#êìÊLT™µ+àaGØIF“FÆVåÑi²+®ñ^ +ÒÇý2¬‚£Ó°ï‘–£ïÐé… «’·éí«2ÒuÆû˜™‡ŠK¹‚™e …þ’sêƒQµb•5<&—´ ‹è‚CK°%ɉ$ß…ÅJÄèè¯ +êRµù”C°†F¦)¸Ÿ5/7Õ²ai6Œ`U›Úq‚¼]´nz€?öÉ ¿QŒ'éË‡cMxiM +Õ©Á<@J´¨ƒ¢ “ˆ{¥“o=‚K]—-x÷¹–’ð꧆)fè¾ZøÁ×.Ré*nßs¿š –apB üÒó´¸Ü +4ù™ÅBj.B{J+–$hR¯*U)›–»À°ð!>PýuH€Oi·¬­x¥Æ·Ù€F0½Š“¬/!€k¶†.œº¼×tæ%ÝP"˜®_cc_ÜV¸ë׌GÙõ¢àÄŽ_åk+ß6¢½J†ÿŽBhWˆ~ƒÍ«#b8Ý=¸åª þœQÖ*È -"4íÙGZwò¾P_q¯Bw±îÏ‚$ª$²u(ÈÙÆh?ZVÚÇ´ƒ. «¶ïDæáæx£án¡Çò½Ã{Úmw.v~¯Q?óó°%/%àÃÅðo‚/ƒ¬¸tëÛ¾ob¾»ëñXœòLšÅ©cx"Šsøy™á'n²è3¶ Ÿ’YNuRŽ½}øªNµ©¡±`s‡¸ŠÕù¸¼È1FŽ:ÛW.Ÿ`1´¬x€ùe€Ì$ïµ_ß |™þu* Ö~èîÕ¤©%•Ø©üZf/ksWü0ÿÙG.öËÖPî±w¬¡¹s9™†£?<à2qŸ <˜¸Qþ·» +,óa{¢ì ÙÙù3†Õ}œI Ïà…u¾§ ΞОœ#“/!ZKóÑîe¸mX]†KjÆ—=P.G8­tVH'ej¼QDo²XªÌú¤ê›DÄíq´9õ#QmI– Un[Ÿ©¨Ý„x³a²SRøìå‘'„ÅCh|á20Z“ûÕ³!Ô¶&vg£U_ýÇVÔѧâ;x®PPég Þ™¶Åê(ÊÛ°Ÿvš×æ|Áüâ‡áÓ,ÿ5¡\ßé¢8¦ Áª¿! {2_ =*7è´é‹ym{Üï­KÇõ0Ž2éj*ÆŠ¨Ú{ÅGM‹'îÈÐVðΫŸnp¯¹pv öª9ÒÚeИº¨Þ¢á#gZ} ÔFqžfˆµ)–Á¨÷çÆ%[JÍ®«O]ôGC^ø4}ËBö—4ÿim]ýJÜeãÜÑ…9°tq<áì…Mv,>>×'$k#ØNº:)‹ˆÊ Xè@8Üo¡CxL÷çy¥åiÐ#>ÿX¶âY‰Ù§f8>gæ“Ëv]| VÄ;^Ry° +C‡‘7MBñ®Þ’¨ÌÞB` Ô4Ü]òP~OăóOò^Æ_n+¯ò݉ؖмprÅÝ<œJæ­³y¬l´ößÇ׎d6Vþ¸£ÈÙæÅ­X®üÍM#§f}ed‰J7Ò™ôT¬Ö©lÙ‰3·|¯¿Ì!U>„{ñWaa§¡VÔìùo'm #K®™ Ú"åÄw4âïâÓ‚Äšóã;üú­ŽÙGF!…Iå÷RòªÑ +uŸÆŒ©“6Ô¯ùÙênñH0ûg›±së,)SÚŒxÝÃ/kzëð§ î#&ý!zçȳױ8“2jY‚G¤u¾˜â%ŸéÃóÉ7!Ißú&^úu*æöCP ®»í½§ ]Ö†¸Rða\ ÓD!)å1»ù”b$l1xZñ‰ LñûŽ/- +4‹zH8‘– š‡‹ÔéA ‰‡A"Ðjq&âGîè¿„‡­û•™ËË‚˜ÝKÖÓÓdz——s;ä—¯ÜQ¿³Ïqt81² Y'Éž$ +Ò×%¨•½xòª=å$«·åcèBéTN±oæçüÜó¢YÁ‘]8Zu3Ô8êÇ ?À;çïª*aÎ/«za +6¿Îá;8td.úÉÆj’1ƒmŠíyB>^bÐqÊåLà‰bƒ4h/mHÖ%B¯-¦/Â9€L:»¤Üó¡ÿ÷]mÎ|ùY.¨#+Ÿ8úT¹Ù9}FmOjorn4ýƒè—ãÈ“G'6›Ñ@) ×f!¥J6<ÿÃèAö úã.^¥”x⌺Öp`”ê¥u¸«3û3Iÿ%ZˆÍáƒÜ. kAm¢Z»!ôLeÝI¢5êu3ŒRX)Á ‡™ëO$:‡Ø,œ¾ÌÐOú æÒãtÆAxëÃÑÁ¡†× Ø4ÁWGèì8}Ÿˆ{)jÒR"—ñ~8Á,÷×þl§Ú2ïÀ]ü c¥`Xˆö®Ñ/Ý–è4Í Þ‘);­ÂM”ì06¿`x:Ñ1‘=Amâ\`cS¡RË+­¸ª²{˜YÛ_¹UþöZ¾àp¡¾½Õ|¹SZ%'ƒÓ,¥P„oIÐS`U-Ûe<§GûUÑQtH0 ç5»·¯^;^™Î°mŸuq­_»Dpùq½:Iò`qÑ™šMq‘ œ?ÿ7¾½1é‡,šíÅ\š“=‚JëN¬ÈI›•þ“Hz7;“ï=Œ +Û…Ú²)•>PQÑSWüÂŽà8COÚ9Ì.½zQ”OÔ B—F,ÇD“¸”Ãп€[Der-ãɉU`øîìWr! ”‚ªs B‘–« f—¹¼Ñ€Õª.=K×$"Læ"òY-Ñ;N4·*r&þ†Ÿ+z +Œ±6``…¾ÞïG0­o¸N'‘Ñ{-¢ŸîŠJf—Et~£vÍšAOÝÑ´m­Ön7S¨D˜sªŽ’9F÷¤ûFš™%¤[Âv¼˜d„žÌq£]‹ù„Á"•©!w67Ë?—ˆ«¦‡š~Çt³‰=Èϵè|=WUŒ ,Yª¢j» ª¶N!GÖ©ºCbtÍíÃþŒ=šhƒiu5Eé‘pºÐ”:ÍFAr4`›$ñ?¯6¥·Õs•ÎлÉ,³¥f›LóÍ«ÕO“=Wþ…ëSrªAñ:½5­¤s“Ê"oxDöõ¨‡$8Ìbµ*Ü9¡âë¤cvˆÚ(’ ÓƒìFÙ ÷N÷GÐsÎkÉhÕ»ù.C3 +;©4’¼ÄÿKýI·W|%½cøÅ]h …GœMùDîa&Ruãu>€’-ÛSÝ pÞ¶ +ŽW–%ÆÔ^葸Ú"¼E* 8á u8üÙ•§Çì'Ío›uÒzyáQ žê5‘ˆ-êœ$™%Á ü.—~6NT¨x†/´Unˬ„Â<ÅRyëHŠñp»y ¡œN3ä½ùÞ`3j½Ð†ôKs}×{>–Åì 5l±³¼wcñB‚)F¡X³ÍJ-÷¸ó½ÑwÕí¬ÞìYøT5) }[ŒsÛŸƒO-z*ñ¯òüÑmùû^àkL0©}ã<-#=œkåŸû[ì]­ÁÍ(ö¬9ûœ©UÄ>öU»vjmqÇ$sð3×è‘Öýìí¢2!SÐa%Åæû©$Hhû@kRG …<¦= Ôt—ã»CÑ©ùo…°ŒëtªVp oxš“½]3“„p!È,ð/` +yDœ–NrešB#êè‰<2«DSµ¿pt†÷-ªS9>Ö D’|ËP¼+Êë0yÊ»ô4ß{¥mÊ÷¸s ôIÊŽ$¶â$dÃ÷‡CîE½*ã=C!$Mó˜•\. +g+´sñ¤5ºT£ÃHÏ)æjAº1KÜæ­ª¬7¬©·«¿bïŽô3ÕɸNRº´Þ'j²;ßÊ ú¾ò©¢?º_æìl\ »ÂÅ„WŽ¤d–øð®7RÖ„ÇnÁv¼ÀÞU×á·ÍÍÖvÃdOÆqÚ¯²îâgš9’¥€»ú\àÜMÊYÏi˜lÂɈJJœz…§i†¸åƒ£Å»%Õr³ö;BæíÍßh*U?U³t“5¢\ ðöÒ"?XP×]›n›€ç+è¤ëŽ ´Gt™Áxƒ"¯¬;;)¾‹Ï6  œ "n>35‹{Ü~à\añ(B°ÚõÎ%XãUô•?Ÿþ\†.‚sÖ-B€ˆ1¼ë±ª)|³Üý Ì×\Ä@'ê1çBÅ©Š÷橘¬ØU>Ķ´âÕçúsø-_ÆôËo×µ-qÍz~lªuIãÁÃÀeûl]\)ÉSGà…Ä­jk~Y®-Bp’îÃèÄ~r­;ˆcìyþb¡ý…<-ÃO„êŽHƒX8qν1Uq£Ÿº)ÙòéîŽ%7qû€Ž:.ÝÁñõ`ùZ^•³7U1±^Êà»AÿóÌä]XrU©Xe}‹$M;¨&ŒÃO`óIÚR;°Z:Št³¦°>ë+U~'lx.î,fB•`X_O3.swŸ‡aõÉv?¾ª‡ïªMch=͇·þ‰! +ˆ`ÃþÀÊÜprËNd›qÖºQv¸’ÀÓ‡–kͼ՜[©y×ÖÚ|[²~ºŒïÊóHM{PmÏårœQDç|Ù¼ð :QSv€šâ’ùP‡Ú6>t>Ë +ã0ÏQ®œã_%+­oHÞƒSm3ªþ¼øÚ e'¾¥LmHdR§ù‚óÃ*¦Ÿ? “M¡.ɼÄq4I¾8¥Ëø>ÀèzþÅ÷õ3ò „_·eÝGnGky}žña“D9ä÷ô½ëjT‰à•ÿv«ýÙ9ÅÝ77½ÂIq)ÜÉì–Nâ) Þ‚ú!ÑçÌáeƒÉüý +BÎ÷IK ºÏ8V?Ò±ÞH;3¥YFjàQÚ;13+ܼ—/nIû†ñ{,Úü#0lËßJëšä(šYùXu“Ø£gŸV<î‚<½°ÊyVˆMa[íSšYMJäÒwnÕ‚Q~dÈw€c¬h°œ§× ˆ]KŸ é3é +±„4GjïnŠŸÞ¹­^v³ùÌZgØ}¶*b«ªDýŠÍpqP`Cκ,¸„då=œCΓʨrÂ\¬qc„ƒ>e-–$Éÿ…­¶FôÔÄŽQÐÑÔŽÛ„6}9E¡€­:¬v°6ÈöŒxvý=\Ò›7ÞÙJÄ6ˆÚŒåHJŸÎ)½Jßj½˜_%½@l»,ÖÙký ¡Û™UfÏ%§ÚS¯1é´®GX½[´sRÄM +êáE'ÒõÕJUŠ•la"í]©}Ë¡—ÅÅ`;¶f‰È<‰âÈÖ½ûAyãA6ÐîÚ±lì„S’ÜZdõ"àBk +U}½òõÛ02y jp³K´=Í5eñnª“ÄJã^°É©ƒRÓ3Í’cÛT̯ÌÑ+ik›=tcgE†tÁ¶£Ë g§›0ý#å“ÍÝ,½âI<© Çñ9OAÁ÷XÉUy¤”ÝaN!´ê§gÐI‚Û– +nÈ” m+åÉcßd_µFt펆¯9AFˆKÊùÓP/` :òÔ0éîyÖ2É'†íÉ@¡C®½SàT>…Ý4™à’†µÒšæ=*¹à’Î1}gX«ÒèJ*Å{Æ…(ª»ø5e +بïÇ‘ö"W,GÀÚgçà8Ó#þåiÁ Ü,ÿ7äŽ\ñÆ‚âA}ñeûeç1T±NÀ°óZjbêTSØ‘DSÂo¿Ÿê¶@v Ú•ôˆfP„2<ö4MÁ T`¿SvØÑÔ‡Ã\&ðHmøƪ9‡ÏŸK@ýÒ¸WÒÙ~´ÃüèÕ«&çN1»ÕQ ±™¨ØÅY'7‡šm:H»oÎàY- èç$¨niØâmÑ%Y—ílx/ikˆ#ÓR”&0sj~‘ðdäŠqŠö5l—/føÙÛÁÝéxD WÃ;œc·3ÁüÍÔû zÛà{·ûM¬ë…¿øw¡òÍ=µ"S _y°/µ3FÔ,Ù·ï°öm˜É-[Ópp ¨·m\ù­ðøÒ$Áª³piÚÈ»Òj$Ž¯À*ÖJ¸râ¥0|öVfYøÙÐ(ÉŽñr#aÍÔ‰jzÞv¾;y*î ³ÓÒ½Þ/²¢'H²ž×ÕŠ¼_©(… ølƒ¦¿x\Æ!T8ˆcÛÆÊ莺­LtÈ•¿îp1ΤÊxŽº›…;||“ácW~‰û€¥6­{žÅ«»“7+zfÆ"à)‚óäÒÊE÷ò“šæsðVÌï·’ÉñáѲä éé+7ªA^õ Çö‡}”o§2šW6¢\„´T#ü ýè^¾A™Nƒ(PõedWˆµŠÜŒ qÄÔÁp¦Ï;ß ÕÈ£@‘9,pXEáør(Uýâýܼ¾sl,W(¤:ä|¢‹9rË +E R^íÒ~áWžš';>àð‰ä™ L€Ëÿf=ºMi)ÔH³w‰!ŠŠÉúæ´øjÑ <ˆ¸ ÒÂN³@Ñ6#;Q¨ HäÚ˜ÆÇpYˆÓËH£WÖ,fÓî’´«ÚF=ÜÈ×õo¦”óDh˜3!xÁÕ¡?×θU+n•+•ÁMñÛüÜ_¡´üÊŸHØÜÙªìÒdêrACp÷5¾i)’e9?Š¸žÛ£½Š +rcÅQH ícûOÔ†ŽÕÌ|­‘@WËO„]–ü½[@™}?ùãTuÆC“ˆ¡ªðÏ¡0å¯jAÇç%´D0¥€iB3‘à>!u㉽®Èßó’y1ÕwŠr;üoö)w ‰¯öáJ¡„SЮ|ߍêZ‹%ªv8³¹¬Y2WQD[k`b‘¤àPx±¯lÓm¼µ{Çq&F|¥U~zZãÅ2m‘§§àwL€M:«Þ‘¢:‚¡ˆh¢[Hò8¯Ø Ñ‘~ÜØ.®åŒ2»†ÍFW%°P¦]­lfÚH,´Rr„ÄåQo«¼]µL÷c½ó89Ľ¼½~–RA²ª¡0ÒÛr’Ft¾‚_±<4óìWîÝòiïÆEJÎŒCgy,7Ûĺi–O¾ÃÀÊ/Z‹ñu9X>±fOº:*Û› &ÔÁY.O?8K\{Râ¨jÈ7„K®îëlÛ²³ÉœËR;>Ôг2:œ…Žè¦ÿ `¶ ´ÑÈÆ2#ûûj²Á?<9€õÚ‚: Bî¡EQ@8ẟIh™ h7¹÷¢HNõ™ó ŒÙ¾Á y±ûqPð§DKIàuètâ{¨ÿHl­Ó€ô%Wp—út®VÏMÙâG °TÒ­i„f¯=¤¬ÒÜÕQ!èúÈsàÒó€ +Q?ôVïóTöI K¿òöÞM•|ieÚ‡Ÿ¹D œ­2^B È…“ äOøD„ñHñ rø»ÌÞ¶á🺞[S§¨”OuáLïxÕt‘Àì×ÙÆ·Ùâ‡55ùweʾ?)•f#åRB•¿¸d'èu›½$ÿ´i^õ ÞŽý7üý¥‡é_qþÀk=ÇyÆüAßvö>`($ÚÅt’$ºÛÜ’‘öÝŠü‚by˜ñf ª°>qv^øš‚g°¶jhÔ‡¿Ê¦G¬±2g¨x"§´PÀª8’Â]njuôsu ¹ •Qî¨Øj(FÅO•»{pÀL› +VCV^uNA a÷¦BRj÷—Üs•“}”}Ú"zÁú»™9î`ÎT ýld—>_¢’F|·ßƒcè÷z):§Ù펰‰ÇÙîo¼{å[­Üûš”½yÂ.àB´4.­ÄGo5c/_Þñ’vÕez^#’BcaÃÛG“.M/J˜¦þܦµX¹—¼ÁWç|žçW&¶GøBñcëÂÀ›K¶Ê7͈x%Kµ"ºp°¨YmÒëë[î6ÝÉ€CÝ~OÁÅg ü¬‚çê$hf~yLÔÉzM&…œi¹Eñ)Î ØËkRº¤F®ü}ÔÀóTzæ!Ù`“ÍÀ·ŠŠo3îΫ/§&åsâ‘ÅŸo¸´»õ[ýcM S;¤DµÃhxoåÌn²g`³7½‘on¡5óåë:9è +Ø©U¢•¯‡º{YzEWY 2e³ º%½8ŸùßJ~±` „¬y*4¾jVÏóXÕWDju·Î4 åûNxò-…¹ö¹¢.Åh÷(Œ}ÜŠNÝõÄÊLÅŠíÌ+Åõ7 ®øƒ¬› ‰GÊâ¶Ü»âR‘ r‰}ë0 Á¢”'¸Fƒyò ÝGq÷ç·‘çwŒq0‘8h²IÈî™:Ø×22Pu9sïÏ•`'oUq{Îj`UŒÈ¾ÒÖ_Û°½ Ö¦@‚ø8Ï¿€èÙ°ƒlžõ¼pÍ!å5•@ÔÛEFºšÙ$œZºµé5V㉫XZ“°cÅ•ï„»Ÿ´&ÝЯ>¾«ùæ£Ak66 ó×E^N ´ ÿBÌ‘0—n$|¥1ä¯"&#±¶aiF!{ò©äØc*Š›GO8÷I¥àD¾ اP=X'fÒ(-%ðÿ˜†ârj’h­ Rs«°¤}ŽÂ¹ÈR¸%÷‹Îƒ?Ètˆøò—\ÊH>ÉÝDz Ì^ºÒ¢5Ë(#ê¯ÄÁ¶ÓT×*F»›igó5éæ‹{Ï·XEÌ~—e£Lrå¶Ú©½äFg¤™yx ÑÒž[]Ø™eI|þfåÕÓS¹¶ø ëŠ7hÔsro>×X?O³°>1^”WJ '¢òðfµ¬Û}:G“B?ÛX˜¯éÁq¸]#Å°w}I‡ã ³ÃŒy%®U†+˜‚á0Søü0Y©§ð}ÑÍxè*0Ý¢M¢9³QYÄ,È«}ža +;Œ€ô 3Ã%m1Ýè?ÒmRºêc\žÅ +Ì ¸¥õ£—»`4Œ­F™Ô¿ãR<sstB˜ Æ7/?+òŠ¯F:Ó]LîgÿéÃCÛS–Ú•Ó‹,}|` Þâ y÷8õ7h›pG–JuÕ@,ËŠ3TÙz uëqñ":<5}D?Í6Œ#Ú¼i1²‚Ñ£›r>¾<Ì|£Š [ÝeRäßn@Ë\¿TOØ€¦ qZBQãc¥âäwÞ^%¥­(ñƒZˆ¸Z…+Œ,îHÿͦ.—·Quç¥Gž™­½¯À+÷Ç×÷e¶ƒ(Å0®åÎJ掴9>ò‹qD~ßqÊlC¤þ.Á¼¦A€Xe +D·nuWŽÎx(ȱ䒸W¬JÇ~‚¿‘º£eúT™aŸƒ^ï½– Þ7ž §ç~hw™™_‡QÌ¢cñsÌÂå)H&^Æ1¼žC©g³¯®{‹DË +Δ( 47ö´@¿|¹­rƒË̓æU€ü;"H‘pw›7l®è¢ÖÙ±_3 Ë²á “x°÷mŸa[­<B5)\¨–øEÒ®:4¨£Y·t£WUc…ô`®>)Âý–²ümhäéõ";_¹koý„¾),SGOW|l_PØ « á)%@;Õ>5àSû¬GjhÐòËÂÎÃ¥¸A©iN™iãôê!†äsú}P§¼à¸Lw­Î˜ú …„NôÕüè>›%®“¶Žþ¨NõŽàA¾/ªc:Þªjrï{>èÑóöMn’'И“Ýפ/™ôјMXÆïopSg\xÿ¸)Åçúè™>)­ÓÉBa²§Muq›Xø™e΃BzÛ "V3³o*0 +m©è—ðò–õáÇYêšstùá&%OŒ¶oëˆð•—ìO»Î[‹¡ ¹:Ñœa#âiîÓ`5ð½éÕ;)fñûqL˜\ Zž®° @D~äõû«~ Ú¬u£¥,ºa+ט^¤.ïj±%šE–JŸ5¨«ã_\AáŽ&©b´Hµ‘cïE&Ù‡¿²±~0·Ç2:y$¡0ËUÜ:Öã­”ðô +Dղέñw¹Q‘Ƽ#Q›4Ž‡!¥VŠzÎEhϤŒ/RVÆLüˆ³MˆUÁj÷brkLP°…žz1ï/Qº™±€°šÑ@vbÍy¦,ÙQ«·/nÍáD' +y“(c¥‰´Á÷w„{n„Æ¥ZrÉOM6¬˜NJ3ÆzU1nç€ 6QÐ19‹—Û¥ŒPÖáZvõ'P¶—YãšUrAIîžÅÅ€1›MejùzV+ÕÖù7¤¯¼/E^;æ{/ZÀHgâ×j\œÿ+jÚ¹U7ÿ1œ6Þõ‡cuªæ®öèT8ÀõÅXý]¿0Ô¦‹Y‡½ZybÅvë$n§ýõ£±#ù2 [*ÃwÅYårÄ9V@»”d5ÙKˆÙ"ûº°yó v ƒ®'XiH!ó á3wIykÿ#J÷lÒ<¦s(sUø®û¤Tð|á:/pœs§Ô ëP’–<ˆrÞbL|}ä’0ω´üûÿÛÏgÌ_ögk=úÚú¥¯®®‚_{íÜí ÿíü®Ò§à1ñƽœ[.I$Þhè +¶Ù½äÝîØðmŽR/´Ï8e°ûœ“|ñîëszC<’^'¬üš~xõ¹l­SÒ|úcä',ü~Ç+L`áƒm¡à¸Ô›;ΘÍfyüØbÏþ9%¼Wû^š¦ù¬ãFáuž©ªcMŸîVÿšW:áõdÝÂ}L“âÝK?ϼ|BóÂú–UvÞ•‹w|›&óyvÓê—šß²CÙvOË*|ð(-´zé>û ‚Û\y–'$*·ñóÓÌ¿å ÌoßoßîËÇ6Éý¯ÝI)–ö÷]³=ž+·ô»@siÿ–R¿‹Âs2š5ª¹rwö¤˜q -¨ +¸wëB€tIÉ>NÖÃïÚ&ÇÚ4ä†11>Ú"³OzÓúv«_§ö°÷ßâW3ïý¿”é–7Òv(/z¼`ÖrËm_姷´—+vÙW²ÅÔfîK0庡û×2,¾ÝÜùÞºsÞÙÕ÷ïíK;b÷Ž9]„m/—èϵÏê7~ùp&,kÚÖŽ óKâ>„(vú^K¿{uYMd«WT~Ë 5Û/Í}(ïÜnXªÃYÖðíÆ™þÙ®%|´<þ¯ÁuJx´nÎÖ×Þqr%M=6åŠÚ3ÆY·=4k<±;äã­ÿ]ßµâÜÙ“ŽI¢Éÿ­C—̈0Ø¢•–óñ‹õáü.Óëœùv%ÍÙÐ8³÷ eYU›ï&™·µg#žÝò¾ËuÉ5€Ã¤QÝ€BÀ5jÀ°0 9'5±¨$?7±(› uxÎendstream endobj 885 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1921 0 R +/Encoding 1930 0 R /FirstChar 34 /LastChar 125 -/Widths 1929 0 R -/BaseFont /HHRTRX+NimbusMonL-Bold +/Widths 1938 0 R +/BaseFont /TBYCOO+NimbusMonL-Bold /FontDescriptor 883 0 R >> endobj 883 0 obj << /Ascent 624 /CapHeight 552 /Descent -126 -/FontName /HHRTRX+NimbusMonL-Bold +/FontName /TBYCOO+NimbusMonL-Bold /ItalicAngle 0 /StemV 101 /XHeight 439 /FontBBox [-43 -278 681 871] /Flags 4 -/CharSet (/quotedbl/numbersign/plus/hyphen/period/slash/zero/one/two/three/five/six/seven/eight/semicolon/equal/A/B/D/E/F/G/H/K/M/N/O/R/S/T/W/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright) +/CharSet (/quotedbl/numbersign/plus/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/semicolon/equal/A/B/D/E/F/G/H/K/M/N/O/R/S/T/W/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright) /FontFile 884 0 R >> endobj -1929 0 obj -[600 600 0 0 0 0 0 0 0 600 0 600 600 600 600 600 600 600 0 600 600 600 600 0 0 600 0 600 0 0 0 600 600 0 600 600 600 600 600 0 0 600 0 600 600 600 0 0 600 600 600 0 0 600 0 0 600 600 0 600 0 0 0 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] +1938 0 obj +[600 600 0 0 0 0 0 0 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 0 0 600 0 600 0 0 0 600 600 0 600 600 600 600 600 0 0 600 0 600 600 600 0 0 600 600 600 0 0 600 0 0 600 600 0 600 0 0 0 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] endobj 878 0 obj << /Length1 1620 @@ -8951,71 +9011,71 @@ endobj /Filter /FlateDecode >> stream -xÚ¬ºct¤]·.Ûv*I§cul'[£b§bÛ¶mÛ¶­Ží¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ø%ìlA ,ŒÌ<5e ECkkC ;Y)¡5௙’RÔh²°³3y@€Ðð퀅›› jgïîhafPÿå ¡££ÿ/Ë?.#÷ÿ@þF:Y˜Ù¾þ}pZÛÙÛmA)þ¯U€@È0µ°Dµ¤ä%Ô’òjI -ÐñoŠÎFÖÆY c ­`jç°þ÷`lgkbñOkNŒ¹„†'{ ±Åß0 ›1Ðþˆ`t´±prúû °p˜9Ú‚þÎd°°5¶v6ù§€¿vS»dïh÷×Ãæ/ö—LÑÎ ädìhaüͪ(&ñï:A憠r;Yü…v¦=MìŒÿié_Ø_š¿(ÈÐÂÖ ºþÉe˜X8Ù[ºÿÍý—ÌÞÑâ_e8;YØšýWôG ™¡£‰5ÐÉé/Í_î¦ó_}þ—î íí­Ýÿm÷/¯ÿ¬Áä´6eD`ùö7§1èon3 [¦¶Š”­©€…ùßvgûÿÀ\€Žÿõ?{†æo†&v¶Öî )“¼èoJõÿÊŒÿs"ÿHü?"ðÿˆ¼ÿoâþwþ—Cüÿzžÿ;µ„³µµ¼¡ ð_A€ÿ¸c²€. ãÿÍÝÐÆÂÚýÿðß=5€ÿ®RhælmèøßáÓ ÛšýU„›‘ýßV ' 7 ‰¢ÈØ`jhýwVÿ²«Ùš­-l5ý×8 ,ÌÌÿ S5·0¶²ýgøìÿ†€¶&ÿ½ü¿2ý«x&UIõïRtÿû½ú/?Å¿úƒTÝí€ÿ?‰†œÉ.þa±sx2°p2X™Ùÿ»¿›Åûÿñ_D,ÿµ–39Z¸´™™™Y¿ÿãó_+ÝÿF#nklgòÏŽQÚšüÝdÿiø6vvtü«í¿Îýߦÿcý¯íºÖWìŒyƒ,Ó2ÓAu¸¹#SbÚ},#Áö¥ªE~5v½¾ia»Ü•µÁŒM3<¿ÛÝ—Ïí?¥iÆúp¬©zS€×ùDÞ4ýè[_;9鎘ôJ‘Ó/4¢:2Ü{ ÝHH— OÉë…ü5ÒÏ!‡Pð‡Z…xUó«Óö”ê&BÏØ>ŸŸÙ‡PvE‘Ŧ—µ‚ÏÕàO͘ƒá†€l¬„ÔÈW"æþx²À £ŽïIx%Q¼Kâ¦No¿­ùWcwúŸò‚ßÄÎ׊ü;L§V‘;fT° £Ö.ãG¶íúÌÓÎõ=®>ÕÎ7èX¬JÌ[ÃZUýùbªÜîA+_®›xF»Íc¨À( ¥ã©ƒv¸\Å$L Ò…õ)_,Ò ¡Ã4ŒR4r-Ø“©¾ˆ3ø‚2Ž‰Œ€$¿ d-ô~“„}¼Dä9&G9?á¬;Ô6®£ÛB‘œ´Xsÿó/w†ßöèWŸ.S?649ú0|‘ßãš@΀ƒëì˜ç3¾>9È%æú!.à—¼Áô/mH‚Þ¹U'g7¬«T¨y㨒Cº4œÖ)7%Š_0iôGàìáä}²›„ ƒåÔ›xêÙÄ6\/ÓÁ¹Ô¢ÑCnoãÐ5-Ûu. ê24|jþb'U//g7~u®›œ÷äkƒÓ—8•†n¤3€j}_R:âàÎ>)[kÛAP++Ïú;iw9¶»¼ª½ ·c¸A{÷¿Y‰ü j¿3à aÉ»ðSr°Ñœ¨t2ýV å -o(:¨Ñ_‚ä¤ñOFuØI)Q’¬¥®‰Í:T\+kÀ2ñ´Ò(ÏË2+­Ô»Ð]é¾çAM¾×Q­?A"tto¯$ÏÊAœÇÛwÎB¼ã¢ü1lþUxq¨eÝÒäöt¼d"$ÀÇŒ‡™M ,tEÃ2g§ö“0ACª•ƒÇ“IyàbLżê|cÔd€&ó­Ðƒ}7ÆÐJVóJfŒ!`/—ö©Ä~iCB2l´–¼â¸¡Å·Û‘ÜÁøÈÆ - )/úh½0HéZ=`|K›@?ôî3Ob¨cËLádÍíìÉQûcz‹þú7¾cèü¹$ Æ>2Í%—¹ß°%F ->@í£dJî'¾T¨WÝ– ’ÆÑë«úþ®@Zl—,P* ï™7o6x©bäÀ×ZëíùOרc ‰^à°HY¹ê¶]¼„qGÝx- $v·úyüJŠÑ‹lüwÝ„ze|5lÇ¢‰Û&^^Y†¯d¤å¸=眫Ø'ZðþžQ.,°#p¯ü°Éøù¨~j‡|i¯ÖÍ_)¢é<-ëqHb_Ò»S3‚4~«Ò/²Jú -ó»kœAUyÑ® D‰ˆ„’"µpVk_í+t·—$ïÒBhtçß’¼`ª-‘C†Èù}îÒôƒ¡OQN¢¾hÉlÙ‚¦X©ÍÉÃÚ-ðÝ󜚮Ӳå‰f]D–„]fp`ÝLWý£ÄÄEäÑOT¢ÿ«0ûž†zܾòïþ׬M -‘ו‡ošDƒŒ ¾”¹yÙÚ<1Þö÷Š3 -9à Ù÷:Å„Ÿ\ÉFlý¹ŽNÁçµ±½F¥1¢{1I#ù#gÐM!Å&Ð!ùf¸¸<:â‘[Ç‚êÞ—dx²UÃü9‰Åm³{¦¨F®Aº/b›ƒÞŸ&ŽiÊù0ÆÊ<É{ –3Á—)t;¾ -I…ÆÄ8á J’«2ðÚÁF–û†t÷+àK‘D:rtËSα£³ÒFX°Y¿ƒw0¢ºãÎo‰Õ"Ú-P¼L>Vš˜ñפ2 Ynîë|CVÞZsZú Ó†x9„ĶU&bNž\@š'üýlNÔÞû1ãWÎèjöE¡¬¨ÿI1©~´Ç)¨¥P#çP&¦B5ãrEò¬é&ÜìPÿgÖ©‘ŽrÏ3ä5ë(h“‹£66q¨ JÄ·­ ï|à·Ë Ç#·û:[‘úìƒîi0žì­ÎÚoœ*3ö8¡|SgrJ_ˆ·¬»TáZ‡%{ÍbË„pøTþÃiK¢`È$Ñò-ž— r38‘nü9jNÒúzzç÷˜ °î¸×ÃÈm‚t ßk–ßnŒ.ƒjÅâGr Ÿ¶~Ýòz^o -g}%ž¿<ÿš¦¢§y>ÕdsŸZˆ—ŸäØt‘ùB<*Cuù­ Xò4RWJY¾?Ôse4¿¦öÁGGøË=1nI6ö>â¶dxøÛzÀÛö§úø÷^`K­™u ÒZ¹$gMÍÍE®Ý§R‰³› |~Π;âIךÚCXFçÔ[ "9Û\(:Ô/œê4Ùè´G÷b^LG9DyÈ‚6ú+ìÖ?óÍv_æÜ@Úz¬ºy4r ²ÕEëæfNfS\ý(„w!Ð+`'èìõö½Ãºk0Ê1pI?ص€ÝK?lÜT›åœ¼lîSè’›šæC`-ëJœª{K'éͺ¯ÊÕ Çƒ„¶õÄ&]_\ãN*Ž²ýÈ˜Í ¶q™â?tâ‹>Ú»ª¿[h]ØÎDi‹Ø?•ƒ] q‚ŒêH¿(OßM Þýa›kP …Ìùj†§lL_Iª3e#9_zÇ…q»¢«¾I¤DKi‹KÂ|Áô-ïì¾æãEP+ëÂû; KOã%; EýkêÂJþþ‰ò{¢M; -%Všy¯Žç½wd`õ\¥Sd˜4¬Å¥øïhj-Ó)¢1Ù¯tê…hE‘¼Æ’§@c]ŒQº,ÃÙPJ±Zõjæ¨u¯žYuÉÔÅ›òÊqzú‘Ÿc¸×µ#Gr<’çâØP|Â~Rq‚a?–Ôà?ÌÕ…¢ò-›ðå&•ZëCnŽ‹¨H鬄™NN~g’±ÜLwgz̹{Q\CÂàkîËãMN®-Ø\ÝmbdDÀ!pŒ,*-eG¾v²M×<Ÿ»)¦Õî°ÚQ ¬Ìô²Åc¬ÇáÓ7/ZÓÀ¥¢–ôæ!ùOInWþþXÞ€8ä„áU„4ƒÜ42ôgYzY,lsûtˈSòî’üZQ”²8 !Êó@¨`úžnLnï¬?'@‰R§³ÓÔcz’jýzçÑGD”ÖlþhkUé.ÁôÅ0…{)ÿûŒ<Ë) ÔCçÆŒ¿v—f6„øzÒ˜êïUì³^¯È€žžs<Œ¨+ (œ× -?>Lîw\_¼__º‚+úˆ—Ï*×5²,Üâ~‡ -ËGBÐ×4$<]q…x\6_ÌI_ϱȸtÓ<< ±ã[ôV(“K—ê£hAÑLÿžƒ«±î«k”“Á™-H¼~„ÈëRtàÆ;ê¬ԧОSŸ«,Ä>x›ºQmMΠà¸ÀöH|’MÇD-2:s»ÁK¾jÍ)yu$–©Ó:ž•([mq!+GŒ™SÞz‚PùÒ†ÞjLñpö«Ys%²Ý¶p¬z.M[›t]Þ§ÀŽKxÀKPų½×ÕêL•ªçLý=à'd{ì-¥?Ö­#†‚­¢E^+#6#– ñ/–“õ­ñ¼ÍTñÖ<ínÀZ‰/”Ú8Y2ÓØ/gÓAÓ›øæ±,dx -v]šÑØ}a(ôÉ:eÝX!±«AÏ[–Ž×ÊÜ’ÀæƹƣÞ3a‘^£ãxR°šË\ì2ª<2€ÿŒÍmxÕîQžæ‘QáE‚žÈ¿¼=±HF,ÃØðªÊжÌ>Èü]¼¾Ø¨ÍqZ\Q0³“×-|/SS´æ;ª? [B«˜jÜë&BØ’ÆIRòu“$€„ƒƒj°i&ÝY³$——½å£-B’ -ç¨÷i ¼%0¸)xëõdïIG•&Ž¿œÃtɳ6†ž7|¸.&õ - -ΈŸçf™ÕÈPMC°3p§î¸eÚìq²áBÞæh‡~ò¨,þ¶¢Æ®¹ÿã -¥;Kƒ{jPÌCÛf¯¨“Ø£_:©Ãb*¬Ž–Ôº°AïhµûÞÈq‚F΃a¹¦Ô9›X´Öò€)t‘ÚQPAng©§âÏíÿ4»š†ü˜©>¹I¡Îúîá”JO¼AÌ°#­úEñÛÅŽÉ<æT»;×ý.Fíô«déÝj¸bÙ«k“ú§V«,þ|D—æ‘,4‡Ûj·vÝ–²ºyAñ—‘ùþP´›ç€8îf3A|æž{a­ --5ù\;³½2>V®±*T# +sê«®0V—0p ÒÀPô4¹7®“Þ¾Ê܃#›}Là®Ižß˜ä•¾9h_ê3ú 76¤Z&!‡Ÿ†‰Y‚Aý±Â;¥§!ûÅóë\š[S±eG»tö™€JË ¾qWp‡þ¬ÎˆN7ÝId¸1c[9H©èMu„hžä?ø³Ùo°‡T2­„Œåm¬ÔæZ5·}Oîͺ!bîÛÉ$<~éø::¥½½ž„2Ž €O1W© -@0‡cz´ëðcL"¸¶©ˆ1tQ mhž7OyÙK/=mŽ1Ü´iüŒÇŠ··ôŒÄŒ%¥”v= \lB­×9Ɔ½‰ü‘“WŽÄõÝ©s;Ú¾†øðýa_ 7,Z±jg[À6¾bV¤ÊY—qá=›TLÀTæù4¸©ŒZä¹xæÇ©D S7Aof„ûoŽ¦¹¶†d¬Å(?# Í”¡4÷Ú7©¯;˜Ác%$P„P|¹Ú“k½T˜dpR(áæÓþ; @UÂŽåo.P -·?å?«ì:º;rº¶;(œåÒHBÐUQ%Wy¯ÇûcEàÝÚóÌãÁÏbמgo@¦ð­q´ÔDÖèÈ' )øóÁ«ÄhåHø*²ï›#™·ZÏYHá( %Òïg!›µ ß¿ûW{|êõhñGÆq¡ÄL»»o–DTèd·ºãú±‚e6D²]}~Ç¢jé‰fÙ1HD,zÉDx¤[®'tC,ôC“2ßíÓ[+'aæ%¬vâ×òAµƒŒc;ÎC:e›sÓ’/ŠVÿ¸lÞ+ã,¬zïpÂ%¿ìg.#C‰ž4¥ì#,þà¦ÉÃý\¬Á—¤&‹öðcç[5—&b†ì~wcÖͳQy•†øÀWœ±k´Ô¨ÿ ³6QÃÁ»kÓÞW´ÌvŽËËf³í®Ào×>¥‹;ùk/E'’r×i'4hözUZj -S(xÚ#oÓÜõç ç‚͘©ØÔäs½6º~ï6?\$Ý“ Ûp¿øæ ´wÅ@¸º·ÑG´=/á1^ØûûWM€Õ}ýÐ駋–Ê{ÅóZˆÔ(sï[6ìÂO ‘züñÉ'ý1(¸MáCªš˜ãôº)–æD8ŸåÏ=’´ŽMæ2_Úû+ࢊ.hmËÞycÀ‹0w¯ƒ&¬í9r7µqB´!KRëhlo:®SZrEýñž:™%ÓF¤ûX¬ö@fÔ3™Ö`¶ÉbcгûË€yŠ|{¸ ¡ïì¹Fn§È…çA™kÙYÔëÚ½ |â­±ôÈìÓDáw E)³*j³sý«‹Û–]vŠSl|œ¦ÆEÔô5L‘–Ñ – :Z™ÜŠ2Mù…%–Ð`ß¿1¹¤²¿‡T@@jL¨Ph˘Ԩs*ô½§ Ëâå®è‚ -I³ÙêéÇ–T©-˜R§5߇›‡þÚ@ÂÇŒçoT§÷uf‘‚‚Ÿ£;?®IÖB,$ÊqªG¶vÚâ¯PIJ •£Æ»¨(¡àœ•SÕ`RHáRp·É/i¼™É6rƳ¬È»ÚôÊvökU;]äW¸é­ysV†$Z k›oÀëãõK„ö Î£ æe*|LÞ¹*p¼§}¸ò× }an²éÜ¥ºÏ¡öÚò´Ú7dîyˆg9ÏÅõð¤éFOdtã’ý‰,5FYrè¼c}í¤Ná§à:†KÐe fŸvE#Ÿ?Íю˪̘ í‘0S(Ó¿£ME J+dL©¬¼I­ð^>|$½g'IàŠ´?"týy0ïù4=:9W8ùÉÝ1ÕØ”D…—ÒšòÒ»³/Ã1ðý¥C¬£ù#öŽi÷é1Dr‘ ?ÇBì6R6VdÒkšÙâ” \šž¯ÀßgÐ>ç¼u]'6ªû©$c6!Çác¢Ä£Ü¢Ãvƒ -6AdQ›¹Í,>N)¥Ò©ðOã’ÛÍ·o}ŠÓ3U¢ªõ3“ÏŠC…}àp)Æó¿a™FK›ó+ •W1{‘¨íœiNŒZ?¿~Ô<îZÛ×Áˆô~ô}“IU?û -^ºö*ÕÊ;â˜<\éæjB† :æ‹ãk‡o™ùžËýtaA=« ÓÔ'ŸÔÐH•ÄN!z^“«ÿw¢ëKËÌ´«vߪý'ZÎØS³_-Ÿ!¡ÑÐ9†˜­yƒ±<`–ìÜkÚìƒ8˹‚®UF¡èýÒ¿äâôëO‹¦3xª©‡ì†°b$pãÀfN2rI[ ÷Ð`-IêѸ\\AIëÇz£AÅ ;²;»¬·Ó@sûÑ’Ðë"ø ,méG(;vø™Ùd×"|‘"¦ŠÄ`྅Óé‘«¬óõlýÖ!|t]Œjø0Š–¬¿Ö¾ª0Z )ˆM&çEî+É÷Éœ GÌ7kʱ—Ed`X]ŒÚE•ÀQd¸À'D5õüDU°p¯)+7sZz Ce´– -Ý)k=g< -ýÀ”å•LâàÛìàwD#XY«yû¸é ‰zp£^àž¡°óRÈÒˆþ‰B˜D²¼¾Ý_v|˜÷ÕìÆ”¡v’S|*B‰ã˜D#ÑŒ¹N7uˆ'ôx’ÎvïNEy-‡UI 9̽Ç|iýB[}¥­ Ó¨ÜE>T ”;pf4_·Ñ%ÙøN} T…—Äï÷uĘ¿”õ‰¦ûñ,Ri.ï -„y„ÑŠ<¦ªòÐYtÍþz`Õ4ŠMÇ>f·ÅH3¯ð(±…¼]¨!9‡çߤ–šà›cà -è°ƒXC#Ä1ž7róѧƒ†1÷‹þØ*:½Ý -¾¬üš"¨ùᶓ°P ¾¢®tþkºô¡ßs˜8ÁºÌÈ8õc°ã9­•Qæ3EåŠü±¹ÙΆq«¿tÔöÙËCCY^"fDzJ -ÛnÂ÷Ù'Î{ü®ÒÿŒŒ®AiD–Xg‰¸N8T£lõß Ý¼ùõšâq’Þ¸+U‹í7›™Z¨ Á©Þ¼{U ìôtœ&ñ6»=¹3gT’>Ë€ijév¦r‚Kºr‚ÞDƒœR7$ál^é•4mtn$êEÒÙeÜã8½¹ƒVã=R¶W…C8.Œ.'~Všë[²­:fÉHn‚™MÂû¯®2P8¼Ï`@¹G´=qHw¾•Ø[_û7*²C™r³ŸºkÞ²¬Ã1‚¤Á7ú>< -Ã2k}„‡Œ°±hd7,=½åÒp3{9 uN4Òœ°T—£b ؆F–i$ïó‹'p‘}¾Ÿt¥™´ð^ɨ"3±Ut¢¡zx²ØÆx4D K¬ZógÜ–z‘xC6‹]äÂØý9&yóï³t6?ðÌ"% -‘¼FøCAÌÑð}>€¶6‡¢ÓVÛþ\ý di B´«ÙQ¯è.Ç~Þ‚´ÈÌ=ìäm’6yS$ý-Ñ¥ª¶™)P‚´)keÅÃvM¡Gã¶Ëe·5%¬_ØYûMŠKÒ}ƒ†Œ8 îÕŸÃl5wìóµ Ô<öÅ·£„²3dz’œVÉ ÷ - žóø.Ñ°\éd¥(š˜>¯–LãPÊ  Ôš3,¿Ô16še¤³Û²˜BG»OåÔÏæ¦_ƵW‚®e oÎP×½'”@ç×Ò KLýº-/ÞJ[ýŒxw]öG8förˆVƒÉcvÄþh;Ìšé£è‡µŸõ!qîL¾Â mÕBÇïã@håR}ºûür†¢'rû⣖í5qq!Š¥¥¾Üt¿°wô¯µžQ8É@Œ‹«}Hë%‚Õ›E1TâìGäìï¢vF9Õ´½Öœþó«õ‚y¦¹ØÍYG$RXs³ ¢ÖÌÄxŒÕ}èÔ²®å†ˆ¶DR¢$GG0!°Ýº˜ÇêQàQv‡{ÎúlÀf×rh`>-¸O×HÿËtÈG¾è¤Â³8˜RG#zÛƒ–´N–˜0NGéìl%¡§¢Ë.læ¦äyð»R×|~e@!ŽŽÔGê`ª0棋«å=,–v_æyN¸À(:¶óÌ¥kÔ/˜´@ÚщÝ2Ï$4;ô™d1Sží±B;·šjü“ < Iiß\ÿ ê™™Î9£<È;ôÈypckÜl"ºÇdcß]ªPí’›öĪ®Ê™x³}YÚð²UöWÓÖ°Å÷ê êy´NpY¨Jý°ÐKöd¢_Ì|¶jUM‰Üßíùº=B78b5í9S]âh?7 ØD) ƒšƧ̗ÌÛgäX‚ǵx–!6YßÃÛ.R8WÐ^õØ!žÃüJ½:±³tñÀ{›lnZú|£€xÎÈ›Éú¾¹[ÄÇÍ U7NÑoÁ/¼\€ZëôJ(šøºa™Ùi¤•?€üa/J£ˆEÿýý"«€ev×!€Ã?ü‡¦1áå©Qá<>ÝZ¬|¥“hà]12fʸ™§ž(Cj‘ÃS¦™úêûW%W%N_ììÉÕÈiü‡Ÿg='tÖ¾Íö¤â„6ùWÊÕfKd2žÊ]'Á±†[–àÎGÂÑ%Zu$o[fìÀ(ÿ÷KŸml>H×ýá<ňe~Òußɯ,gVi®ÔŒ¼³¶FUjé‚YKò–eŸ¨?ŽD‡.^– åª$y6àj)¼¹è 'Ç"äMï{fÅ´cäì²Üz+¢1 -°YN0ÛæxôÞù¾•·Z1#‘pÐG)œïò±ž{+¿ÝªjwÒ±E©áš=P´Þ7±ÙÑ[7û¦“¸NYYÇU¸ydyÀ3yzdC|`×¾„CBݤ0âF½Æ&nœÐ~,‰ÄÖº ô"µðóo›Á·¶±zÚŠ7¡t<=›¯z`é†Fx¿¯!­„OL¥ó¼‰cä¹àåOsLÊ…©V-Ľaw^ß -¢ˆÉd)$± ¶Š¸[a# :‘ÁÜ.‹ÍÉü7LÓ„(èòGÚyö é안øžwbMŽÓüÇÞNËe?ZÎÂfRc¯PÌeš²ªéQÚ"äI8 -4Æg÷ÎüôL¬¾¾Ò?Âlœá6_±Â؈u‡ëî$àÝÌ;ÇDpBÝu¢Cbî›#13º;Ï -*‡Kò·¶‡;¼-’"+ܦ˳-ý<ÎÈt_üöYëÎ’áBÁ‚¡$üé©Ò.&>Ùe¸R¸¡3›Áÿ]u7üaÌõñ.R8‹zAµÓãvnXLûçpYTÓôª['ÒøUÒà=|¹üº*ÚÜOAŒ/–*CØ ¿?CÞêh67÷ Wáïx,V½ªŽ_RÆò^/H–}èÈ;‡¨=+mä káÕÊuS®ÉẇNbnN’²‹Y)êctž-yá¬JHw‡d`‹£Mó®úí}KÕ4¬«–!øWù…sYÚá•MS |•Ð§D Nß"æµdYDéÖáÄúÑ¥õÇ*1öEÒ.úMµü–r±ÀÒüØ -Á4õ5’KÄó}†#‘.§­¤‹R‹« -õS—¸­oïV‚•¦x{ì—?]Ž{øjA}øé{¶$õ†BÇÃh>/o†"U¹»ý´P‡SkwUçn0þ€8âàB¶ü¾F;u¶pL)#–àa–é†EI!ù+hâJXÓP%*;fÑðáCyê¬ã}ÝoÒ¼¿¡ɧR,çÇ?’˜Sl9Ò«W¶ä'j˜¸¬UÆ)šµæ•Ïˆ°gí®œÙ­cø•XÞ|‚qbÈ£!1{¼ùelÇgÅ™0Ù—^už…ÒÊç„D_ºö¡l*·ðd¾Flú`‹Í,¨X KTŒŠf­—;û²#q~hŸ7¡¤Y'ÕynÚsëÙ¤…Ϭâ¾Ü{äcÍ2–ô-ÙþŒÜ×’QîPt®ÄóðZs‡’„¼Å·Q·œêŬÇàâr´iÔhKEF<ýçn|Ñ ;ÃÎ*½½Æ¢¨O~TÍËiƒ„½• ñÑrQ˜šÂ\QxöórÅs]‰‡ÉK‰×Öt©RŒ{±þÄTq>°/í¯ èÀYˆ8~'}j+U¤5]¦tj7ѳø6²ÉOŒô%òœíüØe¡ ÿýkFÁÍÄI÷-IƒZÚ[fã犴Šˆï;£À»¹{ý£›¨æÜ 6pÂédʬ ÊL -}c6!„L¹âP’{ƒá;D¾dçqí¨ˆz`Ë2«f§µ­])ÊFDŠÜ›/˜[öÃð"§Ê^wHZÁ‘³"¯oD{¼_7züä5àb«;ýS@$ú¡W °²ZðDò¢òuÙÙ‡W{fMÞ2ó ¥I*,~…Ä©¹#xÖÖŠìz‰KkVßL™E›)¹‚¢ÞIXbÄSóùÈ»´[N[lº3íLX¬˜üçw^@dqór®©aœ€ÿˆÈ«^œ©úQÔëèŽ0¼KÔÎs?Å$#ÅEA‰i×&ɇݻÁ‘$Ò©ü¥Sy‡1;HèWuP)½N® ‚’¯W¹s×![PÛwÚä” ïÜiCéW.䦄NMb‹Õžçáâ—¢ VTOþNÂ^K_çÛ.€ m†uÅÎåÏ0úvaiÞAœ,g5YaØ‘â×Ái¡Þø\¥œÑÖž-©* -G%vA)ÁÃG¬³¤f‹o¥¿ñ`Ý­LF™óVõ‹ÔK‰óÔÝwø`ø?qŸàÁ¨Í tj@®ÈÎê3cçÈEÑØK×O»Õò:;?I ¡ ýÅ!˜t¿£dæ[)¹¨øLIÃ-…Í6mïÄ;ðëjoà'ø|Q¸>ElŠ§Ôþ"$+Ä/ÊÑótb/w6ŠäƒôÝ~pióÁ …§Î`ÕÊgŠ²g²:¡;÷Y2&Ô%ó -ž(—NÑÄåi¾%¦Še¿€Ù?ó‡ Ÿ›o†`ƒbîª0Ø– õÚ MR¾Ýmc,ÛtóÓÇ@6UÓ -Xá…<§õ0ØC"ôñŸjè(–ŸÚŠeÂÑ_{Ú#‹p7ƒLìÙ5`:ì¥~Áì4«¼„?ãL®Ý8Qó\‡,OÇ™ÒÀ;ŒmhT Î§µVÄ! ¿h¥¦ž;t*ê¿ôŸçq !·Ë,·*¤Z…ΟÐWŸ¼T‘*”„6C‰:(ç›ø9ÖɵQçQÈÔGæǦߑ_<Â9ç×YÛ­ÐÚºMîƒ3u"JL üüÒ¦Q#ÆV_©©…vYTóVKYðçæÄÞU™gÔ»ð¼ òù‘Ïz‘Z(ßC?¢1Ý=žâD®jŠR8€‘%öøg×Èži2v»n›„¸MM¢t QdÂ*l%–¿‡RS7ÌÖgj¿¤‚<ÿWßÊ}#ó9¼ˆ¯†eç^™êgÞÀ Ïõ#²z:Ý¢ -Ha\»¤ÿEH Ü„Ôçì¾f• %bA¯üIÃvÊ¥lPsw‰8º8Ö­æŽÚz1IÝûQgÜûØÍMw­©•—#ŠC$=ꤡ ºí=ŒjâwÔŸD*/ÜÒdêÅÎVÇ ,M¹·KÎ?ß´—GM‹-ø’S,‡rYŠãÙ§¢](?*¢/GØRèÌõݲOR毙(š:4 ú™æÒøxÝ`£BÎ ´;á0dˆåÍvøÈnç”j¶ÐŸôwoå*ra|&£p8`ƒ1ÕªJs‡!ùåækz‡Fíãeo—É1.ƒ&xªMC1b¤‚Ïæ·x±Z8~"xOkËÄ¢¯×¼lT²”XQ  Mo¸cRt¡Þ aY7_.äNéT±JëñM2AJéŸÃ=k§Í"Ž‘Zíë%a]¶•æsð¡|jËNèNÙ Ùcš|GXŽÈc|G¸[«‰5G¶,€/œR\n‹l_`m>üTO‰+©b0é³lG¾u8ÂfÓºÞC#ÏzÆ?/Ùel\‘´ˆW°‡Ý×ôøüº±Bì¯7z%ÀÀ·Ú(»w)ûV§â‚›î»vM†›»ó¨7Õ5K#;ù -ž‘õ÷¦ÝÔÆ.3±õƒ¤9ù]v\_17OnS{‡71¼ôtÝêÅËCgû!Ìõ’+Ì\\j·Äž¸,1Èßß62–e€Æ§¥ì¶£þ&kL¿ÜêWÎc½aàJÚQà&AY¸Úãt¼Å+«8•õàZõг…V|Òœ½ÅÆú¡/½99tsDõbÛ_ÇÜÛWp vµe>‡ÿö²fßé(!‡°~i0bkzì¾ÕIä­ÖÙ²¥©@ œæ‰R&ï…Ãi$|i ׶Π³ùòR¥ñ-f —ºŸ æžæœby,I꾟pXðØ©»›¦Æ)bF°¡K·b¬H‰ÌçubØJŽ%Yô¶yX}<¹ƒùÂ3éîe›i0Û~4f$­z6n/¾˜z¤ðvÀÓx$×ÂìÀˆæÑnmeõaàtçTŠEð­*>÷ËMÉCJÁ0Ýg¿WæWk¡0[(ÃL(”ÂÁÒ/;í:1J ÛÙÞ¯£ùþŽŠ'sÙìYœÑ$l“E! ÿŠ’úë}ÈѸ/áK#¨ÅA­Ž^Uë“Ø~L¿  Š‚±XYC§»¬þÄÜ¥¹¾a.áM\…ætrQ×üÀjq"Üm £ÏÖ¶î½-‡Tâ‚Û%JÅX›M³z¦¹7SÖ¨úf ï0´ô³V˜q7´2AÚ€úË»X®Õ’t•Ö3çfÚÌ3C’{Äc6 b€¸Pek8ÆÉ@G•«EWf¶rˆO»iuw‚xÜÒqÌÿ8ihø©à¬j›—UCÅH»Ê¹b?,£LrE =ƒ¹ôñ5Ý&*~ê%ÐÕc¾îÏòX¿,Û qBN)óYþÁµe¤*±~å`r|"ýç4[ØŒ¢¤¤€í·Ã|­íü·‚PžéÉ+Qu|¸ÃH:^R8MÿÅ›ª¾â,FU-°ràQ„³sœð §gVì5qï¢< êÎŽ -d9ÊÉ„™Ö´š1ìÏ¢ì¶1CZVXÉbןJÐA¹ÒKMöS–GõºwÑ×í‚cþ` È1aeÿñG©n¼õ÷Ñ™7çïŸÊœFŸînŸT‡êO÷6ήpMëgW7a=_ëŽ1T^¶Õo&Œ¦ßÓÔ‡\œ"ÚË •×)-E.eÃîi¨¨Ý·ŸsÿS„/ ü†š(Aæø+ÇŠI*ÎÓüúÆjÚˆšµmiäXý…EŸç¤9q/¥%p¯ëç As=ÜÙ}Ú•;Qlir®©ù“ ÿw-db&Ñ = ¡.b¸ÝÀ¹P¿¤àÅЭÑ#m„ɲ]¶ÇeÕù-÷uÆÇ9—ydrwÙxm£ ]Ô(IÇéÓÂQ„V‹I/öVxÞж[óVmyc~|´‹ÎññF-]£ÇõF$ô{Ç•þò"‡‹Èu*'¥æ/Tw)þñ/ ‰_bbèø†èh³H‚y5(Ô23^K~xɱVÊ+˜H©·1›)¿h¤GP~,”é;¸0ÇPÝîDÀ³Ø2y(ï³³RTkÂì¢þ•KÒíÛ/ Ôkz2,ƒÄUHH,[¤÷žÆ—ù­gÜBþîÕLM*g,ØG‰³Vî«LµÎ¸NÆ›þÜþ$î¯Di$uôìØ‚´)# 1%}>Ò-2¸ßL1­ø¿²s5ûvTëð$‡.2XPPù8ú¹ãsµïõîrRÎÁõ„¡Ï¸¨›â•þI=¹“ NOCÕ4rʷ鯲›lYõéjÀ‹¯>T1w=/&6‹ü9ìæ·äŽui]¹%3ÁÐ.{~Sé…*5s›3:Ô„Ù“ü*·ÂÖ5pFÍšm*sÚ»°©’aÅ:kïÃõb–^4M"s2Ë®EÑ8Õh¿]œ·R´Ɇ¥ŠÚh6lXq¦!JpAW©!lx’YŒ¡›=’ÍÓtúñPJ—ép —Ý@ÿÁ$]C2R7qlnOÊ—*k”(Ú…V¯{­²ÏRw#XLÀ#btJ—Ç-N‰zØÞ)VMÐS“Æ£<^É™¯ŒuK ¥¤‘îdçÖMø³[×ÐÁ÷ÛÞóÞkSÙèðËÄÚÎÍÞÕßßLØUÄ Ô:L}× ¤å°6a@/æ{н6X6ÿ]„Ë1_µ8.·$ñúëý2h¤ñ³O:þÉããhIU½”²·–2 Ÿð3”1®.øºò"îf/’’u.3éªZšœ˜­9µÀµ˜…”Û±†mùlË—‡Ï³'´8/Éu×µF±‹gKŽ‚Ç;`†øç:í·úGj¹ÃÊH‡õi¤ö@É÷²ÇÖiFèÅžo:Ë… õXWzŒ†˜g =çÇ$¥6¸i\üh¸Ôè¢ë9ÃËñüwÑ¿nÊm#p¯=7Ö8wK -†‚˜!Y5ª¬h›Âø IŸsëâÏç ùÕu8᱇¶QøFt“M$Ž×Óå“y'ž‘qŽ²ñÐEW fáx:„˜û;W7·H þ”ãWŽª—g=p.Ä"®¯·4š©øZKGœòÍ£¾O‡¯ wŽù¦Ú&þ¼­ÓØb½êÇý3ËÌ@1"†r=qoÃEó”ä×™v0™ºpݳ³Ë„ƒ"´Å¡‚’¶Éà#’¨¡Ü‹BÕÝkñ:FñHí ç絬¦æÐì âyPÞÛúóÐn#Z\›É72L‹Šã°-*CÌÚº§´á—µ'摃ì“Ùðú”ø>mã fË©¤7i0?˜ûû/‘ªªÚÜAñ‡®¸»¤ß3¶îew´°éÜÐ fL9QqØ]P ×·²¿èýöФ¤5BéÂKÖÔ( ÿRÂM«bd¦ñbÏJ®¿Ü>å#cãv“¯Š1‰«¹Ñrjºé×M —U;hKË’ºDÐWRIÔ®@$š@ì<‘ÍA´¨ÄDú&„IU©¦"ŸöÐ9~D”eùÖÔ ôTê¬ãœé(¤Çn.”.kðÿ´ ¥®ogï=ƒþ½»þsuFÝÏåþ¢‹·cËáäÖ„þ²÷‡ôŒÃ¢§gÖ™EBdeìºf|íö˜ Œ³Zw4Vçvž&Ê=®ÝÂ¥H‡,d|LÀâ3N‹'¹²7,šsL„Ô]øm³ n-@ܤ¬N&…¬$ÿÈûÃõKÐt|]Øl‡¢óJ>h– -’9„©²Íºi=ÿ¨nuþò©­'h¾N«˜4Õ 7<±–¹ûIíÓö†÷Õ=Î)iÇN{À$dQñãTË0¿‡h¹KÝçµÙÚÒ9äóÌèÍï@¢ËG¢ $éðfKvHÀÑ:ÓÝ&îûAoà `žŽ“DGO?Ìd¨ö3ìŒ Â̪i¢ì'Y"-°ö-¸™¸O-õÂ5¾4¡Ã­š6rMŸ4Éì’‰üË¢¸U9F4Ò±SÑU-ÚÆ -¡à£"Ð,‘gÏKîD~^ººÓÜÉ/Zn\Æ$ÿM­Œù–1ÄŒ)Á×BoÅ£E[âcQóh¨X*úêÊÒO>0”ëw+ÇœðaÚ¨F~¶zñyþþ{ ‡gS(êá9‡&IdÑX2)Fžb¡8ÚËp¤‹PX,Gæ(xõš2œS`º faje‰ªh.,w¤á«7 -cLÇý2 Ža®_š²HÎh2+ƒZj@¥üAnÆÝܧúœt`;æßgŒõµzê×îòx¤áï¹Ñ%–ž{æVp¨XU‘Ãí`ß Üv«%¸‰ø×îDß=pNÞßà`å7—Ò‡Rtó ž5•C{ -L­ysŽ>!qÓ±ôm«¢É‰Èåîãéoª#ÙÎÐ^?ï8–y_å¨õOÇ€«j;‚U㌠-¸Kþ­Óp’¹«³>ú±ägWüD³É÷?æKåÖôm#|žZ¡£ ¢Ieí "b0G`½t¢n¢J¯q¨ÜÜPé¢G08mÜ8Ùªç µÝ¯Ýã¤ßRf§2e±;$D/Æ&.mÈ—(Ân¹\çU"S#Ð!=7±æ -’Š±à÷+ÐáËú­qJ®lHsIw¹eòª zDëÞªÔ• NÚšO%ÒçÕñr‰½¯=W¸Ë„TF%:uÀ䀙2º,~u‘\ıáýú”oC}xù‘Žq"4{‰ -@ûÅ#\t£¼ó¿º™/K®Ÿ±UgR¯H€d~È -a«Ç|…Á|e¿g½¯ }ð”uT©ûa3s+³Ì¥•¿½ã1KÇ×1¼tþ~¸O`Ë’tyQ[ýÈ—M!›ªo®J¿¦½Á'‚K›ð⊿Sî|ÿ˜û\WAƒ#‰Å9Žê2]2Z³lp‰Fûû–†ÜûO¯†O &¤ ÜDpªV¦8ï…ñ™÷óìº è™zgØùÝg¢‚5¹’-É}P«†öž/£y+¢rC*î‹#&ï]:x"v˜rNµ4¥‹|ÓWíJû`føZ1mü-msFYîÐ:8[Ž–?[¯+v~ôðá²› ó&pÀs–K‘v£y¨¤}Üšÿˆ÷[â01%¸.cœY‰]j˜ª:Ç¿ùö:Qqæ!åµ¾©ÏÁÈégƒ¡¾{£6jÊÑõ({ö;¯`ôô«î½A$äÆä¥=ÿ7<‰†ÐZLLSXëFŠ}Db62×,èÿv;=›#˜‡Ãc(íˆFrEƒÎUA7Á¾ºñ°¤‘ïμ Ÿ³ËØ 0 - ·‘—Vh/†¸MƒD:•ÄÇNñü°†•:#Þþ>PLÇÒwïÿQ5GbÄñ Òû¦ªð@` Ìz(iVþÉOëµ6 ‘–`.¿ô#°Ý;Uº-AnGûnxf³lTÆíØHºcÍõ7<²q3)‘‘Ç~*Ún¥ ÑB«R‹Ï+K¥È›!®)w™øÄ•™þîêñþœCåaIyƒÎ³<–äxŸs²)¬•¢×®8zÅJäó £n©ÌsÌ™æEHœX-z/è=!s_å™B?Êóíwö;µŒ›ô7M»Õöî‚Œ“˜:¨’PGKÐ'¨MÖí éżAJN{QbÆu:V7^Ð(*mké«s櫬é)7,"[›CÓXåºñªÌq…»¡„GÂmb(GXT€,ùÅbo©ðp²‰Ï÷ÖnròΡÕ`‡ü'íÌI êÁ¤Ë­,,ÿ7üëlþ\K -³ãÆ Y§u ïèœÙ+èï°9¤- ˆíRUöMxöOþúíú¡ÅsC¨3‚Džú›„àyEà·£¸q ›—Rôd}ŽO± æé[ÞÄ™G`c·§;[‰^L–çÎ(Ön^v轈î½—’‚IA?‡Zdߦx¶ë‡0Þê5/„·ï0iñUE°—,¿"7ZE"Y÷­à ŒçÂëáÂBG¾8˜¯§µ#êÂ^ êa¹bÙø´­b÷VîæלuHmzæî -P̪è¥Ôqõ D·Š@ÞDzˆ‹òuçöÿäüfN?ag>-šŒÊM©a7šµjª)Ð¥0c1å˜Åêž&¶Á0®ï¸‚«n9¯ÀMæW )õêP&°C˜Ù‹÷¥J@eôOqðȾÿçx˜¡ù3ÜÏú\åušà$å·=„þ’»:0¥äí ¬ {]Û7°PPÎþm1ˆ’=pËvÑ18Zµ±ˆÀºrG»%±6.«ßÌ¢8Î8П«woZKÉ9'çêí#úG—ïj²X+§ÃšP8†»Œݸ¼0J…®D“-ýf¸=_U0óA­ú¤‰Lÿé-àK‘ú¥Ïã&zŽ^Lqêm²ù›_º´~æ9ö$ |òÔ«*9k+ôûÒ—eL€<•Ëu¼É]ý v¨Œº_rœ!¬ß§Ìèèn"X[,#ѬR;Ry\³¥»VXÀƒ±AA+w -©õŠÊ»üyž+¾û™%’I†2£mÞá­¥\÷¤uçó:µš¥WbÕ‘¹éˆ×h'¢IµCŒºÛ ¯uJ*ÓÉ<¸S!ÙÖdNPÂD)­çcÅkø2æòò›9b«Ë#¸ö••v² û›T“Z#¿FýŒcÄ̦ë»Éz,³ý‹ù¦Š{ªÖœÿV¦(Z‰šavQÖK>T«:œcn -JÎtŒa½µ~öB¿çn 8b¦”W»VŽn$èÍñ)4Üê¤÷VûËÌŒ;µ•èN ‰R£ËÐŪ§ýÿ×>Y¶5( QD‰!%ÝHîfà¨Ñ9º‘n i’"]Ò-Ý1ºKÝݵ÷þ‡÷Û}îùçÃyžã•”4|œ"ïñ`Ûý]_€ßÿ¼Ý²í\£$«:ê¯{¶F†Æ»lìÏ3¢?ÑL$G@Öóå×vmôãŠ#Žª×°tή4ËFIñê\é±¹†òã–ÊcLÏBÙðn¶²e™i¤ÿs;<¶ ¼ÿñÏ7JŸ¨ie/þ5÷“FàEZUuç!í¯îðœJMþ•³ŽôÓ }Ëß–~¸ +xÚ¬ºct¤]·.Ûv*I§cul'ÛFÅNÅFǶm۶͎í¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ú%ìí@ ,ŒÌ<5e E##SK{Y)‘ ௙’RÔ h²´·3y@S€Ðð퀅›› jïàádinPÿå ¡££ÿ/Ë?.cÿ@þF:[šÛ¾þ}pÚØ;Øí@)þ¯U€@È0³´Dµ¤ä%Ô’òjI ÐéoŠ.Æ6–&YK 3`fï°ù÷`bogjùOkÎŒ¹„Fg ‰åß0 » Ðáˆàt²µtvþû °t˜;ÙþÎd°´3±q1ý§€¿v3ûäàdÿ×Ãö/ö—LÑÞälâdéüͪ(&ñï:AF r;[þ…öf=MíM\þié_Ø_š¿(ÈÈÒκƒþÉe ˜Z:;ØyüÍý—ÌÁÉò_e¸8[Ú™ÿWô' ¹‘“© ÐÙù/Í_î¦ó_}þ—îl<þmÿ/¯ÿ¬Áä ´1cD`ùö7§ èonsK;¦¶Š”™=€…ùßvS‡ÿÀ\Nÿõ?{†æoF¦öv6S “¼=èoJõÿÊŒÿs"ÿHü?"ðÿˆ¼ÿoâþwþ—Cüÿzžÿ;µ„‹¼‘-ð_A€ÿ¸c²€.K“ÿÍÝÈÖÒÆãÿðß=5€ÿ®RhîbcäôßáÓ Û™ÿU„›‘ýßVKg Kw ©¢%ÈÄ`fdówVÿ²«Ù™l,í€5ý×8 ,ÌÌÿ Sµ°4±¶ûgøìÿ†€v¦ÿ½ü¿2ý«x¦ïÚÚÚÒòtÿû½ú/?Å¿úƒT=€€ÿ?‰†œ½é.þa±wx1°p2X™Ùÿ»¿›Åçÿñ_D,ÿµ–39Yºt˜™™Y¿ÿãó_+½ÿF#ngboúÏŽQÙ™þÝdÿiø6qqrú«í¿Îýߦÿcý¯íºMÖWìMxƒ­Ò2ÓAu¸¹#Sb:},#?JU‹ +ükì{ýÒÂv¹+ ?j06Íðün÷X>wø<”¦=ëñ¡êM^çùPÐô o}íä¤; +dÒ/EN¿ÐˆòºY’ÝÒæ`V?Ú›RRÖ/ù€!žédu‚»y¦ñ§p-ðÇúòä€âk’Ú‹Ý…Ö†QWx~ñ5ñôù‰jh|td¸÷ºÿ.'ž’× +ùk¤¿c¡ ¶Z…xUó«óö”ê&BÏØ>Ÿ¿ù‡PvE‘妷‚ïÕàO͘ƒá†Àl¬„ÔÈW"æþx²  ãŽïIx%Q¼Kâf†Îo¿møWcwúŸò‚‘ßÄÎ׊ü;L§Ö‘;æT° £6®ãGvíÌÓ.õ=n¾Õ.7èX¬JÌ[ÃZUýùbªÜÁ+_®›xF»-b¨À( ¥ã©ƒw¸ÜÄ$Ì Ó… (_,Ó ¡Ã4ŒS4r-Ù“©¾ˆ3‚2Ž‰ŒŽ$¿ d­ô“„}¼Dä9%G¹<á¬;Ö6®£ÛA‘œ´Øpÿ (wßöìWŸ.S?62=ú0z‘ßãš@΀ƒëì˜ç3¹>9È%æÒðOÞ`zŒ—6"Aïܪ“³ÖSª Ò¼qRÉŒ!ÝMë–›Å/˜6 pöpò>ÙOBˆÁrêO<õlb­‚‡ˆà\jÑhŽ!··qè™•íº”…u=5±—ª——‡³ŸG¿:×KÎ{òɵÅéKœJC·ÒBµ¾/)qpgŸ”­µí‚ ¨•ŠgœuºœÚ]_ÕÞ´c¸Cûô¿Y‹ü n¿3Ç aÉ»ðSr°Ñœ¨t3ýW å +o(:¨Ñ_‚å¤ñOFõØI)Q’l¤®‰Í;TÜ*kÀ2ñ´Ò(ÏË2+­Õ»ÐÝé¾›äAM¾×Q­?A"tto¯$ÏÊAœÇ;tÎB¾ã¢ü1jþUxq¨eÓÒäþtþcÉTI€3!š@X芆eÎ^í'a‚†:U+“òÀÅ$˜ ‹EÕùƨÉMæ[¡'ûnŒ‘µ¬æ•ÌCÁ^.í'R‰ÃÒ4†„dØh-yÅqC‹_·¹£É‘­5R^ôÑza°Òµ:zàø–AèÝgžÄP5Æ –¹x„¾SÈîÑ*¿i&2O-8(cóCݧ†l³2;.žúõC× ]zîW{r{]ÞŽQYz?4éZ_)gæ:}oãÄÒOaËa‘‰²`ü,³†ñëP¤—}SUÍç<[[Æ©ÅȦn沟„“5·³Ú’£Çô–ýõî„}ÇÐùsI Œ |dšK®s¿aKŒ.|%€:GÉ”ÜO}©P¯z-$£×Wõý]1€´Ø.Y" T`Þ3oÞì¥>ˆ‘?­·ç?]£NA¦úAÃ"eåªÛöñ&uãµ4ØÝêçñ+)Æ/²ñßôê•ñÕ°ŠN$n›xye¾’‘–ãôœs®bŸhÁxE¹²ÀŽÀ½òÃ&ãç£ú«ò¥½Ú4¥ˆ¦ó²ªÇ!‰}IïNÍÖø­J¿È*é'ôƒßC㠪ʛvÝx Jä Óc‰ú6¼ê ßs2¸µ3_„1õ4Å]°Ñ¯Sô_ +a®;?o®åü+L7O7¹uv¤ÓuÞ̸¶çŽNóæî™Éñ¢ÊÏC°¶ŠæЂÚ\„P¼®ˆ™ß¢’ 1âÊ¢Þ zO&É·c튩È—©7•Á¼G}Žúäñʬ!FŠd1‚_mÅ€th¬×Ÿ2°?X¶'9­1îî»(RŒæËÜF1”P (Ê·úí¼eôðÛgã‘Ûˆ}­H}öE÷2OöÑgí +‚7I•{œP¾©3½¥Œ/Ä[Ö[ªp«Cƒ’½f±cB8|* ×vÞ’(2M´:G‹çeƒÀü‘H7þ5'is=½ó{LXwÜëiì>Aº„ï=Ëo?F—Aµb©ÜħcL·¼ž…×›ÂY_‰g Ï¿¦©èe‘O5ÙÀܧâí/96]d±ÊPàH]~+B†<Ô•R–…€õ\ͯ©sðÑþrOŒ…[’½¸m+þ¶ø¶ý©>þ½ØRkn„´VÁÁE.ÉYSssF‘kÿ©Tââ.ŸŸ3hÈŽxÒµ¦ö–Ñ9õd¨HÎ6Šõ‹g :M6:mÇÉ£X€ÓIQ² þJ7»õÏ|³ý—9wŽ>«ža^\ƒlEuѺ…ùŸ“Y§7 +á]ô +ØI:ý}Ÿð…îŒr \Òv-`÷’¶­»j³œ³·í} +]rSÓ|¬U]Iƒsuoé$½9¢c÷U¹“äx°Ð¶¾Ø¤Û‹«bÜIÅQ¶?³…á6.S¼à‡n|ÑG{×BõwK¢ »™(‡§òq° 4Nqéåé»iÁ;í¶¹öU‘PÈœ¯æxÊ&ô•¤1S¶2ó¥w\·+zê›DJ´v¸$ÌLßòÈîk>^µ².L±¿²!ð4^¸“PÔ¿¦.¬äïŸ(¿'Ú¶£Pb¥i‘÷êzÝûDUoÀõQ +0E†IÃZ^ŠÿŽ¦Ö‚0›2%“ýJ§^ˆVÄÉk"y +4ÑÃ¥Ë2š=¥«UkW3G­{—ð̪K¦¾(ÞØ–WŽÓÓüý®9’ã‘<džâö—ŠäÓ^Rƒÿ°PŠÊ·Zl—›Tj­5¾9.¢"¥³f>89ùIÆvp3Ýé9çáCDq €¯¹/W4=¹¶dopso´‘‡À1¶¬´’møÚÉ6]ó|"쮘V»ÃJhO5‚°2Ó˱‡7Nß¼hC;—ŠZÒ›„ä?% ¼]ùc¤½¼qÈ Ã«#h¹ilÀ²ô²XØæþ鞧äÓ%ùµ¢(eqB•çPÁì=Ý„ÜÁ9â‡Áœ%J œîNRCèIªÍëKDQZ³Å u¥‡HÓ£zì¥üï3òt®§,P3Žü:]šÙâëIcª¿W±ÏzA~Þ CzzÎñ0¢®4 p~\+üø0¹ÿq}ñ~}é +®@ê#^>«\×Ȳp‹Ç*, A_ÓðtÅ âqÙb1?&}=Ä2ãÒ]óð€ÆžoÑG¡PL.]Bª¢E3ý7z®Æn¸c<®žepNwd¶\ñú"¯kÑ;ïX¨‹ЀBgN}®²ûàóÃÌòhkrŸÀ¶Gâ{°l:&j‘ñ™û ^òÕPkNÉ«±LÖñü«DÙj‹+Y9‚dÌœòÖ„Ê—6<€ôVcŠ§‹Íš‘Ýþ³¥SÕsiÚÚ¤Ûò>vü[Âë^‚*žÝ½žVgªT=gêï@!»c)ƒ±FÀh…´1l-òZ±9±lH@±Ä˜¬_×m¦ŠæiwÖJ|¡ÔÆÉ’¹Æ¾x9›.šþÄ7oˆe!£cз¥Ý†B߬SÖûÄñ ¹eéx­Ì- lnœk +Ð"$©p@zŸÖÐGƒ›‚·^_fñžtDPiÂñøËɘ.yÖÆÐó†·ÅDã^!¡¥ 1âóÜ,óšªiÖc.â4£÷LÛ}cN6\ÈÛÐC•Å?ÐÖÔØ5÷Ü tbgipO ‹¹shÛtƒt{ J'uYÌ„ÕÑ’Z6è¬wßù/NÐÈy0¬Ö‚;g‹ÖZ0….R; +*Èí­´âT¸žfWÓ3Õ'7)ÔYß=á!`ƒSé‰7ˆv¤U¿È!~{£Ø1Çœj÷àºßŨžG ]¬ßg•,½[ W,{ukRÿÔj•Å‚èÒ<’…æp_íÖ©ÛRV·((þ22ߊvóÇÝl.ˆÏÜs/¬U¡¥&‚ko¾÷ñ@ÆÇÊ5V…jj¬a `N}ÕÆêŽáOúŠž&#÷¦ÀuÓÛW™{päc³ <4Éó“¼£Ò7J}GáæÁ†TË$äðÓ01Kp"¨?¶Qø¤ô4d¿x}Ks¯c* ìh÷§‘Îþ#XiuÁ7nêîØŸÕ©è|ÓD†3¶•ƒ´QŠÞTGøÐæE®Í¯mÂæ°!ÀbXÉ´2–·±R›?hÝÜö=m¸7ë6†ˆ¹o'“ðlø¥gàëè”ÎözÊ8‚lL >Å\¥*ÁŽéѾß1‰àÚ¶"NÄÈU¶¡yÞ"åe/½üõ´9ÆhÓ¶ñ3+ÞÁÊ+3–”RÚí4p±}µ^säwö&òGN^9×t§Îíd÷âË÷‡y|ܨ hͪ“m ÛøŠY‘*gSÆŒ÷lZ1S™çÛà®2j™çꕧp„Nݽ™_î¿9™åÚ‘±£üŒ$4W‚ÒÜkߤ¾Zì`•@BñãjO®õVa’tÂI¡„[Lì$U ;"”¿¹B)Üþ”ÿpª²ïèîÈé~Øî dxpv’K# AWE•\åuºïoŒwoϳˆ?‹]ÿyž½E™À·ÁÑRY£_ Ÿ4¢àÏ7©£•#eà«È¾oŽdÞh=g!…£0’H¿œ…lÖ)|ÿPíCð©ß£ÅOÄ…3íá±YQ¡›}ÜêëÏ +–ÙýÉvuöù‹ª¥'NP˜eÏ ±è,aè™nµždØ ±Ð dLÊ|tHo­œ„™—°Þ‰#ü]ËÕ2‰í8é”=lÎMK¾ü)Z­}Ù¼WÆYXõÞáŒK8~ÙÏ\F†='h¥‡;ùk/E7’r×y'4xözUZj +SèÇ´FÞ¦…ÛÏΚ13±©É'æztƒÞm~ ¹Hº&¶Ñ~ñÍhŸŠpu¢h^ Âc0xÆ(ë7\×[:‹¶q¢Íš-µj“’"z¾r§YJ÷-Ù6ÔïnnÔãõÍÌI·n ïS7ýö4¦¦ì¾•ôÈ@؈F9x&«s î|×`pu¡eF`{i~¶ÙƒË!$jmJt†œ/üaâ\èÎÅNià"û*±z˜Ãt3¬Gs€µ/Yn ~³1&¾âÆ0tYœVáqð(ê™w†—V†Ÿ÷ :·ÉóÇotxøí…*˜®ñ§õ‘á#Ms9½C¨9ðtIL³òXˆ×íŠçÝ€îWÞ«Ê.­’Âå݇Ӝ,7§©Ù7‚ÆQƒÄéèd`³Ú³“t÷¾k œM÷ûx}Pïïo\5Ö÷ôC§Ÿ®Z*ïÏkm Rã̽oÙ° ?1DêñeÄ'Ÿ Æ à6…©jb6LÒë¦Xšá|—?÷tKÒ:6™Ëühï;¬p€Gˆ*z µ-Ox—oÂܽš°¶çÈÝÔÆ Ñb„,I­£±½é¸NiÉõÇ{^èd–PL[‘îc±Ø™Q¯dZÃÙ&ËŽA¯î/Ú;!òùpÁBßÙsÝO‘ ΃3ײ³2¨%ÖuzøÄ[cé‘Ù§‰ÂïŠRfUÔgçúW ·­ºì;§Øø8ÍLŠ¨ék˜"­¢¬tµ2¹ešò K¬ Á¾9c $rMe©€€Ô˜6T¡Ð‘1­QçTè{O–ÅË]Ñ’f³ÕÓ9-©þR[0£Nk¾·ýµ„ ŽÏߨNïçÂ"?Gw~\“¬…XH”ã\lã¼Å_¡’”*GwQQBÁ9+§ªÁ¤Â¥à(-n›_Òx3“mì‚gU‘wµéíâߪv6ºÈ¯pÓ[óæ¢ I´2Ö6ß ‡×ÇëŸíIGûƒ—e<ªð1}xçªÀéž~ôá*@O€ô…¹É¶s—ê>‡Ú{#ØËz߈¹ç!žå<×Ó‹¦g=‘ÑGHö'²Ôe ȱóŽõµ“:…Ÿ‚ëR,q@õû´ùüqhŽN\VeÆdh„ɘB™Ám*QZ!cJeåMj…Ïòá#éå8;¡H‚W¤ÃÉ¡Ûσy¿È§éÑÉq¸ÂÉOÀ¦$*¼”Ö”¿þCŽ¡ß—(]b]uHíØ;¦Ý§ÇÉE‚þK±ÛH]ØX‘IïifËS2phz¾‚ßA‡œóÖ tÝب8ŒÙ„ljÏþqË» *Ø‘Eæ6óø8¥”JçÂ?Kî7ß¾õ)NÏT‰"¨VÔÏL>+ö€Ã¥˜Ìþ†e-mί`$T^ÅìE¢¶p&¤91fXhýüúQó¸kc\#BÐ×îû&“ª~ö¼þ,tí]ª•wÄ1y¸ÒÍÕ:… AuÌÇ× ß2ó=—ûéÂ0ƒzV7P¦©O>©¡‘*‰B4ô¼&3ÖàïD×—–™iWí¿U+L´œ±§f¿Z= BB£¡s 1ÛðþXÄòj€Y²÷¨isæ /æ +¾zT…¢gôOÿ’‹Óo0-šÎ०²Š˜hÈ›9ÉÈ%m-ÜC7‚µ$©OãzAp9%mëƒf 7ìÄîâºÞNÍíOKB¯Wˆà/°´e¡ìÔáo~f›]{ˆðEŠ˜*ƒûN·G®²ÎÏ«Eô[‡ðQðu1ªÑÃ(X²ÁZû¨Âx5¤ 6™œ¹¯$ß's.1߬)Ç^r‘au5nUG‘áŸÕÔ÷TÁzÀ½¦¬ÜÌ léLd i\”aÐZj(ô ¬õ\œñ,ôS–W2ƒo³‡CÜ`e­æí㦃F$êuÆz{†ÂÎK!K#$ +bÉbðúuÙ9ðeÞWsS†ÚINñ­E$ŒcD3>ä:ÝÔ%žÐçIr<Û½;åµV}$1â°ð ô£õmõ“¶)L£BòùP-PîÀ™ÑD|=ÜF—dã;õ…R^j ºßsÒcþRÖ'šîϳH¥¹¼+jìF+ò˜ªB~ÈCgÙ5ûë €UÓ(6û˜Ý#̼vÀ£Äòq¥þ…äž“ZrtjŠoe|‚+ gÈb ÇXxÞÈÍGŸÆÜ/bøc§èüv+ø²òkbˆ BFÛ;l'a¡|E]éü×6téC¿×0q‚M™±I0êÇ`ÇsZ+£.ÌgŠÊ)ùcs³½-ãVé¨Ý³·††²¼&D̘ô”@¶Ý”ï³Oœ öø]¥ÿ]ƒÒ˜,±Î +q œp¨FÿØ°ºyóë+45Ä â$½IWªÛo6sµPW‚Rýyª Ùéé8Mâ-lvrΨ$–³ÔÒ+ìLå×tåý‰c8¥nHÂÙ¼@Ò+iÚèÜHÔ‹¤³!«¸Çqz { ­Æ{¤lï +Çp\=Nü¬4·· +d;uÌ’‘ÜsÛ„÷_]e pxßÁÀ: Ïhâî|k±·¾ö'nTdÇ2å2fu·0¼e}XÇc*IÃoô}xFe6;acÑÈîXúúË¥áær,–êœh¤/º9;`©®GÅ–° ,ÓH>%Oà"û|?éJ3iὓQ!Efb«èDCõñd±Mðhˆ–Xµæϸ­6ô#ñ†l»È…±ûsLóæßgél;µñÌ#% +‘¼GøCAÌÑð}¾€¶6Ç¢³V»þ\ƒ diKB´«ÙQïè.§~Þ‚´ÈÌ=ìäm’yS$ý-Ñ¥ªŽ¹P‚´)keÅÓnM¡Gã¶Ëu·5%¬_ØEçMŠKÒcƒ†Œ8 î5€Ã|5wìóµ Ô"öů£„²3ÇŸ³’œVÉ÷ + žóø.Ѩ\éd¥(š˜>¯–LãPÚ  Ôš3,¿Ô16še¬»Û²˜BG»OåÜÏænPƵW‚®eoÁP×½'”@çßÒ KLýº-/ÞJ[ýŒxw]öG8förˆVƒÉsvÄþh;Ìšé£HÛFÏæ8w&_a†¶j¡ã÷q´r©Ý}~9ÃQ‡³¹ÃñQËöš‚¸¸ÅÒRŸv7Ý/샃ð+B­gN2ãâjÒz ÂE‡`õfQ •8{ÆÁ9û»¨½qN5mc¯ gÀ<Åj½`ž@.vS;눂DÊknDÔš™˜±ºOZÖµÜÑ–HJ”ää&¶[óX= +<ÊîòÈYŸ­ØìZ Ê£÷íé™ùÈTxÇSêhD¯Óe{Ð’ÖMÂÒé*’­D#ôTtهͼÔ<~WêšÏ¯ ,Äѵ—úHLÆücœcyµ¼‡ÅÒîÇ<Ï EÇvž¹tú“H;:±[æ¥@B³CoјI3åÕŽ+´s«©Æ?™À“0”VðÍíÉ ¾¹Ùì ʃ¼ãAœ'7¶ÆÁ&¢GL6öÝ¥ +Õ.¹YO¬êªœ©Û×™¥ o;åE0 +P|¯î ¾§ÐIëg°¥ªÔoKýd/&úÅÌgëVÕ”ÈýÝž¯Û#tƒ#ÖÓ^3Õ%Ns“€M”’0¨éa|Ê|ɼ}FŽ%x\Ëg¹bÓõ=¼í"…sUÏâ9̯ԫ{1K¼·ÉfU¡Ï7 +ˆçŒ¼™¬ï›»E|ÜÌÐðXuãý–üÂ˨µÎ¯ˆr ‰¯ûV™ÆZùHmQE,úïïYü(³»ŽáÚš&„—§Æ…óøtk±ò•Î¢AwÅȘ)ãæ^ú¢X ©EŽO™æê«ï_•Ü”p8ý°³'W#§ñ~žõœÐÙø5;<’ŠÚæ_)W›/’É\x)wüˆ5Ú²w9Öˆ.Ѫ#yÛ2gF¼_úncóAºíç)F,ó“®ûM~e9û°Nsû£f쓵5ª:PK÷ƒµTÐ9oYö €ª}$:tñ²ld$W%‘ȳWCxHáÃEO89!×hvß3Ó(¦#gŸåÞ[Q€Ír‚Ù†4ÇcððÎ÷­ ¸ÕŠ‰„ƒ>zLár—õÜ[ùíVU§“Ž-J ×ü¢õ¾‰ÍžÞ¦Ù×(ÄmÊÚ&®ÂÝ3È£žÉÓ#â »þð%²ê&Ý7ê56qã„öcI$¶Öu ©%ŸÛ¾µÕËVP¼ Õ°ãé™ØbÕgK/4 þ} iÅ0|bª(çÝX#Ïï,ø;ˆxšcRÎ8Lµj!î »óúV¥@L&K!‰]°UÄÃûщ| ævYlNæ¼aš&¤hDA—ÚýmhsäÙc€¤³W"â{Þ‰569L í½×Ë~´œ‡ͤÆ^¡˜ Ê4eU³£´EÈ“&phŒÏîù?è™X}}¥„Ù8Ãm¿b;†±ë ×ÝIÀ»[t<Ž‰à„ºêF‡ÄÜ6GbftwþžT7$–äomw|[$EV¸M—g[úyœ‘é±øí³Öƒ%Õ‚CIøÓK¥]L }²Ëp¥pCg>ƒÿ»ênøÄê=â]¤põ‚j§Çýܨ˜öÏᲨ>¦ÙU·n¤'ð«¤á{ørùuU´…¿ƒ_4,U†°;~†¼õÑlþnî/®ÂßñX¬¶úU%~¤Œå½Þ,/0БwŽQ{Ö:ÈÁ× ª•ëf\“ï0˜ÄÜœ$e³RÔÇè<[ò X•Ž+ÈÀ'Ûæ]õÛû–ªiX{sV-#ð¯ò 5²´Ã+›fø*¡O‰œ~EÌkɲˆÒ¬Ã‰õ£KëUb실]ôšjù-å*bA¥ù±‚iêk$-Vˆçû G"]Î[I¥7Ö5ꧮq[ßÞ­+ÍðöØ/º÷ðÕ‚úðÓ÷ì2*Hê3Œ„Ž‡Ñ|_ÞŒDªrwúi¡."§Öîª ÎÝ/`8qÄ? +ÙòsøeìÕÙÂ1Y¤tYv~ +³L7,òH +É_AWš…*QÙk4‹†ÊSgïë}“æý ÝH>•b5?þ‘ÄœbÇ‘þ[½²%?QÃÔu­2NѼ5¯|F„=ktåÂnïìÈòæ‹ô'†<³Ç‡_Æn|Vœ “mpéU÷YX ­|NHô¥kÊ r O6ágÌf¶ØlhÈb‰Šµ°DŨx`Þzù¸³/;çöyjiIšuRç®3·žÝAZøÌ*îÇý±@>Ö,cIß’íÏÈ}-åEçJ<¯µp,IÈ[\puÏ©^ÌzüQ\®‹6m¥ÈˆgðÜÍ/|gÔY¥¿×XCõɪy9m˜°·r!>Z. +SS˜K" +Ï~~C®x®'ñ0yÉ#ñÚºƒ.UŠq/öÑŸ˜*Îö¥ýµ4 Çï`àIm­Š´¦Ç”Ní.zßF6ù‰‘¡Dž³¢,t°Í(¸™8é±%iXK{Ëlò\‘Vñ}gx7wÏbðb¬½‰jÁ½`û'üNf ÌB Ì´Ð¯1fBÈŒ+%¹7¾CäKvÇÑŽŠ¨'¶,³jvZÛÚ•¢lD¤È½Å‚…U? /rªìuGш¤59+òúøF´'Éûu£÷ÁO^C.¶ºó×?D¡ú +Ë!«O$!*_—‘} qufÖä­2¿ÐAQ”¤ÂâWH,‘Z8gm­ÈÞ¨gA‘¸¶vaõÈ”YÖ¹›‘k ( +á„%F<5Ÿ¼K»ç´Åö Û3Ó΄ÕÁŠÂ~çD7/âšÅ Œˆ¼êÇ™©E½ŽîûFí3vŽ,€Pô½4zù„Pp´_-¯³÷ç Äš0XR€©A÷?Jf¾•’{ˆÏ”4ÚRØlØöI¼¿®öõ~‚É…PĦxIÝâ/B²Bü¢=¿A'öö`£H>Hßí—¶œPxáü¡ZòñLQöLVg*tç1KÆ„ºdQÁåÚ)š¸|"Í·Ä´S‘¢ì8ûgþásóÍlðAÌCÛª¤^¬IêÙ¨·m‚åi—nqúĦj¶A«"¼±ç¼{H„#þS ½ÁêSG±L8úkO{dîf°©»ìOǽÔ/˜æ•wƒðáÇ`œÉµ'j^ëåé8Sx‡± +Ôù´6Š8ä­ÔÔs‡ÎCý—óÓ:2±èë5/•l†%†ÖhCÓ˜]¨w'hX6Í— ¹Sº†U¬Òú|“LAÒÁcçpÏ:i³ˆc¤ÖûúÆIX—m¥ù|(Ÿ:²zS¶ÃÁ˜¦ß–ãòßÆîÖjb-­ +à §—Û"ÛX›?ÕSDâJªÌGú¬Ú‘o°Ùð¤®÷ÐȳžñÏKv×F$-ã`÷5=¾¿n¬ûë_I#0ð­7Êî]˾թ¸â¦û­]“áæîüêOuÍÒÈŽF~‡B g$dýý…i7u…±Ë\¬@ý iN~—×OÌÝ‹[ÆÌÁ±À]D /=]¯zñòÐÅas½¤ÃZ3×—Ú=±'.K ò÷·Œe  Âi)»Ýh€éÓ/÷:Ä•óX¸’v¸IP®Î8Ý#oñÊjN%d½'8D£V=tàl¡5„4go±‰AèKoN!ä.˜·6 ÷8b¿Ut?ãiÛCœ¨ô÷·Ø1ˆ¾ØÞãQÄ„_ºûH+RÚ>¤x3ýà‚ý7°™\ ¡Ð—lšj(áŒ]UÈ£ŒdbÏ2GT/ö±t=À}üw`Q[ésøo/körë—#¶¦Çî[ý€D> +a-‹PšêÊi^(5aò÷Þ8œÆ—†rmëÜ0Û™//UªŸÑbVPp©ûÉ`i.‰ –§Á’¤Þ¡áû ÇϺ»ijì‘"f[ºtköÁŠ”È|^g†Í„ZÏš¥2ÝDÜyÓ—À>ü¶6•thâàoì\Á +z¤ûŠâuÐyçøé›1irÝžã‘é£äX’Eßa›×ˆÕÇ“;˜/¼’>ì[ö±™³FcFÒªgãö‚á‹©G +oL1MFr-ÍŒ™a=áÖVVFÎwÎ¥Xߪâs¿Ü”<¤ Ómpö{g~ű³ƒ2Ê ÐˆB),ý±ÓÞ¨£Ä°íó:šà¤x1ÍžÅMÂ6ÍQô² Ø©(‰¡¿Þ‡û¾ô0‚ZÜêä]µ.0‰íÏô "ì° è+kèt‚õŸ˜»4·7Ì%¼‰«ÐœN.êm¬gÂݶ@9úl›ÞÛrH!.¸]¢¤QŒ±Ù4ëgŠ{seªo†ŽCK?k…ù7qC+¤ ©o±|ŠåZ­HWiý9ó‘qn¡Í½2$¹G-LEøbµ˜öbo…ç m»7oÕ–7æWÀG»JáoÔbÐ5z^oDB°w\<à /r¸Š\רrRjþBõâÿÂèù!&†Žh„Ž6‹$˜WóˆB-3ã½ä—K`­¼ò‡‰”zó°™ò‹N`zd åÇB™£+sÕýN<‹-8‡òŽ0;ë)Eµ&Ì.P¹$ݾM€ñ’@ݸ¦/Ã2HœQ…„IJEzïe‚q™ŸÑzÆ-tàQÍÔ¤rÆ‚}ô˜8kí±ÊäXë‚ël²iÀDâñJ”FR‡AÏŽ-H›2²ãXÒç+Ý"ÃðûÍ Óšÿ+;Wó¸_G±.OÒxè"ƒ%u°¯“¿>Wû^ï.7 åòƒ  ž0ôuS¼2 ©'w²áÁ™ãi¨šFNù6ýUv“-«>] xñÕ—*æ®çÅÔv‘?‡Ýâ–Ü©.M +0·dæ´ëžÿÇTcz¡JÍÜæŒ.5aö$¿¥Ê­°D ÜE…q3„f›ÊœÎ.lªdX±îÚûp}˜•7M“Èœ ÀÓªkQ4N5Åç­-…@²!G©¢6š VœiˆR7\ÐMj„dcäî€doû4~<”Òe6äm?Ð0I×€ŒÔK›ÛS£ò£Ê%Šv¥Õï^+„¬Æ³ÒÛø!&à1:¥Çã‚'„D=ìà«&€©IãY ¯€äÂWƺ¥„RÒŠHw²ˆsë.üÙ­gäè÷mïyoµ©ltxebmH÷fïêïo&Hì*âj]¦Î¾kÒrX›0 — ó=ø^‡,›.Âõ˜/Z—[’áXýõ~™?4ÒdÈÅ7€äñq ´¤ª^JÙ[K™†OøDÊW÷ãºò"îf/’’u.3éªZšœ˜­9µÀµ”…”Û±†m ùlË—‡Ï³'´4/Éu×µF±‹gGŽ‚Ç;`Žøç:í·úGj¹ÃÊH‡Íi¤Î@É÷²ÇÖiFèÅžoºÃ‹… õXWAúŒF˜g =çÇ$¥¶¸i\üh¸Ôè¢ë9ÃËñüw¹UÇüv"¢îjÕiÐS+4ã%⎩ñaoä{Zg=!$Î3åõ1'Éê\ªWä¼sÖ†Ílâ4,N9Ã4¼½þÄ‚;w ½'U‡z~”Š¡+É6ÉÎù¸©õ—õ€ðËÂT‡4çjôA¢ÞŒ Ó[‰ôïqWűd‰¶ÛŸ€¢Kªî1šÒÉ|Ö´øÐÉøKœ-`@XƲœ»Þj”§§¡øð©Öµ„ËÍñšüÀ¨ɯ¡žßÒ #ZVöÏeÁr²lã[cѽ·aײ‡xþѿnÊí"p¯½6Ö8wK +†‚™!Y5ª¬h›Âø IŸsëâÏç ùÕAu8᱇vQøÆt“M$N×Óå“y'^‘qN²ñÐEW æáxº„˜ûA;W7·H ”ãWNª—g=p®Ä"n¯·4š©øZKGœòÍ£~O‡ž¯ Žù¦Ú&þ¼óØb½êÇý3ËÌ@1"†r=qoÃEó”ä×™v0™ºp½³³Ë„ƒ"´Å¡‚’¶ÉG$QC¹„ª»×âuŒâ‘ÛÁ.ÏkYMÍ¡ÙÄó ¼·õç¡ÝF´¸6Óod˜*º–'&a[TF˜µuOiÂ/k1ÎÌ#Ù'³áõ(ñ}:&ÌVS1Ho8Ò`þ0÷÷_"UUu¸!‚ãÝpwI¿glÝËîhaÓ¹£Θq¢â$8²»¢@¯oeÑÿí©IIkŒÒ…—¬©Qþ¥„›VÅØ\ãÅ• +Ü`¹}ÊWÆÖý&_cWs£åÔlÓ¿› +.«þvÐŽ–%u‰ ¯¤’¨]5H4Øe"›ƒhQ‰‰ôM“ªRM-D>í¡)rüˆ(Ëê­©è¥ÔYÇ9ÓQHŽÝ\(] +Öð5,(x J)ÜÀÞÁg0ý{wýçêŒx” +Ô&‘#àfîÉ×kBq‚ÂõÅ{à1æˆè#žw­KH×\’Ëœ!w[‰‹Ë)ƒ?q[ø,YçÔYÿª²‡¶Ë•:Žè“tG½­3èÔ* þmèÊžÜ`m +(¯-üü2ÉòFM:ãM¨sv¶Ä÷Эv"¥}kædJî +×cºŸËã+DoÇ–ãÉ­)ýe¯¶ôŒã¢—WÖ™eBdeìºf|íö˜-Œ‹Zw4Vçvž&Ê=®ýÂ¥H‡,d|Làâ3N‹'¹²,šK°#L„Ô]øm³)n-@Ü´¬N&…¬$ÿÈçÃíKðt|]Øl‡¢ËJ>h– +’9„©²Í¦i=ÿ¨nuþò©­'x¾N»˜4Õ07<±–¹ûIíÓÏÕ=Î)iÇN{à$dQñãTË0¿§h¹kÝçµùÚÒ9äóÌèÍï ¢ËG¢ $éðf+vHÀÑ:ÓÝ&îûAoР`ž®³DGO?Ìd¨Î3ìŒ+Â̪Y¢ì'Y"-¨öíG3qŸZê…[|iøb£HÇß·¿lè t#æh'¯¶ßk‘¿ +ÎòÑÁÌûøjTL, +gRH`\Âê‡%Aþ‚¸ÿ•LTa†ø¤6T:ùQè^·.¸Ê´DYAž£µ$À<ô{ÃiçŠKl¿XæŠÔÄ%ã»<ºr£²‰ÉÇI§ßðÒ÷®ó¥©XX;|¨‰êbuÊ X‡jÂÕX£Ô†ØÒïI7Ù¡™ G;³*‡Òe÷ŽnInî‚(¿æ2ÞÅ¡æbE§4!0{šÕ?ÞñŠ”’nô0g™²ä}»O4,ä]Èhö3g"l˜\¡Ì±Óp•Í»6²Z“šÿêŠ/¦¶ƒûeÝ$³®"tÕ¤È:ôƒòõ ‰›îxÿœŒ¥?Àh[MND.ÇðL7|SɶtÑð„ö&øyDZÌû*Gmpr8\UÛ¬gTÀ­X +h†“Ì]õ5ˆ%?»â'º˜M¾×ž/•[C2°‹ð}j…Ž.ˆ&•µ7ˆˆÁõÖ ÿ‰r¸‰*½Æ¡rsC¥‡Áà¼qãl§ž_€Ôv¿vwŒSX~K™Ê” Ç›¸´5"_¢»åzW‰8LB‡ôÚÄš+H*Ƃ߯@K„/ë·Á)¹²%Í%]Üå–=È«V,è ­{«RW‚:ik>•HŸSTÇÿÉ%6vô¾ö\áñ-R•@BêÔ“fÊø²øÕUrÇ–÷ëSv¾] õáåG:ƉÐì%*ípÑòÎwþêzd¾,¹~ÆVÝIý"’ù!k„­ð‹•ýžõ¾6ôÁSÖQ¥î‡ÍÌi¬Ì2×VþöŽÇ,]?§ðÒùûá>=,+ÒåE!ô#?6…lª¾¹*ƒšöß.‹+þN¹óücîs=A Ž$—8ªËtÉhͲÁ%Mìï[rï?½>5˜‚sÁ©Z™â|ÆgÞϳë6 gê]`çwŸ‰ +ÖäJ¶$÷A­B:{~PŒ­|ˆÊ ©¸/N˜¼wéàý‰ØaÊ9ÕÒ”®òM_u*u~0Ã׊éào‰èX0Êr‡ÖÁÙqh[ýl½®ØÑîáÃe7æMà€;æ,—"íFóTIû ¹ ²ÐŽ÷_â05#¸.cœY‰]j˜ª:Ç¿ùö:Qqæ!å½¾iÀÁÈéo‹¡¾{£6jÆÑõ({öû^Á èéWÝ{ƒHÈ%ŒéK!zþox   µ˜˜¦°ÖûˆÄll¡Y:Ðÿ3ìvz6G0†Ç&QÚ äŠ«‚n‚}uãaI#߃y>g—/¨`.n+/­Ð^ q›‰t*+ˆâõa+uF¼ý} ˜Ž¥ï>à£jŽÄ˜;â¤ÏLUáÀ˜ÍPÒ¬ü“žÖkm",Á(\~éGP»Oªt[‚ÜŽŽ6nxf³lTÆíØH'ºSÍõw<²qs)‘‘Ç~*Ún¥ ÑBëRËÏ++¥È›!®)™øÄ•™þîêñþœCåaIyÃγ<–äxßsG²)¬•¢×®8zÅJäó`ãn©ÌsÌ™æEHœX-zoè=O! å™B?Êóíwö»µŒ›ô7CMûÕöî‚Œ“˜:¨’P'+Ð'¨MÖí éżAJNQbÆu:Vw^Ð(*mké«K櫬Ù)7,"[›cÓXåºÉªÌq…‡‘„gÂmb(GXT ,ùÅbo©ðp²©ï÷ÖnròΡUm° Cþ“væ$Põ`Ò匀V–cÀþu6®…ùqc†¬ó:†OtÎì•nôwØÒPÄv©*û&<û'½v»AhEñÜêŒ ‘—Á&!x^øí(nÜÂæ¥=YŸÓ“pì‚Eú–qEæØØíéÎVP¢7“Õ¹ +†»·=z/¢ÇCï¥ä‡`RðÏ!¤Ù·)žíú!Œ·zÍ áí;LZ|FÕGì%«¯ˆÅÖ¤H6}+8ã¹ðú¸°ÐÀÑ/Žë)díˆz°W‚úXƒX¶¾m«Ø½•„»ù5gR›žF¹{‚$³*ú)u\=(Ñ-‚"Ð…÷±,â¢|]ǹý?9¿YÐOØ[L‹&ãÀŸrS*AØf­ši +t)ÌXN9¥D±z¤‰-D0Œ8­àª;ÁEÎ+p“ùhJ½:–Éîföâ}©PýSücd?àó <ÌÈ“|Šˆîç }®rw‚RÕ:Í$å·=„~mÉ]]˜RòöÖ„½®íX((—€¶Ä?Éž¸‹e»¿èœ¬ÛXÄ`]¹#ƒÝ’X—ÕoæQg è¿ÏU„»7mˆ¥ä\’sõ÷‘Œ¢MÊw5Yl”ÓaM)œÂ]Gƒo\_¥BW¢É–Œ3 +ܯ*˜Œù¢V}ÒD¦ÿôð£ÎÈ +}ˆ2àq=G/¦8õ1ÝüÍ/]Z?ó{P>yêU•œµú}éÇ2&@žÊå6Þä¡þ;TÆ +Ý‚Æo9ÎÖï[f|t7ñC[,#ѼR'Ry\³¥»VXÀƒ±AA+w +©õŠÊ§üyž+¾û™’i†2£]Þá­•\÷¤Mçó:µš•wbÕ‘…Ùˆ×hg¢Iµ#ŒºÛà@ïuJ*³É<¸S!ÙÖdNPÂD )­×cÅkø2æòò›b«ë#¸Î•µN² û›T“Z#¿FýŒSÄ̦ۻéz,³Ã‹Å¦ŠGªÖ\ÀV¦(Z‰šQ vQÖK>T«:œSn +JÎtŒ.a½AöB¿×n 8b¦”w»VŽn$øÍé)4Üú¤÷VçËÌŒµµèN‰R£ëÐŪ—Ãÿ×>Y¶5( QD‰!%ÝHîfà¨Ñ9º‘n i’"]Ò-Ý1ºKÝݵ÷þ‡÷Û}îùçÃyžã•”4|œ"ïñ`Ûý]_€ßÿ¼Ý²í\£$«:ê¯{¶F†Æ»lìÏ3¢?ÑL$G@Öóå×vmôãŠ#Žª×°tή4ËFIñê\é±¹†òã–ÊcLÏBÙðn¶²e™i¤ÿs;<¶ ¼ÿñÏ7JŸ¨ie/þ5÷“FàEZUuç!í¯îðœJMþ•³ŽôÓ }Ëß–~¸ Âòé€z{JE‰FªM Û„u–æG0i ž³ÍÀ†^µYkúzþ'ôÍòH¬n“È([ÒKFR}ÿ^÷ôdk ±5b$ßì}Cd%#vﱓ*š°ßÉ ‘ú°»­¥8hñÀÜ_Œ»Ð7¥U½2f b›oÒm÷ãÅY…½jãnQŒ˜fýÊm½­ªm&*þ8”Èç1|ñ˜a¬~– F‘«•¢ûÎòXQ;( _ÆSI0ü+p˜ý&á¸$BF @@ -9033,23 +9093,23 @@ J åUÔwUMõ»gÕ"&ÛQ=Q¿Á²p,æŽ ðrÎfœÝ‡Qã³éîtÜt6.§>ôÙêð97›“¡ÞnW‡•‚ø«Ñ¿}‹!®N‡éi…@lã C•Á&ûA×"4ÂÌ]iÅ Î|,›ž(mÍ…pêÖ.‰ý³oRŽÕ] ¸kŽ¬¢PÖ¡ZÛZŒŽT2Ê©‚pC¯–dô.Rn®f™7£žØærðk®–-!OõŽž1t¿9~‚ó–‰æ·q¼mxYæó”9gK’}ÃÜÕè×å HéÏAf™\pCÊˬM‚._óBâÚjq À¶]qL÷‡ Âa¯¡n—ˆ›´¢('â¥&Cv­pñf–¿‡OFÙ2ö # ð:øF(‰¥YäsäLèÆùxÂJßÓ%ÌgæÂîˆñe:‡¯#0®ÿëÊ»3¯‡óíLM¤\“wŒgßRkHäŽÅ_KØwÓªÂìni–ŠØ± ¨wŠlNþj sßÑ8v> endobj 877 0 obj << /Ascent 722 /CapHeight 693 /Descent -261 -/FontName /TGOVHI+URWPalladioL-Ital +/FontName /HZZZJN+URWPalladioL-Ital /ItalicAngle -9.5 /StemV 78 /XHeight 482 @@ -9058,7 +9118,7 @@ endobj /CharSet (/fi/fl/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/emdash) /FontFile 878 0 R >> endobj -1930 0 obj +1939 0 obj [528 545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 0 0 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 0 0 0 0 0 0 722 611 667 778 611 556 722 778 333 0 667 556 944 778 778 611 778 667 556 611 778 722 944 722 667 667 0 0 0 0 0 0 444 463 407 500 389 278 500 500 278 0 444 278 778 556 444 500 463 389 389 333 556 500 722 500 500 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 ] endobj 862 0 obj << @@ -9070,7 +9130,7 @@ endobj >> stream xÚ¬·ctåßÖ&›£’Û¶mWœT²cÛ¶m§bÛ¶]±*¶­[ÿsºûíqnß/}ß{Œßšxæ3ç3×c“)ªÐ ÛþŠÛÚ8Ñ1Ñ3räÍ­:;ÊÙÚÈÒ)Mlpdd"@C's[QC' 7@h ˜™L\\\pd[;wsS3'¥š² íYþ ütÿŸž¿™Žæ¦6ò¿.@+[;k Ó_ˆÿëD àd˜˜[" -ŠšRòJ y5€Ðè`hPtþien57Ú8©&¶«F¶6Ææÿ´æHÿKÈ`p´™ÿMºíþqÑì€Ö掎¿æŽSC§¿3p²˜ÛY9ÿCà¯ÝÄö_„ìlÿFXÿõýS´utr4r0·sü­ª(*þožNf†NÿÔv4ÿëØšü4¶5rþ§¥ùþÂüõ:šÛ8œ€nNÿÔú ›;ÚYºÿ­ýÌÎÁü_4œÍmLÿ‹-Àhjè`lttü óûŸéüWŸ€ÿ­{C;;+÷eÛþ+êq0wrZ™ÐÃ11ÿ­iäô·¶©¹ Ã?‹"ecb `bü·ÝØÙîú\€ÿå?;Cõ—„¡±­•;ÀhÇ oëô·$€òÿNeúÿ>‘ÿ$þoø¿EÞÿâþ§FÿÛ%þÿ{ŸÿZÜÙÊJÞÐúïüûü}al²€Þ+C‡ÿW¸¡µ¹•ûÿ!á?5€ÿ&ùÿ#ådøwB6¦a¤gü·ÑÜQÜÜ h¬hîdd01´ú;©ÙÕlŒVæ6À¿Šþk˜:&FÆÿð©š™YÚü3z¶»€6ÆÿIþ¯Hÿ¢Î ¯%¬ðC‚æ?ßÔE)þÕÞIÕÝî/±ÿÑŠœ­ñÿ:üƒ!,lëð¤û{é˜Y8ì r21yÿªý †é¿Îr†Næní¿-32ý«ñÿñû¯“îÀˆÙÙÿ³+*N†6Æ×ëþq9;8üUõ_7þoÃÿóü¯EÝ€Fp«¿mx‚,Ò2Ój±r‡'Eµû{™À‡ƒíJTøUÛöø¦…ípU¼×Ó7Ns¶¹/Ú}ìKSŒöbZQô¤/óñ½I¨ú +ŠšRòJ y5€Ðè`hPtþien57Ú8©&¶«F¶6Ææÿ´æHÿKÈ`p´™ÿMºíþqÑì€Ö掎¿æŽSC§¿3p²˜ÛY9ÿCà¯ÝÄö_„ìlÿFXÿõýS´utr4r0·sü­ª(*þožNf†NÿÔv4ÿëØšü4¶5rþ§¥ùþÂüõ:šÛ8œ€nNÿÔú ›;ÚYºÿ­ýÌÎÁü_4œÍmLÿ‹-Àhjè`lttü óûŸéüWŸ€ÿ­{C;;+÷eÛþ+êq0wrZ™ÐÃ11ÿ­iäô·¶©¹ Ã?‹"ecb `bü·ÝØÙîú\€ÿå?;Cõ—„¡±­•;ÀhÇ oëô·$€òÿNeúÿ>‘ÿ$þoø¿EÞÿâþ§FÿÛ%þÿ{ŸÿZÜÙÊJÞÐúïüûü}al²€Þ+C‡ÿW¸¡µ¹•ûÿ!á?5€ÿ&ùÿ#ådøwB6¦a¤gü·ÑÜQÜÜ h¬hîdd01´ú;©ÙÕlŒVæ6À¿Šþk˜:&FÆÿð©š™YÚü3z¶»€6ÆÿIþ¯Hÿ¢Î ùCXKT™æ?ßÔE)þÕÞIÕÝî/±ÿÑŠœ­ñÿ:üƒ!,lëð¤û{é˜Y8ì r21yÿªý †é¿Îr†Næní¿-32ý«ñÿñû¯“îÀˆÙÙÿ³+*N†6Æ×ëþq9;8üUõ_7þoÃÿóü¯EÝ€Fp«¿mx‚,Ò2Ój±r‡'Eµû{™À‡ƒíJTøUÛöø¦…ípU¼×Ó7Ns¶¹/Ú}ìKSŒöbZQô¤/óñ½I¨ú P7É;8hôJÓÏ4¢<¯e·!´ØÕv'•”õŠß¡¾Ow°8À\=Qù‘¸ø¡“>Ú!ù¥ÖÇbt¢4‚|«-<=#O<~z¤ê¹ìÛǣɉ…%ãq@$ô³ÏÁÐR«ð §‚JoBÀ»i¿ú$ÔèöÔË##Å%°–}U4Í_³i—}O‚LoàM”slݯüy=?É+”8Í5—ûµîL&æˆÅÛ„?Ø;kI8“ ]O0üvMÙïæYk]MýÚ‡”»02£ÔYRïÚµOÆH7î\‰$ÒjçH桳,,c|/ͳ‰M|\ÔøÉ×Ñ;gYs&kœ«ëP›‰­HÚz‚qÒÄ^hØx#:0%;Øt­%?!IRt¦äÞáséÒG_æóÈùC¾*íž¡±D­³EvAõ)i´»¨ ¹Í o)([ŒÔ‡+!Œ4Ž óçBÖx¨ö×éÀQ†Û–Í·´Š“çALb¸Ù…B ß%5Vy>©•õ_C äåwÍO?Xjb¸ËRˆ¢kŠìßFÆW‘¦³Âxýùb1£ôB:^‘átlØèöÇóžˆ}† -ß´Ç-_†‘À=DMá¢y;3pîÜÇ£àí •"¢œÍ‰pGÄ/çk~ú’DÎv}û Î|è8|ÔpVx{DžØæÁù¬(™è“‹¿ònc‚"©jȦފòJøˆÚfœ ƒ¡J÷ôy¼5Œ³4©aÆGD‰–îQHA²;§Oý|ÍJÛL‰†¸æVìP¤ýÄJÍÏD{¤>pV$QJ¬©ô=˜Ð9 Úp€Õâ«ùD¤å0ù_‡b>éRêVtÃÖ ÄMd~„Ýl{‚òsÉÞ! 5õµPÓÎ!ÓêÕ±·ÍˆoÅï$ø4÷µ£e!Ó†R©û,ÞΦbŽ†lŠ\›»ÆÈì\Ùú$Rk=›‹Tö° Úð­,6äX€qÐ-}nJ®k^¨£ô@l€¼ÜI>Œ˜×TqÅOшتxín°úâ…õµ4JÌäÅV kw¨Š‘þI’€¥¤\°^0Vò˘íep«%"h* ê mQôB±Ýë“ÙÏXšEÿ¶Éµú0üöA•ÚªÏPbÑËöê6EL7‹:Æ6ÒpÑÁå»ý%Tñ4w bBY6Kn8¢slG›‡œ .ôˆdŸ*‹îí¡ï8‚ìu)+¸"xJmKM Û /û’oË3ÌkŒÐ‘ÜãƒÛ’ÍËïÌk‡;/°¿‚ë’àU¿n¦NÔí]…6sÍ£¹ÛÉi<9s„pÓ4ìЛ•E÷³¡{¨Î¸›Ñ(@£ìª–8¥C©·g{foU>Ñ™vù¨µ«IÈÜÞPœU›K)ʶZQýmk ·çƒe~cs3˨Œ°2è£ßÕ ¾ÄùNs´Añ,ù¡H¾…¼ÀÅt••å;: œ•F“þ/Eň¢M—íîÒX =r‡K—+hö¦­y¢–éx>39+¥¸®¯k"½…Çl÷ÀJí„MÚÜ8ÁYËÜ&F¶”´Ñnýó'¶±_t¯…´²ÅÕÛ¥ ¼”žŸö8Gojü=ã6ÀçÞ}IP†C?äy¹l÷×MÜ 8ºSJ§Y´%$<-ãw¼S9ðJU&t ŽÞ[™#ÅÀ½5‘µc§O&QNðoMÂM/ …Ìþæ2¼`ÕE”n¼]QàѨPØÅA9TM;x¸á•3O‰­X»ãÞä»ÎúF_s„"oêoì9‘ö-Z%×/ÌÓÀ¨LÒ¬ŽÇçDrU‡¿ ¶Ï­š6ÞxÓÂï¯Å÷†½®w~¿Î~ÁX0nïýe´Ý&¤„’Wm»Š)Ôšë2ÒÄ`ÇŸ­B¢ž}dMÞ xì)㟂ñU‘dIÂçÍ Ê>`O‹5ö7ÕKõ 5ñŽ£ÓÔ‹Á}äIZ-™óDZ´[ŠkA,è3úI—ãq­«E2·:±AÚJÇ‚p9lrEèp¢V —2JÙçï£)m×·ÇѾ&\!H !Wuy§|õ ¸ýkI±3ÓËôì ünŠÐŠµ¼J§UÇ‘º;Ë÷Û\»#QÆ>‰E¼ßå îÜôÕ7;w“«)½VM.òHfÜ7$fÒzVÒþ ®:ëÍ©Û"Ä%yF#u»¶b1:î£Î¦Ð¦ºwI§âtß±.bïö:Áô|š·!/ä‘×…lEŒ];\PâéƒÀJ-†ùfï\gX?ÚÝbÊâ¼q#°È™JZcvr›”)\MUŠÿ½žØ«R#óÞ*{OÙ¥òó£SØÊ3«uS¥Ò+¦Ë?:ô$±ó4£º‹Õ±™o °Î³d q‰ÿ|¡âWV¬I¾ßxo¦Ì=ˆ4Šž%,²——Tí–]x-«GU}¡:¼@šëäãÕô´:+VfÀiIÆx†‡Ë2Ë–„\ü_¢øð?¸ùº»Áý\}(þûJßendstream +mŽ[A±Ræ¦ØíŸeµ1£¿YÝÒ~kð¢|Xžë,|@î~èÒ<¦maöè“žÉGJPòíRWù˜ž ‰P ŠïMÏÜ£Ëÿx½qì’‡î“ü\Ÿ,³›}ÛÃë½E#û¼ÐÄ!áosA8G'Ñ´2›_ð‹¿Ào8V  qqML2ÔËÜIVœmá\©ü:’P -wÇrµ? ²T§‹ÏlKðKáJì}Z%=|Ó˜~¹´ê¡¿QL-jÅ¿Vq†/¥ökåàM×±Û÷a”÷1•£Ôq/dWµ8à UnˆÇrÉ•Ü “6ŸùÙ¥»R̓AczCËSå㧠š2°BKšð5TÓý¡DuTz³Ÿ¨r ¹‰PU€õ¼‡U´=' Xÿa—¿ÐÎ9WÕ5r>ÕE”n¼]QàѨPØÅA9TM;x¸á•3O‰­X»ãÞä»ÎúF_s„"oêoì9‘ö-Z%×/ÌÓÀ¨LÒ¬ŽÇçDrU‡¿ ¶Ï­š6ÞxÓÂï¯Å÷†½®w~¿Î~ÁX0nïýe´Ý&¤„’Wm»Š)Ôšë2ÒÄ`ÇŸ­B¢ž}dMÞ xì)㟂ñU‘dIÂçÍ Ê>`O‹5ö7ÕKõ 5ñŽ£ÓÔ‹Á}äIZ-™óDZ´[ŠkA,è3úI—ãq­«E2·:±AÚJÇ‚p9lrEèp¢V —2JÙçï£)m×·ÇѾ&\!H !Wuy§|õ ¸ýkI±3ÓËôì ünŠÐŠµ¼J§UÇ‘º;Ë÷Û\»#QÆ>‰E¼ßå îÜôÕ7;w“«)½VM.òHfÜ7$fÒzVÒþ ®:ëÍ©Û"Ä%yF#u»¶b1:î£Î¦Ð¦ºwI§âtß±.bïö:Áô|š·!/ä‘×…lEŒ];\PâéƒÀJ-†ùfï\gX?ÚÝbÊâ¼q#°È™JZcvr›”)\MUŠÿ½žØ«R#óÞ*{OÙ¥òó£SØÊ3«uS¥Ò+¦Ë?:ô$±ó4£º‹Õ±™o °Î³d q‰ÿ|¡âWV¬I¾ßxo¦Ì=ˆ4Šž%,²——Tí–]x-«GU}¡:¼@šëäãÕô´:+VfÀiIÆx†‡Ë2Ë–„\ü_¢øð?¸ùº»Áý\}(þ1‹ß +endstream endobj 863 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1921 0 R +/Encoding 1930 0 R /FirstChar 33 /LastChar 125 -/Widths 1931 0 R -/BaseFont /NZBOXG+NimbusMonL-Regu +/Widths 1940 0 R +/BaseFont /HXBZDR+NimbusMonL-Regu /FontDescriptor 861 0 R >> endobj 861 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /NZBOXG+NimbusMonL-Regu +/FontName /HXBZDR+NimbusMonL-Regu /ItalicAngle 0 /StemV 41 /XHeight 426 @@ -9181,7 +9242,7 @@ endobj /CharSet (/exclam/quotedbl/numbersign/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright) /FontFile 862 0 R >> endobj -1931 0 obj +1940 0 obj [600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] endobj 746 0 obj << @@ -9195,7 +9256,7 @@ stream xÚ¬¹cx¥]³-Ûv¯ØfǶm¯$+6:ìض“Žm;éØè°culãëç}ÏÞû\ûœ_çÛ¿Ö=kTªY£æ¼îûZ”¤ÊjŒ"æ¦@I{WFV&^€†ª–²‰­­‰9ÈAžQÕÁÎð×̉@I)æ 4q9Ø‹›¸yZ@s€8Ð ÀÆ`ýúõ+%@ÌÁÑËdiå  ùËAKOÏð_–\¦^ÿütYÚ¨þ>¸mí€ö®)þŸÕ€@€«`²Ä””ud¥4RŠ) =ÐÙÄ ìfj 2ȃ̀ö.@Z€…ƒ3Àöß €™ƒ½9蟭¹0ýåq˜\f ¿a@O3 ã?Àèlrqùû ¹,Mì]ÿöÀÕ²7³u3ÿ§€¿v ‡äèìð×Ãî/ö—LÙÁÅÕÅÌäè ø›UY\òßuºZ™¸þ“Ûô8Xüõ4w0sûgKÿÂþÒüE]M@ö.W §ë?¹Ls‹£­‰×ßÜÉAÿ*ÃÍdoù_0œ–&Îæ¶@—¿4¹ÿéÎíð¿íÞÄÑÑÖë_ÑÿòúÏ@®.@[ &V¶¿9Í\ÿæ¶Ù#0ÿ3*2öV–ÛÍÝÿs:ÿ«A4ÿÌ íß"LÌìm½æ@ fE׿)4ÿo*3ýωü? ñÿˆÀÿ#òþÿ÷¿kô¿âÿ¿çù¿SKºÙÚ*šØÿø; øç’±ÿ?¼Mì@¶^ÿ7ÿÿî©üw‘ÿWW“¿­±·ü+ãW&–¯ÿ@.’ O ¹2ÈÕÌ -`abû·Wÿ²kØ›mAöÀ¿šþ«FV–ÿ†©[Ìlìÿi>ç¿! ½ù¯ÿ¯LÿªžY\FMUC‚þÿ¸WÕlÿΗ+÷¿#”ÿN‚«º—#ð¿Òi)8˜ÿçâ>QQO€7#+€‘‡ýïdc|å`÷ý¿äþë­L\Až=&Ö¿¤ÿü²ü“û? ƒÿF#aoæ`þÏ쨹šØ›ÿ·ÿ4ü›¹9;ÿUù_7ÀßíÿÇú_ƒzÍV9˜ñ[§ge¸Öáæ OŠë ô±B‡8–6ªÔ8ôú§‡o­4~« ajšæýh÷Z:q|ß—¥;íñ¥îM^ù’Óö¢ÿ¦êä¦?d6,EÎ8ÕŠö¾\”ß‚ÒåbÑ<Ø™TQ5,yƒ!žîdw†»|¤ w/ À¢xpDñ3KkˆÃîBkèûqrJ•tüø@=462ü³÷ºŸ>7ž’Ï +`abû·Wÿ²kØ›mAöÀ¿šþ«FV–ÿ†©[Ìlìÿi>ç¿! ½ù¯ÿ¯LÿªžYS[CSBþÿ¸WÕlÿΗ+÷¿#”ÿN‚«º—#ð¿Òi)8˜ÿçâ>QQO€7#+€‘‡ýïdc|å`÷ý¿äþë­L\Až=&Ö¿¤ÿü²ü“û? ƒÿF#aoæ`þÏ쨹šØ›ÿ·ÿ4ü›¹9;ÿUù_7ÀßíÿÇú_ƒzÍV9˜ñ[§ge¸Öáæ OŠë ô±B‡8–6ªÔ8ôú§‡o­4~« ajšæýh÷Z:q|ß—¥;íñ¥îM^ù’Óö¢ÿ¦êä¦?d6,EÎ8ÕŠö¾\”ß‚ÒåbÑ<Ø™TQ5,yƒ!žîdw†»|¤ w/ À¢xpDñ3KkˆÃîBkèûqrJ•tüø@=462ü³÷ºŸ>7ž’Ï ™**À)—PHW£B¢ªU³m·WÛÔOrí]VÉ• $«ùqyĤ"õÂzŒf<0ëûë£Îðf}/Ÿí¤>bêFè,VØUd‹ÕƒæÔJlNÍo’©+¬OXÏ1Ï-¼§c-NÂ1ipÝ›í\AÖµ?ªª…¹{G.ž'Þ½µ$5õü^oDÌÒ’j8Á¬R/ë‰yÝ࣑<Ì`½^ úêì`uvdé,RHžê$žkK‚>&Y ¤ºÛ”OØ&â„o™kâÆœm§Ù WëÙÉ ¨œ/û«Ð[BÒó´`Ûtä¯äÍN¿GfáĈHªýmVéDÇÏ“Ÿ”Ä÷¦Y_kÉóÍ+èü1pÇÒ¨åÁ³ñÂjD•jÊ @@ -9257,23 +9318,23 @@ MI ¿n$rÝ XðD˜t ÎõÓ…”2§—n„sÞmOÆ„ ˆ;²ÃßshuåU9ñÖ&;y-sõP~K*ªÅz4rnp´}ª÷œõ)RB—+«å—>¢cI£Ž¹w× éhz€Ì\mm £MúHþ×<×|Ìï­&‰ Ÿw³s£Üë+\?VË´<=yò‹ØH»M'²ñÑ67Cøoí+A5x5½·x¯'_Ë c!vÜ~óÓ4¶bIpµP]ãH^ŒúÀnkLßYßÙ„æÀ,•‰)tCœrÀ‘ Çi†Ï±m$hýÈn.ÿ¶»öO¿ªWÂ[–{OFChÓ'žWùÆ*6L‡1±’g^H]u Ââa3ð¸g@—TÕL_1@d7¾ùÁ“†µ‹Œ:…‘XF.ÿ§Òfb1\ÄñSÙ£Ö®TÁIS ÒŽã{9.´ v´ôPš_$ ƒºÃ™.T€Áj”¤RÚ.zàÂiXÎ^;-”ûkwå0HMKyÃûSc-‘tkâôk'a.*bí Û¶4ŠdÇ&ž*qÉŸX‡ÒÝÓä"c°4 *+9‚3£ cáE¢Lg%ãŸïÁó§KíÚï©=ëg‡~Q)œu‘Še7@ô`­¥¡c˜„s2¬ìe/ï´Ã÷5ØI*·[ÔrHîD4;"«hntRÉ´c¬¥ŸýÝ„u å{ÿÁØ }hë …x;³°çlqf—š “d79˜R€2õ¨)iµ†–Gö»€ê&‚—ÜÞ¨CšùŸeVò]ÏÓ~„ð¡T}îY¸dë`XÕìéÎ<òe JË»1ÒXê¤QáÀ#÷gX¹;«ÜÉà{}¤* ½lÈ»€~.ž©kÜõVÅÇ®þÒ€§ú‘7ã$o—#€àkص <Éâ{ -¯41¶{ºQµÚâl·Pãg;‹($@QQ~:ú4¥ /麞e„¼æª't“Ê>~œÍÆTÂ={š÷ÈcW ä­ë6Å͆ÇIjË‚¶{Al ¸¸ ²œís è¹”Lª £ÈàýÞùqœöÇ=*Y€þKTØ&§Ð9æ2ös³Ìü±×îªÊ›õäõ§=ìÌÉIx=ãç7åv[¿Céhw›«Ó(îl*ø®Ÿq ‰Ëb“ÛfÜèY àûYÚÿßRŸåÆ |)¶U-*ª[rᇻ……øw8me-PÍsóQîñúW™N‡vé¸î²”š{e³ã=öEëe>*­xQÿuò_­Rñ„çÒ˜ ¢þ«Iïç?d¯Y¹Æa½/Kz†Âc™›gZ6qæåØöì—3 p0, HÎIM,*ÉÏM,Êæ¼ffœendstream +¯41¶{ºQµÚâl·Pãg;‹($@QQ~:ú4¥ /麞e„¼æª't“Ê>~œÍÆTÂ={š÷ÈcW ä­ë6Å͆ÇIjË‚¶{Al ¸¸ ²œís è¹”Lª £ÈàýÞùqœöÇ=*Y€þKTØ&§Ð9æ2ös³Ìü±×îªÊ›õäõ§=ìÌÉIx=ãç7åv[¿Céhw›«Ó(îl*ø®Ÿq ‰Ëb“ÛfÜèY àûYÚÿßRŸåÆ |)¶U-*ª[rᇻ……øw8me-PÍsóQîñúW™N‡vé¸î²”š{e³ã=öEëe>*­xQÿuò_­Rñ„çÒ˜ ¢þ«Iïç?d¯Y¹Æa½/Kz†Âc™›gZ6qæåØöì—3 p0, HÎIM,*ÉÏM,Êæ&œfÁendstream endobj 747 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1921 0 R +/Encoding 1930 0 R /FirstChar 40 /LastChar 90 -/Widths 1932 0 R -/BaseFont /DISRUE+URWPalladioL-Roma-Slant_167 +/Widths 1941 0 R +/BaseFont /VXUVES+URWPalladioL-Roma-Slant_167 /FontDescriptor 745 0 R >> endobj 745 0 obj << /Ascent 715 /CapHeight 680 /Descent -282 -/FontName /DISRUE+URWPalladioL-Roma-Slant_167 +/FontName /VXUVES+URWPalladioL-Roma-Slant_167 /ItalicAngle -9 /StemV 84 /XHeight 469 @@ -9282,7 +9343,7 @@ endobj /CharSet (/parenleft/parenright/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/X/Y/Z) /FontFile 746 0 R >> endobj -1932 0 obj +1941 0 obj [333 333 0 0 0 333 250 0 500 500 500 500 500 500 500 500 500 500 0 0 0 0 0 0 0 778 611 709 774 611 556 763 832 337 0 726 611 946 831 786 604 786 668 525 613 778 722 0 667 667 667 ] endobj 684 0 obj << @@ -9294,31 +9355,28 @@ endobj >> stream xÚíUkTgnõJÀ+Å€€¸ -æ2@ Š,š–KS’ $˜$  (‚€`P¡r¨´RZ/Àåb°¢à©¡ 7‚ V®º‚îzìÒŸ»¿öìÌŸyŸçùÞï™çýÎù,̘¾»!" $‚4ÀÕÃ÷H@"gaáŠÂ„ˆvA˜€ŽŽ à" @*@v QÈ4ªÎpEÂ"Q~0OX¹~² r\„0ÊgC"À’ð`!Öƒ _„͇%‘DÀE |VˆX £0‡ˆA€ÃgK€ 8˜/‘1D\pX‚9Ò°·TŒŠ1S€fò³ÈAD‚H€sq$OÛ Æœü7L-oî&÷´îLFZ:“åéíÿ…V졦ÜD–ë™FÓû¼üi)rfÛè¦øQ?MãxË‹q›Iñ˜¯.íbg‰²±e$|±ÞÙn:_Û¥ìÌZ5C‰d·Ý û_ØÛÉ+HÊâEM¦œýÍüEìÀß­/ !üm=8®…ÜÜ“5;ìat¢”÷LåUëTUjjFìqsHì‰À9£òÄ6Õª'ø¶÷ܧ˜†Çf5cjé{•É/;éÆÇ 5<÷M”ùŒ®ÐñÐìV(§D-&Ô™éઞÍÛvM|¨{)ßgøä¶5kiË·Õ{9÷§ªömx±ÿY;Ý0ç£ÐèÏøk^†çÎÒS{É{—pïç5Ⱦþñ·Á’‰ðµyWo*®*ˆn„–ñ–¾›…öT呪k×G¥õ7œ,å$Õ-ʾøÓ™œ€’\¿ ?h¼"Ù—ÕV*ºkç’ÄóaÐ]eåÇ´9”ûÔm¬Üi¢¢$€ö©ïž_c©î —ç¿œ$½Nèz®UÛ"3)õ£W&ONë´¼ÞÌÌlô0ÏÚXÓ)U«¤{š@ªãÎ>ãm»¸³ç—96¯óS&D;êù7¸â¬?Ô{òÓ¦¯xyOiE'+† -éø„5÷Ô+ÔšS&a´{ -Vù(±¶ õü¯ž; -TÉIs›ò¯5”ïØŸËhòm~àplÝLãË+õ7•Ló•¦E½óÅ}ËP‘&¿ÿ’dki¿G¸!a„Æÿ´0¾¾=œÙ?Û)ͮωÏöT\Ž"g<.AŠü[ìôÊðEÝÑ—Ä]ëà(“ÖêzÖí¿§8é\3}ç.œRW uW¯ˆÖî5Ò¿ÓáV:¢ß2_ÃÙÙ|kÄ9dÐ媎4HЪýÓ¼ü`# $ôËMÓž¶[—€˜e§±Æºò·¯É2ÙMâ -ðasøÇÔ3›½ìÇ&³h.y‡Båãàèsf?|uX=°:|äçÞfCumíáSI~1îæ³m²äÓªÉõÛÛºÇwdy=bœèýœî~Z«oV¡³2±,†ÓRg‡ÆvÍòÑê‘óòWöä”sßÓ#ÿ‡îÿ þ'`W7„J!„†âþ'þ[endstream +æ2@ Š&X4-."(R’ $˜$ \(PÁ Bå"Pi¥´^€ÊÅ`EÁS#BAn¬\uÝôØ¥?wíÙ™?ó>Ïó½ß3ÏûóY˜yúè$vEDHi€‹»Ï~ €D2ÎÂÂ…! í‚$0 A€. @*@v QÈ4ªÎpA£P~OX¹|² rèBå³!àIx°ëÁ†€ÂæÃ’("@ï…bÀÃh$Ì!â@àðÙ á‹p¤GL–`Ž4ü- £bÌ`…™üÀ,r‘ +àÀ\ÉÁö‚1'ÿ SË›»JH¸Ð~1¥¿ð/ˆz£@„áR ŒîFEË¥~ð’9w˜Ã— +—³L $à³é¢ @;"Ù–ºDðÅ®|ÌñäKØ<€ Äð"‹8Ë­`ñ-!íbyøîñ±y3×EÒâ‹${£Âa€üN½Xƒïj,%”/ÈD2Ä„Øûö+pÙfŸ‰Ø‡/ +(T{BQ( +‡ ¬¢1 Àq`Ë0Ç$¢‘`K,šX€‹ ¸…±‚¶‰ÍGÙ˜½05É»DPR0–9ü'ˆLÁ0bØûgØö ¼4ôw¸=†Cè;ËØab$æ- ŽÁ@d1Š#@p´Ç~íjì¿ ÙR…E’ų‰Åÿ¶æò±‘Á° fãzº¶SrhnUJyÜgçnÿIçEk…¦G»É¿&.ωõ¡žõ2 ‘”Œ©®SàÔ†Ÿ³N꣗2<Ž~9U¬áJza™ÿñj#±Û•”._õÊÆr„©ˆØw*ÿk•1­}xæ›-[{¦¶Ä·êå¨Î5Ìté®·ö>am¾Ñ¡ç¼vÿûðQý;6OÔÄç^ßοuÏ鉻¦[*¹ÎºÁSÐÌ#\ 7R©´ñ¦7ßU«ræÖ²Ž6Èž˜¦™§Zº´‹%þ©Æ–QðÅzg»é|mzÙ™µj¦Én»Áð¿°·“W’Å‹žL;û›ù‹ø?&¾[_Jø1Æzp\ ¹¹'k:~ØÝèD)UëTUjjFìqsHîÄ9£òä6Õª'ø¶Aöܧ˜FÄ?1jæ©¥Ï*“_vÒMLjxn›(ó™]aãaÙÿ¬PN‰ZL¨{f€«z6oÛ5ñ¡î¥|ïá“Û~ÔP¬¥-ßVïåÝŸªòÝð:sß³v†aÎGaÿПñ×¼ŒÈ;4¤9¢fÉ{—pïç5Ⱦþñ·Á’‰ˆµyWo*®*ˆ®„–ñ–¾›…öTåáªk×G¥õ7œ,å$Õ-Šoâé㜀’\¿ ?hXQìËj«G• ݵs©Aâùp讲òcÚÊ}ê:Vî4QQ@ûÔgϯñT ÷ýù/'I¯“ºžkÕ¶ÈLJý•©“SÅ:-¯7{od Ègm¬”ªUÒ=M ÝqgŸñ¶]ÜÙó¿Ë›×Œù)“bõ¼C\pÖê=ùéNÓÎW¼¼§G´bRC… |Òš€{êjÍ)“pÚ=E`ù(±¶ ýü¯; +T©)s‘›ò¯5”ïØ—Ëlòi~àpdÝLãË$+õ7™•žæ+M‹zç‹+Æ–¡"M~ÿ$ÉÖÒ~÷CÂ=þiab}{„gÿl§4»>'1ÛCq9šœù¸)òo±Ó+ÃuÇ\w­ƒ£MZ«ëoÿ=Íùpçšé;wá´ºù¨›zEŒv¯‘þ×Òý–ùÎÎæ[#Ρƒô«:Ò`A«öOóò á€_îQíi»uIˆYöÑÀ±®ü­†Æk²Lv“¸‚|xãþ1õÁÌf¯û±É,=¯ñ S¨|sÎ쇯£©‡VGŒüÜÛl¨®­=tª£3Å/ÎÍ|¶M–zZ5¹~{[áØŽ,Ö#æ‰ÞÏn§µúf:+“Ëâ8í¡uvhü~iwl–·Vœ—¿:¨'§œûžù?|pÿoð?Ñ»º!T‚!4 ÷/ƒ¿þfendstream endobj 685 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1933 0 R +/Encoding 1942 0 R /FirstChar 13 /LastChar 110 -/Widths 1934 0 R -/BaseFont /FQGISL+CMSY10 +/Widths 1943 0 R +/BaseFont /DONUHS+CMSY10 /FontDescriptor 683 0 R >> endobj 683 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 -/FontName /FQGISL+CMSY10 +/FontName /DONUHS+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 @@ -9327,10 +9385,10 @@ endobj /CharSet (/circlecopyrt/bullet/braceleft/braceright/bar/backslash) /FontFile 684 0 R >> endobj -1934 0 obj +1943 0 obj [1000 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 0 0 278 0 0 0 500 ] endobj -1933 0 obj << +1942 0 obj << /Type /Encoding /Differences [ 0 /.notdef 13/circlecopyrt 14/.notdef 15/bullet 16/.notdef 102/braceleft/braceright 104/.notdef 106/bar 107/.notdef 110/backslash 111/.notdef] >> endobj @@ -9343,7 +9401,7 @@ endobj >> stream xÚ¬ºc”¤]°%\]èª.uÙȲmÛ¶]YV—mÛ¶mtÙ¶ºlÛÖ×ï{çÎug~Í7?r­çDÄÙ±#ö9±Ö“™$òJ4ƶ†@Q[GZzN€Š¢š¼••±¹­4¢­µ௙š„DÈhàhnk#làä¨Â@###€ƒƒš dkçfonjæ ÿ‹AAEEý_–B†nÿéù»ÓÁÜÔ@ú÷Áhekg ´qü ñ½Q 8š&æV@€œ¼†„¬€\LV ´ÚXä ­ÌÒæF@ ÀÄÖ`õ €‘­±ù?¥9ÐþÅpì€Fæ·]€vÿ¸¨v@{ks‡¿Ïs€©½ãß8ÚÌmŒ¬œŒÿ!ð×nbû/!;{Û¿Ö}ÁämŒìÍí³Ê ‹þOG3Çr;˜ÿulMþFÛ9ýSÒ¿¾¿0½Žæ6G «ã?¹ cs;+·¿¹ÿ‚ÙÙ›ÿKÃÉÁÜÆô¿Pì¦öÆV@‡¿0±ÿéÎÕ ø_ª7°³³rûw·í¿Qÿ“ƒ¹£ÐÊ„šñoN#Ç¿¹MÍm éþ9*6&¶úÿ°;Ùý§ÏhÿoƒÈÿ93IÛÚX¹Œ&Ðt²¶ŽSÈÿïT¦ý'òÿ‰ÿŸüÿDÞÿâþwþ—Küÿ÷>ÿwhQ'++Ykà¿›ÿ9cÒ€†ŒÍÿm`mnåöŠÿï‘jÀÿ ù„‘p4øÛ -Ó¿rÐÓÒÿ‡ÑÜAÔÜh,oîhd01°úÛ§í*6Æ@{+sà_=ÿm%€†žþ¿ù”ÍÌ,mþi<˸€6Æÿû_‰þeN'%£ ©.Mõ¿ÏÔãäÿjï¨ìf÷—Úÿ(EÆÖø.þA´uxÐ0°²hÙ™þ^9F3“×ÿ!ã¿@ ÿµ–1p´7whý-›žáßâÿÇç¿V:ÿ FÄÆÈÖøŸÓ¢äh`cü÷€ýOÃ?n#'{û¿ºþ{çÿýŸë:è +Ó¿rÐÓÒÿ‡ÑÜAÔÜh,oîhd01°úÛ§í*6Æ@{+sà_=ÿm%€†žþ¿ù”ÍÌ,mþi<˸€6Æÿû_‰þeN'«"%$«Fõ¿ÏÔãäÿjï¨ìf÷—Úÿ(EÆÖø.þA´uxÐ0°²hÙ™þ^9F3“×ÿ!ã¿@ ÿµ–1p´7whý-›žáßâÿÇç¿V:ÿ FÄÆÈÖøŸÓ¢äh`cü÷€ýOÃ?n#'{û¿ºþ{çÿýŸë:è 4‚^ùckÄh‘š‘æX‹ž34!¬Õ×Ã6dWÒ \˜ï[mÛ퓺ÍQ¡ÿ^DÛ8ÅùÙê¶xj÷±/Iy0ÒƒfEÖ ¼ÌÃñ"¢èÍGÜ mg£:ð§Ó-K;S‹ô¸ZÞ×d¥W=Ø™PPÔ-~ÿŽ;ÕÎduõDáKäœï‹Bühïm”RƒÚЂT[pzFšpüôH60:<4Ø}Ñ»M•óƒ„ËŽ4Â÷W66Ÿ¦J¹He‹êïÝn-6CoÑÕI9G¬ Œ¦§¥aŸáòäK‹Qîïcþ~Ÿ {4C›uÝ\VÚÜñÉëÁ3(!×áÍfª“ËѿѪ7ð^Å®Q¾4¢]G]·0žõÕX°G-Å¿iÞngó2ø*(žTñ³u_¾Œxô«‰ªjy¿Ý ¥$T³ØÄ^×âs:‰¿„³Ót»©È i+3«0€Ö~Z¦Ò‹Áº*ã¹®.òzbdÄhn“<£c¿§¯ ë³ü>Ëä1os´˜™(ÏÂß_Ø⟣٦$z#zlúµ1R?m%„ƒWåc¹BI-8v‘øòKNxoŠá­†(׸œÒùÏ[4¹RÈFNH•ƒˆUIþj¢ïö…D«6Êh”oϯ[%Z0ïÆQ:Åç $؆­˜U‰ú!6Wã1YDæcô*þ`ß•ø¸qÅó¯R rú†};V”¡ý!ÅYs>*²%èa¡ûG¶G\V­n63QËR]BlõõLƒšªNS±o³®Xãk”t¯Ž¿¥è%+Ú£|ŽÔuœÙ¨ýf4 l˜³®En>îg„ 1 æ„ÄNò]¨ß`Ф­×/i‰û5Òyµ˜7:ê 2M~¨‚´S&Ò>À{y$ «É6W¼H?ŠÅÏÝÉÓ*S;£BÝŠ ÄIÕÓ¤¹ª|wf ãÆ!â…@[|…9s³qÈŽ××—}>¹v¼¶±Ä¸©–ˆ2CÌQÕ™15Bj"«RŸóöÚ窙Ä;cF1rv/T…ÎeBPBœÐA/[ŒÒ'}¯ä •©Ú{rRŸñ[±p†âºÙ§9êppàÒ-ƒÅ”vÁ{:Æð"çd€BnRâtïn‹}¨Â‡‡5„P‡<ùáew”McÛb… L™¯ÎýŽ’µú¹¬<,ÌÒ=¶I¥]¥¶‚•!ìk ÎÔÄdùÝÊ:ó$q®éÞ®Šq¾ƒ¼Æ<ÃýÊ,svwA]¯cŽŸ™¾"{=Ÿ&u lc ^£çDÿ)a/{¦8N.§% §q±ü5¥×KÇx20œqK;ÈjtTŽ¸y´&H*À͵§¶q¨p¥GsÓü G4%Dá—rnì$áD_f!º>Èø`k‹æógúCÞŽsNU¸ÁŸ2û¥çüUÔÎ7Ú-/3аÉt=ÂœZžZ÷öešElòÉåi³Ø!š±ýKŽœ—DíØûø½u×"ƒq”‚d¯²Ôšª 9僄U1ðêpbDþ±kWaGÚ”ªø5ÁÐ ç#Ç~ÞŸú§j Çÿ½B7$Åšš’”6ìG†g€y†µWÿÚ›¨¸ð‹Êö|Ÿ¹^qHcOG_ùÎ}ŒÝËîNÓPb¥j„úiQR}D™CTµ u( Õ]ú·ð»è·¸{§¢e%‚ÓòåO™ Ú¡Þ=’Gf0ýa½<ŒjZ80P߬j…'¿Ú_/ü„ÑêaÍ·LšÖz‹€f1ÏÍRpÿß&áì88g=§u©Îc“ñÖ›í²!»GYº7ù:1’‚¾3¼rž.5»W¹"j> •Š2¦Õ?Ê{®!¹ ДÏ@ÏœüO©ªtºG©÷Ž’4Å%ü’Y×ÞöPðüid‘˃8LÖU/p„h[×ÿ1õ˜åô×îE¥JP(òCˆ¤‚§t¢8ꜧÝÎQ‹‚j%U×¼±†ÙŸJXµ¿LF-.=5†Oí~Ñ \jË9gWØÅ."FˆmßÝÔÇ‘ÓßAÌõ|ˆWj p7MÐ"Kc20ȧåOh]9J°F®×Ò‡õíTNì)mC\Rà‰æ8èÄЗ|- µÂ¸ÅæßËlÏB@\ë®4Ʋó˜•k™_̦CÍö˜T!Ô½\!ƒÂD×$×&m iÀ槻ÁLÝ¢»?a|ÿ¤þë™ ú*$÷¼66ÛëðÞºR¨p`N‹8¹Îs©2õóŸÉ×®aLç%¢)K–9CJN¼·ดÇÃ6ôqx~ë“;à@È÷<þ]ÍCļؽyùI©Ž6xóm·Lº¥—Óê©.Chøƒ‹ÿ<™a-^õÄÞU\u´úé,R8ô0V‰ƒÖ=iï$……ní±ª—Æ„®h„¸çM«KÈÅcóÇŒqØÌ8wƒZÃÊf;Íhi3‚{~„Ý($ iÿót:ùÃûxxñÍš6ïÛ÷ÄKZ·ÏlŽ¸ŠŒbd|Oá±–kË¥þÎÏB™E‹¤» -èlLäšOnRZ~‡î&I°=w¦}æ‰l§b””Î÷g ÅTÍ‘ûûÁ{Ë1LxméÌ­?b†‘Ü€±%Öé]¶çÛ'$5ˆç }~Ü‹{Á47 ŒCS®¯çÏgá·!v(°Z^cß—"|ÏÉUÛëUÛ„³¾Éêºêo6–I‰®óì¢;ɬ ‹a6²ôÍEê—'ÅKÜv–Ý«kî]¥’*€Þÿ<þSÍ?´.õÞ>|»ùו{šV8IÉ€¸@²`!Cr}Ùu3MVÅ ògè¿<*4ËëαÁŸ%… Ò9zS7ú‘Ÿœ’âó:·©Ž6Z3_C¯h¬Q½ÉŒff]1.ärÔõ„ÀݺgŒ6 hnO+(HuXíY]dOUÝ&°†9&/×á!^cnȯ(«eHü€SdClvÌf‹•”ØME?ÛÔ³ÐZ›N˜´BfG1d>QÚj\¼È”Ï·îPΊŸ¿æà;j:Œáo2çI­`þ÷?Á…ÀÌÞÂÄÅÕÑÁÄÅîÿÏg¹Ãendstream +èlLäšOnRZ~‡î&I°=w¦}æ‰l§b””Î÷g ÅTÍ‘ûûÁ{Ë1LxméÌ­?b†‘Ü€±%Öé]¶çÛ'$5ˆç }~Ü‹{Á47 ŒCS®¯çÏgá·!v(°Z^cß—"|ÏÉUÛëUÛ„³¾Éêºêo6–I‰®óì¢;ɬ ‹a6²ôÍEê—'ÅKÜv–Ý«kî]¥’*€Þÿ<þSÍ?´.õÞ>|»ùו{šV8IÉ€¸@²`!Cr}Ùu3MVÅ ògè¿<*4ËëαÁŸ%… Ò9zS7ú‘Ÿœ’âó:·©Ž6Z3_C¯h¬Q½ÉŒff]1.ärÔõ„ÀݺgŒ6 hnO+(HuXíY]dOUÝ&°†9&/×á!^cnȯ(«eHü€SdClvÌf‹•”ØME?ÛÔ³ÐZ›N˜´BfG1d>QÚj\¼È”Ï·îPΊŸ¿æà;j:Œáo2çI­`þ÷?Á…ÀÌÞÂÄÅÕÑÁÄÅîÿ ™¹²endstream endobj 682 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1921 0 R +/Encoding 1930 0 R /FirstChar 2 /LastChar 216 -/Widths 1935 0 R -/BaseFont /KMQZXL+URWPalladioL-Roma +/Widths 1944 0 R +/BaseFont /NUKCNW+URWPalladioL-Roma /FontDescriptor 680 0 R >> endobj 680 0 obj << /Ascent 715 /CapHeight 680 /Descent -282 -/FontName /KMQZXL+URWPalladioL-Roma +/FontName /NUKCNW+URWPalladioL-Roma /ItalicAngle 0 /StemV 84 /XHeight 469 @@ -9457,7 +9515,7 @@ endobj /CharSet (/fi/fl/exclam/numbersign/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/circumflex/quotedblright/emdash/Oslash) /FontFile 681 0 R >> endobj -1935 0 obj +1944 0 obj [605 608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 500 500 840 0 278 333 333 389 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 0 606 0 444 747 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 667 333 0 333 0 0 278 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 0 500 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833 ] endobj 657 0 obj << @@ -9468,7 +9526,7 @@ endobj /Filter /FlateDecode >> stream -xÚ¬zSm]³eÙ¶]uʶmÛ¶mÛö)Û¶mÛæ)ó”«ëû¯:n÷S÷}Xkfæ92GÎ{G,RBy%c;CQ;[gZzNE5ykkc ;iA;kc‚3 )©£‰³…­°³ 'š‰1°‰##)½‡£…™¹3ùõYþ !0ôøÏÏN' 3[²ŸWk;{[çˆÿçJ&&Îæ&¦Ö&Brò²bäb²*b&¶&ŽÖò.†ÖFÒF&¶N&¦vŽÖÿ¶ 0²³5¶ø§4'Ú,''{#‹Ÿm&îF&öÿ¸¨ ìMm,œœ~Þ ,œÌ lzàlG`akdíbü»©Ý¿Ù;ÚýDØüø~Àä휜Œ-ì ~²Ê ‹þOgsçr;Yü¸ ìL"íŒ\þ)é_¾˜¯³…­³‰»ó?¹ MŒ-œì­ <~rÿ€Ù;Zü‹†‹“…­Ù1 &p413p4¶6qrúùÁþ§;ÿU'ÁÿV½½½µÇ¿vÛý+ê?9X8;™X›ÒB10þä4rþÉmfa E÷ϨHØšÚ0Ðÿ›ÝØÅþ?|®&Žÿjù?3CñCÂÀØÎÖÚƒÀØÄŠNÖÎù'%ùÿ›Ê´ÿs"ÿHü?"ðÿˆ¼ÿâþwþ·Cüÿ{žÿ;´¨‹µµ¬É¿6üÇC MðÏ%óØXX{üßÂÿ{¤šÉ¿qü¿¡H8ü4BÀÖìG zZú3Z8‰Z¸›Ë[8™˜Xÿté_v[cGk [“5ÿÕHzúÿæS6·0²²ý§í,ÿæ2±5þïÔúq:%uI!MyªÿóFýWœüòÎÊö?Ôþ½;ãÿ\üƒ"(hçNàEÃÀÂH@ÃDÏðsà~øp0±øü_2þ ˆá¿Ö2ÎŽîZ?eÿìü§øþk¥óß`DlìŒÿ™%g[ãŸñúOÃ?n#GÇUÿuâŠþõ¿ÝÄÄÝÄj}ÅΈ+Ø2ýw†szîÈ”°Ö@ðHˆ}i£rQ]¯_zøG¥þGmmÓ çW»ÇòûÏ#IÊã±>4ë_½©&×ù8>ÄýˆÛdlTÇtº¥°jÑ^7KÒ» š¬ôªÇûS +xÚ¬zSm]³eÙ¶]uʶmÛ¶mÛö)Û¶mÛæ)ó”«ëû¯:n÷S÷}Xkfæ92GÎ{G,RBy%c;CQ;[gZzNE5ykkc ;iA;kc‚3 )©£‰³…­°³ 'š‰1°‰##)½‡£…™¹3ùõYþ !0ôøÏÏN' 3[²ŸWk;{[çˆÿçJ&&Îæ&¦Ö&Brò²bäb²*b&¶&ŽÖò.†ÖFÒF&¶N&¦vŽÖÿ¶ 0²³5¶ø§4'Ú,''{#‹Ÿm&îF&öÿ¸¨ ìMm,œœ~Þ ,œÌ lzàlG`akdíbü»©Ý¿Ù;ÚýDØüø~Àä휜Œ-ì ~²Ê ‹þOgsçr;Yü¸ ìL"íŒ\þ)é_¾˜¯³…­³‰»ó?¹ MŒ-œì­ <~rÿ€Ù;Zü‹†‹“…­Ù1 &p413p4¶6qrúùÁþ§;ÿU'ÁÿV½½½µÇ¿vÛý+ê?9X8;™X›ÒB10þä4rþÉmfa E÷ϨHØšÚ0Ðÿ›ÝØÅþ?|®&Žÿjù?3CñCÂÀØÎÖÚƒÀØÄŠNÖÎù'%ùÿ›Ê´ÿs"ÿHü?"ðÿˆ¼ÿâþwþ·Cüÿ{žÿ;´¨‹µµ¬É¿6üÇC MðÏ%óØXX{üßÂÿ{¤šÉ¿qü¿¡H8ü4BÀÖìG zZú3Z8‰Z¸›Ë[8™˜Xÿté_v[cGk [“5ÿÕHzúÿæS6·0²²ý§í,ÿæ2±5þïÔúq:)EMYqªÿóFýWœüòÎÊö?Ôþ½;ãÿ\üƒ"(hçNàEÃÀÂH@ÃDÏðsà~øp0±øü_2þ ˆá¿Ö2ÎŽîZ?eÿìü§øþk¥óß`DlìŒÿ™%g[ãŸñúOÃ?n#GÇUÿuâŠþõ¿ÝÄÄÝÄj}ÅΈ+Ø2ýw†szîÈ”°Ö@ðHˆ}i£rQ]¯_zøG¥þGmmÓ çW»ÇòûÏ#IÊã±>4ë_½©&×ù8>ÄýˆÛdlTÇtº¥°jÑ^7KÒ» š¬ôªÇûS Šº%`¸3LŽ7)ü‰] üQHžíá|ÒâP»šê ÿ\%ý}þ54>:2Ü{Ú„M•IÊå KåïƒÍ§©R!RÕDzÝžeÌ}øØ"œ³\ʤ!g?5íµ Îk“T $f}QìŒ}}œ7Ãë–aI­zQ£Ø`{1®ËÊ›¡9sõ‰ór5úË<#¤=ø…ˆ´±36…è4Ó+òŽÇ¾a‘Ïp:‰é"“|:[5P6“Ó#\2®˜Æíß»OÍß 6.â'¢ÿp$iÊíù2ŸÒ;LÛ–Oòá ±Fóyº)‘ùµ©ãà~ ¥ŸC¡ë­„aø ÅÑ«¨ÙûGæhg [&óâ<1—Xû²Âø{iª_“¸bf)¦Œ²§T˜ ÜÓ»GAe!ógF玦àUa!*ÚZ0Ÿðç/è a0¼€ž~£œ†äwÝo âïfŸJ³xÛw® ÞaÇL¿õ0 è^š `8¿Ú Ù4Ùç÷ Ï©4†V×"”]BÝ3pþà·½_) èIÞ\H$séåXŒ{Òb^Z,ÃÛ6ö©ÉÁ ¬–R2µCÇŠ‰t(£ˆOܲÓ7‚9òó`e€² ä@y%0júAÈëRÿ˜à˜~xƒ4wÖ5çíÂàÖ±åmÝÓ×â}=Ð’tRX[>͔ҞÐRÔ "çH³l/é•_r> endobj 656 0 obj << /Ascent 708 /CapHeight 672 /Descent -266 -/FontName /SXJCZP+URWPalladioL-Bold +/FontName /KRZENH+URWPalladioL-Bold /ItalicAngle 0 /StemV 123 /XHeight 471 @@ -9592,159 +9650,159 @@ endobj /CharSet (/fi/fl/exclam/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/question/at/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblright/emdash) /FontFile 657 0 R >> endobj -1936 0 obj +1945 0 obj [611 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 0 500 889 0 278 333 333 444 606 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 250 0 0 0 444 747 778 667 722 833 611 556 833 833 389 0 778 611 1000 833 833 611 833 722 611 667 778 778 1000 667 667 667 333 0 333 0 0 0 500 611 444 611 500 389 556 611 333 333 611 333 889 611 556 611 611 389 444 333 611 556 833 500 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 1000 ] endobj 659 0 obj << /Type /Pages /Count 6 -/Parent 1937 0 R +/Parent 1946 0 R /Kids [650 0 R 677 0 R 687 0 R 742 0 R 806 0 R 867 0 R] >> endobj 886 0 obj << /Type /Pages /Count 6 -/Parent 1937 0 R +/Parent 1946 0 R /Kids [871 0 R 888 0 R 902 0 R 913 0 R 920 0 R 932 0 R] >> endobj 944 0 obj << /Type /Pages /Count 6 -/Parent 1937 0 R +/Parent 1946 0 R /Kids [937 0 R 946 0 R 957 0 R 965 0 R 972 0 R 978 0 R] >> endobj 1001 0 obj << /Type /Pages /Count 6 -/Parent 1937 0 R +/Parent 1946 0 R /Kids [986 0 R 1008 0 R 1018 0 R 1023 0 R 1027 0 R 1034 0 R] >> endobj 1050 0 obj << /Type /Pages /Count 6 -/Parent 1937 0 R +/Parent 1946 0 R /Kids [1043 0 R 1053 0 R 1060 0 R 1065 0 R 1074 0 R 1081 0 R] >> endobj 1093 0 obj << /Type /Pages /Count 6 -/Parent 1937 0 R -/Kids [1085 0 R 1096 0 R 1102 0 R 1110 0 R 1117 0 R 1126 0 R] +/Parent 1946 0 R +/Kids [1085 0 R 1096 0 R 1101 0 R 1110 0 R 1117 0 R 1126 0 R] >> endobj 1145 0 obj << /Type /Pages /Count 6 -/Parent 1938 0 R -/Kids [1139 0 R 1147 0 R 1152 0 R 1158 0 R 1164 0 R 1172 0 R] +/Parent 1947 0 R +/Kids [1136 0 R 1147 0 R 1152 0 R 1158 0 R 1164 0 R 1172 0 R] >> endobj 1182 0 obj << /Type /Pages /Count 6 -/Parent 1938 0 R -/Kids [1179 0 R 1184 0 R 1189 0 R 1195 0 R 1199 0 R 1206 0 R] +/Parent 1947 0 R +/Kids [1179 0 R 1184 0 R 1189 0 R 1195 0 R 1199 0 R 1205 0 R] >> endobj 1219 0 obj << /Type /Pages /Count 6 -/Parent 1938 0 R -/Kids [1216 0 R 1221 0 R 1226 0 R 1237 0 R 1243 0 R 1248 0 R] +/Parent 1947 0 R +/Kids [1216 0 R 1221 0 R 1225 0 R 1235 0 R 1243 0 R 1248 0 R] >> endobj 1255 0 obj << /Type /Pages /Count 6 -/Parent 1938 0 R -/Kids [1252 0 R 1257 0 R 1266 0 R 1272 0 R 1279 0 R 1286 0 R] +/Parent 1947 0 R +/Kids [1252 0 R 1257 0 R 1263 0 R 1271 0 R 1277 0 R 1284 0 R] >> endobj -1301 0 obj << +1296 0 obj << /Type /Pages /Count 6 -/Parent 1938 0 R -/Kids [1292 0 R 1305 0 R 1310 0 R 1316 0 R 1320 0 R 1325 0 R] +/Parent 1947 0 R +/Kids [1291 0 R 1298 0 R 1310 0 R 1315 0 R 1321 0 R 1326 0 R] >> endobj -1338 0 obj << +1339 0 obj << /Type /Pages /Count 6 -/Parent 1938 0 R -/Kids [1334 0 R 1340 0 R 1344 0 R 1348 0 R 1356 0 R 1360 0 R] +/Parent 1947 0 R +/Kids [1331 0 R 1341 0 R 1345 0 R 1349 0 R 1353 0 R 1361 0 R] >> endobj -1388 0 obj << +1382 0 obj << /Type /Pages /Count 6 -/Parent 1939 0 R -/Kids [1375 0 R 1390 0 R 1407 0 R 1414 0 R 1425 0 R 1431 0 R] +/Parent 1948 0 R +/Kids [1366 0 R 1384 0 R 1399 0 R 1414 0 R 1424 0 R 1430 0 R] >> endobj -1452 0 obj << +1445 0 obj << /Type /Pages /Count 6 -/Parent 1939 0 R -/Kids [1441 0 R 1454 0 R 1461 0 R 1469 0 R 1473 0 R 1479 0 R] +/Parent 1948 0 R +/Kids [1436 0 R 1447 0 R 1459 0 R 1468 0 R 1474 0 R 1478 0 R] >> endobj -1493 0 obj << +1487 0 obj << /Type /Pages /Count 6 -/Parent 1939 0 R -/Kids [1490 0 R 1495 0 R 1499 0 R 1510 0 R 1514 0 R 1521 0 R] +/Parent 1948 0 R +/Kids [1482 0 R 1489 0 R 1500 0 R 1504 0 R 1508 0 R 1519 0 R] >> endobj -1589 0 obj << +1529 0 obj << /Type /Pages /Count 6 -/Parent 1939 0 R -/Kids [1531 0 R 1591 0 R 1647 0 R 1701 0 R 1735 0 R 1744 0 R] +/Parent 1948 0 R +/Kids [1523 0 R 1531 0 R 1541 0 R 1600 0 R 1656 0 R 1710 0 R] >> endobj -1754 0 obj << +1752 0 obj << /Type /Pages /Count 6 -/Parent 1939 0 R -/Kids [1750 0 R 1756 0 R 1760 0 R 1765 0 R 1777 0 R 1781 0 R] +/Parent 1948 0 R +/Kids [1744 0 R 1754 0 R 1760 0 R 1765 0 R 1769 0 R 1774 0 R] >> endobj -1797 0 obj << +1789 0 obj << /Type /Pages /Count 6 -/Parent 1939 0 R -/Kids [1793 0 R 1799 0 R 1810 0 R 1815 0 R 1820 0 R 1831 0 R] +/Parent 1948 0 R +/Kids [1786 0 R 1791 0 R 1803 0 R 1808 0 R 1819 0 R 1824 0 R] >> endobj -1846 0 obj << +1839 0 obj << /Type /Pages /Count 6 -/Parent 1940 0 R -/Kids [1843 0 R 1848 0 R 1859 0 R 1864 0 R 1871 0 R 1882 0 R] +/Parent 1949 0 R +/Kids [1829 0 R 1841 0 R 1853 0 R 1857 0 R 1868 0 R 1873 0 R] >> endobj -1897 0 obj << +1889 0 obj << /Type /Pages -/Count 4 -/Parent 1940 0 R -/Kids [1893 0 R 1899 0 R 1909 0 R 1915 0 R] +/Count 6 +/Parent 1949 0 R +/Kids [1878 0 R 1891 0 R 1901 0 R 1908 0 R 1915 0 R 1924 0 R] >> endobj -1937 0 obj << +1946 0 obj << /Type /Pages /Count 36 -/Parent 1941 0 R +/Parent 1950 0 R /Kids [659 0 R 886 0 R 944 0 R 1001 0 R 1050 0 R 1093 0 R] >> endobj -1938 0 obj << +1947 0 obj << /Type /Pages /Count 36 -/Parent 1941 0 R -/Kids [1145 0 R 1182 0 R 1219 0 R 1255 0 R 1301 0 R 1338 0 R] +/Parent 1950 0 R +/Kids [1145 0 R 1182 0 R 1219 0 R 1255 0 R 1296 0 R 1339 0 R] >> endobj -1939 0 obj << +1948 0 obj << /Type /Pages /Count 36 -/Parent 1941 0 R -/Kids [1388 0 R 1452 0 R 1493 0 R 1589 0 R 1754 0 R 1797 0 R] +/Parent 1950 0 R +/Kids [1382 0 R 1445 0 R 1487 0 R 1529 0 R 1752 0 R 1789 0 R] >> endobj -1940 0 obj << +1949 0 obj << /Type /Pages -/Count 10 -/Parent 1941 0 R -/Kids [1846 0 R 1897 0 R] +/Count 12 +/Parent 1950 0 R +/Kids [1839 0 R 1889 0 R] >> endobj -1941 0 obj << +1950 0 obj << /Type /Pages -/Count 118 -/Kids [1937 0 R 1938 0 R 1939 0 R 1940 0 R] +/Count 120 +/Kids [1946 0 R 1947 0 R 1948 0 R 1949 0 R] >> endobj -1942 0 obj << +1951 0 obj << /Type /Outlines /First 7 0 R /Last 607 0 R @@ -9821,7 +9879,7 @@ endobj 607 0 obj << /Title 608 0 R /A 605 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 571 0 R /First 611 0 R /Last 647 0 R @@ -9887,7 +9945,7 @@ endobj 571 0 obj << /Title 572 0 R /A 569 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 551 0 R /Next 607 0 R /First 575 0 R @@ -9924,7 +9982,7 @@ endobj 551 0 obj << /Title 552 0 R /A 549 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 527 0 R /Next 571 0 R /First 555 0 R @@ -9968,7 +10026,7 @@ endobj 527 0 obj << /Title 528 0 R /A 525 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 243 0 R /Next 551 0 R /First 531 0 R @@ -10476,7 +10534,7 @@ endobj 243 0 obj << /Title 244 0 R /A 241 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 231 0 R /Next 527 0 R /First 247 0 R @@ -10498,7 +10556,7 @@ endobj 231 0 obj << /Title 232 0 R /A 229 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 131 0 R /Next 243 0 R /First 235 0 R @@ -10680,7 +10738,7 @@ endobj 131 0 obj << /Title 132 0 R /A 129 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 91 0 R /Next 231 0 R /First 135 0 R @@ -10754,7 +10812,7 @@ endobj 91 0 obj << /Title 92 0 R /A 89 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 67 0 R /Next 131 0 R /First 95 0 R @@ -10797,7 +10855,7 @@ endobj 67 0 obj << /Title 68 0 R /A 65 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Prev 7 0 R /Next 91 0 R /First 71 0 R @@ -10906,785 +10964,785 @@ endobj 7 0 obj << /Title 8 0 R /A 5 0 R -/Parent 1942 0 R +/Parent 1951 0 R /Next 67 0 R /First 11 0 R /Last 23 0 R /Count -4 >> endobj -1943 0 obj << -/Names [(Access_Control_Lists) 1477 0 R (Bv9ARM.ch01) 874 0 R (Bv9ARM.ch02) 923 0 R (Bv9ARM.ch03) 940 0 R (Bv9ARM.ch04) 989 0 R (Bv9ARM.ch05) 1077 0 R (Bv9ARM.ch06) 1088 0 R (Bv9ARM.ch07) 1476 0 R (Bv9ARM.ch08) 1502 0 R (Bv9ARM.ch09) 1517 0 R (Bv9ARM.ch10) 1738 0 R (Configuration_File_Grammar) 1113 0 R (DNSSEC) 1056 0 R (Doc-Start) 655 0 R (Setting_TTLs) 1446 0 R (acache) 930 0 R (access_control) 1231 0 R (acl) 1121 0 R (address_match_lists) 1094 0 R (admin_tools) 963 0 R (appendix.A) 570 0 R (appendix.B) 606 0 R (bibliography) 1525 0 R (boolean_options) 1005 0 R (builtin) 1299 0 R (chapter*.1) 690 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 526 0 R (chapter.8) 550 0 R (cite.RFC1033) 1653 0 R (cite.RFC1034) 1537 0 R (cite.RFC1035) 1539 0 R (cite.RFC1101) 1635 0 R (cite.RFC1123) 1637 0 R (cite.RFC1183) 1597 0 R (cite.RFC1464) 1675 0 R (cite.RFC1535) 1582 0 R (cite.RFC1536) 1584 0 R (cite.RFC1537) 1655 0 R (cite.RFC1591) 1639 0 R (cite.RFC1706) 1599 0 R (cite.RFC1712) 1695 0 R (cite.RFC1713) 1677 0 R (cite.RFC1794) 1679 0 R (cite.RFC1876) 1601 0 R (cite.RFC1912) 1657 0 R (cite.RFC1982) 1586 0 R (cite.RFC1995) 1544 0 R (cite.RFC1996) 1546 0 R (cite.RFC2010) 1659 0 R (cite.RFC2052) 1603 0 R (cite.RFC2065) 1707 0 R (cite.RFC2136) 1548 0 R (cite.RFC2137) 1709 0 R (cite.RFC2163) 1605 0 R (cite.RFC2168) 1607 0 R (cite.RFC2181) 1550 0 R (cite.RFC2219) 1661 0 R (cite.RFC2230) 1609 0 R (cite.RFC2240) 1681 0 R (cite.RFC2308) 1552 0 R (cite.RFC2317) 1641 0 R (cite.RFC2345) 1683 0 R (cite.RFC2352) 1685 0 R (cite.RFC2535) 1711 0 R (cite.RFC2536) 1611 0 R (cite.RFC2537) 1613 0 R (cite.RFC2538) 1615 0 R (cite.RFC2539) 1617 0 R (cite.RFC2540) 1619 0 R (cite.RFC2671) 1554 0 R (cite.RFC2672) 1556 0 R (cite.RFC2673) 1697 0 R (cite.RFC2782) 1621 0 R (cite.RFC2825) 1665 0 R (cite.RFC2826) 1643 0 R (cite.RFC2845) 1558 0 R (cite.RFC2874) 1699 0 R (cite.RFC2915) 1623 0 R (cite.RFC2929) 1645 0 R (cite.RFC2930) 1560 0 R (cite.RFC2931) 1562 0 R (cite.RFC3007) 1564 0 R (cite.RFC3008) 1713 0 R (cite.RFC3071) 1687 0 R (cite.RFC3090) 1715 0 R (cite.RFC3110) 1625 0 R (cite.RFC3123) 1627 0 R (cite.RFC3225) 1570 0 R (cite.RFC3258) 1689 0 R (cite.RFC3445) 1717 0 R (cite.RFC3490) 1667 0 R (cite.RFC3491) 1669 0 R (cite.RFC3492) 1671 0 R (cite.RFC3596) 1629 0 R (cite.RFC3597) 1631 0 R (cite.RFC3645) 1566 0 R (cite.RFC3655) 1719 0 R (cite.RFC3658) 1721 0 R (cite.RFC3755) 1723 0 R (cite.RFC3757) 1725 0 R (cite.RFC3833) 1572 0 R (cite.RFC3845) 1727 0 R (cite.RFC3901) 1691 0 R (cite.RFC4033) 1574 0 R (cite.RFC4035) 1576 0 R (cite.RFC4044) 1578 0 R (cite.RFC4074) 1588 0 R (cite.RFC974) 1541 0 R (cite.id2499526) 1732 0 R (configuration_file_elements) 1089 0 R (controls_statement_definition_and_usage) 976 0 R (diagnostic_tools) 911 0 R (dynamic_update) 999 0 R (dynamic_update_policies) 1051 0 R (dynamic_update_security) 1235 0 R (empty) 1308 0 R (historical_dns_information) 1519 0 R (id2464961) 875 0 R (id2466569) 876 0 R (id2467528) 880 0 R (id2467538) 881 0 R (id2467709) 893 0 R (id2467731) 894 0 R (id2467765) 895 0 R (id2467849) 898 0 R (id2467942) 891 0 R (id2470247) 905 0 R (id2470270) 908 0 R (id2470369) 909 0 R (id2470390) 910 0 R (id2470420) 916 0 R (id2470523) 917 0 R (id2470550) 918 0 R (id2470584) 924 0 R (id2470611) 925 0 R (id2470624) 926 0 R (id2470717) 929 0 R (id2470728) 935 0 R (id2470760) 942 0 R (id2470776) 943 0 R (id2470798) 949 0 R (id2470816) 950 0 R (id2471153) 953 0 R (id2471158) 954 0 R (id2473077) 981 0 R (id2473089) 982 0 R (id2473466) 1014 0 R (id2473484) 1015 0 R (id2473920) 1031 0 R (id2473937) 1032 0 R (id2473975) 1037 0 R (id2473993) 1038 0 R (id2474004) 1039 0 R (id2474043) 1040 0 R (id2474169) 1041 0 R (id2474282) 1047 0 R (id2474296) 1048 0 R (id2474413) 1049 0 R (id2474618) 1057 0 R (id2474688) 1058 0 R (id2474766) 1063 0 R (id2474841) 1068 0 R (id2474971) 1070 0 R (id2474993) 1071 0 R (id2475162) 1078 0 R (id2475309) 1090 0 R (id2476102) 1099 0 R (id2476130) 1100 0 R (id2476305) 1105 0 R (id2476320) 1106 0 R (id2476349) 1107 0 R (id2476433) 1114 0 R (id2476849) 1120 0 R (id2476891) 1122 0 R (id2477038) 1124 0 R (id2477467) 1131 0 R (id2477482) 1132 0 R (id2477506) 1133 0 R (id2477527) 1134 0 R (id2477686) 1143 0 R (id2477812) 1144 0 R (id2477864) 1150 0 R (id2478694) 1161 0 R (id2479367) 1167 0 R (id2479441) 1168 0 R (id2479505) 1175 0 R (id2479548) 1176 0 R (id2479563) 1177 0 R (id2481595) 1202 0 R (id2483429) 1224 0 R (id2483488) 1230 0 R (id2483909) 1241 0 R (id2483997) 1246 0 R (id2484819) 1260 0 R (id2484834) 1261 0 R (id2485017) 1263 0 R (id2485219) 1269 0 R (id2485581) 1283 0 R (id2486884) 1313 0 R (id2488123) 1330 0 R (id2488172) 1331 0 R (id2488252) 1337 0 R (id2489698) 1351 0 R (id2489705) 1352 0 R (id2489710) 1353 0 R (id2490124) 1363 0 R (id2490157) 1364 0 R (id2491517) 1410 0 R (id2491774) 1412 0 R (id2491793) 1417 0 R (id2491881) 1420 0 R (id2492050) 1422 0 R (id2493079) 1428 0 R (id2493275) 1434 0 R (id2493297) 1435 0 R (id2493728) 1437 0 R (id2493864) 1439 0 R (id2493886) 1444 0 R (id2494359) 1447 0 R (id2494484) 1449 0 R (id2494499) 1450 0 R (id2494679) 1457 0 R (id2494701) 1458 0 R (id2494830) 1459 0 R (id2494900) 1464 0 R (id2494936) 1465 0 R (id2494998) 1466 0 R (id2495477) 1486 0 R (id2495622) 1487 0 R (id2495750) 1488 0 R (id2495898) 1503 0 R (id2495904) 1504 0 R (id2495915) 1505 0 R (id2495932) 1506 0 R (id2496062) 1518 0 R (id2496166) 1524 0 R (id2496422) 1529 0 R (id2496424) 1535 0 R (id2496433) 1540 0 R (id2496456) 1536 0 R (id2496480) 1538 0 R (id2496516) 1549 0 R (id2496542) 1551 0 R (id2496568) 1543 0 R (id2496593) 1545 0 R (id2496616) 1547 0 R (id2496740) 1553 0 R (id2496766) 1555 0 R (id2496793) 1557 0 R (id2496855) 1559 0 R (id2496885) 1561 0 R (id2496915) 1563 0 R (id2496941) 1565 0 R (id2497016) 1568 0 R (id2497024) 1569 0 R (id2497050) 1571 0 R (id2497086) 1573 0 R (id2497152) 1577 0 R (id2497217) 1575 0 R (id2497350) 1580 0 R (id2497358) 1581 0 R (id2497384) 1583 0 R (id2497452) 1585 0 R (id2497488) 1587 0 R (id2497528) 1595 0 R (id2497533) 1596 0 R (id2497591) 1598 0 R (id2497628) 1606 0 R (id2497664) 1600 0 R (id2497718) 1602 0 R (id2497756) 1604 0 R (id2497782) 1608 0 R (id2497808) 1610 0 R (id2497834) 1612 0 R (id2497861) 1614 0 R (id2497900) 1616 0 R (id2497930) 1618 0 R (id2497960) 1620 0 R (id2498003) 1622 0 R (id2498036) 1624 0 R (id2498062) 1626 0 R (id2498086) 1628 0 R (id2498144) 1630 0 R (id2498168) 1633 0 R (id2498176) 1634 0 R (id2498201) 1636 0 R (id2498224) 1638 0 R (id2498247) 1640 0 R (id2498293) 1642 0 R (id2498316) 1644 0 R (id2498366) 1651 0 R (id2498374) 1652 0 R (id2498397) 1654 0 R (id2498424) 1656 0 R (id2498451) 1658 0 R (id2498487) 1660 0 R (id2498528) 1663 0 R (id2498533) 1664 0 R (id2498565) 1666 0 R (id2498611) 1668 0 R (id2498646) 1670 0 R (id2498673) 1673 0 R (id2498691) 1674 0 R (id2498781) 1676 0 R (id2498807) 1678 0 R (id2498833) 1680 0 R (id2498856) 1682 0 R (id2498902) 1684 0 R (id2498925) 1686 0 R (id2498952) 1688 0 R (id2498978) 1690 0 R (id2499015) 1693 0 R (id2499021) 1694 0 R (id2499079) 1696 0 R (id2499106) 1698 0 R (id2499142) 1705 0 R (id2499154) 1706 0 R (id2499193) 1708 0 R (id2499220) 1710 0 R (id2499250) 1712 0 R (id2499275) 1714 0 R (id2499302) 1716 0 R (id2499338) 1718 0 R (id2499374) 1720 0 R (id2499401) 1722 0 R (id2499428) 1724 0 R (id2499473) 1726 0 R (id2499514) 1729 0 R (id2499524) 1731 0 R (id2499526) 1733 0 R (incremental_zone_transfers) 1011 0 R (internet_drafts) 1728 0 R (ipv6addresses) 1072 0 R (journal) 1000 0 R (lwresd) 1079 0 R (man.dig) 1739 0 R (man.dnssec-keygen) 1787 0 R (man.dnssec-signzone) 1805 0 R (man.host) 1772 0 R (man.named) 1854 0 R (man.named-checkconf) 1825 0 R (man.named-checkzone) 1837 0 R (man.rndc) 1876 0 R (man.rndc-confgen) 1905 0 R (man.rndc.conf) 1888 0 R (notify) 990 0 R (options) 1187 0 R (page.1) 654 0 R (page.10) 915 0 R (page.100) 1767 0 R (page.101) 1779 0 R (page.102) 1783 0 R (page.103) 1795 0 R (page.104) 1801 0 R (page.105) 1812 0 R (page.106) 1817 0 R (page.107) 1822 0 R (page.108) 1833 0 R (page.109) 1845 0 R (page.11) 922 0 R (page.110) 1850 0 R (page.111) 1861 0 R (page.112) 1866 0 R (page.113) 1873 0 R (page.114) 1884 0 R (page.115) 1895 0 R (page.116) 1901 0 R (page.117) 1911 0 R (page.118) 1917 0 R (page.12) 934 0 R (page.13) 939 0 R (page.14) 948 0 R (page.15) 959 0 R (page.16) 967 0 R (page.17) 974 0 R (page.18) 980 0 R (page.19) 988 0 R (page.2) 679 0 R (page.20) 1010 0 R (page.21) 1020 0 R (page.22) 1025 0 R (page.23) 1029 0 R (page.24) 1036 0 R (page.25) 1045 0 R (page.26) 1055 0 R (page.27) 1062 0 R (page.28) 1067 0 R (page.29) 1076 0 R (page.3) 689 0 R (page.30) 1083 0 R (page.31) 1087 0 R (page.32) 1098 0 R (page.33) 1104 0 R (page.34) 1112 0 R (page.35) 1119 0 R (page.36) 1128 0 R (page.37) 1141 0 R (page.38) 1149 0 R (page.39) 1154 0 R (page.4) 744 0 R (page.40) 1160 0 R (page.41) 1166 0 R (page.42) 1174 0 R (page.43) 1181 0 R (page.44) 1186 0 R (page.45) 1191 0 R (page.46) 1197 0 R (page.47) 1201 0 R (page.48) 1208 0 R (page.49) 1218 0 R (page.5) 808 0 R (page.50) 1223 0 R (page.51) 1228 0 R (page.52) 1239 0 R (page.53) 1245 0 R (page.54) 1250 0 R (page.55) 1254 0 R (page.56) 1259 0 R (page.57) 1268 0 R (page.58) 1274 0 R (page.59) 1281 0 R (page.6) 869 0 R (page.60) 1288 0 R (page.61) 1294 0 R (page.62) 1307 0 R (page.63) 1312 0 R (page.64) 1318 0 R (page.65) 1322 0 R (page.66) 1327 0 R (page.67) 1336 0 R (page.68) 1342 0 R (page.69) 1346 0 R (page.7) 873 0 R (page.70) 1350 0 R (page.71) 1358 0 R (page.72) 1362 0 R (page.73) 1377 0 R (page.74) 1392 0 R (page.75) 1409 0 R (page.76) 1416 0 R (page.77) 1427 0 R (page.78) 1433 0 R (page.79) 1443 0 R (page.8) 890 0 R (page.80) 1456 0 R (page.81) 1463 0 R (page.82) 1471 0 R (page.83) 1475 0 R (page.84) 1481 0 R (page.85) 1492 0 R (page.86) 1497 0 R (page.87) 1501 0 R (page.88) 1512 0 R (page.89) 1516 0 R (page.9) 904 0 R (page.90) 1523 0 R (page.91) 1533 0 R (page.92) 1593 0 R (page.93) 1649 0 R (page.94) 1703 0 R (page.95) 1737 0 R (page.96) 1746 0 R (page.97) 1752 0 R (page.98) 1758 0 R (page.99) 1762 0 R (proposed_standards) 1016 0 R (rfcs) 900 0 R (rndc) 1137 0 R (rrset_ordering) 955 0 R (sample_configuration) 941 0 R (section*.10) 1662 0 R (section*.11) 1672 0 R (section*.12) 1692 0 R (section*.13) 1704 0 R (section*.14) 1730 0 R (section*.15) 1740 0 R (section*.16) 1741 0 R (section*.17) 1742 0 R (section*.18) 1747 0 R (section*.19) 1748 0 R (section*.2) 1528 0 R (section*.20) 1753 0 R (section*.21) 1763 0 R (section*.22) 1768 0 R (section*.23) 1769 0 R (section*.24) 1770 0 R (section*.25) 1771 0 R (section*.26) 1773 0 R (section*.27) 1774 0 R (section*.28) 1775 0 R (section*.29) 1784 0 R (section*.3) 1534 0 R (section*.30) 1785 0 R (section*.31) 1786 0 R (section*.32) 1788 0 R (section*.33) 1789 0 R (section*.34) 1790 0 R (section*.35) 1791 0 R (section*.36) 1796 0 R (section*.37) 1802 0 R (section*.38) 1803 0 R (section*.39) 1804 0 R (section*.4) 1542 0 R (section*.40) 1806 0 R (section*.41) 1807 0 R (section*.42) 1808 0 R (section*.43) 1813 0 R (section*.44) 1818 0 R (section*.45) 1823 0 R (section*.46) 1824 0 R (section*.47) 1826 0 R (section*.48) 1827 0 R (section*.49) 1828 0 R (section*.5) 1567 0 R (section*.50) 1829 0 R (section*.51) 1834 0 R (section*.52) 1835 0 R (section*.53) 1836 0 R (section*.54) 1838 0 R (section*.55) 1839 0 R (section*.56) 1840 0 R (section*.57) 1841 0 R (section*.58) 1851 0 R (section*.59) 1852 0 R (section*.6) 1579 0 R (section*.60) 1853 0 R (section*.61) 1855 0 R (section*.62) 1856 0 R (section*.63) 1857 0 R (section*.64) 1862 0 R (section*.65) 1867 0 R (section*.66) 1868 0 R (section*.67) 1869 0 R (section*.68) 1874 0 R (section*.69) 1875 0 R (section*.7) 1594 0 R (section*.70) 1877 0 R (section*.71) 1878 0 R (section*.72) 1879 0 R (section*.73) 1880 0 R (section*.74) 1885 0 R (section*.75) 1886 0 R (section*.76) 1887 0 R (section*.77) 1889 0 R (section*.78) 1890 0 R (section*.79) 1891 0 R (section*.8) 1632 0 R (section*.80) 1896 0 R (section*.81) 1902 0 R (section*.82) 1903 0 R (section*.83) 1904 0 R (section*.84) 1906 0 R (section*.85) 1907 0 R (section*.86) 1912 0 R (section*.87) 1913 0 R (section*.88) 1918 0 R (section*.89) 1919 0 R (section*.9) 1650 0 R (section*.90) 1920 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 474 0 R (section.7.1) 530 0 R (section.7.2) 534 0 R (section.7.3) 546 0 R (section.8.1) 554 0 R (section.8.2) 562 0 R (section.8.3) 566 0 R (section.A.1) 574 0 R (section.A.2) 582 0 R (section.A.3) 590 0 R (section.B.1) 610 0 R (section.B.10) 646 0 R (section.B.2) 614 0 R (section.B.3) 618 0 R (section.B.4) 622 0 R (section.B.5) 626 0 R (section.B.6) 630 0 R (section.B.7) 634 0 R (section.B.8) 638 0 R (section.B.9) 642 0 R (server_statement_definition_and_usage) 1214 0 R (server_statement_grammar) 1323 0 R (statsfile) 1193 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 426 0 R (subsection.6.2.18) 430 0 R (subsection.6.2.19) 434 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 438 0 R (subsection.6.2.21) 442 0 R (subsection.6.2.22) 446 0 R (subsection.6.2.23) 450 0 R (subsection.6.2.24) 454 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 478 0 R (subsection.6.3.2) 490 0 R (subsection.6.3.3) 494 0 R (subsection.6.3.4) 498 0 R (subsection.6.3.5) 502 0 R (subsection.6.3.6) 518 0 R (subsection.6.3.7) 522 0 R (subsection.7.2.1) 538 0 R (subsection.7.2.2) 542 0 R (subsection.8.1.1) 558 0 R (subsection.A.1.1) 578 0 R (subsection.A.2.1) 586 0 R (subsection.A.3.1) 594 0 R (subsection.A.3.2) 598 0 R (subsection.A.3.3) 602 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.18) 418 0 R (subsubsection.6.2.16.19) 422 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 458 0 R (subsubsection.6.2.24.2) 462 0 R (subsubsection.6.2.24.3) 466 0 R (subsubsection.6.2.24.4) 470 0 R (subsubsection.6.3.1.1) 482 0 R (subsubsection.6.3.1.2) 486 0 R (subsubsection.6.3.5.1) 506 0 R (subsubsection.6.3.5.2) 510 0 R (subsubsection.6.3.5.3) 514 0 R (table.1.1) 882 0 R (table.1.2) 892 0 R (table.3.1) 951 0 R (table.3.2) 983 0 R (table.6.1) 1091 0 R (table.6.10) 1421 0 R (table.6.11) 1423 0 R (table.6.12) 1429 0 R (table.6.13) 1436 0 R (table.6.14) 1438 0 R (table.6.15) 1445 0 R (table.6.16) 1448 0 R (table.6.17) 1451 0 R (table.6.18) 1467 0 R (table.6.2) 1115 0 R (table.6.3) 1123 0 R (table.6.4) 1162 0 R (table.6.5) 1203 0 R (table.6.6) 1284 0 R (table.6.7) 1314 0 R (table.6.8) 1354 0 R (table.6.9) 1411 0 R (the_category_phrase) 1156 0 R (the_sortlist_statement) 1275 0 R (topology) 1270 0 R (tsig) 1030 0 R (tuning) 1289 0 R (types_of_resource_records_and_when_to_use_them) 899 0 R (view_statement_grammar) 1303 0 R (zone_statement_grammar) 1234 0 R (zone_transfers) 1006 0 R (zonefile_format) 1302 0 R] +1952 0 obj << +/Names [(Access_Control_Lists) 1486 0 R (Bv9ARM.ch01) 874 0 R (Bv9ARM.ch02) 923 0 R (Bv9ARM.ch03) 940 0 R (Bv9ARM.ch04) 989 0 R (Bv9ARM.ch05) 1077 0 R (Bv9ARM.ch06) 1088 0 R (Bv9ARM.ch07) 1485 0 R (Bv9ARM.ch08) 1511 0 R (Bv9ARM.ch09) 1526 0 R (Bv9ARM.ch10) 1747 0 R (Configuration_File_Grammar) 1113 0 R (DNSSEC) 1056 0 R (Doc-Start) 655 0 R (Setting_TTLs) 1452 0 R (acache) 930 0 R (access_control) 1231 0 R (acl) 1121 0 R (address_match_lists) 1094 0 R (admin_tools) 963 0 R (appendix.A) 570 0 R (appendix.B) 606 0 R (bibliography) 1535 0 R (boolean_options) 1005 0 R (builtin) 1305 0 R (chapter*.1) 690 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 526 0 R (chapter.8) 550 0 R (cite.RFC1033) 1662 0 R (cite.RFC1034) 1547 0 R (cite.RFC1035) 1549 0 R (cite.RFC1101) 1644 0 R (cite.RFC1123) 1646 0 R (cite.RFC1183) 1606 0 R (cite.RFC1464) 1684 0 R (cite.RFC1535) 1592 0 R (cite.RFC1536) 1594 0 R (cite.RFC1537) 1664 0 R (cite.RFC1591) 1648 0 R (cite.RFC1706) 1608 0 R (cite.RFC1712) 1704 0 R (cite.RFC1713) 1686 0 R (cite.RFC1794) 1688 0 R (cite.RFC1876) 1610 0 R (cite.RFC1912) 1666 0 R (cite.RFC1982) 1596 0 R (cite.RFC1995) 1554 0 R (cite.RFC1996) 1556 0 R (cite.RFC2010) 1668 0 R (cite.RFC2052) 1612 0 R (cite.RFC2065) 1716 0 R (cite.RFC2136) 1558 0 R (cite.RFC2137) 1718 0 R (cite.RFC2163) 1614 0 R (cite.RFC2168) 1616 0 R (cite.RFC2181) 1560 0 R (cite.RFC2219) 1670 0 R (cite.RFC2230) 1618 0 R (cite.RFC2240) 1690 0 R (cite.RFC2308) 1562 0 R (cite.RFC2317) 1650 0 R (cite.RFC2345) 1692 0 R (cite.RFC2352) 1694 0 R (cite.RFC2535) 1720 0 R (cite.RFC2536) 1620 0 R (cite.RFC2537) 1622 0 R (cite.RFC2538) 1624 0 R (cite.RFC2539) 1626 0 R (cite.RFC2540) 1628 0 R (cite.RFC2671) 1564 0 R (cite.RFC2672) 1566 0 R (cite.RFC2673) 1706 0 R (cite.RFC2782) 1630 0 R (cite.RFC2825) 1674 0 R (cite.RFC2826) 1652 0 R (cite.RFC2845) 1568 0 R (cite.RFC2874) 1708 0 R (cite.RFC2915) 1632 0 R (cite.RFC2929) 1654 0 R (cite.RFC2930) 1570 0 R (cite.RFC2931) 1572 0 R (cite.RFC3007) 1574 0 R (cite.RFC3008) 1722 0 R (cite.RFC3071) 1696 0 R (cite.RFC3090) 1724 0 R (cite.RFC3110) 1634 0 R (cite.RFC3123) 1636 0 R (cite.RFC3225) 1580 0 R (cite.RFC3258) 1698 0 R (cite.RFC3445) 1726 0 R (cite.RFC3490) 1676 0 R (cite.RFC3491) 1678 0 R (cite.RFC3492) 1680 0 R (cite.RFC3596) 1638 0 R (cite.RFC3597) 1640 0 R (cite.RFC3645) 1576 0 R (cite.RFC3655) 1728 0 R (cite.RFC3658) 1730 0 R (cite.RFC3755) 1732 0 R (cite.RFC3757) 1734 0 R (cite.RFC3833) 1582 0 R (cite.RFC3845) 1736 0 R (cite.RFC3901) 1700 0 R (cite.RFC4033) 1584 0 R (cite.RFC4035) 1586 0 R (cite.RFC4044) 1588 0 R (cite.RFC4074) 1598 0 R (cite.RFC974) 1551 0 R (cite.id2499963) 1741 0 R (configuration_file_elements) 1089 0 R (controls_statement_definition_and_usage) 976 0 R (diagnostic_tools) 911 0 R (dynamic_update) 999 0 R (dynamic_update_policies) 1051 0 R (dynamic_update_security) 1241 0 R (empty) 1313 0 R (historical_dns_information) 1528 0 R (id2464966) 875 0 R (id2466572) 876 0 R (id2467531) 880 0 R (id2467541) 881 0 R (id2467713) 893 0 R (id2467734) 894 0 R (id2467768) 895 0 R (id2467852) 898 0 R (id2467945) 891 0 R (id2470250) 905 0 R (id2470274) 908 0 R (id2470372) 909 0 R (id2470393) 910 0 R (id2470423) 916 0 R (id2470526) 917 0 R (id2470553) 918 0 R (id2470587) 924 0 R (id2470614) 925 0 R (id2470627) 926 0 R (id2470721) 929 0 R (id2470731) 935 0 R (id2470763) 942 0 R (id2470779) 943 0 R (id2470802) 949 0 R (id2470819) 950 0 R (id2471156) 953 0 R (id2471161) 954 0 R (id2473080) 981 0 R (id2473092) 982 0 R (id2473469) 1014 0 R (id2473488) 1015 0 R (id2473923) 1031 0 R (id2473940) 1032 0 R (id2473978) 1037 0 R (id2473996) 1038 0 R (id2474007) 1039 0 R (id2474046) 1040 0 R (id2474172) 1041 0 R (id2474285) 1047 0 R (id2474299) 1048 0 R (id2474417) 1049 0 R (id2474621) 1057 0 R (id2474691) 1058 0 R (id2474770) 1063 0 R (id2474844) 1068 0 R (id2474974) 1070 0 R (id2474996) 1071 0 R (id2475165) 1078 0 R (id2475313) 1090 0 R (id2476171) 1099 0 R (id2476199) 1104 0 R (id2476374) 1105 0 R (id2476389) 1106 0 R (id2476419) 1107 0 R (id2476502) 1114 0 R (id2476918) 1120 0 R (id2476961) 1122 0 R (id2477176) 1124 0 R (id2477605) 1131 0 R (id2477622) 1132 0 R (id2477645) 1133 0 R (id2477669) 1139 0 R (id2477760) 1143 0 R (id2477885) 1144 0 R (id2477938) 1150 0 R (id2478768) 1161 0 R (id2479441) 1167 0 R (id2479514) 1168 0 R (id2479578) 1175 0 R (id2479622) 1176 0 R (id2479637) 1177 0 R (id2481622) 1202 0 R (id2483531) 1228 0 R (id2483590) 1230 0 R (id2484011) 1240 0 R (id2485010) 1260 0 R (id2485069) 1266 0 R (id2485253) 1268 0 R (id2485483) 1274 0 R (id2486119) 1288 0 R (id2487441) 1318 0 R (id2488552) 1335 0 R (id2488603) 1336 0 R (id2488685) 1338 0 R (id2490133) 1356 0 R (id2490140) 1357 0 R (id2490146) 1358 0 R (id2490560) 1364 0 R (id2490593) 1369 0 R (id2492021) 1411 0 R (id2492346) 1417 0 R (id2492364) 1418 0 R (id2492385) 1421 0 R (id2492621) 1427 0 R (id2493653) 1433 0 R (id2493781) 1439 0 R (id2493802) 1440 0 R (id2494233) 1442 0 R (id2494370) 1444 0 R (id2494392) 1450 0 R (id2494865) 1453 0 R (id2494989) 1455 0 R (id2495004) 1456 0 R (id2495253) 1462 0 R (id2495275) 1463 0 R (id2495336) 1464 0 R (id2495405) 1465 0 R (id2495442) 1466 0 R (id2495504) 1471 0 R (id2496119) 1496 0 R (id2496196) 1497 0 R (id2496256) 1498 0 R (id2496336) 1512 0 R (id2496341) 1513 0 R (id2496353) 1514 0 R (id2496370) 1515 0 R (id2496432) 1527 0 R (id2496672) 1534 0 R (id2496928) 1539 0 R (id2496930) 1545 0 R (id2496938) 1550 0 R (id2496962) 1546 0 R (id2496985) 1548 0 R (id2497021) 1559 0 R (id2497048) 1561 0 R (id2497074) 1553 0 R (id2497098) 1555 0 R (id2497122) 1557 0 R (id2497177) 1563 0 R (id2497204) 1565 0 R (id2497230) 1567 0 R (id2497361) 1569 0 R (id2497390) 1571 0 R (id2497420) 1573 0 R (id2497447) 1575 0 R (id2497522) 1578 0 R (id2497529) 1579 0 R (id2497556) 1581 0 R (id2497592) 1583 0 R (id2497657) 1587 0 R (id2497722) 1585 0 R (id2497787) 1590 0 R (id2497796) 1591 0 R (id2497821) 1593 0 R (id2497890) 1595 0 R (id2497925) 1597 0 R (id2497965) 1604 0 R (id2497971) 1605 0 R (id2498028) 1607 0 R (id2498066) 1615 0 R (id2498101) 1609 0 R (id2498155) 1611 0 R (id2498194) 1613 0 R (id2498219) 1617 0 R (id2498245) 1619 0 R (id2498272) 1621 0 R (id2498298) 1623 0 R (id2498338) 1625 0 R (id2498368) 1627 0 R (id2498397) 1629 0 R (id2498440) 1631 0 R (id2498473) 1633 0 R (id2498500) 1635 0 R (id2498523) 1637 0 R (id2498581) 1639 0 R (id2498605) 1642 0 R (id2498613) 1643 0 R (id2498638) 1645 0 R (id2498661) 1647 0 R (id2498684) 1649 0 R (id2498730) 1651 0 R (id2498754) 1653 0 R (id2498804) 1660 0 R (id2498811) 1661 0 R (id2498835) 1663 0 R (id2498861) 1665 0 R (id2498888) 1667 0 R (id2498924) 1669 0 R (id2498965) 1672 0 R (id2498970) 1673 0 R (id2499002) 1675 0 R (id2499048) 1677 0 R (id2499083) 1679 0 R (id2499110) 1682 0 R (id2499128) 1683 0 R (id2499150) 1685 0 R (id2499176) 1687 0 R (id2499202) 1689 0 R (id2499225) 1691 0 R (id2499271) 1693 0 R (id2499294) 1695 0 R (id2499321) 1697 0 R (id2499347) 1699 0 R (id2499384) 1702 0 R (id2499390) 1703 0 R (id2499448) 1705 0 R (id2499475) 1707 0 R (id2499511) 1714 0 R (id2499523) 1715 0 R (id2499562) 1717 0 R (id2499657) 1719 0 R (id2499687) 1721 0 R (id2499713) 1723 0 R (id2499739) 1725 0 R (id2499776) 1727 0 R (id2499812) 1729 0 R (id2499838) 1731 0 R (id2499865) 1733 0 R (id2499910) 1735 0 R (id2499952) 1738 0 R (id2499961) 1740 0 R (id2499963) 1742 0 R (incremental_zone_transfers) 1011 0 R (internet_drafts) 1737 0 R (ipv6addresses) 1072 0 R (journal) 1000 0 R (lwresd) 1079 0 R (man.dig) 1748 0 R (man.dnssec-keygen) 1797 0 R (man.dnssec-signzone) 1814 0 R (man.host) 1781 0 R (man.named) 1863 0 R (man.named-checkconf) 1834 0 R (man.named-checkzone) 1847 0 R (man.rndc) 1885 0 R (man.rndc-confgen) 1918 0 R (man.rndc.conf) 1898 0 R (notify) 990 0 R (options) 1187 0 R (page.1) 654 0 R (page.10) 915 0 R (page.100) 1767 0 R (page.101) 1771 0 R (page.102) 1776 0 R (page.103) 1788 0 R (page.104) 1793 0 R (page.105) 1805 0 R (page.106) 1810 0 R (page.107) 1821 0 R (page.108) 1826 0 R (page.109) 1831 0 R (page.11) 922 0 R (page.110) 1843 0 R (page.111) 1855 0 R (page.112) 1859 0 R (page.113) 1870 0 R (page.114) 1875 0 R (page.115) 1880 0 R (page.116) 1893 0 R (page.117) 1903 0 R (page.118) 1910 0 R (page.119) 1917 0 R (page.12) 934 0 R (page.120) 1926 0 R (page.13) 939 0 R (page.14) 948 0 R (page.15) 959 0 R (page.16) 967 0 R (page.17) 974 0 R (page.18) 980 0 R (page.19) 988 0 R (page.2) 679 0 R (page.20) 1010 0 R (page.21) 1020 0 R (page.22) 1025 0 R (page.23) 1029 0 R (page.24) 1036 0 R (page.25) 1045 0 R (page.26) 1055 0 R (page.27) 1062 0 R (page.28) 1067 0 R (page.29) 1076 0 R (page.3) 689 0 R (page.30) 1083 0 R (page.31) 1087 0 R (page.32) 1098 0 R (page.33) 1103 0 R (page.34) 1112 0 R (page.35) 1119 0 R (page.36) 1128 0 R (page.37) 1138 0 R (page.38) 1149 0 R (page.39) 1154 0 R (page.4) 744 0 R (page.40) 1160 0 R (page.41) 1166 0 R (page.42) 1174 0 R (page.43) 1181 0 R (page.44) 1186 0 R (page.45) 1191 0 R (page.46) 1197 0 R (page.47) 1201 0 R (page.48) 1207 0 R (page.49) 1218 0 R (page.5) 808 0 R (page.50) 1223 0 R (page.51) 1227 0 R (page.52) 1237 0 R (page.53) 1245 0 R (page.54) 1250 0 R (page.55) 1254 0 R (page.56) 1259 0 R (page.57) 1265 0 R (page.58) 1273 0 R (page.59) 1279 0 R (page.6) 869 0 R (page.60) 1286 0 R (page.61) 1293 0 R (page.62) 1300 0 R (page.63) 1312 0 R (page.64) 1317 0 R (page.65) 1323 0 R (page.66) 1328 0 R (page.67) 1333 0 R (page.68) 1343 0 R (page.69) 1347 0 R (page.7) 873 0 R (page.70) 1351 0 R (page.71) 1355 0 R (page.72) 1363 0 R (page.73) 1368 0 R (page.74) 1386 0 R (page.75) 1401 0 R (page.76) 1416 0 R (page.77) 1426 0 R (page.78) 1432 0 R (page.79) 1438 0 R (page.8) 890 0 R (page.80) 1449 0 R (page.81) 1461 0 R (page.82) 1470 0 R (page.83) 1476 0 R (page.84) 1480 0 R (page.85) 1484 0 R (page.86) 1491 0 R (page.87) 1502 0 R (page.88) 1506 0 R (page.89) 1510 0 R (page.9) 904 0 R (page.90) 1521 0 R (page.91) 1525 0 R (page.92) 1533 0 R (page.93) 1543 0 R (page.94) 1602 0 R (page.95) 1658 0 R (page.96) 1712 0 R (page.97) 1746 0 R (page.98) 1756 0 R (page.99) 1762 0 R (proposed_standards) 1016 0 R (query_address) 1246 0 R (rfcs) 900 0 R (rndc) 1134 0 R (rrset_ordering) 955 0 R (sample_configuration) 941 0 R (section*.10) 1671 0 R (section*.11) 1681 0 R (section*.12) 1701 0 R (section*.13) 1713 0 R (section*.14) 1739 0 R (section*.15) 1749 0 R (section*.16) 1750 0 R (section*.17) 1751 0 R (section*.18) 1757 0 R (section*.19) 1758 0 R (section*.2) 1538 0 R (section*.20) 1763 0 R (section*.21) 1772 0 R (section*.22) 1777 0 R (section*.23) 1778 0 R (section*.24) 1779 0 R (section*.25) 1780 0 R (section*.26) 1782 0 R (section*.27) 1783 0 R (section*.28) 1784 0 R (section*.29) 1794 0 R (section*.3) 1544 0 R (section*.30) 1795 0 R (section*.31) 1796 0 R (section*.32) 1798 0 R (section*.33) 1799 0 R (section*.34) 1800 0 R (section*.35) 1801 0 R (section*.36) 1806 0 R (section*.37) 1811 0 R (section*.38) 1812 0 R (section*.39) 1813 0 R (section*.4) 1552 0 R (section*.40) 1815 0 R (section*.41) 1816 0 R (section*.42) 1817 0 R (section*.43) 1822 0 R (section*.44) 1827 0 R (section*.45) 1832 0 R (section*.46) 1833 0 R (section*.47) 1835 0 R (section*.48) 1836 0 R (section*.49) 1837 0 R (section*.5) 1577 0 R (section*.50) 1838 0 R (section*.51) 1844 0 R (section*.52) 1845 0 R (section*.53) 1846 0 R (section*.54) 1848 0 R (section*.55) 1849 0 R (section*.56) 1850 0 R (section*.57) 1851 0 R (section*.58) 1860 0 R (section*.59) 1861 0 R (section*.6) 1589 0 R (section*.60) 1862 0 R (section*.61) 1864 0 R (section*.62) 1865 0 R (section*.63) 1866 0 R (section*.64) 1871 0 R (section*.65) 1876 0 R (section*.66) 1881 0 R (section*.67) 1882 0 R (section*.68) 1883 0 R (section*.69) 1884 0 R (section*.7) 1603 0 R (section*.70) 1886 0 R (section*.71) 1887 0 R (section*.72) 1888 0 R (section*.73) 1894 0 R (section*.74) 1895 0 R (section*.75) 1896 0 R (section*.76) 1897 0 R (section*.77) 1899 0 R (section*.78) 1904 0 R (section*.79) 1905 0 R (section*.8) 1641 0 R (section*.80) 1906 0 R (section*.81) 1911 0 R (section*.82) 1912 0 R (section*.83) 1913 0 R (section*.84) 1919 0 R (section*.85) 1920 0 R (section*.86) 1921 0 R (section*.87) 1922 0 R (section*.88) 1927 0 R (section*.89) 1928 0 R (section*.9) 1659 0 R (section*.90) 1929 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 474 0 R (section.7.1) 530 0 R (section.7.2) 534 0 R (section.7.3) 546 0 R (section.8.1) 554 0 R (section.8.2) 562 0 R (section.8.3) 566 0 R (section.A.1) 574 0 R (section.A.2) 582 0 R (section.A.3) 590 0 R (section.B.1) 610 0 R (section.B.10) 646 0 R (section.B.2) 614 0 R (section.B.3) 618 0 R (section.B.4) 622 0 R (section.B.5) 626 0 R (section.B.6) 630 0 R (section.B.7) 634 0 R (section.B.8) 638 0 R (section.B.9) 642 0 R (server_statement_definition_and_usage) 1214 0 R (server_statement_grammar) 1324 0 R (statsfile) 1193 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 426 0 R (subsection.6.2.18) 430 0 R (subsection.6.2.19) 434 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 438 0 R (subsection.6.2.21) 442 0 R (subsection.6.2.22) 446 0 R (subsection.6.2.23) 450 0 R (subsection.6.2.24) 454 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 478 0 R (subsection.6.3.2) 490 0 R (subsection.6.3.3) 494 0 R (subsection.6.3.4) 498 0 R (subsection.6.3.5) 502 0 R (subsection.6.3.6) 518 0 R (subsection.6.3.7) 522 0 R (subsection.7.2.1) 538 0 R (subsection.7.2.2) 542 0 R (subsection.8.1.1) 558 0 R (subsection.A.1.1) 578 0 R (subsection.A.2.1) 586 0 R (subsection.A.3.1) 594 0 R (subsection.A.3.2) 598 0 R (subsection.A.3.3) 602 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.18) 418 0 R (subsubsection.6.2.16.19) 422 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 458 0 R (subsubsection.6.2.24.2) 462 0 R (subsubsection.6.2.24.3) 466 0 R (subsubsection.6.2.24.4) 470 0 R (subsubsection.6.3.1.1) 482 0 R (subsubsection.6.3.1.2) 486 0 R (subsubsection.6.3.5.1) 506 0 R (subsubsection.6.3.5.2) 510 0 R (subsubsection.6.3.5.3) 514 0 R (table.1.1) 882 0 R (table.1.2) 892 0 R (table.3.1) 951 0 R (table.3.2) 983 0 R (table.6.1) 1091 0 R (table.6.10) 1422 0 R (table.6.11) 1428 0 R (table.6.12) 1434 0 R (table.6.13) 1441 0 R (table.6.14) 1443 0 R (table.6.15) 1451 0 R (table.6.16) 1454 0 R (table.6.17) 1457 0 R (table.6.18) 1472 0 R (table.6.2) 1115 0 R (table.6.3) 1123 0 R (table.6.4) 1162 0 R (table.6.5) 1203 0 R (table.6.6) 1289 0 R (table.6.7) 1319 0 R (table.6.8) 1359 0 R (table.6.9) 1412 0 R (the_category_phrase) 1156 0 R (the_sortlist_statement) 1280 0 R (topology) 1275 0 R (tsig) 1030 0 R (tuning) 1294 0 R (types_of_resource_records_and_when_to_use_them) 899 0 R (view_statement_grammar) 1308 0 R (zone_statement_grammar) 1233 0 R (zone_transfers) 1006 0 R (zonefile_format) 1307 0 R] /Limits [(Access_Control_Lists) (zonefile_format)] >> endobj -1944 0 obj << -/Kids [1943 0 R] +1953 0 obj << +/Kids [1952 0 R] >> endobj -1945 0 obj << -/Dests 1944 0 R +1954 0 obj << +/Dests 1953 0 R >> endobj -1946 0 obj << +1955 0 obj << /Type /Catalog -/Pages 1941 0 R -/Outlines 1942 0 R -/Names 1945 0 R +/Pages 1950 0 R +/Outlines 1951 0 R +/Names 1954 0 R /PageMode /UseOutlines /OpenAction 649 0 R >> endobj -1947 0 obj << +1956 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() -/CreationDate (D:20080527222211Z) +/CreationDate (D:20081024041421Z) /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref -0 1948 +0 1957 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000009 00000 n -0000066898 00000 n -0000665358 00000 n +0000066894 00000 n +0000671475 00000 n 0000000054 00000 n 0000000086 00000 n -0000067022 00000 n -0000665286 00000 n +0000067018 00000 n +0000671403 00000 n 0000000133 00000 n 0000000173 00000 n -0000067147 00000 n -0000665200 00000 n +0000067143 00000 n +0000671317 00000 n 0000000221 00000 n 0000000273 00000 n -0000067272 00000 n -0000665114 00000 n +0000067268 00000 n +0000671231 00000 n 0000000321 00000 n 0000000377 00000 n -0000071535 00000 n -0000665004 00000 n +0000071531 00000 n +0000671121 00000 n 0000000425 00000 n 0000000478 00000 n -0000071660 00000 n -0000664930 00000 n +0000071656 00000 n +0000671047 00000 n 0000000531 00000 n 0000000572 00000 n -0000071785 00000 n -0000664843 00000 n +0000071781 00000 n +0000670960 00000 n 0000000625 00000 n 0000000674 00000 n -0000071910 00000 n -0000664756 00000 n +0000071906 00000 n +0000670873 00000 n 0000000727 00000 n 0000000757 00000 n -0000076188 00000 n -0000664632 00000 n +0000076184 00000 n +0000670749 00000 n 0000000810 00000 n 0000000861 00000 n -0000076313 00000 n -0000664558 00000 n +0000076309 00000 n +0000670675 00000 n 0000000919 00000 n 0000000964 00000 n -0000076438 00000 n -0000664471 00000 n +0000076434 00000 n +0000670588 00000 n 0000001022 00000 n 0000001062 00000 n -0000076563 00000 n -0000664397 00000 n +0000076559 00000 n +0000670514 00000 n 0000001120 00000 n 0000001162 00000 n -0000079535 00000 n -0000664273 00000 n +0000079531 00000 n +0000670390 00000 n 0000001215 00000 n 0000001260 00000 n -0000079660 00000 n -0000664212 00000 n +0000079656 00000 n +0000670329 00000 n 0000001318 00000 n 0000001355 00000 n -0000079785 00000 n -0000664138 00000 n +0000079781 00000 n +0000670255 00000 n 0000001408 00000 n 0000001463 00000 n -0000082713 00000 n -0000664013 00000 n +0000082709 00000 n +0000670130 00000 n 0000001509 00000 n 0000001556 00000 n -0000082838 00000 n -0000663939 00000 n +0000082834 00000 n +0000670056 00000 n 0000001604 00000 n 0000001648 00000 n -0000082963 00000 n -0000663852 00000 n +0000082959 00000 n +0000669969 00000 n 0000001696 00000 n 0000001735 00000 n -0000083088 00000 n -0000663765 00000 n +0000083084 00000 n +0000669882 00000 n 0000001783 00000 n 0000001825 00000 n -0000083212 00000 n -0000663678 00000 n +0000083208 00000 n +0000669795 00000 n 0000001873 00000 n 0000001936 00000 n -0000084298 00000 n -0000663604 00000 n +0000084291 00000 n +0000669721 00000 n 0000001984 00000 n 0000002034 00000 n -0000086008 00000 n -0000663476 00000 n +0000086001 00000 n +0000669593 00000 n 0000002080 00000 n 0000002126 00000 n -0000086132 00000 n -0000663363 00000 n +0000086125 00000 n +0000669480 00000 n 0000002174 00000 n 0000002218 00000 n -0000086257 00000 n -0000663287 00000 n +0000086250 00000 n +0000669404 00000 n 0000002271 00000 n 0000002323 00000 n -0000086382 00000 n -0000663210 00000 n +0000086375 00000 n +0000669327 00000 n 0000002377 00000 n 0000002436 00000 n -0000088910 00000 n -0000663119 00000 n +0000088903 00000 n +0000669236 00000 n 0000002485 00000 n 0000002523 00000 n -0000089162 00000 n -0000663002 00000 n +0000089155 00000 n +0000669119 00000 n 0000002572 00000 n 0000002618 00000 n -0000089288 00000 n -0000662884 00000 n +0000089281 00000 n +0000669001 00000 n 0000002672 00000 n 0000002739 00000 n -0000092495 00000 n -0000662805 00000 n +0000092488 00000 n +0000668922 00000 n 0000002798 00000 n 0000002842 00000 n -0000092621 00000 n -0000662726 00000 n +0000092614 00000 n +0000668843 00000 n 0000002901 00000 n 0000002949 00000 n -0000102950 00000 n -0000662647 00000 n +0000102943 00000 n +0000668764 00000 n 0000003003 00000 n 0000003036 00000 n -0000107881 00000 n -0000662515 00000 n +0000107874 00000 n +0000668632 00000 n 0000003083 00000 n 0000003126 00000 n -0000108007 00000 n -0000662436 00000 n +0000108000 00000 n +0000668553 00000 n 0000003175 00000 n 0000003205 00000 n -0000108133 00000 n -0000662304 00000 n +0000108126 00000 n +0000668421 00000 n 0000003254 00000 n 0000003292 00000 n -0000108259 00000 n -0000662239 00000 n +0000108252 00000 n +0000668356 00000 n 0000003346 00000 n 0000003388 00000 n -0000112550 00000 n -0000662146 00000 n +0000112543 00000 n +0000668263 00000 n 0000003437 00000 n 0000003496 00000 n -0000112677 00000 n -0000662014 00000 n +0000112670 00000 n +0000668131 00000 n 0000003545 00000 n 0000003578 00000 n -0000112806 00000 n -0000661949 00000 n +0000112799 00000 n +0000668066 00000 n 0000003632 00000 n 0000003681 00000 n -0000120178 00000 n -0000661817 00000 n +0000120171 00000 n +0000667934 00000 n 0000003730 00000 n 0000003758 00000 n -0000120305 00000 n -0000661699 00000 n +0000120298 00000 n +0000667816 00000 n 0000003812 00000 n 0000003881 00000 n -0000120434 00000 n -0000661620 00000 n +0000120427 00000 n +0000667737 00000 n 0000003940 00000 n 0000003988 00000 n -0000123309 00000 n -0000661541 00000 n +0000123302 00000 n +0000667658 00000 n 0000004047 00000 n 0000004092 00000 n -0000123438 00000 n -0000661448 00000 n +0000123431 00000 n +0000667565 00000 n 0000004146 00000 n 0000004214 00000 n -0000123567 00000 n -0000661355 00000 n +0000123560 00000 n +0000667472 00000 n 0000004268 00000 n 0000004338 00000 n -0000123696 00000 n -0000661262 00000 n +0000123689 00000 n +0000667379 00000 n 0000004392 00000 n 0000004455 00000 n -0000123824 00000 n -0000661169 00000 n +0000123817 00000 n +0000667286 00000 n 0000004509 00000 n 0000004564 00000 n -0000127470 00000 n -0000661090 00000 n +0000127463 00000 n +0000667207 00000 n 0000004618 00000 n 0000004650 00000 n -0000127599 00000 n -0000660997 00000 n +0000127592 00000 n +0000667114 00000 n 0000004699 00000 n 0000004727 00000 n -0000127728 00000 n -0000660904 00000 n +0000127721 00000 n +0000667021 00000 n 0000004776 00000 n 0000004808 00000 n -0000131334 00000 n -0000660772 00000 n +0000131327 00000 n +0000666889 00000 n 0000004857 00000 n 0000004887 00000 n -0000131463 00000 n -0000660693 00000 n +0000131456 00000 n +0000666810 00000 n 0000004941 00000 n 0000004982 00000 n -0000131591 00000 n -0000660600 00000 n +0000131584 00000 n +0000666717 00000 n 0000005036 00000 n 0000005078 00000 n -0000135033 00000 n -0000660521 00000 n +0000135026 00000 n +0000666638 00000 n 0000005132 00000 n 0000005177 00000 n -0000138107 00000 n -0000660403 00000 n +0000138100 00000 n +0000666520 00000 n 0000005226 00000 n 0000005272 00000 n -0000138236 00000 n -0000660324 00000 n +0000138229 00000 n +0000666441 00000 n 0000005326 00000 n 0000005386 00000 n -0000138364 00000 n -0000660245 00000 n +0000138357 00000 n +0000666362 00000 n 0000005440 00000 n 0000005509 00000 n -0000140844 00000 n -0000660112 00000 n +0000140837 00000 n +0000666229 00000 n 0000005556 00000 n 0000005609 00000 n -0000140973 00000 n -0000660033 00000 n +0000140966 00000 n +0000666150 00000 n 0000005658 00000 n 0000005714 00000 n -0000141102 00000 n -0000659954 00000 n +0000141095 00000 n +0000666071 00000 n 0000005763 00000 n 0000005812 00000 n -0000145286 00000 n -0000659821 00000 n +0000145279 00000 n +0000665938 00000 n 0000005859 00000 n 0000005911 00000 n -0000145415 00000 n -0000659703 00000 n +0000145408 00000 n +0000665820 00000 n 0000005960 00000 n 0000006011 00000 n -0000149682 00000 n -0000659585 00000 n +0000150015 00000 n +0000665702 00000 n 0000006065 00000 n 0000006110 00000 n -0000149811 00000 n -0000659506 00000 n +0000150142 00000 n +0000665623 00000 n 0000006169 00000 n 0000006203 00000 n -0000149940 00000 n -0000659427 00000 n +0000153580 00000 n +0000665544 00000 n 0000006262 00000 n 0000006310 00000 n -0000153288 00000 n -0000659309 00000 n +0000153709 00000 n +0000665426 00000 n 0000006364 00000 n 0000006404 00000 n -0000153417 00000 n -0000659230 00000 n +0000153838 00000 n +0000665347 00000 n 0000006463 00000 n 0000006497 00000 n -0000153546 00000 n -0000659151 00000 n +0000153967 00000 n +0000665268 00000 n 0000006556 00000 n 0000006604 00000 n -0000157451 00000 n -0000659018 00000 n +0000157817 00000 n +0000665135 00000 n 0000006653 00000 n 0000006703 00000 n -0000161073 00000 n -0000658939 00000 n +0000160916 00000 n +0000665056 00000 n 0000006757 00000 n 0000006804 00000 n -0000161202 00000 n -0000658846 00000 n +0000161044 00000 n +0000664963 00000 n 0000006858 00000 n 0000006918 00000 n -0000161459 00000 n -0000658753 00000 n +0000161303 00000 n +0000664870 00000 n 0000006972 00000 n 0000007024 00000 n -0000161588 00000 n -0000658660 00000 n +0000161432 00000 n +0000664777 00000 n 0000007078 00000 n 0000007143 00000 n -0000166242 00000 n -0000658567 00000 n +0000166331 00000 n +0000664684 00000 n 0000007197 00000 n 0000007248 00000 n -0000166371 00000 n -0000658474 00000 n +0000166460 00000 n +0000664591 00000 n 0000007302 00000 n 0000007366 00000 n -0000166500 00000 n -0000658381 00000 n +0000166589 00000 n +0000664498 00000 n 0000007420 00000 n 0000007467 00000 n -0000166629 00000 n -0000658288 00000 n +0000170354 00000 n +0000664405 00000 n 0000007521 00000 n 0000007581 00000 n -0000169977 00000 n -0000658195 00000 n +0000170483 00000 n +0000664312 00000 n 0000007635 00000 n 0000007686 00000 n -0000170106 00000 n -0000658063 00000 n +0000170612 00000 n +0000664180 00000 n 0000007741 00000 n 0000007806 00000 n -0000174741 00000 n -0000657984 00000 n +0000175144 00000 n +0000664101 00000 n 0000007866 00000 n 0000007913 00000 n -0000180920 00000 n -0000657905 00000 n +0000181571 00000 n +0000664022 00000 n 0000007973 00000 n 0000008021 00000 n -0000184667 00000 n -0000657812 00000 n +0000185205 00000 n +0000663929 00000 n 0000008076 00000 n 0000008126 00000 n -0000184796 00000 n -0000657719 00000 n +0000185334 00000 n +0000663836 00000 n 0000008181 00000 n 0000008244 00000 n -0000186525 00000 n -0000657626 00000 n +0000187219 00000 n +0000663743 00000 n 0000008299 00000 n 0000008351 00000 n -0000186654 00000 n -0000657533 00000 n +0000187348 00000 n +0000663650 00000 n 0000008406 00000 n 0000008471 00000 n -0000186783 00000 n -0000657440 00000 n +0000187477 00000 n +0000663557 00000 n 0000008526 00000 n 0000008578 00000 n -0000190468 00000 n -0000657307 00000 n +0000190809 00000 n +0000663424 00000 n 0000008633 00000 n 0000008698 00000 n -0000198661 00000 n -0000657228 00000 n +0000198905 00000 n +0000663345 00000 n 0000008758 00000 n 0000008802 00000 n -0000216022 00000 n -0000657135 00000 n +0000220055 00000 n +0000663252 00000 n 0000008862 00000 n 0000008901 00000 n -0000220238 00000 n -0000657042 00000 n +0000220184 00000 n +0000663159 00000 n 0000008961 00000 n 0000009008 00000 n -0000220366 00000 n -0000656949 00000 n +0000220313 00000 n +0000663066 00000 n 0000009068 00000 n 0000009111 00000 n -0000224175 00000 n -0000656856 00000 n +0000224587 00000 n +0000662973 00000 n 0000009171 00000 n 0000009210 00000 n -0000227072 00000 n -0000656763 00000 n +0000228114 00000 n +0000662880 00000 n 0000009270 00000 n 0000009312 00000 n -0000227201 00000 n -0000656670 00000 n +0000231064 00000 n +0000662787 00000 n 0000009372 00000 n 0000009415 00000 n -0000238324 00000 n -0000656577 00000 n +0000238656 00000 n +0000662694 00000 n 0000009475 00000 n -0000009522 00000 n -0000238453 00000 n -0000656484 00000 n -0000009582 00000 n -0000009643 00000 n -0000238581 00000 n -0000656391 00000 n -0000009704 00000 n -0000009756 00000 n -0000242249 00000 n -0000656298 00000 n -0000009817 00000 n -0000009870 00000 n -0000242378 00000 n -0000656205 00000 n -0000009931 00000 n -0000009969 00000 n -0000246412 00000 n -0000656112 00000 n -0000010030 00000 n -0000010082 00000 n -0000249427 00000 n -0000656019 00000 n -0000010143 00000 n -0000010187 00000 n -0000253418 00000 n -0000655926 00000 n -0000010248 00000 n -0000010284 00000 n -0000258233 00000 n -0000655833 00000 n -0000010345 00000 n -0000010408 00000 n -0000260759 00000 n -0000655740 00000 n -0000010469 00000 n -0000010519 00000 n -0000263961 00000 n -0000655647 00000 n -0000010580 00000 n -0000010629 00000 n -0000268000 00000 n -0000655568 00000 n -0000010690 00000 n -0000010746 00000 n -0000271423 00000 n -0000655475 00000 n -0000010801 00000 n -0000010852 00000 n -0000271552 00000 n -0000655382 00000 n -0000010907 00000 n -0000010971 00000 n -0000276264 00000 n -0000655289 00000 n -0000011026 00000 n -0000011083 00000 n -0000276393 00000 n -0000655196 00000 n -0000011138 00000 n -0000011208 00000 n -0000279958 00000 n -0000655103 00000 n -0000011263 00000 n -0000011312 00000 n -0000280087 00000 n -0000655010 00000 n -0000011367 00000 n -0000011429 00000 n -0000281791 00000 n -0000654917 00000 n -0000011484 00000 n -0000011533 00000 n -0000284860 00000 n -0000654799 00000 n -0000011588 00000 n -0000011650 00000 n -0000284989 00000 n -0000654720 00000 n -0000011710 00000 n -0000011749 00000 n -0000294301 00000 n -0000654627 00000 n -0000011809 00000 n -0000011843 00000 n -0000294430 00000 n -0000654534 00000 n -0000011903 00000 n -0000011944 00000 n -0000305297 00000 n -0000654455 00000 n -0000012004 00000 n -0000012056 00000 n -0000308858 00000 n -0000654337 00000 n -0000012105 00000 n -0000012138 00000 n -0000308987 00000 n -0000654219 00000 n -0000012192 00000 n -0000012264 00000 n -0000313123 00000 n -0000654140 00000 n -0000012323 00000 n -0000012367 00000 n -0000320422 00000 n -0000654061 00000 n -0000012426 00000 n -0000012479 00000 n -0000320811 00000 n -0000653968 00000 n -0000012533 00000 n -0000012583 00000 n -0000324449 00000 n -0000653875 00000 n -0000012637 00000 n -0000012675 00000 n -0000324707 00000 n -0000653782 00000 n -0000012729 00000 n -0000012778 00000 n -0000327531 00000 n -0000653650 00000 n -0000012832 00000 n -0000012884 00000 n -0000327660 00000 n -0000653571 00000 n -0000012943 00000 n -0000012995 00000 n -0000327789 00000 n -0000653478 00000 n -0000013054 00000 n -0000013107 00000 n -0000331442 00000 n -0000653399 00000 n -0000013166 00000 n -0000013215 00000 n -0000331570 00000 n -0000653306 00000 n -0000013269 00000 n -0000013349 00000 n -0000333809 00000 n -0000653227 00000 n -0000013403 00000 n -0000013452 00000 n -0000335690 00000 n -0000653094 00000 n -0000013499 00000 n -0000013551 00000 n -0000335819 00000 n -0000653015 00000 n -0000013600 00000 n -0000013644 00000 n -0000339912 00000 n -0000652883 00000 n -0000013693 00000 n -0000013734 00000 n -0000340041 00000 n -0000652804 00000 n -0000013788 00000 n -0000013836 00000 n -0000340170 00000 n -0000652725 00000 n -0000013890 00000 n -0000013941 00000 n -0000340299 00000 n -0000652646 00000 n -0000013990 00000 n -0000014037 00000 n -0000344562 00000 n -0000652513 00000 n -0000014084 00000 n -0000014121 00000 n -0000344691 00000 n -0000652395 00000 n -0000014170 00000 n -0000014209 00000 n -0000344820 00000 n -0000652330 00000 n -0000014263 00000 n -0000014341 00000 n -0000344949 00000 n -0000652237 00000 n -0000014390 00000 n -0000014457 00000 n -0000345078 00000 n -0000652158 00000 n -0000014506 00000 n -0000014551 00000 n -0000348517 00000 n -0000652025 00000 n -0000014599 00000 n -0000014631 00000 n -0000348646 00000 n -0000651907 00000 n -0000014680 00000 n -0000014719 00000 n -0000348775 00000 n -0000651842 00000 n -0000014773 00000 n -0000014834 00000 n -0000352540 00000 n -0000651710 00000 n -0000014883 00000 n -0000014940 00000 n -0000352669 00000 n -0000651645 00000 n -0000014994 00000 n -0000015043 00000 n -0000352798 00000 n -0000651527 00000 n -0000015092 00000 n -0000015154 00000 n -0000352927 00000 n -0000651448 00000 n -0000015208 00000 n -0000015263 00000 n -0000376951 00000 n -0000651355 00000 n -0000015317 00000 n -0000015358 00000 n -0000377080 00000 n -0000651276 00000 n -0000015412 00000 n -0000015464 00000 n -0000379783 00000 n -0000651156 00000 n -0000015512 00000 n -0000015546 00000 n -0000379912 00000 n -0000651077 00000 n -0000015595 00000 n -0000015622 00000 n -0000397852 00000 n -0000650984 00000 n -0000015671 00000 n -0000015699 00000 n -0000405388 00000 n -0000650891 00000 n -0000015748 00000 n -0000015785 00000 n -0000411702 00000 n -0000650798 00000 n -0000015834 00000 n -0000015873 00000 n -0000421224 00000 n -0000650705 00000 n -0000015922 00000 n -0000015961 00000 n -0000424111 00000 n -0000650612 00000 n -0000016010 00000 n -0000016049 00000 n -0000430484 00000 n -0000650519 00000 n -0000016098 00000 n -0000016127 00000 n -0000440080 00000 n -0000650426 00000 n -0000016176 00000 n -0000016204 00000 n -0000443285 00000 n -0000650333 00000 n -0000016253 00000 n -0000016286 00000 n -0000449281 00000 n -0000650254 00000 n -0000016336 00000 n -0000016373 00000 n -0000016742 00000 n -0000016864 00000 n -0000024693 00000 n -0000016426 00000 n -0000024567 00000 n -0000024630 00000 n -0000646135 00000 n -0000620192 00000 n -0000645961 00000 n -0000647160 00000 n -0000019727 00000 n -0000019944 00000 n -0000020013 00000 n -0000020082 00000 n -0000020150 00000 n -0000020218 00000 n -0000020267 00000 n -0000020314 00000 n -0000020647 00000 n -0000020669 00000 n -0000020837 00000 n -0000021002 00000 n -0000021171 00000 n -0000021350 00000 n -0000021659 00000 n -0000021819 00000 n -0000026052 00000 n -0000025867 00000 n -0000024793 00000 n -0000025989 00000 n -0000618980 00000 n -0000592501 00000 n -0000618806 00000 n -0000591816 00000 n -0000589671 00000 n -0000591652 00000 n -0000037758 00000 n -0000029108 00000 n -0000026137 00000 n -0000037632 00000 n -0000037695 00000 n -0000029642 00000 n -0000029796 00000 n -0000029953 00000 n -0000030110 00000 n -0000030266 00000 n -0000030423 00000 n -0000030585 00000 n -0000030746 00000 n -0000030907 00000 n -0000031069 00000 n -0000031236 00000 n -0000031403 00000 n -0000031568 00000 n -0000031730 00000 n -0000031896 00000 n -0000032057 00000 n -0000032212 00000 n -0000032369 00000 n -0000032525 00000 n -0000032682 00000 n -0000032839 00000 n -0000032996 00000 n -0000033150 00000 n -0000033306 00000 n -0000033468 00000 n -0000033630 00000 n -0000033786 00000 n -0000033943 00000 n -0000034105 00000 n -0000034272 00000 n -0000034438 00000 n -0000034599 00000 n -0000034754 00000 n -0000034911 00000 n -0000035068 00000 n -0000035230 00000 n -0000035387 00000 n -0000035544 00000 n -0000035706 00000 n -0000035863 00000 n -0000036025 00000 n -0000036192 00000 n -0000036358 00000 n -0000036520 00000 n -0000036682 00000 n -0000036844 00000 n -0000037005 00000 n -0000037167 00000 n -0000037322 00000 n -0000037477 00000 n -0000051128 00000 n +0000009518 00000 n +0000242961 00000 n +0000662601 00000 n +0000009578 00000 n +0000009639 00000 n +0000243090 00000 n +0000662508 00000 n +0000009700 00000 n +0000009752 00000 n +0000246876 00000 n +0000662415 00000 n +0000009813 00000 n +0000009866 00000 n +0000247005 00000 n +0000662322 00000 n +0000009927 00000 n +0000009965 00000 n +0000251036 00000 n +0000662229 00000 n +0000010026 00000 n +0000010078 00000 n +0000254054 00000 n +0000662136 00000 n +0000010139 00000 n +0000010183 00000 n +0000258009 00000 n +0000662043 00000 n +0000010244 00000 n +0000010280 00000 n +0000262835 00000 n +0000661950 00000 n +0000010341 00000 n +0000010404 00000 n +0000266161 00000 n +0000661857 00000 n +0000010465 00000 n +0000010515 00000 n +0000269322 00000 n +0000661764 00000 n +0000010576 00000 n +0000010625 00000 n +0000273049 00000 n +0000661685 00000 n +0000010686 00000 n +0000010742 00000 n +0000273177 00000 n +0000661592 00000 n +0000010797 00000 n +0000010848 00000 n +0000277701 00000 n +0000661499 00000 n +0000010903 00000 n +0000010967 00000 n +0000281213 00000 n +0000661406 00000 n +0000011022 00000 n +0000011079 00000 n +0000281342 00000 n +0000661313 00000 n +0000011134 00000 n +0000011204 00000 n +0000281471 00000 n +0000661220 00000 n +0000011259 00000 n +0000011308 00000 n +0000281600 00000 n +0000661127 00000 n +0000011363 00000 n +0000011425 00000 n +0000286259 00000 n +0000661034 00000 n +0000011480 00000 n +0000011529 00000 n +0000290062 00000 n +0000660916 00000 n +0000011584 00000 n +0000011646 00000 n +0000290191 00000 n +0000660837 00000 n +0000011706 00000 n +0000011745 00000 n +0000294250 00000 n +0000660744 00000 n +0000011805 00000 n +0000011839 00000 n +0000299864 00000 n +0000660651 00000 n +0000011899 00000 n +0000011940 00000 n +0000310269 00000 n +0000660572 00000 n +0000012000 00000 n +0000012052 00000 n +0000314360 00000 n +0000660454 00000 n +0000012101 00000 n +0000012134 00000 n +0000314488 00000 n +0000660336 00000 n +0000012188 00000 n +0000012260 00000 n +0000314616 00000 n +0000660257 00000 n +0000012319 00000 n +0000012363 00000 n +0000325410 00000 n +0000660178 00000 n +0000012422 00000 n +0000012475 00000 n +0000325798 00000 n +0000660085 00000 n +0000012529 00000 n +0000012579 00000 n +0000329220 00000 n +0000659992 00000 n +0000012633 00000 n +0000012671 00000 n +0000329479 00000 n +0000659899 00000 n +0000012725 00000 n +0000012774 00000 n +0000332384 00000 n +0000659767 00000 n +0000012828 00000 n +0000012880 00000 n +0000332512 00000 n +0000659688 00000 n +0000012939 00000 n +0000012991 00000 n +0000332641 00000 n +0000659595 00000 n +0000013050 00000 n +0000013103 00000 n +0000332769 00000 n +0000659516 00000 n +0000013162 00000 n +0000013211 00000 n +0000332898 00000 n +0000659423 00000 n +0000013265 00000 n +0000013345 00000 n +0000336811 00000 n +0000659344 00000 n +0000013399 00000 n +0000013448 00000 n +0000340557 00000 n +0000659211 00000 n +0000013495 00000 n +0000013547 00000 n +0000340686 00000 n +0000659132 00000 n +0000013596 00000 n +0000013640 00000 n +0000344779 00000 n +0000659000 00000 n +0000013689 00000 n +0000013730 00000 n +0000344908 00000 n +0000658921 00000 n +0000013784 00000 n +0000013832 00000 n +0000345037 00000 n +0000658842 00000 n +0000013886 00000 n +0000013937 00000 n +0000345166 00000 n +0000658763 00000 n +0000013986 00000 n +0000014033 00000 n +0000349429 00000 n +0000658630 00000 n +0000014080 00000 n +0000014117 00000 n +0000349558 00000 n +0000658512 00000 n +0000014166 00000 n +0000014205 00000 n +0000349687 00000 n +0000658447 00000 n +0000014259 00000 n +0000014337 00000 n +0000349816 00000 n +0000658354 00000 n +0000014386 00000 n +0000014453 00000 n +0000349945 00000 n +0000658275 00000 n +0000014502 00000 n +0000014547 00000 n +0000353384 00000 n +0000658142 00000 n +0000014595 00000 n +0000014627 00000 n +0000353513 00000 n +0000658024 00000 n +0000014676 00000 n +0000014715 00000 n +0000353642 00000 n +0000657959 00000 n +0000014769 00000 n +0000014830 00000 n +0000357407 00000 n +0000657827 00000 n +0000014879 00000 n +0000014936 00000 n +0000357536 00000 n +0000657762 00000 n +0000014990 00000 n +0000015039 00000 n +0000357665 00000 n +0000657644 00000 n +0000015088 00000 n +0000015150 00000 n +0000357794 00000 n +0000657565 00000 n +0000015204 00000 n +0000015259 00000 n +0000381817 00000 n +0000657472 00000 n +0000015313 00000 n +0000015354 00000 n +0000381946 00000 n +0000657393 00000 n +0000015408 00000 n +0000015460 00000 n +0000384676 00000 n +0000657273 00000 n +0000015508 00000 n +0000015542 00000 n +0000384805 00000 n +0000657194 00000 n +0000015591 00000 n +0000015618 00000 n +0000402812 00000 n +0000657101 00000 n +0000015667 00000 n +0000015695 00000 n +0000410349 00000 n +0000657008 00000 n +0000015744 00000 n +0000015781 00000 n +0000416667 00000 n +0000656915 00000 n +0000015830 00000 n +0000015869 00000 n +0000426187 00000 n +0000656822 00000 n +0000015918 00000 n +0000015957 00000 n +0000429074 00000 n +0000656729 00000 n +0000016006 00000 n +0000016045 00000 n +0000435466 00000 n +0000656636 00000 n +0000016094 00000 n +0000016123 00000 n +0000444851 00000 n +0000656543 00000 n +0000016172 00000 n +0000016200 00000 n +0000448491 00000 n +0000656450 00000 n +0000016249 00000 n +0000016282 00000 n +0000457889 00000 n +0000656371 00000 n +0000016332 00000 n +0000016369 00000 n +0000016738 00000 n +0000016860 00000 n +0000024689 00000 n +0000016422 00000 n +0000024563 00000 n +0000024626 00000 n +0000652234 00000 n +0000626291 00000 n +0000652060 00000 n +0000653259 00000 n +0000019723 00000 n +0000019940 00000 n +0000020009 00000 n +0000020078 00000 n +0000020146 00000 n +0000020214 00000 n +0000020263 00000 n +0000020310 00000 n +0000020643 00000 n +0000020665 00000 n +0000020833 00000 n +0000020998 00000 n +0000021167 00000 n +0000021346 00000 n +0000021655 00000 n +0000021815 00000 n +0000026053 00000 n +0000025868 00000 n +0000024789 00000 n +0000025990 00000 n +0000625079 00000 n +0000598600 00000 n +0000624905 00000 n +0000597915 00000 n +0000595770 00000 n +0000597751 00000 n +0000037759 00000 n +0000029109 00000 n +0000026138 00000 n +0000037633 00000 n +0000037696 00000 n +0000029643 00000 n +0000029797 00000 n +0000029954 00000 n +0000030111 00000 n +0000030267 00000 n +0000030424 00000 n +0000030586 00000 n +0000030747 00000 n +0000030908 00000 n +0000031070 00000 n +0000031237 00000 n +0000031404 00000 n +0000031569 00000 n +0000031731 00000 n +0000031897 00000 n +0000032058 00000 n +0000032213 00000 n +0000032370 00000 n +0000032526 00000 n +0000032683 00000 n +0000032840 00000 n +0000032997 00000 n +0000033151 00000 n +0000033307 00000 n +0000033469 00000 n +0000033631 00000 n +0000033787 00000 n +0000033944 00000 n +0000034106 00000 n +0000034273 00000 n +0000034439 00000 n +0000034600 00000 n +0000034755 00000 n +0000034912 00000 n +0000035069 00000 n +0000035231 00000 n +0000035388 00000 n +0000035545 00000 n +0000035707 00000 n +0000035864 00000 n +0000036026 00000 n +0000036193 00000 n +0000036359 00000 n +0000036521 00000 n +0000036683 00000 n +0000036845 00000 n +0000037006 00000 n +0000037168 00000 n +0000037323 00000 n +0000037478 00000 n +0000051124 00000 n 0000041076 00000 n -0000037843 00000 n -0000051065 00000 n -0000589120 00000 n -0000572039 00000 n -0000588936 00000 n +0000037844 00000 n +0000051061 00000 n +0000595219 00000 n +0000578138 00000 n +0000595035 00000 n 0000041666 00000 n 0000041829 00000 n 0000041991 00000 n @@ -11723,1175 +11781,1184 @@ xref 0000047361 00000 n 0000047525 00000 n 0000047694 00000 n -0000047863 00000 n -0000048032 00000 n -0000048201 00000 n -0000048370 00000 n -0000048539 00000 n -0000048708 00000 n -0000048877 00000 n -0000049046 00000 n -0000049216 00000 n -0000049386 00000 n -0000049556 00000 n -0000049725 00000 n -0000049895 00000 n -0000050065 00000 n -0000050235 00000 n -0000050404 00000 n -0000050574 00000 n -0000050742 00000 n -0000050903 00000 n -0000063950 00000 n -0000054659 00000 n -0000051226 00000 n -0000063887 00000 n -0000055225 00000 n -0000055388 00000 n -0000055551 00000 n -0000055714 00000 n -0000055877 00000 n -0000056039 00000 n -0000056202 00000 n -0000056370 00000 n -0000056538 00000 n -0000056705 00000 n -0000056873 00000 n -0000057029 00000 n -0000057191 00000 n -0000057358 00000 n -0000057525 00000 n -0000057687 00000 n -0000057849 00000 n -0000058011 00000 n -0000058173 00000 n -0000058340 00000 n -0000058507 00000 n -0000058673 00000 n -0000058835 00000 n -0000058997 00000 n -0000059152 00000 n -0000059307 00000 n -0000059464 00000 n -0000059626 00000 n -0000059788 00000 n -0000059944 00000 n -0000060099 00000 n -0000060256 00000 n -0000060418 00000 n -0000060574 00000 n -0000060731 00000 n -0000060887 00000 n -0000061044 00000 n -0000061206 00000 n -0000061363 00000 n -0000061525 00000 n -0000061682 00000 n -0000061843 00000 n -0000062005 00000 n -0000062167 00000 n -0000062322 00000 n -0000062478 00000 n -0000062635 00000 n -0000062792 00000 n -0000062949 00000 n -0000063105 00000 n -0000063262 00000 n -0000063419 00000 n -0000571073 00000 n -0000551106 00000 n -0000570900 00000 n -0000063576 00000 n -0000063731 00000 n -0000064395 00000 n -0000064210 00000 n -0000064061 00000 n -0000064332 00000 n -0000067523 00000 n -0000066713 00000 n -0000064436 00000 n -0000066835 00000 n -0000066959 00000 n -0000067084 00000 n -0000067209 00000 n -0000550217 00000 n -0000528885 00000 n -0000550043 00000 n -0000067334 00000 n -0000067397 00000 n -0000067460 00000 n -0000528118 00000 n -0000510710 00000 n -0000527945 00000 n -0000647278 00000 n -0000072034 00000 n -0000070852 00000 n -0000067647 00000 n -0000071346 00000 n -0000071409 00000 n -0000071472 00000 n -0000071597 00000 n -0000071722 00000 n -0000071847 00000 n -0000071002 00000 n -0000071195 00000 n -0000071972 00000 n -0000309051 00000 n -0000352991 00000 n -0000076688 00000 n -0000075652 00000 n -0000072158 00000 n -0000076125 00000 n -0000076250 00000 n -0000075802 00000 n -0000075964 00000 n -0000076375 00000 n -0000076500 00000 n -0000076625 00000 n -0000092558 00000 n -0000079910 00000 n -0000079350 00000 n -0000076812 00000 n -0000079472 00000 n -0000079597 00000 n -0000079722 00000 n -0000079847 00000 n -0000083337 00000 n -0000082196 00000 n -0000080021 00000 n -0000082650 00000 n -0000082775 00000 n -0000082900 00000 n -0000083025 00000 n -0000083150 00000 n -0000082346 00000 n -0000082498 00000 n -0000083274 00000 n -0000268064 00000 n -0000084423 00000 n -0000084113 00000 n -0000083422 00000 n -0000084235 00000 n -0000084360 00000 n -0000086508 00000 n -0000085823 00000 n -0000084521 00000 n -0000085945 00000 n -0000086070 00000 n -0000086194 00000 n -0000086319 00000 n -0000086445 00000 n -0000647396 00000 n -0000089413 00000 n -0000088545 00000 n -0000086606 00000 n -0000088847 00000 n -0000088973 00000 n -0000089036 00000 n -0000089099 00000 n -0000088687 00000 n -0000089225 00000 n -0000089351 00000 n -0000249491 00000 n -0000092747 00000 n -0000092310 00000 n -0000089524 00000 n -0000092432 00000 n -0000510054 00000 n -0000498468 00000 n -0000509877 00000 n -0000092684 00000 n -0000096532 00000 n -0000096347 00000 n -0000092871 00000 n -0000096469 00000 n -0000497933 00000 n -0000488419 00000 n -0000497756 00000 n -0000100916 00000 n -0000100525 00000 n -0000096695 00000 n -0000100853 00000 n -0000100667 00000 n -0000161651 00000 n -0000103202 00000 n -0000102765 00000 n -0000101053 00000 n -0000102887 00000 n -0000103013 00000 n -0000103076 00000 n -0000103139 00000 n -0000105854 00000 n -0000108386 00000 n -0000105703 00000 n -0000103326 00000 n -0000107818 00000 n -0000107944 00000 n -0000108070 00000 n -0000107496 00000 n -0000107657 00000 n -0000487560 00000 n -0000478188 00000 n -0000487388 00000 n -0000477626 00000 n -0000468543 00000 n -0000477453 00000 n -0000108196 00000 n -0000108322 00000 n -0000647514 00000 n -0000107325 00000 n -0000107383 00000 n -0000107473 00000 n -0000198725 00000 n -0000227265 00000 n -0000112935 00000 n -0000112001 00000 n -0000108538 00000 n -0000112485 00000 n -0000112613 00000 n -0000112157 00000 n -0000112323 00000 n -0000112741 00000 n -0000112870 00000 n -0000357017 00000 n -0000116427 00000 n -0000116047 00000 n -0000113086 00000 n -0000116362 00000 n -0000116194 00000 n -0000117661 00000 n -0000117470 00000 n -0000116552 00000 n -0000117596 00000 n -0000120563 00000 n -0000119987 00000 n -0000117760 00000 n -0000120113 00000 n -0000120240 00000 n -0000120369 00000 n -0000120498 00000 n -0000123953 00000 n -0000123118 00000 n -0000120701 00000 n -0000123244 00000 n -0000123373 00000 n -0000123502 00000 n -0000123631 00000 n -0000123759 00000 n -0000123888 00000 n -0000127856 00000 n -0000127088 00000 n -0000124091 00000 n -0000127405 00000 n -0000127235 00000 n -0000127534 00000 n -0000127663 00000 n -0000127792 00000 n -0000647638 00000 n -0000305361 00000 n -0000131720 00000 n -0000131143 00000 n -0000127968 00000 n -0000131269 00000 n -0000131398 00000 n -0000131526 00000 n -0000131655 00000 n -0000135162 00000 n -0000134842 00000 n -0000131858 00000 n -0000134968 00000 n -0000135097 00000 n -0000138493 00000 n -0000137734 00000 n -0000135274 00000 n -0000138042 00000 n -0000138171 00000 n -0000137881 00000 n -0000138300 00000 n -0000138428 00000 n -0000352733 00000 n -0000141231 00000 n -0000140653 00000 n -0000138659 00000 n -0000140779 00000 n -0000140908 00000 n -0000141037 00000 n -0000141166 00000 n -0000141671 00000 n -0000141480 00000 n -0000141330 00000 n -0000141606 00000 n -0000145673 00000 n -0000144907 00000 n -0000141713 00000 n -0000145221 00000 n -0000145350 00000 n -0000145478 00000 n -0000145543 00000 n -0000145608 00000 n -0000145054 00000 n -0000647763 00000 n -0000149746 00000 n -0000150069 00000 n -0000149491 00000 n -0000145772 00000 n -0000149617 00000 n -0000149875 00000 n -0000150004 00000 n -0000153675 00000 n -0000153097 00000 n -0000150207 00000 n -0000153223 00000 n -0000153352 00000 n -0000153481 00000 n -0000153610 00000 n -0000156460 00000 n -0000157710 00000 n -0000156334 00000 n -0000153800 00000 n -0000157386 00000 n -0000157515 00000 n -0000157580 00000 n -0000157645 00000 n -0000161715 00000 n -0000160882 00000 n -0000157864 00000 n -0000161008 00000 n -0000161137 00000 n -0000161264 00000 n -0000161329 00000 n -0000161394 00000 n -0000161523 00000 n -0000166757 00000 n -0000165359 00000 n -0000161827 00000 n -0000166177 00000 n -0000165533 00000 n -0000165684 00000 n -0000166306 00000 n -0000166435 00000 n -0000166564 00000 n -0000166693 00000 n -0000165843 00000 n -0000165993 00000 n -0000454734 00000 n -0000170235 00000 n -0000169578 00000 n -0000166895 00000 n -0000169912 00000 n -0000169725 00000 n -0000170041 00000 n -0000170170 00000 n -0000647888 00000 n -0000174870 00000 n -0000174550 00000 n -0000170360 00000 n -0000174676 00000 n -0000174805 00000 n -0000178034 00000 n -0000177655 00000 n -0000174995 00000 n -0000177969 00000 n -0000177802 00000 n -0000180984 00000 n -0000181178 00000 n -0000180729 00000 n -0000178146 00000 n -0000180855 00000 n -0000181049 00000 n -0000181113 00000 n -0000184925 00000 n -0000184141 00000 n -0000181290 00000 n -0000184602 00000 n -0000184731 00000 n -0000184860 00000 n -0000184297 00000 n -0000184449 00000 n -0000186912 00000 n -0000186334 00000 n -0000185037 00000 n -0000186460 00000 n -0000186589 00000 n -0000186718 00000 n -0000186847 00000 n -0000188482 00000 n -0000188291 00000 n -0000187024 00000 n -0000188417 00000 n -0000648013 00000 n -0000190597 00000 n -0000190277 00000 n -0000188581 00000 n -0000190403 00000 n -0000190532 00000 n -0000194902 00000 n -0000194534 00000 n -0000190709 00000 n -0000194837 00000 n -0000194681 00000 n -0000264025 00000 n -0000198790 00000 n -0000198470 00000 n -0000195027 00000 n -0000198596 00000 n -0000202882 00000 n -0000202386 00000 n -0000198915 00000 n -0000202687 00000 n -0000202752 00000 n -0000202817 00000 n -0000202533 00000 n -0000208035 00000 n -0000206902 00000 n -0000203007 00000 n -0000207970 00000 n -0000207085 00000 n -0000207241 00000 n -0000207426 00000 n -0000207600 00000 n -0000207785 00000 n -0000271616 00000 n -0000212172 00000 n -0000211981 00000 n -0000208227 00000 n -0000212107 00000 n -0000648138 00000 n -0000216151 00000 n -0000215831 00000 n -0000212297 00000 n -0000215957 00000 n -0000216086 00000 n -0000220494 00000 n -0000219505 00000 n -0000216263 00000 n -0000220173 00000 n -0000219670 00000 n -0000220302 00000 n -0000220430 00000 n -0000219839 00000 n -0000220005 00000 n -0000281855 00000 n -0000340363 00000 n -0000224304 00000 n -0000223794 00000 n -0000220660 00000 n -0000224110 00000 n -0000223941 00000 n -0000224239 00000 n -0000227330 00000 n -0000226881 00000 n -0000224429 00000 n -0000227007 00000 n -0000227136 00000 n -0000231409 00000 n -0000231218 00000 n -0000227496 00000 n -0000231344 00000 n -0000234348 00000 n -0000234157 00000 n -0000231521 00000 n -0000234283 00000 n -0000648263 00000 n -0000238710 00000 n -0000237775 00000 n -0000234501 00000 n -0000238259 00000 n -0000238388 00000 n -0000238517 00000 n -0000237931 00000 n -0000238645 00000 n -0000238104 00000 n -0000242507 00000 n -0000242058 00000 n -0000238822 00000 n -0000242184 00000 n -0000242313 00000 n -0000242442 00000 n -0000246540 00000 n -0000245874 00000 n -0000242660 00000 n -0000246347 00000 n -0000246476 00000 n -0000246030 00000 n -0000246192 00000 n -0000249685 00000 n -0000249047 00000 n -0000246706 00000 n -0000249362 00000 n -0000249194 00000 n -0000249555 00000 n -0000249620 00000 n -0000253546 00000 n -0000253044 00000 n -0000249810 00000 n -0000253353 00000 n -0000253481 00000 n -0000253191 00000 n -0000258361 00000 n -0000257681 00000 n -0000253725 00000 n -0000258168 00000 n -0000257837 00000 n -0000468188 00000 n -0000466190 00000 n -0000468023 00000 n -0000258297 00000 n -0000257999 00000 n -0000648388 00000 n -0000333873 00000 n -0000280022 00000 n -0000260888 00000 n -0000260568 00000 n -0000258487 00000 n -0000260694 00000 n -0000260823 00000 n -0000264220 00000 n -0000263770 00000 n -0000261000 00000 n -0000263896 00000 n -0000264090 00000 n -0000264155 00000 n -0000268128 00000 n -0000267809 00000 n -0000264373 00000 n -0000267935 00000 n -0000271680 00000 n -0000271232 00000 n -0000268227 00000 n -0000271358 00000 n -0000271487 00000 n -0000276522 00000 n -0000275571 00000 n -0000271792 00000 n -0000276199 00000 n -0000275736 00000 n -0000275887 00000 n -0000276328 00000 n -0000276457 00000 n -0000276046 00000 n -0000280216 00000 n -0000279767 00000 n -0000276634 00000 n -0000279893 00000 n -0000280151 00000 n -0000648513 00000 n -0000281920 00000 n -0000281600 00000 n -0000280328 00000 n -0000281726 00000 n -0000283415 00000 n -0000283224 00000 n -0000282032 00000 n -0000283350 00000 n -0000285248 00000 n -0000284669 00000 n -0000283514 00000 n -0000284795 00000 n -0000284924 00000 n -0000285053 00000 n -0000285118 00000 n -0000285183 00000 n -0000289283 00000 n -0000289092 00000 n -0000285360 00000 n -0000289218 00000 n -0000294558 00000 n -0000292553 00000 n -0000289395 00000 n -0000294236 00000 n -0000294365 00000 n -0000294493 00000 n -0000292772 00000 n -0000292934 00000 n -0000293096 00000 n -0000293258 00000 n -0000293419 00000 n -0000293590 00000 n -0000293750 00000 n -0000293913 00000 n -0000294075 00000 n -0000299681 00000 n -0000297777 00000 n -0000294670 00000 n -0000299616 00000 n -0000298005 00000 n -0000298167 00000 n -0000298329 00000 n -0000298492 00000 n -0000298655 00000 n -0000298817 00000 n -0000298979 00000 n -0000299141 00000 n -0000299303 00000 n -0000299464 00000 n -0000648638 00000 n -0000305426 00000 n -0000302905 00000 n -0000299806 00000 n -0000305232 00000 n -0000303160 00000 n -0000303313 00000 n -0000303475 00000 n -0000303637 00000 n -0000303799 00000 n -0000303961 00000 n -0000304123 00000 n -0000304284 00000 n -0000304446 00000 n -0000304600 00000 n -0000304761 00000 n -0000304916 00000 n -0000305078 00000 n -0000309115 00000 n -0000308537 00000 n -0000305538 00000 n -0000308663 00000 n -0000308728 00000 n -0000308793 00000 n -0000308922 00000 n -0000313512 00000 n -0000312571 00000 n -0000309240 00000 n -0000313058 00000 n -0000313187 00000 n -0000312727 00000 n -0000312897 00000 n -0000313252 00000 n -0000313317 00000 n -0000313382 00000 n -0000313447 00000 n -0000317077 00000 n -0000316756 00000 n -0000313624 00000 n -0000316882 00000 n -0000316947 00000 n -0000317012 00000 n -0000320940 00000 n -0000320231 00000 n -0000317189 00000 n -0000320357 00000 n -0000320486 00000 n -0000320551 00000 n -0000320616 00000 n -0000320681 00000 n -0000320746 00000 n -0000320875 00000 n -0000324965 00000 n -0000324128 00000 n -0000321052 00000 n -0000324254 00000 n -0000324319 00000 n -0000324384 00000 n -0000324513 00000 n -0000324578 00000 n -0000324643 00000 n -0000324771 00000 n -0000324835 00000 n -0000324900 00000 n -0000648763 00000 n -0000327918 00000 n -0000327340 00000 n -0000325090 00000 n -0000327466 00000 n -0000327595 00000 n -0000327724 00000 n -0000327853 00000 n -0000331829 00000 n -0000331251 00000 n -0000328111 00000 n -0000331377 00000 n -0000331506 00000 n -0000331634 00000 n -0000331699 00000 n -0000331764 00000 n -0000333938 00000 n -0000333618 00000 n -0000331967 00000 n -0000333744 00000 n -0000335948 00000 n -0000335499 00000 n -0000334050 00000 n -0000335625 00000 n -0000335754 00000 n -0000335883 00000 n -0000340428 00000 n -0000339484 00000 n -0000336060 00000 n -0000339847 00000 n -0000465869 00000 n -0000456656 00000 n -0000465683 00000 n -0000339631 00000 n -0000339976 00000 n -0000340105 00000 n -0000340234 00000 n -0000341466 00000 n -0000341275 00000 n -0000340661 00000 n -0000341401 00000 n -0000648888 00000 n -0000341893 00000 n -0000341702 00000 n -0000341552 00000 n -0000341828 00000 n -0000345206 00000 n -0000343980 00000 n -0000341935 00000 n -0000344497 00000 n -0000344626 00000 n -0000344755 00000 n -0000344884 00000 n -0000345013 00000 n -0000345142 00000 n -0000344136 00000 n -0000344308 00000 n -0000345660 00000 n -0000345469 00000 n -0000345319 00000 n -0000345595 00000 n -0000348904 00000 n -0000348326 00000 n -0000345702 00000 n -0000348452 00000 n -0000348581 00000 n -0000348710 00000 n -0000348839 00000 n -0000353183 00000 n -0000351964 00000 n -0000348990 00000 n -0000352475 00000 n -0000352604 00000 n -0000352862 00000 n -0000352120 00000 n -0000352299 00000 n -0000353055 00000 n -0000353119 00000 n -0000360069 00000 n -0000356241 00000 n -0000353335 00000 n -0000356367 00000 n -0000356432 00000 n -0000356497 00000 n -0000356562 00000 n -0000356627 00000 n -0000356692 00000 n -0000356757 00000 n -0000356822 00000 n -0000356887 00000 n -0000356952 00000 n -0000357082 00000 n -0000357147 00000 n -0000357212 00000 n -0000357277 00000 n +0000047862 00000 n +0000048031 00000 n +0000048200 00000 n +0000048369 00000 n +0000048538 00000 n +0000048707 00000 n +0000048876 00000 n +0000049045 00000 n +0000049215 00000 n +0000049385 00000 n +0000049555 00000 n +0000049724 00000 n +0000049894 00000 n +0000050064 00000 n +0000050232 00000 n +0000050401 00000 n +0000050571 00000 n +0000050738 00000 n +0000050899 00000 n +0000063946 00000 n +0000054652 00000 n +0000051222 00000 n +0000063883 00000 n +0000055218 00000 n +0000055381 00000 n +0000055544 00000 n +0000055707 00000 n +0000055870 00000 n +0000056032 00000 n +0000056195 00000 n +0000056363 00000 n +0000056531 00000 n +0000056699 00000 n +0000056867 00000 n +0000057023 00000 n +0000057185 00000 n +0000057352 00000 n +0000057519 00000 n +0000057681 00000 n +0000057843 00000 n +0000058005 00000 n +0000058167 00000 n +0000058334 00000 n +0000058501 00000 n +0000058667 00000 n +0000058829 00000 n +0000058991 00000 n +0000059146 00000 n +0000059301 00000 n +0000059458 00000 n +0000059620 00000 n +0000059782 00000 n +0000059939 00000 n +0000060094 00000 n +0000060251 00000 n +0000060413 00000 n +0000060569 00000 n +0000060726 00000 n +0000060882 00000 n +0000061039 00000 n +0000061201 00000 n +0000061358 00000 n +0000061520 00000 n +0000061677 00000 n +0000061838 00000 n +0000062000 00000 n +0000062162 00000 n +0000062317 00000 n +0000062473 00000 n +0000062630 00000 n +0000062787 00000 n +0000062944 00000 n +0000063100 00000 n +0000063257 00000 n +0000063414 00000 n +0000577172 00000 n +0000557205 00000 n +0000576999 00000 n +0000063571 00000 n +0000063727 00000 n +0000064391 00000 n +0000064206 00000 n +0000064057 00000 n +0000064328 00000 n +0000067519 00000 n +0000066709 00000 n +0000064432 00000 n +0000066831 00000 n +0000066955 00000 n +0000067080 00000 n +0000067205 00000 n +0000556316 00000 n +0000534984 00000 n +0000556142 00000 n +0000067330 00000 n +0000067393 00000 n +0000067456 00000 n +0000534210 00000 n +0000516663 00000 n +0000534037 00000 n +0000653377 00000 n +0000072030 00000 n +0000070848 00000 n +0000067643 00000 n +0000071342 00000 n +0000071405 00000 n +0000071468 00000 n +0000071593 00000 n +0000071718 00000 n +0000071843 00000 n +0000070998 00000 n +0000071191 00000 n +0000071968 00000 n +0000314552 00000 n +0000357858 00000 n +0000076684 00000 n +0000075648 00000 n +0000072154 00000 n +0000076121 00000 n +0000076246 00000 n +0000075798 00000 n +0000075960 00000 n +0000076371 00000 n +0000076496 00000 n +0000076621 00000 n +0000092551 00000 n +0000079906 00000 n +0000079346 00000 n +0000076808 00000 n +0000079468 00000 n +0000079593 00000 n +0000079718 00000 n +0000079843 00000 n +0000083333 00000 n +0000082192 00000 n +0000080017 00000 n +0000082646 00000 n +0000082771 00000 n +0000082896 00000 n +0000083021 00000 n +0000083146 00000 n +0000082342 00000 n +0000082494 00000 n +0000083270 00000 n +0000273113 00000 n +0000084416 00000 n +0000084106 00000 n +0000083418 00000 n +0000084228 00000 n +0000084353 00000 n +0000086501 00000 n +0000085816 00000 n +0000084514 00000 n +0000085938 00000 n +0000086063 00000 n +0000086187 00000 n +0000086312 00000 n +0000086438 00000 n +0000653495 00000 n +0000089406 00000 n +0000088538 00000 n +0000086599 00000 n +0000088840 00000 n +0000088966 00000 n +0000089029 00000 n +0000089092 00000 n +0000088680 00000 n +0000089218 00000 n +0000089344 00000 n +0000254118 00000 n +0000092740 00000 n +0000092303 00000 n +0000089517 00000 n +0000092425 00000 n +0000516007 00000 n +0000504421 00000 n +0000515830 00000 n +0000092677 00000 n +0000096525 00000 n +0000096340 00000 n +0000092864 00000 n +0000096462 00000 n +0000503882 00000 n +0000494141 00000 n +0000503705 00000 n +0000100909 00000 n +0000100518 00000 n +0000096688 00000 n +0000100846 00000 n +0000100660 00000 n +0000161496 00000 n +0000103195 00000 n +0000102758 00000 n +0000101046 00000 n +0000102880 00000 n +0000103006 00000 n +0000103069 00000 n +0000103132 00000 n +0000105847 00000 n +0000108379 00000 n +0000105696 00000 n +0000103319 00000 n +0000107811 00000 n +0000107937 00000 n +0000108063 00000 n +0000107489 00000 n +0000107650 00000 n +0000493282 00000 n +0000483910 00000 n +0000493110 00000 n +0000483348 00000 n +0000474265 00000 n +0000483175 00000 n +0000108189 00000 n +0000108315 00000 n +0000653613 00000 n +0000107318 00000 n +0000107376 00000 n +0000107466 00000 n +0000198969 00000 n +0000231128 00000 n +0000112928 00000 n +0000111994 00000 n +0000108531 00000 n +0000112478 00000 n +0000112606 00000 n +0000112150 00000 n +0000112316 00000 n +0000112734 00000 n +0000112863 00000 n +0000361883 00000 n +0000116420 00000 n +0000116040 00000 n +0000113079 00000 n +0000116355 00000 n +0000116187 00000 n +0000117654 00000 n +0000117463 00000 n +0000116545 00000 n +0000117589 00000 n +0000120556 00000 n +0000119980 00000 n +0000117753 00000 n +0000120106 00000 n +0000120233 00000 n +0000120362 00000 n +0000120491 00000 n +0000123946 00000 n +0000123111 00000 n +0000120694 00000 n +0000123237 00000 n +0000123366 00000 n +0000123495 00000 n +0000123624 00000 n +0000123752 00000 n +0000123881 00000 n +0000127849 00000 n +0000127081 00000 n +0000124084 00000 n +0000127398 00000 n +0000127228 00000 n +0000127527 00000 n +0000127656 00000 n +0000127785 00000 n +0000653737 00000 n +0000310333 00000 n +0000131713 00000 n +0000131136 00000 n +0000127961 00000 n +0000131262 00000 n +0000131391 00000 n +0000131519 00000 n +0000131648 00000 n +0000135155 00000 n +0000134835 00000 n +0000131851 00000 n +0000134961 00000 n +0000135090 00000 n +0000138486 00000 n +0000137727 00000 n +0000135267 00000 n +0000138035 00000 n +0000138164 00000 n +0000137874 00000 n +0000138293 00000 n +0000138421 00000 n +0000357600 00000 n +0000141224 00000 n +0000140646 00000 n +0000138652 00000 n +0000140772 00000 n +0000140901 00000 n +0000141030 00000 n +0000141159 00000 n +0000141664 00000 n +0000141473 00000 n +0000141323 00000 n +0000141599 00000 n +0000145666 00000 n +0000144900 00000 n +0000141706 00000 n +0000145214 00000 n +0000145343 00000 n +0000145471 00000 n +0000145536 00000 n +0000145601 00000 n +0000145047 00000 n +0000653862 00000 n +0000150078 00000 n +0000150270 00000 n +0000149824 00000 n +0000145765 00000 n +0000149950 00000 n +0000150205 00000 n +0000154096 00000 n +0000153389 00000 n +0000150395 00000 n +0000153515 00000 n +0000153644 00000 n +0000153773 00000 n +0000153902 00000 n +0000154031 00000 n +0000156826 00000 n +0000158075 00000 n +0000156700 00000 n +0000154221 00000 n +0000157752 00000 n +0000157881 00000 n +0000157946 00000 n +0000158010 00000 n +0000161559 00000 n +0000160725 00000 n +0000158229 00000 n +0000160851 00000 n +0000160980 00000 n +0000161108 00000 n +0000161173 00000 n +0000161238 00000 n +0000161367 00000 n +0000166717 00000 n +0000165800 00000 n +0000161671 00000 n +0000166266 00000 n +0000165956 00000 n +0000166107 00000 n +0000166395 00000 n +0000166524 00000 n +0000166652 00000 n +0000460456 00000 n +0000170741 00000 n +0000169599 00000 n +0000166855 00000 n +0000170289 00000 n +0000170418 00000 n +0000169764 00000 n +0000169916 00000 n +0000170103 00000 n +0000170547 00000 n +0000170676 00000 n +0000653987 00000 n +0000175273 00000 n +0000174953 00000 n +0000170866 00000 n +0000175079 00000 n +0000175208 00000 n +0000178462 00000 n +0000178083 00000 n +0000175398 00000 n +0000178397 00000 n +0000178230 00000 n +0000181635 00000 n +0000181830 00000 n +0000181380 00000 n +0000178574 00000 n +0000181506 00000 n +0000181700 00000 n +0000181765 00000 n +0000185463 00000 n +0000184678 00000 n +0000181942 00000 n +0000185140 00000 n +0000185269 00000 n +0000185398 00000 n +0000184834 00000 n +0000184987 00000 n +0000187606 00000 n +0000187028 00000 n +0000185575 00000 n +0000187154 00000 n +0000187283 00000 n +0000187412 00000 n +0000187541 00000 n +0000189177 00000 n +0000188986 00000 n +0000187718 00000 n +0000189112 00000 n +0000654112 00000 n +0000190937 00000 n +0000190618 00000 n +0000189276 00000 n +0000190744 00000 n +0000190873 00000 n +0000195079 00000 n +0000194711 00000 n +0000191049 00000 n +0000195014 00000 n +0000194858 00000 n +0000269386 00000 n +0000199034 00000 n +0000198714 00000 n +0000195204 00000 n +0000198840 00000 n +0000202871 00000 n +0000202551 00000 n +0000199159 00000 n +0000202677 00000 n +0000202742 00000 n +0000202806 00000 n +0000208134 00000 n +0000206840 00000 n +0000202996 00000 n +0000208069 00000 n +0000207032 00000 n +0000207186 00000 n +0000207342 00000 n +0000207527 00000 n +0000207701 00000 n +0000207885 00000 n +0000277765 00000 n +0000212392 00000 n +0000212201 00000 n +0000208313 00000 n +0000212327 00000 n +0000654237 00000 n +0000216088 00000 n +0000215897 00000 n +0000212517 00000 n +0000216023 00000 n +0000220442 00000 n +0000219499 00000 n +0000216200 00000 n +0000219990 00000 n +0000220119 00000 n +0000219655 00000 n +0000220248 00000 n +0000220377 00000 n +0000219824 00000 n +0000286323 00000 n +0000224715 00000 n +0000224024 00000 n +0000220608 00000 n +0000224522 00000 n +0000224180 00000 n +0000224351 00000 n +0000224651 00000 n +0000345230 00000 n +0000228243 00000 n +0000227923 00000 n +0000224840 00000 n +0000228049 00000 n +0000228178 00000 n +0000231193 00000 n +0000230873 00000 n +0000228355 00000 n +0000230999 00000 n +0000235248 00000 n +0000235057 00000 n +0000231346 00000 n +0000235183 00000 n +0000654362 00000 n +0000238785 00000 n +0000238284 00000 n +0000235401 00000 n +0000238591 00000 n +0000238720 00000 n +0000238431 00000 n +0000243217 00000 n +0000242410 00000 n +0000238951 00000 n +0000242896 00000 n +0000243025 00000 n +0000242566 00000 n +0000243153 00000 n +0000242741 00000 n +0000247134 00000 n +0000246685 00000 n +0000243329 00000 n +0000246811 00000 n +0000246940 00000 n +0000247069 00000 n +0000251164 00000 n +0000250497 00000 n +0000247287 00000 n +0000250971 00000 n +0000251100 00000 n +0000250653 00000 n +0000250815 00000 n +0000254312 00000 n +0000253673 00000 n +0000251330 00000 n +0000253989 00000 n +0000253820 00000 n +0000254182 00000 n +0000254247 00000 n +0000258137 00000 n +0000257637 00000 n +0000254437 00000 n +0000257944 00000 n +0000258073 00000 n +0000257784 00000 n +0000654487 00000 n +0000262963 00000 n +0000262285 00000 n +0000258316 00000 n +0000262770 00000 n +0000262441 00000 n +0000473910 00000 n +0000471912 00000 n +0000473745 00000 n +0000262898 00000 n +0000262603 00000 n +0000336875 00000 n +0000281535 00000 n +0000266290 00000 n +0000265970 00000 n +0000263089 00000 n +0000266096 00000 n +0000266225 00000 n +0000269580 00000 n +0000269131 00000 n +0000266456 00000 n +0000269257 00000 n +0000269451 00000 n +0000269515 00000 n +0000273306 00000 n +0000272858 00000 n +0000269679 00000 n +0000272984 00000 n +0000273241 00000 n +0000277829 00000 n +0000277340 00000 n +0000273418 00000 n +0000277636 00000 n +0000277487 00000 n +0000281728 00000 n +0000280676 00000 n +0000277941 00000 n +0000281148 00000 n +0000280832 00000 n +0000281277 00000 n +0000281406 00000 n +0000280994 00000 n +0000281664 00000 n +0000654612 00000 n +0000284830 00000 n +0000284639 00000 n +0000281840 00000 n +0000284765 00000 n +0000286388 00000 n +0000286068 00000 n +0000284942 00000 n +0000286194 00000 n +0000287824 00000 n +0000287633 00000 n +0000286500 00000 n +0000287759 00000 n +0000290450 00000 n +0000289871 00000 n +0000287923 00000 n +0000289997 00000 n +0000290126 00000 n +0000290255 00000 n +0000290320 00000 n +0000290385 00000 n +0000294379 00000 n +0000294059 00000 n +0000290562 00000 n +0000294185 00000 n +0000294314 00000 n +0000299993 00000 n +0000297603 00000 n +0000294491 00000 n +0000299799 00000 n +0000299928 00000 n +0000297849 00000 n +0000298011 00000 n +0000298173 00000 n +0000298334 00000 n +0000298494 00000 n +0000298665 00000 n +0000298827 00000 n +0000298989 00000 n +0000299149 00000 n +0000299310 00000 n +0000299473 00000 n +0000299636 00000 n +0000654737 00000 n +0000305217 00000 n +0000303157 00000 n +0000300118 00000 n +0000305152 00000 n +0000303394 00000 n +0000303554 00000 n +0000303716 00000 n +0000303877 00000 n +0000304038 00000 n +0000304200 00000 n +0000304363 00000 n +0000304517 00000 n +0000304670 00000 n +0000304832 00000 n +0000304992 00000 n +0000310526 00000 n +0000308563 00000 n +0000305342 00000 n +0000310204 00000 n +0000308782 00000 n +0000308942 00000 n +0000309104 00000 n +0000309263 00000 n +0000309422 00000 n +0000309575 00000 n +0000309738 00000 n +0000309888 00000 n +0000310050 00000 n +0000310398 00000 n +0000310462 00000 n +0000314874 00000 n +0000313808 00000 n +0000310651 00000 n +0000314295 00000 n +0000314423 00000 n +0000314680 00000 n +0000313964 00000 n +0000314134 00000 n +0000314745 00000 n +0000314810 00000 n +0000318327 00000 n +0000318006 00000 n +0000314999 00000 n +0000318132 00000 n +0000318197 00000 n +0000318262 00000 n +0000321897 00000 n +0000321576 00000 n +0000318426 00000 n +0000321702 00000 n +0000321767 00000 n +0000321832 00000 n +0000325927 00000 n +0000325219 00000 n +0000322009 00000 n +0000325345 00000 n +0000325474 00000 n +0000325539 00000 n +0000325604 00000 n +0000325668 00000 n +0000325733 00000 n +0000325862 00000 n +0000654862 00000 n +0000329738 00000 n +0000328899 00000 n +0000326052 00000 n +0000329025 00000 n +0000329090 00000 n +0000329155 00000 n +0000329284 00000 n +0000329349 00000 n +0000329414 00000 n +0000329543 00000 n +0000329608 00000 n +0000329673 00000 n +0000333026 00000 n +0000332193 00000 n +0000329917 00000 n +0000332319 00000 n +0000332448 00000 n +0000332576 00000 n +0000332704 00000 n +0000332833 00000 n +0000332962 00000 n +0000336940 00000 n +0000336490 00000 n +0000333219 00000 n +0000336616 00000 n +0000336681 00000 n +0000336746 00000 n +0000338422 00000 n +0000338231 00000 n +0000337065 00000 n +0000338357 00000 n +0000338875 00000 n +0000338684 00000 n +0000338534 00000 n +0000338810 00000 n +0000340815 00000 n +0000340366 00000 n +0000338917 00000 n +0000340492 00000 n +0000340621 00000 n +0000340750 00000 n +0000654987 00000 n +0000345295 00000 n +0000344351 00000 n +0000340927 00000 n +0000344714 00000 n +0000471591 00000 n +0000462378 00000 n +0000471405 00000 n +0000344498 00000 n +0000344843 00000 n +0000344972 00000 n +0000345101 00000 n +0000346333 00000 n +0000346142 00000 n +0000345528 00000 n +0000346268 00000 n +0000346760 00000 n +0000346569 00000 n +0000346419 00000 n +0000346695 00000 n +0000350073 00000 n +0000348847 00000 n +0000346802 00000 n +0000349364 00000 n +0000349493 00000 n +0000349622 00000 n +0000349751 00000 n +0000349880 00000 n +0000350009 00000 n +0000349003 00000 n +0000349175 00000 n +0000350527 00000 n +0000350336 00000 n +0000350186 00000 n +0000350462 00000 n +0000353771 00000 n +0000353193 00000 n +0000350569 00000 n +0000353319 00000 n +0000353448 00000 n +0000353577 00000 n +0000353706 00000 n +0000655112 00000 n +0000358050 00000 n +0000356831 00000 n +0000353857 00000 n 0000357342 00000 n -0000357407 00000 n -0000357472 00000 n -0000357537 00000 n -0000357602 00000 n -0000357667 00000 n -0000357732 00000 n -0000357797 00000 n -0000357862 00000 n -0000357927 00000 n -0000357992 00000 n -0000358057 00000 n -0000358122 00000 n -0000358187 00000 n -0000358252 00000 n -0000358317 00000 n -0000358382 00000 n -0000358447 00000 n -0000358512 00000 n -0000358577 00000 n -0000358641 00000 n -0000358706 00000 n -0000358771 00000 n -0000358836 00000 n -0000358901 00000 n -0000358966 00000 n -0000359031 00000 n -0000359096 00000 n -0000359161 00000 n -0000359226 00000 n -0000359291 00000 n -0000359356 00000 n -0000359421 00000 n -0000359486 00000 n -0000359551 00000 n -0000359616 00000 n -0000359681 00000 n -0000359746 00000 n -0000359811 00000 n -0000359876 00000 n -0000359941 00000 n -0000360005 00000 n -0000649013 00000 n -0000366715 00000 n -0000363151 00000 n -0000360181 00000 n -0000363277 00000 n -0000363342 00000 n -0000363407 00000 n -0000363472 00000 n -0000363537 00000 n -0000363602 00000 n -0000363667 00000 n -0000363732 00000 n -0000363797 00000 n -0000363862 00000 n -0000363927 00000 n -0000363992 00000 n -0000364056 00000 n -0000364121 00000 n -0000364186 00000 n -0000364251 00000 n -0000364316 00000 n -0000364381 00000 n -0000364446 00000 n -0000364511 00000 n -0000364576 00000 n -0000364641 00000 n -0000364706 00000 n -0000364771 00000 n -0000364835 00000 n -0000364900 00000 n -0000364965 00000 n -0000365030 00000 n -0000365095 00000 n -0000365160 00000 n -0000365225 00000 n -0000365290 00000 n -0000365355 00000 n -0000365420 00000 n -0000365485 00000 n -0000365550 00000 n -0000365615 00000 n -0000365680 00000 n -0000365745 00000 n -0000365810 00000 n -0000365874 00000 n -0000365938 00000 n -0000366002 00000 n -0000366067 00000 n -0000366132 00000 n -0000366197 00000 n -0000366262 00000 n -0000366327 00000 n -0000366392 00000 n -0000366457 00000 n -0000366522 00000 n -0000366587 00000 n -0000366651 00000 n -0000372890 00000 n -0000369452 00000 n -0000366827 00000 n -0000369578 00000 n -0000369643 00000 n -0000369708 00000 n -0000369773 00000 n -0000369838 00000 n -0000369903 00000 n -0000369968 00000 n -0000370033 00000 n -0000370098 00000 n -0000370163 00000 n -0000370228 00000 n -0000370293 00000 n -0000370358 00000 n -0000370423 00000 n -0000370488 00000 n -0000370553 00000 n -0000370618 00000 n -0000370683 00000 n -0000370748 00000 n -0000370813 00000 n -0000370878 00000 n -0000370943 00000 n -0000371008 00000 n -0000371073 00000 n -0000371138 00000 n -0000371203 00000 n -0000371268 00000 n -0000371333 00000 n -0000371398 00000 n -0000371463 00000 n -0000371528 00000 n -0000371593 00000 n -0000371658 00000 n -0000371723 00000 n -0000371787 00000 n -0000371852 00000 n -0000371917 00000 n -0000371982 00000 n -0000372047 00000 n -0000372112 00000 n -0000372177 00000 n -0000372242 00000 n -0000372307 00000 n -0000372372 00000 n -0000372437 00000 n -0000372502 00000 n -0000372567 00000 n -0000372632 00000 n -0000372697 00000 n -0000372762 00000 n -0000372826 00000 n -0000377469 00000 n -0000375205 00000 n -0000373002 00000 n -0000375331 00000 n -0000375396 00000 n -0000375461 00000 n -0000375526 00000 n -0000375591 00000 n -0000375656 00000 n -0000375721 00000 n -0000375786 00000 n -0000375851 00000 n -0000375916 00000 n -0000375981 00000 n -0000376046 00000 n -0000376111 00000 n -0000376176 00000 n -0000376238 00000 n -0000376302 00000 n -0000376367 00000 n -0000376431 00000 n -0000376496 00000 n -0000376561 00000 n -0000376626 00000 n -0000376691 00000 n -0000376756 00000 n -0000376821 00000 n -0000376886 00000 n -0000377015 00000 n -0000377144 00000 n -0000377209 00000 n -0000377274 00000 n -0000377339 00000 n -0000377404 00000 n -0000380236 00000 n -0000379592 00000 n -0000377594 00000 n -0000379718 00000 n -0000379847 00000 n -0000379976 00000 n -0000380041 00000 n -0000380106 00000 n -0000380171 00000 n -0000384721 00000 n -0000384400 00000 n -0000380348 00000 n -0000384526 00000 n -0000384591 00000 n -0000384656 00000 n -0000387972 00000 n -0000387716 00000 n -0000384873 00000 n -0000387842 00000 n -0000387907 00000 n -0000649138 00000 n -0000391222 00000 n -0000391031 00000 n -0000388110 00000 n -0000391157 00000 n -0000395002 00000 n -0000394746 00000 n -0000391347 00000 n -0000394872 00000 n -0000394937 00000 n -0000398176 00000 n -0000397401 00000 n -0000395140 00000 n -0000397527 00000 n -0000397592 00000 n -0000397657 00000 n -0000397722 00000 n -0000397787 00000 n -0000397916 00000 n -0000397981 00000 n -0000398046 00000 n -0000398111 00000 n -0000402648 00000 n -0000402457 00000 n -0000398314 00000 n -0000402583 00000 n -0000405776 00000 n -0000405003 00000 n -0000402786 00000 n -0000405129 00000 n -0000405194 00000 n -0000405259 00000 n -0000405323 00000 n -0000405452 00000 n -0000405517 00000 n -0000405581 00000 n -0000405646 00000 n -0000405711 00000 n -0000409166 00000 n -0000408910 00000 n -0000405914 00000 n -0000409036 00000 n -0000409101 00000 n -0000649263 00000 n -0000412026 00000 n -0000411316 00000 n -0000409304 00000 n -0000411442 00000 n -0000411507 00000 n -0000411572 00000 n -0000411637 00000 n -0000411766 00000 n -0000411831 00000 n -0000411896 00000 n -0000411961 00000 n -0000415705 00000 n -0000415449 00000 n -0000412177 00000 n -0000415575 00000 n -0000415640 00000 n -0000419142 00000 n -0000418886 00000 n -0000415830 00000 n -0000419012 00000 n -0000419077 00000 n -0000421613 00000 n -0000420905 00000 n -0000419280 00000 n -0000421031 00000 n -0000421096 00000 n -0000421161 00000 n -0000421288 00000 n -0000421353 00000 n -0000421418 00000 n -0000421483 00000 n -0000421548 00000 n -0000424499 00000 n -0000423725 00000 n -0000421764 00000 n +0000357471 00000 n +0000357729 00000 n +0000356987 00000 n +0000357166 00000 n +0000357922 00000 n +0000357986 00000 n +0000364935 00000 n +0000361107 00000 n +0000358202 00000 n +0000361233 00000 n +0000361298 00000 n +0000361363 00000 n +0000361428 00000 n +0000361493 00000 n +0000361558 00000 n +0000361623 00000 n +0000361688 00000 n +0000361753 00000 n +0000361818 00000 n +0000361948 00000 n +0000362013 00000 n +0000362078 00000 n +0000362143 00000 n +0000362208 00000 n +0000362273 00000 n +0000362338 00000 n +0000362403 00000 n +0000362468 00000 n +0000362533 00000 n +0000362598 00000 n +0000362663 00000 n +0000362728 00000 n +0000362793 00000 n +0000362858 00000 n +0000362923 00000 n +0000362988 00000 n +0000363053 00000 n +0000363118 00000 n +0000363183 00000 n +0000363248 00000 n +0000363313 00000 n +0000363378 00000 n +0000363443 00000 n +0000363507 00000 n +0000363572 00000 n +0000363637 00000 n +0000363702 00000 n +0000363767 00000 n +0000363832 00000 n +0000363897 00000 n +0000363962 00000 n +0000364027 00000 n +0000364092 00000 n +0000364157 00000 n +0000364222 00000 n +0000364287 00000 n +0000364352 00000 n +0000364417 00000 n +0000364482 00000 n +0000364547 00000 n +0000364612 00000 n +0000364677 00000 n +0000364742 00000 n +0000364807 00000 n +0000364871 00000 n +0000371581 00000 n +0000368017 00000 n +0000365047 00000 n +0000368143 00000 n +0000368208 00000 n +0000368273 00000 n +0000368338 00000 n +0000368403 00000 n +0000368468 00000 n +0000368533 00000 n +0000368598 00000 n +0000368663 00000 n +0000368728 00000 n +0000368793 00000 n +0000368858 00000 n +0000368922 00000 n +0000368987 00000 n +0000369052 00000 n +0000369117 00000 n +0000369182 00000 n +0000369247 00000 n +0000369312 00000 n +0000369377 00000 n +0000369442 00000 n +0000369507 00000 n +0000369572 00000 n +0000369637 00000 n +0000369701 00000 n +0000369766 00000 n +0000369831 00000 n +0000369896 00000 n +0000369961 00000 n +0000370026 00000 n +0000370091 00000 n +0000370156 00000 n +0000370221 00000 n +0000370286 00000 n +0000370351 00000 n +0000370416 00000 n +0000370481 00000 n +0000370546 00000 n +0000370611 00000 n +0000370676 00000 n +0000370740 00000 n +0000370804 00000 n +0000370868 00000 n +0000370933 00000 n +0000370998 00000 n +0000371063 00000 n +0000371128 00000 n +0000371193 00000 n +0000371258 00000 n +0000371323 00000 n +0000371388 00000 n +0000371453 00000 n +0000371517 00000 n +0000377756 00000 n +0000374318 00000 n +0000371693 00000 n +0000374444 00000 n +0000374509 00000 n +0000374574 00000 n +0000374639 00000 n +0000374704 00000 n +0000374769 00000 n +0000374834 00000 n +0000374899 00000 n +0000374964 00000 n +0000375029 00000 n +0000375094 00000 n +0000375159 00000 n +0000375224 00000 n +0000375289 00000 n +0000375354 00000 n +0000375419 00000 n +0000375484 00000 n +0000375549 00000 n +0000375614 00000 n +0000375679 00000 n +0000375744 00000 n +0000375809 00000 n +0000375874 00000 n +0000375939 00000 n +0000376004 00000 n +0000376069 00000 n +0000376134 00000 n +0000376199 00000 n +0000376264 00000 n +0000376329 00000 n +0000376394 00000 n +0000376459 00000 n +0000376524 00000 n +0000376589 00000 n +0000376653 00000 n +0000376718 00000 n +0000376783 00000 n +0000376848 00000 n +0000376913 00000 n +0000376978 00000 n +0000377043 00000 n +0000377108 00000 n +0000377173 00000 n +0000377238 00000 n +0000377303 00000 n +0000377368 00000 n +0000377433 00000 n +0000377498 00000 n +0000377563 00000 n +0000377628 00000 n +0000377692 00000 n +0000382335 00000 n +0000380071 00000 n +0000377868 00000 n +0000380197 00000 n +0000380262 00000 n +0000380327 00000 n +0000380392 00000 n +0000380457 00000 n +0000380522 00000 n +0000380587 00000 n +0000380652 00000 n +0000380717 00000 n +0000380782 00000 n +0000380847 00000 n +0000380912 00000 n +0000380977 00000 n +0000381042 00000 n +0000381104 00000 n +0000381168 00000 n +0000381233 00000 n +0000381297 00000 n +0000381362 00000 n +0000381427 00000 n +0000381492 00000 n +0000381557 00000 n +0000381622 00000 n +0000381687 00000 n +0000381752 00000 n +0000381881 00000 n +0000382010 00000 n +0000382075 00000 n +0000382140 00000 n +0000382205 00000 n +0000382270 00000 n +0000385129 00000 n +0000384485 00000 n +0000382460 00000 n +0000384611 00000 n +0000384740 00000 n +0000384869 00000 n +0000384934 00000 n +0000384999 00000 n +0000385064 00000 n +0000655237 00000 n +0000389467 00000 n +0000389147 00000 n +0000385241 00000 n +0000389273 00000 n +0000389338 00000 n +0000389403 00000 n +0000392936 00000 n +0000392680 00000 n +0000389619 00000 n +0000392806 00000 n +0000392871 00000 n +0000396183 00000 n +0000395992 00000 n +0000393074 00000 n +0000396118 00000 n +0000399962 00000 n +0000399706 00000 n +0000396308 00000 n +0000399832 00000 n +0000399897 00000 n +0000403136 00000 n +0000402361 00000 n +0000400100 00000 n +0000402487 00000 n +0000402552 00000 n +0000402617 00000 n +0000402682 00000 n +0000402747 00000 n +0000402876 00000 n +0000402941 00000 n +0000403006 00000 n +0000403071 00000 n +0000407608 00000 n +0000407417 00000 n +0000403274 00000 n +0000407543 00000 n +0000655362 00000 n +0000410737 00000 n +0000409964 00000 n +0000407746 00000 n +0000410090 00000 n +0000410155 00000 n +0000410220 00000 n +0000410284 00000 n +0000410413 00000 n +0000410478 00000 n +0000410542 00000 n +0000410607 00000 n +0000410672 00000 n +0000414128 00000 n +0000413872 00000 n +0000410875 00000 n +0000413998 00000 n +0000414063 00000 n +0000416991 00000 n +0000416281 00000 n +0000414266 00000 n +0000416407 00000 n +0000416472 00000 n +0000416537 00000 n +0000416602 00000 n +0000416731 00000 n +0000416796 00000 n +0000416861 00000 n +0000416926 00000 n +0000420670 00000 n +0000420414 00000 n +0000417142 00000 n +0000420540 00000 n +0000420605 00000 n +0000424107 00000 n 0000423851 00000 n -0000423916 00000 n -0000423981 00000 n -0000424046 00000 n -0000424174 00000 n -0000424239 00000 n -0000424304 00000 n -0000424369 00000 n -0000424434 00000 n -0000427855 00000 n -0000427664 00000 n -0000424637 00000 n -0000427790 00000 n -0000649388 00000 n -0000430808 00000 n -0000430098 00000 n -0000427980 00000 n -0000430224 00000 n -0000430289 00000 n -0000430354 00000 n -0000430419 00000 n -0000430548 00000 n -0000430613 00000 n -0000430678 00000 n -0000430743 00000 n -0000434107 00000 n -0000433851 00000 n -0000430959 00000 n -0000433977 00000 n -0000434042 00000 n -0000436991 00000 n -0000436607 00000 n -0000434300 00000 n -0000436733 00000 n -0000436798 00000 n -0000436863 00000 n -0000436927 00000 n -0000440469 00000 n -0000439759 00000 n -0000437223 00000 n -0000439885 00000 n -0000439950 00000 n -0000440015 00000 n -0000440144 00000 n -0000440209 00000 n -0000440274 00000 n -0000440339 00000 n -0000440404 00000 n -0000443609 00000 n -0000442900 00000 n -0000440620 00000 n -0000443026 00000 n -0000443091 00000 n -0000443156 00000 n -0000443220 00000 n -0000443349 00000 n -0000443414 00000 n -0000443479 00000 n -0000443544 00000 n -0000446792 00000 n -0000446536 00000 n -0000443773 00000 n -0000446662 00000 n -0000446727 00000 n -0000649513 00000 n -0000449538 00000 n -0000448895 00000 n -0000446917 00000 n -0000449021 00000 n -0000449086 00000 n -0000449151 00000 n -0000449216 00000 n -0000449344 00000 n -0000449409 00000 n -0000449474 00000 n -0000453271 00000 n -0000452951 00000 n -0000449689 00000 n -0000453077 00000 n -0000453142 00000 n -0000453207 00000 n -0000454596 00000 n -0000454210 00000 n -0000453396 00000 n -0000454336 00000 n -0000454401 00000 n -0000454466 00000 n -0000454531 00000 n -0000454767 00000 n -0000466111 00000 n -0000468435 00000 n -0000468404 00000 n -0000477923 00000 n -0000487979 00000 n -0000498217 00000 n -0000510423 00000 n -0000528556 00000 n -0000550644 00000 n -0000571654 00000 n -0000589472 00000 n -0000592303 00000 n -0000592073 00000 n -0000619561 00000 n -0000646670 00000 n -0000649620 00000 n -0000649743 00000 n -0000649869 00000 n -0000649995 00000 n -0000650085 00000 n -0000650177 00000 n -0000665468 00000 n -0000682734 00000 n -0000682775 00000 n -0000682815 00000 n -0000682949 00000 n +0000420795 00000 n +0000423977 00000 n +0000424042 00000 n +0000426576 00000 n +0000425868 00000 n +0000424245 00000 n +0000425994 00000 n +0000426059 00000 n +0000426124 00000 n +0000426251 00000 n +0000426316 00000 n +0000426381 00000 n +0000426446 00000 n +0000426511 00000 n +0000655487 00000 n +0000429462 00000 n +0000428688 00000 n +0000426727 00000 n +0000428814 00000 n +0000428879 00000 n +0000428944 00000 n +0000429009 00000 n +0000429137 00000 n +0000429202 00000 n +0000429267 00000 n +0000429332 00000 n +0000429397 00000 n +0000432818 00000 n +0000432627 00000 n +0000429600 00000 n +0000432753 00000 n +0000435789 00000 n +0000435080 00000 n +0000432943 00000 n +0000435206 00000 n +0000435271 00000 n +0000435336 00000 n +0000435401 00000 n +0000435529 00000 n +0000435594 00000 n +0000435659 00000 n +0000435724 00000 n +0000439301 00000 n +0000439045 00000 n +0000435940 00000 n +0000439171 00000 n +0000439236 00000 n +0000442176 00000 n +0000441920 00000 n +0000439507 00000 n +0000442046 00000 n +0000442111 00000 n +0000445175 00000 n +0000444400 00000 n +0000442382 00000 n +0000444526 00000 n +0000444591 00000 n +0000444656 00000 n +0000444721 00000 n +0000444786 00000 n +0000444915 00000 n +0000444980 00000 n +0000445045 00000 n +0000445110 00000 n +0000655612 00000 n +0000448684 00000 n +0000448041 00000 n +0000445326 00000 n +0000448167 00000 n +0000448232 00000 n +0000448297 00000 n +0000448362 00000 n +0000448427 00000 n +0000448555 00000 n +0000448620 00000 n +0000452245 00000 n +0000451859 00000 n +0000448848 00000 n +0000451985 00000 n +0000452050 00000 n +0000452115 00000 n +0000452180 00000 n +0000454598 00000 n +0000454213 00000 n +0000452370 00000 n +0000454339 00000 n +0000454404 00000 n +0000454469 00000 n +0000454534 00000 n +0000458278 00000 n +0000457698 00000 n +0000454749 00000 n +0000457824 00000 n +0000457953 00000 n +0000458018 00000 n +0000458083 00000 n +0000458148 00000 n +0000458213 00000 n +0000460305 00000 n +0000459919 00000 n +0000458416 00000 n +0000460045 00000 n +0000460110 00000 n +0000460175 00000 n +0000460240 00000 n +0000460489 00000 n +0000471833 00000 n +0000474157 00000 n +0000474126 00000 n +0000483645 00000 n +0000493701 00000 n +0000504168 00000 n +0000516376 00000 n +0000534653 00000 n +0000556743 00000 n +0000577753 00000 n +0000595571 00000 n +0000598402 00000 n +0000598172 00000 n +0000625660 00000 n +0000652769 00000 n +0000655737 00000 n +0000655860 00000 n +0000655986 00000 n +0000656112 00000 n +0000656202 00000 n +0000656294 00000 n +0000671585 00000 n +0000688895 00000 n +0000688936 00000 n +0000688976 00000 n +0000689110 00000 n trailer << -/Size 1948 -/Root 1946 0 R -/Info 1947 0 R -/ID [ ] +/Size 1957 +/Root 1955 0 R +/Info 1956 0 R +/ID [ ] >> startxref -683207 +689368 %%EOF diff --git a/doc/arm/man.dig.html b/doc/arm/man.dig.html index 7d0e43779e09..e6aa96d26227 100644 --- a/doc/arm/man.dig.html +++ b/doc/arm/man.dig.html @@ -1,5 +1,5 @@ - + @@ -47,12 +47,12 @@

Synopsis

-

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]

+

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]

dig [-h]

dig [global-queryopt...] [query...]

-

DESCRIPTION

+

DESCRIPTION

dig (domain information groper) is a flexible tool for interrogating DNS name servers. It performs DNS lookups and @@ -80,8 +80,8 @@ /etc/resolv.conf.

- When no command line arguments or options are given, will perform an - NS query for "." (the root). + When no command line arguments or options are given, + dig will perform an NS query for "." (the root).

It is possible to set per-user defaults for dig via @@ -92,13 +92,13 @@

The IN and CH class names overlap with the IN and CH top level domains names. Either use the -t and - -c options to specify the type and class or - use the -q the specify the domain name or + -c options to specify the type and class, + use the -q the specify the domain name, or use "IN." and "CH." when looking up these top level domains.

-

SIMPLE USAGE

+

SIMPLE USAGE

A typical invocation of dig looks like:

@@ -144,7 +144,7 @@

-

OPTIONS

+

OPTIONS

The -b option sets the source IP address of the query to address. This must be a valid @@ -169,6 +169,10 @@ the same way they would be presented as queries to dig using the command-line interface.

+

+ The -m option enables memory usage debugging. + +

If a non-standard port number is to be queried, the -p option is used. port# is @@ -244,7 +248,7 @@

-

QUERY OPTIONS

+

QUERY OPTIONS

dig provides a number of query options which affect the way in which lookups are made and the results displayed. Some of @@ -563,7 +567,7 @@

-

MULTIPLE QUERIES

+

MULTIPLE QUERIES

The BIND 9 implementation of dig supports @@ -609,7 +613,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr

-

IDN SUPPORT

+

IDN SUPPORT

If dig has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. @@ -623,14 +627,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr

-

FILES

+

FILES

/etc/resolv.conf

${HOME}/.digrc

-

SEE ALSO

+

SEE ALSO

host(1), named(8), dnssec-keygen(8), @@ -638,7 +642,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr

-

BUGS

+

BUGS

There are probably too many query options.

diff --git a/doc/arm/man.dnssec-keygen.html b/doc/arm/man.dnssec-keygen.html index 3b8d2d8c87ee..ac3fbe8be9ec 100644 --- a/doc/arm/man.dnssec-keygen.html +++ b/doc/arm/man.dnssec-keygen.html @@ -1,5 +1,5 @@ - + @@ -50,7 +50,7 @@

dnssec-keygen {-a algorithm} {-b keysize} {-n nametype} [-c class] [-e] [-f flag] [-g generator] [-h] [-k] [-p protocol] [-r randomdev] [-s strength] [-t type] [-v level] {name}

-

DESCRIPTION

+

DESCRIPTION

dnssec-keygen generates keys for DNSSEC (Secure DNS), as defined in RFC 2535 and RFC 4034. It can also generate keys for use with @@ -58,7 +58,7 @@

-

OPTIONS

+

OPTIONS

-a algorithm
@@ -166,7 +166,7 @@
-

GENERATED KEYS

+

GENERATED KEYS

When dnssec-keygen completes successfully, @@ -212,7 +212,7 @@

-

EXAMPLE

+

EXAMPLE

To generate a 768-bit DSA key for the domain example.com, the following command would be @@ -233,16 +233,16 @@

-

SEE ALSO

+

SEE ALSO

dnssec-signzone(8), BIND 9 Administrator Reference Manual, - RFC 2535, + RFC 2539, RFC 2845, - RFC 2539. + RFC 4033.

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/arm/man.dnssec-signzone.html b/doc/arm/man.dnssec-signzone.html index 2d0ce069d392..a12d3551e3f4 100644 --- a/doc/arm/man.dnssec-signzone.html +++ b/doc/arm/man.dnssec-signzone.html @@ -1,5 +1,5 @@ - + @@ -50,7 +50,7 @@

dnssec-signzone [-a] [-c class] [-d directory] [-e end-time] [-f output-file] [-g] [-h] [-k key] [-l domain] [-i interval] [-I input-format] [-j jitter] [-N soa-serial-format] [-o origin] [-O output-format] [-p] [-r randomdev] [-s start-time] [-t] [-v level] [-z] {zonefile} [key...]

-

DESCRIPTION

+

DESCRIPTION

dnssec-signzone signs a zone. It generates NSEC and RRSIG records and produces a signed version of the @@ -61,7 +61,7 @@

-

OPTIONS

+

OPTIONS

-a

@@ -259,7 +259,7 @@

-

EXAMPLE

+

EXAMPLE

The following command signs the example.com zone with the DSA key generated by dnssec-keygen @@ -288,14 +288,14 @@ db.example.com.signed %

-

SEE ALSO

+

SEE ALSO

dnssec-keygen(8), BIND 9 Administrator Reference Manual, - RFC 2535. + RFC 4033.

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/arm/man.host.html b/doc/arm/man.host.html index 6bc2188dfb9f..f180544a3f0a 100644 --- a/doc/arm/man.host.html +++ b/doc/arm/man.host.html @@ -1,5 +1,5 @@ - + @@ -50,7 +50,7 @@

host [-aCdlnrsTwv] [-c class] [-N ndots] [-R number] [-t type] [-W wait] [-m flag] [-4] [-6] {name} [server]

-

DESCRIPTION

+

DESCRIPTION

host is a simple utility for performing DNS lookups. It is normally used to convert names to IP addresses and vice versa. @@ -166,7 +166,7 @@ NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified, host automatically selects an appropriate query - type. By default it looks for A records, but if the + type. By default it looks for A, AAAA, and MX records, but if the -C option was given, queries will be made for SOA records, and if name is a dotted-decimal IPv4 @@ -202,7 +202,7 @@

-

IDN SUPPORT

+

IDN SUPPORT

If host has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. @@ -216,12 +216,12 @@

-

FILES

+

FILES

/etc/resolv.conf

-

SEE ALSO

+

SEE ALSO

dig(1), named(8).

diff --git a/doc/arm/man.named-checkconf.html b/doc/arm/man.named-checkconf.html index 7db50219b30b..3d5cdd233c66 100644 --- a/doc/arm/man.named-checkconf.html +++ b/doc/arm/man.named-checkconf.html @@ -1,5 +1,5 @@ - + @@ -50,14 +50,14 @@

named-checkconf [-v] [-j] [-t directory] {filename} [-z]

-

DESCRIPTION

+

DESCRIPTION

named-checkconf checks the syntax, but not the semantics, of a named configuration file.

-

OPTIONS

+

OPTIONS

-t directory

@@ -88,21 +88,21 @@

-

RETURN VALUES

+

RETURN VALUES

named-checkconf returns an exit status of 1 if errors were detected and 0 otherwise.

-

SEE ALSO

+

SEE ALSO

named(8), named-checkzone(8), BIND 9 Administrator Reference Manual.

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/arm/man.named-checkzone.html b/doc/arm/man.named-checkzone.html index 93e17ec82f16..264e960696d6 100644 --- a/doc/arm/man.named-checkzone.html +++ b/doc/arm/man.named-checkzone.html @@ -1,5 +1,5 @@ - + @@ -51,7 +51,7 @@

named-compilezone [-d] [-j] [-q] [-v] [-c class] [-C mode] [-f format] [-F format] [-i mode] [-k mode] [-m mode] [-n mode] [-o filename] [-s style] [-t directory] [-w directory] [-D] [-W mode] {zonename} {filename}

-

DESCRIPTION

+

DESCRIPTION

named-checkzone checks the syntax and integrity of a zone file. It performs the same checks as named does when loading a @@ -71,7 +71,7 @@

-

OPTIONS

+

OPTIONS

-d

@@ -251,14 +251,14 @@

-

RETURN VALUES

+

RETURN VALUES

named-checkzone returns an exit status of 1 if errors were detected and 0 otherwise.

-

SEE ALSO

+

SEE ALSO

named(8), named-checkconf(8), RFC 1035, @@ -266,7 +266,7 @@

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/arm/man.named.html b/doc/arm/man.named.html index 70539b477f32..b08e7383820b 100644 --- a/doc/arm/man.named.html +++ b/doc/arm/man.named.html @@ -1,5 +1,5 @@ - + @@ -47,10 +47,10 @@

Synopsis

-

named [-4] [-6] [-c config-file] [-d debug-level] [-f] [-g] [-m flag] [-n #cpus] [-p port] [-s] [-t directory] [-u user] [-v] [-x cache-file]

+

named [-4] [-6] [-c config-file] [-d debug-level] [-f] [-g] [-m flag] [-n #cpus] [-p port] [-s] [-S #max-socks] [-t directory] [-u user] [-v] [-x cache-file]

-

DESCRIPTION

+

DESCRIPTION

named is a Domain Name System (DNS) server, part of the BIND 9 distribution from ISC. For more @@ -65,7 +65,7 @@

-

OPTIONS

+

OPTIONS

-4

@@ -144,6 +144,31 @@

+
-S #max-socks
+
+

+ Allow named to use up to + #max-socks sockets. +

+
+

Warning

+

+ This option should be unnecessary for the vast majority + of users. + The use of this option could even be harmful because the + specified value may exceed the limitation of the + underlying system API. + It is therefore set only when the default configuration + causes exhaustion of file descriptors and the + operational environment is known to support the + specified number of sockets. + Note also that the actual maximum number is normally a little + fewer than the specified value because + named reserves some file descriptors + for its internal use. +

+
+
-t directory

Chroot @@ -209,7 +234,7 @@

-

SIGNALS

+

SIGNALS

In routine operation, signals should not be used to control the nameserver; rndc should be used @@ -230,7 +255,7 @@

-

CONFIGURATION

+

CONFIGURATION

The named configuration file is too complex to describe in detail here. A complete description is provided @@ -239,7 +264,7 @@

-

FILES

+

FILES

/etc/named.conf

@@ -252,7 +277,7 @@

-

SEE ALSO

+

SEE ALSO

RFC 1033, RFC 1034, RFC 1035, @@ -265,7 +290,7 @@

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/arm/man.rndc-confgen.html b/doc/arm/man.rndc-confgen.html index 056bcbdb2f7c..fa5924db3e86 100644 --- a/doc/arm/man.rndc-confgen.html +++ b/doc/arm/man.rndc-confgen.html @@ -1,5 +1,5 @@ - + @@ -48,7 +48,7 @@

rndc-confgen [-a] [-b keysize] [-c keyfile] [-h] [-k keyname] [-p port] [-r randomfile] [-s address] [-t chrootdir] [-u user]

-

DESCRIPTION

+

DESCRIPTION

rndc-confgen generates configuration files for rndc. It can be used as a @@ -64,7 +64,7 @@

-

OPTIONS

+

OPTIONS

-a
@@ -171,7 +171,7 @@
-

EXAMPLES

+

EXAMPLES

To allow rndc to be used with no manual configuration, run @@ -188,7 +188,7 @@

-

SEE ALSO

+

SEE ALSO

rndc(8), rndc.conf(5), named(8), @@ -196,7 +196,7 @@

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/arm/man.rndc.conf.html b/doc/arm/man.rndc.conf.html index 4e8154c140b2..47a5d9d83c26 100644 --- a/doc/arm/man.rndc.conf.html +++ b/doc/arm/man.rndc.conf.html @@ -1,5 +1,5 @@ - + @@ -50,7 +50,7 @@

rndc.conf

-

DESCRIPTION

+

DESCRIPTION

rndc.conf is the configuration file for rndc, the BIND 9 name server control utility. This file has a similar structure and syntax to @@ -135,7 +135,7 @@

-

EXAMPLE

+

EXAMPLE

       options {
         default-server  localhost;
@@ -209,7 +209,7 @@
     

-

NAME SERVER CONFIGURATION

+

NAME SERVER CONFIGURATION

The name server must be configured to accept rndc connections and to recognize the key specified in the rndc.conf @@ -219,7 +219,7 @@

-

SEE ALSO

+

SEE ALSO

rndc(8), rndc-confgen(8), mmencode(1), @@ -227,7 +227,7 @@

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/arm/man.rndc.html b/doc/arm/man.rndc.html index 96ed54726541..351267be0825 100644 --- a/doc/arm/man.rndc.html +++ b/doc/arm/man.rndc.html @@ -1,5 +1,5 @@ - + @@ -50,7 +50,7 @@

rndc [-b source-address] [-c config-file] [-k key-file] [-s server] [-p port] [-V] [-y key_id] {command}

-

DESCRIPTION

+

DESCRIPTION

rndc controls the operation of a name server. It supersedes the ndc utility @@ -79,7 +79,7 @@

-

OPTIONS

+

OPTIONS

-b source-address

@@ -151,7 +151,7 @@

-

LIMITATIONS

+

LIMITATIONS

rndc does not yet support all the commands of the BIND 8 ndc utility. @@ -165,8 +165,9 @@

-

SEE ALSO

+

SEE ALSO

rndc.conf(5), + rndc-confgen(8), named(8), named.conf(5), ndc(8), @@ -174,7 +175,7 @@

-

AUTHOR

+

AUTHOR

Internet Systems Consortium

diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 40a62fe22411..c5df0cbd8b2f 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.3.18.3 2007/08/28 07:20:03 tbox Exp $ +# $Id: Makefile.in,v 1.3.18.4 2007/12/02 22:36:01 marka Exp $ srcdir = @srcdir@ VPATH = @srcdir@ @@ -40,6 +40,7 @@ CFG_TEST = ../../bin/tests/cfg_test options: FORCE if test -x ${CFG_TEST} && \ ${CFG_TEST} --named --grammar | \ + ${PERL} ${srcdir}/sort-options.pl | \ ${PERL} ${srcdir}/format-options.pl >$@.new ; then \ mv -f $@.new $@ ; \ else \ diff --git a/doc/misc/format-options.pl b/doc/misc/format-options.pl index 70b334e31e1e..aa433b3d168d 100644 --- a/doc/misc/format-options.pl +++ b/doc/misc/format-options.pl @@ -1,9 +1,9 @@ #!/usr/bin/perl # -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -15,7 +15,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: format-options.pl,v 1.2 2004/03/05 05:04:53 marka Exp $ +# $Id: format-options.pl,v 1.2.18.2 2007/12/02 23:46:31 tbox Exp $ print <) { + chomp; s/\t/ /g; - if (length >= 79) { - m!^( *)!; - my $indent = $1; - s!^(.{0,75}) (.*)$!\1\n$indent \2!; + my $line = $_; + m!^( *)!; + my $indent = $1; + my $comment = ""; + if ( $line =~ m!//.*! ) { + $comment = $&; + $line =~ s!//.*!!; } - print; + my $start = ""; + while (length($line) >= 79 - length($comment)) { + $_ = $line; + # this makes sure that the comment has something in front of it + $len = 75 - length($comment); + m!^(.{0,$len}) (.*)$!; + $start = $start.$1."\n"; + $line = $indent." ".$2; + } + print $start.$line.$comment."\n"; } diff --git a/doc/misc/migration b/doc/misc/migration index b48371bebf01..4116b636e64d 100644 --- a/doc/misc/migration +++ b/doc/misc/migration @@ -1,4 +1,4 @@ -Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") +Copyright (C) 2004, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") Copyright (C) 2000, 2001, 2003 Internet Software Consortium. See COPYRIGHT in the source root or http://isc.org/copyright.html for terms. @@ -26,6 +26,16 @@ understand the many-answers zone transfer format (e.g., BIND 4.9.5 or older) you need to explicitly specify "transfer-format one-answer;" in either the options block or a server statement. +BIND 9.4 onwards implements "allow-query-cache". The "allow-query" +option is no longer used to specify access to the cache. The +"allow-query" option continues to specify which hosts are allowed +to ask ordinary DNS questions. The new "allow-query-cache" option +is used to specify which hosts are allowed to get answers from the +cache. Since BIND 9.4.1, if "allow-query-cache" is not set then +"allow-recursion" is used if it is set, otherwise "allow-query" is +used if it is set, otherwise the default localnets and localhost +is used. + 1.2. Handling of Configuration File Errors In BIND 9, named refuses to start if it detects an error in @@ -254,4 +264,4 @@ necessary, the umask should be set explicitly in the script used to start the named process. -$Id: migration,v 1.45.18.2 2007/09/07 06:34:21 marka Exp $ +$Id: migration,v 1.45.18.3 2008/03/18 15:45:43 jreed Exp $ diff --git a/doc/misc/options b/doc/misc/options index a17c52274eb9..c9a29a7223c6 100644 --- a/doc/misc/options +++ b/doc/misc/options @@ -2,480 +2,488 @@ This is a summary of the named.conf options supported by this version of BIND 9. -options { - avoid-v4-udp-ports { ; ... }; - avoid-v6-udp-ports { ; ... }; - blackhole { ; ... }; - coresize ; - datasize ; - deallocate-on-exit ; // obsolete - directory ; - dump-file ; - fake-iquery ; // obsolete - files ; - has-old-clients ; // obsolete - heartbeat-interval ; - host-statistics ; // not implemented - host-statistics-max ; // not implemented - hostname ( | none ); - interface-interval ; - listen-on [ port ] { ; ... }; - listen-on-v6 [ port ] { ; ... }; - match-mapped-addresses ; - memstatistics-file ; - multiple-cnames ; // obsolete - named-xfer ; // obsolete - pid-file ( | none ); - port ; - querylog ; - recursing-file ; - random-device ; - recursive-clients ; - serial-queries ; // obsolete - serial-query-rate ; - server-id ( | none |; - stacksize ; - statistics-file ; - statistics-interval ; // not yet implemented - tcp-clients ; - tcp-listen-queue ; - tkey-dhkey ; - tkey-gssapi-credential ; - tkey-domain ; - transfers-per-ns ; - transfers-in ; - transfers-out ; - treat-cr-as-space ; // obsolete - use-id-pool ; // obsolete - use-ixfr ; - version ( | none ); - flush-zones-on-shutdown ; - allow-query-cache { ; ... }; - allow-recursion { ; ... }; - allow-v6-synthesis { ; ... }; // obsolete - sortlist { ; ... }; - topology { ; ... }; // not implemented - auth-nxdomain ; // default changed - minimal-responses ; - recursion ; - rrset-order { [ class ] [ type ] [ name - ] ; ... }; - provide-ixfr ; - request-ixfr ; - fetch-glue ; // obsolete - rfc2308-type1 ; // not yet implemented - additional-from-auth ; - additional-from-cache ; - query-source ; - query-source-v6 ; - cleaning-interval ; - min-roots ; // not implemented - lame-ttl ; - max-ncache-ttl ; - max-cache-ttl ; - transfer-format ( many-answers | one-answer ); - max-cache-size ; - check-names ( master | slave | response ) ( fail | warn | ignore ); - cache-file ; - suppress-initial-notify ; // not yet implemented - preferred-glue ; - dual-stack-servers [ port ] { ( [port - ] | [port ] | [port ] ); ... }; - edns-udp-size ; - max-udp-size ; - root-delegation-only [ exclude { ; ... } ]; - disable-algorithms { ; ... }; - dnssec-enable ; - dnssec-validation ; - dnssec-lookaside trust-anchor ; - dnssec-must-be-secure ; - dnssec-accept-expired ; - ixfr-from-differences ; - acache-enable ; - acache-cleaning-interval ; - max-acache-size ; - clients-per-query ; - max-clients-per-query ; - empty-server ; - empty-contact ; - empty-zones-enable ; - disable-empty-zone ; - zero-no-soa-ttl-cache ; - allow-query { ; ... }; - allow-transfer { ; ... }; - allow-update { ; ... }; - allow-update-forwarding { ; ... }; - allow-notify { ; ... }; - masterfile-format ( text | raw ); - notify ; - notify-source ( | * ) [ port ( | * ) ]; - notify-source-v6 ( | * ) [ port ( | * ) ]; - also-notify [ port ] { ( | - ) [ port ]; ... }; - notify-delay ; - dialup ; - forward ( first | only ); - forwarders [ port ] { ( | ) - [ port ]; ... }; - maintain-ixfr-base ; // obsolete - max-ixfr-log-size ; // obsolete - max-journal-size ; - max-transfer-time-in ; - max-transfer-time-out ; - max-transfer-idle-in ; - max-transfer-idle-out ; - max-retry-time ; - min-retry-time ; - max-refresh-time ; - min-refresh-time ; - multi-master ; - sig-validity-interval ; - transfer-source ( | * ) [ port ( | * ) ]; - transfer-source-v6 ( | * ) [ port ( | * ) ]; - alt-transfer-source ( | * ) [ port ( | * ) - ]; - alt-transfer-source-v6 ( | * ) [ port ( | - * ) ]; - use-alt-transfer-source ; - zone-statistics ; - key-directory ; - check-wildcard ; - check-integrity ; - check-mx ( fail | warn | ignore ); - check-mx-cname ( fail | warn | ignore ); - check-srv-cname ( fail | warn | ignore ); - check-sibling ; - zero-no-soa-ttl ; - update-check-ksk ; -}; +acl { ; ... }; controls { inet ( | | * ) [ port ( | * - ) ] allow { ; ... } [ keys { ; ... } ]; + ) ] allow { ; ... } [ keys { ; + ... } ]; unix perm owner group [ keys { ; ... } ]; }; -acl { ; ... }; - -masters [ port ] { ( | [port - ] | [port ] ) [ key ]; ... }; - -logging { - channel { - file ; - syslog ; - null; - stderr; - severity ; - print-time ; - print-severity ; - print-category ; - }; - category { ; ... }; -}; - -view { - match-clients { ; ... }; - match-destinations { ; ... }; - match-recursive-only ; - key { - algorithm ; - secret ; - }; - zone { - type ( master | slave | stub | hint | forward | - delegation-only ); - file ; - journal ; - ixfr-base ; // obsolete - ixfr-tmp-file ; // obsolete - masters [ port ] { ( | - [port ] | [port ] ) [ key ]; ... }; - pubkey ; // - obsolete - update-policy { ( grant | deny ) ( name | - subdomain | wildcard | self | selfsub | selfwild ) ; ... }; - database ; - delegation-only ; - check-names ( fail | warn | ignore ); - ixfr-from-differences ; - allow-query { ; ... }; - allow-transfer { ; ... }; - allow-update { ; ... }; - allow-update-forwarding { ; ... }; - allow-notify { ; ... }; - masterfile-format ( text | raw ); - notify ; - notify-source ( | * ) [ port ( | * - ) ]; - notify-source-v6 ( | * ) [ port ( - | * ) ]; - also-notify [ port ] { ( | - ) [ port ]; ... }; - notify-delay ; - dialup ; - forward ( first | only ); - forwarders [ port ] { ( | - ) [ port ]; ... }; - maintain-ixfr-base ; // obsolete - max-ixfr-log-size ; // obsolete - max-journal-size ; - max-transfer-time-in ; - max-transfer-time-out ; - max-transfer-idle-in ; - max-transfer-idle-out ; - max-retry-time ; - min-retry-time ; - max-refresh-time ; - min-refresh-time ; - multi-master ; - sig-validity-interval ; - transfer-source ( | * ) [ port ( | - * ) ]; - transfer-source-v6 ( | * ) [ port ( - | * ) ]; - alt-transfer-source ( | * ) [ port ( - | * ) ]; - alt-transfer-source-v6 ( | * ) [ port ( - | * ) ]; - use-alt-transfer-source ; - zone-statistics ; - key-directory ; - check-wildcard ; - check-integrity ; - check-mx ( fail | warn | ignore ); - check-mx-cname ( fail | warn | ignore ); - check-srv-cname ( fail | warn | ignore ); - check-sibling ; - zero-no-soa-ttl ; - update-check-ksk ; - }; - dlz { - database ; - }; - server { - bogus ; - provide-ixfr ; - request-ixfr ; - support-ixfr ; // obsolete - transfers ; - transfer-format ( many-answers | one-answer ); - keys ; - edns ; - edns-udp-size ; - max-udp-size ; - notify-source ( | * ) [ port ( | * - ) ]; - notify-source-v6 ( | * ) [ port ( - | * ) ]; - query-source ; - query-source-v6 ; - transfer-source ( | * ) [ port ( | - * ) ]; - transfer-source-v6 ( | * ) [ port ( - | * ) ]; - }; - trusted-keys { - ; ... }; - allow-query-cache { ; ... }; - allow-recursion { ; ... }; - allow-v6-synthesis { ; ... }; // obsolete - sortlist { ; ... }; - topology { ; ... }; // not implemented - auth-nxdomain ; // default changed - minimal-responses ; - recursion ; - rrset-order { [ class ] [ type ] [ name - ] ; ... }; - provide-ixfr ; - request-ixfr ; - fetch-glue ; // obsolete - rfc2308-type1 ; // not yet implemented - additional-from-auth ; - additional-from-cache ; - query-source ; - query-source-v6 ; - cleaning-interval ; - min-roots ; // not implemented - lame-ttl ; - max-ncache-ttl ; - max-cache-ttl ; - transfer-format ( many-answers | one-answer ); - max-cache-size ; - check-names ( master | slave | response ) ( fail | warn | ignore ); - cache-file ; - suppress-initial-notify ; // not yet implemented - preferred-glue ; - dual-stack-servers [ port ] { ( [port - ] | [port ] | [port ] ); ... }; - edns-udp-size ; - max-udp-size ; - root-delegation-only [ exclude { ; ... } ]; - disable-algorithms { ; ... }; - dnssec-enable ; - dnssec-validation ; - dnssec-lookaside trust-anchor ; - dnssec-must-be-secure ; - dnssec-accept-expired ; - ixfr-from-differences ; - acache-enable ; - acache-cleaning-interval ; - max-acache-size ; - clients-per-query ; - max-clients-per-query ; - empty-server ; - empty-contact ; - empty-zones-enable ; - disable-empty-zone ; - zero-no-soa-ttl-cache ; - allow-query { ; ... }; - allow-transfer { ; ... }; - allow-update { ; ... }; - allow-update-forwarding { ; ... }; - allow-notify { ; ... }; - masterfile-format ( text | raw ); - notify ; - notify-source ( | * ) [ port ( | * ) ]; - notify-source-v6 ( | * ) [ port ( | * ) ]; - also-notify [ port ] { ( | - ) [ port ]; ... }; - notify-delay ; - dialup ; - forward ( first | only ); - forwarders [ port ] { ( | ) - [ port ]; ... }; - maintain-ixfr-base ; // obsolete - max-ixfr-log-size ; // obsolete - max-journal-size ; - max-transfer-time-in ; - max-transfer-time-out ; - max-transfer-idle-in ; - max-transfer-idle-out ; - max-retry-time ; - min-retry-time ; - max-refresh-time ; - min-refresh-time ; - multi-master ; - sig-validity-interval ; - transfer-source ( | * ) [ port ( | * ) ]; - transfer-source-v6 ( | * ) [ port ( | * ) ]; - alt-transfer-source ( | * ) [ port ( | * ) - ]; - alt-transfer-source-v6 ( | * ) [ port ( | - * ) ]; - use-alt-transfer-source ; - zone-statistics ; - key-directory ; - check-wildcard ; - check-integrity ; - check-mx ( fail | warn | ignore ); - check-mx-cname ( fail | warn | ignore ); - check-srv-cname ( fail | warn | ignore ); - check-sibling ; - zero-no-soa-ttl ; - update-check-ksk ; +dlz { database ; }; -lwres { - listen-on [ port ] { ( | ) - [ port ]; ... }; - view ; - search { ; ... }; - ndots ; -}; - key { algorithm ; secret ; }; -zone { - type ( master | slave | stub | hint | forward | delegation-only ); - file ; - journal ; - ixfr-base ; // obsolete - ixfr-tmp-file ; // obsolete - masters [ port ] { ( | [port - ] | [port ] ) [ key ]; ... }; - pubkey ; // obsolete - update-policy { ( grant | deny ) ( name | subdomain | - wildcard | self | selfsub | selfwild ) ; ... }; - database ; - delegation-only ; - check-names ( fail | warn | ignore ); - ixfr-from-differences ; +logging { + category { ; ... }; + channel { + file [ versions ( "unlimited" | ) + ] [ size ]; + null; + print-category ; + print-severity ; + print-time ; + severity ; + stderr; + syslog ; + }; +}; + +lwres { + listen-on [ port ] { ( | ) + [ port ]; ... }; + ndots ; + search { ; ... }; + view ; +}; + +masters [ port ] { ( | [ port + ] | [ port ] ) [ key ]; ... }; + +options { + acache-cleaning-interval ; + acache-enable ; + additional-from-auth ; + additional-from-cache ; + allow-notify { ; ... }; allow-query { ; ... }; + allow-query-cache { ; ... }; + allow-recursion { ; ... }; allow-transfer { ; ... }; allow-update { ; ... }; allow-update-forwarding { ; ... }; - allow-notify { ; ... }; - masterfile-format ( text | raw ); - notify ; - notify-source ( | * ) [ port ( | * ) ]; - notify-source-v6 ( | * ) [ port ( | * ) ]; + allow-v6-synthesis { ; ... }; // obsolete also-notify [ port ] { ( | ) [ port ]; ... }; - notify-delay ; - dialup ; - forward ( first | only ); - forwarders [ port ] { ( | ) - [ port ]; ... }; - maintain-ixfr-base ; // obsolete - max-ixfr-log-size ; // obsolete - max-journal-size ; - max-transfer-time-in ; - max-transfer-time-out ; - max-transfer-idle-in ; - max-transfer-idle-out ; - max-retry-time ; - min-retry-time ; - max-refresh-time ; - min-refresh-time ; - multi-master ; - sig-validity-interval ; - transfer-source ( | * ) [ port ( | * ) ]; - transfer-source-v6 ( | * ) [ port ( | * ) ]; - alt-transfer-source ( | * ) [ port ( | * ) - ]; + alt-transfer-source ( | * ) [ port ( | * ) ]; alt-transfer-source-v6 ( | * ) [ port ( | * ) ]; - use-alt-transfer-source ; - zone-statistics ; - key-directory ; - check-wildcard ; + auth-nxdomain ; // default changed + avoid-v4-udp-ports { ; ... }; + avoid-v6-udp-ports { ; ... }; + blackhole { ; ... }; + cache-file ; check-integrity ; check-mx ( fail | warn | ignore ); check-mx-cname ( fail | warn | ignore ); - check-srv-cname ( fail | warn | ignore ); + check-names ( master | slave | response ) ( fail | warn | ignore ); check-sibling ; - zero-no-soa-ttl ; + check-srv-cname ( fail | warn | ignore ); + check-wildcard ; + cleaning-interval ; + clients-per-query ; + coresize ; + datasize ; + deallocate-on-exit ; // obsolete + dialup ; + directory ; + disable-algorithms { ; ... }; + disable-empty-zone ; + dnssec-accept-expired ; + dnssec-enable ; + dnssec-lookaside trust-anchor ; + dnssec-must-be-secure ; + dnssec-validation ; + dual-stack-servers [ port ] { ( [ port + ] | [ port ] | + [ port ] ); ... }; + dump-file ; + edns-udp-size ; + empty-contact ; + empty-server ; + empty-zones-enable ; + fake-iquery ; // obsolete + fetch-glue ; // obsolete + files ; + flush-zones-on-shutdown ; + forward ( first | only ); + forwarders [ port ] { ( | ) + [ port ]; ... }; + has-old-clients ; // obsolete + heartbeat-interval ; + host-statistics ; // not implemented + host-statistics-max ; // not implemented + hostname ( | none ); + interface-interval ; + ixfr-from-differences ; + key-directory ; + lame-ttl ; + listen-on [ port ] { ; ... }; + listen-on-v6 [ port ] { ; ... }; + maintain-ixfr-base ; // obsolete + masterfile-format ( text | raw ); + match-mapped-addresses ; + max-acache-size ; + max-cache-size ; + max-cache-ttl ; + max-clients-per-query ; + max-ixfr-log-size ; // obsolete + max-journal-size ; + max-ncache-ttl ; + max-refresh-time ; + max-retry-time ; + max-transfer-idle-in ; + max-transfer-idle-out ; + max-transfer-time-in ; + max-transfer-time-out ; + max-udp-size ; + memstatistics-file ; + min-refresh-time ; + min-retry-time ; + min-roots ; // not implemented + minimal-responses ; + multi-master ; + multiple-cnames ; // obsolete + named-xfer ; // obsolete + notify ; + notify-delay ; + notify-source ( | * ) [ port ( | * ) ]; + notify-source-v6 ( | * ) [ port ( | * ) ]; + pid-file ( | none ); + port ; + preferred-glue ; + provide-ixfr ; + query-source ; + query-source-v6 ; + querylog ; + random-device ; + recursing-file ; + recursion ; + recursive-clients ; + request-ixfr ; + reserved-sockets ; + rfc2308-type1 ; // not yet implemented + root-delegation-only [ exclude { ; ... } ]; + rrset-order { [ class ] [ type ] [ name + ] ; ... }; + serial-queries ; // obsolete + serial-query-rate ; + server-id ( | none |; + sig-validity-interval ; + sortlist { ; ... }; + stacksize ; + statistics-file ; + statistics-interval ; // not yet implemented + suppress-initial-notify ; // not yet implemented + tcp-clients ; + tcp-listen-queue ; + tkey-dhkey ; + tkey-domain ; + tkey-gssapi-credential ; + topology { ; ... }; // not implemented + transfer-format ( many-answers | one-answer ); + transfer-source ( | * ) [ port ( | * ) ]; + transfer-source-v6 ( | * ) [ port ( | * ) ]; + transfers-in ; + transfers-out ; + transfers-per-ns ; + treat-cr-as-space ; // obsolete update-check-ksk ; -}; - -dlz { - database ; + use-alt-transfer-source ; + use-id-pool ; // obsolete + use-ixfr ; + use-v4-udp-ports { ; ... }; + use-v6-udp-ports { ; ... }; + version ( | none ); + zero-no-soa-ttl ; + zero-no-soa-ttl-cache ; + zone-statistics ; }; server { bogus ; - provide-ixfr ; - request-ixfr ; - support-ixfr ; // obsolete - transfers ; - transfer-format ( many-answers | one-answer ); - keys ; edns ; edns-udp-size ; + keys ; max-udp-size ; notify-source ( | * ) [ port ( | * ) ]; notify-source-v6 ( | * ) [ port ( | * ) ]; + provide-ixfr ; query-source ; query-source-v6 ; + request-ixfr ; + support-ixfr ; // obsolete + transfer-format ( many-answers | one-answer ); transfer-source ( | * ) [ port ( | * ) ]; transfer-source-v6 ( | * ) [ port ( | * ) ]; + transfers ; }; trusted-keys { ; ... }; +view { + acache-cleaning-interval ; + acache-enable ; + additional-from-auth ; + additional-from-cache ; + allow-notify { ; ... }; + allow-query { ; ... }; + allow-query-cache { ; ... }; + allow-recursion { ; ... }; + allow-transfer { ; ... }; + allow-update { ; ... }; + allow-update-forwarding { ; ... }; + allow-v6-synthesis { ; ... }; // obsolete + also-notify [ port ] { ( | + ) [ port ]; ... }; + alt-transfer-source ( | * ) [ port ( | * ) ]; + alt-transfer-source-v6 ( | * ) [ port ( | + * ) ]; + auth-nxdomain ; // default changed + cache-file ; + check-integrity ; + check-mx ( fail | warn | ignore ); + check-mx-cname ( fail | warn | ignore ); + check-names ( master | slave | response ) ( fail | warn | ignore ); + check-sibling ; + check-srv-cname ( fail | warn | ignore ); + check-wildcard ; + cleaning-interval ; + clients-per-query ; + database ; + dialup ; + disable-algorithms { ; ... }; + disable-empty-zone ; + dlz { + database ; + }; + dnssec-accept-expired ; + dnssec-enable ; + dnssec-lookaside trust-anchor ; + dnssec-must-be-secure ; + dnssec-validation ; + dual-stack-servers [ port ] { ( [ port + ] | [ port ] | + [ port ] ); ... }; + edns-udp-size ; + empty-contact ; + empty-server ; + empty-zones-enable ; + fetch-glue ; // obsolete + forward ( first | only ); + forwarders [ port ] { ( | ) + [ port ]; ... }; + ixfr-from-differences ; + key { + algorithm ; + secret ; + }; + key-directory ; + lame-ttl ; + maintain-ixfr-base ; // obsolete + masterfile-format ( text | raw ); + match-clients { ; ... }; + match-destinations { ; ... }; + match-recursive-only ; + max-acache-size ; + max-cache-size ; + max-cache-ttl ; + max-clients-per-query ; + max-ixfr-log-size ; // obsolete + max-journal-size ; + max-ncache-ttl ; + max-refresh-time ; + max-retry-time ; + max-transfer-idle-in ; + max-transfer-idle-out ; + max-transfer-time-in ; + max-transfer-time-out ; + max-udp-size ; + min-refresh-time ; + min-retry-time ; + min-roots ; // not implemented + minimal-responses ; + multi-master ; + notify ; + notify-delay ; + notify-source ( | * ) [ port ( | * ) ]; + notify-source-v6 ( | * ) [ port ( | * ) ]; + preferred-glue ; + provide-ixfr ; + query-source ; + query-source-v6 ; + recursion ; + request-ixfr ; + rfc2308-type1 ; // not yet implemented + root-delegation-only [ exclude { ; ... } ]; + rrset-order { [ class ] [ type ] [ name + ] ; ... }; + server { + bogus ; + edns ; + edns-udp-size ; + keys ; + max-udp-size ; + notify-source ( | * ) [ port ( | * + ) ]; + notify-source-v6 ( | * ) [ port ( + | * ) ]; + provide-ixfr ; + query-source ; + query-source-v6 ; + request-ixfr ; + support-ixfr ; // obsolete + transfer-format ( many-answers | one-answer ); + transfer-source ( | * ) [ port ( | + * ) ]; + transfer-source-v6 ( | * ) [ port ( + | * ) ]; + transfers ; + }; + sig-validity-interval ; + sortlist { ; ... }; + suppress-initial-notify ; // not yet implemented + topology { ; ... }; // not implemented + transfer-format ( many-answers | one-answer ); + transfer-source ( | * ) [ port ( | * ) ]; + transfer-source-v6 ( | * ) [ port ( | * ) ]; + trusted-keys { + ; ... }; + update-check-ksk ; + use-alt-transfer-source ; + zero-no-soa-ttl ; + zero-no-soa-ttl-cache ; + zone { + allow-notify { ; ... }; + allow-query { ; ... }; + allow-transfer { ; ... }; + allow-update { ; ... }; + allow-update-forwarding { ; ... }; + also-notify [ port ] { ( | + ) [ port ]; ... }; + alt-transfer-source ( | * ) [ port ( + | * ) ]; + alt-transfer-source-v6 ( | * ) [ port ( + | * ) ]; + check-integrity ; + check-mx ( fail | warn | ignore ); + check-mx-cname ( fail | warn | ignore ); + check-names ( fail | warn | ignore ); + check-sibling ; + check-srv-cname ( fail | warn | ignore ); + check-wildcard ; + database ; + delegation-only ; + dialup ; + file ; + forward ( first | only ); + forwarders [ port ] { ( | + ) [ port ]; ... }; + ixfr-base ; // obsolete + ixfr-from-differences ; + ixfr-tmp-file ; // obsolete + journal ; + key-directory ; + maintain-ixfr-base ; // obsolete + masterfile-format ( text | raw ); + masters [ port ] { ( | [ + port ] | [ port ] ) + [ key ]; ... }; + max-ixfr-log-size ; // obsolete + max-journal-size ; + max-refresh-time ; + max-retry-time ; + max-transfer-idle-in ; + max-transfer-idle-out ; + max-transfer-time-in ; + max-transfer-time-out ; + min-refresh-time ; + min-retry-time ; + multi-master ; + notify ; + notify-delay ; + notify-source ( | * ) [ port ( | * + ) ]; + notify-source-v6 ( | * ) [ port ( + | * ) ]; + pubkey + ; // obsolete + sig-validity-interval ; + transfer-source ( | * ) [ port ( | + * ) ]; + transfer-source-v6 ( | * ) [ port ( + | * ) ]; + type ( master | slave | stub | hint | forward | + delegation-only ); + update-check-ksk ; + update-policy { ( grant | deny ) ( name | + subdomain | wildcard | self | selfsub | selfwild ) + ; ... }; + use-alt-transfer-source ; + zero-no-soa-ttl ; + zone-statistics ; + }; + zone-statistics ; +}; + +zone { + allow-notify { ; ... }; + allow-query { ; ... }; + allow-transfer { ; ... }; + allow-update { ; ... }; + allow-update-forwarding { ; ... }; + also-notify [ port ] { ( | + ) [ port ]; ... }; + alt-transfer-source ( | * ) [ port ( | * ) ]; + alt-transfer-source-v6 ( | * ) [ port ( | + * ) ]; + check-integrity ; + check-mx ( fail | warn | ignore ); + check-mx-cname ( fail | warn | ignore ); + check-names ( fail | warn | ignore ); + check-sibling ; + check-srv-cname ( fail | warn | ignore ); + check-wildcard ; + database ; + delegation-only ; + dialup ; + file ; + forward ( first | only ); + forwarders [ port ] { ( | ) + [ port ]; ... }; + ixfr-base ; // obsolete + ixfr-from-differences ; + ixfr-tmp-file ; // obsolete + journal ; + key-directory ; + maintain-ixfr-base ; // obsolete + masterfile-format ( text | raw ); + masters [ port ] { ( | [ port + ] | [ port ] ) [ key + ]; ... }; + max-ixfr-log-size ; // obsolete + max-journal-size ; + max-refresh-time ; + max-retry-time ; + max-transfer-idle-in ; + max-transfer-idle-out ; + max-transfer-time-in ; + max-transfer-time-out ; + min-refresh-time ; + min-retry-time ; + multi-master ; + notify ; + notify-delay ; + notify-source ( | * ) [ port ( | * ) ]; + notify-source-v6 ( | * ) [ port ( | * ) ]; + pubkey ; // obsolete + sig-validity-interval ; + transfer-source ( | * ) [ port ( | * ) ]; + transfer-source-v6 ( | * ) [ port ( | * ) ]; + type ( master | slave | stub | hint | forward | delegation-only ); + update-check-ksk ; + update-policy { ( grant | deny ) ( name | subdomain | + wildcard | self | selfsub | selfwild ) ; + ... }; + use-alt-transfer-source ; + zero-no-soa-ttl ; + zone-statistics ; +}; + diff --git a/doc/misc/sort-options.pl b/doc/misc/sort-options.pl new file mode 100755 index 000000000000..f516159ae051 --- /dev/null +++ b/doc/misc/sort-options.pl @@ -0,0 +1,50 @@ +#!/bin/perl +# +# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC") +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +# $Id: sort-options.pl,v 1.3.36.2 2007/12/02 23:46:31 tbox Exp $ + +sub sortlevel() { + my @options = (); + my $fin = ""; + my $i = 0; + while (<>) { + if (/^\s*};$/) { + $fin = $_; + # print 2, $_; + last; + } + next if (/^$/); + if (/{$/) { + # print 3, $_; + my $sec = $_; + push(@options, $sec . sortlevel()); + } else { + push(@options, $_); + # print 1, $_; + } + $i++; + } + my $result = ""; + foreach my $i (sort @options) { + $result = ${result}.${i}; + $result = $result."\n" if ($i =~ /^[a-z]/i); + # print 5, ${i}; + } + $result = ${result}.${fin}; + return ($result); +} + +print sortlevel(); diff --git a/doc/rfc/index b/doc/rfc/index index 990d4a90be04..fea5f7181928 100644 --- a/doc/rfc/index +++ b/doc/rfc/index @@ -9,7 +9,7 @@ 1183: New DNS RR Definitions (AFSDB, RP, X25, ISDN and RT) 1348: DNS NSAP RRs 1535: A Security Problem and Proposed Correction - With Widely Deployed DNS Software + With Widely Deployed DNS Software 1536: Common DNS Implementation Errors and Suggested Fixes 1537: Common DNS Data File Configuration Errors 1591: Domain Name System Structure and Delegation @@ -63,6 +63,7 @@ 2931: DNS Request and Transaction Signatures ( SIG(0)s ) 3007: Secure Domain Name System (DNS) Dynamic Update 3008: Domain Name System Security (DNSSEC) Signing Authority +3056: Connection of IPv6 Domains via IPv4 Clouds 3071: Reflections on the DNS, RFC 1591, and Categories of Domains 3090: DNS Security Extension Clarification on Zone Status 3110: RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS) @@ -81,17 +82,17 @@ 3490: Internationalizing Domain Names In Applications (IDNA) 3491: Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN) 3492: Punycode:A Bootstring encoding of Unicode for - Internationalized Domain Names in Applications (IDNA) + Internationalized Domain Names in Applications (IDNA) 3493: Basic Socket Interface Extensions for IPv6 3513: Internet Protocol Version 6 (IPv6) Addressing Architecture 3596: DNS Extensions to Support IP Version 6 3597: Handling of Unknown DNS Resource Record (RR) Types 3645: Generic Security Service Algorithm for - Secret Key Transaction Authentication for DNS (GSS-TSIG) + Secret Key Transaction Authentication for DNS (GSS-TSIG) 3655: Redefinition of DNS Authenticated Data (AD) bit 3658: Delegation Signer (DS) Resource Record (RR) 3757: Domain Name System KEY (DNSKEY) Resource Record (RR) - Secure Entry Point (SEP) Flag + Secure Entry Point (SEP) Flag 3833: Threat Analysis of the Domain Name System (DNS) 3845: DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format 3901: DNS IPv6 Transport Operational Guidelines @@ -112,3 +113,7 @@ 4470: Minimally Covering NSEC Records and DNSSEC On-line Signing 4634: US Secure Hash Algorithms (SHA and HMAC-SHA) 4641: DNSSEC Operational Practices +4648: The Base16, Base32, and Base64 Data Encodings +4701: A DNS Resource Record (RR) for Encoding + Dynamic Host Configuration Protocol (DHCP) Information (DHCID RR) +5155: DNS Security (DNSSEC) Hashed Authenticated Denial of Existence diff --git a/doc/rfc/rfc4648.txt b/doc/rfc/rfc4648.txt new file mode 100644 index 000000000000..c7599b4330cb --- /dev/null +++ b/doc/rfc/rfc4648.txt @@ -0,0 +1,1011 @@ + + + + + + +Network Working Group S. Josefsson +Request for Comments: 4648 SJD +Obsoletes: 3548 October 2006 +Category: Standards Track + + + The Base16, Base32, and Base64 Data Encodings + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2006). + +Abstract + + This document describes the commonly used base 64, base 32, and base + 16 encoding schemes. It also discusses the use of line-feeds in + encoded data, use of padding in encoded data, use of non-alphabet + characters in encoded data, use of different encoding alphabets, and + canonical encodings. + + + + + + + + + + + + + + + + + + + + + + + + +Josefsson Standards Track [Page 1] + +RFC 4648 Base-N Encodings October 2006 + + +Table of Contents + + 1. Introduction ....................................................3 + 2. Conventions Used in This Document ...............................3 + 3. Implementation Discrepancies ....................................3 + 3.1. Line Feeds in Encoded Data .................................3 + 3.2. Padding of Encoded Data ....................................4 + 3.3. Interpretation of Non-Alphabet Characters in Encoded Data ..4 + 3.4. Choosing the Alphabet ......................................4 + 3.5. Canonical Encoding .........................................5 + 4. Base 64 Encoding ................................................5 + 5. Base 64 Encoding with URL and Filename Safe Alphabet ............7 + 6. Base 32 Encoding ................................................8 + 7. Base 32 Encoding with Extended Hex Alphabet ....................10 + 8. Base 16 Encoding ...............................................10 + 9. Illustrations and Examples .....................................11 + 10. Test Vectors ..................................................12 + 11. ISO C99 Implementation of Base64 ..............................14 + 12. Security Considerations .......................................14 + 13. Changes Since RFC 3548 ........................................15 + 14. Acknowledgements ..............................................15 + 15. Copying Conditions ............................................15 + 16. References ....................................................16 + 16.1. Normative References .....................................16 + 16.2. Informative References ...................................16 + + + + + + + + + + + + + + + + + + + + + + + + + + +Josefsson Standards Track [Page 2] + +RFC 4648 Base-N Encodings October 2006 + + +1. Introduction + + Base encoding of data is used in many situations to store or transfer + data in environments that, perhaps for legacy reasons, are restricted + to US-ASCII [1] data. Base encoding can also be used in new + applications that do not have legacy restrictions, simply because it + makes it possible to manipulate objects with text editors. + + In the past, different applications have had different requirements + and thus sometimes implemented base encodings in slightly different + ways. Today, protocol specifications sometimes use base encodings in + general, and "base64" in particular, without a precise description or + reference. Multipurpose Internet Mail Extensions (MIME) [4] is often + used as a reference for base64 without considering the consequences + for line-wrapping or non-alphabet characters. The purpose of this + specification is to establish common alphabet and encoding + considerations. This will hopefully reduce ambiguity in other + documents, leading to better interoperability. + +2. Conventions Used in This Document + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [2]. + +3. Implementation Discrepancies + + Here we discuss the discrepancies between base encoding + implementations in the past and, where appropriate, mandate a + specific recommended behavior for the future. + +3.1. Line Feeds in Encoded Data + + MIME [4] is often used as a reference for base 64 encoding. However, + MIME does not define "base 64" per se, but rather a "base 64 Content- + Transfer-Encoding" for use within MIME. As such, MIME enforces a + limit on line length of base 64-encoded data to 76 characters. MIME + inherits the encoding from Privacy Enhanced Mail (PEM) [3], stating + that it is "virtually identical"; however, PEM uses a line length of + 64 characters. The MIME and PEM limits are both due to limits within + SMTP. + + Implementations MUST NOT add line feeds to base-encoded data unless + the specification referring to this document explicitly directs base + encoders to add line feeds after a specific number of characters. + + + + + + +Josefsson Standards Track [Page 3] + +RFC 4648 Base-N Encodings October 2006 + + +3.2. Padding of Encoded Data + + In some circumstances, the use of padding ("=") in base-encoded data + is not required or used. In the general case, when assumptions about + the size of transported data cannot be made, padding is required to + yield correct decoded data. + + Implementations MUST include appropriate pad characters at the end of + encoded data unless the specification referring to this document + explicitly states otherwise. + + The base64 and base32 alphabets use padding, as described below in + sections 4 and 6, but the base16 alphabet does not need it; see + section 8. + +3.3. Interpretation of Non-Alphabet Characters in Encoded Data + + Base encodings use a specific, reduced alphabet to encode binary + data. Non-alphabet characters could exist within base-encoded data, + caused by data corruption or by design. Non-alphabet characters may + be exploited as a "covert channel", where non-protocol data can be + sent for nefarious purposes. Non-alphabet characters might also be + sent in order to exploit implementation errors leading to, e.g., + buffer overflow attacks. + + Implementations MUST reject the encoded data if it contains + characters outside the base alphabet when interpreting base-encoded + data, unless the specification referring to this document explicitly + states otherwise. Such specifications may instead state, as MIME + does, that characters outside the base encoding alphabet should + simply be ignored when interpreting data ("be liberal in what you + accept"). Note that this means that any adjacent carriage return/ + line feed (CRLF) characters constitute "non-alphabet characters" and + are ignored. Furthermore, such specifications MAY ignore the pad + character, "=", treating it as non-alphabet data, if it is present + before the end of the encoded data. If more than the allowed number + of pad characters is found at the end of the string (e.g., a base 64 + string terminated with "==="), the excess pad characters MAY also be + ignored. + +3.4. Choosing the Alphabet + + Different applications have different requirements on the characters + in the alphabet. Here are a few requirements that determine which + alphabet should be used: + + + + + + +Josefsson Standards Track [Page 4] + +RFC 4648 Base-N Encodings October 2006 + + + o Handled by humans. The characters "0" and "O" are easily + confused, as are "1", "l", and "I". In the base32 alphabet below, + where 0 (zero) and 1 (one) are not present, a decoder may + interpret 0 as O, and 1 as I or L depending on case. (However, by + default it should not; see previous section.) + + o Encoded into structures that mandate other requirements. For base + 16 and base 32, this determines the use of upper- or lowercase + alphabets. For base 64, the non-alphanumeric characters (in + particular, "/") may be problematic in file names and URLs. + + o Used as identifiers. Certain characters, notably "+" and "/" in + the base 64 alphabet, are treated as word-breaks by legacy text + search/index tools. + + There is no universally accepted alphabet that fulfills all the + requirements. For an example of a highly specialized variant, see + IMAP [8]. In this document, we document and name some currently used + alphabets. + +3.5. Canonical Encoding + + The padding step in base 64 and base 32 encoding can, if improperly + implemented, lead to non-significant alterations of the encoded data. + For example, if the input is only one octet for a base 64 encoding, + then all six bits of the first symbol are used, but only the first + two bits of the next symbol are used. These pad bits MUST be set to + zero by conforming encoders, which is described in the descriptions + on padding below. If this property do not hold, there is no + canonical representation of base-encoded data, and multiple base- + encoded strings can be decoded to the same binary data. If this + property (and others discussed in this document) holds, a canonical + encoding is guaranteed. + + In some environments, the alteration is critical and therefore + decoders MAY chose to reject an encoding if the pad bits have not + been set to zero. The specification referring to this may mandate a + specific behaviour. + +4. Base 64 Encoding + + The following description of base 64 is derived from [3], [4], [5], + and [6]. This encoding may be referred to as "base64". + + The Base 64 encoding is designed to represent arbitrary sequences of + octets in a form that allows the use of both upper- and lowercase + letters but that need not be human readable. + + + + +Josefsson Standards Track [Page 5] + +RFC 4648 Base-N Encodings October 2006 + + + A 65-character subset of US-ASCII is used, enabling 6 bits to be + represented per printable character. (The extra 65th character, "=", + is used to signify a special processing function.) + + The encoding process represents 24-bit groups of input bits as output + strings of 4 encoded characters. Proceeding from left to right, a + 24-bit input group is formed by concatenating 3 8-bit input groups. + These 24 bits are then treated as 4 concatenated 6-bit groups, each + of which is translated into a single character in the base 64 + alphabet. + + Each 6-bit group is used as an index into an array of 64 printable + characters. The character referenced by the index is placed in the + output string. + + Table 1: The Base 64 Alphabet + + Value Encoding Value Encoding Value Encoding Value Encoding + 0 A 17 R 34 i 51 z + 1 B 18 S 35 j 52 0 + 2 C 19 T 36 k 53 1 + 3 D 20 U 37 l 54 2 + 4 E 21 V 38 m 55 3 + 5 F 22 W 39 n 56 4 + 6 G 23 X 40 o 57 5 + 7 H 24 Y 41 p 58 6 + 8 I 25 Z 42 q 59 7 + 9 J 26 a 43 r 60 8 + 10 K 27 b 44 s 61 9 + 11 L 28 c 45 t 62 + + 12 M 29 d 46 u 63 / + 13 N 30 e 47 v + 14 O 31 f 48 w (pad) = + 15 P 32 g 49 x + 16 Q 33 h 50 y + + Special processing is performed if fewer than 24 bits are available + at the end of the data being encoded. A full encoding quantum is + always completed at the end of a quantity. When fewer than 24 input + bits are available in an input group, bits with value zero are added + (on the right) to form an integral number of 6-bit groups. Padding + at the end of the data is performed using the '=' character. Since + all base 64 input is an integral number of octets, only the following + cases can arise: + + (1) The final quantum of encoding input is an integral multiple of 24 + bits; here, the final unit of encoded output will be an integral + multiple of 4 characters with no "=" padding. + + + +Josefsson Standards Track [Page 6] + +RFC 4648 Base-N Encodings October 2006 + + + (2) The final quantum of encoding input is exactly 8 bits; here, the + final unit of encoded output will be two characters followed by + two "=" padding characters. + + (3) The final quantum of encoding input is exactly 16 bits; here, the + final unit of encoded output will be three characters followed by + one "=" padding character. + +5. Base 64 Encoding with URL and Filename Safe Alphabet + + The Base 64 encoding with an URL and filename safe alphabet has been + used in [12]. + + An alternative alphabet has been suggested that would use "~" as the + 63rd character. Since the "~" character has special meaning in some + file system environments, the encoding described in this section is + recommended instead. The remaining unreserved URI character is ".", + but some file system environments do not permit multiple "." in a + filename, thus making the "." character unattractive as well. + + The pad character "=" is typically percent-encoded when used in an + URI [9], but if the data length is known implicitly, this can be + avoided by skipping the padding; see section 3.2. + + This encoding may be referred to as "base64url". This encoding + should not be regarded as the same as the "base64" encoding and + should not be referred to as only "base64". Unless clarified + otherwise, "base64" refers to the base 64 in the previous section. + + This encoding is technically identical to the previous one, except + for the 62:nd and 63:rd alphabet character, as indicated in Table 2. + + + + + + + + + + + + + + + + + + + + +Josefsson Standards Track [Page 7] + +RFC 4648 Base-N Encodings October 2006 + + + Table 2: The "URL and Filename safe" Base 64 Alphabet + + Value Encoding Value Encoding Value Encoding Value Encoding + 0 A 17 R 34 i 51 z + 1 B 18 S 35 j 52 0 + 2 C 19 T 36 k 53 1 + 3 D 20 U 37 l 54 2 + 4 E 21 V 38 m 55 3 + 5 F 22 W 39 n 56 4 + 6 G 23 X 40 o 57 5 + 7 H 24 Y 41 p 58 6 + 8 I 25 Z 42 q 59 7 + 9 J 26 a 43 r 60 8 + 10 K 27 b 44 s 61 9 + 11 L 28 c 45 t 62 - (minus) + 12 M 29 d 46 u 63 _ + 13 N 30 e 47 v (underline) + 14 O 31 f 48 w + 15 P 32 g 49 x + 16 Q 33 h 50 y (pad) = + +6. Base 32 Encoding + + The following description of base 32 is derived from [11] (with + corrections). This encoding may be referred to as "base32". + + The Base 32 encoding is designed to represent arbitrary sequences of + octets in a form that needs to be case insensitive but that need not + be human readable. + + A 33-character subset of US-ASCII is used, enabling 5 bits to be + represented per printable character. (The extra 33rd character, "=", + is used to signify a special processing function.) + + The encoding process represents 40-bit groups of input bits as output + strings of 8 encoded characters. Proceeding from left to right, a + 40-bit input group is formed by concatenating 5 8bit input groups. + These 40 bits are then treated as 8 concatenated 5-bit groups, each + of which is translated into a single character in the base 32 + alphabet. When a bit stream is encoded via the base 32 encoding, the + bit stream must be presumed to be ordered with the most-significant- + bit first. That is, the first bit in the stream will be the high- + order bit in the first 8bit byte, the eighth bit will be the low- + order bit in the first 8bit byte, and so on. + + + + + + + +Josefsson Standards Track [Page 8] + +RFC 4648 Base-N Encodings October 2006 + + + Each 5-bit group is used as an index into an array of 32 printable + characters. The character referenced by the index is placed in the + output string. These characters, identified in Table 3, below, are + selected from US-ASCII digits and uppercase letters. + + Table 3: The Base 32 Alphabet + + Value Encoding Value Encoding Value Encoding Value Encoding + 0 A 9 J 18 S 27 3 + 1 B 10 K 19 T 28 4 + 2 C 11 L 20 U 29 5 + 3 D 12 M 21 V 30 6 + 4 E 13 N 22 W 31 7 + 5 F 14 O 23 X + 6 G 15 P 24 Y (pad) = + 7 H 16 Q 25 Z + 8 I 17 R 26 2 + + Special processing is performed if fewer than 40 bits are available + at the end of the data being encoded. A full encoding quantum is + always completed at the end of a body. When fewer than 40 input bits + are available in an input group, bits with value zero are added (on + the right) to form an integral number of 5-bit groups. Padding at + the end of the data is performed using the "=" character. Since all + base 32 input is an integral number of octets, only the following + cases can arise: + + (1) The final quantum of encoding input is an integral multiple of 40 + bits; here, the final unit of encoded output will be an integral + multiple of 8 characters with no "=" padding. + + (2) The final quantum of encoding input is exactly 8 bits; here, the + final unit of encoded output will be two characters followed by + six "=" padding characters. + + (3) The final quantum of encoding input is exactly 16 bits; here, the + final unit of encoded output will be four characters followed by + four "=" padding characters. + + (4) The final quantum of encoding input is exactly 24 bits; here, the + final unit of encoded output will be five characters followed by + three "=" padding characters. + + (5) The final quantum of encoding input is exactly 32 bits; here, the + final unit of encoded output will be seven characters followed by + one "=" padding character. + + + + + +Josefsson Standards Track [Page 9] + +RFC 4648 Base-N Encodings October 2006 + + +7. Base 32 Encoding with Extended Hex Alphabet + + The following description of base 32 is derived from [7]. This + encoding may be referred to as "base32hex". This encoding should not + be regarded as the same as the "base32" encoding and should not be + referred to as only "base32". This encoding is used by, e.g., + NextSECure3 (NSEC3) [10]. + + One property with this alphabet, which the base64 and base32 + alphabets lack, is that encoded data maintains its sort order when + the encoded data is compared bit-wise. + + This encoding is identical to the previous one, except for the + alphabet. The new alphabet is found in Table 4. + + Table 4: The "Extended Hex" Base 32 Alphabet + + Value Encoding Value Encoding Value Encoding Value Encoding + 0 0 9 9 18 I 27 R + 1 1 10 A 19 J 28 S + 2 2 11 B 20 K 29 T + 3 3 12 C 21 L 30 U + 4 4 13 D 22 M 31 V + 5 5 14 E 23 N + 6 6 15 F 24 O (pad) = + 7 7 16 G 25 P + 8 8 17 H 26 Q + +8. Base 16 Encoding + + The following description is original but analogous to previous + descriptions. Essentially, Base 16 encoding is the standard case- + insensitive hex encoding and may be referred to as "base16" or "hex". + + A 16-character subset of US-ASCII is used, enabling 4 bits to be + represented per printable character. + + The encoding process represents 8-bit groups (octets) of input bits + as output strings of 2 encoded characters. Proceeding from left to + right, an 8-bit input is taken from the input data. These 8 bits are + then treated as 2 concatenated 4-bit groups, each of which is + translated into a single character in the base 16 alphabet. + + Each 4-bit group is used as an index into an array of 16 printable + characters. The character referenced by the index is placed in the + output string. + + + + + +Josefsson Standards Track [Page 10] + +RFC 4648 Base-N Encodings October 2006 + + + Table 5: The Base 16 Alphabet + + Value Encoding Value Encoding Value Encoding Value Encoding + 0 0 4 4 8 8 12 C + 1 1 5 5 9 9 13 D + 2 2 6 6 10 A 14 E + 3 3 7 7 11 B 15 F + + Unlike base 32 and base 64, no special padding is necessary since a + full code word is always available. + +9. Illustrations and Examples + + To translate between binary and a base encoding, the input is stored + in a structure, and the output is extracted. The case for base 64 is + displayed in the following figure, borrowed from [5]. + + +--first octet--+-second octet--+--third octet--+ + |7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0| + +-----------+---+-------+-------+---+-----------+ + |5 4 3 2 1 0|5 4 3 2 1 0|5 4 3 2 1 0|5 4 3 2 1 0| + +--1.index--+--2.index--+--3.index--+--4.index--+ + + The case for base 32 is shown in the following figure, borrowed from + [7]. Each successive character in a base-32 value represents 5 + successive bits of the underlying octet sequence. Thus, each group + of 8 characters represents a sequence of 5 octets (40 bits). + + 1 2 3 + 01234567 89012345 67890123 45678901 23456789 + +--------+--------+--------+--------+--------+ + |< 1 >< 2| >< 3 ><|.4 >< 5.|>< 6 ><.|7 >< 8 >| + +--------+--------+--------+--------+--------+ + <===> 8th character + <====> 7th character + <===> 6th character + <====> 5th character + <====> 4th character + <===> 3rd character + <====> 2nd character + <===> 1st character + + + + + + + + + + +Josefsson Standards Track [Page 11] + +RFC 4648 Base-N Encodings October 2006 + + + The following example of Base64 data is from [5], with corrections. + + Input data: 0x14fb9c03d97e + Hex: 1 4 f b 9 c | 0 3 d 9 7 e + 8-bit: 00010100 11111011 10011100 | 00000011 11011001 01111110 + 6-bit: 000101 001111 101110 011100 | 000000 111101 100101 111110 + Decimal: 5 15 46 28 0 61 37 62 + Output: F P u c A 9 l + + + Input data: 0x14fb9c03d9 + Hex: 1 4 f b 9 c | 0 3 d 9 + 8-bit: 00010100 11111011 10011100 | 00000011 11011001 + pad with 00 + 6-bit: 000101 001111 101110 011100 | 000000 111101 100100 + Decimal: 5 15 46 28 0 61 36 + pad with = + Output: F P u c A 9 k = + + Input data: 0x14fb9c03 + Hex: 1 4 f b 9 c | 0 3 + 8-bit: 00010100 11111011 10011100 | 00000011 + pad with 0000 + 6-bit: 000101 001111 101110 011100 | 000000 110000 + Decimal: 5 15 46 28 0 48 + pad with = = + Output: F P u c A w = = + +10. Test Vectors + + BASE64("") = "" + + BASE64("f") = "Zg==" + + BASE64("fo") = "Zm8=" + + BASE64("foo") = "Zm9v" + + BASE64("foob") = "Zm9vYg==" + + BASE64("fooba") = "Zm9vYmE=" + + BASE64("foobar") = "Zm9vYmFy" + + BASE32("") = "" + + BASE32("f") = "MY======" + + BASE32("fo") = "MZXQ====" + + + +Josefsson Standards Track [Page 12] + +RFC 4648 Base-N Encodings October 2006 + + + BASE32("foo") = "MZXW6===" + + BASE32("foob") = "MZXW6YQ=" + + BASE32("fooba") = "MZXW6YTB" + + BASE32("foobar") = "MZXW6YTBOI======" + + BASE32-HEX("") = "" + + BASE32-HEX("f") = "CO======" + + BASE32-HEX("fo") = "CPNG====" + + BASE32-HEX("foo") = "CPNMU===" + + BASE32-HEX("foob") = "CPNMUOG=" + + BASE32-HEX("fooba") = "CPNMUOJ1" + + BASE32-HEX("foobar") = "CPNMUOJ1E8======" + + BASE16("") = "" + + BASE16("f") = "66" + + BASE16("fo") = "666F" + + BASE16("foo") = "666F6F" + + BASE16("foob") = "666F6F62" + + BASE16("fooba") = "666F6F6261" + + BASE16("foobar") = "666F6F626172" + + + + + + + + + + + + + + + + +Josefsson Standards Track [Page 13] + +RFC 4648 Base-N Encodings October 2006 + + +11. ISO C99 Implementation of Base64 + + An ISO C99 implementation of Base64 encoding and decoding that is + believed to follow all recommendations in this RFC is available from: + + http://josefsson.org/base-encoding/ + + This code is not normative. + + The code could not be included in this RFC for procedural reasons + (RFC 3978 section 5.4). + +12. Security Considerations + + When base encoding and decoding is implemented, care should be taken + not to introduce vulnerabilities to buffer overflow attacks, or other + attacks on the implementation. A decoder should not break on invalid + input including, e.g., embedded NUL characters (ASCII 0). + + If non-alphabet characters are ignored, instead of causing rejection + of the entire encoding (as recommended), a covert channel that can be + used to "leak" information is made possible. The ignored characters + could also be used for other nefarious purposes, such as to avoid a + string equality comparison or to trigger implementation bugs. The + implications of ignoring non-alphabet characters should be understood + in applications that do not follow the recommended practice. + Similarly, when the base 16 and base 32 alphabets are handled case + insensitively, alteration of case can be used to leak information or + make string equality comparisons fail. + + When padding is used, there are some non-significant bits that + warrant security concerns, as they may be abused to leak information + or used to bypass string equality comparisons or to trigger + implementation problems. + + Base encoding visually hides otherwise easily recognized information, + such as passwords, but does not provide any computational + confidentiality. This has been known to cause security incidents + when, e.g., a user reports details of a network protocol exchange + (perhaps to illustrate some other problem) and accidentally reveals + the password because she is unaware that the base encoding does not + protect the password. + + Base encoding adds no entropy to the plaintext, but it does increase + the amount of plaintext available and provide a signature for + cryptanalysis in the form of a characteristic probability + distribution. + + + + +Josefsson Standards Track [Page 14] + +RFC 4648 Base-N Encodings October 2006 + + +13. Changes Since RFC 3548 + + Added the "base32 extended hex alphabet", needed to preserve sort + order of encoded data. + + Referenced IMAP for the special Base64 encoding used there. + + Fixed the example copied from RFC 2440. + + Added security consideration about providing a signature for + cryptoanalysis. + + Added test vectors. + + Fixed typos. + +14. Acknowledgements + + Several people offered comments and/or suggestions, including John E. + Hadstate, Tony Hansen, Gordon Mohr, John Myers, Chris Newman, and + Andrew Sieber. Text used in this document are based on earlier RFCs + describing specific uses of various base encodings. The author + acknowledges the RSA Laboratories for supporting the work that led to + this document. + + This revised version is based in parts on comments and/or suggestions + made by Roy Arends, Eric Blake, Brian E Carpenter, Elwyn Davies, Bill + Fenner, Sam Hartman, Ted Hardie, Per Hygum, Jelte Jansen, Clement + Kent, Tero Kivinen, Paul Kwiatkowski, and Ben Laurie. + +15. Copying Conditions + + Copyright (c) 2000-2006 Simon Josefsson + + Regarding the abstract and sections 1, 3, 8, 10, 12, 13, and 14 of + this document, that were written by Simon Josefsson ("the author", + for the remainder of this section), the author makes no guarantees + and is not responsible for any damage resulting from its use. The + author grants irrevocable permission to anyone to use, modify, and + distribute it in any way that does not diminish the rights of anyone + else to use, modify, and distribute it, provided that redistributed + derivative works do not contain misleading author or version + information and do not falsely purport to be IETF RFC documents. + Derivative works need not be licensed under similar terms. + + + + + + + +Josefsson Standards Track [Page 15] + +RFC 4648 Base-N Encodings October 2006 + + +16. References + +16.1. Normative References + + [1] Cerf, V., "ASCII format for network interchange", RFC 20, + October 1969. + + [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels", BCP 14, RFC 2119, March 1997. + +16.2. Informative References + + [3] Linn, J., "Privacy Enhancement for Internet Electronic Mail: + Part I: Message Encryption and Authentication Procedures", RFC + 1421, February 1993. + + [4] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part One: Format of Internet Message Bodies", + RFC 2045, November 1996. + + [5] Callas, J., Donnerhacke, L., Finney, H., and R. Thayer, + "OpenPGP Message Format", RFC 2440, November 1998. + + [6] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, + "DNS Security Introduction and Requirements", RFC 4033, March + 2005. + + [7] Klyne, G. and L. Masinter, "Identifying Composite Media + Features", RFC 2938, September 2000. + + [8] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION + 4rev1", RFC 3501, March 2003. + + [9] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, + January 2005. + + [10] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNSSEC Hash + Authenticated Denial of Existence", Work in Progress, June + 2006. + + [11] Myers, J., "SASL GSSAPI mechanisms", Work in Progress, May + 2000. + + [12] Wilcox-O'Hearn, B., "Post to P2P-hackers mailing list", + http://zgp.org/pipermail/p2p-hackers/2001-September/ + 000315.html, September 2001. + + + + +Josefsson Standards Track [Page 16] + +RFC 4648 Base-N Encodings October 2006 + + +Author's Address + + Simon Josefsson + SJD + EMail: simon@josefsson.org + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Josefsson Standards Track [Page 17] + +RFC 4648 Base-N Encodings October 2006 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2006). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET + ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE + INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + +Acknowledgement + + Funding for the RFC Editor function is provided by the IETF + Administrative Support Activity (IASA). + + + + + + + +Josefsson Standards Track [Page 18] + diff --git a/doc/rfc/rfc4701.txt b/doc/rfc/rfc4701.txt new file mode 100644 index 000000000000..03e3c54376f4 --- /dev/null +++ b/doc/rfc/rfc4701.txt @@ -0,0 +1,675 @@ + + + + + + +Network Working Group M. Stapp +Request for Comments: 4701 Cisco Systems, Inc. +Category: Standards Track T. Lemon + Nominum, Inc. + A. Gustafsson + Araneus Information Systems Oy + October 2006 + + + A DNS Resource Record (RR) for Encoding + Dynamic Host Configuration Protocol (DHCP) Information (DHCID RR) + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2006). + +Abstract + + It is possible for Dynamic Host Configuration Protocol (DHCP) clients + to attempt to update the same DNS Fully Qualified Domain Name (FQDN) + or to update a DNS FQDN that has been added to the DNS for another + purpose as they obtain DHCP leases. Whether the DHCP server or the + clients themselves perform the DNS updates, conflicts can arise. To + resolve such conflicts, RFC 4703 proposes storing client identifiers + in the DNS to unambiguously associate domain names with the DHCP + clients to which they refer. This memo defines a distinct Resource + Record (RR) type for this purpose for use by DHCP clients and + servers: the "DHCID" RR. + + + + + + + + + + + + + + + +Stapp, et al. Standards Track [Page 1] + +RFC 4701 The DHCID RR October 2006 + + +Table of Contents + + 1. Introduction ....................................................3 + 2. Terminology .....................................................3 + 3. The DHCID RR ....................................................3 + 3.1. DHCID RDATA Format .........................................3 + 3.2. DHCID Presentation Format ..................................4 + 3.3. The DHCID RR Identifier Type Codes .........................4 + 3.4. The DHCID RR Digest Type Code ..............................4 + 3.5. Computation of the RDATA ...................................5 + 3.5.1. Using the Client's DUID .............................5 + 3.5.2. Using the Client Identifier Option ..................6 + 3.5.3. Using the Client's htype and chaddr .................6 + 3.6. Examples ...................................................6 + 3.6.1. Example 1 ...........................................6 + 3.6.2. Example 2 ...........................................7 + 3.6.3. Example 3 ...........................................7 + 4. Use of the DHCID RR .............................................8 + 5. Updater Behavior ................................................8 + 6. Security Considerations .........................................8 + 7. IANA Considerations .............................................9 + 8. Acknowledgements ................................................9 + 9. References ......................................................9 + 9.1. Normative References .......................................9 + 9.2. Informative References ....................................10 + + + + + + + + + + + + + + + + + + + + + + + + + + +Stapp, et al. Standards Track [Page 2] + +RFC 4701 The DHCID RR October 2006 + + +1. Introduction + + A set of procedures to allow DHCP [7] [11] clients and servers to + automatically update the DNS ([3], [4]) is proposed in [1]. + + Conflicts can arise if multiple DHCP clients wish to use the same DNS + name or a DHCP client attempts to use a name added for another + purpose. To resolve such conflicts, [1] proposes storing client + identifiers in the DNS to unambiguously associate domain names with + the DHCP clients using them. In the interest of clarity, it is + preferable for this DHCP information to use a distinct RR type. This + memo defines a distinct RR for this purpose for use by DHCP clients + or servers: the "DHCID" RR. + + In order to obscure potentially sensitive client identifying + information, the data stored is the result of a one-way SHA-256 hash + computation. The hash includes information from the DHCP client's + message as well as the domain name itself, so that the data stored in + the DHCID RR will be dependent on both the client identification used + in the DHCP protocol interaction and the domain name. This means + that the DHCID RDATA will vary if a single client is associated over + time with more than one name. This makes it difficult to 'track' a + client as it is associated with various domain names. + +2. Terminology + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [2]. + +3. The DHCID RR + + The DHCID RR is defined with mnemonic DHCID and type code 49. The + DHCID RR is only defined in the IN class. DHCID RRs cause no + additional section processing. + +3.1. DHCID RDATA Format + + The RDATA section of a DHCID RR in transmission contains RDLENGTH + octets of binary data. The format of this data and its + interpretation by DHCP servers and clients are described below. + + DNS software should consider the RDATA section to be opaque. DHCP + clients or servers use the DHCID RR to associate a DHCP client's + identity with a DNS name, so that multiple DHCP clients and servers + may deterministically perform dynamic DNS updates to the same zone. + From the updater's perspective, the DHCID resource record RDATA + consists of a 2-octet identifier type, in network byte order, + + + +Stapp, et al. Standards Track [Page 3] + +RFC 4701 The DHCID RR October 2006 + + + followed by a 1-octet digest type, followed by one or more octets + representing the actual identifier: + + < 2 octets > Identifier type code + < 1 octet > Digest type code + < n octets > Digest (length depends on digest type) + +3.2. DHCID Presentation Format + + In DNS master files, the RDATA is represented as a single block in + base-64 encoding identical to that used for representing binary data + in [8], Section 3. The data may be divided up into any number of + white-space-separated substrings, down to single base-64 digits, + which are concatenated to form the complete RDATA. These substrings + can span lines using the standard parentheses. + +3.3. The DHCID RR Identifier Type Codes + + The DHCID RR Identifier Type Code specifies what data from the DHCP + client's request was used as input into the hash function. The + identifier type codes are defined in a registry maintained by IANA, + as specified in Section 7. The initial list of assigned values for + the identifier type code and that type's identifier is: + + + +------------------+------------------------------------------------+ + | Identifier Type | Identifier | + | Code | | + +------------------+------------------------------------------------+ + | 0x0000 | The 1-octet 'htype' followed by 'hlen' octets | + | | of 'chaddr' from a DHCPv4 client's DHCPREQUEST | + | | [7]. | + | 0x0001 | The data octets (i.e., the Type and | + | | Client-Identifier fields) from a DHCPv4 | + | | client's Client Identifier option [10]. | + | 0x0002 | The client's DUID (i.e., the data octets of a | + | | DHCPv6 client's Client Identifier option [11] | + | | or the DUID field from a DHCPv4 client's | + | | Client Identifier option [6]). | + | 0x0003 - 0xfffe | Undefined; available to be assigned by IANA. | + | 0xffff | Undefined; RESERVED. | + +------------------+------------------------------------------------+ + +3.4. The DHCID RR Digest Type Code + + The DHCID RR Digest Type Code is an identifier for the digest + algorithm used. The digest is calculated over an identifier and the + canonical FQDN as described in the next section. + + + +Stapp, et al. Standards Track [Page 4] + +RFC 4701 The DHCID RR October 2006 + + + The digest type codes are defined in a registry maintained by IANA, + as specified in Section 7. The initial list of assigned values for + the digest type codes is: value 0 is reserved, and value 1 is + SHA-256. Reserving other types requires IETF standards action. + Defining new values will also require IETF standards action to + document how DNS updaters are to deal with multiple digest types. + +3.5. Computation of the RDATA + + The DHCID RDATA is formed by concatenating the 2-octet identifier + type code with variable-length data. + + The RDATA for all type codes other than 0xffff, which is reserved for + future expansion, is formed by concatenating the 2-octet identifier + type code, the 1-octet digest type code, and the digest value (32 + octets for SHA-256). + + < identifier-type > < digest-type > < digest > + + The input to the digest hash function is defined to be: + + digest = SHA-256(< identifier > < FQDN >) + + The FQDN is represented in the buffer in the canonical wire format as + described in [9], Section 6.2. The identifier type code and the + identifier are related as specified in Section 3.3: the identifier + type code describes the source of the identifier. + + A DHCPv4 updater uses the 0x0002 type code if a Client Identifier + option is present in the DHCPv4 messages and it is encoded as + specified in [6]. Otherwise, the updater uses 0x0001 if a Client + Identifier option is present, and 0x0000 if not. + + A DHCPv6 updater always uses the 0x0002 type code. + +3.5.1. Using the Client's DUID + + When the updater is using the Client's DUID (either from a DHCPv6 + Client Identifier option or from a portion of the DHCPv4 Client + Identifier option encoded as specified in [6]), the first two octets + of the DHCID RR MUST be 0x0002, in network byte order. The third + octet is the digest type code (1 for SHA-256). The rest of the DHCID + RR MUST contain the results of computing the SHA-256 hash across the + octets of the DUID followed by the FQDN. + + + + + + + +Stapp, et al. Standards Track [Page 5] + +RFC 4701 The DHCID RR October 2006 + + +3.5.2. Using the Client Identifier Option + + When the updater is using the DHCPv4 Client Identifier option sent by + the client in its DHCPREQUEST message, the first two octets of the + DHCID RR MUST be 0x0001, in network byte order. The third octet is + the digest type code (1 for SHA-256). The rest of the DHCID RR MUST + contain the results of computing the SHA-256 hash across the data + octets (i.e., the Type and Client-Identifier fields) of the option, + followed by the FQDN. + +3.5.3. Using the Client's htype and chaddr + + When the updater is using the client's link-layer address as the + identifier, the first two octets of the DHCID RDATA MUST be zero. + The third octet is the digest type code (1 for SHA-256). To generate + the rest of the resource record, the updater computes a one-way hash + using the SHA-256 algorithm across a buffer containing the client's + network hardware type, link-layer address, and the FQDN data. + Specifically, the first octet of the buffer contains the network + hardware type as it appeared in the DHCP 'htype' field of the + client's DHCPREQUEST message. All of the significant octets of the + 'chaddr' field in the client's DHCPREQUEST message follow, in the + same order in which the octets appear in the DHCPREQUEST message. + The number of significant octets in the 'chaddr' field is specified + in the 'hlen' field of the DHCPREQUEST message. The FQDN data, as + specified above, follows. + +3.6. Examples + +3.6.1. Example 1 + + A DHCP server allocates the IPv6 address 2001:DB8::1234:5678 to a + client that included the DHCPv6 client-identifier option data 00:01: + 00:06:41:2d:f1:66:01:02:03:04:05:06 in its DHCPv6 request. The + server updates the name "chi6.example.com" on the client's behalf and + uses the DHCP client identifier option data as input in forming a + DHCID RR. The DHCID RDATA is formed by setting the two type octets + to the value 0x0002, the 1-octet digest type to 1 for SHA-256, and + performing a SHA-256 hash computation across a buffer containing the + 14 octets from the client-id option and the FQDN (represented as + specified in Section 3.5). + + chi6.example.com. AAAA 2001:DB8::1234:5678 + chi6.example.com. DHCID ( AAIBY2/AuCccgoJbsaxcQc9TUapptP69l + OjxfNuVAA2kjEA= ) + + If the DHCID RR type is not supported, the RDATA would be encoded + [13] as: + + + +Stapp, et al. Standards Track [Page 6] + +RFC 4701 The DHCID RR October 2006 + + + \# 35 ( 000201636fc0b8271c82825bb1ac5c41cf5351aa69b4febd94e8f17cd + b95000da48c40 ) + +3.6.2. Example 2 + + A DHCP server allocates the IPv4 address 192.0.2.2 to a client that + included the DHCP client-identifier option data 01:07:08:09:0a:0b:0c + in its DHCP request. The server updates the name "chi.example.com" + on the client's behalf and uses the DHCP client identifier option + data as input in forming a DHCID RR. The DHCID RDATA is formed by + setting the two type octets to the value 0x0001, the 1-octet digest + type to 1 for SHA-256, and performing a SHA-256 hash computation + across a buffer containing the seven octets from the client-id option + and the FQDN (represented as specified in Section 3.5). + + chi.example.com. A 192.0.2.2 + chi.example.com. DHCID ( AAEBOSD+XR3Os/0LozeXVqcNc7FwCfQdW + L3b/NaiUDlW2No= ) + + If the DHCID RR type is not supported, the RDATA would be encoded + [13] as: + + \# 35 ( 0001013920fe5d1dceb3fd0ba3379756a70d73b17009f41d58bddbfcd + 6a2503956d8da ) + +3.6.3. Example 3 + + A DHCP server allocating the IPv4 address 192.0.2.3 to a client with + the Ethernet MAC address 01:02:03:04:05:06 using domain name + "client.example.com" uses the client's link-layer address to identify + the client. The DHCID RDATA is composed by setting the two type + octets to zero, the 1-octet digest type to 1 for SHA-256, and + performing an SHA-256 hash computation across a buffer containing the + 1-octet 'htype' value for Ethernet, 0x01, followed by the six octets + of the Ethernet MAC address, and the domain name (represented as + specified in Section 3.5). + + client.example.com. A 192.0.2.3 + client.example.com. DHCID ( AAABxLmlskllE0MVjd57zHcWmEH3pCQ6V + ytcKD//7es/deY= ) + + If the DHCID RR type is not supported, the RDATA would be encoded + [13] as: + + \# 35 ( 000001c4b9a5b249651343158dde7bcc77169841f7a4243a572b5c283 + fffedeb3f75e6 ) + + + + + +Stapp, et al. Standards Track [Page 7] + +RFC 4701 The DHCID RR October 2006 + + +4. Use of the DHCID RR + + This RR MUST NOT be used for any purpose other than that detailed in + [1]. Although this RR contains data that is opaque to DNS servers, + the data must be consistent across all entities that update and + interpret this record. Therefore, new data formats may only be + defined through actions of the DHC Working Group, as a result of + revising [1]. + +5. Updater Behavior + + The data in the DHCID RR allows updaters to determine whether more + than one DHCP client desires to use a particular FQDN. This allows + site administrators to establish policy about DNS updates. The DHCID + RR does not establish any policy itself. + + Updaters use data from a DHCP client's request and the domain name + that the client desires to use to compute a client identity hash, and + then compare that hash to the data in any DHCID RRs on the name that + they wish to associate with the client's IP address. If an updater + discovers DHCID RRs whose RDATA does not match the client identity + that they have computed, the updater SHOULD conclude that a different + client is currently associated with the name in question. The + updater SHOULD then proceed according to the site's administrative + policy. That policy might dictate that a different name be selected, + or it might permit the updater to continue. + +6. Security Considerations + + The DHCID record as such does not introduce any new security problems + into the DNS. In order to obscure the client's identity information, + a one-way hash is used. Further, in order to make it difficult to + 'track' a client by examining the names associated with a particular + hash value, the FQDN is included in the hash computation. Thus, the + RDATA is dependent on both the DHCP client identification data and on + each FQDN associated with the client. + + However, it should be noted that an attacker that has some knowledge, + such as of MAC addresses commonly used in DHCP client identification + data, may be able to discover the client's DHCP identify by using a + brute-force attack. Even without any additional knowledge, the + number of unknown bits used in computing the hash is typically only + 48 to 80. + + Administrators should be wary of permitting unsecured DNS updates to + zones, whether or not they are exposed to the global Internet. Both + DHCP clients and servers SHOULD use some form of update + authentication (e.g., [12]) when performing DNS updates. + + + +Stapp, et al. Standards Track [Page 8] + +RFC 4701 The DHCID RR October 2006 + + +7. IANA Considerations + + IANA has allocated a DNS RR type number for the DHCID record type. + + This specification defines a new number-space for the 2-octet + identifier type codes associated with the DHCID RR. IANA has + established a registry of the values for this number-space. Three + initial values are assigned in Section 3.3, and the value 0xFFFF is + reserved for future use. New DHCID RR identifier type codes are + assigned through Standards Action, as defined in [5]. + + This specification defines a new number-space for the 1-octet digest + type codes associated with the DHCID RR. IANA has established a + registry of the values for this number-space. Two initial values are + assigned in Section 3.4. New DHCID RR digest type codes are assigned + through Standards Action, as defined in [5]. + +8. Acknowledgements + + Many thanks to Harald Alvestrand, Ralph Droms, Olafur Gudmundsson, + Sam Hartman, Josh Littlefield, Pekka Savola, and especially Bernie + Volz for their review and suggestions. + +9. References + +9.1. Normative References + + [1] Stapp, M. and B. Volz, "Resolution of Fully Qualified Domain + Name (FQDN) Conflicts among Dynamic Host Configuration Protocol + (DHCP) Clients", RFC 4703, October 2006. + + [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels", BCP 14, RFC 2119, March 1997. + + [3] Mockapetris, P., "Domain names - concepts and facilities", + STD 13, RFC 1034, November 1987. + + [4] Mockapetris, P., "Domain names - implementation and + specification", STD 13, RFC 1035, November 1987. + + [5] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA + Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. + + [6] Lemon, T. and B. Sommerfeld, "Node-specific Client Identifiers + for Dynamic Host Configuration Protocol Version Four (DHCPv4)", + RFC 4361, February 2006. + + + + + +Stapp, et al. Standards Track [Page 9] + +RFC 4701 The DHCID RR October 2006 + + +9.2. Informative References + + [7] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, + March 1997. + + [8] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", + RFC 3548, July 2003. + + [9] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, + "Resource Records for the DNS Security Extensions", RFC 4034, + March 2005. + + [10] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor + Extensions", RFC 2132, March 1997. + + [11] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. + Carney, "Dynamic Host Configuration Protocol for IPv6 + (DHCPv6)", RFC 3315, July 2003. + + [12] Vixie, P., Gudmundsson, O., Eastlake, D., and B. Wellington, + "Secret Key Transaction Authentication for DNS (TSIG)", + RFC 2845, May 2000. + + [13] Gustafsson, A., "Handling of Unknown DNS Resource Record (RR) + Types", RFC 3597, September 2003. + + + + + + + + + + + + + + + + + + + + + + + + + + +Stapp, et al. Standards Track [Page 10] + +RFC 4701 The DHCID RR October 2006 + + +Authors' Addresses + + Mark Stapp + Cisco Systems, Inc. + 1414 Massachusetts Ave. + Boxborough, MA 01719 + USA + + Phone: 978.936.1535 + EMail: mjs@cisco.com + + + Ted Lemon + Nominum, Inc. + 950 Charter St. + Redwood City, CA 94063 + USA + + EMail: mellon@nominum.com + + + Andreas Gustafsson + Araneus Information Systems Oy + Ulappakatu 1 + 02320 Espoo + Finland + + EMail: gson@araneus.fi + + + + + + + + + + + + + + + + + + + + + + + +Stapp, et al. Standards Track [Page 11] + +RFC 4701 The DHCID RR October 2006 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2006). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET + ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE + INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + +Acknowledgement + + Funding for the RFC Editor function is provided by the IETF + Administrative Support Activity (IASA). + + + + + + + +Stapp, et al. Standards Track [Page 12] + diff --git a/doc/rfc/rfc5155.txt b/doc/rfc/rfc5155.txt new file mode 100644 index 000000000000..d4b729761925 --- /dev/null +++ b/doc/rfc/rfc5155.txt @@ -0,0 +1,2915 @@ + + + + + + +Network Working Group B. Laurie +Request for Comments: 5155 G. Sisson +Category: Standards Track R. Arends + Nominet + D. Blacka + VeriSign, Inc. + March 2008 + + + DNS Security (DNSSEC) Hashed Authenticated Denial of Existence + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Abstract + + The Domain Name System Security (DNSSEC) Extensions introduced the + NSEC resource record (RR) for authenticated denial of existence. + This document introduces an alternative resource record, NSEC3, which + similarly provides authenticated denial of existence. However, it + also provides measures against zone enumeration and permits gradual + expansion of delegation-centric zones. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 + 1.1. Rationale . . . . . . . . . . . . . . . . . . . . . . . . 4 + 1.2. Requirements . . . . . . . . . . . . . . . . . . . . . . . 4 + 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 + 2. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 6 + 3. The NSEC3 Resource Record . . . . . . . . . . . . . . . . . . 7 + 3.1. RDATA Fields . . . . . . . . . . . . . . . . . . . . . . . 8 + 3.1.1. Hash Algorithm . . . . . . . . . . . . . . . . . . . . 8 + 3.1.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 8 + 3.1.3. Iterations . . . . . . . . . . . . . . . . . . . . . . 8 + 3.1.4. Salt Length . . . . . . . . . . . . . . . . . . . . . 8 + 3.1.5. Salt . . . . . . . . . . . . . . . . . . . . . . . . . 8 + 3.1.6. Hash Length . . . . . . . . . . . . . . . . . . . . . 9 + 3.1.7. Next Hashed Owner Name . . . . . . . . . . . . . . . . 9 + 3.1.8. Type Bit Maps . . . . . . . . . . . . . . . . . . . . 9 + 3.2. NSEC3 RDATA Wire Format . . . . . . . . . . . . . . . . . 9 + 3.2.1. Type Bit Maps Encoding . . . . . . . . . . . . . . . . 10 + 3.3. Presentation Format . . . . . . . . . . . . . . . . . . . 11 + + + +Laurie, et al. Standards Track [Page 1] + +RFC 5155 NSEC3 March 2008 + + + 4. The NSEC3PARAM Resource Record . . . . . . . . . . . . . . . . 12 + 4.1. RDATA Fields . . . . . . . . . . . . . . . . . . . . . . . 12 + 4.1.1. Hash Algorithm . . . . . . . . . . . . . . . . . . . . 12 + 4.1.2. Flag Fields . . . . . . . . . . . . . . . . . . . . . 12 + 4.1.3. Iterations . . . . . . . . . . . . . . . . . . . . . . 13 + 4.1.4. Salt Length . . . . . . . . . . . . . . . . . . . . . 13 + 4.1.5. Salt . . . . . . . . . . . . . . . . . . . . . . . . . 13 + 4.2. NSEC3PARAM RDATA Wire Format . . . . . . . . . . . . . . . 13 + 4.3. Presentation Format . . . . . . . . . . . . . . . . . . . 14 + 5. Calculation of the Hash . . . . . . . . . . . . . . . . . . . 14 + 6. Opt-Out . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 + 7. Authoritative Server Considerations . . . . . . . . . . . . . 16 + 7.1. Zone Signing . . . . . . . . . . . . . . . . . . . . . . . 16 + 7.2. Zone Serving . . . . . . . . . . . . . . . . . . . . . . . 17 + 7.2.1. Closest Encloser Proof . . . . . . . . . . . . . . . . 18 + 7.2.2. Name Error Responses . . . . . . . . . . . . . . . . . 19 + 7.2.3. No Data Responses, QTYPE is not DS . . . . . . . . . . 19 + 7.2.4. No Data Responses, QTYPE is DS . . . . . . . . . . . . 19 + 7.2.5. Wildcard No Data Responses . . . . . . . . . . . . . . 19 + 7.2.6. Wildcard Answer Responses . . . . . . . . . . . . . . 20 + 7.2.7. Referrals to Unsigned Subzones . . . . . . . . . . . . 20 + 7.2.8. Responding to Queries for NSEC3 Owner Names . . . . . 20 + 7.2.9. Server Response to a Run-Time Collision . . . . . . . 21 + 7.3. Secondary Servers . . . . . . . . . . . . . . . . . . . . 21 + 7.4. Zones Using Unknown Hash Algorithms . . . . . . . . . . . 21 + 7.5. Dynamic Update . . . . . . . . . . . . . . . . . . . . . . 21 + 8. Validator Considerations . . . . . . . . . . . . . . . . . . . 23 + 8.1. Responses with Unknown Hash Types . . . . . . . . . . . . 23 + 8.2. Verifying NSEC3 RRs . . . . . . . . . . . . . . . . . . . 23 + 8.3. Closest Encloser Proof . . . . . . . . . . . . . . . . . . 23 + 8.4. Validating Name Error Responses . . . . . . . . . . . . . 24 + 8.5. Validating No Data Responses, QTYPE is not DS . . . . . . 24 + 8.6. Validating No Data Responses, QTYPE is DS . . . . . . . . 24 + 8.7. Validating Wildcard No Data Responses . . . . . . . . . . 25 + 8.8. Validating Wildcard Answer Responses . . . . . . . . . . . 25 + 8.9. Validating Referrals to Unsigned Subzones . . . . . . . . 25 + 9. Resolver Considerations . . . . . . . . . . . . . . . . . . . 26 + 9.1. NSEC3 Resource Record Caching . . . . . . . . . . . . . . 26 + 9.2. Use of the AD Bit . . . . . . . . . . . . . . . . . . . . 26 + 10. Special Considerations . . . . . . . . . . . . . . . . . . . . 26 + 10.1. Domain Name Length Restrictions . . . . . . . . . . . . . 26 + 10.2. DNAME at the Zone Apex . . . . . . . . . . . . . . . . . . 27 + 10.3. Iterations . . . . . . . . . . . . . . . . . . . . . . . . 27 + 10.4. Transitioning a Signed Zone from NSEC to NSEC3 . . . . . . 28 + 10.5. Transitioning a Signed Zone from NSEC3 to NSEC . . . . . . 28 + 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 + 12. Security Considerations . . . . . . . . . . . . . . . . . . . 30 + 12.1. Hashing Considerations . . . . . . . . . . . . . . . . . . 30 + + + +Laurie, et al. Standards Track [Page 2] + +RFC 5155 NSEC3 March 2008 + + + 12.1.1. Dictionary Attacks . . . . . . . . . . . . . . . . . . 30 + 12.1.2. Collisions . . . . . . . . . . . . . . . . . . . . . . 31 + 12.1.3. Transitioning to a New Hash Algorithm . . . . . . . . 31 + 12.1.4. Using High Iteration Values . . . . . . . . . . . . . 31 + 12.2. Opt-Out Considerations . . . . . . . . . . . . . . . . . . 32 + 12.3. Other Considerations . . . . . . . . . . . . . . . . . . . 33 + 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 33 + 13.1. Normative References . . . . . . . . . . . . . . . . . . . 33 + 13.2. Informative References . . . . . . . . . . . . . . . . . . 34 + Appendix A. Example Zone . . . . . . . . . . . . . . . . . . . . 35 + Appendix B. Example Responses . . . . . . . . . . . . . . . . . . 40 + B.1. Name Error . . . . . . . . . . . . . . . . . . . . . . . . 40 + B.2. No Data Error . . . . . . . . . . . . . . . . . . . . . . 42 + B.2.1. No Data Error, Empty Non-Terminal . . . . . . . . . . 43 + B.3. Referral to an Opt-Out Unsigned Zone . . . . . . . . . . . 44 + B.4. Wildcard Expansion . . . . . . . . . . . . . . . . . . . . 45 + B.5. Wildcard No Data Error . . . . . . . . . . . . . . . . . . 46 + B.6. DS Child Zone No Data Error . . . . . . . . . . . . . . . 48 + Appendix C. Special Considerations . . . . . . . . . . . . . . . 48 + C.1. Salting . . . . . . . . . . . . . . . . . . . . . . . . . 49 + C.2. Hash Collision . . . . . . . . . . . . . . . . . . . . . . 49 + C.2.1. Avoiding Hash Collisions During Generation . . . . . . 50 + C.2.2. Second Preimage Requirement Analysis . . . . . . . . . 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Laurie, et al. Standards Track [Page 3] + +RFC 5155 NSEC3 March 2008 + + +1. Introduction + +1.1. Rationale + + The DNS Security Extensions included the NSEC RR to provide + authenticated denial of existence. Though the NSEC RR meets the + requirements for authenticated denial of existence, it introduces a + side-effect in that the contents of a zone can be enumerated. This + property introduces undesired policy issues. + + The enumeration is enabled by the set of NSEC records that exists + inside a signed zone. An NSEC record lists two names that are + ordered canonically, in order to show that nothing exists between the + two names. The complete set of NSEC records lists all the names in a + zone. It is trivial to enumerate the content of a zone by querying + for names that do not exist. + + An enumerated zone can be used, for example, as a source of probable + e-mail addresses for spam, or as a key for multiple WHOIS queries to + reveal registrant data that many registries may have legal + obligations to protect. Many registries therefore prohibit the + copying of their zone data; however, the use of NSEC RRs renders + these policies unenforceable. + + A second problem is that the cost to cryptographically secure + delegations to unsigned zones is high, relative to the perceived + security benefit, in two cases: large, delegation-centric zones, and + zones where insecure delegations will be updated rapidly. In these + cases, the costs of maintaining the NSEC RR chain may be extremely + high and use of the "Opt-Out" convention may be more appropriate (for + these unsecured zones). + + This document presents the NSEC3 Resource Record which can be used as + an alternative to NSEC to mitigate these issues. + + Earlier work to address these issues include [DNSEXT-NO], [RFC4956], + and [DNSEXT-NSEC2v2]. + +1.2. Requirements + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC2119]. + + + + + + + + +Laurie, et al. Standards Track [Page 4] + +RFC 5155 NSEC3 March 2008 + + +1.3. Terminology + + The reader is assumed to be familiar with the basic DNS and DNSSEC + concepts described in [RFC1034], [RFC1035], [RFC4033], [RFC4034], + [RFC4035], and subsequent RFCs that update them: [RFC2136], + [RFC2181], and [RFC2308]. + + The following terminology is used throughout this document: + + Zone enumeration: the practice of discovering the full content of a + zone via successive queries. Zone enumeration was non-trivial + prior to the introduction of DNSSEC. + + Original owner name: the owner name corresponding to a hashed owner + name. + + Hashed owner name: the owner name created after applying the hash + function to an owner name. + + Hash order: the order in which hashed owner names are arranged + according to their numerical value, treating the leftmost (lowest + numbered) octet as the most significant octet. Note that this + order is the same as the canonical DNS name order specified in + [RFC4034], when the hashed owner names are in base32, encoded with + an Extended Hex Alphabet [RFC4648]. + + Empty non-terminal: a domain name that owns no resource records, but + has one or more subdomains that do. + + Delegation: an NS RRSet with a name different from the current zone + apex (non-zone-apex), signifying a delegation to a child zone. + + Secure delegation: a name containing a delegation (NS RRSet) and a + signed DS RRSet, signifying a delegation to a signed child zone. + + Insecure delegation: a name containing a delegation (NS RRSet), but + lacking a DS RRSet, signifying a delegation to an unsigned child + zone. + + Opt-Out NSEC3 resource record: an NSEC3 resource record that has the + Opt-Out flag set to 1. + + Opt-Out zone: a zone with at least one Opt-Out NSEC3 RR. + + Closest encloser: the longest existing ancestor of a name. See also + Section 3.3.1 of [RFC4592]. + + + + + +Laurie, et al. Standards Track [Page 5] + +RFC 5155 NSEC3 March 2008 + + + Closest provable encloser: the longest ancestor of a name that can + be proven to exist. Note that this is only different from the + closest encloser in an Opt-Out zone. + + Next closer name: the name one label longer than the closest + provable encloser of a name. + + Base32: the "Base 32 Encoding with Extended Hex Alphabet" as + specified in [RFC4648]. Note that trailing padding characters + ("=") are not used in the NSEC3 specification. + + To cover: An NSEC3 RR is said to "cover" a name if the hash of the + name or "next closer" name falls between the owner name and the + next hashed owner name of the NSEC3. In other words, if it proves + the nonexistence of the name, either directly or by proving the + nonexistence of an ancestor of the name. + + To match: An NSEC3 RR is said to "match" a name if the owner name of + the NSEC3 RR is the same as the hashed owner name of that name. + +2. Backwards Compatibility + + This specification describes a protocol change that is not generally + backwards compatible with [RFC4033], [RFC4034], and [RFC4035]. In + particular, security-aware resolvers that are unaware of this + specification (NSEC3-unaware resolvers) may fail to validate the + responses introduced by this document. + + In order to aid deployment, this specification uses a signaling + technique to prevent NSEC3-unaware resolvers from attempting to + validate responses from NSEC3-signed zones. + + This specification allocates two new DNSKEY algorithm identifiers for + this purpose. Algorithm 6, DSA-NSEC3-SHA1 is an alias for algorithm + 3, DSA. Algorithm 7, RSASHA1-NSEC3-SHA1 is an alias for algorithm 5, + RSASHA1. These are not new algorithms, they are additional + identifiers for the existing algorithms. + + Zones signed according to this specification MUST only use these + algorithm identifiers for their DNSKEY RRs. Because these new + identifiers will be unknown algorithms to existing, NSEC3-unaware + resolvers, those resolvers will then treat responses from the NSEC3 + signed zone as insecure, as detailed in Section 5.2 of [RFC4035]. + + These algorithm identifiers are used with the NSEC3 hash algorithm + SHA1. Using other NSEC3 hash algorithms requires allocation of a new + alias (see Section 12.1.3). + + + + +Laurie, et al. Standards Track [Page 6] + +RFC 5155 NSEC3 March 2008 + + + Security aware resolvers that are aware of this specification MUST + recognize the new algorithm identifiers and treat them as equivalent + to the algorithms that they alias. + + A methodology for transitioning from a DNSSEC signed zone to a zone + signed using NSEC3 is discussed in Section 10.4. + +3. The NSEC3 Resource Record + + The NSEC3 Resource Record (RR) provides authenticated denial of + existence for DNS Resource Record Sets. + + The NSEC3 RR lists RR types present at the original owner name of the + NSEC3 RR. It includes the next hashed owner name in the hash order + of the zone. The complete set of NSEC3 RRs in a zone indicates which + RRSets exist for the original owner name of the RR and form a chain + of hashed owner names in the zone. This information is used to + provide authenticated denial of existence for DNS data. To provide + protection against zone enumeration, the owner names used in the + NSEC3 RR are cryptographic hashes of the original owner name + prepended as a single label to the name of the zone. The NSEC3 RR + indicates which hash function is used to construct the hash, which + salt is used, and how many iterations of the hash function are + performed over the original owner name. The hashing technique is + described fully in Section 5. + + Hashed owner names of unsigned delegations may be excluded from the + chain. An NSEC3 RR whose span covers the hash of an owner name or + "next closer" name of an unsigned delegation is referred to as an + Opt-Out NSEC3 RR and is indicated by the presence of a flag. + + The owner name for the NSEC3 RR is the base32 encoding of the hashed + owner name prepended as a single label to the name of the zone. + + The type value for the NSEC3 RR is 50. + + The NSEC3 RR RDATA format is class independent and is described + below. + + The class MUST be the same as the class of the original owner name. + + The NSEC3 RR SHOULD have the same TTL value as the SOA minimum TTL + field. This is in the spirit of negative caching [RFC2308]. + + + + + + + + +Laurie, et al. Standards Track [Page 7] + +RFC 5155 NSEC3 March 2008 + + +3.1. RDATA Fields + +3.1.1. Hash Algorithm + + The Hash Algorithm field identifies the cryptographic hash algorithm + used to construct the hash-value. + + The values for this field are defined in the NSEC3 hash algorithm + registry defined in Section 11. + +3.1.2. Flags + + The Flags field contains 8 one-bit flags that can be used to indicate + different processing. All undefined flags must be zero. The only + flag defined by this specification is the Opt-Out flag. + +3.1.2.1. Opt-Out Flag + + If the Opt-Out flag is set, the NSEC3 record covers zero or more + unsigned delegations. + + If the Opt-Out flag is clear, the NSEC3 record covers zero unsigned + delegations. + + The Opt-Out Flag indicates whether this NSEC3 RR may cover unsigned + delegations. It is the least significant bit in the Flags field. + See Section 6 for details about the use of this flag. + +3.1.3. Iterations + + The Iterations field defines the number of additional times the hash + function has been performed. More iterations result in greater + resiliency of the hash value against dictionary attacks, but at a + higher computational cost for both the server and resolver. See + Section 5 for details of the use of this field, and Section 10.3 for + limitations on the value. + +3.1.4. Salt Length + + The Salt Length field defines the length of the Salt field in octets, + ranging in value from 0 to 255. + +3.1.5. Salt + + The Salt field is appended to the original owner name before hashing + in order to defend against pre-calculated dictionary attacks. See + Section 5 for details on how the salt is used. + + + + +Laurie, et al. Standards Track [Page 8] + +RFC 5155 NSEC3 March 2008 + + +3.1.6. Hash Length + + The Hash Length field defines the length of the Next Hashed Owner + Name field, ranging in value from 1 to 255 octets. + +3.1.7. Next Hashed Owner Name + + The Next Hashed Owner Name field contains the next hashed owner name + in hash order. This value is in binary format. Given the ordered + set of all hashed owner names, the Next Hashed Owner Name field + contains the hash of an owner name that immediately follows the owner + name of the given NSEC3 RR. The value of the Next Hashed Owner Name + field in the last NSEC3 RR in the zone is the same as the hashed + owner name of the first NSEC3 RR in the zone in hash order. Note + that, unlike the owner name of the NSEC3 RR, the value of this field + does not contain the appended zone name. + +3.1.8. Type Bit Maps + + The Type Bit Maps field identifies the RRSet types that exist at the + original owner name of the NSEC3 RR. + +3.2. NSEC3 RDATA Wire Format + + The RDATA of the NSEC3 RR is as shown below: + + 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Hash Alg. | Flags | Iterations | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Salt Length | Salt / + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Hash Length | Next Hashed Owner Name / + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / Type Bit Maps / + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Hash Algorithm is a single octet. + + Flags field is a single octet, the Opt-Out flag is the least + significant bit, as shown below: + + 0 1 2 3 4 5 6 7 + +-+-+-+-+-+-+-+-+ + | |O| + +-+-+-+-+-+-+-+-+ + + + + +Laurie, et al. Standards Track [Page 9] + +RFC 5155 NSEC3 March 2008 + + + Iterations is represented as a 16-bit unsigned integer, with the most + significant bit first. + + Salt Length is represented as an unsigned octet. Salt Length + represents the length of the Salt field in octets. If the value is + zero, the following Salt field is omitted. + + Salt, if present, is encoded as a sequence of binary octets. The + length of this field is determined by the preceding Salt Length + field. + + Hash Length is represented as an unsigned octet. Hash Length + represents the length of the Next Hashed Owner Name field in octets. + + The next hashed owner name is not base32 encoded, unlike the owner + name of the NSEC3 RR. It is the unmodified binary hash value. It + does not include the name of the containing zone. The length of this + field is determined by the preceding Hash Length field. + +3.2.1. Type Bit Maps Encoding + + The encoding of the Type Bit Maps field is the same as that used by + the NSEC RR, described in [RFC4034]. It is explained and clarified + here for clarity. + + The RR type space is split into 256 window blocks, each representing + the low-order 8 bits of the 16-bit RR type space. Each block that + has at least one active RR type is encoded using a single octet + window number (from 0 to 255), a single octet bitmap length (from 1 + to 32) indicating the number of octets used for the bitmap of the + window block, and up to 32 octets (256 bits) of bitmap. + + Blocks are present in the NSEC3 RR RDATA in increasing numerical + order. + + Type Bit Maps Field = ( Window Block # | Bitmap Length | Bitmap )+ + + where "|" denotes concatenation. + + Each bitmap encodes the low-order 8 bits of RR types within the + window block, in network bit order. The first bit is bit 0. For + window block 0, bit 1 corresponds to RR type 1 (A), bit 2 corresponds + to RR type 2 (NS), and so forth. For window block 1, bit 1 + corresponds to RR type 257, bit 2 to RR type 258. If a bit is set to + 1, it indicates that an RRSet of that type is present for the + original owner name of the NSEC3 RR. If a bit is set to 0, it + indicates that no RRSet of that type is present for the original + owner name of the NSEC3 RR. + + + +Laurie, et al. Standards Track [Page 10] + +RFC 5155 NSEC3 March 2008 + + + Since bit 0 in window block 0 refers to the non-existing RR type 0, + it MUST be set to 0. After verification, the validator MUST ignore + the value of bit 0 in window block 0. + + Bits representing Meta-TYPEs or QTYPEs as specified in Section 3.1 of + [RFC2929] or within the range reserved for assignment only to QTYPEs + and Meta-TYPEs MUST be set to 0, since they do not appear in zone + data. If encountered, they must be ignored upon reading. + + Blocks with no types present MUST NOT be included. Trailing zero + octets in the bitmap MUST be omitted. The length of the bitmap of + each block is determined by the type code with the largest numerical + value, within that block, among the set of RR types present at the + original owner name of the NSEC3 RR. Trailing octets not specified + MUST be interpreted as zero octets. + +3.3. Presentation Format + + The presentation format of the RDATA portion is as follows: + + o The Hash Algorithm field is represented as an unsigned decimal + integer. The value has a maximum of 255. + + o The Flags field is represented as an unsigned decimal integer. + The value has a maximum of 255. + + o The Iterations field is represented as an unsigned decimal + integer. The value is between 0 and 65535, inclusive. + + o The Salt Length field is not represented. + + o The Salt field is represented as a sequence of case-insensitive + hexadecimal digits. Whitespace is not allowed within the + sequence. The Salt field is represented as "-" (without the + quotes) when the Salt Length field has a value of 0. + + o The Hash Length field is not represented. + + o The Next Hashed Owner Name field is represented as an unpadded + sequence of case-insensitive base32 digits, without whitespace. + + o The Type Bit Maps field is represented as a sequence of RR type + mnemonics. When the mnemonic is not known, the TYPE + representation as described in Section 5 of [RFC3597] MUST be + used. + + + + + + +Laurie, et al. Standards Track [Page 11] + +RFC 5155 NSEC3 March 2008 + + +4. The NSEC3PARAM Resource Record + + The NSEC3PARAM RR contains the NSEC3 parameters (hash algorithm, + flags, iterations, and salt) needed by authoritative servers to + calculate hashed owner names. The presence of an NSEC3PARAM RR at a + zone apex indicates that the specified parameters may be used by + authoritative servers to choose an appropriate set of NSEC3 RRs for + negative responses. The NSEC3PARAM RR is not used by validators or + resolvers. + + If an NSEC3PARAM RR is present at the apex of a zone with a Flags + field value of zero, then there MUST be an NSEC3 RR using the same + hash algorithm, iterations, and salt parameters present at every + hashed owner name in the zone. That is, the zone MUST contain a + complete set of NSEC3 RRs with the same hash algorithm, iterations, + and salt parameters. + + The owner name for the NSEC3PARAM RR is the name of the zone apex. + + The type value for the NSEC3PARAM RR is 51. + + The NSEC3PARAM RR RDATA format is class independent and is described + below. + + The class MUST be the same as the NSEC3 RRs to which this RR refers. + +4.1. RDATA Fields + + The RDATA for this RR mirrors the first four fields in the NSEC3 RR. + +4.1.1. Hash Algorithm + + The Hash Algorithm field identifies the cryptographic hash algorithm + used to construct the hash-value. + + The acceptable values are the same as the corresponding field in the + NSEC3 RR. + +4.1.2. Flag Fields + + The Opt-Out flag is not used and is set to zero. + + All other flags are reserved for future use, and must be zero. + + NSEC3PARAM RRs with a Flags field value other than zero MUST be + ignored. + + + + + +Laurie, et al. Standards Track [Page 12] + +RFC 5155 NSEC3 March 2008 + + +4.1.3. Iterations + + The Iterations field defines the number of additional times the hash + is performed. + + Its acceptable values are the same as the corresponding field in the + NSEC3 RR. + +4.1.4. Salt Length + + The Salt Length field defines the length of the salt in octets, + ranging in value from 0 to 255. + +4.1.5. Salt + + The Salt field is appended to the original owner name before hashing. + +4.2. NSEC3PARAM RDATA Wire Format + + The RDATA of the NSEC3PARAM RR is as shown below: + + 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Hash Alg. | Flags | Iterations | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Salt Length | Salt / + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Hash Algorithm is a single octet. + + Flags field is a single octet. + + Iterations is represented as a 16-bit unsigned integer, with the most + significant bit first. + + Salt Length is represented as an unsigned octet. Salt Length + represents the length of the following Salt field in octets. If the + value is zero, the Salt field is omitted. + + Salt, if present, is encoded as a sequence of binary octets. The + length of this field is determined by the preceding Salt Length + field. + + + + + + + + +Laurie, et al. Standards Track [Page 13] + +RFC 5155 NSEC3 March 2008 + + +4.3. Presentation Format + + The presentation format of the RDATA portion is as follows: + + o The Hash Algorithm field is represented as an unsigned decimal + integer. The value has a maximum of 255. + + o The Flags field is represented as an unsigned decimal integer. + The value has a maximum value of 255. + + o The Iterations field is represented as an unsigned decimal + integer. The value is between 0 and 65535, inclusive. + + o The Salt Length field is not represented. + + o The Salt field is represented as a sequence of case-insensitive + hexadecimal digits. Whitespace is not allowed within the + sequence. This field is represented as "-" (without the quotes) + when the Salt Length field is zero. + +5. Calculation of the Hash + + The hash calculation uses three of the NSEC3 RDATA fields: Hash + Algorithm, Salt, and Iterations. + + Define H(x) to be the hash of x using the Hash Algorithm selected by + the NSEC3 RR, k to be the number of Iterations, and || to indicate + concatenation. Then define: + + IH(salt, x, 0) = H(x || salt), and + + IH(salt, x, k) = H(IH(salt, x, k-1) || salt), if k > 0 + + Then the calculated hash of an owner name is + + IH(salt, owner name, iterations), + + where the owner name is in the canonical form, defined as: + + The wire format of the owner name where: + + 1. The owner name is fully expanded (no DNS name compression) and + fully qualified; + + 2. All uppercase US-ASCII letters are replaced by the corresponding + lowercase US-ASCII letters; + + + + + +Laurie, et al. Standards Track [Page 14] + +RFC 5155 NSEC3 March 2008 + + + 3. If the owner name is a wildcard name, the owner name is in its + original unexpanded form, including the "*" label (no wildcard + substitution); + + This form is as defined in Section 6.2 of [RFC4034]. + + The method to calculate the Hash is based on [RFC2898]. + +6. Opt-Out + + In this specification, as in [RFC4033], [RFC4034] and [RFC4035], NS + RRSets at delegation points are not signed and may be accompanied by + a DS RRSet. With the Opt-Out bit clear, the security status of the + child zone is determined by the presence or absence of this DS RRSet, + cryptographically proven by the signed NSEC3 RR at the hashed owner + name of the delegation. Setting the Opt-Out flag modifies this by + allowing insecure delegations to exist within the signed zone without + a corresponding NSEC3 RR at the hashed owner name of the delegation. + + An Opt-Out NSEC3 RR is said to cover a delegation if the hash of the + owner name or "next closer" name of the delegation is between the + owner name of the NSEC3 RR and the next hashed owner name. + + An Opt-Out NSEC3 RR does not assert the existence or non-existence of + the insecure delegations that it may cover. This allows for the + addition or removal of these delegations without recalculating or re- + signing RRs in the NSEC3 RR chain. However, Opt-Out NSEC3 RRs do + assert the (non)existence of other, authoritative RRSets. + + An Opt-Out NSEC3 RR MAY have the same original owner name as an + insecure delegation. In this case, the delegation is proven insecure + by the lack of a DS bit in the type map and the signed NSEC3 RR does + assert the existence of the delegation. + + Zones using Opt-Out MAY contain a mixture of Opt-Out NSEC3 RRs and + non-Opt-Out NSEC3 RRs. If an NSEC3 RR is not Opt-Out, there MUST NOT + be any hashed owner names of insecure delegations (nor any other RRs) + between it and the name indicated by the next hashed owner name in + the NSEC3 RDATA. If it is Opt-Out, it MUST only cover hashed owner + names or hashed "next closer" names of insecure delegations. + + The effects of the Opt-Out flag on signing, serving, and validating + responses are covered in following sections. + + + + + + + + +Laurie, et al. Standards Track [Page 15] + +RFC 5155 NSEC3 March 2008 + + +7. Authoritative Server Considerations + +7.1. Zone Signing + + Zones using NSEC3 must satisfy the following properties: + + o Each owner name within the zone that owns authoritative RRSets + MUST have a corresponding NSEC3 RR. Owner names that correspond + to unsigned delegations MAY have a corresponding NSEC3 RR. + However, if there is not a corresponding NSEC3 RR, there MUST be + an Opt-Out NSEC3 RR that covers the "next closer" name to the + delegation. Other non-authoritative RRs are not represented by + NSEC3 RRs. + + o Each empty non-terminal MUST have a corresponding NSEC3 RR, unless + the empty non-terminal is only derived from an insecure delegation + covered by an Opt-Out NSEC3 RR. + + o The TTL value for any NSEC3 RR SHOULD be the same as the minimum + TTL value field in the zone SOA RR. + + o The Type Bit Maps field of every NSEC3 RR in a signed zone MUST + indicate the presence of all types present at the original owner + name, except for the types solely contributed by an NSEC3 RR + itself. Note that this means that the NSEC3 type itself will + never be present in the Type Bit Maps. + + The following steps describe a method of proper construction of NSEC3 + RRs. This is not the only such possible method. + + 1. Select the hash algorithm and the values for salt and iterations. + + 2. For each unique original owner name in the zone add an NSEC3 RR. + + * If Opt-Out is being used, owner names of unsigned delegations + MAY be excluded. + + * The owner name of the NSEC3 RR is the hash of the original + owner name, prepended as a single label to the zone name. + + * The Next Hashed Owner Name field is left blank for the moment. + + * If Opt-Out is being used, set the Opt-Out bit to one. + + * For collision detection purposes, optionally keep track of the + original owner name with the NSEC3 RR. + + + + + +Laurie, et al. Standards Track [Page 16] + +RFC 5155 NSEC3 March 2008 + + + * Additionally, for collision detection purposes, optionally + create an additional NSEC3 RR corresponding to the original + owner name with the asterisk label prepended (i.e., as if a + wildcard existed as a child of this owner name) and keep track + of this original owner name. Mark this NSEC3 RR as temporary. + + 3. For each RRSet at the original owner name, set the corresponding + bit in the Type Bit Maps field. + + 4. If the difference in number of labels between the apex and the + original owner name is greater than 1, additional NSEC3 RRs need + to be added for every empty non-terminal between the apex and the + original owner name. This process may generate NSEC3 RRs with + duplicate hashed owner names. Optionally, for collision + detection, track the original owner names of these NSEC3 RRs and + create temporary NSEC3 RRs for wildcard collisions in a similar + fashion to step 1. + + 5. Sort the set of NSEC3 RRs into hash order. + + 6. Combine NSEC3 RRs with identical hashed owner names by replacing + them with a single NSEC3 RR with the Type Bit Maps field + consisting of the union of the types represented by the set of + NSEC3 RRs. If the original owner name was tracked, then + collisions may be detected when combining, as all of the matching + NSEC3 RRs should have the same original owner name. Discard any + possible temporary NSEC3 RRs. + + 7. In each NSEC3 RR, insert the next hashed owner name by using the + value of the next NSEC3 RR in hash order. The next hashed owner + name of the last NSEC3 RR in the zone contains the value of the + hashed owner name of the first NSEC3 RR in the hash order. + + 8. Finally, add an NSEC3PARAM RR with the same Hash Algorithm, + Iterations, and Salt fields to the zone apex. + + If a hash collision is detected, then a new salt has to be chosen, + and the signing process restarted. + +7.2. Zone Serving + + This specification modifies DNSSEC-enabled DNS responses generated by + authoritative servers. In particular, it replaces the use of NSEC + RRs in such responses with NSEC3 RRs. + + + + + + + +Laurie, et al. Standards Track [Page 17] + +RFC 5155 NSEC3 March 2008 + + + In the following response cases, the NSEC RRs dictated by DNSSEC + [RFC4035] are replaced with NSEC3 RRs that prove the same facts. + Responses that would not contain NSEC RRs are unchanged by this + specification. + + When returning responses containing multiple NSEC3 RRs, all of the + NSEC3 RRs MUST use the same hash algorithm, iteration, and salt + values. The Flags field value MUST be either zero or one. + +7.2.1. Closest Encloser Proof + + For many NSEC3 responses a proof of the closest encloser is required. + This is a proof that some ancestor of the QNAME is the closest + encloser of QNAME. + + This proof consists of (up to) two different NSEC3 RRs: + + o An NSEC3 RR that matches the closest (provable) encloser. + + o An NSEC3 RR that covers the "next closer" name to the closest + encloser. + + The first NSEC3 RR essentially proposes a possible closest encloser, + and proves that the particular encloser does, in fact, exist. The + second NSEC3 RR proves that the possible closest encloser is the + closest, and proves that the QNAME (and any ancestors between QNAME + and the closest encloser) does not exist. + + These NSEC3 RRs are collectively referred to as the "closest encloser + proof" in the subsequent descriptions. + + For example, the closest encloser proof for the nonexistent + "alpha.beta.gamma.example." owner name might prove that + "gamma.example." is the closest encloser. This response would + contain the NSEC3 RR that matches "gamma.example.", and would also + contain the NSEC3 RR that covers "beta.gamma.example." (which is the + "next closer" name). + + It is possible, when using Opt-Out (Section 6), to not be able to + prove the actual closest encloser because it is, or is part of an + insecure delegation covered by an Opt-Out span. In this case, + instead of proving the actual closest encloser, the closest provable + encloser is used. That is, the closest enclosing authoritative name + is used instead. In this case, the set of NSEC3 RRs used for this + proof is referred to as the "closest provable encloser proof". + + + + + + +Laurie, et al. Standards Track [Page 18] + +RFC 5155 NSEC3 March 2008 + + +7.2.2. Name Error Responses + + To prove the nonexistence of QNAME, a closest encloser proof and an + NSEC3 RR covering the (nonexistent) wildcard RR at the closest + encloser MUST be included in the response. This collection of (up + to) three NSEC3 RRs proves both that QNAME does not exist and that a + wildcard that could have matched QNAME also does not exist. + + For example, if "gamma.example." is the closest provable encloser to + QNAME, then an NSEC3 RR covering "*.gamma.example." is included in + the authority section of the response. + +7.2.3. No Data Responses, QTYPE is not DS + + The server MUST include the NSEC3 RR that matches QNAME. This NSEC3 + RR MUST NOT have the bits corresponding to either the QTYPE or CNAME + set in its Type Bit Maps field. + +7.2.4. No Data Responses, QTYPE is DS + + If there is an NSEC3 RR that matches QNAME, the server MUST return it + in the response. The bits corresponding with DS and CNAME MUST NOT + be set in the Type Bit Maps field of this NSEC3 RR. + + If no NSEC3 RR matches QNAME, the server MUST return a closest + provable encloser proof for QNAME. The NSEC3 RR that covers the + "next closer" name MUST have the Opt-Out bit set (note that this is + true by definition -- if the Opt-Out bit is not set, something has + gone wrong). + + If a server is authoritative for both sides of a zone cut at QNAME, + the server MUST return the proof from the parent side of the zone + cut. + +7.2.5. Wildcard No Data Responses + + If there is a wildcard match for QNAME, but QTYPE is not present at + that name, the response MUST include a closest encloser proof for + QNAME and MUST include the NSEC3 RR that matches the wildcard. This + combination proves both that QNAME itself does not exist and that a + wildcard that matches QNAME does exist. Note that the closest + encloser to QNAME MUST be the immediate ancestor of the wildcard RR + (if this is not the case, then something has gone wrong). + + + + + + + + +Laurie, et al. Standards Track [Page 19] + +RFC 5155 NSEC3 March 2008 + + +7.2.6. Wildcard Answer Responses + + If there is a wildcard match for QNAME and QTYPE, then, in addition + to the expanded wildcard RRSet returned in the answer section of the + response, proof that the wildcard match was valid must be returned. + + This proof is accomplished by proving that both QNAME does not exist + and that the closest encloser of the QNAME and the immediate ancestor + of the wildcard are the same (i.e., the correct wildcard matched). + + To this end, the NSEC3 RR that covers the "next closer" name of the + immediate ancestor of the wildcard MUST be returned. It is not + necessary to return an NSEC3 RR that matches the closest encloser, as + the existence of this closest encloser is proven by the presence of + the expanded wildcard in the response. + +7.2.7. Referrals to Unsigned Subzones + + If there is an NSEC3 RR that matches the delegation name, then that + NSEC3 RR MUST be included in the response. The DS bit in the type + bit maps of the NSEC3 RR MUST NOT be set. + + If the zone is Opt-Out, then there may not be an NSEC3 RR + corresponding to the delegation. In this case, the closest provable + encloser proof MUST be included in the response. The included NSEC3 + RR that covers the "next closer" name for the delegation MUST have + the Opt-Out flag set to one. (Note that this will be the case unless + something has gone wrong). + +7.2.8. Responding to Queries for NSEC3 Owner Names + + The owner names of NSEC3 RRs are not represented in the NSEC3 RR + chain like other owner names. As a result, each NSEC3 owner name is + covered by another NSEC3 RR, effectively negating the existence of + the NSEC3 RR. This is a paradox, since the existence of an NSEC3 RR + can be proven by its RRSIG RRSet. + + If the following conditions are all true: + + o the QNAME equals the owner name of an existing NSEC3 RR, and + + o no RR types exist at the QNAME, nor at any descendant of QNAME, + + then the response MUST be constructed as a Name Error response + (Section 7.2.2). Or, in other words, the authoritative name server + will act as if the owner name of the NSEC3 RR did not exist. + + + + + +Laurie, et al. Standards Track [Page 20] + +RFC 5155 NSEC3 March 2008 + + + Note that NSEC3 RRs are returned as a result of an AXFR or IXFR + query. + +7.2.9. Server Response to a Run-Time Collision + + If the hash of a non-existing QNAME collides with the owner name of + an existing NSEC3 RR, then the server will be unable to return a + response that proves that QNAME does not exist. In this case, the + server MUST return a response with an RCODE of 2 (server failure). + + Note that with the hash algorithm specified in this document, SHA-1, + such collisions are highly unlikely. + +7.3. Secondary Servers + + Secondary servers (and perhaps other entities) need to reliably + determine which NSEC3 parameters (i.e., hash, salt, and iterations) + are present at every hashed owner name, in order to be able to choose + an appropriate set of NSEC3 RRs for negative responses. This is + indicated by an NSEC3PARAM RR present at the zone apex. + + If there are multiple NSEC3PARAM RRs present, there are multiple + valid NSEC3 chains present. The server must choose one of them, but + may use any criteria to do so. + +7.4. Zones Using Unknown Hash Algorithms + + Zones that are signed according to this specification, but are using + an unrecognized NSEC3 hash algorithm value, cannot be effectively + served. Such zones SHOULD be rejected when loading. Servers SHOULD + respond with RCODE=2 (server failure) responses when handling queries + that would fall under such zones. + +7.5. Dynamic Update + + A zone signed using NSEC3 may accept dynamic updates [RFC2136]. + However, NSEC3 introduces some special considerations for dynamic + updates. + + Adding and removing names in a zone MUST account for the creation or + removal of empty non-terminals. + + o When removing a name with a corresponding NSEC3 RR, any NSEC3 RRs + corresponding to empty non-terminals created by that name MUST be + removed. Note that more than one name may be asserting the + existence of a particular empty non-terminal. + + + + + +Laurie, et al. Standards Track [Page 21] + +RFC 5155 NSEC3 March 2008 + + + o When adding a name that requires adding an NSEC3 RR, NSEC3 RRs + MUST also be added for any empty non-terminals that are created. + That is, if there is not an existing NSEC3 RR matching an empty + non-terminal, it must be created and added. + + The presence of Opt-Out in a zone means that some additions or + delegations of names will not require changes to the NSEC3 RRs in a + zone. + + o When removing a delegation RRSet, if that delegation does not have + a matching NSEC3 RR, then it was opted out. In this case, nothing + further needs to be done. + + o When adding a delegation RRSet, if the "next closer" name of the + delegation is covered by an existing Opt-Out NSEC3 RR, then the + delegation MAY be added without modifying the NSEC3 RRs in the + zone. + + The presence of Opt-Out in a zone means that when adding or removing + NSEC3 RRs, the value of the Opt-Out flag that should be set in new or + modified NSEC3 RRs is ambiguous. Servers SHOULD follow this set of + basic rules to resolve the ambiguity. + + The central concept to these rules is that the state of the Opt-Out + flag of the covering NSEC3 RR is preserved. + + o When removing an NSEC3 RR, the value of the Opt-Out flag for the + previous NSEC3 RR (the one whose next hashed owner name is + modified) should not be changed. + + o When adding an NSEC3 RR, the value of the Opt-Out flag is set to + the value of the Opt-Out flag of the NSEC3 RR that previously + covered the owner name of the NSEC3 RR. That is, the now previous + NSEC3 RR. + + If the zone in question is consistent with its use of the Opt-Out + flag (that is, all NSEC3 RRs in the zone have the same value for the + flag) then these rules will retain that consistency. If the zone is + not consistent in the use of the flag (i.e., a partially Opt-Out + zone), then these rules will not retain the same pattern of use of + the Opt-Out flag. + + For zones that partially use the Opt-Out flag, if there is a logical + pattern for that use, the pattern could be maintained by using a + local policy on the server. + + + + + + +Laurie, et al. Standards Track [Page 22] + +RFC 5155 NSEC3 March 2008 + + +8. Validator Considerations + +8.1. Responses with Unknown Hash Types + + A validator MUST ignore NSEC3 RRs with unknown hash types. The + practical result of this is that responses containing only such NSEC3 + RRs will generally be considered bogus. + +8.2. Verifying NSEC3 RRs + + A validator MUST ignore NSEC3 RRs with a Flag fields value other than + zero or one. + + A validator MAY treat a response as bogus if the response contains + NSEC3 RRs that contain different values for hash algorithm, + iterations, or salt from each other for that zone. + +8.3. Closest Encloser Proof + + In order to verify a closest encloser proof, the validator MUST find + the longest name, X, such that + + o X is an ancestor of QNAME that is matched by an NSEC3 RR present + in the response. This is a candidate for the closest encloser, + and + + o The name one label longer than X (but still an ancestor of -- or + equal to -- QNAME) is covered by an NSEC3 RR present in the + response. + + One possible algorithm for verifying this proof is as follows: + + 1. Set SNAME=QNAME. Clear the flag. + + 2. Check whether SNAME exists: + + * If there is no NSEC3 RR in the response that matches SNAME + (i.e., an NSEC3 RR whose owner name is the same as the hash of + SNAME, prepended as a single label to the zone name), clear + the flag. + + * If there is an NSEC3 RR in the response that covers SNAME, set + the flag. + + * If there is a matching NSEC3 RR in the response and the flag + was set, then the proof is complete, and SNAME is the closest + encloser. + + + + +Laurie, et al. Standards Track [Page 23] + +RFC 5155 NSEC3 March 2008 + + + * If there is a matching NSEC3 RR in the response, but the flag + is not set, then the response is bogus. + + 3. Truncate SNAME by one label from the left, go to step 2. + + Once the closest encloser has been discovered, the validator MUST + check that the NSEC3 RR that has the closest encloser as the original + owner name is from the proper zone. The DNAME type bit must not be + set and the NS type bit may only be set if the SOA type bit is set. + If this is not the case, it would be an indication that an attacker + is using them to falsely deny the existence of RRs for which the + server is not authoritative. + + In the following descriptions, the phrase "a closest (provable) + encloser proof for X" means that the algorithm above (or an + equivalent algorithm) proves that X does not exist by proving that an + ancestor of X is its closest encloser. + +8.4. Validating Name Error Responses + + A validator MUST verify that there is a closest encloser proof for + QNAME present in the response and that there is an NSEC3 RR that + covers the wildcard at the closest encloser (i.e., the name formed by + prepending the asterisk label to the closest encloser). + +8.5. Validating No Data Responses, QTYPE is not DS + + The validator MUST verify that an NSEC3 RR that matches QNAME is + present and that both the QTYPE and the CNAME type are not set in its + Type Bit Maps field. + + Note that this test also covers the case where the NSEC3 RR exists + because it corresponds to an empty non-terminal, in which case the + NSEC3 RR will have an empty Type Bit Maps field. + +8.6. Validating No Data Responses, QTYPE is DS + + If there is an NSEC3 RR that matches QNAME present in the response, + then that NSEC3 RR MUST NOT have the bits corresponding to DS and + CNAME set in its Type Bit Maps field. + + If there is no such NSEC3 RR, then the validator MUST verify that a + closest provable encloser proof for QNAME is present in the response, + and that the NSEC3 RR that covers the "next closer" name has the Opt- + Out bit set. + + + + + + +Laurie, et al. Standards Track [Page 24] + +RFC 5155 NSEC3 March 2008 + + +8.7. Validating Wildcard No Data Responses + + The validator MUST verify a closest encloser proof for QNAME and MUST + find an NSEC3 RR present in the response that matches the wildcard + name generated by prepending the asterisk label to the closest + encloser. Furthermore, the bits corresponding to both QTYPE and + CNAME MUST NOT be set in the wildcard matching NSEC3 RR. + +8.8. Validating Wildcard Answer Responses + + The verified wildcard answer RRSet in the response provides the + validator with a (candidate) closest encloser for QNAME. This + closest encloser is the immediate ancestor to the generating + wildcard. + + Validators MUST verify that there is an NSEC3 RR that covers the + "next closer" name to QNAME present in the response. This proves + that QNAME itself did not exist and that the correct wildcard was + used to generate the response. + +8.9. Validating Referrals to Unsigned Subzones + + The delegation name in a referral is the owner name of the NS RRSet + present in the authority section of the referral response. + + If there is an NSEC3 RR present in the response that matches the + delegation name, then the validator MUST ensure that the NS bit is + set and that the DS bit is not set in the Type Bit Maps field of the + NSEC3 RR. The validator MUST also ensure that the NSEC3 RR is from + the correct (i.e., parent) zone. This is done by ensuring that the + SOA bit is not set in the Type Bit Maps field of this NSEC3 RR. + + Note that the presence of an NS bit implies the absence of a DNAME + bit, so there is no need to check for the DNAME bit in the Type Bit + Maps field of the NSEC3 RR. + + If there is no NSEC3 RR present that matches the delegation name, + then the validator MUST verify a closest provable encloser proof for + the delegation name. The validator MUST verify that the Opt-Out bit + is set in the NSEC3 RR that covers the "next closer" name to the + delegation name. + + + + + + + + + + +Laurie, et al. Standards Track [Page 25] + +RFC 5155 NSEC3 March 2008 + + +9. Resolver Considerations + +9.1. NSEC3 Resource Record Caching + + Caching resolvers MUST be able to retrieve the appropriate NSEC3 RRs + when returning responses that contain them. In DNSSEC [RFC4035], in + many cases it is possible to find the correct NSEC RR to return in a + response by name (e.g., when returning a referral, the NSEC RR will + always have the same owner name as the delegation). With this + specification, that will not be true, nor will a cache be able to + calculate the name(s) of the appropriate NSEC3 RR(s). + Implementations may need to use new methods for caching and + retrieving NSEC3 RRs. + +9.2. Use of the AD Bit + + The AD bit, as defined by [RFC4035], MUST NOT be set when returning a + response containing a closest (provable) encloser proof in which the + NSEC3 RR that covers the "next closer" name has the Opt-Out bit set. + + This rule is based on what this closest encloser proof actually + proves: names that would be covered by the Opt-Out NSEC3 RR may or + may not exist as insecure delegations. As such, not all the data in + responses containing such closest encloser proofs will have been + cryptographically verified, so the AD bit cannot be set. + +10. Special Considerations + +10.1. Domain Name Length Restrictions + + Zones signed using this specification have additional domain name + length restrictions imposed upon them. In particular, zones with + names that, when converted into hashed owner names exceed the 255 + octet length limit imposed by [RFC1035], cannot use this + specification. + + The actual maximum length of a domain name in a particular zone + depends on both the length of the zone name (versus the whole domain + name) and the particular hash function used. + + As an example, SHA-1 produces a hash of 160 bits. The base-32 + encoding of 160 bits results in 32 characters. The 32 characters are + prepended to the name of the zone as a single label, which includes a + length field of a single octet. The maximum length of the zone name, + when using SHA-1, is 222 octets (255 - 33). + + + + + + +Laurie, et al. Standards Track [Page 26] + +RFC 5155 NSEC3 March 2008 + + +10.2. DNAME at the Zone Apex + + The DNAME specification in Section 3 of [RFC2672] has a 'no- + descendants' limitation. If a DNAME RR is present at node N, there + MUST be no data at any descendant of N. + + If N is the apex of the zone, there will be NSEC3 and RRSIG types + present at descendants of N. This specification updates the DNAME + specification to allow NSEC3 and RRSIG types at descendants of the + apex regardless of the existence of DNAME at the apex. + +10.3. Iterations + + Setting the number of iterations used allows the zone owner to choose + the cost of computing a hash, and therefore the cost of generating a + dictionary. Note that this is distinct from the effect of salt, + which prevents the use of a single precomputed dictionary for all + time. + + Obviously the number of iterations also affects the zone owner's cost + of signing and serving the zone as well as the validator's cost of + verifying responses from the zone. We therefore impose an upper + limit on the number of iterations. We base this on the number of + iterations that approximates the cost of verifying an RRSet. + + The limits, therefore, are based on the size of the smallest zone + signing key, rounded up to the nearest table value (or rounded down + if the key is larger than the largest table value). + + A zone owner MUST NOT use a value higher than shown in the table + below for iterations for the given key size. A resolver MAY treat a + response with a higher value as insecure, after the validator has + verified that the signature over the NSEC3 RR is correct. + + +----------+------------+ + | Key Size | Iterations | + +----------+------------+ + | 1024 | 150 | + | 2048 | 500 | + | 4096 | 2,500 | + +----------+------------+ + + This table is based on an approximation of the ratio between the cost + of an SHA-1 calculation and the cost of an RSA verification for keys + of size 1024 bits (150 to 1), 2048 bits (500 to 1), and 4096 bits + (2500 to 1). + + + + + +Laurie, et al. Standards Track [Page 27] + +RFC 5155 NSEC3 March 2008 + + + The ratio between SHA-1 calculation and DSA verification is higher + (1500 to 1 for keys of size 1024). A higher iteration count degrades + performance, while DSA verification is already more expensive than + RSA for the same key size. Therefore the values in the table MUST be + used independent of the key algorithm. + +10.4. Transitioning a Signed Zone from NSEC to NSEC3 + + When transitioning an already signed and trusted zone to this + specification, care must be taken to prevent client validation + failures during the process. + + The basic procedure is as follows: + + 1. Transition all DNSKEYs to DNSKEYs using the algorithm aliases + described in Section 2. The actual method for safely and + securely changing the DNSKEY RRSet of the zone is outside the + scope of this specification. However, the end result MUST be + that all DS RRs in the parent use the specified algorithm + aliases. + + After this transition is complete, all NSEC3-unaware clients will + treat the zone as insecure. At this point, the authoritative + server still returns negative and wildcard responses that contain + NSEC RRs. + + 2. Add signed NSEC3 RRs to the zone, either incrementally or all at + once. If adding incrementally, then the last RRSet added MUST be + the NSEC3PARAM RRSet. + + 3. Upon the addition of the NSEC3PARAM RRSet, the server switches to + serving negative and wildcard responses with NSEC3 RRs according + to this specification. + + 4. Remove the NSEC RRs either incrementally or all at once. + +10.5. Transitioning a Signed Zone from NSEC3 to NSEC + + To safely transition back to a DNSSEC [RFC4035] signed zone, simply + reverse the procedure above: + + 1. Add NSEC RRs incrementally or all at once. + + 2. Remove the NSEC3PARAM RRSet. This will signal the server to use + the NSEC RRs for negative and wildcard responses. + + 3. Remove the NSEC3 RRs either incrementally or all at once. + + + + +Laurie, et al. Standards Track [Page 28] + +RFC 5155 NSEC3 March 2008 + + + 4. Transition all of the DNSKEYs to DNSSEC algorithm identifiers. + After this transition is complete, all NSEC3-unaware clients will + treat the zone as secure. + +11. IANA Considerations + + Although the NSEC3 and NSEC3PARAM RR formats include a hash algorithm + parameter, this document does not define a particular mechanism for + safely transitioning from one NSEC3 hash algorithm to another. When + specifying a new hash algorithm for use with NSEC3, a transition + mechanism MUST also be defined. + + This document updates the IANA registry "DOMAIN NAME SYSTEM + PARAMETERS" (http://www.iana.org/assignments/dns-parameters) in sub- + registry "TYPES", by defining two new types. Section 3 defines the + NSEC3 RR type 50. Section 4 defines the NSEC3PARAM RR type 51. + + This document updates the IANA registry "DNS SECURITY ALGORITHM + NUMBERS -- per [RFC4035]" + (http://www.iana.org/assignments/dns-sec-alg-numbers). Section 2 + defines the aliases DSA-NSEC3-SHA1 (6) and RSASHA1-NSEC3-SHA1 (7) for + respectively existing registrations DSA and RSASHA1 in combination + with NSEC3 hash algorithm SHA1. + + Since these algorithm numbers are aliases for existing DNSKEY + algorithm numbers, the flags that exist for the original algorithm + are valid for the alias algorithm. + + This document creates a new IANA registry for NSEC3 flags. This + registry is named "DNSSEC NSEC3 Flags". The initial contents of this + registry are: + + 0 1 2 3 4 5 6 7 + +---+---+---+---+---+---+---+---+ + | | | | | | | |Opt| + | | | | | | | |Out| + +---+---+---+---+---+---+---+---+ + + bit 7 is the Opt-Out flag. + + bits 0 - 6 are available for assignment. + + Assignment of additional NSEC3 Flags in this registry requires IETF + Standards Action [RFC2434]. + + This document creates a new IANA registry for NSEC3PARAM flags. This + registry is named "DNSSEC NSEC3PARAM Flags". The initial contents of + this registry are: + + + +Laurie, et al. Standards Track [Page 29] + +RFC 5155 NSEC3 March 2008 + + + 0 1 2 3 4 5 6 7 + +---+---+---+---+---+---+---+---+ + | | | | | | | | 0 | + +---+---+---+---+---+---+---+---+ + + bit 7 is reserved and must be 0. + + bits 0 - 6 are available for assignment. + + Assignment of additional NSEC3PARAM Flags in this registry requires + IETF Standards Action [RFC2434]. + + Finally, this document creates a new IANA registry for NSEC3 hash + algorithms. This registry is named "DNSSEC NSEC3 Hash Algorithms". + The initial contents of this registry are: + + 0 is Reserved. + + 1 is SHA-1. + + 2-255 Available for assignment. + + Assignment of additional NSEC3 hash algorithms in this registry + requires IETF Standards Action [RFC2434]. + +12. Security Considerations + +12.1. Hashing Considerations + +12.1.1. Dictionary Attacks + + The NSEC3 RRs are still susceptible to dictionary attacks (i.e., the + attacker retrieves all the NSEC3 RRs, then calculates the hashes of + all likely domain names, comparing against the hashes found in the + NSEC3 RRs, and thus enumerating the zone). These are substantially + more expensive than enumerating the original NSEC RRs would have + been, and in any case, such an attack could also be used directly + against the name server itself by performing queries for all likely + names, though this would obviously be more detectable. The expense + of this off-line attack can be chosen by setting the number of + iterations in the NSEC3 RR. + + Zones are also susceptible to a pre-calculated dictionary attack -- + that is, a list of hashes for all likely names is computed once, then + NSEC3 RR is scanned periodically and compared against the precomputed + hashes. This attack is prevented by changing the salt on a regular + basis. + + + + +Laurie, et al. Standards Track [Page 30] + +RFC 5155 NSEC3 March 2008 + + + The salt SHOULD be at least 64 bits long and unpredictable, so that + an attacker cannot anticipate the value of the salt and compute the + next set of dictionaries before the zone is published. + +12.1.2. Collisions + + Hash collisions between QNAME and the owner name of an NSEC3 RR may + occur. When they do, it will be impossible to prove the non- + existence of the colliding QNAME. However, with SHA-1, this is + highly unlikely (on the order of 1 in 2^160). Note that DNSSEC + already relies on the presumption that a cryptographic hash function + is second pre-image resistant, since these hash functions are used + for generating and validating signatures and DS RRs. + +12.1.3. Transitioning to a New Hash Algorithm + + Although the NSEC3 and NSEC3PARAM RR formats include a hash algorithm + parameter, this document does not define a particular mechanism for + safely transitioning from one NSEC3 hash algorithm to another. When + specifying a new hash algorithm for use with NSEC3, a transition + mechanism MUST also be defined. It is possible that the only + practical and palatable transition mechanisms may require an + intermediate transition to an insecure state, or to a state that uses + NSEC records instead of NSEC3. + +12.1.4. Using High Iteration Values + + Since validators should treat responses containing NSEC3 RRs with + high iteration values as insecure, presence of just one signed NSEC3 + RR with a high iteration value in a zone provides attackers with a + possible downgrade attack. + + The attack is simply to remove any existing NSEC3 RRs from a + response, and replace or add a single (or multiple) NSEC3 RR that + uses a high iterations value to the response. Validators will then + be forced to treat the response as insecure. This attack would be + effective only when all of following conditions are met: + + o There is at least one signed NSEC3 RR that uses a high iterations + value present in the zone. + + o The attacker has access to one or more of these NSEC3 RRs. This + is trivially true when the NSEC3 RRs with high iteration values + are being returned in typical responses, but may also be true if + the attacker can access the zone via AXFR or IXFR queries, or any + other methodology. + + + + + +Laurie, et al. Standards Track [Page 31] + +RFC 5155 NSEC3 March 2008 + + + Using a high number of iterations also introduces an additional + denial-of-service opportunity against servers, since servers must + calculate several hashes per negative or wildcard response. + +12.2. Opt-Out Considerations + + The Opt-Out Flag (O) allows for unsigned names, in the form of + delegations to unsigned zones, to exist within an otherwise signed + zone. All unsigned names are, by definition, insecure, and their + validity or existence cannot be cryptographically proven. + + In general: + + o Resource records with unsigned names (whether existing or not) + suffer from the same vulnerabilities as RRs in an unsigned zone. + These vulnerabilities are described in more detail in [RFC3833] + (note in particular Section 2.3, "Name Chaining" and Section 2.6, + "Authenticated Denial of Domain Names"). + + o Resource records with signed names have the same security whether + or not Opt-Out is used. + + Note that with or without Opt-Out, an insecure delegation may be + undetectably altered by an attacker. Because of this, the primary + difference in security when using Opt-Out is the loss of the ability + to prove the existence or nonexistence of an insecure delegation + within the span of an Opt-Out NSEC3 RR. + + In particular, this means that a malicious entity may be able to + insert or delete RRs with unsigned names. These RRs are normally NS + RRs, but this also includes signed wildcard expansions (while the + wildcard RR itself is signed, its expanded name is an unsigned name). + + Note that being able to add a delegation is functionally equivalent + to being able to add any RR type: an attacker merely has to forge a + delegation to name server under his/her control and place whatever + RRs needed at the subzone apex. + + While in particular cases, this issue may not present a significant + security problem, in general it should not be lightly dismissed. + Therefore, it is strongly RECOMMENDED that Opt-Out be used sparingly. + In particular, zone signing tools SHOULD NOT default to using Opt- + Out, and MAY choose to not support Opt-Out at all. + + + + + + + + +Laurie, et al. Standards Track [Page 32] + +RFC 5155 NSEC3 March 2008 + + +12.3. Other Considerations + + Walking the NSEC3 RRs will reveal the total number of RRs in the zone + (plus empty non-terminals), and also what types there are. This + could be mitigated by adding dummy entries, but certainly an upper + limit can always be found. + +13. References + +13.1. Normative References + + [RFC1034] Mockapetris, P., "Domain names - concepts and + facilities", STD 13, RFC 1034, November 1987. + + [RFC1035] Mockapetris, P., "Domain names - implementation and + specification", STD 13, RFC 1035, November 1987. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound, + "Dynamic Updates in the Domain Name System (DNS + UPDATE)", RFC 2136, April 1997. + + [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS + Specification", RFC 2181, July 1997. + + [RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS + NCACHE)", RFC 2308, March 1998. + + [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for + Writing an IANA Considerations Section in RFCs", + BCP 26, RFC 2434, October 1998. + + [RFC2929] Eastlake, D., Brunner-Williams, E., and B. Manning, + "Domain Name System (DNS) IANA Considerations", + BCP 42, RFC 2929, September 2000. + + [RFC3597] Gustafsson, A., "Handling of Unknown DNS Resource + Record (RR) Types", RFC 3597, September 2003. + + [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., + and S. Rose, "DNS Security Introduction and + Requirements", RFC 4033, March 2005. + + [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., + and S. Rose, "Resource Records for the DNS Security + Extensions", RFC 4034, March 2005. + + + +Laurie, et al. Standards Track [Page 33] + +RFC 5155 NSEC3 March 2008 + + + [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., + and S. Rose, "Protocol Modifications for the DNS + Security Extensions", RFC 4035, March 2005. + + [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data + Encodings", RFC 4648, October 2006. + +13.2. Informative References + + [DNSEXT-NO] Josefsson, S., "Authenticating Denial of Existence + in DNS with Minimum Disclosure", Work in Progress, + July 2000. + + [DNSEXT-NSEC2v2] Laurie, B., "DNSSEC NSEC2 Owner and RDATA Format", + Work in Progress, December 2004. + + [RFC2672] Crawford, M., "Non-Terminal DNS Name Redirection", + RFC 2672, August 1999. + + [RFC2898] Kaliski, B., "PKCS #5: Password-Based Cryptography + Specification Version 2.0", RFC 2898, + September 2000. + + [RFC3833] Atkins, D. and R. Austein, "Threat Analysis of the + Domain Name System (DNS)", RFC 3833, August 2004. + + [RFC4592] Lewis, E., "The Role of Wildcards in the Domain + Name System", RFC 4592, July 2006. + + [RFC4956] Arends, R., Kosters, M., and D. Blacka, "DNS + Security (DNSSEC) Opt-In", RFC 4956, July 2007. + + + + + + + + + + + + + + + + + + + + +Laurie, et al. Standards Track [Page 34] + +RFC 5155 NSEC3 March 2008 + + +Appendix A. Example Zone + + This is a zone showing its NSEC3 RRs. They can also be used as test + vectors for the hash algorithm. + + The overall TTL and class are specified in the SOA RR, and are + subsequently omitted for clarity. + + The zone is preceded by a list that contains the hashes of the + original ownernames. + + ; H(example) = 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom + ; H(a.example) = 35mthgpgcu1qg68fab165klnsnk3dpvl + ; H(ai.example) = gjeqe526plbf1g8mklp59enfd789njgi + ; H(ns1.example) = 2t7b4g4vsa5smi47k61mv5bv1a22bojr + ; H(ns2.example) = q04jkcevqvmu85r014c7dkba38o0ji5r + ; H(w.example) = k8udemvp1j2f7eg6jebps17vp3n8i58h + ; H(*.w.example) = r53bq7cc2uvmubfu5ocmm6pers9tk9en + ; H(x.w.example) = b4um86eghhds6nea196smvmlo4ors995 + ; H(y.w.example) = ji6neoaepv8b5o6k4ev33abha8ht9fgc + ; H(x.y.w.example) = 2vptu5timamqttgl4luu9kg21e0aor3s + ; H(xx.example) = t644ebqk9bibcna874givr6joj62mlhv + ; H(2t7b4g4vsa5smi47k61mv5bv1a22bojr.example) + ; = kohar7mbb8dc2ce8a9qvl8hon4k53uhi + example. 3600 IN SOA ns1.example. bugs.x.w.example. 1 3600 300 ( + 3600000 3600 ) + RRSIG SOA 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i + q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd + VI2LmKusbZsT0Q== ) + NS ns1.example. + NS ns2.example. + RRSIG NS 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + PVOgtMK1HHeSTau+HwDWC8Ts+6C8qtqd4pQJ + qOtdEVgg+MA+ai4fWDEhu3qHJyLcQ9tbD2vv + CnMXjtz6SyObxA== ) + MX 1 xx.example. + RRSIG MX 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + GgQ1A9xs47k42VPvpL/a1BWUz/6XsnHkjotw + 9So8MQtZtl2wJBsnOQsaoHrRCrRbyriEl/GZ + n9Mto/Kx+wBo+w== ) + DNSKEY 256 3 7 AwEAAaetidLzsKWUt4swWR8yu0wPHPiUi8LU ( + sAD0QPWU+wzt89epO6tHzkMBVDkC7qphQO2h + TY4hHn9npWFRw5BYubE= ) + + + + +Laurie, et al. Standards Track [Page 35] + +RFC 5155 NSEC3 March 2008 + + + DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( + j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 + AbsUdblMFin8CVF3n4s= ) + RRSIG DNSKEY 7 1 3600 20150420235959 ( + 20051021000000 12708 example. + AuU4juU9RaxescSmStrQks3Gh9FblGBlVU31 + uzMZ/U/FpsUb8aC6QZS+sTsJXnLnz7flGOsm + MGQZf3bH+QsCtg== ) + NSEC3PARAM 1 0 12 aabbccdd + RRSIG NSEC3PARAM 7 1 3600 20150420235959 ( + 20051021000000 40430 example. + C1Gl8tPZNtnjlrYWDeeUV/sGLCyy/IHie2re + rN05XSA3Pq0U3+4VvGWYWdUMfflOdxqnXHwJ + TLQsjlkynhG6Cg== ) + 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. NSEC3 1 1 12 aabbccdd ( + 2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS + SOA NSEC3PARAM RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL + IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762 + BOCXJZMnpuwhpA== ) + 2t7b4g4vsa5smi47k61mv5bv1a22bojr.example. A 192.0.2.127 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + h6c++bzhRuWWt2bykN6mjaTNBcXNq5UuL5Ed + K+iDP4eY8I0kSiKaCjg3tC1SQkeloMeub2GW + k8p6xHMPZumXlw== ) + NSEC3 1 1 12 aabbccdd ( + 2vptu5timamqttgl4luu9kg21e0aor3s A RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + OmBvJ1Vgg1hCKMXHFiNeIYHK9XVW0iLDLwJN + 4TFoNxZuP03gAXEI634YwOc4YBNITrj413iq + NI6mRk/r1dOSUw== ) + 2vptu5timamqttgl4luu9kg21e0aor3s.example. NSEC3 1 1 12 aabbccdd ( + 35mthgpgcu1qg68fab165klnsnk3dpvl MX RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + KL1V2oFYghNV0Hm7Tf2vpJjM6l+0g1JCcVYG + VfI0lKrhPmTsOA96cLEACgo1x8I7kApJX+ob + TuktZ+sdsZPY1w== ) + 35mthgpgcu1qg68fab165klnsnk3dpvl.example. NSEC3 1 1 12 aabbccdd ( + b4um86eghhds6nea196smvmlo4ors995 NS DS RRSIG ) + + + + + + + +Laurie, et al. Standards Track [Page 36] + +RFC 5155 NSEC3 March 2008 + + + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + g6jPUUpduAJKRljUsN8gB4UagAX0NxY9shwQ + Aynzo8EUWH+z6hEIBlUTPGj15eZll6VhQqgZ + XtAIR3chwgW+SA== ) + a.example. NS ns1.a.example. + NS ns2.a.example. + DS 58470 5 1 ( + 3079F1593EBAD6DC121E202A8B766A6A4837206C ) + RRSIG DS 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + XacFcQVHLVzdoc45EJhN616zQ4mEXtE8FzUh + M2KWjfy1VfRKD9r1MeVGwwoukOKgJxBPFsWo + o722vZ4UZ2dIdA== ) + ns1.a.example. A 192.0.2.5 + ns2.a.example. A 192.0.2.6 + ai.example. A 192.0.2.9 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + hVe+wKYMlObTRPhX0NL67GxeZfdxqr/QeR6F + tfdAj5+FgYxyzPEjIzvKWy00hWIl6wD3Vws+ + rznEn8sQ64UdqA== ) + HINFO "KLH-10" "ITS" + RRSIG HINFO 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + Yi42uOq43eyO6qXHNvwwfFnIustWgV5urFcx + enkLvs6pKRh00VBjODmf3Z4nMO7IOl6nHSQ1 + v0wLHpEZG7Xj2w== ) + AAAA 2001:db8:0:0:0:0:f00:baa9 + RRSIG AAAA 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + LcdxKaCB5bGZwPDg+3JJ4O02zoMBrjxqlf6W + uaHQZZfTUpb9Nf2nxFGe2XRPfR5tpJT6GdRG + cHueLuXkMjBArQ== ) + b4um86eghhds6nea196smvmlo4ors995.example. NSEC3 1 1 12 aabbccdd ( + gjeqe526plbf1g8mklp59enfd789njgi MX RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + ZkPG3M32lmoHM6pa3D6gZFGB/rhL//Bs3Omh + 5u4m/CUiwtblEVOaAKKZd7S959OeiX43aLX3 + pOv0TSTyiTxIZg== ) + c.example. NS ns1.c.example. + NS ns2.c.example. + ns1.c.example. A 192.0.2.7 + ns2.c.example. A 192.0.2.8 + gjeqe526plbf1g8mklp59enfd789njgi.example. NSEC3 1 1 12 aabbccdd ( + ji6neoaepv8b5o6k4ev33abha8ht9fgc HINFO A AAAA + RRSIG ) + + + +Laurie, et al. Standards Track [Page 37] + +RFC 5155 NSEC3 March 2008 + + + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + IVnezTJ9iqblFF97vPSmfXZ5Zozngx3KX3by + LTZC4QBH2dFWhf6scrGFZB980AfCxoD9qbbK + Dy+rdGIeRSVNyw== ) + ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. NSEC3 1 1 12 aabbccdd ( + k8udemvp1j2f7eg6jebps17vp3n8i58h ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + gPkFp1s2QDQ6wQzcg1uSebZ61W33rUBDcTj7 + 2F3kQ490fEdp7k1BUIfbcZtPbX3YCpE+sIt0 + MpzVSKfTwx4uYA== ) + k8udemvp1j2f7eg6jebps17vp3n8i58h.example. NSEC3 1 1 12 aabbccdd ( + kohar7mbb8dc2ce8a9qvl8hon4k53uhi ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + FtXGbvF0+wf8iWkyo73enAuVx03klN+pILBK + S6qCcftVtfH4yVzsEZquJ27NHR7ruxJWDNMt + Otx7w9WfcIg62A== ) + kohar7mbb8dc2ce8a9qvl8hon4k53uhi.example. NSEC3 1 1 12 aabbccdd ( + q04jkcevqvmu85r014c7dkba38o0ji5r A RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + VrDXs2uVW21N08SyQIz88zml+y4ZCInTwgDr + 6zz43yAg+LFERjOrj3Ojct51ac7Dp4eZbf9F + QJazmASFKGxGXg== ) + ns1.example. A 192.0.2.1 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + bu6kx73n6XEunoVGuRfAgY7EF/AJqHy7hj0j + kiqJjB0dOrx3wuz9SaBeGfqWIdn/uta3SavN + 4FRvZR9SCFHF5Q== ) + ns2.example. A 192.0.2.2 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + ktQ3TqE0CfRfki0Rb/Ip5BM0VnxelbuejCC4 + zpLbFKA/7eD7UNAwxMgxJPtbdST+syjYSJaj + 4IHfeX6n8vfoGA== ) + q04jkcevqvmu85r014c7dkba38o0ji5r.example. NSEC3 1 1 12 aabbccdd ( + r53bq7cc2uvmubfu5ocmm6pers9tk9en A RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + hV5I89b+4FHJDATp09g4bbN0R1F845CaXpL3 + ZxlMKimoPAyqletMlEWwLfFia7sdpSzn+ZlN + NlkxWcLsIlMmUg== ) + + + + + + +Laurie, et al. Standards Track [Page 38] + +RFC 5155 NSEC3 March 2008 + + + r53bq7cc2uvmubfu5ocmm6pers9tk9en.example. NSEC3 1 1 12 aabbccdd ( + t644ebqk9bibcna874givr6joj62mlhv MX RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + aupviViruXs4bDg9rCbezzBMf9h1ZlDvbW/C + ZFKulIGXXLj8B/fsDJarXVDA9bnUoRhEbKp+ + HF1FWKW7RIJdtQ== ) + t644ebqk9bibcna874givr6joj62mlhv.example. NSEC3 1 1 12 aabbccdd ( + 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom HINFO A AAAA + RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + RAjGECB8P7O+F4Pa4Dx3tC0M+Z3KmlLKImca + fb9XWwx+NWUNz7NBEDBQHivIyKPVDkChcePI + X1xPl1ATNa+8Dw== ) + *.w.example. MX 1 ai.example. + RRSIG MX 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + CikebjQwGQPwijVcxgcZcSJKtfynugtlBiKb + 9FcBTrmOoyQ4InoWVudhCWsh/URX3lc4WRUM + ivEBP6+4KS3ldA== ) + x.w.example. MX 1 xx.example. + RRSIG MX 7 3 3600 20150420235959 20051021000000 ( + 40430 example. + IrK3tq/tHFIBF0scHiE/1IwMAvckS/55hAVv + QyxTFbkAdDloP3NbZzu+yoSsr3b3OX6qbBpY + 7WCtwwekLKRAwQ== ) + x.y.w.example. MX 1 xx.example. + RRSIG MX 7 4 3600 20150420235959 20051021000000 ( + 40430 example. + MqSt5HqJIN8+SLlzTOImrh5h9Xa6gDvAW/Gn + nbdPc6Z7nXvCpLPJj/5lCwx3VuzVOjkbvXze + 8/8Ccl2Zn2hbug== ) + xx.example. A 192.0.2.10 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + T35hBWEZ017VC5u2c4OriKyVn/pu+fVK4AlX + YOxJ6iQylfV2HQIKjv6b7DzINB3aF/wjJqgX + pQvhq+Ac6+ZiFg== ) + HINFO "KLH-10" "TOPS-20" + RRSIG HINFO 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + KimG+rDd+7VA1zRsu0ITNAQUTRlpnsmqWrih + FRnU+bRa93v2e5oFNFYCs3Rqgv62K93N7AhW + 6Jfqj/8NzWjvKg== ) + AAAA 2001:db8:0:0:0:0:f00:baaa + + + + + +Laurie, et al. Standards Track [Page 39] + +RFC 5155 NSEC3 March 2008 + + + RRSIG AAAA 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + IXBcXORITNwd8h3gNwyxtYFvAupS/CYWufVe + uBUX0O25ivBCULjZjpDxFSxfohb/KA7YRdxE + NzYfMItpILl/Xw== ) + +Appendix B. Example Responses + + The examples in this section show response messages using the signed + zone example in Appendix A. + +B.1. Name Error + + An authoritative name error. The NSEC3 RRs prove that the name does + not exist and that there is no wildcard RR that should have been + expanded. + +;; Header: QR AA DO RCODE=3 +;; +;; Question +a.c.x.w.example. IN A + +;; Answer +;; (empty) + +;; Authority + +example. SOA ns1.example. bugs.x.w.example. 1 3600 300 ( + 3600000 3600 ) +example. RRSIG SOA 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i + q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd + VI2LmKusbZsT0Q== ) + +;; NSEC3 RR that covers the "next closer" name (c.x.w.example) +;; H(c.x.w.example) = 0va5bpr2ou0vk0lbqeeljri88laipsfh + +0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. NSEC3 1 1 12 aabbccdd ( + 2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS + SOA NSEC3PARAM RRSIG ) +0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL + IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762 + BOCXJZMnpuwhpA== ) + + + + + +Laurie, et al. Standards Track [Page 40] + +RFC 5155 NSEC3 March 2008 + + +;; NSEC3 RR that matches the closest encloser (x.w.example) +;; H(x.w.example) = b4um86eghhds6nea196smvmlo4ors995 + +b4um86eghhds6nea196smvmlo4ors995.example. NSEC3 1 1 12 aabbccdd ( + gjeqe526plbf1g8mklp59enfd789njgi MX RRSIG ) +b4um86eghhds6nea196smvmlo4ors995.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + ZkPG3M32lmoHM6pa3D6gZFGB/rhL//Bs3Omh + 5u4m/CUiwtblEVOaAKKZd7S959OeiX43aLX3 + pOv0TSTyiTxIZg== ) + +;; NSEC3 RR that covers wildcard at the closest encloser (*.x.w.example) +;; H(*.x.w.example) = 92pqneegtaue7pjatc3l3qnk738c6v5m + +35mthgpgcu1qg68fab165klnsnk3dpvl.example. NSEC3 1 1 12 aabbccdd ( + b4um86eghhds6nea196smvmlo4ors995 NS DS RRSIG ) +35mthgpgcu1qg68fab165klnsnk3dpvl.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + g6jPUUpduAJKRljUsN8gB4UagAX0NxY9shwQ + Aynzo8EUWH+z6hEIBlUTPGj15eZll6VhQqgZ + XtAIR3chwgW+SA== ) + +;; Additional +;; (empty) + + The query returned three NSEC3 RRs that prove that the requested data + does not exist and that no wildcard expansion applies. The negative + response is authenticated by verifying the NSEC3 RRs. The + corresponding RRSIGs indicate that the NSEC3 RRs are signed by an + "example" DNSKEY of algorithm 7 and with key tag 40430. The resolver + needs the corresponding DNSKEY RR in order to authenticate this + answer. + + One of the owner names of the NSEC3 RRs matches the closest encloser. + One of the NSEC3 RRs prove that there exists no longer name. One of + the NSEC3 RRs prove that there exists no wildcard RRSets that should + have been expanded. The closest encloser can be found by applying + the algorithm in Section 8.3. + + In the above example, the name 'x.w.example' hashes to + 'b4um86eghhds6nea196smvmlo4ors995'. This indicates that this might + be the closest encloser. To prove that 'c.x.w.example' and + '*.x.w.example' do not exist, these names are hashed to, + respectively, '0va5bpr2ou0vk0lbqeeljri88laipsfh' and + '92pqneegtaue7pjatc3l3qnk738c6v5m'. The first and last NSEC3 RRs + prove that these hashed owner names do not exist. + + + + + +Laurie, et al. Standards Track [Page 41] + +RFC 5155 NSEC3 March 2008 + + +B.2. No Data Error + + A "no data" response. The NSEC3 RR proves that the name exists and + that the requested RR type does not. + +;; Header: QR AA DO RCODE=0 +;; +;; Question +ns1.example. IN MX + +;; Answer +;; (empty) + +;; Authority +example. SOA ns1.example. bugs.x.w.example. 1 3600 300 ( + 3600000 3600 ) +example. RRSIG SOA 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i + q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd + VI2LmKusbZsT0Q== ) + +;; NSEC3 RR matches the QNAME and shows that the MX type bit is not set. + +2t7b4g4vsa5smi47k61mv5bv1a22bojr.example. NSEC3 1 1 12 aabbccdd ( + 2vptu5timamqttgl4luu9kg21e0aor3s A RRSIG ) +2t7b4g4vsa5smi47k61mv5bv1a22bojr.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + OmBvJ1Vgg1hCKMXHFiNeIYHK9XVW0iLDLwJN + 4TFoNxZuP03gAXEI634YwOc4YBNITrj413iq + NI6mRk/r1dOSUw== ) +;; Additional +;; (empty) + + The query returned an NSEC3 RR that proves that the requested name + exists ("ns1.example." hashes to "2t7b4g4vsa5smi47k61mv5bv1a22bojr"), + but the requested RR type does not exist (type MX is absent in the + type code list of the NSEC3 RR), and was not a CNAME (type CNAME is + also absent in the type code list of the NSEC3 RR). + + + + + + + + + + + + +Laurie, et al. Standards Track [Page 42] + +RFC 5155 NSEC3 March 2008 + + +B.2.1. No Data Error, Empty Non-Terminal + + A "no data" response because of an empty non-terminal. The NSEC3 RR + proves that the name exists and that the requested RR type does not. + + ;; Header: QR AA DO RCODE=0 + ;; + ;; Question + y.w.example. IN A + + ;; Answer + ;; (empty) + + ;; Authority + example. SOA ns1.example. bugs.x.w.example. 1 3600 300 ( + 3600000 3600 ) + example. RRSIG SOA 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i + q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd + VI2LmKusbZsT0Q== ) + + ;; NSEC3 RR matches the QNAME and shows that the A type bit is not set. + + ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. NSEC3 1 1 12 aabbccdd ( + k8udemvp1j2f7eg6jebps17vp3n8i58h ) + ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + gPkFp1s2QDQ6wQzcg1uSebZ61W33rUBDcTj7 + 2F3kQ490fEdp7k1BUIfbcZtPbX3YCpE+sIt0 + MpzVSKfTwx4uYA== ) + + ;; Additional + ;; (empty) + + The query returned an NSEC3 RR that proves that the requested name + exists ("y.w.example." hashes to "ji6neoaepv8b5o6k4ev33abha8ht9fgc"), + but the requested RR type does not exist (Type A is absent in the + Type Bit Maps field of the NSEC3 RR). Note that, unlike an empty + non-terminal proof using NSECs, this is identical to a No Data Error. + This example is solely mentioned to be complete. + + + + + + + + + + +Laurie, et al. Standards Track [Page 43] + +RFC 5155 NSEC3 March 2008 + + +B.3. Referral to an Opt-Out Unsigned Zone + + The NSEC3 RRs prove that nothing for this delegation was signed. + There is no proof that the unsigned delegation exists. + + ;; Header: QR DO RCODE=0 + ;; + ;; Question + mc.c.example. IN MX + + ;; Answer + ;; (empty) + + ;; Authority + c.example. NS ns1.c.example. + NS ns2.c.example. + + ;; NSEC3 RR that covers the "next closer" name (c.example) + ;; H(c.example) = 4g6p9u5gvfshp30pqecj98b3maqbn1ck + + 35mthgpgcu1qg68fab165klnsnk3dpvl.example. NSEC3 1 1 12 aabbccdd ( + b4um86eghhds6nea196smvmlo4ors995 NS DS RRSIG ) + 35mthgpgcu1qg68fab165klnsnk3dpvl.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + g6jPUUpduAJKRljUsN8gB4UagAX0NxY9shwQ + Aynzo8EUWH+z6hEIBlUTPGj15eZll6VhQqgZ + XtAIR3chwgW+SA== ) + + ;; NSEC3 RR that matches the closest encloser (example) + ;; H(example) = 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom + + 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. NSEC3 1 1 12 aabbccdd ( + 2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS + SOA NSEC3PARAM RRSIG ) + 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL + IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762 + BOCXJZMnpuwhpA== ) + + ;; Additional + ns1.c.example. A 192.0.2.7 + ns2.c.example. A 192.0.2.8 + + The query returned a referral to the unsigned "c.example." zone. The + response contains the closest provable encloser of "c.example" to be + "example", since the hash of "c.example" + + + + +Laurie, et al. Standards Track [Page 44] + +RFC 5155 NSEC3 March 2008 + + + ("4g6p9u5gvfshp30pqecj98b3maqbn1ck") is covered by the first NSEC3 RR + and its Opt-Out bit is set. + +B.4. Wildcard Expansion + + A query that was answered with a response containing a wildcard + expansion. The label count in the RRSIG RRSet in the answer section + indicates that a wildcard RRSet was expanded to produce this + response, and the NSEC3 RR proves that no "next closer" name exists + in the zone. + + ;; Header: QR AA DO RCODE=0 + ;; + ;; Question + a.z.w.example. IN MX + + ;; Answer + a.z.w.example. MX 1 ai.example. + a.z.w.example. RRSIG MX 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + CikebjQwGQPwijVcxgcZcSJKtfynugtlBiKb + 9FcBTrmOoyQ4InoWVudhCWsh/URX3lc4WRUM + ivEBP6+4KS3ldA== ) + + ;; Authority + example. NS ns1.example. + example. NS ns2.example. + example. RRSIG NS 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + PVOgtMK1HHeSTau+HwDWC8Ts+6C8qtqd4pQJ + qOtdEVgg+MA+ai4fWDEhu3qHJyLcQ9tbD2vv + CnMXjtz6SyObxA== ) + + ;; NSEC3 RR that covers the "next closer" name (z.w.example) + ;; H(z.w.example) = qlu7gtfaeh0ek0c05ksfhdpbcgglbe03 + + q04jkcevqvmu85r014c7dkba38o0ji5r.example. NSEC3 1 1 12 aabbccdd ( + r53bq7cc2uvmubfu5ocmm6pers9tk9en A RRSIG ) + q04jkcevqvmu85r014c7dkba38o0ji5r.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + hV5I89b+4FHJDATp09g4bbN0R1F845CaXpL3 + ZxlMKimoPAyqletMlEWwLfFia7sdpSzn+ZlN + NlkxWcLsIlMmUg== ) + + + + + + + + +Laurie, et al. Standards Track [Page 45] + +RFC 5155 NSEC3 March 2008 + + + ;; Additional + ai.example. A 192.0.2.9 + ai.example. RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + hVe+wKYMlObTRPhX0NL67GxeZfdxqr/QeR6F + tfdAj5+FgYxyzPEjIzvKWy00hWIl6wD3Vws+ + rznEn8sQ64UdqA== ) + ai.example. AAAA 2001:db8:0:0:0:0:f00:baa9 + ai.example. RRSIG AAAA 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + LcdxKaCB5bGZwPDg+3JJ4O02zoMBrjxqlf6W + uaHQZZfTUpb9Nf2nxFGe2XRPfR5tpJT6GdRG + cHueLuXkMjBArQ== ) + + The query returned an answer that was produced as a result of a + wildcard expansion. The answer section contains a wildcard RRSet + expanded as it would be in a traditional DNS response. The RRSIG + Labels field value of 2 indicates that the answer is the result of a + wildcard expansion, as the "a.z.w.example" name contains 4 labels. + This also shows that "w.example" exists, so there is no need for an + NSEC3 RR that matches the closest encloser. + + The NSEC3 RR proves that no closer match could have been used to + answer this query. + +B.5. Wildcard No Data Error + + A "no data" response for a name covered by a wildcard. The NSEC3 RRs + prove that the matching wildcard name does not have any RRs of the + requested type and that no closer match exists in the zone. + + ;; Header: QR AA DO RCODE=0 + ;; + ;; Question + a.z.w.example. IN AAAA + + ;; Answer + ;; (empty) + + ;; Authority + example. SOA ns1.example. bugs.x.w.example. 1 3600 300 ( + 3600000 3600 ) + example. RRSIG SOA 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i + q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd + VI2LmKusbZsT0Q== ) + + + + +Laurie, et al. Standards Track [Page 46] + +RFC 5155 NSEC3 March 2008 + + + ;; NSEC3 RR that matches the closest encloser (w.example) + ;; H(w.example) = k8udemvp1j2f7eg6jebps17vp3n8i58h + + k8udemvp1j2f7eg6jebps17vp3n8i58h.example. NSEC3 1 1 12 aabbccdd ( + kohar7mbb8dc2ce8a9qvl8hon4k53uhi ) + k8udemvp1j2f7eg6jebps17vp3n8i58h.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + FtXGbvF0+wf8iWkyo73enAuVx03klN+pILBK + S6qCcftVtfH4yVzsEZquJ27NHR7ruxJWDNMt + Otx7w9WfcIg62A== ) + + ;; NSEC3 RR that covers the "next closer" name (z.w.example) + ;; H(z.w.example) = qlu7gtfaeh0ek0c05ksfhdpbcgglbe03 + + q04jkcevqvmu85r014c7dkba38o0ji5r.example. NSEC3 1 1 12 aabbccdd ( + r53bq7cc2uvmubfu5ocmm6pers9tk9en A RRSIG ) + q04jkcevqvmu85r014c7dkba38o0ji5r.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + hV5I89b+4FHJDATp09g4bbN0R1F845CaXpL3 + ZxlMKimoPAyqletMlEWwLfFia7sdpSzn+ZlN + NlkxWcLsIlMmUg== ) + + ;; NSEC3 RR that matches a wildcard at the closest encloser. + ;; H(*.w.example) = r53bq7cc2uvmubfu5ocmm6pers9tk9en + + r53bq7cc2uvmubfu5ocmm6pers9tk9en.example. NSEC3 1 1 12 aabbccdd ( + t644ebqk9bibcna874givr6joj62mlhv MX RRSIG ) + r53bq7cc2uvmubfu5ocmm6pers9tk9en.example. RRSIG NSEC3 7 2 3600 ( + 20150420235959 20051021000000 40430 example. + aupviViruXs4bDg9rCbezzBMf9h1ZlDvbW/C + ZFKulIGXXLj8B/fsDJarXVDA9bnUoRhEbKp+ + HF1FWKW7RIJdtQ== ) + + ;; Additional + ;; (empty) + + The query returned the NSEC3 RRs that prove that the requested data + does not exist and no wildcard RR applies. + + + + + + + + + + + + + +Laurie, et al. Standards Track [Page 47] + +RFC 5155 NSEC3 March 2008 + + +B.6. DS Child Zone No Data Error + + A "no data" response for a QTYPE=DS query that was mistakenly sent to + a name server for the child zone. + +;; Header: QR AA DO RCODE=0 +;; +;; Question +example. IN DS + +;; Answer +;; (empty) + +;; Authority +example. SOA ns1.example. bugs.x.w.example. 1 3600 300 ( + 3600000 3600 ) +example. RRSIG SOA 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i + q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd + VI2LmKusbZsT0Q== ) + +;; NSEC3 RR matches the QNAME and shows that the DS type bit is not set. + +0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. NSEC3 1 1 12 aabbccdd ( + 2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS + SOA NSEC3PARAM RRSIG ) +0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. RRSIG NSEC3 7 2 3600 + 20150420235959 20051021000000 40430 example. + OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL + IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762 + BOCXJZMnpuwhpA== ) + +;; Additional +;; (empty) + + The query returned an NSEC3 RR showing that the requested was + answered by the server authoritative for the zone "example". The + NSEC3 RR indicates the presence of an SOA RR, showing that this NSEC3 + RR is from the apex of the child, not from the zone cut of the + parent. Queries for the "example" DS RRSet should be sent to the + parent servers (which are in this case the root servers). + +Appendix C. Special Considerations + + The following paragraphs clarify specific behavior and explain + special considerations for implementations. + + + + +Laurie, et al. Standards Track [Page 48] + +RFC 5155 NSEC3 March 2008 + + +C.1. Salting + + Augmenting original owner names with salt before hashing increases + the cost of a dictionary of pre-generated hash-values. For every bit + of salt, the cost of a precomputed dictionary doubles (because there + must be an entry for each word combined with each possible salt + value). The NSEC3 RR can use a maximum of 2040 bits (255 octets) of + salt, multiplying the cost by 2^2040. This means that an attacker + must, in practice, recompute the dictionary each time the salt is + changed. + + Including a salt, regardless of size, does not affect the cost of + constructing NSEC3 RRs. It does increase the size of the NSEC3 RR. + + There MUST be at least one complete set of NSEC3 RRs for the zone + using the same salt value. + + The salt SHOULD be changed periodically to prevent pre-computation + using a single salt. It is RECOMMENDED that the salt be changed for + every re-signing. + + Note that this could cause a resolver to see RRs with different salt + values for the same zone. This is harmless, since each RR stands + alone (that is, it denies the set of owner names whose hashes, using + the salt in the NSEC3 RR, fall between the two hashes in the NSEC3 + RR) -- it is only the server that needs a complete set of NSEC3 RRs + with the same salt in order to be able to answer every possible + query. + + There is no prohibition with having NSEC3 RRs with different salts + within the same zone. However, in order for authoritative servers to + be able to consistently find covering NSEC3 RRs, the authoritative + server MUST choose a single set of parameters (algorithm, salt, and + iterations) to use when selecting NSEC3 RRs. + +C.2. Hash Collision + + Hash collisions occur when different messages have the same hash + value. The expected number of domain names needed to give a 1 in 2 + chance of a single collision is about 2^(n/2) for a hash of length n + bits (i.e., 2^80 for SHA-1). Though this probability is extremely + low, the following paragraphs deal with avoiding collisions and + assessing possible damage in the event of an attack using hash + collisions. + + + + + + + +Laurie, et al. Standards Track [Page 49] + +RFC 5155 NSEC3 March 2008 + + +C.2.1. Avoiding Hash Collisions During Generation + + During generation of NSEC3 RRs, hash values are supposedly unique. + In the (academic) case of a collision occurring, an alternative salt + MUST be chosen and all hash values MUST be regenerated. + +C.2.2. Second Preimage Requirement Analysis + + A cryptographic hash function has a second-preimage resistance + property. The second-preimage resistance property means that it is + computationally infeasible to find another message with the same hash + value as a given message, i.e., given preimage X, to find a second + preimage X' != X such that hash(X) = hash(X'). The work factor for + finding a second preimage is of the order of 2^160 for SHA-1. To + mount an attack using an existing NSEC3 RR, an adversary needs to + find a second preimage. + + Assuming an adversary is capable of mounting such an extreme attack, + the actual damage is that a response message can be generated that + claims that a certain QNAME (i.e., the second pre-image) does exist, + while in reality QNAME does not exist (a false positive), which will + either cause a security-aware resolver to re-query for the non- + existent name, or to fail the initial query. Note that the adversary + can't mount this attack on an existing name, but only on a name that + the adversary can't choose and that does not yet exist. + + + + + + + + + + + + + + + + + + + + + + + + + + +Laurie, et al. Standards Track [Page 50] + +RFC 5155 NSEC3 March 2008 + + +Authors' Addresses + + Ben Laurie + Nominet + 17 Perryn Road + London W3 7LR + England + + Phone: +44 20 8735 0686 + EMail: ben@links.org + + + Geoffrey Sisson + Nominet + Minerva House + Edmund Halley Road + Oxford Science Park + Oxford OX4 4DQ + UNITED KINGDOM + + Phone: +44 1865 332211 + EMail: geoff-s@panix.com + + + Roy Arends + Nominet + Minerva House + Edmund Halley Road + Oxford Science Park + Oxford OX4 4DQ + UNITED KINGDOM + + Phone: +44 1865 332211 + EMail: roy@nominet.org.uk + + + David Blacka + VeriSign, Inc. + 21355 Ridgetop Circle + Dulles, VA 20166 + US + + Phone: +1 703 948 3200 + EMail: davidb@verisign.com + + + + + + + +Laurie, et al. Standards Track [Page 51] + +RFC 5155 NSEC3 March 2008 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2008). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + + + + + + + + + + + + +Laurie, et al. Standards Track [Page 52] + diff --git a/lib/bind/api b/lib/bind/api index a87852a873f1..7ffeba810f24 100644 --- a/lib/bind/api +++ b/lib/bind/api @@ -1,3 +1,3 @@ -LIBINTERFACE = 4 -LIBREVISION = 10 -LIBAGE = 0 +LIBINTERFACE = 5 +LIBREVISION = 2 +LIBAGE = 1 diff --git a/lib/bind/bsd/Makefile.in b/lib/bind/bsd/Makefile.in index cf70c10b1e40..72a52f61ff1a 100644 --- a/lib/bind/bsd/Makefile.in +++ b/lib/bind/bsd/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.7 2004/03/05 05:05:07 marka Exp $ +# $Id: Makefile.in,v 1.7.18.2 2008/03/20 23:46:01 tbox Exp $ srcdir= @srcdir@ VPATH = @srcdir@ @@ -34,6 +34,6 @@ SRCS= daemon.c ftruncate.c gettimeofday.c mktemp.c putenv.c \ TARGETS= ${OBJS} -CINCLUDES= -I.. -I${srcdir}/../include +CINCLUDES= -I.. -I../include -I${srcdir}/../include @BIND9_MAKE_RULES@ diff --git a/lib/bind/bsd/strerror.c b/lib/bind/bsd/strerror.c index 5743398eed54..325cd5204425 100644 --- a/lib/bind/bsd/strerror.c +++ b/lib/bind/bsd/strerror.c @@ -1,6 +1,6 @@ #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)strerror.c 8.1 (Berkeley) 6/4/93"; -static const char rcsid[] = "$Id: strerror.c,v 1.4.332.1 2005/04/27 05:00:46 sra Exp $"; +static const char rcsid[] = "$Id: strerror.c,v 1.4.332.2 2008/02/18 04:04:06 marka Exp $"; #endif /* LIBC_SCCS and not lint */ /* @@ -60,12 +60,14 @@ isc_strerror(int num) { static char ebuf[40] = UPREFIX; /*%< 64-bit number + slop */ u_int errnum; char *p, *t; +#ifndef USE_SYSERROR_LIST const char *ret; +#endif char tmp[40]; errnum = num; /*%< convert to unsigned */ #ifdef USE_SYSERROR_LIST - if (errnum < sys_nerr) + if (errnum < (u_int)sys_nerr) return (sys_errlist[errnum]); #else #undef strerror diff --git a/lib/bind/bsd/strtoul.c b/lib/bind/bsd/strtoul.c index f419227e9878..c2efeda197cf 100644 --- a/lib/bind/bsd/strtoul.c +++ b/lib/bind/bsd/strtoul.c @@ -1,6 +1,6 @@ #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)strtoul.c 8.1 (Berkeley) 6/4/93"; -static const char rcsid[] = "$Id: strtoul.c,v 1.2.164.1 2005/04/27 05:00:47 sra Exp $"; +static const char rcsid[] = "$Id: strtoul.c,v 1.2.164.2 2008/02/18 04:04:06 marka Exp $"; #endif /* LIBC_SCCS and not lint */ /* @@ -70,7 +70,7 @@ strtoul(const char *nptr, char **endptr, int base) { * See strtol for comments as to the logic used. */ do { - c = *(unsigned char *)s++; + c = *(const unsigned char *)s++; } while (isspace(c)); if (c == '-') { neg = 1; @@ -87,7 +87,7 @@ strtoul(const char *nptr, char **endptr, int base) { base = c == '0' ? 8 : 10; cutoff = (u_long)ULONG_MAX / (u_long)base; cutlim = (u_long)ULONG_MAX % (u_long)base; - for (acc = 0, any = 0;; c = *(unsigned char*)s++) { + for (acc = 0, any = 0;; c = *(const unsigned char*)s++) { if (isdigit(c)) c -= '0'; else if (isalpha(c)) @@ -96,7 +96,7 @@ strtoul(const char *nptr, char **endptr, int base) { break; if (c >= base) break; - if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim) + if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) any = -1; else { any = 1; @@ -110,7 +110,7 @@ strtoul(const char *nptr, char **endptr, int base) { } else if (neg) acc = -acc; if (endptr != 0) - *endptr = (char *)(any ? s - 1 : nptr); + DE_CONST((any ? s - 1 : nptr), *endptr); return (acc); } diff --git a/lib/bind/configure.in b/lib/bind/configure.in index 6e98c5c0fddf..9b9b53b81cb4 100644 --- a/lib/bind/configure.in +++ b/lib/bind/configure.in @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -AC_REVISION($Revision: 1.90.18.34.10.2 $) +AC_REVISION($Revision: 1.90.18.43 $) AC_INIT(resolv/herror.c) AC_PREREQ(2.13) @@ -169,7 +169,7 @@ AC_PROG_CC AC_HEADER_STDC -AC_CHECK_HEADERS(fcntl.h db.h paths.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/timers.h stropts.h) +AC_CHECK_HEADERS(fcntl.h db.h paths.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/timers.h stropts.h memory.h) AC_C_CONST AC_C_INLINE @@ -461,6 +461,7 @@ AC_SUBST(WANT_THREADS_OBJS) AC_CHECK_FUNC(strlcat, AC_DEFINE(HAVE_STRLCAT)) AC_CHECK_FUNC(memmove, AC_DEFINE(HAVE_MEMMOVE)) AC_CHECK_FUNC(memchr, AC_DEFINE(HAVE_MEMCHR)) +AC_CHECK_FUNC(strtoul, , AC_DEFINE(NEED_STRTOUL)) AC_CHECK_FUNC(if_nametoindex, [USE_IFNAMELINKID="#define USE_IFNAMELINKID 1"], @@ -490,6 +491,16 @@ AC_CHECK_FUNC(strerror, [NEED_STRERROR="#undef NEED_STRERROR"], [NEED_STRERROR="#define NEED_STRERROR 1"]) AC_SUBST(NEED_STRERROR) +if test -n "$NEED_STRERROR" +then + AC_MSG_CHECKING([for extern char * sys_errlist[]]) + AC_TRY_LINK([ extern int sys_nerr; extern char *sys_errlist[]; ], + [ const char *p = sys_errlist[0]; ], + AC_MSG_RESULT(yes) + AC_DEFINE(USE_SYSERROR_LIST), + AC_MSG_RESULT(no)) +fi + # # flockfile is usually provided by pthreads, but we may want to use it # even if compiled with --disable-threads. @@ -666,6 +677,14 @@ AC_SUBST(PURIFY) # # GNU libtool support # +case $host in +sunos*) + # Just set the maximum command line length for sunos as it otherwise + # takes a exceptionally long time to work it out. Required for libtool. + lt_cv_sys_max_cmd_len=4096; + ;; +esac + AC_ARG_WITH(libtool, [ --with-libtool use GNU libtool (following indented options supported)], use_libtool="$withval", use_libtool="no") @@ -976,6 +995,8 @@ AC_SUBST(ISC_PLATFORM_NEEDATON) # case "$host" in *-dec-osf*) + # Tru64 broke send() by defining it to send_OBSOLETE + AC_DEFINE(REENABLE_SEND) # Turn on 4.4BSD style sa_len support. AC_DEFINE(_SOCKADDR_LEN) ;; @@ -1050,6 +1071,7 @@ case "$host" in *-qnx*) PORT_DIR="port/qnx";; *-rhapsody*) PORT_DIR="port/rhapsody";; *-sunos4*) + AC_DEFINE(NEED_SUN4PROTOS) PORT_NONBLOCK="#define PORT_NONBLOCK O_NDELAY" PORT_DIR="port/sunos";; *-solaris2.[[01234]]) @@ -1246,6 +1268,38 @@ found_rt_iflist AC_CHECK_FUNC(strsep, [ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"], [ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"]) + + +AC_MSG_CHECKING(for char *sprintf) +AC_TRY_COMPILE([ +#include +], +[ char buf[2]; return(*sprintf(buf,"x"));], +AC_DEFINE(SPRINTF_CHAR) +AC_MSG_RESULT(yes) +, +AC_MSG_RESULT(no) +) + +AC_MSG_CHECKING(for char *vsprintf) +case $host in +*sunos4*) # not decared in any header file. +AC_DEFINE(VSPRINTF_CHAR) +AC_MSG_RESULT(yes) +;; +*) +AC_TRY_COMPILE([ +#include +], +[ char buf[2]; return(*vsprintf(buf,"x"));], +AC_DEFINE(VSPRINTF_CHAR) +AC_MSG_RESULT(yes) +, +AC_MSG_RESULT(no) +) +;; +esac + AC_CHECK_FUNC(vsnprintf, [ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"], [ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS print.$O" @@ -1256,12 +1310,7 @@ AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF) AC_SUBST(ISC_EXTRA_OBJS) AC_SUBST(ISC_EXTRA_SRCS) -AC_CHECK_FUNC(strerror, - [USE_SYSERROR_LIST="#undef USE_SYSERROR_LIST"], - [USE_SYSERROR_LIST="#define USE_SYSERROR_LIST 1"]) -AC_SUBST(USE_SYSERROR_LIST) -# # Determine the printf format characters to use when printing # values of type isc_int64_t. We make the assumption that platforms # where a "long long" is the same size as a "long" (e.g., Alpha/OSF1) @@ -1865,19 +1914,37 @@ AC_SUBST(SETGRENT_VOID) case $host in ia64-hp-hpux11.*) +NGR_R_CONST="#define NGR_R_CONST" ;; +*-hp-hpux11.*) +# +# HPUX doesn't have a prototype for getnetgrent_r(). +# +NGR_R_CONST="#define NGR_R_CONST" +NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen" +NGR_R_BAD="#define NGR_R_BAD (0)" +NGR_R_COPY="#define NGR_R_COPY buf, buflen" +NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS" +NGR_R_OK="#define NGR_R_OK 1" +NGR_R_RETURN="#define NGR_R_RETURN int" +;; + *) AC_CHECK_FUNC(getnetgrent_r, AC_TRY_COMPILE( [ #undef __USE_MISC #define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT #include +#include int getnetgrent_r(char **m, char **u, char **d, char *b, int l) {} ] , [return (0);], [ +NGR_R_CONST="#define NGR_R_CONST" NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen" NGR_R_BAD="#define NGR_R_BAD (0)" NGR_R_COPY="#define NGR_R_COPY buf, buflen" @@ -1890,12 +1957,16 @@ AC_TRY_COMPILE( [ #undef __USE_MISC #define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT #include +#include int getnetgrent_r(char **m, char **u, char **d, char *b, size_t l) {} ] , [return (0);], [ +NGR_R_CONST="#define NGR_R_CONST" NGR_R_ARGS="#define NGR_R_ARGS char *buf, size_t buflen" NGR_R_BAD="#define NGR_R_BAD (0)" NGR_R_COPY="#define NGR_R_COPY buf, buflen" @@ -1908,12 +1979,16 @@ AC_TRY_COMPILE( [ #undef __USE_MISC #define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT #include -extern int getnetgrent_r( char **, char **, char **, void **); +#include +extern int getnetgrent_r(char **, char **, char **, void **); ] , [return (0);], [ +NGR_R_CONST="#define NGR_R_CONST" NGR_R_ARGS="#define NGR_R_ARGS void **buf" NGR_R_BAD="#define NGR_R_BAD (0)" NGR_R_COPY="#define NGR_R_COPY buf" @@ -1923,10 +1998,35 @@ NGR_R_RETURN="#define NGR_R_RETURN int" NGR_R_PRIVATE="#define NGR_R_PRIVATE 1" ] , +AC_TRY_COMPILE( +[ +#undef __USE_MISC +#define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT +#include +#include +extern int getnetgrent_r(const char **, const char **, const char **, void *); +] +, +[return (0);], +[ +NGR_R_CONST="#define NGR_R_CONST const" +NGR_R_ARGS="#define NGR_R_ARGS void *buf" +NGR_R_BAD="#define NGR_R_BAD (0)" +NGR_R_COPY="#define NGR_R_COPY buf" +NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS" +NGR_R_OK="#define NGR_R_OK 1" +NGR_R_RETURN="#define NGR_R_RETURN int" +NGR_R_PRIVATE="#define NGR_R_PRIVATE 2" +] +, +) ) ) ) , +NGR_R_CONST="#define NGR_R_CONST" NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen" NGR_R_BAD="#define NGR_R_BAD (0)" NGR_R_COPY="#define NGR_R_COPY buf, buflen" @@ -1935,6 +2035,7 @@ NGR_R_OK="#define NGR_R_OK 1" NGR_R_RETURN="#define NGR_R_RETURN int" ) esac +AC_SUBST(NGR_R_CONST) AC_SUBST(NGR_R_ARGS) AC_SUBST(NGR_R_BAD) AC_SUBST(NGR_R_COPY) @@ -1948,7 +2049,10 @@ AC_TRY_COMPILE( [ #undef __USE_MISC #define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT #include +#include void endnetgrent_r(void **ptr); ] , @@ -1957,44 +2061,128 @@ void endnetgrent_r(void **ptr); [ NGR_R_END_RESULT="#define NGR_R_END_RESULT(x) /* empty */" NGR_R_END_RETURN="#define NGR_R_END_RETURN void" -NGR_R_ENT_ARGS="#define NGR_R_ENT_ARGS NGR_R_ARGS" +NGR_R_END_ARGS="#define NGR_R_END_ARGS NGR_R_ARGS" +] +, +AC_TRY_COMPILE( +[ +#undef __USE_MISC +#define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT +#include +#include +void endnetgrent_r(void *ptr); +] +, +[return (0);] +, +[ +NGR_R_END_RESULT="#define NGR_R_END_RESULT(x) /* empty */" +NGR_R_END_RETURN="#define NGR_R_END_RETURN void" +NGR_R_END_ARGS="#define NGR_R_END_ARGS void *buf" ] , [ NGR_R_END_RESULT="#define NGR_R_END_RESULT(x) return (x)" NGR_R_END_RETURN="#define NGR_R_END_RETURN int" -NGR_R_ENT_ARGS="#define NGR_R_ENT_ARGS NGR_R_ARGS" +NGR_R_END_ARGS="#define NGR_R_END_ARGS NGR_R_ARGS" ] ) +) , NGR_R_END_RESULT="#define NGR_R_END_RESULT(x) /*empty*/" NGR_R_END_RETURN="#define NGR_R_END_RETURN void" -NGR_R_ENT_ARGS="#undef NGR_R_ENT_ARGS /*empty*/" +NGR_R_END_ARGS="#undef NGR_R_END_ARGS /*empty*/" AC_DEFINE(NEED_ENDNETGRENT_R) ) AC_SUBST(NGR_R_END_RESULT) AC_SUBST(NGR_R_END_RETURN) -AC_SUBST(NGR_R_ENT_ARGS) +AC_SUBST(NGR_R_END_ARGS) AC_CHECK_FUNC(setnetgrent_r, [ case "$host" in *bsdi*) + # + # No prototype + # NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/" NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void" + NGR_R_SET_ARGS="#define NGR_R_SET_ARGS NGR_R_ARGS" + NGR_R_SET_CONST="#define NGR_R_SET_CONST" ;; -*) +*hpux*) + # + # No prototype + # NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK" NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int" + NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS /* empty */" + NGR_R_SET_CONST="#define NGR_R_SET_CONST" ;; +*) +AC_TRY_COMPILE( +[ +#undef __USE_MISC +#define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT +#include +#include +void setnetgrent_r(void **ptr); +] +, +[return (0);] +, +[ +NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /* empty */" +NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void" +NGR_R_SET_ARGS="#define NGR_R_SET_ARGS void **buf" +NGR_R_SET_CONST="#define NGR_R_SET_CONST" +] +, +AC_TRY_COMPILE( +[ +#undef __USE_MISC +#define __USE_MISC +#undef _REEENTRANT +#define _REEENTRANT +#include +#include +extern int setnetgrent_r(char *, void **); +] +, +[return (0);] +, +[ +NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK" +NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int" +NGR_R_SET_ARGS="#define NGR_R_SET_ARGS void **buf" +NGR_R_SET_CONST="#define NGR_R_SET_CONST" +] +, +[ +NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK" +NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int" +NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS" +NGR_R_SET_CONST="#define NGR_R_SET_CONST const" +] +)) +;; esac ] , NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/" NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void" +NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS" +NGR_R_SET_CONST="#define NGR_R_SET_CONST const" ) + AC_SUBST(NGR_R_SET_RESULT) AC_SUBST(NGR_R_SET_RETURN) +AC_SUBST(NGR_R_SET_ARGS) +AC_SUBST(NGR_R_SET_CONST) AC_CHECK_FUNC(innetgr_r,,AC_DEFINE(NEED_INNETGR_R)) @@ -2590,7 +2778,7 @@ case "$host" in *-solaris2.9) hack_shutup_in6addr_init_macros=yes ;; - *-solaris2.1[0-9]) + *-solaris2.1[[0-9]]) hack_shutup_in6addr_init_macros=yes ;; esac @@ -2675,6 +2863,7 @@ AC_OUTPUT( port/Makefile ${PORT_DIR}/Makefile ${PORT_INCLUDE}/Makefile + include/isc/platform.h ) # Tell Emacs to edit this file in shell mode. diff --git a/lib/bind/dst/Makefile.in b/lib/bind/dst/Makefile.in index c802840613fa..a841d4900862 100644 --- a/lib/bind/dst/Makefile.in +++ b/lib/bind/dst/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.6 2004/03/05 05:05:09 marka Exp $ +# $Id: Makefile.in,v 1.6.18.2 2008/03/20 23:46:01 tbox Exp $ srcdir= @srcdir@ VPATH = @srcdir@ @@ -26,7 +26,7 @@ TARGETS= ${OBJS} CRYPTFLAGS= -DCYLINK_DSS -DHMAC_MD5 -DUSE_MD5 -DDNSSAFE -CINCLUDES= -I.. -I${srcdir}/../include ${CRYPTINCL} +CINCLUDES= -I.. -I../include -I${srcdir}/../include ${CRYPTINCL} CDEFINES= ${CRYPTFLAGS} @BIND9_MAKE_RULES@ diff --git a/lib/bind/dst/dst_api.c b/lib/bind/dst/dst_api.c index a622ae3eb4c6..5bcd80a5c877 100644 --- a/lib/bind/dst/dst_api.c +++ b/lib/bind/dst/dst_api.c @@ -1,5 +1,5 @@ #ifndef LINT -static const char rcsid[] = "$Header: /proj/cvs/prod/bind9/lib/bind/dst/dst_api.c,v 1.10.332.7 2007/09/26 04:41:47 each Exp $"; +static const char rcsid[] = "$Header: /proj/cvs/prod/bind9/lib/bind/dst/Attic/dst_api.c,v 1.10.332.7 2007/09/26 04:41:47 each Exp $"; #endif /* diff --git a/lib/bind/dst/hmac_link.c b/lib/bind/dst/hmac_link.c index b97a996d26e6..cbd68f482780 100644 --- a/lib/bind/dst/hmac_link.c +++ b/lib/bind/dst/hmac_link.c @@ -1,6 +1,6 @@ #ifdef HMAC_MD5 #ifndef LINT -static const char rcsid[] = "$Header: /proj/cvs/prod/bind9/lib/bind/dst/hmac_link.c,v 1.3.164.5 2007/09/26 04:41:47 each Exp $"; +static const char rcsid[] = "$Header: /proj/cvs/prod/bind9/lib/bind/dst/Attic/hmac_link.c,v 1.3.164.5 2007/09/26 04:41:47 each Exp $"; #endif /* * Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc. diff --git a/lib/bind/dst/support.c b/lib/bind/dst/support.c index ec228d0142c5..263f9578615b 100644 --- a/lib/bind/dst/support.c +++ b/lib/bind/dst/support.c @@ -1,4 +1,4 @@ -static const char rcsid[] = "$Header: /proj/cvs/prod/bind9/lib/bind/dst/support.c,v 1.3.332.3 2005/10/11 00:25:09 marka Exp $"; +static const char rcsid[] = "$Header: /proj/cvs/prod/bind9/lib/bind/dst/Attic/support.c,v 1.3.332.3 2005/10/11 00:25:09 marka Exp $"; /* diff --git a/lib/bind/include/Makefile.in b/lib/bind/include/Makefile.in index d07ea7abfafd..17a69bf30057 100644 --- a/lib/bind/include/Makefile.in +++ b/lib/bind/include/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.4 2004/03/05 05:05:11 marka Exp $ +# $Id: Makefile.in,v 1.4.18.2 2008/01/23 02:15:02 tbox Exp $ srcdir = @srcdir@ VPATH = @srcdir@ @@ -24,7 +24,7 @@ HEADERS=fd_setsize.h hesiod.h irp.h irs.h netdb.h netgroup.h res_update.h \ AHEADERS= arpa/inet.h arpa/nameser.h arpa/nameser_compat.h IHEADERS= isc/assertions.h isc/ctl.h isc/dst.h isc/eventlib.h isc/heap.h \ isc/irpmarshall.h isc/list.h isc/logging.h isc/memcluster.h \ - isc/misc.h isc/tree.h + isc/misc.h isc/tree.h isc/platform.h.in all: diff --git a/lib/bind/include/arpa/nameser.h b/lib/bind/include/arpa/nameser.h index b3a7849b5465..8f8d8a7cc286 100644 --- a/lib/bind/include/arpa/nameser.h +++ b/lib/bind/include/arpa/nameser.h @@ -49,7 +49,7 @@ */ /* - * $Id: nameser.h,v 1.7.18.1 2005/04/27 05:00:50 sra Exp $ + * $Id: nameser.h,v 1.7.18.2 2008/04/03 23:15:15 marka Exp $ */ #ifndef _ARPA_NAMESER_H_ @@ -427,9 +427,10 @@ typedef enum __ns_cert_types { #define NS_NXT_MAX 127 /*% - * EDNS0 extended flags, host order. + * EDNS0 extended flags and option codes, host order. */ #define NS_OPT_DNSSEC_OK 0x8000U +#define NS_OPT_NSID 3 /*% * Inline versions of get/put short/long. Pointer is advanced. diff --git a/lib/bind/include/isc/assertions.h b/lib/bind/include/isc/assertions.h index 2ed768dcaec4..100e586658b0 100644 --- a/lib/bind/include/isc/assertions.h +++ b/lib/bind/include/isc/assertions.h @@ -16,7 +16,7 @@ */ /* - * $Id: assertions.h,v 1.2.18.1 2005/04/27 05:00:50 sra Exp $ + * $Id: assertions.h,v 1.2.18.2 2008/10/15 03:57:21 marka Exp $ */ #ifndef ASSERTIONS_H @@ -29,18 +29,19 @@ typedef enum { typedef void (*assertion_failure_callback)(const char *, int, assertion_type, const char *, int); +/* coverity[+kill] */ extern assertion_failure_callback __assertion_failed; void set_assertion_failure_callback(assertion_failure_callback f); const char *assertion_type_to_text(assertion_type type); -#ifdef CHECK_ALL +#if defined(CHECK_ALL) || defined(__COVERITY__) #define CHECK_REQUIRE 1 #define CHECK_ENSURE 1 #define CHECK_INSIST 1 #define CHECK_INVARIANT 1 #endif -#ifdef CHECK_NONE +#if defined(CHECK_NONE) && !defined(__COVERITY__) #define CHECK_REQUIRE 0 #define CHECK_ENSURE 0 #define CHECK_INSIST 0 diff --git a/lib/bind/include/isc/eventlib.h b/lib/bind/include/isc/eventlib.h index 598c71ca80fc..50038231c852 100644 --- a/lib/bind/include/isc/eventlib.h +++ b/lib/bind/include/isc/eventlib.h @@ -18,7 +18,7 @@ /* eventlib.h - exported interfaces for eventlib * vix 09sep95 [initial] * - * $Id: eventlib.h,v 1.3.18.2 2005/07/28 07:38:07 marka Exp $ + * $Id: eventlib.h,v 1.3.18.3 2008/01/23 02:12:01 marka Exp $ */ #ifndef _EVENTLIB_H @@ -29,6 +29,8 @@ #include #include +#include + #ifndef __P # define __EVENTLIB_P_DEFINED # ifdef __STDC__ diff --git a/lib/bind/include/isc/misc.h b/lib/bind/include/isc/misc.h index d2e98acf5ddc..0cd1487a4b93 100644 --- a/lib/bind/include/isc/misc.h +++ b/lib/bind/include/isc/misc.h @@ -16,7 +16,7 @@ */ /* - * $Id: misc.h,v 1.4.18.1 2005/04/27 05:00:52 sra Exp $ + * $Id: misc.h,v 1.4.18.2 2008/02/18 04:04:06 marka Exp $ */ #ifndef _ISC_MISC_H @@ -25,6 +25,7 @@ /*! \file */ #include +#include #define bitncmp __bitncmp /*#define isc_movefile __isc_movefile */ diff --git a/lib/bind/include/isc/platform.h.in b/lib/bind/include/isc/platform.h.in new file mode 100644 index 000000000000..40ab5d725f83 --- /dev/null +++ b/lib/bind/include/isc/platform.h.in @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC") + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id: platform.h.in,v 1.2.6.2 2008/01/23 02:15:02 tbox Exp $ */ + +/*! \file */ + +#ifndef ISC_PLATFORM_H +#define ISC_PLATFORM_H + +/* + * Define if the OS does not define struct timespec. + */ +@ISC_PLATFORM_NEEDTIMESPEC@ +#ifdef ISC_PLATFORM_NEEDTIMESPEC +#include /* For time_t */ +struct timespec { + time_t tv_sec; /* seconds */ + long tv_nsec; /* nanoseconds */ +}; +#endif + +#endif diff --git a/lib/bind/include/netdb.h b/lib/bind/include/netdb.h index 66dd13d21e78..b74c6462b622 100644 --- a/lib/bind/include/netdb.h +++ b/lib/bind/include/netdb.h @@ -86,7 +86,7 @@ /* * @(#)netdb.h 8.1 (Berkeley) 6/2/93 - * $Id: netdb.h,v 1.15.18.6 2006/10/02 01:23:09 marka Exp $ + * $Id: netdb.h,v 1.15.18.7 2008/02/28 05:49:37 marka Exp $ */ #ifndef _NETDB_H_ @@ -481,7 +481,7 @@ int endservent_r __P((struct servent_data *)); void endservent_r __P((struct servent_data *)); #endif #ifdef _AIX -int setnetgrent_r __P((const char *, void **)); +int setnetgrent_r __P((char *, void **)); void endnetgrent_r __P((void **)); /* * Note: AIX's netdb.h declares innetgr_r() as: diff --git a/lib/bind/include/resolv.h b/lib/bind/include/resolv.h index 66d84fc713b0..eebc62e05eb7 100644 --- a/lib/bind/include/resolv.h +++ b/lib/bind/include/resolv.h @@ -50,7 +50,7 @@ /*% * @(#)resolv.h 8.1 (Berkeley) 6/2/93 - * $Id: resolv.h,v 1.19.18.3 2005/08/25 04:43:51 marka Exp $ + * $Id: resolv.h,v 1.19.18.4 2008/04/03 23:15:15 marka Exp $ */ #ifndef _RESOLV_H_ @@ -250,6 +250,7 @@ union res_sockaddr_union { #define RES_NOCHECKNAME 0x00008000 /*%< do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /*%< do not strip TSIG records */ #define RES_BLAST 0x00020000 /*%< blast all recursive servers */ +#define RES_NSID 0x00040000 /*%< request name server ID */ #define RES_NOTLDQUERY 0x00100000 /*%< don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /*%< use DNSSEC using OK bit in OPT */ /* #define RES_DEBUG2 0x00400000 */ /* nslookup internal */ @@ -396,6 +397,7 @@ extern const struct res_sym __p_rcode_syms[]; #define sym_ntos __sym_ntos #define sym_ston __sym_ston #define res_nopt __res_nopt +#define res_nopt_rdata __res_nopt_rdata #define res_ndestroy __res_ndestroy #define res_nametoclass __res_nametoclass #define res_nametotype __res_nametotype @@ -482,6 +484,8 @@ int res_findzonecut2 __P((res_state, const char *, ns_class, int, union res_sockaddr_union *, int)); void res_nclose __P((res_state)); int res_nopt __P((res_state, int, u_char *, int, int)); +int res_nopt_rdata __P((res_state, int, u_char *, int, u_char *, + u_short, u_short, u_char *)); void res_send_setqhook __P((res_send_qhook)); void res_send_setrhook __P((res_send_rhook)); int __res_vinit __P((res_state, int)); diff --git a/lib/bind/inet/Makefile.in b/lib/bind/inet/Makefile.in index 7eb297c13d15..7b848966841b 100644 --- a/lib/bind/inet/Makefile.in +++ b/lib/bind/inet/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.5 2004/03/05 05:05:13 marka Exp $ +# $Id: Makefile.in,v 1.5.18.2 2008/03/20 23:46:01 tbox Exp $ srcdir= @srcdir@ VPATH = @srcdir@ @@ -30,6 +30,6 @@ SRCS= inet_addr.c inet_cidr_ntop.c inet_cidr_pton.c inet_data.c \ TARGETS= ${OBJS} -CINCLUDES= -I.. -I${srcdir}/../include +CINCLUDES= -I.. -I../include -I${srcdir}/../include @BIND9_MAKE_RULES@ diff --git a/lib/bind/inet/inet_net_pton.c b/lib/bind/inet/inet_net_pton.c index d3de33bf10a4..71a871510393 100644 --- a/lib/bind/inet/inet_net_pton.c +++ b/lib/bind/inet/inet_net_pton.c @@ -16,7 +16,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_net_pton.c,v 1.7.18.1 2005/04/27 05:00:53 sra Exp $"; +static const char rcsid[] = "$Id: inet_net_pton.c,v 1.7.18.2 2008/08/26 04:42:43 marka Exp $"; #endif #include "port_before.h" @@ -133,11 +133,11 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) { INSIST(n >= 0 && n <= 9); bits *= 10; bits += n; + if (bits > 32) + goto enoent; } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch)); if (ch != '\0') goto enoent; - if (bits > 32) - goto emsgsize; } /* Firey death and destruction unless we prefetched EOS. */ diff --git a/lib/bind/inet/inet_network.c b/lib/bind/inet/inet_network.c index 4758a00f2651..47976cff68d8 100644 --- a/lib/bind/inet/inet_network.c +++ b/lib/bind/inet/inet_network.c @@ -84,9 +84,9 @@ inet_network(cp) } if (!digit) return (INADDR_NONE); + if (pp >= parts + 4 || val > 0xffU) + return (INADDR_NONE); if (*cp == '.') { - if (pp >= parts + 4 || val > 0xffU) - return (INADDR_NONE); *pp++ = val, cp++; goto again; } diff --git a/lib/bind/irs/Makefile.in b/lib/bind/irs/Makefile.in index ce6f5f2e4b50..e4f38f7e09aa 100644 --- a/lib/bind/irs/Makefile.in +++ b/lib/bind/irs/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.8.18.2 2004/12/07 00:53:48 marka Exp $ +# $Id: Makefile.in,v 1.8.18.4 2008/03/20 23:46:01 tbox Exp $ srcdir= @srcdir@ VPATH = @srcdir@ @@ -65,6 +65,6 @@ WANT_IRS_THREADSGR_OBJS=getgrent_r.@O@ TARGETS= ${OBJS} -CINCLUDES= -I.. -I${srcdir}/../include +CINCLUDES= -I.. -I../include -I${srcdir}/../include @BIND9_MAKE_RULES@ diff --git a/lib/bind/irs/dns_ho.c b/lib/bind/irs/dns_ho.c index d1d6f5a9ff9a..db7ff02c9c55 100644 --- a/lib/bind/irs/dns_ho.c +++ b/lib/bind/irs/dns_ho.c @@ -52,7 +52,7 @@ /* BIND Id: gethnamaddr.c,v 8.15 1996/05/22 04:56:30 vixie Exp $ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns_ho.c,v 1.14.18.7 2006/12/07 03:54:24 marka Exp $"; +static const char rcsid[] = "$Id: dns_ho.c,v 1.14.18.8 2008/09/24 05:59:50 marka Exp $"; #endif /* LIBC_SCCS and not lint */ /* Imports. */ @@ -958,7 +958,7 @@ gethostans(struct irs_ho *this, } if (m == 0) continue; - if (hap < &pvt->h_addr_ptrs[MAXADDRS-1]) + if (hap < &pvt->h_addr_ptrs[MAXADDRS]) hap++; *hap = NULL; bp += m; @@ -980,9 +980,10 @@ gethostans(struct irs_ho *this, *ap = NULL; *hap = NULL; - if (pvt->res->nsort && haveanswer > 1 && qtype == T_A) + if (pvt->res->nsort && hap != pvt->h_addr_ptrs && + qtype == T_A) addrsort(pvt->res, pvt->h_addr_ptrs, - haveanswer); + hap - pvt->h_addr_ptrs); if (pvt->host.h_name == NULL) { n = strlen(qname) + 1; /*%< for the \\0 */ if (n > (ep - bp) || n >= MAXHOSTNAMELEN) @@ -1049,7 +1050,7 @@ add_hostent(struct pvt *pvt, char *bp, char **hap, struct addrinfo *ai) /* Avoid overflows. */ if (bp + addrlen > &pvt->hostbuf[sizeof(pvt->hostbuf) - 1]) return(-1); - if (hap >= &pvt->h_addr_ptrs[MAXADDRS-1]) + if (hap >= &pvt->h_addr_ptrs[MAXADDRS]) return(0); /*%< fail, but not treat it as an error. */ /* Suppress duplicates. */ for (tap = (const char **)pvt->h_addr_ptrs; diff --git a/lib/bind/irs/getnetgrent.c b/lib/bind/irs/getnetgrent.c index a11fa0840467..1e6ff9bab538 100644 --- a/lib/bind/irs/getnetgrent.c +++ b/lib/bind/irs/getnetgrent.c @@ -16,7 +16,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getnetgrent.c,v 1.3.18.1 2005/04/27 05:00:58 sra Exp $"; +static const char rcsid[] = "$Id: getnetgrent.c,v 1.3.18.2 2008/02/27 00:08:30 marka Exp $"; #endif /* LIBC_SCCS and not lint */ /* Imports */ @@ -76,7 +76,9 @@ innetgr(INNETGR_ARGS) { } int -getnetgrent(char **host, char **user, char **domain) { +getnetgrent(NGR_R_CONST char **host, NGR_R_CONST char **user, + NGR_R_CONST char **domain) +{ struct net_data *net_data = init(); const char *ch, *cu, *cd; int ret; diff --git a/lib/bind/irs/getnetgrent_r.c b/lib/bind/irs/getnetgrent_r.c index 261d9b785aca..3ff554288def 100644 --- a/lib/bind/irs/getnetgrent_r.c +++ b/lib/bind/irs/getnetgrent_r.c @@ -16,7 +16,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getnetgrent_r.c,v 1.7.18.4 2005/09/03 12:45:15 marka Exp $"; +static const char rcsid[] = "$Id: getnetgrent_r.c,v 1.7.18.6 2008/02/28 05:49:37 marka Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -33,10 +33,13 @@ static const char rcsid[] = "$Id: getnetgrent_r.c,v 1.7.18.4 2005/09/03 12:45:15 #include #ifdef NGR_R_RETURN +#ifndef NGR_R_PRIVATE +#define NGR_R_PRIVATE 0 +#endif static NGR_R_RETURN -copy_protoent(char **, char **, char **, const char *, const char *, - const char *, NGR_R_COPY_ARGS); +copy_protoent(NGR_R_CONST char **, NGR_R_CONST char **, NGR_R_CONST char **, + const char *, const char *, const char *, NGR_R_COPY_ARGS); NGR_R_RETURN innetgr_r(const char *netgroup, const char *host, const char *user, @@ -58,8 +61,10 @@ innetgr_r(const char *netgroup, const char *host, const char *user, */ NGR_R_RETURN -getnetgrent_r(char **machinep, char **userp, char **domainp, NGR_R_ARGS) { - char *mp, *up, *dp; +getnetgrent_r(NGR_R_CONST char **machinep, NGR_R_CONST char **userp, + NGR_R_CONST char **domainp, NGR_R_ARGS) +{ + NGR_R_CONST char *mp, *up, *dp; int res = getnetgrent(&mp, &up, &dp); if (res != 1) @@ -69,15 +74,24 @@ getnetgrent_r(char **machinep, char **userp, char **domainp, NGR_R_ARGS) { mp, up, dp, NGR_R_COPY)); } +#if NGR_R_PRIVATE == 2 +struct private { + char *buf; +}; + +#endif NGR_R_SET_RETURN -#ifdef NGR_R_ENT_ARGS -setnetgrent_r(const char *netgroup, NGR_R_ENT_ARGS) +#ifdef NGR_R_SET_ARGS +setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS) #else -setnetgrent_r(const char *netgroup) +setnetgrent_r(NGR_R_SET_CONST char *netgroup) #endif { +#if NGR_R_PRIVATE == 2 + struct private *p; +#endif char *tmp; -#if defined(NGR_R_ENT_ARGS) && !defined(NGR_R_PRIVATE) +#if defined(NGR_R_SET_ARGS) && NGR_R_PRIVATE == 0 UNUSED(buf); UNUSED(buflen); #endif @@ -85,8 +99,17 @@ setnetgrent_r(const char *netgroup) DE_CONST(netgroup, tmp); setnetgrent(tmp); -#ifdef NGR_R_PRIVATE +#if NGR_R_PRIVATE == 1 *buf = NULL; +#elif NGR_R_PRIVATE == 2 + *buf = p = malloc(sizeof(struct private)); + if (p == NULL) +#ifdef NGR_R_SET_RESULT + return (NGR_R_BAD); +#else + return; +#endif + p->buf = NULL; #endif #ifdef NGR_R_SET_RESULT return (NGR_R_SET_RESULT); @@ -94,22 +117,29 @@ setnetgrent_r(const char *netgroup) } NGR_R_END_RETURN -#ifdef NGR_R_ENT_ARGS -endnetgrent_r(NGR_R_ENT_ARGS) +#ifdef NGR_R_END_ARGS +endnetgrent_r(NGR_R_END_ARGS) #else endnetgrent_r(void) #endif { -#if defined(NGR_R_ENT_ARGS) && !defined(NGR_R_PRIVATE) +#if NGR_R_PRIVATE == 2 + struct private *p = buf; +#endif +#if defined(NGR_R_SET_ARGS) && NGR_R_PRIVATE == 0 UNUSED(buf); UNUSED(buflen); #endif endnetgrent(); -#ifdef NGR_R_PRIVATE +#if NGR_R_PRIVATE == 1 if (*buf != NULL) free(*buf); *buf = NULL; +#elif NGR_R_PRIVATE == 2 + if (p->buf != NULL) + free(p->buf); + free(p); #endif NGR_R_END_RESULT(NGR_R_OK); } @@ -117,9 +147,13 @@ endnetgrent_r(void) /* Private */ static int -copy_protoent(char **machinep, char **userp, char **domainp, - const char *mp, const char *up, const char *dp, - NGR_R_COPY_ARGS) { +copy_protoent(NGR_R_CONST char **machinep, NGR_R_CONST char **userp, + NGR_R_CONST char **domainp, const char *mp, const char *up, + const char *dp, NGR_R_COPY_ARGS) +{ +#if NGR_R_PRIVATE == 2 + struct private *p = buf; +#endif char *cp; int n; int len; @@ -130,12 +164,20 @@ copy_protoent(char **machinep, char **userp, char **domainp, if (up != NULL) len += strlen(up) + 1; if (dp != NULL) len += strlen(dp) + 1; -#ifdef NGR_R_PRIVATE - free(*buf); +#if NGR_R_PRIVATE == 1 + if (*buf != NULL) + free(*buf); *buf = malloc(len); if (*buf == NULL) return(NGR_R_BAD); cp = *buf; +#elif NGR_R_PRIVATE == 2 + if (p->buf) + free(p->buf); + p->buf = malloc(len); + if (p->buf == NULL) + return(NGR_R_BAD); + cp = p->buf; #else if (len > (int)buflen) { errno = ERANGE; @@ -144,7 +186,6 @@ copy_protoent(char **machinep, char **userp, char **domainp, cp = buf; #endif - if (mp != NULL) { n = strlen(mp) + 1; strcpy(cp, mp); diff --git a/lib/bind/irs/irp.c b/lib/bind/irs/irp.c index 85a053d7e6f8..aae4e7bb627b 100644 --- a/lib/bind/irs/irp.c +++ b/lib/bind/irs/irp.c @@ -16,7 +16,7 @@ */ #if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: irp.c,v 1.6.18.3 2006/03/10 00:20:08 marka Exp $"; +static const char rcsid[] = "$Id: irp.c,v 1.6.18.5 2008/02/28 05:49:37 marka Exp $"; #endif /* Imports */ @@ -528,7 +528,8 @@ irs_irp_send_command(struct irp_p *pvt, const char *fmt, ...) { } va_start(ap, fmt); - todo = vsprintf(buffer, fmt, ap); + (void) vsprintf(buffer, fmt, ap); + todo = strlen(buffer); va_end(ap); if (todo > (int)sizeof(buffer) - 3) { syslog(LOG_CRIT, "memory overrun in irs_irp_send_command()"); diff --git a/lib/bind/isc/Makefile.in b/lib/bind/isc/Makefile.in index 3cbb640f99ff..70b0548eccae 100644 --- a/lib/bind/isc/Makefile.in +++ b/lib/bind/isc/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.7 2004/03/05 05:05:38 marka Exp $ +# $Id: Makefile.in,v 1.7.18.2 2008/03/20 23:46:01 tbox Exp $ srcdir= @srcdir@ VPATH = @srcdir@ @@ -30,6 +30,6 @@ SRCS= assertions.c base64.c bitncmp.c ctl_clnt.c ctl_p.c \ TARGETS= ${OBJS} -CINCLUDES= -I.. -I${srcdir}/../include +CINCLUDES= -I.. -I../include -I${srcdir}/../include @BIND9_MAKE_RULES@ diff --git a/lib/bind/isc/assertions.c b/lib/bind/isc/assertions.c index c03464d2b332..e4bd42ab6ed2 100644 --- a/lib/bind/isc/assertions.c +++ b/lib/bind/isc/assertions.c @@ -16,7 +16,7 @@ */ #if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: assertions.c,v 1.2.18.1 2005/04/27 05:01:05 sra Exp $"; +static const char rcsid[] = "$Id: assertions.c,v 1.2.18.2 2008/10/15 03:57:21 marka Exp $"; #endif #include "port_before.h" @@ -78,6 +78,7 @@ assertion_type_to_text(assertion_type type) { * Private. */ +/* coverity[+kill] */ static void default_assertion_failed(const char *file, int line, assertion_type type, const char *cond, int print_errno) diff --git a/lib/bind/isc/bitncmp.c b/lib/bind/isc/bitncmp.c index 8764db19cd9d..9bbbd24ab263 100644 --- a/lib/bind/isc/bitncmp.c +++ b/lib/bind/isc/bitncmp.c @@ -16,7 +16,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: bitncmp.c,v 1.2.18.1 2005/04/27 05:01:05 sra Exp $"; +static const char rcsid[] = "$Id: bitncmp.c,v 1.2.18.2 2008/05/12 00:21:22 marka Exp $"; #endif #include "port_before.h" @@ -48,7 +48,7 @@ bitncmp(const void *l, const void *r, int n) { b = n / 8; x = memcmp(l, r, b); - if (x) + if (x || (n % 8) == 0) return (x); lb = ((const u_char *)l)[b]; diff --git a/lib/bind/isc/ctl_clnt.c b/lib/bind/isc/ctl_clnt.c index eca8e7fc05a6..7627200b56b0 100644 --- a/lib/bind/isc/ctl_clnt.c +++ b/lib/bind/isc/ctl_clnt.c @@ -1,5 +1,5 @@ #if !defined(lint) && !defined(SABER) -static const char rcsid[] = "$Id: ctl_clnt.c,v 1.7.18.2 2007/05/18 06:24:39 marka Exp $"; +static const char rcsid[] = "$Id: ctl_clnt.c,v 1.7.18.3 2008/02/18 04:04:06 marka Exp $"; #endif /* not lint */ /* @@ -38,6 +38,9 @@ static const char rcsid[] = "$Id: ctl_clnt.c,v 1.7.18.2 2007/05/18 06:24:39 mark #include #include #include +#ifdef HAVE_MEMORY_H +#include +#endif #include #include diff --git a/lib/bind/isc/ctl_srvr.c b/lib/bind/isc/ctl_srvr.c index 52137c077d36..1ab3f8aa243f 100644 --- a/lib/bind/isc/ctl_srvr.c +++ b/lib/bind/isc/ctl_srvr.c @@ -1,5 +1,5 @@ #if !defined(lint) && !defined(SABER) -static const char rcsid[] = "$Id: ctl_srvr.c,v 1.6.18.2 2006/12/07 04:53:02 marka Exp $"; +static const char rcsid[] = "$Id: ctl_srvr.c,v 1.6.18.3 2008/02/18 04:04:06 marka Exp $"; #endif /* not lint */ /* @@ -40,6 +40,9 @@ static const char rcsid[] = "$Id: ctl_srvr.c,v 1.6.18.2 2006/12/07 04:53:02 mark #include #include #include +#ifdef HAVE_MEMORY_H +#include +#endif #include #include diff --git a/lib/bind/isc/logging.c b/lib/bind/isc/logging.c index ca7049c74eb6..0cabc4d27220 100644 --- a/lib/bind/isc/logging.c +++ b/lib/bind/isc/logging.c @@ -16,7 +16,7 @@ */ #if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: logging.c,v 1.6.18.1 2005/04/27 05:01:07 sra Exp $"; +static const char rcsid[] = "$Id: logging.c,v 1.6.18.2 2008/02/28 05:49:37 marka Exp $"; #endif /* not lint */ #include "port_before.h" @@ -43,12 +43,6 @@ static const char rcsid[] = "$Id: logging.c,v 1.6.18.1 2005/04/27 05:01:07 sra E #include "port_after.h" -#ifdef VSPRINTF_CHAR -# define VSPRINTF(x) strlen(vsprintf/**/x) -#else -# define VSPRINTF(x) ((size_t)vsprintf x) -#endif - #include "logging_p.h" static const int syslog_priority[] = { LOG_DEBUG, LOG_INFO, LOG_NOTICE, @@ -363,8 +357,8 @@ log_vwrite(log_context lc, int category, int level, const char *format, continue; if (!did_vsprintf) { - if (VSPRINTF((lc->buffer, format, args)) > - (size_t)LOG_BUFFER_SIZE) { + (void)vsprintf(lc->buffer, format, args); + if (strlen(lc->buffer) > (size_t)LOG_BUFFER_SIZE) { syslog(LOG_CRIT, "memory overrun in log_vwrite()"); exit(1); diff --git a/lib/bind/nameser/Makefile.in b/lib/bind/nameser/Makefile.in index d033eee1ea08..fcb7ed725c0e 100644 --- a/lib/bind/nameser/Makefile.in +++ b/lib/bind/nameser/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.5 2004/03/16 05:22:19 marka Exp $ +# $Id: Makefile.in,v 1.5.18.2 2008/03/20 23:46:01 tbox Exp $ srcdir= @srcdir@ VPATH = @srcdir@ @@ -26,6 +26,6 @@ SRCS= ns_date.c ns_name.c ns_netint.c ns_parse.c ns_print.c \ TARGETS= ${OBJS} -CINCLUDES= -I.. -I${srcdir}/../include +CINCLUDES= -I.. -I../include -I${srcdir}/../include @BIND9_MAKE_RULES@ diff --git a/lib/bind/port_after.h.in b/lib/bind/port_after.h.in index f248d23f5614..daddae6cdf46 100644 --- a/lib/bind/port_after.h.in +++ b/lib/bind/port_after.h.in @@ -16,12 +16,20 @@ #include #endif /* HAVE_SYS_SELECT_H */ +#ifdef REENABLE_SEND +#undef send +#endif + @NEED_PSELECT@ @HAVE_SA_LEN@ @HAVE_MINIMUM_IFREQ@ @NEED_DAEMON@ @NEED_STRSEP@ @NEED_STRERROR@ +#ifdef NEED_STRERROR +const char *isc_strerror(int); +#define strerror isc_strerror +#endif @HAS_INET6_STRUCTS@ @HAVE_SIN6_SCOPE_ID@ @NEED_IN6ADDR_ANY@ @@ -30,12 +38,18 @@ @NEED_GETTIMEOFDAY@ @HAVE_STRNDUP@ @USE_FIONBIO_IOCTL@ -@USE_SYSERROR_LIST@ @INNETGR_ARGS@ @SETNETGRENT_ARGS@ @USE_IFNAMELINKID@ @PORT_NONBLOCK@ +#ifndef _POSIX_PATH_MAX +#define _POSIX_PATH_MAX 255 +#endif +#ifndef PATH_MAX +#define PATH_MAX _POSIX_PATH_MAX +#endif + /* * We need to know the IPv6 address family number even on IPv4-only systems. * Note that this is NOT a protocol constant, and that if the system has its @@ -309,16 +323,16 @@ innetgr_r(const char *, const char *, const char *, const char *); #endif #ifdef NEED_SETNETGRENT_R -#ifdef NGR_R_ENT_ARGS -NGR_R_SET_RETURN setnetgrent_r(const char *netgroup, NGR_R_ENT_ARGS); +#ifdef NGR_R_SET_ARGS +NGR_R_SET_RETURN setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS); #else -NGR_R_SET_RETURN setnetgrent_r(const char *netgroup); +NGR_R_SET_RETURN setnetgrent_r(NGR_R_SET_CONST char *netgroup); #endif #endif #ifdef NEED_ENDNETGRENT_R -#ifdef NGR_R_ENT_ARGS -NGR_R_END_RETURN endnetgrent_r(NGR_R_ENT_ARGS); +#ifdef NGR_R_END_ARGS +NGR_R_END_RETURN endnetgrent_r(NGR_R_END_ARGS); #else NGR_R_END_RETURN endnetgrent_r(void); #endif @@ -384,10 +398,12 @@ int isc__gettimeofday(struct timeval *tvp, struct _TIMEZONE *tzp); int isc__gettimeofday(struct timeval *tp, struct timezone *tzp); #endif -int getnetgrent(char **machinep, char **userp, char **domainp); +int getnetgrent(NGR_R_CONST char **machinep, NGR_R_CONST char **userp, + NGR_R_CONST char **domainp); #ifdef NGR_R_ARGS -int getnetgrent_r(char **machinep, char **userp, char **domainp, NGR_R_ARGS); +int getnetgrent_r(NGR_R_CONST char **machinep, NGR_R_CONST char **userp, + NGR_R_CONST char **domainp, NGR_R_ARGS); #endif #ifdef SETNETGRENT_ARGS @@ -405,11 +421,87 @@ int innetgr(const char *netgroup, const char *machine, const char *user, const char *domain); #endif -#ifdef NGR_R_ENT_ARGS +#ifdef NGR_R_SET_ARGS NGR_R_SET_RETURN -setnetgrent_r(const char *netgroup, NGR_R_ENT_ARGS); +setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS); #else NGR_R_SET_RETURN -setnetgrent_r(const char *netgroup); +setnetgrent_r(NGR_R_SET_CONST char *netgroup); #endif + +#ifdef NEED_STRTOUL +unsigned long strtoul(const char *, char **, int); +#endif + +#ifdef NEED_SUN4PROTOS +#include +#ifndef __SIZE_TYPE__ +#define __SIZE_TYPE__ int +#endif +struct sockaddr; +struct iovec; +struct timeval; +struct timezone; +int fprintf(FILE *, const char *, ...); +int getsockname(int, struct sockaddr *, int *); +int getpeername(int, struct sockaddr *, int *); +int socket(int, int, int); +int connect(int, const struct sockaddr *, int); +int writev(int, struct iovec *, int); +int readv(int, struct iovec *, int); +int send(int, const char *, int, int); +void bzero(char *, int); +int recvfrom(int, char *, int, int, struct sockaddr *, int *); +int syslog(int, const char *, ... ); +int printf(const char *, ...); +__SIZE_TYPE__ fread(void *, __SIZE_TYPE__, __SIZE_TYPE__, FILE *); +__SIZE_TYPE__ fwrite(const void *, __SIZE_TYPE__, __SIZE_TYPE__, FILE *); +int fclose(FILE *); +int ungetc(int, FILE *); +int scanf(const char *, ...); +int sscanf(const char *, const char *, ... ); +int tolower(int); +int toupper(int); +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, int); +int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); +#ifdef gettimeofday +#undef gettimeofday +int gettimeofday(struct timeval *, struct timezone *); +#define gettimeofday isc__gettimeofday +#else +int gettimeofday(struct timeval *, struct timezone *); +#endif +long strtol(const char*, char **, int); +int fseek(FILE *, long, int); +int setsockopt(int, int, int, const char *, int); +int bind(int, const struct sockaddr *, int); +void bcopy(char *, char *, int); +int fputc(char, FILE *); +int listen(int, int); +int accept(int, struct sockaddr *, int *); +int getsockopt(int, int, int, char *, int *); +int vfprintf(FILE *, const char *, va_list); +int fflush(FILE *); +int fgetc(FILE *); +int fputs(const char *, FILE *); +int fchown(int, int, int); +void setbuf(FILE *, char *); +int gethostname(char *, int); +int rename(const char *, const char *); +time_t time(time_t *); +int fscanf(FILE *, const char *, ...); +int sscanf(const char *, const char *, ...); +int ioctl(int, int, caddr_t); +void perror(const char *); + +#if !defined(__USE_FIXED_PROTOTYPES__) && !defined(__cplusplus) && !defined(__STRICT_ANSI__) +/* + * 'gcc -ansi' changes the prototype for vsprintf(). + * Use this prototype when 'gcc -ansi' is not in effect. + */ +char *vsprintf(char *, const char *, va_list); +#endif +#endif + #endif diff --git a/lib/bind/port_before.h.in b/lib/bind/port_before.h.in index 1f6ff1a00b9c..eb0c3fc9ba33 100644 --- a/lib/bind/port_before.h.in +++ b/lib/bind/port_before.h.in @@ -2,6 +2,10 @@ #define port_before_h #include +#ifdef NEED_SUN4PROTOS +#define _PARAMS(x) x +#endif + struct group; /* silence warning */ struct passwd; /* silence warning */ struct timeval; /* silence warning */ @@ -81,15 +85,22 @@ struct timespec { @NGR_R_BAD@ @NGR_R_COPY@ @NGR_R_COPY_ARGS@ +@NGR_R_CONST@ @NGR_R_END_RESULT@ @NGR_R_END_RETURN@ -@NGR_R_ENT_ARGS@ +@NGR_R_END_ARGS@ @NGR_R_OK@ @NGR_R_RETURN@ +@NGR_R_SET_CONST@ @NGR_R_SET_RESULT@ @NGR_R_SET_RETURN@ +@NGR_R_SET_ARGS@ @NGR_R_PRIVATE@ +#if !defined(NGR_R_SET_ARGS) && defined(NGR_R_END_ARGS) +#define NGR_R_SET_ARGS NGR_R_END_ARGS +#endif + @PROTO_R_ARGS@ @PROTO_R_BAD@ @PROTO_R_COPY@ diff --git a/lib/bind/resolv/Makefile.in b/lib/bind/resolv/Makefile.in index cc661b62a7e9..557f02023b08 100644 --- a/lib/bind/resolv/Makefile.in +++ b/lib/bind/resolv/Makefile.in @@ -1,7 +1,7 @@ -# Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # -# Permission to use, copy, modify, and distribute this software for any +# Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.4.18.2 2005/07/29 00:12:55 marka Exp $ +# $Id: Makefile.in,v 1.4.18.4 2008/03/20 23:46:01 tbox Exp $ srcdir= @srcdir@ VPATH = @srcdir@ @@ -28,7 +28,7 @@ SRCS= herror.c mtctxres.c res_comp.c res_data.c res_debug.c \ TARGETS= ${OBJS} -CINCLUDES= -I.. -I${srcdir}/../include +CINCLUDES= -I.. -I../include -I${srcdir}/../include CWARNINGS= @BIND9_MAKE_RULES@ diff --git a/lib/bind/resolv/res_debug.c b/lib/bind/resolv/res_debug.c index 2ed234e159ed..71dc676a5397 100644 --- a/lib/bind/resolv/res_debug.c +++ b/lib/bind/resolv/res_debug.c @@ -95,7 +95,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)res_debug.c 8.1 (Berkeley) 6/4/93"; -static const char rcsid[] = "$Id: res_debug.c,v 1.10.18.5 2005/07/28 07:38:11 marka Exp $"; +static const char rcsid[] = "$Id: res_debug.c,v 1.10.18.6 2008/04/03 23:15:15 marka Exp $"; #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -189,10 +189,56 @@ do_section(const res_state statp, p_type(ns_rr_type(rr)), p_class(ns_rr_class(rr))); else if (section == ns_s_ar && ns_rr_type(rr) == ns_t_opt) { + u_int16_t optcode, optlen, rdatalen = ns_rr_rdlen(rr); u_int32_t ttl = ns_rr_ttl(rr); + fprintf(file, "; EDNS: version: %u, udp=%u, flags=%04x\n", (ttl>>16)&0xff, ns_rr_class(rr), ttl&0xffff); + + while (rdatalen >= 4) { + const u_char *cp = ns_rr_rdata(rr); + int i; + + GETSHORT(optcode, cp); + GETSHORT(optlen, cp); + + if (optcode == NS_OPT_NSID) { + fputs("; NSID: ", file); + if (optlen == 0) { + fputs("; NSID\n", file); + } else { + fputs("; NSID: ", file); + for (i = 0; i < optlen; i++) + fprintf(file, "%02x ", + cp[i]); + fputs(" (",file); + for (i = 0; i < optlen; i++) + fprintf(file, "%c", + isprint(cp[i])? + cp[i] : '.'); + fputs(")\n", file); + } + } else { + if (optlen == 0) { + fprintf(file, "; OPT=%u\n", + optcode); + } else { + fprintf(file, "; OPT=%u: ", + optcode); + for (i = 0; i < optlen; i++) + fprintf(file, "%02x ", + cp[i]); + fputs(" (",file); + for (i = 0; i < optlen; i++) + fprintf(file, "%c", + isprint(cp[i]) ? + cp[i] : '.'); + fputs(")\n", file); + } + } + rdatalen -= 4 + optlen; + } } else { n = ns_sprintrr(handle, &rr, NULL, NULL, buf, buflen); @@ -204,7 +250,7 @@ do_section(const res_state statp, buf = malloc(buflen += 1024); if (buf == NULL) { fprintf(file, - ";; memory allocation failure\n"); + ";; memory allocation failure\n"); return; } continue; @@ -381,7 +427,7 @@ const struct res_sym __p_default_section_syms[] = { {ns_s_an, "ANSWER", (char *)0}, {ns_s_ns, "AUTHORITY", (char *)0}, {ns_s_ar, "ADDITIONAL", (char *)0}, - {0, (char *)0, (char *)0} + {0, (char *)0, (char *)0} }; const struct res_sym __p_update_section_syms[] = { @@ -389,7 +435,7 @@ const struct res_sym __p_update_section_syms[] = { {S_PREREQ, "PREREQUISITE", (char *)0}, {S_UPDATE, "UPDATE", (char *)0}, {S_ADDT, "ADDITIONAL", (char *)0}, - {0, (char *)0, (char *)0} + {0, (char *)0, (char *)0} }; const struct res_sym __p_key_syms[] = { @@ -617,6 +663,7 @@ p_option(u_long option) { case RES_USE_INET6: return "inet6"; #ifdef RES_USE_EDNS0 /*%< KAME extension */ case RES_USE_EDNS0: return "edns0"; + case RES_NSID: return "nsid"; #endif #ifdef RES_USE_DNAME case RES_USE_DNAME: return "dname"; diff --git a/lib/bind/resolv/res_mkquery.c b/lib/bind/resolv/res_mkquery.c index 50e4a9e165d7..049f6c54035a 100644 --- a/lib/bind/resolv/res_mkquery.c +++ b/lib/bind/resolv/res_mkquery.c @@ -70,7 +70,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)res_mkquery.c 8.1 (Berkeley) 6/4/93"; -static const char rcsid[] = "$Id: res_mkquery.c,v 1.5.18.1 2005/04/27 05:01:11 sra Exp $"; +static const char rcsid[] = "$Id: res_mkquery.c,v 1.5.18.2 2008/04/03 23:15:15 marka Exp $"; #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -203,9 +203,6 @@ res_nmkquery(res_state statp, #ifdef RES_USE_EDNS0 /* attach OPT pseudo-RR, as documented in RFC2671 (EDNS0). */ -#ifndef T_OPT -#define T_OPT 41 -#endif int res_nopt(res_state statp, @@ -230,13 +227,14 @@ res_nopt(res_state statp, if ((ep - cp) < 1 + RRFIXEDSZ) return (-1); - *cp++ = 0; /*%< "." */ - ns_put16(T_OPT, cp); /*%< TYPE */ + *cp++ = 0; /*%< "." */ + ns_put16(ns_t_opt, cp); /*%< TYPE */ cp += INT16SZ; - ns_put16(anslen & 0xffff, cp); /*%< CLASS = UDP payload size */ + ns_put16(anslen & 0xffff, cp); /*%< CLASS = UDP payload size */ cp += INT16SZ; - *cp++ = NOERROR; /*%< extended RCODE */ - *cp++ = 0; /*%< EDNS version */ + *cp++ = NOERROR; /*%< extended RCODE */ + *cp++ = 0; /*%< EDNS version */ + if (statp->options & RES_USE_DNSSEC) { #ifdef DEBUG if (statp->options & RES_DEBUG) @@ -246,12 +244,60 @@ res_nopt(res_state statp, } ns_put16(flags, cp); cp += INT16SZ; - ns_put16(0, cp); /*%< RDLEN */ + + ns_put16(0U, cp); /*%< RDLEN */ cp += INT16SZ; + hp->arcount = htons(ntohs(hp->arcount) + 1); return (cp - buf); } + +/* + * Construct variable data (RDATA) block for OPT psuedo-RR, append it + * to the buffer, then update the RDLEN field (previously set to zero by + * res_nopt()) with the new RDATA length. + */ +int +res_nopt_rdata(res_state statp, + int n0, /*%< current offset in buffer */ + u_char *buf, /*%< buffer to put query */ + int buflen, /*%< size of buffer */ + u_char *rdata, /*%< ptr to start of opt rdata */ + u_short code, /*%< OPTION-CODE */ + u_short len, /*%< OPTION-LENGTH */ + u_char *data) /*%< OPTION_DATA */ +{ + register u_char *cp, *ep; + +#ifdef DEBUG + if ((statp->options & RES_DEBUG) != 0U) + printf(";; res_nopt_rdata()\n"); +#endif + + cp = buf + n0; + ep = buf + buflen; + + if ((ep - cp) < (4 + len)) + return (-1); + + if (rdata < (buf + 2) || rdata >= ep) + return (-1); + + ns_put16(code, cp); + cp += INT16SZ; + + ns_put16(len, cp); + cp += INT16SZ; + + memcpy(cp, data, len); + cp += len; + + len = cp - rdata; + ns_put16(len, rdata - 2); /* Update RDLEN field */ + + return (cp - buf); +} #endif /*! \file */ diff --git a/lib/bind/resolv/res_query.c b/lib/bind/resolv/res_query.c index c160e939cdf0..8c01cb007ba7 100644 --- a/lib/bind/resolv/res_query.c +++ b/lib/bind/resolv/res_query.c @@ -70,7 +70,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)res_query.c 8.1 (Berkeley) 6/4/93"; -static const char rcsid[] = "$Id: res_query.c,v 1.7.18.1 2005/04/27 05:01:11 sra Exp $"; +static const char rcsid[] = "$Id: res_query.c,v 1.7.18.2 2008/04/03 23:15:15 marka Exp $"; #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -116,8 +116,9 @@ res_nquery(res_state statp, { u_char buf[MAXPACKET]; HEADER *hp = (HEADER *) answer; - int n; u_int oflags; + u_char *rdata; + int n; oflags = statp->_flags; @@ -132,8 +133,14 @@ res_nquery(res_state statp, buf, sizeof(buf)); #ifdef RES_USE_EDNS0 if (n > 0 && (statp->_flags & RES_F_EDNS0ERR) == 0 && - (statp->options & (RES_USE_EDNS0|RES_USE_DNSSEC)) != 0U) + (statp->options & (RES_USE_EDNS0|RES_USE_DNSSEC|RES_NSID))) { n = res_nopt(statp, n, buf, sizeof(buf), anslen); + rdata = &buf[n]; + if (n > 0 && (statp->options & RES_NSID) != 0U) { + n = res_nopt_rdata(statp, n, buf, sizeof(buf), rdata, + NS_OPT_NSID, 0, NULL); + } + } #endif if (n <= 0) { #ifdef DEBUG @@ -143,6 +150,7 @@ res_nquery(res_state statp, RES_SET_H_ERRNO(statp, NO_RECOVERY); return (n); } + n = res_nsend(statp, buf, n, answer, anslen); if (n < 0) { #ifdef RES_USE_EDNS0 diff --git a/lib/bind/resolv/res_send.c b/lib/bind/resolv/res_send.c index 39dc998da797..5154fe2720e2 100644 --- a/lib/bind/resolv/res_send.c +++ b/lib/bind/resolv/res_send.c @@ -70,7 +70,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)res_send.c 8.1 (Berkeley) 6/4/93"; -static const char rcsid[] = "$Id: res_send.c,v 1.9.18.8 2006/10/16 23:00:58 marka Exp $"; +static const char rcsid[] = "$Id: res_send.c,v 1.9.18.10 2008/01/27 02:06:26 marka Exp $"; #endif /* LIBC_SCCS and not lint */ /*! \file @@ -293,7 +293,7 @@ int res_nsend(res_state statp, const u_char *buf, int buflen, u_char *ans, int anssiz) { - int gotsomewhere, terrno, try, v_circuit, resplen, ns, n; + int gotsomewhere, terrno, tries, v_circuit, resplen, ns, n; char abuf[NI_MAXHOST]; #ifdef USE_POLL @@ -405,7 +405,7 @@ res_nsend(res_state statp, /* * Send request, RETRY times, or until successful. */ - for (try = 0; try < statp->retry; try++) { + for (tries = 0; tries < statp->retry; tries++) { for (ns = 0; ns < statp->nscount; ns++) { struct sockaddr *nsap; int nsaplen; @@ -453,7 +453,7 @@ res_nsend(res_state statp, if (v_circuit) { /* Use VC; at most one attempt per server. */ - try = statp->retry; + tries = statp->retry; n = send_vc(statp, buf, buflen, ans, anssiz, &terrno, ns); if (n < 0) @@ -464,7 +464,7 @@ res_nsend(res_state statp, } else { /* Use datagrams. */ n = send_dg(statp, buf, buflen, ans, anssiz, &terrno, - ns, try, &v_circuit, &gotsomewhere); + ns, tries, &v_circuit, &gotsomewhere); if (n < 0) goto fail; if (n == 0) @@ -601,6 +601,9 @@ send_vc(res_state statp, u_short len; u_char *cp; void *tmp; +#ifdef SO_NOSIGPIPE + int on = 1; +#endif nsap = get_nsaddr(statp, ns); nsaplen = get_salen(nsap); @@ -646,6 +649,17 @@ send_vc(res_state statp, return (-1); } } +#ifdef SO_NOSIGPIPE + /* + * Disable generation of SIGPIPE when writing to a closed + * socket. Write should return -1 and set errno to EPIPE + * instead. + * + * Push on even if setsockopt(SO_NOSIGPIPE) fails. + */ + (void)setsockopt(statp->_vcsock, SOL_SOCKET, SO_NOSIGPIPE, &on, + sizeof(on)); +#endif errno = 0; if (connect(statp->_vcsock, nsap, nsaplen) < 0) { *terrno = errno; @@ -773,7 +787,7 @@ send_vc(res_state statp, static int send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, - int anssiz, int *terrno, int ns, int try, int *v_circuit, + int anssiz, int *terrno, int ns, int tries, int *v_circuit, int *gotsomewhere) { const HEADER *hp = (const HEADER *) buf; @@ -855,7 +869,7 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, /* * Wait for reply. */ - seconds = (statp->retrans << try); + seconds = (statp->retrans << tries); if (ns > 0) seconds /= statp->nscount; if (seconds <= 0) diff --git a/lib/bind9/api b/lib/bind9/api index 93632d140408..3a74aee14444 100644 --- a/lib/bind9/api +++ b/lib/bind9/api @@ -1,3 +1,3 @@ LIBINTERFACE = 31 -LIBREVISION = 0 +LIBREVISION = 1 LIBAGE = 1 diff --git a/lib/bind9/check.c b/lib/bind9/check.c index 6cfdc93c6141..2967650ef055 100644 --- a/lib/bind9/check.c +++ b/lib/bind9/check.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: check.c,v 1.44.18.35 2007/09/13 05:04:01 each Exp $ */ +/* $Id: check.c,v 1.44.18.41 2008/03/29 23:46:10 tbox Exp $ */ /*! \file */ @@ -222,13 +222,24 @@ check_dual_stack(const cfg_obj_t *options, isc_log_t *logctx) { } static isc_result_t -check_forward(const cfg_obj_t *options, isc_log_t *logctx) { +check_forward(const cfg_obj_t *options, const cfg_obj_t *global, + isc_log_t *logctx) +{ const cfg_obj_t *forward = NULL; const cfg_obj_t *forwarders = NULL; (void)cfg_map_get(options, "forward", &forward); (void)cfg_map_get(options, "forwarders", &forwarders); + if (forwarders != NULL && global != NULL) { + const char *file = cfg_obj_file(global); + unsigned int line = cfg_obj_line(global); + cfg_obj_log(forwarders, logctx, ISC_LOG_ERROR, + "forwarders declared in root zone and " + "in general configuration: %s:%u", + file, line); + return (ISC_R_FAILURE); + } if (forward != NULL && forwarders == NULL) { cfg_obj_log(forward, logctx, ISC_LOG_ERROR, "no matching 'forwarders' statement"); @@ -391,7 +402,7 @@ check_viewacls(cfg_aclconfctx_t *actx, const cfg_obj_t *voptions, { isc_result_t result = ISC_R_SUCCESS, tresult; int i = 0; - + static const char *acls[] = { "allow-query", "allow-query-cache", "allow-recursion", "blackhole", "match-clients", "match-destinations", "sortlist", NULL }; @@ -400,7 +411,7 @@ check_viewacls(cfg_aclconfctx_t *actx, const cfg_obj_t *voptions, tresult = checkacl(acls[i++], actx, NULL, voptions, config, logctx, mctx); if (tresult != ISC_R_SUCCESS) - result = tresult; + result = tresult; } return (result); } @@ -464,8 +475,8 @@ check_options(const cfg_obj_t *options, isc_log_t *logctx, isc_mem_t *mctx) { (void)cfg_map_get(options, "preferred-glue", &obj); if (obj != NULL) { const char *str; - str = cfg_obj_asstring(obj); - if (strcasecmp(str, "a") != 0 && + str = cfg_obj_asstring(obj); + if (strcasecmp(str, "a") != 0 && strcasecmp(str, "aaaa") != 0 && strcasecmp(str, "none") != 0) cfg_obj_log(obj, logctx, ISC_LOG_ERROR, @@ -494,7 +505,7 @@ check_options(const cfg_obj_t *options, isc_log_t *logctx, isc_mem_t *mctx) { isc_buffer_add(&b, strlen(str)); tresult = dns_name_fromtext(name, &b, dns_rootname, - ISC_FALSE, NULL); + ISC_FALSE, NULL); if (tresult != ISC_R_SUCCESS) { cfg_obj_log(obj, logctx, ISC_LOG_ERROR, "bad domain name '%s'", @@ -504,7 +515,7 @@ check_options(const cfg_obj_t *options, isc_log_t *logctx, isc_mem_t *mctx) { } } } - + /* * Set supported DNSSEC algorithms. */ @@ -552,6 +563,7 @@ check_options(const cfg_obj_t *options, isc_log_t *logctx, isc_mem_t *mctx) { cfg_obj_log(obj, logctx, ISC_LOG_ERROR, "bad domain name '%s'", dlv); result = tresult; + continue; } if (symtab != NULL) { tresult = nameexist(obj, dlv, 1, symtab, @@ -699,7 +711,7 @@ get_masters_def(const cfg_obj_t *cctx, const char *name, const cfg_obj_t **ret) static isc_result_t validate_masters(const cfg_obj_t *obj, const cfg_obj_t *config, - isc_uint32_t *countp, isc_log_t *logctx, isc_mem_t *mctx) + isc_uint32_t *countp, isc_log_t *logctx, isc_mem_t *mctx) { isc_result_t result = ISC_R_SUCCESS; isc_result_t tresult; @@ -721,7 +733,7 @@ validate_masters(const cfg_obj_t *obj, const cfg_obj_t *config, newlist: list = cfg_tuple_get(obj, "addresses"); element = cfg_list_first(list); - resume: + resume: for ( ; element != NULL; element = cfg_list_next(element)) @@ -818,7 +830,7 @@ check_update_policy(const cfg_obj_t *policy, isc_log_t *logctx) { isc_buffer_init(&b, str, strlen(str)); isc_buffer_add(&b, strlen(str)); tresult = dns_name_fromtext(dns_fixedname_name(&fixed), &b, - dns_rootname, ISC_FALSE, NULL); + dns_rootname, ISC_FALSE, NULL); if (tresult != ISC_R_SUCCESS) { cfg_obj_log(identity, logctx, ISC_LOG_ERROR, "'%s' is not a valid name", str); @@ -851,7 +863,7 @@ check_update_policy(const cfg_obj_t *policy, isc_log_t *logctx) { const cfg_obj_t *typeobj; isc_textregion_t r; dns_rdatatype_t type; - + typeobj = cfg_listelt_value(element2); DE_CONST(cfg_obj_asstring(typeobj), r.base); r.length = strlen(r.base); @@ -859,7 +871,7 @@ check_update_policy(const cfg_obj_t *policy, isc_log_t *logctx) { tresult = dns_rdatatype_fromtext(&type, &r); if (tresult != ISC_R_SUCCESS) { cfg_obj_log(typeobj, logctx, ISC_LOG_ERROR, - "'%s' is not a valid type", r.base); + "'%s' is not a valid type", r.base); result = tresult; } } @@ -897,6 +909,7 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, dns_rdataclass_t zclass; dns_fixedname_t fixedname; isc_buffer_t b; + isc_boolean_t root = ISC_FALSE; static optionstable options[] = { { "allow-query", MASTERZONE | SLAVEZONE | STUBZONE | CHECKACL }, @@ -1014,21 +1027,24 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, isc_buffer_init(&b, zname, strlen(zname)); isc_buffer_add(&b, strlen(zname)); tresult = dns_name_fromtext(dns_fixedname_name(&fixedname), &b, - dns_rootname, ISC_TRUE, NULL); - if (result != ISC_R_SUCCESS) { + dns_rootname, ISC_TRUE, NULL); + if (tresult != ISC_R_SUCCESS) { cfg_obj_log(zconfig, logctx, ISC_LOG_ERROR, "zone '%s': is not a valid name", zname); - tresult = ISC_R_FAILURE; + result = ISC_R_FAILURE; } else { char namebuf[DNS_NAME_FORMATSIZE]; dns_name_format(dns_fixedname_name(&fixedname), namebuf, sizeof(namebuf)); tresult = nameexist(zconfig, namebuf, ztype == HINTZONE ? 1 : 2, - symtab, "zone '%s': already exists " - "previous definition: %s:%u", logctx, mctx); + symtab, "zone '%s': already exists " + "previous definition: %s:%u", logctx, mctx); if (tresult != ISC_R_SUCCESS) result = tresult; + if (dns_name_equal(dns_fixedname_name(&fixedname), + dns_rootname)) + root = ISC_TRUE; } /* @@ -1059,7 +1075,7 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, (options[i].allowed & CHECKACL) != 0) { tresult = checkacl(options[i].name, actx, zconfig, - voptions, config, logctx, mctx); + voptions, config, logctx, mctx); if (tresult != ISC_R_SUCCESS) result = tresult; } @@ -1148,7 +1164,18 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, /* * Check that forwarding is reasonable. */ - if (check_forward(zoptions, logctx) != ISC_R_SUCCESS) + obj = NULL; + if (root) { + if (voptions != NULL) + (void)cfg_map_get(voptions, "forwarders", &obj); + if (obj == NULL) { + const cfg_obj_t *options = NULL; + (void)cfg_map_get(config, "options", &options); + if (options != NULL) + (void)cfg_map_get(options, "forwarders", &obj); + } + } + if (check_forward(zoptions, obj, logctx) != ISC_R_SUCCESS) result = ISC_R_FAILURE; /* @@ -1178,7 +1205,7 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, result = tresult; } } - + return (result); } @@ -1207,7 +1234,7 @@ bind9_check_key(const cfg_obj_t *key, isc_log_t *logctx) { { "hmac-sha512", 512 }, { NULL, 0 } }; - + (void)cfg_map_get(key, "algorithm", &algobj); (void)cfg_map_get(key, "secret", &secretobj); if (secretobj == NULL || algobj == NULL) { @@ -1258,7 +1285,7 @@ bind9_check_key(const cfg_obj_t *key, isc_log_t *logctx) { (digestbits < 80U))) cfg_obj_log(algobj, logctx, ISC_LOG_WARNING, "key '%s' digest-bits too small " - "[<%u]", keyname, + "[<%u]", keyname, algorithms[i].size/2); } else { cfg_obj_log(algobj, logctx, ISC_LOG_ERROR, @@ -1389,7 +1416,7 @@ check_servers(const cfg_obj_t *servers, isc_log_t *logctx) { } return (result); } - + static isc_result_t check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions, dns_rdataclass_t vclass, isc_log_t *logctx, isc_mem_t *mctx) @@ -1452,7 +1479,7 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions, isc_symtab_destroy(&symtab); return (tresult); } - + if (voptions != NULL) { keys = NULL; (void)cfg_map_get(voptions, "key", &keys); @@ -1474,10 +1501,11 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions, const cfg_obj_t *options = NULL; (void)cfg_map_get(config, "options", &options); if (options != NULL) - if (check_forward(options, logctx) != ISC_R_SUCCESS) + if (check_forward(options, NULL, + logctx) != ISC_R_SUCCESS) result = ISC_R_FAILURE; } else { - if (check_forward(voptions, logctx) != ISC_R_SUCCESS) + if (check_forward(voptions, NULL, logctx) != ISC_R_SUCCESS) result = ISC_R_FAILURE; } /* @@ -1574,10 +1602,10 @@ bind9_check_logging(const cfg_obj_t *config, isc_log_t *logctx, const char *channelname; const char *catname; const cfg_obj_t *fileobj = NULL; - const cfg_obj_t *syslogobj = NULL; - const cfg_obj_t *nullobj = NULL; - const cfg_obj_t *stderrobj = NULL; - const cfg_obj_t *logobj = NULL; + const cfg_obj_t *syslogobj = NULL; + const cfg_obj_t *nullobj = NULL; + const cfg_obj_t *stderrobj = NULL; + const cfg_obj_t *logobj = NULL; isc_result_t result = ISC_R_SUCCESS; isc_result_t tresult; isc_symtab_t *symtab = NULL; @@ -1638,9 +1666,9 @@ bind9_check_logging(const cfg_obj_t *config, isc_log_t *logctx, cfg_map_get(logobj, "category", &categories); for (element = cfg_list_first(categories); - element != NULL; - element = cfg_list_next(element)) - { + element != NULL; + element = cfg_list_next(element)) + { category = cfg_listelt_value(element); catname = cfg_obj_asstring(cfg_tuple_get(category, "name")); if (isc_log_categorybyname(logctx, catname) == NULL) { @@ -1656,7 +1684,7 @@ bind9_check_logging(const cfg_obj_t *config, isc_log_t *logctx, channel = cfg_listelt_value(delement); channelname = cfg_obj_asstring(channel); tresult = isc_symtab_lookup(symtab, channelname, 1, - &symvalue); + &symvalue); if (tresult != ISC_R_SUCCESS) { cfg_obj_log(channel, logctx, ISC_LOG_ERROR, "undefined channel: '%s'", @@ -1674,12 +1702,12 @@ key_exists(const cfg_obj_t *keylist, const char *keyname) { const cfg_listelt_t *element; const char *str; const cfg_obj_t *obj; - + if (keylist == NULL) return (ISC_R_NOTFOUND); for (element = cfg_list_first(keylist); - element != NULL; - element = cfg_list_next(element)) + element != NULL; + element = cfg_list_next(element)) { obj = cfg_listelt_value(element); str = cfg_obj_asstring(cfg_map_getname(obj)); @@ -1697,7 +1725,7 @@ bind9_check_controlskeys(const cfg_obj_t *control, const cfg_obj_t *keylist, const cfg_obj_t *control_keylist; const cfg_listelt_t *element; const cfg_obj_t *key; - + control_keylist = cfg_tuple_get(control, "keys"); if (cfg_obj_isvoid(control_keylist)) return (ISC_R_SUCCESS); @@ -1849,7 +1877,7 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, if (bind9_check_controls(config, logctx, mctx) != ISC_R_SUCCESS) result = ISC_R_FAILURE; - if (options != NULL && + if (options != NULL && check_order(options, logctx) != ISC_R_SUCCESS) result = ISC_R_FAILURE; @@ -1911,7 +1939,7 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, const char *file; unsigned int line; RUNTIME_CHECK(isc_symtab_lookup(symtab, key, - vclass, &symvalue) == ISC_R_SUCCESS); + vclass, &symvalue) == ISC_R_SUCCESS); file = cfg_obj_file(symvalue.as_cpointer); line = cfg_obj_line(symvalue.as_cpointer); cfg_obj_log(view, logctx, ISC_LOG_ERROR, @@ -1919,7 +1947,7 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, "previous definition: %s:%u", key, file, line); result = tresult; - } else if (result != ISC_R_SUCCESS) { + } else if (tresult != ISC_R_SUCCESS) { result = tresult; } else if ((strcasecmp(key, "_bind") == 0 && vclass == dns_rdataclass_ch) || @@ -1951,8 +1979,8 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, } } - tresult = cfg_map_get(config, "acl", &acls); - if (tresult == ISC_R_SUCCESS) { + tresult = cfg_map_get(config, "acl", &acls); + if (tresult == ISC_R_SUCCESS) { const cfg_listelt_t *elt; const cfg_listelt_t *elt2; const char *aclname; @@ -1971,7 +1999,7 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, cfg_obj_log(acl, logctx, ISC_LOG_ERROR, "attempt to redefine " "builtin acl '%s'", - aclname); + aclname); result = ISC_R_FAILURE; break; } @@ -2001,8 +2029,8 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, } } - tresult = cfg_map_get(config, "kal", &kals); - if (tresult == ISC_R_SUCCESS) { + tresult = cfg_map_get(config, "kal", &kals); + if (tresult == ISC_R_SUCCESS) { const cfg_listelt_t *elt; const cfg_listelt_t *elt2; const char *aclname; diff --git a/lib/dns/acache.c b/lib/dns/acache.c index 5787a5a79fe3..cd56c3c8bbff 100644 --- a/lib/dns/acache.c +++ b/lib/dns/acache.c @@ -1,7 +1,7 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -14,7 +14,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: acache.c,v 1.3.2.16 2006/07/19 00:34:56 marka Exp $ */ +/* $Id: acache.c,v 1.3.2.18 2008/02/07 23:45:56 tbox Exp $ */ #include @@ -137,7 +137,7 @@ struct acache_cleaner { in seconds. */ isc_stdtime_t last_cleanup_time; /* The time when the last - cleanup task completed */ + cleanup task completed */ isc_timer_t *cleaning_timer; isc_event_t *resched_event; /* Sent by cleaner task to @@ -347,11 +347,11 @@ shutdown_buckets(dns_acache_t *acache) { INSIST(ISC_LIST_EMPTY(dbent->originlist) && ISC_LIST_EMPTY(dbent->referlist)); ISC_LIST_UNLINK(acache->dbbucket[i], dbent, link); - + dns_db_detach(&dbent->db); isc_mem_put(acache->mctx, dbent, sizeof(*dbent)); - + acache->dbentries--; } } @@ -513,7 +513,7 @@ clear_entry(dns_acache_t *acache, dns_acacheentry_t *entry) { if (dns_name_dynamic(entry->foundname)) dns_name_free(entry->foundname, acache->mctx); isc_mem_put(acache->mctx, entry->foundname, - sizeof(*entry->foundname)); + sizeof(*entry->foundname)); entry->foundname = NULL; } @@ -558,7 +558,7 @@ acache_cleaner_init(dns_acache_t *acache, isc_timermgr_t *timermgr, if (timermgr != NULL) { cleaner->acache->live_cleaners++; - + result = isc_task_onshutdown(acache->task, acache_cleaner_shutdown_action, acache); @@ -677,7 +677,7 @@ end_cleaning(acache_cleaner_t *cleaner, isc_event_t *event) { */ if (isc_refcount_current(&cleaner->current_entry->references) == 1) { INSIST(cleaner->current_entry->callback == NULL); - + if (ISC_LINK_LINKED(cleaner->current_entry, link)) { ISC_LIST_UNLINK(acache->entries, cleaner->current_entry, link); @@ -701,7 +701,7 @@ end_cleaning(acache_cleaner_t *cleaner, isc_event_t *event) { acache->stats.queries, acache->stats.adds, acache->stats.deleted, acache->stats.cleaned, acache->stats.cleaner_runs, - acache->stats.overmem, acache->stats.overmem_nocreates, + acache->stats.overmem, acache->stats.overmem_nocreates, acache->stats.nomem); reset_stats(acache); @@ -913,7 +913,7 @@ static void acache_overmem_cleaning_action(isc_task_t *task, isc_event_t *event) { acache_cleaner_t *cleaner = event->ev_arg; isc_boolean_t want_cleaning = ISC_FALSE; - + UNUSED(task); INSIST(event->ev_type == DNS_EVENT_ACACHEOVERMEM); @@ -965,10 +965,14 @@ water(void *arg, int mark) { LOCK(&acache->cleaner.lock); - acache->cleaner.overmem = overmem; + if (acache->cleaner.overmem != overmem) { + acache->cleaner.overmem = overmem; - if (acache->cleaner.overmem_event != NULL) - isc_task_send(acache->task, &acache->cleaner.overmem_event); + if (acache->cleaner.overmem_event != NULL) + isc_task_send(acache->task, + &acache->cleaner.overmem_event); + isc_mem_waterack(acache->mctx, mark); + } UNLOCK(&acache->cleaner.lock); } @@ -1102,7 +1106,7 @@ dns_acache_create(dns_acache_t **acachep, isc_mem_t *mctx, } acache->live_cleaners = 0; - result = acache_cleaner_init(acache, timermgr, &acache->cleaner); + result = acache_cleaner_init(acache, timermgr, &acache->cleaner); if (result != ISC_R_SUCCESS) goto cleanup; @@ -1177,7 +1181,7 @@ dns_acache_detach(dns_acache_t **acachep) { isc_task_shutdown(acache->task); should_free = ISC_FALSE; } - + if (should_free) destroy(acache); } @@ -1366,14 +1370,14 @@ dns_acache_createentry(dns_acache_t *acache, dns_db_t *origdb, REQUIRE(entryp != NULL && *entryp == NULL); REQUIRE(origdb != NULL); - /* - * Should we exceed our memory limit for some reason (for - * example, if the cleaner does not run aggressively enough), + /* + * Should we exceed our memory limit for some reason (for + * example, if the cleaner does not run aggressively enough), * then we will not create additional entries. * * XXXSK: It might be better to lock the acache->cleaner->lock, - * but locking may be an expensive bottleneck. If we misread - * the value, we will occasionally refuse to create a few + * but locking may be an expensive bottleneck. If we misread + * the value, we will occasionally refuse to create a few * cache entries, or create a few that we should not. I do not * expect this to happen often, and it will not have very bad * effects when it does. So no lock for now. @@ -1391,7 +1395,7 @@ dns_acache_createentry(dns_acache_t *acache, dns_db_t *origdb, isc_random_get(&r); newentry->locknum = r % DEFAULT_ACACHE_ENTRY_LOCK_COUNT; - + result = isc_refcount_init(&newentry->references, 1); if (result != ISC_R_SUCCESS) { isc_mem_put(acache->mctx, newentry, sizeof(*newentry)); @@ -1738,7 +1742,7 @@ dns_acache_setcleaninginterval(dns_acache_t *acache, unsigned int t) { isc_timertype_ticker, NULL, &interval, ISC_FALSE); } - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_ACACHE, ISC_LOG_WARNING, "could not set acache cleaning interval: %s", diff --git a/lib/dns/adb.c b/lib/dns/adb.c index c65c474530e7..ae5dec85ec33 100644 --- a/lib/dns/adb.c +++ b/lib/dns/adb.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,9 +15,9 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: adb.c,v 1.215.18.17 2007/09/11 02:23:26 marka Exp $ */ +/* $Id: adb.c,v 1.215.18.24 2008/10/17 03:35:14 marka Exp $ */ -/*! \file +/*! \file * * \note * In finds, if task == NULL, no events will be generated, and no events @@ -71,7 +71,7 @@ #define DNS_ADBFETCH6_MAGIC ISC_MAGIC('a', 'd', 'F', '6') #define DNS_ADBFETCH6_VALID(x) ISC_MAGIC_VALID(x, DNS_ADBFETCH6_MAGIC) -/*! +/*! * The number of buckets needs to be a prime (for good hashing). * * XXXRTH How many buckets do we need? @@ -119,6 +119,7 @@ struct dns_adb { isc_mutex_t lock; isc_mutex_t reflock; /*%< Covers irefcnt, erefcnt */ + isc_mutex_t overmemlock; /*%< Covers overmem */ isc_mem_t *mctx; dns_view_t *view; isc_timermgr_t *timermgr; @@ -494,6 +495,7 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset, isc_boolean_t new_addresses_added; dns_rdatatype_t rdtype; unsigned int findoptions; + dns_adbnamehooklist_t *hookhead; INSIST(DNS_ADBNAME_VALID(adbname)); adb = adbname->adb; @@ -518,10 +520,12 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset, INSIST(rdata.length == 4); memcpy(&ina.s_addr, rdata.data, 4); isc_sockaddr_fromin(&sockaddr, &ina, 0); + hookhead = &adbname->v4; } else { INSIST(rdata.length == 16); memcpy(in6a.s6_addr, rdata.data, 16); isc_sockaddr_fromin6(&sockaddr, &in6a, 0); + hookhead = &adbname->v6; } INSIST(nh == NULL); @@ -550,7 +554,7 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset, link_entry(adb, addr_bucket, entry); } else { - for (anh = ISC_LIST_HEAD(adbname->v4); + for (anh = ISC_LIST_HEAD(*hookhead); anh != NULL; anh = ISC_LIST_NEXT(anh, plink)) if (anh->entry == foundentry) @@ -563,12 +567,8 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset, } new_addresses_added = ISC_TRUE; - if (nh != NULL) { - if (rdtype == dns_rdatatype_a) - ISC_LIST_APPEND(adbname->v4, nh, plink); - else - ISC_LIST_APPEND(adbname->v6, nh, plink); - } + if (nh != NULL) + ISC_LIST_APPEND(*hookhead, nh, plink); nh = NULL; result = dns_rdataset_next(rdataset); } @@ -1738,8 +1738,11 @@ copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_name_t *qname, bucket = entry->lock_bucket; LOCK(&adb->entrylocks[bucket]); - if (entry_is_lame(adb, entry, qname, qtype, now)) + if (!FIND_RETURNLAME(find) + && entry_is_lame(adb, entry, qname, qtype, now)) { + find->options |= DNS_ADBFIND_LAMEPRUNED; goto nextv6; + } addrinfo = new_adbaddrinfo(adb, entry, find->port); if (addrinfo == NULL) { find->partial_result |= DNS_ADBFIND_INET6; @@ -1772,13 +1775,16 @@ shutdown_task(isc_task_t *task, isc_event_t *ev) { adb = ev->ev_arg; INSIST(DNS_ADB_VALID(adb)); + /* + * Wait for lock around check_exit() call to be released. + */ + LOCK(&adb->lock); /* * Kill the timer, and then the ADB itself. Note that this implies * that this task was the one scheduled to get timer events. If * this is not true (and it is unfortunate there is no way to INSIST() * this) badness will occur. */ - LOCK(&adb->lock); isc_timer_detach(&adb->timer); UNLOCK(&adb->lock); isc_event_free(&ev); @@ -1990,6 +1996,7 @@ destroy(dns_adb_t *adb) { DESTROYLOCK(&adb->reflock); DESTROYLOCK(&adb->lock); DESTROYLOCK(&adb->mplock); + DESTROYLOCK(&adb->overmemlock); isc_mem_putanddetach(&adb->mctx, adb, sizeof(dns_adb_t)); } @@ -2060,6 +2067,10 @@ dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_timermgr_t *timermgr, if (result != ISC_R_SUCCESS) goto fail0d; + result = isc_mutex_init(&adb->overmemlock); + if (result != ISC_R_SUCCESS) + goto fail0e; + /* * Initialize the bucket locks for names and elements. * May as well initialize the list heads, too. @@ -2162,6 +2173,8 @@ dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_timermgr_t *timermgr, if (adb->afmp != NULL) isc_mempool_destroy(&adb->afmp); + DESTROYLOCK(&adb->overmemlock); + fail0e: DESTROYLOCK(&adb->reflock); fail0d: DESTROYLOCK(&adb->mplock); @@ -3133,8 +3146,10 @@ fetch_callback(isc_task_t *task, isc_event_t *ev) { address_type = DNS_ADBFIND_INET6; fetch = name->fetch_aaaa; name->fetch_aaaa = NULL; - } - INSIST(address_type != 0); + } else + fetch = NULL; + + INSIST(address_type != 0 && fetch != NULL); dns_resolver_destroyfetch(&fetch->fetch); dev->fetch = NULL; @@ -3582,12 +3597,21 @@ water(void *arg, int mark) { DP(ISC_LOG_DEBUG(1), "adb reached %s water mark", overmem ? "high" : "low"); - adb->overmem = overmem; - if (overmem) { - isc_interval_set(&interval, 0, 1); - (void)isc_timer_reset(adb->timer, isc_timertype_once, NULL, - &interval, ISC_TRUE); + /* + * We can't use adb->lock as there is potential for water + * to be called when adb->lock is held. + */ + LOCK(&adb->overmemlock); + if (adb->overmem != overmem) { + adb->overmem = overmem; + if (overmem) { + isc_interval_set(&interval, 0, 1); + (void)isc_timer_reset(adb->timer, isc_timertype_once, + NULL, &interval, ISC_TRUE); + } + isc_mem_waterack(adb->mctx, mark); } + UNLOCK(&adb->overmemlock); } void diff --git a/lib/dns/api b/lib/dns/api index 7ad55061cc58..7949ab0bbf8a 100644 --- a/lib/dns/api +++ b/lib/dns/api @@ -1,3 +1,3 @@ -LIBINTERFACE = 35 +LIBINTERFACE = 36 LIBREVISION = 1 LIBAGE = 0 diff --git a/lib/dns/cache.c b/lib/dns/cache.c index 011dbf755c4f..c9b4a9588558 100644 --- a/lib/dns/cache.c +++ b/lib/dns/cache.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: cache.c,v 1.57.18.16 2006/08/01 01:06:48 marka Exp $ */ +/* $Id: cache.c,v 1.57.18.18 2008/02/07 23:45:56 tbox Exp $ */ /*! \file */ @@ -42,16 +42,16 @@ #define CACHE_MAGIC ISC_MAGIC('$', '$', '$', '$') #define VALID_CACHE(cache) ISC_MAGIC_VALID(cache, CACHE_MAGIC) -/*! +/*! * Control incremental cleaning. * DNS_CACHE_MINSIZE is how many bytes is the floor for dns_cache_setcachesize(). * See also DNS_CACHE_CLEANERINCREMENT */ #define DNS_CACHE_MINSIZE 2097152 /*%< Bytes. 2097152 = 2 MB */ -/*! +/*! * Control incremental cleaning. * CLEANERINCREMENT is how many nodes are examined in one pass. - * See also DNS_CACHE_MINSIZE + * See also DNS_CACHE_MINSIZE */ #define DNS_CACHE_CLEANERINCREMENT 1000U /*%< Number of nodes. */ @@ -173,7 +173,7 @@ adjust_increment(cache_cleaner_t *cleaner, unsigned int remaining, unsigned int pps = dns_pps; unsigned int interval; unsigned int names; - + /* * Tune for minumum of 100 packets per second (pps). */ @@ -194,7 +194,7 @@ adjust_increment(cache_cleaner_t *cleaner, unsigned int remaining, ISC_LOG_DEBUG(1), "adjust_increment interval=%u " "names=%u usec=%" ISC_PLATFORM_QUADFORMAT "u", interval, names, usecs); - + if (usecs == 0) { /* * If we cleaned all the nodes in unmeasurable time @@ -537,7 +537,7 @@ dns_cache_setcleaninginterval(dns_cache_t *cache, unsigned int t) { isc_timertype_ticker, NULL, &interval, ISC_FALSE); } - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_CACHE, ISC_LOG_WARNING, "could not set cache cleaning interval: %s", @@ -624,7 +624,7 @@ cache_cleaner_init(dns_cache_t *cache, isc_taskmgr_t *taskmgr, result = ISC_R_NOMEMORY; goto cleanup; } - + cleaner->overmem_event = isc_event_allocate(cache->mctx, cleaner, DNS_EVENT_CACHEOVERMEM, @@ -662,7 +662,7 @@ begin_cleaning(cache_cleaner_t *cleaner) { /* * Create an iterator, if it does not already exist, and - * position it at the beginning of the cache. + * position it at the beginning of the cache. */ if (cleaner->iterator == NULL) result = dns_db_createiterator(cleaner->cache->db, ISC_FALSE, @@ -701,7 +701,7 @@ begin_cleaning(cache_cleaner_t *cleaner) { isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_CACHE, ISC_LOG_DEBUG(1), "begin cache cleaning, mem inuse %lu", - (unsigned long)isc_mem_inuse(cleaner->cache->mctx)); + (unsigned long)isc_mem_inuse(cleaner->cache->mctx)); cleaner->state = cleaner_s_busy; isc_task_send(cleaner->task, &cleaner->resched_event); } @@ -761,7 +761,7 @@ static void overmem_cleaning_action(isc_task_t *task, isc_event_t *event) { cache_cleaner_t *cleaner = event->ev_arg; isc_boolean_t want_cleaning = ISC_FALSE; - + UNUSED(task); INSIST(task == cleaner->task); @@ -980,9 +980,12 @@ water(void *arg, int mark) { REQUIRE(VALID_CACHE(cache)); LOCK(&cache->cleaner.lock); - - dns_db_overmem(cache->db, overmem); - cache->cleaner.overmem = overmem; + + if (overmem != cache->cleaner.overmem) { + dns_db_overmem(cache->db, overmem); + cache->cleaner.overmem = overmem; + isc_mem_waterack(cache->mctx, mark); + } if (cache->cleaner.overmem_event != NULL) isc_task_send(cache->cleaner.task, @@ -1106,7 +1109,7 @@ dns_cache_flushname(dns_cache_t *cache, dns_name_t *name) { dns_rdatasetiter_t *iter = NULL; dns_dbnode_t *node = NULL; dns_db_t *db = NULL; - + LOCK(&cache->lock); if (cache->db != NULL) dns_db_attach(cache->db, &db); diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c index 617fde8a2dad..794cdb5e5aac 100644 --- a/lib/dns/dispatch.c +++ b/lib/dns/dispatch.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dispatch.c,v 1.116.18.19.12.5 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: dispatch.c,v 1.116.18.37 2008/09/04 00:24:41 jinmei Exp $ */ /*! \file */ @@ -24,10 +24,12 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -46,13 +48,8 @@ typedef ISC_LIST(dns_dispentry_t) dns_displist_t; -typedef struct dns_qid { - unsigned int magic; - unsigned int qid_nbuckets; /*%< hash table size */ - unsigned int qid_increment; /*%< id increment on collision */ - isc_mutex_t lock; - dns_displist_t *qid_table; /*%< the table itself */ -} dns_qid_t; +typedef struct dispsocket dispsocket_t; +typedef ISC_LIST(dispsocket_t) dispsocketlist_t; /* ARC4 Random generator state */ typedef struct arc4ctx { @@ -60,14 +57,26 @@ typedef struct arc4ctx { isc_uint8_t j; isc_uint8_t s[256]; int count; + isc_entropy_t *entropy; /*%< entropy source for ARC4 */ + isc_mutex_t *lock; } arc4ctx_t; +typedef struct dns_qid { + unsigned int magic; + unsigned int qid_nbuckets; /*%< hash table size */ + unsigned int qid_increment; /*%< id increment on collision */ + isc_mutex_t lock; + dns_displist_t *qid_table; /*%< the table itself */ + dispsocketlist_t *sock_table; /*%< socket table */ +} dns_qid_t; + struct dns_dispatchmgr { /* Unlocked. */ unsigned int magic; isc_mem_t *mctx; dns_acl_t *blackhole; dns_portlist_t *portlist; + isc_entropy_t *entropy; /*%< entropy source */ /* Locked by "lock". */ isc_mutex_t lock; @@ -91,8 +100,27 @@ struct dns_dispatchmgr { isc_mempool_t *rpool; /*%< memory pool for replies */ isc_mempool_t *dpool; /*%< dispatch allocations */ isc_mempool_t *bpool; /*%< memory pool for buffers */ + isc_mempool_t *spool; /*%< memory pool for dispsocs */ - isc_entropy_t *entropy; /*%< entropy source */ + /*% + * Locked by qid->lock if qid exists; otherwise, can be used without + * being locked. + * Memory footprint considerations: this is a simple implementation of + * available ports, i.e., an ordered array of the actual port numbers. + * This will require about 256KB of memory in the worst case (128KB for + * each of IPv4 and IPv6). We could reduce it by representing it as a + * more sophisticated way such as a list (or array) of ranges that are + * searched to identify a specific port. Our decision here is the saved + * memory isn't worth the implementation complexity, considering the + * fact that the whole BIND9 process (which is mainly named) already + * requires a pretty large memory footprint. We may, however, have to + * revisit the decision when we want to use it as a separate module for + * an environment where memory requirement is severer. + */ + in_port_t *v4ports; /*%< available ports for IPv4 */ + unsigned int nv4ports; /*%< # of available ports for IPv4 */ + in_port_t *v6ports; /*%< available ports for IPv4 */ + unsigned int nv6ports; /*%< # of available ports for IPv4 */ }; #define MGR_SHUTTINGDOWN 0x00000001U @@ -111,17 +139,65 @@ struct dns_dispentry { isc_taskaction_t action; void *arg; isc_boolean_t item_out; + dispsocket_t *dispsocket; ISC_LIST(dns_dispatchevent_t) items; ISC_LINK(dns_dispentry_t) link; }; +/*% + * Maximum number of dispatch sockets that can be pooled for reuse. The + * appropriate value may vary, but experiments have shown a busy caching server + * may need more than 1000 sockets concurrently opened. The maximum allowable + * number of dispatch sockets (per manager) will be set to the double of this + * value. + */ +#ifndef DNS_DISPATCH_POOLSOCKS +#define DNS_DISPATCH_POOLSOCKS 2048 +#endif + +/*% + * Quota to control the number of dispatch sockets. If a dispatch has more + * than the quota of sockets, new queries will purge oldest ones, so that + * a massive number of outstanding queries won't prevent subsequent queries + * (especially if the older ones take longer time and result in timeout). + */ +#ifndef DNS_DISPATCH_SOCKSQUOTA +#define DNS_DISPATCH_SOCKSQUOTA 3072 +#endif + +struct dispsocket { + unsigned int magic; + isc_socket_t *socket; + dns_dispatch_t *disp; + isc_sockaddr_t host; + in_port_t localport; + dns_dispentry_t *resp; + isc_task_t *task; + ISC_LINK(dispsocket_t) link; + unsigned int bucket; + ISC_LINK(dispsocket_t) blink; +}; + #define INVALID_BUCKET (0xffffdead) +/*% + * Number of tasks for each dispatch that use separate sockets for different + * transactions. This must be a power of 2 as it will divide 32 bit numbers + * to get an uniformly random tasks selection. See get_dispsocket(). + */ +#define MAX_INTERNAL_TASKS 64 + struct dns_dispatch { /* Unlocked. */ unsigned int magic; /*%< magic */ dns_dispatchmgr_t *mgr; /*%< dispatch manager */ - isc_task_t *task; /*%< internal task */ + int ntasks; + /*% + * internal task buckets. We use multiple tasks to distribute various + * socket events well when using separate dispatch sockets. We use the + * 1st task (task[0]) for internal control events. + */ + isc_task_t *task[MAX_INTERNAL_TASKS]; isc_socket_t *socket; /*%< isc socket attached to */ isc_sockaddr_t local; /*%< local address */ in_port_t localport; /*%< local UDP port */ @@ -143,10 +219,14 @@ struct dns_dispatch { tcpmsg_valid : 1, recv_pending : 1; /*%< is a recv() pending? */ isc_result_t shutdown_why; + ISC_LIST(dispsocket_t) activesockets; + ISC_LIST(dispsocket_t) inactivesockets; + unsigned int nsockets; unsigned int requests; /*%< how many requests we have */ unsigned int tcpbuffers; /*%< allocated buffers */ dns_tcpmsg_t tcpmsg; /*%< for tcp streams */ dns_qid_t *qid; + arc4ctx_t arc4ctx; /*%< for QID/UDP port num */ }; #define QID_MAGIC ISC_MAGIC('Q', 'i', 'd', ' ') @@ -155,6 +235,9 @@ struct dns_dispatch { #define RESPONSE_MAGIC ISC_MAGIC('D', 'r', 's', 'p') #define VALID_RESPONSE(e) ISC_MAGIC_VALID((e), RESPONSE_MAGIC) +#define DISPSOCK_MAGIC ISC_MAGIC('D', 's', 'o', 'c') +#define VALID_DISPSOCK(e) ISC_MAGIC_VALID((e), DISPSOCK_MAGIC) + #define DISPATCH_MAGIC ISC_MAGIC('D', 'i', 's', 'p') #define VALID_DISPATCH(e) ISC_MAGIC_VALID((e), DISPATCH_MAGIC) @@ -163,16 +246,33 @@ struct dns_dispatch { #define DNS_QID(disp) ((disp)->socktype == isc_sockettype_tcp) ? \ (disp)->qid : (disp)->mgr->qid +#define DISP_ARC4CTX(disp) ((disp)->socktype == isc_sockettype_udp) ? \ + (&(disp)->arc4ctx) : (&(disp)->mgr->arc4ctx) + +/*% + * Locking a query port buffer is a bit tricky. We access the buffer without + * locking until qid is created. Technically, there is a possibility of race + * between the creation of qid and access to the port buffer; in practice, + * however, this should be safe because qid isn't created until the first + * dispatch is created and there should be no contending situation until then. + */ +#define PORTBUFLOCK(mgr) if ((mgr)->qid != NULL) LOCK(&((mgr)->qid->lock)) +#define PORTBUFUNLOCK(mgr) if ((mgr)->qid != NULL) UNLOCK((&(mgr)->qid->lock)) + /* * Statics. */ -static dns_dispentry_t *bucket_search(dns_qid_t *, isc_sockaddr_t *, - dns_messageid_t, in_port_t, unsigned int); +static dns_dispentry_t *entry_search(dns_qid_t *, isc_sockaddr_t *, + dns_messageid_t, in_port_t, unsigned int); static isc_boolean_t destroy_disp_ok(dns_dispatch_t *); static void destroy_disp(isc_task_t *task, isc_event_t *event); -static void udp_recv(isc_task_t *, isc_event_t *); +static void destroy_dispsocket(dns_dispatch_t *, dispsocket_t **); +static void deactivate_dispsocket(dns_dispatch_t *, dispsocket_t *); +static void udp_exrecv(isc_task_t *, isc_event_t *); +static void udp_shrecv(isc_task_t *, isc_event_t *); +static void udp_recv(isc_event_t *, dns_dispatch_t *, dispsocket_t *); static void tcp_recv(isc_task_t *, isc_event_t *); -static void startrecv(dns_dispatch_t *); +static isc_result_t startrecv(dns_dispatch_t *, dispsocket_t *); static isc_uint32_t dns_hash(dns_qid_t *, isc_sockaddr_t *, dns_messageid_t, in_port_t); static void free_buffer(dns_dispatch_t *disp, void *buf, unsigned int len); @@ -184,6 +284,11 @@ static dns_dispentry_t *linear_first(dns_qid_t *disp); static dns_dispentry_t *linear_next(dns_qid_t *disp, dns_dispentry_t *resp); static void dispatch_free(dns_dispatch_t **dispp); +static isc_result_t get_udpsocket(dns_dispatchmgr_t *mgr, + dns_dispatch_t *disp, + isc_socketmgr_t *sockmgr, + isc_sockaddr_t *localaddr, + isc_socket_t **sockp); static isc_result_t dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, isc_taskmgr_t *taskmgr, @@ -194,8 +299,13 @@ static isc_result_t dispatch_createudp(dns_dispatchmgr_t *mgr, static isc_boolean_t destroy_mgr_ok(dns_dispatchmgr_t *mgr); static void destroy_mgr(dns_dispatchmgr_t **mgrp); static isc_result_t qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets, - unsigned int increment, dns_qid_t **qidp); + unsigned int increment, dns_qid_t **qidp, + isc_boolean_t needaddrtable); static void qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp); +static isc_result_t open_socket(isc_socketmgr_t *mgr, isc_sockaddr_t *local, + unsigned int options, isc_socket_t **sockp); +static isc_boolean_t portavailable(dns_dispatchmgr_t *mgr, isc_socket_t *sock, + isc_sockaddr_t *sockaddrp); #define LVL(x) ISC_LOG_DEBUG(x) @@ -275,7 +385,7 @@ request_log(dns_dispatch_t *disp, dns_dispentry_t *resp, } } -/* +/*% * ARC4 random number generator derived from OpenBSD. * Only dispatch_arc4random() and dispatch_arc4uniformrandom() are expected * to be called from general dispatch routines; the rest of them are subroutines @@ -298,13 +408,15 @@ request_log(dns_dispatch_t *disp, dns_dispentry_t *resp, * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ static void -dispatch_arc4init(arc4ctx_t *actx) { +dispatch_arc4init(arc4ctx_t *actx, isc_entropy_t *entropy, isc_mutex_t *lock) { int n; for (n = 0; n < 256; n++) actx->s[n] = n; actx->i = 0; actx->j = 0; actx->count = 0; + actx->entropy = entropy; /* don't have to attach */ + actx->lock = lock; } static void @@ -348,7 +460,7 @@ dispatch_arc4get16(arc4ctx_t *actx) { } static void -dispatch_arc4stir(dns_dispatchmgr_t *mgr) { +dispatch_arc4stir(arc4ctx_t *actx) { int i; union { unsigned char rnd[128]; @@ -356,51 +468,55 @@ dispatch_arc4stir(dns_dispatchmgr_t *mgr) { } rnd; isc_result_t result; - if (mgr->entropy != NULL) { + if (actx->entropy != NULL) { /* * We accept any quality of random data to avoid blocking. */ - result = isc_entropy_getdata(mgr->entropy, rnd.rnd, + result = isc_entropy_getdata(actx->entropy, rnd.rnd, sizeof(rnd), NULL, 0); RUNTIME_CHECK(result == ISC_R_SUCCESS); } else { for (i = 0; i < 32; i++) isc_random_get(&rnd.rnd32[i]); } - dispatch_arc4addrandom(&mgr->arc4ctx, rnd.rnd, sizeof(rnd.rnd)); + dispatch_arc4addrandom(actx, rnd.rnd, sizeof(rnd.rnd)); /* * Discard early keystream, as per recommendations in: * http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps */ for (i = 0; i < 256; i++) - (void)dispatch_arc4get8(&mgr->arc4ctx); + (void)dispatch_arc4get8(actx); /* * Derived from OpenBSD's implementation. The rationale is not clear, * but should be conservative enough in safety, and reasonably large * for efficiency. */ - mgr->arc4ctx.count = 1600000; + actx->count = 1600000; } static isc_uint16_t -dispatch_arc4random(dns_dispatchmgr_t *mgr) { +dispatch_arc4random(arc4ctx_t *actx) { isc_uint16_t result; - LOCK(&mgr->arc4_lock); - mgr->arc4ctx.count -= sizeof(isc_uint16_t); - if (mgr->arc4ctx.count <= 0) - dispatch_arc4stir(mgr); - result = dispatch_arc4get16(&mgr->arc4ctx); - UNLOCK(&mgr->arc4_lock); + if (actx->lock != NULL) + LOCK(actx->lock); + + actx->count -= sizeof(isc_uint16_t); + if (actx->count <= 0) + dispatch_arc4stir(actx); + result = dispatch_arc4get16(actx); + + if (actx->lock != NULL) + UNLOCK(actx->lock); + return (result); } static isc_uint16_t -dispatch_arc4uniformrandom(dns_dispatchmgr_t *mgr, isc_uint16_t upper_bound) { +dispatch_arc4uniformrandom(arc4ctx_t *actx, isc_uint16_t upper_bound) { isc_uint16_t min, r; - /* The caller must hold the manager lock. */ if (upper_bound < 2) return (0); @@ -422,7 +538,7 @@ dispatch_arc4uniformrandom(dns_dispatchmgr_t *mgr, isc_uint16_t upper_bound) { * to re-roll. */ for (;;) { - r = dispatch_arc4random(mgr); + r = dispatch_arc4random(actx); if (r >= min) break; } @@ -505,13 +621,15 @@ destroy_disp_ok(dns_dispatch_t *disp) if (disp->recv_pending != 0) return (ISC_FALSE); + if (!ISC_LIST_EMPTY(disp->activesockets)) + return (ISC_FALSE); + if (disp->shutting_down == 0) return (ISC_FALSE); return (ISC_TRUE); } - /* * Called when refcount reaches 0 (and safe to destroy). * @@ -523,6 +641,8 @@ destroy_disp(isc_task_t *task, isc_event_t *event) { dns_dispatch_t *disp; dns_dispatchmgr_t *mgr; isc_boolean_t killmgr; + dispsocket_t *dispsocket; + int i; INSIST(event->ev_type == DNS_EVENT_DISPATCHCONTROL); @@ -536,10 +656,16 @@ destroy_disp(isc_task_t *task, isc_event_t *event) { dispatch_log(disp, LVL(90), "shutting down; detaching from sock %p, task %p", - disp->socket, disp->task); + disp->socket, disp->task[0]); /* XXXX */ - isc_socket_detach(&disp->socket); - isc_task_detach(&disp->task); + if (disp->socket != NULL) + isc_socket_detach(&disp->socket); + while ((dispsocket = ISC_LIST_HEAD(disp->inactivesockets)) != NULL) { + ISC_LIST_UNLINK(disp->inactivesockets, dispsocket, link); + destroy_dispsocket(disp, &dispsocket); + } + for (i = 0; i < disp->ntasks; i++) + isc_task_detach(&disp->task[i]); isc_event_free(&event); dispatch_free(&disp); @@ -550,14 +676,210 @@ destroy_disp(isc_task_t *task, isc_event_t *event) { destroy_mgr(&mgr); } +/*% + * Find a dispsocket for socket address 'dest', and port number 'port'. + * Return NULL if no such entry exists. + */ +static dispsocket_t * +socket_search(dns_qid_t *qid, isc_sockaddr_t *dest, in_port_t port, + unsigned int bucket) +{ + dispsocket_t *dispsock; + + REQUIRE(bucket < qid->qid_nbuckets); + + dispsock = ISC_LIST_HEAD(qid->sock_table[bucket]); + + while (dispsock != NULL) { + if (isc_sockaddr_equal(dest, &dispsock->host) && + dispsock->localport == port) + return (dispsock); + dispsock = ISC_LIST_NEXT(dispsock, blink); + } + + return (NULL); +} + +/*% + * Make a new socket for a single dispatch with a random port number. + * The caller must hold the disp->lock and qid->lock. + */ +static isc_result_t +get_dispsocket(dns_dispatch_t *disp, isc_sockaddr_t *dest, + isc_socketmgr_t *sockmgr, dns_qid_t *qid, + dispsocket_t **dispsockp, in_port_t *portp) +{ + int i; + isc_uint32_t r; + dns_dispatchmgr_t *mgr = disp->mgr; + isc_socket_t *sock = NULL; + isc_result_t result = ISC_R_FAILURE; + in_port_t port; + isc_sockaddr_t localaddr; + unsigned int bucket = 0; + dispsocket_t *dispsock; + unsigned int nports; + in_port_t *ports; + + if (isc_sockaddr_pf(&disp->local) == AF_INET) { + nports = disp->mgr->nv4ports; + ports = disp->mgr->v4ports; + } else { + nports = disp->mgr->nv6ports; + ports = disp->mgr->v6ports; + } + if (nports == 0) + return (ISC_R_ADDRNOTAVAIL); + + dispsock = ISC_LIST_HEAD(disp->inactivesockets); + if (dispsock != NULL) { + ISC_LIST_UNLINK(disp->inactivesockets, dispsock, link); + sock = dispsock->socket; + dispsock->socket = NULL; + } else { + dispsock = isc_mempool_get(mgr->spool); + if (dispsock == NULL) + return (ISC_R_NOMEMORY); + + disp->nsockets++; + dispsock->socket = NULL; + dispsock->disp = disp; + dispsock->resp = NULL; + isc_random_get(&r); + dispsock->task = NULL; + isc_task_attach(disp->task[r % disp->ntasks], &dispsock->task); + ISC_LINK_INIT(dispsock, link); + ISC_LINK_INIT(dispsock, blink); + dispsock->magic = DISPSOCK_MAGIC; + } + + /* + * Pick up a random UDP port and open a new socket with it. Avoid + * choosing ports that share the same destination because it will be + * very likely to fail in bind(2) or connect(2). + */ + localaddr = disp->local; + for (i = 0; i < 64; i++) { + port = ports[dispatch_arc4uniformrandom(DISP_ARC4CTX(disp), + nports)]; + isc_sockaddr_setport(&localaddr, port); + + bucket = dns_hash(qid, dest, 0, port); + if (socket_search(qid, dest, port, bucket) != NULL) + continue; + + result = open_socket(sockmgr, &localaddr, 0, &sock); + if (result == ISC_R_SUCCESS || result != ISC_R_ADDRINUSE) + break; + } + + if (result == ISC_R_SUCCESS) { + dispsock->socket = sock; + dispsock->host = *dest; + dispsock->localport = port; + dispsock->bucket = bucket; + ISC_LIST_APPEND(qid->sock_table[bucket], dispsock, blink); + *dispsockp = dispsock; + *portp = port; + } else { + /* + * We could keep it in the inactive list, but since this should + * be an exceptional case and might be resource shortage, we'd + * rather destroy it. + */ + if (sock != NULL) + isc_socket_detach(&sock); + destroy_dispsocket(disp, &dispsock); + } + + return (result); +} + +/*% + * Destroy a dedicated dispatch socket. + */ +static void +destroy_dispsocket(dns_dispatch_t *disp, dispsocket_t **dispsockp) { + dispsocket_t *dispsock; + dns_qid_t *qid; + + /* + * The dispatch must be locked. + */ + + REQUIRE(dispsockp != NULL && *dispsockp != NULL); + dispsock = *dispsockp; + REQUIRE(!ISC_LINK_LINKED(dispsock, link)); + + disp->nsockets--; + dispsock->magic = 0; + if (dispsock->socket != NULL) + isc_socket_detach(&dispsock->socket); + if (ISC_LINK_LINKED(dispsock, blink)) { + qid = DNS_QID(disp); + LOCK(&qid->lock); + ISC_LIST_UNLINK(qid->sock_table[dispsock->bucket], dispsock, + blink); + UNLOCK(&qid->lock); + } + if (dispsock->task != NULL) + isc_task_detach(&dispsock->task); + isc_mempool_put(disp->mgr->spool, dispsock); + + *dispsockp = NULL; +} + +/*% + * Deactivate a dedicated dispatch socket. Move it to the inactive list for + * future reuse unless the total number of sockets are exceeding the maximum. + */ +static void +deactivate_dispsocket(dns_dispatch_t *disp, dispsocket_t *dispsock) { + isc_result_t result; + dns_qid_t *qid; + + /* + * The dispatch must be locked. + */ + ISC_LIST_UNLINK(disp->activesockets, dispsock, link); + if (dispsock->resp != NULL) { + INSIST(dispsock->resp->dispsocket == dispsock); + dispsock->resp->dispsocket = NULL; + } + + if (disp->nsockets > DNS_DISPATCH_POOLSOCKS) + destroy_dispsocket(disp, &dispsock); + else { + result = isc_socket_close(dispsock->socket); + + qid = DNS_QID(disp); + LOCK(&qid->lock); + ISC_LIST_UNLINK(qid->sock_table[dispsock->bucket], dispsock, + blink); + UNLOCK(&qid->lock); + + if (result == ISC_R_SUCCESS) + ISC_LIST_APPEND(disp->inactivesockets, dispsock, link); + else { + /* + * If the underlying system does not allow this + * optimization, destroy this temporary structure (and + * create a new one for a new transaction). + */ + INSIST(result == ISC_R_NOTIMPLEMENTED); + destroy_dispsocket(disp, &dispsock); + } + } +} /* - * Find an entry for query ID 'id' and socket address 'dest' in 'qid'. + * Find an entry for query ID 'id', socket address 'dest', and port number + * 'port'. * Return NULL if no such entry exists. */ static dns_dispentry_t * -bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id, - in_port_t port, unsigned int bucket) +entry_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id, + in_port_t port, unsigned int bucket) { dns_dispentry_t *res; @@ -566,7 +888,7 @@ bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id, res = ISC_LIST_HEAD(qid->qid_table[bucket]); while (res != NULL) { - if ((res->id == id) && isc_sockaddr_equal(dest, &res->host) && + if (res->id == id && isc_sockaddr_equal(dest, &res->host) && res->port == port) { return (res); } @@ -640,6 +962,26 @@ allocate_event(dns_dispatch_t *disp) { return (ev); } +static void +udp_exrecv(isc_task_t *task, isc_event_t *ev) { + dispsocket_t *dispsock = ev->ev_arg; + + UNUSED(task); + + REQUIRE(VALID_DISPSOCK(dispsock)); + udp_recv(ev, dispsock->disp, dispsock); +} + +static void +udp_shrecv(isc_task_t *task, isc_event_t *ev) { + dns_dispatch_t *disp = ev->ev_arg; + + UNUSED(task); + + REQUIRE(VALID_DISPATCH(disp)); + udp_recv(ev, disp, NULL); +} + /* * General flow: * @@ -655,14 +997,13 @@ allocate_event(dns_dispatch_t *disp) { * restart. */ static void -udp_recv(isc_task_t *task, isc_event_t *ev_in) { +udp_recv(isc_event_t *ev_in, dns_dispatch_t *disp, dispsocket_t *dispsock) { isc_socketevent_t *ev = (isc_socketevent_t *)ev_in; - dns_dispatch_t *disp = ev_in->ev_arg; dns_messageid_t id; isc_result_t dres; isc_buffer_t source; unsigned int flags; - dns_dispentry_t *resp; + dns_dispentry_t *resp = NULL; dns_dispatchevent_t *rev; unsigned int bucket; isc_boolean_t killit; @@ -671,8 +1012,8 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { dns_qid_t *qid; isc_netaddr_t netaddr; int match; - - UNUSED(task); + int result; + isc_boolean_t qidlocked = ISC_FALSE; LOCK(&disp->lock); @@ -683,7 +1024,7 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { "got packet: requests %d, buffers %d, recvs %d", disp->requests, disp->mgr->buffers, disp->recv_pending); - if (ev->ev_type == ISC_SOCKEVENT_RECVDONE) { + if (dispsock == NULL && ev->ev_type == ISC_SOCKEVENT_RECVDONE) { /* * Unless the receive event was imported from a listening * interface, in which case the event type is @@ -693,6 +1034,19 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { disp->recv_pending = 0; } + if (dispsock != NULL && + (ev->result == ISC_R_CANCELED || dispsock->resp == NULL)) { + /* + * dispsock->resp can be NULL if this transaction was canceled + * just after receiving a response. Since this socket is + * exclusively used and there should be at most one receive + * event the canceled event should have been no effect. So + * we can (and should) deactivate the socket right now. + */ + deactivate_dispsocket(disp, dispsock); + dispsock = NULL; + } + if (disp->shutting_down) { /* * This dispatcher is shutting down. @@ -705,12 +1059,32 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { killit = destroy_disp_ok(disp); UNLOCK(&disp->lock); if (killit) - isc_task_send(disp->task, &disp->ctlevent); + isc_task_send(disp->task[0], &disp->ctlevent); return; } - if (ev->result != ISC_R_SUCCESS) { + if ((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0) { + if (dispsock != NULL) { + resp = dispsock->resp; + id = resp->id; + if (ev->result != ISC_R_SUCCESS) { + /* + * This is most likely a network error on a + * connected socket. It makes no sense to + * check the address or parse the packet, but it + * will help to return the error to the caller. + */ + goto sendresponse; + } + } else { + free_buffer(disp, ev->region.base, ev->region.length); + + UNLOCK(&disp->lock); + isc_event_free(&ev_in); + return; + } + } else if (ev->result != ISC_R_SUCCESS) { free_buffer(disp, ev->region.base, ev->region.length); if (ev->result != ISC_R_CANCELED) @@ -729,7 +1103,7 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { isc_netaddr_fromsockaddr(&netaddr, &ev->address); if (disp->mgr->blackhole != NULL && dns_acl_match(&netaddr, NULL, disp->mgr->blackhole, - NULL, &match, NULL) == ISC_R_SUCCESS && + NULL, &match, NULL) == ISC_R_SUCCESS && match > 0) { if (isc_log_wouldlog(dns_lctx, LVL(10))) { @@ -771,18 +1145,32 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { goto restart; } - /* response */ - bucket = dns_hash(qid, &ev->address, id, disp->localport); - LOCK(&qid->lock); - resp = bucket_search(qid, &ev->address, id, disp->localport, bucket); - dispatch_log(disp, LVL(90), - "search for response in bucket %d: %s", - bucket, (resp == NULL ? "not found" : "found")); - + /* + * Search for the corresponding response. If we are using an exclusive + * socket, we've already identified it and we can skip the search; but + * the ID and the address must match the expected ones. + */ if (resp == NULL) { + bucket = dns_hash(qid, &ev->address, id, disp->localport); + LOCK(&qid->lock); + qidlocked = ISC_TRUE; + resp = entry_search(qid, &ev->address, id, disp->localport, + bucket); + dispatch_log(disp, LVL(90), + "search for response in bucket %d: %s", + bucket, (resp == NULL ? "not found" : "found")); + + if (resp == NULL) { + free_buffer(disp, ev->region.base, ev->region.length); + goto unlock; + } + } else if (resp->id != id || !isc_sockaddr_equal(&ev->address, + &resp->host)) { + dispatch_log(disp, LVL(90), + "response to an exclusive socket doesn't match"); free_buffer(disp, ev->region.base, ev->region.length); goto unlock; - } + } /* * Now that we have the original dispatch the query was sent @@ -792,7 +1180,7 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { if (disp != resp->disp) { isc_sockaddr_t a1; isc_sockaddr_t a2; - + /* * Check that the socket types and ports match. */ @@ -805,11 +1193,11 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { /* * If both dispatches are bound to an address then fail as - * the addresses can't be equal (enforced by the IP stack). + * the addresses can't be equal (enforced by the IP stack). * * Note under Linux a packet can be sent out via IPv4 socket * and the response be received via a IPv6 socket. - * + * * Requests sent out via IPv6 should always come back in * via IPv6. */ @@ -827,6 +1215,7 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { } } + sendresponse: queue_response = resp->item_out; rev = allocate_event(resp->disp); if (rev == NULL) { @@ -841,7 +1230,7 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { */ isc_buffer_init(&rev->buffer, ev->region.base, ev->region.length); isc_buffer_add(&rev->buffer, ev->n); - rev->result = ISC_R_SUCCESS; + rev->result = ev->result; rev->id = id; rev->addr = ev->address; rev->pktinfo = ev->pktinfo; @@ -860,14 +1249,23 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) { isc_task_send(resp->task, ISC_EVENT_PTR(&rev)); } unlock: - UNLOCK(&qid->lock); + if (qidlocked) + UNLOCK(&qid->lock); /* * Restart recv() to get the next packet. */ restart: - startrecv(disp); - + result = startrecv(disp, dispsock); + if (result != ISC_R_SUCCESS && dispsock != NULL) { + /* + * XXX: wired. There seems to be no recovery process other than + * deactivate this socket anyway (since we cannot start + * receiving, we won't be able to receive a cancel event + * from the user). + */ + deactivate_dispsocket(disp, dispsock); + } UNLOCK(&disp->lock); isc_event_free(&ev_in); @@ -930,7 +1328,7 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) { switch (tcpmsg->result) { case ISC_R_CANCELED: break; - + case ISC_R_EOF: dispatch_log(disp, LVL(90), "shutting down on EOF"); do_cancel(disp); @@ -967,7 +1365,7 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) { killit = destroy_disp_ok(disp); UNLOCK(&disp->lock); if (killit) - isc_task_send(disp->task, &disp->ctlevent); + isc_task_send(disp->task[0], &disp->ctlevent); return; } @@ -1010,8 +1408,7 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) { */ bucket = dns_hash(qid, &tcpmsg->address, id, disp->localport); LOCK(&qid->lock); - resp = bucket_search(qid, &tcpmsg->address, id, disp->localport, - bucket); + resp = entry_search(qid, &tcpmsg->address, id, disp->localport, bucket); dispatch_log(disp, LVL(90), "search for response in bucket %d: %s", bucket, (resp == NULL ? "not found" : "found")); @@ -1052,7 +1449,7 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) { * Restart recv() to get the next packet. */ restart: - startrecv(disp); + (void)startrecv(disp, NULL); UNLOCK(&disp->lock); @@ -1062,22 +1459,33 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) { /* * disp must be locked. */ -static void -startrecv(dns_dispatch_t *disp) { +static isc_result_t +startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) { isc_result_t res; isc_region_t region; + isc_socket_t *socket; if (disp->shutting_down == 1) - return; + return (ISC_R_SUCCESS); if ((disp->attributes & DNS_DISPATCHATTR_NOLISTEN) != 0) - return; + return (ISC_R_SUCCESS); - if (disp->recv_pending != 0) - return; + if (disp->recv_pending != 0 && dispsock == NULL) + return (ISC_R_SUCCESS); if (disp->mgr->buffers >= disp->mgr->maxbuffers) - return; + return (ISC_R_NOMEMORY); + + if ((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0 && + dispsock == NULL) + return (ISC_R_SUCCESS); + + if (dispsock != NULL) + socket = dispsock->socket; + else + socket = disp->socket; + INSIST(socket != NULL); switch (disp->socktype) { /* @@ -1087,28 +1495,38 @@ startrecv(dns_dispatch_t *disp) { region.length = disp->mgr->buffersize; region.base = allocate_udp_buffer(disp); if (region.base == NULL) - return; - res = isc_socket_recv(disp->socket, ®ion, 1, - disp->task, udp_recv, disp); - if (res != ISC_R_SUCCESS) { - free_buffer(disp, region.base, region.length); - disp->shutdown_why = res; - disp->shutting_down = 1; - do_cancel(disp); - return; + return (ISC_R_NOMEMORY); + if (dispsock != NULL) { + res = isc_socket_recv(socket, ®ion, 1, + dispsock->task, udp_exrecv, + dispsock); + if (res != ISC_R_SUCCESS) { + free_buffer(disp, region.base, region.length); + return (res); + } + } else { + res = isc_socket_recv(socket, ®ion, 1, + disp->task[0], udp_shrecv, disp); + if (res != ISC_R_SUCCESS) { + free_buffer(disp, region.base, region.length); + disp->shutdown_why = res; + disp->shutting_down = 1; + do_cancel(disp); + return (ISC_R_SUCCESS); /* recover by cancel */ + } + INSIST(disp->recv_pending == 0); + disp->recv_pending = 1; } - INSIST(disp->recv_pending == 0); - disp->recv_pending = 1; break; case isc_sockettype_tcp: - res = dns_tcpmsg_readmessage(&disp->tcpmsg, disp->task, + res = dns_tcpmsg_readmessage(&disp->tcpmsg, disp->task[0], tcp_recv, disp); if (res != ISC_R_SUCCESS) { disp->shutdown_why = res; disp->shutting_down = 1; do_cancel(disp); - return; + return (ISC_R_SUCCESS); /* recover by cancel */ } INSIST(disp->recv_pending == 0); disp->recv_pending = 1; @@ -1117,6 +1535,8 @@ startrecv(dns_dispatch_t *disp) { INSIST(0); break; } + + return (ISC_R_SUCCESS); } /* @@ -1169,6 +1589,7 @@ destroy_mgr(dns_dispatchmgr_t **mgrp) { isc_mempool_destroy(&mgr->rpool); isc_mempool_destroy(&mgr->dpool); isc_mempool_destroy(&mgr->bpool); + isc_mempool_destroy(&mgr->spool); DESTROYLOCK(&mgr->pool_lock); @@ -1182,32 +1603,46 @@ destroy_mgr(dns_dispatchmgr_t **mgrp) { if (mgr->blackhole != NULL) dns_acl_detach(&mgr->blackhole); - if (mgr->portlist != NULL) - dns_portlist_detach(&mgr->portlist); - + if (mgr->v4ports != NULL) { + isc_mem_put(mctx, mgr->v4ports, + mgr->nv4ports * sizeof(in_port_t)); + } + if (mgr->v6ports != NULL) { + isc_mem_put(mctx, mgr->v6ports, + mgr->nv6ports * sizeof(in_port_t)); + } isc_mem_put(mctx, mgr, sizeof(dns_dispatchmgr_t)); isc_mem_detach(&mctx); } static isc_result_t -create_socket(isc_socketmgr_t *mgr, isc_sockaddr_t *local, - unsigned int options, isc_socket_t **sockp) +open_socket(isc_socketmgr_t *mgr, isc_sockaddr_t *local, + unsigned int options, isc_socket_t **sockp) { isc_socket_t *sock; isc_result_t result; - sock = NULL; - result = isc_socket_create(mgr, isc_sockaddr_pf(local), - isc_sockettype_udp, &sock); - if (result != ISC_R_SUCCESS) - return (result); + sock = *sockp; + if (sock == NULL) { + result = isc_socket_create(mgr, isc_sockaddr_pf(local), + isc_sockettype_udp, &sock); + if (result != ISC_R_SUCCESS) + return (result); + } else { + result = isc_socket_open(sock); + if (result != ISC_R_SUCCESS) + return (result); + } #ifndef ISC_ALLOW_MAPPED isc_socket_ipv6only(sock, ISC_TRUE); #endif result = isc_socket_bind(sock, local, options); if (result != ISC_R_SUCCESS) { - isc_socket_detach(&sock); + if (*sockp == NULL) + isc_socket_detach(&sock); + else + isc_socket_close(sock); return (result); } @@ -1215,6 +1650,24 @@ create_socket(isc_socketmgr_t *mgr, isc_sockaddr_t *local, return (ISC_R_SUCCESS); } +/*% + * Create a temporary port list to set the initial default set of dispatch + * ports: [1024, 65535]. This is almost meaningless as the application will + * normally set the ports explicitly, but is provided to fill some minor corner + * cases. + */ +static isc_result_t +create_default_portset(isc_mem_t *mctx, isc_portset_t **portsetp) { + isc_result_t result; + + result = isc_portset_create(mctx, portsetp); + if (result != ISC_R_SUCCESS) + return (result); + isc_portset_addrange(*portsetp, 1024, 65535); + + return (ISC_R_SUCCESS); +} + /* * Publics. */ @@ -1225,6 +1678,8 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy, { dns_dispatchmgr_t *mgr; isc_result_t result; + isc_portset_t *v4portset = NULL; + isc_portset_t *v6portset = NULL; REQUIRE(mctx != NULL); REQUIRE(mgrp != NULL && *mgrp == NULL); @@ -1237,7 +1692,6 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy, isc_mem_attach(mctx, &mgr->mctx); mgr->blackhole = NULL; - mgr->portlist = NULL; result = isc_mutex_init(&mgr->lock); if (result != ISC_R_SUCCESS) @@ -1292,20 +1746,43 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy, mgr->buffersize = 0; mgr->maxbuffers = 0; mgr->bpool = NULL; + mgr->spool = NULL; mgr->entropy = NULL; mgr->qid = NULL; mgr->state = 0; ISC_LIST_INIT(mgr->list); + mgr->v4ports = NULL; + mgr->v6ports = NULL; + mgr->nv4ports = 0; + mgr->nv6ports = 0; mgr->magic = DNS_DISPATCHMGR_MAGIC; + result = create_default_portset(mctx, &v4portset); + if (result == ISC_R_SUCCESS) { + result = create_default_portset(mctx, &v6portset); + if (result == ISC_R_SUCCESS) { + result = dns_dispatchmgr_setavailports(mgr, + v4portset, + v6portset); + } + } + if (v4portset != NULL) + isc_portset_destroy(mctx, &v4portset); + if (v6portset != NULL) + isc_portset_destroy(mctx, &v6portset); + if (result != ISC_R_SUCCESS) + goto kill_dpool; + if (entropy != NULL) isc_entropy_attach(entropy, &mgr->entropy); - dispatch_arc4init(&mgr->arc4ctx); + dispatch_arc4init(&mgr->arc4ctx, mgr->entropy, &mgr->arc4_lock); *mgrp = mgr; return (ISC_R_SUCCESS); + kill_dpool: + isc_mempool_destroy(&mgr->dpool); kill_rpool: isc_mempool_destroy(&mgr->rpool); kill_epool: @@ -1344,22 +1821,88 @@ dns_dispatchmgr_setblackportlist(dns_dispatchmgr_t *mgr, dns_portlist_t *portlist) { REQUIRE(VALID_DISPATCHMGR(mgr)); - if (mgr->portlist != NULL) - dns_portlist_detach(&mgr->portlist); - if (portlist != NULL) - dns_portlist_attach(portlist, &mgr->portlist); + UNUSED(portlist); + + /* This function is deprecated: use dns_dispatchmgr_setavailports(). */ + return; } dns_portlist_t * dns_dispatchmgr_getblackportlist(dns_dispatchmgr_t *mgr) { REQUIRE(VALID_DISPATCHMGR(mgr)); - return (mgr->portlist); + return (NULL); /* this function is deprecated */ +} + +isc_result_t +dns_dispatchmgr_setavailports(dns_dispatchmgr_t *mgr, isc_portset_t *v4portset, + isc_portset_t *v6portset) +{ + in_port_t *v4ports, *v6ports, p; + unsigned int nv4ports, nv6ports, i4, i6; + + REQUIRE(VALID_DISPATCHMGR(mgr)); + + nv4ports = isc_portset_nports(v4portset); + nv6ports = isc_portset_nports(v6portset); + + v4ports = NULL; + if (nv4ports != 0) { + v4ports = isc_mem_get(mgr->mctx, sizeof(in_port_t) * nv4ports); + if (v4ports == NULL) + return (ISC_R_NOMEMORY); + } + v6ports = NULL; + if (nv6ports != 0) { + v6ports = isc_mem_get(mgr->mctx, sizeof(in_port_t) * nv6ports); + if (v6ports == NULL) { + if (v4ports != NULL) { + isc_mem_put(mgr->mctx, v4ports, + sizeof(in_port_t) * + isc_portset_nports(v4portset)); + } + return (ISC_R_NOMEMORY); + } + } + + p = 0; + i4 = 0; + i6 = 0; + do { + if (isc_portset_isset(v4portset, p)) { + INSIST(i4 < nv4ports); + v4ports[i4++] = p; + } + if (isc_portset_isset(v6portset, p)) { + INSIST(i6 < nv6ports); + v6ports[i6++] = p; + } + } while (p++ < 65535); + INSIST(i4 == nv4ports && i6 == nv6ports); + + PORTBUFLOCK(mgr); + if (mgr->v4ports != NULL) { + isc_mem_put(mgr->mctx, mgr->v4ports, + mgr->nv4ports * sizeof(in_port_t)); + } + mgr->v4ports = v4ports; + mgr->nv4ports = nv4ports; + + if (mgr->v6ports != NULL) { + isc_mem_put(mgr->mctx, mgr->v6ports, + mgr->nv6ports * sizeof(in_port_t)); + } + mgr->v6ports = v6ports; + mgr->nv6ports = nv6ports; + PORTBUFUNLOCK(mgr); + + return (ISC_R_SUCCESS); } static isc_result_t dns_dispatchmgr_setudp(dns_dispatchmgr_t *mgr, - unsigned int buffersize, unsigned int maxbuffers, - unsigned int buckets, unsigned int increment) + unsigned int buffersize, unsigned int maxbuffers, + unsigned int maxrequests, unsigned int buckets, + unsigned int increment) { isc_result_t result; @@ -1386,24 +1929,39 @@ dns_dispatchmgr_setudp(dns_dispatchmgr_t *mgr, maxbuffers = 8; LOCK(&mgr->buffer_lock); + + /* Create or adjust buffer pool */ if (mgr->bpool != NULL) { isc_mempool_setmaxalloc(mgr->bpool, maxbuffers); mgr->maxbuffers = maxbuffers; + } else { + result = isc_mempool_create(mgr->mctx, buffersize, &mgr->bpool); + if (result != ISC_R_SUCCESS) { + UNLOCK(&mgr->buffer_lock); + return (result); + } + isc_mempool_setname(mgr->bpool, "dispmgr_bpool"); + isc_mempool_setmaxalloc(mgr->bpool, maxbuffers); + isc_mempool_associatelock(mgr->bpool, &mgr->pool_lock); + } + + /* Create or adjust socket pool */ + if (mgr->spool != NULL) { + isc_mempool_setmaxalloc(mgr->spool, DNS_DISPATCH_POOLSOCKS * 2); UNLOCK(&mgr->buffer_lock); return (ISC_R_SUCCESS); } - - if (isc_mempool_create(mgr->mctx, buffersize, - &mgr->bpool) != ISC_R_SUCCESS) { + result = isc_mempool_create(mgr->mctx, sizeof(dispsocket_t), + &mgr->spool); + if (result != ISC_R_SUCCESS) { UNLOCK(&mgr->buffer_lock); - return (ISC_R_NOMEMORY); + goto cleanup; } + isc_mempool_setname(mgr->spool, "dispmgr_spool"); + isc_mempool_setmaxalloc(mgr->spool, maxrequests); + isc_mempool_associatelock(mgr->spool, &mgr->pool_lock); - isc_mempool_setname(mgr->bpool, "dispmgr_bpool"); - isc_mempool_setmaxalloc(mgr->bpool, maxbuffers); - isc_mempool_associatelock(mgr->bpool, &mgr->pool_lock); - - result = qid_allocate(mgr, buckets, increment, &mgr->qid); + result = qid_allocate(mgr, buckets, increment, &mgr->qid, ISC_TRUE); if (result != ISC_R_SUCCESS) goto cleanup; @@ -1414,8 +1972,10 @@ dns_dispatchmgr_setudp(dns_dispatchmgr_t *mgr, cleanup: isc_mempool_destroy(&mgr->bpool); + if (mgr->spool != NULL) + isc_mempool_destroy(&mgr->spool); UNLOCK(&mgr->buffer_lock); - return (ISC_R_NOMEMORY); + return (result); } void @@ -1441,30 +2001,56 @@ dns_dispatchmgr_destroy(dns_dispatchmgr_t **mgrp) { destroy_mgr(&mgr); } +static int +port_cmp(const void *key, const void *ent) { + in_port_t p1 = *(const in_port_t *)key; + in_port_t p2 = *(const in_port_t *)ent; + + if (p1 < p2) + return (-1); + else if (p1 == p2) + return (0); + else + return (1); +} + static isc_boolean_t -blacklisted(dns_dispatchmgr_t *mgr, isc_socket_t *sock, - isc_sockaddr_t *sockaddrp) +portavailable(dns_dispatchmgr_t *mgr, isc_socket_t *sock, + isc_sockaddr_t *sockaddrp) { isc_sockaddr_t sockaddr; isc_result_t result; + in_port_t *ports, port; + unsigned int nports; + isc_boolean_t available = ISC_FALSE; REQUIRE(sock != NULL || sockaddrp != NULL); - if (mgr->portlist == NULL) - return (ISC_FALSE); - + PORTBUFLOCK(mgr); if (sock != NULL) { sockaddrp = &sockaddr; result = isc_socket_getsockname(sock, sockaddrp); if (result != ISC_R_SUCCESS) - return (ISC_FALSE); + goto unlock; } - if (mgr->portlist != NULL && - dns_portlist_match(mgr->portlist, isc_sockaddr_pf(sockaddrp), - isc_sockaddr_getport(sockaddrp))) - return (ISC_TRUE); - return (ISC_FALSE); + if (isc_sockaddr_pf(sockaddrp) == AF_INET) { + ports = mgr->v4ports; + nports = mgr->nv4ports; + } else { + ports = mgr->v6ports; + nports = mgr->nv6ports; + } + if (ports == NULL) + goto unlock; + + port = isc_sockaddr_getport(sockaddrp); + if (bsearch(&port, ports, nports, sizeof(in_port_t), port_cmp) != NULL) + available = ISC_TRUE; + +unlock: + PORTBUFUNLOCK(mgr); + return (available); } #define ATTRMATCH(_a1, _a2, _mask) (((_a1) & (_mask)) == ((_a2) & (_mask))) @@ -1474,17 +2060,20 @@ local_addr_match(dns_dispatch_t *disp, isc_sockaddr_t *addr) { isc_sockaddr_t sockaddr; isc_result_t result; + REQUIRE(disp->socket != NULL); + if (addr == NULL) return (ISC_TRUE); /* - * Don't match wildcard ports against newly blacklisted ports. + * Don't match wildcard ports unless the port is available in the + * current configuration. */ - if (disp->mgr->portlist != NULL && - isc_sockaddr_getport(addr) == 0 && + if (isc_sockaddr_getport(addr) == 0 && isc_sockaddr_getport(&disp->local) == 0 && - blacklisted(disp->mgr, disp->socket, NULL)) + !portavailable(disp->mgr, disp->socket, NULL)) { return (ISC_FALSE); + } /* * Check if we match the binding . @@ -1526,10 +2115,10 @@ dispatch_find(dns_dispatchmgr_t *mgr, isc_sockaddr_t *local, isc_result_t result; /* - * Make certain that we will not match a private dispatch. + * Make certain that we will not match a private or exclusive dispatch. */ - attributes &= ~DNS_DISPATCHATTR_PRIVATE; - mask |= DNS_DISPATCHATTR_PRIVATE; + attributes &= ~(DNS_DISPATCHATTR_PRIVATE|DNS_DISPATCHATTR_EXCLUSIVE); + mask |= (DNS_DISPATCHATTR_PRIVATE|DNS_DISPATCHATTR_EXCLUSIVE); disp = ISC_LIST_HEAD(mgr->list); while (disp != NULL) { @@ -1556,7 +2145,8 @@ dispatch_find(dns_dispatchmgr_t *mgr, isc_sockaddr_t *local, static isc_result_t qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets, - unsigned int increment, dns_qid_t **qidp) + unsigned int increment, dns_qid_t **qidp, + isc_boolean_t needsocktable) { dns_qid_t *qid; unsigned int i; @@ -1578,16 +2168,35 @@ qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets, return (ISC_R_NOMEMORY); } + qid->sock_table = NULL; + if (needsocktable) { + qid->sock_table = isc_mem_get(mgr->mctx, buckets * + sizeof(dispsocketlist_t)); + if (qid->sock_table == NULL) { + isc_mem_put(mgr->mctx, qid, sizeof(*qid)); + isc_mem_put(mgr->mctx, qid->qid_table, + buckets * sizeof(dns_displist_t)); + return (ISC_R_NOMEMORY); + } + } + result = isc_mutex_init(&qid->lock); if (result != ISC_R_SUCCESS) { + if (qid->sock_table != NULL) { + isc_mem_put(mgr->mctx, qid->sock_table, + buckets * sizeof(dispsocketlist_t)); + } isc_mem_put(mgr->mctx, qid->qid_table, buckets * sizeof(dns_displist_t)); isc_mem_put(mgr->mctx, qid, sizeof(*qid)); return (result); } - for (i = 0; i < buckets; i++) + for (i = 0; i < buckets; i++) { ISC_LIST_INIT(qid->qid_table[i]); + if (qid->sock_table != NULL) + ISC_LIST_INIT(qid->sock_table[i]); + } qid->qid_nbuckets = buckets; qid->qid_increment = increment; @@ -1609,6 +2218,10 @@ qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp) { qid->magic = 0; isc_mem_put(mctx, qid->qid_table, qid->qid_nbuckets * sizeof(dns_displist_t)); + if (qid->sock_table != NULL) { + isc_mem_put(mctx, qid->sock_table, + qid->qid_nbuckets * sizeof(dispsocketlist_t)); + } DESTROYLOCK(&qid->lock); isc_mem_put(mctx, qid, sizeof(*qid)); } @@ -1652,6 +2265,10 @@ dispatch_allocate(dns_dispatchmgr_t *mgr, unsigned int maxrequests, disp->requests = 0; disp->tcpbuffers = 0; disp->qid = NULL; + ISC_LIST_INIT(disp->activesockets); + ISC_LIST_INIT(disp->inactivesockets); + disp->nsockets = 0; + dispatch_arc4init(&disp->arc4ctx, mgr->entropy, NULL); result = isc_mutex_init(&disp->lock); if (result != ISC_R_SUCCESS) @@ -1704,6 +2321,8 @@ dispatch_free(dns_dispatch_t **dispp) INSIST(disp->tcpbuffers == 0); INSIST(disp->requests == 0); INSIST(disp->recv_pending == 0); + INSIST(ISC_LIST_EMPTY(disp->activesockets)); + INSIST(ISC_LIST_EMPTY(disp->inactivesockets)); isc_mempool_put(mgr->epool, disp->failsafe_ev); disp->failsafe_ev = NULL; @@ -1749,7 +2368,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock, return (result); } - result = qid_allocate(mgr, buckets, increment, &disp->qid); + result = qid_allocate(mgr, buckets, increment, &disp->qid, ISC_FALSE); if (result != ISC_R_SUCCESS) goto deallocate_dispatch; @@ -1757,8 +2376,9 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock, disp->socket = NULL; isc_socket_attach(sock, &disp->socket); - disp->task = NULL; - result = isc_task_create(taskmgr, 0, &disp->task); + disp->ntasks = 1; + disp->task[0] = NULL; + result = isc_task_create(taskmgr, 0, &disp->task[0]); if (result != ISC_R_SUCCESS) goto kill_socket; @@ -1771,7 +2391,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock, goto kill_task; } - isc_task_setname(disp->task, "tcpdispatch", disp); + isc_task_setname(disp->task[0], "tcpdispatch", disp); dns_tcpmsg_init(mgr->mctx, disp->socket, &disp->tcpmsg); disp->tcpmsg_valid = 1; @@ -1785,7 +2405,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock, UNLOCK(&mgr->lock); mgr_log(mgr, LVL(90), "created TCP dispatcher %p", disp); - dispatch_log(disp, LVL(90), "created task %p", disp->task); + dispatch_log(disp, LVL(90), "created task %p", disp->task[0]); *dispp = disp; @@ -1795,7 +2415,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock, * Error returns. */ kill_task: - isc_task_detach(&disp->task); + isc_task_detach(&disp->task[0]); kill_socket: isc_socket_detach(&disp->socket); deallocate_dispatch: @@ -1830,13 +2450,13 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, REQUIRE((attributes & DNS_DISPATCHATTR_TCP) == 0); result = dns_dispatchmgr_setudp(mgr, buffersize, maxbuffers, - buckets, increment); + maxrequests, buckets, increment); if (result != ISC_R_SUCCESS) return (result); LOCK(&mgr->lock); - if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) { + if ((attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0) { REQUIRE(isc_sockaddr_getport(localaddr) == 0); goto createudp; } @@ -1857,7 +2477,7 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, { disp->attributes |= DNS_DISPATCHATTR_NOLISTEN; if (disp->recv_pending != 0) - isc_socket_cancel(disp->socket, disp->task, + isc_socket_cancel(disp->socket, disp->task[0], ISC_SOCKCANCEL_RECV); } @@ -1893,6 +2513,101 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, #define DNS_DISPATCH_HELD 20U #endif +static isc_result_t +get_udpsocket(dns_dispatchmgr_t *mgr, dns_dispatch_t *disp, + isc_socketmgr_t *sockmgr, isc_sockaddr_t *localaddr, + isc_socket_t **sockp) +{ + unsigned int i, j; + isc_socket_t *held[DNS_DISPATCH_HELD]; + isc_sockaddr_t localaddr_bound; + isc_socket_t *sock = NULL; + isc_result_t result = ISC_R_SUCCESS; + isc_boolean_t anyport; + + INSIST(sockp != NULL && *sockp == NULL); + + localaddr_bound = *localaddr; + anyport = ISC_TF(isc_sockaddr_getport(localaddr) == 0); + + if (anyport) { + unsigned int nports; + in_port_t *ports; + + /* + * If no port is specified, we first try to pick up a random + * port by ourselves. + */ + if (isc_sockaddr_pf(&disp->local) == AF_INET) { + nports = disp->mgr->nv4ports; + ports = disp->mgr->v4ports; + } else { + nports = disp->mgr->nv6ports; + ports = disp->mgr->v6ports; + } + if (nports == 0) + return (ISC_R_ADDRNOTAVAIL); + + for (i = 0; i < 1024; i++) { + in_port_t prt; + + prt = ports[dispatch_arc4uniformrandom( + DISP_ARC4CTX(disp), + nports)]; + isc_sockaddr_setport(&localaddr_bound, prt); + result = open_socket(sockmgr, &localaddr_bound, + 0, &sock); + if (result == ISC_R_SUCCESS || + result != ISC_R_ADDRINUSE) { + disp->localport = prt; + *sockp = sock; + return (result); + } + } + + /* + * If this fails 1024 times, we then ask the kernel for + * choosing one. + */ + } + + memset(held, 0, sizeof(held)); + i = 0; + + for (j = 0; j < 0xffffU; j++) { + result = open_socket(sockmgr, localaddr, 0, &sock); + if (result != ISC_R_SUCCESS) + goto end; + else if (!anyport) + break; + else if (portavailable(mgr, sock, NULL)) + break; + if (held[i] != NULL) + isc_socket_detach(&held[i]); + held[i++] = sock; + sock = NULL; + if (i == DNS_DISPATCH_HELD) + i = 0; + } + if (j == 0xffffU) { + mgr_log(mgr, ISC_LOG_ERROR, + "avoid-v%s-udp-ports: unable to allocate " + "an available port", + isc_sockaddr_pf(localaddr) == AF_INET ? "4" : "6"); + result = ISC_R_FAILURE; + goto end; + } + *sockp = sock; + +end: + for (i = 0; i < DNS_DISPATCH_HELD; i++) { + if (held[i] != NULL) + isc_socket_detach(&held[i]); + } + + return (result); +} + static isc_result_t dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, isc_taskmgr_t *taskmgr, @@ -1904,10 +2619,7 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, isc_result_t result; dns_dispatch_t *disp; isc_socket_t *sock = NULL; - isc_socket_t *held[DNS_DISPATCH_HELD]; - unsigned int i = 0, j = 0, k = 0; - isc_sockaddr_t localaddr_bound; - in_port_t localport = 0; + int i = 0; /* * dispatch_allocate() checks mgr for us. @@ -1917,67 +2629,46 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, if (result != ISC_R_SUCCESS) return (result); - /* - * Try to allocate a socket that is not on the blacklist. - * Hold up to DNS_DISPATCH_HELD sockets to prevent the OS - * from returning the same port to us too quickly. - */ - memset(held, 0, sizeof(held)); - localaddr_bound = *localaddr; - getsocket: - if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) { - in_port_t prt; - - /* XXX: should the range be configurable? */ - prt = 1024 + dispatch_arc4uniformrandom(mgr, 65535 - 1023); - isc_sockaddr_setport(&localaddr_bound, prt); - if (blacklisted(mgr, NULL, &localaddr_bound)) { - if (++k == 1024) - attributes &= ~DNS_DISPATCHATTR_RANDOMPORT; - goto getsocket; - } - result = create_socket(sockmgr, &localaddr_bound, 0, &sock); - if (result == ISC_R_ADDRINUSE) { - if (++k == 1024) - attributes &= ~DNS_DISPATCHATTR_RANDOMPORT; - goto getsocket; - } - localport = prt; - } else - result = create_socket(sockmgr, localaddr, - ISC_SOCKET_REUSEADDRESS, &sock); - if (result != ISC_R_SUCCESS) - goto deallocate_dispatch; - if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) == 0 && - isc_sockaddr_getport(localaddr) == 0 && - blacklisted(mgr, sock, NULL)) - { - if (held[i] != NULL) - isc_socket_detach(&held[i]); - held[i++] = sock; - sock = NULL; - if (i == DNS_DISPATCH_HELD) - i = 0; - if (j++ == 0xffffU) { - mgr_log(mgr, ISC_LOG_ERROR, "avoid-v%s-udp-ports: " - "unable to allocate a non-blacklisted port", - isc_sockaddr_pf(localaddr) == AF_INET ? - "4" : "6"); - result = ISC_R_FAILURE; + if ((attributes & DNS_DISPATCHATTR_EXCLUSIVE) == 0) { + result = get_udpsocket(mgr, disp, sockmgr, localaddr, &sock); + if (result != ISC_R_SUCCESS) goto deallocate_dispatch; - } - goto getsocket; - } + } else { + isc_sockaddr_t sa_any; + /* + * For dispatches using exclusive sockets with a specific + * source address, we only check if the specified address is + * available on the system. Query sockets will be created later + * on demand. + */ + isc_sockaddr_anyofpf(&sa_any, isc_sockaddr_pf(localaddr)); + if (!isc_sockaddr_eqaddr(&sa_any, localaddr)) { + result = open_socket(sockmgr, localaddr, 0, &sock); + if (sock != NULL) + isc_socket_detach(&sock); + if (result != ISC_R_SUCCESS) + goto deallocate_dispatch; + } + } disp->socktype = isc_sockettype_udp; disp->socket = sock; disp->local = *localaddr; - disp->localport = localport; - disp->task = NULL; - result = isc_task_create(taskmgr, 0, &disp->task); - if (result != ISC_R_SUCCESS) - goto kill_socket; + if ((attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0) + disp->ntasks = MAX_INTERNAL_TASKS; + else + disp->ntasks = 1; + for (i = 0; i < disp->ntasks; i++) { + disp->task[i] = NULL; + result = isc_task_create(taskmgr, 0, &disp->task[i]); + if (result != ISC_R_SUCCESS) { + while (--i >= 0) + isc_task_destroy(&disp->task[i]); + goto kill_socket; + } + isc_task_setname(disp->task[i], "udpdispatch", disp); + } disp->ctlevent = isc_event_allocate(mgr->mctx, disp, DNS_EVENT_DISPATCHCONTROL, @@ -1988,8 +2679,6 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, goto kill_task; } - isc_task_setname(disp->task, "udpdispatch", disp); - attributes &= ~DNS_DISPATCHATTR_TCP; attributes |= DNS_DISPATCHATTR_UDP; disp->attributes = attributes; @@ -2000,26 +2689,25 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, ISC_LIST_APPEND(mgr->list, disp, link); mgr_log(mgr, LVL(90), "created UDP dispatcher %p", disp); - dispatch_log(disp, LVL(90), "created task %p", disp->task); - dispatch_log(disp, LVL(90), "created socket %p", disp->socket); + dispatch_log(disp, LVL(90), "created task %p", disp->task[0]); /* XXX */ + if (disp->socket != NULL) + dispatch_log(disp, LVL(90), "created socket %p", disp->socket); *dispp = disp; - - goto cleanheld; + return (result); /* * Error returns. */ kill_task: - isc_task_detach(&disp->task); + for (i = 0; i < disp->ntasks; i++) + isc_task_detach(&disp->task[i]); kill_socket: - isc_socket_detach(&disp->socket); + if (disp->socket != NULL) + isc_socket_detach(&disp->socket); deallocate_dispatch: dispatch_free(&disp); - cleanheld: - for (i = 0; i < DNS_DISPATCH_HELD; i++) - if (held[i] != NULL) - isc_socket_detach(&held[i]); + return (result); } @@ -2045,6 +2733,7 @@ dns_dispatch_attach(dns_dispatch_t *disp, dns_dispatch_t **dispp) { void dns_dispatch_detach(dns_dispatch_t **dispp) { dns_dispatch_t *disp; + dispsocket_t *dispsock; isc_boolean_t killit; REQUIRE(dispp != NULL && VALID_DISPATCH(*dispp)); @@ -2059,8 +2748,14 @@ dns_dispatch_detach(dns_dispatch_t **dispp) { killit = ISC_FALSE; if (disp->refcount == 0) { if (disp->recv_pending > 0) - isc_socket_cancel(disp->socket, disp->task, + isc_socket_cancel(disp->socket, disp->task[0], ISC_SOCKCANCEL_RECV); + for (dispsock = ISC_LIST_HEAD(disp->activesockets); + dispsock != NULL; + dispsock = ISC_LIST_NEXT(dispsock, link)) { + isc_socket_cancel(dispsock->socket, dispsock->task, + ISC_SOCKCANCEL_RECV); + } disp->shutting_down = 1; } @@ -2069,26 +2764,32 @@ dns_dispatch_detach(dns_dispatch_t **dispp) { killit = destroy_disp_ok(disp); UNLOCK(&disp->lock); if (killit) - isc_task_send(disp->task, &disp->ctlevent); + isc_task_send(disp->task[0], &disp->ctlevent); } isc_result_t -dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, - isc_task_t *task, isc_taskaction_t action, void *arg, - dns_messageid_t *idp, dns_dispentry_t **resp) +dns_dispatch_addresponse2(dns_dispatch_t *disp, isc_sockaddr_t *dest, + isc_task_t *task, isc_taskaction_t action, void *arg, + dns_messageid_t *idp, dns_dispentry_t **resp, + isc_socketmgr_t *sockmgr) { dns_dispentry_t *res; unsigned int bucket; + in_port_t localport = 0; dns_messageid_t id; int i; isc_boolean_t ok; dns_qid_t *qid; + dispsocket_t *dispsocket = NULL; + isc_result_t result; REQUIRE(VALID_DISPATCH(disp)); REQUIRE(task != NULL); REQUIRE(dest != NULL); REQUIRE(resp != NULL && *resp == NULL); REQUIRE(idp != NULL); + if ((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0) + REQUIRE(sockmgr != NULL); LOCK(&disp->lock); @@ -2102,23 +2803,75 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, return (ISC_R_QUOTA); } + if ((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0 && + disp->nsockets > DNS_DISPATCH_SOCKSQUOTA) { + dispsocket_t *oldestsocket; + dns_dispentry_t *oldestresp; + dns_dispatchevent_t *rev; + + /* + * Kill oldest outstanding query if the number of sockets + * exceeds the quota to keep the room for new queries. + */ + oldestsocket = ISC_LIST_HEAD(disp->activesockets); + oldestresp = oldestsocket->resp; + if (oldestresp != NULL && !oldestresp->item_out) { + rev = allocate_event(oldestresp->disp); + if (rev != NULL) { + rev->buffer.base = NULL; + rev->result = ISC_R_CANCELED; + rev->id = oldestresp->id; + ISC_EVENT_INIT(rev, sizeof(*rev), 0, + NULL, DNS_EVENT_DISPATCH, + oldestresp->action, + oldestresp->arg, oldestresp, + NULL, NULL); + oldestresp->item_out = ISC_TRUE; + isc_task_send(oldestresp->task, + ISC_EVENT_PTR(&rev)); + } + } + + /* + * Move this entry to the tail so that it won't (easily) be + * examined before actually being canceled. + */ + ISC_LIST_UNLINK(disp->activesockets, oldestsocket, link); + ISC_LIST_APPEND(disp->activesockets, oldestsocket, link); + } + + qid = DNS_QID(disp); + LOCK(&qid->lock); + + if ((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0) { + /* + * Get a separate UDP socket with a random port number. + */ + result = get_dispsocket(disp, dest, sockmgr, qid, &dispsocket, + &localport); + if (result != ISC_R_SUCCESS) { + UNLOCK(&qid->lock); + UNLOCK(&disp->lock); + return (result); + } + } else { + localport = disp->localport; + } + /* * Try somewhat hard to find an unique ID. */ - id = (dns_messageid_t)dispatch_arc4random(disp->mgr); - qid = DNS_QID(disp); - LOCK(&qid->lock); - bucket = dns_hash(qid, dest, id, disp->localport); + id = (dns_messageid_t)dispatch_arc4random(DISP_ARC4CTX(disp)); + bucket = dns_hash(qid, dest, id, localport); ok = ISC_FALSE; for (i = 0; i < 64; i++) { - if (bucket_search(qid, dest, id, disp->localport, bucket) == - NULL) { + if (entry_search(qid, dest, id, localport, bucket) == NULL) { ok = ISC_TRUE; break; } id += qid->qid_increment; id &= 0x0000ffff; - bucket = dns_hash(qid, dest, id, disp->localport); + bucket = dns_hash(qid, dest, id, localport); } if (!ok) { @@ -2131,6 +2884,8 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, if (res == NULL) { UNLOCK(&qid->lock); UNLOCK(&disp->lock); + if (dispsocket != NULL) + destroy_dispsocket(disp, &dispsocket); return (ISC_R_NOMEMORY); } @@ -2140,11 +2895,14 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, isc_task_attach(task, &res->task); res->disp = disp; res->id = id; - res->port = disp->localport; + res->port = localport; res->bucket = bucket; res->host = *dest; res->action = action; res->arg = arg; + res->dispsocket = dispsocket; + if (dispsocket != NULL) + dispsocket->resp = res; res->item_out = ISC_FALSE; ISC_LIST_INIT(res->items); ISC_LINK_INIT(res, link); @@ -2156,27 +2914,62 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, "attached to task %p", res->task); if (((disp->attributes & DNS_DISPATCHATTR_UDP) != 0) || - ((disp->attributes & DNS_DISPATCHATTR_CONNECTED) != 0)) - startrecv(disp); + ((disp->attributes & DNS_DISPATCHATTR_CONNECTED) != 0)) { + result = startrecv(disp, dispsocket); + if (result != ISC_R_SUCCESS) { + LOCK(&qid->lock); + ISC_LIST_UNLINK(qid->qid_table[bucket], res, link); + UNLOCK(&qid->lock); + + if (dispsocket != NULL) + destroy_dispsocket(disp, &dispsocket); + + disp->refcount--; + disp->requests--; + + UNLOCK(&disp->lock); + isc_task_detach(&res->task); + isc_mempool_put(disp->mgr->rpool, res); + return (result); + } + } + + if (dispsocket != NULL) + ISC_LIST_APPEND(disp->activesockets, dispsocket, link); UNLOCK(&disp->lock); *idp = id; *resp = res; + if ((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0) + INSIST(res->dispsocket != NULL); + return (ISC_R_SUCCESS); } +isc_result_t +dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, + isc_task_t *task, isc_taskaction_t action, void *arg, + dns_messageid_t *idp, dns_dispentry_t **resp) +{ + REQUIRE(VALID_DISPATCH(disp)); + REQUIRE((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) == 0); + + return (dns_dispatch_addresponse2(disp, dest, task, action, arg, + idp, resp, NULL)); +} + void dns_dispatch_starttcp(dns_dispatch_t *disp) { REQUIRE(VALID_DISPATCH(disp)); - dispatch_log(disp, LVL(90), "starttcp %p", disp->task); + dispatch_log(disp, LVL(90), "starttcp %p", disp->task[0]); LOCK(&disp->lock); disp->attributes |= DNS_DISPATCHATTR_CONNECTED; - startrecv(disp); + (void)startrecv(disp, NULL); UNLOCK(&disp->lock); } @@ -2187,6 +2980,7 @@ dns_dispatch_removeresponse(dns_dispentry_t **resp, dns_dispatchmgr_t *mgr; dns_dispatch_t *disp; dns_dispentry_t *res; + dispsocket_t *dispsock; dns_dispatchevent_t *ev; unsigned int bucket; isc_boolean_t killit; @@ -2224,8 +3018,14 @@ dns_dispatch_removeresponse(dns_dispentry_t **resp, killit = ISC_FALSE; if (disp->refcount == 0) { if (disp->recv_pending > 0) - isc_socket_cancel(disp->socket, disp->task, + isc_socket_cancel(disp->socket, disp->task[0], ISC_SOCKCANCEL_RECV); + for (dispsock = ISC_LIST_HEAD(disp->activesockets); + dispsock != NULL; + dispsock = ISC_LIST_NEXT(dispsock, link)) { + isc_socket_cancel(dispsock->socket, dispsock->task, + ISC_SOCKCANCEL_RECV); + } disp->shutting_down = 1; } @@ -2261,6 +3061,12 @@ dns_dispatch_removeresponse(dns_dispentry_t **resp, request_log(disp, res, LVL(90), "detaching from task %p", res->task); isc_task_detach(&res->task); + if (res->dispsocket != NULL) { + isc_socket_cancel(res->dispsocket->socket, + res->dispsocket->task, ISC_SOCKCANCEL_RECV); + res->dispsocket->resp = NULL; + } + /* * Free any buffered requests as well */ @@ -2277,12 +3083,12 @@ dns_dispatch_removeresponse(dns_dispentry_t **resp, if (disp->shutting_down == 1) do_cancel(disp); else - startrecv(disp); + (void)startrecv(disp, NULL); killit = destroy_disp_ok(disp); UNLOCK(&disp->lock); if (killit) - isc_task_send(disp->task, &disp->ctlevent); + isc_task_send(disp->task[0], &disp->ctlevent); } static void @@ -2297,13 +3103,15 @@ do_cancel(dns_dispatch_t *disp) { qid = DNS_QID(disp); /* - * Search for the first response handler without packets outstanding. + * Search for the first response handler without packets outstanding + * unless a specific hander is given. */ LOCK(&qid->lock); for (resp = linear_first(qid); - resp != NULL && resp->item_out != ISC_FALSE; + resp != NULL && resp->item_out; /* Empty. */) resp = linear_next(qid, resp); + /* * No one to send the cancel event to, so nothing to do. */ @@ -2336,6 +3144,16 @@ dns_dispatch_getsocket(dns_dispatch_t *disp) { return (disp->socket); } +isc_socket_t * +dns_dispatch_getentrysocket(dns_dispentry_t *resp) { + REQUIRE(VALID_RESPONSE(resp)); + + if (resp->dispsocket != NULL) + return (resp->dispsocket->socket); + else + return (NULL); +} + isc_result_t dns_dispatch_getlocaladdress(dns_dispatch_t *disp, isc_sockaddr_t *addrp) { @@ -2369,11 +3187,27 @@ dns_dispatch_cancel(dns_dispatch_t *disp) { return; } +unsigned int +dns_dispatch_getattributes(dns_dispatch_t *disp) { + REQUIRE(VALID_DISPATCH(disp)); + + /* + * We don't bother locking disp here; it's the caller's responsibility + * to use only non volatile flags. + */ + return (disp->attributes); +} + void dns_dispatch_changeattributes(dns_dispatch_t *disp, unsigned int attributes, unsigned int mask) { REQUIRE(VALID_DISPATCH(disp)); + /* Exclusive attribute can only be set on creation */ + REQUIRE((attributes & DNS_DISPATCHATTR_EXCLUSIVE) == 0); + /* Also, a dispatch with randomport specified cannot start listening */ + REQUIRE((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) == 0 || + (attributes & DNS_DISPATCHATTR_NOLISTEN) == 0); /* XXXMLG * Should check for valid attributes here! @@ -2385,13 +3219,13 @@ dns_dispatch_changeattributes(dns_dispatch_t *disp, if ((disp->attributes & DNS_DISPATCHATTR_NOLISTEN) != 0 && (attributes & DNS_DISPATCHATTR_NOLISTEN) == 0) { disp->attributes &= ~DNS_DISPATCHATTR_NOLISTEN; - startrecv(disp); + (void)startrecv(disp, NULL); } else if ((disp->attributes & DNS_DISPATCHATTR_NOLISTEN) == 0 && (attributes & DNS_DISPATCHATTR_NOLISTEN) != 0) { disp->attributes |= DNS_DISPATCHATTR_NOLISTEN; if (disp->recv_pending != 0) - isc_socket_cancel(disp->socket, disp->task, + isc_socket_cancel(disp->socket, disp->task[0], ISC_SOCKCANCEL_RECV); } } @@ -2415,7 +3249,7 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event) { INSIST(sevent->n <= disp->mgr->buffersize); newsevent = (isc_socketevent_t *) isc_event_allocate(disp->mgr->mctx, NULL, - DNS_EVENT_IMPORTRECVDONE, udp_recv, + DNS_EVENT_IMPORTRECVDONE, udp_shrecv, disp, sizeof(isc_socketevent_t)); if (newsevent == NULL) return; @@ -2434,8 +3268,8 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event) { newsevent->timestamp = sevent->timestamp; newsevent->pktinfo = sevent->pktinfo; newsevent->attributes = sevent->attributes; - - isc_task_send(disp->task, ISC_EVENT_PTR(&newsevent)); + + isc_task_send(disp->task[0], ISC_EVENT_PTR(&newsevent)); } #if 0 diff --git a/lib/dns/dst_parse.c b/lib/dns/dst_parse.c index aad79984960a..ce361ef2d128 100644 --- a/lib/dns/dst_parse.c +++ b/lib/dns/dst_parse.c @@ -1,9 +1,9 @@ /* - * Portions Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2002 Internet Software Consortium. * Portions Copyright (C) 1995-2000 by Network Associates, Inc. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -18,7 +18,7 @@ /*% * Principal Author: Brian Wellington - * $Id: dst_parse.c,v 1.1.6.7 2006/05/16 03:59:26 marka Exp $ + * $Id: dst_parse.c,v 1.1.6.9 2008/01/22 23:27:05 tbox Exp $ */ #include @@ -260,6 +260,7 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex, REQUIRE(priv != NULL); priv->nelements = 0; + memset(priv->elements, 0, sizeof(priv->elements)); #define NEXTTOKEN(lex, opt, token) \ do { \ @@ -351,7 +352,6 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex, goto fail; } - memset(&priv->elements[n], 0, sizeof(dst_private_element_t)); tag = find_value(DST_AS_STR(token), alg); if (tag < 0 || TAG_ALG(tag) != alg) { ret = DST_R_INVALIDPRIVATEKEY; diff --git a/lib/dns/dst_parse.h b/lib/dns/dst_parse.h index 8656f5964fb4..665fcfc0c98c 100644 --- a/lib/dns/dst_parse.h +++ b/lib/dns/dst_parse.h @@ -1,9 +1,9 @@ /* - * Portions Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 2000-2002 Internet Software Consortium. * Portions Copyright (C) 1995-2000 by Network Associates, Inc. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -16,7 +16,7 @@ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dst_parse.h,v 1.1.6.5 2006/01/27 23:57:44 marka Exp $ */ +/* $Id: dst_parse.h,v 1.1.6.7 2008/05/15 23:46:06 tbox Exp $ */ /*! \file */ #ifndef DST_DST_PARSE_H @@ -75,7 +75,7 @@ #define HMACSHA256_NTAGS 2 #define TAG_HMACSHA256_KEY ((DST_ALG_HMACSHA256 << TAG_SHIFT) + 0) -#define TAG_HMACSHA256_BITS ((DST_ALG_HMACSHA224 << TAG_SHIFT) + 1) +#define TAG_HMACSHA256_BITS ((DST_ALG_HMACSHA256 << TAG_SHIFT) + 1) #define HMACSHA384_NTAGS 2 #define TAG_HMACSHA384_KEY ((DST_ALG_HMACSHA384 << TAG_SHIFT) + 0) diff --git a/lib/dns/include/dns/dispatch.h b/lib/dns/include/dns/dispatch.h index 914993bf9e8a..8c143207b9ea 100644 --- a/lib/dns/include/dns/dispatch.h +++ b/lib/dns/include/dns/dispatch.h @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dispatch.h,v 1.48.18.5.12.2 2008/07/23 07:28:56 tbox Exp $ */ +/* $Id: dispatch.h,v 1.48.18.9 2008/06/24 23:45:55 tbox Exp $ */ #ifndef DNS_DISPATCH_H #define DNS_DISPATCH_H 1 @@ -105,7 +105,7 @@ struct dns_dispatchevent { * The dispatcher is a TCP or UDP socket. * * _IPV4, _IPV6 - * The dispatcher uses an ipv4 or ipv6 socket. + * The dispatcher uses an IPv4 or IPv6 socket. * * _NOLISTEN * The dispatcher should not listen on the socket. @@ -115,7 +115,12 @@ struct dns_dispatchevent { * accept replies from them. * * _RANDOMPORT - * Allocate UDP port randomly. + * Previously used to indicate that the port of a dispatch UDP must be + * chosen randomly. This behavior now always applies and the attribute + * is obsoleted. + * + * _EXCLUSIVE + * A separate socket will be used on-demand for each transaction. */ #define DNS_DISPATCHATTR_PRIVATE 0x00000001U #define DNS_DISPATCHATTR_TCP 0x00000002U @@ -125,7 +130,8 @@ struct dns_dispatchevent { #define DNS_DISPATCHATTR_NOLISTEN 0x00000020U #define DNS_DISPATCHATTR_MAKEQUERY 0x00000040U #define DNS_DISPATCHATTR_CONNECTED 0x00000080U -#define DNS_DISPATCHATTR_RANDOMPORT 0x00000100U +/*#define DNS_DISPATCHATTR_RANDOMPORT 0x00000100U*/ +#define DNS_DISPATCHATTR_EXCLUSIVE 0x00000200U /*@}*/ isc_result_t @@ -187,26 +193,34 @@ dns_dispatchmgr_getblackhole(dns_dispatchmgr_t *mgr); void dns_dispatchmgr_setblackportlist(dns_dispatchmgr_t *mgr, - dns_portlist_t *portlist); + dns_portlist_t *portlist); /*%< - * Sets a list of UDP ports that won't be used when creating a udp - * dispatch with a wildcard port. + * This function is deprecated. Use dns_dispatchmgr_setavailports() instead. * * Requires: *\li mgr is a valid dispatchmgr - *\li portlist to be NULL or a valid port list. */ dns_portlist_t * dns_dispatchmgr_getblackportlist(dns_dispatchmgr_t *mgr); /*%< - * Return the current port list. + * This function is deprecated and always returns NULL. * * Requires: *\li mgr is a valid dispatchmgr */ - +isc_result_t +dns_dispatchmgr_setavailports(dns_dispatchmgr_t *mgr, isc_portset_t *v4portset, + isc_portset_t *v6portset); +/*%< + * Sets a list of UDP ports that can be used for outgoing UDP messages. + * + * Requires: + *\li mgr is a valid dispatchmgr + *\li v4portset is NULL or a valid port set + *\li v6portset is NULL or a valid port set + */ isc_result_t dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr, @@ -318,6 +332,12 @@ dns_dispatch_starttcp(dns_dispatch_t *disp); *\li 'disp' is valid. */ +isc_result_t +dns_dispatch_addresponse2(dns_dispatch_t *disp, isc_sockaddr_t *dest, + isc_task_t *task, isc_taskaction_t action, void *arg, + isc_uint16_t *idp, dns_dispentry_t **resp, + isc_socketmgr_t *sockmgr); + isc_result_t dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, isc_task_t *task, isc_taskaction_t action, void *arg, @@ -341,6 +361,10 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest, * *\li "resp" be non-NULL and *resp be NULL * + *\li "sockmgr" be NULL or a valid socket manager. If 'disp' has + * the DNS_DISPATCHATTR_EXCLUSIVE attribute, this must not be NULL, + * which also means dns_dispatch_addresponse() cannot be used. + * * Ensures: * *\li <id, dest> is a unique tuple. That means incoming messages @@ -367,10 +391,12 @@ dns_dispatch_removeresponse(dns_dispentry_t **resp, *\li "resp" != NULL and "*resp" contain a value previously allocated * by dns_dispatch_addresponse(); * - *\li May only be called from within the task given as the 'task' + *\li May only be called from within the task given as the 'task' * argument to dns_dispatch_addresponse() when allocating '*resp'. */ +isc_socket_t * +dns_dispatch_getentrysocket(dns_dispentry_t *resp); isc_socket_t * dns_dispatch_getsocket(dns_dispatch_t *disp); @@ -384,7 +410,7 @@ dns_dispatch_getsocket(dns_dispatch_t *disp); *\li The socket the dispatcher is using. */ -isc_result_t +isc_result_t dns_dispatch_getlocaladdress(dns_dispatch_t *disp, isc_sockaddr_t *addrp); /*%< * Return the local address for this dispatch. @@ -395,7 +421,7 @@ dns_dispatch_getlocaladdress(dns_dispatch_t *disp, isc_sockaddr_t *addrp); *\li addrp to be non null. * * Returns: - *\li ISC_R_SUCCESS + *\li ISC_R_SUCCESS *\li ISC_R_NOTIMPLEMENTED */ @@ -408,6 +434,16 @@ dns_dispatch_cancel(dns_dispatch_t *disp); *\li disp is valid. */ +unsigned int +dns_dispatch_getattributes(dns_dispatch_t *disp); +/*%< + * Return the attributes (DNS_DISPATCHATTR_xxx) of this dispatch. Only the + * non-changeable attributes are expected to be referenced by the caller. + * + * Requires: + *\li disp is valid. + */ + void dns_dispatch_changeattributes(dns_dispatch_t *disp, unsigned int attributes, unsigned int mask); @@ -421,7 +457,7 @@ dns_dispatch_changeattributes(dns_dispatch_t *disp, * new = (old & ~mask) | (attributes & mask) * \endcode * - * This function has a side effect when #DNS_DISPATCHATTR_NOLISTEN changes. + * This function has a side effect when #DNS_DISPATCHATTR_NOLISTEN changes. * When the flag becomes off, the dispatch will start receiving on the * corresponding socket. When the flag becomes on, receive events on the * corresponding socket will be canceled. diff --git a/lib/dns/journal.c b/lib/dns/journal.c index 6cfb5aff5acb..4e4010fcb6f9 100644 --- a/lib/dns/journal.c +++ b/lib/dns/journal.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: journal.c,v 1.86.18.12 2007/09/07 05:21:41 marka Exp $ */ +/* $Id: journal.c,v 1.86.18.14 2008/09/25 04:01:36 tbox Exp $ */ #include @@ -41,7 +41,7 @@ #include #include -/*! \file +/*! \file * \brief Journalling. * * A journal file consists of @@ -107,7 +107,7 @@ static isc_boolean_t bind8_compat = ISC_TRUE; /* XXX config */ } while (0) #define CHECK(op) \ - do { result = (op); \ + do { result = (op); \ if (result != ISC_R_SUCCESS) goto failure; \ } while (0) @@ -149,11 +149,11 @@ dns_db_createsoatuple(dns_db_t *db, dns_dbversion_t *ver, isc_mem_t *mctx, dns_rdataset_init(&rdataset); result = dns_db_findrdataset(db, node, ver, dns_rdatatype_soa, 0, (isc_stdtime_t)0, &rdataset, NULL); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) goto freenode; result = dns_rdataset_first(&rdataset); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) goto freenode; dns_rdataset_current(&rdataset, &rdata); @@ -674,7 +674,7 @@ dns_journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write, isc_result_t result; int namelen; char backup[1024]; - + result = journal_open(mctx, filename, write, write, journalp); if (result == ISC_R_NOTFOUND) { namelen = strlen(filename); @@ -1367,7 +1367,7 @@ dns_journal_print(isc_mem_t *mctx, const char *filename, FILE *file) { if (result != ISC_R_SUCCESS) { isc_log_write(JOURNAL_COMMON_LOGARGS, ISC_LOG_ERROR, "journal open failure: %s: %s", - isc_result_totext(result), j->filename); + isc_result_totext(result), filename); return (result); } @@ -1405,9 +1405,9 @@ dns_journal_print(isc_mem_t *mctx, const char *filename, FILE *file) { if (n_soa == 3) n_soa = 1; if (n_soa == 0) { - isc_log_write(JOURNAL_COMMON_LOGARGS, ISC_LOG_ERROR, - "%s: journal file corrupt: missing " - "initial SOA", j->filename); + isc_log_write(JOURNAL_COMMON_LOGARGS, ISC_LOG_ERROR, + "%s: journal file corrupt: missing " + "initial SOA", j->filename); FAIL(ISC_R_UNEXPECTED); } CHECK(dns_difftuple_create(diff.mctx, n_soa == 1 ? @@ -1984,7 +1984,7 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial, dns_journal_destroy(&j); return (ISC_R_SUCCESS); } - + if (DNS_SERIAL_GT(j->header.begin.serial, serial) || DNS_SERIAL_GT(serial, j->header.end.serial)) { dns_journal_destroy(&j); @@ -2008,7 +2008,7 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial, } CHECK(journal_open(mctx, newname, ISC_TRUE, ISC_TRUE, &new)); - + /* * Remove overhead so space test below can succeed. */ @@ -2066,7 +2066,7 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial, result = ISC_R_NOMEMORY; goto failure; } - + CHECK(journal_seek(j, best_guess.offset)); CHECK(journal_seek(new, indexend)); for (i = 0; i < copy_length; i += size) { @@ -2139,7 +2139,7 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial, goto failure; } } - + dns_journal_destroy(&j); result = ISC_R_SUCCESS; diff --git a/lib/dns/master.c b/lib/dns/master.c index aa04be014125..b04f2eb63623 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: master.c,v 1.148.18.18 2007/08/28 07:20:04 tbox Exp $ */ +/* $Id: master.c,v 1.148.18.21 2008/01/17 23:45:58 tbox Exp $ */ /*! \file */ @@ -536,7 +536,7 @@ loadctx_create(dns_masterformat_t format, isc_mem_t *mctx, lctx->inc = NULL; result = incctx_create(mctx, origin, &lctx->inc); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) goto cleanup_ctx; lctx->format = format; @@ -708,7 +708,7 @@ openfile_raw(dns_loadctx_t *lctx, const char *master_file) { if (result != ISC_R_SUCCESS && result != ISC_R_FILENOTFOUND) { UNEXPECTED_ERROR(__FILE__, __LINE__, "isc_stdio_open() failed: %s", - isc_result_totext(result)); + isc_result_totext(result)); } return (result); @@ -912,7 +912,7 @@ check_ns(dns_loadctx_t *lctx, isc_token_t *token, const char *source, callback = lctx->callbacks->error; else callback = lctx->callbacks->warn; - + if (token->type == isc_tokentype_string) { struct in_addr addr; struct in6_addr addr6; @@ -1237,7 +1237,7 @@ load_text(dns_loadctx_t *lctx) { /* CLASS? */ GETTOKEN(lctx->lex, 0, &token, ISC_FALSE); if (dns_rdataclass_fromtext(&rdclass, - &token.value.as_textregion) + &token.value.as_textregion) == ISC_R_SUCCESS) { GETTOKEN(lctx->lex, 0, &token, ISC_FALSE); @@ -1421,7 +1421,7 @@ load_text(dns_loadctx_t *lctx) { target_save = target; ictx->glue = new_name; ictx->glue_in_use = new_in_use; - ictx->in_use[ictx->glue_in_use] = + ictx->in_use[ictx->glue_in_use] = ISC_TRUE; } else { result = commit(callbacks, lctx, @@ -1689,7 +1689,7 @@ load_text(dns_loadctx_t *lctx) { dns_name_format(name, namebuf, sizeof(namebuf)); result = DNS_R_BADOWNERNAME; desc = dns_result_totext(result); - if ((lctx->options & DNS_MASTER_CHECKNAMESFAIL) != 0) { + if ((lctx->options & DNS_MASTER_CHECKNAMESFAIL) != 0) { (*callbacks->error)(callbacks, "%s:%lu: %s: %s", source, line, @@ -1739,9 +1739,9 @@ load_text(dns_loadctx_t *lctx) { dns_name_format(ictx->current, namebuf, sizeof(namebuf)); (*callbacks->error)(callbacks, - "%s:%lu: SOA " - "record not at top of zone (%s)", - source, line, namebuf); + "%s:%lu: SOA " + "record not at top of zone (%s)", + source, line, namebuf); result = DNS_R_NOTZONETOP; if (MANYERRS(lctx, result)) { SETRESULT(lctx, result); @@ -1801,7 +1801,9 @@ load_text(dns_loadctx_t *lctx) { if (type == dns_rdatatype_rrsig && lctx->warn_sigexpired) { dns_rdata_rrsig_t sig; - (void)dns_rdata_tostruct(&rdata[rdcount], &sig, NULL); + result = dns_rdata_tostruct(&rdata[rdcount], &sig, + NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (isc_serial_lt(sig.timeexpire, now)) { (*callbacks->warn)(callbacks, "%s:%lu: " @@ -1813,7 +1815,7 @@ load_text(dns_loadctx_t *lctx) { if ((type == dns_rdatatype_sig || type == dns_rdatatype_nxt) && lctx->warn_tcr && (lctx->options & DNS_MASTER_ZONE) != 0 && - (lctx->options & DNS_MASTER_SLAVE) == 0) { + (lctx->options & DNS_MASTER_SLAVE) == 0) { (*callbacks->warn)(callbacks, "%s:%lu: old style DNSSEC " " zone detected", source, line); lctx->warn_tcr = ISC_FALSE; @@ -1871,7 +1873,7 @@ load_text(dns_loadctx_t *lctx) { ISC_LIST_INITANDPREPEND(glue_list, this, link); else ISC_LIST_INITANDPREPEND(current_list, this, - link); + link); } else if (this->ttl != lctx->ttl) { (*callbacks->warn)(callbacks, "%s:%lu: " @@ -1881,7 +1883,7 @@ load_text(dns_loadctx_t *lctx) { } ISC_LIST_APPEND(this->rdata, &rdata[rdcount], link); - if (ictx->glue != NULL) + if (ictx->glue != NULL) ictx->glue_line = line; else ictx->current_line = line; @@ -2222,7 +2224,7 @@ load_raw(dns_loadctx_t *lctx) { isc_uint16_t rdlen; dns_rdata_init(&rdata[i]); - + if (sequential_read && isc_buffer_availablelength(&target) < MINTSIZ) { unsigned int j; diff --git a/lib/dns/masterdump.c b/lib/dns/masterdump.c index 03716e246c69..1ffdfcb717ab 100644 --- a/lib/dns/masterdump.c +++ b/lib/dns/masterdump.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: masterdump.c,v 1.73.18.14 2006/08/08 06:39:36 marka Exp $ */ +/* $Id: masterdump.c,v 1.73.18.16 2008/08/13 23:46:04 tbox Exp $ */ /*! \file */ @@ -183,7 +183,7 @@ struct dns_dumpctx { isc_buffer_t *buffer, FILE *f); }; -#define NXDOMAIN(x) (((x)->attributes & DNS_RDATASETATTR_NXDOMAIN) != 0) +#define NXDOMAIN(x) (((x)->attributes & DNS_RDATASETATTR_NXDOMAIN) != 0) /*% * Output tabs and spaces to go from column '*current' to @@ -1071,13 +1071,13 @@ dns_dumpctx_detach(dns_dumpctx_t **dctxp) { dns_dbversion_t * dns_dumpctx_version(dns_dumpctx_t *dctx) { - REQUIRE(DNS_DCTX_VALID(dctx)); + REQUIRE(DNS_DCTX_VALID(dctx)); return (dctx->version); } dns_db_t * dns_dumpctx_db(dns_dumpctx_t *dctx) { - REQUIRE(DNS_DCTX_VALID(dctx)); + REQUIRE(DNS_DCTX_VALID(dctx)); return (dctx->db); } @@ -1412,12 +1412,11 @@ dumptostreaminc(dns_dumpctx_t *dctx) { "dumptostreaminc(%p) new nodes -> %d\n", dctx, dctx->nodes); } - result = dns_dbiterator_pause(dctx->dbiter); - RUNTIME_CHECK(result == ISC_R_SUCCESS); result = DNS_R_CONTINUE; } else if (result == ISC_R_NOMORE) result = ISC_R_SUCCESS; fail: + RUNTIME_CHECK(dns_dbiterator_pause(dctx->dbiter) == ISC_R_SUCCESS); isc_mem_put(dctx->mctx, buffer.base, buffer.length); return (result); } @@ -1703,10 +1702,10 @@ dns_master_dumpnode(isc_mem_t *mctx, dns_db_t *db, dns_dbversion_t *version, isc_result_t dns_master_stylecreate(dns_master_style_t **stylep, unsigned int flags, - unsigned int ttl_column, unsigned int class_column, - unsigned int type_column, unsigned int rdata_column, - unsigned int line_length, unsigned int tab_width, - isc_mem_t *mctx) + unsigned int ttl_column, unsigned int class_column, + unsigned int type_column, unsigned int rdata_column, + unsigned int line_length, unsigned int tab_width, + isc_mem_t *mctx) { dns_master_style_t *style; diff --git a/lib/dns/message.c b/lib/dns/message.c index e8e494861877..8c56377d879e 100644 --- a/lib/dns/message.c +++ b/lib/dns/message.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: message.c,v 1.222.18.14 2007/08/28 07:20:04 tbox Exp $ */ +/* $Id: message.c,v 1.222.18.16 2008/07/28 23:46:20 tbox Exp $ */ /*! \file */ @@ -592,6 +592,9 @@ msgreset(dns_message_t *msg, isc_boolean_t everything) { msg->tsigkey = NULL; } + if (msg->tsigctx != NULL) + dst_context_destroy(&msg->tsigctx); + if (msg->query.base != NULL) { if (msg->free_query != 0) isc_mem_put(msg->mctx, msg->query.base, @@ -987,7 +990,7 @@ getquestions(isc_buffer_t *source, dns_message_t *msg, dns_decompress_t *dctx, if (name == NULL) return (ISC_R_NOMEMORY); free_name = ISC_TRUE; - + offsets = newoffsets(msg); if (offsets == NULL) { result = ISC_R_NOMEMORY; @@ -1297,7 +1300,7 @@ getsection(isc_buffer_t *source, dns_message_t *msg, dns_decompress_t *dctx, } /* * When the rdata is empty, the data pointer is - * never dereferenced, but it must still be non-NULL. + * never dereferenced, but it must still be non-NULL. * Casting 1 rather than "" avoids warnings about * discarding the const attribute of a string, * for compilers that would warn about such things. @@ -1436,7 +1439,7 @@ getsection(isc_buffer_t *source, dns_message_t *msg, dns_decompress_t *dctx, rdataset) == ISC_R_SUCCESS); - if (rdtype != dns_rdatatype_opt && + if (rdtype != dns_rdatatype_opt && rdtype != dns_rdatatype_tsig && !issigzero) { diff --git a/lib/dns/rbt.c b/lib/dns/rbt.c index b8db99a50aa1..4d3ca3aa449e 100644 --- a/lib/dns/rbt.c +++ b/lib/dns/rbt.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rbt.c,v 1.128.18.7 2005/10/13 01:26:06 marka Exp $ */ +/* $Id: rbt.c,v 1.128.18.10 2008/03/31 13:32:59 fdupont Exp $ */ /*! \file */ @@ -203,7 +203,7 @@ static inline void rotate_right(dns_rbtnode_t *node, dns_rbtnode_t **rootp); static void -dns_rbt_addonlevel(dns_rbtnode_t *node, dns_rbtnode_t *current, int order, +dns_rbt_addonlevel(dns_rbtnode_t *node, dns_rbtnode_t *current, int order, dns_rbtnode_t **rootp); static void @@ -227,7 +227,7 @@ dns_rbt_create(isc_mem_t *mctx, void (*deleter)(void *, void *), isc_result_t result; #endif dns_rbt_t *rbt; - + REQUIRE(mctx != NULL); REQUIRE(rbtp != NULL && *rbtp == NULL); @@ -576,7 +576,7 @@ dns_rbt_addnode(dns_rbt_t *rbt, dns_name_t *name, dns_rbtnode_t **nodep) { rbt->nodecount++; dns_name_getlabelsequence(name, nlabels - hlabels, - hlabels, new_name); + hlabels, new_name); hash_node(rbt, new_current, new_name); if (common_labels == @@ -772,7 +772,7 @@ dns_rbt_findnode(dns_rbt_t *rbt, dns_name_t *name, dns_name_t *foundname, dns_name_init(&hash_name, NULL); hashagain: - /* + /* * Hash includes tail. */ dns_name_getlabelsequence(name, @@ -832,7 +832,7 @@ dns_rbt_findnode(dns_rbt_t *rbt, dns_name_t *name, dns_name_t *foundname, */ current = NULL; continue; - + nohash: #endif /* DNS_RBT_USEHASH */ /* @@ -1375,7 +1375,7 @@ dns_rbt_fullnamefromnode(dns_rbtnode_t *node, dns_name_t *name) { result = dns_name_concatenate(name, ¤t, name, NULL); if (result != ISC_R_SUCCESS) break; - + node = find_up(node); } while (! dns_name_isabsolute(name)); @@ -1642,7 +1642,7 @@ rotate_right(dns_rbtnode_t *node, dns_rbtnode_t **rootp) { * true red/black tree on a single level. */ static void -dns_rbt_addonlevel(dns_rbtnode_t *node, dns_rbtnode_t *current, int order, +dns_rbt_addonlevel(dns_rbtnode_t *node, dns_rbtnode_t *current, int order, dns_rbtnode_t **rootp) { dns_rbtnode_t *child, *root, *parent, *grandparent; @@ -2051,10 +2051,6 @@ dns_rbt_deletetreeflat(dns_rbt_t *rbt, unsigned int quantum, node = LEFT(node); goto traverse; } - if (RIGHT(node) != NULL) { - node = RIGHT(node); - goto traverse; - } if (DOWN(node) != NULL) { node = DOWN(node); goto traverse; @@ -2065,20 +2061,21 @@ dns_rbt_deletetreeflat(dns_rbt_t *rbt, unsigned int quantum, /* * Note: we don't call unhash_node() here as we are destroying - * the complete rbt tree. - */ + * the complete rbt tree. + */ #if DNS_RBT_USEMAGIC node->magic = 0; #endif parent = PARENT(node); + if (RIGHT(node) != NULL) + PARENT(RIGHT(node)) = parent; if (parent != NULL) { if (LEFT(parent) == node) - LEFT(parent) = NULL; + LEFT(parent) = RIGHT(node); else if (DOWN(parent) == node) - DOWN(parent) = NULL; - else if (RIGHT(parent) == node) - RIGHT(parent) = NULL; - } + DOWN(parent) = RIGHT(node); + } else + parent = RIGHT(node); isc_mem_put(rbt->mctx, node, NODE_SIZE(node)); rbt->nodecount--; node = parent; @@ -2191,6 +2188,7 @@ dns_rbtnodechain_init(dns_rbtnodechain_t *chain, isc_mem_t *mctx) { chain->end = NULL; chain->level_count = 0; chain->level_matches = 0; + memset(chain->levels, 0, sizeof(chain->levels)); chain->magic = CHAIN_MAGIC; } diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index 1d729d027634..462a718dfa0e 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rbtdb.c,v 1.196.18.48 2007/08/28 07:20:04 tbox Exp $ */ +/* $Id: rbtdb.c,v 1.196.18.53 2008/01/31 23:46:05 tbox Exp $ */ /*! \file */ @@ -195,7 +195,7 @@ struct noqname { void * nsecsig; }; -typedef struct acachectl acachectl_t; +typedef struct acachectl acachectl_t; typedef struct rdatasetheader { /*% @@ -219,7 +219,7 @@ typedef struct rdatasetheader { * Otherwise, it points up to the header whose down pointer points * at this header. */ - + struct rdatasetheader *down; /*%< * Points to the header for the next older version of @@ -387,7 +387,7 @@ static void rdataset_current(dns_rdataset_t *rdataset, dns_rdata_t *rdata); static void rdataset_clone(dns_rdataset_t *source, dns_rdataset_t *target); static unsigned int rdataset_count(dns_rdataset_t *rdataset); static isc_result_t rdataset_getnoqname(dns_rdataset_t *rdataset, - dns_name_t *name, + dns_name_t *name, dns_rdataset_t *nsec, dns_rdataset_t *nsecsig); static isc_result_t rdataset_getadditional(dns_rdataset_t *rdataset, @@ -604,13 +604,13 @@ adjust_quantum(unsigned int old, isc_time_t *start) { /* Smooth */ new = (new + old * 3) / 4; - + isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_CACHE, ISC_LOG_DEBUG(1), "adjust_quantum -> %d", new); return (new); } - + static void free_rbtdb(dns_rbtdb_t *rbtdb, isc_boolean_t log, isc_event_t *event) { unsigned int i; @@ -647,7 +647,7 @@ free_rbtdb(dns_rbtdb_t *rbtdb, isc_boolean_t log, isc_event_t *event) { if (event == NULL) event = isc_event_allocate(rbtdb->common.mctx, NULL, - DNS_EVENT_FREESTORAGE, + DNS_EVENT_FREESTORAGE, free_rbtdb_callback, rbtdb, sizeof(isc_event_t)); @@ -890,7 +890,7 @@ free_acachearray(isc_mem_t *mctx, rdatasetheader_t *header, /* * Sanity check: since an additional cache entry has a reference to * the original DB node (in the callback arg), there should be no - * acache entries when the node can be freed. + * acache entries when the node can be freed. */ for (i = 0; i < count; i++) INSIST(array[i].entry == NULL && array[i].cbarg == NULL); @@ -1241,7 +1241,7 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node, isc_rwlocktype_write); RUNTIME_CHECK(result == ISC_R_SUCCESS || result == ISC_R_LOCKBUSY); - + write_locked = ISC_TF(result == ISC_R_SUCCESS); } else write_locked = ISC_TRUE; @@ -1388,6 +1388,7 @@ closeversion(dns_db_t *db, dns_dbversion_t **versionp, isc_boolean_t commit) { rbtdb_serial_t serial, least_serial; dns_rbtnode_t *rbtnode; unsigned int refs; + isc_boolean_t writer; REQUIRE(VALID_RBTDB(rbtdb)); version = (rbtdb_version_t *)*versionp; @@ -1407,6 +1408,7 @@ closeversion(dns_db_t *db, dns_dbversion_t **versionp, isc_boolean_t commit) { RBTDB_LOCK(&rbtdb->lock, isc_rwlocktype_write); serial = version->serial; + writer = version->writer; if (version->writer) { if (commit) { unsigned cur_ref; @@ -1539,7 +1541,7 @@ closeversion(dns_db_t *db, dns_dbversion_t **versionp, isc_boolean_t commit) { /* * Update the zone's secure status. */ - if (version->writer && commit && !IS_CACHE(rbtdb)) + if (writer && commit && !IS_CACHE(rbtdb)) rbtdb->secure = iszonesecure(db, rbtdb->origin_node); if (cleanup_version != NULL) { @@ -1751,7 +1753,7 @@ zone_zonecut_callback(dns_rbtnode_t *node, dns_name_t *name, void *arg) { if (header != NULL) { if (header->type == dns_rdatatype_dname) dname_header = header; - else if (header->type == + else if (header->type == RBTDB_RDATATYPE_SIGDNAME) sigdname_header = header; else if (node != onode || @@ -1983,7 +1985,7 @@ valid_glue(rbtdb_search_t *search, dns_name_t *name, rbtdb_rdatatype_t type, count = raw[0] * 256 + raw[1]; #if DNS_RDATASET_FIXED raw += 2 + (4 * count); -#else +#else raw += 2; #endif @@ -2997,7 +2999,7 @@ cache_zonecut_callback(dns_rbtnode_t *node, dns_name_t *name, void *arg) { UNUSED(name); lock = &(search->rbtdb->node_locks[node->locknum].lock); - locktype = isc_rwlocktype_read; + locktype = isc_rwlocktype_read; NODE_LOCK(lock, locktype); /* @@ -3026,7 +3028,7 @@ cache_zonecut_callback(dns_rbtnode_t *node, dns_name_t *name, void *arg) { * will eventually take the job as the last * resort. * We won't downgrade the lock, since other - * rdatasets are probably stale, too. + * rdatasets are probably stale, too. */ locktype = isc_rwlocktype_write; @@ -3262,7 +3264,7 @@ find_coveringnsec(rbtdb_search_t *search, dns_dbnode_t **nodep, matchtype = RBTDB_RDATATYPE_VALUE(dns_rdatatype_nsec, 0); sigmatchtype = RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, dns_rdatatype_nsec); - + do { node = NULL; dns_fixedname_init(&fname); @@ -3289,7 +3291,7 @@ find_coveringnsec(rbtdb_search_t *search, dns_dbnode_t **nodep, * This rdataset is stale. If no one else is * using the node, we can clean it up right * now, otherwise we mark it as stale, and the - * node as dirty, so it will get cleaned up + * node as dirty, so it will get cleaned up * later. */ if ((header->ttl <= now - RBTDB_VIRTUAL) && @@ -4211,7 +4213,7 @@ cache_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, * can get write access. */ locktype = isc_rwlocktype_write; - + /* * We don't check if refcurrent(rbtnode) == 0 * and try to free like we do in cache_find(), @@ -4482,7 +4484,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, for (topheader = rbtnode->data; topheader != NULL; topheader = topheader->next) { - if (topheader->type == + if (topheader->type == RBTDB_RDATATYPE_NCACHEANY) break; } @@ -4496,7 +4498,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, * The NXDOMAIN/NODATA(QTYPE=ANY) * is more trusted. */ - + free_rdataset(rbtdb->common.mctx, newheader); if (addedrdataset != NULL) @@ -4576,7 +4578,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, INSIST(rbtversion->serial >= header->serial); merged = NULL; result = ISC_R_SUCCESS; - + if ((options & DNS_DBADD_EXACT) != 0) flags |= DNS_RDATASLAB_EXACT; if ((options & DNS_DBADD_EXACTTTL) != 0 && @@ -4622,9 +4624,9 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, header->trust >= newheader->trust && dns_rdataslab_equalx((unsigned char *)header, (unsigned char *)newheader, - (unsigned int)(sizeof(*newheader)), + (unsigned int)(sizeof(*newheader)), rbtdb->common.rdclass, - (dns_rdatatype_t)header->type)) { + (dns_rdatatype_t)header->type)) { /* * Honour the new ttl if it is less than the * older one. @@ -4649,7 +4651,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, header->trust >= newheader->trust && dns_rdataslab_equal((unsigned char *)header, (unsigned char *)newheader, - (unsigned int)(sizeof(*newheader)))) { + (unsigned int)(sizeof(*newheader)))) { /* * Honour the new ttl if it is less than the * older one. @@ -5050,7 +5052,7 @@ subtractrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, if ((options & DNS_DBSUB_EXACT) != 0) result = DNS_R_NOTEXACT; else - result = DNS_R_UNCHANGED; + result = DNS_R_UNCHANGED; } if (result == ISC_R_SUCCESS && newrdataset != NULL) @@ -5514,7 +5516,7 @@ dns_rbtdb_create } rbtdb->node_locks[i].exiting = ISC_FALSE; } - + /* * Attach to the mctx. The database will persist so long as there * are references to it, and attaching to the mctx ensures that our @@ -5661,7 +5663,7 @@ rdataset_first(dns_rdataset_t *rdataset) { rdataset->private5 = NULL; return (ISC_R_NOMORE); } - + #if DNS_RDATASET_FIXED if ((rdataset->attributes & DNS_RDATASETATTR_LOADORDER) == 0) raw += 2 + (4 * count); @@ -5928,7 +5930,7 @@ rdatasetiter_next(dns_rdatasetiter_t *iterator) { if (rdtype == 0) { covers = RBTDB_RDATATYPE_EXT(header->type); negtype = RBTDB_RDATATYPE_VALUE(covers, 0); - } else + } else negtype = RBTDB_RDATATYPE_VALUE(0, rdtype); for (header = header->next; header != NULL; header = top_next) { top_next = header->next; @@ -6517,12 +6519,13 @@ acache_callback(dns_acacheentry_t *entry, void **arg) { } count = cbarg->count; - if (acarray[count].entry == entry) + if (acarray != NULL && acarray[count].entry == entry) { acarray[count].entry = NULL; - INSIST(acarray[count].cbarg != NULL); - isc_mem_put(rbtdb->common.mctx, acarray[count].cbarg, - sizeof(acache_cbarg_t)); - acarray[count].cbarg = NULL; + INSIST(acarray[count].cbarg == cbarg); + isc_mem_put(rbtdb->common.mctx, cbarg, sizeof(acache_cbarg_t)); + acarray[count].cbarg = NULL; + } else + isc_mem_put(rbtdb->common.mctx, cbarg, sizeof(acache_cbarg_t)); dns_acache_detachentry(&entry); @@ -6664,9 +6667,7 @@ rdataset_setadditional(dns_rdataset_t *rdataset, dns_rdatasetadditional_t type, NODE_UNLOCK(nodelock, isc_rwlocktype_write); if (oldentry != NULL) { - if (oldcbarg != NULL) - acache_cancelentry(rbtdb->common.mctx, oldentry, - &oldcbarg); + acache_cancelentry(rbtdb->common.mctx, oldentry, &oldcbarg); dns_acache_detachentry(&oldentry); } @@ -6692,7 +6693,7 @@ rdataset_setadditional(dns_rdataset_t *rdataset, dns_rdatasetadditional_t type, static isc_result_t rdataset_putadditional(dns_acache_t *acache, dns_rdataset_t *rdataset, dns_rdatasetadditional_t type, dns_rdatatype_t qtype) -{ +{ dns_rbtdb_t *rbtdb = rdataset->private1; dns_rbtnode_t *rbtnode = rdataset->private2; unsigned char *raw = rdataset->private3; /* RDATASLAB */ @@ -6751,8 +6752,7 @@ rdataset_putadditional(dns_acache_t *acache, dns_rdataset_t *rdataset, NODE_UNLOCK(nodelock, isc_rwlocktype_write); if (entry != NULL) { - if (cbarg != NULL) - acache_cancelentry(rbtdb->common.mctx, entry, &cbarg); + acache_cancelentry(rbtdb->common.mctx, entry, &cbarg); dns_acache_detachentry(&entry); } diff --git a/lib/dns/rdata/generic/nsec_47.c b/lib/dns/rdata/generic/nsec_47.c index f3e56ca237ad..dd391052c399 100644 --- a/lib/dns/rdata/generic/nsec_47.c +++ b/lib/dns/rdata/generic/nsec_47.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,11 +15,11 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: nsec_47.c,v 1.7 2004/03/05 05:10:15 marka Exp $ */ +/* $Id: nsec_47.c,v 1.7.20.2 2008/07/15 23:46:14 tbox Exp $ */ /* reviewed: Wed Mar 15 18:21:15 PST 2000 by brister */ -/* draft-ietf-dnsext-nsec-rdata-01.txt */ +/* RFC 3845 */ #ifndef RDATA_GENERIC_NSEC_47_C #define RDATA_GENERIC_NSEC_47_C @@ -255,7 +255,7 @@ fromstruct_nsec(ARGS_FROMSTRUCT) { window = nsec->typebits[i]; len = nsec->typebits[i+1]; i += 2; - INSIST(first || window > lastwindow); + INSIST(first || window > lastwindow); INSIST(len > 0 && len <= 32); INSIST(i + len <= nsec->len); INSIST(nsec->typebits[i + len - 1] != 0); diff --git a/lib/dns/rdata/generic/nsec_47.h b/lib/dns/rdata/generic/nsec_47.h index ff034833b9f8..5c52447a5b5d 100644 --- a/lib/dns/rdata/generic/nsec_47.h +++ b/lib/dns/rdata/generic/nsec_47.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -18,10 +18,10 @@ #ifndef GENERIC_NSEC_47_H #define GENERIC_NSEC_47_H 1 -/* $Id: nsec_47.h,v 1.4.20.2 2005/04/29 00:16:37 marka Exp $ */ +/* $Id: nsec_47.h,v 1.4.20.4 2008/07/15 23:46:14 tbox Exp $ */ /*! - * \brief Per draft-ietf-dnsext-nsec-rdata-01.txt */ + * \brief Per RFC 3845 */ typedef struct dns_rdata_nsec { dns_rdatacommon_t common; diff --git a/lib/dns/rdata/generic/txt_16.c b/lib/dns/rdata/generic/txt_16.c index fa3ffef8d59a..01ca87ac0885 100644 --- a/lib/dns/rdata/generic/txt_16.c +++ b/lib/dns/rdata/generic/txt_16.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: txt_16.c,v 1.41 2004/03/05 05:10:18 marka Exp $ */ +/* $Id: txt_16.c,v 1.41.18.2 2008/02/15 23:45:53 tbox Exp $ */ /* Reviewed: Thu Mar 16 15:40:00 PST 2000 by bwelling */ @@ -142,7 +142,7 @@ fromstruct_txt(ARGS_FROMSTRUCT) { while (region.length > 0) { length = uint8_fromregion(®ion); isc_region_consume(®ion, 1); - if (region.length <= length) + if (region.length < length) return (ISC_R_UNEXPECTEDEND); isc_region_consume(®ion, length); } diff --git a/lib/dns/rdata/in_1/apl_42.c b/lib/dns/rdata/in_1/apl_42.c index 42b2e7f5d942..2fce328507a7 100644 --- a/lib/dns/rdata/in_1/apl_42.c +++ b/lib/dns/rdata/in_1/apl_42.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: apl_42.c,v 1.8.18.2 2005/04/29 00:16:42 marka Exp $ */ +/* $Id: apl_42.c,v 1.8.18.4 2008/01/22 23:27:06 tbox Exp $ */ /* RFC3123 */ @@ -49,7 +49,7 @@ fromtext_in_apl(ARGS_FROMTEXT) { isc_tokentype_string, ISC_TRUE)); if (token.type != isc_tokentype_string) break; - + cp = DNS_AS_STR(token); neg = ISC_TF(*cp == '!'); if (neg) @@ -259,7 +259,7 @@ fromstruct_in_apl(ARGS_FROMSTRUCT) { REQUIRE(apl->common.rdtype == type); REQUIRE(apl->common.rdclass == rdclass); REQUIRE(apl->apl != NULL || apl->apl_len == 0); - + isc_buffer_init(&b, apl->apl, apl->apl_len); isc_buffer_add(&b, apl->apl_len); isc_buffer_setactive(&b, apl->apl_len); @@ -306,37 +306,88 @@ freestruct_in_apl(ARGS_FREESTRUCT) { isc_result_t dns_rdata_apl_first(dns_rdata_in_apl_t *apl) { + isc_uint32_t length; + + REQUIRE(apl != NULL); REQUIRE(apl->common.rdtype == 42); REQUIRE(apl->common.rdclass == 1); REQUIRE(apl->apl != NULL || apl->apl_len == 0); + /* + * If no APL return ISC_R_NOMORE. + */ + if (apl->apl == NULL) + return (ISC_R_NOMORE); + + /* + * Sanity check data. + */ + INSIST(apl->apl_len > 3U); + length = apl->apl[apl->offset + 3] & 0x7f; + INSIST(length <= apl->apl_len); + apl->offset = 0; - return ((apl->apl_len != 0) ? ISC_R_SUCCESS : ISC_R_NOMORE); + return (ISC_R_SUCCESS); } isc_result_t dns_rdata_apl_next(dns_rdata_in_apl_t *apl) { + isc_uint32_t length; + + REQUIRE(apl != NULL); REQUIRE(apl->common.rdtype == 42); REQUIRE(apl->common.rdclass == 1); REQUIRE(apl->apl != NULL || apl->apl_len == 0); - if (apl->offset + 3 < apl->apl_len) + /* + * No APL or have already reached the end return ISC_R_NOMORE. + */ + if (apl->apl == NULL || apl->offset == apl->apl_len) return (ISC_R_NOMORE); + + /* + * Sanity check data. + */ + INSIST(apl->offset < apl->apl_len); + INSIST(apl->apl_len > 3U); + INSIST(apl->offset <= apl->apl_len - 4U); + length = apl->apl[apl->offset + 3] & 0x7f; + /* + * 16 to 32 bits promotion as 'length' is 32 bits so there is + * no overflow problems. + */ + INSIST(length + apl->offset <= apl->apl_len); + apl->offset += apl->apl[apl->offset + 3] & 0x7f; return ((apl->offset >= apl->apl_len) ? ISC_R_SUCCESS : ISC_R_NOMORE); } isc_result_t dns_rdata_apl_current(dns_rdata_in_apl_t *apl, dns_rdata_apl_ent_t *ent) { + isc_uint32_t length; + REQUIRE(apl != NULL); REQUIRE(apl->common.rdtype == 42); REQUIRE(apl->common.rdclass == 1); REQUIRE(ent != NULL); REQUIRE(apl->apl != NULL || apl->apl_len == 0); + REQUIRE(apl->offset <= apl->apl_len); - if (apl->offset >= apl->apl_len) + if (apl->offset == apl->apl_len) return (ISC_R_NOMORE); + /* + * Sanity check data. + */ + INSIST(apl->apl_len > 3U); + INSIST(apl->offset <= apl->apl_len - 4U); + length = apl->apl[apl->offset + 3] & 0x7f; + /* + * 16 to 32 bits promotion as 'length' is 32 bits so there is + * no overflow problems. + */ + INSIST(length + apl->offset <= apl->apl_len); + ent->family = (apl->apl[apl->offset] << 8) + apl->apl[apl->offset + 1]; ent->prefix = apl->apl[apl->offset + 2]; ent->length = apl->apl[apl->offset + 3] & 0x7f; diff --git a/lib/dns/rdata/in_1/naptr_35.c b/lib/dns/rdata/in_1/naptr_35.c index 0e5961a9e64a..9a880ea8433d 100644 --- a/lib/dns/rdata/in_1/naptr_35.c +++ b/lib/dns/rdata/in_1/naptr_35.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: naptr_35.c,v 1.47.18.2 2005/04/29 00:16:42 marka Exp $ */ +/* $Id: naptr_35.c,v 1.47.18.4 2008/02/15 23:45:53 tbox Exp $ */ /* Reviewed: Thu Mar 16 16:52:50 PST 2000 by bwelling */ @@ -154,7 +154,7 @@ totext_in_naptr(ARGS_TOTEXT) { static inline isc_result_t fromwire_in_naptr(ARGS_FROMWIRE) { - dns_name_t name; + dns_name_t name; isc_region_t sr; REQUIRE(type == 35); @@ -165,7 +165,7 @@ fromwire_in_naptr(ARGS_FROMWIRE) { dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - dns_name_init(&name, NULL); + dns_name_init(&name, NULL); /* * Order, preference. @@ -321,8 +321,8 @@ fromstruct_in_naptr(ARGS_FROMSTRUCT) { REQUIRE(naptr->common.rdtype == type); REQUIRE(naptr->common.rdclass == rdclass); REQUIRE(naptr->flags != NULL || naptr->flags_len == 0); - REQUIRE(naptr->service != NULL && naptr->service_len == 0); - REQUIRE(naptr->regexp != NULL && naptr->regexp_len == 0); + REQUIRE(naptr->service != NULL || naptr->service_len == 0); + REQUIRE(naptr->regexp != NULL || naptr->regexp_len == 0); UNUSED(type); UNUSED(rdclass); diff --git a/lib/dns/request.c b/lib/dns/request.c index c0348fe94f8f..64a3a4e31cfa 100644 --- a/lib/dns/request.c +++ b/lib/dns/request.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: request.c,v 1.72.18.5.42.2 2008/07/23 07:28:56 tbox Exp $ */ +/* $Id: request.c,v 1.72.18.8 2008/07/22 03:51:44 marka Exp $ */ /*! \file */ @@ -121,6 +121,7 @@ static isc_result_t req_render(dns_message_t *message, isc_buffer_t **buffer, static void req_senddone(isc_task_t *task, isc_event_t *event); static void req_response(isc_task_t *task, isc_event_t *event); static void req_timeout(isc_task_t *task, isc_event_t *event); +static isc_socket_t * req_getsocket(dns_request_t *request); static void req_connected(isc_task_t *task, isc_event_t *event); static void req_sendevent(dns_request_t *request, isc_result_t result); static void req_cancel(dns_request_t *request); @@ -146,6 +147,7 @@ dns_requestmgr_create(isc_mem_t *mctx, isc_socket_t *socket; isc_result_t result; int i; + unsigned int dispattr; req_log(ISC_LOG_DEBUG(3), "dns_requestmgr_create"); @@ -154,13 +156,14 @@ dns_requestmgr_create(isc_mem_t *mctx, REQUIRE(socketmgr != NULL); REQUIRE(taskmgr != NULL); REQUIRE(dispatchmgr != NULL); + UNUSED(socket); if (dispatchv4 != NULL) { - socket = dns_dispatch_getsocket(dispatchv4); - REQUIRE(isc_socket_gettype(socket) == isc_sockettype_udp); + dispattr = dns_dispatch_getattributes(dispatchv4); + REQUIRE((dispattr & DNS_DISPATCHATTR_UDP) != 0); } if (dispatchv6 != NULL) { - socket = dns_dispatch_getsocket(dispatchv6); - REQUIRE(isc_socket_gettype(socket) == isc_sockettype_udp); + dispattr = dns_dispatch_getattributes(dispatchv6); + REQUIRE((dispattr & DNS_DISPATCHATTR_UDP) != 0); } requestmgr = isc_mem_get(mctx, sizeof(*requestmgr)); @@ -425,12 +428,19 @@ req_send(dns_request_t *request, isc_task_t *task, isc_sockaddr_t *address) { isc_region_t r; isc_socket_t *socket; isc_result_t result; + unsigned int dispattr; req_log(ISC_LOG_DEBUG(3), "req_send: request %p", request); REQUIRE(VALID_REQUEST(request)); - socket = dns_dispatch_getsocket(request->dispatch); + dispattr = dns_dispatch_getattributes(request->dispatch); + socket = req_getsocket(request); isc_buffer_usedregion(request->query, &r); + /* + * We could connect the socket when we are using an exclusive dispatch + * as we do in resolver.c, but we prefer implementation simplicity + * at this moment. + */ result = isc_socket_sendto(socket, &r, task, req_senddone, request, address, NULL); if (result == ISC_R_SUCCESS) @@ -685,7 +695,7 @@ dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf, REQUIRE(action != NULL); REQUIRE(requestp != NULL && *requestp == NULL); REQUIRE(timeout > 0); - if (srcaddr != NULL) + if (srcaddr != NULL) REQUIRE(isc_sockaddr_pf(srcaddr) == isc_sockaddr_pf(destaddr)); mctx = requestmgr->mctx; @@ -733,7 +743,7 @@ dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf, result = DNS_R_FORMERR; goto cleanup; } - + if ((options & DNS_REQUESTOPT_TCP) != 0 || r.length > 512) tcp = ISC_TRUE; @@ -742,14 +752,16 @@ dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf, if (result != ISC_R_SUCCESS) goto cleanup; - socket = dns_dispatch_getsocket(request->dispatch); - INSIST(socket != NULL); - result = dns_dispatch_addresponse(request->dispatch, destaddr, task, - req_response, request, &id, - &request->dispentry); + result = dns_dispatch_addresponse2(request->dispatch, destaddr, task, + req_response, request, &id, + &request->dispentry, + requestmgr->socketmgr); if (result != ISC_R_SUCCESS) goto cleanup; + socket = req_getsocket(request); + INSIST(socket != NULL); + result = isc_buffer_allocate(mctx, &request->query, r.length + (tcp ? 2 : 0)); if (result != ISC_R_SUCCESS) @@ -857,7 +869,7 @@ dns_request_createvia2(dns_requestmgr_t *requestmgr, dns_message_t *message, udpretries, task, action, arg, requestp)); } - + isc_result_t dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message, isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr, @@ -883,7 +895,7 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message, REQUIRE(action != NULL); REQUIRE(requestp != NULL && *requestp == NULL); REQUIRE(timeout > 0); - if (srcaddr != NULL) + if (srcaddr != NULL) REQUIRE(isc_sockaddr_pf(srcaddr) == isc_sockaddr_pf(destaddr)); mctx = requestmgr->mctx; @@ -935,13 +947,14 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message, if (result != ISC_R_SUCCESS) goto cleanup; - socket = dns_dispatch_getsocket(request->dispatch); - INSIST(socket != NULL); - result = dns_dispatch_addresponse(request->dispatch, destaddr, task, - req_response, request, &id, - &request->dispentry); + result = dns_dispatch_addresponse2(request->dispatch, destaddr, task, + req_response, request, &id, + &request->dispentry, + requestmgr->socketmgr); if (result != ISC_R_SUCCESS) goto cleanup; + socket = req_getsocket(request); + INSIST(socket != NULL); message->id = id; if (setkey) { @@ -1137,7 +1150,7 @@ do_cancel(isc_task_t *task, isc_event_t *event) { if (!DNS_REQUEST_CANCELED(request)) req_cancel(request); send_if_done(request, ISC_R_CANCELED); - UNLOCK(&request->requestmgr->locks[request->hash]); + UNLOCK(&request->requestmgr->locks[request->hash]); } void @@ -1226,6 +1239,21 @@ dns_request_destroy(dns_request_t **requestp) { *** Private: request. ***/ +static isc_socket_t * +req_getsocket(dns_request_t *request) { + unsigned int dispattr; + isc_socket_t *socket; + + dispattr = dns_dispatch_getattributes(request->dispatch); + if ((dispattr & DNS_DISPATCHATTR_EXCLUSIVE) != 0) { + INSIST(request->dispentry != NULL); + socket = dns_dispatch_getentrysocket(request->dispentry); + } else + socket = dns_dispatch_getsocket(request->dispatch); + + return (socket); +} + static void req_connected(isc_task_t *task, isc_event_t *event) { isc_socketevent_t *sevent = (isc_socketevent_t *)event; @@ -1425,6 +1453,7 @@ req_destroy(dns_request_t *request) { static void req_cancel(dns_request_t *request) { isc_socket_t *socket; + unsigned int dispattr; REQUIRE(VALID_REQUEST(request)); @@ -1437,16 +1466,23 @@ req_cancel(dns_request_t *request) { if (request->timer != NULL) isc_timer_detach(&request->timer); + dispattr = dns_dispatch_getattributes(request->dispatch); + socket = NULL; + if (DNS_REQUEST_CONNECTING(request) || DNS_REQUEST_SENDING(request)) { + if ((dispattr & DNS_DISPATCHATTR_EXCLUSIVE) != 0) { + if (request->dispentry != NULL) { + socket = dns_dispatch_getentrysocket( + request->dispentry); + } + } else + socket = dns_dispatch_getsocket(request->dispatch); + if (DNS_REQUEST_CONNECTING(request) && socket != NULL) + isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_CONNECT); + if (DNS_REQUEST_SENDING(request) && socket != NULL) + isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_SEND); + } if (request->dispentry != NULL) dns_dispatch_removeresponse(&request->dispentry, NULL); - if (DNS_REQUEST_CONNECTING(request)) { - socket = dns_dispatch_getsocket(request->dispatch); - isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_CONNECT); - } - if (DNS_REQUEST_SENDING(request)) { - socket = dns_dispatch_getsocket(request->dispatch); - isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_SEND); - } dns_dispatch_detach(&request->dispatch); } diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index cdf5788d7a3b..dc648c9c3673 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.c,v 1.284.18.66.8.4 2008/07/24 05:00:48 jinmei Exp $ */ +/* $Id: resolver.c,v 1.284.18.79 2008/10/17 22:02:13 jinmei Exp $ */ /*! \file */ @@ -121,6 +121,7 @@ typedef struct query { isc_mem_t * mctx; dns_dispatchmgr_t * dispatchmgr; dns_dispatch_t * dispatch; + isc_boolean_t exclusivesocket; dns_adbaddrinfo_t * addrinfo; isc_socket_t * tcpsocket; isc_time_t start; @@ -213,7 +214,7 @@ struct fetchctx { unsigned int restarts; /*% - * The number of timeouts that have occurred since we + * The number of timeouts that have occurred since we * last successfully received a response packet. This * is used for EDNS0 black hole detection. */ @@ -221,7 +222,7 @@ struct fetchctx { /*% * Look aside state for DS lookups. */ - dns_name_t nsname; + dns_name_t nsname; dns_fetch_t * nsfetch; dns_rdataset_t nsrrset; @@ -296,8 +297,8 @@ struct dns_resolver { unsigned int magic; isc_mem_t * mctx; isc_mutex_t lock; - isc_mutex_t nlock; - isc_mutex_t primelock; + isc_mutex_t nlock; + isc_mutex_t primelock; dns_rdataclass_t rdclass; isc_socketmgr_t * socketmgr; isc_timermgr_t * timermgr; @@ -307,7 +308,9 @@ struct dns_resolver { unsigned int options; dns_dispatchmgr_t * dispatchmgr; dns_dispatch_t * dispatchv4; + isc_boolean_t exclusivev4; dns_dispatch_t * dispatchv6; + isc_boolean_t exclusivev6; unsigned int nbuckets; fctxbucket_t * buckets; isc_uint32_t lame_ttl; @@ -331,7 +334,7 @@ struct dns_resolver { isc_eventlist_t whenshutdown; unsigned int activebuckets; isc_boolean_t priming; - unsigned int spillat; + unsigned int spillat; /* clients-per-query */ /* Locked by primelock. */ dns_fetch_t * primefetch; /* Locked by nlock. */ @@ -369,8 +372,10 @@ static isc_result_t ncache_adderesult(dns_message_t *message, isc_stdtime_t now, dns_ttl_t maxttl, dns_rdataset_t *ardataset, isc_result_t *eresultp); -static void validated(isc_task_t *task, isc_event_t *event); +static void validated(isc_task_t *task, isc_event_t *event); static void maybe_destroy(fetchctx_t *fctx); +static void add_bad(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, + isc_result_t reason); static isc_result_t valcreate(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, dns_name_t *name, @@ -562,6 +567,7 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, unsigned int factor; dns_adbfind_t *find; dns_adbaddrinfo_t *addrinfo; + isc_socket_t *socket; query = *queryp; fctx = query->fctx; @@ -643,6 +649,38 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, 0, factor); } + /* + * Check for any outstanding socket events. If they exist, cancel + * them and let the event handlers finish the cleanup. The resolver + * only needs to worry about managing the connect and send events; + * the dispatcher manages the recv events. + */ + if (RESQUERY_CONNECTING(query)) { + /* + * Cancel the connect. + */ + if (query->tcpsocket != NULL) { + isc_socket_cancel(query->tcpsocket, NULL, + ISC_SOCKCANCEL_CONNECT); + } else if (query->dispentry != NULL) { + INSIST(query->exclusivesocket); + socket = dns_dispatch_getentrysocket(query->dispentry); + if (socket != NULL) + isc_socket_cancel(socket, NULL, + ISC_SOCKCANCEL_CONNECT); + } + } else if (RESQUERY_SENDING(query)) { + /* + * Cancel the pending send. + */ + if (query->exclusivesocket && query->dispentry != NULL) + socket = dns_dispatch_getentrysocket(query->dispentry); + else + socket = dns_dispatch_getsocket(query->dispatch); + if (socket != NULL) + isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_SEND); + } + if (query->dispentry != NULL) dns_dispatch_removeresponse(&query->dispentry, deventp); @@ -654,25 +692,6 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, if (query->tsigkey != NULL) dns_tsigkey_detach(&query->tsigkey); - /* - * Check for any outstanding socket events. If they exist, cancel - * them and let the event handlers finish the cleanup. The resolver - * only needs to worry about managing the connect and send events; - * the dispatcher manages the recv events. - */ - if (RESQUERY_CONNECTING(query)) - /* - * Cancel the connect. - */ - isc_socket_cancel(query->tcpsocket, NULL, - ISC_SOCKCANCEL_CONNECT); - else if (RESQUERY_SENDING(query)) - /* - * Cancel the pending send. - */ - isc_socket_cancel(dns_dispatch_getsocket(query->dispatch), - NULL, ISC_SOCKCANCEL_SEND); - if (query->dispatch != NULL) dns_dispatch_detach(&query->dispatch); @@ -777,6 +796,8 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) { unsigned int count = 0; isc_interval_t i; isc_boolean_t logit = ISC_FALSE; + unsigned int old_spillat; + unsigned int new_spillat = 0; /* initialized to silence compiler warnings */ /* * Caller must be holding the appropriate bucket lock. @@ -800,7 +821,7 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) { fctx->type == dns_rdatatype_any || fctx->type == dns_rdatatype_rrsig || fctx->type == dns_rdatatype_sig); - + /* * Negative results must be indicated in event->result. */ @@ -819,11 +840,15 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) { (count < fctx->res->spillatmax || fctx->res->spillatmax == 0)) { LOCK(&fctx->res->lock); if (count == fctx->res->spillat && !fctx->res->exiting) { + old_spillat = fctx->res->spillat; fctx->res->spillat += 5; if (fctx->res->spillat > fctx->res->spillatmax && fctx->res->spillatmax != 0) fctx->res->spillat = fctx->res->spillatmax; - logit = ISC_TRUE; + new_spillat = fctx->res->spillat; + if (new_spillat != old_spillat) { + logit = ISC_TRUE; + } isc_interval_set(&i, 20 * 60, 0); result = isc_timer_reset(fctx->res->spillattimer, isc_timertype_ticker, NULL, @@ -835,7 +860,7 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) { isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, DNS_LOGMODULE_RESOLVER, ISC_LOG_NOTICE, "clients-per-query increased to %u", - count + 1); + new_spillat); } } @@ -864,13 +889,86 @@ fctx_done(fetchctx_t *fctx, isc_result_t result) { } static void -resquery_senddone(isc_task_t *task, isc_event_t *event) { +process_sendevent(resquery_t *query, isc_event_t *event) { isc_socketevent_t *sevent = (isc_socketevent_t *)event; - resquery_t *query = event->ev_arg; isc_boolean_t retry = ISC_FALSE; isc_result_t result; fetchctx_t *fctx; + fctx = query->fctx; + + if (RESQUERY_CANCELED(query)) { + if (query->sends == 0 && query->connects == 0) { + /* + * This query was canceled while the + * isc_socket_sendto/connect() was in progress. + */ + if (query->tcpsocket != NULL) + isc_socket_detach(&query->tcpsocket); + resquery_destroy(&query); + } + } else { + switch (sevent->result) { + case ISC_R_SUCCESS: + break; + + case ISC_R_HOSTUNREACH: + case ISC_R_NETUNREACH: + case ISC_R_NOPERM: + case ISC_R_ADDRNOTAVAIL: + case ISC_R_CONNREFUSED: + + /* + * No route to remote. + */ + add_bad(fctx, query->addrinfo, sevent->result); + fctx_cancelquery(&query, NULL, NULL, ISC_TRUE); + retry = ISC_TRUE; + break; + + default: + fctx_cancelquery(&query, NULL, NULL, ISC_FALSE); + break; + } + } + + isc_event_free(&event); + + if (retry) { + /* + * Behave as if the idle timer has expired. For TCP + * this may not actually reflect the latest timer. + */ + fctx->attributes &= ~FCTX_ATTR_ADDRWAIT; + result = fctx_stopidletimer(fctx); + if (result != ISC_R_SUCCESS) + fctx_done(fctx, result); + else + fctx_try(fctx); + } +} + +static void +resquery_udpconnected(isc_task_t *task, isc_event_t *event) { + resquery_t *query = event->ev_arg; + + REQUIRE(event->ev_type == ISC_SOCKEVENT_CONNECT); + + QTRACE("udpconnected"); + + UNUSED(task); + + INSIST(RESQUERY_CONNECTING(query)); + + query->connects--; + + process_sendevent(query, event); +} + +static void +resquery_senddone(isc_task_t *task, isc_event_t *event) { + resquery_t *query = event->ev_arg; + REQUIRE(event->ev_type == ISC_SOCKEVENT_SENDDONE); QTRACE("senddone"); @@ -888,60 +986,13 @@ resquery_senddone(isc_task_t *task, isc_event_t *event) { INSIST(RESQUERY_SENDING(query)); query->sends--; - fctx = query->fctx; - if (RESQUERY_CANCELED(query)) { - if (query->sends == 0) { - /* - * This query was canceled while the - * isc_socket_sendto() was in progress. - */ - if (query->tcpsocket != NULL) - isc_socket_detach(&query->tcpsocket); - resquery_destroy(&query); - } - } else - switch (sevent->result) { - case ISC_R_SUCCESS: - break; - - case ISC_R_HOSTUNREACH: - case ISC_R_NETUNREACH: - case ISC_R_NOPERM: - case ISC_R_ADDRNOTAVAIL: - case ISC_R_CONNREFUSED: - - /* - * No route to remote. - */ - fctx_cancelquery(&query, NULL, NULL, ISC_TRUE); - retry = ISC_TRUE; - break; - - default: - fctx_cancelquery(&query, NULL, NULL, ISC_FALSE); - break; - } - - isc_event_free(&event); - - if (retry) { - /* - * Behave as if the idle timer has expired. For TCP - * this may not actually reflect the latest timer. - */ - fctx->attributes &= ~FCTX_ATTR_ADDRWAIT; - result = fctx_stopidletimer(fctx); - if (result != ISC_R_SUCCESS) - fctx_done(fctx, result); - else - fctx_try(fctx); - } + process_sendevent(query, event); } static inline isc_result_t fctx_addopt(dns_message_t *message, unsigned int version, isc_uint16_t udpsize) -{ +{ dns_rdataset_t *rdataset; dns_rdatalist_t *rdatalist; dns_rdata_t *rdata; @@ -1001,9 +1052,9 @@ fctx_setretryinterval(fetchctx_t *fctx, unsigned int rtt) { * list, and then we do exponential back-off. */ if (fctx->restarts < 3) - us = 500000; + us = 800000; else - us = (500000 << (fctx->restarts - 2)); + us = (800000 << (fctx->restarts - 2)); /* * Double the round-trip time. @@ -1077,6 +1128,7 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, */ query->dispatchmgr = res->dispatchmgr; query->dispatch = NULL; + query->exclusivesocket = ISC_FALSE; query->tcpsocket = NULL; if (res->view->peers != NULL) { dns_peer_t *peer = NULL; @@ -1159,53 +1211,21 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, if (result != ISC_R_SUCCESS) goto cleanup_query; } else { - isc_sockaddr_t localaddr; - unsigned int attrs, attrmask; - dns_dispatch_t *disp_base; - - attrs = 0; - attrs |= DNS_DISPATCHATTR_UDP; - attrs |= DNS_DISPATCHATTR_RANDOMPORT; - - attrmask = 0; - attrmask |= DNS_DISPATCHATTR_UDP; - attrmask |= DNS_DISPATCHATTR_TCP; - attrmask |= DNS_DISPATCHATTR_IPV4; - attrmask |= DNS_DISPATCHATTR_IPV6; - switch (isc_sockaddr_pf(&addrinfo->sockaddr)) { - case AF_INET: - disp_base = res->dispatchv4; - attrs |= DNS_DISPATCHATTR_IPV4; + case PF_INET: + dns_dispatch_attach(res->dispatchv4, + &query->dispatch); + query->exclusivesocket = res->exclusivev4; break; - case AF_INET6: - disp_base = res->dispatchv6; - attrs |= DNS_DISPATCHATTR_IPV6; + case PF_INET6: + dns_dispatch_attach(res->dispatchv6, + &query->dispatch); + query->exclusivesocket = res->exclusivev6; break; default: result = ISC_R_NOTIMPLEMENTED; goto cleanup_query; } - - result = dns_dispatch_getlocaladdress(disp_base, - &localaddr); - if (result != ISC_R_SUCCESS) - goto cleanup_query; - if (isc_sockaddr_getport(&localaddr) == 0) { - result = dns_dispatch_getudp(res->dispatchmgr, - res->socketmgr, - res->taskmgr, - &localaddr, - 4096, 1000, 32768, - 16411, 16433, - attrs, attrmask, - &query->dispatch); - if (result != ISC_R_SUCCESS) - goto cleanup_query; - } else { - dns_dispatch_attach(disp_base, - &query->dispatch); - } } /* * We should always have a valid dispatcher here. If we @@ -1378,13 +1398,14 @@ resquery_send(resquery_t *query) { /* * Get a query id from the dispatch. */ - result = dns_dispatch_addresponse(query->dispatch, - &query->addrinfo->sockaddr, - task, - resquery_response, - query, - &query->id, - &query->dispentry); + result = dns_dispatch_addresponse2(query->dispatch, + &query->addrinfo->sockaddr, + task, + resquery_response, + query, + &query->id, + &query->dispentry, + res->socketmgr); if (result != ISC_R_SUCCESS) goto cleanup_temps; @@ -1593,12 +1614,24 @@ resquery_send(resquery_t *query) { */ dns_message_reset(fctx->qmessage, DNS_MESSAGE_INTENTRENDER); - socket = dns_dispatch_getsocket(query->dispatch); + if (query->exclusivesocket) + socket = dns_dispatch_getentrysocket(query->dispentry); + else + socket = dns_dispatch_getsocket(query->dispatch); /* * Send the query! */ - if ((query->options & DNS_FETCHOPT_TCP) == 0) + if ((query->options & DNS_FETCHOPT_TCP) == 0) { address = &query->addrinfo->sockaddr; + if (query->exclusivesocket) { + result = isc_socket_connect(socket, address, task, + resquery_udpconnected, + query); + if (result != ISC_R_SUCCESS) + goto cleanup_message; + query->connects++; + } + } isc_buffer_usedregion(buffer, &r); /* @@ -1731,7 +1764,7 @@ resquery_connected(isc_task_t *task, isc_event_t *event) { } isc_event_free(&event); - + if (retry) { /* * Behave as if the idle timer has expired. For TCP @@ -1921,8 +1954,8 @@ add_bad(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, isc_result_t reason) { if (reason == DNS_R_LAME) /* already logged */ return; - if (reason == DNS_R_UNEXPECTEDRCODE && - fctx->rmessage->opcode == dns_rcode_servfail && + if (reason == DNS_R_UNEXPECTEDRCODE && + fctx->rmessage->rcode == dns_rcode_servfail && ISFORWARDER(addrinfo)) return; @@ -2196,6 +2229,13 @@ fctx_getaddresses(fetchctx_t *fctx) { } while (sa != NULL) { + if ((isc_sockaddr_pf(sa) == AF_INET && + fctx->res->dispatchv4 == NULL) || + (isc_sockaddr_pf(sa) == AF_INET6 && + fctx->res->dispatchv6 == NULL)) { + sa = ISC_LIST_NEXT(sa, link); + continue; + } ai = NULL; result = dns_adb_findaddrinfo(fctx->adb, sa, &ai, 0); /* XXXMLG */ @@ -2366,7 +2406,7 @@ possibly_mark(fetchctx_t *fctx, dns_adbaddrinfo_t *addr) isc_netaddr_fromsockaddr(&ipaddr, sa); blackhole = dns_dispatchmgr_getblackhole(res->dispatchmgr); (void) dns_peerlist_peerbyaddr(res->view->peers, &ipaddr, &peer); - + if (blackhole != NULL) { int match; @@ -2799,7 +2839,7 @@ fctx_doshutdown(isc_task_t *task, isc_event_t *event) { dns_validator_cancel(validator); validator = ISC_LIST_NEXT(validator, link); } - + if (fctx->nsfetch != NULL) dns_resolver_cancelfetch(fctx->nsfetch); @@ -3252,9 +3292,9 @@ is_lame(fetchctx_t *fctx) { static inline void log_lame(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo) { char namebuf[DNS_NAME_FORMATSIZE]; - char domainbuf[DNS_NAME_FORMATSIZE]; + char domainbuf[DNS_NAME_FORMATSIZE]; char addrbuf[ISC_SOCKADDR_FORMATSIZE]; - + dns_name_format(&fctx->name, namebuf, sizeof(namebuf)); dns_name_format(&fctx->domain, domainbuf, sizeof(domainbuf)); isc_sockaddr_format(&addrinfo->sockaddr, addrbuf, sizeof(addrbuf)); @@ -3822,9 +3862,9 @@ cache_name(fetchctx_t *fctx, dns_name_t *name, dns_adbaddrinfo_t *addrinfo, sizeof(typebuf)); dns_rdataclass_format(rdataset->rdclass, classbuf, sizeof(classbuf)); - isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, + isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, DNS_LOGMODULE_RESOLVER, ISC_LOG_NOTICE, - "check-names %s %s/%s/%s", + "check-names %s %s/%s/%s", fail ? "failure" : "warning", namebuf, typebuf, classbuf); if (fail) { @@ -4411,7 +4451,7 @@ chase_additional(fetchctx_t *fctx) { again: rescan = ISC_FALSE; - + for (result = dns_message_firstname(fctx->rmessage, section); result == ISC_R_SUCCESS; result = dns_message_nextname(fctx->rmessage, section)) { @@ -4491,7 +4531,7 @@ dname_target(dns_rdataset_t *rdataset, dns_name_t *qname, dns_name_t *oname, return (DNS_R_FORMERR); } dns_fixedname_init(&prefix); - dns_name_split(qname, nlabels, dns_fixedname_name(&prefix), NULL); + dns_name_split(qname, nlabels, dns_fixedname_name(&prefix), NULL); dns_fixedname_init(fixeddname); result = dns_name_concatenate(dns_fixedname_name(&prefix), &dname.dname, @@ -4650,7 +4690,7 @@ noanswer_response(fetchctx_t *fctx, dns_name_t *oqname, } /* - * A negative response has a SOA record (Type 2) + * A negative response has a SOA record (Type 2) * and a optional NS RRset (Type 1) or it has neither * a SOA or a NS RRset (Type 3, handled above) or * rcode is NXDOMAIN (handled above) in which case @@ -5363,7 +5403,7 @@ checknamessection(dns_message_t *message, dns_section_t section) { dns_name_t *name; dns_rdata_t rdata = DNS_RDATA_INIT; dns_rdataset_t *rdataset; - + for (result = dns_message_firstname(message, section); result == ISC_R_SUCCESS; result = dns_message_nextname(message, section)) @@ -5382,7 +5422,7 @@ checknamessection(dns_message_t *message, dns_section_t section) { ISC_FALSE) || !dns_rdata_checknames(&rdata, name, NULL)) { - rdataset->attributes |= + rdataset->attributes |= DNS_RDATASETATTR_CHECKNAMES; } dns_rdata_reset(&rdata); @@ -5512,6 +5552,19 @@ resquery_response(isc_task_t *task, isc_event_t *event) { * There's no hope for this query. */ keep_trying = ISC_TRUE; + + /* + * If this is a network error on an exclusive query + * socket, mark the server as bad so that we won't try + * it for this fetch again. + */ + if (query->exclusivesocket && + (devent->result == ISC_R_HOSTUNREACH || + devent->result == ISC_R_NETUNREACH || + devent->result == ISC_R_CONNREFUSED || + devent->result == ISC_R_CANCELED)) { + broken_server = devent->result; + } } goto done; } @@ -5662,12 +5715,17 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ if (message->rcode != dns_rcode_noerror && message->rcode != dns_rcode_nxdomain) { - if ((message->rcode == dns_rcode_formerr || - message->rcode == dns_rcode_notimp || - message->rcode == dns_rcode_servfail) && + if (((message->rcode == dns_rcode_formerr || + message->rcode == dns_rcode_notimp) || + (message->rcode == dns_rcode_servfail && + dns_message_getopt(message) == NULL)) && (query->options & DNS_FETCHOPT_NOEDNS0) == 0) { /* * It's very likely they don't like EDNS0. + * If the response code is SERVFAIL, also check if the + * response contains an OPT RR and don't cache the + * failure since it can be returned for various other + * reasons. * * XXXRTH We should check if the question * we're asking requires EDNS0, and @@ -6154,7 +6212,7 @@ spillattimer_countdown(isc_task_t *task, isc_event_t *event) { REQUIRE(VALID_RESOLVER(res)); UNUSED(task); - + LOCK(&res->lock); INSIST(!res->exiting); if (res->spillat > res->spillatmin) { @@ -6181,7 +6239,7 @@ isc_result_t dns_resolver_create(dns_view_t *view, isc_taskmgr_t *taskmgr, unsigned int ntasks, isc_socketmgr_t *socketmgr, - isc_timermgr_t *timermgr, + isc_timermgr_t *timermgr, unsigned int options, dns_dispatchmgr_t *dispatchmgr, dns_dispatch_t *dispatchv4, @@ -6193,6 +6251,7 @@ dns_resolver_create(dns_view_t *view, unsigned int i, buckets_created = 0; isc_task_t *task = NULL; char name[16]; + unsigned dispattr; /* * Create a resolver. @@ -6259,11 +6318,20 @@ dns_resolver_create(dns_view_t *view, } res->dispatchv4 = NULL; - if (dispatchv4 != NULL) + if (dispatchv4 != NULL) { dns_dispatch_attach(dispatchv4, &res->dispatchv4); + dispattr = dns_dispatch_getattributes(dispatchv4); + res->exclusivev4 = + ISC_TF((dispattr & DNS_DISPATCHATTR_EXCLUSIVE) != 0); + } + res->dispatchv6 = NULL; - if (dispatchv6 != NULL) + if (dispatchv6 != NULL) { dns_dispatch_attach(dispatchv6, &res->dispatchv6); + dispattr = dns_dispatch_getattributes(dispatchv6); + res->exclusivev6 = + ISC_TF((dispattr & DNS_DISPATCHATTR_EXCLUSIVE) != 0); + } res->references = 1; res->exiting = ISC_FALSE; @@ -6380,7 +6448,7 @@ prime_done(isc_task_t *task, isc_event_t *event) { UNLOCK(&res->primelock); UNLOCK(&res->lock); - + if (fevent->result == ISC_R_SUCCESS && res->view->cache != NULL && res->view->hints != NULL) { dns_cache_attachdb(res->view->cache, &db); @@ -6546,12 +6614,12 @@ dns_resolver_shutdown(dns_resolver_t *res) { fctx != NULL; fctx = ISC_LIST_NEXT(fctx, link)) fctx_shutdown(fctx); - if (res->dispatchv4 != NULL) { + if (res->dispatchv4 != NULL && !res->exclusivev4) { sock = dns_dispatch_getsocket(res->dispatchv4); isc_socket_cancel(sock, res->buckets[i].task, ISC_SOCKCANCEL_ALL); } - if (res->dispatchv6 != NULL) { + if (res->dispatchv6 != NULL && !res->exclusivev6) { sock = dns_dispatch_getsocket(res->dispatchv6); isc_socket_cancel(sock, res->buckets[i].task, ISC_SOCKCANCEL_ALL); @@ -6665,6 +6733,7 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, isc_event_t *event; unsigned int count = 0; unsigned int spillat; + unsigned int spillatmin; UNUSED(forwarders); @@ -6695,6 +6764,7 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, LOCK(&res->lock); spillat = res->spillat; + spillatmin = res->spillatmin; UNLOCK(&res->lock); LOCK(&res->buckets[bucketnum].lock); @@ -6711,7 +6781,7 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, break; } } - + /* * Is this a duplicate? */ @@ -6728,7 +6798,8 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, count++; } } - if (count >= res->spillatmin && res->spillatmin != 0) { + if (count >= spillatmin && spillatmin != 0) { + INSIST(fctx != NULL); if (count >= spillat) fctx->spilled = ISC_TRUE; if (fctx->spilled) { @@ -7004,7 +7075,7 @@ free_algorithm(void *node, void *arg) { isc_mem_put(mctx, algorithms, *algorithms); } - + void dns_resolver_reset_algorithms(dns_resolver_t *resolver) { @@ -7048,7 +7119,7 @@ dns_resolver_disable_algorithm(dns_resolver_t *resolver, dns_name_t *name, mask = 1 << (alg%8); result = dns_rbt_addnode(resolver->algorithms, name, &node); - + if (result == ISC_R_SUCCESS || result == ISC_R_EXISTS) { algorithms = node->data; if (algorithms == NULL || len > *algorithms) { @@ -7064,7 +7135,7 @@ dns_resolver_disable_algorithm(dns_resolver_t *resolver, dns_name_t *name, *new = len; node->data = new; if (algorithms != NULL) - isc_mem_put(resolver->mctx, algorithms, + isc_mem_put(resolver->mctx, algorithms, *algorithms); } else algorithms[len-1] |= mask; @@ -7132,7 +7203,7 @@ dns_resolver_resetmustbesecure(dns_resolver_t *resolver) { RWUNLOCK(&resolver->mbslock, isc_rwlocktype_write); #endif } - + static isc_boolean_t yes = ISC_TRUE, no = ISC_FALSE; isc_result_t @@ -7152,7 +7223,7 @@ dns_resolver_setmustbesecure(dns_resolver_t *resolver, dns_name_t *name, if (result != ISC_R_SUCCESS) goto cleanup; } - result = dns_rbt_addname(resolver->mustbesecure, name, + result = dns_rbt_addname(resolver->mustbesecure, name, value ? &yes : &no); cleanup: #if USE_MBSLOCK diff --git a/lib/dns/rootns.c b/lib/dns/rootns.c index f20a49da1855..a988bea1e4ff 100644 --- a/lib/dns/rootns.c +++ b/lib/dns/rootns.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rootns.c,v 1.26.18.5 2007/10/31 03:02:45 tbox Exp $ */ +/* $Id: rootns.c,v 1.26.18.7 2008/02/05 23:46:09 tbox Exp $ */ /*! \file */ @@ -45,8 +45,6 @@ static char root_ns[] = ";\n" "; Internet Root Nameservers\n" ";\n" -"; Thu Sep 23 17:57:37 PDT 1999\n" -";\n" "$TTL 518400\n" ". 518400 IN NS A.ROOT-SERVERS.NET.\n" ". 518400 IN NS B.ROOT-SERVERS.NET.\n" @@ -62,25 +60,31 @@ static char root_ns[] = ". 518400 IN NS L.ROOT-SERVERS.NET.\n" ". 518400 IN NS M.ROOT-SERVERS.NET.\n" "A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4\n" +"A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:BA3E::2:30\n" "B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201\n" "C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12\n" "D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90\n" "E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10\n" "F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241\n" +"F.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:2F::F\n" "G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4\n" "H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53\n" +"H.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:1::803F:235\n" "I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17\n" "J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30\n" +"J.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:C27::2:30\n" "K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129\n" +"K.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:7FD::1\n" "L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42\n" -"M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33\n"; +"M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33\n" +"M.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:DC3::35\n"; static isc_result_t in_rootns(dns_rdataset_t *rootns, dns_name_t *name) { isc_result_t result; dns_rdata_t rdata = DNS_RDATA_INIT; dns_rdata_ns_t ns; - + if (!dns_rdataset_isassociated(rootns)) return (ISC_R_NOTFOUND); @@ -99,7 +103,7 @@ in_rootns(dns_rdataset_t *rootns, dns_name_t *name) { return (result); } -static isc_result_t +static isc_result_t check_node(dns_rdataset_t *rootns, dns_name_t *name, dns_rdatasetiter_t *rdsiter) { isc_result_t result; @@ -227,7 +231,7 @@ dns_rootns_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, * Default to using the Internet root servers. */ result = dns_master_loadbuffer(&source, &db->origin, - &db->origin, db->rdclass, + &db->origin, db->rdclass, DNS_MASTER_HINT, &callbacks, db->mctx); } else @@ -262,11 +266,11 @@ report(dns_view_t *view, dns_name_t *name, isc_boolean_t missing, isc_buffer_t buffer; isc_result_t result; - if (strcmp(view->name, "_bind") != 0 && - strcmp(view->name, "_default") != 0) { - viewname = view->name; - sep = ": view "; - } + if (strcmp(view->name, "_bind") != 0 && + strcmp(view->name, "_default") != 0) { + viewname = view->name; + sep = ": view "; + } dns_name_format(name, namebuf, sizeof(namebuf)); dns_rdatatype_format(rdata->type, typebuf, sizeof(typebuf)); @@ -346,7 +350,7 @@ check_address_records(dns_view_t *view, dns_db_t *hints, dns_db_t *db, report(view, name, ISC_FALSE, &rdata); result = dns_rdataset_next(&hintrrset); } - } + } if (hresult == ISC_R_NOTFOUND && (rresult == ISC_R_SUCCESS || rresult == DNS_R_GLUE)) { result = dns_rdataset_first(&rootrrset); @@ -387,7 +391,7 @@ check_address_records(dns_view_t *view, dns_db_t *hints, dns_db_t *db, dns_rdata_reset(&rdata); result = dns_rdataset_next(&hintrrset); } - } + } if (hresult == ISC_R_NOTFOUND && (rresult == ISC_R_SUCCESS || rresult == DNS_R_GLUE)) { result = dns_rdataset_first(&rootrrset); @@ -421,11 +425,11 @@ dns_root_checkhints(dns_view_t *view, dns_db_t *hints, dns_db_t *db) { isc_stdtime_get(&now); - if (strcmp(view->name, "_bind") != 0 && - strcmp(view->name, "_default") != 0) { - viewname = view->name; - sep = ": view "; - } + if (strcmp(view->name, "_bind") != 0 && + strcmp(view->name, "_default") != 0) { + viewname = view->name; + sep = ": view "; + } dns_rdataset_init(&hintns); dns_rdataset_init(&rootns); @@ -453,7 +457,7 @@ dns_root_checkhints(dns_view_t *view, dns_db_t *hints, dns_db_t *db) { dns_result_totext(result)); goto cleanup; } - + /* * Look for missing root NS names. */ @@ -472,7 +476,7 @@ dns_root_checkhints(dns_view_t *view, dns_db_t *hints, dns_db_t *db) { "checkhints%s%s: unable to find root " "NS '%s' in hints", sep, viewname, namebuf); - } else + } else check_address_records(view, hints, db, &ns.name, now); dns_rdata_reset(&rdata); result = dns_rdataset_next(&rootns); diff --git a/lib/dns/sdb.c b/lib/dns/sdb.c index fe53778782cf..effb2bf0c293 100644 --- a/lib/dns/sdb.c +++ b/lib/dns/sdb.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: sdb.c,v 1.45.18.13 2007/08/28 07:20:05 tbox Exp $ */ +/* $Id: sdb.c,v 1.45.18.16 2008/01/17 23:45:58 tbox Exp $ */ /*! \file */ @@ -310,7 +310,7 @@ dns_sdb_putrdata(dns_sdblookup_t *lookup, dns_rdatatype_t typeval, dns_ttl_t ttl ISC_LIST_INIT(rdatalist->rdata); ISC_LINK_INIT(rdatalist, link); ISC_LIST_APPEND(lookup->lists, rdatalist, link); - } else + } else if (rdatalist->ttl != ttl) return (DNS_R_BADTTL); @@ -337,7 +337,7 @@ dns_sdb_putrdata(dns_sdblookup_t *lookup, dns_rdatatype_t typeval, dns_ttl_t ttl isc_mem_put(mctx, rdata, sizeof(dns_rdata_t)); return (result); } - + isc_result_t dns_sdb_putrr(dns_sdblookup_t *lookup, const char *type, dns_ttl_t ttl, @@ -380,7 +380,7 @@ dns_sdb_putrr(dns_sdblookup_t *lookup, const char *type, dns_ttl_t ttl, datalen = strlen(data); size = initial_size(datalen); - for (;;) { + do { isc_buffer_init(&b, data, datalen); isc_buffer_add(&b, datalen); result = isc_lex_openbuffer(lex, &b); @@ -638,7 +638,7 @@ newversion(dns_db_t *db, dns_dbversion_t **versionp) { } static void -attachversion(dns_db_t *db, dns_dbversion_t *source, +attachversion(dns_db_t *db, dns_dbversion_t *source, dns_dbversion_t **targetp) { REQUIRE(source != NULL && source == (void *) &dummy); @@ -792,7 +792,7 @@ findnode(dns_db_t *db, dns_name_t *name, isc_boolean_t create, return (result); } } - + *nodep = node; return (ISC_R_SUCCESS); } @@ -1120,7 +1120,7 @@ allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, sdb_rdatasetiter_t *iterator; REQUIRE(version == NULL || version == &dummy); - + UNUSED(version); UNUSED(now); diff --git a/lib/dns/tkey.c b/lib/dns/tkey.c index e4dbdc7bf248..998ea36dacda 100644 --- a/lib/dns/tkey.c +++ b/lib/dns/tkey.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -16,7 +16,7 @@ */ /* - * $Id: tkey.c,v 1.76.18.5 2005/11/30 03:44:39 marka Exp $ + * $Id: tkey.c,v 1.76.18.7 2008/01/02 23:46:02 tbox Exp $ */ /*! \file */ #include @@ -379,7 +379,7 @@ process_dhtkey(dns_message_t *msg, dns_name_t *signer, dns_name_t *name, isc_buffer_base(&secret), isc_buffer_usedlength(&secret), ISC_TRUE, signer, tkeyin->inception, - tkeyin->expire, msg->mctx, ring, NULL)); + tkeyin->expire, ring->mctx, ring, NULL)); /* This key is good for a long time */ tkeyout->inception = tkeyin->inception; @@ -440,7 +440,7 @@ process_gsstkey(dns_message_t *msg, dns_name_t *signer, dns_name_t *name, result = dns_tsigkey_createfromkey(name, &tkeyin->algorithm, dstkey, ISC_TRUE, signer, tkeyin->inception, tkeyin->expire, - msg->mctx, ring, NULL); + ring->mctx, ring, NULL); #if 1 if (result != ISC_R_SUCCESS) goto failure; @@ -1106,7 +1106,7 @@ dns_tkey_processdhresponse(dns_message_t *qmsg, dns_message_t *rmsg, result = dns_tsigkey_create(tkeyname, &rtkey.algorithm, r.base, r.length, ISC_TRUE, NULL, rtkey.inception, rtkey.expire, - rmsg->mctx, ring, outkey); + ring->mctx, ring, outkey); isc_buffer_free(&shared); dns_rdata_freestruct(&rtkey); dst_key_free(&theirkey); @@ -1176,7 +1176,7 @@ dns_tkey_processgssresponse(dns_message_t *qmsg, dns_message_t *rmsg, RETERR(dns_tsigkey_createfromkey(tkeyname, DNS_TSIG_GSSAPI_NAME, dstkey, ISC_TRUE, NULL, rtkey.inception, rtkey.expire, - rmsg->mctx, ring, outkey)); + ring->mctx, ring, outkey)); dns_rdata_freestruct(&rtkey); return (result); diff --git a/lib/dns/tsig.c b/lib/dns/tsig.c index cca1f99f1e68..f21832f451f4 100644 --- a/lib/dns/tsig.c +++ b/lib/dns/tsig.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -16,7 +16,7 @@ */ /* - * $Id: tsig.c,v 1.117.18.11 2007/09/26 23:46:34 tbox Exp $ + * $Id: tsig.c,v 1.117.18.14 2008/01/17 23:46:03 tbox Exp $ */ /*! \file */ #include @@ -105,12 +105,12 @@ static unsigned char hmacsha1_ndata[] = "\011hmac-sha1"; static unsigned char hmacsha1_offsets[] = { 0, 10 }; static dns_name_t hmacsha1 = { - DNS_NAME_MAGIC, - hmacsha1_ndata, 11, 2, - DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, - hmacsha1_offsets, NULL, - {(void *)-1, (void *)-1}, - {NULL, NULL} + DNS_NAME_MAGIC, + hmacsha1_ndata, 11, 2, + DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, + hmacsha1_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} }; LIBDNS_EXTERNAL_DATA dns_name_t *dns_tsig_hmacsha1_name = &hmacsha1; @@ -119,12 +119,12 @@ static unsigned char hmacsha224_ndata[] = "\013hmac-sha224"; static unsigned char hmacsha224_offsets[] = { 0, 12 }; static dns_name_t hmacsha224 = { - DNS_NAME_MAGIC, - hmacsha224_ndata, 13, 2, - DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, - hmacsha224_offsets, NULL, - {(void *)-1, (void *)-1}, - {NULL, NULL} + DNS_NAME_MAGIC, + hmacsha224_ndata, 13, 2, + DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, + hmacsha224_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} }; LIBDNS_EXTERNAL_DATA dns_name_t *dns_tsig_hmacsha224_name = &hmacsha224; @@ -133,12 +133,12 @@ static unsigned char hmacsha256_ndata[] = "\013hmac-sha256"; static unsigned char hmacsha256_offsets[] = { 0, 12 }; static dns_name_t hmacsha256 = { - DNS_NAME_MAGIC, - hmacsha256_ndata, 13, 2, - DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, - hmacsha256_offsets, NULL, - {(void *)-1, (void *)-1}, - {NULL, NULL} + DNS_NAME_MAGIC, + hmacsha256_ndata, 13, 2, + DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, + hmacsha256_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} }; LIBDNS_EXTERNAL_DATA dns_name_t *dns_tsig_hmacsha256_name = &hmacsha256; @@ -147,12 +147,12 @@ static unsigned char hmacsha384_ndata[] = "\013hmac-sha384"; static unsigned char hmacsha384_offsets[] = { 0, 12 }; static dns_name_t hmacsha384 = { - DNS_NAME_MAGIC, - hmacsha384_ndata, 13, 2, - DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, - hmacsha384_offsets, NULL, - {(void *)-1, (void *)-1}, - {NULL, NULL} + DNS_NAME_MAGIC, + hmacsha384_ndata, 13, 2, + DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, + hmacsha384_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} }; LIBDNS_EXTERNAL_DATA dns_name_t *dns_tsig_hmacsha384_name = &hmacsha384; @@ -161,12 +161,12 @@ static unsigned char hmacsha512_ndata[] = "\013hmac-sha512"; static unsigned char hmacsha512_offsets[] = { 0, 12 }; static dns_name_t hmacsha512 = { - DNS_NAME_MAGIC, - hmacsha512_ndata, 13, 2, - DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, - hmacsha512_offsets, NULL, - {(void *)-1, (void *)-1}, - {NULL, NULL} + DNS_NAME_MAGIC, + hmacsha512_ndata, 13, 2, + DNS_NAMEATTR_READONLY | DNS_NAMEATTR_ABSOLUTE, + hmacsha512_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} }; LIBDNS_EXTERNAL_DATA dns_name_t *dns_tsig_hmacsha512_name = &hmacsha512; @@ -323,7 +323,8 @@ dns_tsigkey_createfromkey(dns_name_t *name, dns_name_t *algorithm, tkey->generated = generated; tkey->inception = inception; tkey->expire = expire; - tkey->mctx = mctx; + tkey->mctx = NULL; + isc_mem_attach(mctx, &tkey->mctx); tkey->magic = TSIG_MAGIC; @@ -509,7 +510,7 @@ tsigkey_free(dns_tsigkey_t *key) { isc_mem_put(key->mctx, key->creator, sizeof(dns_name_t)); } isc_refcount_destroy(&key->refs); - isc_mem_put(key->mctx, key, sizeof(dns_tsigkey_t)); + isc_mem_putanddetach(&key->mctx, key, sizeof(dns_tsigkey_t)); } void @@ -981,7 +982,7 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg, return (DNS_R_FORMERR); } if (tsig.siglen > 0 && digestbits != 0 && - tsig.siglen < ((digestbits + 1) / 8)) { + tsig.siglen < ((digestbits + 1) / 8)) { msg->tsigstatus = dns_tsigerror_badtrunc; tsig_log(msg->tsigkey, 2, "truncated signature length too small"); @@ -1442,7 +1443,8 @@ dns_tsigkeyring_create(isc_mem_t *mctx, dns_tsig_keyring_t **ringp) { return (result); } - ring->mctx = mctx; + ring->mctx = NULL; + isc_mem_attach(mctx, &ring->mctx); *ringp = ring; return (ISC_R_SUCCESS); @@ -1460,5 +1462,5 @@ dns_tsigkeyring_destroy(dns_tsig_keyring_t **ringp) { dns_rbt_destroy(&ring->keys); isc_rwlock_destroy(&ring->lock); - isc_mem_put(ring->mctx, ring, sizeof(dns_tsig_keyring_t)); + isc_mem_putanddetach(&ring->mctx, ring, sizeof(dns_tsig_keyring_t)); } diff --git a/lib/dns/validator.c b/lib/dns/validator.c index 9538b3023823..e68633646ac5 100644 --- a/lib/dns/validator.c +++ b/lib/dns/validator.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: validator.c,v 1.119.18.35 2007/09/26 04:39:45 each Exp $ */ +/* $Id: validator.c,v 1.119.18.41 2008/08/21 04:59:42 marka Exp $ */ /*! \file */ @@ -55,7 +55,7 @@ * dlv_validator_start -> validator_start -> validate -> proveunsecure * * validator_start -> validate -> nsecvalidate (secure wildcard answer) - * + * * \li When called with rdataset, sigrdataset and with DNS_VALIDATOR_DLV: * validator_start -> startfinddlvsep -> dlv_validator_start -> * validator_start -> validate -> proveunsecure @@ -134,7 +134,8 @@ static isc_result_t nsecvalidate(dns_validator_t *val, isc_boolean_t resume); static isc_result_t -proveunsecure(dns_validator_t *val, isc_boolean_t resume); +proveunsecure(dns_validator_t *val, isc_boolean_t have_ds, + isc_boolean_t resume); static void validator_logv(dns_validator_t *val, isc_logcategory_t *category, @@ -365,7 +366,7 @@ dsfetched(isc_task_t *task, isc_event_t *event) { "falling back to insecurity proof (%s)", dns_result_totext(eresult)); val->attributes |= VALATTR_INSECURITY; - result = proveunsecure(val, ISC_FALSE); + result = proveunsecure(val, ISC_FALSE, ISC_FALSE); if (result != DNS_R_WAIT) validator_done(val, result); } else { @@ -444,7 +445,7 @@ dsfetched2(isc_task_t *task, isc_event_t *event) { validator_done(val, result); } } else { - result = proveunsecure(val, ISC_TRUE); + result = proveunsecure(val, ISC_FALSE, ISC_TRUE); if (result != DNS_R_WAIT) validator_done(val, result); } @@ -453,11 +454,12 @@ dsfetched2(isc_task_t *task, isc_event_t *event) { eresult == DNS_R_NCACHENXDOMAIN) { /* - * There is a DS which may or may not be a zone cut. + * There is a DS which may or may not be a zone cut. * In either case we are still in a secure zone resume * validation. */ - result = proveunsecure(val, ISC_TRUE); + result = proveunsecure(val, ISC_TF(eresult == ISC_R_SUCCESS), + ISC_TRUE); if (result != DNS_R_WAIT) validator_done(val, result); } else { @@ -558,7 +560,7 @@ dsvalidated(isc_task_t *task, isc_event_t *event) { validator_log(val, ISC_LOG_DEBUG(3), "dsset with trust %d", val->frdataset.trust); if ((val->attributes & VALATTR_INSECURITY) != 0) - result = proveunsecure(val, ISC_TRUE); + result = proveunsecure(val, ISC_TRUE, ISC_TRUE); else result = validatezonekey(val); if (result != DNS_R_WAIT) @@ -779,7 +781,7 @@ authvalidated(isc_task_t *task, isc_event_t *event) { } else { dns_name_t **proofs = val->event->proofs; dns_name_t *wild = dns_fixedname_name(&val->wild); - + if (rdataset->trust == dns_trust_secure) val->seensig = ISC_TRUE; @@ -787,7 +789,7 @@ authvalidated(isc_task_t *task, isc_event_t *event) { rdataset->trust == dns_trust_secure && ((val->attributes & VALATTR_NEEDNODATA) != 0 || (val->attributes & VALATTR_NEEDNOQNAME) != 0) && - (val->attributes & VALATTR_FOUNDNODATA) == 0 && + (val->attributes & VALATTR_FOUNDNODATA) == 0 && (val->attributes & VALATTR_FOUNDNOQNAME) == 0 && nsecnoexistnodata(val, val->event->name, devent->name, rdataset, &exists, &data, wild) @@ -900,7 +902,7 @@ view_find(dns_validator_t *val, dns_name_t *name, dns_rdatatype_t type) { /* End of zone chain. */ if (!dns_name_issubdomain(name, &nsec.next)) { /* - * XXXMPA We could look for a parent NSEC + * XXXMPA We could look for a parent NSEC * at nsec.next and if found retest with * this NSEC. */ @@ -937,10 +939,11 @@ view_find(dns_validator_t *val, dns_name_t *name, dns_rdatatype_t type) { dns_rdata_freestruct(&nsec); result = DNS_R_NCACHENXDOMAIN; } else if (result != ISC_R_SUCCESS && - result != DNS_R_NCACHENXDOMAIN && - result != DNS_R_NCACHENXRRSET && - result != DNS_R_NXRRSET && - result != ISC_R_NOTFOUND) { + result != DNS_R_NCACHENXDOMAIN && + result != DNS_R_NCACHENXRRSET && + result != DNS_R_EMPTYNAME && + result != DNS_R_NXRRSET && + result != ISC_R_NOTFOUND) { goto notfound; } return (result); @@ -1196,6 +1199,7 @@ get_key(dns_validator_t *val, dns_rdata_rrsig_t *siginfo) { return (DNS_R_WAIT); } else if (result == DNS_R_NCACHENXDOMAIN || result == DNS_R_NCACHENXRRSET || + result == DNS_R_EMPTYNAME || result == DNS_R_NXDOMAIN || result == DNS_R_NXRRSET) { @@ -1246,7 +1250,8 @@ isselfsigned(dns_validator_t *val) { { dns_rdata_reset(&rdata); dns_rdataset_current(rdataset, &rdata); - (void)dns_rdata_tostruct(&rdata, &key, NULL); + result = dns_rdata_tostruct(&rdata, &key, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); keytag = compute_keytag(&rdata, &key); for (result = dns_rdataset_first(sigrdataset); result == ISC_R_SUCCESS; @@ -1254,7 +1259,8 @@ isselfsigned(dns_validator_t *val) { { dns_rdata_reset(&sigrdata); dns_rdataset_current(sigrdataset, &sigrdata); - (void)dns_rdata_tostruct(&sigrdata, &sig, NULL); + result = dns_rdata_tostruct(&sigrdata, &sig, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (sig.algorithm == key.algorithm && sig.keyid == keytag) @@ -1514,7 +1520,8 @@ dlv_validatezonekey(dns_validator_t *val) { result = dns_rdataset_next(&val->dlv)) { dns_rdata_reset(&dlvrdata); dns_rdataset_current(&val->dlv, &dlvrdata); - dns_rdata_tostruct(&dlvrdata, &dlv, NULL); + result = dns_rdata_tostruct(&dlvrdata, &dlv, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (!dns_resolver_algorithm_supported(val->view->resolver, val->event->name, @@ -1534,12 +1541,13 @@ dlv_validatezonekey(dns_validator_t *val) { { dns_rdata_reset(&dlvrdata); dns_rdataset_current(&val->dlv, &dlvrdata); - (void)dns_rdata_tostruct(&dlvrdata, &dlv, NULL); + result = dns_rdata_tostruct(&dlvrdata, &dlv, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (!dns_resolver_digest_supported(val->view->resolver, dlv.digest_type)) continue; - + if (dlv.digest_type != digest_type) continue; @@ -1559,7 +1567,8 @@ dlv_validatezonekey(dns_validator_t *val) { { dns_rdata_reset(&keyrdata); dns_rdataset_current(&trdataset, &keyrdata); - (void)dns_rdata_tostruct(&keyrdata, &key, NULL); + result = dns_rdata_tostruct(&keyrdata, &key, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); keytag = compute_keytag(&keyrdata, &key); if (dlv.key_tag != keytag || dlv.algorithm != key.algorithm) @@ -1594,7 +1603,8 @@ dlv_validatezonekey(dns_validator_t *val) { dns_rdata_reset(&sigrdata); dns_rdataset_current(val->event->sigrdataset, &sigrdata); - (void)dns_rdata_tostruct(&sigrdata, &sig, NULL); + result = dns_rdata_tostruct(&sigrdata, &sig, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (dlv.key_tag != sig.keyid && dlv.algorithm != sig.algorithm) continue; @@ -1691,7 +1701,8 @@ validatezonekey(dns_validator_t *val) { dns_rdata_reset(&sigrdata); dns_rdataset_current(val->event->sigrdataset, &sigrdata); - (void)dns_rdata_tostruct(&sigrdata, &sig, NULL); + result = dns_rdata_tostruct(&sigrdata, &sig, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); result = dns_keytable_findkeynode(val->keytable, val->event->name, sig.algorithm, @@ -1745,7 +1756,7 @@ validatezonekey(dns_validator_t *val) { * the RRset is invalid. */ dns_name_format(val->event->name, namebuf, - sizeof(namebuf)); + sizeof(namebuf)); validator_log(val, ISC_LOG_DEBUG(2), "unable to find a DNSKEY which verifies " "the DNSKEY RRset and also matches one " @@ -1796,8 +1807,9 @@ validatezonekey(dns_validator_t *val) { if (result != ISC_R_SUCCESS) return (result); return (DNS_R_WAIT); - } else if (result == DNS_R_NCACHENXDOMAIN || + } else if (result == DNS_R_NCACHENXDOMAIN || result == DNS_R_NCACHENXRRSET || + result == DNS_R_EMPTYNAME || result == DNS_R_NXDOMAIN || result == DNS_R_NXRRSET) { @@ -1848,7 +1860,8 @@ validatezonekey(dns_validator_t *val) { result = dns_rdataset_next(val->dsset)) { dns_rdata_reset(&dsrdata); dns_rdataset_current(val->dsset, &dsrdata); - dns_rdata_tostruct(&dsrdata, &ds, NULL); + result = dns_rdata_tostruct(&dsrdata, &ds, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (!dns_resolver_algorithm_supported(val->view->resolver, val->event->name, @@ -1868,7 +1881,8 @@ validatezonekey(dns_validator_t *val) { { dns_rdata_reset(&dsrdata); dns_rdataset_current(val->dsset, &dsrdata); - (void)dns_rdata_tostruct(&dsrdata, &ds, NULL); + result = dns_rdata_tostruct(&dsrdata, &ds, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (!dns_resolver_digest_supported(val->view->resolver, ds.digest_type)) @@ -1896,7 +1910,8 @@ validatezonekey(dns_validator_t *val) { { dns_rdata_reset(&keyrdata); dns_rdataset_current(&trdataset, &keyrdata); - (void)dns_rdata_tostruct(&keyrdata, &key, NULL); + result = dns_rdata_tostruct(&keyrdata, &key, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); keytag = compute_keytag(&keyrdata, &key); if (ds.key_tag != keytag || ds.algorithm != key.algorithm) @@ -1915,7 +1930,7 @@ validatezonekey(dns_validator_t *val) { "no DNSKEY matching DS"); continue; } - + for (result = dns_rdataset_first(val->event->sigrdataset); result == ISC_R_SUCCESS; result = dns_rdataset_next(val->event->sigrdataset)) @@ -1923,7 +1938,8 @@ validatezonekey(dns_validator_t *val) { dns_rdata_reset(&sigrdata); dns_rdataset_current(val->event->sigrdataset, &sigrdata); - (void)dns_rdata_tostruct(&sigrdata, &sig, NULL); + result = dns_rdata_tostruct(&sigrdata, &sig, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (ds.key_tag != sig.keyid || ds.algorithm != sig.algorithm) continue; @@ -1994,7 +2010,7 @@ start_positive_validation(dns_validator_t *val) { * exclusive we stop when one is found. * * Returns - * \li ISC_R_SUCCESS + * \li ISC_R_SUCCESS */ static isc_result_t checkwildcard(dns_validator_t *val) { @@ -2213,7 +2229,7 @@ nsecvalidate(dns_validator_t *val, isc_boolean_t resume) { validator_log(val, ISC_LOG_DEBUG(3), "nonexistence proof(s) not found"); val->attributes |= VALATTR_INSECURITY; - return (proveunsecure(val, ISC_FALSE)); + return (proveunsecure(val, ISC_FALSE, ISC_FALSE)); } static isc_boolean_t @@ -2226,7 +2242,8 @@ check_ds(dns_validator_t *val, dns_name_t *name, dns_rdataset_t *rdataset) { result == ISC_R_SUCCESS; result = dns_rdataset_next(rdataset)) { dns_rdataset_current(rdataset, &dsrdata); - (void)dns_rdata_tostruct(&dsrdata, &ds, NULL); + result = dns_rdata_tostruct(&dsrdata, &ds, NULL); + RUNTIME_CHECK(result == ISC_R_SUCCESS); if (dns_resolver_digest_supported(val->view->resolver, ds.digest_type) && @@ -2242,7 +2259,7 @@ check_ds(dns_validator_t *val, dns_name_t *name, dns_rdataset_t *rdataset) { /*% * Callback from fetching a DLV record. - * + * * Resumes the DLV lookup process. */ static void @@ -2316,7 +2333,7 @@ dlvfetched(isc_task_t *task, isc_event_t *event) { /*% * Start the DLV lookup proccess. - * + * * Returns * \li ISC_R_SUCCESS * \li DNS_R_WAIT @@ -2450,6 +2467,7 @@ finddlvsep(dns_validator_t *val, isc_boolean_t resume) { } if (result != DNS_R_NXRRSET && result != DNS_R_NXDOMAIN && + result != DNS_R_EMPTYNAME && result != DNS_R_NCACHENXRRSET && result != DNS_R_NCACHENXDOMAIN) return (result); @@ -2486,7 +2504,8 @@ finddlvsep(dns_validator_t *val, isc_boolean_t resume) { * \li DNS_R_NOTINSECURE */ static isc_result_t -proveunsecure(dns_validator_t *val, isc_boolean_t resume) { +proveunsecure(dns_validator_t *val, isc_boolean_t have_ds, isc_boolean_t resume) +{ isc_result_t result; dns_fixedname_t fixedsecroot; dns_name_t *secroot; @@ -2508,7 +2527,7 @@ proveunsecure(dns_validator_t *val, isc_boolean_t resume) { dns_name_split(secroot, 1, NULL, secroot); result = dns_keytable_finddeepestmatch(val->keytable, secroot, secroot); - + if (result == ISC_R_NOTFOUND) { validator_log(val, ISC_LOG_DEBUG(3), "not beneath secure root"); @@ -2534,12 +2553,19 @@ proveunsecure(dns_validator_t *val, isc_boolean_t resume) { val->labels = dns_name_countlabels(secroot) + 1; } else { validator_log(val, ISC_LOG_DEBUG(3), "resuming proveunsecure"); - if (val->frdataset.trust >= dns_trust_secure && + /* + * If we have a DS rdataset and it is secure then check if + * the DS rdataset has a supported algorithm combination. + * If not this is a insecure delegation as far as this + * resolver is concerned. Fall back to DLV if available. + */ + if (have_ds && val->frdataset.trust >= dns_trust_secure && !check_ds(val, dns_fixedname_name(&val->fname), &val->frdataset)) { dns_name_format(dns_fixedname_name(&val->fname), namebuf, sizeof(namebuf)); - if (val->mustbesecure) { + if ((val->view->dlv == NULL || DLVTRIED(val)) && + val->mustbesecure) { validator_log(val, ISC_LOG_WARNING, "must be secure failure at '%s'", namebuf); @@ -2784,7 +2810,7 @@ validator_start(isc_task_t *task, isc_event_t *event) { validator_log(val, ISC_LOG_DEBUG(3), "falling back to insecurity proof"); val->attributes |= VALATTR_INSECURITY; - result = proveunsecure(val, ISC_FALSE); + result = proveunsecure(val, ISC_FALSE, ISC_FALSE); if (result == DNS_R_NOTINSECURE) result = saved_result; } @@ -2798,7 +2824,7 @@ validator_start(isc_task_t *task, isc_event_t *event) { "attempting insecurity proof"); val->attributes |= VALATTR_INSECURITY; - result = proveunsecure(val, ISC_FALSE); + result = proveunsecure(val, ISC_FALSE, ISC_FALSE); } else if (val->event->rdataset == NULL && val->event->sigrdataset == NULL) { diff --git a/lib/dns/view.c b/lib/dns/view.c index d5a78d5ede14..4851cf008455 100644 --- a/lib/dns/view.c +++ b/lib/dns/view.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: view.c,v 1.126.18.14 2007/08/28 07:20:05 tbox Exp $ */ +/* $Id: view.c,v 1.126.18.16 2008/06/17 23:46:03 tbox Exp $ */ /*! \file */ @@ -315,7 +315,7 @@ destroy(dns_view_t *view) { name = ISC_LIST_HEAD(view->rootexclude[i]); while (name != NULL) { ISC_LIST_UNLINK(view->rootexclude[i], - name, link); + name, link); dns_name_free(name, view->mctx); isc_mem_put(view->mctx, name, sizeof(*name)); name = ISC_LIST_HEAD(view->rootexclude[i]); @@ -846,17 +846,6 @@ dns_view_find(dns_view_t *view, dns_name_t *name, dns_rdatatype_t type, } cleanup: - if (result == DNS_R_NXDOMAIN || result == DNS_R_NXRRSET) { - /* - * We don't care about any DNSSEC proof data in these cases. - */ - if (dns_rdataset_isassociated(rdataset)) - dns_rdataset_disassociate(rdataset); - if (sigrdataset != NULL && - dns_rdataset_isassociated(sigrdataset)) - dns_rdataset_disassociate(sigrdataset); - } - if (dns_rdataset_isassociated(&zrdataset)) { dns_rdataset_disassociate(&zrdataset); if (dns_rdataset_isassociated(&zsigrdataset)) @@ -936,7 +925,7 @@ dns_view_simplefind(dns_view_t *view, dns_name_t *name, dns_rdatatype_t type, isc_result_t dns_view_findzonecut(dns_view_t *view, dns_name_t *name, dns_name_t *fname, isc_stdtime_t now, unsigned int options, - isc_boolean_t use_hints, + isc_boolean_t use_hints, dns_rdataset_t *rdataset, dns_rdataset_t *sigrdataset) { return(dns_view_findzonecut2(view, name, fname, now, options, @@ -1348,7 +1337,7 @@ dns_view_isdelegationonly(dns_view_t *view, dns_name_t *name) { return (ISC_TRUE); } -void +void dns_view_setrootdelonly(dns_view_t *view, isc_boolean_t value) { REQUIRE(DNS_VIEW_VALID(view)); view->rootdelonly = value; diff --git a/lib/dns/xfrin.c b/lib/dns/xfrin.c index f95773f41063..7171a37ef111 100644 --- a/lib/dns/xfrin.c +++ b/lib/dns/xfrin.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: xfrin.c,v 1.135.18.16.10.3 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: xfrin.c,v 1.135.18.23 2008/09/25 04:15:52 marka Exp $ */ /*! \file */ @@ -248,7 +248,7 @@ static isc_result_t axfr_init(dns_xfrin_ctx_t *xfr) { isc_result_t result; - xfr->is_ixfr = ISC_FALSE; + xfr->is_ixfr = ISC_FALSE; if (xfr->db != NULL) dns_db_detach(&xfr->db); @@ -426,6 +426,10 @@ xfr_rr(dns_xfrin_ctx_t *xfr, dns_name_t *name, isc_uint32_t ttl, { isc_result_t result; + if (rdata->type == dns_rdatatype_none || + dns_rdatatype_ismeta(rdata->type)) + FAIL(DNS_R_FORMERR); + redo: switch (xfr->state) { case XFRST_SOAQUERY: @@ -892,8 +896,8 @@ render(dns_message_t *msg, isc_mem_t *mctx, isc_buffer_t *buf) { CHECK(dns_message_renderend(msg)); result = ISC_R_SUCCESS; failure: - if (cleanup_cctx) - dns_compress_invalidate(&cctx); + if (cleanup_cctx) + dns_compress_invalidate(&cctx); return (result); } @@ -1051,6 +1055,8 @@ xfrin_send_request(dns_xfrin_ctx_t *xfr) { xfr->id++; xfr->nmsg = 0; msg->id = xfr->id; + if (xfr->tsigctx != NULL) + dst_context_destroy(&xfr->tsigctx); CHECK(render(msg, xfr->mctx, &xfr->qbuffer)); @@ -1186,7 +1192,10 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) { CHECK(dns_message_settsigkey(msg, xfr->tsigkey)); CHECK(dns_message_setquerytsig(msg, xfr->lasttsig)); + msg->tsigctx = xfr->tsigctx; + xfr->tsigctx = NULL; + if (xfr->nmsg > 0) msg->tcp_continuation = 1; @@ -1299,9 +1308,11 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) { xfr->nmsg++; /* - * Copy the context back. + * Take the context back. */ + INSIST(xfr->tsigctx == NULL); xfr->tsigctx = msg->tsigctx; + msg->tsigctx = NULL; dns_message_destroy(&msg); @@ -1397,6 +1408,9 @@ maybe_free(dns_xfrin_ctx_t *xfr) { if (xfr->tcpmsg_valid) dns_tcpmsg_invalidate(&xfr->tcpmsg); + if (xfr->tsigctx != NULL) + dst_context_destroy(&xfr->tsigctx); + if ((xfr->name.attributes & DNS_NAMEATTR_DYNAMIC) != 0) dns_name_free(&xfr->name, xfr->mctx); @@ -1438,7 +1452,7 @@ xfrin_logv(int level, const char *zonetext, isc_sockaddr_t *masteraddr, static void xfrin_log1(int level, const char *zonetext, isc_sockaddr_t *masteraddr, - const char *fmt, ...) + const char *fmt, ...) { va_list ap; diff --git a/lib/dns/zone.c b/lib/dns/zone.c index fa6ac46aaa04..36f303c375f8 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: zone.c,v 1.410.18.52 2007/08/30 05:15:03 marka Exp $ */ +/* $Id: zone.c,v 1.410.18.55 2008/10/24 01:43:17 tbox Exp $ */ /*! \file */ @@ -813,10 +813,10 @@ dns_zone_getdbtype(dns_zone_t *zone, char ***argv, isc_mem_t *mctx) { isc_result_t result = ISC_R_SUCCESS; void *mem; char **tmp, *tmp2; - + REQUIRE(DNS_ZONE_VALID(zone)); REQUIRE(argv != NULL && *argv == NULL); - + LOCK_ZONE(zone); size = (zone->db_argc + 1) * sizeof(char *); for (i = 0; i < zone->db_argc; i++) @@ -927,7 +927,7 @@ void dns_zone_setacache(dns_zone_t *zone, dns_acache_t *acache) { REQUIRE(DNS_ZONE_VALID(zone)); REQUIRE(acache != NULL); - + LOCK_ZONE(zone); if (zone->acache != NULL) dns_acache_detach(&zone->acache); @@ -1425,7 +1425,7 @@ zone_check_mx(dns_zone_t *zone, dns_db_t *db, dns_name_t *name, dns_fixedname_t fixed; dns_name_t *foundname; int level; - + /* * Outside of zone. */ @@ -1507,7 +1507,7 @@ zone_check_srv(dns_zone_t *zone, dns_db_t *db, dns_name_t *name, dns_fixedname_t fixed; dns_name_t *foundname; int level; - + /* * "." means the services does not exist. */ @@ -1598,7 +1598,7 @@ zone_check_glue(dns_zone_t *zone, dns_db_t *db, dns_name_t *name, dns_rdataset_t a; dns_rdataset_t aaaa; int level; - + /* * Outside of zone. */ @@ -1636,7 +1636,7 @@ zone_check_glue(dns_zone_t *zone, dns_db_t *db, dns_name_t *name, if (tresult == ISC_R_SUCCESS) { dns_rdataset_disassociate(&aaaa); return (ISC_TRUE); - } + } if (tresult == DNS_R_DELEGATION) dns_rdataset_disassociate(&aaaa); if (result == DNS_R_GLUE || tresult == DNS_R_GLUE) { @@ -1660,14 +1660,16 @@ zone_check_glue(dns_zone_t *zone, dns_db_t *db, dns_name_t *name, if (result == DNS_R_NXRRSET || result == DNS_R_NXDOMAIN || result == DNS_R_EMPTYNAME || result == DNS_R_DELEGATION) { const char *what; - if (dns_name_issubdomain(name, owner)) + isc_boolean_t required = ISC_FALSE; + if (dns_name_issubdomain(name, owner)) { what = "REQUIRED GLUE "; - else if (result == DNS_R_DELEGATION) + required = ISC_TRUE; + } else if (result == DNS_R_DELEGATION) what = "SIBLING GLUE "; else what = ""; - if (result != DNS_R_DELEGATION || + if (result != DNS_R_DELEGATION || required || DNS_ZONE_OPTION(zone, DNS_ZONEOPT_CHECKSIBLING)) { dns_zone_log(zone, level, "%s/NS '%s' has no %s" "address records (A or AAAA)", @@ -1749,7 +1751,7 @@ integrity_checks(dns_zone_t *zone, dns_db_t *db) { if (dns_name_equal(name, &zone->origin)) goto checkmx; - result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_ns, + result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_ns, 0, 0, &rdataset, NULL); if (result != ISC_R_SUCCESS) goto checkmx; @@ -1771,7 +1773,7 @@ integrity_checks(dns_zone_t *zone, dns_db_t *db) { dns_rdataset_disassociate(&rdataset); checkmx: - result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_mx, + result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_mx, 0, 0, &rdataset, NULL); if (result != ISC_R_SUCCESS) goto checksrv; @@ -1790,7 +1792,7 @@ integrity_checks(dns_zone_t *zone, dns_db_t *db) { checksrv: if (zone->rdclass != dns_rdataclass_in) goto next; - result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_srv, + result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_srv, 0, 0, &rdataset, NULL); if (result != ISC_R_SUCCESS) goto next; @@ -1848,12 +1850,12 @@ zone_check_dnskeys(dns_zone_t *zone, dns_db_t *db) { for (result = dns_rdataset_first(&rdataset); result == ISC_R_SUCCESS; - result = dns_rdataset_next(&rdataset)) + result = dns_rdataset_next(&rdataset)) { dns_rdataset_current(&rdataset, &rdata); result = dns_rdata_tostruct(&rdata, &dnskey, NULL); INSIST(result == ISC_R_SUCCESS); - + if ((dnskey.algorithm == DST_ALG_RSASHA1 || dnskey.algorithm == DST_ALG_RSAMD5) && dnskey.datalen > 1 && dnskey.data[0] == 1 && @@ -1885,7 +1887,7 @@ zone_check_dnskeys(dns_zone_t *zone, dns_db_t *db) { dns_db_detachnode(db, &node); if (version != NULL) dns_db_closeversion(db, &version, ISC_FALSE); - + } static isc_result_t @@ -2039,7 +2041,7 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime, } else if (!isc_serial_ge(serial, zone->serial)) dns_zone_log(zone, ISC_LOG_ERROR, "zone serial has gone backwards"); - else if (serial == zone->serial && !hasinclude) + else if (serial == zone->serial && !hasinclude) dns_zone_log(zone, ISC_LOG_ERROR, "zone serial unchanged. " "zone may fail to transfer " @@ -2171,7 +2173,7 @@ zone_check_ns(dns_zone_t *zone, dns_db_t *db, dns_name_t *name) { dns_fixedname_t fixed; dns_name_t *foundname; int level; - + if (DNS_ZONE_OPTION(zone, DNS_ZONEOPT_NOCHECKNS)) return (ISC_TRUE); @@ -2760,7 +2762,7 @@ dns_zone_setmasterswithkeys(dns_zone_t *zone, } LOCK_ZONE(zone); - /* + /* * The refresh code assumes that 'masters' wouldn't change under it. * If it will change then kill off any current refresh in progress * and update the masters info. If it won't change then we can just @@ -2815,7 +2817,7 @@ dns_zone_setmasterswithkeys(dns_zone_t *zone, goto unlock; } memcpy(new, masters, count * sizeof(*new)); - + /* * Similarly for mastersok. */ @@ -4834,7 +4836,7 @@ add_opt(dns_message_t *message, isc_uint16_t udpsize) { if (result != ISC_R_SUCCESS) goto cleanup; dns_rdataset_init(rdataset); - + rdatalist->type = dns_rdatatype_opt; rdatalist->covers = 0; @@ -4871,7 +4873,7 @@ add_opt(dns_message_t *message, isc_uint16_t udpsize) { dns_message_puttemprdataset(message, &rdataset); if (rdata != NULL) dns_message_puttemprdata(message, &rdata); - + return (result); } @@ -5161,7 +5163,7 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) { } } if (key == NULL) - (void)dns_view_getpeertsig(zone->view, &masterip, &key); + (void)dns_view_getpeertsig(zone->view, &masterip, &key); if (zone->view->peers != NULL) { dns_peer_t *peer = NULL; @@ -5181,7 +5183,7 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) { dns_resolver_getudpsize(zone->view->resolver); (void)dns_peer_getudpsize(peer, &udpsize); } - + } if (!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NOEDNS)) { result = add_opt(message, udpsize); @@ -5315,7 +5317,7 @@ zone_shutdown(isc_task_t *task, isc_event_t *event) { if (zone->writeio != NULL) zonemgr_cancelio(zone->writeio); - if (zone->dctx != NULL) + if (zone->dctx != NULL) dns_dumpctx_cancel(zone->dctx); } @@ -6664,7 +6666,7 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) { } DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_NEEDCOMPACT); } - + /* * This transfer finishing freed up a transfer quota slot. * Let any other zones waiting for quota have it. @@ -6702,7 +6704,7 @@ zone_loaddone(void *arg, isc_result_t result) { ENTER; tresult = dns_db_endload(load->db, &load->callbacks.add_private); - if (tresult != ISC_R_SUCCESS && + if (tresult != ISC_R_SUCCESS && (result == ISC_R_SUCCESS || result == DNS_R_SEENINCLUDE)) result = tresult; @@ -7725,7 +7727,7 @@ zone_saveunique(dns_zone_t *zone, const char *path, const char *templat) { if (result != ISC_R_SUCCESS) goto cleanup; - dns_zone_log(zone, ISC_LOG_INFO, "saved '%s' as '%s'", + dns_zone_log(zone, ISC_LOG_WARNING, "saved '%s' as '%s'", path, buf); cleanup: diff --git a/lib/isc/Makefile.in b/lib/isc/Makefile.in index 71e42521da13..82afe5fc6b97 100644 --- a/lib/isc/Makefile.in +++ b/lib/isc/Makefile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 1998-2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: Makefile.in,v 1.81.18.8 2007/09/14 23:46:18 tbox Exp $ +# $Id: Makefile.in,v 1.81.18.10 2008/06/24 23:45:55 tbox Exp $ srcdir = @srcdir@ VPATH = @srcdir@ @@ -56,7 +56,7 @@ OBJS = @ISC_EXTRA_OBJS@ \ hash.@O@ heap.@O@ hex.@O@ hmacmd5.@O@ hmacsha.@O@\ lex.@O@ lfsr.@O@ lib.@O@ log.@O@ md5.@O@ \ mem.@O@ mutexblock.@O@ netaddr.@O@ netscope.@O@ ondestroy.@O@ \ - parseint.@O@ quota.@O@ random.@O@ \ + parseint.@O@ portset.@O@ quota.@O@ random.@O@ \ ratelimiter.@O@ refcount.@O@ region.@O@ result.@O@ rwlock.@O@ \ serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ string.@O@ \ strtoul.@O@ symtab.@O@ task.@O@ taskpool.@O@ timer.@O@ \ @@ -69,7 +69,7 @@ SRCS = @ISC_EXTRA_SRCS@ \ heap.c hex.c hmacmd5.c hmacsha.c \ lex.c lfsr.c lib.c log.c \ md5.c mem.c mutexblock.c netaddr.c netscope.c ondestroy.c \ - parseint.c quota.c random.c \ + parseint.c portset.c quota.c random.c \ ratelimiter.c refcount.c region.c result.c rwlock.c \ serial.c sha1.c sha2.c sockaddr.c string.c strtoul.c symtab.c \ task.c taskpool.c timer.c version.c diff --git a/lib/isc/api b/lib/isc/api index f40dfe0239bf..0b8a3bc5beea 100644 --- a/lib/isc/api +++ b/lib/isc/api @@ -1,3 +1,3 @@ -LIBINTERFACE = 35 -LIBREVISION = 0 +LIBINTERFACE = 36 +LIBREVISION = 2 LIBAGE = 0 diff --git a/lib/isc/assertions.c b/lib/isc/assertions.c index b3fcf4a050de..3eb27e0be2dc 100644 --- a/lib/isc/assertions.c +++ b/lib/isc/assertions.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: assertions.c,v 1.17.18.2 2005/04/29 00:16:44 marka Exp $ */ +/* $Id: assertions.c,v 1.17.18.4 2008/10/15 23:46:06 tbox Exp $ */ /*! \file */ @@ -30,6 +30,7 @@ /*% * Forward. */ +/* coverity[+kill] */ static void default_callback(const char *, int, isc_assertiontype_t, const char *); diff --git a/lib/isc/include/isc/assertions.h b/lib/isc/include/isc/assertions.h index c1e68a127a2e..fcf0eb89151f 100644 --- a/lib/isc/include/isc/assertions.h +++ b/lib/isc/include/isc/assertions.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -16,7 +16,7 @@ */ /* - * $Id: assertions.h,v 1.18.18.2 2005/04/29 00:16:52 marka Exp $ + * $Id: assertions.h,v 1.18.18.4 2008/10/15 23:46:06 tbox Exp $ */ /*! \file assertions.h */ @@ -40,6 +40,7 @@ typedef enum { typedef void (*isc_assertioncallback_t)(const char *, int, isc_assertiontype_t, const char *); +/* coverity[+kill] */ LIBISC_EXTERNAL_DATA extern isc_assertioncallback_t isc_assertion_failed; void @@ -48,14 +49,14 @@ isc_assertion_setcallback(isc_assertioncallback_t); const char * isc_assertion_typetotext(isc_assertiontype_t type); -#ifdef ISC_CHECK_ALL +#if defined(ISC_CHECK_ALL) || defined(__COVERITY__) #define ISC_CHECK_REQUIRE 1 #define ISC_CHECK_ENSURE 1 #define ISC_CHECK_INSIST 1 #define ISC_CHECK_INVARIANT 1 #endif -#ifdef ISC_CHECK_NONE +#if defined(ISC_CHECK_NONE) && !defined(__COVERITY__) #define ISC_CHECK_REQUIRE 0 #define ISC_CHECK_ENSURE 0 #define ISC_CHECK_INSIST 0 diff --git a/lib/isc/include/isc/lex.h b/lib/isc/include/isc/lex.h index 8c6624a4988d..cb9cc181d26c 100644 --- a/lib/isc/include/isc/lex.h +++ b/lib/isc/include/isc/lex.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lex.h,v 1.30.18.3 2005/06/04 00:39:05 marka Exp $ */ +/* $Id: lex.h,v 1.30.18.5 2008/05/30 23:46:01 tbox Exp $ */ #ifndef ISC_LEX_H #define ISC_LEX_H 1 @@ -86,7 +86,7 @@ ISC_LANG_BEGINDECLS #define ISC_LEXOPT_DNSMULTILINE 0x20 /*%< Handle '(' and ')'. */ #define ISC_LEXOPT_NOMORE 0x40 /*%< Want "no more" token. */ -#define ISC_LEXOPT_CNUMBER 0x80 /*%< Regognize octal and hex. */ +#define ISC_LEXOPT_CNUMBER 0x80 /*%< Recognize octal and hex. */ #define ISC_LEXOPT_ESCAPE 0x100 /*%< Recognize escapes. */ #define ISC_LEXOPT_QSTRINGMULTILINE 0x200 /*%< Allow multiline "" strings */ #define ISC_LEXOPT_OCTAL 0x400 /*%< Expect a octal number. */ diff --git a/lib/isc/include/isc/mem.h b/lib/isc/include/isc/mem.h index dc68bcb2a2d9..2c3c54e4f4d7 100644 --- a/lib/isc/include/isc/mem.h +++ b/lib/isc/include/isc/mem.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: mem.h,v 1.59.18.9 2006/01/04 23:50:23 marka Exp $ */ +/* $Id: mem.h,v 1.59.18.11 2008/02/07 23:45:56 tbox Exp $ */ #ifndef ISC_MEM_H #define ISC_MEM_H 1 @@ -156,7 +156,7 @@ LIBISC_EXTERNAL_DATA extern unsigned int isc_mem_debugging; #define isc_mem_strdup(c, p) isc__mem_strdup((c), (p) _ISC_MEM_FILELINE) #define isc_mempool_get(c) isc__mempool_get((c) _ISC_MEM_FILELINE) -/*% +/*% * isc_mem_putanddetach() is a convienence function for use where you * have a structure with an attached memory context. * @@ -215,7 +215,7 @@ LIBISC_EXTERNAL_DATA extern unsigned int isc_mem_debugging; #endif /*@{*/ -isc_result_t +isc_result_t isc_mem_create(size_t max_size, size_t target_size, isc_mem_t **mctxp); @@ -223,12 +223,12 @@ isc_result_t isc_mem_create2(size_t max_size, size_t target_size, isc_mem_t **mctxp, unsigned int flags); -isc_result_t +isc_result_t isc_mem_createx(size_t max_size, size_t target_size, isc_memalloc_t memalloc, isc_memfree_t memfree, void *arg, isc_mem_t **mctxp); -isc_result_t +isc_result_t isc_mem_createx2(size_t max_size, size_t target_size, isc_memalloc_t memalloc, isc_memfree_t memfree, void *arg, isc_mem_t **mctxp, unsigned int flags); @@ -265,9 +265,9 @@ isc_mem_createx2(size_t max_size, size_t target_size, /*@}*/ /*@{*/ -void +void isc_mem_attach(isc_mem_t *, isc_mem_t **); -void +void isc_mem_detach(isc_mem_t **); /*!< * \brief Attach to / detach from a memory context. @@ -275,7 +275,7 @@ isc_mem_detach(isc_mem_t **); * This is intended for applications that use multiple memory contexts * in such a way that it is not obvious when the last allocations from * a given context has been freed and destroying the context is safe. - * + * * Most applications do not need to call these functions as they can * simply create a single memory context at the beginning of main() * and destroy it at the end of main(), thereby guaranteeing that it @@ -283,13 +283,13 @@ isc_mem_detach(isc_mem_t **); */ /*@}*/ -void +void isc_mem_destroy(isc_mem_t **); /*%< * Destroy a memory context. */ -isc_result_t +isc_result_t isc_mem_ondestroy(isc_mem_t *ctx, isc_task_t *task, isc_event_t **event); @@ -298,13 +298,13 @@ isc_mem_ondestroy(isc_mem_t *ctx, * been successfully destroyed. */ -void +void isc_mem_stats(isc_mem_t *mctx, FILE *out); /*%< * Print memory usage statistics for 'mctx' on the stream 'out'. */ -void +void isc_mem_setdestroycheck(isc_mem_t *mctx, isc_boolean_t on); /*%< @@ -313,9 +313,9 @@ isc_mem_setdestroycheck(isc_mem_t *mctx, */ /*@{*/ -void +void isc_mem_setquota(isc_mem_t *, size_t); -size_t +size_t isc_mem_getquota(isc_mem_t *); /*%< * Set/get the memory quota of 'mctx'. This is a hard limit @@ -324,7 +324,7 @@ isc_mem_getquota(isc_mem_t *); */ /*@}*/ -size_t +size_t isc_mem_inuse(isc_mem_t *mctx); /*%< * Get an estimate of the number of memory in use in 'mctx', in bytes. @@ -336,13 +336,29 @@ void isc_mem_setwater(isc_mem_t *mctx, isc_mem_water_t water, void *water_arg, size_t hiwater, size_t lowater); /*%< - * Set high and low water marks for this memory context. - * - * When the memory - * usage of 'mctx' exceeds 'hiwater', '(water)(water_arg, #ISC_MEM_HIWATER)' - * will be called. When the usage drops below 'lowater', 'water' will - * again be called, this time with #ISC_MEM_LOWATER. + * Set high and low water marks for this memory context. * + * When the memory usage of 'mctx' exceeds 'hiwater', + * '(water)(water_arg, #ISC_MEM_HIWATER)' will be called. 'water' needs to + * call isc_mem_waterack() with #ISC_MEM_HIWATER to acknowlege the state + * change. 'water' may be called multiple times. + * + * When the usage drops below 'lowater', 'water' will again be called, this + * time with #ISC_MEM_LOWATER. 'water' need to calls isc_mem_waterack() with + * #ISC_MEM_LOWATER to acknowlege the change. + * + * static void + * water(void *arg, int mark) { + * struct foo *foo = arg; + * + * LOCK(&foo->marklock); + * if (foo->mark != mark) { + * foo->mark = mark; + * .... + * isc_mem_waterack(foo->mctx, mark); + * } + * UNLOCK(&foo->marklock); + * } * If 'water' is NULL then 'water_arg', 'hi_water' and 'lo_water' are * ignored and the state is reset. * @@ -352,6 +368,12 @@ isc_mem_setwater(isc_mem_t *mctx, isc_mem_water_t water, void *water_arg, * hi_water >= lo_water */ +void +isc_mem_waterack(isc_mem_t *ctx, int mark); +/*%< + * Called to acknowledge changes in signalled by calls to 'water'. + */ + void isc_mem_printactive(isc_mem_t *mctx, FILE *file); /*%< @@ -520,22 +542,22 @@ isc_mempool_setfillcount(isc_mempool_t *mpctx, unsigned int limit); /* * Pseudo-private functions for use via macros. Do not call directly. */ -void * +void * isc__mem_get(isc_mem_t *, size_t _ISC_MEM_FLARG); -void +void isc__mem_putanddetach(isc_mem_t **, void *, size_t _ISC_MEM_FLARG); -void +void isc__mem_put(isc_mem_t *, void *, size_t _ISC_MEM_FLARG); -void * +void * isc__mem_allocate(isc_mem_t *, size_t _ISC_MEM_FLARG); -void +void isc__mem_free(isc_mem_t *, void * _ISC_MEM_FLARG); -char * +char * isc__mem_strdup(isc_mem_t *, const char *_ISC_MEM_FLARG); -void * +void * isc__mempool_get(isc_mempool_t * _ISC_MEM_FLARG); -void +void isc__mempool_put(isc_mempool_t *, void * _ISC_MEM_FLARG); ISC_LANG_ENDDECLS diff --git a/lib/isc/include/isc/msgs.h b/lib/isc/include/isc/msgs.h index 97b21085eddf..0970647dafcd 100644 --- a/lib/isc/include/isc/msgs.h +++ b/lib/isc/include/isc/msgs.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: msgs.h,v 1.9.18.2 2005/04/29 00:16:59 marka Exp $ */ +/* $Id: msgs.h,v 1.9.18.4 2008/08/08 06:27:56 tbox Exp $ */ #ifndef ISC_MSGS_H #define ISC_MSGS_H 1 @@ -57,7 +57,7 @@ /*@{*/ /*! - * Message numbers + * Message numbers * are only required to be unique per message set, * but are unique throughout the entire catalog to not be as confusing when * debugging. @@ -153,7 +153,10 @@ #define ISC_MSG_ACCEPTRETURNED 1418 /*%< accept() returned %d/%s */ #define ISC_MSG_TOOMANYFDS 1419 /*%< %s: too many open file descriptors */ #define ISC_MSG_ZEROPORT 1420 /*%< dropping source port zero packet */ -#define ISC_MSG_FILTER 1420 /*%< setsockopt(SO_ACCEPTFILTER): %s */ +#define ISC_MSG_FILTER 1421 /*%< setsockopt(SO_ACCEPTFILTER): %s */ + +#define ISC_MSG_TOOMANYHANDLES 1422 /*%< %s: too many open WSA event handles: %s */ + #define ISC_MSG_AWAKE 1502 /*%< "awake" */ #define ISC_MSG_WORKING 1503 /*%< "working" */ diff --git a/lib/isc/include/isc/platform.h.in b/lib/isc/include/isc/platform.h.in index 0531edfa020e..afcd4df01ccb 100644 --- a/lib/isc/include/isc/platform.h.in +++ b/lib/isc/include/isc/platform.h.in @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: platform.h.in,v 1.34.18.9 2007/09/13 05:04:01 each Exp $ */ +/* $Id: platform.h.in,v 1.34.18.11 2008/06/24 23:45:55 tbox Exp $ */ #ifndef ISC_PLATFORM_H #define ISC_PLATFORM_H 1 @@ -140,6 +140,21 @@ */ @ISC_PLATFORM_FIXIN6ISADDR@ +/*! \brief + * Define if the system supports kqueue multiplexing + */ +@ISC_PLATFORM_HAVEKQUEUE@ + +/*! \brief + * Define if the system supports epoll multiplexing + */ +@ISC_PLATFORM_HAVEEPOLL@ + +/*! \brief + * Define if the system supports /dev/poll multiplexing + */ +@ISC_PLATFORM_HAVEDEVPOLL@ + /* *** Printing. ***/ @@ -224,19 +239,19 @@ /* * If the "xadd" operation is available on this architecture, - * ISC_PLATFORM_HAVEXADD will be defined. + * ISC_PLATFORM_HAVEXADD will be defined. */ @ISC_PLATFORM_HAVEXADD@ /* * If the "atomic swap" operation is available on this architecture, - * ISC_PLATFORM_HAVEATOMICSTORE" will be defined. + * ISC_PLATFORM_HAVEATOMICSTORE" will be defined. */ @ISC_PLATFORM_HAVEATOMICSTORE@ /* * If the "compare-and-exchange" operation is available on this architecture, - * ISC_PLATFORM_HAVECMPXCHG will be defined. + * ISC_PLATFORM_HAVECMPXCHG will be defined. */ @ISC_PLATFORM_HAVECMPXCHG@ diff --git a/lib/isc/include/isc/portset.h b/lib/isc/include/isc/portset.h new file mode 100644 index 000000000000..6396e5ced3d5 --- /dev/null +++ b/lib/isc/include/isc/portset.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC") + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id: portset.h,v 1.3.4.1 2008/06/24 03:42:10 marka Exp $ */ + +/*! \file isc/portset.h + * \brief Transport Protocol Port Manipuration Module + * + * This module provides simple utilities to handle a set of transport protocol + * (UDP or TCP) port numbers, e.g., for creating an ACL list. An isc_portset_t + * object is an opaque instance of a port set, for which the user can add or + * remove a specific port or a range of consecutive ports. This object is + * expected to be used as a temporary work space only, and does not protect + * simultaneous access from multiple threads. Therefore it must not be stored + * in a place that can be accessed from multiple threads. + */ + +#ifndef ISC_PORTSET_H +#define ISC_PORTSET_H 1 + +/*** + *** Imports + ***/ + +#include + +/*** + *** Functions + ***/ + +ISC_LANG_BEGINDECLS + +isc_result_t +isc_portset_create(isc_mem_t *mctx, isc_portset_t **portsetp); +/*%< + * Create a port set and initialize it as an empty set. + * + * Requires: + *\li 'mctx' to be valid. + *\li 'portsetp' to be non NULL and '*portsetp' to be NULL; + * + * Returns: + *\li #ISC_R_SUCCESS + *\li #ISC_R_NOMEMORY + */ + +void +isc_portset_destroy(isc_mem_t *mctx, isc_portset_t **portsetp); +/*%< + * Destroy a port set. + * + * Requires: + *\li 'mctx' to be valid and must be the same context given when the port set + * was created. + *\li '*portsetp' to be a valid set. + */ + +isc_boolean_t +isc_portset_isset(isc_portset_t *portset, in_port_t port); +/*%< + * Test whether the given port is stored in the portset. + * + * Requires: + *\li 'portset' to be a valid set. + * + * Returns + * \li #ISC_TRUE if the port is found, ISC_FALSE otherwise. + */ + +unsigned int +isc_portset_nports(isc_portset_t *portset); +/*%< + * Provides the number of ports stored in the given portset. + * + * Requires: + *\li 'portset' to be a valid set. + * + * Returns + * \li the number of ports stored in portset. + */ + +void +isc_portset_add(isc_portset_t *portset, in_port_t port); +/*%< + * Add the given port to the portset. The port may or may not be stored in + * the portset. + * + * Requires: + *\li 'portlist' to be valid. + */ + +void +isc_portset_remove(isc_portset_t *portset, in_port_t port); +/*%< + * Remove the given port to the portset. The port may or may not be stored in + * the portset. + * + * Requires: + *\li 'portlist' to be valid. + */ + +void +isc_portset_addrange(isc_portset_t *portset, in_port_t port_lo, + in_port_t port_hi); +/*%< + * Add a subset of [port_lo, port_hi] (inclusive) to the portset. Ports in the + * subset may or may not be stored in portset. + * + * Requires: + *\li 'portlist' to be valid. + *\li port_lo <= port_hi + */ + +void +isc_portset_removerange(isc_portset_t *portset, in_port_t port_lo, + in_port_t port_hi); +/*%< + * Subtract a subset of [port_lo, port_hi] (inclusive) from the portset. Ports + * in the subset may or may not be stored in portset. + * + * Requires: + *\li 'portlist' to be valid. + *\li port_lo <= port_hi + */ + +ISC_LANG_ENDDECLS + +#endif /* ISC_NETADDR_H */ diff --git a/lib/isc/include/isc/resource.h b/lib/isc/include/isc/resource.h index 18cd0ad81e24..8c33c89db025 100644 --- a/lib/isc/include/isc/resource.h +++ b/lib/isc/include/isc/resource.h @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resource.h,v 1.5.18.2.52.2 2008/07/23 23:48:17 tbox Exp $ */ +/* $Id: resource.h,v 1.5.18.4 2008/08/01 23:45:58 tbox Exp $ */ #ifndef ISC_RESOURCE_H #define ISC_RESOURCE_H 1 @@ -82,16 +82,13 @@ isc_resource_getlimit(isc_resource_t resource, isc_resourcevalue_t *value); */ isc_result_t -isc_resource_curlimit(isc_resource_t resource, isc_resourcevalue_t *value); -/* - * Get the current limit on a resource. - * - * Requires: - * 'resource' is a valid member of the isc_resource_t enumeration. +isc_resource_getcurlimit(isc_resource_t resource, isc_resourcevalue_t *value); +/*%< + * Same as isc_resource_getlimit(), but returns the current (soft) limit. * * Returns: - * ISC_R_SUCCESS Success. - * ISC_R_NOTIMPLEMENTED 'resource' is not a type known by the OS. + *\li #ISC_R_SUCCESS Success. + *\li #ISC_R_NOTIMPLEMENTED 'resource' is not a type known by the OS. */ ISC_LANG_ENDDECLS diff --git a/lib/isc/include/isc/socket.h b/lib/isc/include/isc/socket.h index 951a06316ed2..a9a22c87c57c 100644 --- a/lib/isc/include/isc/socket.h +++ b/lib/isc/include/isc/socket.h @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket.h,v 1.57.18.6.46.4 2008/07/23 23:16:43 marka Exp $ */ +/* $Id: socket.h,v 1.57.18.15 2008/09/04 08:03:08 marka Exp $ */ #ifndef ISC_SOCKET_H #define ISC_SOCKET_H 1 @@ -317,9 +317,54 @@ isc_socket_detach(isc_socket_t **socketp); * All resources used by the socket have been freed */ +isc_result_t +isc_socket_open(isc_socket_t *sock); +/*%< + * Open a new socket file descriptor of the given socket structure. It simply + * opens a new descriptor; all of the other parameters including the socket + * type are inherited from the existing socket. This function is provided to + * avoid overhead of destroying and creating sockets when many short-lived + * sockets are frequently opened and closed. When the efficiency is not an + * issue, it should be safer to detach the unused socket and re-create a new + * one. This optimization may not be available for some systems, in which + * case this function will return ISC_R_NOTIMPLEMENTED and must not be used. + * + * Requires: + * + * \li there must be no other reference to this socket. + * + * \li 'socket' is a valid and previously closed by isc_socket_close() + * + * Returns: + * Same as isc_socket_create(). + * \li ISC_R_NOTIMPLEMENTED + */ + +isc_result_t +isc_socket_close(isc_socket_t *sock); +/*%< + * Close a socket file descriptor of the given socket structure. This function + * is provided as an alternative to destroying an unused socket when overhead + * destroying/re-creating sockets can be significant, and is expected to be + * used with isc_socket_open(). This optimization may not be available for some + * systems, in which case this function will return ISC_R_NOTIMPLEMENTED and + * must not be used. + * + * Requires: + * + * \li The socket must have a valid descriptor. + * + * \li There must be no other reference to this socket. + * + * \li There must be no pending I/O requests. + * + * Returns: + * \li #ISC_R_NOTIMPLEMENTED + */ + isc_result_t isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *addressp, - unsigned int options); + unsigned int options); /*%< * Bind 'socket' to '*addressp'. * @@ -644,8 +689,15 @@ isc_socket_sendto2(isc_socket_t *sock, isc_region_t *region, isc_result_t isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp); + +isc_result_t +isc_socketmgr_create2(isc_mem_t *mctx, isc_socketmgr_t **managerp, + unsigned int maxsocks); /*%< - * Create a socket manager. + * Create a socket manager. If "maxsocks" is non-zero, it specifies the + * maximum number of sockets that the created manager should handle. + * isc_socketmgr_create() is equivalent of isc_socketmgr_create2() with + * "maxsocks" being zero. * * Notes: * @@ -666,6 +718,23 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp); *\li #ISC_R_SUCCESS *\li #ISC_R_NOMEMORY *\li #ISC_R_UNEXPECTED + *\li #ISC_R_NOTIMPLEMENTED + */ + +isc_result_t +isc_socketmgr_getmaxsockets(isc_socketmgr_t *manager, unsigned int *nsockp); +/*%< + * Returns in "*nsockp" the maximum number of sockets this manager may open. + * + * Requires: + * + *\li '*manager' is a valid isc_socketmgr_t. + *\li 'nsockp' is not NULL. + * + * Returns: + * + *\li #ISC_R_SUCCESS + *\li #ISC_R_NOTIMPLEMENTED */ void @@ -738,7 +807,7 @@ isc_socket_cleanunix(isc_sockaddr_t *addr, isc_boolean_t active); isc_result_t isc_socket_permunix(isc_sockaddr_t *sockaddr, isc_uint32_t perm, - isc_uint32_t owner, isc_uint32_t group); + isc_uint32_t owner, isc_uint32_t group); /*%< * Set ownership and file permissions on the UNIX domain socket. * diff --git a/lib/isc/include/isc/timer.h b/lib/isc/include/isc/timer.h index 6e78be9d0269..7a7f614cb6ce 100644 --- a/lib/isc/include/isc/timer.h +++ b/lib/isc/include/isc/timer.h @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: timer.h,v 1.31.18.3.52.2 2008/07/24 23:48:09 tbox Exp $ */ +/* $Id: timer.h,v 1.31.18.5 2008/06/24 23:45:55 tbox Exp $ */ #ifndef ISC_TIMER_H #define ISC_TIMER_H 1 diff --git a/lib/isc/include/isc/types.h b/lib/isc/include/isc/types.h index 35a0be7ae262..b501b2cdcf24 100644 --- a/lib/isc/include/isc/types.h +++ b/lib/isc/include/isc/types.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: types.h,v 1.35.18.2 2005/04/29 00:17:04 marka Exp $ */ +/* $Id: types.h,v 1.35.18.4 2008/06/24 23:45:55 tbox Exp $ */ #ifndef ISC_TYPES_H #define ISC_TYPES_H 1 @@ -65,6 +65,7 @@ typedef struct isc_mempool isc_mempool_t; /*%< Memory Pool */ typedef struct isc_msgcat isc_msgcat_t; /*%< Message Catalog */ typedef struct isc_ondestroy isc_ondestroy_t; /*%< On Destroy */ typedef struct isc_netaddr isc_netaddr_t; /*%< Net Address */ +typedef struct isc_portset isc_portset_t; /*%< Port Set */ typedef struct isc_quota isc_quota_t; /*%< Quota */ typedef struct isc_random isc_random_t; /*%< Random */ typedef struct isc_ratelimiter isc_ratelimiter_t; /*%< Rate Limiter */ diff --git a/lib/isc/mem.c b/lib/isc/mem.c index aec6118252d7..408770d82c4c 100644 --- a/lib/isc/mem.c +++ b/lib/isc/mem.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: mem.c,v 1.116.18.18 2007/10/30 23:31:43 marka Exp $ */ +/* $Id: mem.c,v 1.116.18.21 2008/02/07 23:45:56 tbox Exp $ */ /*! \file */ @@ -193,7 +193,7 @@ struct isc_mempool { if ((isc_mem_debugging & (ISC_MEM_DEBUGTRACE | \ ISC_MEM_DEBUGRECORD)) != 0 && \ b != NULL) \ - add_trace_entry(a, b, c, d, e); \ + add_trace_entry(a, b, c, d, e); \ } while (0) #define DELETE_TRACE(a, b, c, d, e) delete_trace_entry(a, b, c, d, e) @@ -314,7 +314,7 @@ delete_trace_entry(isc_mem_t *mctx, const void *ptr, unsigned int size, static inline size_t rmsize(size_t size) { /* - * round down to ALIGNMENT_SIZE + * round down to ALIGNMENT_SIZE */ return (size & (~(ALIGNMENT_SIZE - 1))); } @@ -603,7 +603,7 @@ mem_get(isc_mem_t *ctx, size_t size) { ret = (ctx->memalloc)(ctx->arg, size); if (ret == NULL) - ctx->memalloc_failures++; + ctx->memalloc_failures++; #if ISC_MEM_FILL if (ret != NULL) @@ -705,7 +705,7 @@ isc_mem_createx(size_t init_max_size, size_t target_size, { return (isc_mem_createx2(init_max_size, target_size, memalloc, memfree, arg, ctxp, ISC_MEMFLAG_DEFAULT)); - + } isc_result_t @@ -882,7 +882,7 @@ destroy(isc_mem_t *ctx) { dl != NULL; dl = ISC_LIST_HEAD(ctx->debuglist[i])) { ISC_LIST_UNLINK(ctx->debuglist[i], - dl, link); + dl, link); free(dl); } } @@ -907,7 +907,8 @@ destroy(isc_mem_t *ctx) { for (i = 0; i < ctx->basic_table_count; i++) (ctx->memfree)(ctx->arg, ctx->basic_table[i]); (ctx->memfree)(ctx->arg, ctx->freelists); - (ctx->memfree)(ctx->arg, ctx->basic_table); + if (ctx->basic_table != NULL) + (ctx->memfree)(ctx->arg, ctx->basic_table); } ondest = ctx->ondestroy; @@ -1085,7 +1086,6 @@ isc__mem_get(isc_mem_t *ctx, size_t size FLARG) { ADD_TRACE(ctx, ptr, size, file, line); if (ctx->hi_water != 0U && !ctx->hi_called && ctx->inuse > ctx->hi_water) { - ctx->hi_called = ISC_TRUE; call_water = ISC_TRUE; } if (ctx->inuse > ctx->maxinuse) { @@ -1141,10 +1141,8 @@ isc__mem_put(isc_mem_t *ctx, void *ptr, size_t size FLARG) * when the context was pushed over hi_water but then had * isc_mem_setwater() called with 0 for hi_water and lo_water. */ - if (ctx->hi_called && + if (ctx->hi_called && (ctx->inuse < ctx->lo_water || ctx->lo_water == 0U)) { - ctx->hi_called = ISC_FALSE; - if (ctx->water != NULL) call_water = ISC_TRUE; } @@ -1154,6 +1152,18 @@ isc__mem_put(isc_mem_t *ctx, void *ptr, size_t size FLARG) (ctx->water)(ctx->water_arg, ISC_MEM_LOWATER); } +void +isc_mem_waterack(isc_mem_t *ctx, int flag) { + REQUIRE(VALID_CONTEXT(ctx)); + + MCTXLOCK(ctx, &ctx->lock); + if (flag == ISC_MEM_LOWATER) + ctx->hi_called = ISC_FALSE; + else if (flag == ISC_MEM_HIWATER) + ctx->hi_called = ISC_TRUE; + MCTXUNLOCK(ctx, &ctx->lock); +} + #if ISC_MEM_TRACKLINES static void print_active(isc_mem_t *mctx, FILE *out) { @@ -1169,11 +1179,11 @@ print_active(isc_mem_t *mctx, FILE *out) { "memory allocations:\n")); found = ISC_FALSE; format = isc_msgcat_get(isc_msgcat, ISC_MSGSET_MEM, - ISC_MSG_PTRFILELINE, + ISC_MSG_PTRFILELINE, "\tptr %p size %u file %s line %u\n"); for (i = 0; i <= mctx->max_size; i++) { dl = ISC_LIST_HEAD(mctx->debuglist[i]); - + if (dl != NULL) found = ISC_TRUE; @@ -1371,7 +1381,7 @@ isc__mem_free(isc_mem_t *ctx, void *ptr FLARG) { * when the context was pushed over hi_water but then had * isc_mem_setwater() called with 0 for hi_water and lo_water. */ - if (ctx->hi_called && + if (ctx->hi_called && (ctx->inuse < ctx->lo_water || ctx->lo_water == 0U)) { ctx->hi_called = ISC_FALSE; @@ -1461,7 +1471,7 @@ isc_mem_inuse(isc_mem_t *ctx) { void isc_mem_setwater(isc_mem_t *ctx, isc_mem_water_t water, void *water_arg, - size_t hiwater, size_t lowater) + size_t hiwater, size_t lowater) { isc_boolean_t callwater = ISC_FALSE; isc_mem_water_t oldwater; @@ -1492,7 +1502,7 @@ isc_mem_setwater(isc_mem_t *ctx, isc_mem_water_t water, void *water_arg, ctx->hi_called = ISC_FALSE; } MCTXUNLOCK(ctx, &ctx->lock); - + if (callwater && oldwater != NULL) (oldwater)(oldwater_arg, ISC_MEM_LOWATER); } @@ -1931,7 +1941,7 @@ isc_mem_printallactive(FILE *file) { #endif } -void +void isc_mem_checkdestroyed(FILE *file) { RUNTIME_CHECK(isc_once_do(&once, initialize_action) == ISC_R_SUCCESS); diff --git a/lib/isc/portset.c b/lib/isc/portset.c new file mode 100644 index 000000000000..0265c89efd3c --- /dev/null +++ b/lib/isc/portset.c @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC") + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id: portset.c,v 1.2.4.3 2008/06/24 23:27:11 marka Exp $ */ + +/*! \file */ + +#include + +#include +#include +#include +#include +#include + +#define ISC_PORTSET_BUFSIZE (65536 / (sizeof(isc_uint32_t) * 8)) + +/*% + * Internal representation of portset. It's an array of 32-bit integers, each + * bit corresponding to a single port in the ascending order. For example, + * the second most significant bit of buf[0] corresponds to port 1. + */ +struct isc_portset { + unsigned int nports; /*%< number of ports in the set */ + isc_uint32_t buf[ISC_PORTSET_BUFSIZE]; +}; + +static inline isc_boolean_t +portset_isset(isc_portset_t *portset, in_port_t port) { + return (ISC_TF((portset->buf[port >> 5] & (1 << (port & 31))) != 0)); +} + +static inline void +portset_add(isc_portset_t *portset, in_port_t port) { + if (!portset_isset(portset, port)) { + portset->nports++; + portset->buf[port >> 5] |= (1 << (port & 31)); + } +} + +static inline void +portset_remove(isc_portset_t *portset, in_port_t port) { + if (portset_isset(portset, port)) { + portset->nports--; + portset->buf[port >> 5] &= ~(1 << (port & 31)); + } +} + +isc_result_t +isc_portset_create(isc_mem_t *mctx, isc_portset_t **portsetp) { + isc_portset_t *portset; + + REQUIRE(portsetp != NULL && *portsetp == NULL); + + portset = isc_mem_get(mctx, sizeof(*portset)); + if (portset == NULL) + return (ISC_R_NOMEMORY); + + /* Make the set 'empty' by default */ + memset(portset, 0, sizeof(*portset)); + *portsetp = portset; + + return (ISC_R_SUCCESS); +} + +void +isc_portset_destroy(isc_mem_t *mctx, isc_portset_t **portsetp) { + isc_portset_t *portset; + + REQUIRE(portsetp != NULL); + portset = *portsetp; + + isc_mem_put(mctx, portset, sizeof(*portset)); +} + +isc_boolean_t +isc_portset_isset(isc_portset_t *portset, in_port_t port) { + REQUIRE(portset != NULL); + + return (portset_isset(portset, port)); +} + +unsigned int +isc_portset_nports(isc_portset_t *portset) { + REQUIRE(portset != NULL); + + return (portset->nports); +} + +void +isc_portset_add(isc_portset_t *portset, in_port_t port) { + REQUIRE(portset != NULL); + + portset_add(portset, port); +} + +void +isc_portset_remove(isc_portset_t *portset, in_port_t port) { + portset_remove(portset, port); +} + +void +isc_portset_addrange(isc_portset_t *portset, in_port_t port_lo, + in_port_t port_hi) +{ + in_port_t p; + + REQUIRE(portset != NULL); + REQUIRE(port_lo <= port_hi); + + p = port_lo; + do { + portset_add(portset, p); + } while (p++ < port_hi); +} + +void +isc_portset_removerange(isc_portset_t *portset, in_port_t port_lo, + in_port_t port_hi) +{ + in_port_t p; + + REQUIRE(portset != NULL); + REQUIRE(port_lo <= port_hi); + + p = port_lo; + do { + portset_remove(portset, p); + } while (p++ < port_hi); +} diff --git a/lib/isc/print.c b/lib/isc/print.c index 59c528b866c0..191ad24a664f 100644 --- a/lib/isc/print.c +++ b/lib/isc/print.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: print.c,v 1.27.18.3 2006/04/17 18:27:33 explorer Exp $ */ +/* $Id: print.c,v 1.27.18.5 2008/02/18 23:46:01 tbox Exp $ */ /*! \file */ @@ -246,8 +246,24 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { head = ""; tmpui = tmpi; } - sprintf(buf, "%" ISC_PRINT_QUADFORMAT "u", - tmpui); + if (tmpui <= 0xffffffffU) + sprintf(buf, "%lu", + (unsigned long)tmpui); + else { + unsigned long mid; + unsigned long lo; + unsigned long hi; + lo = tmpui % 1000000000; + tmpui /= 1000000000; + mid = tmpui % 1000000000; + hi = tmpui / 1000000000; + if (hi != 0) + sprintf(buf, "%lu", hi); + else + buf[0] = '\n'; + sprintf(buf + strlen(buf), "%lu", mid); + sprintf(buf + strlen(buf), "%lu", lo); + } goto printint; case 'o': if (q) @@ -256,10 +272,29 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui = va_arg(ap, long int); else tmpui = va_arg(ap, int); - sprintf(buf, - alt ? "%#" ISC_PRINT_QUADFORMAT "o" - : "%" ISC_PRINT_QUADFORMAT "o", - tmpui); + if (tmpui <= 0xffffffffU) + sprintf(buf, alt ? "%#lo" : "%lo", + (unsigned long)tmpui); + else { + unsigned long mid; + unsigned long lo; + unsigned long hi; + lo = tmpui % 010000000000; + tmpui /= 010000000000; + mid = tmpui % 010000000000; + hi = tmpui / 010000000000; + if (hi != 0) { + sprintf(buf, + alt ? "%#lo" : "%lo", + hi); + sprintf(buf + strlen(buf), + "%lo", mid); + } else + sprintf(buf, + alt ? "%#lo" : "%lo", + mid); + sprintf(buf + strlen(buf), "%lo", lo); + } goto printint; case 'u': if (q) @@ -268,8 +303,24 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui = va_arg(ap, unsigned long int); else tmpui = va_arg(ap, unsigned int); - sprintf(buf, "%" ISC_PRINT_QUADFORMAT "u", - tmpui); + if (tmpui <= 0xffffffffU) + sprintf(buf, "%lu", + (unsigned long)tmpui); + else { + unsigned long mid; + unsigned long lo; + unsigned long hi; + lo = tmpui % 1000000000; + tmpui /= 1000000000; + mid = tmpui % 1000000000; + hi = tmpui / 1000000000; + if (hi != 0) + sprintf(buf, "%lu", hi); + else + buf[0] = '\n'; + sprintf(buf + strlen(buf), "%lu", mid); + sprintf(buf + strlen(buf), "%lu", lo); + } goto printint; case 'x': if (q) @@ -283,8 +334,15 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { if (precision > 2) precision -= 2; } - sprintf(buf, "%" ISC_PRINT_QUADFORMAT "x", - tmpui); + if (tmpui <= 0xffffffffU) + sprintf(buf, "%lx", + (unsigned long)tmpui); + else { + unsigned long hi = tmpui>>32; + unsigned long lo = tmpui & 0xffffffff; + sprintf(buf, "%lx", hi); + sprintf(buf + strlen(buf), "%lx", lo); + } goto printint; case 'X': if (q) @@ -298,8 +356,15 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { if (precision > 2) precision -= 2; } - sprintf(buf, "%" ISC_PRINT_QUADFORMAT "X", - tmpui); + if (tmpui <= 0xffffffffU) + sprintf(buf, "%lX", + (unsigned long)tmpui); + else { + unsigned long hi = tmpui>>32; + unsigned long lo = tmpui & 0xffffffff; + sprintf(buf, "%lX", hi); + sprintf(buf + strlen(buf), "%lX", lo); + } goto printint; printint: if (precision != 0 || width != 0) { diff --git a/lib/isc/pthreads/mutex.c b/lib/isc/pthreads/mutex.c index 7716980e10a2..afbc861c2ef7 100644 --- a/lib/isc/pthreads/mutex.c +++ b/lib/isc/pthreads/mutex.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: mutex.c,v 1.8.18.4 2005/07/12 01:22:32 marka Exp $ */ +/* $Id: mutex.c,v 1.8.18.6 2008/04/04 23:46:02 tbox Exp $ */ /*! \file */ @@ -36,23 +36,23 @@ /*% Operations on timevals; adapted from FreeBSD's sys/time.h */ #define timevalclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) #define timevaladd(vvp, uvp) \ - do { \ - (vvp)->tv_sec += (uvp)->tv_sec; \ - (vvp)->tv_usec += (uvp)->tv_usec; \ - if ((vvp)->tv_usec >= 1000000) { \ - (vvp)->tv_sec++; \ - (vvp)->tv_usec -= 1000000; \ - } \ - } while (0) + do { \ + (vvp)->tv_sec += (uvp)->tv_sec; \ + (vvp)->tv_usec += (uvp)->tv_usec; \ + if ((vvp)->tv_usec >= 1000000) { \ + (vvp)->tv_sec++; \ + (vvp)->tv_usec -= 1000000; \ + } \ + } while (0) #define timevalsub(vvp, uvp) \ - do { \ - (vvp)->tv_sec -= (uvp)->tv_sec; \ - (vvp)->tv_usec -= (uvp)->tv_usec; \ - if ((vvp)->tv_usec < 0) { \ - (vvp)->tv_sec--; \ - (vvp)->tv_usec += 1000000; \ - } \ - } while (0) + do { \ + (vvp)->tv_sec -= (uvp)->tv_sec; \ + (vvp)->tv_usec -= (uvp)->tv_usec; \ + if ((vvp)->tv_usec < 0) { \ + (vvp)->tv_sec--; \ + (vvp)->tv_usec += 1000000; \ + } \ + } while (0) /*@}*/ @@ -77,8 +77,11 @@ struct isc_mutexstats { isc_mutexlocker_t lockers[ISC_MUTEX_MAX_LOCKERS]; }; -#define TABLESIZE (8 * 1024) -static isc_mutexstats_t stats[TABLESIZE]; +#ifndef ISC_MUTEX_PROFTABLESIZE +#define ISC_MUTEX_PROFTABLESIZE (16 * 1024) +#endif +static isc_mutexstats_t stats[ISC_MUTEX_PROFTABLESIZE]; +static int stats_next = 0; static isc_boolean_t stats_init = ISC_FALSE; static pthread_mutex_t statslock = PTHREAD_MUTEX_INITIALIZER; @@ -95,21 +98,19 @@ isc_mutex_init_profile(isc_mutex_t *mp, const char *file, int line) { RUNTIME_CHECK(pthread_mutex_lock(&statslock) == 0); - if (stats_init == ISC_FALSE) { - for (i = 0; i < TABLESIZE; i++) { - stats[i].file = NULL; - } + if (stats_init == ISC_FALSE) stats_init = ISC_TRUE; - } - mp->stats = NULL; - for (i = 0; i < TABLESIZE; i++) { - if (stats[i].file == NULL) { - mp->stats = &stats[i]; - break; - } - } - RUNTIME_CHECK(mp->stats != NULL); + /* + * If all statistics entries have been used, give up and trigger an + * assertion failure. There would be no other way to deal with this + * because we'd like to keep record of all locks for the purpose of + * debugging and the number of necessary locks is unpredictable. + * If this failure is triggered while debugging, named should be + * rebuilt with an increased ISC_MUTEX_PROFTABLESIZE. + */ + RUNTIME_CHECK(stats_next < ISC_MUTEX_PROFTABLESIZE); + mp->stats = &stats[stats_next++]; RUNTIME_CHECK(pthread_mutex_unlock(&statslock) == 0); @@ -196,10 +197,9 @@ void isc_mutex_statsprofile(FILE *fp) { isc_mutexlocker_t *locker; int i, j; + fprintf(fp, "Mutex stats (in us)\n"); - for (i = 0; i < TABLESIZE; i++) { - if (stats[i].file == NULL) - continue; + for (i = 0; i < stats_next; i++) { fprintf(fp, "%-12s %4d: %10u %lu.%06lu %lu.%06lu\n", stats[i].file, stats[i].line, stats[i].count, stats[i].locked_total.tv_sec, @@ -236,7 +236,7 @@ isc_mutex_init_errcheck(isc_mutex_t *mp) if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK) != 0) return (ISC_R_UNEXPECTED); - + err = pthread_mutex_init(mp, &attr) != 0) if (err == ENOMEM) return (ISC_R_NOMEMORY); @@ -251,6 +251,7 @@ pthread_mutexattr_t isc__mutex_attrs = { }; #endif +#if !(ISC_MUTEX_DEBUG && defined(PTHREAD_MUTEX_ERRORCHECK)) && !ISC_MUTEX_PROFILE isc_result_t isc__mutex_init(isc_mutex_t *mp, const char *file, unsigned int line) { char strbuf[ISC_STRERRORSIZE]; @@ -268,3 +269,4 @@ isc__mutex_init(isc_mutex_t *mp, const char *file, unsigned int line) { } return (result); } +#endif diff --git a/lib/isc/timer.c b/lib/isc/timer.c index d594307d953c..c27281de1264 100644 --- a/lib/isc/timer.c +++ b/lib/isc/timer.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: timer.c,v 1.73.18.7.10.3 2008/07/29 18:35:53 jinmei Exp $ */ +/* $Id: timer.c,v 1.73.18.10 2008/08/22 05:59:04 marka Exp $ */ /*! \file */ @@ -225,7 +225,7 @@ schedule(isc_timer_t *timer, isc_time_t *now, isc_boolean_t signal_ok) { "*** POKED TIMER ***"); } } - + if (timer->index == 1 && signal_ok) { XTRACE(isc_msgcat_get(isc_msgcat, ISC_MSGSET_TIMER, ISC_MSG_SIGNALSCHED, diff --git a/lib/isc/unix/app.c b/lib/isc/unix/app.c index b71d766eb551..c119362581cd 100644 --- a/lib/isc/unix/app.c +++ b/lib/isc/unix/app.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: app.c,v 1.50.18.2.50.1 2008/07/29 04:47:31 each Exp $ */ +/* $Id: app.c,v 1.50.18.8 2008/10/15 03:41:17 marka Exp $ */ /*! \file */ @@ -30,6 +30,9 @@ #include #include #include +#ifdef HAVE_EPOLL +#include +#endif #include #include @@ -59,11 +62,11 @@ static isc_boolean_t running = ISC_FALSE; /*! * We assume that 'want_shutdown' can be read and written atomically. */ -static isc_boolean_t want_shutdown = ISC_FALSE; +static volatile isc_boolean_t want_shutdown = ISC_FALSE; /* * We assume that 'want_reload' can be read and written atomically. */ -static isc_boolean_t want_reload = ISC_FALSE; +static volatile isc_boolean_t want_reload = ISC_FALSE; static isc_boolean_t blocked = ISC_FALSE; #ifdef ISC_PLATFORM_USETHREADS @@ -87,13 +90,13 @@ static pthread_t main_thread; #ifndef HAVE_SIGWAIT static void exit_action(int arg) { - UNUSED(arg); + UNUSED(arg); want_shutdown = ISC_TRUE; } static void reload_action(int arg) { - UNUSED(arg); + UNUSED(arg); want_reload = ISC_TRUE; } #endif @@ -297,14 +300,13 @@ isc_app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action, * Event loop for nonthreaded programs. */ static isc_result_t -evloop() { +evloop(void) { isc_result_t result; while (!want_shutdown) { int n; isc_time_t when, now; struct timeval tv, *tvp; - fd_set *readfds, *writefds; - int maxfd; + isc_socketwait_t *swait; isc_boolean_t readytasks; isc_boolean_t call_timer_dispatch = ISC_FALSE; @@ -331,15 +333,15 @@ evloop() { } } - isc__socketmgr_getfdsets(&readfds, &writefds, &maxfd); - n = select(maxfd, readfds, writefds, NULL, tvp); + swait = NULL; + n = isc__socketmgr_waitevents(tvp, &swait); if (n == 0 || call_timer_dispatch) { /* * We call isc__timermgr_dispatch() only when * necessary, in order to reduce overhead. If the * select() call indicates a timeout, we need the - * dispatch. Even if not, if we set the 0-timeout + * dispatch. Even if not, if we set the 0-timeout * for the select() call, we need to check the timer * events. In the 'readytasks' case, there may be no * timeout event actually, but there is no other way @@ -352,8 +354,7 @@ evloop() { isc__timermgr_dispatch(); } if (n > 0) - (void)isc__socketmgr_dispatch(readfds, writefds, - maxfd); + (void)isc__socketmgr_dispatch(swait); (void)isc__taskmgr_dispatch(); if (want_reload) { @@ -423,7 +424,7 @@ isc__nothread_signal_hack(isc_condition_t *cp) { signalled = ISC_TRUE; return (ISC_R_SUCCESS); } - + #endif /* ISC_PLATFORM_USETHREADS */ isc_result_t @@ -434,10 +435,10 @@ isc_app_run(void) { #ifdef ISC_PLATFORM_USETHREADS sigset_t sset; char strbuf[ISC_STRERRORSIZE]; -#endif /* ISC_PLATFORM_USETHREADS */ #ifdef HAVE_SIGWAIT int sig; #endif +#endif /* ISC_PLATFORM_USETHREADS */ #ifdef HAVE_LINUXTHREADS REQUIRE(main_thread == pthread_self()); @@ -676,7 +677,7 @@ isc_app_unblock(void) { REQUIRE(blockedthread == pthread_self()); RUNTIME_CHECK(sigemptyset(&sset) == 0 && - sigaddset(&sset, SIGINT) == 0 && + sigaddset(&sset, SIGINT) == 0 && sigaddset(&sset, SIGTERM) == 0); RUNTIME_CHECK(pthread_sigmask(SIG_BLOCK, &sset, NULL) == 0); #endif /* ISC_PLATFORM_USETHREADS */ diff --git a/lib/isc/unix/include/isc/net.h b/lib/isc/unix/include/isc/net.h index bdd8c14c9fd5..948e7b19d3d4 100644 --- a/lib/isc/unix/include/isc/net.h +++ b/lib/isc/unix/include/isc/net.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: net.h,v 1.39.18.4 2005/04/27 05:02:37 sra Exp $ */ +/* $Id: net.h,v 1.39.18.6 2008/06/24 23:45:55 tbox Exp $ */ #ifndef ISC_NET_H #define ISC_NET_H 1 @@ -104,7 +104,7 @@ /*% * Required for some pre RFC2133 implementations. * IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT were added in - * draft-ietf-ipngwg-bsd-api-04.txt or draft-ietf-ipngwg-bsd-api-05.txt. + * draft-ietf-ipngwg-bsd-api-04.txt or draft-ietf-ipngwg-bsd-api-05.txt. * If 's6_addr' is defined then assume that there is a union and three * levels otherwise assume two levels required. */ @@ -202,7 +202,7 @@ extern const struct in6_addr isc_net_in6addrloop; #ifdef ISC_PLATFORM_FIXIN6ISADDR #undef IN6_IS_ADDR_GEOGRAPHIC -/*! +/*! * \brief * Fix UnixWare 7.1.1's broken IN6_IS_ADDR_* definitions. */ @@ -324,6 +324,23 @@ isc_net_probeunix(void); * Returns whether UNIX domain sockets are supported. */ +isc_result_t +isc_net_getudpportrange(int af, in_port_t *low, in_port_t *high); +/*%< + * Returns system's default range of ephemeral UDP ports, if defined. + * If the range is not available or unknown, ISC_NET_PORTRANGELOW and + * ISC_NET_PORTRANGEHIGH will be returned. + * + * Requires: + * + *\li 'low' and 'high' must be non NULL. + * + * Returns: + * + *\li *low and *high will be the ports specifying the low and high ends of + * the range. + */ + #ifdef ISC_PLATFORM_NEEDNTOP const char * isc_net_ntop(int af, const void *src, char *dst, size_t size); diff --git a/lib/isc/unix/net.c b/lib/isc/unix/net.c index 1de6b32a19d7..600ac9292c70 100644 --- a/lib/isc/unix/net.c +++ b/lib/isc/unix/net.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,10 +15,19 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: net.c,v 1.29.18.6 2007/09/13 23:46:26 tbox Exp $ */ +/* $Id: net.c,v 1.29.18.9 2008/07/04 05:52:05 each Exp $ */ #include +#include + +#if defined(HAVE_SYS_SYSCTL_H) +#if defined(HAVE_SYS_PARAM_H) +#include +#endif +#include +#endif + #include #include @@ -30,6 +39,59 @@ #include #include +/*% + * Definitions about UDP port range specification. This is a total mess of + * portability variants: some use sysctl (but the sysctl names vary), some use + * system-specific interfaces, some have the same interface for IPv4 and IPv6, + * some separate them, etc... + */ + +/*% + * The last resort defaults: use all non well known port space + */ +#ifndef ISC_NET_PORTRANGELOW +#define ISC_NET_PORTRANGELOW 1024 +#endif /* ISC_NET_PORTRANGELOW */ +#ifndef ISC_NET_PORTRANGEHIGH +#define ISC_NET_PORTRANGEHIGH 65535 +#endif /* ISC_NET_PORTRANGEHIGH */ + +#ifdef HAVE_SYSCTLBYNAME + +/*% + * sysctl variants + */ +#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__DragonFly__) +#define USE_SYSCTL_PORTRANGE +#define SYSCTL_V4PORTRANGE_LOW "net.inet.ip.portrange.hifirst" +#define SYSCTL_V4PORTRANGE_HIGH "net.inet.ip.portrange.hilast" +#define SYSCTL_V6PORTRANGE_LOW "net.inet.ip.portrange.hifirst" +#define SYSCTL_V6PORTRANGE_HIGH "net.inet.ip.portrange.hilast" +#endif + +#ifdef __NetBSD__ +#define USE_SYSCTL_PORTRANGE +#define SYSCTL_V4PORTRANGE_LOW "net.inet.ip.anonportmin" +#define SYSCTL_V4PORTRANGE_HIGH "net.inet.ip.anonportmax" +#define SYSCTL_V6PORTRANGE_LOW "net.inet6.ip6.anonportmin" +#define SYSCTL_V6PORTRANGE_HIGH "net.inet6.ip6.anonportmax" +#endif + +#else /* !HAVE_SYSCTLBYNAME */ + +#ifdef __OpenBSD__ +#define USE_SYSCTL_PORTRANGE +#define SYSCTL_V4PORTRANGE_LOW { CTL_NET, PF_INET, IPPROTO_IP, \ + IPCTL_IPPORT_HIFIRSTAUTO } +#define SYSCTL_V4PORTRANGE_HIGH { CTL_NET, PF_INET, IPPROTO_IP, \ + IPCTL_IPPORT_HILASTAUTO } +/* Same for IPv6 */ +#define SYSCTL_V6PORTRANGE_LOW SYSCTL_V4PORTRANGE_LOW +#define SYSCTL_V6PORTRANGE_HIGH SYSCTL_V4PORTRANGE_HIGH +#endif + +#endif /* HAVE_SYSCTLBYNAME */ + #if defined(ISC_PLATFORM_HAVEIPV6) # if defined(ISC_PLATFORM_NEEDIN6ADDRANY) const struct in6_addr isc_net_in6addrany = IN6ADDR_ANY_INIT; @@ -338,6 +400,101 @@ isc_net_probe_ipv6pktinfo(void) { return (ipv6pktinfo_result); } +#if defined(USE_SYSCTL_PORTRANGE) +#if defined(HAVE_SYSCTLBYNAME) +static isc_result_t +getudpportrange_sysctl(int af, in_port_t *low, in_port_t *high) { + int port_low, port_high; + size_t portlen; + const char *sysctlname_lowport, *sysctlname_hiport; + + if (af == AF_INET) { + sysctlname_lowport = SYSCTL_V4PORTRANGE_LOW; + sysctlname_hiport = SYSCTL_V4PORTRANGE_HIGH; + } else { + sysctlname_lowport = SYSCTL_V6PORTRANGE_LOW; + sysctlname_hiport = SYSCTL_V6PORTRANGE_HIGH; + } + portlen = sizeof(portlen); + if (sysctlbyname(sysctlname_lowport, &port_low, &portlen, + NULL, 0) < 0) { + return (ISC_R_FAILURE); + } + portlen = sizeof(portlen); + if (sysctlbyname(sysctlname_hiport, &port_high, &portlen, + NULL, 0) < 0) { + return (ISC_R_FAILURE); + } + if ((port_low & ~0xffff) != 0 || (port_high & ~0xffff) != 0) + return (ISC_R_RANGE); + + *low = (in_port_t)port_low; + *high = (in_port_t)port_high; + + return (ISC_R_SUCCESS); +} +#else /* !HAVE_SYSCTLBYNAME */ +static isc_result_t +getudpportrange_sysctl(int af, in_port_t *low, in_port_t *high) { + int mib_lo4[4] = SYSCTL_V4PORTRANGE_LOW; + int mib_hi4[4] = SYSCTL_V4PORTRANGE_HIGH; + int mib_lo6[4] = SYSCTL_V6PORTRANGE_LOW; + int mib_hi6[4] = SYSCTL_V6PORTRANGE_HIGH; + int *mib_lo, *mib_hi, miblen; + int port_low, port_high; + size_t portlen; + + if (af == AF_INET) { + mib_lo = mib_lo4; + mib_hi = mib_hi4; + miblen = sizeof(mib_lo4) / sizeof(mib_lo4[0]); + } else { + mib_lo = mib_lo6; + mib_hi = mib_hi6; + miblen = sizeof(mib_lo6) / sizeof(mib_lo6[0]); + } + + portlen = sizeof(portlen); + if (sysctl(mib_lo, miblen, &port_low, &portlen, NULL, 0) < 0) { + return (ISC_R_FAILURE); + } + + portlen = sizeof(portlen); + if (sysctl(mib_hi, miblen, &port_high, &portlen, NULL, 0) < 0) { + return (ISC_R_FAILURE); + } + + if ((port_low & ~0xffff) != 0 || (port_high & ~0xffff) != 0) + return (ISC_R_RANGE); + + *low = (in_port_t) port_low; + *high = (in_port_t) port_high; + + return (ISC_R_SUCCESS); +} +#endif /* HAVE_SYSCTLBYNAME */ +#endif /* USE_SYSCTL_PORTRANGE */ + +isc_result_t +isc_net_getudpportrange(int af, in_port_t *low, in_port_t *high) { + int result = ISC_R_FAILURE; + + REQUIRE(low != NULL && high != NULL); + +#if defined(USE_SYSCTL_PORTRANGE) + result = getudpportrange_sysctl(af, low, high); +#else + UNUSED(af); +#endif + + if (result != ISC_R_SUCCESS) { + *low = ISC_NET_PORTRANGELOW; + *high = ISC_NET_PORTRANGEHIGH; + } + + return (ISC_R_SUCCESS); /* we currently never fail in this function */ +} + void isc_net_disableipv4(void) { initialize(); diff --git a/lib/isc/unix/resource.c b/lib/isc/unix/resource.c index 0264976f8816..e9bc5fd6bd17 100644 --- a/lib/isc/unix/resource.c +++ b/lib/isc/unix/resource.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resource.c,v 1.12.944.4 2008/07/28 22:44:46 marka Exp $ */ +/* $Id: resource.c,v 1.12.18.6 2008/08/05 07:17:05 marka Exp $ */ #include @@ -32,7 +32,7 @@ #include /* To get the large NR_OPEN. */ #endif -#ifdef __hpux +#if defined(__hpux) && defined(HAVE_SYS_DYNTUNE_H) #include #endif @@ -48,13 +48,13 @@ resource2rlim(isc_resource_t resource, int *rlim_resource) { break; case isc_resource_cputime: *rlim_resource = RLIMIT_CPU; - break; + break; case isc_resource_datasize: *rlim_resource = RLIMIT_DATA; - break; + break; case isc_resource_filesize: *rlim_resource = RLIMIT_FSIZE; - break; + break; case isc_resource_lockedmemory: #ifdef RLIMIT_MEMLOCK *rlim_resource = RLIMIT_MEMLOCK; @@ -87,7 +87,7 @@ resource2rlim(isc_resource_t resource, int *rlim_resource) { *rlim_resource = RLIMIT_STACK; break; default: - /* + /* * This test is not very robust if isc_resource_t * changes, but generates a clear assertion message. */ @@ -140,51 +140,6 @@ isc_resource_setlimit(isc_resource_t resource, isc_resourcevalue_t value) { rlim_value = value; } - /* - * The BIND 8 documentation reports: - * - * Note: on some operating systems the server cannot set an - * unlimited value and cannot determine the maximum number of - * open files the kernel can support. On such systems, choosing - * unlimited will cause the server to use the larger of the - * rlim_max for RLIMIT_NOFILE and the value returned by - * sysconf(_SC_OPEN_MAX). If the actual kernel limit is larger - * than this value, use limit files to specify the limit - * explicitly. - * - * The CHANGES for 8.1.2-T3A also mention: - * - * 352. [bug] Because of problems with setting an infinite - * rlim_max for RLIMIT_NOFILE on some systems, previous versions - * of the server implemented "limit files unlimited" by setting - * the limit to the value returned by sysconf(_SC_OPEN_MAX). The - * server will now use RLIM_INFINITY on systems which allow it. - * - * At some point the BIND 8 server stopped using SC_OPEN_MAX for this - * purpose at all, but it isn't clear to me when or why, as my access - * to the CVS archive is limited at the time of this writing. What - * BIND 8 *does* do is to set RLIMIT_NOFILE to either RLIMIT_INFINITY - * on a half dozen operating systems or to FD_SETSIZE on the rest, - * the latter of which is probably fewer than the real limit. (Note - * that libisc's socket module will have problems with any fd over - * FD_SETSIZE. This should be fixed in the socket module, not a - * limitation here. BIND 8's eventlib also has a problem, making - * its RLIMIT_INFINITY setting useless, because it closes and ignores - * any fd over FD_SETSIZE.) - * - * More troubling is the reference to some operating systems not being - * able to set an unlimited value for the number of open files. I'd - * hate to put in code that is really only there to support archaic - * systems that the rest of libisc won't work on anyway. So what this - * extremely verbose comment is here to say is the following: - * - * I'm aware there might be an issue with not limiting the value - * for RLIMIT_NOFILE on some systems, but since I don't know yet - * what those systems are and what the best workaround is (use - * sysconf()? rlim_max from getrlimit()? FD_SETSIZE?) so nothing - * is currently being done to clamp the value for open files. - */ - rl.rlim_cur = rl.rlim_max = rlim_value; unixresult = setrlimit(unixresource, &rl); @@ -215,7 +170,7 @@ isc_resource_setlimit(isc_resource_t resource, isc_resourcevalue_t value) { if (unixresult == 0) return (ISC_R_SUCCESS); } -#elif defined(__hpux) +#elif defined(__hpux) && defined(HAVE_SYS_DYNTUNE_H) if (resource == isc_resource_openfiles && rlim_value == RLIM_INFINITY) { uint64_t maxfiles; if (gettune("maxfiles_lim", &maxfiles) == 0) { @@ -255,7 +210,7 @@ isc_resource_getlimit(isc_resource_t resource, isc_resourcevalue_t *value) { } isc_result_t -isc_resource_curlimit(isc_resource_t resource, isc_resourcevalue_t *value) { +isc_resource_getcurlimit(isc_resource_t resource, isc_resourcevalue_t *value) { int unixresult; int unixresource; struct rlimit rl; diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index 1b4da78c2436..32396148ae02 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket.c,v 1.237.18.29.10.6 2008/07/29 04:47:31 each Exp $ */ +/* $Id: socket.c,v 1.237.18.56 2008/11/12 03:58:36 marka Exp $ */ /*! \file */ @@ -25,9 +25,6 @@ #include #include #include -#ifdef ISC_PLATFORM_HAVESYSUNH -#include -#endif #include #include @@ -58,6 +55,19 @@ #include #include +#ifdef ISC_PLATFORM_HAVESYSUNH +#include +#endif +#ifdef ISC_PLATFORM_HAVEKQUEUE +#include +#endif +#ifdef ISC_PLATFORM_HAVEEPOLL +#include +#endif +#ifdef ISC_PLATFORM_HAVEDEVPOLL +#include +#endif + #include "errno2result.h" #ifndef ISC_PLATFORM_USETHREADS @@ -65,9 +75,46 @@ #endif /* ISC_PLATFORM_USETHREADS */ /*% - * Max number of open sockets. In the vast majority of cases the default size - * of FD_SETSIZE should be fine, and this constant should be increased only - * when absolutely necessary and possible, i.e., the server is exhausting all + * Choose the most preferable multiplex method. + */ +#ifdef ISC_PLATFORM_HAVEKQUEUE +#define USE_KQUEUE +#elif defined (ISC_PLATFORM_HAVEEPOLL) +#define USE_EPOLL +#elif defined (ISC_PLATFORM_HAVEDEVPOLL) +#define USE_DEVPOLL +typedef struct { + unsigned int want_read : 1, + want_write : 1; +} pollinfo_t; +#else +#define USE_SELECT +#endif /* ISC_PLATFORM_HAVEKQUEUE */ + +#ifndef ISC_PLATFORM_USETHREADS +#if defined(USE_KQUEUE) || defined(USE_EPOLL) || defined(USE_DEVPOLL) +struct isc_socketwait { + int nevents; +}; +#elif defined (USE_SELECT) +struct isc_socketwait { + fd_set *readset; + fd_set *writeset; + int nfds; + int maxfd; +}; +#endif /* USE_KQUEUE */ +#endif /* !ISC_PLATFORM_USETHREADS */ + +/*% + * Maximum number of allowable open sockets. This is also the maximum + * allowable socket file descriptor. + * + * Care should be taken before modifying this value for select(): + * The API standard doesn't ensure select() accept more than (the system default + * of) FD_SETSIZE descriptors, and the default size should in fact be fine in + * the vast majority of cases. This constant should therefore be increased only + * when absolutely necessary and possible, i.e., the server is exhausting all * available file descriptors (up to FD_SETSIZE) and the select() function * and FD_xxx macros support larger values than FD_SETSIZE (which may not * always by true, but we keep using some of them to ensure as much @@ -78,18 +125,72 @@ * As a special note, this value shouldn't have to be touched if * this is a build for an authoritative only DNS server. */ +#ifndef ISC_SOCKET_MAXSOCKETS +#if defined(USE_KQUEUE) || defined(USE_EPOLL) || defined(USE_DEVPOLL) +#define ISC_SOCKET_MAXSOCKETS 4096 +#elif defined(USE_SELECT) +#define ISC_SOCKET_MAXSOCKETS FD_SETSIZE +#endif /* USE_KQUEUE... */ +#endif /* ISC_SOCKET_MAXSOCKETS */ -#ifndef ISC_SOCKET_FDSETSIZE -#define ISC_SOCKET_FDSETSIZE FD_SETSIZE -#endif - +#ifdef USE_SELECT /*% - * Mac OS X needs a special definition to support larger values in select() + * Mac OS X needs a special definition to support larger values in select(). + * We always define this because a larger value can be specified run-time. */ -#if ISC_SOCKET_FDSETSIZE > FD_SETSIZE #ifdef __APPLE__ #define _DARWIN_UNLIMITED_SELECT #endif /* __APPLE__ */ +#endif /* USE_SELECT */ + +#ifdef ISC_SOCKET_USE_POLLWATCH +/*% + * If this macro is defined, enable workaround for a Solaris /dev/poll kernel + * bug: DP_POLL ioctl could keep sleeping even if socket I/O is possible for + * some of the specified FD. The idea is based on the observation that it's + * likely for a busy server to keep receiving packets. It specifically works + * as follows: the socket watcher is first initialized with the state of + * "poll_idle". While it's in the idle state it keeps sleeping until a socket + * event occurs. When it wakes up for a socket I/O event, it moves to the + * poll_active state, and sets the poll timeout to a short period + * (ISC_SOCKET_POLLWATCH_TIMEOUT msec). If timeout occurs in this state, the + * watcher goes to the poll_checking state with the same timeout period. + * In this state, the watcher tries to detect whether this is a break + * during intermittent events or the kernel bug is triggered. If the next + * polling reports an event within the short period, the previous timeout is + * likely to be a kernel bug, and so the watcher goes back to the active state. + * Otherwise, it moves to the idle state again. + * + * It's not clear whether this is a thread-related bug, but since we've only + * seen this with threads, this workaround is used only when enabling threads. + */ + +typedef enum { poll_idle, poll_active, poll_checking } pollstate_t; + +#ifndef ISC_SOCKET_POLLWATCH_TIMEOUT +#define ISC_SOCKET_POLLWATCH_TIMEOUT 10 +#endif /* ISC_SOCKET_POLLWATCH_TIMEOUT */ +#endif /* ISC_SOCKET_USE_POLLWATCH */ + +/*% + * Size of per-FD lock buckets. + */ +#ifdef ISC_PLATFORM_USETHREADS +#define FDLOCK_COUNT 1024 +#define FDLOCK_ID(fd) ((fd) % FDLOCK_COUNT) +#else +#define FDLOCK_COUNT 1 +#define FDLOCK_ID(fd) 0 +#endif /* ISC_PLATFORM_USETHREADS */ + +/*% + * Maximum number of events communicated with the kernel. There should normally + * be no need for having a large number. + */ +#if defined(USE_KQUEUE) || defined(USE_EPOLL) || defined(USE_DEVPOLL) +#ifndef ISC_SOCKET_MAXEVENTS +#define ISC_SOCKET_MAXEVENTS 64 +#endif #endif /*% @@ -230,22 +331,50 @@ struct isc_socketmgr { unsigned int magic; isc_mem_t *mctx; isc_mutex_t lock; + isc_mutex_t *fdlock; +#ifdef USE_KQUEUE + int kqueue_fd; + int nevents; + struct kevent *events; +#endif /* USE_KQUEUE */ +#ifdef USE_EPOLL + int epoll_fd; + int nevents; + struct epoll_event *events; +#endif /* USE_EPOLL */ +#ifdef USE_DEVPOLL + int devpoll_fd; + int nevents; + struct pollfd *events; +#endif /* USE_DEVPOLL */ +#ifdef USE_SELECT int fd_bufsize; - int fdsize; +#endif /* USE_SELECT */ + unsigned int maxsocks; +#ifdef ISC_PLATFORM_USETHREADS + int pipe_fds[2]; +#endif + + /* Locked by fdlock. */ + isc_socket_t **fds; + int *fdstate; +#ifdef USE_DEVPOLL + pollinfo_t *fdpollinfo; +#endif + /* Locked by manager lock. */ ISC_LIST(isc_socket_t) socklist; +#ifdef USE_SELECT fd_set *read_fds; fd_set *read_fds_copy; fd_set *write_fds; fd_set *write_fds_copy; - isc_socket_t **fds; - int *fdstate; int maxfd; - int reserved; /* unlocked */ +#endif /* USE_SELECT */ + int reserved; /* unlocked */ #ifdef ISC_PLATFORM_USETHREADS isc_thread_t watcher; isc_condition_t shutdown_ok; - int pipe_fds[2]; #else /* ISC_PLATFORM_USETHREADS */ unsigned int refs; #endif /* ISC_PLATFORM_USETHREADS */ @@ -284,8 +413,9 @@ static void build_msghdr_send(isc_socket_t *, isc_socketevent_t *, struct msghdr *, struct iovec *, size_t *); static void build_msghdr_recv(isc_socket_t *, isc_socketevent_t *, struct msghdr *, struct iovec *, size_t *); -static void cleanup_fdsets(isc_socketmgr_t *, isc_mem_t *); -static isc_result_t create_fdsets(isc_socketmgr_t *, isc_mem_t *); +#ifdef ISC_PLATFORM_USETHREADS +static isc_boolean_t process_ctlfd(isc_socketmgr_t *manager); +#endif #define SELECT_POKE_SHUTDOWN (-1) #define SELECT_POKE_NOTHING (-2) @@ -354,9 +484,195 @@ socket_log(isc_socket_t *sock, isc_sockaddr_t *address, } } +#if defined(_AIX) && defined(ISC_NET_BSD44MSGHDR) && \ + defined(USE_CMSG) && defined(IPV6_RECVPKTINFO) +/* + * AIX has a kernel bug where IPV6_RECVPKTINFO gets cleared by + * setting IPV6_V6ONLY. + */ +static void +FIX_IPV6_RECVPKTINFO(isc_socket_t *sock) +{ + char strbuf[ISC_STRERRORSIZE]; + int on = 1; + + if (sock->pf != AF_INET6 || sock->type != isc_sockettype_udp) + return; + + if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, + (void *)&on, sizeof(on)) < 0) { + + UNEXPECTED_ERROR(__FILE__, __LINE__, + "setsockopt(%d, IPV6_RECVPKTINFO) " + "%s: %s", sock->fd, + isc_msgcat_get(isc_msgcat, + ISC_MSGSET_GENERAL, + ISC_MSG_FAILED, + "failed"), + strbuf); + } +} +#else +#define FIX_IPV6_RECVPKTINFO(sock) (void)0 +#endif + +static inline isc_result_t +watch_fd(isc_socketmgr_t *manager, int fd, int msg) { + isc_result_t result = ISC_R_SUCCESS; + +#ifdef USE_KQUEUE + struct kevent evchange; + + memset(&evchange, 0, sizeof(evchange)); + if (msg == SELECT_POKE_READ) + evchange.filter = EVFILT_READ; + else + evchange.filter = EVFILT_WRITE; + evchange.flags = EV_ADD; + evchange.ident = fd; + if (kevent(manager->kqueue_fd, &evchange, 1, NULL, 0, NULL) != 0) + result = isc__errno2result(errno); + + return (result); +#elif defined(USE_EPOLL) + struct epoll_event event; + + if (msg == SELECT_POKE_READ) + event.events = EPOLLIN; + else + event.events = EPOLLOUT; + event.data.fd = fd; + if (epoll_ctl(manager->epoll_fd, EPOLL_CTL_ADD, fd, &event) == -1 && + errno != EEXIST) { + result = isc__errno2result(errno); + } + + return (result); +#elif defined(USE_DEVPOLL) + struct pollfd pfd; + int lockid = FDLOCK_ID(fd); + + memset(&pfd, 0, sizeof(pfd)); + if (msg == SELECT_POKE_READ) + pfd.events = POLLIN; + else + pfd.events = POLLOUT; + pfd.fd = fd; + pfd.revents = 0; + LOCK(&manager->fdlock[lockid]); + if (write(manager->devpoll_fd, &pfd, sizeof(pfd)) == -1) + result = isc__errno2result(errno); + else { + if (msg == SELECT_POKE_READ) + manager->fdpollinfo[fd].want_read = 1; + else + manager->fdpollinfo[fd].want_write = 1; + } + UNLOCK(&manager->fdlock[lockid]); + + return (result); +#elif defined(USE_SELECT) + LOCK(&manager->lock); + if (msg == SELECT_POKE_READ) + FD_SET(fd, manager->read_fds); + if (msg == SELECT_POKE_WRITE) + FD_SET(fd, manager->write_fds); + UNLOCK(&manager->lock); + + return (result); +#endif +} + +static inline isc_result_t +unwatch_fd(isc_socketmgr_t *manager, int fd, int msg) { + isc_result_t result = ISC_R_SUCCESS; + +#ifdef USE_KQUEUE + struct kevent evchange; + + memset(&evchange, 0, sizeof(evchange)); + if (msg == SELECT_POKE_READ) + evchange.filter = EVFILT_READ; + else + evchange.filter = EVFILT_WRITE; + evchange.flags = EV_DELETE; + evchange.ident = fd; + if (kevent(manager->kqueue_fd, &evchange, 1, NULL, 0, NULL) != 0) + result = isc__errno2result(errno); + + return (result); +#elif defined(USE_EPOLL) + struct epoll_event event; + + if (msg == SELECT_POKE_READ) + event.events = EPOLLIN; + else + event.events = EPOLLOUT; + event.data.fd = fd; + if (epoll_ctl(manager->epoll_fd, EPOLL_CTL_DEL, fd, &event) == -1 && + errno != ENOENT) { + char strbuf[ISC_STRERRORSIZE]; + isc__strerror(errno, strbuf, sizeof(strbuf)); + UNEXPECTED_ERROR(__FILE__, __LINE__, + "epoll_ctl(DEL), %d: %s", fd, strbuf); + result = ISC_R_UNEXPECTED; + } + return (result); +#elif defined(USE_DEVPOLL) + struct pollfd pfds[2]; + size_t writelen = sizeof(pfds[0]); + int lockid = FDLOCK_ID(fd); + + memset(pfds, 0, sizeof(pfds)); + pfds[0].events = POLLREMOVE; + pfds[0].fd = fd; + + /* + * Canceling read or write polling via /dev/poll is tricky. Since it + * only provides a way of canceling per FD, we may need to re-poll the + * socket for the other operation. + */ + LOCK(&manager->fdlock[lockid]); + if (msg == SELECT_POKE_READ && + manager->fdpollinfo[fd].want_write == 1) { + pfds[1].events = POLLOUT; + pfds[1].fd = fd; + writelen += sizeof(pfds[1]); + } + if (msg == SELECT_POKE_WRITE && + manager->fdpollinfo[fd].want_read == 1) { + pfds[1].events = POLLIN; + pfds[1].fd = fd; + writelen += sizeof(pfds[1]); + } + + if (write(manager->devpoll_fd, pfds, writelen) == -1) + result = isc__errno2result(errno); + else { + if (msg == SELECT_POKE_READ) + manager->fdpollinfo[fd].want_read = 0; + else + manager->fdpollinfo[fd].want_write = 0; + } + UNLOCK(&manager->fdlock[lockid]); + + return (result); +#elif defined(USE_SELECT) + LOCK(&manager->lock); + if (msg == SELECT_POKE_READ) + FD_CLR(fd, manager->read_fds); + else if (msg == SELECT_POKE_WRITE) + FD_CLR(fd, manager->write_fds); + UNLOCK(&manager->lock); + + return (result); +#endif +} + static void wakeup_socket(isc_socketmgr_t *manager, int fd, int msg) { - isc_socket_t *sock; + isc_result_t result; + int lockid = FDLOCK_ID(fd); /* * This is a wakeup on a socket. If the socket is not in the @@ -364,27 +680,54 @@ wakeup_socket(isc_socketmgr_t *manager, int fd, int msg) { * or writes. */ - INSIST(fd >= 0 && fd < manager->fdsize); + INSIST(fd >= 0 && fd < (int)manager->maxsocks); - if (manager->fdstate[fd] == CLOSE_PENDING) { + if (msg == SELECT_POKE_CLOSE) { + /* No one should be updating fdstate, so no need to lock it */ + INSIST(manager->fdstate[fd] == CLOSE_PENDING); manager->fdstate[fd] = CLOSED; - FD_CLR(fd, manager->read_fds); - FD_CLR(fd, manager->write_fds); + (void)unwatch_fd(manager, fd, SELECT_POKE_READ); + (void)unwatch_fd(manager, fd, SELECT_POKE_WRITE); (void)close(fd); return; } - if (manager->fdstate[fd] != MANAGED) - return; - sock = manager->fds[fd]; + LOCK(&manager->fdlock[lockid]); + if (manager->fdstate[fd] == CLOSE_PENDING) { + UNLOCK(&manager->fdlock[lockid]); + /* + * We accept (and ignore) any error from unwatch_fd() as we are + * closing the socket, hoping it doesn't leave dangling state in + * the kernel. + * Note that unwatch_fd() must be called after releasing the + * fdlock; otherwise it could cause deadlock due to a lock order + * reversal. + */ + (void)unwatch_fd(manager, fd, SELECT_POKE_READ); + (void)unwatch_fd(manager, fd, SELECT_POKE_WRITE); + return; + } + if (manager->fdstate[fd] != MANAGED) { + UNLOCK(&manager->fdlock[lockid]); + return; + } + UNLOCK(&manager->fdlock[lockid]); /* * Set requested bit. */ - if (msg == SELECT_POKE_READ) - FD_SET(sock->fd, manager->read_fds); - if (msg == SELECT_POKE_WRITE) - FD_SET(sock->fd, manager->write_fds); + result = watch_fd(manager, fd, msg); + if (result != ISC_R_SUCCESS) { + /* + * XXXJT: what should we do? Ignoring the failure of watching + * a socket will make the application dysfunctional, but there + * seems to be no reasonable recovery process. + */ + isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, + ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR, + "failed to start watching FD (%d): %s", + fd, isc_result_totext(result)); + } } #ifdef ISC_PLATFORM_USETHREADS @@ -452,7 +795,7 @@ select_readmsg(isc_socketmgr_t *mgr, int *fd, int *msg) { "read() failed " "during watcher poke: %s"), strbuf); - + return; } INSIST(cc == sizeof(buf)); @@ -557,7 +900,7 @@ cmsg_space(ISC_SOCKADDR_LEN_T len) { return ((char *)cmsgp - (char *)msg.msg_control); else return (0); -#endif +#endif } #endif /* USE_CMSG */ @@ -631,7 +974,7 @@ process_cmsg(isc_socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) { "interface received on ifindex %u", dev->pktinfo.ipi6_ifindex); if (IN6_IS_ADDR_MULTICAST(&pktinfop->ipi6_addr)) - dev->attributes |= ISC_SOCKEVENTATTR_MULTICAST; + dev->attributes |= ISC_SOCKEVENTATTR_MULTICAST; goto next; } #endif @@ -679,7 +1022,7 @@ build_msghdr_send(isc_socket_t *sock, isc_socketevent_t *dev, memset(msg, 0, sizeof(*msg)); - if (sock->type == isc_sockettype_udp) { + if (!sock->connected) { msg->msg_name = (void *)&dev->address.type.sa; msg->msg_namelen = dev->address.length; } else { @@ -964,15 +1307,17 @@ dump_msg(struct msghdr *msg) { unsigned int i; printf("MSGHDR %p\n", msg); - printf("\tname %p, namelen %d\n", msg->msg_name, msg->msg_namelen); - printf("\tiov %p, iovlen %d\n", msg->msg_iov, msg->msg_iovlen); + printf("\tname %p, namelen %ld\n", msg->msg_name, + (long) msg->msg_namelen); + printf("\tiov %p, iovlen %ld\n", msg->msg_iov, + (long) msg->msg_iovlen); for (i = 0; i < (unsigned int)msg->msg_iovlen; i++) - printf("\t\t%d\tbase %p, len %d\n", i, + printf("\t\t%d\tbase %p, len %ld\n", i, msg->msg_iov[i].iov_base, - msg->msg_iov[i].iov_len); + (long) msg->msg_iov[i].iov_len); #ifdef ISC_NET_BSD44MSGHDR - printf("\tcontrol %p, controllen %d\n", msg->msg_control, - msg->msg_controllen); + printf("\tcontrol %p, controllen %ld\n", msg->msg_control, + (long) msg->msg_controllen); #endif } #endif @@ -1014,7 +1359,7 @@ doio_recv(isc_socket_t *sock, isc_socketevent_t *dev) { isc__strerror(recv_errno, strbuf, sizeof(strbuf)); socket_log(sock, NULL, IOEVENT, isc_msgcat, ISC_MSGSET_SOCKET, - ISC_MSG_DOIORECV, + ISC_MSG_DOIORECV, "doio_recv: recvmsg(%d) %d bytes, err %d/%s", sock->fd, cc, recv_errno, strbuf); } @@ -1040,6 +1385,14 @@ doio_recv(isc_socket_t *sock, isc_socketevent_t *dev) { /* HPUX 11.11 can return EADDRNOTAVAIL. */ SOFT_OR_HARD(EADDRNOTAVAIL, ISC_R_ADDRNOTAVAIL); ALWAYS_HARD(ENOBUFS, ISC_R_NORESOURCES); + /* + * HPUX returns EPROTO and EINVAL on receiving some ICMP/ICMPv6 + * errors. + */ +#ifdef EPROTO + SOFT_OR_HARD(EPROTO, ISC_R_HOSTUNREACH); +#endif + SOFT_OR_HARD(EINVAL, ISC_R_HOSTUNREACH); #undef SOFT_OR_HARD #undef ALWAYS_HARD @@ -1062,7 +1415,7 @@ doio_recv(isc_socket_t *sock, isc_socketevent_t *dev) { if (isc_log_wouldlog(isc_lctx, IOEVENT_LEVEL)) { socket_log(sock, &dev->address, IOEVENT, isc_msgcat, ISC_MSGSET_SOCKET, - ISC_MSG_ZEROPORT, + ISC_MSG_ZEROPORT, "dropping source port zero packet"); } return (DOIO_SOFT); @@ -1244,8 +1597,55 @@ doio_send(isc_socket_t *sock, isc_socketevent_t *dev) { * Caller must ensure that the socket is not locked and no external * references exist. */ +static void +closesocket(isc_socketmgr_t *manager, isc_sockettype_t type, int fd) { + int lockid = FDLOCK_ID(fd); + + UNUSED(type); + + /* + * No one has this socket open, so the watcher doesn't have to be + * poked, and the socket doesn't have to be locked. + */ + LOCK(&manager->fdlock[lockid]); + manager->fds[fd] = NULL; + manager->fdstate[fd] = CLOSE_PENDING; + UNLOCK(&manager->fdlock[lockid]); + select_poke(manager, fd, SELECT_POKE_CLOSE); + + /* + * update manager->maxfd here (XXX: this should be implemented more + * efficiently) + */ +#ifdef USE_SELECT + LOCK(&manager->lock); + if (manager->maxfd == fd) { + int i; + + manager->maxfd = 0; + for (i = fd - 1; i >= 0; i--) { + lockid = FDLOCK_ID(i); + + LOCK(&manager->fdlock[lockid]); + if (manager->fdstate[i] == MANAGED) { + manager->maxfd = i; + UNLOCK(&manager->fdlock[lockid]); + break; + } + UNLOCK(&manager->fdlock[lockid]); + } +#ifdef ISC_PLATFORM_USETHREADS + if (manager->maxfd < manager->pipe_fds[0]) + manager->maxfd = manager->pipe_fds[0]; +#endif + } + UNLOCK(&manager->lock); +#endif /* USE_SELECT */ +} + static void destroy(isc_socket_t **sockp) { + int fd; isc_socket_t *sock = *sockp; isc_socketmgr_t *manager = sock->manager; @@ -1256,17 +1656,16 @@ destroy(isc_socket_t **sockp) { INSIST(ISC_LIST_EMPTY(sock->recv_list)); INSIST(ISC_LIST_EMPTY(sock->send_list)); INSIST(sock->connect_ev == NULL); - REQUIRE(sock->fd >= 0 && sock->fd < (int)manager->fdsize); + REQUIRE(sock->fd == -1 || sock->fd < (int)manager->maxsocks); + + if (sock->fd >= 0) { + fd = sock->fd; + sock->fd = -1; + closesocket(manager, sock->type, fd); + } LOCK(&manager->lock); - /* - * No one has this socket open, so the watcher doesn't have to be - * poked, and the socket doesn't have to be locked. - */ - manager->fds[sock->fd] = NULL; - manager->fdstate[sock->fd] = CLOSE_PENDING; - select_poke(manager, sock->fd, SELECT_POKE_CLOSE); ISC_LIST_UNLINK(manager->socklist, sock, link); #ifdef ISC_PLATFORM_USETHREADS @@ -1274,10 +1673,6 @@ destroy(isc_socket_t **sockp) { SIGNAL(&manager->shutdown_ok); #endif /* ISC_PLATFORM_USETHREADS */ - /* - * XXX should reset manager->maxfd here - */ - UNLOCK(&manager->lock); free_socket(sockp); @@ -1465,18 +1860,11 @@ clear_bsdcompat(void) { } #endif -/*% - * Create a new 'type' socket managed by 'manager'. Events - * will be posted to 'task' and when dispatched 'action' will be - * called with 'arg' as the arg value. The new socket is returned - * in 'socketp'. - */ -isc_result_t -isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, - isc_socket_t **socketp) -{ - isc_socket_t *sock = NULL; - isc_result_t result; +static isc_result_t +opensocket(isc_socketmgr_t *manager, isc_socket_t *sock) { + char strbuf[ISC_STRERRORSIZE]; + const char *err = "socket"; + int tries = 0; #if defined(USE_CMSG) || defined(SO_BSDCOMPAT) int on = 1; #endif @@ -1484,38 +1872,27 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, ISC_SOCKADDR_LEN_T optlen; int size; #endif - char strbuf[ISC_STRERRORSIZE]; - const char *err = "socket"; - int try = 0; - REQUIRE(VALID_MANAGER(manager)); - REQUIRE(socketp != NULL && *socketp == NULL); - - result = allocate_socket(manager, type, &sock); - if (result != ISC_R_SUCCESS) - return (result); - - sock->pf = pf; again: - switch (type) { + switch (sock->type) { case isc_sockettype_udp: - sock->fd = socket(pf, SOCK_DGRAM, IPPROTO_UDP); + sock->fd = socket(sock->pf, SOCK_DGRAM, IPPROTO_UDP); break; case isc_sockettype_tcp: - sock->fd = socket(pf, SOCK_STREAM, IPPROTO_TCP); + sock->fd = socket(sock->pf, SOCK_STREAM, IPPROTO_TCP); break; case isc_sockettype_unix: - sock->fd = socket(pf, SOCK_STREAM, 0); + sock->fd = socket(sock->pf, SOCK_STREAM, 0); break; } - if (sock->fd == -1 && errno == EINTR && try++ < 42) + if (sock->fd == -1 && errno == EINTR && tries++ < 42) goto again; #ifdef F_DUPFD /* * Leave a space for stdio and TCP to work in. */ - if (manager->reserved != 0 && type == isc_sockettype_udp && + if (manager->reserved != 0 && sock->type == isc_sockettype_udp && sock->fd >= 0 && sock->fd < manager->reserved) { int new, tmp; new = fcntl(sock->fd, F_DUPFD, manager->reserved); @@ -1535,20 +1912,18 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, } #endif - if (sock->fd >= (int)manager->fdsize) { + if (sock->fd >= (int)manager->maxsocks) { (void)close(sock->fd); isc_log_iwrite(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR, isc_msgcat, ISC_MSGSET_SOCKET, ISC_MSG_TOOMANYFDS, - "%s: too many open file descriptors", "socket"); - free_socket(&sock); + "socket: file descriptor exceeds limit (%d/%u)", + sock->fd, manager->maxsocks); return (ISC_R_NORESOURCES); } - - if (sock->fd < 0) { - free_socket(&sock); + if (sock->fd < 0) { switch (errno) { case EMFILE: case ENFILE: @@ -1580,14 +1955,13 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, if (make_nonblock(sock->fd) != ISC_R_SUCCESS) { (void)close(sock->fd); - free_socket(&sock); return (ISC_R_UNEXPECTED); } #ifdef SO_BSDCOMPAT RUNTIME_CHECK(isc_once_do(&bsdcompat_once, clear_bsdcompat) == ISC_R_SUCCESS); - if (type != isc_sockettype_unix && bsdcompat && + if (sock->type != isc_sockettype_unix && bsdcompat && setsockopt(sock->fd, SOL_SOCKET, SO_BSDCOMPAT, (void *)&on, sizeof(on)) < 0) { isc__strerror(errno, strbuf, sizeof(strbuf)); @@ -1601,8 +1975,22 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, } #endif +#ifdef SO_NOSIGPIPE + if (setsockopt(sock->fd, SOL_SOCKET, SO_NOSIGPIPE, + (void *)&on, sizeof(on)) < 0) { + isc__strerror(errno, strbuf, sizeof(strbuf)); + UNEXPECTED_ERROR(__FILE__, __LINE__, + "setsockopt(%d, SO_NOSIGPIPE) %s: %s", + sock->fd, + isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, + ISC_MSG_FAILED, "failed"), + strbuf); + /* Press on... */ + } +#endif + #if defined(USE_CMSG) || defined(SO_RCVBUF) - if (type == isc_sockettype_udp) { + if (sock->type == isc_sockettype_udp) { #if defined(USE_CMSG) #if defined(SO_TIMESTAMP) @@ -1612,7 +2000,7 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, isc__strerror(errno, strbuf, sizeof(strbuf)); UNEXPECTED_ERROR(__FILE__, __LINE__, "setsockopt(%d, SO_TIMESTAMP) %s: %s", - sock->fd, + sock->fd, isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_FAILED, @@ -1623,7 +2011,7 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, #endif /* SO_TIMESTAMP */ #if defined(ISC_PLATFORM_HAVEIPV6) - if (pf == AF_INET6 && sock->recvcmsgbuflen == 0U) { + if (sock->pf == AF_INET6 && sock->recvcmsgbuflen == 0U) { /* * Warn explicitly because this anomaly can be hidden * in usual operation (and unexpectedly appear later). @@ -1635,7 +2023,7 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, #ifdef ISC_PLATFORM_HAVEIN6PKTINFO #ifdef IPV6_RECVPKTINFO /* RFC 3542 */ - if ((pf == AF_INET6) + if ((sock->pf == AF_INET6) && (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, (void *)&on, sizeof(on)) < 0)) { isc__strerror(errno, strbuf, sizeof(strbuf)); @@ -1650,7 +2038,7 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, } #else /* RFC 2292 */ - if ((pf == AF_INET6) + if ((sock->pf == AF_INET6) && (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_PKTINFO, (void *)&on, sizeof(on)) < 0)) { isc__strerror(errno, strbuf, sizeof(strbuf)); @@ -1667,7 +2055,7 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, #endif /* ISC_PLATFORM_HAVEIN6PKTINFO */ #ifdef IPV6_USE_MIN_MTU /* RFC 3542, not too common yet*/ /* use minimum MTU */ - if (pf == AF_INET6) { + if (sock->pf == AF_INET6) { (void)setsockopt(sock->fd, IPPROTO_IPV6, IPV6_USE_MIN_MTU, (void *)&on, sizeof(on)); @@ -1676,6 +2064,27 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, #endif /* ISC_PLATFORM_HAVEIPV6 */ #endif /* defined(USE_CMSG) */ +#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT) + /* + * Turn off Path MTU discovery on IPv4/UDP sockets. + */ + if (sock->pf == AF_INET) { + int action = IP_PMTUDISC_DONT; + (void)setsockopt(sock->fd, IPPROTO_IP, IP_MTU_DISCOVER, + &action, sizeof(action)); + } +#endif +#if defined(IP_DONTFRAG) + /* + * Turn off Path MTU discovery on IPv4/UDP sockets. + */ + if (sock->pf == AF_INET) { + int off = 0; + (void)setsockopt(sock->fd, IPPROTO_IP, IP_DONTFRAG, + &off, sizeof(off)); + } +#endif + #if defined(SO_RCVBUF) optlen = sizeof(size); if (getsockopt(sock->fd, SOL_SOCKET, SO_RCVBUF, @@ -1699,22 +2108,61 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, } #endif /* defined(USE_CMSG) || defined(SO_RCVBUF) */ + return (ISC_R_SUCCESS); +} + +/*% + * Create a new 'type' socket managed by 'manager'. Events + * will be posted to 'task' and when dispatched 'action' will be + * called with 'arg' as the arg value. The new socket is returned + * in 'socketp'. + */ +isc_result_t +isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, + isc_socket_t **socketp) +{ + isc_socket_t *sock = NULL; + isc_result_t result; + int lockid; + + REQUIRE(VALID_MANAGER(manager)); + REQUIRE(socketp != NULL && *socketp == NULL); + + result = allocate_socket(manager, type, &sock); + if (result != ISC_R_SUCCESS) + return (result); + + sock->pf = pf; + result = opensocket(manager, sock); + if (result != ISC_R_SUCCESS) { + free_socket(&sock); + return (result); + } + sock->references = 1; *socketp = sock; - LOCK(&manager->lock); - /* * Note we don't have to lock the socket like we normally would because * there are no external references to it yet. */ + lockid = FDLOCK_ID(sock->fd); + LOCK(&manager->fdlock[lockid]); manager->fds[sock->fd] = sock; manager->fdstate[sock->fd] = MANAGED; +#ifdef USE_DEVPOLL + INSIST(sock->manager->fdpollinfo[sock->fd].want_read == 0 && + sock->manager->fdpollinfo[sock->fd].want_write == 0); +#endif + UNLOCK(&manager->fdlock[lockid]); + + LOCK(&manager->lock); ISC_LIST_APPEND(manager->socklist, sock, link); +#ifdef USE_SELECT if (manager->maxfd < sock->fd) manager->maxfd = sock->fd; - +#endif UNLOCK(&manager->lock); socket_log(sock, NULL, CREATION, isc_msgcat, ISC_MSGSET_SOCKET, @@ -1723,6 +2171,48 @@ isc_socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type, return (ISC_R_SUCCESS); } +isc_result_t +isc_socket_open(isc_socket_t *sock) { + isc_result_t result; + + REQUIRE(VALID_SOCKET(sock)); + + LOCK(&sock->lock); + REQUIRE(sock->references == 1); + UNLOCK(&sock->lock); + /* + * We don't need to retain the lock hereafter, since no one else has + * this socket. + */ + REQUIRE(sock->fd == -1); + + result = opensocket(sock->manager, sock); + if (result != ISC_R_SUCCESS) + sock->fd = -1; + + if (result == ISC_R_SUCCESS) { + int lockid = FDLOCK_ID(sock->fd); + + LOCK(&sock->manager->fdlock[lockid]); + sock->manager->fds[sock->fd] = sock; + sock->manager->fdstate[sock->fd] = MANAGED; +#ifdef USE_DEVPOLL + INSIST(sock->manager->fdpollinfo[sock->fd].want_read == 0 && + sock->manager->fdpollinfo[sock->fd].want_write == 0); +#endif + UNLOCK(&sock->manager->fdlock[lockid]); + +#ifdef USE_SELECT + LOCK(&sock->manager->lock); + if (sock->manager->maxfd < sock->fd) + sock->manager->maxfd = sock->fd; + UNLOCK(&sock->manager->lock); +#endif + } + + return (result); +} + /* * Attach to a socket. Caller must explicitly detach when it is done. */ @@ -1764,6 +2254,44 @@ isc_socket_detach(isc_socket_t **socketp) { *socketp = NULL; } +isc_result_t +isc_socket_close(isc_socket_t *sock) { + int fd; + + REQUIRE(VALID_SOCKET(sock)); + + LOCK(&sock->lock); + REQUIRE(sock->references == 1); + UNLOCK(&sock->lock); + /* + * We don't need to retain the lock hereafter, since no one else has + * this socket. + */ + + REQUIRE(sock->fd >= 0 && sock->fd < (int)sock->manager->maxsocks); + + INSIST(!sock->connecting); + INSIST(!sock->pending_recv); + INSIST(!sock->pending_send); + INSIST(!sock->pending_accept); + INSIST(ISC_LIST_EMPTY(sock->recv_list)); + INSIST(ISC_LIST_EMPTY(sock->send_list)); + INSIST(ISC_LIST_EMPTY(sock->accept_list)); + INSIST(sock->connect_ev == NULL); + + fd = sock->fd; + sock->fd = -1; + sock->listener = 0; + sock->connected = 0; + sock->connecting = 0; + sock->bound = 0; + isc_sockaddr_any(&sock->address); + + closesocket(sock->manager, sock->type, fd); + + return (ISC_R_SUCCESS); +} + /* * I/O is possible on a given socket. Schedule an event to this task that * will call an internal function to do the I/O. This will charge the @@ -1993,7 +2521,7 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { */ addrlen = sizeof(dev->newsocket->address.type); - memset(&dev->newsocket->address.type.sa, 0, addrlen); + memset(&dev->newsocket->address.type, 0, addrlen); fd = accept(sock->fd, &dev->newsocket->address.type.sa, (void *)&addrlen); @@ -2070,19 +2598,20 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { UNEXPECTED_ERROR(__FILE__, __LINE__, "internal_accept(): " "accept() returned peer address " - "family %u (expected %u)", + "family %u (expected %u)", dev->newsocket->address. type.sa.sa_family, sock->pf); (void)close(fd); goto soft_error; - } else if (fd >= (int)manager->fdsize) { + } else if (fd >= (int)manager->maxsocks) { isc_log_iwrite(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR, isc_msgcat, ISC_MSGSET_SOCKET, ISC_MSG_TOOMANYFDS, - "%s: too many open file descriptors", - "accept"); + "accept: " + "file descriptor exceeds limit (%d/%u)", + fd, manager->maxsocks); (void)close(fd); goto soft_error; } @@ -2116,6 +2645,13 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { * -1 means the new socket didn't happen. */ if (fd != -1) { + int lockid = FDLOCK_ID(fd); + + LOCK(&manager->fdlock[lockid]); + manager->fds[fd] = dev->newsocket; + manager->fdstate[fd] = MANAGED; + UNLOCK(&manager->fdlock[lockid]); + LOCK(&manager->lock); ISC_LIST_APPEND(manager->socklist, dev->newsocket, link); @@ -2128,10 +2664,10 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { */ dev->address = dev->newsocket->address; - manager->fds[fd] = dev->newsocket; - manager->fdstate[fd] = MANAGED; +#ifdef USE_SELECT if (manager->maxfd < fd) manager->maxfd = fd; +#endif socket_log(sock, &dev->newsocket->address, CREATION, isc_msgcat, ISC_MSGSET_SOCKET, ISC_MSG_ACCEPTEDCXN, @@ -2143,7 +2679,7 @@ internal_accept(isc_task_t *me, isc_event_t *ev) { dev->newsocket->references--; free_socket(&dev->newsocket); } - + /* * Fill in the done event details and send it off. */ @@ -2280,77 +2816,256 @@ internal_send(isc_task_t *me, isc_event_t *ev) { UNLOCK(&sock->lock); } +/* + * Process read/writes on each fd here. Avoid locking + * and unlocking twice if both reads and writes are possible. + */ +static void +process_fd(isc_socketmgr_t *manager, int fd, isc_boolean_t readable, + isc_boolean_t writeable) +{ + isc_socket_t *sock; + isc_boolean_t unlock_sock; + int lockid = FDLOCK_ID(fd); + + /* + * If the socket is going to be closed, don't do more I/O. + */ + LOCK(&manager->fdlock[lockid]); + if (manager->fdstate[fd] == CLOSE_PENDING) { + UNLOCK(&manager->fdlock[lockid]); + + (void)unwatch_fd(manager, fd, SELECT_POKE_READ); + (void)unwatch_fd(manager, fd, SELECT_POKE_WRITE); + return; + } + + sock = manager->fds[fd]; + UNLOCK(&manager->fdlock[lockid]); + unlock_sock = ISC_FALSE; + if (readable) { + if (sock == NULL) { + (void)unwatch_fd(manager, fd, SELECT_POKE_READ); + goto check_write; + } + unlock_sock = ISC_TRUE; + LOCK(&sock->lock); + if (!SOCK_DEAD(sock)) { + if (sock->listener) + dispatch_accept(sock); + else + dispatch_recv(sock); + } + (void)unwatch_fd(manager, fd, SELECT_POKE_READ); + } +check_write: + if (writeable) { + if (sock == NULL) { + (void)unwatch_fd(manager, fd, SELECT_POKE_WRITE); + return; + } + if (!unlock_sock) { + unlock_sock = ISC_TRUE; + LOCK(&sock->lock); + } + if (!SOCK_DEAD(sock)) { + if (sock->connecting) + dispatch_connect(sock); + else + dispatch_send(sock); + } + (void)unwatch_fd(manager, fd, SELECT_POKE_WRITE); + } + if (unlock_sock) + UNLOCK(&sock->lock); +} + +#ifdef USE_KQUEUE +static isc_boolean_t +process_fds(isc_socketmgr_t *manager, struct kevent *events, int nevents) { + int i; + isc_boolean_t readable, writable; + isc_boolean_t done = ISC_FALSE; +#ifdef ISC_PLATFORM_USETHREADS + isc_boolean_t have_ctlevent = ISC_FALSE; +#endif + + if (nevents == manager->nevents) { + /* + * This is not an error, but something unexpected. If this + * happens, it may indicate the need for increasing + * ISC_SOCKET_MAXEVENTS. + */ + manager_log(manager, ISC_LOGCATEGORY_GENERAL, + ISC_LOGMODULE_SOCKET, ISC_LOG_INFO, + "maximum number of FD events (%d) received", + nevents); + } + + for (i = 0; i < nevents; i++) { + REQUIRE(events[i].ident < manager->maxsocks); +#ifdef ISC_PLATFORM_USETHREADS + if (events[i].ident == (uintptr_t)manager->pipe_fds[0]) { + have_ctlevent = ISC_TRUE; + continue; + } +#endif + readable = ISC_TF(events[i].filter == EVFILT_READ); + writable = ISC_TF(events[i].filter == EVFILT_WRITE); + process_fd(manager, events[i].ident, readable, writable); + } + +#ifdef ISC_PLATFORM_USETHREADS + if (have_ctlevent) + done = process_ctlfd(manager); +#endif + + return (done); +} +#elif defined(USE_EPOLL) +static isc_boolean_t +process_fds(isc_socketmgr_t *manager, struct epoll_event *events, int nevents) { + int i; + isc_boolean_t done = ISC_FALSE; +#ifdef ISC_PLATFORM_USETHREADS + isc_boolean_t have_ctlevent = ISC_FALSE; +#endif + + if (nevents == manager->nevents) { + manager_log(manager, ISC_LOGCATEGORY_GENERAL, + ISC_LOGMODULE_SOCKET, ISC_LOG_INFO, + "maximum number of FD events (%d) received", + nevents); + } + + for (i = 0; i < nevents; i++) { + REQUIRE(events[i].data.fd < (int)manager->maxsocks); +#ifdef ISC_PLATFORM_USETHREADS + if (events[i].data.fd == manager->pipe_fds[0]) { + have_ctlevent = ISC_TRUE; + continue; + } +#endif + if ((events[i].events & EPOLLERR) != 0 || + (events[i].events & EPOLLHUP) != 0) { + /* + * epoll does not set IN/OUT bits on an erroneous + * condition, so we need to try both anyway. This is a + * bit inefficient, but should be okay for such rare + * events. Note also that the read or write attempt + * won't block because we use non-blocking sockets. + */ + events[i].events |= (EPOLLIN | EPOLLOUT); + } + process_fd(manager, events[i].data.fd, + (events[i].events & EPOLLIN) != 0, + (events[i].events & EPOLLOUT) != 0); + } + +#ifdef ISC_PLATFORM_USETHREADS + if (have_ctlevent) + done = process_ctlfd(manager); +#endif + + return (done); +} +#elif defined(USE_DEVPOLL) +static isc_boolean_t +process_fds(isc_socketmgr_t *manager, struct pollfd *events, int nevents) { + int i; + isc_boolean_t done = ISC_FALSE; +#ifdef ISC_PLATFORM_USETHREADS + isc_boolean_t have_ctlevent = ISC_FALSE; +#endif + + if (nevents == manager->nevents) { + manager_log(manager, ISC_LOGCATEGORY_GENERAL, + ISC_LOGMODULE_SOCKET, ISC_LOG_INFO, + "maximum number of FD events (%d) received", + nevents); + } + + for (i = 0; i < nevents; i++) { + REQUIRE(events[i].fd < (int)manager->maxsocks); +#ifdef ISC_PLATFORM_USETHREADS + if (events[i].fd == manager->pipe_fds[0]) { + have_ctlevent = ISC_TRUE; + continue; + } +#endif + process_fd(manager, events[i].fd, + (events[i].events & POLLIN) != 0, + (events[i].events & POLLOUT) != 0); + } + +#ifdef ISC_PLATFORM_USETHREADS + if (have_ctlevent) + done = process_ctlfd(manager); +#endif + + return (done); +} +#elif defined(USE_SELECT) static void process_fds(isc_socketmgr_t *manager, int maxfd, fd_set *readfds, fd_set *writefds) { int i; - isc_socket_t *sock; - isc_boolean_t unlock_sock; - REQUIRE(maxfd <= (int)manager->fdsize); + REQUIRE(maxfd <= (int)manager->maxsocks); - /* - * Process read/writes on other fds here. Avoid locking - * and unlocking twice if both reads and writes are possible. - */ for (i = 0; i < maxfd; i++) { #ifdef ISC_PLATFORM_USETHREADS if (i == manager->pipe_fds[0] || i == manager->pipe_fds[1]) continue; #endif /* ISC_PLATFORM_USETHREADS */ - - if (manager->fdstate[i] == CLOSE_PENDING) { - manager->fdstate[i] = CLOSED; - FD_CLR(i, manager->read_fds); - FD_CLR(i, manager->write_fds); - - (void)close(i); - - continue; - } - - sock = manager->fds[i]; - unlock_sock = ISC_FALSE; - if (FD_ISSET(i, readfds)) { - if (sock == NULL) { - FD_CLR(i, manager->read_fds); - goto check_write; - } - unlock_sock = ISC_TRUE; - LOCK(&sock->lock); - if (!SOCK_DEAD(sock)) { - if (sock->listener) - dispatch_accept(sock); - else - dispatch_recv(sock); - } - FD_CLR(i, manager->read_fds); - } - check_write: - if (FD_ISSET(i, writefds)) { - if (sock == NULL) { - FD_CLR(i, manager->write_fds); - continue; - } - if (!unlock_sock) { - unlock_sock = ISC_TRUE; - LOCK(&sock->lock); - } - if (!SOCK_DEAD(sock)) { - if (sock->connecting) - dispatch_connect(sock); - else - dispatch_send(sock); - } - FD_CLR(i, manager->write_fds); - } - if (unlock_sock) - UNLOCK(&sock->lock); + process_fd(manager, i, FD_ISSET(i, readfds), + FD_ISSET(i, writefds)); } } +#endif #ifdef ISC_PLATFORM_USETHREADS +static isc_boolean_t +process_ctlfd(isc_socketmgr_t *manager) { + int msg, fd; + + for (;;) { + select_readmsg(manager, &fd, &msg); + + manager_log(manager, IOEVENT, + isc_msgcat_get(isc_msgcat, ISC_MSGSET_SOCKET, + ISC_MSG_WATCHERMSG, + "watcher got message %d " + "for socket %d"), msg, fd); + + /* + * Nothing to read? + */ + if (msg == SELECT_POKE_NOTHING) + break; + + /* + * Handle shutdown message. We really should + * jump out of this loop right away, but + * it doesn't matter if we have to do a little + * more work first. + */ + if (msg == SELECT_POKE_SHUTDOWN) + return (ISC_TRUE); + + /* + * This is a wakeup on a socket. Look + * at the event queue for both read and write, + * and decide if we need to watch on it now + * or not. + */ + wakeup_socket(manager, fd, msg); + } + + return (ISC_FALSE); +} + /* * This is the thread that will loop forever, always in a select or poll * call. @@ -2364,98 +3079,116 @@ watcher(void *uap) { isc_boolean_t done; int ctlfd; int cc; - int msg, fd; +#ifdef USE_KQUEUE + const char *fnname = "kevent()"; +#elif defined (USE_EPOLL) + const char *fnname = "epoll_wait()"; +#elif defined(USE_DEVPOLL) + const char *fnname = "ioctl(DP_POLL)"; + struct dvpoll dvp; +#elif defined (USE_SELECT) + const char *fnname = "select()"; int maxfd; +#endif char strbuf[ISC_STRERRORSIZE]; +#ifdef ISC_SOCKET_USE_POLLWATCH + pollstate_t pollstate = poll_idle; +#endif /* * Get the control fd here. This will never change. */ - LOCK(&manager->lock); ctlfd = manager->pipe_fds[0]; - done = ISC_FALSE; while (!done) { do { +#ifdef USE_KQUEUE + cc = kevent(manager->kqueue_fd, NULL, 0, + manager->events, manager->nevents, NULL); +#elif defined(USE_EPOLL) + cc = epoll_wait(manager->epoll_fd, manager->events, + manager->nevents, -1); +#elif defined(USE_DEVPOLL) + dvp.dp_fds = manager->events; + dvp.dp_nfds = manager->nevents; +#ifndef ISC_SOCKET_USE_POLLWATCH + dvp.dp_timeout = -1; +#else + if (pollstate == poll_idle) + dvp.dp_timeout = -1; + else + dvp.dp_timeout = ISC_SOCKET_POLLWATCH_TIMEOUT; +#endif /* ISC_SOCKET_USE_POLLWATCH */ + cc = ioctl(manager->devpoll_fd, DP_POLL, &dvp); +#elif defined(USE_SELECT) + LOCK(&manager->lock); memcpy(manager->read_fds_copy, manager->read_fds, manager->fd_bufsize); memcpy(manager->write_fds_copy, manager->write_fds, manager->fd_bufsize); maxfd = manager->maxfd + 1; - UNLOCK(&manager->lock); cc = select(maxfd, manager->read_fds_copy, manager->write_fds_copy, NULL, NULL); - if (cc < 0) { - if (!SOFT_ERROR(errno)) { - isc__strerror(errno, strbuf, - sizeof(strbuf)); - FATAL_ERROR(__FILE__, __LINE__, - "select() %s: %s", - isc_msgcat_get(isc_msgcat, - ISC_MSGSET_GENERAL, - ISC_MSG_FAILED, - "failed"), - strbuf); - } +#endif /* USE_KQUEUE */ + + if (cc < 0 && !SOFT_ERROR(errno)) { + isc__strerror(errno, strbuf, sizeof(strbuf)); + FATAL_ERROR(__FILE__, __LINE__, + "%s %s: %s", fnname, + isc_msgcat_get(isc_msgcat, + ISC_MSGSET_GENERAL, + ISC_MSG_FAILED, + "failed"), strbuf); } - LOCK(&manager->lock); +#if defined(USE_DEVPOLL) && defined(ISC_SOCKET_USE_POLLWATCH) + if (cc == 0) { + if (pollstate == poll_active) + pollstate = poll_checking; + else if (pollstate == poll_checking) + pollstate = poll_idle; + } else if (cc > 0) { + if (pollstate == poll_checking) { + /* + * XXX: We'd like to use a more + * verbose log level as it's actually an + * unexpected event, but the kernel bug + * reportedly happens pretty frequently + * (and it can also be a false positive) + * so it would be just too noisy. + */ + manager_log(manager, + ISC_LOGCATEGORY_GENERAL, + ISC_LOGMODULE_SOCKET, + ISC_LOG_DEBUG(1), + ISC_LOG_INFO, + "unexpected POLL timeout"); + } + pollstate = poll_active; + } +#endif } while (cc < 0); +#if defined(USE_KQUEUE) || defined (USE_EPOLL) || defined (USE_DEVPOLL) + done = process_fds(manager, manager->events, cc); +#elif defined(USE_SELECT) + process_fds(manager, maxfd, manager->read_fds_copy, + manager->write_fds_copy); /* * Process reads on internal, control fd. */ - if (FD_ISSET(ctlfd, manager->read_fds_copy)) { - for (;;) { - select_readmsg(manager, &fd, &msg); - - manager_log(manager, IOEVENT, - isc_msgcat_get(isc_msgcat, - ISC_MSGSET_SOCKET, - ISC_MSG_WATCHERMSG, - "watcher got message %d"), - msg); - - /* - * Nothing to read? - */ - if (msg == SELECT_POKE_NOTHING) - break; - - /* - * Handle shutdown message. We really should - * jump out of this loop right away, but - * it doesn't matter if we have to do a little - * more work first. - */ - if (msg == SELECT_POKE_SHUTDOWN) { - done = ISC_TRUE; - - break; - } - - /* - * This is a wakeup on a socket. Look - * at the event queue for both read and write, - * and decide if we need to watch on it now - * or not. - */ - wakeup_socket(manager, fd, msg); - } - } - - process_fds(manager, maxfd, manager->read_fds_copy, - manager->write_fds_copy); + if (FD_ISSET(ctlfd, manager->read_fds_copy)) + done = process_ctlfd(manager); +#endif } manager_log(manager, TRACE, isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_EXITING, "watcher exiting")); - UNLOCK(&manager->lock); return ((isc_threadresult_t)0); } #endif /* ISC_PLATFORM_USETHREADS */ @@ -2469,69 +3202,187 @@ isc__socketmgr_setreserved(isc_socketmgr_t *manager, isc_uint32_t reserved) { } /* - * Initialize fdsets in socketmgr structure. + * Create a new socket manager. */ + static isc_result_t -create_fdsets(isc_socketmgr_t *manager, isc_mem_t *mctx) { -#if ISC_SOCKET_FDSETSIZE > FD_SETSIZE - manager->fdsize = ISC_SOCKET_FDSETSIZE; - manager->fd_bufsize = howmany(ISC_SOCKET_FDSETSIZE, NFDBITS) * +setup_watcher(isc_mem_t *mctx, isc_socketmgr_t *manager) { + isc_result_t result; + +#ifdef USE_KQUEUE + manager->nevents = ISC_SOCKET_MAXEVENTS; + manager->events = isc_mem_get(mctx, sizeof(struct kevent) * + manager->nevents); + if (manager->events == NULL) + return (ISC_R_NOMEMORY); + manager->kqueue_fd = kqueue(); + if (manager->kqueue_fd == -1) { + result = isc__errno2result(errno); + isc_mem_put(mctx, manager->events, + sizeof(struct kevent) * manager->nevents); + return (result); + } + +#ifdef ISC_PLATFORM_USETHREADS + result = watch_fd(manager, manager->pipe_fds[0], SELECT_POKE_READ); + if (result != ISC_R_SUCCESS) { + close(manager->kqueue_fd); + isc_mem_put(mctx, manager->events, + sizeof(struct kevent) * manager->nevents); + return (result); + } +#endif /* ISC_PLATFORM_USETHREADS */ +#elif defined(USE_EPOLL) + manager->nevents = ISC_SOCKET_MAXEVENTS; + manager->events = isc_mem_get(mctx, sizeof(struct epoll_event) * + manager->nevents); + if (manager->events == NULL) + return (ISC_R_NOMEMORY); + manager->epoll_fd = epoll_create(manager->nevents); + if (manager->epoll_fd == -1) { + result = isc__errno2result(errno); + isc_mem_put(mctx, manager->events, + sizeof(struct epoll_event) * manager->nevents); + return (result); + } +#ifdef ISC_PLATFORM_USETHREADS + result = watch_fd(manager, manager->pipe_fds[0], SELECT_POKE_READ); + if (result != ISC_R_SUCCESS) { + close(manager->epoll_fd); + isc_mem_put(mctx, manager->events, + sizeof(struct epoll_event) * manager->nevents); + return (result); + } +#endif /* ISC_PLATFORM_USETHREADS */ +#elif defined(USE_DEVPOLL) + /* + * XXXJT: /dev/poll seems to reject large numbers of events, + * so we should be careful about redefining ISC_SOCKET_MAXEVENTS. + */ + manager->nevents = ISC_SOCKET_MAXEVENTS; + manager->events = isc_mem_get(mctx, sizeof(struct pollfd) * + manager->nevents); + if (manager->events == NULL) + return (ISC_R_NOMEMORY); + /* + * Note: fdpollinfo should be able to support all possible FDs, so + * it must have maxsocks entries (not nevents). + */ + manager->fdpollinfo = isc_mem_get(mctx, sizeof(pollinfo_t) * + manager->maxsocks); + if (manager->fdpollinfo == NULL) { + isc_mem_put(mctx, manager->events, + sizeof(pollinfo_t) * manager->maxsocks); + return (ISC_R_NOMEMORY); + } + memset(manager->fdpollinfo, 0, sizeof(pollinfo_t) * manager->maxsocks); + manager->devpoll_fd = open("/dev/poll", O_RDWR); + if (manager->devpoll_fd == -1) { + result = isc__errno2result(errno); + isc_mem_put(mctx, manager->events, + sizeof(struct pollfd) * manager->nevents); + isc_mem_put(mctx, manager->fdpollinfo, + sizeof(pollinfo_t) * manager->maxsocks); + return (result); + } +#ifdef ISC_PLATFORM_USETHREADS + result = watch_fd(manager, manager->pipe_fds[0], SELECT_POKE_READ); + if (result != ISC_R_SUCCESS) { + close(manager->devpoll_fd); + isc_mem_put(mctx, manager->events, + sizeof(struct pollfd) * manager->nevents); + isc_mem_put(mctx, manager->fdpollinfo, + sizeof(pollinfo_t) * manager->maxsocks); + return (result); + } +#endif /* ISC_PLATFORM_USETHREADS */ +#elif defined(USE_SELECT) + UNUSED(result); + +#if ISC_SOCKET_MAXSOCKETS > FD_SETSIZE + /* + * Note: this code should also cover the case of MAXSOCKETS <= + * FD_SETSIZE, but we separate the cases to avoid possible portability + * issues regarding howmany() and the actual representation of fd_set. + */ + manager->fd_bufsize = howmany(manager->maxsocks, NFDBITS) * sizeof(fd_mask); #else - manager->fdsize = FD_SETSIZE; manager->fd_bufsize = sizeof(fd_set); #endif - manager->fds = NULL; - manager->fdstate = NULL; manager->read_fds = NULL; manager->read_fds_copy = NULL; manager->write_fds = NULL; manager->write_fds_copy = NULL; - manager->fds = isc_mem_get(mctx, - manager->fdsize * sizeof(manager->fds[0])); - if (manager->fds == NULL) - goto fail; - - manager->fdstate = isc_mem_get(mctx, manager->fdsize * - sizeof(manager->fdstate[0])); - if (manager->fdstate == NULL) - goto fail; - manager->read_fds = isc_mem_get(mctx, manager->fd_bufsize); - if (manager->read_fds == NULL) - goto fail; - manager->read_fds_copy = isc_mem_get(mctx, manager->fd_bufsize); - if (manager->read_fds_copy == NULL) - goto fail; - manager->write_fds = isc_mem_get(mctx, manager->fd_bufsize); - if (manager->write_fds == NULL) - goto fail; - manager->write_fds_copy = isc_mem_get(mctx, manager->fd_bufsize); - if (manager->write_fds_copy == NULL) - goto fail; + if (manager->read_fds != NULL) + manager->read_fds_copy = isc_mem_get(mctx, manager->fd_bufsize); + if (manager->read_fds_copy != NULL) + manager->write_fds = isc_mem_get(mctx, manager->fd_bufsize); + if (manager->write_fds != NULL) { + manager->write_fds_copy = isc_mem_get(mctx, + manager->fd_bufsize); + } + if (manager->write_fds_copy == NULL) { + if (manager->write_fds != NULL) { + isc_mem_put(mctx, manager->write_fds, + manager->fd_bufsize); + } + if (manager->read_fds_copy != NULL) { + isc_mem_put(mctx, manager->read_fds_copy, + manager->fd_bufsize); + } + if (manager->read_fds != NULL) { + isc_mem_put(mctx, manager->read_fds, + manager->fd_bufsize); + } + return (ISC_R_NOMEMORY); + } + memset(manager->read_fds, 0, manager->fd_bufsize); + memset(manager->write_fds, 0, manager->fd_bufsize); + +#ifdef ISC_PLATFORM_USETHREADS + (void)watch_fd(manager, manager->pipe_fds[0], SELECT_POKE_READ); + manager->maxfd = manager->pipe_fds[0]; +#else /* ISC_PLATFORM_USETHREADS */ + manager->maxfd = 0; +#endif /* ISC_PLATFORM_USETHREADS */ +#endif /* USE_KQUEUE */ return (ISC_R_SUCCESS); - - fail: - cleanup_fdsets(manager, mctx); - return (ISC_R_NOMEMORY); } -/* - * Clean up fdsets in socketmgr structure. - */ static void -cleanup_fdsets(isc_socketmgr_t *manager, isc_mem_t *mctx) { - if (manager->fds != NULL) { - isc_mem_put(mctx, manager->fds, - manager->fdsize * sizeof(manager->fds[0])); - } - if (manager->fdstate != NULL) { - isc_mem_put(mctx, manager->fdstate, - manager->fdsize * sizeof(manager->fdstate[0])); +cleanup_watcher(isc_mem_t *mctx, isc_socketmgr_t *manager) { +#ifdef ISC_PLATFORM_USETHREADS + isc_result_t result; + + result = unwatch_fd(manager, manager->pipe_fds[0], SELECT_POKE_READ); + if (result != ISC_R_SUCCESS) { + UNEXPECTED_ERROR(__FILE__, __LINE__, + "epoll_ctl(DEL) %s", + isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, + ISC_MSG_FAILED, "failed")); } +#endif /* ISC_PLATFORM_USETHREADS */ + +#ifdef USE_KQUEUE + close(manager->kqueue_fd); + isc_mem_put(mctx, manager->events, + sizeof(struct kevent) * manager->nevents); +#elif defined(USE_EPOLL) + close(manager->epoll_fd); + isc_mem_put(mctx, manager->events, + sizeof(struct epoll_event) * manager->nevents); +#elif defined(USE_DEVPOLL) + close(manager->devpoll_fd); + isc_mem_put(mctx, manager->events, + sizeof(struct pollfd) * manager->nevents); + isc_mem_put(mctx, manager->fdpollinfo, + sizeof(pollinfo_t) * manager->maxsocks); +#elif defined(USE_SELECT) if (manager->read_fds != NULL) isc_mem_put(mctx, manager->read_fds, manager->fd_bufsize); if (manager->read_fds_copy != NULL) @@ -2540,13 +3391,19 @@ cleanup_fdsets(isc_socketmgr_t *manager, isc_mem_t *mctx) { isc_mem_put(mctx, manager->write_fds, manager->fd_bufsize); if (manager->write_fds_copy != NULL) isc_mem_put(mctx, manager->write_fds_copy, manager->fd_bufsize); +#endif /* USE_KQUEUE */ } -/* - * Create a new socket manager. - */ isc_result_t isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { + return (isc_socketmgr_create2(mctx, managerp, 0)); +} + +isc_result_t +isc_socketmgr_create2(isc_mem_t *mctx, isc_socketmgr_t **managerp, + unsigned int maxsocks) +{ + int i; isc_socketmgr_t *manager; #ifdef ISC_PLATFORM_USETHREADS char strbuf[ISC_STRERRORSIZE]; @@ -2557,43 +3414,71 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { #ifndef ISC_PLATFORM_USETHREADS if (socketmgr != NULL) { + /* Don't allow maxsocks to be updated */ + if (maxsocks > 0 && socketmgr->maxsocks != maxsocks) + return (ISC_R_EXISTS); + socketmgr->refs++; *managerp = socketmgr; return (ISC_R_SUCCESS); } #endif /* ISC_PLATFORM_USETHREADS */ + if (maxsocks == 0) + maxsocks = ISC_SOCKET_MAXSOCKETS; + manager = isc_mem_get(mctx, sizeof(*manager)); if (manager == NULL) return (ISC_R_NOMEMORY); - result = create_fdsets(manager, mctx); - if (result != ISC_R_SUCCESS) { - cleanup_fdsets(manager, mctx); - isc_mem_put(mctx, manager, sizeof(*manager)); - return (result); + /* zero-clear so that necessary cleanup on failure will be easy */ + memset(manager, 0, sizeof(*manager)); + manager->maxsocks = maxsocks; + manager->reserved = 0; + manager->fds = isc_mem_get(mctx, + manager->maxsocks * sizeof(isc_socket_t *)); + if (manager->fds == NULL) { + result = ISC_R_NOMEMORY; + goto free_manager; + } + manager->fdstate = isc_mem_get(mctx, manager->maxsocks * sizeof(int)); + if (manager->fds == NULL) { + result = ISC_R_NOMEMORY; + goto free_manager; } manager->magic = SOCKET_MANAGER_MAGIC; manager->mctx = NULL; - memset(manager->fds, 0, sizeof(manager->fds[0]) * manager->fdsize); + memset(manager->fds, 0, manager->maxsocks * sizeof(isc_socket_t *)); ISC_LIST_INIT(manager->socklist); result = isc_mutex_init(&manager->lock); - if (result != ISC_R_SUCCESS) { - cleanup_fdsets(manager, mctx); - isc_mem_put(mctx, manager, sizeof(*manager)); - return (result); + if (result != ISC_R_SUCCESS) + goto free_manager; + manager->fdlock = isc_mem_get(mctx, FDLOCK_COUNT * sizeof(isc_mutex_t)); + if (manager->fdlock == NULL) { + result = ISC_R_NOMEMORY; + goto cleanup_lock; } + for (i = 0; i < FDLOCK_COUNT; i++) { + result = isc_mutex_init(&manager->fdlock[i]); + if (result != ISC_R_SUCCESS) { + while (--i >= 0) + DESTROYLOCK(&manager->fdlock[i]); + isc_mem_put(mctx, manager->fdlock, + FDLOCK_COUNT * sizeof(isc_mutex_t)); + manager->fdlock = NULL; + goto cleanup_lock; + } + } + #ifdef ISC_PLATFORM_USETHREADS if (isc_condition_init(&manager->shutdown_ok) != ISC_R_SUCCESS) { - cleanup_fdsets(manager, mctx); - DESTROYLOCK(&manager->lock); - isc_mem_put(mctx, manager, sizeof(*manager)); UNEXPECTED_ERROR(__FILE__, __LINE__, "isc_condition_init() %s", isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_FAILED, "failed")); - return (ISC_R_UNEXPECTED); + result = ISC_R_UNEXPECTED; + goto cleanup_lock; } /* @@ -2601,17 +3486,14 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { * select/poll loop when something internal needs to be done. */ if (pipe(manager->pipe_fds) != 0) { - cleanup_fdsets(manager, mctx); - DESTROYLOCK(&manager->lock); - isc_mem_put(mctx, manager, sizeof(*manager)); isc__strerror(errno, strbuf, sizeof(strbuf)); UNEXPECTED_ERROR(__FILE__, __LINE__, "pipe() %s: %s", isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_FAILED, "failed"), strbuf); - - return (ISC_R_UNEXPECTED); + result = ISC_R_UNEXPECTED; + goto cleanup_condition; } RUNTIME_CHECK(make_nonblock(manager->pipe_fds[0]) == ISC_R_SUCCESS); @@ -2625,33 +3507,23 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { /* * Set up initial state for the select loop */ - memset(manager->read_fds, 0, manager->fd_bufsize); - memset(manager->write_fds, 0, manager->fd_bufsize); -#ifdef ISC_PLATFORM_USETHREADS - FD_SET(manager->pipe_fds[0], manager->read_fds); - manager->maxfd = manager->pipe_fds[0]; -#else /* ISC_PLATFORM_USETHREADS */ - manager->maxfd = 0; -#endif /* ISC_PLATFORM_USETHREADS */ - manager->reserved = 0; - memset(manager->fdstate, 0, - manager->fdsize * sizeof(manager->fdstate[0])); - + result = setup_watcher(mctx, manager); + if (result != ISC_R_SUCCESS) + goto cleanup; + memset(manager->fdstate, 0, manager->maxsocks * sizeof(int)); #ifdef ISC_PLATFORM_USETHREADS /* * Start up the select/poll thread. */ if (isc_thread_create(watcher, manager, &manager->watcher) != ISC_R_SUCCESS) { - (void)close(manager->pipe_fds[0]); - (void)close(manager->pipe_fds[1]); - DESTROYLOCK(&manager->lock); - isc_mem_put(mctx, manager, sizeof(*manager)); UNEXPECTED_ERROR(__FILE__, __LINE__, "isc_thread_create() %s", isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_FAILED, "failed")); - return (ISC_R_UNEXPECTED); + cleanup_watcher(mctx, manager); + result = ISC_R_UNEXPECTED; + goto cleanup; } #endif /* ISC_PLATFORM_USETHREADS */ isc_mem_attach(mctx, &manager->mctx); @@ -2661,6 +3533,52 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { #endif /* ISC_PLATFORM_USETHREADS */ *managerp = manager; + return (ISC_R_SUCCESS); + +cleanup: +#ifdef ISC_PLATFORM_USETHREADS + (void)close(manager->pipe_fds[0]); + (void)close(manager->pipe_fds[1]); +#endif /* ISC_PLATFORM_USETHREADS */ + +#ifdef ISC_PLATFORM_USETHREADS +cleanup_condition: + (void)isc_condition_destroy(&manager->shutdown_ok); +#endif /* ISC_PLATFORM_USETHREADS */ + + +cleanup_lock: + if (manager->fdlock != NULL) { + for (i = 0; i < FDLOCK_COUNT; i++) + DESTROYLOCK(&manager->fdlock[i]); + } + DESTROYLOCK(&manager->lock); + +free_manager: + if (manager->fdlock != NULL) { + isc_mem_put(mctx, manager->fdlock, + FDLOCK_COUNT * sizeof(isc_mutex_t)); + } + if (manager->fdstate != NULL) { + isc_mem_put(mctx, manager->fdstate, + manager->maxsocks * sizeof(int)); + } + if (manager->fds != NULL) { + isc_mem_put(mctx, manager->fds, + manager->maxsocks * sizeof(isc_socket_t *)); + } + isc_mem_put(mctx, manager, sizeof(*manager)); + + return (result); +} + +isc_result_t +isc_socketmgr_getmaxsockets(isc_socketmgr_t *manager, unsigned int *nsockp) { + REQUIRE(VALID_MANAGER(manager)); + REQUIRE(nsockp != NULL); + + *nsockp = manager->maxsocks; + return (ISC_R_SUCCESS); } @@ -2735,18 +3653,30 @@ isc_socketmgr_destroy(isc_socketmgr_t **managerp) { /* * Clean up. */ + cleanup_watcher(manager->mctx, manager); + #ifdef ISC_PLATFORM_USETHREADS (void)close(manager->pipe_fds[0]); (void)close(manager->pipe_fds[1]); (void)isc_condition_destroy(&manager->shutdown_ok); #endif /* ISC_PLATFORM_USETHREADS */ - for (i = 0; i < (int)manager->fdsize; i++) - if (manager->fdstate[i] == CLOSE_PENDING) + for (i = 0; i < (int)manager->maxsocks; i++) + if (manager->fdstate[i] == CLOSE_PENDING) /* no need to lock */ (void)close(i); + isc_mem_put(manager->mctx, manager->fds, + manager->maxsocks * sizeof(isc_socket_t *)); + isc_mem_put(manager->mctx, manager->fdstate, + manager->maxsocks * sizeof(int)); + + if (manager->fdlock != NULL) { + for (i = 0; i < FDLOCK_COUNT; i++) + DESTROYLOCK(&manager->fdlock[i]); + isc_mem_put(manager->mctx, manager->fdlock, + FDLOCK_COUNT * sizeof(isc_mutex_t)); + } DESTROYLOCK(&manager->lock); - cleanup_fdsets(manager, manager->mctx); manager->magic = 0; mctx= manager->mctx; isc_mem_put(mctx, manager, sizeof(*manager)); @@ -2799,7 +3729,7 @@ socket_recv(isc_socket_t *sock, isc_socketevent_t *dev, isc_task_t *task, * Enqueue the request. If the socket was previously not being * watched, poke the watcher to start paying attention to it. */ - if (ISC_LIST_EMPTY(sock->recv_list)) + if (ISC_LIST_EMPTY(sock->recv_list) && !sock->pending_recv) select_poke(sock->manager, sock->fd, SELECT_POKE_READ); ISC_LIST_ENQUEUE(sock->recv_list, dev, ev_link); @@ -2996,7 +3926,8 @@ socket_send(isc_socket_t *sock, isc_socketevent_t *dev, isc_task_t *task, * not being watched, poke the watcher to start * paying attention to it. */ - if (ISC_LIST_EMPTY(sock->send_list)) + if (ISC_LIST_EMPTY(sock->send_list) && + !sock->pending_send) select_poke(sock->manager, sock->fd, SELECT_POKE_WRITE); ISC_LIST_ENQUEUE(sock->send_list, dev, ev_link); @@ -3286,7 +4217,7 @@ isc_socket_permunix(isc_sockaddr_t *sockaddr, isc_uint32_t perm, } else strcpy(path, "."); #endif - + if (chmod(path, perm) < 0) { isc__strerror(errno, strbuf, sizeof(strbuf)); isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, @@ -3315,7 +4246,7 @@ isc_socket_permunix(isc_sockaddr_t *sockaddr, isc_uint32_t perm, } isc_result_t -isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr, +isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr, unsigned int options) { char strbuf[ISC_STRERRORSIZE]; int on = 1; @@ -3446,7 +4377,7 @@ isc_socket_listen(isc_socket_t *sock, unsigned int backlog) { } /* - * This should try to do agressive accept() XXXMLG + * This should try to do aggressive accept() XXXMLG */ isc_result_t isc_socket_accept(isc_socket_t *sock, @@ -3557,6 +4488,16 @@ isc_socket_connect(isc_socket_t *sock, isc_sockaddr_t *addr, sock->address = *addr; cc = connect(sock->fd, &addr->type.sa, addr->length); if (cc < 0) { + /* + * HP-UX "fails" to connect a UDP socket and sets errno to + * EINPROGRESS if it's non-blocking. We'd rather regard this as + * a success and let the user detect it if it's really an error + * at the time of sending a packet on the socket. + */ + if (sock->type == isc_sockettype_udp && errno == EINPROGRESS) { + cc = 0; + goto success; + } if (SOFT_ERROR(errno) || errno == EINPROGRESS) goto queue; @@ -3598,6 +4539,7 @@ isc_socket_connect(isc_socket_t *sock, isc_sockaddr_t *addr, /* * If connect completed, fire off the done event. */ + success: if (cc == 0) { sock->connected = 1; sock->bound = 1; @@ -3957,37 +4899,107 @@ isc_socket_ipv6only(isc_socket_t *sock, isc_boolean_t yes) { #ifdef IPV6_V6ONLY if (sock->pf == AF_INET6) { - (void)setsockopt(sock->fd, IPPROTO_IPV6, IPV6_V6ONLY, - (void *)&onoff, sizeof(onoff)); + if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_V6ONLY, + (void *)&onoff, sizeof(int)) < 0) { + char strbuf[ISC_STRERRORSIZE]; + + UNEXPECTED_ERROR(__FILE__, __LINE__, + "setsockopt(%d, IPV6_V6ONLY) " + "%s: %s", sock->fd, + isc_msgcat_get(isc_msgcat, + ISC_MSGSET_GENERAL, + ISC_MSG_FAILED, + "failed"), + strbuf); + } } + FIX_IPV6_RECVPKTINFO(sock); /* AIX */ #endif } #ifndef ISC_PLATFORM_USETHREADS -void -isc__socketmgr_getfdsets(fd_set **readset, fd_set **writeset, int *maxfd) { +/* In our assumed scenario, we can simply use a single static object. */ +static isc_socketwait_t swait_private; + +int +isc__socketmgr_waitevents(struct timeval *tvp, isc_socketwait_t **swaitp) { + int n; +#ifdef USE_KQUEUE + struct timespec ts, *tsp; +#endif +#ifdef USE_EPOLL + int timeout; +#endif +#ifdef USE_DEVPOLL + struct dvpoll dvp; +#endif + + REQUIRE(swaitp != NULL && *swaitp == NULL); + if (socketmgr == NULL) - *maxfd = 0; - else { - /* Prepare duplicates of fd_sets, as select() will modify */ - memcpy(socketmgr->read_fds_copy, socketmgr->read_fds, - socketmgr->fd_bufsize); - memcpy(socketmgr->write_fds_copy, socketmgr->write_fds, - socketmgr->fd_bufsize); - *readset = socketmgr->read_fds_copy; - *writeset = socketmgr->write_fds_copy; - *maxfd = socketmgr->maxfd + 1; - } + return (0); + +#ifdef USE_KQUEUE + if (tvp != NULL) { + ts.tv_sec = tvp->tv_sec; + ts.tv_nsec = tvp->tv_usec * 1000; + tsp = &ts; + } else + tsp = NULL; + swait_private.nevents = kevent(socketmgr->kqueue_fd, NULL, 0, + socketmgr->events, socketmgr->nevents, + tsp); + n = swait_private.nevents; +#elif defined(USE_EPOLL) + if (tvp != NULL) + timeout = tvp->tv_sec * 1000 + (tvp->tv_usec + 999) / 1000; + else + timeout = -1; + swait_private.nevents = epoll_wait(socketmgr->epoll_fd, + socketmgr->events, + socketmgr->nevents, timeout); + n = swait_private.nevents; +#elif defined(USE_DEVPOLL) + dvp.dp_fds = socketmgr->events; + dvp.dp_nfds = socketmgr->nevents; + if (tvp != NULL) { + dvp.dp_timeout = tvp->tv_sec * 1000 + + (tvp->tv_usec + 999) / 1000; + } else + dvp.dp_timeout = -1; + swait_private.nevents = ioctl(socketmgr->devpoll_fd, DP_POLL, &dvp); + n = swait_private.nevents; +#elif defined(USE_SELECT) + memcpy(socketmgr->read_fds_copy, socketmgr->read_fds, + socketmgr->fd_bufsize); + memcpy(socketmgr->write_fds_copy, socketmgr->write_fds, + socketmgr->fd_bufsize); + + swait_private.readset = socketmgr->read_fds_copy; + swait_private.writeset = socketmgr->write_fds_copy; + swait_private.maxfd = socketmgr->maxfd + 1; + + n = select(swait_private.maxfd, swait_private.readset, + swait_private.writeset, NULL, tvp); +#endif + + *swaitp = &swait_private; + return (n); } isc_result_t -isc__socketmgr_dispatch(fd_set *readset, fd_set *writeset, int maxfd) { - isc_socketmgr_t *manager = socketmgr; +isc__socketmgr_dispatch(isc_socketwait_t *swait) { + REQUIRE(swait == &swait_private); - if (manager == NULL) + if (socketmgr == NULL) return (ISC_R_NOTFOUND); - process_fds(manager, maxfd, readset, writeset); +#if defined(USE_KQUEUE) || defined(USE_EPOLL) || defined(USE_DEVPOLL) + (void)process_fds(socketmgr, socketmgr->events, swait->nevents); return (ISC_R_SUCCESS); +#elif defined(USE_SELECT) + process_fds(socketmgr, swait->maxfd, swait->readset, swait->writeset); + return (ISC_R_SUCCESS); +#endif } #endif /* ISC_PLATFORM_USETHREADS */ diff --git a/lib/isc/unix/socket_p.h b/lib/isc/unix/socket_p.h index 4f9cf27bf1f2..b7da860d20d4 100644 --- a/lib/isc/unix/socket_p.h +++ b/lib/isc/unix/socket_p.h @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket_p.h,v 1.7.18.2.52.1 2008/07/29 04:47:31 each Exp $ */ +/* $Id: socket_p.h,v 1.7.18.4 2008/06/24 23:45:55 tbox Exp $ */ #ifndef ISC_SOCKET_P_H #define ISC_SOCKET_P_H @@ -26,10 +26,7 @@ #include #endif -void -isc__socketmgr_getfdsets(fd_set **readset, fd_set **writeset, int *maxfd); - -isc_result_t -isc__socketmgr_dispatch(fd_set *readset, fd_set *writeset, int maxfd); - +typedef struct isc_socketwait isc_socketwait_t; +int isc__socketmgr_waitevents(struct timeval *, isc_socketwait_t **); +isc_result_t isc__socketmgr_dispatch(isc_socketwait_t *); #endif /* ISC_SOCKET_P_H */ diff --git a/lib/isc/unix/time.c b/lib/isc/unix/time.c index bac24d75f2a9..facc12b15371 100644 --- a/lib/isc/unix/time.c +++ b/lib/isc/unix/time.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001, 2003 Internet Software Consortium. * - * Permission to use, copy, modify, and distribute this software for any + * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: time.c,v 1.47.18.2 2005/04/29 00:17:09 marka Exp $ */ +/* $Id: time.c,v 1.47.18.4 2008/02/18 23:46:01 tbox Exp $ */ /*! \file */ @@ -227,7 +227,7 @@ isc_time_nowplusinterval(isc_time_t *t, const isc_interval_t *i) { t->seconds = tv.tv_sec + i->seconds; t->nanoseconds = tv.tv_usec * NS_PER_US + i->nanoseconds; - if (t->nanoseconds > NS_PER_S) { + if (t->nanoseconds >= NS_PER_S) { t->seconds++; t->nanoseconds -= NS_PER_S; } @@ -410,5 +410,5 @@ isc_time_formattimestamp(const isc_time_t *t, char *buf, unsigned int len) { snprintf(buf + flen, len - flen, ".%03u", t->nanoseconds / 1000000); else - snprintf(buf, len, "99-Bad-9999 99:99:99.999"); + snprintf(buf, len, "99-Bad-9999 99:99:99.999"); } diff --git a/lib/isccfg/api b/lib/isccfg/api index d94beab3e3f9..510e9a911bab 100644 --- a/lib/isccfg/api +++ b/lib/isccfg/api @@ -1,3 +1,3 @@ LIBINTERFACE = 30 -LIBREVISION = 4 +LIBREVISION = 5 LIBAGE = 0 diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c index b04b3abde7a2..a13d0a5ad7cd 100644 --- a/lib/isccfg/namedconf.c +++ b/lib/isccfg/namedconf.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: namedconf.c,v 1.30.18.38.50.2 2008/07/23 23:48:17 tbox Exp $ */ +/* $Id: namedconf.c,v 1.30.18.43 2008/09/04 08:03:08 marka Exp $ */ /*! \file */ @@ -36,7 +36,7 @@ /*% Check a return value. */ #define CHECK(op) \ - do { result = (op); \ + do { result = (op); \ if (result != ISC_R_SUCCESS) goto cleanup; \ } while (0) @@ -247,7 +247,7 @@ static cfg_type_t cfg_type_pubkey = { * Note that the old parser allows quotes around the RR type names. */ static cfg_type_t cfg_type_rrtypelist = { - "rrtypelist", cfg_parse_spacelist, cfg_print_spacelist, cfg_doc_terminal, + "rrtypelist", cfg_parse_spacelist, cfg_print_spacelist, cfg_doc_terminal, &cfg_rep_list, &cfg_type_astring }; @@ -269,7 +269,7 @@ static cfg_type_t cfg_type_matchtype = { */ static cfg_tuplefielddef_t grant_fields[] = { { "mode", &cfg_type_mode, 0 }, - { "identity", &cfg_type_astring, 0 }, /* domain name */ + { "identity", &cfg_type_astring, 0 }, /* domain name */ { "matchtype", &cfg_type_matchtype, 0 }, { "name", &cfg_type_astring, 0 }, /* domain name */ { "types", &cfg_type_rrtypelist, 0 }, @@ -363,7 +363,7 @@ static cfg_tuplefielddef_t rrsetorderingelement_fields[] = { { "class", &cfg_type_optional_wild_class, 0 }, { "type", &cfg_type_optional_wild_type, 0 }, { "name", &cfg_type_optional_wild_name, 0 }, - { "order", &cfg_type_ustring, 0 }, /* must be literal "order" */ + { "order", &cfg_type_ustring, 0 }, /* must be literal "order" */ { "ordering", &cfg_type_ustring, 0 }, { NULL, NULL, 0 } }; @@ -544,11 +544,19 @@ static cfg_type_t cfg_type_serverid = { /*% * Port list. */ +static cfg_tuplefielddef_t porttuple_fields[] = { + { "loport", &cfg_type_uint32, 0 }, + { "hiport", &cfg_type_uint32, 0 }, + { NULL, NULL, 0 } +}; +static cfg_type_t cfg_type_porttuple = { + "porttuple", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, + &cfg_rep_tuple, porttuple_fields +}; + static isc_result_t -parse_port(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { +parse_port(cfg_parser_t *pctx, cfg_obj_t **ret) { isc_result_t result; - - UNUSED(type); CHECK(cfg_parse_uint32(pctx, NULL, ret)); if ((*ret)->value.uint32 > 0xffff) { @@ -556,18 +564,60 @@ parse_port(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { cfg_obj_destroy(pctx, ret); result = ISC_R_RANGE; } + cleanup: return (result); } -static cfg_type_t cfg_type_port = { - "port", parse_port, NULL, cfg_doc_terminal, +static isc_result_t +parse_portrange(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { + isc_result_t result; + cfg_obj_t *obj = NULL; + + UNUSED(type); + + CHECK(cfg_peektoken(pctx, ISC_LEXOPT_NUMBER | ISC_LEXOPT_CNUMBER)); + if (pctx->token.type == isc_tokentype_number) + CHECK(parse_port(pctx, ret)); + else { + CHECK(cfg_gettoken(pctx, 0)); + if (pctx->token.type != isc_tokentype_string || + strcasecmp(TOKEN_STRING(pctx), "range") != 0) { + cfg_parser_error(pctx, CFG_LOG_NEAR, + "expected integer or 'range'"); + return (ISC_R_UNEXPECTEDTOKEN); + } + CHECK(cfg_create_tuple(pctx, &cfg_type_porttuple, &obj)); + CHECK(parse_port(pctx, &obj->value.tuple[0])); + CHECK(parse_port(pctx, &obj->value.tuple[1])); + if (obj->value.tuple[0]->value.uint32 > + obj->value.tuple[1]->value.uint32) { + cfg_parser_error(pctx, CFG_LOG_NOPREP, + "low port '%u' must not be larger " + "than high port", + obj->value.tuple[0]->value.uint32); + result = ISC_R_RANGE; + goto cleanup; + } + *ret = obj; + obj = NULL; + } + + cleanup: + if (obj != NULL) + cfg_obj_destroy(pctx, &obj); + return (result); +} + +static cfg_type_t cfg_type_portrange = { + "portrange", parse_portrange, NULL, cfg_doc_terminal, NULL, NULL }; static cfg_type_t cfg_type_bracketed_portlist = { - "bracketed_sockaddrlist", cfg_parse_bracketed_list, cfg_print_bracketed_list, cfg_doc_bracketed_list, - &cfg_rep_list, &cfg_type_port + "bracketed_sockaddrlist", cfg_parse_bracketed_list, + cfg_print_bracketed_list, cfg_doc_bracketed_list, + &cfg_rep_list, &cfg_type_portrange }; /*% @@ -595,7 +645,7 @@ namedconf_or_view_clauses[] = { { "key", &cfg_type_key, CFG_CLAUSEFLAG_MULTI }, { "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI }, /* only 1 DLZ per view allowed */ - { "dlz", &cfg_type_dynamically_loadable_zones, 0 }, + { "dlz", &cfg_type_dynamically_loadable_zones, 0 }, { "server", &cfg_type_server, CFG_CLAUSEFLAG_MULTI }, { "trusted-keys", &cfg_type_trustedkeys, CFG_CLAUSEFLAG_MULTI }, { NULL, NULL, 0 } @@ -606,6 +656,8 @@ namedconf_or_view_clauses[] = { */ static cfg_clausedef_t options_clauses[] = { + { "use-v4-udp-ports", &cfg_type_bracketed_portlist, 0 }, + { "use-v6-udp-ports", &cfg_type_bracketed_portlist, 0 }, { "avoid-v4-udp-ports", &cfg_type_bracketed_portlist, 0 }, { "avoid-v6-udp-ports", &cfg_type_bracketed_portlist, 0 }, { "blackhole", &cfg_type_bracketed_aml, 0 }, @@ -684,9 +736,9 @@ static cfg_type_t cfg_type_disablealgorithm = { }; static cfg_tuplefielddef_t mustbesecure_fields[] = { - { "name", &cfg_type_astring, 0 }, - { "value", &cfg_type_boolean, 0 }, - { NULL, NULL, 0 } + { "name", &cfg_type_astring, 0 }, + { "value", &cfg_type_boolean, 0 }, + { NULL, NULL, 0 } }; static cfg_type_t cfg_type_mustbesecure = { @@ -911,7 +963,7 @@ view_clausesets[] = { namedconf_or_view_clauses, view_clauses, zone_clauses, - dynamically_loadable_zones_clauses, + dynamically_loadable_zones_clauses, NULL }; static cfg_type_t cfg_type_viewopts = { @@ -926,22 +978,22 @@ zone_clausesets[] = { NULL }; static cfg_type_t cfg_type_zoneopts = { - "zoneopts", cfg_parse_map, cfg_print_map, + "zoneopts", cfg_parse_map, cfg_print_map, cfg_doc_map, &cfg_rep_map, zone_clausesets }; - + /*% The "dynamically loadable zones" statement syntax. */ - + static cfg_clausedef_t * dynamically_loadable_zones_clausesets[] = { dynamically_loadable_zones_clauses, - NULL + NULL }; static cfg_type_t cfg_type_dynamically_loadable_zones_opts = { - "dynamically_loadable_zones_opts", cfg_parse_map, + "dynamically_loadable_zones_opts", cfg_parse_map, cfg_print_map, cfg_doc_map, &cfg_rep_map, - dynamically_loadable_zones_clausesets + dynamically_loadable_zones_clausesets }; - + /*% * Clauses that can be found within the 'key' statement. */ @@ -959,7 +1011,7 @@ key_clausesets[] = { }; static cfg_type_t cfg_type_key = { "key", cfg_parse_named_map, cfg_print_map, - cfg_doc_map, &cfg_rep_map, key_clausesets + cfg_doc_map, &cfg_rep_map, key_clausesets }; @@ -1155,7 +1207,7 @@ static isc_result_t parse_maybe_optional_keyvalue(cfg_parser_t *pctx, const cfg_type_t *type, isc_boolean_t optional, cfg_obj_t **ret) { - isc_result_t result; + isc_result_t result; cfg_obj_t *obj = NULL; const keyword_type_t *kw = type->of; @@ -1184,7 +1236,7 @@ static isc_result_t parse_enum_or_other(cfg_parser_t *pctx, const cfg_type_t *enumtype, const cfg_type_t *othertype, cfg_obj_t **ret) { - isc_result_t result; + isc_result_t result; CHECK(cfg_peektoken(pctx, 0)); if (pctx->token.type == isc_tokentype_string && cfg_is_enum(TOKEN_STRING(pctx), enumtype->of)) { @@ -1259,17 +1311,17 @@ parse_notify_type(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { } static cfg_type_t cfg_type_notifytype = { "notifytype", parse_notify_type, cfg_print_ustring, doc_enum_or_other, - &cfg_rep_string, notify_enums, + &cfg_rep_string, notify_enums, }; static const char *ixfrdiff_enums[] = { "master", "slave", NULL }; static isc_result_t parse_ixfrdiff_type(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { - return (parse_enum_or_other(pctx, type, &cfg_type_boolean, ret)); + return (parse_enum_or_other(pctx, type, &cfg_type_boolean, ret)); } static cfg_type_t cfg_type_ixfrdifftype = { - "ixfrdiff", parse_ixfrdiff_type, cfg_print_ustring, doc_enum_or_other, - &cfg_rep_string, ixfrdiff_enums, + "ixfrdiff", parse_ixfrdiff_type, cfg_print_ustring, doc_enum_or_other, + &cfg_rep_string, ixfrdiff_enums, }; static keyword_type_t key_kw = { "key", &cfg_type_astring }; @@ -1286,7 +1338,7 @@ static cfg_type_t cfg_type_optional_keyref = { /*% * A "controls" statement is represented as a map with the multivalued - * "inet" and "unix" clauses. + * "inet" and "unix" clauses. */ static keyword_type_t controls_allow_kw = { @@ -1423,14 +1475,14 @@ parse_querysource(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { "address") == 0) { /* read "address" */ - CHECK(cfg_gettoken(pctx, 0)); + CHECK(cfg_gettoken(pctx, 0)); CHECK(cfg_parse_rawaddr(pctx, *flagp, &netaddr)); have_address++; } else if (strcasecmp(TOKEN_STRING(pctx), "port") == 0) { /* read "port" */ - CHECK(cfg_gettoken(pctx, 0)); + CHECK(cfg_gettoken(pctx, 0)); CHECK(cfg_parse_rawport(pctx, CFG_ADDR_WILDOK, &port)); @@ -1492,7 +1544,7 @@ static cfg_type_t cfg_type_querysource = { static isc_result_t parse_addrmatchelt(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { - isc_result_t result; + isc_result_t result; UNUSED(type); CHECK(cfg_peektoken(pctx, CFG_LEXOPT_QSTRING)); @@ -1700,6 +1752,7 @@ static isc_result_t parse_logversions(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { return (parse_enum_or_other(pctx, type, &cfg_type_uint32, ret)); } + static cfg_type_t cfg_type_logversions = { "logversions", parse_logversions, cfg_print_ustring, cfg_doc_terminal, &cfg_rep_string, logversions_enums @@ -1716,9 +1769,9 @@ static isc_result_t parse_logfile(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { isc_result_t result; cfg_obj_t *obj = NULL; - const cfg_tuplefielddef_t *fields = type->of; + const cfg_tuplefielddef_t *fields = type->of; - CHECK(cfg_create_tuple(pctx, type, &obj)); + CHECK(cfg_create_tuple(pctx, type, &obj)); /* Parse the mandatory "file" field */ CHECK(cfg_parse_obj(pctx, fields[0].type, &obj->value.tuple[0])); @@ -1727,7 +1780,7 @@ parse_logfile(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { for (;;) { CHECK(cfg_peektoken(pctx, 0)); if (pctx->token.type == isc_tokentype_string) { - CHECK(cfg_gettoken(pctx, 0)); + CHECK(cfg_gettoken(pctx, 0)); if (strcasecmp(TOKEN_STRING(pctx), "versions") == 0 && obj->value.tuple[1] == NULL) { @@ -1756,7 +1809,7 @@ parse_logfile(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { return (ISC_R_SUCCESS); cleanup: - CLEANUP_OBJ(obj); + CLEANUP_OBJ(obj); return (result); } @@ -1773,8 +1826,19 @@ print_logfile(cfg_printer_t *pctx, const cfg_obj_t *obj) { } } + +static void +doc_logfile(cfg_printer_t *pctx, const cfg_type_t *type) { + UNUSED(type); + cfg_print_cstr(pctx, ""); + cfg_print_chars(pctx, " ", 1); + cfg_print_cstr(pctx, "[ versions ( \"unlimited\" | ) ]"); + cfg_print_chars(pctx, " ", 1); + cfg_print_cstr(pctx, "[ size ]"); +} + static cfg_type_t cfg_type_logfile = { - "log_file", parse_logfile, print_logfile, cfg_doc_terminal, + "log_file", parse_logfile, print_logfile, doc_logfile, &cfg_rep_tuple, logfile_fields }; @@ -1805,8 +1869,8 @@ static cfg_type_t cfg_type_lwres_view = { }; static cfg_type_t cfg_type_lwres_searchlist = { - "lwres_searchlist", cfg_parse_bracketed_list, cfg_print_bracketed_list, cfg_doc_bracketed_list, - &cfg_rep_list, &cfg_type_astring }; + "lwres_searchlist", cfg_parse_bracketed_list, cfg_print_bracketed_list, + cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring }; static cfg_clausedef_t lwres_clauses[] = { @@ -1925,15 +1989,15 @@ doc_sockaddrnameport(cfg_printer_t *pctx, const cfg_type_t *type) { cfg_print_chars(pctx, "( ", 2); cfg_print_cstr(pctx, ""); cfg_print_chars(pctx, " ", 1); - cfg_print_cstr(pctx, "[port ]"); + cfg_print_cstr(pctx, "[ port ]"); cfg_print_chars(pctx, " | ", 3); cfg_print_cstr(pctx, ""); cfg_print_chars(pctx, " ", 1); - cfg_print_cstr(pctx, "[port ]"); + cfg_print_cstr(pctx, "[ port ]"); cfg_print_chars(pctx, " | ", 3); cfg_print_cstr(pctx, ""); cfg_print_chars(pctx, " ", 1); - cfg_print_cstr(pctx, "[port ]"); + cfg_print_cstr(pctx, "[ port ]"); cfg_print_chars(pctx, " )", 2); } @@ -1941,7 +2005,7 @@ static isc_result_t parse_sockaddrnameport(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { - isc_result_t result; + isc_result_t result; cfg_obj_t *obj = NULL; UNUSED(type); @@ -1952,9 +2016,9 @@ parse_sockaddrnameport(cfg_parser_t *pctx, const cfg_type_t *type, CHECK(cfg_parse_sockaddr(pctx, &cfg_type_sockaddr, ret)); else { const cfg_tuplefielddef_t *fields = - cfg_type_nameport.of; + cfg_type_nameport.of; CHECK(cfg_create_tuple(pctx, &cfg_type_nameport, - &obj)); + &obj)); CHECK(cfg_parse_obj(pctx, fields[0].type, &obj->value.tuple[0])); CHECK(cfg_parse_obj(pctx, fields[1].type, @@ -1968,7 +2032,7 @@ parse_sockaddrnameport(cfg_parser_t *pctx, const cfg_type_t *type, return (ISC_R_UNEXPECTEDTOKEN); } cleanup: - CLEANUP_OBJ(obj); + CLEANUP_OBJ(obj); return (result); } @@ -2011,11 +2075,11 @@ doc_masterselement(cfg_printer_t *pctx, const cfg_type_t *type) { cfg_print_chars(pctx, " | ", 3); cfg_print_cstr(pctx, ""); cfg_print_chars(pctx, " ", 1); - cfg_print_cstr(pctx, "[port ]"); + cfg_print_cstr(pctx, "[ port ]"); cfg_print_chars(pctx, " | ", 3); cfg_print_cstr(pctx, ""); cfg_print_chars(pctx, " ", 1); - cfg_print_cstr(pctx, "[port ]"); + cfg_print_cstr(pctx, "[ port ]"); cfg_print_chars(pctx, " )", 2); } @@ -2023,7 +2087,7 @@ static isc_result_t parse_masterselement(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { - isc_result_t result; + isc_result_t result; cfg_obj_t *obj = NULL; UNUSED(type); @@ -2040,7 +2104,7 @@ parse_masterselement(cfg_parser_t *pctx, const cfg_type_t *type, return (ISC_R_UNEXPECTEDTOKEN); } cleanup: - CLEANUP_OBJ(obj); + CLEANUP_OBJ(obj); return (result); } diff --git a/lib/lwres/api b/lib/lwres/api index 510e9a911bab..0be3ae77fc2e 100644 --- a/lib/lwres/api +++ b/lib/lwres/api @@ -1,3 +1,3 @@ LIBINTERFACE = 30 -LIBREVISION = 5 +LIBREVISION = 6 LIBAGE = 0 diff --git a/make/rules.in b/make/rules.in index a1ae55127cee..e1488e9c1c96 100644 --- a/make/rules.in +++ b/make/rules.in @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 1998-2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any @@ -13,7 +13,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: rules.in,v 1.47.18.13 2007/08/28 07:20:06 tbox Exp $ +# $Id: rules.in,v 1.47.18.15 2008/02/18 23:46:01 tbox Exp $ ### ### Common Makefile rules for BIND 9. @@ -104,7 +104,7 @@ STD_CWARNINGS = @STD_CWARNINGS@ BUILD_CC = @BUILD_CC@ BUILD_CFLAGS = @BUILD_CFLAGS@ BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFAGS = @BUILD_LDFAGS@ +BUILD_LDFLAGS = @BUILD_LDFLAGS@ BUILD_LIBS = @BUILD_LIBS@ .SUFFIXES: diff --git a/version b/version index 72f7f63bc0d1..61ba428c538f 100644 --- a/version +++ b/version @@ -1,10 +1,10 @@ -# $Id: version,v 1.29.134.18.8.2 2008/07/29 05:03:28 each Exp $ +# $Id: version,v 1.29.134.23 2008/11/12 04:17:12 marka Exp $ # # This file must follow /bin/sh rules. It is imported directly via # configure. # MAJORVER=9 MINORVER=4 -PATCHVER=2 -RELEASETYPE=-P -RELEASEVER=2 +PATCHVER=3 +RELEASETYPE= +RELEASEVER= From 77bde798e10d9aad56b8b194e5a6a4af8756f3ac Mon Sep 17 00:00:00 2001 From: dougb Date: Tue, 23 Dec 2008 19:18:41 +0000 Subject: [PATCH 12/13] Vendor import of BIND 9.4.3 --- aclocal.m4 | 2 + config.h.in | 328 +++++++++++++++++++++++++++++++++++++++++++ lib/bind/aclocal.m4 | 2 + lib/bind/config.h.in | 68 +++++++++ 4 files changed, 400 insertions(+) create mode 100644 aclocal.m4 create mode 100644 config.h.in create mode 100644 lib/bind/aclocal.m4 create mode 100644 lib/bind/config.h.in diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 000000000000..c1a594c1e35d --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,2 @@ +sinclude(./libtool.m4)dnl + diff --git a/config.h.in b/config.h.in new file mode 100644 index 000000000000..210a0794ddfb --- /dev/null +++ b/config.h.in @@ -0,0 +1,328 @@ +/* config.h.in. Generated from configure.in by autoheader. */ +/* + * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 1999-2003 Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id: config.h.in,v 1.60.18.34 2008/10/21 02:47:25 marka Exp $ */ + +/*! \file */ + +/*** + *** This file is not to be included by any public header files, because + *** it does not get installed. + ***/ + +/** define to `int' if doesn't define. */ +#undef ssize_t + +/** define on DEC OSF to enable 4.4BSD style sa_len support */ +#undef _SOCKADDR_LEN + +/** define if your system needs pthread_init() before using pthreads */ +#undef NEED_PTHREAD_INIT + +/** define if your system has sigwait() */ +#undef HAVE_SIGWAIT + +/** define if sigwait() is the UnixWare flavor */ +#undef HAVE_UNIXWARE_SIGWAIT + +/** define on Solaris to get sigwait() to work using pthreads semantics */ +#undef _POSIX_PTHREAD_SEMANTICS + +/** define if LinuxThreads is in use */ +#undef HAVE_LINUXTHREADS + +/** define if sysconf() is available */ +#undef HAVE_SYSCONF + +/** define if sysctlbyname() is available */ +#undef HAVE_SYSCTLBYNAME + +/** define if catgets() is available */ +#undef HAVE_CATGETS + +/** define if getifaddrs() exists */ +#undef HAVE_GETIFADDRS + +/** define if you have the NET_RT_IFLIST sysctl variable and sys/sysctl.h */ +#undef HAVE_IFLIST_SYSCTL + +/** define if chroot() is available */ +#undef HAVE_CHROOT + +/** define if tzset() is available */ +#undef HAVE_TZSET + +/** define if struct addrinfo exists */ +#undef HAVE_ADDRINFO + +/** define if getaddrinfo() exists */ +#undef HAVE_GETADDRINFO + +/** define if gai_strerror() exists */ +#undef HAVE_GAISTRERROR + +/** define if arc4random() exists */ +#undef HAVE_ARC4RANDOM + +/** + * define if pthread_setconcurrency() should be called to tell the + * OS how many threads we might want to run. + */ +#undef CALL_PTHREAD_SETCONCURRENCY + +/** define if IPv6 is not disabled */ +#undef WANT_IPV6 + +/** define if flockfile() is available */ +#undef HAVE_FLOCKFILE + +/** define if getc_unlocked() is available */ +#undef HAVE_GETCUNLOCKED + +/** Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */ +#undef SHUTUP_SPUTAUX +#ifdef SHUTUP_SPUTAUX +struct __sFILE; +extern __inline int __sputaux(int _c, struct __sFILE *_p); +#endif + +/** Shut up warnings about missing sigwait prototype on BSD/OS 4.0* */ +#undef SHUTUP_SIGWAIT +#ifdef SHUTUP_SIGWAIT +int sigwait(const unsigned int *set, int *sig); +#endif + +/** Shut up warnings from gcc -Wcast-qual on BSD/OS 4.1. */ +#undef SHUTUP_STDARG_CAST +#if defined(SHUTUP_STDARG_CAST) && defined(__GNUC__) +#include /** Grr. Must be included *every time*. */ +/** + * The silly continuation line is to keep configure from + * commenting out the #undef. + */ + +#undef \ + va_start +#define va_start(ap, last) \ + do { \ + union { const void *konst; long *var; } _u; \ + _u.konst = &(last); \ + ap = (va_list)(_u.var + __va_words(__typeof(last))); \ + } while (0) +#endif /** SHUTUP_STDARG_CAST && __GNUC__ */ + +/** define if the system has a random number generating device */ +#undef PATH_RANDOMDEV + +/** define if pthread_attr_getstacksize() is available */ +#undef HAVE_PTHREAD_ATTR_GETSTACKSIZE + +/** define if pthread_attr_setstacksize() is available */ +#undef HAVE_PTHREAD_ATTR_SETSTACKSIZE + +/** define if you have strerror in the C library. */ +#undef HAVE_STRERROR + +/** Define if you are running under Compaq TruCluster. */ +#undef HAVE_TRUCLUSTER + +/* Define if OpenSSL includes DSA support */ +#undef HAVE_OPENSSL_DSA + +/* Define to the length type used by the socket API (socklen_t, size_t, int). */ +#undef ISC_SOCKADDR_LEN_T + +/* Define if threads need PTHREAD_SCOPE_SYSTEM */ +#undef NEED_PTHREAD_SCOPE_SYSTEM + +/* Define if recvmsg() does not meet all of the BSD socket API specifications. + */ +#undef BROKEN_RECVMSG + +/* Define if you cannot bind() before connect() for TCP sockets. */ +#undef BROKEN_TCP_BIND_BEFORE_CONNECT + +/* Solaris hack to get select_large_fdset. */ +#undef FD_SETSIZE + +/* Define to 1 if you have the `capset' function. */ +#undef HAVE_CAPSET + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `c' library (-lc). */ +#undef HAVE_LIBC + +/* Define to 1 if you have the `c_r' library (-lc_r). */ +#undef HAVE_LIBC_R + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +#undef HAVE_LIBNSL + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +#undef HAVE_LIBPTHREAD + +/* Define to 1 if you have the `scf' library (-lscf). */ +#undef HAVE_LIBSCF + +/* Define to 1 if you have the `socket' library (-lsocket). */ +#undef HAVE_LIBSOCKET + +/* Define to 1 if you have the `thr' library (-lthr). */ +#undef HAVE_LIBTHR + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_CAPABILITY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NET_IF6_H + +/* Define to 1 if you have the `setlocale' function. */ +#undef HAVE_SETLOCALE + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_CAPABILITY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_DEVPOLL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_DYNTUNE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PRCTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SYSCTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UN_H + +/* Define if running under Compaq TruCluster */ +#undef HAVE_TRUCLUSTER + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Defined if extern char *optarg is not declared. */ +#undef NEED_OPTARG + +/* Define if connect does not honour the permission on the UNIX domain socket. + */ +#undef NEED_SECURE_DIRECTORY + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Sets which flag to pass to open/fcntl to make non-blocking + (O_NDELAY/O_NONBLOCK). */ +#undef PORT_NONBLOCK + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Defined if you need to use ioctl(FIONBIO) instead a fcntl call to make + non-blocking. */ +#undef USE_FIONBIO_IOCTL + +/* define if idnkit support is to be included. */ +#undef WITH_IDN + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define to `int' if does not define. */ +#undef ssize_t + +/* Define to `unsigned long' if does not define. */ +#undef uintptr_t + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +#undef volatile diff --git a/lib/bind/aclocal.m4 b/lib/bind/aclocal.m4 new file mode 100644 index 000000000000..110ed87832da --- /dev/null +++ b/lib/bind/aclocal.m4 @@ -0,0 +1,2 @@ +sinclude(../../libtool.m4)dnl + diff --git a/lib/bind/config.h.in b/lib/bind/config.h.in new file mode 100644 index 000000000000..5e2a83defbd7 --- /dev/null +++ b/lib/bind/config.h.in @@ -0,0 +1,68 @@ +#undef _SOCKADDR_LEN +#undef HAVE_FCNTL_H +#undef HAVE_PATHS_H +#undef HAVE_INTTYPES_H +#undef HAVE_STROPTS_H +#undef HAVE_SYS_TIMERS_H +#undef HAVE_SYS_SELECT_H +#undef HAVE_MEMORY_H +#undef SYS_CDEFS_H +#undef _POSIX_PTHREAD_SEMANTICS +#undef POSIX_GETPWUID_R +#undef POSIX_GETPWNAM_R +#undef POSIX_GETGRGID_R +#undef POSIX_GETGRNAM_R +#undef HAVE_MEMMOVE +#undef HAVE_MEMCHR +#undef SPRINTF_CHAR +#undef VSPRINTF_CHAR +#undef USE_SYSERROR_LIST +#undef NEED_STRTOUL +#undef NEED_SUN4PROTOS +#undef REENABLE_SEND + +#undef NEED_SETGROUPENT +#undef NEED_GETGROUPLIST + +/* define if prototype for getgrnam_r() is required */ +#undef NEED_GETGRNAM_R +#undef NEED_GETGRGID_R +#undef NEED_GETGRENT_R +#undef NEED_SETGRENT_R +#undef NEED_ENDGRENT_R + +#undef NEED_INNETGR_R +#undef NEED_SETNETGRENT_R +#undef NEED_ENDNETGRENT_R + +#undef NEED_GETPWNAM_R +#undef NEED_GETPWUID_R +#undef NEED_SETPWENT_R +#undef NEED_SETPASSENT_R +#undef NEED_SETPWENT_R +#undef NEED_GETPWENT_R +#undef NEED_ENDPWENT_R + +#undef NEED_SETPASSENT + +#undef HAS_PW_CLASS + +#undef ssize_t +#undef uintptr_t + +/* Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */ +#undef SHUTUP_SPUTAUX +#ifdef SHUTUP_SPUTAUX +struct __sFILE; +extern __inline int __sputaux(int _c, struct __sFILE *_p); +#endif +#undef BROKEN_IN6ADDR_INIT_MACROS +#undef HAVE_STRLCAT +/* Shut up warnings about missing braces */ +#undef SHUTUP_MUTEX_INITIALIZER +#ifdef SHUTUP_MUTEX_INITIALIZER +#define LIBBIND_MUTEX_INITIALIZER { PTHREAD_MUTEX_INITIALIZER } +#else +#define LIBBIND_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER +#endif + From fa25a858e20428b15ec892d020272b1f70eaa725 Mon Sep 17 00:00:00 2001 From: dougb Date: Tue, 23 Dec 2008 19:19:45 +0000 Subject: [PATCH 13/13] The lib/bind directory has its own configure script. Update accordingly. --- FREEBSD-Upgrade | 7 ++++--- FREEBSD-Xlist | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/FREEBSD-Upgrade b/FREEBSD-Upgrade index cca828b9b7ae..2fc1d65aa438 100644 --- a/FREEBSD-Upgrade +++ b/FREEBSD-Upgrade @@ -62,9 +62,10 @@ 10) Generate and run configure: - $ aclocal - $ autoheader - $ autoconf + aclocal ; autoheader ; autoconf + cd lib/bind + aclocal ; autoheader ; autoconf + cd ../.. $ ./configure --prefix=/usr \ --infodir=/usr/share/info --mandir=/usr/share/man \ --enable-threads --enable-libbind --disable-ipv6 \ diff --git a/FREEBSD-Xlist b/FREEBSD-Xlist index f4239557b3ae..74716e6fd86c 100644 --- a/FREEBSD-Xlist +++ b/FREEBSD-Xlist @@ -2,8 +2,6 @@ # Misc. stuff .cvsignore -aclocal.m4 -config.h.in configure contrib docutil